Skip to content

Releases: ueberdosis/tiptap

v3.0.9

01 Aug 16:02
224cb2c

Choose a tag to compare

Releases

@tiptap/[email protected]

Patch Changes

  • 072b110: Fixed the Vue 3 Drag Handle so it only appears when the user starts interacting with the text editor.

@tiptap/[email protected]

Patch Changes

  • 22fcc31: Update TaskItem aria-label when node changes

@tiptap/[email protected]

Patch Changes

  • 22d6050: fix renderToMarkdown rendering a link href's as undefined

v3.0.8

01 Aug 12:00
ed0dd52

Choose a tag to compare

Releases

@tiptap/[email protected]

Patch Changes

v3.0.7

16 Jul 11:32
45f1be5

Choose a tag to compare

Releases

@tiptap/[email protected]

Patch Changes

  • 6b42853: Fix: Fix a problem with the inline option and virtual elements missing getClientRects

@tiptap/[email protected]

Patch Changes

  • 6b42853: Fix: Fix a problem with the inline option and virtual elements missing getClientRects

v3.0.6

15 Jul 21:13
ea159ac

Choose a tag to compare

Releases

@tiptap/[email protected]

Patch Changes

  • 2e71d05: Fix: broken types for function chaining when calling extend

v3.0.5

15 Jul 19:14
8b1f41a

Choose a tag to compare

Releases

@tiptap/[email protected]

Patch Changes

  • f8a4e3e: Refactor: Make shouldShow optional on bubbleMenu and floatingMenu options

@tiptap/[email protected]

Patch Changes

  • f8a4e3e: Refactor: Make shouldShow optional on bubbleMenu and floatingMenu options

v3.0.4

15 Jul 18:48
81b70ac

Choose a tag to compare

Releases

@tiptap/[email protected]

Patch Changes

  • 7ed03fa: Fix: Add correct overload for extension extend types

v3.0.3

15 Jul 11:59
b87c2c4

Choose a tag to compare

Releases

@tiptap/[email protected]

Patch Changes

  • 75cabde: Fix: Avoid the JSX Runtime to globally overwrite React's Element types when /** @jsxImportSource @tiptap/core */ is not used

@tiptap/[email protected]

Patch Changes

  • 75cabde: Chore: Removed type overwrites for renderHTML

@tiptap/[email protected]

Patch Changes

  • 75cabde: Chore: Removed type overwrites for renderHTML

v3.0.2

15 Jul 11:58
50c9d67

Choose a tag to compare

Releases

@tiptap/[email protected]

Patch Changes

  • 601b1f6: Fix: Correctly pass through the bubble menu floating options
  • 601b1f6: Improvement: Added better JSDocs for the options object

@tiptap/[email protected]

Patch Changes

  • 601b1f6: Improvement: Added better JSDocs for the options object

v3.0.1

15 Jul 12:41
e17e337

Choose a tag to compare

Tiptap 3.0.0 Stable

This is the stable release for 3.0.0. Since we accidentially released our 3.0.0 last year and had to deprecate it, we're moving forward with 3.0.1 as our initial release for this major cycle.

Since our auto-generated changelog was to big for Github to handle we have to write this manually. Yikes!

@tiptap/core

Major Changes

  • Switched to tsup for bundling — UMD builds are no longer supported. If you rely on UMD, you'll need to re-bundle manually.
  • Stronger typings for getPos — Now returns number | undefined to reflect runtime reality.
  • Stricter typing for extension configs — Node, Mark, and Extension configs no longer allow arbitrary keys unless you extend their TypeScript interfaces.
  • editor.storage is now per-editor instance and strongly typed — No more weird cross-editor bugs.
  • clearContent and setContent now emit updates by default — More predictable reactivity.
  • insertContent avoids empty paragraphs when inserting at the start of a node.

New Features & Improvements

  • editor.unmount() — New lifecycle method to detach the editor without destroying it (great for preserving state).
  • MarkViews — You can now build custom views for marks (similar to NodeViews), including full support for React and Vue 3 components.
  • delete event — Detect and react to deleted content from the editor.
  • Attribute validation — Use ProseMirror’s validate function on attributes for more reliable schemas.
  • SSR mode for editor — You can now use the editor instance on the server without a DOM.
    • Only works with certain APIs; DOM-dependent stuff like focus() and getHTML() won't work on the server.
  • You can now create extensions using functions, not just plain objects — more flexibility for complex setups.

Fixes & Enhancements

  • canInsertNode utility — Check programmatically if a node is allowed at a certain position.
  • Drag preview fixes — Proper image previews when dragging.
  • MarkViews can now update attributes live (updateAttributes added).
  • Improved performance — Transactions that don’t change state no longer trigger updates or events.
  • Better validation when inserting or accessing positions in the document.
  • Various bugfixes, including:
    • Multiple plugin unregistration
    • Image overwrite when placing one after another
    • Cut command RangeException fix
    • Content deletion protection for non-editable source editors

@tiptap/react

Major Changes

  • Switched to tsup for bundling — UMD builds are no longer supported. If you rely on UMD, you'll need to re-bundle manually.
  • Replaced Tippy.js with Floating UI — Affects all menu-related extensions (FloatingMenu, BubbleMenu, Mention, Suggestion, etc.).
    • This is a breaking change and requires a manual migration.
    • tippyOptions has been removed and replaced with a new options prop.
    • You must install @floating-ui/dom@^1.6.0 as a peer dependency.
    • Refer to the docs for updated usage:

New Features & Improvements

  • MarkViews — You can now build custom views for marks (similar to NodeViews), including full support for React and Vue 3 components.
  • Error thrown in development mode if immediatelyRender is missing in SSR mode — Helps catch SSR issues early.
  • Added support for React 19 ref behavior — Improves compatibility with upcoming React features.
  • Reintroduced flushSync — Ensures updates between React and ProseMirror stay in sync.

Fixes & Enhancements

  • BubbleMenu positioning fixes — BubbleMenu now correctly tracks table cell selections.
  • Ref cleanup — Fixed memory leaks and behavior issues by properly cleaning up ref props and event listeners.
  • Allow custom tags for MarkViewContent via as prop.
  • Fixed DOM attachment issues in NodeView and MarkView.
  • Improved MarkView support for live attribute updates (updateAttributes now supported).
  • Various bugfixes, including:
    • Global resize handler not unregistered on destroy
    • Invalid ref props passed to unsupported components
    • Table-related selection bugs
    • Rendering issues in SSR mode

@tiptap/vue-3

Major Changes

  • Switched to tsup for bundling — UMD builds are no longer supported. If you rely on UMD, you'll need to re-bundle manually.
  • Replaced Tippy.js with Floating UI — Affects all menu-related extensions (FloatingMenu, BubbleMenu, Mention, Suggestion, etc.).
    • This is a breaking change and requires a manual migration.
    • tippyOptions has been removed and replaced with a new options prop.
    • You must install @floating-ui/dom@^1.6.0 as a peer dependency.
    • Refer to the docs for updated usage:

New Features & Improvements

  • MarkViews — You can now build custom views for marks (similar to NodeViews), including full support for Vue 3 and React components.
  • Added support for updateAttributes in MarkView components — Enables live updates to mark attributes.
  • Added support for onShow, onUpdate, onHide, and onDestroy props in menu components.

Fixes & Enhancements

  • BubbleMenu now correctly tracks table cell selections.
  • Global resize handler for BubbleMenu is now properly unregistered on destroy.
  • Fixed incorrect behavior of ref and event options in menus.
  • Various dependency updates and syncing with latest core and stable features.

@tiptap/vue-2

Major Changes

  • Switched to tsup for bundling — UMD builds are no longer supported. If you rely on UMD, you'll need to re-bundle manually.
  • Replaced Tippy.js with Floating UI — Affects all menu-related extensions (FloatingMenu, BubbleMenu, Mention, Suggestion, etc.).
    • This is a breaking change and requires a manual migration.
    • tippyOptions has been removed and replaced with a new options prop.
    • You must install @floating-ui/dom@^1.6.0 as a peer dependency.
    • Refer to the docs for updated usage:
  • VueNodeViewRenderer now returns null for contentDOM if the node is not a leaf and no NodeViewContent is rendered — Prevents unintended content projection issues.

Fixes & Enhancements

  • BubbleMenu now correctly tracks table cell selections.
  • Global resize handler for BubbleMenu is now properly unregistered on destroy.
  • Fixed incorrect behavior of ref and event options in menus.
  • Added support for onShow, onUpdate, onHide, and onDestroy props in menu components.
  • Various dependency updates and syncing with latest core and stable features.

@tiptap/extensions

Major Changes

  • Added the new @tiptap/extensions meta package — This package bundles multiple commonly used utility extensions into a single entry point:

    • CharacterCount
    • DropCursor
    • GapCursor
    • UndoRedo
    • Placeholder
    • TrailingNode
    • Focus
    • Selection

    You can now import them like this:

    import { Placeholder, UndoRedo, Focus } from '@tiptap/extensions'

    Migration examples:

    - import Placeholder from '@tiptap/extension-placeholder'
    + import { Placeholder } from '@tiptap/extensions'
    
    - import History from '@tiptap/extension-history'
    + import { UndoRedo } from '@tiptap/extensions'

    This change simplifies extension management and encourages lighter bundle sizes by centralizing core utility extensions in one place.

  • Removed selection decorations during drag mode — Prevents visual artifacts when dragging content.

New Features & Improvements

  • Skipped rendering node and selection decorations in non-editable editors — Improves performance and avoids unwanted visuals in read-only modes.

Fixes & Enhancements

  • Internal updates for better monorepo version pinning and stability.
  • Synced with the latest changes and fixes from core and related packages.

Other changes

Since listing all changes here manually would be again to big for Github's editor we would like you to take a look into the package's CHANGELOG.md where you can find ALL changes made on each version including all pre-releases prior to the official stable release.

Also take a look at our upgrade guide where you can find out what changed on all meta packages, how to upgrade to V3, etc.

  • The StarterKit extension now includes more extensions by deafult
  • The Table, Details and List extensions now include all their sub-packages. The Table and List extensions also export new Kit extensions to quickly register all of them in one go.

What now?

We'll continue working on this release, quickly hotfix the bugs encountered by the community and make 3.0.0 even better. We'll also look into new features like Markdown Support, Migrations and the Decoration API for our upcoming minor releases.

4.0.0 will not be far away - if we do breaking changes in the following weeks you'll see it in the coming weeks/months.

Contribute

Feel free to contribute to Tiptap in form of reporting issues, answering questions, helping with the CI, with tests or taking on Issues on your own. We're super happy for every contribu...

Read more

v3.0.0-beta.24

06 Jul 20:39
3bdc83f

Choose a tag to compare

v3.0.0-beta.24 Pre-release
Pre-release

Releases

@tiptap/[email protected]

Minor Changes

  • cce6497: Reintroduce flushSync to sync rendering of React and ProseMirror

Patch Changes