UNPKG

@tiptap/extension-bubble-menu

Version:

bubble-menu extension for tiptap

48 lines (41 loc) 1.13 kB
import { Extension } from '@tiptap/core' import type { BubbleMenuPluginProps } from './bubble-menu-plugin.js' import { BubbleMenuPlugin } from './bubble-menu-plugin.js' export type BubbleMenuOptions = Omit<BubbleMenuPluginProps, 'editor' | 'element'> & { /** * The DOM element that contains your menu. * @type {HTMLElement} * @default null */ element: HTMLElement | null } /** * This extension allows you to create a bubble menu. * @see https://tiptap.dev/api/extensions/bubble-menu */ export const BubbleMenu = Extension.create<BubbleMenuOptions>({ name: 'bubbleMenu', addOptions() { return { element: null, pluginKey: 'bubbleMenu', updateDelay: undefined, shouldShow: null, } }, addProseMirrorPlugins() { if (!this.options.element) { return [] } return [ BubbleMenuPlugin({ pluginKey: this.options.pluginKey, editor: this.editor, element: this.options.element, updateDelay: this.options.updateDelay, options: this.options.options, shouldShow: this.options.shouldShow, }), ] }, })