* fix: types for richtext.tsx
* fix: types for check-lists, code-highlighting and custom placeholder
* fix: types for editable-voids, embeds, forced-layout, hovering-toolbar
* fix: types for remaining examples
* fix: typescript error for files in image element
* fix: types for examples and some minor fixes
* fix: normalize-tokens.ts type
* fix: types for [example].tsx
I noticed that the current example for toggling a code block using the backtick (`) key doesn't work as expected. The issue occurs because `Editor.nodes()` can return text nodes instead of block elements, causing`Transforms.setNodes()` to fail.
To fix this, I added an extra check using `Element.isElement(n)`, ensuring that only block elements are transformed.
When documenting how to apply character-level styling, use `addMark` and `removeMark` instead of `setNodes`. This avoids new users creating code that only works in the simplest cases.
Similarly, update the Hovering Toolbar example to apply marks instead of setting nodes.
This change was prompted by a discussion on Slack where the developer was disappointed that `markableVoid` did not appear to be working. The problem was they were using `setNodes` to apply Marks, and did not use the same `match` function that `addMark` uses.
* Proposal for Remove useCallback from walkthroughs
I have seen in the walkthrough the use of `useCallback` but I don't think are need it, and add a small complexity while understanding the concept, if we moved out the function outside of the component will be stable and will not require to maintain either referential identity or calculated complex logic.
If people think this is a good idea I can go and update all documentation to remove unnecessary `useCallback` from the example.
unless I'm missing something.
* Update docs/walkthroughs/04-applying-custom-formatting.md
Co-authored-by: Dylan Schiemann <dylan@dojotoolkit.org>
* fix: code blocks's info string
this info string. should be `jsx`
* fix: editor's exec invoke
now, editor.exec() is not available in Slate v0.57.1
so, use editor.insertText() to instead it
* refactor: delete a nerver used value
* update add new chinese translate
update chinese translate to `v0.57.1`
Co-authored-by: Ian Storm Taylor <ian@ianstormtaylor.com>
* add lowest mode and universal flag to `Editor.nodes`
* add `mode` handling to all transforms
* add extra `Editor.is*` helpers
* change `Editor.previous` to make all optional
* change `Editor.next` to make all optional
* change `Editor.match` to make all optional
* add `Editor.void` helper
* remove non-function match arguments
* remove NodeMatch interface
* change to lowest match by default everywhere
* rename `Editor.match` to `Editor.above`
* use new helpers
* cleanup
* make NodeEntry generic, cleanup
* fix NodeEntry generics
* ensure only ancestors are returned from Editor.above
* add type-narrowing to `Editor.nodes`, remove extras
* remove other Node entry types
* cleanup
* remove `Editor.block` and `Editor.inline` helpers