Well, it’s finally happening, on Friday the 13th no less: ProseMirror 1.0 has been released.
In the future, the packages will no longer be versioned and released in lockstep (I’m looking into setting up some largely-automated release process so that I can quickly fire off minor releases). New features will go through the RFC process, and backwards-compatibility will be prioritized.
I couldn’t help working on a few more things right before the release. Nothing scary or breaking, but if you run into a regression, let me know and I’ll try to quickly resolve it with a patch release.
ParseRule.context may now include multiple, pipe-separated context expressions.
setBlockType comes across a textblock that can’t be changed due to schema constraints, it skips it instead of failing.
canSplit now returns false when the requested split goes through isolating nodes.
Dragging nodes with a node view that handles its own mouse events should work better now.
List item DOM nodes are no longer assigned
pointer-events: none in the default style. Ctrl-clicking list markers now properly selects the list item again.
Arrow-down through an empty textblock no longer causes the browser to forget the cursor’s horizontal position.
Copy-dragging on OS X is now done by holding option, rather than control, following the convention on that system.
Fixes a crash related to decoration management.
Fixes a problem where using cut on IE11 wouldn’t actually remove the selected text.
Copy/paste on Edge 15 and up now uses the clipboard API, fixing a problem that made them fail entirely.
dragging property of a view, which contains information about editor content being dragged, is now part of the public interface.
setBlockType command can now be used to change the types of multiple selected textblocks (rather than only one).
The platform-dependent versions of the base keymap are now exported separately as
Valid gap cursor positions are not determined in a way that allows them inside nested nodes. By default, any position where a textblock can be inserted is valid gap cursor position.
Nodes can override whether they allow gap cursors with the
allowGapCursor property in their spec.