medium-proeditor
Version:
A powerful & customizable Medium-style rich text editor
35 lines • 1.21 kB
TypeScript
import type { Editor } from '../Editor';
import type { EditorView } from 'prosemirror-view';
import { Plugin } from 'prosemirror-state';
interface PopoverElement extends HTMLElement {
_cleanup?: () => void;
_cancelCleanup?: () => void;
}
export interface PopoverRule {
className?: string;
find: (target: PopoverElement) => boolean;
content: (target: PopoverElement) => string | HTMLElement | null | undefined;
}
export default class PopoverHandler {
private editor;
private view;
private rules;
private hoverTooltip?;
private updateDebounce;
constructor(editor: Editor, view: EditorView, rules: PopoverRule[]);
private handleHover;
private showTooltip;
private removeTooltip;
static createPopover(className?: string): {
container: HTMLElement;
content: HTMLElement;
arrow: HTMLElement;
};
private attachListeners;
private removeListeners;
static updatePosition(trigger: HTMLElement, container: HTMLElement, arrowElem: HTMLElement): Promise<void>;
destroy(): void;
}
export declare function popoverPlugin(editor: Editor, rules: PopoverRule[]): Plugin<any>;
export {};
//# sourceMappingURL=popover.d.ts.map