mirror of
https://github.com/lab2view/vue-email-editor.git
synced 2026-10-31 08:13:48 +00:00
2.9 KiB
2.9 KiB
Props
Component Props
| Prop | Type | Default | Description |
|---|---|---|---|
modelValue |
string |
'' |
MJML content (v-model) |
designJson |
Record<string, unknown> |
— | Persisted design JSON for loading saved designs |
variables |
string[] |
[] |
Available merge variables displayed in the sidebar |
labels |
Partial<EditorLabels> |
DEFAULT_LABELS |
i18n label overrides |
label |
string |
— | Form field label (when used in a form) |
required |
boolean |
false |
Form validation required flag |
theme |
Partial<ThemeConfig> |
DEFAULT_THEME |
Visual customization |
plugins |
Plugin[] |
[] |
Editor extensions |
aiProvider |
AiProvider |
— | AI integration (template generation, text tools) |
mergeTags |
MergeTag[] |
[] |
Personalization variables for AI and merge tag insertion |
imageUpload |
ImageUploadHandler |
— | Custom image upload handler |
browseAssets |
BrowseAssetsHandler |
— | Custom asset browser handler |
modelValue / v-model
The MJML source string. Updated whenever the document changes.
<EmailEditor v-model="mjml" />
designJson
Pass a saved design to load it. The editor detects the format:
- New format (
{ _editor: 'mesagoo-email-editor', ... }) — loaded directly - Legacy GrapesJS format — parsed via MJML fallback
<EmailEditor :design-json="savedDesign" />
variables
List of merge variable names displayed in a sidebar panel:
<EmailEditor :variables="['first_name', 'last_name', 'company']" />
labels
Partial label overrides. Missing keys fall back to English defaults. See i18n guide.
<EmailEditor :labels="{ editor_title: 'My Editor' }" />
theme
Partial theme overrides. See Theming guide for all 25 properties.
<EmailEditor :theme="{ primaryColor: '#7C3AED' }" />
plugins
Array of plugin functions. See Plugins guide.
<EmailEditor :plugins="[myPlugin, anotherPlugin]" />
aiProvider
An object implementing the AiProvider interface. Enables AI-powered features: template generation via chat, text improvement, and subject line suggestions. See AI Generation guide.
<EmailEditor :ai-provider="myAiProvider" />
mergeTags
Array of MergeTag objects representing personalization variables. Displayed in the sidebar for insertion and included in the AI system prompt.
<EmailEditor :merge-tags="[
{ name: 'First Name', value: '{{first_name}}', category: 'Contact' },
{ name: 'Company', value: '{{company}}', category: 'Company' },
]" />
Emitted Events (Vue)
| Event | Payload | Description |
|---|---|---|
update:modelValue |
string |
MJML source updated |
update:compiled-html |
string |
Compiled HTML updated |
update:design-json |
EmailDesignJson |
Design JSON updated |