* Experimental release to see if CustomTypes holds up through a publish
* Add experimental release script
* Fix lint
* v0.60.5-alpha.0
* Allow null properties in setNodes
* v0.60.6-alpha.0
* Revert null properties on Transforms.setNodes
* v0.60.7-alpha.0
* Update examples to use custom Element and Text with discriminated unions
* Add documentation for using TypeScript improvements
* Be explicit about typescript version in package.json
* Force lerna bootstrap to fix build issues on CI and fix a few type examples
* Add slate devDependencies with * back
* v0.60.7
* Switch to a non prerelease version to fix lerna not linking in root
* Add documentation for not using prerelease versions and on how to create experimental releases
* Try removing lerna bootstrap and see if it works
* mvp implementation for working with non-global window instances
* remove unused element renderer
* fix typo in comment
* fix wrong example reference
* Add @babel/helper-call-delegate to fix build error
Co-authored-by: Lukas Buenger <lukasbuenger@gmail.com>
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>
* fix index.js main bundles to be commonjs instead of modules
* Change rm -rf to rimraf to be cross os compatible
* add rimraf as dependency
Co-authored-by: damareyoh <chackerman@wsu.edu>
* fix import extensions of eslint
* revert next.config.cjs
* fix eslint globbing
* add migrating to docs’ sidebar
* fix prettier error on Contributing.md
* put quotes for glob matching for windows user
* remove type: module from package.json
* first stab at removing leaves with tests passing
* fixes
* add iterables to the element interface
* use iterables in more places
* update examples to use iterables
* update naming
* fix tests
* convert more key-based logic to paths
* add range support to iterables
* refactor many methods to use iterables, deprecate cruft
* clean up existing iterables
* more cleanup
* more cleaning
* fix word count example
* work
* split decoration and annotations
* update examples for `renderNode` useage
* deprecate old DOM-based helpers, update examples
* make formats first class, refactor leaf rendering
* fix examples, fix isAtomic checking
* deprecate leaf model
* convert Text and Leaf to functional components
* fix lint and tests
* Allow the dev server to work for non localhost host
* Refactored set-selection-from-dom into utils as prep for Android support
* Show debug onInput at start if triggered
* Added and refactored to use set-text-from-dom-node with improved set selection after input
* Remove unnecessary console.log in set-text-from-dom-node
* Fixes to pass linter
* Adds basic composition to Android API27 including fixing one bug where compositionStart does not fire
* Fix some of the enter handling in API 27 and 28
* Add fixes for API 25
* Add debug for slate:update instead of separate render and updateSelection
* Add API 26 fix for ignoring all but Enter in onKeyDown
* Fix enter on Android 26 and 27
* Revert onSelect bug. Editor API 26 and 27 stable-ish
* Fix enter at beginning and end of word in API 26 and 27
* Fix enter handling at end of line API 26 and 27
* Fix reversion of enter bug when not at end of line
* Rename enter to linefeed which is more accurate
* Fix backspace on Android 27 and 28
* Fix enter at end of line then backspace then enter bug in API 26 and 27
* Refactor to simplify reading code
* Refactor to use executor and fix the suggestion problem
* Fix multi point edit in API 27/28
* Update Android documentation on enter handling
* Fix enter in API 26/27 and document 4 different enter cases
* Refactor partial into SlateSnapshot
* Complete SlateSnapshot refactor
* Remove unnecessary plugin comments
* Add smoke tests
* Rename smoke tests to composition in exmaples
* Fix API28 split join and insertion
* Fix space then backspace in middle of word bug in API 28
* Add text for middle word space and backspace bug
* Add note that the space backspace bug does not exist on API 27
* Fix 'It me. No.' bug in API 26/27
* Fix comments
* Update comments to fit Slate style guide
* Move a debug statement
* Fix zero-width selection placement bug.
* Fix 'it is' then enter in middle of 'it' bug
* Partial fix of enter, backspace, enter in word
* Add and fix comments. Fix selection in zero-width for API26-27
* Fix linting
* Fix documentation
* Remove snapback from packages
* Remove snapback from yarn.lock
* Rename SlateSnapshot to DomSnapshot
* Remove guard on DomSnapshot apply method
* Remove debug plugin from plugins/dom
* Remove unnecessary comment in content.js componentDidUpdate
* Remove closest and add function into dom-snapshot directly
* Remove unused DebugPlugin
* Move Android detection related code into slate-dev-environment
* Capitalize to Number in JSDoc
* Add API version and Input Events Level 2 for Android
* Add input events level 2 for android without matching api version
* Fix line failures
* Allow the dev server to work for non localhost host
* Refactored set-selection-from-dom into utils as prep for Android support
* Show debug onInput at start if triggered
* Added and refactored to use set-text-from-dom-node with improved set selection after input
* Remove unnecessary console.log in set-text-from-dom-node
* Fixes to pass linter
* Adds basic composition to Android API27 including fixing one bug where compositionStart does not fire
* Fix some of the enter handling in API 27 and 28
* Add fixes for API 25
* Add debug for slate:update instead of separate render and updateSelection
* Add API 26 fix for ignoring all but Enter in onKeyDown
* Fix enter on Android 26 and 27
* Revert onSelect bug. Editor API 26 and 27 stable-ish
* Fix enter at beginning and end of word in API 26 and 27
* Fix enter handling at end of line API 26 and 27
* Fix reversion of enter bug when not at end of line
* Rename enter to linefeed which is more accurate
* Fix backspace on Android 27 and 28
* Fix enter at end of line then backspace then enter bug in API 26 and 27
* Refactor to simplify reading code
* Refactor to use executor and fix the suggestion problem
* Fix multi point edit in API 27/28
* Update Android documentation on enter handling
* Fix enter in API 26/27 and document 4 different enter cases
* Refactor partial into SlateSnapshot
* Complete SlateSnapshot refactor
* Remove unnecessary plugin comments
* Add smoke tests
* Rename smoke tests to composition in exmaples
* Fix API28 split join and insertion
* Fix space then backspace in middle of word bug in API 28
* Add text for middle word space and backspace bug
* Add note that the space backspace bug does not exist on API 27
* Fix 'It me. No.' bug in API 26/27
* Fix comments
* Update comments to fit Slate style guide
* Move a debug statement
* Fix zero-width selection placement bug.
* Fix 'it is' then enter in middle of 'it' bug
* Partial fix of enter, backspace, enter in word
* Add and fix comments. Fix selection in zero-width for API26-27
* Fix linting
* Fix documentation
* Remove snapback from packages
* Remove snapback from yarn.lock
#### Is this adding or improving a _feature_ or fixing a _bug_?
_bug_
#### What's the new behavior?
Fix behavior for <kbd>shift + left</kbd> and <kbd>shift + right</kbd>. Now they will correctly move forward / backward.
#### How does this change work?
turns out that the hotkey `'left'` would also pick up with a modifier key `'shift+left'` so checking for `Hotkeys.isExtendForward()` needs to come before `Hotkeys.isMoveForward()` and it needs to short circuit with `return true`. Likewise for backward.
#### Have you checked that...?
<!--
Please run through this checklist for your pull request:
-->
* [x] The new code matches the existing patterns and styles.
* [x] The tests pass with `yarn test`.
* [x] The linter passes with `yarn lint`. (Fix errors with `yarn prettier`.)
* [x] The relevant examples still work. (Run examples with `yarn watch`.)
#### Does this fix any issues or need any specific reviewers?
Fixes: #2307
Reviewers: @ianstormtaylor