NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2590 most downloaded on npm
ProseMirror's view component
Last release 24 days ago
24 Aug 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 59 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
307 releases · first in 2016
Fix issue where typing over the entire contents of an inline node on IE11 would insert the typed content in the wrong position.
Fix issue where typing over the entire contents of an inline node on IE11 would insert the typed content in the wrong position.
Fix an issue where IE11 would select the entire textblock after deleting content at its start.
Fix an issue where IE11 would select the entire textblock after deleting content at its start.
View instances now have a public editable property that indicates whether they are in editable mode.
One column per quarter.
Fix a regression in 1.10.2 that broke copying on IE11.
Fix a regression in 1.10.2 that broke copying on IE11.
Fix an issue where posAtCoords could crash by dereferencing undefined in some circumstances.
Fix an issue where posAtCoords could crash by dereferencing undefined in some circumstances.
Fix inserting text next to a hard break in IE11.
Fix an issue where typing over a selection would result in two different transactions (once for the deletion, once for the insertion) on IE11.
Selecting the word at the start of the document and typing over it no longer causes the text input to appear at the end of the document in IE11.
Copying content will no longer create elements in the main document, which prevents images from loading just because they appear in clipboard content.
Copying content will no longer create elements in the main document, which prevents images from loading just because they appear in clipboard content.
Fix an issue that caused the cursor to be scrolled into view when focus() was called on IE11.
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.
Node views can now ignore selection change events through their ignoreMutation callback.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fix an issue where copying content from a ProseMirror instance into an instance using another schema could, in some circumstances, insert schema-viola
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.
Fix a crash posAtCoords in Firefox when the coordinates are above a text input field.
Fix a crash posAtCoords in Firefox when the coordinates are above a text input field.
Fix an issue where the DOM change handler would treat the parsed content as the wrong part of the document.
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.
Fix a crash in coordsAtPos caused by use of an incorrect variable name.
Fix a crash in coordsAtPos caused by use of an incorrect variable name.
Fix arrowing over unselectable inline nodes in Chrome and Safari, which by default introduce an extra needless cursor position before the node.
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).
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 r
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 will no longer try to stabilize the scroll position during updates on browsers that support scroll anchoring, since it'd inadvertently can
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.
Fix bug in composition handling when the composition's parent node has an extra wrapper node around its content.
Fix bug in composition handling when the composition's parent node has an extra wrapper node around its content.
Fix regression in handling text editing events on IE11.
Fix regression in handling text editing events on IE11.
Fix a regression where all plugin views were recreated when calling `setProps`.
Fix a regression where all plugin views were recreated when calling setProps.
Fix a bug where, if the document was changed at exactly the right moment, handleClickOn could be called with null as the node.
Fix a bug where, if the document was changed at exactly the right moment, handleClickOn could be called with null as the node.
Fix a bug where updating to a reconfigured state would not recreate the view's plugin views.
Fix a bug where updating to a reconfigured state would not recreate the view's plugin views.
Fix a regression where mouse selection would sometimes raise an error.
Fix a regression where mouse selection would sometimes raise an error.
Changes made during compositions now immediately fire transactions on each update, rather than only a single one at the end of the composition.
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.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Improve display update times for nodes with thousands of children by fix an accidental piece of quadratic complexity.
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.
Fix a regression from 1.8.4 that made it return unreasonable rectangles for positions between blocks.
Fix a regression from 1.8.4 that made it return unreasonable rectangles for positions between blocks.
The `handlePaste` prop is now activated even when the default parser can't make any sense of the clipboard content.
The handlePaste prop is now activated even when the default parser can't make any sense of the clipboard content.
Fix a bug where decorations splitting a text node would sometimes confuse the display updater and make decorated nodes disappear.
Fix a bug where decorations splitting a text node would sometimes confuse the display updater and make decorated nodes disappear.
Multiple `transformPastedHTML` props are now all properly called in order, rather than only the first one.
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.
`EditorView.coordsAtPos` is now more accurate in right-to-left text on Chrome and Firefox.
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.
Fix an issue where clicking when there's a non-text selection active sometimes doesn't cause the appropriate new selection.
Fix an issue where clicking when there's a non-text selection active sometimes doesn't cause the appropriate new selection.
Fix an issue where a view state update happening between a change to the DOM selection and the corresponding browser event could disrupt mouse selecti
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.
Fix infinite loop in coordsAtPos.
Fix infinite loop in coordsAtPos.
Fix a bug where `endOfTextblock` spuriously returns true when the cursor is in a mark.
Fix a bug where endOfTextblock spuriously returns true when the cursor is in a mark.
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.)
`endOfTextblock` now works on textblocks that are the editor's top-level node.
endOfTextblock now works on textblocks that are the editor's top-level node.
Pressing shift-left/right next to a selectable node no longer selects the node instead of creating a text selection across it.
Pressing shift-left/right next to a selectable node no longer selects the node instead of creating a text selection across it.
Fix an issue on Safari where an Enter key events that was part of a composition is interpreted as stand-alone Enter press.
Fix an issue on Safari where an Enter key events that was part of a composition is interpreted as stand-alone Enter press.
Fix an issue where node selections on uneditable nodes couldn't be copied or cut on Chrome.
Fix an issue where node selections on uneditable nodes couldn't be copied or cut on Chrome.
The editable view now recognizes the spanning mark property.
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 replac
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.
Avoids redrawing of content with marks when other content in front of it is deleted.
Avoids redrawing of content with marks when other content in front of it is deleted.
Work around a Chrome bug where programmatic changes near the cursor sometimes cause the visible and reported selection to disagree.
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.
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.
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.
Fix pasting when both text and files are present on the clipboard.
Fix pasting when both text and files are present on the clipboard.
The editor will no longer try to handle file paste events with the old-browser compatibility kludge (which might cause scrolling and focus flickering)
The editor will no longer try to handle file paste events with the old-browser compatibility kludge (which might cause scrolling and focus flickering).
Fixes an issue where event handlers were leaked when destroying an editor
Fixes an issue where event handlers were leaked when destroying an editor
Fixes situation where a vertical `endOfTextblock` query could get confused by nearby widgets or complex parent node representation.
Fixes situation where a vertical endOfTextblock query could get confused by nearby widgets or complex parent node representation.
Fixes a corner case in which DecorationSet.map would map decorations to incorrect new positions.
Fixes a corner case in which DecorationSet.map would map decorations to incorrect new positions.
When the editor contains scrollable elements, scrolling the cursor into view also scrolls those.
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
The cursor is now scrolled into view after keyboard driven selection changes even when they were handled by the browser.
The cursor is now scrolled into view after keyboard driven selection changes even when they were handled by the browser.
Improves selection management around widgets with no actual HTML content (possibly drawn using CSS pseudo elements).
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.
Fix issue where some DOM selections would cause a non-editable view to crash when reading the selection.
Fix issue where some DOM selections would cause a non-editable view to crash when reading the selection.
Mark views are now passed a boolean that indicates whether the mark's content is inline as third argument.
Mark views are now passed a boolean that indicates whether the mark's content is inline as third argument.
Fix an issue where a non-empty DOM selection could stick around even though the state's selection is empty.
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.
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.
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.
Fix an issue where reading the selection from the DOM might crash in non-editable mode.
Fix an issue where reading the selection from the DOM might crash in non-editable mode.
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.
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.
The dispatchTransaction prop is now called with this bound to the editor view.
The dispatchTransaction prop is now called with this bound to the editor view.
Your coding agent can read these notes before it upgrades. Set up the MCP server →