No description
Find a file
alex 93c2ed615c
[Snapping 1/5] Validation & strict types for fractional indexes (#2827)
Currently, we type our fractional index keys as `string` and don't have
any validation for them. I'm touching some of this code for my work on
line handles and wanted to change that:
- fractional indexes are now `IndexKey`s, not `string`s. `IndexKey`s
have a brand property so can't be used interchangeably with strings
(like our IDs)
- There's a new `T.indexKey` validator which we can use in our
validations to make sure we don't end up with nonsense keys.

This PR is part of a series - please don't merge it until the things
before it have landed!
1. #2827 (you are here)
2. #2831
3. #2793
4. #2841
5. #2845

### Change Type

- [x] `patch` — Bug fix

### Test Plan

1. Mostly relying on unit & end to end tests here - no user facing
changes.

- [x] Unit Tests
2024-02-14 17:53:30 +00:00
.github dev: swap yarn test and test-dev for better dx (#2773) 2024-02-14 16:05:59 +00:00
.husky unbrivate, dot com in (#2475) 2024-01-16 14:38:05 +00:00
.yarn/patches Revert "emojis! 🧑‍🎨 🎨 ✏️ (#2814)" (#2822) 2024-02-13 14:59:59 +00:00
apps [Snapping 1/5] Validation & strict types for fractional indexes (#2827) 2024-02-14 17:53:30 +00:00
assets Lokalise: Translations update (#2830) 2024-02-14 08:59:41 +00:00
config make CI check for yarn install warnings and fix the peer deps ones we have (#2683) 2024-01-30 11:41:46 +00:00
packages [Snapping 1/5] Validation & strict types for fractional indexes (#2827) 2024-02-14 17:53:30 +00:00
scripts dev: swap yarn test and test-dev for better dx (#2773) 2024-02-14 16:05:59 +00:00
.dockerignore unbrivate, dot com in (#2475) 2024-01-16 14:38:05 +00:00
.eslintignore [dotcom] Delete service worker, cache tldraw assets (#2552) 2024-01-19 15:31:01 +00:00
.eslintplugin.js transfer-out: transfer out 2023-04-25 12:01:25 +01:00
.eslintrc.js unbrivate, dot com in (#2475) 2024-01-16 14:38:05 +00:00
.gitignore [dx] add gen docs to gitignore (#2704) 2024-02-01 15:06:37 +00:00
.ignore Unbiome (#2776) 2024-02-07 16:02:22 +00:00
.prettierignore Unbiome (#2776) 2024-02-07 16:02:22 +00:00
.prettierrc Unbiome (#2776) 2024-02-07 16:02:22 +00:00
.yarnrc.yml Bump Yarn to 4.0.2 and add version constraints (#2481) 2024-01-18 11:09:17 +00:00
CHANGELOG.md Update CHANGELOG.md [skip ci] 2024-02-13 14:27:20 +00:00
CLA.md Change licenses to tldraw (#2167) 2023-12-19 10:41:01 +00:00
CODE_OF_CONDUCT.md transfer-out: transfer out 2023-04-25 12:01:25 +01:00
CONTRIBUTING.md dev: swap yarn test and test-dev for better dx (#2773) 2024-02-14 16:05:59 +00:00
lazy.config.ts dev: swap yarn test and test-dev for better dx (#2773) 2024-02-14 16:05:59 +00:00
lerna.json Update CHANGELOG.md [skip ci] 2024-02-13 14:27:20 +00:00
LICENSE.md Change licenses to tldraw (#2167) 2023-12-19 10:41:01 +00:00
package.json dev: swap yarn test and test-dev for better dx (#2773) 2024-02-14 16:05:59 +00:00
README.md hello@tldraw.com -> sales@tldraw.com (#2774) 2024-02-07 15:52:18 +00:00
TRADEMARKS.md Change licenses to tldraw (#2167) 2023-12-19 10:41:01 +00:00
yarn.config.cjs Bump Yarn to 4.0.2 and add version constraints (#2481) 2024-01-18 11:09:17 +00:00
yarn.lock Revert "emojis! 🧑‍🎨 🎨 ✏️ (#2814)" (#2822) 2024-02-13 14:59:59 +00:00

tldraw

tldraw

Welcome to the public monorepo for tldraw. tldraw is a library for creating infinite canvas experiences in React. It's the software behind the digital whiteboard tldraw.com.

Local development

The local development server will run our examples app. The basic example will show any changes you've made to the codebase.

To run the local development server, first clone this repo.

Install dependencies:

yarn

Start the local development server:

yarn dev

Open the example project at localhost:5420.

License

tldraw's source code and distributed packages are provided under the non-commercial tldraw license.

This license does not permit commercial use. If you wish to use tldraw in a commercial product or enterprise, you will need to purchase a commercial license. To obtain a commercial license, please contact us at hello@tldraw.com.

To learn more, see our license page.

Trademarks

The tldraw name and logo are trademarks of tldraw. Please see our trademark guidelines for info on acceptable usage.

Community

Have questions, comments or feedback? Join our discord or start a discussion.

Contribution

Please see our contributing guide. Found a bug? Please submit an issue.

Contact

Find us on Twitter at @tldraw or email sales@tldraw.com. You can also join our discord for quick help and support.