Releases: ueberdosis/tiptap
Release list
v3.28.0
@tiptap/extension-details
Patch Changes
- 8614730: Fix the cursor moving to the details summary after typing in content at the start of a document.
- @tiptap/core@3.28.0
- @tiptap/extension-text-style@3.28.0
- @tiptap/pm@3.28.0
@tiptap/extension-list
Patch Changes
- 8614730: Fix markdown parsing a line like
(216) 555-1234as an ordered list. A number followed by)mid-line is no longer treated as a list marker. - @tiptap/core@3.28.0
- @tiptap/pm@3.28.0
@tiptap/react
Patch Changes
- 8614730: Batch React node view portal store notifications that happen in the same microtask to avoid nested update depth warnings when many node views mount together.
- 8614730: Bind onMount and onUnmount event handlers when initializing an Editor with useEditor hook.
- @tiptap/core@3.28.0
- @tiptap/pm@3.28.0
@tiptap/extension-collaboration-caret
Patch Changes
- 8614730: Bump @tiptap/y-tiptap version to ensure users use latest version
- @tiptap/core@3.28.0
- @tiptap/pm@3.28.0
@tiptap/extension-collaboration
Patch Changes
- 8614730: Bump @tiptap/y-tiptap version to ensure users use latest version
- @tiptap/core@3.28.0
- @tiptap/pm@3.28.0
@tiptap/extension-drag-handle
Patch Changes
- 8614730: Bump @tiptap/y-tiptap version to ensure users use latest version
- Updated dependencies [8614730]
- @tiptap/extension-collaboration@3.28.0
- @tiptap/core@3.28.0
- @tiptap/extension-node-range@3.28.0
- @tiptap/pm@3.28.0
@tiptap/extension-youtube
Minor Changes
- 8614730: Allow string
widthandheightvalues like'100%'or'20rem'in the YouTube extension. Non-numeric values in parsed HTML are now preserved instead of being converted to numbers.
v3.27.4
@tiptap/extensions
Patch Changes
- 0fde1e8: Fixed the
Selectionextension leaving the native browser selection visible on blur, where it overlapped the selection decoration. The native selection is now cleared on blur and restored on focus. - @tiptap/core@3.27.4
- @tiptap/pm@3.27.4
@tiptap/extension-blockquote
Patch Changes
- 0fde1e8: Fix a crash when pressing backspace at the very start of the document with a leading image. The blockquote backspace handler dereferenced an undefined parent at the top (doc) level, throwing
TypeError: Cannot read properties of undefined (reading 'type'). It now bails out so backspace is a no-op at the document start. - 0fde1e8: Add
@tiptap/pmas a peer dependency so bundlers resolve ProseMirror packages from the app instead of duplicatingprosemirror-modelinside@tiptap/extension-blockquote. - @tiptap/core@3.27.4
- @tiptap/pm@3.27.4
@tiptap/extension-table
Patch Changes
- 0fde1e8: Fix
<col width>in a table's<colgroup>being ignored when parsing HTML. The width of the first column was always dropped because the cell index0failed a truthiness check, and header cells (<th>) never read the colgroup at all. Both table cells and table headers now fall back to the matching<col>element'swidthattribute when they have nocolwidthattribute of their own. - 0fde1e8: Fix pipe characters inside backtick inline code spans being incorrectly treated as table column delimiters in both leading-pipe and pipeless (no leading
|) GFM tables. Cells containing expressions like`||`or`a || b`now parse correctly instead of splitting into extra columns and losing their code formatting. - @tiptap/core@3.27.4
- @tiptap/pm@3.27.4
@tiptap/extension-list
Patch Changes
- 0fde1e8: Fix a markdown parsing bug where a plain bullet (
- item) nested under a task-list parent (- [ ]) was silently dropped from the parsed document. The task-list tokenizer's nested parser stopped at the first non-checkbox line and discarded everything after it; that remainder is now lexed and kept as sibling blocks (a bullet list or paragraph inside the parent task item), matching how mixed lists already behave at the top level. - @tiptap/core@3.27.4
- @tiptap/pm@3.27.4
@tiptap/react
Patch Changes
- 0fde1e8: Add a
use clientdirective so@tiptap/reactcan be imported from React Server Components without crashing. Core symbols re-exported through@tiptap/reactnow cross the client boundary too, so import them from@tiptap/coredirectly in server code.
v3.27.3
@tiptap/core
Patch Changes
- 94de762: Fix
deleteSelectionto delete content across all selection ranges instead of only the first range. This restores multi-cell table selections and other custom selections with multiple ranges. - @tiptap/pm@3.27.3
@tiptap/extension-list
Patch Changes
-
94de762: Fix markdown parsing bugs where block elements right after an ordered list item (with no blank line in between) were wrongly treated as lazy continuation of the list item, instead of terminating the list the way other markdown parsers do:
- Thematic breaks (
---,***,___,* * *) were swallowed into the list item as literal paragraph text — along with every line after them. They now terminate the list and become a horizontal rule. - Fenced code blocks (
```and~~~) were nested inside the list item. They now terminate the list and become a top-level code block. - Unindented bullet markers (
- item) were nested inside the ordered list item. They now terminate the ordered list and start a new top-level bullet list. Indented bullets still nest inside the item as before.
An indented
***/___inside item content is now also parsed as a horizontal rule inside the item instead of literal text. A---line directly below item paragraph text keeps its current behavior because it is a setext heading underline per CommonMark, not a thematic break. - Thematic breaks (
-
94de762: Fix indented ordered list items (e.g. one leading space before the marker, as happens when a top-level ordered list is itself nested inside another list) losing inline formatting during markdown parsing. The custom ordered-list markdown tokenizer built its nested structure with a hardcoded base indentation of 0, so an item whose actual indentation was non-zero never matched, causing the tokenizer to silently produce zero items and bail out — falling back to a path that left the item's content as literal, unparsed text instead of running it through inline tokenization (bold, italic, etc. were lost). The base indentation is now taken from the first collected item instead of being hardcoded.
-
Updated dependencies [94de762]
- @tiptap/core@3.27.3
- @tiptap/pm@3.27.3
@tiptap/extensions
Patch Changes
- 94de762: Fixed placeholder flickering and disappearance on large documents. Replaced the viewport-based decoration scan with an incremental
StateField<DecorationSet>that only re-computes decorations for top-level nodes touched by each transaction. This eliminates the dependency on DOM measurement (posAtCoords),requestAnimationFramescheduling, and scroll listeners that caused flickering under collaboration, occlusion, and rapid edits.
v3.27.2
@tiptap/extension-emoji
Patch Changes
- ceebb31: Fix arrow key navigation past emoji nodes in Firefox. Previously, pressing ArrowLeft with the cursor adjacent to an inline non-selectable emoji node at a paragraph boundary would not move the cursor in Firefox. The cursor now correctly skips over emoji nodes in both directions.
- Updated dependencies [ceebb31]
- @tiptap/pm@3.27.2
- @tiptap/core@3.27.2
- @tiptap/suggestion@3.27.2
@tiptap/extension-file-handler
Patch Changes
- ceebb31: Add
consumePasteEventoption to the file-handler extension. Whentrue,handlePastereturnstrueeven when HTML content is present in the clipboard, preventing paste rules from other extensions from creating duplicate content. Default isfalse. - Updated dependencies [ceebb31]
- @tiptap/pm@3.27.2
- @tiptap/core@3.27.2
- @tiptap/extension-text-style@3.27.2
@tiptap/extension-drag-handle
Patch Changes
- ceebb31: Fix NodeRangeSelection not being restored after drag-and-drop when Collaboration (Yjs) is enabled. Drop anchor positions are now tracked with Yjs relative positions and remapped across
isChangeOrigindocument rebuilds, and selection restore runs viaappendTransactionafter the drop transaction settles. - ceebb31: Fix the drag handle when the editor renders zero-size widget decorations, such as the page chrome injected by the Pages extension. The handle now resolves to the correct block instead of failing to position or aligning to a decoration, and it stays above positioned page chrome so it remains clickable.
- Updated dependencies [ceebb31]
- @tiptap/pm@3.27.2
- @tiptap/core@3.27.2
- @tiptap/extension-collaboration@3.27.2
- @tiptap/extension-node-range@3.27.2
@tiptap/extension-link
Patch Changes
- ceebb31: Coerce
undefinedHTMLAttributes (target,rel,class) tonullso ProseMirror does not emit "No value supplied for attribute" warnings when these options are explicitly set toundefined. - Updated dependencies [ceebb31]
- @tiptap/pm@3.27.2
- @tiptap/core@3.27.2
@tiptap/extension-list
Patch Changes
- ceebb31: Fix a markdown parsing bug where a heading right after an ordered list item (with no blank line in between) got pulled into the list item as plain text, so you'd see a literal
###inside the list instead of an actual heading. Headings now end the list and get parsed properly, the way other markdown parsers handle it. Indented headings inside a list item are also parsed as real headings now instead of literal text. - Updated dependencies [ceebb31]
- @tiptap/pm@3.27.2
- @tiptap/core@3.27.2
@tiptap/extension-mathematics
Patch Changes
@tiptap/react
Patch Changes
- ceebb31: Change prop types of the Tiptap component so that either the
editoror theinstancefields are required - Updated dependencies [ceebb31]
- @tiptap/pm@3.27.2
- @tiptap/core@3.27.2
@tiptap/extension-drag-handle-react
Patch Changes
- ceebb31: Fix React 19 strict mode compatibility by using useRef instead of useState for the portal element. Changing the
classNameprop now updates the element in place without re-registering the drag handle plugin. - Updated dependencies [ceebb31]
- Updated dependencies [ceebb31]
- Updated dependencies [ceebb31]
- Updated dependencies [ceebb31]
- @tiptap/extension-drag-handle@3.27.2
- @tiptap/react@3.27.2
- @tiptap/pm@3.27.2
@tiptap/static-renderer
Patch Changes
- ceebb31: Fix the static renderer ignoring
unhandledNodeandunhandledMarkfor node or mark types missing from the schema; such content now falls back to those renderers instead of throwing inNode.fromJSON - Updated dependencies [ceebb31]
- @tiptap/pm@3.27.2
- @tiptap/core@3.27.2
@tiptap/pm
Patch Changes
- ceebb31: Updated all ProseMirror packages to the latest publicly available versions
v3.27.1
@tiptap/extension-drag-handle
Patch Changes
- a16901d: Respect margin properties passed via
dragImagePropertieson the drag preview. The clone reset its margin to0after copying styles, which discarded any margin the user explicitly requested. The reset now runs only when no margin property is listed indragImageProperties, so the drag image can keep the same spacing as the live block. - @tiptap/core@3.27.1
- @tiptap/extension-collaboration@3.27.1
- @tiptap/extension-node-range@3.27.1
- @tiptap/pm@3.27.1
@tiptap/extension-list
Patch Changes
- a16901d: Fix ordered list parsing so under-indented continuation lines preserve their first character.
- @tiptap/core@3.27.1
- @tiptap/pm@3.27.1
@tiptap/extensions
Patch Changes
- a16901d: Fix Placeholder flickering while a modal overlay is open. When the editor was occluded during a stream of transactions (e.g. remote collaboration edits), the viewport measurement fell back to a full-document range and repeatedly toggled the
data-placeholderattribute on empty blocks. The viewport window is now frozen when the editor can't be measured reliably, so placeholders stay stable. - @tiptap/core@3.27.1
- @tiptap/pm@3.27.1
v3.27.0
@tiptap/extension-list
Minor Changes
-
6270b99: Ordered lists now support the
typeattribute (a,A,i,I).The
<ol>typeattribute is now fully preserved through the HTML round-trip:type="a"→ lowercase alphabetical markerstype="A"→ uppercase alphabetical markerstype="i"→ lowercase roman numeral markerstype="I"→ uppercase roman numeral markers
Paste from external editors (Google Docs, Word, LibreOffice) now correctly detects the list style — both from the HTML
typeattribute and from CSSlist-style-typeproperties.Plain text paste of typed ordered list markers (e.g.
a. Item,I) Item,i. Item\nii. Item) is detected and converted to the correct list type.Markdown round-trip preserves typed markers: parsing
a. Itemcreatestype: "a", and serializing a typed list back to markdown uses the correct prefix (e.g.I.,ii.).Joining of adjacent lists now respects
type— two lists with different types (e.g. default numeric andtype="a") are not merged.
Patch Changes
- Updated dependencies [6270b99]
- Updated dependencies [6270b99]
- Updated dependencies [6270b99]
- Updated dependencies [6270b99]
- @tiptap/core@3.27.0
- @tiptap/pm@3.27.0
@tiptap/core
Patch Changes
-
6270b99: Ordered lists now support the
typeattribute (a,A,i,I).The
<ol>typeattribute is now fully preserved through the HTML round-trip:type="a"→ lowercase alphabetical markerstype="A"→ uppercase alphabetical markerstype="i"→ lowercase roman numeral markerstype="I"→ uppercase roman numeral markers
Paste from external editors (Google Docs, Word, LibreOffice) now correctly detects the list style — both from the HTML
typeattribute and from CSSlist-style-typeproperties.Plain text paste of typed ordered list markers (e.g.
a. Item,I) Item,i. Item\nii. Item) is detected and converted to the correct list type.Markdown round-trip preserves typed markers: parsing
a. Itemcreatestype: "a", and serializing a typed list back to markdown uses the correct prefix (e.g.I.,ii.).Joining of adjacent lists now respects
type— two lists with different types (e.g. default numeric andtype="a") are not merged. -
6270b99:
parseAttributesnow supports any word characters at the start of classes or id attributes. -
6270b99: Fix
marksEqualto compare mark arrays as multisets instead of index-by-index, so order of marks no longer affects the result. Broaden the type signature to accept ProseMirrorMarkobjects (wheretypeis an object with anameproperty) alongside the existing JSON mark shape ({ type: string }). -
6270b99: Fix a edge-case in
rewriteUnknownContentto not fail on null-ish values inside marks or nodes. -
@tiptap/pm@3.27.0
@tiptap/extension-link
Patch Changes
- 6270b99: Fix
isAllowedUriaccepting unknown protocols whose name contains a hyphen (e.g.unknown-protocol://test). The hyphen is a valid scheme character per RFC 3986, but the regex was built from a template literal where\-collapsed to-, leaving the terminator class[^a-z+.-:]to parse.-:as a character range that excluded0-9and/rather than-. With the proper double-escape, the regex correctly excludes-and unknown hyphenated schemes are rejected again. - Updated dependencies [6270b99]
- Updated dependencies [6270b99]
- Updated dependencies [6270b99]
- Updated dependencies [6270b99]
- @tiptap/core@3.27.0
- @tiptap/pm@3.27.0
@tiptap/suggestion
Minor Changes
-
6270b99: Add
props.mount(element)for fully managed popup positioning. It mounts the popup into the configuredcontainer(defaultdocument.body), keeps it anchored to the cursor, and automatically repositions on scroll, resize, and layout shifts via Floating UI'sautoUpdate— no manual listeners required. It returns anunmountfunction to call inonExit.This is additive and opt-in: mounting and positioning manually with
props.floatingUi+props.clientRectremains supported as an escape hatch. -
6270b99: Dismiss managed suggestion popups when the user clicks outside both the popup and the editor. Enabled by default for popups mounted via
props.mount, and configurable with the newdismissOnOutsideClickoption. -
6270b99: Expose Floating UI positioning configuration through
SuggestionProps. Consumers can now readplacement,offset,flip,container, and a resolvedfloatingUiconfig to drive their own positioning loop. -
6270b99: Add async suggestion lifecycle handling, including debounced async
items(), in-flight request aborting,initialItems, aloadingstate, and aminQueryLengthfilter.
Patch Changes
- Updated dependencies [6270b99]
- Updated dependencies [6270b99]
- Updated dependencies [6270b99]
- Updated dependencies [6270b99]
- @tiptap/core@3.27.0
- @tiptap/pm@3.27.0
@tiptap/markdown
Patch Changes
- 6270b99: Fix parsing with injected Marked instances so custom markdown tokenizers registered via
marked.use(...)are respected. - 6270b99: Fix unrecognized HTML detection during markdown parsing to work without
window.DOMParserorHTMLUnknownElement, so angle-bracket placeholders are preserved as literal text in SSR and Node environments. - Updated dependencies [6270b99]
- Updated dependencies [6270b99]
- Updated dependencies [6270b99]
- Updated dependencies [6270b99]
- @tiptap/core@3.27.0
- @tiptap/pm@3.27.0
@tiptap/extension-drag-handle
Patch Changes
- 6270b99: Fix multi-block drags only removing the first block when nested mode is enabled
- Updated dependencies [6270b99]
- Updated dependencies [6270b99]
- Updated dependencies [6270b99]
- Updated dependencies [6270b99]
- @tiptap/core@3.27.0
- @tiptap/extension-collaboration@3.27.0
- @tiptap/extension-node-range@3.27.0
- @tiptap/pm@3.27.0
v3.26.1
v3.26.1
@tiptap/extension-node-range
Patch Changes
- a38c9c0: Fixed drag-and-drop duplicating blocks during collaboration. When a remote collaborator edited the document mid-drag, dropping left an empty copy of the dragged block at its original position. This fix also requires a version of
@tiptap/y-tiptapthat restores node range selections across remote updates. - a38c9c0: Bump
@tiptap/y-tiptapto version ^3.0.5 - @tiptap/core@3.26.1
- @tiptap/pm@3.26.1
@tiptap/extension-drag-handle
Patch Changes
- a38c9c0: Restore the node range selection after dragging multiple blocks. Previously, dropping a multi-block drag left a text selection inside the moved content instead of keeping the dragged blocks selected.
- a38c9c0: Bump
@tiptap/y-tiptapto version ^3.0.5 - Updated dependencies [a38c9c0]
- Updated dependencies [a38c9c0]
- @tiptap/extension-node-range@3.26.1
- @tiptap/extension-collaboration@3.26.1
- @tiptap/core@3.26.1
- @tiptap/pm@3.26.1
@tiptap/extension-collaboration-caret
Patch Changes
- a38c9c0: Bump
@tiptap/y-tiptapto version ^3.0.5 - @tiptap/core@3.26.1
- @tiptap/pm@3.26.1
@tiptap/extension-collaboration
Patch Changes
- a38c9c0: Bump
@tiptap/y-tiptapto version ^3.0.5 - @tiptap/core@3.26.1
- @tiptap/pm@3.26.1
v3.26.0
@tiptap/extension-blockquote
Minor Changes
- 7fb19eb: Backspace at the start of a non-first child of a blockquote now lifts that child out, splitting the blockquote around it. A second backspace at the start of a top-level textblock whose previous sibling is a blockquote merges the textblock's inline content into the blockquote's last textblock instead of pulling the paragraph back inside.
Patch Changes
- @tiptap/core@3.26.0
@tiptap/server-ai-toolkit
Patch Changes
- 7fb19eb: Only add hash attributes to nodes, not to marks.
@tiptap/extensions
Patch Changes
- 7fb19eb: Fix the
Selectionextension highlighting beyond the selected text on multi-line selections: the native browser selection is now hidden while the editor is blurred, so only the styled.selectiondecoration is shown. - @tiptap/core@3.26.0
- @tiptap/pm@3.26.0
v3.25.0
@tiptap/core
Patch Changes
-
711c2e3: Fix: dragging an inline/resizable image within the editor no longer creates a duplicate
When the
Imageextension was configured withinline: trueorresizeenabled, dragging an image within the editor could insert a duplicate at the drop position instead of moving it. This happened because the browser's native image drag behavior could populatedataTransfer.files, causing the FileHandler extension to intercept the drop before ProseMirror's internal move logic could run. -
711c2e3: Add
clearablemark option (defaulttrue).unsetAllMarksnow skips marks withclearable: false, so semantic marks like comments are not removed by "clear formatting". -
711c2e3: Add
attrsEqualandmarksEqualutility functions to@tiptap/core.attrsEqualcompares two attribute objects for equality regardless of key ordering.marksEqualcompares two arrays of mark objects by type and attributes usingattrsEqual. -
711c2e3: Fix plain-text copy of table cell selections including content from unselected cells in between. Each selected range is now serialized independently and joined in document order, so dragging upward (reverse selection) also produces output in document order.
-
Updated dependencies [711c2e3]
- @tiptap/pm@3.25.0
@tiptap/extension-file-handler
Patch Changes
-
711c2e3: Fix: dragging an inline/resizable image within the editor no longer creates a duplicate
When the
Imageextension was configured withinline: trueorresizeenabled, dragging an image within the editor could insert a duplicate at the drop position instead of moving it. This happened because the browser's native image drag behavior could populatedataTransfer.files, causing the FileHandler extension to intercept the drop before ProseMirror's internal move logic could run. -
Updated dependencies [711c2e3]
-
Updated dependencies [711c2e3]
-
Updated dependencies [711c2e3]
-
Updated dependencies [711c2e3]
-
Updated dependencies [711c2e3]
- @tiptap/core@3.25.0
- @tiptap/pm@3.25.0
- @tiptap/extension-text-style@3.25.0
@tiptap/extension-image
Patch Changes
-
711c2e3: Fix: dragging an inline/resizable image within the editor no longer creates a duplicate
When the
Imageextension was configured withinline: trueorresizeenabled, dragging an image within the editor could insert a duplicate at the drop position instead of moving it. This happened because the browser's native image drag behavior could populatedataTransfer.files, causing the FileHandler extension to intercept the drop before ProseMirror's internal move logic could run. -
711c2e3: Fix
HTMLAttributesnot being applied to the editor DOM whenresizeis enabled. TheaddNodeViewpath was using only the resolved node attributes and skipping the user-configuredHTMLAttributesoption. Now it merges them consistently with howrenderHTMLalready works. -
Updated dependencies [711c2e3]
-
Updated dependencies [711c2e3]
-
Updated dependencies [711c2e3]
-
Updated dependencies [711c2e3]
- @tiptap/core@3.25.0
@tiptap/extension-list
Minor Changes
- 711c2e3:
ListKeymap's Backspace handler now lifts the current list item before merging. At the start of a non-first list item, the item is lifted out of its wrapping list (splitting the list around it) instead of immediately joining its content into the previous item. A second Backspace then hits the existing "paragraph after a list" branch and merges the lifted textblock's content into the previous list's last item. Mirrors the two-step behavior introduced for blockquote in #7891.
Patch Changes
- 711c2e3: Fix delete at the end of a list item with a branching nested sublist. Nested items are hoisted to the parent list instead of being node-selected and deleted on the next keypress.
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- @tiptap/core@3.25.0
- @tiptap/pm@3.25.0
@tiptap/extensions
Minor Changes
- 711c2e3: Allow
emptyNodeClassin the Placeholder extension to accept a function that returns a dynamic CSS class name per node
Patch Changes
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- @tiptap/core@3.25.0
- @tiptap/pm@3.25.0
@tiptap/static-renderer
Patch Changes
- 711c2e3: Fix blockquote markdown rendering to add a trailing newline so subsequent content is not incorrectly included in the blockquote
- 711c2e3: Fix the types of the JSON static renderers (
renderJSONContentToReactElementandrenderJSONContentToString): you can now passJSONContentdirectly and read node fields likenode.textin your mappings without type errors or casts. - Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- @tiptap/core@3.25.0
- @tiptap/pm@3.25.0
@tiptap/extension-table
Patch Changes
- 711c2e3: Fix
HTMLAttributesnot being applied to the<table>element whenresizableis disabled (the default). TheTableViewnode view (introduced in 3.23) bypassedrenderHTMLand never applied user-configured attributes likeclassordata-*to the rendered table element. - Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- @tiptap/core@3.25.0
- @tiptap/pm@3.25.0
@tiptap/pm
Patch Changes
- 711c2e3: Bump
prosemirror-tablesto^1.8.0sofindTableis available from@tiptap/pm, and align the related ProseMirror dependencies with the versions required byprosemirror-tables.
@tiptap/extension-unique-id
Patch Changes
- 711c2e3: Fix memory leak when destroying an editor before the collaboration provider syncs. The
syncedlistener registered inonCreatewas only removed once the event fired, so destroying the editor first left thecreateIdsclosure (and the whole editor it captures) referenced by the shared provider. The listener is now also detached on destroy, so the editor can be garbage collected. - Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- @tiptap/core@3.25.0
- @tiptap/pm@3.25.0
@tiptap/extension-code
Patch Changes
- 711c2e3: Fixed a bug where typing a character before an inline code markdown shortcut (e.g.
afollowed by backtick-delimited code) would delete the preceding character. The preceding character is now preserved. - Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- @tiptap/core@3.25.0
@tiptap/extension-collaboration-caret
Patch Changes
- 711c2e3: Fix crash when awareness state value is null or undefined (e.g. after a client disconnects)
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- @tiptap/core@3.25.0
- @tiptap/pm@3.25.0
@tiptap/extension-collaboration
Patch Changes
- 711c2e3: Fixed
onContentErrornot being triggered when invalid collaborative content is detected. ThefilterTransactionhook now allows the transaction through to keep ProseMirror state in sync with Yjs, ensuring thecontentErrorevent fires correctly. - Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- @tiptap/core@3.25.0
- @tiptap/pm@3.25.0
@tiptap/markdown
Patch Changes
- 711c2e3: Fix backslash-escape handling in the Markdown parser and serializer. Parsing a backslash-escaped markdown character (e.g.
\*,\_,\\) now correctly produces a literal text node, instead of silently dropping the character. On serialization, characters that have special meaning in markdown inline syntax (*,_,`,[,],\,~) are now backslash-escaped in non-code text nodes to prevent them from being misinterpreted as formatting delimiters when the output is parsed again. - Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- @tiptap/core@3.25.0
- @tiptap/pm@3.25.0
@tiptap/vue-3
Patch Changes
- 711c2e3: Fix
VueNodeViewRendererthrashing the DOM whencontentDOMis null for non-leaf nodes. The renderer now always creates a contentDOM element for non-leaf nodes (matching React's behavior), so ProseMirror has a valid element to render children into even when the NodeView component does not includeNodeViewContentor renders it conditionally. - Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- @tiptap/core@3.25.0
- @tiptap/pm@3.25.0
@tiptap/vue-2
Patch Changes
- 711c2e3: Fix
VueNodeViewRendererthrashing the DOM whencontentDOMis null for non-leaf nodes. The renderer now always creates a contentDOM element for non-leaf nodes (matching React's behavior), so ProseMirror has a valid element to render children into even when the NodeView component does not includeNodeViewContentor renders it conditionally. - Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updated dependencies [711c2e3]
- Updat...
v3.24.0
@tiptap/extension-collaboration-caret
Patch Changes
- 7bd09b7: Fix memory leak when destroying an editor while the collaboration provider stays alive (e.g. multiple editors sharing one provider). The extension's awareness
updatelistener is now removed on destroy, so the editor can be garbage collected. - Updated dependencies [7bd09b7]
- @tiptap/pm@3.24.0
- @tiptap/core@3.24.0
@tiptap/extension-collaboration
Patch Changes
- 7bd09b7: Fix a memory leak where destroying an editor while its Y.Doc/provider stays alive (e.g. multiple editors sharing one provider) left the editor uncollectable. Yjs' UndoManager registered a
doc.on('destroy', ...)listener that was never removed, keeping the UndoManager — and through it the whole editor — reachable from the long-lived doc. Fixed upstream in@tiptap/y-tiptap; this bumps the dependency to pull in the fix. - Updated dependencies [7bd09b7]
- @tiptap/pm@3.24.0
- @tiptap/core@3.24.0
@tiptap/server-ai-toolkit
Patch Changes
- 7bd09b7: Exclude
toTextproperty when serializing the schema into a JSON object, because it is a function and functions are not serializable.
@tiptap/pm
Patch Changes
- 7bd09b7: Add missing
@tiptap/pm/inputrulesexport
@tiptap/extension-details
Patch Changes
- 7bd09b7: Fix persisted details toggles when the details node is at the start of the document.
- Updated dependencies [7bd09b7]
- @tiptap/pm@3.24.0
- @tiptap/core@3.24.0
- @tiptap/extension-text-style@3.24.0
@tiptap/markdown
Patch Changes
- 7bd09b7: Fix text inside unknown angle-bracket tags being silently swallowed during markdown parsing. HTML-like content such as
<enter existing CID here if available>that does not map to any known element is now preserved as literal text instead of disappearing, which also prevents downstreamcontentMatchAterrors when complex schemas (Mention, Variable, Table) are in use. - Updated dependencies [7bd09b7]
- @tiptap/pm@3.24.0
- @tiptap/core@3.24.0
@tiptap/static-renderer
Patch Changes
- 7bd09b7: Honor the
textDirectioneditor option inrenderToHTMLString,renderToMarkdown, andrenderToReactElement, and omitnull/undefinedattribute values instead of serializing them as the literal string"null". - Updated dependencies [7bd09b7]
- @tiptap/pm@3.24.0
- @tiptap/core@3.24.0
@tiptap/extensions
Patch Changes
- 7bd09b7: Fix placeholder flickering during collaborative editing and reduce scroll-time CPU usage by deferring viewport recomputation to rAF, adding an overscan margin, and throttling scroll updates
- Updated dependencies [7bd09b7]
- @tiptap/pm@3.24.0
- @tiptap/core@3.24.0
@tiptap/extension-table-of-contents
Minor Changes
- 7bd09b7: Add
generateTocIds, a server-side utility that assignsidanddata-toc-idattributes to anchor nodes in a Tiptap JSON document without needing anEditorinstance.