@atlaskit/editor-plugin-primary-toolbar
Version:
Primary toolbar plugin for @atlaskit/editor-core
25 lines (24 loc) • 1.34 kB
TypeScript
import type { NextEditorPlugin, ToolbarUIComponentFactory } from '@atlaskit/editor-common/types';
import type { EditorState } from '@atlaskit/editor-prosemirror/state';
export interface PrimaryToolbarPluginOptions {
contextualFormattingEnabled?: boolean;
}
export type PrimaryToolbarPlugin = NextEditorPlugin<'primaryToolbar', {
actions: {
registerComponent: ({ name, component, }: {
component: ToolbarUIComponentFactory;
name: ToolbarElementNames;
}) => void;
};
pluginConfiguration?: PrimaryToolbarPluginOptions;
sharedState: PrimaryToolbarPluginState | undefined;
}>;
export type ComponentRegistry = Map<string, ToolbarUIComponentFactory>;
export type ToolbarElementNames = 'aiExperience' | 'aiSimplified' | 'alignment' | 'avatarGroup' | 'beforePrimaryToolbar' | 'blockType' | 'findReplace' | 'highlight' | 'hyperlink' | 'insertBlock' | 'loom' | 'overflowMenu' | 'pinToolbar' | 'selectionExtension' | 'separator' | 'spellCheck' | 'textColor' | 'textFormatting' | 'toolbarListsIndentation' | 'trackChanges' | 'undoRedoPlugin';
export type ToolbarElementConfig = {
enabled?: (componentRegistry: ComponentRegistry, editorState: EditorState) => boolean;
name: ToolbarElementNames;
};
export type PrimaryToolbarPluginState = {
components: ToolbarUIComponentFactory[];
};