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.14.0
This release includes new features, improvements, and many bug fixes.
New Features
- Image and video shapes now have a contextual toolbar (#4443, #6264)
- Added a UI component
TldrawUiContextualToolbar
to allow creating floating toolbars more easily. (#4443, #6264) - Image and video shapes now support downloading the original file via a built in action. (#6221)
- Images have new advanced cropping options (#4443) (#6323) (#6294)
- Introduce
PathBuilder
, a new API to make constructing tldraw-style inky and dashed SVGs much easier (#6112) - Support configuring when arrows should be exact and/or bind (#6290). Thanks to community member @trygve-aaberge-adsk for the contribution!
- Added
measureScrollWidth
option to text measurement options (#6255) - Allows for
VideoShapeUtil
autoplay behaviour to be configured using thedefaultAutoplay
boolean property (#6070) Thanks to community member @elstob for the contribution!
Breaking Changes
- Remove
Editor#getShapePageGeometry
(#6202) Editor#getShapesAtPoint
now returns shapes in descending order of index (#6208)- Locked shapes can no longer be duplicated, and pasting a locked shape onto the canvas now unlocks it (#6275)
- Removed
ShapeUtil.canDropShapes
. (6139). Previously, a ShapeUtil usedcanDropShapes
to identify as a potential drop target for certain dragging shapes. Now any shape that implements the drag and drop handlers will participate in the drag and drop system.
Improvements
Accessibility improvements
- Add ability to open up context menu with keyboard (#6288)
- Allow switching back-and-forth from the style panel with keyboard (#6286)
- Fix focus management conflicts while editing (#6125)
Performance improvements
- Only compress non-assets for greatly improved copy perf (#6344)
- Slight performance improvement of complex boards (#6086)
- Improved performance of arrows with labels (#6130)
- Improved performance when resizing or editing many shapes (#6165)
- Improved keyboard interactions on the page menu (#6198)
- Improved performance when dragging many arrows (#6232)
- Improved performance of resizing (#6252)
- Tiny improvements to the
Box
class (#6175) - Skip scroll width text measure (#6255)
- Reuse text element (#6256)
- Skip measurement for minimum width for geo shapes (#6254)
- Cache rich text → html (#6252)
- Faster getFontsFromRichText (#6234)
Bug Fixes
- Fixed a bug where the current page could be scrolled away when the page menu is opened (#6198)
- Fixed a bug where you needed to press undo twice to undo a sticky you created by pressing the tab key (#6235)
- Fixed a bug with opening bookmark hyperlinks accidentally while holding shift (#6136)
- Fixed a bug where
Vec.uni()
could return a null value on zero length vectors (#6162) - Fixed a bug with SVG output of negative-width Rectangles (#6162)
- Fixed several bugs with resizing frames when more than one frame is selected (#6128)
- When creating elbow arrows, make sure we show the indicator for the target shape on hover (#6124)
- Fixed a bug with keyboard focus turning on accidentally (#6125)
- Fixed a bug with focused buttons in the application UI receiving a border radius (#6045)
- Fix copy+pasting HTML that is absolutely positioned (having 0 width/0 height) (#6120)
- Prevent pasting shape data accidentally into a text area (#6012) (#6137)
- Fixes some dynamic sizing bugs with regards to SVG exports on notes/geo shapes (#6269)
- Fixes a dynamic sizing bug when creating a fixed-width text shape (#6269)
- Fix keyboard shortcuts on non-Mac (#6261)
- Restore some css for text shapes (#6260)
- Fixed several issues when maximum shapes was reached (#6359) (#6315)
- Fix people avatar overflow indicator (#6332)
- Fix video control scaling (#6348)
- Fixed a bug with large shapes and images falling out of frames (#6139)
- Fixed a bug where tldraw was ignoring custom asset URL configuration for the LoadingScreen component (#6309)
- Fixed a bug with text measurement (#6296)
- Fix tool overrides (#6330)
- Fix selected cross-realm issues (#6338)
- Fixed a text overflow issue affecting note shapes (#6295)
- Make sure we setCroppingShape to null when exiting the state machine (#6278)
- Fix for image cropping (#6317)
- Fixed a bug with drawing when the canvas is full (#6268)
- Fix closed draw shape with only 2 points (#6239)
- Fix missing resize handles on groups (#6233)
- Fix keyboard shortcuts while cropping (#6314)
Authors
-
alex (@SomeHats)
-
David Elstob (@elstob)
-
David Sheldrick (@ds300)
-
Lu Wilson (@TodePond)
-
Mime Čuvalo (@mimecuvalo)
-
Mitja Bezenšek (@MitjaBezensek)
-
Steve Ruiz (@steveruizok)
-
Trygve Aaberge (@trygve-aaberge-adsk)
Previous releases
Prev
InstallationNext
v3.14.0