@tiptap/react Changelog

Changelog for @tiptap/react

3.22.3

Patch Changes

  • Updated dependencies [cb28e7b]
    • @tiptap/core@3.22.3
    • @tiptap/pm@3.22.3

3.22.2

Patch Changes

  • 8ab8bee: Fixed an error where flushSync() would run in <EditorContent /> lifecycle
  • Updated dependencies [f1d504c]
  • Updated dependencies [404c683]
    • @tiptap/core@3.22.2
    • @tiptap/pm@3.22.2

3.22.1

Patch Changes

  • ee03ac0: Fix NodeView not re-rendering when a node's position changes without content or decoration changes (e.g. when a sibling node is moved within the same parent)
  • 6f3b9fc: Prevent React node views from crashing during deferred selection updates when ProseMirror has already detached the node view position lookup.
  • Updated dependencies [ee03ac0]
  • Updated dependencies [b88f9ed]
    • @tiptap/core@3.22.1
    • @tiptap/pm@3.22.1

3.22.0

Patch Changes

  • Updated dependencies [912a49b]
  • Updated dependencies [7d4fb9a]
  • Updated dependencies [0c1c112]
  • Updated dependencies [0c1c112]
  • Updated dependencies [f99bdc2]
    • @tiptap/core@3.22.0
    • @tiptap/pm@3.22.0

3.21.0

Patch Changes

  • @tiptap/core@3.21.0
  • @tiptap/pm@3.21.0

3.20.6

Patch Changes

  • @tiptap/core@3.20.6
  • @tiptap/pm@3.20.6

3.20.5

Patch Changes

  • @tiptap/core@3.20.5
  • @tiptap/pm@3.20.5

3.20.4

Patch Changes

  • Updated dependencies [0bcf3c2]
    • @tiptap/core@3.20.4
    • @tiptap/pm@3.20.4

3.20.3

Patch Changes

  • f4f6be2: Forward BubbleMenu and FloatingMenu HTML props to the actual menu element so attributes like className, style, data-*, and event handlers bind to the positioned menu container.
  • f4f6be2: Generate a stable per-instance menu plugin key automatically when pluginKey is omitted, so multiple BubbleMenu or FloatingMenu components can be mounted without colliding.
  • Updated dependencies [c94fac4]
  • Updated dependencies [6b9ea92]
    • @tiptap/core@3.20.3
    • @tiptap/pm@3.20.3

3.20.2

Patch Changes

  • Updated dependencies [269823d]
    • @tiptap/core@3.20.2
    • @tiptap/pm@3.20.2

3.20.1

Patch Changes

  • Updated dependencies [25f57e4]
    • @tiptap/core@3.20.1
    • @tiptap/pm@3.20.1

3.20.0

Minor Changes

  • 0f28d9c: Moved BubbleMenu and FloatingMenu to separate @tiptap/react/menus entrypoint to keep floating-ui optional
  • 0f28d9c: Simplified Tiptap component API with guaranteed non-null editor instance from useTiptap hook

Patch Changes

  • 253ca1c: Fix BubbleMenu/FloatingMenu to use pluginKey as the transaction meta key so that multiple instances can be updated independently without affecting each other
  • Updated dependencies [4b731e2]
  • Updated dependencies [98546ac]
  • Updated dependencies [57624a1]
  • Updated dependencies [76ce47d]
    • @tiptap/core@3.20.0
    • @tiptap/pm@3.20.0

3.19.0

Minor Changes

  • a1da626: Moved BubbleMenu and FloatingMenu to separate @tiptap/react/menus entrypoint to keep floating-ui optional
  • a1da626: Simplified Tiptap component API with guaranteed non-null editor instance from useTiptap hook

Patch Changes

  • @tiptap/core@3.19.0
  • @tiptap/pm@3.19.0

3.18.0

Minor Changes

  • 328aedb: Introduce a new, optional React integration that provides a declarative <Tiptap /> component for setting up editors in React apps.

    Summary

    • Add a new, ergonomic way to initialize and use Tiptap editors in React via <Tiptap /> components. This is an additive change and does not remove or change existing APIs.

    Why this change

    • Improves ergonomics for React users by offering a component-first API that pairs well with React patterns (hooks, JSX composition and props-driven configuration).

    Migration and usage

    • The old programmatic setup remains supported for this major version — nothing breaks. We encourage consumers to try the new <Tiptap /> component and migrate when convenient.

    Example

    import { Tiptap, useEditor } from '@tiptap/react'
    
    function MyEditor() {
      const editor = useEditor({ extensions: [StarterKit], content: '<h1>Hello from Tiptap</h1>' })
    
      return (
        <Tiptap instance={editor}>
          <Tiptap.Content />
          <Tiptap.BubbleMenu>My Bubble Menu</Tiptap.BubbleMenu>
          <Tiptap.FloatingMenu>My Floating Menu</Tiptap.FloatingMenu>
          <MenuBar /> {/* MenuBar can use the new `useTiptap` hook to read the editor instance from context */}
        </Tiptap>
      )
    }

    Deprecation plan

    • The old imperative setup will remain fully backward-compatible for this major release. We plan to deprecate (and remove) the legacy setup in the next major version — a deprecation notice and migration guide will be published ahead of that change.

Patch Changes

  • 3e446fb: Fix BubbleMenu and FloatingMenu props not updating after initialization
  • feac5c8: Fixed extension storage not updating in React and Vue node views
    • @tiptap/core@3.18.0
    • @tiptap/pm@3.18.0

3.17.1

Patch Changes

  • Updated dependencies [aa9709e]
  • Updated dependencies [b46e66a]
    • @tiptap/core@3.17.1
    • @tiptap/pm@3.17.1

3.17.0

Patch Changes

  • Updated dependencies [eecf1c9]
    • @tiptap/core@3.17.0
    • @tiptap/pm@3.17.0

3.16.0

Minor Changes

  • 9516ee0: Add updateEvent support for FloatingMenu to allow programmatic position updates via setMeta('floatingMenu', 'updatePosition')

Patch Changes

  • @tiptap/core@3.16.0
  • @tiptap/pm@3.16.0

3.15.3

Patch Changes

  • Updated dependencies [8f86f06]
    • @tiptap/core@3.15.3
    • @tiptap/pm@3.15.3

3.15.2

Patch Changes

  • d8ca9bf: Fix race conditions in ReactRenderer causing destroyed renderers to be re-added in Strict Mode
    • @tiptap/core@3.15.2
    • @tiptap/pm@3.15.2

3.15.1

Patch Changes

  • @tiptap/core@3.15.1
  • @tiptap/pm@3.15.1

3.15.0

Patch Changes

  • Updated dependencies [ac8361c]
    • @tiptap/core@3.15.0
    • @tiptap/pm@3.15.0

3.14.0

Patch Changes

  • 383145e: Append all children of editors parent node to element

    Fixes a regression introduced by #6972, that resulted in elements that got appended to the editors parent node staying detached. E.g. the drag handle plugin is affected by this regression.

    • @tiptap/core@3.14.0
    • @tiptap/pm@3.14.0

3.13.0

Patch Changes

  • Updated dependencies [526365a]
  • Updated dependencies [e3b4f68]
    • @tiptap/core@3.13.0
    • @tiptap/pm@3.13.0

3.12.1

Patch Changes

  • @tiptap/core@3.12.1
  • @tiptap/pm@3.12.1

3.12.0

Minor Changes

  • 5db9bc1: Replaced unmaintained fast-deep-equal dependency with maintained fast-equals

Patch Changes

  • 41601d1: Fix a bug where React node views could receive invalid positions from this.getPos() when ProseMirror and React render cycles got out of sync, which could cause errors during updates.
  • Updated dependencies [f232c5a]
    • @tiptap/core@3.12.0
    • @tiptap/pm@3.12.0

3.11.1

Patch Changes

  • Updated dependencies [d0c4264]
    • @tiptap/core@3.11.1
    • @tiptap/pm@3.11.1

3.11.0

Patch Changes

  • Updated dependencies [541c93c]
    • @tiptap/core@3.11.0
    • @tiptap/pm@3.11.0

3.10.8

Patch Changes

  • Updated dependencies [8375241]
  • Updated dependencies [b7ead7c]
  • Updated dependencies [95d3e80]
  • Updated dependencies [fd479bd]
    • @tiptap/core@3.10.8
    • @tiptap/pm@3.10.8

3.10.7

Patch Changes

  • @tiptap/core@3.10.7
  • @tiptap/pm@3.10.7

3.10.6

Patch Changes

  • @tiptap/core@3.10.6
  • @tiptap/pm@3.10.6

3.10.5

Patch Changes

  • Updated dependencies [92fae18]
    • @tiptap/core@3.10.5
    • @tiptap/pm@3.10.5

3.10.4

Patch Changes

  • Updated dependencies [64561c4]
    • @tiptap/core@3.10.4
    • @tiptap/pm@3.10.4

3.10.3

Patch Changes

  • @tiptap/core@3.10.3
  • @tiptap/pm@3.10.3

3.10.2

Patch Changes

  • @tiptap/core@3.10.2
  • @tiptap/pm@3.10.2

3.10.1

Patch Changes

  • Updated dependencies [3564e7c]
    • @tiptap/core@3.10.1
    • @tiptap/pm@3.10.1

3.10.0

Patch Changes

  • Updated dependencies [4aa9f57]
  • Updated dependencies [4aa9f57]
    • @tiptap/core@3.10.0
    • @tiptap/pm@3.10.0

3.9.1

Patch Changes

  • @tiptap/core@3.9.1
  • @tiptap/pm@3.9.1

3.9.0

Patch Changes

  • f0b3552: Prevent Bubble Menu plugin from re-loading every time the BubbleMenu component re-renders. Reverts a regression introduced in v3.6.3, in PR #7028.
  • Updated dependencies [bbb8e16]
    • @tiptap/core@3.9.0
    • @tiptap/pm@3.9.0

3.8.0

Patch Changes

  • f3770af: Prevent Bubble Menu plugin from re-loading every time the BubbleMenu component re-renders. Reverts a regression introduced in v3.6.3, in PR #7028.
    • @tiptap/core@3.8.0
    • @tiptap/pm@3.8.0

3.7.2

Patch Changes

  • @tiptap/core@3.7.2
  • @tiptap/pm@3.7.2

3.7.1

Patch Changes

  • @tiptap/core@3.7.1
  • @tiptap/pm@3.7.1

3.7.0

Patch Changes

  • Updated dependencies [35645d9]
  • Updated dependencies [35645d9]
  • Updated dependencies [35645d9]
    • @tiptap/core@3.7.0
    • @tiptap/pm@3.7.0

3.6.7

Patch Changes

  • @tiptap/core@3.6.7
  • @tiptap/pm@3.6.7

3.6.6

Patch Changes

  • @tiptap/core@3.6.6
  • @tiptap/pm@3.6.6

3.6.5

Patch Changes

  • Updated dependencies [1e4caea]
    • @tiptap/core@3.6.5
    • @tiptap/pm@3.6.5

3.6.4

Patch Changes

  • @tiptap/core@3.6.4
  • @tiptap/pm@3.6.4

3.6.3

Patch Changes

  • 48846f2: Updated the React FloatingMenu plugin hook dependencies to match the BubbleMenu behavior. The FloatingMenu will now respond to changes in appendTo, pluginKey, shouldShow, and options.
  • e0be819: Resolved an issue where the React BubbleMenu did not update when FloatingUI option props changed after initial mount. The BubbleMenu now correctly responds to updated option props.
  • caec80e: Improved the BubbleMenu's usability by ensuring the appendTo prop passed to the React BubbleMenu component is now correctly forwarded to the underlying bubble menu plugin. This fix allows developers to customize where the BubbleMenu is attached in the DOM, helping resolve issues with positioning and portal setups in React apps.
  • Updated dependencies [67f7b4a]
    • @tiptap/core@3.6.3
    • @tiptap/pm@3.6.3

3.6.2

Patch Changes

  • @tiptap/core@3.6.2
  • @tiptap/pm@3.6.2

3.6.1

Patch Changes

  • 6af23ff: Hotfix: Fix a crash in the React package that could occur during mounting/unmounting when the editor wasn't fully initialized. This prevents a runtime error and improves stability.
    • @tiptap/core@3.6.1
    • @tiptap/pm@3.6.1

3.6.0

Patch Changes

  • Updated dependencies [c0190bd]
    • @tiptap/core@3.6.0
    • @tiptap/pm@3.6.0

3.5.3

Patch Changes

  • @tiptap/core@3.5.3
  • @tiptap/pm@3.5.3

3.5.2

Patch Changes

  • ea9ac95: Tiptap will now correctly insert a React MarkViews' content into the correct element within MarkViewContent component
    • @tiptap/core@3.5.2
    • @tiptap/pm@3.5.2

3.5.1

Patch Changes

  • f80c848: Add appendTo support to FloatingMenu and pass it through in React/Vue 2/Vue 3 for both BubbleMenu and FloatingMenu to allow fixing clipping/z-index issues.
    • @tiptap/core@3.5.1
    • @tiptap/pm@3.5.1

3.5.0

Patch Changes

  • @tiptap/core@3.5.0
  • @tiptap/pm@3.5.0

3.4.6

Patch Changes

  • Updated dependencies [968016f]
    • @tiptap/core@3.4.6
    • @tiptap/pm@3.4.6

3.4.5

Patch Changes

  • Updated dependencies [0226d42]
  • Updated dependencies [37af83b]
  • Updated dependencies [f598ac7]
    • @tiptap/core@3.4.5
    • @tiptap/pm@3.4.5

3.4.4

Patch Changes

  • Updated dependencies [00cf1d7]
    • @tiptap/core@3.4.4
    • @tiptap/pm@3.4.4

3.4.3

Patch Changes

  • 915ed65: Add custom positioning support to the BubbleMenu.

    This change adds an opt-in API that allows consumers to fully control how the BubbleMenu is positioned. Instead of relying solely on the internal placement logic, you can now provide a function (for example getPosition) that receives the relevant context (editor instance and menu DOM element) and returns the desired coordinates or positioning style.

  • Updated dependencies [1ea8906]

    • @tiptap/core@3.4.3
    • @tiptap/pm@3.4.3

3.4.2

Patch Changes

  • @tiptap/core@3.4.2
  • @tiptap/pm@3.4.2

3.4.1

Patch Changes

  • 4dd8d58: fix: @types/react version mismatch
    • @tiptap/core@3.4.1
    • @tiptap/pm@3.4.1

3.4.0

Patch Changes

  • Updated dependencies [895c73f]
  • Updated dependencies [ad51daa]
    • @tiptap/core@3.4.0
    • @tiptap/pm@3.4.0

3.3.1

Patch Changes

  • @tiptap/core@3.3.1
  • @tiptap/pm@3.3.1

3.3.0

Patch Changes

  • 5423726: Ensure ReactRenderer.destroy() removes the renderer DOM element when present.

    • When consumers append a ReactRenderer's .element to the DOM (for example many demos append it to document.body), previously calling destroy() removed the portal renderer but left the DOM node in place which could lead to accumulating .react-renderer elements.
    • destroy() now also removes the element from its parent node if present, preventing leaked DOM nodes / React roots.
  • Updated dependencies [5423726]

  • Updated dependencies [5423726]

    • @tiptap/core@3.3.0
    • @tiptap/pm@3.3.0

3.2.2

Patch Changes

  • @tiptap/core@3.2.2
  • @tiptap/pm@3.2.2

3.2.1

Patch Changes

  • Updated dependencies [6a2873f]
    • @tiptap/core@3.2.1
    • @tiptap/pm@3.2.1

3.2.0

Patch Changes

  • Updated dependencies [5056e3e]
    • @tiptap/core@3.2.0
    • @tiptap/pm@3.2.0

3.1.0

Patch Changes

  • @tiptap/core@3.1.0
  • @tiptap/pm@3.1.0

3.0.9

Patch Changes

  • @tiptap/core@3.0.9
  • @tiptap/pm@3.0.9

3.0.8

Patch Changes

  • @tiptap/core@3.0.8
  • @tiptap/pm@3.0.8

3.0.7

Patch Changes

  • @tiptap/core@3.0.7
  • @tiptap/pm@3.0.7

3.0.6

Patch Changes

  • Updated dependencies [2e71d05]
    • @tiptap/core@3.0.6
    • @tiptap/pm@3.0.6

3.0.5

Patch Changes

  • @tiptap/core@3.0.5
  • @tiptap/pm@3.0.5

3.0.4

Patch Changes

  • Updated dependencies [7ed03fa]
    • @tiptap/core@3.0.4
    • @tiptap/pm@3.0.4

3.0.3

Patch Changes

  • Updated dependencies [75cabde]
    • @tiptap/core@3.0.3
    • @tiptap/pm@3.0.3

3.0.2

Patch Changes

  • @tiptap/core@3.0.2
  • @tiptap/pm@3.0.2

3.0.1

Major Changes

  • a92f4a6: We are now building packages with tsup which does not support UMD builds, please repackage if you require UMD builds

  • 7eaa34d: Removed tippy.js and replaced it with Floating UI - a newer, more lightweight and customizable floating element library.

    This change is breaking existing menu implementations and will require a manual migration.

    Affected packages:

    • @tiptap/extension-floating-menu
    • @tiptap/extension-bubble-menu
    • @tiptap/extension-mention
    • @tiptap/suggestion
    • @tiptap/react
    • @tiptap/vue-2
    • @tiptap/vue-3

    Make sure to remove tippyOptions from the FloatingMenu and BubbleMenu components, and replace them with the new options object. Check our documentation to see how to migrate your existing menu implementations.

    You'll also need to install @floating-ui/dom as a peer dependency to your project like this:

    npm install @floating-ui/dom@^1.6.0

    The new options object is compatible with all components that use these extensions.

Minor Changes

  • 0e3207f: Add support for markviews, which allow you to render custom views for marks within the editor. This is useful for rendering custom UI for marks, like a color picker for a text color mark or a link editor for a link mark.

    Here is a plain JS markview example:

    Mark.create({
      // Other options...
      addMarkView() {
        return ({ mark, HTMLAttributes }) => {
          const dom = document.createElement('b')
          const contentDOM = document.createElement('span')
    
          dom.appendChild(contentDOM)
    
          return {
            dom,
            contentDOM,
          }
        }
      },
    })

    React binding

    To use a React component for a markview, you can use the @tiptap/react package:

    import { Mark } from '@tiptap/core'
    import { ReactMarkViewRenderer } from '@tiptap/react'
    
    import Component from './Component.jsx'
    
    export default Mark.create({
      name: 'reactComponent',
    
      parseHTML() {
        return [
          {
            tag: 'react-component',
          },
        ]
      },
    
      renderHTML({ HTMLAttributes }) {
        return ['react-component', HTMLAttributes]
      },
    
      addMarkView() {
        return ReactMarkViewRenderer(Component)
      },
    })

    And here is an example of a React component:

    import { MarkViewContent, MarkViewRendererProps } from '@tiptap/react'
    import React from 'react'
    
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    export default (props: MarkViewRendererProps) => {
      const [count, setCount] = React.useState(0)
    
      return (
        <span className="content" data-test-id="mark-view">
          <MarkViewContent />
          <label contentEditable={false}>
            React component:
            <button
              onClick={() => {
                setCount(count + 1)
              }}
            >
              This button has been clicked {count} times.
            </button>
          </label>
        </span>
      )
    }

    Vue 3 binding

    To use a Vue 3 component for a markview, you can use the @tiptap/vue-3 package:

    import { Mark } from '@tiptap/core'
    import { VueMarkViewRenderer } from '@tiptap/vue-3'
    
    import Component from './Component.vue'
    
    export default Mark.create({
      name: 'vueComponent',
    
      parseHTML() {
        return [
          {
            tag: 'vue-component',
          },
        ]
      },
    
      renderHTML({ HTMLAttributes }) {
        return ['vue-component', HTMLAttributes]
      },
    
      addMarkView() {
        return VueMarkViewRenderer(Component)
      },
    })

    And here is an example of a Vue 3 component:

    <template>
      <span className="content" data-test-id="mark-view">
        <mark-view-content />
        <label contenteditable="false"
          >Vue Component::
          <button @click="increase" class="primary">This button has been clicked {{ count }} times.</button>
        </label>
      </span>
    </template>
    
    <script>
    import { MarkViewContent, markViewProps } from '@tiptap/vue-3'
    export default {
      components: {
        MarkViewContent,
      },
      data() {
        return {
          count: 0,
        }
      },
      props: markViewProps,
      methods: {
        increase() {
          this.count += 1
        },
      },
    }
    </script>
  • 08593a2: Throw an error in development mode if immediatelyRender is not set in SSR mode

  • ef12b32: Added support for React 19 ref in props

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

Patch Changes

  • baee94b: Added full import path for external storage sync shim
  • 1b4c82b: We are now using pnpm package aliases for versions to enable better version pinning for the monorepository
  • 89bd9c7: Enforce type imports so that the bundler ignores TypeScript type imports when generating the index.js file of the dist directory
  • 00693b8: Fixed a bug where table cell selections would not position the bubble menu accordingly
  • f9a33ae: Fixed a bug that incorrectly added ref props when a component can't accept them (for example when React 19 is not used)
  • 73d1888: Fixed a bug where the global resize handler of the BubbleMenu plugin would not be unregistered on destroy
  • ecb0dee: Fixes an issue where ref props will be kept on non-supported react components
  • 2ea0475: Allow setting HTML tags other than for "as" in MarkViewContent
  • 8c69002: Synced beta with stable features
  • 0f14cc5: Added missing onShow, onUpdate, onHide and onDestroy options
  • de0504e: attach the contentDOM to the correct position inside a react node view
  • 5ba480b: Added updateAttributes to MarkView and its renderers to allow updating MarkView attributes
  • Updated dependencies [1b4c82b]
  • Updated dependencies [1e91f9b]
  • Updated dependencies [a92f4a6]
  • Updated dependencies [8de8e13]
  • Updated dependencies [20f68f6]
  • Updated dependencies [5e957e5]
  • Updated dependencies [89bd9c7]
  • Updated dependencies [d0fda30]
  • Updated dependencies [0e3207f]
  • Updated dependencies [37913d5]
  • Updated dependencies [28c5418]
  • Updated dependencies [32958d6]
  • Updated dependencies [12bb31a]
  • Updated dependencies [9f207a6]
  • Updated dependencies [412e1bd]
  • Updated dependencies [062afaf]
  • Updated dependencies [ff8eed6]
  • Updated dependencies [704f462]
  • Updated dependencies [95b8c71]
  • Updated dependencies [8c69002]
  • Updated dependencies [664834f]
  • Updated dependencies [ac897e7]
  • Updated dependencies [087d114]
  • Updated dependencies [32958d6]
  • Updated dependencies [fc17b21]
  • Updated dependencies [62b0877]
  • Updated dependencies [e20006b]
  • Updated dependencies [5ba480b]
  • Updated dependencies [d6c7558]
  • Updated dependencies [062afaf]
  • Updated dependencies [9ceeab4]
  • Updated dependencies [32958d6]
  • Updated dependencies [bf835b0]
  • Updated dependencies [4e2f6d8]
  • Updated dependencies [32958d6]
    • @tiptap/core@3.0.1
    • @tiptap/pm@3.0.1

3.0.0-beta.30

Patch Changes

  • @tiptap/core@3.0.0-beta.30
  • @tiptap/pm@3.0.0-beta.30

3.0.0-beta.29

Patch Changes

  • @tiptap/core@3.0.0-beta.29
  • @tiptap/pm@3.0.0-beta.29

3.0.0-beta.28

Patch Changes

  • de0504e: attach the contentDOM to the correct position inside a react node view
    • @tiptap/core@3.0.0-beta.28
    • @tiptap/pm@3.0.0-beta.28

3.0.0-beta.27

Patch Changes

  • Updated dependencies [412e1bd]
    • @tiptap/core@3.0.0-beta.27
    • @tiptap/pm@3.0.0-beta.27

3.0.0-beta.26

Patch Changes

  • baee94b: Added full import path for external storage sync shim
  • 5ba480b: Added updateAttributes to MarkView and its renderers to allow updating MarkView attributes
  • Updated dependencies [5ba480b]
    • @tiptap/core@3.0.0-beta.26
    • @tiptap/pm@3.0.0-beta.26

3.0.0-beta.25

Patch Changes

  • Updated dependencies [4e2f6d8]
    • @tiptap/core@3.0.0-beta.25
    • @tiptap/pm@3.0.0-beta.25

3.0.0-beta.24

Minor Changes

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

Patch Changes

  • @tiptap/core@3.0.0-beta.24
  • @tiptap/pm@3.0.0-beta.24

3.0.0-beta.23

Patch Changes

  • @tiptap/core@3.0.0-beta.23
  • @tiptap/pm@3.0.0-beta.23

3.0.0-beta.22

Patch Changes

  • @tiptap/core@3.0.0-beta.22
  • @tiptap/pm@3.0.0-beta.22

3.0.0-beta.21

Patch Changes

  • Updated dependencies [813674c]
  • Updated dependencies [fc17b21]
    • @tiptap/core@3.0.0-beta.21
    • @tiptap/pm@3.0.0-beta.21

3.0.0-beta.20

Minor Changes

  • 8719e13: Removed flushSync on NodeView render which caused performance regressions, bugs with unused NodeViews still being reconciled for PMViewDesc checks and more

Patch Changes

  • @tiptap/core@3.0.0-beta.20
  • @tiptap/pm@3.0.0-beta.20

3.0.0-beta.19

Patch Changes

  • Updated dependencies [9ceeab4]
    • @tiptap/core@3.0.0-beta.19
    • @tiptap/pm@3.0.0-beta.19

3.0.0-beta.18

Patch Changes

  • @tiptap/core@3.0.0-beta.18
  • @tiptap/pm@3.0.0-beta.18

3.0.0-beta.17

Patch Changes

  • Updated dependencies [e20006b]
    • @tiptap/core@3.0.0-beta.17
    • @tiptap/pm@3.0.0-beta.17

3.0.0-beta.16

Patch Changes

  • 73d1888: Fixed a bug where the global resize handler of the BubbleMenu plugin would not be unregistered on destroy
  • Updated dependencies [ac897e7]
  • Updated dependencies [bf835b0]
    • @tiptap/core@3.0.0-beta.16
    • @tiptap/pm@3.0.0-beta.16

3.0.0-beta.15

Patch Changes

  • Updated dependencies [087d114]
    • @tiptap/core@3.0.0-beta.15
    • @tiptap/pm@3.0.0-beta.15

3.0.0-beta.14

Patch Changes

  • Updated dependencies [95b8c71]
    • @tiptap/core@3.0.0-beta.14
    • @tiptap/pm@3.0.0-beta.14

3.0.0-beta.13

Patch Changes

  • @tiptap/core@3.0.0-beta.13
  • @tiptap/pm@3.0.0-beta.13

3.0.0-beta.12

Patch Changes

  • 00693b8: Fixed a bug where table cell selections would not position the bubble menu accordingly
    • @tiptap/core@3.0.0-beta.12
    • @tiptap/pm@3.0.0-beta.12

3.0.0-beta.11

Patch Changes

  • 0f14cc5: Added missing onShow, onUpdate, onHide and onDestroy options
    • @tiptap/core@3.0.0-beta.11
    • @tiptap/pm@3.0.0-beta.11

3.0.0-beta.10

Patch Changes

  • @tiptap/core@3.0.0-beta.10
  • @tiptap/pm@3.0.0-beta.10

3.0.0-beta.9

Patch Changes

  • ecb0dee: Fixes an issue where ref props will be kept on non-supported react components
    • @tiptap/core@3.0.0-beta.9
    • @tiptap/pm@3.0.0-beta.9

3.0.0-beta.8

Patch Changes

  • f9a33ae: Fixed a bug that incorrectly added ref props when a component can't accept them (for example when React 19 is not used)
    • @tiptap/core@3.0.0-beta.8
    • @tiptap/pm@3.0.0-beta.8

3.0.0-beta.7

Patch Changes

  • Updated dependencies [d0fda30]
    • @tiptap/core@3.0.0-beta.7
    • @tiptap/pm@3.0.0-beta.7

3.0.0-beta.6

Minor Changes

  • ef12b32: Added support for React 19 ref in props

Patch Changes

  • 2ea0475: Allow setting HTML tags other than for "as" in MarkViewContent
    • @tiptap/core@3.0.0-beta.6
    • @tiptap/pm@3.0.0-beta.6

3.0.0-beta.5

Patch Changes

  • 8c69002: Synced beta with stable features
  • Updated dependencies [8c69002]
  • Updated dependencies [62b0877]
    • @tiptap/core@3.0.0-beta.5
    • @tiptap/pm@3.0.0-beta.5

3.0.0-beta.4

Patch Changes

  • Updated dependencies [5e957e5]
  • Updated dependencies [9f207a6]
    • @tiptap/core@3.0.0-beta.4
    • @tiptap/pm@3.0.0-beta.4

3.0.0-beta.3

Patch Changes

  • 1b4c82b: We are now using pnpm package aliases for versions to enable better version pinning for the monorepository
  • Updated dependencies [1b4c82b]
    • @tiptap/core@3.0.0-beta.3
    • @tiptap/pm@3.0.0-beta.3

3.0.0-beta.2

Patch Changes

  • 3aa670a: Fixed a bug in the EditorContent component that caused a crash in Firefox based browsers because of the editor view not being available when an uninitialized editor is unmounted (for example via Strict mode)

3.0.0-beta.1

3.0.0-beta.0

3.0.0-next.8

3.0.0-next.7

Patch Changes

  • 89bd9c7: Enforce type imports so that the bundler ignores TypeScript type imports when generating the index.js file of the dist directory

3.0.0-next.6

Major Changes

  • a92f4a6: We are now building packages with tsup which does not support UMD builds, please repackage if you require UMD builds

  • 7eaa34d: Removed tippy.js and replaced it with Floating UI - a newer, more lightweight and customizable floating element library.

    This change is breaking existing menu implementations and will require a manual migration.

    Affected packages:

    • @tiptap/extension-floating-menu
    • @tiptap/extension-bubble-menu
    • @tiptap/extension-mention
    • @tiptap/suggestion
    • @tiptap/react
    • @tiptap/vue-2
    • @tiptap/vue-3

    Make sure to remove tippyOptions from the FloatingMenu and BubbleMenu components, and replace them with the new options object. Check our documentation to see how to migrate your existing menu implementations.

    You'll also need to install @floating-ui/dom as a peer dependency to your project like this:

    npm install @floating-ui/dom@^1.6.0

    The new options object is compatible with all components that use these extensions.

Minor Changes

  • 0e3207f: Add support for markviews, which allow you to render custom views for marks within the editor. This is useful for rendering custom UI for marks, like a color picker for a text color mark or a link editor for a link mark.

    Here is a plain JS markview example:

    Mark.create({
      // Other options...
      addMarkView() {
        return ({ mark, HTMLAttributes }) => {
          const dom = document.createElement('b')
          const contentDOM = document.createElement('span')
    
          dom.appendChild(contentDOM)
    
          return {
            dom,
            contentDOM,
          }
        }
      },
    })

    React binding

    To use a React component for a markview, you can use the @tiptap/react package:

    import { Mark } from '@tiptap/core'
    import { ReactMarkViewRenderer } from '@tiptap/react'
    
    import Component from './Component.jsx'
    
    export default Mark.create({
      name: 'reactComponent',
    
      parseHTML() {
        return [
          {
            tag: 'react-component',
          },
        ]
      },
    
      renderHTML({ HTMLAttributes }) {
        return ['react-component', HTMLAttributes]
      },
    
      addMarkView() {
        return ReactMarkViewRenderer(Component)
      },
    })

    And here is an example of a React component:

    import { MarkViewContent, MarkViewRendererProps } from '@tiptap/react'
    import React from 'react'
    
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    export default (props: MarkViewRendererProps) => {
      const [count, setCount] = React.useState(0)
    
      return (
        <span className="content" data-test-id="mark-view">
          <MarkViewContent />
          <label contentEditable={false}>
            React component:
            <button
              onClick={() => {
                setCount(count + 1)
              }}
            >
              This button has been clicked {count} times.
            </button>
          </label>
        </span>
      )
    }

    Vue 3 binding

    To use a Vue 3 component for a markview, you can use the @tiptap/vue-3 package:

    import { Mark } from '@tiptap/core'
    import { VueMarkViewRenderer } from '@tiptap/vue-3'
    
    import Component from './Component.vue'
    
    export default Mark.create({
      name: 'vueComponent',
    
      parseHTML() {
        return [
          {
            tag: 'vue-component',
          },
        ]
      },
    
      renderHTML({ HTMLAttributes }) {
        return ['vue-component', HTMLAttributes]
      },
    
      addMarkView() {
        return VueMarkViewRenderer(Component)
      },
    })

    And here is an example of a Vue 3 component:

    <template>
      <span className="content" data-test-id="mark-view">
        <mark-view-content />
        <label contenteditable="false"
          >Vue Component::
          <button @click="increase" class="primary">This button has been clicked {{ count }} times.</button>
        </label>
      </span>
    </template>
    
    <script>
    import { MarkViewContent, markViewProps } from '@tiptap/vue-3'
    export default {
      components: {
        MarkViewContent,
      },
      data() {
        return {
          count: 0,
        }
      },
      props: markViewProps,
      methods: {
        increase() {
          this.count += 1
        },
      },
    }
    </script>
  • 08593a2: Throw an error in development mode if immediatelyRender is not set in SSR mode

3.0.0-next.5

Minor Changes

  • 0e3207f: Add support for markviews, which allow you to render custom views for marks within the editor. This is useful for rendering custom UI for marks, like a color picker for a text color mark or a link editor for a link mark.

    Here is a plain JS markview example:

    Mark.create({
      // Other options...
      addMarkView() {
        return ({ mark, HTMLAttributes }) => {
          const dom = document.createElement('b')
          const contentDOM = document.createElement('span')
    
          dom.appendChild(contentDOM)
    
          return {
            dom,
            contentDOM,
          }
        }
      },
    })

    React binding

    To use a React component for a markview, you can use the @tiptap/react package:

    import { Mark } from '@tiptap/core'
    import { ReactMarkViewRenderer } from '@tiptap/react'
    
    import Component from './Component.jsx'
    
    export default Mark.create({
      name: 'reactComponent',
    
      parseHTML() {
        return [
          {
            tag: 'react-component',
          },
        ]
      },
    
      renderHTML({ HTMLAttributes }) {
        return ['react-component', HTMLAttributes]
      },
    
      addMarkView() {
        return ReactMarkViewRenderer(Component)
      },
    })

    And here is an example of a React component:

    import { MarkViewContent, MarkViewRendererProps } from '@tiptap/react'
    import React from 'react'
    
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    export default (props: MarkViewRendererProps) => {
      const [count, setCount] = React.useState(0)
    
      return (
        <span className="content" data-test-id="mark-view">
          <MarkViewContent />
          <label contentEditable={false}>
            React component:
            <button
              onClick={() => {
                setCount(count + 1)
              }}
            >
              This button has been clicked {count} times.
            </button>
          </label>
        </span>
      )
    }

    Vue 3 binding

    To use a Vue 3 component for a markview, you can use the @tiptap/vue-3 package:

    import { Mark } from '@tiptap/core'
    import { VueMarkViewRenderer } from '@tiptap/vue-3'
    
    import Component from './Component.vue'
    
    export default Mark.create({
      name: 'vueComponent',
    
      parseHTML() {
        return [
          {
            tag: 'vue-component',
          },
        ]
      },
    
      renderHTML({ HTMLAttributes }) {
        return ['vue-component', HTMLAttributes]
      },
    
      addMarkView() {
        return VueMarkViewRenderer(Component)
      },
    })

    And here is an example of a Vue 3 component:

    <template>
      <span className="content" data-test-id="mark-view">
        <mark-view-content />
        <label contenteditable="false"
          >Vue Component::
          <button @click="increase" class="primary">This button has been clicked {{ count }} times.</button>
        </label>
      </span>
    </template>
    
    <script>
    import { MarkViewContent, markViewProps } from '@tiptap/vue-3'
    export default {
      components: {
        MarkViewContent,
      },
      data() {
        return {
          count: 0,
        }
      },
      props: markViewProps,
      methods: {
        increase() {
          this.count += 1
        },
      },
    }
    </script>

3.0.0-next.4

3.0.0-next.3

Patch Changes

  • @tiptap/extension-bubble-menu@3.0.0-next.3
  • @tiptap/extension-floating-menu@3.0.0-next.3

3.0.0-next.2

Patch Changes

  • Updated dependencies [d9b6ef5]
    • @tiptap/extension-floating-menu@3.0.0-next.2
    • @tiptap/extension-bubble-menu@3.0.0-next.2

3.0.0-next.1

Major Changes

  • a92f4a6: We are now building packages with tsup which does not support UMD builds, please repackage if you require UMD builds

Minor Changes

  • 08593a2: Throw an error in development mode if immediatelyRender is not set in SSR mode

Patch Changes

  • Updated dependencies [a92f4a6]
  • Updated dependencies [da76972]
    • @tiptap/extension-floating-menu@3.0.0-next.1
    • @tiptap/extension-bubble-menu@3.0.0-next.1
    • @tiptap/core@3.0.0-next.1
    • @tiptap/pm@3.0.0-next.1

3.0.0-next.0

Major Changes

  • 7eaa34d: Removed tippy.js and replaced it with Floating UI - a newer, more lightweight and customizable floating element library.

    This change is breaking existing menu implementations and will require a manual migration.

    Affected packages:

    • @tiptap/extension-floating-menu
    • @tiptap/extension-bubble-menu
    • @tiptap/extension-mention
    • @tiptap/suggestion
    • @tiptap/react
    • @tiptap/vue-2
    • @tiptap/vue-3

    Make sure to remove tippyOptions from the FloatingMenu and BubbleMenu components, and replace them with the new options object. Check our documentation to see how to migrate your existing menu implementations.

    You'll also need to install @floating-ui/dom as a peer dependency to your project like this:

    npm install @floating-ui/dom@^1.6.0

    The new options object is compatible with all components that use these extensions.

Patch Changes

  • Updated dependencies [7eaa34d]
  • Updated dependencies [0ec0af6]
    • @tiptap/extension-floating-menu@3.0.0-next.0
    • @tiptap/extension-bubble-menu@3.0.0-next.0
    • @tiptap/core@3.0.0-next.0
    • @tiptap/pm@3.0.0-next.0

2.12.0

Patch Changes

  • @tiptap/extension-bubble-menu@2.12.0
  • @tiptap/extension-floating-menu@2.12.0

2.11.9

Patch Changes

  • @tiptap/extension-bubble-menu@2.11.9
  • @tiptap/extension-floating-menu@2.11.9

2.11.8

Patch Changes

  • @tiptap/extension-bubble-menu@2.11.8
  • @tiptap/extension-floating-menu@2.11.8

2.11.7

Patch Changes

  • @tiptap/extension-bubble-menu@2.11.7
  • @tiptap/extension-floating-menu@2.11.7

2.11.6

Patch Changes

  • @tiptap/extension-bubble-menu@2.11.6
  • @tiptap/extension-floating-menu@2.11.6

2.11.5

Patch Changes

  • @tiptap/extension-bubble-menu@2.11.5
  • @tiptap/extension-floating-menu@2.11.5

2.11.4

Patch Changes

  • @tiptap/extension-bubble-menu@2.11.4
  • @tiptap/extension-floating-menu@2.11.4

2.11.3

Patch Changes

  • @tiptap/extension-bubble-menu@3.0.0-next.4
  • @tiptap/extension-floating-menu@3.0.0-next.4

2.5.8

Patch Changes

  • 99d7820: Resolve a bug an editor could be instantiated but not destroyed. This was causing issues with multiple instances of plugins still being active and interfering with each other
  • Updated dependencies [a08bf85]
    • @tiptap/core@2.5.8
    • @tiptap/extension-bubble-menu@2.5.8
    • @tiptap/extension-floating-menu@2.5.8
    • @tiptap/pm@2.5.8

2.5.7

Patch Changes

  • 42dc27a: Fix, if using a deps array destroy the previous instance to avoid ghost instances
  • Updated dependencies [b012471]
  • Updated dependencies [cc3497e]
    • @tiptap/core@2.5.7
    • @tiptap/extension-bubble-menu@2.5.7
    • @tiptap/extension-floating-menu@2.5.7
    • @tiptap/pm@2.5.7

2.5.6

Patch Changes

  • Updated dependencies [b5c1b32]
  • Updated dependencies [618bca9]
  • Updated dependencies [35682d1]
  • Updated dependencies [2104f0f]
    • @tiptap/pm@2.5.6
    • @tiptap/core@2.5.6
    • @tiptap/extension-bubble-menu@2.5.6
    • @tiptap/extension-floating-menu@2.5.6

2.5.5

Patch Changes

  • Updated dependencies [4cca382]
  • Updated dependencies [3b67e8a]
    • @tiptap/core@2.5.5
    • @tiptap/extension-bubble-menu@2.5.5
    • @tiptap/extension-floating-menu@2.5.5
    • @tiptap/pm@2.5.5

2.5.4

Patch Changes

  • dd7f9ac: There was an issue with the cjs bundling of packages and default exports, now we resolve default exports in legacy compatible way
  • Updated dependencies [dd7f9ac]
    • @tiptap/extension-floating-menu@2.5.4
    • @tiptap/extension-bubble-menu@2.5.4
    • @tiptap/core@2.5.4
    • @tiptap/pm@2.5.4

2.5.3

Patch Changes

  • 70eebfd: The optional deps argument to useEditor was not being respected for performance optimizations, now if deps are declared a new editor instance is created
    • @tiptap/core@2.5.3
    • @tiptap/extension-bubble-menu@2.5.3
    • @tiptap/extension-floating-menu@2.5.3
    • @tiptap/pm@2.5.3

2.5.2

Patch Changes

  • Updated dependencies [07f4c03]
    • @tiptap/core@2.5.2
    • @tiptap/extension-bubble-menu@2.5.2
    • @tiptap/extension-floating-menu@2.5.2
    • @tiptap/pm@2.5.2

2.5.1

Patch Changes

  • @tiptap/core@2.5.1
  • @tiptap/extension-bubble-menu@2.5.1
  • @tiptap/extension-floating-menu@2.5.1
  • @tiptap/pm@2.5.1

2.5.0

Patch Changes

  • fb45149: Fixes strict mode accidentally destroying the editor instance

  • fb45149: Fix the typings

  • fb45149: We've heard a number of complaints around the performance of our React integration, and we finally have a solution that we believe will satisfy everyone. We've made a number of optimizations to how the editor is rendered, as well give you more control over the rendering process.

    Here is a summary of the changes and how you can take advantage of them:

    • SSR rendering was holding back our ability to have an editor instance on first render of useEditor. We've now made the default behavior to render the editor immediately on the client. This behavior can be controlled with the new immediatelyRender option which when set to false will defer rendering until the second render (via a useEffect), this should only be used when server-side rendering.
    • The default behavior of the useEditor hook is to re-render the editor on every editor transaction. Now with the shouldRerenderOnTransaction option, you can disable this behavior to optimize performance. Instead, to access the new editor state, you can use the useEditorState hook.
    • useEditorState this new hook allows you to select from the editor instance any state you need to render your UI. This is useful when you want to optimize performance by only re-rendering the parts of your UI that need to be updated.

    Here is a usage example:

    const editor = useEditor({
      /**
       * This option gives us the control to enable the default behavior of rendering the editor immediately.
       */
      immediatelyRender: true,
      /**
       * This option gives us the control to disable the default behavior of re-rendering the editor on every transaction.
       */
      shouldRerenderOnTransaction: false,
      extensions: [StarterKit],
      content: `
        <p>
          A highly optimized editor that only re-renders when it’s necessary.
        </p>
        `,
    })
    
    /**
     * This hook allows us to select the editor state we want to use in our component.
     */
    const currentEditorState = useEditorState({
      /**
       * The editor instance we want to use.
       */
      editor,
      /**
       * This selector allows us to select the data we want to use in our component.
       * It is evaluated on every editor transaction and compared to it's previously returned value.
       * You can return any data shape you want.
       */
      selector: ctx => ({
        isBold: ctx.editor.isActive('bold'),
        isItalic: ctx.editor.isActive('italic'),
        isStrike: ctx.editor.isActive('strike'),
      }),
      /**
       * This function allows us to customize the equality check for the selector.
       * By default it is a `===` check.
       */
      equalityFn: (prev, next) => {
        // A deep-equal function would probably be more maintainable here, but, we use a shallow one to show that it can be customized.
        if (!next) {
          return false
        }
        return prev.isBold === next.isBold && prev.isItalic === next.isItalic && prev.isStrike === next.isStrike
      },
    })
  • Updated dependencies [fb45149]

  • Updated dependencies [fb45149]

  • Updated dependencies [fb45149]

  • Updated dependencies [fb45149]

    • @tiptap/core@2.5.0
    • @tiptap/extension-bubble-menu@2.5.0
    • @tiptap/extension-floating-menu@2.5.0
    • @tiptap/pm@2.5.0

2.5.0-pre.16

Patch Changes

  • 1110280: Fixes strict mode accidentally destroying the editor instance
    • @tiptap/core@2.5.0-pre.16
    • @tiptap/extension-bubble-menu@2.5.0-pre.16
    • @tiptap/extension-floating-menu@2.5.0-pre.16
    • @tiptap/pm@2.5.0-pre.16

2.5.0-pre.15

Patch Changes

  • 3a67a5b: Fix the typings
    • @tiptap/core@2.5.0-pre.15
    • @tiptap/extension-bubble-menu@2.5.0-pre.15
    • @tiptap/extension-floating-menu@2.5.0-pre.15
    • @tiptap/pm@2.5.0-pre.15

2.5.0-pre.14

Patch Changes

  • df5609c: We've heard a number of complaints around the performance of our React integration, and we finally have a solution that we believe will satisfy everyone. We've made a number of optimizations to how the editor is rendered, as well give you more control over the rendering process.

    Here is a summary of the changes and how you can take advantage of them:

    • SSR rendering was holding back our ability to have an editor instance on first render of useEditor. We've now made the default behavior to render the editor immediately on the client. This behavior can be controlled with the new immediatelyRender option which when set to false will defer rendering until the second render (via a useEffect), this should only be used when server-side rendering.
    • The default behavior of the useEditor hook is to re-render the editor on every editor transaction. Now with the shouldRerenderOnTransaction option, you can disable this behavior to optimize performance. Instead, to access the new editor state, you can use the useEditorState hook.
    • useEditorState this new hook allows you to select from the editor instance any state you need to render your UI. This is useful when you want to optimize performance by only re-rendering the parts of your UI that need to be updated.

    Here is a usage example:

    const editor = useEditor({
      /**
       * This option gives us the control to enable the default behavior of rendering the editor immediately.
       */
      immediatelyRender: true,
      /**
       * This option gives us the control to disable the default behavior of re-rendering the editor on every transaction.
       */
      shouldRerenderOnTransaction: false,
      extensions: [StarterKit],
      content: `
        <p>
          A highly optimized editor that only re-renders when it’s necessary.
        </p>
        `,
    })
    
    /**
     * This hook allows us to select the editor state we want to use in our component.
     */
    const currentEditorState = useEditorState({
      /**
       * The editor instance we want to use.
       */
      editor,
      /**
       * This selector allows us to select the data we want to use in our component.
       * It is evaluated on every editor transaction and compared to it's previously returned value.
       * You can return any data shape you want.
       */
      selector: ctx => ({
        isBold: ctx.editor.isActive('bold'),
        isItalic: ctx.editor.isActive('italic'),
        isStrike: ctx.editor.isActive('strike'),
      }),
      /**
       * This function allows us to customize the equality check for the selector.
       * By default it is a `===` check.
       */
      equalityFn: (prev, next) => {
        // A deep-equal function would probably be more maintainable here, but, we use a shallow one to show that it can be customized.
        if (!next) {
          return false
        }
        return prev.isBold === next.isBold && prev.isItalic === next.isItalic && prev.isStrike === next.isStrike
      },
    })
    • @tiptap/core@2.5.0-pre.14
    • @tiptap/extension-bubble-menu@2.5.0-pre.14
    • @tiptap/extension-floating-menu@2.5.0-pre.14
    • @tiptap/pm@2.5.0-pre.14

2.5.0-pre.13

Patch Changes

  • Updated dependencies [74a37ff]
    • @tiptap/core@2.5.0-pre.13
    • @tiptap/extension-bubble-menu@2.5.0-pre.13
    • @tiptap/extension-floating-menu@2.5.0-pre.13
    • @tiptap/pm@2.5.0-pre.13

2.5.0-pre.12

Patch Changes

  • Updated dependencies [74a37ff]
    • @tiptap/core@2.5.0-pre.12
    • @tiptap/extension-bubble-menu@2.5.0-pre.12
    • @tiptap/extension-floating-menu@2.5.0-pre.12
    • @tiptap/pm@2.5.0-pre.12

2.5.0-pre.11

Patch Changes

  • Updated dependencies [74a37ff]
    • @tiptap/core@2.5.0-pre.11
    • @tiptap/extension-bubble-menu@2.5.0-pre.11
    • @tiptap/extension-floating-menu@2.5.0-pre.11
    • @tiptap/pm@2.5.0-pre.11

2.5.0-pre.10

Patch Changes

  • Updated dependencies [74a37ff]
    • @tiptap/core@2.5.0-pre.10
    • @tiptap/extension-bubble-menu@2.5.0-pre.10
    • @tiptap/extension-floating-menu@2.5.0-pre.10
    • @tiptap/pm@2.5.0-pre.10

2.5.0-pre.9

Patch Changes

  • Updated dependencies [14a00f4]
    • @tiptap/core@2.5.0-pre.9
    • @tiptap/extension-bubble-menu@2.5.0-pre.9
    • @tiptap/extension-floating-menu@2.5.0-pre.9
    • @tiptap/pm@2.5.0-pre.9

2.5.0-pre.8

Patch Changes

  • Updated dependencies [509676e]
    • @tiptap/core@2.5.0-pre.8
    • @tiptap/extension-bubble-menu@2.5.0-pre.8
    • @tiptap/extension-floating-menu@2.5.0-pre.8
    • @tiptap/pm@2.5.0-pre.8

2.5.0-pre.7

Patch Changes

  • @tiptap/core@2.5.0-pre.7
  • @tiptap/extension-bubble-menu@2.5.0-pre.7
  • @tiptap/extension-floating-menu@2.5.0-pre.7
  • @tiptap/pm@2.5.0-pre.7

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

2.4.0 (2024-05-14)

Bug Fixes

  • fix ts error for BubbleMenu and FloatingMenu in @tiptap/react (#5126) (baff4af)

Features

2.3.2 (2024-05-08)

Note: Version bump only for package @tiptap/react

2.3.1 (2024-04-30)

Note: Version bump only for package @tiptap/react

2.3.0 (2024-04-09)

Note: Version bump only for package @tiptap/react

2.2.6 (2024-04-06)

Note: Version bump only for package @tiptap/react

2.2.5 (2024-04-05)

Note: Version bump only for package @tiptap/react

2.2.4 (2024-02-23)

Note: Version bump only for package @tiptap/react

2.2.3 (2024-02-15)

Note: Version bump only for package @tiptap/react

2.2.2 (2024-02-07)

Bug Fixes

  • react: use ref instead of state in useEditor to prevent rerenders (#4856) (56a5737)

2.2.1 (2024-01-31)

Note: Version bump only for package @tiptap/react

2.2.0 (2024-01-29)

2.2.0-rc.8 (2024-01-08)

2.2.0-rc.7 (2023-11-27)

2.2.0-rc.6 (2023-11-23)

Reverts

  • Revert "fix/react-renderer-node-attrs (#4321)" (a4af83c), closes #4321

2.2.0-rc.4 (2023-10-10)

2.2.0-rc.3 (2023-08-18)

2.2.0-rc.1 (2023-08-18)

2.2.0-rc.0 (2023-08-18)

2.1.16 (2024-01-10)

Note: Version bump only for package @tiptap/react

2.1.15 (2024-01-08)

Note: Version bump only for package @tiptap/react

2.1.14 (2024-01-08)

Note: Version bump only for package @tiptap/react

2.1.13 (2023-11-30)

Bug Fixes

  • react: fix performance regression because of select/deselect (#4661) (ad7f659)

2.1.12 (2023-10-11)

Note: Version bump only for package @tiptap/react

2.1.11 (2023-09-20)

Reverts

2.1.10 (2023-09-15)

Note: Version bump only for package @tiptap/react

2.1.9 (2023-09-14)

Note: Version bump only for package @tiptap/react

2.1.8 (2023-09-04)

Note: Version bump only for package @tiptap/react

2.1.7 (2023-09-04)

Note: Version bump only for package @tiptap/react

2.1.6 (2023-08-18)

Note: Version bump only for package @tiptap/react

2.1.5 (2023-08-18)

Note: Version bump only for package @tiptap/react

2.1.4 (2023-08-18)

Note: Version bump only for package @tiptap/react

2.1.3 (2023-08-18)

Note: Version bump only for package @tiptap/react

2.1.2 (2023-08-17)

Note: Version bump only for package @tiptap/react

2.1.1 (2023-08-16)

Note: Version bump only for package @tiptap/react

2.1.0 (2023-08-16)

Note: Version bump only for package @tiptap/react

2.1.0-rc.14 (2023-08-11)

Note: Version bump only for package @tiptap/react

2.1.0-rc.13 (2023-08-11)

2.1.0-rc.12 (2023-07-14)

2.1.0-rc.11 (2023-07-07)

2.1.0-rc.10 (2023-07-07)

Bug Fixes

  • react: update select state when text selection is around node (#4148) (5bd5bd4)

2.1.0-rc.9 (2023-06-15)

2.1.0-rc.8 (2023-05-25)

2.1.0-rc.5 (2023-05-25)

2.1.0-rc.4 (2023-04-27)

2.1.0-rc.3 (2023-04-26)

2.1.0-rc.2 (2023-04-26)

2.1.0-rc.1 (2023-04-12)

2.1.0-rc.0 (2023-04-05)

Bug Fixes

  • Update peerDependencies to fix lerna version tasks (#3914) (0c1bba3)

2.1.0-rc.12 (2023-07-14)

Note: Version bump only for package @tiptap/react

2.1.0-rc.11 (2023-07-07)

Note: Version bump only for package @tiptap/react

2.1.0-rc.10 (2023-07-07)

Bug Fixes

  • react: update select state when text selection is around node (#4148) (5bd5bd4)

2.1.0-rc.9 (2023-06-15)

Note: Version bump only for package @tiptap/react

2.1.0-rc.8 (2023-05-25)

Note: Version bump only for package @tiptap/react

2.1.0-rc.7 (2023-05-25)

Note: Version bump only for package @tiptap/react

2.1.0-rc.6 (2023-05-25)

Note: Version bump only for package @tiptap/react

2.1.0-rc.5 (2023-05-25)

Note: Version bump only for package @tiptap/react

2.1.0-rc.4 (2023-04-27)

Note: Version bump only for package @tiptap/react

2.1.0-rc.3 (2023-04-26)

Note: Version bump only for package @tiptap/react

2.1.0-rc.2 (2023-04-26)

2.1.0-rc.1 (2023-04-12)

2.1.0-rc.0 (2023-04-05)

Bug Fixes

  • Update peerDependencies to fix lerna version tasks (#3914) (0c1bba3)

2.1.0-rc.1 (2023-04-12)

Note: Version bump only for package @tiptap/react

2.1.0-rc.0 (2023-04-05)

Note: Version bump only for package @tiptap/react

2.0.3 (2023-04-13)

Note: Version bump only for package @tiptap/react

2.0.2 (2023-04-03)

Bug Fixes

  • react: fix rebinding events not overwriting editor.on (#3935) (64ab357)

2.0.1 (2023-03-30)

Bug Fixes

  • Update peerDependencies to fix lerna version tasks (#3914) (0534f76)

2.0.0-beta.220 (2023-02-28)

Note: Version bump only for package @tiptap/react

2.0.0-beta.219 (2023-02-27)

Bug Fixes

2.0.0-beta.218 (2023-02-18)

Note: Version bump only for package @tiptap/react

2.0.0-beta.217 (2023-02-09)

Note: Version bump only for package @tiptap/react

2.0.0-beta.216 (2023-02-08)

Note: Version bump only for package @tiptap/react

2.0.0-beta.215 (2023-02-08)

Bug Fixes

  • fix builds including prosemirror (a380ec4)

2.0.0-beta.214 (2023-02-08)

Note: Version bump only for package @tiptap/react

2.0.0-beta.213 (2023-02-07)

Note: Version bump only for package @tiptap/react

2.0.0-beta.212 (2023-02-03)

Note: Version bump only for package @tiptap/react

2.0.0-beta.211 (2023-02-02)

Note: Version bump only for package @tiptap/react

2.0.0-beta.210 (2023-02-02)

Features

  • pm: new prosemirror package for dependency resolving (f387ad3)

2.0.0-beta.209 (2022-12-16)

Note: Version bump only for package @tiptap/react

2.0.0-beta.208 (2022-12-16)

Note: Version bump only for package @tiptap/react

2.0.0-beta.207 (2022-12-08)

Note: Version bump only for package @tiptap/react

2.0.0-beta.206 (2022-12-08)

Note: Version bump only for package @tiptap/react

2.0.0-beta.205 (2022-12-05)

Note: Version bump only for package @tiptap/react

2.0.0-beta.204 (2022-11-25)

Bug Fixes

  • core: rename esm modules to esm.js (c1a0c3a)

2.0.0-beta.203 (2022-11-24)

Note: Version bump only for package @tiptap/react

2.0.0-beta.202 (2022-11-04)

Note: Version bump only for package @tiptap/react

2.0.0-beta.201 (2022-11-04)

Note: Version bump only for package @tiptap/react

2.0.0-beta.200 (2022-11-04)

Note: Version bump only for package @tiptap/react

2.0.0-beta.199 (2022-09-30)

Note: Version bump only for package @tiptap/react

2.0.0-beta.198 (2022-09-29)

Note: Version bump only for package @tiptap/react

2.0.0-beta.197 (2022-09-26)

Note: Version bump only for package @tiptap/react

2.0.0-beta.196 (2022-09-20)

Note: Version bump only for package @tiptap/react

2.0.0-beta.195 (2022-09-14)

Bug Fixes

2.0.0-beta.194 (2022-09-11)

Note: Version bump only for package @tiptap/react

2.0.0-beta.115 (2022-09-03)

Bug Fixes

  • fix React Node View render problem in React 18 (#2985) (f32293b)

2.0.0-beta.114 (2022-06-27)

Note: Version bump only for package @tiptap/react

2.0.0-beta.113 (2022-06-20)

Note: Version bump only for package @tiptap/react

2.0.0-beta.112 (2022-06-17)

Reverts

2.0.0-beta.110 (2022-06-17)

Reverts

2.0.0-beta.109 (2022-04-27)

Note: Version bump only for package @tiptap/react

2.0.0-beta.108 (2022-02-07)

Note: Version bump only for package @tiptap/react

2.0.0-beta.107 (2022-01-25)

Note: Version bump only for package @tiptap/react

2.0.0-beta.106 (2022-01-20)

Note: Version bump only for package @tiptap/react

2.0.0-beta.105 (2022-01-11)

Bug Fixes

  • Mark @tiptap/react and @tiptap/core as side effect free (#2361) (e609b2d)

2.0.0-beta.104 (2022-01-04)

Note: Version bump only for package @tiptap/react

2.0.0-beta.103 (2022-01-03)

Bug Fixes

  • change reactrenderer component type definition (#2327) (64dfae8)

2.0.0-beta.102 (2021-12-22)

Bug Fixes

  • Remove element.current from useEffect in BubbleMenu and FloatingMenu (#2297) (561941d)

2.0.0-beta.101 (2021-12-17)

Reverts

  • Revert "fix: Make sure editor is available on first render (#2282), fix #2040, fix #2182" (629f4d2), closes #2040 #2182

2.0.0-beta.100 (2021-12-16)

Bug Fixes

2.0.0-beta.99 (2021-12-15)

Note: Version bump only for package @tiptap/react

2.0.0-beta.98 (2021-12-03)

Note: Version bump only for package @tiptap/react

2.0.0-beta.97 (2021-12-02)

Note: Version bump only for package @tiptap/react

2.0.0-beta.96 (2021-12-02)

Features

  • Add as option and pass through to ReactRenderer (#2213) (dedcf17)

2.0.0-beta.95 (2021-11-18)

Features

  • add className option to ReactRenderer, see #2166 (c9dc1e1)

2.0.0-beta.94 (2021-11-17)

Note: Version bump only for package @tiptap/react

2.0.0-beta.93 (2021-11-10)

Note: Version bump only for package @tiptap/react

2.0.0-beta.92 (2021-11-09)

Note: Version bump only for package @tiptap/react

2.0.0-beta.91 (2021-11-09)

Note: Version bump only for package @tiptap/react

2.0.0-beta.90 (2021-11-09)

Note: Version bump only for package @tiptap/react

2.0.0-beta.89 (2021-11-08)

Note: Version bump only for package @tiptap/react

2.0.0-beta.88 (2021-11-05)

Note: Version bump only for package @tiptap/react

2.0.0-beta.87 (2021-10-31)

Note: Version bump only for package @tiptap/react

2.0.0-beta.86 (2021-10-26)

Note: Version bump only for package @tiptap/react

2.0.0-beta.85 (2021-10-25)

Bug Fixes

  • Check node type above custom update function for node views (#2081) (ddc9ca8)

2.0.0-beta.84 (2021-10-22)

Features

2.0.0-beta.83 (2021-10-14)

Note: Version bump only for package @tiptap/react

2.0.0-beta.82 (2021-10-14)

Note: Version bump only for package @tiptap/react

2.0.0-beta.81 (2021-10-12)

Bug Fixes

  • Add editor dependency when registering BubbleMenuPlugin and FloatingMenuPlugin (#2018) (e9465ec)

2.0.0-beta.80 (2021-10-11)

Bug Fixes

2.0.0-beta.79 (2021-10-08)

Note: Version bump only for package @tiptap/react

2.0.0-beta.78 (2021-10-02)

Note: Version bump only for package @tiptap/react

2.0.0-beta.77 (2021-09-30)

Bug Fixes

2.0.0-beta.76 (2021-09-30)

Note: Version bump only for package @tiptap/react

2.0.0-beta.75 (2021-09-29)

Note: Version bump only for package @tiptap/react

2.0.0-beta.74 (2021-09-28)

Note: Version bump only for package @tiptap/react

2.0.0-beta.73 (2021-09-27)

Note: Version bump only for package @tiptap/react

2.0.0-beta.72 (2021-09-23)

Note: Version bump only for package @tiptap/react

2.0.0-beta.71 (2021-09-22)

Note: Version bump only for package @tiptap/react

2.0.0-beta.70 (2021-09-21)

Note: Version bump only for package @tiptap/react

2.0.0-beta.69 (2021-09-20)

Note: Version bump only for package @tiptap/react

2.0.0-beta.68 (2021-09-18)

Bug Fixes

  • set correct component type for ReactRenderer, fix #1904 (fe47c38)

2.0.0-beta.67 (2021-09-15)

Note: Version bump only for package @tiptap/react

2.0.0-beta.66 (2021-09-07)

Features

2.0.0-beta.65 (2021-09-07)

Note: Version bump only for package @tiptap/react

2.0.0-beta.64 (2021-09-06)

Note: Version bump only for package @tiptap/react

2.0.0-beta.63 (2021-08-24)

Bug Fixes

  • fix a bug when using nested node views in react, fix #1747 (b15a8a8)

2.0.0-beta.62 (2021-08-23)

Bug Fixes

  • make shouldShow and pluginKey option for menus, fix #1779 (70a328b)

2.0.0-beta.61 (2021-08-20)

Note: Version bump only for package @tiptap/react

2.0.0-beta.60 (2021-08-13)

Note: Version bump only for package @tiptap/react

2.0.0-beta.59 (2021-08-13)

Bug Fixes

  • rename key to pluginKey for menus (89d26f7)

2.0.0-beta.58 (2021-08-12)

Bug Fixes

2.0.0-beta.57 (2021-08-11)

Features

2.0.0-beta.56 (2021-08-09)

Note: Version bump only for package @tiptap/react

2.0.0-beta.55 (2021-07-28)

Bug Fixes

2.0.0-beta.54 (2021-07-27)

Features

  • add ignoreMutation option to NodeViewRenderer, fix #1538 (651e691)

2.0.0-beta.53 (2021-07-26)

Note: Version bump only for package @tiptap/react

2.0.0-beta.52 (2021-06-24)

Bug Fixes

  • check for destroyed editor before creating node views in react (44e4722)

2.0.0-beta.51 (2021-06-23)

Note: Version bump only for package @tiptap/react

2.0.0-beta.50 (2021-06-15)

Note: Version bump only for package @tiptap/react

2.0.0-beta.49 (2021-06-15)

Note: Version bump only for package @tiptap/react

2.0.0-beta.48 (2021-06-14)

Note: Version bump only for package @tiptap/react

2.0.0-beta.47 (2021-06-14)

Note: Version bump only for package @tiptap/react

2.0.0-beta.46 (2021-06-09)

Note: Version bump only for package @tiptap/react

2.0.0-beta.45 (2021-05-29)

Bug Fixes

2.0.0-beta.44 (2021-05-28)

Bug Fixes

2.0.0-beta.43 (2021-05-27)

Note: Version bump only for package @tiptap/react

2.0.0-beta.42 (2021-05-24)

Note: Version bump only for package @tiptap/react

2.0.0-beta.41 (2021-05-18)

Bug Fixes

  • move all child nodes within EditorContent (0f299d2)

Features

  • add deleteNode method to node views (fcee5f8)

2.0.0-beta.40 (2021-05-18)

Note: Version bump only for package @tiptap/react

2.0.0-beta.39 (2021-05-18)

Bug Fixes

2.0.0-beta.38 (2021-05-17)

Note: Version bump only for package @tiptap/react

2.0.0-beta.37 (2021-05-13)

Note: Version bump only for package @tiptap/react

2.0.0-beta.35 (2021-05-13)

Note: Version bump only for package @tiptap/react

2.0.0-beta.35 (2021-05-13)

Note: Version bump only for package @tiptap/react

2.0.0-beta.34 (2021-05-13)

Note: Version bump only for package @tiptap/react

2.0.0-beta.33 (2021-05-07)

Bug Fixes

2.0.0-beta.32 (2021-05-06)

Bug Fixes

  • revert adding type: module (f8d6475)

2.0.0-beta.31 (2021-05-06)

Bug Fixes

  • add exports to package.json (1277fa4)

2.0.0-beta.30 (2021-05-06)

Note: Version bump only for package @tiptap/react

2.0.0-beta.29 (2021-05-05)

Note: Version bump only for package @tiptap/react

2.0.0-beta.28 (2021-05-05)

Note: Version bump only for package @tiptap/react

2.0.0-beta.27 (2021-05-04)

Note: Version bump only for package @tiptap/react

2.0.0-beta.26 (2021-04-27)

Note: Version bump only for package @tiptap/react

2.0.0-beta.25 (2021-04-23)

Bug Fixes

  • allow passing props to NodeViewWrapper and NodeViewContent (cfb3b80)

2.0.0-beta.24 (2021-04-23)

Note: Version bump only for package @tiptap/react

2.0.0-beta.23 (2021-04-22)

Bug Fixes

  • prevents a bug where a line break was incorrectly added at enter in react node views, fix #1197 (e885ffa)

2.0.0-beta.22 (2021-04-21)

Note: Version bump only for package @tiptap/react

2.0.0-beta.21 (2021-04-16)

Features

2.0.0-beta.20 (2021-04-15)

Note: Version bump only for package @tiptap/react

2.0.0-beta.19 (2021-04-11)

Bug Fixes

  • fix using react node views with insertContent (ea0992f)

2.0.0-beta.18 (2021-04-08)

Note: Version bump only for package @tiptap/react

2.0.0-beta.17 (2021-04-08)

Bug Fixes

  • improve node view error message (536663f)
  • make as prop optional (f8dec5f)

2.0.0-beta.16 (2021-04-07)

Note: Version bump only for package @tiptap/react

2.0.0-beta.15 (2021-04-07)

Note: Version bump only for package @tiptap/react

2.0.0-beta.14 (2021-04-04)

Features

  • render wrapper element for inline node views as span, fix #242 (bdb5d72)

2.0.0-beta.13 (2021-04-01)

Note: Version bump only for package @tiptap/react

2.0.0-beta.12 (2021-04-01)

Note: Version bump only for package @tiptap/react

2.0.0-beta.11 (2021-04-01)

Note: Version bump only for package @tiptap/react

2.0.0-beta.10 (2021-04-01)

Note: Version bump only for package @tiptap/react

2.0.0-beta.9 (2021-03-31)

Note: Version bump only for package @tiptap/react

2.0.0-beta.8 (2021-03-31)

Note: Version bump only for package @tiptap/react

2.0.0-beta.7 (2021-03-31)

Note: Version bump only for package @tiptap/react

2.0.0-beta.6 (2021-03-28)

Note: Version bump only for package @tiptap/react

2.0.0-beta.5 (2021-03-24)

Note: Version bump only for package @tiptap/react

2.0.0-beta.4 (2021-03-18)

Note: Version bump only for package @tiptap/react

2.0.0-beta.3 (2021-03-16)

Note: Version bump only for package @tiptap/react

2.0.0-beta.2 (2021-03-09)

Note: Version bump only for package @tiptap/react

2.0.0-beta.1 (2021-03-05)

Note: Version bump only for package @tiptap/react

2.0.0-alpha.2 (2021-02-26)

Note: Version bump only for package @tiptap/react