Releases: ueberdosis/tiptap
Releases · ueberdosis/tiptap
v3.13.0
@tiptap/extension-drag-handle
Patch Changes
- Added
data-draggingattribute to drag handle elements to track drag state.
@tiptap/extension-drag-handle-react
Patch Changes
- Added
data-draggingattribute to drag handle elements to track drag state.
@tiptap/extension-drag-handle-vue-2
Patch Changes
- Added
data-draggingattribute to drag handle elements to track drag state.
@tiptap/extension-drag-handle-vue-3
Patch Changes
- Added
data-draggingattribute to drag handle elements to track drag state.
@tiptap/extension-link
Patch Changes
- Ensure
enableClickSelectionworks regardless of theopenOnClickoption 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
-
- 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
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
-
- 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.1
v3.12.0
@tiptap/extension-collaboration
Minor Changes
-
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
@tiptap/core
Minor Changes
-
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
@tiptap/extension-collaboration-caret
Patch Changes
- 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.
@tiptap/react
Minor Changes
- Replaced unmaintained
fast-deep-equaldependency with maintainedfast-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
@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
Releases
v3.11.0
@tiptap/core
Minor Changes
- 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.
v3.10.8
@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
undefinedas a value for thedefaultattribute key - Fix
updateAttributesandresetAttributescommands to return accurate results when used with.can(). Previously, these commands would always returntrueeven when they couldn't perform the operation. Now they correctly returnfalsewhen no matching nodes or marks are found in the selection.
@tiptap/extension-text-align
Patch Changes
- Fix
setTextAlignandunsetTextAligncommands to work correctly with.can()checks. Changed logic from.every()to.some()to returntruewhen 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
markeddependency from v16 to v15.
v3.10.7
v3.10.6
v3.10.5
Releases
v3.10.5
@tiptap/extension-collaboration
Patch Changes
- Fixed collaborative editing errors with certain emoji combinations (like 🔴🟢, 😎🐈, 🟣🔵) by updating
@tiptap/y-tiptapto stable v3.0.0.
@tiptap/extension-collaboration-caret
Patch Changes
- Fixed collaborative editing errors with certain emoji combinations (like 🔴🟢, 😎🐈, 🟣🔵) by updating
@tiptap/y-tiptapto stable v3.0.0.
@tiptap/extension-drag-handle
Patch Changes
- Fixed collaborative editing errors with certain emoji combinations (like 🔴🟢, 😎🐈, 🟣🔵) by updating
@tiptap/y-tiptapto stable v3.0.0.
@tiptap/core
Patch Changes
- Fixed ProseMirror schema generation to properly respect
isRequiredattribute configuration. Previously, attributes marked withisRequired: truewere incorrectly treated as optional because adefaultproperty was always included in the schema specification. ProseMirror determines attribute requirements by the absence of thedefaultproperty, so now thedefaultis 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.