PackageTrack

npm · #4033

@tiptap/extension-image

3.30.5ueberdosis/tiptap

image extension for tiptap

Release timeline

343 releases since 2020
202120222023202420252026

Releases

  1. 3.30.526 Aug 2026

    Nothing published for this version

  2. 3.30.426 Aug 2026

    Nothing published for this version

  3. 3.30.324 Aug 2026
    Release notes

    @tiptap/extension-text-style

    Patch Changes

    • Unsetting one text style inside a blockquote no longer removes the other text styles in it.

    @tiptap/extension-youtube

    Patch Changes

    • YouTube live URLs (/live/<id>) now embed the video.

    @tiptap/core

    Patch Changes

    • Fix JSX runtime to properly render nested sibling elements by spreading children arrays into DOMOutputSpec

    @tiptap/react

    Patch Changes

    • Fix ReactNodeViewRenderer crash when contentComponent is not available

    @tiptap/ai-toolkit

    Minor Changes

    • Add the AiInsertReveal extension (@tiptap/ai-toolkit/streaming-reveal) to fade in text as the AI streams it into a collaborative document.
    Open source →
    Additional notes

    @tiptap/extension-text-style

    Patch Changes

    • f434577: Unsetting one text style inside a blockquote no longer removes the other text styles in it.
    • Updated dependencies [f434577]

    @tiptap/extension-youtube

    Patch Changes

    • f434577: YouTube live URLs (/live/<id>) now embed the video.
    • Updated dependencies [f434577]

    @tiptap/core

    Patch Changes

    • f434577: Fix JSX runtime to properly render nested sibling elements by spreading children arrays into DOMOutputSpec
    • @tiptap/[email protected]

    @tiptap/react

    Patch Changes

    @tiptap/ai-toolkit

    Minor Changes

    • f434577: Add the AiInsertReveal extension (@tiptap/ai-toolkit/streaming-reveal) to fade in text as the AI streams it into a collaborative document.

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-file-handler

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-audio

    Patch Changes

    @tiptap/extension-blockquote

    Patch Changes

    @tiptap/extension-bold

    Patch Changes

    @tiptap/extension-bubble-menu

    Patch Changes

    @tiptap/extension-code

    Patch Changes

    @tiptap/extension-code-block

    Patch Changes

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    @tiptap/extension-drag-handle

    Patch Changes

    @tiptap/extension-emoji

    Patch Changes

    @tiptap/extension-find-and-replace

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    @tiptap/extension-hard-break

    Patch Changes

    @tiptap/extension-heading

    Patch Changes

    @tiptap/extension-highlight

    Patch Changes

    @tiptap/extension-horizontal-rule

    Patch Changes

    @tiptap/extension-image

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    @tiptap/extension-link

    Patch Changes

    @tiptap/extension-list

    Patch Changes

    @tiptap/extension-mathematics

    Patch Changes

    @tiptap/extension-mention

    Patch Changes

    @tiptap/extension-node-range

    Patch Changes

    @tiptap/extension-paragraph

    Patch Changes

    @tiptap/extension-ruby-text

    Patch Changes

    @tiptap/extension-strike

    Patch Changes

    @tiptap/extension-subscript

    Patch Changes

    @tiptap/extension-superscript

    Patch Changes

    @tiptap/extension-table

    Patch Changes

    @tiptap/extension-table-of-contents

    Patch Changes

    @tiptap/extension-text

    Patch Changes

    @tiptap/extension-text-align

    Patch Changes

    @tiptap/extension-twitch

    Patch Changes

    @tiptap/extension-typography

    Patch Changes

    @tiptap/extension-underline

    Patch Changes

    @tiptap/extension-unique-id

    Patch Changes

    @tiptap/extensions

    Patch Changes

    @tiptap/html

    Patch Changes

    @tiptap/markdown

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    @tiptap/static-renderer

    Patch Changes

    @tiptap/suggestion

    Patch Changes

    @tiptap/vue-2

    Patch Changes

    @tiptap/vue-3

    Patch Changes

    @tiptap/extension-drag-handle-react

    Patch Changes

    @tiptap/server-ai-toolkit

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-list-item

    Patch Changes

    @tiptap/extension-list-keymap

    Patch Changes

    @tiptap/extension-task-item

    Patch Changes

    @tiptap/extension-task-list

    Patch Changes

    @tiptap/extension-bullet-list

    Patch Changes

    @tiptap/extension-ordered-list

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    Open source →
  4. 3.30.218 Aug 2026
    Release notes

    @tiptap/core

    Patch Changes

    • Keep mixed JSX children as separate siblings in DOM output.
    • Fixed a bug where editor.chain and editor.can can not be accessed on editor initialization

    @tiptap/extension-image

    Patch Changes

    • Fix resizable images staying hidden when the image is cached or fails to load.
    Open source →
    Additional notes

    @tiptap/core

    Patch Changes

    • 214a140: Keep mixed JSX children as separate siblings in DOM output.
    • 214a140: Fixed a bug where editor.chain and editor.can can not be accessed on editor initialization
    • @tiptap/[email protected]

    @tiptap/extension-image

    Patch Changes

    • 214a140: Fix resizable images staying hidden when the image is cached or fails to load.
    • Updated dependencies [214a140]
    • Updated dependencies [214a140]

    @tiptap/extension-audio

    Patch Changes

    • Updated dependencies [214a140]
    • Updated dependencies [214a140]

    @tiptap/extension-blockquote

    Patch Changes

    @tiptap/extension-bold

    Patch Changes

    • Updated dependencies [214a140]
    • Updated dependencies [214a140]

    @tiptap/extension-bubble-menu

    Patch Changes

    @tiptap/extension-code

    Patch Changes

    • Updated dependencies [214a140]
    • Updated dependencies [214a140]

    @tiptap/extension-code-block

    Patch Changes

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    • Updated dependencies [214a140]
    • Updated dependencies [214a140]

    @tiptap/extension-drag-handle

    Patch Changes

    @tiptap/extension-emoji

    Patch Changes

    @tiptap/extension-file-handler

    Patch Changes

    @tiptap/extension-find-and-replace

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    @tiptap/extension-hard-break

    Patch Changes

    • Updated dependencies [214a140]
    • Updated dependencies [214a140]

    @tiptap/extension-heading

    Patch Changes

    • Updated dependencies [214a140]
    • Updated dependencies [214a140]

    @tiptap/extension-highlight

    Patch Changes

    • Updated dependencies [214a140]
    • Updated dependencies [214a140]

    @tiptap/extension-horizontal-rule

    Patch Changes

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    • Updated dependencies [214a140]
    • Updated dependencies [214a140]

    @tiptap/extension-link

    Patch Changes

    @tiptap/extension-list

    Patch Changes

    @tiptap/extension-mathematics

    Patch Changes

    @tiptap/extension-mention

    Patch Changes

    @tiptap/extension-node-range

    Patch Changes

    @tiptap/extension-paragraph

    Patch Changes

    • Updated dependencies [214a140]
    • Updated dependencies [214a140]

    @tiptap/extension-ruby-text

    Patch Changes

    @tiptap/extension-strike

    Patch Changes

    • Updated dependencies [214a140]
    • Updated dependencies [214a140]

    @tiptap/extension-subscript

    Patch Changes

    @tiptap/extension-superscript

    Patch Changes

    @tiptap/extension-table

    Patch Changes

    @tiptap/extension-table-of-contents

    Patch Changes

    @tiptap/extension-text

    Patch Changes

    • Updated dependencies [214a140]
    • Updated dependencies [214a140]

    @tiptap/extension-text-align

    Patch Changes

    • Updated dependencies [214a140]
    • Updated dependencies [214a140]

    @tiptap/extension-text-style

    Patch Changes

    • Updated dependencies [214a140]
    • Updated dependencies [214a140]

    @tiptap/extension-twitch

    Patch Changes

    • Updated dependencies [214a140]
    • Updated dependencies [214a140]

    @tiptap/extension-typography

    Patch Changes

    • Updated dependencies [214a140]
    • Updated dependencies [214a140]

    @tiptap/extension-underline

    Patch Changes

    • Updated dependencies [214a140]
    • Updated dependencies [214a140]

    @tiptap/extension-unique-id

    Patch Changes

    @tiptap/extension-youtube

    Patch Changes

    • Updated dependencies [214a140]
    • Updated dependencies [214a140]

    @tiptap/extensions

    Patch Changes

    @tiptap/html

    Patch Changes

    @tiptap/markdown

    Patch Changes

    @tiptap/react

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    @tiptap/static-renderer

    Patch Changes

    @tiptap/suggestion

    Patch Changes

    @tiptap/vue-2

    Patch Changes

    @tiptap/vue-3

    Patch Changes

    @tiptap/extension-drag-handle-react

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-list-item

    Patch Changes

    @tiptap/extension-list-keymap

    Patch Changes

    @tiptap/extension-task-item

    Patch Changes

    @tiptap/extension-task-list

    Patch Changes

    @tiptap/extension-bullet-list

    Patch Changes

    @tiptap/extension-ordered-list

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    Open source →
  5. 3.30.113 Aug 2026
    Release notes

    @tiptap/extension-table

    Patch Changes

    • Fixed table markdown pipe escaping so the extension loads on older Safari and iOS versions (WebKit before Safari 16.4).

    @tiptap/core

    Patch Changes

    • Added new ProseMirror helpers that check whether a value is a specific ProseMirror type.
    Open source →
    Additional notes

    @tiptap/extension-table

    Patch Changes

    • abc8828: Fixed table markdown pipe escaping so the extension loads on older Safari and iOS versions (WebKit before Safari 16.4).
    • Updated dependencies [abc8828]

    @tiptap/core

    Patch Changes

    • abc8828: Added new ProseMirror helpers that check whether a value is a specific ProseMirror type.
    • @tiptap/[email protected]

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/extension-audio

    Patch Changes

    @tiptap/extension-blockquote

    Patch Changes

    @tiptap/extension-bold

    Patch Changes

    @tiptap/extension-bubble-menu

    Patch Changes

    @tiptap/extension-code

    Patch Changes

    @tiptap/extension-code-block

    Patch Changes

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    @tiptap/extension-drag-handle

    Patch Changes

    @tiptap/extension-emoji

    Patch Changes

    @tiptap/extension-file-handler

    Patch Changes

    @tiptap/extension-find-and-replace

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    @tiptap/extension-hard-break

    Patch Changes

    @tiptap/extension-heading

    Patch Changes

    @tiptap/extension-highlight

    Patch Changes

    @tiptap/extension-horizontal-rule

    Patch Changes

    @tiptap/extension-image

    Patch Changes

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    @tiptap/extension-link

    Patch Changes

    @tiptap/extension-list

    Patch Changes

    @tiptap/extension-mathematics

    Patch Changes

    @tiptap/extension-mention

    Patch Changes

    @tiptap/extension-node-range

    Patch Changes

    @tiptap/extension-paragraph

    Patch Changes

    @tiptap/extension-ruby-text

    Patch Changes

    @tiptap/extension-strike

    Patch Changes

    @tiptap/extension-subscript

    Patch Changes

    @tiptap/extension-superscript

    Patch Changes

    @tiptap/extension-table-of-contents

    Patch Changes

    @tiptap/extension-text

    Patch Changes

    @tiptap/extension-text-align

    Patch Changes

    @tiptap/extension-text-style

    Patch Changes

    @tiptap/extension-twitch

    Patch Changes

    @tiptap/extension-typography

    Patch Changes

    @tiptap/extension-underline

    Patch Changes

    @tiptap/extension-unique-id

    Patch Changes

    @tiptap/extension-youtube

    Patch Changes

    @tiptap/extensions

    Patch Changes

    @tiptap/html

    Patch Changes

    @tiptap/markdown

    Patch Changes

    @tiptap/react

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    @tiptap/static-renderer

    Patch Changes

    @tiptap/suggestion

    Patch Changes

    @tiptap/vue-2

    Patch Changes

    @tiptap/vue-3

    Patch Changes

    @tiptap/extension-drag-handle-react

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-list-item

    Patch Changes

    @tiptap/extension-list-keymap

    Patch Changes

    @tiptap/extension-task-item

    Patch Changes

    @tiptap/extension-task-list

    Patch Changes

    @tiptap/extension-bullet-list

    Patch Changes

    @tiptap/extension-ordered-list

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    Open source →
  6. 3.30.011 Aug 2026
    Release notes

    v3.30.0

    @tiptap/vue-2

    Minor Changes

    • ceb0dac: New Decorations API

      Finally the decorations API is here! Even though Decorations itself are nothing new in ProseMirror, the new API makes it much easier to use them in Tiptap without leaving your extensions.

      Decorations change how the document looks without changing the document itself. Highlighting search results, marking spelling mistakes, showing collaborator cursors, putting a drag handle next to every block.

      Until now you had to write a ProseMirror plugin by hand for this, keep the decoration set in plugin state, and map it forward on every transaction. Extensions can now declare decorations directly with a new addDecorations() hook.

      addDecorations() {
        return {
          create: ({ state }) =>
            // findMatches can be any function that returns an array of { from, to } ranges
            findMatches(state.doc).map(match =>
              Decoration.Inline(match.from, match.to, { class: 'highlight' }),
            ),
        }
      }

      There are three kinds. Decoration.Inline() styles a range of text. Decoration.Node() puts attributes on a block's DOM element. Decoration.Widget() renders your own element at a single position.

      Every extension that declares decorations is collected into one plugin, so several extensions can decorate the same document without fighting over it.

      Doing less work on every keystroke

      By default decorations are rebuilt whenever the document changes. That is fine for small documents and wasteful for large ones, so there are two ways to narrow it down.

      shouldUpdate() skips transactions you do not care about. If your decorations only depend on headings, ignore everything else.

      update: 'changedRanges' together with createInRange() only rescans the blocks that actually changed. On a long document this is the difference between scanning the whole thing on every keystroke and scanning one paragraph.

      For decorations driven by data outside the editor, like comments loaded from a server, use update: 'manual' and refresh them yourself with editor.commands.updateDecorations().

      React and Vue components as widgets

      ReactWidgetRenderer and VueWidgetRenderer render a real component into a widget decoration, inside your existing app context. Providers, context and stores work as usual.

      Widgets take a key. Reuse the same key and the component instance stays mounted while the document changes around it, so local state such as an open menu, a counter or a half-typed input survives editing. Use a stable id from your own data, not a position or a list index, otherwise the component remounts and loses that state.

      Widgets also accept the ProseMirror options side, relaxedSide, stopEvent and ignoreSelection.

      Documentation

    Patch Changes

    • ceb0dac: Fix FloatingMenu not registering when the editor prop is provided synchronously, which prevented the menu from appearing

    @tiptap/extension-list

    Minor Changes

    • ceb0dac: ListKeymap now registers a Tab shortcut that sinks a top-level textblock into the previous list's last item. Pressing Tab at the start of a paragraph right after a bullet/ordered/task list moves the paragraph inside the last list item. The handler does nothing when the cursor is already inside a list item (sinkListItem keeps working), when there is no list before the paragraph, when the caret is mid-textblock, or when the selection is not a text selection (for example a gap cursor).

      @tiptap/core also exposes a new getPreviousBlockSibling($pos) helper that returns the block-level sibling before the cursor's textblock, or null at the first child of the block parent.

    Patch Changes

    • ceb0dac: Parse block math that follows an ordered list item without a blank line, both after the list and indented inside the item, instead of pulling it into the item's text.
    • ceb0dac: TaskItem: the checkbox label now also fills the wrapping label element, so accessibility audits no longer flag it as empty.

    @tiptap/core

    Minor Changes

    • ceb0dac: ListKeymap now registers a Tab shortcut that sinks a top-level textblock into the previous list's last item. Pressing Tab at the start of a paragraph right after a bullet/ordered/task list moves the paragraph inside the last list item. The handler does nothing when the cursor is already inside a list item (sinkListItem keeps working), when there is no list before the paragraph, when the caret is mid-textblock, or when the selection is not a text selection (for example a gap cursor).

      @tiptap/core also exposes a new getPreviousBlockSibling($pos) helper that returns the block-level sibling before the cursor's textblock, or null at the first child of the block parent.

    • ceb0dac: New Decorations API

      Finally the decorations API is here! Even though Decorations itself are nothing new in ProseMirror, the new API makes it much easier to use them in Tiptap without leaving your extensions.

      Decorations change how the document looks without changing the document itself. Highlighting search results, marking spelling mistakes, showing collaborator cursors, putting a drag handle next to every block.

      Until now you had to write a ProseMirror plugin by hand for this, keep the decoration set in plugin state, and map it forward on every transaction. Extensions can now declare decorations directly with a new addDecorations() hook.

      addDecorations() {
        return {
          create: ({ state }) =>
            // findMatches can be any function that returns an array of { from, to } ranges
            findMatches(state.doc).map(match =>
              Decoration.Inline(match.from, match.to, { class: 'highlight' }),
            ),
        }
      }

      There are three kinds. Decoration.Inline() styles a range of text. Decoration.Node() puts attributes on a block's DOM element. Decoration.Widget() renders your own element at a single position.

      Every extension that declares decorations is collected into one plugin, so several extensions can decorate the same document without fighting over it.

      Doing less work on every keystroke

      By default decorations are rebuilt whenever the document changes. That is fine for small documents and wasteful for large ones, so there are two ways to narrow it down.

      shouldUpdate() skips transactions you do not care about. If your decorations only depend on headings, ignore everything else.

      update: 'changedRanges' together with createInRange() only rescans the blocks that actually changed. On a long document this is the difference between scanning the whole thing on every keystroke and scanning one paragraph.

      For decorations driven by data outside the editor, like comments loaded from a server, use update: 'manual' and refresh them yourself with editor.commands.updateDecorations().

      React and Vue components as widgets

      ReactWidgetRenderer and VueWidgetRenderer render a real component into a widget decoration, inside your existing app context. Providers, context and stores work as usual.

      Widgets take a key. Reuse the same key and the component instance stays mounted while the document changes around it, so local state such as an open menu, a counter or a half-typed input survives editing. Use a stable id from your own data, not a position or a list index, otherwise the component remounts and loses that state.

      Widgets also accept the ProseMirror options side, relaxedSide, stopEvent and ignoreSelection.

      Documentation

    Patch Changes

    • ceb0dac: Fixed insertContent, insertContentAt and setContent failing when prosemirror-model is loaded more than once.

    @tiptap/starter-kit

    Patch Changes

    • ceb0dac: StarterKit now pins its bundled @tiptap/* dependencies to the exact version it was released with, so installing a specific StarterKit version gives you that version's extension set instead of the newest one.

    @tiptap/react

    Minor Changes

    • ceb0dac: New Decorations API

      Finally the decorations API is here! Even though Decorations itself are nothing new in ProseMirror, the new API makes it much easier to use them in Tiptap without leaving your extensions.

      Decorations change how the document looks without changing the document itself. Highlighting search results, marking spelling mistakes, showing collaborator cursors, putting a drag handle next to every block.

      Until now you had to write a ProseMirror plugin by hand for this, keep the decoration set in plugin state, and map it forward on every transaction. Extensions can now declare decorations directly with a new addDecorations() hook.

      addDecorations() {
        return {
          create: ({ state }) =>
            // findMatches can be any function that returns an array of { from, to } ranges
            findMatches(state.doc).map(match =>
              Decoration.Inline(match.from, match.to, { class: 'highlight' }),
            ),
        }
      }

      There are three kinds. Decoration.Inline() styles a range of text. Decoration.Node() puts attributes on a block's DOM element. Decoration.Widget() renders your own element at a single position.

      Every extension that declares decorations is collected into one plugin, so several extensions can decorate the same document without fighting over it.

      Doing less work on every keystroke

      By default decorations are rebuilt whenever the document changes. That is fine for small documents and wasteful for large ones, so there are two ways to narrow it down.

      shouldUpdate() skips transactions you do not care about. If your decorations only depend on headings, ignore everything else.

      update: 'changedRanges' together with createInRange() only rescans the blocks that actually changed. On a long document this is the difference between scanning the whole thing on every keystroke and scanning one paragraph.

      For decorations driven by data outside the editor, like comments loaded from a server, use update: 'manual' and refresh them yourself with editor.commands.updateDecorations().

      React and Vue components as widgets

      ReactWidgetRenderer and VueWidgetRenderer render a real component into a widget decoration, inside your existing app context. Providers, context and stores work as usual.

      Widgets take a key. Reuse the same key and the component instance stays mounted while the document changes around it, so local state such as an open menu, a counter or a half-typed input survives editing. Use a stable id from your own data, not a position or a list index, otherwise the component remounts and loses that state.

      Widgets also accept the ProseMirror options side, relaxedSide, stopEvent and ignoreSelection.

      Documentation

    Patch Changes

    • ceb0dac: React node views no longer show the selected state when the selection covers a position the node view has moved away from.

    @tiptap/markdown

    Patch Changes

    • ceb0dac: Markdown with inline HTML such as an unclosed <b> tag no longer parses into an invalid document. The tag is dropped and its text is kept.

    @tiptap/static-renderer

    Patch Changes

    • ceb0dac: Fixed table cell and header spans in the React static renderer.

    @tiptap/pm

    Patch Changes

    • ceb0dac: Fix the ./schema-list export map pointing types at dist/schema/, which is not emitted. Tools that read the types condition directly could not resolve @tiptap/pm/schema-list.

    @tiptap/extension-table

    Patch Changes

    • ceb0dac: Deleting the last row or column of a table no longer moves the cursor outside the table when there is content below it.

    @tiptap/extension-drag-handle-react

    Patch Changes

    • ceb0dac: Fixed the React DragHandle breaking drag-and-drop when onNodeChange is an inline callback, by no longer re-registering its plugin when a callback's identity changes.

    @tiptap/extension-mathematics

    Patch Changes

    • ceb0dac: Allow KaTeX 0.18 to be installed with the math extension

    @tiptap/extension-blockquote

    Patch Changes

    • ceb0dac: Fixed Backspace freezing after merging a paragraph into a blockquote.

    @tiptap/vue-3

    Minor Changes

    • ceb0dac: New Decorations API

      Finally the decorations API is here! Even though Decorations itself are nothing new in ProseMirror, the new API makes it much easier to use them in Tiptap without leaving your extensions.

      Decorations change how the document looks without changing the document itself. Highlighting search results, marking spelling mistakes, showing collaborator cursors, putting a drag handle next to every block.

      Until now you had to write a ProseMirror plugin by hand for this, keep the decoration set in plugin state, and map it forward on every transaction. Extensions can now declare decorations directly with a new addDecorations() hook.

      addDecorations() {
        return {
          create: ({ state }) =>
            // findMatches can be any function that returns an array of { from, to } ranges
            findMatches(state.doc).map(match =>
              Decoration.Inline(match.from, match.to, { class: 'highlight' }),
            ),
        }
      }

      There are three kinds. Decoration.Inline() styles a range of text. Decoration.Node() puts attributes on a block's DOM element. Decoration.Widget() renders your own element at a single position.

      Every extension that declares decorations is collected into one plugin, so several extensions can decorate the same document without fighting over it.

      Doing less work on every keystroke

      By default decorations are rebuilt whenever the document changes. That is fine for small documents and wasteful for large ones, so there are two ways to narrow it down.

      shouldUpdate() skips transactions you do not care about. If your decorations only depend on headings, ignore everything else.

      update: 'changedRanges' together with createInRange() only rescans the blocks that actually changed. On a long document this is the difference between scanning the whole thing on every keystroke and scanning one paragraph.

      For decorations driven by data outside the editor, like comments loaded from a server, use update: 'manual' and refresh them yourself with editor.commands.updateDecorations().

      React and Vue components as widgets

      ReactWidgetRenderer and VueWidgetRenderer render a real component into a widget decoration, inside your existing app context. Providers, context and stores work as usual.

      Widgets take a key. Reuse the same key and the component instance stays mounted while the document changes around it, so local state such as an open menu, a counter or a half-typed input survives editing. Use a stable id from your own data, not a position or a list index, otherwise the component remounts and loses that state.

      Widgets also accept the ProseMirror options side, relaxedSide, stopEvent and ignoreSelection.

      Documentation

    Open source →
    Additional notes

    @tiptap/vue-2

    Minor Changes

    • ceb0dac: New Decorations API

      Finally the decorations API is here! Even though Decorations itself are nothing new in ProseMirror, the new API makes it much easier to use them in Tiptap without leaving your extensions.

      Decorations change how the document looks without changing the document itself. Highlighting search results, marking spelling mistakes, showing collaborator cursors, putting a drag handle next to every block.

      Until now you had to write a ProseMirror plugin by hand for this, keep the decoration set in plugin state, and map it forward on every transaction. Extensions can now declare decorations directly with a new addDecorations() hook.

      addDecorations() {
        return {
          create: ({ state }) =>
            // findMatches can be any function that returns an array of { from, to } ranges
            findMatches(state.doc).map(match =>
              Decoration.Inline(match.from, match.to, { class: 'highlight' }),
            ),
        }
      }
      

      There are three kinds. Decoration.Inline() styles a range of text. Decoration.Node() puts attributes on a block's DOM element. Decoration.Widget() renders your own element at a single position.

      Every extension that declares decorations is collected into one plugin, so several extensions can decorate the same document without fighting over it.

      Doing less work on every keystroke

      By default decorations are rebuilt whenever the document changes. That is fine for small documents and wasteful for large ones, so there are two ways to narrow it down.

      shouldUpdate() skips transactions you do not care about. If your decorations only depend on headings, ignore everything else.

      update: 'changedRanges' together with createInRange() only rescans the blocks that actually changed. On a long document this is the difference between scanning the whole thing on every keystroke and scanning one paragraph.

      For decorations driven by data outside the editor, like comments loaded from a server, use update: 'manual' and refresh them yourself with editor.commands.updateDecorations().

      React and Vue components as widgets

      ReactWidgetRenderer and VueWidgetRenderer render a real component into a widget decoration, inside your existing app context. Providers, context and stores work as usual.

      Widgets take a key. Reuse the same key and the component instance stays mounted while the document changes around it, so local state such as an open menu, a counter or a half-typed input survives editing. Use a stable id from your own data, not a position or a list index, otherwise the component remounts and loses that state.

      Widgets also accept the ProseMirror options side, relaxedSide, stopEvent and ignoreSelection.

      Documentation

    Patch Changes

    • ceb0dac: Fix FloatingMenu not registering when the editor prop is provided synchronously, which prevented the menu from appearing
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-list

    Minor Changes

    • ceb0dac: ListKeymap now registers a Tab shortcut that sinks a top-level textblock into the previous list's last item. Pressing Tab at the start of a paragraph right after a bullet/ordered/task list moves the paragraph inside the last list item. The handler does nothing when the cursor is already inside a list item (sinkListItem keeps working), when there is no list before the paragraph, when the caret is mid-textblock, or when the selection is not a text selection (for example a gap cursor).

      @tiptap/core also exposes a new getPreviousBlockSibling($pos) helper that returns the block-level sibling before the cursor's textblock, or null at the first child of the block parent.

    Patch Changes

    • ceb0dac: Parse block math that follows an ordered list item without a blank line, both after the list and indented inside the item, instead of pulling it into the item's text.
    • ceb0dac: TaskItem: the checkbox label now also fills the wrapping label element, so accessibility audits no longer flag it as empty.
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/core

    Minor Changes

    • ceb0dac: ListKeymap now registers a Tab shortcut that sinks a top-level textblock into the previous list's last item. Pressing Tab at the start of a paragraph right after a bullet/ordered/task list moves the paragraph inside the last list item. The handler does nothing when the cursor is already inside a list item (sinkListItem keeps working), when there is no list before the paragraph, when the caret is mid-textblock, or when the selection is not a text selection (for example a gap cursor).

      @tiptap/core also exposes a new getPreviousBlockSibling($pos) helper that returns the block-level sibling before the cursor's textblock, or null at the first child of the block parent.

    • ceb0dac: New Decorations API

      Finally the decorations API is here! Even though Decorations itself are nothing new in ProseMirror, the new API makes it much easier to use them in Tiptap without leaving your extensions.

      Decorations change how the document looks without changing the document itself. Highlighting search results, marking spelling mistakes, showing collaborator cursors, putting a drag handle next to every block.

      Until now you had to write a ProseMirror plugin by hand for this, keep the decoration set in plugin state, and map it forward on every transaction. Extensions can now declare decorations directly with a new addDecorations() hook.

      addDecorations() {
        return {
          create: ({ state }) =>
            // findMatches can be any function that returns an array of { from, to } ranges
            findMatches(state.doc).map(match =>
              Decoration.Inline(match.from, match.to, { class: 'highlight' }),
            ),
        }
      }
      

      There are three kinds. Decoration.Inline() styles a range of text. Decoration.Node() puts attributes on a block's DOM element. Decoration.Widget() renders your own element at a single position.

      Every extension that declares decorations is collected into one plugin, so several extensions can decorate the same document without fighting over it.

      Doing less work on every keystroke

      By default decorations are rebuilt whenever the document changes. That is fine for small documents and wasteful for large ones, so there are two ways to narrow it down.

      shouldUpdate() skips transactions you do not care about. If your decorations only depend on headings, ignore everything else.

      update: 'changedRanges' together with createInRange() only rescans the blocks that actually changed. On a long document this is the difference between scanning the whole thing on every keystroke and scanning one paragraph.

      For decorations driven by data outside the editor, like comments loaded from a server, use update: 'manual' and refresh them yourself with editor.commands.updateDecorations().

      React and Vue components as widgets

      ReactWidgetRenderer and VueWidgetRenderer render a real component into a widget decoration, inside your existing app context. Providers, context and stores work as usual.

      Widgets take a key. Reuse the same key and the component instance stays mounted while the document changes around it, so local state such as an open menu, a counter or a half-typed input survives editing. Use a stable id from your own data, not a position or a list index, otherwise the component remounts and loses that state.

      Widgets also accept the ProseMirror options side, relaxedSide, stopEvent and ignoreSelection.

      Documentation

    Patch Changes

    • ceb0dac: Fixed insertContent, insertContentAt and setContent failing when prosemirror-model is loaded more than once.
    • Updated dependencies [ceb0dac]

    @tiptap/starter-kit

    Patch Changes

    @tiptap/react

    Minor Changes

    • ceb0dac: New Decorations API

      Finally the decorations API is here! Even though Decorations itself are nothing new in ProseMirror, the new API makes it much easier to use them in Tiptap without leaving your extensions.

      Decorations change how the document looks without changing the document itself. Highlighting search results, marking spelling mistakes, showing collaborator cursors, putting a drag handle next to every block.

      Until now you had to write a ProseMirror plugin by hand for this, keep the decoration set in plugin state, and map it forward on every transaction. Extensions can now declare decorations directly with a new addDecorations() hook.

      addDecorations() {
        return {
          create: ({ state }) =>
            // findMatches can be any function that returns an array of { from, to } ranges
            findMatches(state.doc).map(match =>
              Decoration.Inline(match.from, match.to, { class: 'highlight' }),
            ),
        }
      }
      

      There are three kinds. Decoration.Inline() styles a range of text. Decoration.Node() puts attributes on a block's DOM element. Decoration.Widget() renders your own element at a single position.

      Every extension that declares decorations is collected into one plugin, so several extensions can decorate the same document without fighting over it.

      Doing less work on every keystroke

      By default decorations are rebuilt whenever the document changes. That is fine for small documents and wasteful for large ones, so there are two ways to narrow it down.

      shouldUpdate() skips transactions you do not care about. If your decorations only depend on headings, ignore everything else.

      update: 'changedRanges' together with createInRange() only rescans the blocks that actually changed. On a long document this is the difference between scanning the whole thing on every keystroke and scanning one paragraph.

      For decorations driven by data outside the editor, like comments loaded from a server, use update: 'manual' and refresh them yourself with editor.commands.updateDecorations().

      React and Vue components as widgets

      ReactWidgetRenderer and VueWidgetRenderer render a real component into a widget decoration, inside your existing app context. Providers, context and stores work as usual.

      Widgets take a key. Reuse the same key and the component instance stays mounted while the document changes around it, so local state such as an open menu, a counter or a half-typed input survives editing. Use a stable id from your own data, not a position or a list index, otherwise the component remounts and loses that state.

      Widgets also accept the ProseMirror options side, relaxedSide, stopEvent and ignoreSelection.

      Documentation

    Patch Changes

    • ceb0dac: React node views no longer show the selected state when the selection covers a position the node view has moved away from.
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/markdown

    Patch Changes

    • ceb0dac: Markdown with inline HTML such as an unclosed <b> tag no longer parses into an invalid document. The tag is dropped and its text is kept.
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/static-renderer

    Patch Changes

    • ceb0dac: Fixed table cell and header spans in the React static renderer.
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/pm

    Patch Changes

    • ceb0dac: Fix the ./schema-list export map pointing types at dist/schema/, which is not emitted. Tools that read the types condition directly could not resolve @tiptap/pm/schema-list.

    @tiptap/extension-table

    Patch Changes

    • ceb0dac: Deleting the last row or column of a table no longer moves the cursor outside the table when there is content below it.
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-drag-handle-react

    Patch Changes

    • ceb0dac: Fixed the React DragHandle breaking drag-and-drop when onNodeChange is an inline callback, by no longer re-registering its plugin when a callback's identity changes.
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-mathematics

    Patch Changes

    • ceb0dac: Allow KaTeX 0.18 to be installed with the math extension
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-blockquote

    Patch Changes

    • ceb0dac: Fixed Backspace freezing after merging a paragraph into a blockquote.
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/vue-3

    Minor Changes

    • ceb0dac: New Decorations API

      Finally the decorations API is here! Even though Decorations itself are nothing new in ProseMirror, the new API makes it much easier to use them in Tiptap without leaving your extensions.

      Decorations change how the document looks without changing the document itself. Highlighting search results, marking spelling mistakes, showing collaborator cursors, putting a drag handle next to every block.

      Until now you had to write a ProseMirror plugin by hand for this, keep the decoration set in plugin state, and map it forward on every transaction. Extensions can now declare decorations directly with a new addDecorations() hook.

      addDecorations() {
        return {
          create: ({ state }) =>
            // findMatches can be any function that returns an array of { from, to } ranges
            findMatches(state.doc).map(match =>
              Decoration.Inline(match.from, match.to, { class: 'highlight' }),
            ),
        }
      }
      

      There are three kinds. Decoration.Inline() styles a range of text. Decoration.Node() puts attributes on a block's DOM element. Decoration.Widget() renders your own element at a single position.

      Every extension that declares decorations is collected into one plugin, so several extensions can decorate the same document without fighting over it.

      Doing less work on every keystroke

      By default decorations are rebuilt whenever the document changes. That is fine for small documents and wasteful for large ones, so there are two ways to narrow it down.

      shouldUpdate() skips transactions you do not care about. If your decorations only depend on headings, ignore everything else.

      update: 'changedRanges' together with createInRange() only rescans the blocks that actually changed. On a long document this is the difference between scanning the whole thing on every keystroke and scanning one paragraph.

      For decorations driven by data outside the editor, like comments loaded from a server, use update: 'manual' and refresh them yourself with editor.commands.updateDecorations().

      React and Vue components as widgets

      ReactWidgetRenderer and VueWidgetRenderer render a real component into a widget decoration, inside your existing app context. Providers, context and stores work as usual.

      Widgets take a key. Reuse the same key and the component instance stays mounted while the document changes around it, so local state such as an open menu, a counter or a half-typed input survives editing. Use a stable id from your own data, not a position or a list index, otherwise the component remounts and loses that state.

      Widgets also accept the ProseMirror options side, relaxedSide, stopEvent and ignoreSelection.

      Documentation

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-list-item

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-list-keymap

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-task-item

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-task-list

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-bullet-list

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-ordered-list

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-audio

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-bold

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-bubble-menu

    Patch Changes

    @tiptap/extension-code

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-code-block

    Patch Changes

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-drag-handle

    Patch Changes

    @tiptap/extension-emoji

    Patch Changes

    @tiptap/extension-file-handler

    Patch Changes

    @tiptap/extension-find-and-replace

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    @tiptap/extension-hard-break

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-heading

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-highlight

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-horizontal-rule

    Patch Changes

    @tiptap/extension-image

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-link

    Patch Changes

    @tiptap/extension-mention

    Patch Changes

    @tiptap/extension-node-range

    Patch Changes

    @tiptap/extension-paragraph

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-ruby-text

    Patch Changes

    @tiptap/extension-strike

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-subscript

    Patch Changes

    @tiptap/extension-superscript

    Patch Changes

    @tiptap/extension-table-of-contents

    Patch Changes

    @tiptap/extension-text

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-text-align

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-text-style

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-twitch

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-typography

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-underline

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extension-unique-id

    Patch Changes

    @tiptap/extension-youtube

    Patch Changes

    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]
    • Updated dependencies [ceb0dac]

    @tiptap/extensions

    Patch Changes

    @tiptap/html

    Patch Changes

    @tiptap/suggestion

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    Open source →
  7. 3.29.228 Jul 2026
    Release notes

    @tiptap/react

    Patch Changes

    • Fixed the caret jumping back to the previous block when pressing Enter inside a React node view.

    @tiptap/extension-find-and-replace

    Patch Changes

    • Ensure only the active find-and-replace result keeps the current-result highlight while navigating matches.
    Open source →
    Additional notes

    @tiptap/react

    Patch Changes

    @tiptap/extension-find-and-replace

    Patch Changes

    @tiptap/extension-drag-handle-react

    Patch Changes

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-list-item

    Patch Changes

    @tiptap/extension-list-keymap

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/extension-task-item

    Patch Changes

    @tiptap/extension-task-list

    Patch Changes

    @tiptap/core

    Patch Changes

    @tiptap/extension-audio

    Patch Changes

    @tiptap/extension-blockquote

    Patch Changes

    @tiptap/extension-bold

    Patch Changes

    @tiptap/extension-bubble-menu

    Patch Changes

    @tiptap/extension-bullet-list

    Patch Changes

    @tiptap/extension-code

    Patch Changes

    @tiptap/extension-code-block

    Patch Changes

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    @tiptap/extension-drag-handle

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-emoji

    Patch Changes

    @tiptap/extension-file-handler

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/extension-hard-break

    Patch Changes

    @tiptap/extension-heading

    Patch Changes

    @tiptap/extension-highlight

    Patch Changes

    @tiptap/extension-horizontal-rule

    Patch Changes

    @tiptap/extension-image

    Patch Changes

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    @tiptap/extension-link

    Patch Changes

    @tiptap/extension-list

    Patch Changes

    @tiptap/extension-mathematics

    Patch Changes

    @tiptap/extension-mention

    Patch Changes

    @tiptap/extension-node-range

    Patch Changes

    @tiptap/extension-ordered-list

    Patch Changes

    @tiptap/extension-paragraph

    Patch Changes

    @tiptap/extension-ruby-text

    Patch Changes

    @tiptap/extension-strike

    Patch Changes

    @tiptap/extension-subscript

    Patch Changes

    @tiptap/extension-superscript

    Patch Changes

    @tiptap/extension-table

    Patch Changes

    @tiptap/extension-table-of-contents

    Patch Changes

    @tiptap/extension-text

    Patch Changes

    @tiptap/extension-text-align

    Patch Changes

    @tiptap/extension-text-style

    Patch Changes

    @tiptap/extension-twitch

    Patch Changes

    @tiptap/extension-typography

    Patch Changes

    @tiptap/extension-underline

    Patch Changes

    @tiptap/extension-unique-id

    Patch Changes

    @tiptap/extension-youtube

    Patch Changes

    @tiptap/extensions

    Patch Changes

    @tiptap/html

    Patch Changes

    @tiptap/markdown

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    @tiptap/static-renderer

    Patch Changes

    @tiptap/suggestion

    Patch Changes

    @tiptap/vue-2

    Patch Changes

    @tiptap/vue-3

    Patch Changes

    Open source →
  8. 3.29.127 Jul 2026
    Release notes

    @tiptap/react

    Patch Changes

    • 6d901e7: Fix caret placement after splitting a block rendered with a React NodeView.
    Open source →
    Additional notes

    @tiptap/react

    Patch Changes

    @tiptap/extension-drag-handle-react

    Patch Changes

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-list-item

    Patch Changes

    @tiptap/extension-list-keymap

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/extension-task-item

    Patch Changes

    @tiptap/extension-task-list

    Patch Changes

    @tiptap/core

    Patch Changes

    @tiptap/extension-audio

    Patch Changes

    @tiptap/extension-blockquote

    Patch Changes

    @tiptap/extension-bold

    Patch Changes

    @tiptap/extension-bubble-menu

    Patch Changes

    @tiptap/extension-bullet-list

    Patch Changes

    @tiptap/extension-code

    Patch Changes

    @tiptap/extension-code-block

    Patch Changes

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    @tiptap/extension-drag-handle

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-emoji

    Patch Changes

    @tiptap/extension-file-handler

    Patch Changes

    @tiptap/extension-find-and-replace

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/extension-hard-break

    Patch Changes

    @tiptap/extension-heading

    Patch Changes

    @tiptap/extension-highlight

    Patch Changes

    @tiptap/extension-horizontal-rule

    Patch Changes

    @tiptap/extension-image

    Patch Changes

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    @tiptap/extension-link

    Patch Changes

    @tiptap/extension-list

    Patch Changes

    @tiptap/extension-mathematics

    Patch Changes

    @tiptap/extension-mention

    Patch Changes

    @tiptap/extension-node-range

    Patch Changes

    @tiptap/extension-ordered-list

    Patch Changes

    @tiptap/extension-paragraph

    Patch Changes

    @tiptap/extension-ruby-text

    Patch Changes

    @tiptap/extension-strike

    Patch Changes

    @tiptap/extension-subscript

    Patch Changes

    @tiptap/extension-superscript

    Patch Changes

    @tiptap/extension-table

    Patch Changes

    @tiptap/extension-table-of-contents

    Patch Changes

    @tiptap/extension-text

    Patch Changes

    @tiptap/extension-text-align

    Patch Changes

    @tiptap/extension-text-style

    Patch Changes

    @tiptap/extension-twitch

    Patch Changes

    @tiptap/extension-typography

    Patch Changes

    @tiptap/extension-underline

    Patch Changes

    @tiptap/extension-unique-id

    Patch Changes

    @tiptap/extension-youtube

    Patch Changes

    @tiptap/extensions

    Patch Changes

    @tiptap/html

    Patch Changes

    @tiptap/markdown

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    @tiptap/static-renderer

    Patch Changes

    @tiptap/suggestion

    Patch Changes

    @tiptap/vue-2

    Patch Changes

    @tiptap/vue-3

    Patch Changes

    Open source →
  9. 3.29.024 Jul 2026
    Release notes

    @tiptap/extension-ruby-text

    Minor Changes

    • Add official RubyText extension for HTML ruby text annotations with non-editable annotations and mark-based document storage. The click-to-edit annotation editor can be replaced with a custom element via the renderAnnotationEditor option.

    @tiptap/core

    Patch Changes

    • Fix a TypeScript build error in isAndroid() where comparing navigator.platform against the literal 'Android' with === could fail to compile under some lib.dom.d.ts typings ("types have no overlap"). Switched to the same .includes() pattern already used by isiOS(), which is not affected by this TypeScript narrowing issue. No runtime behavior change.
    • Fixed a bug where deleting an AllSelection (for example right after Ctrl/Cmd+A) left a lingering "phantom" selection highlight over the emptied document instead of a text cursor. deleteSelection now collapses the selection to a cursor.
    • Fix input rules crashing when the matched text spans an inline atom node like a mention.
    • Node view getPos() now returns undefined instead of throwing when the position cannot be resolved yet, for example when React 19 renders a node view component while the editor view is still updating.
    • Fixed onContentError throwing when calling editor.commands from inside the handler on initial load with invalid content. The editor now has a usable state (seeded from the stripped fallback document) before onContentError fires.
    • Fix editor.$pos() returning the wrong node inside container nodes, for example the list item instead of the list.
    • Add insertDefaultBlock to insert the default textblock allowed at a position. It accepts an optional position, attributes, content, and selection-update option.
    • Updated dependencies [e9942fc]

    @tiptap/extension-find-and-replace

    Minor Changes

    • Added a new @tiptap/extension-find-and-replace extension. It searches the document for a term, highlights all matches with decorations, and replaces the current or all matches. Supports case-sensitive, whole-word, and RE2-compatible regex search, plus commands to jump between results. Regex search avoids catastrophic backtracking but does not support lookarounds or backreferences.

    @tiptap/pm

    Patch Changes

    • Bump prosemirror-model to ^1.25.11, fixing pasting content copied from the editor inserting extra empty paragraphs (a regression introduced in prosemirror-view 1.42.0).

    @tiptap/extension-hard-break

    Patch Changes

    • Fixed a bug where inserted hard breaks would not scroll the view on insertion via commands.

    @tiptap/extension-code-block

    Patch Changes

    • Fixed a bug where pressing ArrowUp in a code block that is the first node in the document did nothing, leaving no way to insert content above it. A new default block is now inserted above the code block, mirroring the existing ArrowDown behavior. The behavior can be disabled via the new exitOnArrowUp option.

    @tiptap/extension-table

    Patch Changes

    • Fix inserting a table with an empty cell or header (e.g. via insertContent/insertContentAt) throwing RangeError: Invalid content for node tableCell/tableHeader: <>. Empty <td>/<th> elements are now backfilled with the cell's default block content, matching the behavior you already get from setContent.
    • Keep line breaks inside table cells when serializing to markdown. Hard breaks and paragraph breaks in a cell are now written as <br> instead of being collapsed into a space, so they survive a parse/serialize round trip.

    @tiptap/markdown

    Patch Changes

    • Fixed blank lines being dropped after block elements (headings, tables, etc.) when parsing markdown. Blank lines were being absorbed into the block token instead of being preserved, causing content to lose a blank line on each parse/serialize cycle.

    @tiptap/react

    Patch Changes

    • Fixed useEditorState not re-rendering components when editor.setEditable() changes the editor's editable state, since that call only emits an update event and never a transaction.

    @tiptap/vue-3

    Patch Changes

    • Fix <node-view-content as="tbody"> (and similar restricted-content elements) rendering with an extra wrapper <div> nested inside them, which broke tables in Vue node views. Note: keep <node-view-content> mounted (use v-show, not v-if) — conditionally remounting it can leave ProseMirror attached to the old element.

    @tiptap/extension-image

    Patch Changes

    • Fix resizable images not synchronizing rendered attributes after updates

    @tiptap/static-renderer

    Patch Changes

    • Fix Markdown table serialization for merged cells by preserving the correct column layout for rowspan and colspan.

    @tiptap/extension-link

    Minor Changes

    • Typing or pasting Markdown link syntax like [Tiptap](https://tiptap.dev) or [Tiptap](https://tiptap.dev "Rich text editor") can now automatically be converted into a link. The behavior is opt-in, enable it with the new markdownLinks option.
    Open source →
    Additional notes

    @tiptap/extension-ruby-text

    Minor Changes

    • e9942fc: Add official RubyText extension for HTML ruby text annotations with non-editable annotations and mark-based document storage. The click-to-edit annotation editor can be replaced with a custom element via the renderAnnotationEditor option.

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/core

    Patch Changes

    • e9942fc: Fix a TypeScript build error in isAndroid() where comparing navigator.platform against the literal 'Android' with === could fail to compile under some lib.dom.d.ts typings ("types have no overlap"). Switched to the same .includes() pattern already used by isiOS(), which is not affected by this TypeScript narrowing issue. No runtime behavior change.
    • e9942fc: Fixed a bug where deleting an AllSelection (for example right after Ctrl/Cmd+A) left a lingering "phantom" selection highlight over the emptied document instead of a text cursor. deleteSelection now collapses the selection to a cursor.
    • e9942fc: Fix input rules crashing when the matched text spans an inline atom node like a mention.
    • e9942fc: Node view getPos() now returns undefined instead of throwing when the position cannot be resolved yet, for example when React 19 renders a node view component while the editor view is still updating.
    • e9942fc: Fixed onContentError throwing when calling editor.commands from inside the handler on initial load with invalid content. The editor now has a usable state (seeded from the stripped fallback document) before onContentError fires.
    • e9942fc: Fix editor.$pos() returning the wrong node inside container nodes, for example the list item instead of the list.
    • e9942fc: Add insertDefaultBlock to insert the default textblock allowed at a position. It accepts an optional position, attributes, content, and selection-update option.
    • Updated dependencies [e9942fc]

    @tiptap/extension-find-and-replace

    Minor Changes

    • e9942fc: Added a new @tiptap/extension-find-and-replace extension. It searches the document for a term, highlights all matches with decorations, and replaces the current or all matches. Supports case-sensitive, whole-word, and RE2-compatible regex search, plus commands to jump between results. Regex search avoids catastrophic backtracking but does not support lookarounds or backreferences.

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/pm

    Patch Changes

    • e9942fc: Bump prosemirror-model to ^1.25.11, fixing pasting content copied from the editor inserting extra empty paragraphs (a regression introduced in prosemirror-view 1.42.0).

    @tiptap/extension-hard-break

    Patch Changes

    • e9942fc: Fixed a bug where inserted hard breaks would not scroll the view on insertion via commands.
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-code-block

    Patch Changes

    • e9942fc: Fixed a bug where pressing ArrowUp in a code block that is the first node in the document did nothing, leaving no way to insert content above it. A new default block is now inserted above the code block, mirroring the existing ArrowDown behavior. The behavior can be disabled via the new exitOnArrowUp option.
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-table

    Patch Changes

    • e9942fc: Fix inserting a table with an empty cell or header (e.g. via insertContent/insertContentAt) throwing RangeError: Invalid content for node tableCell/tableHeader: <>. Empty <td>/<th> elements are now backfilled with the cell's default block content, matching the behavior you already get from setContent.
    • e9942fc: Keep line breaks inside table cells when serializing to markdown. Hard breaks and paragraph breaks in a cell are now written as <br> instead of being collapsed into a space, so they survive a parse/serialize round trip.
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/markdown

    Patch Changes

    • e9942fc: Fixed blank lines being dropped after block elements (headings, tables, etc.) when parsing markdown. Blank lines were being absorbed into the block token instead of being preserved, causing content to lose a blank line on each parse/serialize cycle.
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/react

    Patch Changes

    • e9942fc: Fixed useEditorState not re-rendering components when editor.setEditable() changes the editor's editable state, since that call only emits an update event and never a transaction.
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/vue-3

    Patch Changes

    • e9942fc: Fix <node-view-content as="tbody"> (and similar restricted-content elements) rendering with an extra wrapper <div> nested inside them, which broke tables in Vue node views. Note: keep <node-view-content> mounted (use v-show, not v-if) — conditionally remounting it can leave ProseMirror attached to the old element.
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-image

    Patch Changes

    • e9942fc: Fix resizable images not synchronizing rendered attributes after updates
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/static-renderer

    Patch Changes

    • e9942fc: Fix Markdown table serialization for merged cells by preserving the correct column layout for rowspan and colspan.
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-link

    Minor Changes

    • e9942fc: Typing or pasting Markdown link syntax like [Tiptap](https://tiptap.dev) or [Tiptap](https://tiptap.dev "Rich text editor") can now automatically be converted into a link. The behavior is opt-in, enable it with the new markdownLinks option.

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-audio

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-blockquote

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-bold

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-bubble-menu

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-code

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-code-block-lowlight

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-collaboration

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-collaboration-caret

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-details

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-document

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-drag-handle

    Patch Changes

    @tiptap/extension-emoji

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-file-handler

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-floating-menu

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-heading

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-highlight

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-horizontal-rule

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-invisible-characters

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-italic

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-list

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-mathematics

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-mention

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-node-range

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-paragraph

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-strike

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-subscript

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-superscript

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-table-of-contents

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-text

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-text-align

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-text-style

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-twitch

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-typography

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-underline

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-unique-id

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-youtube

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extensions

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/html

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/suggestion

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/vue-2

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-drag-handle-react

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-table-header

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-table-row

    Patch Changes

    • Updated dependencies [e9942fc]
    • Updated dependencies [e9942fc]

    @tiptap/extension-list-item

    Patch Changes

    @tiptap/extension-list-keymap

    Patch Changes

    @tiptap/extension-task-item

    Patch Changes

    @tiptap/extension-task-list

    Patch Changes

    @tiptap/extension-bullet-list

    Patch Changes

    @tiptap/extension-ordered-list

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    Open source →
  10. 3.28.015 Jul 2026
    Release notes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-list

    Patch Changes

    @tiptap/react

    Patch Changes

    • 8614730: Batch React node view portal store notifications that happen in the same microtask to avoid nested update depth warnings when many node views mount together.
    • 8614730: Bind onMount and onUnmount event handlers when initializing an Editor with useEditor hook.
    • @tiptap/[email protected]

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    @tiptap/extension-drag-handle

    Patch Changes

    @tiptap/extension-youtube

    Minor Changes

    • 8614730: Allow string width and height values like '100%' or '20rem' in the YouTube extension. Non-numeric values in parsed HTML are now preserved instead of being converted to numbers.
    Open source →
    Additional notes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-list

    Patch Changes

    • 8614730: Fix markdown parsing a line like (216) 555-1234 as an ordered list. A number followed by ) mid-line is no longer treated as a list marker.
    • @tiptap/[email protected]

    @tiptap/react

    Patch Changes

    • 8614730: Batch React node view portal store notifications that happen in the same microtask to avoid nested update depth warnings when many node views mount together.
    • 8614730: Bind onMount and onUnmount event handlers when initializing an Editor with useEditor hook.
    • @tiptap/[email protected]

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    @tiptap/extension-drag-handle

    Patch Changes

    @tiptap/extension-youtube

    Minor Changes

    • 8614730: Allow string width and height values like '100%' or '20rem' in the YouTube extension. Non-numeric values in parsed HTML are now preserved instead of being converted to numbers.

    Patch Changes

    @tiptap/extension-list-item

    Patch Changes

    @tiptap/extension-list-keymap

    Patch Changes

    @tiptap/extension-task-item

    Patch Changes

    @tiptap/extension-task-list

    Patch Changes

    @tiptap/extension-bullet-list

    Patch Changes

    @tiptap/extension-ordered-list

    Patch Changes

    @tiptap/extension-drag-handle-react

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/core

    Patch Changes

    @tiptap/extension-audio

    Patch Changes

    @tiptap/extension-blockquote

    Patch Changes

    @tiptap/extension-bold

    Patch Changes

    @tiptap/extension-bubble-menu

    Patch Changes

    @tiptap/extension-code

    Patch Changes

    @tiptap/extension-code-block

    Patch Changes

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    @tiptap/extension-emoji

    Patch Changes

    @tiptap/extension-file-handler

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/extension-hard-break

    Patch Changes

    @tiptap/extension-heading

    Patch Changes

    @tiptap/extension-highlight

    Patch Changes

    @tiptap/extension-horizontal-rule

    Patch Changes

    @tiptap/extension-image

    Patch Changes

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    @tiptap/extension-link

    Patch Changes

    @tiptap/extension-mathematics

    Patch Changes

    @tiptap/extension-mention

    Patch Changes

    @tiptap/extension-node-range

    Patch Changes

    @tiptap/extension-paragraph

    Patch Changes

    @tiptap/extension-strike

    Patch Changes

    @tiptap/extension-subscript

    Patch Changes

    @tiptap/extension-superscript

    Patch Changes

    @tiptap/extension-table

    Patch Changes

    @tiptap/extension-table-of-contents

    Patch Changes

    @tiptap/extension-text

    Patch Changes

    @tiptap/extension-text-align

    Patch Changes

    @tiptap/extension-text-style

    Patch Changes

    @tiptap/extension-twitch

    Patch Changes

    @tiptap/extension-typography

    Patch Changes

    @tiptap/extension-underline

    Patch Changes

    @tiptap/extension-unique-id

    Patch Changes

    @tiptap/extensions

    Patch Changes

    @tiptap/html

    Patch Changes

    @tiptap/markdown

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    @tiptap/static-renderer

    Patch Changes

    @tiptap/suggestion

    Patch Changes

    @tiptap/vue-2

    Patch Changes

    @tiptap/vue-3

    Patch Changes

    Open source →
  11. 3.27.413 Jul 2026
    Release notes

    @tiptap/extensions

    Patch Changes

    • 0fde1e8: Fixed the Selection extension leaving the native browser selection visible on blur, where it overlapped the selection decoration. The native selection is now cleared on blur and restored on focus.
    • @tiptap/[email protected]

    @tiptap/extension-blockquote

    Patch Changes

    • 0fde1e8: Fix a crash when pressing backspace at the very start of the document with a leading image. The blockquote backspace handler dereferenced an undefined parent at the top (doc) level, throwing TypeError: Cannot read properties of undefined (reading 'type'). It now bails out so backspace is a no-op at the document start.
    • 0fde1e8: Add @tiptap/pm as a peer dependency so bundlers resolve ProseMirror packages from the app instead of duplicating prosemirror-model inside @tiptap/extension-blockquote.
    • @tiptap/[email protected]

    @tiptap/extension-table

    Patch Changes

    • 0fde1e8: Fix <col width> in a table's <colgroup> being ignored when parsing HTML. The width of the first column was always dropped because the cell index 0 failed a truthiness check, and header cells (<th>) never read the colgroup at all. Both table cells and table headers now fall back to the matching <col> element's width attribute when they have no colwidth attribute of their own.
    • 0fde1e8: Fix pipe characters inside backtick inline code spans being incorrectly treated as table column delimiters in both leading-pipe and pipeless (no leading |) GFM tables. Cells containing expressions like `||` or `a || b` now parse correctly instead of splitting into extra columns and losing their code formatting.
    • @tiptap/[email protected]

    @tiptap/extension-list

    Patch Changes

    • 0fde1e8: Fix a markdown parsing bug where a plain bullet (- item) nested under a task-list parent (- [ ]) was silently dropped from the parsed document. The task-list tokenizer's nested parser stopped at the first non-checkbox line and discarded everything after it; that remainder is now lexed and kept as sibling blocks (a bullet list or paragraph inside the parent task item), matching how mixed lists already behave at the top level.
    • @tiptap/[email protected]

    @tiptap/react

    Patch Changes

    • 0fde1e8: Add a use client directive so @tiptap/react can be imported from React Server Components without crashing. Core symbols re-exported through @tiptap/react now cross the client boundary too, so import them from @tiptap/core directly in server code.
    Open source →
  12. 3.27.37 Jul 2026
    Release notes

    @tiptap/core

    Patch Changes

    • 94de762: Fix deleteSelection to delete content across all selection ranges instead of only the first range. This restores multi-cell table selections and other custom selections with multiple ranges.
    • @tiptap/[email protected]

    @tiptap/extension-list

    Patch Changes

    • 94de762: Fix markdown parsing bugs where block elements right after an ordered list item (with no blank line in between) were wrongly treated as lazy continuation of the list item, instead of terminating the list the way other markdown parsers do:

      • Thematic breaks (---, ***, ___, * * *) were swallowed into the list item as literal paragraph text — along with every line after them. They now terminate the list and become a horizontal rule.
      • Fenced code blocks (``` and ~~~) were nested inside the list item. They now terminate the list and become a top-level code block.
      • Unindented bullet markers (- item) were nested inside the ordered list item. They now terminate the ordered list and start a new top-level bullet list. Indented bullets still nest inside the item as before.

      An indented ***/___ inside item content is now also parsed as a horizontal rule inside the item instead of literal text. A --- line directly below item paragraph text keeps its current behavior because it is a setext heading underline per CommonMark, not a thematic break.

    • 94de762: Fix indented ordered list items (e.g. one leading space before the marker, as happens when a top-level ordered list is itself nested inside another list) losing inline formatting during markdown parsing. The custom ordered-list markdown tokenizer built its nested structure with a hardcoded base indentation of 0, so an item whose actual indentation was non-zero never matched, causing the tokenizer to silently produce zero items and bail out — falling back to a path that left the item's content as literal, unparsed text instead of running it through inline tokenization (bold, italic, etc. were lost). The base indentation is now taken from the first collected item instead of being hardcoded.

    • Updated dependencies [94de762]

    @tiptap/extensions

    Patch Changes

    • 94de762: Fixed placeholder flickering and disappearance on large documents. Replaced the viewport-based decoration scan with an incremental StateField<DecorationSet> that only re-computes decorations for top-level nodes touched by each transaction. This eliminates the dependency on DOM measurement (posAtCoords), requestAnimationFrame scheduling, and scroll listeners that caused flickering under collaboration, occlusion, and rapid edits.
    Open source →
    Additional notes

    @tiptap/core

    Patch Changes

    • 94de762: Fix deleteSelection to delete content across all selection ranges instead of only the first range. This restores multi-cell table selections and other custom selections with multiple ranges.
    • @tiptap/[email protected]

    @tiptap/extension-list

    Patch Changes

    • 94de762: Fix markdown parsing bugs where block elements right after an ordered list item (with no blank line in between) were wrongly treated as lazy continuation of the list item, instead of terminating the list the way other markdown parsers do:

      • Thematic breaks (---, ***, ___, * * *) were swallowed into the list item as literal paragraph text — along with every line after them. They now terminate the list and become a horizontal rule.
      • Fenced code blocks (``` and ~~~) were nested inside the list item. They now terminate the list and become a top-level code block.
      • Unindented bullet markers (- item) were nested inside the ordered list item. They now terminate the ordered list and start a new top-level bullet list. Indented bullets still nest inside the item as before.

      An indented ***/___ inside item content is now also parsed as a horizontal rule inside the item instead of literal text. A --- line directly below item paragraph text keeps its current behavior because it is a setext heading underline per CommonMark, not a thematic break.

    • 94de762: Fix indented ordered list items (e.g. one leading space before the marker, as happens when a top-level ordered list is itself nested inside another list) losing inline formatting during markdown parsing. The custom ordered-list markdown tokenizer built its nested structure with a hardcoded base indentation of 0, so an item whose actual indentation was non-zero never matched, causing the tokenizer to silently produce zero items and bail out — falling back to a path that left the item's content as literal, unparsed text instead of running it through inline tokenization (bold, italic, etc. were lost). The base indentation is now taken from the first collected item instead of being hardcoded.

    • Updated dependencies [94de762]

    @tiptap/extensions

    Patch Changes

    • 94de762: Fixed placeholder flickering and disappearance on large documents. Replaced the viewport-based decoration scan with an incremental StateField<DecorationSet> that only re-computes decorations for top-level nodes touched by each transaction. This eliminates the dependency on DOM measurement (posAtCoords), requestAnimationFrame scheduling, and scroll listeners that caused flickering under collaboration, occlusion, and rapid edits.
    • Updated dependencies [94de762]

    @tiptap/extension-audio

    Patch Changes

    @tiptap/extension-blockquote

    Patch Changes

    @tiptap/extension-bold

    Patch Changes

    @tiptap/extension-bubble-menu

    Patch Changes

    @tiptap/extension-code

    Patch Changes

    @tiptap/extension-code-block

    Patch Changes

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    @tiptap/extension-drag-handle

    Patch Changes

    @tiptap/extension-emoji

    Patch Changes

    @tiptap/extension-file-handler

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    @tiptap/extension-hard-break

    Patch Changes

    @tiptap/extension-heading

    Patch Changes

    @tiptap/extension-highlight

    Patch Changes

    @tiptap/extension-horizontal-rule

    Patch Changes

    @tiptap/extension-image

    Patch Changes

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    @tiptap/extension-link

    Patch Changes

    @tiptap/extension-mathematics

    Patch Changes

    @tiptap/extension-mention

    Patch Changes

    @tiptap/extension-node-range

    Patch Changes

    @tiptap/extension-paragraph

    Patch Changes

    @tiptap/extension-strike

    Patch Changes

    @tiptap/extension-subscript

    Patch Changes

    @tiptap/extension-superscript

    Patch Changes

    @tiptap/extension-table

    Patch Changes

    @tiptap/extension-table-of-contents

    Patch Changes

    @tiptap/extension-text

    Patch Changes

    @tiptap/extension-text-align

    Patch Changes

    @tiptap/extension-text-style

    Patch Changes

    @tiptap/extension-twitch

    Patch Changes

    @tiptap/extension-typography

    Patch Changes

    @tiptap/extension-underline

    Patch Changes

    @tiptap/extension-unique-id

    Patch Changes

    @tiptap/extension-youtube

    Patch Changes

    @tiptap/html

    Patch Changes

    @tiptap/markdown

    Patch Changes

    @tiptap/react

    Patch Changes

    @tiptap/static-renderer

    Patch Changes

    @tiptap/suggestion

    Patch Changes

    @tiptap/vue-2

    Patch Changes

    @tiptap/vue-3

    Patch Changes

    @tiptap/extension-list-item

    Patch Changes

    • Updated dependencies [94de762]
    • Updated dependencies [94de762]

    @tiptap/extension-list-keymap

    Patch Changes

    • Updated dependencies [94de762]
    • Updated dependencies [94de762]

    @tiptap/extension-task-item

    Patch Changes

    • Updated dependencies [94de762]
    • Updated dependencies [94de762]

    @tiptap/extension-task-list

    Patch Changes

    • Updated dependencies [94de762]
    • Updated dependencies [94de762]

    @tiptap/extension-bullet-list

    Patch Changes

    • Updated dependencies [94de762]
    • Updated dependencies [94de762]

    @tiptap/extension-ordered-list

    Patch Changes

    • Updated dependencies [94de762]
    • Updated dependencies [94de762]

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    @tiptap/extension-drag-handle-react

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    Open source →
  13. 3.27.26 Jul 2026
    Release notes

    @tiptap/extension-emoji

    Patch Changes

    • ceebb31: Fix arrow key navigation past emoji nodes in Firefox. Previously, pressing ArrowLeft with the cursor adjacent to an inline non-selectable emoji node at a paragraph boundary would not move the cursor in Firefox. The cursor now correctly skips over emoji nodes in both directions.
    • Updated dependencies [ceebb31]

    @tiptap/extension-file-handler

    Patch Changes

    • ceebb31: Add consumePasteEvent option to the file-handler extension. When true, handlePaste returns true even when HTML content is present in the clipboard, preventing paste rules from other extensions from creating duplicate content. Default is false.
    • Updated dependencies [ceebb31]

    @tiptap/extension-drag-handle

    Patch Changes

    • ceebb31: Fix NodeRangeSelection not being restored after drag-and-drop when Collaboration (Yjs) is enabled. Drop anchor positions are now tracked with Yjs relative positions and remapped across isChangeOrigin document rebuilds, and selection restore runs via appendTransaction after the drop transaction settles.
    • ceebb31: Fix the drag handle when the editor renders zero-size widget decorations, such as the page chrome injected by the Pages extension. The handle now resolves to the correct block instead of failing to position or aligning to a decoration, and it stays above positioned page chrome so it remains clickable.
    • Updated dependencies [ceebb31]

    @tiptap/extension-link

    Patch Changes

    • ceebb31: Coerce undefined HTMLAttributes (target, rel, class) to null so ProseMirror does not emit "No value supplied for attribute" warnings when these options are explicitly set to undefined.
    • Updated dependencies [ceebb31]

    @tiptap/extension-list

    Patch Changes

    • ceebb31: Fix a markdown parsing bug where a heading right after an ordered list item (with no blank line in between) got pulled into the list item as plain text, so you'd see a literal ### inside the list instead of an actual heading. Headings now end the list and get parsed properly, the way other markdown parsers handle it. Indented headings inside a list item are also parsed as real headings now instead of literal text.
    • Updated dependencies [ceebb31]

    @tiptap/extension-mathematics

    Patch Changes

    @tiptap/react

    Patch Changes

    • ceebb31: Change prop types of the Tiptap component so that either the editor or the instance fields are required
    • Updated dependencies [ceebb31]

    @tiptap/extension-drag-handle-react

    Patch Changes

    • ceebb31: Fix React 19 strict mode compatibility by using useRef instead of useState for the portal element. Changing the className prop now updates the element in place without re-registering the drag handle plugin.
    • Updated dependencies [ceebb31]
    • Updated dependencies [ceebb31]
    • Updated dependencies [ceebb31]
    • Updated dependencies [ceebb31]

    @tiptap/static-renderer

    Patch Changes

    • ceebb31: Fix the static renderer ignoring unhandledNode and unhandledMark for node or mark types missing from the schema; such content now falls back to those renderers instead of throwing in Node.fromJSON
    • Updated dependencies [ceebb31]

    @tiptap/pm

    Patch Changes

    • ceebb31: Updated all ProseMirror packages to the latest publicly available versions
    Open source →
    Additional notes

    @tiptap/extension-emoji

    Patch Changes

    • ceebb31: Fix arrow key navigation past emoji nodes in Firefox. Previously, pressing ArrowLeft with the cursor adjacent to an inline non-selectable emoji node at a paragraph boundary would not move the cursor in Firefox. The cursor now correctly skips over emoji nodes in both directions.
    • Updated dependencies [ceebb31]

    @tiptap/extension-file-handler

    Patch Changes

    • ceebb31: Add consumePasteEvent option to the file-handler extension. When true, handlePaste returns true even when HTML content is present in the clipboard, preventing paste rules from other extensions from creating duplicate content. Default is false.
    • Updated dependencies [ceebb31]

    @tiptap/extension-drag-handle

    Patch Changes

    • ceebb31: Fix NodeRangeSelection not being restored after drag-and-drop when Collaboration (Yjs) is enabled. Drop anchor positions are now tracked with Yjs relative positions and remapped across isChangeOrigin document rebuilds, and selection restore runs via appendTransaction after the drop transaction settles.
    • ceebb31: Fix the drag handle when the editor renders zero-size widget decorations, such as the page chrome injected by the Pages extension. The handle now resolves to the correct block instead of failing to position or aligning to a decoration, and it stays above positioned page chrome so it remains clickable.
    • Updated dependencies [ceebb31]

    @tiptap/extension-link

    Patch Changes

    • ceebb31: Coerce undefined HTMLAttributes (target, rel, class) to null so ProseMirror does not emit "No value supplied for attribute" warnings when these options are explicitly set to undefined.
    • Updated dependencies [ceebb31]

    @tiptap/extension-list

    Patch Changes

    • ceebb31: Fix a markdown parsing bug where a heading right after an ordered list item (with no blank line in between) got pulled into the list item as plain text, so you'd see a literal ### inside the list instead of an actual heading. Headings now end the list and get parsed properly, the way other markdown parsers handle it. Indented headings inside a list item are also parsed as real headings now instead of literal text.
    • Updated dependencies [ceebb31]

    @tiptap/extension-mathematics

    Patch Changes

    @tiptap/react

    Patch Changes

    • ceebb31: Change prop types of the Tiptap component so that either the editor or the instance fields are required
    • Updated dependencies [ceebb31]

    @tiptap/extension-drag-handle-react

    Patch Changes

    • ceebb31: Fix React 19 strict mode compatibility by using useRef instead of useState for the portal element. Changing the className prop now updates the element in place without re-registering the drag handle plugin.
    • Updated dependencies [ceebb31]
    • Updated dependencies [ceebb31]
    • Updated dependencies [ceebb31]
    • Updated dependencies [ceebb31]

    @tiptap/static-renderer

    Patch Changes

    • ceebb31: Fix the static renderer ignoring unhandledNode and unhandledMark for node or mark types missing from the schema; such content now falls back to those renderers instead of throwing in Node.fromJSON
    • Updated dependencies [ceebb31]

    @tiptap/pm

    Patch Changes

    • ceebb31: Updated all ProseMirror packages to the latest publicly available versions

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-list-item

    Patch Changes

    @tiptap/extension-list-keymap

    Patch Changes

    @tiptap/extension-task-item

    Patch Changes

    @tiptap/extension-task-list

    Patch Changes

    @tiptap/extension-bullet-list

    Patch Changes

    @tiptap/extension-ordered-list

    Patch Changes

    @tiptap/core

    Patch Changes

    @tiptap/extension-bubble-menu

    Patch Changes

    @tiptap/extension-code-block

    Patch Changes

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    @tiptap/extension-horizontal-rule

    Patch Changes

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-mention

    Patch Changes

    @tiptap/extension-node-range

    Patch Changes

    @tiptap/extension-subscript

    Patch Changes

    @tiptap/extension-superscript

    Patch Changes

    @tiptap/extension-table

    Patch Changes

    @tiptap/extension-table-of-contents

    Patch Changes

    @tiptap/extension-unique-id

    Patch Changes

    @tiptap/extensions

    Patch Changes

    @tiptap/html

    Patch Changes

    @tiptap/markdown

    Patch Changes

    @tiptap/suggestion

    Patch Changes

    @tiptap/vue-2

    Patch Changes

    @tiptap/vue-3

    Patch Changes

    @tiptap/extension-audio

    Patch Changes

    @tiptap/extension-blockquote

    Patch Changes

    @tiptap/extension-bold

    Patch Changes

    @tiptap/extension-code

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    @tiptap/extension-hard-break

    Patch Changes

    @tiptap/extension-heading

    Patch Changes

    @tiptap/extension-highlight

    Patch Changes

    @tiptap/extension-image

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    @tiptap/extension-paragraph

    Patch Changes

    @tiptap/extension-strike

    Patch Changes

    @tiptap/extension-text

    Patch Changes

    @tiptap/extension-text-align

    Patch Changes

    @tiptap/extension-text-style

    Patch Changes

    @tiptap/extension-twitch

    Patch Changes

    @tiptap/extension-typography

    Patch Changes

    @tiptap/extension-underline

    Patch Changes

    @tiptap/extension-youtube

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    Open source →
  14. 3.27.118 Jun 2026
    Release notes

    @tiptap/extension-drag-handle

    Patch Changes

    • a16901d: Respect margin properties passed via dragImageProperties on the drag preview. The clone reset its margin to 0 after copying styles, which discarded any margin the user explicitly requested. The reset now runs only when no margin property is listed in dragImageProperties, so the drag image can keep the same spacing as the live block.
    • @tiptap/[email protected]

    @tiptap/extension-list

    Patch Changes

    @tiptap/extensions

    Patch Changes

    • a16901d: Fix Placeholder flickering while a modal overlay is open. When the editor was occluded during a stream of transactions (e.g. remote collaboration edits), the viewport measurement fell back to a full-document range and repeatedly toggled the data-placeholder attribute on empty blocks. The viewport window is now frozen when the editor can't be measured reliably, so placeholders stay stable.
    • @tiptap/[email protected]
    Open source →
    Additional notes

    @tiptap/extension-drag-handle

    Patch Changes

    • a16901d: Respect margin properties passed via dragImageProperties on the drag preview. The clone reset its margin to 0 after copying styles, which discarded any margin the user explicitly requested. The reset now runs only when no margin property is listed in dragImageProperties, so the drag image can keep the same spacing as the live block.
    • @tiptap/[email protected]

    @tiptap/extension-list

    Patch Changes

    @tiptap/extensions

    Patch Changes

    • a16901d: Fix Placeholder flickering while a modal overlay is open. When the editor was occluded during a stream of transactions (e.g. remote collaboration edits), the viewport measurement fell back to a full-document range and repeatedly toggled the data-placeholder attribute on empty blocks. The viewport window is now frozen when the editor can't be measured reliably, so placeholders stay stable.
    • @tiptap/[email protected]

    @tiptap/extension-drag-handle-react

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-list-item

    Patch Changes

    @tiptap/extension-list-keymap

    Patch Changes

    @tiptap/extension-task-item

    Patch Changes

    @tiptap/extension-task-list

    Patch Changes

    @tiptap/extension-bullet-list

    Patch Changes

    @tiptap/extension-ordered-list

    Patch Changes

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/core

    Patch Changes

    @tiptap/extension-audio

    Patch Changes

    @tiptap/extension-blockquote

    Patch Changes

    @tiptap/extension-bold

    Patch Changes

    @tiptap/extension-bubble-menu

    Patch Changes

    @tiptap/extension-code

    Patch Changes

    @tiptap/extension-code-block

    Patch Changes

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    @tiptap/extension-emoji

    Patch Changes

    @tiptap/extension-file-handler

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/extension-hard-break

    Patch Changes

    @tiptap/extension-heading

    Patch Changes

    @tiptap/extension-highlight

    Patch Changes

    @tiptap/extension-horizontal-rule

    Patch Changes

    @tiptap/extension-image

    Patch Changes

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    @tiptap/extension-link

    Patch Changes

    @tiptap/extension-mathematics

    Patch Changes

    @tiptap/extension-mention

    Patch Changes

    @tiptap/extension-node-range

    Patch Changes

    @tiptap/extension-paragraph

    Patch Changes

    @tiptap/extension-strike

    Patch Changes

    @tiptap/extension-subscript

    Patch Changes

    @tiptap/extension-superscript

    Patch Changes

    @tiptap/extension-table

    Patch Changes

    @tiptap/extension-table-of-contents

    Patch Changes

    @tiptap/extension-text

    Patch Changes

    @tiptap/extension-text-align

    Patch Changes

    @tiptap/extension-text-style

    Patch Changes

    @tiptap/extension-twitch

    Patch Changes

    @tiptap/extension-typography

    Patch Changes

    @tiptap/extension-underline

    Patch Changes

    @tiptap/extension-unique-id

    Patch Changes

    @tiptap/extension-youtube

    Patch Changes

    @tiptap/html

    Patch Changes

    @tiptap/markdown

    Patch Changes

    @tiptap/react

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    @tiptap/static-renderer

    Patch Changes

    @tiptap/suggestion

    Patch Changes

    @tiptap/vue-2

    Patch Changes

    @tiptap/vue-3

    Patch Changes

    Open source →
  15. 3.27.017 Jun 2026
    Release notes

    @tiptap/extension-list

    Minor Changes

    • 6270b99: Ordered lists now support the type attribute (a, A, i, I).

      The <ol> type attribute is now fully preserved through the HTML round-trip:

      • type="a" → lowercase alphabetical markers
      • type="A" → uppercase alphabetical markers
      • type="i" → lowercase roman numeral markers
      • type="I" → uppercase roman numeral markers

      Paste from external editors (Google Docs, Word, LibreOffice) now correctly detects the list style — both from the HTML type attribute and from CSS list-style-type properties.

      Plain text paste of typed ordered list markers (e.g. a. Item, I) Item, i. Item\nii. Item) is detected and converted to the correct list type.

      Markdown round-trip preserves typed markers: parsing a. Item creates type: "a", and serializing a typed list back to markdown uses the correct prefix (e.g. I., ii.).

      Joining of adjacent lists now respects type — two lists with different types (e.g. default numeric and type="a") are not merged.

    Patch Changes

    @tiptap/core

    Patch Changes

    • 6270b99: Ordered lists now support the type attribute (a, A, i, I).

      The <ol> type attribute is now fully preserved through the HTML round-trip:

      • type="a" → lowercase alphabetical markers
      • type="A" → uppercase alphabetical markers
      • type="i" → lowercase roman numeral markers
      • type="I" → uppercase roman numeral markers

      Paste from external editors (Google Docs, Word, LibreOffice) now correctly detects the list style — both from the HTML type attribute and from CSS list-style-type properties.

      Plain text paste of typed ordered list markers (e.g. a. Item, I) Item, i. Item\nii. Item) is detected and converted to the correct list type.

      Markdown round-trip preserves typed markers: parsing a. Item creates type: "a", and serializing a typed list back to markdown uses the correct prefix (e.g. I., ii.).

      Joining of adjacent lists now respects type — two lists with different types (e.g. default numeric and type="a") are not merged.

    • 6270b99: parseAttributes now supports any word characters at the start of classes or id attributes.

    • 6270b99: Fix marksEqual to compare mark arrays as multisets instead of index-by-index, so order of marks no longer affects the result. Broaden the type signature to accept ProseMirror Mark objects (where type is an object with a name property) alongside the existing JSON mark shape ({ type: string }).

    • 6270b99: Fix a edge-case in rewriteUnknownContent to not fail on null-ish values inside marks or nodes.

    • @tiptap/[email protected]

    @tiptap/extension-link

    Patch Changes

    • 6270b99: Fix isAllowedUri accepting unknown protocols whose name contains a hyphen (e.g. unknown-protocol://test). The hyphen is a valid scheme character per RFC 3986, but the regex was built from a template literal where \- collapsed to -, leaving the terminator class [^a-z+.-:] to parse .-: as a character range that excluded 0-9 and / rather than -. With the proper double-escape, the regex correctly excludes - and unknown hyphenated schemes are rejected again.
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/suggestion

    Minor Changes

    • 6270b99: Add props.mount(element) for fully managed popup positioning. It mounts the popup into the configured container (default document.body), keeps it anchored to the cursor, and automatically repositions on scroll, resize, and layout shifts via Floating UI's autoUpdate — no manual listeners required. It returns an unmount function to call in onExit.

      This is additive and opt-in: mounting and positioning manually with props.floatingUi + props.clientRect remains supported as an escape hatch.

    • 6270b99: Dismiss managed suggestion popups when the user clicks outside both the popup and the editor. Enabled by default for popups mounted via props.mount, and configurable with the new dismissOnOutsideClick option.

    • 6270b99: Expose Floating UI positioning configuration through SuggestionProps. Consumers can now read placement, offset, flip, container, and a resolved floatingUi config to drive their own positioning loop.

    • 6270b99: Add async suggestion lifecycle handling, including debounced async items(), in-flight request aborting, initialItems, a loading state, and a minQueryLength filter.

    Patch Changes

    @tiptap/markdown

    Patch Changes

    • 6270b99: Fix parsing with injected Marked instances so custom markdown tokenizers registered via marked.use(...) are respected.
    • 6270b99: Fix unrecognized HTML detection during markdown parsing to work without window.DOMParser or HTMLUnknownElement, so angle-bracket placeholders are preserved as literal text in SSR and Node environments.
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-drag-handle

    Patch Changes

    Open source →
    Additional notes

    @tiptap/extension-list

    Minor Changes

    • 6270b99: Ordered lists now support the type attribute (a, A, i, I).

      The <ol> type attribute is now fully preserved through the HTML round-trip:

      • type="a" → lowercase alphabetical markers
      • type="A" → uppercase alphabetical markers
      • type="i" → lowercase roman numeral markers
      • type="I" → uppercase roman numeral markers

      Paste from external editors (Google Docs, Word, LibreOffice) now correctly detects the list style — both from the HTML type attribute and from CSS list-style-type properties.

      Plain text paste of typed ordered list markers (e.g. a. Item, I) Item, i. Item\nii. Item) is detected and converted to the correct list type.

      Markdown round-trip preserves typed markers: parsing a. Item creates type: "a", and serializing a typed list back to markdown uses the correct prefix (e.g. I., ii.).

      Joining of adjacent lists now respects type — two lists with different types (e.g. default numeric and type="a") are not merged.

    Patch Changes

    @tiptap/core

    Patch Changes

    • 6270b99: Ordered lists now support the type attribute (a, A, i, I).

      The <ol> type attribute is now fully preserved through the HTML round-trip:

      • type="a" → lowercase alphabetical markers
      • type="A" → uppercase alphabetical markers
      • type="i" → lowercase roman numeral markers
      • type="I" → uppercase roman numeral markers

      Paste from external editors (Google Docs, Word, LibreOffice) now correctly detects the list style — both from the HTML type attribute and from CSS list-style-type properties.

      Plain text paste of typed ordered list markers (e.g. a. Item, I) Item, i. Item\nii. Item) is detected and converted to the correct list type.

      Markdown round-trip preserves typed markers: parsing a. Item creates type: "a", and serializing a typed list back to markdown uses the correct prefix (e.g. I., ii.).

      Joining of adjacent lists now respects type — two lists with different types (e.g. default numeric and type="a") are not merged.

    • 6270b99: parseAttributes now supports any word characters at the start of classes or id attributes.

    • 6270b99: Fix marksEqual to compare mark arrays as multisets instead of index-by-index, so order of marks no longer affects the result. Broaden the type signature to accept ProseMirror Mark objects (where type is an object with a name property) alongside the existing JSON mark shape ({ type: string }).

    • 6270b99: Fix a edge-case in rewriteUnknownContent to not fail on null-ish values inside marks or nodes.

    • @tiptap/[email protected]

    @tiptap/extension-link

    Patch Changes

    • 6270b99: Fix isAllowedUri accepting unknown protocols whose name contains a hyphen (e.g. unknown-protocol://test). The hyphen is a valid scheme character per RFC 3986, but the regex was built from a template literal where \- collapsed to -, leaving the terminator class [^a-z+.-:] to parse .-: as a character range that excluded 0-9 and / rather than -. With the proper double-escape, the regex correctly excludes - and unknown hyphenated schemes are rejected again.
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/suggestion

    Minor Changes

    • 6270b99: Add props.mount(element) for fully managed popup positioning. It mounts the popup into the configured container (default document.body), keeps it anchored to the cursor, and automatically repositions on scroll, resize, and layout shifts via Floating UI's autoUpdate — no manual listeners required. It returns an unmount function to call in onExit.

      This is additive and opt-in: mounting and positioning manually with props.floatingUi + props.clientRect remains supported as an escape hatch.

    • 6270b99: Dismiss managed suggestion popups when the user clicks outside both the popup and the editor. Enabled by default for popups mounted via props.mount, and configurable with the new dismissOnOutsideClick option.

    • 6270b99: Expose Floating UI positioning configuration through SuggestionProps. Consumers can now read placement, offset, flip, container, and a resolved floatingUi config to drive their own positioning loop.

    • 6270b99: Add async suggestion lifecycle handling, including debounced async items(), in-flight request aborting, initialItems, a loading state, and a minQueryLength filter.

    Patch Changes

    @tiptap/markdown

    Patch Changes

    • 6270b99: Fix parsing with injected Marked instances so custom markdown tokenizers registered via marked.use(...) are respected.
    • 6270b99: Fix unrecognized HTML detection during markdown parsing to work without window.DOMParser or HTMLUnknownElement, so angle-bracket placeholders are preserved as literal text in SSR and Node environments.
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-drag-handle

    Patch Changes

    @tiptap/server-ai-toolkit

    Minor Changes

    • 6270b99: Remove legacy exports: GetSchemaAwarenessDataOptions, getSchemaAwarenessData and SchemaAwarenessData

    @tiptap/extension-list-item

    Patch Changes

    @tiptap/extension-list-keymap

    Patch Changes

    @tiptap/extension-task-item

    Patch Changes

    @tiptap/extension-task-list

    Patch Changes

    @tiptap/extension-bullet-list

    Patch Changes

    @tiptap/extension-ordered-list

    Patch Changes

    @tiptap/extension-audio

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-blockquote

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-bold

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-bubble-menu

    Patch Changes

    @tiptap/extension-code

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-code-block

    Patch Changes

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-emoji

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-file-handler

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    @tiptap/extension-hard-break

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-heading

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-highlight

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-horizontal-rule

    Patch Changes

    @tiptap/extension-image

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-mathematics

    Patch Changes

    @tiptap/extension-mention

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-node-range

    Patch Changes

    @tiptap/extension-paragraph

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-strike

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-subscript

    Patch Changes

    @tiptap/extension-superscript

    Patch Changes

    @tiptap/extension-table

    Patch Changes

    @tiptap/extension-table-of-contents

    Patch Changes

    @tiptap/extension-text

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-text-align

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-text-style

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-twitch

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-typography

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-underline

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extension-unique-id

    Patch Changes

    @tiptap/extension-youtube

    Patch Changes

    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]
    • Updated dependencies [6270b99]

    @tiptap/extensions

    Patch Changes

    @tiptap/html

    Patch Changes

    @tiptap/react

    Patch Changes

    @tiptap/static-renderer

    Patch Changes

    @tiptap/vue-2

    Patch Changes

    @tiptap/vue-3

    Patch Changes

    @tiptap/extension-drag-handle-react

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    Open source →
  16. 3.26.111 Jun 2026
    Release notes

    v3.26.1

    @tiptap/extension-node-range

    Patch Changes

    • a38c9c0: Fixed drag-and-drop duplicating blocks during collaboration. When a remote collaborator edited the document mid-drag, dropping left an empty copy of the dragged block at its original position. This fix also requires a version of @tiptap/y-tiptap that restores node range selections across remote updates.
    • a38c9c0: Bump @tiptap/y-tiptap to version ^3.0.5
    • @tiptap/[email protected]

    @tiptap/extension-drag-handle

    Patch Changes

    • a38c9c0: Restore the node range selection after dragging multiple blocks. Previously, dropping a multi-block drag left a text selection inside the moved content instead of keeping the dragged blocks selected.
    • a38c9c0: Bump @tiptap/y-tiptap to version ^3.0.5
    • Updated dependencies [a38c9c0]
    • Updated dependencies [a38c9c0]

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    Open source →
    Additional notes

    @tiptap/extension-node-range

    Patch Changes

    • a38c9c0: Fixed drag-and-drop duplicating blocks during collaboration. When a remote collaborator edited the document mid-drag, dropping left an empty copy of the dragged block at its original position. This fix also requires a version of @tiptap/y-tiptap that restores node range selections across remote updates.
    • a38c9c0: Bump @tiptap/y-tiptap to version ^3.0.5
    • @tiptap/[email protected]

    @tiptap/extension-drag-handle

    Patch Changes

    • a38c9c0: Restore the node range selection after dragging multiple blocks. Previously, dropping a multi-block drag left a text selection inside the moved content instead of keeping the dragged blocks selected.
    • a38c9c0: Bump @tiptap/y-tiptap to version ^3.0.5
    • Updated dependencies [a38c9c0]
    • Updated dependencies [a38c9c0]

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    @tiptap/extension-drag-handle-react

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-list-item

    Patch Changes

    @tiptap/extension-list-keymap

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/extension-task-item

    Patch Changes

    @tiptap/extension-task-list

    Patch Changes

    @tiptap/core

    Patch Changes

    @tiptap/extension-audio

    Patch Changes

    @tiptap/extension-blockquote

    Patch Changes

    @tiptap/extension-bold

    Patch Changes

    @tiptap/extension-bubble-menu

    Patch Changes

    @tiptap/extension-bullet-list

    Patch Changes

    @tiptap/extension-code

    Patch Changes

    @tiptap/extension-code-block

    Patch Changes

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    @tiptap/extension-emoji

    Patch Changes

    @tiptap/extension-file-handler

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/extension-hard-break

    Patch Changes

    @tiptap/extension-heading

    Patch Changes

    @tiptap/extension-highlight

    Patch Changes

    @tiptap/extension-horizontal-rule

    Patch Changes

    @tiptap/extension-image

    Patch Changes

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    @tiptap/extension-link

    Patch Changes

    @tiptap/extension-list

    Patch Changes

    @tiptap/extension-mathematics

    Patch Changes

    @tiptap/extension-mention

    Patch Changes

    @tiptap/extension-ordered-list

    Patch Changes

    @tiptap/extension-paragraph

    Patch Changes

    @tiptap/extension-strike

    Patch Changes

    @tiptap/extension-subscript

    Patch Changes

    @tiptap/extension-superscript

    Patch Changes

    @tiptap/extension-table

    Patch Changes

    @tiptap/extension-table-of-contents

    Patch Changes

    @tiptap/extension-text

    Patch Changes

    @tiptap/extension-text-align

    Patch Changes

    @tiptap/extension-text-style

    Patch Changes

    @tiptap/extension-twitch

    Patch Changes

    @tiptap/extension-typography

    Patch Changes

    @tiptap/extension-underline

    Patch Changes

    @tiptap/extension-unique-id

    Patch Changes

    @tiptap/extension-youtube

    Patch Changes

    @tiptap/extensions

    Patch Changes

    @tiptap/html

    Patch Changes

    @tiptap/markdown

    Patch Changes

    @tiptap/react

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    @tiptap/static-renderer

    Patch Changes

    @tiptap/suggestion

    Patch Changes

    @tiptap/vue-2

    Patch Changes

    @tiptap/vue-3

    Patch Changes

    Open source →
  17. 3.26.05 Jun 2026
    Release notes

    @tiptap/extension-blockquote

    Minor Changes

    • 7fb19eb: Backspace at the start of a non-first child of a blockquote now lifts that child out, splitting the blockquote around it. A second backspace at the start of a top-level textblock whose previous sibling is a blockquote merges the textblock's inline content into the blockquote's last textblock instead of pulling the paragraph back inside.

    Patch Changes

    @tiptap/server-ai-toolkit

    Patch Changes

    • 7fb19eb: Only add hash attributes to nodes, not to marks.

    @tiptap/extensions

    Patch Changes

    • 7fb19eb: Fix the Selection extension highlighting beyond the selected text on multi-line selections: the native browser selection is now hidden while the editor is blurred, so only the styled .selection decoration is shown.
    • @tiptap/[email protected]
    Open source →
    Additional notes

    @tiptap/extension-blockquote

    Minor Changes

    • 7fb19eb: Backspace at the start of a non-first child of a blockquote now lifts that child out, splitting the blockquote around it. A second backspace at the start of a top-level textblock whose previous sibling is a blockquote merges the textblock's inline content into the blockquote's last textblock instead of pulling the paragraph back inside.

    Patch Changes

    @tiptap/server-ai-toolkit

    Patch Changes

    • 7fb19eb: Only add hash attributes to nodes, not to marks.

    @tiptap/extensions

    Patch Changes

    • 7fb19eb: Fix the Selection extension highlighting beyond the selected text on multi-line selections: the native browser selection is now hidden while the editor is blurred, so only the styled .selection decoration is shown.
    • @tiptap/[email protected]

    tiptap-demos

    Patch Changes

    • 7fb19eb: Fix the Selection extension highlighting beyond the selected text on multi-line selections: the native browser selection is now hidden while the editor is blurred, so only the styled .selection decoration is shown.

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    @tiptap/extension-list-item

    Patch Changes

    @tiptap/extension-list-keymap

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/extension-task-item

    Patch Changes

    @tiptap/extension-task-list

    Patch Changes

    @tiptap/core

    Patch Changes

    @tiptap/extension-audio

    Patch Changes

    @tiptap/extension-bold

    Patch Changes

    @tiptap/extension-bubble-menu

    Patch Changes

    @tiptap/extension-bullet-list

    Patch Changes

    @tiptap/extension-code

    Patch Changes

    @tiptap/extension-code-block

    Patch Changes

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    @tiptap/extension-drag-handle

    Patch Changes

    @tiptap/extension-drag-handle-react

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-emoji

    Patch Changes

    @tiptap/extension-file-handler

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/extension-hard-break

    Patch Changes

    @tiptap/extension-heading

    Patch Changes

    @tiptap/extension-highlight

    Patch Changes

    @tiptap/extension-horizontal-rule

    Patch Changes

    @tiptap/extension-image

    Patch Changes

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    @tiptap/extension-link

    Patch Changes

    @tiptap/extension-list

    Patch Changes

    @tiptap/extension-mathematics

    Patch Changes

    @tiptap/extension-mention

    Patch Changes

    @tiptap/extension-node-range

    Patch Changes

    @tiptap/extension-ordered-list

    Patch Changes

    @tiptap/extension-paragraph

    Patch Changes

    @tiptap/extension-strike

    Patch Changes

    @tiptap/extension-subscript

    Patch Changes

    @tiptap/extension-superscript

    Patch Changes

    @tiptap/extension-table

    Patch Changes

    @tiptap/extension-table-of-contents

    Patch Changes

    @tiptap/extension-text

    Patch Changes

    @tiptap/extension-text-align

    Patch Changes

    @tiptap/extension-text-style

    Patch Changes

    @tiptap/extension-twitch

    Patch Changes

    @tiptap/extension-typography

    Patch Changes

    @tiptap/extension-underline

    Patch Changes

    @tiptap/extension-unique-id

    Patch Changes

    @tiptap/extension-youtube

    Patch Changes

    @tiptap/html

    Patch Changes

    @tiptap/markdown

    Patch Changes

    @tiptap/react

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    @tiptap/static-renderer

    Patch Changes

    @tiptap/suggestion

    Patch Changes

    @tiptap/vue-2

    Patch Changes

    @tiptap/vue-3

    Patch Changes

    Open source →
  18. 3.25.03 Jun 2026
    Release notes

    @tiptap/core

    Patch Changes

    • 711c2e3: Fix: dragging an inline/resizable image within the editor no longer creates a duplicate

      When the Image extension was configured with inline: true or resize enabled, dragging an image within the editor could insert a duplicate at the drop position instead of moving it. This happened because the browser's native image drag behavior could populate dataTransfer.files, causing the FileHandler extension to intercept the drop before ProseMirror's internal move logic could run.

    • 711c2e3: Add clearable mark option (default true). unsetAllMarks now skips marks with clearable: false, so semantic marks like comments are not removed by "clear formatting".

    • 711c2e3: Add attrsEqual and marksEqual utility functions to @tiptap/core. attrsEqual compares two attribute objects for equality regardless of key ordering. marksEqual compares two arrays of mark objects by type and attributes using attrsEqual.

    • 711c2e3: Fix plain-text copy of table cell selections including content from unselected cells in between. Each selected range is now serialized independently and joined in document order, so dragging upward (reverse selection) also produces output in document order.

    • Updated dependencies [711c2e3]

    @tiptap/extension-file-handler

    Patch Changes

    • 711c2e3: Fix: dragging an inline/resizable image within the editor no longer creates a duplicate

      When the Image extension was configured with inline: true or resize enabled, dragging an image within the editor could insert a duplicate at the drop position instead of moving it. This happened because the browser's native image drag behavior could populate dataTransfer.files, causing the FileHandler extension to intercept the drop before ProseMirror's internal move logic could run.

    • Updated dependencies [711c2e3]

    • Updated dependencies [711c2e3]

    • Updated dependencies [711c2e3]

    • Updated dependencies [711c2e3]

    • Updated dependencies [711c2e3]

    @tiptap/extension-image

    Patch Changes

    • 711c2e3: Fix: dragging an inline/resizable image within the editor no longer creates a duplicate

      When the Image extension was configured with inline: true or resize enabled, dragging an image within the editor could insert a duplicate at the drop position instead of moving it. This happened because the browser's native image drag behavior could populate dataTransfer.files, causing the FileHandler extension to intercept the drop before ProseMirror's internal move logic could run.

    • 711c2e3: Fix HTMLAttributes not being applied to the editor DOM when resize is enabled. The addNodeView path was using only the resolved node attributes and skipping the user-configured HTMLAttributes option. Now it merges them consistently with how renderHTML already works.

    • Updated dependencies [711c2e3]

    • Updated dependencies [711c2e3]

    • Updated dependencies [711c2e3]

    • Updated dependencies [711c2e3]

    @tiptap/extension-list

    Minor Changes

    • 711c2e3: ListKeymap's Backspace handler now lifts the current list item before merging. At the start of a non-first list item, the item is lifted out of its wrapping list (splitting the list around it) instead of immediately joining its content into the previous item. A second Backspace then hits the existing "paragraph after a list" branch and merges the lifted textblock's content into the previous list's last item. Mirrors the two-step behavior introduced for blockquote in #7891.

    Patch Changes

    • 711c2e3: Fix delete at the end of a list item with a branching nested sublist. Nested items are hoisted to the parent list instead of being node-selected and deleted on the next keypress.
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extensions

    Minor Changes

    • 711c2e3: Allow emptyNodeClass in the Placeholder extension to accept a function that returns a dynamic CSS class name per node

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/static-renderer

    Patch Changes

    • 711c2e3: Fix blockquote markdown rendering to add a trailing newline so subsequent content is not incorrectly included in the blockquote
    • 711c2e3: Fix the types of the JSON static renderers (renderJSONContentToReactElement and renderJSONContentToString): you can now pass JSONContent directly and read node fields like node.text in your mappings without type errors or casts.
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-table

    Patch Changes

    • 711c2e3: Fix HTMLAttributes not being applied to the <table> element when resizable is disabled (the default). The TableView node view (introduced in 3.23) bypassed renderHTML and never applied user-configured attributes like class or data-* to the rendered table element.
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/pm

    Patch Changes

    • 711c2e3: Bump prosemirror-tables to ^1.8.0 so findTable is available from @tiptap/pm, and align the related ProseMirror dependencies with the versions required by prosemirror-tables.

    @tiptap/extension-unique-id

    Patch Changes

    • 711c2e3: Fix memory leak when destroying an editor before the collaboration provider syncs. The synced listener registered in onCreate was only removed once the event fired, so destroying the editor first left the createIds closure (and the whole editor it captures) referenced by the shared provider. The listener is now also detached on destroy, so the editor can be garbage collected.
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-code

    Patch Changes

    • 711c2e3: Fixed a bug where typing a character before an inline code markdown shortcut (e.g. a followed by backtick-delimited code) would delete the preceding character. The preceding character is now preserved.
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-collaboration-caret

    Patch Changes

    • 711c2e3: Fix crash when awareness state value is null or undefined (e.g. after a client disconnects)
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-collaboration

    Patch Changes

    • 711c2e3: Fixed onContentError not being triggered when invalid collaborative content is detected. The filterTransaction hook now allows the transaction through to keep ProseMirror state in sync with Yjs, ensuring the contentError event fires correctly.
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/markdown

    Patch Changes

    • 711c2e3: Fix backslash-escape handling in the Markdown parser and serializer. Parsing a backslash-escaped markdown character (e.g. \*, \_, \\) now correctly produces a literal text node, instead of silently dropping the character. On serialization, characters that have special meaning in markdown inline syntax (*, _, `, [, ], \, ~) are now backslash-escaped in non-code text nodes to prevent them from being misinterpreted as formatting delimiters when the output is parsed again.
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/vue-3

    Patch Changes

    • 711c2e3: Fix VueNodeViewRenderer thrashing the DOM when contentDOM is null for non-leaf nodes. The renderer now always creates a contentDOM element for non-leaf nodes (matching React's behavior), so ProseMirror has a valid element to render children into even when the NodeView component does not include NodeViewContent or renders it conditionally.
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/vue-2

    Patch Changes

    • 711c2e3: Fix VueNodeViewRenderer thrashing the DOM when contentDOM is null for non-leaf nodes. The renderer now always creates a contentDOM element for non-leaf nodes (matching React's behavior), so ProseMirror has a valid element to render children into even when the NodeView component does not include NodeViewContent or renders it conditionally.
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    Open source →
    Additional notes

    @tiptap/core

    Patch Changes

    • 711c2e3: Fix: dragging an inline/resizable image within the editor no longer creates a duplicate

      When the Image extension was configured with inline: true or resize enabled, dragging an image within the editor could insert a duplicate at the drop position instead of moving it. This happened because the browser's native image drag behavior could populate dataTransfer.files, causing the FileHandler extension to intercept the drop before ProseMirror's internal move logic could run.

    • 711c2e3: Add clearable mark option (default true). unsetAllMarks now skips marks with clearable: false, so semantic marks like comments are not removed by "clear formatting".

    • 711c2e3: Add attrsEqual and marksEqual utility functions to @tiptap/core. attrsEqual compares two attribute objects for equality regardless of key ordering. marksEqual compares two arrays of mark objects by type and attributes using attrsEqual.

    • 711c2e3: Fix plain-text copy of table cell selections including content from unselected cells in between. Each selected range is now serialized independently and joined in document order, so dragging upward (reverse selection) also produces output in document order.

    • Updated dependencies [711c2e3]

    @tiptap/extension-file-handler

    Patch Changes

    • 711c2e3: Fix: dragging an inline/resizable image within the editor no longer creates a duplicate

      When the Image extension was configured with inline: true or resize enabled, dragging an image within the editor could insert a duplicate at the drop position instead of moving it. This happened because the browser's native image drag behavior could populate dataTransfer.files, causing the FileHandler extension to intercept the drop before ProseMirror's internal move logic could run.

    • Updated dependencies [711c2e3]

    • Updated dependencies [711c2e3]

    • Updated dependencies [711c2e3]

    • Updated dependencies [711c2e3]

    • Updated dependencies [711c2e3]

    @tiptap/extension-image

    Patch Changes

    • 711c2e3: Fix: dragging an inline/resizable image within the editor no longer creates a duplicate

      When the Image extension was configured with inline: true or resize enabled, dragging an image within the editor could insert a duplicate at the drop position instead of moving it. This happened because the browser's native image drag behavior could populate dataTransfer.files, causing the FileHandler extension to intercept the drop before ProseMirror's internal move logic could run.

    • 711c2e3: Fix HTMLAttributes not being applied to the editor DOM when resize is enabled. The addNodeView path was using only the resolved node attributes and skipping the user-configured HTMLAttributes option. Now it merges them consistently with how renderHTML already works.

    • Updated dependencies [711c2e3]

    • Updated dependencies [711c2e3]

    • Updated dependencies [711c2e3]

    • Updated dependencies [711c2e3]

    @tiptap/extension-list

    Minor Changes

    • 711c2e3: ListKeymap's Backspace handler now lifts the current list item before merging. At the start of a non-first list item, the item is lifted out of its wrapping list (splitting the list around it) instead of immediately joining its content into the previous item. A second Backspace then hits the existing "paragraph after a list" branch and merges the lifted textblock's content into the previous list's last item. Mirrors the two-step behavior introduced for blockquote in #7891.

    Patch Changes

    • 711c2e3: Fix delete at the end of a list item with a branching nested sublist. Nested items are hoisted to the parent list instead of being node-selected and deleted on the next keypress.
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extensions

    Minor Changes

    • 711c2e3: Allow emptyNodeClass in the Placeholder extension to accept a function that returns a dynamic CSS class name per node

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/static-renderer

    Patch Changes

    • 711c2e3: Fix blockquote markdown rendering to add a trailing newline so subsequent content is not incorrectly included in the blockquote
    • 711c2e3: Fix the types of the JSON static renderers (renderJSONContentToReactElement and renderJSONContentToString): you can now pass JSONContent directly and read node fields like node.text in your mappings without type errors or casts.
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-table

    Patch Changes

    • 711c2e3: Fix HTMLAttributes not being applied to the <table> element when resizable is disabled (the default). The TableView node view (introduced in 3.23) bypassed renderHTML and never applied user-configured attributes like class or data-* to the rendered table element.
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/pm

    Patch Changes

    • 711c2e3: Bump prosemirror-tables to ^1.8.0 so findTable is available from @tiptap/pm, and align the related ProseMirror dependencies with the versions required by prosemirror-tables.

    @tiptap/extension-unique-id

    Patch Changes

    • 711c2e3: Fix memory leak when destroying an editor before the collaboration provider syncs. The synced listener registered in onCreate was only removed once the event fired, so destroying the editor first left the createIds closure (and the whole editor it captures) referenced by the shared provider. The listener is now also detached on destroy, so the editor can be garbage collected.
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-code

    Patch Changes

    • 711c2e3: Fixed a bug where typing a character before an inline code markdown shortcut (e.g. a followed by backtick-delimited code) would delete the preceding character. The preceding character is now preserved.
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-collaboration-caret

    Patch Changes

    • 711c2e3: Fix crash when awareness state value is null or undefined (e.g. after a client disconnects)
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-collaboration

    Patch Changes

    • 711c2e3: Fixed onContentError not being triggered when invalid collaborative content is detected. The filterTransaction hook now allows the transaction through to keep ProseMirror state in sync with Yjs, ensuring the contentError event fires correctly.
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/markdown

    Patch Changes

    • 711c2e3: Fix backslash-escape handling in the Markdown parser and serializer. Parsing a backslash-escaped markdown character (e.g. \*, \_, \\) now correctly produces a literal text node, instead of silently dropping the character. On serialization, characters that have special meaning in markdown inline syntax (*, _, `, [, ], \, ~) are now backslash-escaped in non-code text nodes to prevent them from being misinterpreted as formatting delimiters when the output is parsed again.
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/vue-3

    Patch Changes

    • 711c2e3: Fix VueNodeViewRenderer thrashing the DOM when contentDOM is null for non-leaf nodes. The renderer now always creates a contentDOM element for non-leaf nodes (matching React's behavior), so ProseMirror has a valid element to render children into even when the NodeView component does not include NodeViewContent or renders it conditionally.
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/vue-2

    Patch Changes

    • 711c2e3: Fix VueNodeViewRenderer thrashing the DOM when contentDOM is null for non-leaf nodes. The renderer now always creates a contentDOM element for non-leaf nodes (matching React's behavior), so ProseMirror has a valid element to render children into even when the NodeView component does not include NodeViewContent or renders it conditionally.
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-audio

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-blockquote

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-bold

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-bubble-menu

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-code-block

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-drag-handle

    Patch Changes

    @tiptap/extension-emoji

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-hard-break

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-heading

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-highlight

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-horizontal-rule

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-link

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-mathematics

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-mention

    Patch Changes

    @tiptap/extension-node-range

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-paragraph

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-strike

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-subscript

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-superscript

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-table-of-contents

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-text

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-text-align

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-text-style

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-twitch

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-typography

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-underline

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-youtube

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/html

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/react

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/suggestion

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-list-item

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-list-keymap

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-task-item

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-task-list

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-bullet-list

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-ordered-list

    Patch Changes

    • Updated dependencies [711c2e3]
    • Updated dependencies [711c2e3]

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/extension-drag-handle-react

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    Open source →
  19. 3.24.029 May 2026
    Release notes

    @tiptap/extension-collaboration-caret

    Patch Changes

    • 7bd09b7: Fix memory leak when destroying an editor while the collaboration provider stays alive (e.g. multiple editors sharing one provider). The extension's awareness update listener is now removed on destroy, so the editor can be garbage collected.
    • Updated dependencies [7bd09b7]

    @tiptap/extension-collaboration

    Patch Changes

    • 7bd09b7: Fix a memory leak where destroying an editor while its Y.Doc/provider stays alive (e.g. multiple editors sharing one provider) left the editor uncollectable. Yjs' UndoManager registered a doc.on('destroy', ...) listener that was never removed, keeping the UndoManager — and through it the whole editor — reachable from the long-lived doc. Fixed upstream in @tiptap/y-tiptap; this bumps the dependency to pull in the fix.
    • Updated dependencies [7bd09b7]

    @tiptap/server-ai-toolkit

    Patch Changes

    • 7bd09b7: Exclude toText property when serializing the schema into a JSON object, because it is a function and functions are not serializable.

    @tiptap/pm

    Patch Changes

    • 7bd09b7: Add missing @tiptap/pm/inputrules export

    @tiptap/extension-details

    Patch Changes

    @tiptap/markdown

    Patch Changes

    • 7bd09b7: Fix text inside unknown angle-bracket tags being silently swallowed during markdown parsing. HTML-like content such as <enter existing CID here if available> that does not map to any known element is now preserved as literal text instead of disappearing, which also prevents downstream contentMatchAt errors when complex schemas (Mention, Variable, Table) are in use.
    • Updated dependencies [7bd09b7]

    @tiptap/static-renderer

    Patch Changes

    • 7bd09b7: Honor the textDirection editor option in renderToHTMLString, renderToMarkdown, and renderToReactElement, and omit null/undefined attribute values instead of serializing them as the literal string "null".
    • Updated dependencies [7bd09b7]

    @tiptap/extensions

    Patch Changes

    • 7bd09b7: Fix placeholder flickering during collaborative editing and reduce scroll-time CPU usage by deferring viewport recomputation to rAF, adding an overscan margin, and throttling scroll updates
    • Updated dependencies [7bd09b7]

    @tiptap/extension-table-of-contents

    Minor Changes

    • 7bd09b7: Add generateTocIds, a server-side utility that assigns id and data-toc-id attributes to anchor nodes in a Tiptap JSON document without needing an Editor instance.
    Open source →
    Additional notes

    @tiptap/extension-collaboration-caret

    Patch Changes

    • 7bd09b7: Fix memory leak when destroying an editor while the collaboration provider stays alive (e.g. multiple editors sharing one provider). The extension's awareness update listener is now removed on destroy, so the editor can be garbage collected.
    • Updated dependencies [7bd09b7]

    @tiptap/extension-collaboration

    Patch Changes

    • 7bd09b7: Fix a memory leak where destroying an editor while its Y.Doc/provider stays alive (e.g. multiple editors sharing one provider) left the editor uncollectable. Yjs' UndoManager registered a doc.on('destroy', ...) listener that was never removed, keeping the UndoManager — and through it the whole editor — reachable from the long-lived doc. Fixed upstream in @tiptap/y-tiptap; this bumps the dependency to pull in the fix.
    • Updated dependencies [7bd09b7]

    @tiptap/server-ai-toolkit

    Patch Changes

    • 7bd09b7: Exclude toText property when serializing the schema into a JSON object, because it is a function and functions are not serializable.

    @tiptap/pm

    Patch Changes

    • 7bd09b7: Add missing @tiptap/pm/inputrules export

    @tiptap/extension-details

    Patch Changes

    @tiptap/markdown

    Patch Changes

    • 7bd09b7: Fix text inside unknown angle-bracket tags being silently swallowed during markdown parsing. HTML-like content such as <enter existing CID here if available> that does not map to any known element is now preserved as literal text instead of disappearing, which also prevents downstream contentMatchAt errors when complex schemas (Mention, Variable, Table) are in use.
    • Updated dependencies [7bd09b7]

    @tiptap/static-renderer

    Patch Changes

    • 7bd09b7: Honor the textDirection editor option in renderToHTMLString, renderToMarkdown, and renderToReactElement, and omit null/undefined attribute values instead of serializing them as the literal string "null".
    • Updated dependencies [7bd09b7]

    @tiptap/extensions

    Patch Changes

    • 7bd09b7: Fix placeholder flickering during collaborative editing and reduce scroll-time CPU usage by deferring viewport recomputation to rAF, adding an overscan margin, and throttling scroll updates
    • Updated dependencies [7bd09b7]

    @tiptap/extension-table-of-contents

    Minor Changes

    • 7bd09b7: Add generateTocIds, a server-side utility that assigns id and data-toc-id attributes to anchor nodes in a Tiptap JSON document without needing an Editor instance.

    Patch Changes

    @tiptap/extension-drag-handle

    Patch Changes

    @tiptap/core

    Patch Changes

    @tiptap/extension-bubble-menu

    Patch Changes

    @tiptap/extension-code-block

    Patch Changes

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-drag-handle-react

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-emoji

    Patch Changes

    @tiptap/extension-file-handler

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    @tiptap/extension-horizontal-rule

    Patch Changes

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-link

    Patch Changes

    @tiptap/extension-list

    Patch Changes

    @tiptap/extension-mathematics

    Patch Changes

    @tiptap/extension-mention

    Patch Changes

    @tiptap/extension-node-range

    Patch Changes

    @tiptap/extension-subscript

    Patch Changes

    @tiptap/extension-superscript

    Patch Changes

    @tiptap/extension-table

    Patch Changes

    @tiptap/extension-unique-id

    Patch Changes

    @tiptap/html

    Patch Changes

    @tiptap/react

    Patch Changes

    @tiptap/suggestion

    Patch Changes

    @tiptap/vue-2

    Patch Changes

    @tiptap/vue-3

    Patch Changes

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    @tiptap/extension-audio

    Patch Changes

    @tiptap/extension-blockquote

    Patch Changes

    @tiptap/extension-bold

    Patch Changes

    @tiptap/extension-code

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    @tiptap/extension-hard-break

    Patch Changes

    @tiptap/extension-heading

    Patch Changes

    @tiptap/extension-highlight

    Patch Changes

    @tiptap/extension-image

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    @tiptap/extension-paragraph

    Patch Changes

    @tiptap/extension-strike

    Patch Changes

    @tiptap/extension-text

    Patch Changes

    @tiptap/extension-text-align

    Patch Changes

    @tiptap/extension-text-style

    Patch Changes

    @tiptap/extension-twitch

    Patch Changes

    @tiptap/extension-typography

    Patch Changes

    @tiptap/extension-underline

    Patch Changes

    @tiptap/extension-youtube

    Patch Changes

    @tiptap/extension-list-item

    Patch Changes

    @tiptap/extension-list-keymap

    Patch Changes

    @tiptap/extension-task-item

    Patch Changes

    @tiptap/extension-task-list

    Patch Changes

    @tiptap/extension-bullet-list

    Patch Changes

    @tiptap/extension-ordered-list

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    Open source →
  20. 3.23.621 May 2026
    Release notes

    @tiptap/extension-drag-handle

    Patch Changes

    • 937ff2e: DragHandle: Added dragImageProperties option to limit which CSS properties are cloned for the drag image. By default all ~300+ computed styles are copied; setting this to a subset (e.g. ['color', 'background-color', 'font-size']) reduces the cost when dragging selections with complex nodes.
    • Updated dependencies [937ff2e]

    @tiptap/core

    Patch Changes

    • 937ff2e: Fix deleteSelection to properly handle inline nodes with text* content. The selection is now expanded to include the entire inline node boundaries when deleting, preventing incorrect collapse of inline text nodes.
    • @tiptap/[email protected]

    @tiptap/extensions

    Patch Changes

    • 937ff2e: Placeholder: Replaced full-document doc.descendants() traversal with a cursor-resolved fast path for the default config and viewport-limited scanning for the non-default config, significantly reducing decoration overhead on large documents.
    • Updated dependencies [937ff2e]
    Open source →
    Additional notes

    @tiptap/extension-drag-handle

    Patch Changes

    • 937ff2e: DragHandle: Added dragImageProperties option to limit which CSS properties are cloned for the drag image. By default all ~300+ computed styles are copied; setting this to a subset (e.g. ['color', 'background-color', 'font-size']) reduces the cost when dragging selections with complex nodes.
    • Updated dependencies [937ff2e]

    @tiptap/core

    Patch Changes

    • 937ff2e: Fix deleteSelection to properly handle inline nodes with text* content. The selection is now expanded to include the entire inline node boundaries when deleting, preventing incorrect collapse of inline text nodes.
    • @tiptap/[email protected]

    @tiptap/extensions

    Patch Changes

    • 937ff2e: Placeholder: Replaced full-document doc.descendants() traversal with a cursor-resolved fast path for the default config and viewport-limited scanning for the non-default config, significantly reducing decoration overhead on large documents.
    • Updated dependencies [937ff2e]

    @tiptap/extension-drag-handle-react

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-audio

    Patch Changes

    @tiptap/extension-blockquote

    Patch Changes

    @tiptap/extension-bold

    Patch Changes

    @tiptap/extension-bubble-menu

    Patch Changes

    @tiptap/extension-code

    Patch Changes

    @tiptap/extension-code-block

    Patch Changes

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    @tiptap/extension-emoji

    Patch Changes

    @tiptap/extension-file-handler

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    @tiptap/extension-hard-break

    Patch Changes

    @tiptap/extension-heading

    Patch Changes

    @tiptap/extension-highlight

    Patch Changes

    @tiptap/extension-horizontal-rule

    Patch Changes

    @tiptap/extension-image

    Patch Changes

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    @tiptap/extension-link

    Patch Changes

    @tiptap/extension-list

    Patch Changes

    @tiptap/extension-mathematics

    Patch Changes

    @tiptap/extension-mention

    Patch Changes

    @tiptap/extension-node-range

    Patch Changes

    @tiptap/extension-paragraph

    Patch Changes

    @tiptap/extension-strike

    Patch Changes

    @tiptap/extension-subscript

    Patch Changes

    @tiptap/extension-superscript

    Patch Changes

    @tiptap/extension-table

    Patch Changes

    @tiptap/extension-table-of-contents

    Patch Changes

    @tiptap/extension-text

    Patch Changes

    @tiptap/extension-text-align

    Patch Changes

    @tiptap/extension-text-style

    Patch Changes

    @tiptap/extension-twitch

    Patch Changes

    @tiptap/extension-typography

    Patch Changes

    @tiptap/extension-underline

    Patch Changes

    @tiptap/extension-unique-id

    Patch Changes

    @tiptap/extension-youtube

    Patch Changes

    @tiptap/html

    Patch Changes

    @tiptap/markdown

    Patch Changes

    @tiptap/react

    Patch Changes

    @tiptap/static-renderer

    Patch Changes

    @tiptap/suggestion

    Patch Changes

    @tiptap/vue-2

    Patch Changes

    @tiptap/vue-3

    Patch Changes

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    @tiptap/extension-list-item

    Patch Changes

    @tiptap/extension-list-keymap

    Patch Changes

    @tiptap/extension-task-item

    Patch Changes

    @tiptap/extension-task-list

    Patch Changes

    @tiptap/extension-bullet-list

    Patch Changes

    @tiptap/extension-ordered-list

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    Open source →
  21. 3.23.519 May 2026
    Release notes

    @tiptap/markdown

    Patch Changes

    • 7bf0e73: Fix extra mark tokens after inline atom nodes during Markdown serialization
    • 7bf0e73: Fix adjacent marks of the same type with different attributes being merged during Markdown serialization
    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/core

    Patch Changes

    • 7bf0e73: Fix $pos() returning correct node for non-text atom nodes instead of doc node
    • 7bf0e73: fix(nodeview): eliminate unnecessary re-renders, add opt-in position tracking NodeViews no longer re-render when decorations or position change without content changes. Added trackNodeViewPosition option — when enabled, the component re-renders on every position shift so calls to getPos() stay current in render output. Removed the internal nodeViewPositionRegistry. Added shallow prop comparison in ReactRenderer.updateProps().
    • @tiptap/[email protected]

    @tiptap/react

    Patch Changes

    • 7bf0e73: Respect explicit immediatelyRender: true in client-side Next.js. Previously, when running under Next.js (window.next present), the immediatelyRender option was forced to false even when the user explicitly passed true, breaking client-only Next.js apps that rely on the editor existing on the first render. The hook now only forces false when actual SSR is detected (typeof window === 'undefined'), or when running under Next.js with no explicit value.
    • 7bf0e73: fix(nodeview): eliminate unnecessary re-renders, add opt-in position tracking NodeViews no longer re-render when decorations or position change without content changes. Added trackNodeViewPosition option — when enabled, the component re-renders on every position shift so calls to getPos() stay current in render output. Removed the internal nodeViewPositionRegistry. Added shallow prop comparison in ReactRenderer.updateProps().
    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/vue-2

    Patch Changes

    • 7bf0e73: fix(nodeview): eliminate unnecessary re-renders, add opt-in position tracking NodeViews no longer re-render when decorations or position change without content changes. Added trackNodeViewPosition option — when enabled, the component re-renders on every position shift so calls to getPos() stay current in render output. Removed the internal nodeViewPositionRegistry. Added shallow prop comparison in ReactRenderer.updateProps().
    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/vue-3

    Patch Changes

    • 7bf0e73: fix(nodeview): eliminate unnecessary re-renders, add opt-in position tracking NodeViews no longer re-render when decorations or position change without content changes. Added trackNodeViewPosition option — when enabled, the component re-renders on every position shift so calls to getPos() stay current in render output. Removed the internal nodeViewPositionRegistry. Added shallow prop comparison in ReactRenderer.updateProps().
    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/extension-drag-handle-react

    Patch Changes

    Open source →
    Additional notes

    @tiptap/markdown

    Patch Changes

    • 7bf0e73: Fix extra mark tokens after inline atom nodes during Markdown serialization
    • 7bf0e73: Fix adjacent marks of the same type with different attributes being merged during Markdown serialization
    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/core

    Patch Changes

    • 7bf0e73: Fix $pos() returning correct node for non-text atom nodes instead of doc node

    • 7bf0e73: fix(nodeview): eliminate unnecessary re-renders, add opt-in position tracking

      NodeViews no longer re-render when decorations or position change without content changes. Added trackNodeViewPosition option — when enabled, the component re-renders on every position shift so calls to getPos() stay current in render output. Removed the internal nodeViewPositionRegistry. Added shallow prop comparison in ReactRenderer.updateProps().

    • @tiptap/[email protected]

    @tiptap/react

    Patch Changes

    • 7bf0e73: Respect explicit immediatelyRender: true in client-side Next.js. Previously, when running under Next.js (window.next present), the immediatelyRender option was forced to false even when the user explicitly passed true, breaking client-only Next.js apps that rely on the editor existing on the first render. The hook now only forces false when actual SSR is detected (typeof window === 'undefined'), or when running under Next.js with no explicit value.

    • 7bf0e73: fix(nodeview): eliminate unnecessary re-renders, add opt-in position tracking

      NodeViews no longer re-render when decorations or position change without content changes. Added trackNodeViewPosition option — when enabled, the component re-renders on every position shift so calls to getPos() stay current in render output. Removed the internal nodeViewPositionRegistry. Added shallow prop comparison in ReactRenderer.updateProps().

    • Updated dependencies [7bf0e73]

    • Updated dependencies [7bf0e73]

    @tiptap/vue-2

    Patch Changes

    • 7bf0e73: fix(nodeview): eliminate unnecessary re-renders, add opt-in position tracking

      NodeViews no longer re-render when decorations or position change without content changes. Added trackNodeViewPosition option — when enabled, the component re-renders on every position shift so calls to getPos() stay current in render output. Removed the internal nodeViewPositionRegistry. Added shallow prop comparison in ReactRenderer.updateProps().

    • Updated dependencies [7bf0e73]

    • Updated dependencies [7bf0e73]

    @tiptap/vue-3

    Patch Changes

    • 7bf0e73: fix(nodeview): eliminate unnecessary re-renders, add opt-in position tracking

      NodeViews no longer re-render when decorations or position change without content changes. Added trackNodeViewPosition option — when enabled, the component re-renders on every position shift so calls to getPos() stay current in render output. Removed the internal nodeViewPositionRegistry. Added shallow prop comparison in ReactRenderer.updateProps().

    • Updated dependencies [7bf0e73]

    • Updated dependencies [7bf0e73]

    @tiptap/extension-drag-handle-react

    Patch Changes

    @tiptap/extension-audio

    Patch Changes

    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/extension-blockquote

    Patch Changes

    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/extension-bold

    Patch Changes

    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/extension-bubble-menu

    Patch Changes

    @tiptap/extension-code

    Patch Changes

    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/extension-code-block

    Patch Changes

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/extension-drag-handle

    Patch Changes

    @tiptap/extension-emoji

    Patch Changes

    @tiptap/extension-file-handler

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    @tiptap/extension-hard-break

    Patch Changes

    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/extension-heading

    Patch Changes

    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/extension-highlight

    Patch Changes

    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/extension-horizontal-rule

    Patch Changes

    @tiptap/extension-image

    Patch Changes

    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/extension-link

    Patch Changes

    @tiptap/extension-list

    Patch Changes

    @tiptap/extension-mathematics

    Patch Changes

    @tiptap/extension-mention

    Patch Changes

    @tiptap/extension-node-range

    Patch Changes

    @tiptap/extension-paragraph

    Patch Changes

    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/extension-strike

    Patch Changes

    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/extension-subscript

    Patch Changes

    @tiptap/extension-superscript

    Patch Changes

    @tiptap/extension-table

    Patch Changes

    @tiptap/extension-table-of-contents

    Patch Changes

    @tiptap/extension-text

    Patch Changes

    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/extension-text-align

    Patch Changes

    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/extension-text-style

    Patch Changes

    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/extension-twitch

    Patch Changes

    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/extension-typography

    Patch Changes

    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/extension-underline

    Patch Changes

    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/extension-unique-id

    Patch Changes

    @tiptap/extension-youtube

    Patch Changes

    • Updated dependencies [7bf0e73]
    • Updated dependencies [7bf0e73]

    @tiptap/extensions

    Patch Changes

    @tiptap/html

    Patch Changes

    @tiptap/static-renderer

    Patch Changes

    @tiptap/suggestion

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-list-item

    Patch Changes

    @tiptap/extension-list-keymap

    Patch Changes

    @tiptap/extension-task-item

    Patch Changes

    @tiptap/extension-task-list

    Patch Changes

    @tiptap/extension-bullet-list

    Patch Changes

    @tiptap/extension-ordered-list

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    Open source →
  22. 3.23.413 May 2026
    Release notes

    @tiptap/extensions

    Patch Changes

    • 0f05ae7: Add a new autoTrim option to CharacterCount which can be used to allow exceeding the character limit and either trim or validate the content length manually
    Open source →
    Additional notes

    @tiptap/extensions

    Patch Changes

    • 0f05ae7: Add a new autoTrim option to CharacterCount which can be used to allow exceeding the character limit and either trim or validate the content length manually
    • @tiptap/[email protected]

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    @tiptap/extension-list-item

    Patch Changes

    @tiptap/extension-list-keymap

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/extension-task-item

    Patch Changes

    @tiptap/extension-task-list

    Patch Changes

    @tiptap/core

    Patch Changes

    @tiptap/extension-audio

    Patch Changes

    @tiptap/extension-blockquote

    Patch Changes

    @tiptap/extension-bold

    Patch Changes

    @tiptap/extension-bubble-menu

    Patch Changes

    @tiptap/extension-bullet-list

    Patch Changes

    @tiptap/extension-code

    Patch Changes

    @tiptap/extension-code-block

    Patch Changes

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    @tiptap/extension-drag-handle

    Patch Changes

    @tiptap/extension-drag-handle-react

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-emoji

    Patch Changes

    @tiptap/extension-file-handler

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/extension-hard-break

    Patch Changes

    @tiptap/extension-heading

    Patch Changes

    @tiptap/extension-highlight

    Patch Changes

    @tiptap/extension-horizontal-rule

    Patch Changes

    @tiptap/extension-image

    Patch Changes

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    @tiptap/extension-link

    Patch Changes

    @tiptap/extension-list

    Patch Changes

    @tiptap/extension-mathematics

    Patch Changes

    @tiptap/extension-mention

    Patch Changes

    @tiptap/extension-node-range

    Patch Changes

    @tiptap/extension-ordered-list

    Patch Changes

    @tiptap/extension-paragraph

    Patch Changes

    @tiptap/extension-strike

    Patch Changes

    @tiptap/extension-subscript

    Patch Changes

    @tiptap/extension-superscript

    Patch Changes

    @tiptap/extension-table

    Patch Changes

    @tiptap/extension-table-of-contents

    Patch Changes

    @tiptap/extension-text

    Patch Changes

    @tiptap/extension-text-align

    Patch Changes

    @tiptap/extension-text-style

    Patch Changes

    @tiptap/extension-twitch

    Patch Changes

    @tiptap/extension-typography

    Patch Changes

    @tiptap/extension-underline

    Patch Changes

    @tiptap/extension-unique-id

    Patch Changes

    @tiptap/extension-youtube

    Patch Changes

    @tiptap/html

    Patch Changes

    @tiptap/markdown

    Patch Changes

    @tiptap/react

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    @tiptap/static-renderer

    Patch Changes

    @tiptap/suggestion

    Patch Changes

    @tiptap/vue-2

    Patch Changes

    @tiptap/vue-3

    Patch Changes

    @tiptap/server-ai-toolkit

    Patch Changes

    Open source →
  23. 3.23.212 May 2026
    Release notes

    @tiptap/extension-twitch

    Patch Changes

    • 8b210e7: Fix Twitch and YouTube embeds losing their canonical video, clip, channel, or playlist URL when HTML content is loaded back into the editor.
    • Updated dependencies [8b210e7]

    @tiptap/extension-youtube

    Patch Changes

    • 8b210e7: Fix Twitch and YouTube embeds losing their canonical video, clip, channel, or playlist URL when HTML content is loaded back into the editor.
    • Updated dependencies [8b210e7]

    @tiptap/core

    Patch Changes

    • 8b210e7: Fix &quot; HTML entity encoding in getHTML() output for inline style attributes. Adds a getStyleProperty utility to @tiptap/core and migrates Color, BackgroundColor, FontFamily, FontSize, LineHeight, and Highlight extensions to use it (#7016)
    • @tiptap/[email protected]

    @tiptap/extension-text-style

    Patch Changes

    • 8b210e7: Fix &quot; HTML entity encoding in getHTML() output for inline style attributes. Adds a getStyleProperty utility to @tiptap/core and migrates Color, BackgroundColor, FontFamily, FontSize, LineHeight, and Highlight extensions to use it (#7016)
    • Updated dependencies [8b210e7]

    @tiptap/extension-highlight

    Patch Changes

    • 8b210e7: Fix &quot; HTML entity encoding in getHTML() output for inline style attributes. Adds a getStyleProperty utility to @tiptap/core and migrates Color, BackgroundColor, FontFamily, FontSize, LineHeight, and Highlight extensions to use it (#7016)
    • Updated dependencies [8b210e7]

    @tiptap/react

    Patch Changes

    • 8b210e7: Default immediatelyRender to false in SSR environments instead of throwing an error

      Previously, omitting immediatelyRender in an SSR environment (e.g. Next.js) would throw an error in development and silently return null in production. This was a common source of crashes, especially when AI-generated code set up the editor without explicitly passing immediatelyRender: false. The hook now defaults immediatelyRender to true, but automatically sets it to false when SSR is detected, logging a warning in development instead of throwing.

    • Updated dependencies [8b210e7]

    @tiptap/vue-3

    Patch Changes

    • 8b210e7: Fix a useEditor unmount crash by avoiding replacement of Vue-managed DOM nodes during teardown.
    • Updated dependencies [8b210e7]

    @tiptap/server-ai-toolkit

    Minor Changes

    • 8b210e7: Initial open-source release of the Server AI Toolkit package
    Open source →
    Additional notes

    @tiptap/extension-twitch

    Patch Changes

    • 8b210e7: Fix Twitch and YouTube embeds losing their canonical video, clip, channel, or playlist URL when HTML content is loaded back into the editor.
    • Updated dependencies [8b210e7]

    @tiptap/extension-youtube

    Patch Changes

    • 8b210e7: Fix Twitch and YouTube embeds losing their canonical video, clip, channel, or playlist URL when HTML content is loaded back into the editor.
    • Updated dependencies [8b210e7]

    @tiptap/core

    Patch Changes

    • 8b210e7: Fix &quot; HTML entity encoding in getHTML() output for inline style attributes. Adds a getStyleProperty utility to @tiptap/core and migrates Color, BackgroundColor, FontFamily, FontSize, LineHeight, and Highlight extensions to use it (#7016)
    • @tiptap/[email protected]

    @tiptap/extension-text-style

    Patch Changes

    • 8b210e7: Fix &quot; HTML entity encoding in getHTML() output for inline style attributes. Adds a getStyleProperty utility to @tiptap/core and migrates Color, BackgroundColor, FontFamily, FontSize, LineHeight, and Highlight extensions to use it (#7016)
    • Updated dependencies [8b210e7]

    @tiptap/extension-highlight

    Patch Changes

    • 8b210e7: Fix &quot; HTML entity encoding in getHTML() output for inline style attributes. Adds a getStyleProperty utility to @tiptap/core and migrates Color, BackgroundColor, FontFamily, FontSize, LineHeight, and Highlight extensions to use it (#7016)
    • Updated dependencies [8b210e7]

    @tiptap/react

    Patch Changes

    • 8b210e7: Default immediatelyRender to false in SSR environments instead of throwing an error

      Previously, omitting immediatelyRender in an SSR environment (e.g. Next.js) would throw an error in development and silently return null in production. This was a common source of crashes, especially when AI-generated code set up the editor without explicitly passing immediatelyRender: false. The hook now defaults immediatelyRender to true, but automatically sets it to false when SSR is detected, logging a warning in development instead of throwing.

    • Updated dependencies [8b210e7]

    @tiptap/vue-3

    Patch Changes

    • 8b210e7: Fix a useEditor unmount crash by avoiding replacement of Vue-managed DOM nodes during teardown.
    • Updated dependencies [8b210e7]

    @tiptap/server-ai-toolkit

    Minor Changes

    • 8b210e7: Initial open-source release of the Server AI Toolkit package

    Patch Changes

    @tiptap/extension-audio

    Patch Changes

    @tiptap/extension-blockquote

    Patch Changes

    @tiptap/extension-bold

    Patch Changes

    @tiptap/extension-bubble-menu

    Patch Changes

    @tiptap/extension-code

    Patch Changes

    @tiptap/extension-code-block

    Patch Changes

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    @tiptap/extension-drag-handle

    Patch Changes

    @tiptap/extension-emoji

    Patch Changes

    @tiptap/extension-file-handler

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    @tiptap/extension-hard-break

    Patch Changes

    @tiptap/extension-heading

    Patch Changes

    @tiptap/extension-horizontal-rule

    Patch Changes

    @tiptap/extension-image

    Patch Changes

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    @tiptap/extension-link

    Patch Changes

    @tiptap/extension-list

    Patch Changes

    @tiptap/extension-mathematics

    Patch Changes

    @tiptap/extension-mention

    Patch Changes

    @tiptap/extension-node-range

    Patch Changes

    @tiptap/extension-paragraph

    Patch Changes

    @tiptap/extension-strike

    Patch Changes

    @tiptap/extension-subscript

    Patch Changes

    @tiptap/extension-superscript

    Patch Changes

    @tiptap/extension-table

    Patch Changes

    @tiptap/extension-table-of-contents

    Patch Changes

    @tiptap/extension-text

    Patch Changes

    @tiptap/extension-text-align

    Patch Changes

    @tiptap/extension-typography

    Patch Changes

    @tiptap/extension-underline

    Patch Changes

    @tiptap/extension-unique-id

    Patch Changes

    @tiptap/extensions

    Patch Changes

    @tiptap/html

    Patch Changes

    @tiptap/markdown

    Patch Changes

    @tiptap/static-renderer

    Patch Changes

    @tiptap/suggestion

    Patch Changes

    @tiptap/vue-2

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/extension-drag-handle-react

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-list-item

    Patch Changes

    @tiptap/extension-list-keymap

    Patch Changes

    @tiptap/extension-task-item

    Patch Changes

    @tiptap/extension-task-list

    Patch Changes

    @tiptap/extension-bullet-list

    Patch Changes

    @tiptap/extension-ordered-list

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    Open source →
  24. 3.23.18 May 2026
    Release notes2 sources agree

    @tiptap/extension-drag-handle-react

    Patch Changes

    • a4e5154: Fix DragHandle unmounts by rendering children into the plugin-managed drag handle element with a React portal.

      This avoids React trying to remove a host node after the drag handle plugin has moved it into its own wrapper.

    • @tiptap/[email protected]

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-list-item

    Patch Changes

    @tiptap/extension-list-keymap

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/extension-task-item

    Patch Changes

    @tiptap/extension-task-list

    Patch Changes

    @tiptap/core

    Patch Changes

    @tiptap/extension-audio

    Patch Changes

    @tiptap/extension-blockquote

    Patch Changes

    @tiptap/extension-bold

    Patch Changes

    @tiptap/extension-bubble-menu

    Patch Changes

    @tiptap/extension-bullet-list

    Patch Changes

    @tiptap/extension-code

    Patch Changes

    @tiptap/extension-code-block

    Patch Changes

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    @tiptap/extension-drag-handle

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-emoji

    Patch Changes

    @tiptap/extension-file-handler

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/extension-hard-break

    Patch Changes

    @tiptap/extension-heading

    Patch Changes

    @tiptap/extension-highlight

    Patch Changes

    @tiptap/extension-horizontal-rule

    Patch Changes

    @tiptap/extension-image

    Patch Changes

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    @tiptap/extension-link

    Patch Changes

    @tiptap/extension-list

    Patch Changes

    @tiptap/extension-mathematics

    Patch Changes

    @tiptap/extension-mention

    Patch Changes

    @tiptap/extension-node-range

    Patch Changes

    @tiptap/extension-ordered-list

    Patch Changes

    @tiptap/extension-paragraph

    Patch Changes

    @tiptap/extension-strike

    Patch Changes

    @tiptap/extension-subscript

    Patch Changes

    @tiptap/extension-superscript

    Patch Changes

    @tiptap/extension-table

    Patch Changes

    @tiptap/extension-table-of-contents

    Patch Changes

    @tiptap/extension-text

    Patch Changes

    @tiptap/extension-text-align

    Patch Changes

    @tiptap/extension-text-style

    Patch Changes

    @tiptap/extension-twitch

    Patch Changes

    @tiptap/extension-typography

    Patch Changes

    @tiptap/extension-underline

    Patch Changes

    @tiptap/extension-unique-id

    Patch Changes

    @tiptap/extension-youtube

    Patch Changes

    @tiptap/extensions

    Patch Changes

    @tiptap/html

    Patch Changes

    @tiptap/markdown

    Patch Changes

    @tiptap/react

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    @tiptap/static-renderer

    Patch Changes

    @tiptap/suggestion

    Patch Changes

    @tiptap/vue-2

    Patch Changes

    @tiptap/vue-3

    Patch Changes

    Open source →
  25. 3.22.528 Apr 2026
    Release notes2 sources agree

    @tiptap/react

    Patch Changes

    • 13b5894: Add selectedOnTextSelection option to node view renderers. When enabled, the selected prop also becomes true when a TextSelection is fully inside the node's range, not only on NodeSelection.
    • Updated dependencies [13b5894]

    @tiptap/vue-2

    Patch Changes

    • 13b5894: Add selectedOnTextSelection option to node view renderers. When enabled, the selected prop also becomes true when a TextSelection is fully inside the node's range, not only on NodeSelection.
    • Updated dependencies [13b5894]

    @tiptap/vue-3

    Patch Changes

    • 13b5894: Add selectedOnTextSelection option to node view renderers. When enabled, the selected prop also becomes true when a TextSelection is fully inside the node's range, not only on NodeSelection.
    • Updated dependencies [13b5894]

    @tiptap/core

    Patch Changes

    • 13b5894: Add selectedOnTextSelection option to node view renderers. When enabled, the selected prop also becomes true when a TextSelection is fully inside the node's range, not only on NodeSelection.
    • @tiptap/[email protected]

    @tiptap/extension-table-of-contents

    Patch Changes

    • 13b5894: Fix duplicate onUpdate invocation per document change in the TableOfContents extension.
    • Updated dependencies [13b5894]

    @tiptap/static-renderer

    Patch Changes

    • 13b5894: Escape HTML string renderer text content and attribute values to prevent injected markup from untrusted content.
    • Updated dependencies [13b5894]

    @tiptap/extension-drag-handle-react

    Patch Changes

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    @tiptap/extension-audio

    Patch Changes

    @tiptap/extension-blockquote

    Patch Changes

    @tiptap/extension-bold

    Patch Changes

    @tiptap/extension-bubble-menu

    Patch Changes

    @tiptap/extension-code

    Patch Changes

    @tiptap/extension-code-block

    Patch Changes

    @tiptap/extension-code-block-lowlight

    Patch Changes

    @tiptap/extension-collaboration

    Patch Changes

    @tiptap/extension-collaboration-caret

    Patch Changes

    @tiptap/extension-details

    Patch Changes

    @tiptap/extension-document

    Patch Changes

    @tiptap/extension-drag-handle

    Patch Changes

    @tiptap/extension-emoji

    Patch Changes

    @tiptap/extension-file-handler

    Patch Changes

    @tiptap/extension-floating-menu

    Patch Changes

    @tiptap/extension-hard-break

    Patch Changes

    @tiptap/extension-heading

    Patch Changes

    @tiptap/extension-highlight

    Patch Changes

    @tiptap/extension-horizontal-rule

    Patch Changes

    @tiptap/extension-image

    Patch Changes

    @tiptap/extension-invisible-characters

    Patch Changes

    @tiptap/extension-italic

    Patch Changes

    @tiptap/extension-link

    Patch Changes

    @tiptap/extension-list

    Patch Changes

    @tiptap/extension-mathematics

    Patch Changes

    @tiptap/extension-mention

    Patch Changes

    @tiptap/extension-node-range

    Patch Changes

    @tiptap/extension-paragraph

    Patch Changes

    @tiptap/extension-strike

    Patch Changes

    @tiptap/extension-subscript

    Patch Changes

    @tiptap/extension-superscript

    Patch Changes

    @tiptap/extension-table

    Patch Changes

    @tiptap/extension-text

    Patch Changes

    @tiptap/extension-text-align

    Patch Changes

    @tiptap/extension-text-style

    Patch Changes

    @tiptap/extension-twitch

    Patch Changes

    @tiptap/extension-typography

    Patch Changes

    @tiptap/extension-underline

    Patch Changes

    @tiptap/extension-unique-id

    Patch Changes

    @tiptap/extension-youtube

    Patch Changes

    @tiptap/extensions

    Patch Changes

    @tiptap/html

    Patch Changes

    @tiptap/markdown

    Patch Changes

    @tiptap/suggestion

    Patch Changes

    @tiptap/extension-list-item

    Patch Changes

    @tiptap/extension-list-keymap

    Patch Changes

    @tiptap/extension-task-item

    Patch Changes

    @tiptap/extension-task-list

    Patch Changes

    @tiptap/extension-bullet-list

    Patch Changes

    @tiptap/extension-ordered-list

    Patch Changes

    @tiptap/extension-table-cell

    Patch Changes

    @tiptap/extension-table-header

    Patch Changes

    @tiptap/extension-table-row

    Patch Changes

    @tiptap/extension-color

    Patch Changes

    @tiptap/extension-font-family

    Patch Changes

    @tiptap/extension-character-count

    Patch Changes

    @tiptap/extension-dropcursor

    Patch Changes

    @tiptap/extension-focus

    Patch Changes

    @tiptap/extension-gapcursor

    Patch Changes

    @tiptap/extension-history

    Patch Changes

    @tiptap/extension-placeholder

    Patch Changes

    @tiptap/starter-kit

    Patch Changes

    Open source →
  26. 3.22.418 Apr 2026
    Release notes2 sources agree

    @tiptap/extension-drag-handle

    Patch Changes

    • 032f8f1: Fix drag handle ghost image alignment when dragging blocks inside offset layouts, and preserve correct ghost image behavior for RTL content.
    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/core

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • 032f8f1: Fix text selection collapsing after toggling off a list with AllSelection
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-audio

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-blockquote

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-bold

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-bubble-menu

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-bullet-list

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-code

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-code-block

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-code-block-lowlight

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-collaboration

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-collaboration-caret

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-color

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]

    @tiptap/extension-details

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-document

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-drag-handle-react

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-emoji

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-file-handler

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-floating-menu

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-font-family

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]

    @tiptap/extension-hard-break

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-heading

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-highlight

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-horizontal-rule

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-image

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-invisible-characters

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-italic

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-link

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-list

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts

    • 032f8f1: Treat non-indented continuation lines following an ordered list marker as part of the same list item.

      This aligns ordered list parsing with CommonMark behavior: lines immediately after a list item (before a blank line) are considered lazy continuation and remain inside the list item rather than ending it.

    • Updated dependencies [032f8f1]

    • Updated dependencies [032f8f1]

    • Updated dependencies [032f8f1]

    @tiptap/extension-mathematics

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-mention

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-node-range

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-ordered-list

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-paragraph

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-strike

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-subscript

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-superscript

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-table

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-table-of-contents

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-text

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-text-align

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-text-style

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-twitch

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-typography

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-underline

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-unique-id

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-youtube

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extensions

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/html

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/markdown

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/pm

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • 032f8f1: Remove unused ProseMirror packages from @tiptap/pm to reduce bundle size

    @tiptap/react

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/starter-kit

    Patch Changes

    @tiptap/static-renderer

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/suggestion

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/vue-2

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/vue-3

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-character-count

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]

    @tiptap/extension-dropcursor

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]

    @tiptap/extension-focus

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]

    @tiptap/extension-gapcursor

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]

    @tiptap/extension-history

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]

    @tiptap/extension-list-item

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-list-keymap

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-placeholder

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]

    @tiptap/extension-table-cell

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]

    @tiptap/extension-table-header

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]

    @tiptap/extension-table-row

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]

    @tiptap/extension-task-item

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]

    @tiptap/extension-task-list

    Patch Changes

    • 032f8f1: Fix dependencies installation after packages updates producing peer dependency resolution conflicts
    • Updated dependencies [032f8f1]
    • Updated dependencies [032f8f1]
    Open source →
  27. 3.22.38 Apr 2026
    Release notes2 sources agree

    @tiptap/core

    Patch Changes

    • ac994c5: Fixed insertContentAt corrupting the document when inserting inline content with marks at the start of a paragraph. The from - 1 position adjustment now only applies to block-level content.

    @tiptap/extension-node-range

    Patch Changes

    • ac994c5: Add an option to control whether node ranges extend when a selection only touches a node boundary.

    @tiptap/html

    Patch Changes

    • ac994c5: Remove unnecessary xmlns="http://www.w3.org/1999/xhtml" attribute from generateHTML output by using innerHTML instead of XMLSerializer for HTML serialization.

    @tiptap/extension-drag-handle

    Patch Changes

    • ac994c5: Fix drag selections so crossing a node boundary does not incorrectly include the next node.

    @tiptap/starter-kit

    Patch Changes

    Open source →
  28. 3.22.24 Apr 2026
    Release notes

    @tiptap/core

    Patch Changes

    • Fix incorrect selection placement when pasting at the end of a marked text node, ensuring inclusive marks are respected
    • Fixes list toggling when the entire document is selected

    @tiptap/extension-floating-menu

    Patch Changes

    • Add new transaction meta handlers to programmatically show & hide the floating & bubble menus via transaction.setMeta('menuKey', 'show') and transaction.setMeta('menuKey', 'hide')

    @tiptap/extension-bubble-menu

    Patch Changes

    • Add new transaction meta handlers to programmatically show & hide the floating & bubble menus via transaction.setMeta('menuKey', 'show') and transaction.setMeta('menuKey', 'hide')

    @tiptap/extension-typography

    Patch Changes

    • Added RTL smart quote support

    @tiptap/react

    Patch Changes

    • Fixed an error where flushSync() would run in <EditorContent /> lifecycle

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    • Fixed an issue causing drag handle visibility not to update dynamically in Vue 3 components.

    @tiptap/starter-kit

    Patch Changes

    Open source →
    Additional notes

    @tiptap/core

    Patch Changes

    • 22b1527: Fix incorrect selection placement when pasting at the end of a marked text node, ensuring inclusive marks are respected
    • 22b1527: Fixes list toggling when the entire document is selected

    @tiptap/extension-floating-menu

    Patch Changes

    • 22b1527: Add new transaction meta handlers to programmatically show & hide the floating & bubble menus via transaction.setMeta('menuKey', 'show') and transaction.setMeta('menuKey', 'hide')

    @tiptap/extension-bubble-menu

    Patch Changes

    • 22b1527: Add new transaction meta handlers to programmatically show & hide the floating & bubble menus via transaction.setMeta('menuKey', 'show') and transaction.setMeta('menuKey', 'hide')

    @tiptap/extension-typography

    Patch Changes

    • 22b1527: Added RTL smart quote support

    @tiptap/react

    Patch Changes

    • 22b1527: Fixed an error where flushSync() would run in <EditorContent /> lifecycle

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    • 22b1527: Fixed an issue causing drag handle visibility not to update dynamically in Vue 3 components.

    @tiptap/starter-kit

    Patch Changes

    Open source →
  29. 3.22.12 Apr 2026
    Release notes2 sources agree

    @tiptap/extension-drag-handle

    Patch Changes

    • Fixed drag handle ghost image for RTL and mixed-direction content: the ghost wrapper now uses the dragged block’s computed direction (via domAtPos), and the drag image hotspot uses the cursor position relative to the ghost wrapper so the preview aligns with the pointer in both LTR and RTL.

    @tiptap/core

    Patch Changes

    • Fix NodeView not re-rendering when a node's position changes without content or decoration changes (e.g. when a sibling node is moved within the same parent)
    • Don't stop dragover/dragenter events in NodeViews, to prevent spurious drag-copy cursors

    @tiptap/react

    Patch Changes

    • Fix NodeView not re-rendering when a node's position changes without content or decoration changes (e.g. when a sibling node is moved within the same parent)
    • Prevent React node views from crashing during deferred selection updates when ProseMirror has already detached the node view position lookup.

    @tiptap/vue-3

    Patch Changes

    • Fix NodeView not re-rendering when a node's position changes without content or decoration changes (e.g. when a sibling node is moved within the same parent)

    @tiptap/vue-2

    Patch Changes

    • Fix NodeView not re-rendering when a node's position changes without content or decoration changes (e.g. when a sibling node is moved within the same parent)
    Open source →
  30. 3.22.031 Mar 2026
    Release notes2 sources agree

    @tiptap/extension-emoji

    Patch Changes

    • Use a named import for Suggestion from @tiptap/suggestion to avoid bundler ESM/CJS interop wrapping (__toESM) that caused CJS consumers to receive a module object instead of the callable plugin factory.

      This is a non-breaking internal fix identical to the one applied to @tiptap/extension-mention in #6994.

    @tiptap/extension-collaboration

    Patch Changes

    • Moved content validation from Yjs beforeTransaction (whose return value was ignored) to ProseMirror filterTransaction, so invalid collaborative changes are now properly blocked.

    @tiptap/extension-bubble-menu

    Patch Changes

    • Prevent hidden bubble menus from reappearing during scroll and resize updates. Bubble menu positioning now only runs for menus that are already shown, so default text-selection menus stay hidden until they should actually open.

    @tiptap/core

    Patch Changes

    • Fix HTML character escaping in markdown roundtrip. HTML entities (&lt;, &gt;, &amp;, &quot;) are now decoded to literal characters when parsing markdown into the editor. <, >, and & are re-encoded when serializing back to markdown, while " is preserved as a literal character since double quotes are ordinary in markdown. Code detection for skipping encoding now uses the code: true extension spec instead of hardcoded type names. Literal characters inside code blocks and inline code are always preserved.
    • Fix ResizableNodeView ignoring node's inline setting by using inline-flex for inline nodes and flex for block nodes
    • extendMarkRange defaults to using the attributes of the first mark of the given type, instead of attributes = {}. In particular, extendMarkRange('link') no longer extends to adjacent links with different hrefs; restore the previous behavior with extendMarkRange('link', {}).
    • Fix getMarkRange attributes default to consider the first mark of the given type
    • Guard mark delete event handling when unsetMark removes a mark from inline content that starts at position 0, preventing a RangeError during the before-node lookup.

    @tiptap/markdown

    Patch Changes

    • Fix HTML character escaping in markdown roundtrip. HTML entities (&lt;, &gt;, &amp;, &quot;) are now decoded to literal characters when parsing markdown into the editor. <, >, and & are re-encoded when serializing back to markdown, while " is preserved as a literal character since double quotes are ordinary in markdown. Code detection for skipping encoding now uses the code: true extension spec instead of hardcoded type names. Literal characters inside code blocks and inline code are always preserved.

    @tiptap/extension-mathematics

    Patch Changes

    • Prevent inline math input rule from capturing previous character. Changed input rule to utilize negative lookbehind to prevent matching previous character. Ensures the range's from position is correctly at the start of the double $ signs.

    @tiptap/suggestion

    Patch Changes

    • Suggestions dismissed via Escape no longer reappear when the user keeps typing in the same word — they only come back after inserting whitespace, a newline, or moving the cursor to a different trigger.

    @tiptap/extension-details

    Patch Changes

    • Fix a rerender loop in the Details node view when the toggle button updates its DOM attributes through renderToggleButton.

    @tiptap/html

    Patch Changes

    • Updated happy-dom to 20.8.9

    @tiptap/extension-table

    Minor Changes

    • Added Markdown table alignment support. The TableCell and TableHeader nodes now have an align attribute (left, center, right) that is parsed from Markdown column alignment markers (:---, ---:, :---:) and serialized back when rendering to Markdown. Alignment is also parsed from and rendered to HTML via style="text-align: ...".
    Open source →
  31. 3.21.027 Mar 2026
    Release notes2 sources agree

    @tiptap/extension-details

    Minor Changes

    • Add a renderToggleButton option to customize the details toggle button, including its accessible label.

    @tiptap/markdown

    Patch Changes

    • Fix custom markdown tokenizer helper lexing to use Marked's active lexer so ordered list parsing no longer breaks inline tokenization in following paragraphs.

    @tiptap/extension-drag-handle

    Patch Changes

    • Updated findElementNextToCoords to fall back to view.posAtCoords when elementsFromPoint returns no matching block, resolving the position to the top-level block node.

    @tiptap/extension-emoji

    Patch Changes

    • Update emoji dataset to include latest Unicode emojis.
    Open source →
  32. 3.20.627 Mar 2026
    Release notes2 sources agree

    @tiptap/extension-drag-handle

    Patch Changes

    • Fix drag preview cleanup so cloned drag images are also removed when dragging ends without a valid drop.
    Open source →
  33. 3.20.524 Mar 2026
    Release notes2 sources agree

    @tiptap/extensions

    Patch Changes

    • Add support for skipping trailing node insertion on transactions by setting the skipTrailingNode meta flag.
    Open source →
  34. 3.20.417 Mar 2026
    Release notes

    @tiptap/core

    Patch Changes

    • Fixed Tiptap not publishing with build dist artifacts
    Open source →
  35. 3.20.316 Mar 2026
    Release notes2 sources agree

    @tiptap/react

    Patch Changes

    • Forward BubbleMenu and FloatingMenu HTML props to the actual menu element so attributes like className, style, data-*, and event handlers bind to the positioned menu container.
    • Generate a stable per-instance menu plugin key automatically when pluginKey is omitted, so multiple BubbleMenu or FloatingMenu components can be mounted without colliding.

    @tiptap/vue-2

    Patch Changes

    • Forward BubbleMenu and FloatingMenu HTML props to the actual menu element so attributes like className, style, data-*, and event handlers bind to the positioned menu container.
    • Generate a stable per-instance menu plugin key automatically when pluginKey is omitted, so multiple BubbleMenu or FloatingMenu components can be mounted without colliding.

    @tiptap/core

    Patch Changes

    • Fixed isNodeEmpty() so multi-line text with non-whitespace content is no longer treated as empty when ignoreWhitespace is enabled.
    • Fixed overlapping bold and italic markdown serialization and round-tripping.

    @tiptap/extension-unique-id

    Patch Changes

    • Fixed a bug where empty paragraphs accumulated in the document on every page reload when using the UniqueID extension with the Collaboration extension and an externally created Yjs provider.

    @tiptap/extension-youtube

    Patch Changes

    • Export missing getEmbedUrlFromYoutubeUrl and isValidYoutubeUrl embed URL utility functions

    @tiptap/vue-3

    Patch Changes

    • Generate a stable per-instance menu plugin key automatically when pluginKey is omitted, so multiple BubbleMenu or FloatingMenu components can be mounted without colliding.

    @tiptap/extension-placeholder

    Patch Changes

    • Skip placeholder decorations on non-textblock nodes when includeChildren is enabled to prevent duplicate placeholders on wrapper nodes like lists.

    @tiptap/extension-bold

    Patch Changes

    • Fixed overlapping bold and italic markdown serialization and round-tripping.

    @tiptap/extension-italic

    Patch Changes

    • Fixed overlapping bold and italic markdown serialization and round-tripping.

    @tiptap/markdown

    Patch Changes

    • Fixed overlapping bold and italic markdown serialization and round-tripping.
    Open source →
  36. 3.20.215 Mar 2026
    Release notes2 sources agree

    @tiptap/core

    Patch Changes

    • Improved markdown empty-paragraph roundtripping across top-level and nested block content. Empty paragraphs now serialize with natural blank-line spacing for the first paragraph in a run and &nbsp; markers for subsequent empty paragraphs at the same level, while parsing preserves those empty paragraphs when converting markdown back to JSON.

    @tiptap/extension-blockquote

    Patch Changes

    • Improved markdown empty-paragraph roundtripping across top-level and nested block content. Empty paragraphs now serialize with natural blank-line spacing for the first paragraph in a run and &nbsp; markers for subsequent empty paragraphs at the same level, while parsing preserves those empty paragraphs when converting markdown back to JSON.

    @tiptap/extension-list

    Patch Changes

    • Improved markdown empty-paragraph roundtripping across top-level and nested block content. Empty paragraphs now serialize with natural blank-line spacing for the first paragraph in a run and &nbsp; markers for subsequent empty paragraphs at the same level, while parsing preserves those empty paragraphs when converting markdown back to JSON.

    @tiptap/extension-paragraph

    Patch Changes

    • Improved markdown empty-paragraph roundtripping across top-level and nested block content. Empty paragraphs now serialize with natural blank-line spacing for the first paragraph in a run and &nbsp; markers for subsequent empty paragraphs at the same level, while parsing preserves those empty paragraphs when converting markdown back to JSON.

    @tiptap/markdown

    Patch Changes

    • Improved markdown empty-paragraph roundtripping across top-level and nested block content. Empty paragraphs now serialize with natural blank-line spacing for the first paragraph in a run and &nbsp; markers for subsequent empty paragraphs at the same level, while parsing preserves those empty paragraphs when converting markdown back to JSON.
    Open source →
  37. 3.20.16 Mar 2026
    Release notes2 sources agree

    @tiptap/extension-code-block

    Patch Changes

    • Fix tilde-fenced code blocks (~~~) being silently dropped when parsing markdown

    @tiptap/extension-drag-handle

    Patch Changes

    • Fix Drag event listener is removed when a plugin is registered after the DragHandle plugin.

    @tiptap/extension-unique-id

    Patch Changes

    • Add support for types: 'all' in UniqueID to target every node type except doc and text.

    @tiptap/core

    Patch Changes

    • Fix inline style parsing in mergeAttributes for values containing : or ; (e.g. url(https://...) or url(data:...;charset=...,)) and skip incomplete declarations
    Open source →
  38. 3.20.018 Feb 2026
    Release notes2 sources agree

    @tiptap/core

    Minor Changes

    • Add transformPastedHTML extension API that allows extensions to transform pasted HTML content before it's parsed into the editor, enabling cleanup of styles, removal of dangerous content, and modification of pasted HTML through a chainable transform system.

    Patch Changes

    • Fix checking if mark is active and toggling off marks when part of the selection does not allow the mark (e.g. a code block)
    • Global attributes now support shorthand string values for types: use '*' to apply to all nodes and marks, 'nodes' for all nodes (excluding text), or 'marks' for all marks.
    • Fixed a typo in the documentation of editor.view

    @tiptap/extension-drag-handle

    Patch Changes

    • Fix drag handle not appearing for atom/leaf nodes like images in both nested and non-nested modes
    • Add table structure rules to prevent drag handle on table rows, cells, and headers, and fix ghost table rows when dragging tables
    • Fix drag position resolving outside the document when dragging an empty text node at the end of the document

    @tiptap/markdown

    Patch Changes

    • Fixed getMarkdown() returning &nbsp; instead of empty string when editor is empty

    @tiptap/extension-bubble-menu

    Patch Changes

    • Fix BubbleMenu/FloatingMenu to use pluginKey as the transaction meta key so that multiple instances can be updated independently without affecting each other

    @tiptap/extension-floating-menu

    Patch Changes

    • Fix BubbleMenu/FloatingMenu to use pluginKey as the transaction meta key so that multiple instances can be updated independently without affecting each other

    @tiptap/react

    Minor Changes

    • Moved BubbleMenu and FloatingMenu to separate @tiptap/react/menus entrypoint to keep floating-ui optional
    • Simplified Tiptap component API with guaranteed non-null editor instance from useTiptap hook

    Patch Changes

    • Fix BubbleMenu/FloatingMenu to use pluginKey as the transaction meta key so that multiple instances can be updated independently without affecting each other

    @tiptap/extension-code-block-lowlight

    Patch Changes

    • Fixed a runtime error when initializing CodeBlockLowlight by switching the CodeBlock import to a named export. This prevents extend is not a function errors caused by ESM/CJS interop issues.

    @tiptap/extension-invisible-characters

    Patch Changes

    • Added missing storage typings
    Open source →
  39. 3.19.03 Feb 2026
    Release notes2 sources agree

    @tiptap/extension-link

    Patch Changes

    • Add title attribute to Link extension. The title can now be set via setLink and toggleLink commands and is rendered as an HTML title attribute.
    • Add title attribute support for markdown rendering. Links with titles are now serialized to markdown format [text](url "title").

    @tiptap/react

    Minor Changes

    • Moved BubbleMenu and FloatingMenu to separate @tiptap/react/menus entrypoint to keep floating-ui optional
    • Simplified Tiptap component API with guaranteed non-null editor instance from useTiptap hook
    Open source →
  40. 3.18.028 Jan 2026
    Release notes

    @tiptap/extension-bubble-menu

    Patch Changes

    • Fix BubbleMenu and FloatingMenu props not updating after initialization

    @tiptap/extension-floating-menu

    Patch Changes

    • Fix BubbleMenu and FloatingMenu props not updating after initialization

    @tiptap/react

    Minor Changes

    • Introduce a new, optional React integration that provides a declarative <Tiptap /> component for setting up editors in React apps.

      Summary

      • Add a new, ergonomic way to initialize and use Tiptap editors in React via <Tiptap /> components. This is an additive change and does not remove or change existing APIs.

      Why this change

      • Improves ergonomics for React users by offering a component-first API that pairs well with React patterns (hooks, JSX composition and props-driven configuration).

      Migration and usage

      • The old programmatic setup remains supported for this major version — nothing breaks. We encourage consumers to try the new <Tiptap /> component and migrate when convenient.

      Example

      import { Tiptap, useEditor } from '@tiptap/react'
      
      function MyEditor() {
        const editor = useEditor({ extensions: [StarterKit], content: '<h1>Hello from Tiptap</h1>' })
      
        return (
          <Tiptap instance={editor}>
            <Tiptap.Content />
            <Tiptap.BubbleMenu>My Bubble Menu</Tiptap.BubbleMenu>
            <Tiptap.FloatingMenu>My Floating Menu</Tiptap.FloatingMenu>
            <MenuBar /> {/* MenuBar can use the new `useTiptap` hook to read the editor instance from context */}
          </Tiptap>
        )
      }
      

      Deprecation plan

      • The old imperative setup will remain fully backward-compatible for this major release. We plan to deprecate (and remove) the legacy setup in the next major version — a deprecation notice and migration guide will be published ahead of that change.

    Patch Changes

    • Fix BubbleMenu and FloatingMenu props not updating after initialization
    • Fixed extension storage not updating in React and Vue node views

    @tiptap/vue-3

    Patch Changes

    • Fixed extension storage not updating in React and Vue node views

    @tiptap/markdown

    Patch Changes

    • Upgrade marked.js from v15.0.12 to v17.0.1.

    @tiptap/extensions

    Patch Changes

    • Added a new dataAttribute to the extension option to control which attribute name will be used for the placeholder label.
    Open source →
    Additional notes

    @tiptap/extension-bubble-menu

    Patch Changes

    • Fix BubbleMenu and FloatingMenu props not updating after initialization

    @tiptap/extension-floating-menu

    Patch Changes

    • Fix BubbleMenu and FloatingMenu props not updating after initialization

    @tiptap/react

    Minor Changes

    • Introduce a new, optional React integration that provides a declarative <Tiptap /> component for setting up editors in React apps.

      Summary

      • Add a new, ergonomic way to initialize and use Tiptap editors in React via <Tiptap /> components. This is an additive change and does not remove or change existing APIs.

      Why this change

      • Improves ergonomics for React users by offering a component-first API that pairs well with React patterns (hooks, JSX composition and props-driven configuration).

      Migration and usage

      • The old programmatic setup remains supported for this major version — nothing breaks. We encourage consumers to try the new <Tiptap /> component and migrate when convenient.

      Example

      import { Tiptap, useEditor } from '@tiptap/react'
      
      function MyEditor() {
        const editor = useEditor({ extensions: [StarterKit], content: '<h1>Hello from Tiptap</h1>' })
      
        return (
          <Tiptap instance={editor}>
            <Tiptap.Content />
            <Tiptap.BubbleMenu>My Bubble Menu</Tiptap.BubbleMenu>
            <Tiptap.FloatingMenu>My Floating Menu</Tiptap.FloatingMenu>
            <MenuBar /> {/* MenuBar can use the new `useTiptap` hook to read the editor instance from context */}
          </Tiptap>
        )
      }
      

      Deprecation plan

      • The old imperative setup will remain fully backward-compatible for this major release. We plan to deprecate (and remove) the legacy setup in the next major version — a deprecation notice and migration guide will be published ahead of that change.

    Patch Changes

    • Fix BubbleMenu and FloatingMenu props not updating after initialization
    • Fixed extension storage not updating in React and Vue node views

    @tiptap/vue-3

    Patch Changes

    • Fixed extension storage not updating in React and Vue node views

    @tiptap/markdown

    Patch Changes

    • Upgrade marked.js from v15.0.12 to v17.0.1. Note that **)** requires whitespace when adjacent to alphanumeric text per CommonMark specification.

    @tiptap/extensions

    Patch Changes

    • Added a new dataAttribute to the extension option to control which attribute name will be used for the placeholder label.
    Open source →
  41. 3.17.124 Jan 2026
    Release notes2 sources agree

    @tiptap/extension-paragraph

    Patch Changes

    • Fixed markdown serialization doubling newlines and parsing collapsing multiple blank lines

    @tiptap/markdown

    Patch Changes

    • Fixed markdown serialization doubling newlines and parsing collapsing multiple blank lines
    • Fixed markdown HTML parsing when window object is unavailable in server-side environments
    • Fixed ordered list numbering when list has a non-default start value

    @tiptap/vue-3

    Patch Changes

    • Fixed IME input (Chinese, Japanese, Korean) in Vue 3 mark views by preventing DOM element destruction during composition events

    @tiptap/extension-collaboration-caret

    Patch Changes

    • Fixed CollaborationCaret crash with "Cannot read properties of undefined (reading 'doc')" error by updating to @tiptap/[email protected], which includes a guard against undefined state during editor initialization. This issue affected editors initialized with HTML content, particularly when using tables.

    @tiptap/extension-collaboration

    Patch Changes

    • Fixed CollaborationCaret crash with "Cannot read properties of undefined (reading 'doc')" error by updating to @tiptap/[email protected], which includes a guard against undefined state during editor initialization. This issue affected editors initialized with HTML content, particularly when using tables.

    @tiptap/extension-drag-handle

    Patch Changes

    • Fixed CollaborationCaret crash with "Cannot read properties of undefined (reading 'doc')" error by updating to @tiptap/[email protected], which includes a guard against undefined state during editor initialization. This issue affected editors initialized with HTML content, particularly when using tables.

    @tiptap/html

    Patch Changes

    • Fixed server-side HTML parsing crash when content contains link, script, or style tags with resource references.
    • Fixed server exports failing in Node.js test environments with jsdom/happy-dom

    @tiptap/extension-bubble-menu

    Patch Changes

    • Fixed bubble and floating menus to properly handle hide middleware data, hiding menus when reference element is scrolled out of view

    @tiptap/extension-floating-menu

    Patch Changes

    • Fixed bubble and floating menus to properly handle hide middleware data, hiding menus when reference element is scrolled out of view

    @tiptap/core

    Patch Changes

    • Fixed $nodes() method to correctly return inline nodes (like text, mention, etc.) by fixing the children getter in NodePos class
    • Fixed ResizableNodeView contentDOM getter to return null instead of undefined for proper TypeScript compatibility

    @tiptap/extension-list

    Patch Changes

    • Fixed ordered list numbering when list has a non-default start value
    Open source →
  42. 3.17.023 Jan 2026
    Release notes2 sources agree

    @tiptap/extension-bubble-menu

    Patch Changes

    • Added a safeguard to avoid TypeError: Cannot read properties of null (reading 'domFromPos') being thrown when the editor was being destroyed

    @tiptap/extension-drag-handle

    Minor Changes

    • Added nested drag handle support, allowing drag handles to appear for nested content like list items and blockquotes with configurable edge detection and custom rules.

    Patch Changes

    • Fixed Firefox bug where the text caret becomes invisible after drag and drop.

    @tiptap/core

    Patch Changes

    • Added isFirefox utility to core

    @tiptap/extension-drag-handle-react

    Minor Changes

    • Added nested drag handle support, allowing drag handles to appear for nested content like list items and blockquotes with configurable edge detection and custom rules.

    @tiptap/extension-drag-handle-vue-2

    Minor Changes

    • Added nested drag handle support, allowing drag handles to appear for nested content like list items and blockquotes with configurable edge detection and custom rules.

    @tiptap/extension-drag-handle-vue-3

    Minor Changes

    • Added nested drag handle support, allowing drag handles to appear for nested content like list items and blockquotes with configurable edge detection and custom rules.
    Open source →
  43. 3.16.020 Jan 2026
    Release notes2 sources agree

    @tiptap/extension-audio

    Minor Changes

    • Add a native audio extension with demos and tests.

    @tiptap/markdown

    Patch Changes

    • Fix incorrect Markdown output when underline is mixed with bold or italic and their ranges do not fully overlap.
    • Fix overlapping underline/bold/italic serialization and add tests

    @tiptap/extension-link

    Patch Changes

    • Fixed an issue where clicking on non-link elements (like images) required multiple clicks to select them. The link click handler now properly returns early when the clicked element is not a link, allowing other node handlers to process the click event.

    @tiptap/extension-floating-menu

    Minor Changes

    • Add updateEvent support for FloatingMenu to allow programmatic position updates via setMeta('floatingMenu', 'updatePosition')

    @tiptap/react

    Minor Changes

    • Add updateEvent support for FloatingMenu to allow programmatic position updates via setMeta('floatingMenu', 'updatePosition')

    @tiptap/vue-2

    Minor Changes

    • Add updateEvent support for FloatingMenu to allow programmatic position updates via setMeta('floatingMenu', 'updatePosition')

    @tiptap/vue-3

    Minor Changes

    • Add updateEvent support for FloatingMenu to allow programmatic position updates via setMeta('floatingMenu', 'updatePosition')

    @tiptap/extension-unique-id

    Patch Changes

    • Improved findDuplicates helper performance from O(n²) to O(n) by using Set-based lookups instead of Array.indexOf
    Open source →
  44. 3.15.37 Jan 2026
    Release notes2 sources agree

    @tiptap/core

    Patch Changes

    • Fix Safari scrolling to top when using editor.chain().focus() commands
    Open source →
  45. 3.15.27 Jan 2026
    Release notes2 sources agree

    @tiptap/extension-link

    Patch Changes

    • Prevent auto-linking of bare hostnames (e.g., localhost) and IP addresses without a protocol prefix

    @tiptap/extension-list

    Patch Changes

    • Fix lost HTML attributes in TaskItem node view updates

    @tiptap/vue-2

    Patch Changes

    • Fix Vue prop validation warning for appendTo prop in BubbleMenu and FloatingMenu

    @tiptap/vue-3

    Patch Changes

    • Fix Vue prop validation warning for appendTo prop in BubbleMenu and FloatingMenu

    @tiptap/extension-youtube

    Patch Changes

    • Fix YouTube Shorts embed URLs using incorrect query parameter separator

    @tiptap/react

    Patch Changes

    • Fix race conditions in ReactRenderer causing destroyed renderers to be re-added in Strict Mode
    Open source →
  46. 3.15.16 Jan 2026
    Release notes2 sources agree

    @tiptap/suggestion

    Patch Changes

    • Add a new shouldShow callback to the Suggestion utility. This allows developers to filter when suggestions are displayed, which is especially useful for collaborative environments to prevent suggestions from popping open for remote users.
    Open source →
  47. 3.15.05 Jan 2026
    Release notes2 sources agree

    @tiptap/core

    Minor Changes

    • Add a new dispatchTransaction hook to extensions, allowing developers to intercept, modify, or block transactions before they are applied to the editor state.

    @tiptap/extension-unique-id

    Patch Changes

    • Fix unique ID assignment when handling empty nodes by checking next node's attribute state in the transaction document before modifying it, preventing incorrect ID assignments.
    Open source →
  48. 3.14.019 Dec 2025
    Release notes

    v3.14.0

    @tiptap/extension-twitch

    Minor Changes

    • Add new Twitch extension for embedding Twitch videos, clips, and live channels in the editor. Supports customizable parameters like autoplay, muted, and start time, with attribute-level overrides for per-embed configuration.

      Documentation: https://tiptap.dev/docs/editor/extensions/nodes/twitch

    @tiptap/react

    Patch Changes

    • Append all children of editors parent node to element

      Fixes a regression introduced by #6972, that resulted in elements that got appended to the editors parent node staying detached. E.g. the drag handle plugin is affected by this regression.

    @tiptap/vue-2

    Patch Changes

    • Append all children of editors parent node to element

      Fixes a regression introduced by #6972, that resulted in elements that got appended to the editors parent node staying detached. E.g. the drag handle plugin is affected by this regression.

    @tiptap/vue-3

    Patch Changes

    • Append all children of editors parent node to element

      Fixes a regression introduced by #6972, that resulted in elements that got appended to the editors parent node staying detached. E.g. the drag handle plugin is affected by this regression.

    @tiptap/extension-drag-handle

    Patch Changes

    • Fix findElementNextToCoords to resolve the parent when nodeAt(pos) is null (e.g., inside an atom node that allows inline content)
    Open source →
    Additional notes

    @tiptap/extension-twitch

    Minor Changes

    • Add new Twitch extension for embedding Twitch videos, clips, and live channels in the editor. Supports customizable parameters like autoplay, muted, and start time, with attribute-level overrides for per-embed configuration.

    @tiptap/react

    Patch Changes

    • Append all children of editors parent node to element

      Fixes a regression introduced by #6972, that resulted in elements that got appended to the editors parent node staying detached. E.g. the drag handle plugin is affected by this regression.

    @tiptap/vue-2

    Patch Changes

    • Append all children of editors parent node to element

      Fixes a regression introduced by #6972, that resulted in elements that got appended to the editors parent node staying detached. E.g. the drag handle plugin is affected by this regression.

    @tiptap/vue-3

    Patch Changes

    • Append all children of editors parent node to element

      Fixes a regression introduced by #6972, that resulted in elements that got appended to the editors parent node staying detached. E.g. the drag handle plugin is affected by this regression.

    @tiptap/extension-drag-handle

    Patch Changes

    • Fix findElementNextToCoords to resolve the parent when nodeAt(pos) is null (e.g., inside an atom node that allows inline content)
    Open source →
  49. 3.13.05 Dec 2025
    Release notes2 sources agree

    @tiptap/extension-drag-handle

    Patch Changes

    • Added data-dragging attribute to drag handle elements to track drag state.

    @tiptap/extension-drag-handle-react

    Patch Changes

    • Added data-dragging attribute to drag handle elements to track drag state.

    @tiptap/extension-drag-handle-vue-2

    Patch Changes

    • Added data-dragging attribute to drag handle elements to track drag state.

    @tiptap/extension-drag-handle-vue-3

    Patch Changes

    • Added data-dragging attribute to drag handle elements to track drag state.

    @tiptap/extension-link

    Patch Changes

    • Ensure enableClickSelection works regardless of the openOnClick option by always registering the link click handler plugin.

    @tiptap/extension-table-of-contents

    Patch Changes

    • Skip the table of contents update logic during IME input method composition to avoid interference with input.

    @tiptap/markdown

    Patch Changes

    • Fixed trailing and leading whitespace handling in markdown serialization for inline marks

    @tiptap/extension-mention

    Patch Changes

    • Add 'mentionSuggestionChar' to allowedAttributes for Markdown serialization in multi-mention setups. The attribute is only serialized when it differs from the default '@' character, keeping markdown output clean for single-mention users.

    @tiptap/core

    Minor Changes

      1. Added an optional createCustomHandle callback to ResizableNodeView, allowing developers to fully customize resize handles. When provided, it replaces the default handle creation and bypasses the built-in positionHandle logic, giving complete control over markup, styling, and positioning while preserving backward compatibility.
      2. Removed predefined inline styles from the wrapper element to better support dynamic alignment. This eliminates the need for !important overrides in user styles.
      3. Added an editor update event listener to dynamically attach or remove resize handles based on the editor’s editable state. The implementation tracks the previous editable state to avoid unnecessary re-renders.

    Patch Changes

    • Add 'mentionSuggestionChar' to allowedAttributes for Markdown serialization in multi-mention setups. The attribute is only serialized when it differs from the default '@' character, keeping markdown output clean for single-mention users.

    @tiptap/extension-image

    Minor Changes

      1. Added an optional createCustomHandle callback to ResizableNodeView, allowing developers to fully customize resize handles. When provided, it replaces the default handle creation and bypasses the built-in positionHandle logic, giving complete control over markup, styling, and positioning while preserving backward compatibility.
      2. Removed predefined inline styles from the wrapper element to better support dynamic alignment. This eliminates the need for !important overrides in user styles.
      3. Added an editor update event listener to dynamically attach or remove resize handles based on the editor’s editable state. The implementation tracks the previous editable state to avoid unnecessary re-renders.
    Open source →
  50. 3.12.13 Dec 2025
    Release notes2 sources agree

    @tiptap/extension-table-of-contents

    Patch Changes

    • Fixed a bug that mutated the ProseMirror document during server-side rendering, which could cause "Invalid content for node doc" errors.
    Open source →
  51. 3.12.02 Dec 2025
    Release notes2 sources agree

    @tiptap/extension-collaboration

    Minor Changes

    • Implement position mapping using the MappablePosition class. This enables position mapping in collaborative editing scenarios.

      • Introduce MappablePosition class in core with position, fromJSON, and toJSON methods
      • Add editor.utils property with getUpdatedPosition(position, transaction) and createMappablePosition() methods
      • Create CollaborationMappablePosition subclass that extends MappablePosition with Y.js relative position support

    @tiptap/core

    Minor Changes

    • Implement position mapping using the MappablePosition class. This enables position mapping in collaborative editing scenarios.

      • Introduce MappablePosition class in core with position, fromJSON, and toJSON methods
      • Add editor.utils property with getUpdatedPosition(position, transaction) and createMappablePosition() methods
      • Create CollaborationMappablePosition subclass that extends MappablePosition with Y.js relative position support

    @tiptap/extension-collaboration-caret

    Patch Changes

    • Avoid mutating this.options in the updateUser command. this.options can be a getter and is not writable; the command now updates the provider awareness directly so user updates are applied correctly.

    @tiptap/react

    Minor Changes

    • Replaced unmaintained fast-deep-equal dependency with maintained fast-equals

    Patch Changes

    • Fix a bug where React node views could receive invalid positions from this.getPos() when ProseMirror and React render cycles got out of sync, which could cause errors during updates.
    Open source →
  52. 3.11.127 Nov 2025
    Release notes2 sources agree

    @tiptap/core

    Patch Changes

    • Improve TypeScript generics for Node.extend

      The Node.extend method's TypeScript signature was updated so that ExtendedConfig can extend NodeConfig and MarkConfig, improving type inference when extending Node and Mark classes with additional config properties.

      This is a type-only change — there are no runtime behavior changes.

    @tiptap/extensions

    Patch Changes

    • Fixed a bug where the TrailingNode extension would not use the node option to assume the default node type
    Open source →
  53. 3.11.019 Nov 2025
    Release notes

    Releases

    v3.11.0

    @tiptap/core

    Minor Changes

    • Add native text direction support for RTL and bidirectional content. The editor now includes a textDirection option that can be set to 'ltr', 'rtl', or 'auto' to control the direction of all content globally. Additionally, new setTextDirection and unsetTextDirection commands allow for granular control of text direction on specific nodes. This enables proper rendering of right-to-left languages like Arabic and Hebrew, as well as bidirectional text mixing multiple languages.
    Open source →
    Additional notes

    @tiptap/core

    Minor Changes

    • Add native text direction support for RTL and bidirectional content. The editor now includes a textDirection option that can be set to 'ltr', 'rtl', or 'auto' to control the direction of all content globally. Additionally, new setTextDirection and unsetTextDirection commands allow for granular control of text direction on specific nodes. This enables proper rendering of right-to-left languages like Arabic and Hebrew, as well as bidirectional text mixing multiple languages.
    Open source →
  54. 3.10.818 Nov 2025
    Release notes2 sources agree

    @tiptap/core

    Patch Changes

    • Fixed a bug that caused extra characters to be inserted after a parsed, nestable content block by accounting for leading newlines
    • Add documentation comments to Tiptap JSON types
    • allow undefined as a value for the default attribute key
    • Fix updateAttributes and resetAttributes commands to return accurate results when used with .can(). Previously, these commands would always return true even when they couldn't perform the operation. Now they correctly return false when no matching nodes or marks are found in the selection.

    @tiptap/extension-text-align

    Patch Changes

    • Fix setTextAlign and unsetTextAlign commands to work correctly with .can() checks. Changed logic from .every() to .some() to return true when at least one configured node type matches, rather than requiring all types to match.

    @tiptap/static-renderer

    Patch Changes

    • Fix static HTML renderer incorrectly generating self-closing tags for HTML elements that require proper closing tags (iframe, script, style, etc.).

    @tiptap/markdown

    Patch Changes

    • Fixed CommonJS compatibility by downgrading marked dependency from v16 to v15.
    Open source →
  55. 3.10.712 Nov 2025
    Release notes

    Releases

    v3.10.7

    @tiptap/vue-2

    Patch Changes

    • Fix BubbleMenu plugin registration not triggering due to missing element reference during component initialization.
    Open source →
    Additional notes

    @tiptap/vue-2

    Patch Changes

    • Fix BubbleMenu plugin registration not triggering due to missing element reference during component initialization.
    Open source →
  56. 3.10.612 Nov 2025
    Release notes

    v3.10.6

    @tiptap/vue-2

    Patch Changes

    • Fix BubbleMenu and FloatingMenu component runtime errors in Vue 2.
    Open source →
    Additional notes

    @tiptap/vue-2

    Patch Changes

    • Fix BubbleMenu and FloatingMenu component runtime errors in Vue 2.
    Open source →
  57. 3.10.510 Nov 2025
    Release notes

    Releases

    v3.10.5

    @tiptap/extension-collaboration

    Patch Changes

    • Fixed collaborative editing errors with certain emoji combinations (like 🔴🟢, 😎🐈, 🟣🔵) by updating @tiptap/y-tiptap to stable v3.0.0.

    @tiptap/extension-collaboration-caret

    Patch Changes

    • Fixed collaborative editing errors with certain emoji combinations (like 🔴🟢, 😎🐈, 🟣🔵) by updating @tiptap/y-tiptap to stable v3.0.0.

    @tiptap/extension-drag-handle

    Patch Changes

    • Fixed collaborative editing errors with certain emoji combinations (like 🔴🟢, 😎🐈, 🟣🔵) by updating @tiptap/y-tiptap to stable v3.0.0.

    @tiptap/core

    Patch Changes

    • Fixed ProseMirror schema generation to properly respect isRequired attribute configuration. Previously, attributes marked with isRequired: true were incorrectly treated as optional because a default property was always included in the schema specification. ProseMirror determines attribute requirements by the absence of the default property, so now the default is only included when the attribute is not required and a default value is explicitly defined.

    @tiptap/extension-unique-id

    Patch Changes

    • Fixed infinite transaction loop that caused browser tabs to freeze when using UniqueID and TrailingNode extensions together.

    @tiptap/extensions

    Patch Changes

    • Fixed infinite transaction loop that caused browser tabs to freeze when using UniqueID and TrailingNode extensions together.
    Open source →
    Additional notes

    @tiptap/extension-collaboration

    Patch Changes

    • Fixed collaborative editing errors with certain emoji combinations (like 🔴🟢, 😎🐈, 🟣🔵) by updating @tiptap/y-tiptap to stable v3.0.0.

    @tiptap/extension-collaboration-caret

    Patch Changes

    • Fixed collaborative editing errors with certain emoji combinations (like 🔴🟢, 😎🐈, 🟣🔵) by updating @tiptap/y-tiptap to stable v3.0.0.

    @tiptap/extension-drag-handle

    Patch Changes

    • Fixed collaborative editing errors with certain emoji combinations (like 🔴🟢, 😎🐈, 🟣🔵) by updating @tiptap/y-tiptap to stable v3.0.0.

    @tiptap/core

    Patch Changes

    • Fixed ProseMirror schema generation to properly respect isRequired attribute configuration. Previously, attributes marked with isRequired: true were incorrectly treated as optional because a default property was always included in the schema specification. ProseMirror determines attribute requirements by the absence of the default property, so now the default is only included when the attribute is not required and a default value is explicitly defined.

    @tiptap/extension-unique-id

    Patch Changes

    • Fixed infinite transaction loop that caused browser tabs to freeze when using UniqueID and TrailingNode extensions together.

    @tiptap/extensions

    Patch Changes

    • Fixed infinite transaction loop that caused browser tabs to freeze when using UniqueID and TrailingNode extensions together.
    Open source →
  58. 3.10.48 Nov 2025
    Release notes

    Releases

    v3.10.4

    @tiptap/core

    Patch Changes

    • Fix autofocus behavior to prevent unwanted scrolling when disabled

    @tiptap/extension-blockquote

    Patch Changes

    • Fixed nested blockquote markdown serialization to properly handle multi-level nesting
    Open source →
    Additional notes

    @tiptap/core

    Patch Changes

    • Fix autofocus behavior to prevent unwanted scrolling when disabled

    @tiptap/extension-blockquote

    Patch Changes

    • Fixed nested blockquote markdown serialization to properly handle multi-level nesting
    Open source →
  59. 3.10.37 Nov 2025
    Release notes

    Releases

    v3.10.3

    @tiptap/markdown

    Patch Changes

    • Fix markdown serialization to prevent marks from continuing after hard breaks. Previously, marks like bold would incorrectly persist across hard breaks in the markdown output.
    • Fixed a bug where marks were resolved in incorrect orders, breaking markdown rendering for nested marks.
    • Fix parsing of mixed bullet lists and task lists. Previously, Marked.js would group consecutive bullet list items and task list items into a single list token, causing incorrect parsing. Now the parser detects mixed lists and splits them into separate bulletList and taskList nodes.
    Open source →
    Additional notes

    @tiptap/markdown

    Patch Changes

    • Fix markdown serialization to prevent marks from continuing after hard breaks. Previously, marks like bold would incorrectly persist across hard breaks in the markdown output.
    • Fixed a bug where marks were resolved in incorrect orders, breaking markdown rendering for nested marks.
    • Fix parsing of mixed bullet lists and task lists. Previously, Marked.js would group consecutive bullet list items and task list items into a single list token, causing incorrect parsing. Now the parser detects mixed lists and splits them into separate bulletList and taskList nodes.
    Open source →
  60. 3.10.25 Nov 2025
    Release notes

    Releases

    v3.10.2

    @tiptap/markdown

    Patch Changes

    • Fix parsing of mixed inline HTML within Markdown content so that inline HTML fragments are parsed correctly.

    @tiptap/extension-table

    Patch Changes

    • Allow setting custom table widths by respecting user-provided style attributes instead of always overriding them with calculated widths.
    Open source →
    Additional notes

    @tiptap/markdown

    Patch Changes

    • Fix parsing of mixed inline HTML within Markdown content so that inline HTML fragments are parsed correctly.

    @tiptap/extension-table

    Patch Changes

    • Allow setting custom table widths by respecting user-provided style attributes instead of always overriding them with calculated widths.
    Open source →