@mini-markdown-rc/editor
Version:
90 lines (89 loc) • 2.6 kB
TypeScript
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;