UNPKG

@tiptap/extension-floating-menu

Version:

floating-menu extension for tiptap

49 lines (42 loc) 1.17 kB
import { Extension } from '@tiptap/core' import type { FloatingMenuPluginProps } from './floating-menu-plugin.js' import { FloatingMenuPlugin } from './floating-menu-plugin.js' export type FloatingMenuOptions = Omit<FloatingMenuPluginProps, 'editor' | 'element'> & { /** * The DOM element that contains your menu. * @type {HTMLElement} * @default null */ element: HTMLElement | null } /** * This extension allows you to create a floating menu. * @see https://tiptap.dev/api/extensions/floating-menu */ export const FloatingMenu = Extension.create<FloatingMenuOptions>({ name: 'floatingMenu', addOptions() { return { element: null, options: {}, pluginKey: 'floatingMenu', appendTo: undefined, shouldShow: null, } }, addProseMirrorPlugins() { if (!this.options.element) { return [] } return [ FloatingMenuPlugin({ pluginKey: this.options.pluginKey, editor: this.editor, element: this.options.element, options: this.options.options, appendTo: this.options.appendTo, shouldShow: this.options.shouldShow, }), ] }, })