Releases: ianstormtaylor/slate
slate-react@0.63.0
slate@0.62.1
Patch Changes
-
#4193
fd70dc0b
Thanks @beorn! - Fixed insert and remove text operations to no-op without any text. -
#4078
2dad21d1
Thanks @TheSpyder! - Fixed inversion ofset_node
operations that delete properties on nodes. -
#4168
95f402c5
Thanks @ridhambhat! - Fixed a bug in splitting and applying overlapping marks to text nodes.
slate-react@0.62.1
Patch Changes
-
#4118
6a137633
Thanks @kamilkazmierczak! - Improved detection of legacy browsers that don't have properbeforeinput
support. -
#4190
ea2eefef
Thanks @juliankrispel! - Added arenderPlaceholder
prop to the<Editable>
component for customizing how placeholders are rendered. -
#4157
de5cc7e5
Thanks @githoniel! - Fixed a bug when syncing the selection for IME-based editing. -
#4158
ea6dc089
Thanks @githoniel! - Fixed a bug that resulted in doubly-input characters when using an IME. -
#4211
1c32b97d
Thanks @clauderic! - Collapse expanded selection before handlingmoveWordBackward
(alt + left
) andmoveWordForward
(alt + right
) hotkeys. -
#4219
737aaa9c
Thanks @juliankrispel! - Fixes error that occurs when Editor is rendered inside iframe
v0.61.3
v0.61.3
0.19.0
BREAKING CHANGES
- The
filterDescendants
andfindDescendants
methods are now depth-first. This shouldn't affect almost anyone, since they are usually not the best things to be using for performance reasons. If you happen to have a very specific use case that needs breadth-first, (or even likely something better), you'll need to implement it yourself.
DEPRECATION CHANGES
- Some
Node
methods have been deprecated! There were a few methods that had been added over time that were either poorly named that have been deprecated and renamed, and a handful of methods that are no longer useful for the core library that have been deprecated. Here's a full list:areDescendantSorted
->areDescendantsSorted
getHighestChild
->getFurthestAncestor
getHighestOnlyChildParent
->getFurthestOnlyChildAncestor
concatChildren
decorateTexts
filterDescendantsDeep
findDescendantDeep
getChildrenBetween
getChildrenBetweenIncluding
isInlineSplitAtRange
0.18.0
BREAKING CHANGES
- The
plugin.render
property is now calledplugin.renderPortal
. This is to make way for the newplugin.render
property that offers HOC-like behavior, so that plugins can augment the editor however they choose.
0.17.0
DEPRECATION CHANGES
-
Some
Selection
methods have been deprecated! Previously there were many inconsistencies in the naming and handling of selection changes. This has all been cleaned up, but in the process some methods have been deprecated. Here is a full list of the deprecated methods and their new alternatives:moveToOffsets
->moveOffsetsTo
moveForward
->move
moveBackward
->move
moveAnchorOffset
->moveAnchor
moveFocusOffset
->moveFocus
moveStartOffset
->moveStart
moveEndOffset
->moveEnd
extendForward
->extend
extendBackward
->extend
unset
->deselect
-
Some selection transforms have been deprecated! Along with the methods, the selection-based transforms have also been refactored, resulting in deprecations. Here is a full list of the deprecated transforms and their new alternatives:
moveTo
->select
moveToOffsets
->moveOffsetsTo
moveForward
->move
moveBackward
->move
moveStartOffset
->moveStart
moveEndOffset
->moveEnd
extendForward
->extend
extendBackward
->extend
flipSelection
->flip
unsetSelection
->deselect
unsetMarks
0.16.0
BREAKING CHANGES
- Inline nodes are now always surrounded by text nodes. Previously this behavior only occured for inline nodes with
isVoid: true
. Now, all inline nodes will always be surrounded by text nodes. If text nodes don't exist, empty ones will be created. This allows for more consistent behavior across Slate, and parity with other editing experiences.
0.15.0
BREAKING CHANGES
- The unique
key
generated values have changed. Previously, Slate generated unique keys that looked like'9dk3'
. But they were not very conflict-resistant. Now the keys are simple string of auto-incrementing numbers, like'0'
,'1'
,'2'
. This makes more clear that keys are simply a convenient way to uniquely reference nodes in the short-term lifespan of a single in-memory instance of Slate. They are not designed to be used for long-term uniqueness. A newsetKeyGenerator
function has been exported that allows you to pass in your own key generating mechanism if you want to ensure uniqueness. - The
Raw
serializer doesn't preserve keys by default. Previously, theRaw
serializer would omit keys when passed theterse: true
option, but preserve them without it. Now it will always omit keys, unless you pass the newpreserveKeys: true
option. This better reflects that keys are temporary, in-memory IDs. - Operations on the document now update the selection when needed. This won't affect you unless you were doing some very specific things with transforms and updating selections. Overall, this makes it much easier to write transforms, since in most cases, the underlying operations will update the selection as you would expect without you doing anything.
DEPRECATION CHANGES
- Node accessor methods no longer accept being passed another node! Previously, node accessor methods like
node.getParent
could be passed either akey
string or anode
object. For performance reasons, passing in anode
object is being deprecated. So if you have any calls that look like:node.getParent(descendant)
, they will now need to be written asnode.getParent(descendant.key)
. They will throw a warning for now, and will throw an error in a later version of Slate.
0.14.0
BREAKING CHANGES
- The
undo
andredo
transforms need to be applied! Previously,undo
andredo
were special cased such that they did not require an.apply()
call, and instead would return a newState
directly. Now this is no longer the case, and they are just like every other transform. - Transforms are no longer exposed on
State
orNode
. The transforms API has been completely refactored to be built up of "operations" for collaborative editing support. As part of this refactor, the transforms are now only available via thestate.transform()
API, and aren't exposed on theState
orNode
objects as they were before. Transform
objects are now mutable. PreviouslyTransform
was an Immutable.jsRecord
, but now it is a simple constructor. This is because transforms are inherently mutating their representation of a state, but this decision is up for discussion.- The selection can now be "unset". Previously, a selection could never be in an "unset" state where the
anchorKey
orfocusKey
was null. This is no longer technically true, although this shouldn't really affect anyone in practice.