Next release
This release simplifies multi-click handling down to a single double-click event — a breaking change for anyone relying on triple- or quadruple-click handlers — and adds per-embed configuration for API keys, a shift+q shortcut for copying styles between shapes, and full-speed sync across your own tabs and devices. It also fixes a number of canvas interaction bugs around pinch-zoom selection, pasting mid-gesture, note list editing, and zoom clamping.
API changes
-
💥 Simplify multi-click handling to double-click only.
ClickManagerno longer tracks triple or quadruple clicks: thetriple_clickandquadruple_clickevents and theonTripleClick/onQuadrupleClickhandlers have been removed, andTLClickEventNameis now just'double_click'. (#8897) -
💥 Move
ShapeIndicatorOverlayUtilandTLShapeIndicatorOverlayfrom@tldraw/editortotldraw. Both are still exported fromtldraw; update any imports of these symbols that came directly from@tldraw/editor. (#9018) -
Add an
embedConfigoption toEmbedShapeUtilfor passing per-embed configuration such as API keys.(#9068)EmbedShapeUtil.configure({ embedConfig: { google_maps: { apiKey: '...' } }, })
Improvements
- Add a
shift+qshortcut that copies the styles of the hovered shape and applies them to the next shapes you create. (#9028) - Keep sync at full speed when the same multiplayer room is open in multiple tabs, windows, or devices — previously a room with no other users throttled network sync to once per second. (#8988)
- Include
DOCS.mddocumentation in published npm packages, and a generated docs and release notes rollup in thetldrawpackage, so documentation is available when browsing package artifacts. (#8503)
Bug fixes
- Fix the fill style dropdown trigger showing a misleading tooltip for the currently selected fill. (#9023)
- Fix a two-finger pinch unintentionally changing the selection on touch devices. (#9006)
- Pasting content while dragging, translating, resizing, or rotating no longer steals selection from the shape being manipulated. (#8976)
- Fix a bug where pressing
Tabwhile editing a list inside a note shape created a new note instead of indenting the list item. (#8958) - Fix the viewport shifting slightly when zooming past the minimum or maximum zoom level. (#8957)
- Improve the contrast of disabled buttons and menu items in dark mode. (#8931)
- Fix
debounce(...).cancel()leaving an awaited call hanging forever; it now rejects the pending promise. (#8683)