- Framework-agnostic editor core.
- Extension-first feature delivery.
- Thin UI adapters with no business logic.
- Open-core package boundaries with premium features isolated from community packages.
- Strict TypeScript across the monorepo.
- Hosts editor lifecycle (
LexionEditor). - Manages editor state, command registration, and transaction dispatch.
- Loads extensions for schema, commands, and ProseMirror plugins.
- Aggregates status bar items for adapter-rendered editor chrome.
- Provides only a minimal fallback schema (
doc,paragraph,text,hard_break).
- Contains community editing features.
- Provides
starterKitExtensionwith:- schema
- commands (paragraph/heading/bold/italic/lists/links/undo/redo)
- ProseMirror plugins (history + base keymap)
- Commercial features are implemented in private codebases against the public extension contracts.
- Premium implementation code must stay out of the public repository unless it is intentionally reclassified as community functionality.
Adapters (@lexion-rte/web, @lexion-rte/react, @lexion-rte/vue, @lexion-rte/vue2, @lexion-rte/angular, @lexion-rte/svelte, @lexion-rte/solid, @lexion-rte/astro, @lexion-rte/next, @lexion-rte/nuxt)
- Render/editor view mounting and lifecycle only.
- Bridge UI events/transactions to
LexionEditor. - Render editor chrome such as the status bar from core-provided state.
- When creating internal editors, they attach
starterKitExtension.
- Converts editor content to/from HTML and text.
- Operates on
LexionEditorinstances.
- App initializes an editor (internally or externally).
- Extensions define schema + commands + PM plugins.
- Adapter binds ProseMirror
EditorViewto editor state. - Transactions update state via core.
- App reads/writes JSON via core and uses tools for text/HTML conversion.
- No feature business logic in adapters.
- No framework runtime dependencies in core.
- Community feature additions go to
@lexion-rte/starter-kitor another public package. - Paid capabilities go to commercial packages or services outside this repository.