@atlaskit/editor-plugin-breakout
Version:
Breakout plugin for @atlaskit/editor-core
35 lines (34 loc) • 1.69 kB
TypeScript
import type { EditorAppearance, NextEditorPlugin, OptionalPlugin } from '@atlaskit/editor-common/types';
import type { AnalyticsPlugin } from '@atlaskit/editor-plugin-analytics';
import type { BlockControlsPlugin } from '@atlaskit/editor-plugin-block-controls';
import type { EditorDisabledPlugin } from '@atlaskit/editor-plugin-editor-disabled';
import type { EditorViewModePlugin } from '@atlaskit/editor-plugin-editor-viewmode';
import type { GuidelinePlugin } from '@atlaskit/editor-plugin-guideline';
import type { InteractionPlugin } from '@atlaskit/editor-plugin-interaction';
import type { UserIntentPlugin } from '@atlaskit/editor-plugin-user-intent';
import type { WidthPlugin } from '@atlaskit/editor-plugin-width';
import type { ContentNodeWithPos } from '@atlaskit/editor-prosemirror/utils';
import type { ActiveGuidelineKey } from './pm-plugins/resizing-plugin';
export interface BreakoutPluginState {
activeGuidelineKey: ActiveGuidelineKey | undefined;
breakoutNode: ContentNodeWithPos | undefined;
}
export interface BreakoutPluginOptions {
allowBreakoutButton?: boolean;
appearance?: EditorAppearance;
}
export type BreakoutPluginDependencies = [
WidthPlugin,
OptionalPlugin<EditorViewModePlugin>,
OptionalPlugin<EditorDisabledPlugin>,
OptionalPlugin<BlockControlsPlugin>,
OptionalPlugin<InteractionPlugin>,
OptionalPlugin<UserIntentPlugin>,
OptionalPlugin<GuidelinePlugin>,
OptionalPlugin<AnalyticsPlugin>
];
export type BreakoutPlugin = NextEditorPlugin<'breakout', {
dependencies: BreakoutPluginDependencies;
pluginConfiguration: BreakoutPluginOptions | undefined;
sharedState: Partial<BreakoutPluginState>;
}>;