Releases
How tldraw is versioned
Unlike many JavaScript packages distributed on NPM, the tldraw SDK does not follow semantic versioning in its release versions. Here's what we do instead:
- Major version bumps are very rare and we reserve them for special changes that signify a paradigm shift of some kind.
- Minor version bumps are released on a regular cadence - approximately monthly. They may contain breaking changes. We aim to make breaking changes as minimally disruptive as possible, but tldraw is actively evolving as we add new features. We recommend updating tldraw at a similar pace to our release cadence, and be sure to check the release notes.
- Patch version bumps are for bugfixes and hotfixes that can't wait for the next cadence release.
Current release: v3.10.0
Welcome to the 3.10.0 release of tldraw. This month's SDK release's big news is adding rich text to all of our shapes.
What's new
Rich text (#4895)
Tldraw now has the supports rich text as a first-class primitive within the Editor. After deliberating on which rich text editor to choose, we settled on using TipTap as our out-of-the-box solution. Our basic implementation includes the TipTap StarterKit extension along with a couple extra extensions to make the experience butter-smooth.
Of course, we wouldn't be providing this functionality if it wasn't extensible and remixable by the community. There is a textOptions
property now that lets you customize TipTap and add/remove extensions as per your needs.
Take a look at our Shapes documentation to learn more.
Please do jump in the Discord if you have any feedback or bugs about this new feature.
Improvements
- Ensure .tldr files with embedded base64 assets get their assets rehydrated back into the local db. #5525
- Display BrokenAssetIcon when file upload fails #5552
API changes
- Make collaboration hooks public (
usePeerIds
andusePresence
) #5541 - Pass userId to collaboration components #5534
Bug fix
- Fix a perf regression that caused slowness mainly when loading documents. #5567
- Fix exports / style embedding for foreignObjects in Firefox #5593
- Fix the reparentShapes() function to ensure that the original order of the shapes is preserved when reparenting. #5565
- Fix a bug that could occur when resizing #5292
- Fix a bug with pasting files from your computer in Safari #5545
- Fix bug with loading TLDraw in an SSR environment by removing a core-js import #5543
- Prevent text duplication when using IME with Enter key in Chrome #5540
Authors
-
alex (@SomeHats)
-
David Sheldrick (@ds300)
-
Josh Willis (@bluedot74)
-
Lorenzo Lewis (@lorenzolewis)
-
Lu Wilson (@TodePond)
-
Mathieu Triay (@MathieuLoutre)
-
mimata kazutaka (@kazu-2020)
-
Mime Čuvalo (@mimecuvalo)
-
Mitja Bezenšek (@MitjaBezensek)
-
Qinghe Ban (@banqinghe)
-
Riley (@dodo-Riley)
-
Steve Ruiz (@steveruizok)