# Editor Layout Build a rich text editor with toolbars, slash commands, mentions, and drag-and-drop. ## Component tree ``` UApp ├── UHeader ├── UMain │ └── NuxtPage │ └── UContainer │ └── UEditor │ ├── UEditorToolbar (fixed / bubble / floating) │ ├── UEditorDragHandle │ ├── UEditorSuggestionMenu │ ├── UEditorMentionMenu │ └── UEditorEmojiMenu └── UFooter ``` ## Page ```vue [pages/editor.vue] ``` > If you encounter prosemirror-related errors, add prosemirror packages to `vite.optimizeDeps.include` in `nuxt.config.ts`. ## Key components - `UEditor` — Rich text editor (`v-model` accepts JSON, HTML, or markdown via `content-type` prop) - `UEditorToolbar` — Toolbar with `layout`: `'fixed'` (default), `'bubble'` (on selection), `'floating'` (on empty lines) - `UEditorDragHandle` — Block drag-and-drop handle - `UEditorSuggestionMenu` — Slash command menu - `UEditorMentionMenu` — @ mention menu - `UEditorEmojiMenu` — Emoji picker ## Toolbar modes ```vue ``` ## Content types ```vue ``` ## With document sidebar Combine with Dashboard components for a multi-document editor with a sidebar. ```vue [layouts/editor.vue] ``` ```vue [pages/editor/[id].vue] ```