typist icon indicating copy to clipboard operation
typist copied to clipboard

fix(deps): update tiptap packages to v3 (major)

Open renovate[bot] opened this issue 1 month ago • 2 comments

This PR contains the following updates:

Package Change Age Confidence
@tiptap/core (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-blockquote (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-bold (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-bullet-list (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-character-count (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-code (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-code-block (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-document (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-dropcursor (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-gapcursor (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-hard-break (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-heading (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-history (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-horizontal-rule (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-image (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-italic (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-link (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-list-item (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-list-keymap (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-ordered-list (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-paragraph (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-placeholder (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-strike (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-task-item (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-task-list (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-text (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-text-style (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/extension-typography (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/pm (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/react (source) 2.27.1 -> 3.10.4 age confidence
@tiptap/suggestion (source) 2.27.1 -> 3.10.4 age confidence

Release Notes

ueberdosis/tiptap (@​tiptap/core)

v3.10.4

Compare Source

Patch Changes
  • 64561c4: Fix autofocus behavior to prevent unwanted scrolling when disabled

v3.10.3

Compare Source

Patch Changes

v3.10.2

Compare Source

Patch Changes

v3.10.1

Compare Source

Patch Changes

v3.10.0

Compare Source

Minor Changes
  • 4aa9f57: Add a new ResizableNodeview NodeView to core that wraps elements (images, videos, iframes) with configurable resize handles. It provides live onResize/onCommit callbacks, min/max constraints, aspect-ratio support, and styling hooks (class names + data attributes) to improve UX when resizing media inside the editor.

  • 4aa9f57: the addNodeView function can now return null to dynamically disable rendering of a node view

    While this should not directly cause any issues, it's noteworthy as it still could affect some behavior in some edge cases.

Patch Changes

v3.9.1

Compare Source

Patch Changes

v3.9.0

Compare Source

Patch Changes

v3.8.0

Compare Source

Releases
v3.8.0
@​tiptap/extension-unique-id@​3.8.0
Minor Changes
  • 23e516e: Add updateDocument option to disable document updates caused by the Unique ID extension.
@​tiptap/react@​3.8.0
Patch Changes
  • f3770af: Prevent Bubble Menu plugin from re-loading every time the BubbleMenu component re-renders. Reverts a regression introduced in v3.6.3, in PR #​7028.

v3.7.2

Compare Source

Releases
v3.7.2
@​tiptap/html
Patch Changes

v3.7.1

Compare Source

Releases
v3.7.1
@​tiptap/markdown
Patch Changes
  • Editors will not throw an error anymore when content is an empty string and contentType is markdown
  • Remove invalid server configuration from package.json

v3.7.0

Compare Source

Releases

v3.7.0

@​tiptap/core
Minor Changes
  • All commands and their corresponding TypeScript types are now exported from @tiptap/core so they can be imported and referenced directly by consumers. This makes it easier to build typed helpers, extensions, and tests that depend on the command signatures.

    Why:

    • Previously some command option types were only available as internal types or scattered across files, which made it awkward for downstream users to import and reuse them.
    import { commands } from '@​tiptap/core'
    

    Notes:

    • This is a non-breaking, additive change. It improves ergonomics for TypeScript consumers.
    • If you rely on previously private/internal types, prefer the exported types from @tiptap/core going forward.
  • Add comprehensive bidirectional markdown support to Tiptap through a new @tiptap/markdown package and Markdown utilities in @tiptap/core.

    New Package: @tiptap/markdown - A new official extension that provides full Markdown parsing and serialization capabilities using MarkedJS as the underlying Markdown parser.

    Core Features:

    Extension API

    • Markdown Extension: Main extension that adds Markdown support to your editor
    • MarkdownManager: Core engine for parsing and serializing Markdown
      • Parse Markdown strings to Tiptap JSON: editor.markdown.parse(markdown)
      • Serialize Tiptap JSON to Markdown: editor.markdown.serialize(json)
      • Access to underlying marked.js instance: editor.markdown.instance
Editor Methods
  • editor.getMarkdown(): Serialize current editor content to Markdown string
  • editor.markdown: Access to MarkdownManager instance for advanced operations

Editor Options:

  • contentType: Control the type of content that is inserted into the editor. Can be json, html or markdown - defaults to json and will automatically detect invalid content types (like JSON when it is actually Markdown).
    new Editor({
      content: '# Hello World',
      contentType: 'markdown'
    })
    

Command Options: All content commands now support an contentType option:

  • setContent(markdown, { contentType: 'markdown' }): Replace editor content with markdown
  • insertContent(markdown, { contentType: 'markdown' }): Insert markdown at cursor position
  • insertContentAt(position, markdown, { contentType: 'markdown' }): Insert Markdown at specific position

For more, check the documentation.

Patch Changes
  • The extension manager now provides a new property baseExtensions that contains an unflattened array of extensions
@​tiptap/markdown
Minor Changes
  • Add comprehensive bidirectional markdown support to Tiptap through a new @tiptap/markdown package and Markdown utilities in @tiptap/core.

    New Package: @tiptap/markdown - A new official extension that provides full Markdown parsing and serialization capabilities using MarkedJS as the underlying Markdown parser.

    Core Features:

    Extension API

    • Markdown Extension: Main extension that adds Markdown support to your editor
    • MarkdownManager: Core engine for parsing and serializing Markdown
      • Parse Markdown strings to Tiptap JSON: editor.markdown.parse(markdown)
      • Serialize Tiptap JSON to Markdown: editor.markdown.serialize(json)
      • Access to underlying marked.js instance: editor.markdown.instance
Editor Methods
  • editor.getMarkdown(): Serialize current editor content to Markdown string
  • editor.markdown: Access to MarkdownManager instance for advanced operations

Editor Options:

  • contentType: Control the type of content that is inserted into the editor. Can be json, html or markdown - defaults to json and will automatically detect invalid content types (like JSON when it is actually Markdown).
    new Editor({
      content: '# Hello World',
      contentType: 'markdown'
    })
    

Command Options: All content commands now support an contentType option:

  • setContent(markdown, { contentType: 'markdown' }): Replace editor content with markdown
  • insertContent(markdown, { contentType: 'markdown' }): Insert markdown at cursor position
  • insertContentAt(position, markdown, { contentType: 'markdown' }): Insert Markdown at specific position

For more, check the documentation.

@​tiptap/extension-link
Patch Changes
  • Paste Handlers and onPaste plugin now respect shouldAutoLink/validate options
@​tiptap/extensions
Patch Changes
  • Make the TrailingNode extension's node option optional and derive the default node type from the editor schema when available.

    Previously the extension used a hard-coded 'paragraph' default and the node option was required in the TypeScript definitions. This change:

    • makes node optional in the options type,
    • prefers the editor schema's top node default type when resolving the trailing node, and
    • falls back to the configured option or 'paragraph' as a last resort.

    This fixes cases where projects use a different top-level default node and prevents the extension from inserting an incorrect trailing node type.

v3.6.7

Compare Source

Patch Changes

v3.6.6

Compare Source

Patch Changes

v3.6.5

Compare Source

Patch Changes
  • 1e4caea: Editors can now emit transaction and update events before being mounted. This means smoother state handling and instant feedback from editors, even when they're not in the DOM.

v3.6.4

Compare Source

Patch Changes

v3.6.3

Compare Source

Patch Changes
  • 67f7b4a: Refined the JSONContent.attrs definition to exactly mirror the structure returned by editor.getJSON(). This ensures strict type safety and consistency between the editor output and the expected type, eliminating errors caused by mismatched attribute signatures.

v3.6.2

Compare Source

Patch Changes

v3.6.1

Compare Source

Patch Changes

v3.6.0

Compare Source

Patch Changes
  • c0190bd: Improve typing and docs for EditorOptions.element to reflect all supported mounting modes and align behavior across adapters.

    • element now accepts:
      • Element: the editor is appended inside the given element.
      • { mount: HTMLElement }: the editor is mounted directly to mount (no extra wrapper).
      • (editorEl: HTMLElement) => void: a function that receives the editor element so you can place it anywhere in the DOM.
      • null: no automatic mounting.
    • @​tiptap/pm@​3.6.0

v3.5.3

Compare Source

Patch Changes

v3.5.2

Compare Source

Patch Changes

v3.5.1

Compare Source

Patch Changes

v3.5.0

Compare Source

Patch Changes

v3.4.6

Compare Source

Patch Changes
  • 968016f: Added support for the undoable option in InputRules (matching ProseMirror’s implementation).

    • When false, the change will not be tracked as undoable.
    • Default remains true for backward compatibility.

    This brings Tiptap’s InputRules behavior in line with ProseMirror and gives developers finer control over undo functionality.

v3.4.5

Compare Source

Patch Changes
  • 0226d42: Fix an issue where injected CSS was not mounted correctly when the editor instance was mounted. The fix ensures CSS injected by the editor is attached to the document when the editor mounts, preventing missing styles in some mount/unmount scenarios.
  • 37af83b: refactor: replace map(...).flat() with flatMap for simpler, more efficient array flattening
  • f598ac7: Fix bug in insertContentAt command where extra content would get deleted when the selection was at the beginning of the document and a node was inserted

v3.4.4

Compare Source

Patch Changes
  • 00cf1d7: Fix bug in insertContentAt command where extra content would get deleted when the selection was at the beginning of the document and a node was inserted

v3.4.3

Compare Source

Patch Changes
  • 1ea8906: When the editor view is created, it now will also include nodeViews and markViews properties instead of setting them afterward. This avoids serialization of the editor state to HTML which will be replaced by node views anyway.

v3.4.2

Compare Source

Patch Changes

v3.4.1

Compare Source

Patch Changes

v3.4.0

Compare Source

Minor Changes
  • ad51daa: Add mount and unmount events to the Editor instance for tracking mounts and unmounts
Patch Changes
  • 895c73f: Fix can().toggleMark() returning incorrect result when cursor is inside nodes that disallow marks

    Fixed an issue where can().toggleMark('bold') incorrectly returned true when the cursor was positioned inside a code block (with no selection), even though marks are not allowed in code blocks. The method now correctly returns false in this scenario by checking if the parent node allows the mark type when the selection is a cursor.

v3.3.1

Compare Source

Patch Changes

v3.3.0

Compare Source

Minor Changes
  • 5423726: Make input rules and paste rules respect extension priority by registering them per-extension instead of aggregating them into a single global plugin.

v3.2.2

Compare Source

Patch Changes

v3.2.1

Patch Changes
  • 6a2873f: Ensure drag previews for node views work correctly in Safari by attaching an offscreen clone of the node to the DOM while calling setDragImage, and by preserving the original element's pixel width/height so the preview matches the original. This prevents Safari from immediately cancelling the drag when a detached element is used as the drag image.

v3.2.0

Minor Changes
  • 5056e3e: Fix Editor.unmount() failing in test environments due to missing DOM remove() method
Patch Changes

v3.1.0

Compare Source

Patch Changes

v3.0.9

Compare Source

Patch Changes

v3.0.8

Compare Source

Patch Changes

v3.0.7

Compare Source

Patch Changes

v3.0.6

Compare Source

Patch Changes

v3.0.5

Compare Source

Patch Changes

v3.0.4

Compare Source

Patch Changes

v3.0.3

Compare Source

Patch Changes
  • 75cabde: Fix: Avoid the JSX Runtime to globally overwrite React's Element types when /** @​jsxImportSource @​tiptap/core */ is not used

v3.0.2

Compare Source

Patch Changes

v3.0.1

Compare Source

Major Changes
  • a92f4a6: We are now building packages with tsup which does not support UMD builds, please repackage if you require UMD builds

  • 5e957e5: This resolves in issue with SSR where the isDestroyed property could not be read while in SSR

  • 37913d5: getPos in NodeViewRendererProps type now includes undefined as possible return value

    Before

    const pos = nodeViewProps.getPos() // Type was () => number
    

    After

    const pos = nodeViewProps.getPos() // Type is () => number | undefined
    
    if (pos !== undefined) {
      // Safe to use pos here
    }
    
  • 32958d6: Node, Mark and Extension config options now are strongly typed and do not allow arbitrary keys on the options object.

    To add keys, like when using extendNodeSchema or extendMarkSchema, you can do this:

    declare module '@​tiptap/core' {
      interface NodeConfig {
        /**
         * This key will be added to all NodeConfig objects in your project
         */
        newKey?: string
      }
      interface MarkConfig {
        /**
         * This key will be added to all MarkConfig objects in your project
         */
        newKey?: string
      }
      interface ExtensionConfig {
        /**
         * This key will be added to all ExtensionConfig objects in your project
         */
        newKey?: string
      }
    }
    
  • 12bb31a: insertContent and insertContentAt commands should not split text nodes like paragraphs into multiple nodes when the inserted content is at the beginning of the text to avoid empty nodes being created

  • 062afaf: clearContent command defaults to emitting updates now

  • 062afaf: Change signature of setContent command to (content, options) and default to emitting updates

  • 32958d6: editor.storage is now strongly typed Storage instances, using a similar pattern as commands, where you can define the type of the storage value using namespaces like:

    declare module '@​tiptap/core' {
      interface Storage {
        extensionName: StorageValue
      }
    }
    
  • 32958d6: editor.storage is instantiated per editor rather than per extension.

    Previously, the storage value was a singleton per extension instance, this caused strange bugs when using multiple editor instances on a single page.

    Now, storage instances are per editor instance, so changing the value on one editor.storage instance will not affect another editor's value.

Minor Changes
  • 8de8e13: The editor instance now supports an unmount method which allows for mounting and unmounting the editor to the DOM. This encourages re-use of editor instances by preserving all the same options between instances. This is different from the destroy method, which will unmount, emit the destroy event, and remove all event listeners.

  • d0fda30: Add config option to emit content error when content check is disabled

  • 0e3207f: Add support for markviews, which allow you to render custom views for marks within the editor. This is useful for rendering custom UI for marks, like a color picker for a text color mark or a link editor for a link mark.

    Here is a plain JS markview example:

    Mark.create({
      // Other options...
      addMarkView() {
        return ({ mark, HTMLAttributes }) => {
          const dom = document.createElement('b')
          const contentDOM = document.createElement('span')
    
          dom.appendChild(contentDOM)
    
          return {
            dom,
            contentDOM,
          }
        }
      },
    })
    

v3.0.0

Compare Source

Patch Changes
ueberdosis/tiptap (@​tiptap/extension-blockquote)

v3.10.4

Compare Source

Patch Changes
  • 5d17140: Fixed nested blockquote markdown serialization to properly handle multi-level nesting
  • Updated dependencies [64561c4]

v3.10.3

Compare Source

Patch Changes

v3.10.2

Compare Source

Patch Changes

v3.10.1

Compare Source

Patch Changes

v3.10.0

Compare Source

Patch Changes

v3.9.1

Compare Source

Patch Changes

v3.9.0

Compare Source

Patch Changes

v3.8.0

Compare Source

Patch Changes

v3.7.2

Compare Source

Releases

v3.7.2

@​tiptap/html
Patch Changes

v3.7.1

Compare Source

Releases
v3.7.1
@​tiptap/markdown
Patch Changes
  • Editors will not throw an error anymore when content is an empty string and contentType is markdown
  • Remove invalid server configuration from package.json

v3.7.0

Compare Source

Releases

v3.7.0

@​tiptap/core
Minor Changes
  • All commands and their corresponding TypeScript types are now exported from @tiptap/core so they can be imported and referenced directly by consumers. This makes it easier to build typed helpers, extensions, and tests that depend on the command signatures.

    Why:

    • Previously some command option types were only available as internal types or scattered across files, which made it awkward for downstream users to import and reuse them.
    import { commands } from '@​tiptap/core'
    

    Notes:

    • This is a non-breaking, additive change. It improves ergonomics for TypeScript consumers.
    • If you rely on previously private/internal types, prefer the exported types from @tiptap/core going forward.
  • Add comprehensive bidirectional markdown support to Tiptap through a new @tiptap/markdown package and Markdown utilities in @tiptap/core.

    New Package: @tiptap/markdown - A new official extension that provides full Markdown parsing and serialization capabilities using MarkedJS as the underlying Markdown parser.

    Core Features:

    Extension API

    • Markdown Extension: Main extension that adds Markdown support to your editor
    • MarkdownManager: Core engine for parsing and serializing Markdown
      • Parse Markdown strings to Tiptap JSON: editor.markdown.parse(markdown)
      • Serialize Tiptap JSON to Markdown: editor.markdown.serialize(json)
      • Access to underlying marked.js instance: editor.markdown.instance
Editor Methods
  • editor.getMarkdown(): Serialize current editor content to Markdown string
  • editor.markdown: Access to MarkdownManager instance for advanced operations

Editor Options:

  • contentType: Control the type of content that is inserted into the editor. Can be json, html or markdown - defaults to json and will automatically detect invalid content types (like JSON when it is actually Markdown).
    new Editor({
      content: '# Hello World',
      contentType: 'markdown'
    })
    

Command Options: All content commands now support an contentType option:

  • setContent(markdown, { contentType: 'markdown' }): Replace editor content with markdown
  • insertContent(markdown, { contentType: 'markdown' }): Insert markdown at cursor position
  • insertContentAt(position, markdown, { contentType: 'markdown' }): Insert Markdown at specific position

For more, check the documentation.

Patch Changes
  • The extension manager now provides a new property baseExtensions that contains an unflattened array of extensions
@​tiptap/markdown
Minor Changes
  • Add comprehensive bidirectional markdown support to Tiptap through a new @tiptap/markdown package and Markdown utilities in @tiptap/core.

    New Package: @tiptap/markdown - A new official extension that provides full Markdown parsing and serialization capabilities using MarkedJS as the underlying Markdown parser.

    Core Features:

    Extension API

    • Markdown Extension: Main extension that adds Markdown support to your editor
    • MarkdownManager: Core engine for parsing and serializing Markdown
      • Parse Markdown strings to Tiptap JSON: editor.markdown.parse(markdown)
      • Serialize Tiptap JSON to Markdown: editor.markdown.serialize(json)
      • Access to underlying marked.js instance: editor.markdown.instance
Editor Methods
  • editor.getMarkdown(): Serialize current editor content to Markdown string
  • editor.markdown: Access to MarkdownManager instance for advanced operations

Editor Options:

  • contentType: Control the type of content that is inserted into the editor. Can be json, html or markdown - defaults to json and will automatically detect invalid content types (like JSON when it is actually Markdown).
    new Editor({
      content: '# Hello World',
      contentType: 'markdown'
    })
    

Command Options: All content commands now support an contentType option:

  • setContent(markdown, { contentType: 'markdown' }): Replace editor content with markdown
  • insertContent(markdown, { contentType: 'markdown' }): Insert markdown at cursor position
  • insertContentAt(position, markdown, { contentType: 'markdown' }): Insert Markdown at specific position

For more, check the documentation.

@​tiptap/extension-link


Configuration

📅 Schedule: Branch creation - Monday through Friday ( * * * * 1-5 ) (UTC), Automerge - At any time (no schedule defined).

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

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

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


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

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

renovate[bot] avatar Oct 28 '25 04:10 renovate[bot]

Deploy Preview for doist-typist failed.

Name Link
Latest commit 90f12c3a67a9e4371044099554047d98bd492bed
Latest deploy log https://app.netlify.com/projects/doist-typist/deploys/691d03877cca9300086e5dc6

netlify[bot] avatar Oct 28 '25 04:10 netlify[bot]

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: package-lock.json
npm warn Unknown env config "store". This will stop working in the next major version of npm.
npm error code ERESOLVE
npm error ERESOLVE unable to resolve dependency tree
npm error
npm error While resolving: @doist/[email protected]
npm error Found: @tiptap/[email protected]
npm error node_modules/@tiptap/core
npm error   @tiptap/core@"3.10.7" from the root project
npm error
npm error Could not resolve dependency:
npm error peer @tiptap/core@"^3.10.8" from @tiptap/[email protected]
npm error node_modules/@tiptap/extension-list
npm error   peer @tiptap/extension-list@"^3.10.7" from @tiptap/[email protected]
npm error   node_modules/@tiptap/extension-bullet-list
npm error     @tiptap/extension-bullet-list@"3.10.7" from the root project
npm error
npm error Fix the upstream dependency conflict, or retry
npm error this command with --force or --legacy-peer-deps
npm error to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error /runner/cache/others/npm/_logs/2025-11-18T23_38_40_511Z-eresolve-report.txt
npm error A complete log of this run can be found in: /runner/cache/others/npm/_logs/2025-11-18T23_38_40_511Z-debug-0.log

renovate[bot] avatar Nov 18 '25 23:11 renovate[bot]