Availability
Plugins require the pro preset and enabled features.plugins. Include factories in constructor plugins or call usePlugin on an existing instance. Duplicate IDs and unsupported API versions are rejected. A disposer or removePlugin removes a plugin without deleting the document.
Seven included plugins
Word count, dirty-state indicator, text case, typography, search/replace, browser spellcheck and character limit are Community extensions. They need no required application server. Browser spellcheck is not a bundled dictionary service.
Resource ownership
API 1 exposes managed commands, limited UI/status/forms, document operations, events and AbortSignal. It does not expose private engine/DOM internals. Cleanup runs on removal, destroy and failed installation. Registered commands and subscriptions are revoked.
Safety and limits
Delayed changes must use revisions; transformations should preserve history and formatting. Plugins do not bypass HTML/CSS validation. Real AI/MCP and a commercial edition are future work. Custom plugin, plugin example.
import { ViText, createWordCountPlugin, createTypographyPlugin, createTextCasePlugin } from '@vitext-ru/editor';
const editor = new ViText('#editor', {
preset: 'pro', plugins: [createWordCountPlugin(), createTypographyPlugin()]
});
const remove = editor.usePlugin(createTextCasePlugin());
editor.executePluginCommand('text-case', 'upper');
remove();