npm @tiptap/extension-bullet-list 3.29.0
v3.29.0

6 hours ago

@tiptap/extension-ruby-text

Minor Changes

  • Add official RubyText extension for HTML ruby text annotations with non-editable annotations and mark-based document storage. The click-to-edit annotation editor can be replaced with a custom element via the renderAnnotationEditor option.

@tiptap/core

Patch Changes

  • Fix a TypeScript build error in isAndroid() where comparing navigator.platform against the literal 'Android' with === could fail to compile under some lib.dom.d.ts typings ("types have no overlap"). Switched to the same .includes() pattern already used by isiOS(), which is not affected by this TypeScript narrowing issue. No runtime behavior change.
  • Fixed a bug where deleting an AllSelection (for example right after Ctrl/Cmd+A) left a lingering "phantom" selection highlight over the emptied document instead of a text cursor. deleteSelection now collapses the selection to a cursor.
  • Fix input rules crashing when the matched text spans an inline atom node like a mention.
  • Node view getPos() now returns undefined instead of throwing when the position cannot be resolved yet, for example when React 19 renders a node view component while the editor view is still updating.
  • Fixed onContentError throwing when calling editor.commands from inside the handler on initial load with invalid content. The editor now has a usable state (seeded from the stripped fallback document) before onContentError fires.
  • Fix editor.$pos() returning the wrong node inside container nodes, for example the list item instead of the list.
  • Add insertDefaultBlock to insert the default textblock allowed at a position. It accepts an optional position, attributes, content, and selection-update option.
  • Updated dependencies [e9942fc]
    • @tiptap/pm@3.29.0

@tiptap/extension-find-and-replace

Minor Changes

  • Added a new @tiptap/extension-find-and-replace extension. It searches the document for a term, highlights all matches with decorations, and replaces the current or all matches. Supports case-sensitive, whole-word, and RE2-compatible regex search, plus commands to jump between results. Regex search avoids catastrophic backtracking but does not support lookarounds or backreferences.

@tiptap/pm

Patch Changes

  • Bump prosemirror-model to ^1.25.11, fixing pasting content copied from the editor inserting extra empty paragraphs (a regression introduced in prosemirror-view 1.42.0).

@tiptap/extension-hard-break

Patch Changes

  • Fixed a bug where inserted hard breaks would not scroll the view on insertion via commands.

@tiptap/extension-code-block

Patch Changes

  • Fixed a bug where pressing ArrowUp in a code block that is the first node in the document did nothing, leaving no way to insert content above it. A new default block is now inserted above the code block, mirroring the existing ArrowDown behavior. The behavior can be disabled via the new exitOnArrowUp option.

@tiptap/extension-table

Patch Changes

  • Fix inserting a table with an empty cell or header (e.g. via insertContent/insertContentAt) throwing RangeError: Invalid content for node tableCell/tableHeader: <>. Empty <td>/<th> elements are now backfilled with the cell's default block content, matching the behavior you already get from setContent.
  • Keep line breaks inside table cells when serializing to markdown. Hard breaks and paragraph breaks in a cell are now written as <br> instead of being collapsed into a space, so they survive a parse/serialize round trip.

@tiptap/markdown

Patch Changes

  • Fixed blank lines being dropped after block elements (headings, tables, etc.) when parsing markdown. Blank lines were being absorbed into the block token instead of being preserved, causing content to lose a blank line on each parse/serialize cycle.

@tiptap/react

Patch Changes

  • Fixed useEditorState not re-rendering components when editor.setEditable() changes the editor's editable state, since that call only emits an update event and never a transaction.

@tiptap/vue-3

Patch Changes

  • Fix <node-view-content as="tbody"> (and similar restricted-content elements) rendering with an extra wrapper <div> nested inside them, which broke tables in Vue node views. Note: keep <node-view-content> mounted (use v-show, not v-if) — conditionally remounting it can leave ProseMirror attached to the old element.

@tiptap/extension-image

Patch Changes

  • Fix resizable images not synchronizing rendered attributes after updates

@tiptap/static-renderer

Patch Changes

  • Fix Markdown table serialization for merged cells by preserving the correct column layout for rowspan and colspan.

@tiptap/extension-link

Minor Changes

  • Typing or pasting Markdown link syntax like [Tiptap](https://tiptap.dev) or [Tiptap](https://tiptap.dev "Rich text editor") can now automatically be converted into a link. The behavior is opt-in, enable it with the new markdownLinks option.

Don't miss a new extension-bullet-list release

NewReleases is sending notifications on new releases.