🎁 100 free AI Toolkit licenses – apply by August 15.Learn more

Changelog

All notable changes to this project will be documented in this file.

[2026-08-01]

Added

  • Search and Replace: Added an open-source search and replace panel with debounced live highlighting, a one-based result counter, wrap-around navigation, match-case and whole-word options, regular expression search with example patterns, controlled placement and open state, replace and replace-all actions, and Mod+F, arrow-key, and Enter shortcuts. Moving between results updates only the highlight, so the editor selection and the toolbar state stay where the user left them. Install it with npx @tiptap/cli@latest add search-and-replace.
  • Button: Added a reusable check variant, a checkbox-style toggle that supplies role="checkbox", its own check indicator, and the ghost style at small size by default. Control its state with aria-checked, which also accepts mixed.
  • Simple editor template: The template now ships search and replace, with a toolbar trigger and a panel docked below the toolbar.

Fixed

  • Toolbar roving focus: The toolbar now restores focus to its items only while focus is already inside the toolbar, so panels and popovers opened from the toolbar keep the focus they requested.
  • Link popover: autoOpenOnLinkActive now also requires the editor to be focused, so an active link no longer opens the popover after a programmatic selection change, such as one made from a search panel.

Existing installations can refresh the changed components with npx @tiptap/cli@latest add button toolbar link-popover -o. Add search-and-replace to that list if you installed the panel on 2026-07-31, the day before this entry, so it picks up the result-navigation behavior. The -o flag overwrites installed component files, so review local customizations first.

[2026-07-24]

Fixed

  • Image Node Pro: Fixed image selection becoming stale after surrounding document edits, prevented native caret navigation from entering hidden captions, and hardened repeated clicks, caption lifecycle, deletion, resizing, and read-only transitions across Chromium, Firefox, and WebKit.
  • Image Node Pro HTML: Preserved configured HTML attributes for bare and captioned images, normalized valid image dimensions, applied allowBase64 consistently, and prevented multi-image figures from being collapsed into a single image node.
  • Image floating toolbar: Refreshed selection-driven visibility after image clicks so the toolbar reliably reopens for an already-selected image.

Changed

  • Image Node Pro keyboard and undo behavior: Added predictable arrow navigation, caption boundary handling for Enter, Backspace, Delete, and Escape, progressive select-all, and separate undo boundaries for image deletion and resizing.
  • Toolbar keyboard navigation: Added horizontal roving focus, wrapped arrow navigation, first/last navigation with Home and End, disabled-control tracking, and normal Tab and Shift+Tab exit behavior.
  • Delete Node Button: Preserved extension-owned Backspace handling, prevented browser behavior only after a successful shared deletion, and isolated node deletion into its own undo step.

Existing installations can update the complete set of copied source files with npx @tiptap/cli@latest add image-node-pro floating-element toolbar -o. The -o flag overwrites installed component files, so review local customizations first.

[2026-07-09]

Added

  • Table node: Pages extension support. When the Pages extension is registered on the editor, tables now split across page boundaries row by row — preserving column widths, merged cells, and borders — with rowspan cells continuing across breaks and oversized cells becoming scrollable so pagination stays stable. Requires no configuration, and behavior is unchanged without Pages.

Fixed

  • Table selection overlay: The cellMenu prop must now be a stable component reference. Passing an inline arrow gave the menu a new component identity on every render, remounting its subtree and potentially throwing "Maximum update depth exceeded". Define the cell menu at module scope (or memoize it); the overlay and cell menu also guard against redundant menu open-state updates.
  • Editor lifecycle: Hardened the comment, text-align, and undo-redo components and tiptap-utils against destroyed or unmounted editors — added isDestroyed/mounted-view checks and error handling around editor.can() to prevent exceptions during teardown.

[2026-03-26]

Added

  • TOC: Added support to find the closest scrollable parent element for the Table of Contents (TOC) node preview.

Changed

  • TOC: Improve heading organization in the Table of Contents (TOC) for better performance and readability.

[2026-03-25]

Added

  • Indentation support: Added indent and outdent commands to the editor, allowing users to adjust block indentation levels. Currently this feature only available for Notion-like template.

[2026-02-19]

Changed

  • AI menu: Added anchorToSelection prop to <AiMenu> for anchoring the menu to the current text selection at full editor width.

[2026-02-10]

Fixed

  • Toolbar buttons: Fixed button visibility logic where buttons were incorrectly hidden when hideWhenUnavailable was not set. Buttons now always show by default and only hide when hideWhenUnavailable={true} and the required extension/schema is unavailable.
  • Link popover: Added error handling around setMark("link") to prevent uncaught exceptions in certain editor states.
  • Turn-into dropdown: Added missing !editor.isEditable guard to prevent showing the dropdown on read-only editors.
  • Heading node: Fixed margin-top removal to properly target first headings and headings preceded by ProseMirror widgets (e.g., decorations, node views).
  • Color highlight: Switched from toggleMark("highlight", { color }) to the proper toggleHighlight({ color }) command for correct toggle behavior.

Changed

  • CLI auth check on -c flag: The CLI now verifies .npmrc authentication when using the -c (component) flag, preventing silent failures for unauthenticated users.
  • Auto-generate scss.d.ts: SCSS type declarations are now automatically created whenever a component with SCSS files is installed via the CLI.
  • Nested list styles: Added style cycling for deeply nested lists (up to 8 levels):
    • Ordered lists: decimal → lower-alpha → lower-roman → decimal → ...
    • Unordered lists: disc → circle → square → disc → ...
  • Color highlight useColorValue prop: Added support for using raw hex color values instead of CSS variables, enabling highlight compatibility in environments where CSS custom properties aren't available.
  • Heading dropdown menu: Added support for custom children prop, allowing consumers to override the default icon + chevron rendering.
  • Inline images: Images inside paragraphs now display as inline-block.

Removed

  • Comment page demo: Removed the /comments and /preview/templates/comments routes and all associated components.

[2026-02-03]

  • Update CLI version to 3.18.0. Fix -p flag for custom paths.

[2026-01-15]

Fixed

  • Prevent block “turn into” actions from running when multiple blocks are selected, ensuring node toggles only apply to a single selected block. update existing code by running pnpm dlx @tiptap/cli@latest add heading-button blockquote-button list-button text-button code-block-button -o

[2026-01-09]

Added

  • Table of Contents (TOC) feature with node preview
  • Update CLI version to 3.11.1

[2026-01-05]

Added

  • Add resetTextSelectionOnClose prop to FloatingElement to add an option to preserve the current editor selection when the editor loses focus

[2025-12-15]

Fixed

  • Remove stopEvent from image to fix copy and paste an inline image

[2025-12-04]

Added

  • Merge adjacent lists on backspace to prevent stuck vertical spacing

Legend

  • Added: New features
  • Changed: Changes in existing functionality
  • Deprecated: Soon-to-be removed features
  • Removed: Removed features
  • Fixed: Bug fixes
  • Security: Security fixes and improvements