BREAKING CHANGES
- Void components are no longer rendered implicity! Previously, Slate would automatically wrap any node with
isVoid: true
in a<Void>
component. But doing this prevented you from customizing the wrapper, like adding aclassName
orstyle
property. So you must now render the wrapper yourself, and it has been exported asSlate.Void
. This, combined with a small change to the<Void>
component's structure allows the "selected" state of void nodes to be rendered purely with CSS based on the:focus
property of a<Void>
element, which previously had to be handled in Javascript. This allows us to streamline selection-handling logic, improving performance and reducing complexity. data-offset-key
is now<key>-<index>
instead of<key>:<start>-<end>
. This shouldn't actually affect anyone, unless you were specifically relying on that attribute in the DOM. This change greatly reduces the number of re-renders needed, since previously any additional characters would cause a cascading change in the<start>
and<end>
offsets of latter text ranges.