v3.15.2
- Prevent auto-linking of bare hostnames (e.g.,
localhost) and IP addresses without a protocol prefix
- Fix lost HTML attributes in TaskItem node view updates
- Fix Vue prop validation warning for
appendToprop in BubbleMenu and FloatingMenu
- Fix Vue prop validation warning for
appendToprop in BubbleMenu and FloatingMenu
- Fix YouTube Shorts embed URLs using incorrect query parameter separator
- Fix race conditions in ReactRenderer causing destroyed renderers to be re-added in Strict Mode
v3.15.0
- Add a new
dispatchTransactionhook to extensions, allowing developers to intercept, modify, or block transactions before they are applied to the editor state.
- Fix unique ID assignment when handling empty nodes by checking next node's attribute state in the transaction document before modifying it, preventing incorrect ID assignments.
v3.14.0
-
Add new Twitch extension for embedding Twitch videos, clips, and live channels in the editor. Supports customizable parameters like autoplay, muted, and start time, with attribute-level overrides for per-embed configuration.
Documentation: https://tiptap.dev/docs/editor/extensions/nodes/twitch
-
Append all children of editors parent node to element
Fixes a regression introduced by #6972, that resulted in elements that got appended to the editors parent node staying detached. E.g. the drag handle plugin is affected by this regression.
-
Append all children of editors parent node to element
Fixes a regression introduced by #6972, that resulted in elements that got appended to the editors parent node staying detached. E.g. the drag handle plugin is affected by this regression.
-
Append all children of editors parent node to element
Fixes a regression introduced by #6972, that resulted in elements that got appended to the editors parent node staying detached. E.g. the drag handle plugin is affected by this regression.
- Fix
findElementNextToCoordsto resolve the parent whennodeAt(pos)is null (e.g., inside an atom node that allows inline content)
v3.13.0
- Added
data-draggingattribute to drag handle elements to track drag state.
- Added
data-draggingattribute to drag handle elements to track drag state.
- Added
data-draggingattribute to drag handle elements to track drag state.
- Added
data-draggingattribute to drag handle elements to track drag state.
- Ensure
enableClickSelectionworks regardless of theopenOnClickoption by always registering the link click handler plugin.
- Skip the table of contents update logic during IME input method composition to avoid interference with input.
- Fixed trailing and leading whitespace handling in markdown serialization for inline marks
- 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.
-
- Added an optional
createCustomHandlecallback toResizableNodeView, allowing developers to fully customize resize handles. When provided, it replaces the default handle creation and bypasses the built-inpositionHandlelogic, giving complete control over markup, styling, and positioning while preserving backward compatibility. - Removed predefined inline styles from the
wrapperelement to better support dynamic alignment. This eliminates the need for!importantoverrides in user styles. - Added an editor
updateevent 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.
- Added an optional
- 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.
-
- Added an optional
createCustomHandlecallback toResizableNodeView, allowing developers to fully customize resize handles. When provided, it replaces the default handle creation and bypasses the built-inpositionHandlelogic, giving complete control over markup, styling, and positioning while preserving backward compatibility. - Removed predefined inline styles from the
wrapperelement to better support dynamic alignment. This eliminates the need for!importantoverrides in user styles. - Added an editor
updateevent 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.
- Added an optional
v3.12.0
-
Implement position mapping using the
MappablePositionclass. This enables position mapping in collaborative editing scenarios.- Introduce
MappablePositionclass in core withposition,fromJSON, andtoJSONmethods - Add
editor.utilsproperty withgetUpdatedPosition(position, transaction)andcreateMappablePosition()methods - Create
CollaborationMappablePositionsubclass that extendsMappablePositionwith Y.js relative position support
- Introduce
-
Implement position mapping using the
MappablePositionclass. This enables position mapping in collaborative editing scenarios.- Introduce
MappablePositionclass in core withposition,fromJSON, andtoJSONmethods - Add
editor.utilsproperty withgetUpdatedPosition(position, transaction)andcreateMappablePosition()methods - Create
CollaborationMappablePositionsubclass that extendsMappablePositionwith Y.js relative position support
- Introduce
- Avoid mutating
this.optionsin theupdateUsercommand.this.optionscan be a getter and is not writable; the command now updates the provider awareness directly so user updates are applied correctly.
- Replaced unmaintained
fast-deep-equaldependency with maintainedfast-equals
- 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
-
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.
- Fixed a bug where the TrailingNode extension would not use the node option to assume the default node type
v3.11.0
- Add native text direction support for RTL and bidirectional content. The editor now includes a
textDirectionoption 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.