This PR adds better TypeScript types into Slate and is based on the proposal here: https://github.com/ianstormtaylor/slate/issues/3725
* Extend Slate's types like Element and Text
* Supports type discrimination (ie. if an element has type === "table" then we get a reduced set of properties)
* added custom types
* files
* more extensions
* files
* changed fixtures
* changes eslint file
* changed element.children to descendant
* updated types
* more type changes
* changed a lot of typing, still getting building errors
* extended text type in slate-react
* removed type assertions
* Clean up of custom types and a couple uneeded comments.
* Rename headingElement-true.tsx.tsx to headingElement-true.tsx
* moved basetext and baselement
* Update packages/slate/src/interfaces/text.ts
Co-authored-by: Brent Farese <25846953+BrentFarese@users.noreply.github.com>
* Fix some type issues with core functions.
* Clean up text and element files.
* Convert other types to extended types.
* Change the type of editor.marks to the appropriate type.
* Add version 100.0.0 to package.json
* Revert "Add version 100.0.0 to package.json"
This reverts commit 329e44e43d968700655b1c46f968bfd3147e7339.
* added custom types
* files
* more extensions
* files
* changed fixtures
* changes eslint file
* changed element.children to descendant
* updated types
* more type changes
* changed a lot of typing, still getting building errors
* extended text type in slate-react
* removed type assertions
* Clean up of custom types and a couple uneeded comments.
* Rename headingElement-true.tsx.tsx to headingElement-true.tsx
* moved basetext and baselement
* Update packages/slate/src/interfaces/text.ts
Co-authored-by: Brent Farese <25846953+BrentFarese@users.noreply.github.com>
* Fix some type issues with core functions.
* Clean up text and element files.
* Convert other types to extended types.
* Change the type of editor.marks to the appropriate type.
* Run linter.
* Remove key:string uknown from the base types.
* Clean up types after removing key:string unknown.
* Lint and prettier fixes.
* Implement custom-types
Co-authored-by: mdmjg <mdj308@nyu.edu>
* added custom types to examples
* reset yarn lock
* added ts to fixtures
* examples custom types
* Working fix
* ts-thesunny-try
* Extract interface types.
* Fix minor return type in create-editor.
* Fix the typing issue with Location having compile time CustomTypes
* Extract types for Transforms.
* Update README.
* Fix dependency on slate-history in slate-react
Co-authored-by: mdmjg <mdj308@nyu.edu>
Co-authored-by: Brent Farese <brentfarese@gmail.com>
Co-authored-by: Brent Farese <25846953+BrentFarese@users.noreply.github.com>
Co-authored-by: Tim Buckley <timothypbuckley@gmail.com>
* Change all [key:string]:any -> unknown
Skipping slate-hyperscript, since it seems to be an appropriate use of key: any
* Minor typo fix docs/api/locations
* Check/assert unknown attributes when needed
* Create transforms.md
* Create initial documentation for transforms
* Remove extra whitespace in transforms.md
* Create initial documentation for interfaces
* Rearrange API docs by category of interface
* Add documentation of static methods
* Use 'static' notation for transforms
* 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
Existing links (to Github) were 404ing, so I changed them to point to slatejs.org.
Removed the final list item linking to the rest of the examples, since I can't see a page on slatejs.org that does that. Instead, I added a line after the examples list that talks about "View Source" and links to the Github folder listing.