Skip to content

fix(deps): update tiptap to ^3.30.1 (stable1.0) - #2909

Open
renovate[bot] wants to merge 1 commit into
stable1.0from
renovate/stable1.0-tiptap
Open

fix(deps): update tiptap to ^3.30.1 (stable1.0)#2909
renovate[bot] wants to merge 1 commit into
stable1.0from
renovate/stable1.0-tiptap

Conversation

@renovate

@renovate renovate Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
@tiptap/extension-character-count (source) ^3.29.2^3.30.1 age confidence
@tiptap/extension-task-item (source) ^3.29.2^3.30.1 age confidence
@tiptap/extension-task-list (source) ^3.29.2^3.30.1 age confidence
@tiptap/starter-kit (source) ^3.29.2^3.30.1 age confidence
@tiptap/vue-2 (source) ^3.29.2^3.30.1 age confidence

Release Notes

ueberdosis/tiptap (@​tiptap/extension-character-count)

v3.30.1

Compare Source

Patch Changes

v3.30.0

Compare Source

Patch Changes
ueberdosis/tiptap (@​tiptap/extension-task-item)

v3.30.1

Compare Source

@​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/pm@​3.30.1
@​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

v3.30.0

Compare Source

@​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
@​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
@​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
@​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
@​tiptap/extension-drag-handle-react
Patch Changes
@​tiptap/extension-mathematics
Patch Changes
@​tiptap/extension-blockquote
Patch Changes
@​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

Note

PR body was truncated to here.


Configuration

📅 Schedule: (in timezone Europe/Berlin)

  • Branch creation
    • "every weekend"
  • Automerge
    • At any time (no schedule defined)

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

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

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


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

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

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@renovate
renovate Bot requested review from blizzz and enjeck as code owners August 22, 2026 12:30
@renovate renovate Bot added 3. to review Waiting for reviews dependencies Pull requests that update a dependency file labels Aug 22, 2026
@github-actions
github-actions Bot enabled auto-merge August 22, 2026 12:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3. to review Waiting for reviews dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants