---
canonical_url: "https://tiptap-docs.lin52025i.qzz.io/ui-components/getting-started/changelog"
---

# 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
