fix(deps): update tiptap monorepo to v3 (major)
This PR contains the following updates:
Release Notes
ueberdosis/tiptap (@tiptap/core)
v3.11.1
Patch Changes
-
d0c4264: Improve TypeScript generics for Node.extendThe 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/pm@3.11.1
v3.11.0
Minor Changes
-
541c93c: Add native text direction support for RTL and bidirectional content. The editor now includes atextDirectionoption that can be set to'ltr','rtl', or'auto'to control the direction of all content globally. Additionally, newsetTextDirectionandunsetTextDirectioncommands 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.
Patch Changes
- @tiptap/pm@3.11.0
v3.10.8
Patch Changes
-
8375241: Fixed a bug that caused extra characters to be inserted after a parsed, nestable content block by accounting for leading newlines -
b7ead7c: Add documentation comments to Tiptap JSON types -
95d3e80: allowundefinedas a value for thedefaultattribute key -
fd479bd: FixupdateAttributesandresetAttributescommands to return accurate results when used with.can(). Previously, these commands would always returntrueeven when they couldn't perform the operation. Now they correctly returnfalsewhen no matching nodes or marks are found in the selection.- @tiptap/pm@3.10.8
v3.10.7
Patch Changes
- @tiptap/pm@3.10.7
v3.10.6
Patch Changes
- @tiptap/pm@3.10.6
v3.10.5
Patch Changes
-
92fae18: Fixed ProseMirror schema generation to properly respectisRequiredattribute configuration. Previously, attributes marked withisRequired: truewere incorrectly treated as optional because adefaultproperty was always included in the schema specification. ProseMirror determines attribute requirements by the absence of thedefaultproperty, so now thedefaultis only included when the attribute is not required and a default value is explicitly defined.- @tiptap/pm@3.10.5
v3.10.4
Patch Changes
-
64561c4: Fix autofocus behavior to prevent unwanted scrolling when disabled- @tiptap/pm@3.10.4
v3.10.3
Patch Changes
- @tiptap/pm@3.10.3
v3.10.2
Patch Changes
- @tiptap/pm@3.10.2
v3.10.1
Patch Changes
-
3564e7c: Use correctResizableNodeViewclass name- @tiptap/pm@3.10.1
v3.10.0
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 returnnullto dynamically disable rendering of a node viewWhile this should not directly cause any issues, it's noteworthy as it still could affect some behavior in some edge cases.
Patch Changes
- @tiptap/pm@3.10.0
v3.9.1
Patch Changes
- @tiptap/pm@3.9.1
v3.9.0
Patch Changes
-
bbb8e16: Only remove injected CSS on unmount if no other editors are in the document (fixes #6836)- @tiptap/pm@3.9.0
v3.8.0
Releases
v3.8.0
@tiptap/extension-unique-id@3.8.0
Minor Changes
-
23e516e: AddupdateDocumentoption 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
Releases
v3.7.2
@tiptap/html
Patch Changes
- Fix CVE-2025-62410 by updating happy-dom to ^20.0.2
v3.7.1
Releases
v3.7.1
@tiptap/markdown
Patch Changes
- Editors will not throw an error anymore when
contentis an empty string andcontentTypeismarkdown - Remove invalid server configuration from package.json
v3.7.0
Releases
v3.7.0
@tiptap/core
Minor Changes
-
All commands and their corresponding TypeScript types are now exported from
@tiptap/coreso 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/coregoing forward.
-
Add comprehensive bidirectional markdown support to Tiptap through a new
@tiptap/markdownpackage 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
-
MarkdownExtension: 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
- Parse Markdown strings to Tiptap JSON:
-
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 bejson,htmlormarkdown- defaults tojsonand 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
baseExtensionsthat contains an unflattened array of extensions
@tiptap/markdown
Minor Changes
-
Add comprehensive bidirectional markdown support to Tiptap through a new
@tiptap/markdownpackage 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
-
MarkdownExtension: 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
- Parse Markdown strings to Tiptap JSON:
-
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 bejson,htmlormarkdown- defaults tojsonand 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
TrailingNodeextension'snodeoption optional and derive the default node type from the editor schema when available.Previously the extension used a hard-coded
'paragraph'default and thenodeoption was required in the TypeScript definitions. This change:- makes
nodeoptional 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.
- makes
v3.6.7
Patch Changes
- @tiptap/pm@3.6.7
v3.6.6
Patch Changes
- @tiptap/pm@3.6.6
v3.6.5
Patch Changes
-
1e4caea: Editors can now emittransactionandupdateevents before being mounted. This means smoother state handling and instant feedback from editors, even when they're not in the DOM.- @tiptap/pm@3.6.5
v3.6.4
Patch Changes
- @tiptap/pm@3.6.4
v3.6.3
Patch Changes
-
67f7b4a: Refined theJSONContent.attrsdefinition to exactly mirror the structure returned byeditor.getJSON(). This ensures strict type safety and consistency between the editor output and the expected type, eliminating errors caused by mismatched attribute signatures.- @tiptap/pm@3.6.3
v3.6.2
Patch Changes
- @tiptap/pm@3.6.2
v3.6.1
Patch Changes
- @tiptap/pm@3.6.1
v3.6.0
Patch Changes
-
c0190bd: Improve typing and docs forEditorOptions.elementto reflect all supported mounting modes and align behavior across adapters.-
elementnow accepts:-
Element: the editor is appended inside the given element. -
{ mount: HTMLElement }: the editor is mounted directly tomount(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
Patch Changes
- @tiptap/pm@3.5.3
v3.5.2
Patch Changes
- @tiptap/pm@3.5.2
v3.5.1
Patch Changes
- @tiptap/pm@3.5.1
v3.5.0
Patch Changes
- @tiptap/pm@3.5.0
v3.4.6
Patch Changes
-
968016f: Added support for theundoableoption in InputRules (matching ProseMirror’s implementation).- When
false, the change will not be tracked as undoable. - Default remains
truefor backward compatibility.
This brings Tiptap’s InputRules behavior in line with ProseMirror and gives developers finer control over undo functionality.
- @tiptap/pm@3.4.6
- When
v3.4.5
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: replacemap(...).flat()withflatMapfor simpler, more efficient array flattening -
f598ac7: Fix bug ininsertContentAtcommand where extra content would get deleted when the selection was at the beginning of the document and a node was inserted- @tiptap/pm@3.4.5
v3.4.4
Patch Changes
-
00cf1d7: Fix bug ininsertContentAtcommand where extra content would get deleted when the selection was at the beginning of the document and a node was inserted- @tiptap/pm@3.4.4
v3.4.3
Patch Changes
-
1ea8906: When the editor view is created, it now will also includenodeViewsandmarkViewsproperties instead of setting them afterward. This avoids serialization of the editor state to HTML which will be replaced by node views anyway.- @tiptap/pm@3.4.3
v3.4.2
Patch Changes
- @tiptap/pm@3.4.2
v3.4.1
Patch Changes
- @tiptap/pm@3.4.1
v3.4.0
Minor Changes
-
ad51daa: Addmountandunmountevents to theEditorinstance for tracking mounts and unmounts
Patch Changes
-
895c73f: Fixcan().toggleMark()returning incorrect result when cursor is inside nodes that disallow marksFixed an issue where
can().toggleMark('bold')incorrectly returnedtruewhen the cursor was positioned inside a code block (with no selection), even though marks are not allowed in code blocks. The method now correctly returnsfalsein this scenario by checking if the parent node allows the mark type when the selection is a cursor.- @tiptap/pm@3.4.0
v3.3.1
Patch Changes
- @tiptap/pm@3.3.1
v3.3.0
Minor Changes
-
5423726: Make input rules and paste rules respect extensionpriorityby registering them per-extension instead of aggregating them into a single global plugin.
v3.2.2
Patch Changes
- @tiptap/pm@3.2.2
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 callingsetDragImage, and by preserving the original element's pixelwidth/heightso the preview matches the original. This prevents Safari from immediately cancelling the drag when a detached element is used as the drag image.- @tiptap/pm@3.2.1
v3.2.0
Minor Changes
-
5056e3e: Fix Editor.unmount() failing in test environments due to missing DOM remove() method
Patch Changes
- @tiptap/pm@3.2.0
v3.1.0
Patch Changes
- @tiptap/pm@3.1.0
v3.0.9
Patch Changes
- @tiptap/pm@3.0.9
v3.0.8
Patch Changes
- @tiptap/pm@3.0.8
v3.0.7
Patch Changes
- @tiptap/pm@3.0.7
v3.0.6
Patch Changes
-
2e71d05: Fix: Fix broken types for function chaining when calling extend- @tiptap/pm@3.0.6
v3.0.5
Patch Changes
- @tiptap/pm@3.0.5
v3.0.4
Patch Changes
-
7ed03fa: Fix: Add correct overload for extension extend types"- @tiptap/pm@3.0.4
v3.0.3
Patch Changes
-
75cabde: Fix: Avoid the JSX Runtime to globally overwrite React's Element types when/** @​jsxImportSource @​tiptap/core */is not used- @tiptap/pm@3.0.3
v3.0.2
Patch Changes
- @tiptap/pm@3.0.2
v3.0.1
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:getPosinNodeViewRendererPropstype now includesundefinedas possible return valueBefore
const pos = nodeViewProps.getPos() // Type was () => numberAfter
const pos = nodeViewProps.getPos() // Type is () => number | undefined if (pos !== undefined) { // Safe to use pos here } -
32958d6:Node,MarkandExtensionconfig options now are strongly typed and do not allow arbitrary keys on the options object.To add keys, like when using
extendNodeSchemaorextendMarkSchema, 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:insertContentandinsertContentAtcommands 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:clearContentcommand defaults to emitting updates now -
062afaf: Change signature ofsetContentcommand to(content, options)and default to emitting updates -
32958d6:editor.storageis now strongly typedStorageinstances, 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.storageis 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.storageinstance will not affect another editor's value.
Minor Changes
-
8de8e13: The editor instance now supports anunmountmethod 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 thedestroymethod, which will unmount, emit thedestroyevent, 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
Patch Changes
- @tiptap/pm@3.0.0-beta.30
v2.27.1
v2.27.0
v2.26.4
v2.26.3
v2.26.2
ueberdosis/tiptap (@tiptap/extension-color)
v3.11.1
Patch Changes
- @tiptap/extension-text-style@3.11.1
v3.11.0
Patch Changes
- @tiptap/extension-text-style@3.11.0
v3.10.8
Patch Changes
- @tiptap/extension-text-style@3.10.8
v3.10.7
Patch Changes
- @tiptap/extension-text-style@3.10.7
v3.10.6
Patch Changes
- @tiptap/extension-text-style@3.10.6
v3.10.5
Patch Changes
- @tiptap/extension-text-style@3.10.5
v3.10.4
Patch Changes
- @tiptap/extension-text-style@3.10.4
v3.10.3
Patch Changes
- @tiptap/extension-text-style@3.10.3
v3.10.2
Patch Changes
- @tiptap/extension-text-style@3.10.2
v3.10.1
Patch Changes
- @tiptap/extension-text-style@3.10.1
v3.10.0
Patch Changes
- @tiptap/extension-text-style@3.10.0
v3.9.1
Patch Changes
v3.9.0
Patch Changes
v3.8.0
Patch Changes
v3.7.2
Releases
v3.7.2
@tiptap/html
Patch Changes
- Fix CVE-2025-62410 by updating happy-dom to ^20.0.2
v3.7.1
Releases
v3.7.1
@tiptap/markdown
Patch Changes
- Editors will not throw an error anymore when
contentis an empty string andcontentTypeismarkdown - Remove invalid server configuration from package.json
v3.7.0
Releases
v3.7.0
@tiptap/core
Minor Changes
-
All commands and their corresponding TypeScript types are now exported from
@tiptap/coreso 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/coregoing forward.
-
Add comprehensive bidirectional markdown support to Tiptap through a new
@tiptap/markdownpackage 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
-
MarkdownExtension: 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
- Parse Markdown strings to Tiptap JSON:
-
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 bejson,htmlormarkdown- defaults tojsonand 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
baseExtensionsthat contains an unflattened array of extensions
@tiptap/markdown
Minor Changes
-
Add comprehensive bidirectional markdown support to Tiptap through a new
@tiptap/markdownpackage 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
-
MarkdownExtension: 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
- Parse Markdown strings to Tiptap JSON:
-
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 bejson,htmlormarkdown- defaults tojsonand 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
TrailingNodeextension'snodeoption optional and derive the default node type from the editor schema when available.Previously the extension used a hard-coded
'paragraph'default and thenodeoption was required in the TypeScript definitions. This change:- makes
nodeoptional 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.
- makes
v3.6.7
Patch Changes
v3.6.6
Patch Changes
v3.6.5
Patch Changes
v3.6.4
Patch Changes
v3.6.3
Patch Changes
v3.6.2
Patch Changes
v3.6.1
Patch Changes
v3.6.0
Patch Changes
v3.5.3
Patch Changes
- Updated dependencies [
04a0f34]
v3.5.2
Patch Changes
- [@tiptap/extension-text-style](https://redirect.github.co
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.
The latest updates on your projects. Learn more about Vercel for Git ↗︎
| Project | Deployment | Preview | Comments | Updated (UTC) |
|---|---|---|---|---|
| it-tools | ❌ Failed | Aug 14, 2025 2:26pm |