ueberdosis/tiptap
 Watch   
 Star   
 Fork   
4 days ago
tiptap

v3.22.3

@tiptap/core

Patch Changes

  • ac994c5: Fixed insertContentAt corrupting the document when inserting inline content with marks at the start of a paragraph. The from - 1 position adjustment now only applies to block-level content.

@tiptap/extension-node-range

Patch Changes

  • ac994c5: Add an option to control whether node ranges extend when a selection only touches a node boundary.

@tiptap/html

Patch Changes

  • ac994c5: Remove unnecessary xmlns="http://www.w3.org/1999/xhtml" attribute from generateHTML output by using innerHTML instead of XMLSerializer for HTML serialization.

@tiptap/extension-drag-handle

Patch Changes

  • ac994c5: Fix drag selections so crossing a node boundary does not incorrectly include the next node.

@tiptap/starter-kit

Patch Changes

  • Updated dependencies [ac994c5]
    • @tiptap/core@3.22.3
    • @tiptap/extension-dropcursor@3.22.3
    • @tiptap/extension-gapcursor@3.22.3
    • @tiptap/extension-list-item@3.22.3
    • @tiptap/extension-list-keymap@3.22.3
    • @tiptap/extension-blockquote@3.22.3
    • @tiptap/extension-bold@3.22.3
    • @tiptap/extension-bullet-list@3.22.3
    • @tiptap/extension-code@3.22.3
    • @tiptap/extension-code-block@3.22.3
    • @tiptap/extension-document@3.22.3
    • @tiptap/extension-hard-break@3.22.3
    • @tiptap/extension-heading@3.22.3
    • @tiptap/extension-horizontal-rule@3.22.3
    • @tiptap/extension-italic@3.22.3
    • @tiptap/extension-link@3.22.3
    • @tiptap/extension-list@3.22.3
    • @tiptap/extension-ordered-list@3.22.3
    • @tiptap/extension-paragraph@3.22.3
    • @tiptap/extension-strike@3.22.3
    • @tiptap/extension-text@3.22.3
    • @tiptap/extension-underline@3.22.3
    • @tiptap/extensions@3.22.3
    • @tiptap/pm@3.22.3
8 days ago
tiptap

v3.22.2

@tiptap/core

Patch Changes

  • Fix incorrect selection placement when pasting at the end of a marked text node, ensuring inclusive marks are respected
  • Fixes list toggling when the entire document is selected

@tiptap/extension-floating-menu

Patch Changes

  • Add new transaction meta handlers to programmatically show & hide the floating & bubble menus via transaction.setMeta('menuKey', 'show') and transaction.setMeta('menuKey', 'hide')

@tiptap/extension-bubble-menu

Patch Changes

  • Add new transaction meta handlers to programmatically show & hide the floating & bubble menus via transaction.setMeta('menuKey', 'show') and transaction.setMeta('menuKey', 'hide')

@tiptap/extension-typography

Patch Changes

  • Added RTL smart quote support

@tiptap/react

Patch Changes

  • Fixed an error where flushSync() would run in <EditorContent /> lifecycle

@tiptap/extension-drag-handle-vue-3

Patch Changes

  • Fixed an issue causing drag handle visibility not to update dynamically in Vue 3 components.

@tiptap/starter-kit

Patch Changes

  • Updated dependencies
    • @tiptap/core@3.22.2
    • @tiptap/extension-dropcursor@3.22.2
    • @tiptap/extension-gapcursor@3.22.2
    • @tiptap/extension-list-item@3.22.2
    • @tiptap/extension-list-keymap@3.22.2
    • @tiptap/extension-blockquote@3.22.2
    • @tiptap/extension-bold@3.22.2
    • @tiptap/extension-bullet-list@3.22.2
    • @tiptap/extension-code@3.22.2
    • @tiptap/extension-code-block@3.22.2
    • @tiptap/extension-document@3.22.2
    • @tiptap/extension-hard-break@3.22.2
    • @tiptap/extension-heading@3.22.2
    • @tiptap/extension-horizontal-rule@3.22.2
    • @tiptap/extension-italic@3.22.2
    • @tiptap/extension-link@3.22.2
    • @tiptap/extension-list@3.22.2
    • @tiptap/extension-ordered-list@3.22.2
    • @tiptap/extension-paragraph@3.22.2
    • @tiptap/extension-strike@3.22.2
    • @tiptap/extension-text@3.22.2
    • @tiptap/extension-underline@3.22.2
    • @tiptap/extensions@3.22.2
    • @tiptap/pm@3.22.2
10 days ago
tiptap

v3.22.1

@tiptap/extension-drag-handle

Patch Changes

  • Fixed drag handle ghost image for RTL and mixed-direction content: the ghost wrapper now uses the dragged block’s computed direction (via domAtPos), and the drag image hotspot uses the cursor position relative to the ghost wrapper so the preview aligns with the pointer in both LTR and RTL.

@tiptap/core

Patch Changes

  • Fix NodeView not re-rendering when a node's position changes without content or decoration changes (e.g. when a sibling node is moved within the same parent)
  • Don't stop dragover/dragenter events in NodeViews, to prevent spurious drag-copy cursors

@tiptap/react

Patch Changes

  • Fix NodeView not re-rendering when a node's position changes without content or decoration changes (e.g. when a sibling node is moved within the same parent)
  • Prevent React node views from crashing during deferred selection updates when ProseMirror has already detached the node view position lookup.

@tiptap/vue-3

Patch Changes

  • Fix NodeView not re-rendering when a node's position changes without content or decoration changes (e.g. when a sibling node is moved within the same parent)

@tiptap/vue-2

Patch Changes

  • Fix NodeView not re-rendering when a node's position changes without content or decoration changes (e.g. when a sibling node is moved within the same parent)
12 days ago
tiptap

v3.22.0

@tiptap/extension-emoji

Patch Changes

  • Use a named import for Suggestion from @tiptap/suggestion to avoid bundler ESM/CJS interop wrapping (__toESM) that caused CJS consumers to receive a module object instead of the callable plugin factory.

    This is a non-breaking internal fix identical to the one applied to @tiptap/extension-mention in #6994.

@tiptap/extension-collaboration

Patch Changes

  • Moved content validation from Yjs beforeTransaction (whose return value was ignored) to ProseMirror filterTransaction, so invalid collaborative changes are now properly blocked.

@tiptap/extension-bubble-menu

Patch Changes

  • Prevent hidden bubble menus from reappearing during scroll and resize updates. Bubble menu positioning now only runs for menus that are already shown, so default text-selection menus stay hidden until they should actually open.

@tiptap/core

Patch Changes

  • Fix HTML character escaping in markdown roundtrip. HTML entities (&lt;, &gt;, &amp;, &quot;) are now decoded to literal characters when parsing markdown into the editor. <, >, and & are re-encoded when serializing back to markdown, while " is preserved as a literal character since double quotes are ordinary in markdown. Code detection for skipping encoding now uses the code: true extension spec instead of hardcoded type names. Literal characters inside code blocks and inline code are always preserved.
  • Fix ResizableNodeView ignoring node's inline setting by using inline-flex for inline nodes and flex for block nodes
  • extendMarkRange defaults to using the attributes of the first mark of the given type, instead of attributes = {}. In particular, extendMarkRange('link') no longer extends to adjacent links with different hrefs; restore the previous behavior with extendMarkRange('link', {}).
  • Fix getMarkRange attributes default to consider the first mark of the given type
  • Guard mark delete event handling when unsetMark removes a mark from inline content that starts at position 0, preventing a RangeError during the before-node lookup.

@tiptap/markdown

Patch Changes

  • Fix HTML character escaping in markdown roundtrip. HTML entities (&lt;, &gt;, &amp;, &quot;) are now decoded to literal characters when parsing markdown into the editor. <, >, and & are re-encoded when serializing back to markdown, while " is preserved as a literal character since double quotes are ordinary in markdown. Code detection for skipping encoding now uses the code: true extension spec instead of hardcoded type names. Literal characters inside code blocks and inline code are always preserved.

@tiptap/extension-mathematics

Patch Changes

  • Prevent inline math input rule from capturing previous character. Changed input rule to utilize negative lookbehind to prevent matching previous character. Ensures the range's from position is correctly at the start of the double $ signs.

@tiptap/suggestion

Patch Changes

  • Suggestions dismissed via Escape no longer reappear when the user keeps typing in the same word — they only come back after inserting whitespace, a newline, or moving the cursor to a different trigger.

@tiptap/extension-details

Patch Changes

  • Fix a rerender loop in the Details node view when the toggle button updates its DOM attributes through renderToggleButton.

@tiptap/html

Patch Changes

  • Updated happy-dom to 20.8.9

@tiptap/extension-table

Minor Changes

  • Added Markdown table alignment support. The TableCell and TableHeader nodes now have an align attribute (left, center, right) that is parsed from Markdown column alignment markers (:---, ---:, :---:) and serialized back when rendering to Markdown. Alignment is also parsed from and rendered to HTML via style="text-align: ...".
16 days ago
tiptap

v3.21.0

@tiptap/extension-details

Minor Changes

  • Add a renderToggleButton option to customize the details toggle button, including its accessible label.

@tiptap/markdown

Patch Changes

  • Fix custom markdown tokenizer helper lexing to use Marked's active lexer so ordered list parsing no longer breaks inline tokenization in following paragraphs.

@tiptap/extension-drag-handle

Patch Changes

  • Updated findElementNextToCoords to fall back to view.posAtCoords when elementsFromPoint returns no matching block, resolving the position to the top-level block node.

@tiptap/extension-emoji

Patch Changes

  • Update emoji dataset to include latest Unicode emojis.
16 days ago
tiptap

v3.20.6

@tiptap/extension-drag-handle

Patch Changes

  • Fix drag preview cleanup so cloned drag images are also removed when dragging ends without a valid drop.
19 days ago
tiptap

v3.20.5

@tiptap/extensions

Patch Changes

  • Add support for skipping trailing node insertion on transactions by setting the skipTrailingNode meta flag.
27 days ago
tiptap

v3.20.3

@tiptap/react

Patch Changes

  • Forward BubbleMenu and FloatingMenu HTML props to the actual menu element so attributes like className, style, data-*, and event handlers bind to the positioned menu container.
  • Generate a stable per-instance menu plugin key automatically when pluginKey is omitted, so multiple BubbleMenu or FloatingMenu components can be mounted without colliding.

@tiptap/vue-2

Patch Changes

  • Forward BubbleMenu and FloatingMenu HTML props to the actual menu element so attributes like className, style, data-*, and event handlers bind to the positioned menu container.
  • Generate a stable per-instance menu plugin key automatically when pluginKey is omitted, so multiple BubbleMenu or FloatingMenu components can be mounted without colliding.

@tiptap/core

Patch Changes

  • Fixed isNodeEmpty() so multi-line text with non-whitespace content is no longer treated as empty when ignoreWhitespace is enabled.
  • Fixed overlapping bold and italic markdown serialization and round-tripping.

@tiptap/extension-unique-id

Patch Changes

  • Fixed a bug where empty paragraphs accumulated in the document on every page reload when using the UniqueID extension with the Collaboration extension and an externally created Yjs provider.

@tiptap/extension-youtube

Patch Changes

  • Export missing getEmbedUrlFromYoutubeUrl and isValidYoutubeUrl embed URL utility functions

@tiptap/vue-3

Patch Changes

  • Generate a stable per-instance menu plugin key automatically when pluginKey is omitted, so multiple BubbleMenu or FloatingMenu components can be mounted without colliding.

@tiptap/extension-placeholder

Patch Changes

  • Skip placeholder decorations on non-textblock nodes when includeChildren is enabled to prevent duplicate placeholders on wrapper nodes like lists.

@tiptap/extension-bold

Patch Changes

  • Fixed overlapping bold and italic markdown serialization and round-tripping.

@tiptap/extension-italic

Patch Changes

  • Fixed overlapping bold and italic markdown serialization and round-tripping.

@tiptap/markdown

Patch Changes

  • Fixed overlapping bold and italic markdown serialization and round-tripping.
28 days ago
tiptap

v3.20.2

@tiptap/core

Patch Changes

  • Improved markdown empty-paragraph roundtripping across top-level and nested block content. Empty paragraphs now serialize with natural blank-line spacing for the first paragraph in a run and &nbsp; markers for subsequent empty paragraphs at the same level, while parsing preserves those empty paragraphs when converting markdown back to JSON.

@tiptap/extension-blockquote

Patch Changes

  • Improved markdown empty-paragraph roundtripping across top-level and nested block content. Empty paragraphs now serialize with natural blank-line spacing for the first paragraph in a run and &nbsp; markers for subsequent empty paragraphs at the same level, while parsing preserves those empty paragraphs when converting markdown back to JSON.

@tiptap/extension-list

Patch Changes

  • Improved markdown empty-paragraph roundtripping across top-level and nested block content. Empty paragraphs now serialize with natural blank-line spacing for the first paragraph in a run and &nbsp; markers for subsequent empty paragraphs at the same level, while parsing preserves those empty paragraphs when converting markdown back to JSON.

@tiptap/extension-paragraph

Patch Changes

  • Improved markdown empty-paragraph roundtripping across top-level and nested block content. Empty paragraphs now serialize with natural blank-line spacing for the first paragraph in a run and &nbsp; markers for subsequent empty paragraphs at the same level, while parsing preserves those empty paragraphs when converting markdown back to JSON.

@tiptap/markdown

Patch Changes

  • Improved markdown empty-paragraph roundtripping across top-level and nested block content. Empty paragraphs now serialize with natural blank-line spacing for the first paragraph in a run and &nbsp; markers for subsequent empty paragraphs at the same level, while parsing preserves those empty paragraphs when converting markdown back to JSON.
2026-03-06 20:43:47
tiptap

v3.20.1

@tiptap/extension-code-block

Patch Changes

  • Fix tilde-fenced code blocks (~~~) being silently dropped when parsing markdown

@tiptap/extension-drag-handle

Patch Changes

  • Fix Drag event listener is removed when a plugin is registered after the DragHandle plugin.

@tiptap/extension-unique-id

Patch Changes

  • Add support for types: 'all' in UniqueID to target every node type except doc and text.

@tiptap/core

Patch Changes

  • Fix inline style parsing in mergeAttributes for values containing : or ; (e.g. url(https://...) or url(data:...;charset=...,)) and skip incomplete declarations