1
0
mirror of https://github.com/ianstormtaylor/slate.git synced 2025-09-08 22:20:41 +02:00
Commit Graph

716 Commits

Author SHA1 Message Date
Dylan Schiemann
b940640fc8 Revert "Added types for options and common string literals (#4968)" (#4969)
This reverts commit ef09c8cf6e.
2022-04-25 22:26:45 -07:00
Josh Goldberg
ef09c8cf6e Added types for options and common string literals (#4968) 2022-04-25 22:26:15 -07:00
github-actions[bot]
f362cd7a19 Version Packages (#4953)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-04-19 13:10:05 -07:00
Steve Marquis
9ce0a08c2a Fix positions iteration when starting in an inline void node (#4952) 2022-04-19 13:02:01 -07:00
github-actions[bot]
5160efeea4 Version Packages (#4935)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-04-13 11:14:29 -07:00
Alex
c39c8082a9 Fix pointRef leaks caused by not unref'ing (#4939)
* Fix pointRef leaks caused by not unref'ing

May cause severe performance degradation if more and more point refs
need to be updated.

* changeset
2022-04-12 09:56:51 -07:00
github-actions[bot]
4df23c6e41 Version Packages (#4921)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-04-03 10:02:04 -07:00
github-actions[bot]
ce63a08c8e Version Packages (#4898)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-03-25 01:03:44 +00:00
zhugexinxin
43ca2b56c8 feat: add merge to setNodes and test (#4912)
* feat: add merge to setNodes and test

* Add changset

Co-authored-by: Dylan Schiemann <dylan@dojotoolkit.org>
2022-03-24 00:25:36 -07:00
Dylan Schiemann
3453432f7a Revert "Add merge to set node (#4905)" (#4913)
This reverts commit 9c758bb4cb.
2022-03-24 00:24:48 -07:00
zhugexinxin
9c758bb4cb Add merge to set node (#4905)
* feat: add merge to setNodes

* chore: add merge to setNodes test

* chore: prettier

* chore: change to PropsMerge

* chore: restore the changes for addMark
2022-03-23 22:56:17 -07:00
Bryan Haakman
20acca4bc8 Add soft break as a separate overridable editor method (#4873)
add changeset
2022-03-20 04:30:08 -07:00
github-actions[bot]
1433499e98 Version Packages (#4890)
* Version Packages

* Update packages/slate/CHANGELOG.md

* Update packages/slate/CHANGELOG.md

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Dylan Schiemann <dylan@dojotoolkit.org>
2022-03-14 22:36:10 -07:00
zhugexinxin
970523f881 feat: add custom compare node props (#4889)
* feat: add custom compare props

* chore: add test for custom compare props
2022-03-14 16:21:44 -07:00
github-actions[bot]
f0530d2097 Version Packages (#4859)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-03-01 22:50:27 -07:00
Andrew Herron
33be22f3e3 Reverted 03861af (#4804) and added a test for the exception it caused (#4858) 2022-03-01 22:47:00 -07:00
github-actions[bot]
442d263672 Version Packages (#4843)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-02-23 13:16:57 -07:00
Samu
482b090e6f fix point transform for insert_text to account for affinity (#4848)
* fix point transform for insert_text

* add changeset
2022-02-23 13:08:00 -07:00
github-actions[bot]
4b97197f9a Version Packages (#4815)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-01-31 12:43:10 -07:00
V_Lute
03861afc62 update insertText logic when selection is not collapsed (#4804)
* update insertText logic when selection is not collapsed

* add changeset

* fix bug when end of range is void

Co-authored-by: zhangpengcheng15 <zhangpengcheng15@jd.com>
2022-01-28 09:33:57 -07:00
Bryan Haakman
01dc0c57b2 Fix failing unhangRange test case with inlines (#4814)
* Add failing unhangRange test case

* Fix failing inline case?

* fix lint
2022-01-28 09:33:20 -07:00
Dylan Schiemann
cc9cba017a Revert "Warn when normalization removes node (#4769)" (#4776)
This reverts commit 0ca31e7498.
2022-01-07 16:21:54 -07:00
Jim Fisher
0ca31e7498 Warn when normalization removes node (#4769)
* Warn when normalization removes node

Slate requires the invariant that children are all blocks or all inlines.
It enforces this in default normalization by removing children.
When such a node is removed, it's almost certainly due to a programming
error: the developer needs to fix their application to ensure it
maintains this invariant. But currently Slate does not tell the
developer this.

I made such a programming error, and spent a long time debugging nodes
that mysteriously went missing. I would have fixed it within 30 seconds
if Slate had warned me when it detected this error.

(Note I have used console.warn despite the eslint rule. As far as I can
see, Slate has no other facility for runtime warnings.)

* Add changeset
2022-01-05 17:44:48 -07:00
github-actions[bot]
735d2d047a Version Packages (#4743)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-12-23 05:22:05 -07:00
github-actions[bot]
a54a8e317f Version Packages (#4736)
* Version Packages

* Update CHANGELOG.md

Add a missing changeset from one of the PRs.

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Dylan Schiemann <dylan@dojotoolkit.org>
2021-12-22 05:05:07 -07:00
Ivan Voskoboinyk
205d4b7e66 Add tests for Editor.unhangRange() (#4703)
* Add tests for Editor.unhangRange()

* Extend tests for `Editor.unhangRange()` to cover voids

* Fix lint

* Add changeset
2021-12-22 05:02:50 -07:00
Steve Marquis
e5427dddfc Avoid transforming dirty paths if the op won't touch them (#4735)
* Avoid transforming dirty paths if the op won't touch them

* Avoid the loop entirely if op doesn't affect path
2021-12-18 08:39:09 -07:00
github-actions[bot]
dc2999a1aa Version Packages (#4713)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-12-07 06:57:26 -07:00
Bryan Haakman
2fc7ad924c Allow Operation type to be extended (#4708)
* Allow Operation type to be extended

* fix lint

* add changeset
2021-12-04 08:54:16 -07:00
github-actions[bot]
fece5c1570 Version Packages (#4683)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-11-23 03:17:06 -07:00
unageek
e3afda9466 fix: cursor jumps more than one character unexpectedly (#4671)
* Add test cases suggested in https://github.com/ianstormtaylor/slate/issues/4649#issuecomment-974015248

* fix: cursor jumping more than one character

* Optimization

* Make ZWJs in test strings visible
2021-11-23 01:45:08 -07:00
Victor Baron
2523dc4f6e Fix deep-equality for array properties (#4672) 2021-11-22 09:09:51 -07:00
github-actions[bot]
9874ed704f Version Packages (#4637)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-11-07 07:09:15 -07:00
Jimmy Oliger
5818aca503 Fix issue with unicode 1.1 smileys (#4565) 2021-11-04 08:06:41 -07:00
Ivan Voskoboinyk
e0f41514a1 Improve props argument type in Transforms.setNodes() (#4638)
* Fix `setNodes()` props argument type

Because Typescript can know which type of nodes we are modifying thanks to the `T` inferred from `match` function, 
it can also properly narrow down the `props` argument type.

* Fix TS errors in examples

* Add a changeset
2021-11-04 04:43:18 -07:00
github-actions[bot]
d467e33c33 Version Packages (#4610)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-10-24 08:11:55 -07:00
Jim Fisher
67badb7dd0 Allow typing at the end of an inline element (#4578)
* Allow typing at the end of an inline

This fixes https://github.com/ianstormtaylor/slate/issues/4524

Steps to reproduce the buggy behavior:

* Create a page with an inline element, or go to
  https://codepen.io/jameshfisher/pen/xxrXvVO
* Put the cursor at the end of the inline code element
* Type something

Expected behavior: If the cursor is at the end of an inline, text
should be inserted at the end of the inline.

Actual behavior: Slate moves the cursor outside the inline before
inserting text.

This current behavior is explicitly coded. I nevertheless claim that
this is a bug, or at least a misfeature in core. My expected behavior
comes from:

* The fact that the cursor is inside the inline. For the user, the
  blinking cursor is visually inside the inline, not outside it. For the
  developer, the cursor (i.e. editor.selection) is inside the inline,
  not outside it. The definition of "the cursor" is "this is where your
  text will go when you type". To break that behavior is really jarring.
* Slate's principle that "all of its logic is implemented with a series
  of plugins". If the current behavior is actually desirable in some
  circumstance, it should be in a plugin, not core. It's harder and less
  elegant for me to remove the core behavior with my own plugin.
* Comparison with other editors. The following editors all insert text
  at the end of the inline, as expected: default contenteditable,
  Medium, Coda.io, Google Docs, OneNote, Evernote, QuillJS, TinyMCE,
  EditorJS, ProseMirror. Two editors with the current buggy behavior are
  Notion and Dropbox Paper, but I find it hard to imagine that their
  current behavior on this issue is actually designed, and not just
  accidental.
* Usability: how else is the user supposed to enter text at the end of
  the inline ..? The only way seems to be to insert text before the end
  of the inline, and then delete the rest of the inline. This is
  obviously horrible.

* add changeset

* Fix test: insert at the end of an inline should _not_ have special behavior

* The selection is no longer moved in insertText so we don't need this special case

* fix:prettier

* Revert "The selection is no longer moved in insertText so we don't need this special case"

This reverts commit f9f36cd439.

* Explain the real reason for this special case - native browser bugs
2021-10-19 10:46:17 -07:00
github-actions[bot]
3678590ccf Version Packages (#4594)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-10-18 14:05:11 -07:00
github-actions[bot]
f04cc58270 Version Packages (#4553)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-09-28 12:58:28 -04:00
github-actions[bot]
38717ad455 Version Packages (#4539)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-09-23 12:28:47 -07:00
Steve Marquis
0da12c17dc Fix setNodes when called with 'split' and a collapsed range (#4523)
* Fix setNodes when called with 'split' and a collapsed range

* Only bail if it's a non-empty text node

* Fix comment
2021-09-23 06:45:03 -07:00
github-actions[bot]
35b722cadd Version Packages (#4520)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-09-14 01:20:36 -07:00
Andrew Herron
6ec399d4db Fixed nested object comparison when the second value doesn't have that key (#4518) 2021-09-14 00:32:47 -07:00
github-actions[bot]
2a346ded9d Version Packages (#4436)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-09-10 17:54:01 -07:00
Dylan Schiemann
269e59c93a Immer 9 security update (#4505)
* add yarn upgrade-interactive plugin

* chore(immer): update immer to address security issue

* Add changeset
2021-09-09 14:16:50 -07:00
Tom Scott
50bb3d7e32 Upgrade is-plain-object to v5.0.0 (#4500)
* Upgrade `is-plain-object` to v5.0.0

The `is-plain-object` package recently had a major version upgrade that
broke libraries which import its default export, such as this one. This
causes issues when other packages in the same application require a
higher version of `is-plain-object`, resulting in an error originating
in Slate's codebase. To remedy this, Slate is now depending on
`is-plain-object@^5.0.0` and its import references across the codebase
have been updated.

Fixes #4499

* Add changeset

Co-authored-by: Dylan Schiemann <dylan@dojotoolkit.org>
2021-09-09 12:55:13 -07:00
JokcyLou
dd752df11d fix cursor not correct when insert multiple nodes using insertNodes (#4482)
* fix cursor not correct when insert multiple nodes using insertNodes

* fix lint

* add changeset
2021-09-07 04:39:47 -07:00
Nemanja Tosic
1b560de3e1 Fix paste to empty node losing structure of first block (#4489) 2021-09-06 12:00:54 -07:00
Bryan Haakman
8eb1abac87 Migrate yarn to berry v3 (#4417)
* Migrate to yarn berry v3

* Fix yarn dependencies for linting

* Specifically invoke bash in yarn clean to make brace expansion work

* Upgrade cypress to 8.x to support yarn berry

* Try out yarn berry workaround for netlify

From https://answers.netlify.com/t/using-the-new-yarn-release-2-0-0-berry/8270

* Update .yarnrc.yml for syntax consistency

Co-authored-by: Dylan Schiemann <dylan@dojotoolkit.org>

* use rimraf for clean command with escaped glob pattern

* Use workspace:* resolution for workspace packages and rewrite yarn.lock

* set workspace package versions explicit again

* update peer dependencies

* disable import/named for ts and tsx files

* Replace 'key' with 'key=true' wherever babel complains

* replace all instances of key to someKey in tests to satisfy eslint and babel

* remove unnecessary yarn packageExtension and remove cross-env dependency

* upgrade yarn to latest

* Upgrade next.js to 10.x to support yarn berry

* update .yarnrc to satisfy netlify

Co-authored-by: Dylan Schiemann <dylan@dojotoolkit.org>
2021-08-28 04:59:10 -07:00
Tim
95c759a19c Normalization: Nonempty to empty to inline should remove empty node (#4458)
* Normalization: Nonempty to empty to inline should remove empty node

* Fix lint
2021-08-21 03:55:28 -07:00