UNPKG

@mini-markdown-rc/editor

Version:
90 lines (89 loc) 2.6 kB
export declare enum BaseToolbarType { HEADING = "heading", HEADING_1 = "heading-1", HEADING_2 = "heading-2", HEADING_3 = "heading-3", HEADING_4 = "heading-4", HEADING_5 = "heading-5", HEADING_6 = "heading-6", BOLD = "bold", ITALIC = "italic", UNDERLINE = "underline", DELETE = "delete", LINE = "line", BLOCKQUOTE = "blockquote", UL = "ul", OL = "ol", INLINECODE = "inlinecode", CODE = "code", LINK = "link", IMAGE = "image", IMAGE_LINK = "image-link", IMAGE_UPLOAD = "image-upload", TABLE = "table", UNDO = "undo", REDO = "redo", FULLSCREEN = "fullscreen", WRITE = "write", PREVIEW = "preview", CONTENTS = "contents", HELP = "help", OUTPUT = "output", EMOJI = "emoji", SAVE = "save" } export type ExtendedToolbarType = string; export type ToolbarType = BaseToolbarType | ExtendedToolbarType; export interface BaseToolbarItem { type: ToolbarType; icon?: string; title?: string; description?: string; disabled?: boolean; visible?: boolean; onClick?: () => void; component?: React.ReactNode; } export interface ToolbarItemListItem { title?: string; type: string; hotkey?: { command: string; description: string; handle?: () => void; }; onClick?: (...args: any[]) => void | (() => void); } export interface ToolbarItem extends BaseToolbarItem { list?: ToolbarItemListItem[]; hotkey?: { command: string; description: string; handle?: () => void; }; } export interface ToolbarContextValues { toolbars: ToolbarItem[]; addToolbar?: (toolbarItem: ToolbarItem) => void; removeToolbar?: (type: ToolbarType) => void; updateToolbar?: (type: ToolbarType, newConfig: Partial<ToolbarItem>) => void; reorderToolbars?: (newOrder: ToolbarType[]) => void; } export declare enum ToolbarEvents { TOOLBAR_ADDED = "toolbar:added", TOOLBAR_REMOVED = "toolbar:removed", TOOLBAR_UPDATED = "toolbar:updated", TOOLBAR_REORDERED = "toolbar:reordered", TOOLBAR_RESET = "toolbar:reset", TOOLBAR_ERROR = "toolbar:error", METHOD_REGISTERED = "method:registered", METHOD_UNREGISTERED = "method:unregistered", beforeDestroy = "beforeDestroy", destroy = "destroy" } export declare const isBaseToolbarType: (type: ToolbarType) => type is BaseToolbarType; export interface ToolbarValidationResult { isValid: boolean; errors: string[]; } export declare const validateToolbarItem: (item: ToolbarItem) => ToolbarValidationResult;