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.
v3.10.8
- 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.
- 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.
- Fix static HTML renderer incorrectly generating self-closing tags for HTML elements that require proper closing tags (iframe, script, style, etc.).
- Fixed CommonJS compatibility by downgrading
markeddependency from v16 to v15.
v3.10.5
- Fixed collaborative editing errors with certain emoji combinations (like 🔴🟢, 😎🐈, 🟣🔵) by updating
@tiptap/y-tiptapto stable v3.0.0.
- Fixed collaborative editing errors with certain emoji combinations (like 🔴🟢, 😎🐈, 🟣🔵) by updating
@tiptap/y-tiptapto stable v3.0.0.
- Fixed collaborative editing errors with certain emoji combinations (like 🔴🟢, 😎🐈, 🟣🔵) by updating
@tiptap/y-tiptapto stable v3.0.0.
- 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.
- Fixed infinite transaction loop that caused browser tabs to freeze when using UniqueID and TrailingNode extensions together.
- Fixed infinite transaction loop that caused browser tabs to freeze when using UniqueID and TrailingNode extensions together.
v3.10.3
- Fix markdown serialization to prevent marks from continuing after hard breaks. Previously, marks like bold would incorrectly persist across hard breaks in the markdown output.
- Fixed a bug where marks were resolved in incorrect orders, breaking markdown rendering for nested marks.
- Fix parsing of mixed bullet lists and task lists. Previously, Marked.js would group consecutive bullet list items and task list items into a single list token, causing incorrect parsing. Now the parser detects mixed lists and splits them into separate bulletList and taskList nodes.
v3.10.2
- Fix parsing of mixed inline HTML within Markdown content so that inline HTML fragments are parsed correctly.
- Allow setting custom table widths by respecting user-provided
styleattributes instead of always overriding them with calculated widths.