Skip to content

Releases: ueberdosis/tiptap

v3.13.0

05 Dec 11:50
9d7ea8d

Choose a tag to compare

@tiptap/extension-drag-handle

Patch Changes

  • Added data-dragging attribute to drag handle elements to track drag state.

@tiptap/extension-drag-handle-react

Patch Changes

  • Added data-dragging attribute to drag handle elements to track drag state.

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

Patch Changes

  • Added data-dragging attribute to drag handle elements to track drag state.

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

Patch Changes

  • Added data-dragging attribute to drag handle elements to track drag state.

@tiptap/extension-link

Patch Changes

  • Ensure enableClickSelection works regardless of the openOnClick option by always registering the link click handler plugin.

@tiptap/extension-table-of-contents

Patch Changes

  • Skip the table of contents update logic during IME input method composition to avoid interference with input.

@tiptap/markdown

Patch Changes

  • Fixed trailing and leading whitespace handling in markdown serialization for inline marks

@tiptap/extension-mention

Patch Changes

  • Add 'mentionSuggestionChar' to allowedAttributes for Markdown serialization in multi-mention setups. The attribute is only serialized when it differs from the default '@' character, keeping markdown output clean for single-mention users.

@tiptap/core

Minor Changes

    1. Added an optional createCustomHandle callback to ResizableNodeView, allowing developers to fully customize resize handles. When provided, it replaces the default handle creation and bypasses the built-in positionHandle logic, giving complete control over markup, styling, and positioning while preserving backward compatibility.
    2. Removed predefined inline styles from the wrapper element to better support dynamic alignment. This eliminates the need for !important overrides in user styles.
    3. Added an editor update event listener to dynamically attach or remove resize handles based on the editor’s editable state. The implementation tracks the previous editable state to avoid unnecessary re-renders.

Patch Changes

  • Add 'mentionSuggestionChar' to allowedAttributes for Markdown serialization in multi-mention setups. The attribute is only serialized when it differs from the default '@' character, keeping markdown output clean for single-mention users.

@tiptap/extension-image

Minor Changes

    1. Added an optional createCustomHandle callback to ResizableNodeView, allowing developers to fully customize resize handles. When provided, it replaces the default handle creation and bypasses the built-in positionHandle logic, giving complete control over markup, styling, and positioning while preserving backward compatibility.
    2. Removed predefined inline styles from the wrapper element to better support dynamic alignment. This eliminates the need for !important overrides in user styles.
    3. Added an editor update event listener to dynamically attach or remove resize handles based on the editor’s editable state. The implementation tracks the previous editable state to avoid unnecessary re-renders.

v3.12.1

03 Dec 16:25
c710fdc

Choose a tag to compare

@tiptap/extension-table-of-contents

Patch Changes

  • Fixed a bug that mutated the ProseMirror document during server-side rendering, which could cause "Invalid content for node doc" errors.

v3.12.0

02 Dec 17:12
7c72d24

Choose a tag to compare

@tiptap/extension-collaboration

Minor Changes

  • Implement position mapping using the MappablePosition class. This enables position mapping in collaborative editing scenarios.

    • Introduce MappablePosition class in core with position, fromJSON, and toJSON methods
    • Add editor.utils property with getUpdatedPosition(position, transaction) and createMappablePosition() methods
    • Create CollaborationMappablePosition subclass that extends MappablePosition with Y.js relative position support

@tiptap/core

Minor Changes

  • Implement position mapping using the MappablePosition class. This enables position mapping in collaborative editing scenarios.

    • Introduce MappablePosition class in core with position, fromJSON, and toJSON methods
    • Add editor.utils property with getUpdatedPosition(position, transaction) and createMappablePosition() methods
    • Create CollaborationMappablePosition subclass that extends MappablePosition with Y.js relative position support

@tiptap/extension-collaboration-caret

Patch Changes

  • Avoid mutating this.options in the updateUser command. this.options can be a getter and is not writable; the command now updates the provider awareness directly so user updates are applied correctly.

@tiptap/react

Minor Changes

  • Replaced unmaintained fast-deep-equal dependency with maintained fast-equals

Patch Changes

  • Fix a bug where React node views could receive invalid positions from this.getPos() when ProseMirror and React render cycles got out of sync, which could cause errors during updates.

v3.11.1

27 Nov 17:58
0860c60

Choose a tag to compare

@tiptap/core

Patch Changes

  • Improve TypeScript generics for Node.extend

    The 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/extensions

Patch Changes

  • Fixed a bug where the TrailingNode extension would not use the node option to assume the default node type

v3.11.0

19 Nov 02:14
e4b95fa

Choose a tag to compare

Releases

v3.11.0

@tiptap/core

Minor Changes

  • Add native text direction support for RTL and bidirectional content. The editor now includes a textDirection option that can be set to 'ltr', 'rtl', or 'auto' to control the direction of all content globally. Additionally, new setTextDirection and unsetTextDirection commands 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.

v3.10.8

18 Nov 15:03
abc5b34

Choose a tag to compare

@tiptap/core

Patch Changes

  • Fixed a bug that caused extra characters to be inserted after a parsed, nestable content block by accounting for leading newlines
  • Add documentation comments to Tiptap JSON types
  • allow undefined as a value for the default attribute key
  • Fix updateAttributes and resetAttributes commands to return accurate results when used with .can(). Previously, these commands would always return true even when they couldn't perform the operation. Now they correctly return false when no matching nodes or marks are found in the selection.

@tiptap/extension-text-align

Patch Changes

  • Fix setTextAlign and unsetTextAlign commands to work correctly with .can() checks. Changed logic from .every() to .some() to return true when at least one configured node type matches, rather than requiring all types to match.

@tiptap/static-renderer

Patch Changes

  • Fix static HTML renderer incorrectly generating self-closing tags for HTML elements that require proper closing tags (iframe, script, style, etc.).

@tiptap/markdown

Patch Changes

  • Fixed CommonJS compatibility by downgrading marked dependency from v16 to v15.

v3.10.7

12 Nov 23:03
7413f6d

Choose a tag to compare

Releases

v3.10.7

@tiptap/vue-2

Patch Changes

  • Fix BubbleMenu plugin registration not triggering due to missing element reference during component initialization.

v3.10.6

12 Nov 20:07
a11188e

Choose a tag to compare

v3.10.6

@tiptap/vue-2

Patch Changes

  • Fix BubbleMenu and FloatingMenu component runtime errors in Vue 2.

v3.10.5

10 Nov 12:45
a365c61

Choose a tag to compare

Releases

v3.10.5

@tiptap/extension-collaboration

Patch Changes

  • Fixed collaborative editing errors with certain emoji combinations (like 🔴🟢, 😎🐈, 🟣🔵) by updating @tiptap/y-tiptap to stable v3.0.0.

@tiptap/extension-collaboration-caret

Patch Changes

  • Fixed collaborative editing errors with certain emoji combinations (like 🔴🟢, 😎🐈, 🟣🔵) by updating @tiptap/y-tiptap to stable v3.0.0.

@tiptap/extension-drag-handle

Patch Changes

  • Fixed collaborative editing errors with certain emoji combinations (like 🔴🟢, 😎🐈, 🟣🔵) by updating @tiptap/y-tiptap to stable v3.0.0.

@tiptap/core

Patch Changes

  • Fixed ProseMirror schema generation to properly respect isRequired attribute configuration. Previously, attributes marked with isRequired: true were incorrectly treated as optional because a default property was always included in the schema specification. ProseMirror determines attribute requirements by the absence of the default property, so now the default is only included when the attribute is not required and a default value is explicitly defined.

@tiptap/extension-unique-id

Patch Changes

  • Fixed infinite transaction loop that caused browser tabs to freeze when using UniqueID and TrailingNode extensions together.

@tiptap/extensions

Patch Changes

  • Fixed infinite transaction loop that caused browser tabs to freeze when using UniqueID and TrailingNode extensions together.

v3.10.4

08 Nov 07:52
f78bf61

Choose a tag to compare

Releases

v3.10.4

@tiptap/core

Patch Changes

  • Fix autofocus behavior to prevent unwanted scrolling when disabled

@tiptap/extension-blockquote

Patch Changes

  • Fixed nested blockquote markdown serialization to properly handle multi-level nesting