Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Jul 17, 2025

This PR contains the following updates:

Package Change Age Confidence
@tiptap/core (source) ^2.7.0 -> ^2.7.0 || ^3.0.0 age confidence
@tiptap/core (source) 2.26.2 -> 3.7.2 age confidence
@tiptap/extension-highlight (source) 2.26.2 -> 3.7.2 age confidence
@tiptap/extension-image (source) 2.26.2 -> 3.7.2 age confidence
@tiptap/extension-link (source) 2.26.2 -> 3.7.2 age confidence
@tiptap/extension-task-item (source) 2.26.2 -> 3.7.2 age confidence
@tiptap/extension-task-list (source) 2.26.2 -> 3.7.2 age confidence
@tiptap/extension-text-align (source) 2.26.2 -> 3.7.2 age confidence
@tiptap/extension-typography (source) 2.26.2 -> 3.7.2 age confidence
@tiptap/extension-underline (source) 2.26.2 -> 3.7.2 age confidence
@tiptap/react (source) 2.26.2 -> 3.7.2 age confidence
@tiptap/starter-kit (source) 2.26.1 -> 3.7.2 age confidence

Release Notes

ueberdosis/tiptap (@​tiptap/core)

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

v2.26.3

Compare Source


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), 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
Copy link
Contributor Author

renovate bot commented Jul 17, 2025

⚠️ 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 could not resolve
npm error
npm error While resolving: @convex-dev/[email protected]
npm error Found: @tiptap/[email protected]
npm error node_modules/@tiptap/pm
npm error   @tiptap/pm@"^2.12.0" from @blocknote/[email protected]
npm error   node_modules/@blocknote/core
npm error     dev @blocknote/core@"0.34.0" from the root project
npm error     @blocknote/core@"0.34.0" from @blocknote/[email protected]
npm error     node_modules/@blocknote/mantine
npm error       dev @blocknote/mantine@"0.34.0" from the root project
npm error     1 more (@blocknote/react)
npm error   @tiptap/pm@"^2.12.0" from @blocknote/[email protected]
npm error   node_modules/@blocknote/mantine/node_modules/@blocknote/react
npm error     @blocknote/react@"0.34.0" from @blocknote/[email protected]
npm error     node_modules/@blocknote/mantine
npm error       dev @blocknote/mantine@"0.34.0" from the root project
npm error   7 more (@tiptap/extension-bubble-menu, ...)
npm error
npm error Could not resolve dependency:
npm error dev @tiptap/core@"3.7.2" from the root project
npm error
npm error Conflicting peer dependency: @tiptap/[email protected]
npm error node_modules/@tiptap/pm
npm error   peer @tiptap/pm@"^3.7.2" from @tiptap/[email protected]
npm error   node_modules/@tiptap/core
npm error     dev @tiptap/core@"3.7.2" 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-10-21T11_09_29_341Z-eresolve-report.txt
npm error A complete log of this run can be found in: /runner/cache/others/npm/_logs/2025-10-21T11_09_29_341Z-debug-0.log

@renovate renovate bot force-pushed the renovate/major-tiptap-monorepo branch 7 times, most recently from 32eeb68 to 425b1e8 Compare July 19, 2025 16:48
@renovate renovate bot force-pushed the renovate/major-tiptap-monorepo branch 2 times, most recently from 7e1d51d to dadafad Compare July 26, 2025 02:01
@renovate renovate bot force-pushed the renovate/major-tiptap-monorepo branch 8 times, most recently from 28c2cc2 to d57c3f8 Compare August 14, 2025 10:10
@renovate renovate bot force-pushed the renovate/major-tiptap-monorepo branch from d57c3f8 to 1a68222 Compare August 15, 2025 17:29
@renovate renovate bot force-pushed the renovate/major-tiptap-monorepo branch 6 times, most recently from 3390723 to ee2e9cc Compare August 23, 2025 17:56
@renovate renovate bot force-pushed the renovate/major-tiptap-monorepo branch from ee2e9cc to 55663a6 Compare August 31, 2025 10:36
@renovate renovate bot force-pushed the renovate/major-tiptap-monorepo branch 3 times, most recently from 43edb0e to 8d2cf80 Compare September 8, 2025 00:29
@renovate renovate bot force-pushed the renovate/major-tiptap-monorepo branch 9 times, most recently from f6576ce to f318f21 Compare September 30, 2025 04:59
@renovate renovate bot force-pushed the renovate/major-tiptap-monorepo branch 6 times, most recently from a93a54c to 08a18a4 Compare October 4, 2025 01:32
@renovate renovate bot force-pushed the renovate/major-tiptap-monorepo branch 7 times, most recently from ebb146f to 65da44c Compare October 14, 2025 18:12
@renovate renovate bot force-pushed the renovate/major-tiptap-monorepo branch 3 times, most recently from 627516f to e4c93db Compare October 18, 2025 04:23
@renovate renovate bot force-pushed the renovate/major-tiptap-monorepo branch from e4c93db to 0e78ff7 Compare October 21, 2025 11:09
@renovate renovate bot changed the title Update tiptap monorepo to v3 (major) Update tiptap monorepo to v3 (major) - autoclosed Oct 22, 2025
@renovate renovate bot closed this Oct 22, 2025
@renovate renovate bot deleted the renovate/major-tiptap-monorepo branch October 22, 2025 22:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants