Editor
Texto rico com motor próprio e sem dependências: títulos, listas, tabelas, imagens, links e atalhos de Markdown, ligado como HTML sanitizado.
Importação
import { Editor } from '@vitral/vue';Padrão
Release notes
This editor writes semantic HTML, keeps undo history and understands Markdown as you type. Try ## , - or **bold**.
Paste from Word or Google Docs
Select text and press Ctrl+K for a link
Nothing pasted can run a script: only what the schema knows survives.
Barra de ferramentas personalizada
`toolbar` recebe grupos de nomes de itens; o slot `toolbar` substitui a barra por peças suas.
Only the basics here.
Barra de ferramentas flutuante
`bubble-menu` mostra uma barra de ferramentas sobre o texto selecionado; com `:toolbar="false"`, ela é a única.
Select some of this text: a floating toolbar appears over it, with bold, italic, a link and a colour.
Somente leitura
Com contagem e limite
`max-length` interrompe a digitação e a colagem no limite; a contagem descreve o texto.
Keep it short.
Saída em HTML e JSON
Type here and watch both formats change.
<p>Type here and watch <strong>both</strong> formats change.</p>
null
Composto por partes
`Editor.Root`, `Editor.Toolbar`, `Editor.Button`, `Editor.Content`, `Editor.BubbleMenu`, `Editor.Footer` e `Editor.Count`, também exportados como `EditorRoot`, `EditorToolbar`… compartilham um só editor; `useEditor()` chega até ele a partir dos seus próprios componentes.
This one is built from parts, with a toolbar of its own and a word count.
API
Lido de packages/vue/src/components/Editor/types.ts, então diz o que o componente aceita de fato.
Props
| Nome | Tipo | Descrição |
|---|---|---|
| placeholder | string | — |
| readonly | boolean | O texto pode ser lido, selecionado e copiado, não alterado. |
| disabled | boolean | — |
| invalid | boolean | — |
| variant | InputVariant | O padrão é o `inputVariant` do plugin. |
| maxLength | number | O máximo de caracteres que o texto pode ter; digitar e colar param aí. |
| autofocus | boolean | Dá foco ao texto, com o cursor no fim, ao montar. |
| colors | string[] | Nomes de cores da paleta que os seletores de cor e de destaque oferecem, em ordem. O padrão é a paleta inteira. |
| historyDelay | number | Milissegundos dentro dos quais digitação seguida conta como um só passo de desfazer. O padrão é 500. |
| slashMenu | boolean | SlashCommand[] | O menu que uma `/` abre no início de uma palavra: `true` para os blocos que o editor conhece, os comandos a oferecer, ou `false` para nenhum. O padrão é true. |
| blockMenu | boolean | BlockAction[] | A alça ao lado do bloco em que está o cursor: `true` para as ações de sempre, as ações a oferecer, ou `false` para nenhuma. O padrão é true. |
| toolbar | boolean | EditorToolbarItem[][] | A barra de ferramentas: `false` para nenhuma, ou grupos de nomes de itens, como em `[['bold', 'italic'], ['link']]`. O slot `toolbar` a substitui por completo. |
| bubbleMenu | boolean | EditorToolbarItem[] | Uma barra de ferramentas flutuante sobre o texto selecionado; `true` para os botões padrão, ou os itens a mostrar. |
| showCount | boolean | Mostra a contagem de palavras e caracteres abaixo do texto. Ligado por padrão quando há `maxLength`. |
| showWordCount | boolean | Mostra a contagem de palavras ao lado da de caracteres. O padrão é true. |
Mais pt, dt e unstyled de BaseProps; veja pass-through e modo sem estilo.
Emits
| Evento | Payload | Descrição |
|---|---|---|
| update:modelValue | value: string | — |
| update:json | value: EditorJSON | — |
| text-change | event: EditorTextChangeEvent | O conteúdo mudou. |
| selection-change | event: EditorSelectionChangeEvent | — |
| focus | event: FocusEvent | — |
| blur | event: FocusEvent | — |
| load | event: { instance: unknown } | O editor está pronto; `instance` é o editor sem framework por trás do componente. |
Slots
| Nome | Props do slot | Descrição |
|---|---|---|
| toolbar | — | Substitui a barra de ferramentas. Monte uma com `EditorToolbar`, `EditorButton` e as outras partes. |
| footer | — | Substitui o conteúdo do rodapé (a contagem). |