Version Changelog

prosemirror-view 1.10.0 (2019-08-13)

Bug fixes

Fix an issue that caused the cursor to be scrolled into view when focus() was called on IE11.

Fix problem where the cursor cycled through pieces of right-to-left text on Firefox during horizontal motion when the gapcursor plugin was enabled.

Fix spurious mutation events in Firefox causing mark replacement at end of composition. Restore call to dom.focus on view.focus

Fix a bug that could cause node views in front of marked nodes to not be destroyed when deleted, and caused confusion in composition handling in some situations.

Cursor wrappers (a kludge to make sure typed text gets wrapping DOM structure corresponding to the current marks) are now created less eagerly, and in a less invasive way, which resolves a number of problems with composition (especially on Safari) and bidirectional text.

New features

Node views can now ignore selection change events through their ignoreMutation callback.

prosemirror-state 1.2.4 (2019-08-12)

Bug fixes

Transaction.setSelection now immediately checks whether the given selection points into the proper document, rather than silently accepting an invalid selection.

prosemirror-view 1.9.13 (2019-07-29)

Bug fixes

Fix an issue where copying content from a ProseMirror instance into an instance using another schema could, in some circumstances, insert schema-violating content.

Fix comparison of decoration sets, which should solve unneccesary re-renders when updating decorations with an identical but newly allocated set. Don't update DOM selection in uneditable editors when the focus is elsewhere

Fix a bug where the editor would steal focus from child elements when in non-editable mode.

Fix error and corruption in IE11 when backspacing out a single character after a br node.

prosemirror-view 1.9.12 (2019-07-16)

Bug fixes

Fix a crash posAtCoords in Firefox when the coordinates are above a text input field.

prosemirror-view 1.9.11 (2019-07-03)

Bug fixes

Fix an issue where the DOM change handler would treat the parsed content as the wrong part of the document.

Fix an issue in IE11 where deleting the last character in a textblock causes a crash.

Fix an issue where backspacing out the first character in a textblock would cause IE11 to move the selection to some incorrect position.

prosemirror-gapcursor 1.0.4 (2019-06-24)

Bug fixes

Do not show a gap cursor when the view isn't editable.

prosemirror-view 1.9.10 (2019-06-12)

Bug fixes

Fix a crash in coordsAtPos caused by use of an incorrect variable name.

prosemirror-view 1.9.9 (2019-06-09)

Bug fixes

Fix arrowing over unselectable inline nodes in Chrome and Safari, which by default introduce an extra needless cursor position before the node.

Fix a bug that caused DOM changes to be ignored when happening directly in front of some types of DOM events (such as focus/blur).

prosemirror-markdown 1.3.1 (2019-06-08)

Bug fixes

Fix a bug that could occur when parsing multiple adjacent pieces of text with the same style.

prosemirror-model 1.7.1 (2019-05-31)

Bug fixes

Using Fragment.from on an invalid value, including a Fragment instance from a different version/instance of the library, now raises a meaningful error rather than getting confused.

Fix a bug in parsing overlapping marks of the same non-self-exclusive type.

prosemirror-view 1.9.8 (2019-05-29)

Bug fixes

Fix an issue where moving focus from a node inside of the editor to the editor itself could sometimes lead to a node selection around the inner node rather than the intended selection (on Chrome).

prosemirror-collab 1.1.2 (2019-05-29)

Bug fixes

Fix an issue where in mapSelectionBackward mode, the plugin flipped the head and anchor of the selection, leading to selection glitches during collaborative editing.

prosemirror-view 1.9.7 (2019-05-28)

Bug fixes

ProseMirror will no longer try to stabilize the scroll position during updates on browsers that support scroll anchoring, since it'd inadvertently cancel the browser's behavior.

Fix an issue in Safari where the editor would interrupt the composition spacebar menu because it incorrectly interpreted the mutation events fired by the browser as representing a replacement of the selection with identical text.

Work around an issue where, on Safari, an IME composition started in an empty textblock would vanish when you press enter.

prosemirror-inputrules 1.0.4 (2019-05-17)

Bug fixes

Fix a null-dereference when running in strict mode.

prosemirror-inputrules 1.0.3 (2019-05-17)

Bug fixes

Prevent input rules from running during compositions, since they will annoyingly interrupt them.

prosemirror-view 1.9.6 (2019-05-17)

Bug fixes

Fix bug in composition handling when the composition's parent node has an extra wrapper node around its content.

prosemirror-view 1.9.5 (2019-05-14)

Bug fixes

Fix regression in handling text editing events on IE11.

prosemirror-commands 1.0.8 (2019-05-14)

Bug fixes

Fix a crash caused by using a position potentially outside the document in splitBlock.

prosemirror-view 1.9.4 (2019-05-13)

Bug fixes

Fix a regression where all plugin views were recreated when calling setProps.

prosemirror-view 1.9.3 (2019-05-10)

Bug fixes

Fix a bug where, if the document was changed at exactly the right moment, handleClickOn could be called with null as the node.

prosemirror-state 1.2.3 (2019-05-08)

Bug fixes

The insertText method now collapses the selection to the end of the inserted text, even when given explicit start/end positions.

prosemirror-inputrules 1.0.2 (2019-05-08)

Bug fixes

Improve selection handling during text replacement.

prosemirror-view 1.9.2 (2019-05-08)

Bug fixes

Fix a bug where updating to a reconfigured state would not recreate the view's plugin views.

prosemirror-view 1.9.1 (2019-05-04)

Bug fixes

Fix a regression where mouse selection would sometimes raise an error.

prosemirror-view 1.9.0 (2019-05-03)

New features

Changes made during compositions now immediately fire transactions on each update, rather than only a single one at the end of the composition.

The view now immediately shows changes to the document or decorations during composition, even if they come from transactions not directly generated by the use's editing. The only exception is decorations that affect the focused text node—those are still delayed to avoid unneccesarily canceling the composition.

prosemirror-schema-list 1.0.3 (2019-04-19)

Bug fixes

sinkListItem will no longer copy the attributes of the parent list when creating an inner list.

prosemirror-schema-basic 1.0.1 (2019-04-18)

Bug fixes

Make sure images and links don't render whatever happens to be in node.attrs to the DOM.

prosemirror-view 1.8.9 (2019-04-18)

Bug fixes

Improve display update times for nodes with thousands of children by fix an accidental piece of quadratic complexity.

Fixes an issue where changes to the nodeViews prop weren't noticed when using updateState to update the view.

Fix issue where sometimes moving the selection back its last position with the mouse failed to update ProseMirror's selection state.

No longer call deselectNode on already-destroyed node views.

prosemirror-view 1.8.8 (2019-04-11)

Bug fixes

Fix a regression from 1.8.4 that made it return unreasonable rectangles for positions between blocks.

prosemirror-view 1.8.7 (2019-04-09)

Bug fixes

The handlePaste prop is now activated even when the default parser can't make any sense of the clipboard content.

prosemirror-view 1.8.5 (2019-04-08)

Bug fixes

Multiple transformPastedHTML props are now all properly called in order, rather than only the first one.

Fixes an issue where invalid change positions were computed when a composition happened concurrently with a change that inserted content at the same position.

prosemirror-view 1.8.6 (2019-04-08)

Bug fixes

Fix a bug where decorations splitting a text node would sometimes confuse the display updater and make decorated nodes disappear.

prosemirror-view 1.8.4 (2019-03-20)

Bug fixes

EditorView.coordsAtPos is now more accurate in right-to-left text on Chrome and Firefox.

EditorView.coordsAtPos returns more accurate coordinates when querying the position directly after a line wrap point.

Fix an issue where clicking directly in front of a node selection doesn't clear the node selection markup.

prosemirror-changeset 2.0.4 (2019-03-12)

Bug fixes

Fixes an issue where steps that cause multiple changed ranges (such as ReplaceAroundStep) would cause invalid change sets.

Fix a bug in incremental change set updates that would cause incorrect results in a number of cases.

prosemirror-view 1.8.3 (2019-03-04)

Bug fixes

Fix an issue where clicking when there's a non-text selection active sometimes doesn't cause the appropriate new selection.

prosemirror-view 1.8.2 (2019-02-28)

Bug fixes

Fix an issue where a view state update happening between a change to the DOM selection and the corresponding browser event could disrupt mouse selection.

prosemirror-view 1.8.1 (2019-02-22)

Bug fixes

Fix infinite loop in coordsAtPos.

prosemirror-view 1.8.0 (2019-02-21)

Bug fixes

Fix a bug where endOfTextblock spuriously returns true when the cursor is in a mark.

New features

posAtCoords will no longer return null when called with coordinates outside the browser's viewport. (It will still return null for coordinates outside of the editor's bounding box.)

prosemirror-view 1.7.2 (2019-02-20)

Bug fixes

Pressing shift-left/right next to a selectable node no longer selects the node instead of creating a text selection across it.

prosemirror-view 1.7.3 (2019-02-20)

Bug fixes

endOfTextblock now works on textblocks that are the editor's top-level node.

prosemirror-history 1.0.4 (2019-02-19)

Bug fixes

Fix a bug that corrupted selection data in the history when applying remote steps in some cases.

prosemirror-view 1.7.1 (2019-02-04)

Bug fixes

Fix an issue on Safari where an Enter key events that was part of a composition is interpreted as stand-alone Enter press.

prosemirror-schema-list 1.0.2 (2019-01-31)

Bug fixes

sinkListItem no longer preserves marks from the outer list when creating an inner list.

prosemirror-view 1.7.0 (2019-01-29)

Bug fixes

Fix an issue where node selections on uneditable nodes couldn't be copied or cut on Chrome.

New features

The editable view now recognizes the spanning mark property.

prosemirror-model 1.7.0 (2019-01-29)

New features

Mark specs now support a property spanning which, when set to false, prevents the mark's DOM markup from spanning multiple nodes, so that a separate wrapper is created for each adjacent marked node.

prosemirror-markdown 1.3.0 (2019-01-22)

Bug fixes

Inline code containing backticks is now serialized wrapped in the appropriate amount of backticks.

New features

The serializer now serializes links whose target is the same as their text content using < > syntax.

Mark opening and close string callbacks now get passed the mark's context (parent fragment and index).

prosemirror-changeset 2.0.3 (2019-01-09)

Bug fixes

Make simplifyChanges merge adjacent simplified changes (which can occur when a word boundary is inserted).

prosemirror-changeset 2.0.2 (2019-01-08)

Bug fixes

Fix a bug in simplifyChanges that only occurred when the changes weren't at the start of the document.

prosemirror-changeset 2.0.1 (2019-01-07)

Bug fixes

Fixes issue in simplifyChanges where it sometimes returned nonsense when the inspected text wasn't at the start of the document.

prosemirror-model 1.6.4 (2019-01-05)

Bug fixes

Don't output empty style attributes when a style property with a null value is present in renderSpec.

prosemirror-changeset 2.0.0 (2019-01-04)

Bug fixes

Solves various cases where complicated edits could corrupt the set of changes due to the mapped positions of deletions not agreeing with the mapped positions of insertions.

New features

Moves to a more efficient diffing algorithm (Meyers), so that large replacements can be accurately diffed using reasonable time and memory.

You can now find the original document given to a ChangeSet with its startDoc accessor.

Breaking changes

The way change data is stored in ChangeSet objects works differently in this version. Instead of keeping deletions and insertions in separate arrays, the object holds an array of changes, which cover all the changed regions between the old and new document. Each change has start and end positions in both the old and the new document, and contains arrays of insertions and deletions within it.

This representation avoids a bunch of consistency problems that existed in the old approach, where keeping positions coherent in the deletion and insertion arrays was hard.

This means the deletions and insertions members in ChangeSet are gone, and instead there is a changes property which holds an array of Change objects. Each of these has fromA and toA properties indicating its extent in the old document, and fromB and toB properties pointing into the new document. Actual insertions and deletions are stored in inserted and deleted arrays in Change objects, which hold {data, length} objects, where the total length of deletions adds up to toA - fromA, and the total length of insertions to toB - fromB.

When creating a ChangeSet object, you no longer need to pass separate compare and combine callbacks. Instead, these are now represented using a single function that returns a combined data value or null when the values are not compatible.

prosemirror-view 1.6.8 (2019-01-03)

Bug fixes

When replacing a selection by typing over it with a letter that matches its start or end, the editor now generates a step that covers the whole replacement.

Fixes dragging a node when the mouse is in a child DOM element that doesn't represent a document node. Work around Chrome bug in selection management

Fixes an issue in Chrome where clicking at the start of a textblock after a selected node would sometimes not move the cursor there.

Fix issue where a node view's getPos callback could sometimes return NaN.

Fix an issue where deleting more than 5 nodes might cause the nodes after that to be needlessly redrawn.

prosemirror-view 1.6.7 (2018-11-26)

Bug fixes

Avoids redrawing of content with marks when other content in front of it is deleted.

prosemirror-markdown 1.2.2 (2018-11-22)

Bug fixes

Hard breaks at the end of an emphasized or strong mark are no longer serialized to invalid Markdown text.

prosemirror-changeset 1.2.1 (2018-11-15)

Bug fixes

Properly apply the heuristics for ignoring short matches when diffing, and adjust those heuristics to more agressively weed out tiny matches in large changes.

prosemirror-view 1.6.6 (2018-11-15)

Bug fixes

Work around a Chrome bug where programmatic changes near the cursor sometimes cause the visible and reported selection to disagree.

Changing the nodeView prop will no longer leave outdated node views in the DOM.

Work around an issue where Chrome unfocuses the editor or scrolls way down when pressing down arrow with the cursor between the start of a textblock and an uneditable element.

Fix a bug where mapping decoration sets through changes that changed the structure of decorated subtrees sometimes produced corrupted output.

prosemirror-changeset 1.2.0 (2018-11-08)

New features

The new changedRange method can be used to compare two change sets and find out which range has changed.

prosemirror-changeset 1.1.0 (2018-11-07)

New features

Add a new method, to update the data associated with changed ranges.

prosemirror-view 1.6.5 (2018-10-29)

Bug fixes

Work around Safari issue where deleting the last bit of text in a table cell creates weird HTML with a BR in a table row.

prosemirror-model 1.6.3 (2018-10-26)

Bug fixes

The DOM parser now drops whitespace after BR nodes when not in whitespace-preserving mode.

prosemirror-dropcursor 1.1.1 (2018-10-23)

Bug fixes

Fix crash when destroying the plugin, due to a misspelled method name.

prosemirror-dropcursor 1.1.0 (2018-10-22)

Bug fixes

Fixes an issue where drop cursors changed line breaking, causing the content to jump around during dragging.

New features

Between-blocks drop cursors are now shown as a horizontal line.

prosemirror-view 1.6.4 (2018-10-19)

Bug fixes

Fix pasting when both text and files are present on the clipboard.

prosemirror-markdown 1.2.1 (2018-10-19)

Bug fixes

Fixes a bug where inline mark delimiters were serialized incorrectly (the closing and opening marks were swapped, which was only noticeable when they are different).

prosemirror-view 1.6.3 (2018-10-12)

Bug fixes

The editor will no longer try to handle file paste events with the old-browser compatibility kludge (which might cause scrolling and focus flickering).

prosemirror-collab 1.1.1 (2018-10-09)

Bug fixes

Fix issue where mapSelectionBackward didn't work because of a typo.

prosemirror-history 1.0.3 (2018-10-08)

Bug fixes

Appending a transaction to an undo transaction will no longer immediately clear the redo history.

When handling appended transactions, the history will keep the last step in the original transaction, not the one from the appended transaction, for testing whether a subsequent transaction is adjacent to the previous one.

prosemirror-markdown 1.2.0 (2018-10-08)

Bug fixes

Fixes an issue where the Markdown serializer would escape special characters in inline code.

New features

Upgrade the markdown-it dependency to version 8.

prosemirror-view 1.6.2 (2018-10-08)

Bug fixes

Fixes an issue where event handlers were leaked when destroying an editor

prosemirror-model 1.6.2 (2018-10-01)

Bug fixes

Prevent ContentMatch.findWrapping from returning node types with required attributes.

prosemirror-view 1.6.1 (2018-10-01)

Bug fixes

Fixes situation where a vertical endOfTextblock query could get confused by nearby widgets or complex parent node representation.

prosemirror-gapcursor 1.0.3 (2018-10-01)

Bug fixes

Don't blanket-forbid gap cursors next to textblocks

prosemirror-view 1.6.0 (2018-09-27)

Bug fixes

Fixes a corner case in which would map decorations to incorrect new positions.

When the editor contains scrollable elements, scrolling the cursor into view also scrolls those.

New features

The scrollMargin and scrollThreshold props may now hold {left, right, top, bottom} objects to set different margins and thresholds for different sides. Make scrolling from a given start node more robust

prosemirror-changeset 1.0.5 (2018-09-25)

Bug fixes

Fix another issue where overlapping changes that can't be merged could produce a corrupt change set.

prosemirror-changeset 1.0.4 (2018-09-24)

Bug fixes

Fixes an issue where addSteps could produce invalid change sets when a new step's deleted range overlapped with an incompatible previous deletion.

prosemirror-view 1.5.3 (2018-09-24)

Bug fixes

The cursor is now scrolled into view after keyboard driven selection changes even when they were handled by the browser.

prosemirror-view 1.5.2 (2018-09-07)

Bug fixes

Improves selection management around widgets with no actual HTML content (possibly drawn using CSS pseudo elements).

Fix extra whitespace in pasted HTML caused by previously-collapsed spacing.

Slow triple-clicks are no longer treated as two double-clicks in a row.

prosemirror-view 1.5.1 (2018-08-24)

Bug fixes

Fix issue where some DOM selections would cause a non-editable view to crash when reading the selection.

prosemirror-view 1.5.0 (2018-08-21)

New features

Mark views are now passed a boolean that indicates whether the mark's content is inline as third argument.

prosemirror-collab 1.1.0 (2018-08-21)

New features

receiveTransaction now supports a mapSelectionBackward option that makes it so that text selections are mapped to stay in place when remote changes insert content at their position.

prosemirror-view 1.4.4 (2018-08-13)

Bug fixes

Fix an issue where a non-empty DOM selection could stick around even though the state's selection is empty.

Fix an issue where Firefox would create an extra cursor position when arrow-keying through a widget.

prosemirror-view 1.4.3 (2018-08-12)

Bug fixes

Fix an issue where the editor got stuck believing shift was down (and hence pasting as plain text) when it was unfocused with shift held down.

prosemirror-view 1.4.2 (2018-08-03)

Bug fixes

Fix an issue where reading the selection from the DOM might crash in non-editable mode.

prosemirror-view 1.4.1 (2018-08-02)

Bug fixes

Fixes an issue where backspacing out the last character between the start of a textblock and a widget in Chrome would insert a random hard break.

prosemirror-view 1.4.0 (2018-07-26)

New features

The dispatchTransaction prop is now called with this bound to the editor view.

prosemirror-view 1.3.8 (2018-07-24)

Bug fixes

Fix an issue where Chrome Android would move the cursor forward by one after backspace-joining two paragraphs.

prosemirror-model 1.6.1 (2018-07-24)

Bug fixes

Fix a bug where marks were sometimes parsed incorrectly.

prosemirror-state 1.2.2 (2018-07-23)

Bug fixes

The "appendedTransaction" meta property on appended transactions now points to the root transaction instead of at the transaction itself, which it accidentally did before.

prosemirror-model 1.6.0 (2018-07-20)

Bug fixes

Fix issue where marks would be applied to the wrong node when parsing a slice from DOM.

New features

Adds a new node spec property, toDebugString, making it possible to customize your nodes' toString behavior.

prosemirror-menu 1.0.5 (2018-07-19)

Bug fixes

Fix issue where menu items would still execute their command when clicked even if disabled.

prosemirror-markdown 1.1.1 (2018-07-08)

Bug fixes

Fix bug that caused superfluous backslashes to be inserted at the start of some lines when serializing to Markdown.

prosemirror-transform 1.1.3 (2018-07-03)

Bug fixes

Replacing from a code block into a paragraph that has marks, or similar scenarios that would join content with the wrong marks into a node, no longer crashes.

prosemirror-state 1.2.1 (2018-07-02)

Bug fixes

Fixes a bug in the default implementation of Selection.getBookmark.

prosemirror-view 1.3.7 (2018-07-02)

Bug fixes

Fix a crash when scrolling things into view when the editor isn't a child of document.body.

prosemirror-transform 1.1.2 (2018-06-29)

Bug fixes

Fix issue where replaceRange might create invalid nodes.

prosemirror-transform 1.1.1 (2018-06-26)

Bug fixes

Fix issues in the new dropPoint function.

prosemirror-view 1.3.6 (2018-06-21)

Bug fixes

Make sure Safari version detection for clipboard support also works in iOS webview.

prosemirror-transform 1.1.0 (2018-06-20)

New features

Transform.getMirror, usable in obscure circumstances for inspecting the mirroring structure or a transform, is now a public method.

New utility function dropPoint, which tries to find a valid position for dropping a slice near a given document position.

prosemirror-dropcursor 1.0.1 (2018-06-20)

Bug fixes

Dragging from a content node directly to the outside of the editor will now properly hide the drop cursor.

Make removal of drop cursor part of the drop transaction when possible.

Use dropPoint from prosemirror-transform, rather than a local parallel implementation.

prosemirror-view 1.3.5 (2018-06-20)

Bug fixes

Use shared implementation of dropPoint to handle finding a drop position.

prosemirror-view 1.3.4 (2018-06-20)

Bug fixes

Enable use of browser clipboard API on Mobile Safari version 11 and up, which makes cut work on that platform and should generally improve clipboard handling.

prosemirror-markdown 1.1.0 (2018-06-20)

New features

You can now override the handling of softbreak tokens in a custom handler.

prosemirror-view 1.3.2 (2018-06-15)

Bug fixes

handleKeyDown will now get notified of key events happening directly after a composition ends.

prosemirror-view 1.3.3 (2018-06-15)

Bug fixes

Fix arrow-left cursor motion from cursor wrapper (for example after a link).

Fix selection glitches when shift-selecting around widget decorations.

Fix issue where a parsing a code block from the editor DOM might drop newlines in the code.

prosemirror-view 1.3.1 (2018-06-08)

Bug fixes

The package can now be loaded in a web worker context (where navigator is defined but document isn't) without crashing.

Dropping something like a list item into a textblock will no longer split the textblock.

prosemirror-model 1.5.0 (2018-05-31)

New features

ParseRule.getContent is now passed the parser schema as second argument.

prosemirror-model 1.4.4 (2018-05-03)

Bug fixes

Fix a regression where DOMParser.parse would fail to apply mark nodes directly at the start of the input.

prosemirror-model 1.4.3 (2018-04-27)

Bug fixes

DOMParser.parseSlice can now correctly parses marks at the top level again.

prosemirror-view 1.3.0 (2018-04-24)

Bug fixes

Fix mouse-selecting (in IE and Edge) from the end of links and other positions that cause a cursor wrapper.

Widget decorations with the same key are now considered equivalent, even if their other spec fields differ.

New features

The new EditorView.posAtDOM method can be used to find the document position corresponding to a given DOM position.

The new EditorView.nodeDOM method gives you the DOM node that is used to represent a specific node in the document.

Decoration.widget now accepts a function as second argument, which can be used to delay rendering of the widget until the document is drawn (at which point a reference to the view is available).

The getPos function passed to a node view constructor can now be called immediately (it used to return undefined until rendering had finished).

The function used to render a widget is now passed a getPos method that event handlers can use to figure out where in the DOM the widget is.

prosemirror-markdown 1.0.4 (2018-04-17)

Bug fixes

Fix crash when serializing marks with line breaks inside of them.

prosemirror-transform 1.0.10 (2018-04-15)

Bug fixes

Transform.setBlockType no longer drops marks on the nodes it updates.

prosemirror-model 1.4.2 (2018-04-15)

Bug fixes

Remove a console.log that was accidentally left in the previous release.

prosemirror-model 1.4.1 (2018-04-13)

Bug fixes

DOMParser can now parse marks on block nodes.

prosemirror-commands 1.0.7 (2018-04-09)

Bug fixes

Fixes an issue where joinBackward might create a selection pointing into the old document.

prosemirror-transform 1.0.9 (2018-04-05)

Bug fixes

Fix a bug that made replaceStep unable to generate wrapper nodes in some circumstances.

prosemirror-state 1.2.0 (2018-04-05)

New features

EditorState.create now accepts a storedMark option to set the state's stored marks.

EditorState.toJSON and fromJSON persist the set of stored marks, when available.

prosemirror-commands 1.0.6 (2018-04-04)

Bug fixes

The setBlockType command command is now considered applicable when any of the selected textblocks can be changed (it used to only look at the first one).

Fix crash when calling splitBlock when the selection isn't in a block node (by disabling the command in that case).

Fixes an issue where joinForward might create a selection pointing into the old document.

prosemirror-transform 1.0.8 (2018-04-04)

Bug fixes

Fixes an issue where replaceStep could generate slices that internally violated the schema.

prosemirror-model 1.3.0 (2018-03-22)

New features

ContentMatch objects now have an edgeCount property and an edge method, providing direct access to the finite automaton structure.

prosemirror-model 1.4.0 (2018-03-22)

New features

ContentMatch.defaultType, a way to get a matching node type at a content match position, is now public.

prosemirror-transform 1.0.7 (2018-03-21)

Bug fixes

Transform.deleteRange will cover unmatched opening at the start of the deleted range.

prosemirror-schema-list 1.0.1 (2018-03-16)

Bug fixes

Fixes a bug that caused wrapInList to split list items in the wrong place.

prosemirror-gapcursor 1.0.2 (2018-03-15)

Bug fixes

Throw errors, rather than constructing invalid objects, when deserializing from invalid JSON data.

prosemirror-model 1.2.2 (2018-03-15)

Bug fixes

Throw errors, rather than constructing invalid objects, when deserializing from invalid JSON data.

prosemirror-model 1.2.1 (2018-03-15)

Bug fixes

Content expressions with text nodes in required positions now raise the appropriate error about being unable to generate such nodes.

prosemirror-state 1.1.1 (2018-03-15)

Bug fixes

Throw errors, rather than constructing invalid objects, when deserializing from invalid JSON data.

prosemirror-transform 1.0.6 (2018-03-15)

Bug fixes

Throw errors, rather than constructing invalid objects, when deserializing from invalid JSON data.

prosemirror-view 1.2.0 (2018-03-14)

Bug fixes

Fix a problem where updating the state of a non-editable view would not set the selection, causing problems when the DOM was updated in a way that disrupted the DOM selection.

Fix an issue where, on IE and Chrome, starting a drag selection in a position that required a cursor wrapper (on a mark boundary) would sometimes fail to work.

Fix crash in key handling when the editor is focused but there is no DOM selection.

Fixes a bug that prevented decorations inside node views with a contentDOM property from being drawn.

Fixes an issue where, on Firefox, depending on a race condition, the skipping over insignificant DOM nodes done at keypress was canceled again before the keypress took effect.

Fixes an issue where an :after pseudo-element on a non-inclusive mark could block the cursor, making it impossible to arrow past it.

New features

The DOM structure for marks is no longer constrained to a single node. Mark views can have a contentDOM property, and mark spec toDOM methods can return structures with holes.

Widget decorations are now wrapped in the marks of the node after them when their side option is >= 0.

Widget decorations may now specify a marks option to set the precise set of marks they should be wrapped in.

prosemirror-model 1.2.0 (2018-03-14)

Bug fixes

rangeHasMark now always returns false for empty ranges.

The DOM renderer no longer needlessly splits mark nodes when starting a non-rendered mark.

New features

DOMSerializer now allows DOM specs for marks to have holes in them, to specify the precise position where their content should be rendered.

The base position parameter to Node.nodesBetween and Fragment.nodesBetween is now part of the public interface.

prosemirror-transform 1.0.5 (2018-03-14)

Bug fixes

replaceStep will now return null rather than an empty step when it fails to place the slice.

Avoid duplicating defining parent nodes in replaceRange.

prosemirror-history 1.0.2 (2018-03-13)

Bug fixes

Fix a bug that could corrupt the history when rebasing changes because of collaborative editing.

prosemirror-menu 1.0.4 (2018-03-09)

Bug fixes

Fixes a bug that prevented the menu bar from properly unregistering its "scroll" event handlers when destroyed.

prosemirror-history 1.0.1 (2018-03-05)

Bug fixes

Fix crash that could occur (in specific circumstance) when redoing.

prosemirror-view 1.1.1 (2018-03-01)

Bug fixes

Fixes typo that broke paste.

prosemirror-view 1.1.0 (2018-02-28)

Bug fixes

Fixes issue where dragging a draggable node directly below a selected node would move the old selection rather than the target node.

A drop that can't fit the dropped content will no longer dispatch an empty transaction.

New features

Transactions generated for drop now have a "uiEvent" metadata field holding "drop". Paste and cut transactions get that field set to "paste" or "cut".

prosemirror-keymap 1.0.1 (2018-02-23)

Bug fixes

Upgrade w3c-keyname dependency to version 1.1.8 to prevent users getting stuck with a buggy version.

prosemirror-transform 1.0.3 (2018-02-23)

Bug fixes

Fix a problem where slice-placing didn't handle content matches correctly and might generate invalid steps or fail to generate steps though a valid one exists.

Allows adjacent nodes from an inserted slice to be placed in different parent nodes, allowing Transform.replace to create fits that weren't previously found.

prosemirror-transform 1.0.4 (2018-02-23)

Bug fixes

Fix overeager closing of destination nodes when fitting a slice during replacing.

prosemirror-view 1.0.11 (2018-02-16)

Bug fixes

Fix issue where the cursor was visible when a node was selected on recent Chrome versions.

prosemirror-gapcursor 1.0.1 (2018-02-16)

Bug fixes

Prevent issue where clicking on a selectable node near a valid gap cursor position would create a gap cursor rather than select the node.

prosemirror-menu 1.0.3 (2018-02-15)

Bug fixes

The floating menu bar now works better in a scrollable parent node.

prosemirror-commands 1.0.5 (2018-01-30)

Bug fixes

Fix crash in splitBlock when defaultContentType returns null.

prosemirror-view 1.0.10 (2018-01-24)

Bug fixes

Improve preservation of open and closed nodes in slices taken from the clipboard.

prosemirror-transform 1.0.2 (2018-01-24)

Bug fixes

Fixes a crash in replace.

prosemirror-state 1.1.0 (2018-01-22)

New features

EditorState.toJSON now accepts a string or number as argument to support the way JSON.stringify can call it.

prosemirror-commands 1.0.4 (2018-01-18)

Bug fixes

Pressing delete in front of an isolating node no longer opens it.

prosemirror-view 1.0.9 (2018-01-17)

Bug fixes

Work around a Chrome cursor motion bug by making sure
nodes don't get a contenteditable=false attribute.

prosemirror-menu 1.0.2 (2018-01-17)

Bug fixes

Make the render property of a menu item spec work as documented again.

prosemirror-markdown 1.0.3 (2018-01-10)

Bug fixes

Fix dependency version range for prosemirror-model.

prosemirror-view 1.0.8 (2018-01-09)

Bug fixes

Fix issue where would in some situations with nested nodes incorrectly map decoration positions.

prosemirror-view 1.0.7 (2018-01-05)

Bug fixes

Pasting from an external source no longer opens isolating nodes like table cells.

prosemirror-test-builder 1.0.1 (2018-01-05)

Bug fixes

Fix overly restrictive depencency version ranges.

prosemirror-model 1.1.0 (2018-01-05)

New features

Slice.maxOpen now has a second argument that can be used to prevent it from opening isolating nodes.

prosemirror-view 1.0.6 (2017-12-26)

Bug fixes

DecorationSet.remove now uses a proper deep compare to determine if widgets are the same (it used to compare by identity).

prosemirror-commands 1.0.3 (2017-12-19)

Bug fixes

Fix issue where joinBackward would sometimes create an invalid selection.

prosemirror-state 1.0.2 (2017-12-13)

Bug fixes

Fix issue where a character might be selected after overwriting across block nodes.

Make sure replaceSelectionWith doesn't needlessly copy unmarked nodes.

prosemirror-markdown 1.0.2 (2017-12-07)

Bug fixes

Code blocks are always wrapped in triple backticks when serializing, to avoid parsing corner cases around indented code blocks.

prosemirror-view 1.0.5 (2017-12-05)

Bug fixes

Fix an issue where deeply nested decorations were mapped incorrectly in corner cases.

prosemirror-view 1.0.4 (2017-11-27)

Bug fixes

Fix a corner-case crash during drop.

prosemirror-example-setup 1.0.1 (2017-11-24)

Bug fixes

The example menu now allows you to enter relative links without automatically adding http:// in front of them.

prosemirror-view 1.0.3 (2017-11-23)

Bug fixes

Pressing backspace between two identical characters will no longer generate a transaction that deletes the second one.

prosemirror-commands 1.0.2 (2017-11-21)

Bug fixes

splitBlock no longer crashes when used in a block that's it's parent node's only allowed child.

prosemirror-view 1.0.2 (2017-11-20)

Bug fixes

Fix test for whether a node can be selected when arrowing onto it from the right.

Calling posAtCoords while a read from the DOM is pending will no longer return a malformed result.

prosemirror-view 1.0.1 (2017-11-10)

Bug fixes

Deleting the last character in a list item no longer results in a spurious hard_break node on Safari.

Fixes a crash on IE11 when starting to drag.

prosemirror-changeset 1.0.3 (2017-11-10)

Bug fixes

Fix issue where deleting, inserting, and deleting the same content would lead to an inconsistent change set.

prosemirror-model 1.0.1 (2017-11-10)

Bug fixes

ReplaceError instances now properly inherit from Error.

prosemirror-inputrules 1.0.1 (2017-11-10)

Bug fixes

Input rules no longer fire in blocks that have their code spec set to true.

prosemirror-transform 1.0.1 (2017-11-10)

Bug fixes

The errors raised by Transform.step now properly inherit from Error.

prosemirror-markdown 1.0.1 (2017-11-05)

Bug fixes

Link marks are now non-inclusive (typing after them produces non-linked text).

prosemirror-state 1.0.1 (2017-11-01)

Bug fixes

Typing over marked text now properly makes the new text inherit the old text's marks.

prosemirror-changeset 1.0.2 (2017-10-19)

Bug fixes

Fix a bug that caused addSteps to break when merging two insertions into a single deletion.

prosemirror-menu 1.0.1 (2017-10-18)

Bug fixes

The menu no longer flips enabled/disabled styles on each update in IE11.

prosemirror-changeset 1.0.1 (2017-10-18)

Bug fixes

Fix crash in ChangeSet.addSteps.

prosemirror-commands 1.0.0 (2017-10-13)

New features

The 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 pcBaseKeymap and macBaseKeymap.

prosemirror-model 1.0.0 (2017-10-13)

New features

ParseRule.context may now include multiple, pipe-separated context expressions.

prosemirror-view 1.0.0 (2017-10-13)

Bug fixes

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.

New features

The dragging property of a view, which contains information about editor content being dragged, is now part of the public interface.

prosemirror-gapcursor 1.0.0 (2017-10-13)

New features

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.

prosemirror-transform 1.0.0 (2017-10-13)

Bug fixes

When 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.

prosemirror-history 0.24.0 (2017-09-25)

New features

It is no longer necessary to manually enable the preserveItems option to the history plugin when using collaborative editing. (This behavior is now automatically enabled when necessary.)

prosemirror-transform 0.24.0 (2017-09-25)

Breaking changes

The setNodeType method on transforms is now more descriptively called setNodeMarkup. The old name will continue to work with a warning until the next release.

prosemirror-view 0.24.0 (2017-09-25)

New features

The clipboardTextParser prop is now passed a context position.

prosemirror-model 0.23.1 (2017-09-21)

Bug fixes

NodeType.allowsMarks and allowedMarks now actually work for nodes that allow only specific marks.

prosemirror-commands 0.23.0 (2017-09-13)

Breaking changes

joinForward and joinBackward no longer fall back to selecting the next node when no other behavior is possible. There are now separate commands selectNodeForward and selectNodeBackward that do this, which the base keymap binds as fallback behavior.

baseKeymap no longer binds keys for joinUp, joinDown, lift, and selectParentNode.

New features

New commands selectNodeForward and selectNodeBackward added.

prosemirror-inputrules 0.23.0 (2017-09-13)

Breaking changes

Schema-specific rule-builders blockQuoteRule, orderedListRule, bulletListRule, codeBlockRule, and headingRule, along with the allInputRules array, are no longer included in this module.

prosemirror-transform 0.23.0 (2017-09-13)

Breaking changes

Step.toJSON no longer has a default implementation.

Steps no longer have an offset method. Map them through a map created with StepMap.offset instead.

The clearMarkup method on Transform is no longer supported (you probably needed clearIncompatible anyway).

Bug fixes

Pasting a list item at the start of a non-empty textblock now wraps the textblock in a list.

Marks on open nodes at the left of a slice are no longer dropped by Transform.replace.

New features

StepMap now has a static method offset, which can be used to create a map that offsets all positions by a given distance.

Transform objects now have a clearIncompatible method that can help make sure a node's content matches another node type.

prosemirror-view 0.23.0 (2017-09-13)

Breaking changes

The onFocus, onBlur, and handleContextMenu props are no longer supported. You can achieve their effect with the handleDOMEvents prop.

Bug fixes

Fixes occasional crash when reading the selection in Firefox.

Putting a table cell on the clipboard now properly wraps it in a table.

The view will no longer scroll into view when receiving a state that isn't derived from its previous state.

New features

Transactions caused by a paste now have their "paste" meta property set to true.

Adds a new view prop, handleScrollToSelection to override the behavior of scrolling the selection into view.

The new editor prop clipboardTextSerializer allows you to override the way a piece of document is converted to clipboard text.

Adds the editor prop clipboardTextParser, which can be used to define your own parsing strategy for clipboard text content.

DecorationSet.find now supports passing a predicate to filter decorations by spec.

prosemirror-schema-list 0.23.0 (2017-09-13)

Bug fixes

The splitListItem command now splits the parent list item when executed in a (trailing) empty list item in a nested list.

prosemirror-model 0.23.0 (2017-09-13)

Breaking changes

ResolvedPos.marks no longer takes a parameter (you probably want marksAcross if you were passing true there).

Attribute and mark constraints in content expressions are no longer supported (this also means the prosemirror-schema-table package, which relied on them, is no longer supported). In this release, mark constraints are still (approximately) recognized with a warning, when present.

ContentMatch objects lost a number of methods: matchNode, matchToEnd, findWrappingFor (which can be easily emulated using the remaining API), and allowsMark, which is now the responsibility of node types instead.

ContentMatch.validEnd is now a property rather than a method.

ContentMatch.findWrapping now returns an array of plain node types, with no attribute information (since this is no longer necessary).

The compute method for attributes is no longer supported.

Fragments no longer have an offsetAt method.

DOMParser.schemaRules is no longer public (use fromSchema and get the resulting parser's rules property instead).

The DOM parser option topStart has been replaced by topMatch.

The DOMSerializer methods nodesFromSchema and marksFromSchema are no longer public (construct a serializer with fromSchema and read its nodes and marks properties instead).

Bug fixes

Fix issue where whitespace at node boundaries was sometimes dropped during content parsing.

Attribute default values of undefined are now allowed.

New features

contentElement in parse rules may now be a function.

The new method ResolvedPos.marksAcross can be used to find the set of marks that should be preserved after a deletion.

Content expressions are now a regular language, meaning all the operators can be nested and composed as desired, and a bunch of constraints on what could appear next to what have been lifted.

The starting content match for a node type now lives in NodeType.contentMatch.

Allowed marks are now specified per node, rather than in content expressions, using the marks property on the node spec.

Node types received new methods allowsMarkType, allowsMarks, and allowedMarks, which tell you about the marks that node supports.

The style property on parse rules may now have the form "font-style=italic" to only match styles that have the value after the equals sign.

prosemirror-view 0.22.1 (2017-08-16)

Bug fixes

Invisible selections that don't cover any content (i.e., a cursor) are now properly hidden.

Initializing the editor view non-editable no longer causes a crash.

prosemirror-keymap 0.22.1 (2017-07-14)

Bug fixes

Bindings like Alt-3 should now fire even if your keyboard produces a special character for that combination.

prosemirror-transform 0.22.2 (2017-07-06)

Bug fixes

Fix another bug in the way canSplit interpreted its typesAfter argument.

prosemirror-transform 0.22.1 (2017-07-03)

Bug fixes

Fix crash in canSplit when an array containing null fields is passed as fourth argument.

prosemirror-model 0.22.0 (2017-06-29)

Bug fixes

When using parseSlice, inline DOM content wrapped in block elements for which no parse rule is defined will now be properly wrapped in a textblock node.

New features

Resolved positions now have a doc accessor to easily get their root node.

Parse rules now support a namespace property to match XML namespaces.

The NodeRange constructor is now public (whereas before you could only construct these through blockRange).

prosemirror-transform 0.22.0 (2017-06-29)

Bug fixes

canSplit now returns false when given custom after-split node types that don't match the content at that point.

Fixes canLift incorrectly returning null when lifting into an isolating node.

prosemirror-view 0.22.0 (2017-06-29)

Bug fixes

Fix an issue where moving the cursor through a text widget causes the editor to lose the selection in Chrome.

Fixes an issue where down-arrow in front of a widget would sometimes not cause any cursor motion on Chrome.

Destroying a mounted editor view no longer leaks event handlers.

Display updates for regular, non-composition input are now synchronous, which should reduce flickering when, for example, updating decorations in response to typing.

New features

The editor can now be initialized in a document other than the global document (say, an iframe).

Editor views now have a domAtPos method, which gives you the DOM position corresponding to a given document position.

prosemirror-inputrules 0.22.0 (2017-06-29)

Bug fixes

Input rules with spaces in them now match any whitespace where the space is expected, to avoid mysteriously not working when a non-breaking space is present.

prosemirror-transform 0.21.1 (2017-05-16)

Bug fixes

addMark no longer assumes marks always exclude only themselves.

replaceRange]( and deleteRange will no longer expand the range across isolating node boundaries.

prosemirror-view 0.21.1 (2017-05-09)

Bug fixes

Copying and pasting table cells on Edge no longer strips the table structure.

prosemirror-model 0.21.0 (2017-05-03)

Breaking changes

The openLeft and openRight properties of Slice objects have been renamed to openStart and openEnd to avoid confusion in right-to-left text. The old names will continue to work with a warning until the next release.

New features

Mark serializing functions now get a second parameter that indicates whether the mark's content is inline or block nodes.

Setting a mark serializer to null in a DOMSerializer can now be used to omit that mark when serializing.

Node specs support a new property isolating, which is used to disable editing actions like backspacing and lifting across such a node's boundaries.

prosemirror-view 0.21.0 (2017-05-03)

Breaking changes

The associative option to widget decorations is no longer supported. To make a widget left-associative, set its side option to a negative number. associative will continue to work with a warning until the next release.

New features

Widget decorations now support a side option that controls which side of them the cursor is drawn, where they move when content is inserted at their position, and the order in which they appear relative to other widgets at the same position.

prosemirror-state 0.21.0 (2017-05-03)

Breaking changes

Selection.atStart, and atEnd no longer take a second textOnly parameter.

New features

Selection.near, atStart, and atEnd will now fall back to returning an AllSelection when unable to find a valid selection. This removes the (undocumented) requirement that documents always contain a valid selection position (though you'll probably still want to maintain this for practical UI reasons).

prosemirror-view 0.20.5 (2017-05-02)

Bug fixes

Fixes an issue where the DOM selection could be shown on the wrong side of hard break or image nodes.

prosemirror-view 0.20.4 (2017-04-24)

Bug fixes

Fix a bug that prevented the DOM selection from being updated when the new position was near the old one in some circumstances.

Stop interfering with alt-d keypresses on OS X.

Fix issue where reading a DOM change in a previously empty node could crash.

Fixes crash when reading a change that removed a decorated text node from the DOM.

prosemirror-view 0.20.3 (2017-04-12)

Bug fixes

Shift-pasting and pasting into a code block now does the right thing on IE and Edge.

prosemirror-view 0.20.2 (2017-04-05)

Bug fixes

Fixes a bug that broke dragging from the editor.

prosemirror-view 0.20.1 (2017-04-04)

Bug fixes

Typing in code blocks no longer replaces newlines with spaces.

Copy and paste on Internet Explorer, Edge, and mobile Safari should now behave more like it does on other browsers. Handlers are called, and the changes to the document are made by ProseMirror's code, not the browser.

Fixes a problem where triple-clicking the editor would sometimes cause the scroll position to inexplicably jump around on IE11.

prosemirror-history 0.20.0 (2017-04-03)

Bug fixes

Appended transactions no longer generate undo history events.

prosemirror-model 0.20.0 (2017-04-03)

Breaking changes

Newlines in the text are now normalized to spaces when parsing except when you set preserveWhitespace to "full" in your options or in a parse rule.

Bug fixes

Fix crash in IE when parsing DOM content.

New features

Fragments now have nodesBetween and descendants methods, providing the same functionality as the methods by the same name on nodes.

Resolved positions now have max and min methods to easily find a maximum or minimum position.

prosemirror-view 0.20.0 (2017-04-03)

Breaking changes

The inclusiveLeft and inclusiveRight options to inline decorations were renamed to inclusiveStart and inclusiveEnd so that they also make sense in right-to-left text. The old names work with a warning until the next release.

The default styling for lists and blockquotes was removed from prosemirror.css. (They were moved to the example-setup module.)

Bug fixes

Fixes reading of selection in Chrome in a shadow DOM.

Registering DOM event handlers that the editor doesn't listen to by default with the handleDOMEvents prop should work again.

Backspacing after turning off a mark now works again in Firefox.

New features

The new props handlePaste and handleDrop can be used to override drop and paste behavior.

prosemirror-inputrules 0.20.0 (2017-04-03)

Breaking changes

The input rules plugin no longer implicitly binds backspace to undo the last applied rule.

New features

This module now exposes a command undoInputRule, which will revert an input rule when run directly after one was applied.

prosemirror-schema-list 0.20.0 (2017-04-03)

New features

The liftListItem command can now lift items out of a list entirely, when the parent node isn't another list.

prosemirror-commands 0.20.0 (2017-04-03)

New features

The new selectAll command, bound to Mod-a in the base keymap, sets the selection to an AllSelection.

prosemirror-transform 0.20.0 (2017-04-03)

Bug fixes

Fixes issue where replacing would sometimes unexpectedly split nodes.

prosemirror-state 0.20.0 (2017-04-03)

Breaking changes

Selection.near no longer accepts a textOnly parameter.

Bug fixes

TextSelection.between may now return a node selection when the document does not contain a valid cursor position.

New features

Selection objects now implement a content method that returns their content. This is used to determine what ends up on the clipboard when the selection is copied or dragged.

Selections may now specify multiple ranges that they cover, to generalize to more types of selections. The Selection superclass constructor takes an array of ranges as optional third argument.

Selections gained new methods replace and replaceWith to provide subclasses more control over how selections of that type respond to being deleted or overwritten.

Selections have a new method getBookmark that custom selection classes can implement to allow the undo history to accurately store and restore them.

The new selection class AllSelection can be used to select the entire document.

prosemirror-view 0.19.1 (2017-03-18)

Bug fixes

Fixes a number of issues with characters being duplicated or disappearing when typing on mark boundaries.

prosemirror-state 0.19.1 (2017-03-17)

Bug fixes

Fix an issue where ensureMarks would fail to reset the marks to the empty set when turning off the last mark.

prosemirror-model 0.19.0 (2017-03-16)

Breaking changes

MarkSpec.inclusiveRight was replaced by inclusive, which behaves slightly differently. inclusiveRight will be interpreted as inclusive (with a warning) until the next release.

New features

The new inlineContent property on nodes and node types tells you whether a node type supports inline content.

MarkSpec.inclusive can now be used to control whether content inserted at the boundary of a mark receives that mark.

Parse rule context restrictions can now use node groups, not just node names, to specify valid context.

prosemirror-state 0.19.0 (2017-03-16)

Breaking changes

Selection.between is now called TextSelection.between, and only returns text selections.

The JSON representation of selections changed. fromJSON will continue to understand the old representation, but if your own code touches the JSON data, you'll have to adjust it.

All Selection objects now have $head/$anchor properties, so those can no longer be used to recognize text selections (use $cursor or instanceof).

New features

It is now possible to write your own Selection subclasses and set the editor selection to an instance of them (provided you implement all required methods and register them with Selection.jsonID).

Text selections now have a $cursor getter which returns a position only if this is a cursor selection.

The new Transaction.ensureMarks method makes it easier to ensure given set of active marks without needlessly setting storedMarks.

prosemirror-schema-basic 0.19.0 (2017-03-16)

Breaking changes

Link marks are now non-inclusive by default.

prosemirror-commands 0.19.0 (2017-03-16)

Bug fixes

Calling joinBackward at the start of a node that can't be joined no longer raises an error.

prosemirror-collab 0.19.0 (2017-03-16)

New features

You can now use strings (as well as numbers) as client IDs (this already worked, but now the documentation reflects this).

prosemirror-view 0.19.0 (2017-03-16)

Breaking changes

endOfTextblock no longer always returns false for horizontal motion on non-cursor selections, but checks the position of the selection head instead.

Bug fixes

Typing after adding/removing a mark no longer briefly shows the new text with the wrong marks.

posAtCoords is now more reliable on modern browsers by using browser APIs.

Fix a bug where the view would in some circumstances leave superfluous DOM nodes around inside marks.

New features

You can now override the selection the editor creates for a given DOM selection with the createSelectionBetween prop.

prosemirror-history 0.19.0 (2017-03-16)

New features

A new function closeHistory can be used to force separation of history events at the start of a given transaction.

prosemirror-view 0.18.0 (2017-02-24)

Breaking changes

Decoration objects now store their definition object under spec, not options. The old property name still works, with a warning, until the next release.

Bug fixes

Fix bug where calling focus when there was a text selection would sometimes result in state.selection receiving an incorrect value.

EditorView.props now has its state property updated when you call updateState.

Putting decorations on or inside a node view with an update method now works.

New features

Plugin view update methods are now passed the view's previous state as second argument.

The place agument to the EditorView constructor can now be an object with a mount property to directly provide the node that should be made editable.

The new EditorView.setProps method makes it easier to update individual props.

prosemirror-keymap 0.18.0 (2017-02-24)

New features

Add a keydownHandler function, which takes a keymap and produces a handleKeydown prop-style function.

prosemirror-transform 0.18.0 (2017-02-24)

New features

Transform.setNodeType now takes an optional argument to set the new node's attributes.

Steps now provide an offset method, which makes it possible to create a copy the step with its position offset by a given amount.

docChanged is now a property on the Transform class, rather than its Transaction subclass.

Mapping instances now have invert and appendMappingInverted methods to make mapping through them in reverse easier.

prosemirror-history 0.18.0 (2017-02-24)

Bug fixes

Fix a problem where simultaneous collaborative editing could break the undo history.

prosemirror-commands 0.18.0 (2017-02-24)

New features

New command splitBlockKeepMarks which splits a block but preserves the marks at the cursor.

prosemirror-state 0.18.0 (2017-02-24)

Breaking changes

Plugin objects now store their spec under a spec instead of an options property. The options property still works with a warning in this release.

prosemirror-model 0.18.0 (2017-02-24)

Breaking changes

schema.nodeSpec and schema.markSpec have been deprecated in favor of schema.spec. The properties still work with a warning in this release, but will be dropped in the next.

New features

Node objects now have a check method which can be used to assert that they conform to the schema.

Node specs now support an atom property, and nodes an isAtom accessor, which is currently only used to determine whether such nodes should be directly selectable (for example when they are rendered as an uneditable node view).

The new excludes field on mark specs can be used to control the marks that this mark may coexist with. Mark type objects also gained an excludes method to querty this relation.

Mark specs now support a group property, and marks can be referred to by group name in content specs.

The Schema class now provides its whole spec under its spec property.

The name of a schema's default top-level node is now configurable. You can use schema.topNodeType to retrieve the top node type.

Parse rules now support a context field that can be used to only make the rule match inside certain ancestor nodes.

prosemirror-collab 0.18.0 (2017-02-24)

New features

sendableSteps now also returns information about the original transactions that produced the steps.

prosemirror-view 0.17.7 (2017-02-08)

Bug fixes

Fixes crash in the code that maintains the scroll position when the document is empty or hidden.

prosemirror-state 0.17.1 (2017-02-08)

Bug fixes

Transaction.scrolledIntoView no longer always returns true.

Selection.near now takes a third textOnly argument, as the docs already claimed.

prosemirror-view 0.17.6 (2017-02-08)

Bug fixes

Transactions that shouldn't scroll the selection into view now no longer do so.

prosemirror-history 0.17.1 (2017-02-02)

Bug fixes

Fix issue where collaborative editing corner cases could corrupt the history.

prosemirror-view 0.17.4 (2017-02-02)

Bug fixes

Fixes bug where widget decorations would sometimes get parsed as content when editing near them.

The editor now prevents the behavior of Ctrl-d and Ctrl-h on textblock boundaries on OS X, as intended.

Make sure long words don't cause a horizontal scrollbar in Firefox

Various behavior fixes for IE11.

prosemirror-view 0.17.3 (2017-01-19)

Bug fixes

DOM changes deleting a node's inner wrapping DOM element (for example the <code> tag in a schema-basic code block) no longer break the editor.

prosemirror-view 0.17.2 (2017-01-16)

Bug fixes

Call custom click handlers before applying select-node behavior for a ctrl/cmd-click.

Fix failure to apply DOM changes that start at document position 0.

prosemirror-commands 0.17.1 (2017-01-16)

Bug fixes

Make sure toggleMark also works in the top-level node (when it is a textblock).

prosemirror-view 0.17.1 (2017-01-07)

Bug fixes

Fix issue where a document update that left the selection in the same place sometimes led to an incorrect DOM selection.

Make sure EditorView.focus doesn't cause the browser to scroll the top of the editor into view.

prosemirror-state 0.17.0 (2017-01-05)

Breaking changes

The way state is updated was changed. Instead of applying an action (a raw object with a type property), it is now done by applying a Transaction.

The EditorTransform class was renamed Transaction, and extended to allow changing the set of stored marks and attaching custom metadata.

New features

Plugins now accept a filterTransaction option that can be used to filter out transactions as they come in.

Plugins also got an appendTransaction option making it possible to follow up transactions with another transaction.

prosemirror-view 0.17.0 (2017-01-05)

Breaking changes

The handleDOMEvent prop has been dropped in favor of the handleDOMEvents (plural) prop.

The onChange prop has been replaced by a dispatchTransaction prop (which takes a transaction instead of an action).

New features

Added support for a handleDOMEvents prop, which allows you to provide handler functions per DOM event, and works even for events that the editor doesn't normally add a handler for.

Add view method dispatch, which provides a convenient way to dispatch transactions.

The dispatchTransaction (used to be onAction) prop is now optional, and will default to simply applying the transaction to the current view state.

Widget decorations now accept an option associative which can be used to configure on which side of content inserted at their position they end up.

Typing immediately after deleting text now preserves the marks of the deleted text.

Transactions that update the selection because of mouse or touch input now get a metadata property pointer with the value true.

prosemirror-model 0.17.0 (2017-01-05)

Breaking changes

Node.marksAt was replaced with ResolvedPos.marks. It still works (with a warning) in this release, but will be removed in the next one.

prosemirror-commands 0.17.0 (2017-01-05)

Breaking changes

The dispatch function passed to commands is now passed a Transaction, not an action object.

prosemirror-view 0.16.0 (2016-12-23)

Bug fixes

Solve problem where setting a node selection would trigger a DOM read, leading to the selection being reset.

prosemirror-state 0.16.0 (2016-12-23)

New features

Plugins now take a view option that can be used to interact with the editor view.

prosemirror-view 0.16.0 (2016-12-23)

Breaking changes

The spellcheck, label, and class props are now replaced by an attributes prop.

Bug fixes

Ignoring/aborting an action should no longer lead to the DOM being stuck in an outdated state.

Typing at the end of a textblock which ends in a non-text node now actually works.

DOM nodes for leaf document nodes are now set as non-editable to prevent various issues such as stray cursors inside of them and Firefox adding image resize controls.

Inserting a node no longer causes nodes of the same type after it to be neednessly redrawn.

New features

Add a new editor prop editable which controls whether the editor's contentEditable behavior is enabled.

Plugins and props can now set any DOM attribute on the outer editor node using the attributes prop.

Node view constructors and update methods now have access to the node's wrapping decorations, which can be used to pass information to a node view without encoding it in the document.

Attributes added or removed by node and inline decorations no longer cause the nodes inside of them to be fully redrawn, making node views more stable and allowing CSS transitions to be used.

prosemirror-view 0.15.2 (2016-12-10)

Bug fixes

The native selection is now appropriately hidden when there is a node selection.

prosemirror-state 0.15.0 (2016-12-10)

Breaking changes

Selection actions no longer scroll the new selection into view by default (they never were supposed to, but due to a bug they did). Add a scrollIntoView property to the action to get this behavior.

prosemirror-view 0.15.0 (2016-12-10)

Breaking changes

The editor view no longer wraps its editable DOM element in a wrapper element. The ProseMirror CSS class now applies directly to the editable element. The ProseMirror-content CSS class is still present for ease of upgrading but will be dropped in the next release.

The editor view no longer draws a drop cursor when dragging content over the editor. The new prosemirror-dropcursor module implements this as a plugin.

Bug fixes

Simple typing and backspacing now gets handled by the browser without ProseMirror redrawing the touched nodes, making spell-checking and various platform-specific input tricks (long-press on OS X, double space on iOS) work in the editor.

Improve tracking of DOM nodes that have been touched by user changes, so that updateState can reliably fix them.

Changes to the document that happen while dragging editor content no longer break moving of the content.

Adding or removing a mark directly in the DOM (for example with the bold/italic buttons in iOS' context menu) now produces mark steps, rather than replace steps.

Pressing backspace at the start of a paragraph on Android now allows key handlers for backspace to fire.

Toggling a mark when there is no selection now works better on mobile platforms.

New features

Introduces an endOfTextblock method on views, which can be used to find out in a bidi- and layout-aware way whether the selection is on the edge of a textblock.

prosemirror-commands 0.15.0 (2016-12-10)

Breaking changes

Drops suppport for delete(Char|Word)(Before|After) and move(Back|For)ward, since we are now letting the browser handle those natively.

Bug fixes

The joinForward and joinBackward commands can now strip out markup and nodes that aren't allowed in the joined node.

New features

A new command exitCode allows a user to exit a code block by creating a new paragraph below it.

The joinForward and joinBackward commands now use a bidirectional-text-aware way to determine whether the cursor is at the proper side of its parent textblock when they are passed a view.

prosemirror-model 0.15.0 (2016-12-10)

Breaking changes

ResolvedPos.atNodeBoundary is deprecated and will be removed in the next release. Use textOffset > 0 instead.

New features

Parse rules associated with a schema can now specify a priority to influence the order in which they are applied.

Resolved positions have a new getter textOffset to find their position within a text node (if any).

prosemirror-transform 0.15.0 (2016-12-10)

Bug fixes

Fix bug where pasted/inserted content would sometimes get incorrectly closed at the right side.

prosemirror-view 0.15.1 (2016-12-10)

Bug fixes

Fix DOM parsing for decorated text nodes.

prosemirror-view 0.14.4 (2016-12-02)

Bug fixes

Fix issue where node decorations would stick around in the DOM after the decoration was removed.

Setting or removing a node selection in an unfocused editor now properly updates the DOM to show that selection.

prosemirror-model 0.14.1 (2016-11-30)

Bug fixes

DOMParser.parseSlice will now ignore whitespace-only text nodes at the top of the slice.

prosemirror-view 0.14.2 (2016-11-30)

Bug fixes

FIX: Avoid unneeded selection resets which sometimes confused browsers.

prosemirror-view 0.14.2 (2016-11-29)

Bug fixes

Fix a bug where inverted selections weren't created in the DOM correctly.

prosemirror-view 0.14.1 (2016-11-29)

Bug fixes

Restores previously broken kludge that allows the cursor to appear after non-text content at the end of a line.

prosemirror-model 0.14.0 (2016-11-28)

New features

Parse rules now support skip (skip outer element, parse content) and getContent (compute content using custom code) properties.

The DOMSerializer class now exports a static renderSpec method that can help render DOM spec arrays.

prosemirror-state 0.14.0 (2016-11-28)

New features

Selection actions now have a time field and an (optional) origin field.

prosemirror-view 0.14.0 (2016-11-28)

Breaking changes

Wrapping decorations are now created using the nodeName property. The wrapper property is no longer supported.

The onUnmountDOM prop is no longer supported (use a node view with a destroy method instead).

The domSerializer prop is no longer supported. Use node views to configure editor-specific node representations.

New features

Widget decorations can now be given a key property to prevent unneccesary redraws.

The EditorView class now has a destroy method for cleaning up.

The handleClickOn prop and friends now receive a direct boolean argument that indicates whether the node was clicked directly.

Widget decorations now support a stopEvent option that can be used to control which DOM events that pass through them should be ignored by the editor view.

You can now specify custom node views for an editor view, which give you control over the way node of a given type are represented in the DOM. See the related RFC.

prosemirror-view 0.13.1 (2016-11-15)

Bug fixes

Fixes event handler crash (and subsequent bad default behavior) when pasting some types of external HTML into an editor.

prosemirror-view 0.13.2 (2016-11-15)

Bug fixes

Fixes an issue where widget decorations in the middle of text nodes would sometimes disappear.

prosemirror-view 0.13.0 (2016-11-11)

Breaking changes

Selecting nodes on OS X is now done with cmd-leftclick rather than ctrl-leftclick.

Bug fixes

Pasting text into a code block will now insert the raw text.

Widget decorations at the start or end of a textblock no longer block horizontal cursor motion through them.

Widget nodes at the end of textblocks are now reliably drawn during display updates.

New features now takes an options object which allows you to specify an onRemove callback to be notified when remapping drops decorations.

The transformPastedHTML and transformPastedText props were (re-)added, and can be used to clean up pasted content.

prosemirror-transform 0.13.0 (2016-11-11)

Bug fixes

Fix issue where Transform.replace would, in specific circumstances, unneccessarily drop content.

New features

The new Transform method replaceRange, replaceRangeWith, and deleteRange provide a way to replace and delete content in a 'do what I mean' way, automatically expanding the replaced region over empty parent nodes and including the parent nodes in the inserted content when appropriate.

prosemirror-commands 0.13.0 (2016-11-11)

New features

The autoJoin function allows you to wrap command functions so that when the command makes nodes of a certain type occur next to each other, they are automatically joined.

prosemirror-model 0.13.0 (2016-11-11)

Breaking changes

ResolvedPos.sameDepth is now called ResolvedPos.sharedDepth, and takes a raw, unresolved position as argument.

New features

DOMSerializer's nodes and marks properties are now public.

ContentMatch.findWrapping now takes a third argument, marks. There's a new method findWrappingFor that accepts a whole node.

Adds Slice.maxOpen static method to create maximally open slices.

DOM parser objects now have a parseSlice method which parses an HTML fragment into a Slice, rather than trying to create a whole document from it.

prosemirror-state 0.13.0 (2016-11-11)

Breaking changes

EditorTransform.replaceSelection now takes a slice, no longer a node. The new replaceSelectionWith method should be used to replace the selection with a node. Until the next release, calling it the old way will still work and emit a warning.

Bug fixes

The documentation for applyAction now actually reflects the arguments this method is given.

New features

A state field's applyAction method is now passed the previous state as 4th argument, so that it has access to the new doc and selection.

EditorTransform.replaceSelection now accepts a slice (or, as before, as a node), and uses a revised algorithm, relying on the defining node flag.

The TextSelection and NodeSelection classes now have a static create convenience method for creating selections from unresolved positions.

Allow transform actions to be extended during dispatch using extendTransformAction. Introduce sealed flag to indicate when this is not safe.

A new utility function NodeSelection.isSelectable can be used to test whether a node can be the target of a node selection.

prosemirror-view 0.12.2 (2016-11-02)

Bug fixes

Inline decorations that span across an empty textblock no longer crash the display drawing code.

prosemirror-history 0.12.1 (2016-11-01)

Bug fixes

Fix crash in undo or redo commands when the history is empty.

prosemirror-view 0.12.1 (2016-11-01)

Bug fixes

Use a separate document to parse pasted HTML to better protect against cross-site scripting attacks.

Specifying multiple classes in a decoration now actually works.

Ignore empty inline decorations when building a decoration set.

prosemirror-transform 0.12.1 (2016-11-01)

Bug fixes

Fix bug in Transform.setBlockType when used in a transform that already has steps.

prosemirror-model 0.12.0 (2016-10-21)

Breaking changes

Drops support for some undocumented options to the DOM serializer that were used by the view.

Bug fixes

When rendering DOM attributes, only ignore null values, not all falsy values.

prosemirror-commands 0.12.0 (2016-10-21)

Bug fixes

Fix crash when backspacing into nodes with complex content expressions.

prosemirror-schema-basic 0.12.0 (2016-10-21)

Bug fixes

Don't treat <b style=font-weight: normal> as strong when parsing. (Google Docs puts such ridiculous HTML on the clipboard.)

prosemirror-state 0.12.0 (2016-10-21)

Breaking changes

The interace to EditorState.toJSON and EditorState.fromJSON has changed.

The way plugins declare their state field has changed. Only one state field per plugin is supported, and state fields no longer have hard-coded names. Plugin.getState is the way to access plugin state now.

Plugin dependencies are no longer supported.

Plugin.reconfigure is gone. Plugins are now always created with new Plugin.

Plugins no longer have a config field.

Bug fixes

Node selections are now properly dropped when mapped over a change that replaces their nodes.

New features

Plugin keys can now be used to find plugins by identity.

Transform actions now have a time field containing the timestamp when the change was made.

prosemirror-transform 0.12.0 (2016-10-21)

Breaking changes

Mapped positions now count as deleted when the token to the side specified by the assoc parameter is deleted, rather than when both tokens around them are deleted. (This is usually what you already wanted anyway.)

prosemirror-keymap 0.12.0 (2016-10-21)

Breaking changes

Key names are now based on KeyboardEvent.key instead of .code. This means that, for character-producing keys, you'll want to use the character typed, not the key name. So Ctrl-Z now means uppercase Z, and you'll usually want Ctrl-z instead. Single-quoted key names are no longer supported.

prosemirror-history 0.12.0 (2016-10-21)

Breaking changes

The history export is now a function that creates a history plugin, rather than a plugin instance.

New features

Add a newGroupDelay plugin option. This brings back the behavior where pausing between edits will automatically cause the history to put subsequent changes in a new undo event.

prosemirror-view 0.12.0 (2016-10-21)

Breaking changes

The return value of EditorView.posAtCoords changed to contain an inside property pointing at the innermost node that the coordinates are inside of. (Note that the docs for this method were wrong in the previous release.)

Bug fixes

Reduce reliance on shift-state tracking to minimize damage when it gets out of sync.

Fix bug that'd produce bogus document positions for DOM positions inside non-document nodes.

Don't treat fast ctrl-clicks as double or triple clicks.

New features

Implement decorations, a way to influence the way the document is drawn. Add the decorations prop to specify them.

prosemirror-view 0.11.2 (2016-10-04)

Bug fixes

Pass actual event object to handleDOMEvent, rather than just its name.

Fix display corruption caused by using the wrong state as previous version during IME.