Configuration
Props, events, slots and the exposed editor instance of <EchoEditor>.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
modelValue | string | JSONContent | '' | Content, bound with v-model. Format depends on output. |
output | 'html' | 'json' | 'text' | 'markdown' | 'html' | Format emitted through v-model. markdown requires the Markdown extension. |
extensions | AnyExtension[] | [] | Extensions to register. Create this array once. |
disabled | boolean | false | Read-only mode. Hides bubble menus and disables toolbar buttons. |
hideToolbar | boolean | false | Hide the toolbar. |
hideMenubar | boolean | true | Hide the File / Edit / View / Insert / Format menubar. |
hideBubble | boolean | false | Disable bubble menus and the drag handle. |
removeDefaultWrapper | boolean | false | Emit '' (or {}) instead of <p></p> when the document is empty. |
minHeight | string | number | — | Minimum content height (number → px). |
maxHeight | string | number | — | Maximum content height; content scrolls beyond it. |
maxWidth | string | number | — | Maximum content width, centred. |
dark | boolean | follows system | Force dark or light mode. |
theme | Theme | 'zinc' | Accent colour, see Theming. |
radius | 0 | 0.25 | 0.5 | 0.75 | 1 | 0.5 | Border radius in rem. |
label | string | localized "Please input content" | Accessible name (aria-label) of the editable area. |
autofocus | boolean | 'start' | 'end' | 'all' | number | false | Focus the editor on mount. |
editorProps | EditorProps | — | Extra ProseMirror props. attributes are merged; handleKeyDown runs after the built-in Enter handling. |
editorClass | string | string[] | object | — | Class for the root element. |
contentClass | string | string[] | object | — | Class for the content element. |
Events
| Event | Payload | When |
|---|---|---|
update:modelValue | string | JSONContent | Content changed (throttled to 200 ms, flushed on blur and unmount). |
change | { editor, output } | Same timing as update:modelValue, with the editor instance. |
create | { editor } | The Tiptap editor was created. |
focus | { editor, event } | The editor received focus. |
blur | { editor, event } | The editor lost focus. |
enter | — | Enter was pressed (without Shift). Only intercepted when a listener is attached — useful for chat inputs. |
Slots
| Slot | Props | Description |
|---|---|---|
footer | { editor } | Rendered in the footer next to the character counter (requires characterCount, enabled by default in BaseKit). |
Exposed instance
editor is a regular Tiptap Editor: use its commands, getHTML(), getJSON(), getText(), getMarkdown() (with the Markdown extension), events and storage.
Configuring BaseKit
BaseKit bundles the essentials. Each part can be configured or disabled:
| Option | Default | Description |
|---|---|---|
placeholder | on | Placeholder options or false. |
characterCount | on | CharacterCount options (limit, mode) or false. |
focus | on | Adds a focus class to the node with the cursor. |
dropcursor / gapcursor | on | Drag-and-drop and gap cursors. |
hardBreak, paragraph, listItem, textStyle | on | Core nodes and marks. |
trailingNode | on | Keeps an empty paragraph at the end of the document. |
textBubble, selection, highlightParagraph | on | Bubble-menu text type switcher and selection helpers. |
bubble | — | Customise the bubble menu. |