UNPKG

@edtr-io/plugin-text

Version:
38 lines 1.91 kB
import * as React from 'react'; import { StateDescriptor, StateDescriptorReturnType, StateDescriptorSerializedType, StateDescriptorValueType } from './plugin-state'; export declare type Plugin<S extends StateDescriptor = StateDescriptor, Props extends Record<string, unknown> = any> = StatelessPlugin<Props> | StatefulPlugin<S, Props>; export interface StatelessPlugin<Props extends Record<string, unknown> = {}> { Component: React.ComponentType<StatelessPluginEditorProps<Props>>; onPaste?: (data: DataTransfer) => void | { state?: undefined; }; title?: string; icon?: React.ComponentType; description?: string; } export declare type StatelessPluginEditorProps<Props extends Record<string, unknown> = {}> = { name: string; editable?: boolean; focused?: boolean; } & Props; export interface StatefulPlugin<S extends StateDescriptor, Props extends Record<string, unknown> = {}> { Component: React.ComponentType<StatefulPluginEditorProps<S, Props>>; state: S; onPaste?: (data: DataTransfer) => void | { state?: StateDescriptorSerializedType<S>; }; title?: string; icon?: React.ComponentType; description?: string; isEmpty?: (state: StateDescriptorValueType<S>) => boolean; onKeyDown?: (e: KeyboardEvent) => boolean; getFocusableChildren?: (state: StateDescriptorReturnType<S>) => { id: string; }[]; } export declare type StatefulPluginEditorProps<S extends StateDescriptor = StateDescriptor, Props extends Record<string, unknown> = {}> = StatelessPluginEditorProps<Props> & { state: StateDescriptorReturnType<S>; }; export declare function isStatefulPlugin<S extends StateDescriptor>(plugin: Plugin<S>): plugin is StatefulPlugin<S, any>; export declare function isStatelessPlugin(plugin: Plugin): plugin is StatelessPlugin<any>; //# sourceMappingURL=plugin.d.ts.map