The ProseMirror relationship
Documents, transactions and plugins share one runtime identity.
Core builds on ProseMirror documents, State, Transaction, Step, Plugin and history semantics. Extensions compose schemas, commands and plugins into one editor, without a second document authority.
Import map
| Original package | QuireKit package |
|---|---|
prosemirror-model | @quirekit/pm-model |
prosemirror-state | @quirekit/pm-state |
prosemirror-transform | @quirekit/pm-transform |
prosemirror-history | @quirekit/pm-history |
prosemirror-view | @quirekit/pm-view (native DOM) |
Common DOM-free interfaces are also exported by @quirekit/pm. Native DOM View remains separate; Canvas/SVG do not consume DOM layout results.
When to use PM directly
Use public PM types for complex commands, step mapping and state plugins. Expose user-facing operations through editor.commands, chain() and can() so controls and plugins use the same mutation path.
Do not mix two PM runtimes in one editor. Node, Selection and Plugin identities can differ across copies; review transitive dependencies when migrating extensions.