typist
typist copied to clipboard
fix(deps): update tiptap packages to v3 (major)
This PR contains the following updates:
Release Notes
ueberdosis/tiptap (@tiptap/core)
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 editorMarkdownManager: 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 stringeditor.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 markdowninsertContent(markdown, { contentType: 'markdown' }): Insert markdown at cursor positioninsertContentAt(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 editorMarkdownManager: 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 stringeditor.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 markdowninsertContent(markdown, { contentType: 'markdown' }): Insert markdown at cursor positioninsertContentAt(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 flatteningf598ac7: 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
ueberdosis/tiptap (@tiptap/extension-blockquote)
v3.10.4
Patch Changes
5d17140: Fixed nested blockquote markdown serialization to properly handle multi-level nesting- Updated dependencies [
64561c4]- @tiptap/core@3.10.4
v3.10.3
Patch Changes
- @tiptap/core@3.10.3
v3.10.2
Patch Changes
- @tiptap/core@3.10.2
v3.10.1
Patch Changes
- Updated dependencies [
3564e7c]- @tiptap/core@3.10.1
v3.10.0
Patch Changes
- Updated dependencies [
4aa9f57] - Updated dependencies [
4aa9f57]- @tiptap/core@3.10.0
v3.9.1
Patch Changes
- @tiptap/core@3.9.1
v3.9.0
Patch Changes
- Updated dependencies [
bbb8e16]- @tiptap/core@3.9.0
v3.8.0
Patch Changes
- @tiptap/core@3.8.0
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 editorMarkdownManager: 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 stringeditor.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 markdowninsertContent(markdown, { contentType: 'markdown' }): Insert markdown at cursor positioninsertContentAt(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 editorMarkdownManager: 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 stringeditor.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 markdowninsertContent(markdown, { contentType: 'markdown' }): Insert markdown at cursor positioninsertContentAt(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.
Deploy Preview for doist-typist failed.
| Name | Link |
|---|---|
| Latest commit | 90f12c3a67a9e4371044099554047d98bd492bed |
| Latest deploy log | https://app.netlify.com/projects/doist-typist/deploys/691d03877cca9300086e5dc6 |
⚠️ 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