1
0
mirror of https://github.com/ianstormtaylor/slate.git synced 2025-08-16 04:04:06 +02:00
Commit Graph

461 Commits

Author SHA1 Message Date
github-actions[bot]
bcbc64d944 Version Packages (#5896)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-06-10 15:27:44 -07:00
Joe Anderson
fb87646e86 Experimental chunking optimisation and other performance improvements (#5871)
* Chunking optimization

* Fix comments

* Remove redundant `insertionsMinusRemovals` variable

* Fix typo

* Unblock Netlify builds

* Add placeholder

* Upgrade Playwright (fixes crash when debugging)

* Fix `autoFocus` not working

* Fix huge document test

* Fix the previous issue without changing `useSlateSelector`

* Retry `test:integration`

* Re-implement `useSlateWithV`

* Retry `test:integration`

* Update docs

* Update JS examples to match TS examples

* Upload Playwright's `test-results` directory in CI to access traces

* Change trace mode to `retain-on-first-failure`

* Fix: `Locator.fill(text)` is flaky on Editable

* Add changesets

* Increase minimum `slate-dom` version

* Update changeset

* Update 09-performance.md

* Deprecate the `useSlateWithV` hook

* Fix errors and improve clarity in 09-performance.md

* Minimum `slate-dom` version is now 0.116

* Update `yarn.lock`
2025-06-06 16:42:11 -07:00
github-actions[bot]
583d28fe13 Version Packages (#5888)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-06-03 07:46:07 -07:00
github-actions[bot]
9cce07b23f Version Packages (#5860)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-06-02 07:44:35 -07:00
Joe Anderson
293aca9c7a Fix backspace for Bengali grapheme clusters (#5887) 2025-06-02 07:43:28 -07:00
nabbydude
de260565c7 Optimize editor#above and allow passing a location that doesnt exist as long as its parent exists (#5880)
* optimize editor#apply and allow potential paths as input

* fix Editor#above regression for cross-node ranges

* add test to prevent regressions

* add changeset

* improve comment

* factor out for-loop that will never actually loop

* aw crud I didnt lint. fixing
2025-05-24 16:34:18 -07:00
Joe Anderson
05263b544c Fix Firefox IME bug caused by placeholder (#5881) 2025-05-24 13:56:18 -07:00
Joe Anderson
896bc9c7c7 Fix pasting exactly two blocks (#5875)
* Refactor `insertFragment` without altering behaviour

* Fix inserting a fragment containing exactly two blocks

* Fix and unskip insertFragment list test
2025-05-24 13:54:44 -07:00
Joe Anderson
747ebfda0a Fix IME crash on iOS, but break capitalisation on iOS (#5877)
* Revert "Make capitalizing work for iOS (#5654)"

This reverts commit 2a8b4e958b.

* Add changeset

* Reference the older issue in comment
2025-05-24 13:53:27 -07:00
Alex
11b957a441 Add way to prevent data loss in normalizeNode (#5878)
* fix(docs): Consider passed options when overriding normalizeNode

* feat: Allow to prevent data-loss on normalizeNode

When overriding normalizeNode, you can specify a `wrapperElement`
that is used to wrap text & inline nodes which would otherwise be
deleted in the normalization path if they are not allowed.

* changeset
2025-05-24 13:53:02 -07:00
nabbydude
7f5f9e1c62 Fix certain undos undoing more than they should (#5866)
* prevent false positives for history batch merging

* add changeset
2025-05-14 12:01:55 -07:00
Joe Anderson
98b115b7e1 Increase minimum slate version to 0.114.3 (#5862) 2025-05-14 07:20:56 -07:00
Joe Anderson
72532fd2d7 Optimize isText, isElement, isNodeList and isEditor (#5859)
* Remove the `isPlainObject` check from `isText` and `isElement` for performance

* Optimise `isElement`, `isNodeList` and `isText` further

* Update changeset

* Fix changeset

* Refactor object check into `isObject`
2025-05-05 08:31:56 -07:00
github-actions[bot]
d39bead80a Version Packages (#5857)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-30 18:24:36 -07:00
github-actions[bot]
b001c68b10 Version Packages (#5856)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-30 12:41:43 -07:00
Ziad Beyens
ec367fb04f Missing renderText (#5855)
* fix

* fix
2025-04-30 08:41:04 -07:00
Joe Anderson
9fe6184ca2 Increase slate-react's minimum slate version to 0.114.0 (#5853) 2025-04-30 08:40:53 -07:00
github-actions[bot]
ee2cea9ea1 Version Packages (#5851)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-29 08:37:35 -07:00
Ziad Beyens
22a3dda36d Add renderText and leafPosition (#5850)
* feat

* revert

* revert

* docs

* test

* refactor

* test

* revert

* refactor

* doc

* docs

* refactor

* docs

* test

* docs

* docs

* docs

* refactor
2025-04-29 07:30:57 -07:00
Damjan Polugic
2c62e01797 Use equalityFn in useSlateSelector during render (#5848) 2025-04-29 07:30:41 -07:00
Joe Anderson
0fde537b52 Add changeset for https://github.com/ianstormtaylor/slate/pull/5827 (#5849) 2025-04-29 07:23:57 -07:00
github-actions[bot]
1e9785a173 Version Packages (#5845)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-15 12:54:24 -07:00
github-actions[bot]
a25fbc3503 Version Packages (#5832)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-15 11:38:51 -07:00
Eder is a nobody
701d5f320f fix: add try/finally block in withoutSaving method to ensure state restoration (#5837)
Co-authored-by: ederjiang <eder@57blocks.com>
2025-04-15 11:28:03 -07:00
wkq
463ef3a650 fix: correct dirty path update for Text nodes (#5842)
* fix: correct dirty path update for Text nodes

Previously, the condition used was "if (!Text.isText)" without passing the node, which always evaluated to false. This caused the code to always take the branch intended for non-Text nodes, even for Text nodes. The fix now correctly checks "if (Text.isText(node))" to determine if the node is a Text node. Text nodes, which have no children, will now correctly add only their own path, while non-Text nodes continue to have all their descendant paths added. This change ensures that the dirty path update logic behaves as intended.

* Add changeset

---------

Co-authored-by: Dylan Schiemann <dylan@dojotoolkit.org>
2025-04-15 08:42:42 -07:00
Joe Anderson
63c0db5b86 Add pass option to Editor.nodes (#5843) 2025-04-15 08:41:31 -07:00
Ravi Lamkoti
68915e8cfa fix: context menu undo support (#5822)
* fix: context menu undo support

* chore: add change set for context menu undo fix

* chore: fix lint
2025-03-21 14:08:03 -07:00
github-actions[bot]
ccb9cc20b2 Version Packages (#5799)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-30 16:06:15 -07:00
zhi-zhi-zhi
8216512595 fix: supplement of (fix: Prevent ReactEditor.toDOMRange crash in setDomSelection #5741) (#5792)
* fix: supplement of (fix: Prevent ReactEditor.toDOMRange crash in setDomSelection #5741)

* Update packages/slate-dom/src/plugin/with-dom.ts

* Update packages/slate-dom/src/plugin/with-dom.ts

* Create gold-tomatoes-grab.md

* Update packages/slate-dom/src/plugin/with-dom.ts

* Update packages/slate-dom/src/plugin/with-dom.ts

---------

Co-authored-by: Dylan Schiemann <dylan@dojotoolkit.org>
2025-01-27 07:05:42 -07:00
github-actions[bot]
49da0dfc53 Version Packages (#5796)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-20 10:34:09 -07:00
Joe Anderson
f456dfbf13 Ignore selectionchange events originating from <input> and <textarea> elements (#5795)
* Ignore `selectionchange` events originating from `<input>` and `<textarea>` elements

* Linter fixes
2025-01-20 08:08:46 -07:00
github-actions[bot]
dbd0a3efec Version Packages (#5767)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-07 13:24:38 -07:00
yf-yang
5a1c728c62 feat: add optional method to decoration object (#5776) 2024-12-07 00:19:30 -07:00
Alex
4bc552f71f Fix normalizeNode to keep text/inline nodes when removing blocks (#5768)
* fix: fix data loss in base `normalizeData` if no blocks allowed

Use `unwrapNodes` instead of `removeNodes` to
convert block to inline/text nodes.

* changeset
2024-11-22 17:01:11 -07:00
Adrien Poupa
90fbcdeff5 fix: Prevent ReactEditor.toDOMRange crash in setDomSelection (#5741) 2024-11-19 11:19:24 -07:00
Ty Mick
644ebdc8f5 Use extended Editor type in useSlateWithV return type (#5763)
* Use extended `Editor` type in `useSlateWithV` return type

So it matches the return types of `useSlate` and `useSlateStatic`. The
`useSlateWithV` return object's `editor` property is currently typed as
just a `ReactEditor`, which causes type errors in our app when we try to
use it as the extended `Editor` type.

* Fix return types in "Editor hooks" docs
2024-11-19 11:14:47 -07:00
github-actions[bot]
49ba21a7ba Version Packages (#5758)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-11-01 10:44:47 -07:00
Brian Ingles
9a21251270 refactor: Split out slate dom package (#5734)
* Copied some things from slate-react into new react-dom package

* Refactor slate-react to use slate-dom

* Fixed failing tests

* Created changeset

* Ran fix:prettier

* Fixed name

* Removed duplicate code

* Fixed import

* Restored linting rule

* Bumped slate-dom version

* Bumped slate dependency version

* Added export of IS_NODE_MAP_DIRTY after rebase
2024-10-31 07:20:34 -07:00
Dylan Schiemann
7e1608018b Add forthcoming slate-dom package to changeset config (#5753)
* Add forthcoming slate-dom package to changeset config

* Update .changeset/config.json
2024-10-31 07:18:34 -07:00
github-actions[bot]
f9ebbb8808 Version Packages (#5744)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-10-24 06:21:28 -07:00
DustinMackintosh
e97a9f8857 fix: invalidate node maps when nodes change in-between paints #5694. (#5746)
* fix: invalidate node maps when nodes change in-between paints #5694.

* Add patch changeset

* Catch additional invalide reference on Android
2024-10-23 23:12:03 -07:00
Ziad Beyens
0e1e4b4dbf History: withNewBatch (#5747)
* feat

* Create gold-cheetahs-rest.md

* refactor

* fix
2024-10-21 04:55:54 -07:00
github-actions[bot]
f2e2117bdb Version Packages (#5719)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-10-16 22:10:39 -07:00
Czy
cd21bb1f80 fix: sync state on undo when editor is unfocused (#5737)
* fix: undo event when not focused

* chore: add changeset

* Add `HistoryEditor.withMerging` to docs (#5738)

* chore: just trigger test:integration

* chore: trigger test:integration

* fix: firefox test integration environment (#5742)

* fix: fix firefox test integration env

* chore: test ubuntu apt source

* chore: IMMUTABLE_INSTALLS ?

* fix: ubuntu version

* fix: undo event when not focused

* chore: add changeset

* chore: just trigger test:integration

* chore: trigger test:integration

---------

Co-authored-by: Ty Mick <5317080+TyMick@users.noreply.github.com>
2024-10-16 10:15:21 -07:00
Electrolux
b1a1021612 feat: add prop surrounds with range (#5729)
* feat: add prop surrounds with range

* Create small-carrots-jam.md

* fix: docx about range.included

---------

Co-authored-by: Dylan Schiemann <dylan@dojotoolkit.org>
2024-09-26 06:18:05 -07:00
Hernán Sartorio
335c54188f Call unref on pathRefs created for move_node (#5727)
* Call unref on pathRefs created for move_node

* Create old-frogs-run.md

---------

Co-authored-by: Dylan Schiemann <dylan@dojotoolkit.org>
2024-09-26 00:24:33 -07:00
Ravi Lamkoti
ee2c45408c feat: add Node.getIf method (#5723)
* feat: add Node.getIf support

* chore: restructure get to use getIf
2024-09-26 00:23:48 -07:00
Czy
f31167cf5f fix: marks at the start of the selection (#5725)
* fix: marks at the start of the selection

* chore: modify unit test description
2024-09-26 00:21:49 -07:00
github-actions[bot]
85a1e1d3f3 Version Packages (#5717)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-09-12 14:37:18 -07:00
Ty Mick
10abeff84f Fix selections with non-void non-editable focus (#5716)
* Fix selections with non-void non-editable focus

"Non-void non-editable" refers to `contentEditable={false}` DOM nodes
that are rendered by a Slate element render but which are not void
elements. For instance, [the checkboxes in the checklists example][1].

[1]: 7e77a932f0/site/examples/check-lists.tsx (L153-L170)

* fixup! Fix selections with non-void non-editable focus

Optimize leaf node search

* fixup! Fix selections with non-void non-editable focus

Rename `focusNodeSelectable` to `focusNodeIsSelectable`

A more accurate name given this PR's changes.

* fixup! Fix selections with non-void non-editable focus

Remove inapplicable `if` branch

* fixup! Fix selections with non-void non-editable focus

Improve comment
2024-09-12 10:53:44 -07:00