UNPKG

tldraw

Version:

A tiny little drawing editor.

863 lines (529 loc) 269 kB
# v3.13.1 (Fri May 23 2025) ### Release Notes #### always show elbow arrow outline ([#6124](https://github.com/tldraw/tldraw/pull/6124)) - When creating elbow arrows, make sure we show the indicator for the target shape on hover. --- #### 🐛 Bug Fixes - always show elbow arrow outline [#6124](https://github.com/tldraw/tldraw/pull/6124) ([@SomeHats](https://github.com/SomeHats)) #### Authors: 1 - alex ([@SomeHats](https://github.com/SomeHats)) --- # v3.13.0 (Thu May 22 2025) ### Release Notes #### feat: Merge util and binding within TldrawImage ([#6071](https://github.com/tldraw/tldraw/pull/6071)) - Merge shape utils and bindings within TldrawImage #### ENG-3385 / Auto select text when Edit link menu opens ([#6072](https://github.com/tldraw/tldraw/pull/6072)) - Improved the Edit Link menu: link text is now auto-selected for faster editing. #### a11y: add way to focus styling menu via kbd ([#5827](https://github.com/tldraw/tldraw/pull/5827)) - a11y: add way to focus the styling menu via kbd #### Fix dragging arrows breaking bindings ([#6050](https://github.com/tldraw/tldraw/pull/6050)) - Fixed a bug causing elbow arrows to unbind when translated #### a11y: address icons and handles ([#6001](https://github.com/tldraw/tldraw/pull/6001)) - a11y: add labels to icons and handles #### a11y: be able to navigate in/out of container shapes ([#5973](https://github.com/tldraw/tldraw/pull/5973)) - a11y: Adds Cmd+Shift+Up/Down for container navigation. #### refactor: rename canEditOnly to canEditonly ([#6019](https://github.com/tldraw/tldraw/pull/6019)) close #5899 - Rename `CanEditOnly` to `CanEditonly` to standardize. - method in `packages/editor/src/lib/editor/shapes/ShapeUtil.ts` - method in `packages/tldraw/src/lib/shapes/embed/EmbedShapeUtil.tsx` - used in `packages/tldraw/src/lib/tools/SelectTool/childStates/EditingShape.ts` - used in `packages/tldraw/src/lib/tools/SelectTool/childStates/Idle.ts` - used in `packages/tldraw/src/lib/tools/SelectTool/childStates/PointingShape.ts` #### Snap pasted text and embed content to the grid ([#6020](https://github.com/tldraw/tldraw/pull/6020)) - When pasting text or embeddable links, snap the created shape to the grid if the grid is enabled. #### Fix super tight zoom button ([#6044](https://github.com/tldraw/tldraw/pull/6044)) - Slightly add padding to zoom menu #### Redesign account / help menu ([#6008](https://github.com/tldraw/tldraw/pull/6008)) - Design improvements on the app sidebar #### Make flattened shapes image use a transparent background ([#6043](https://github.com/tldraw/tldraw/pull/6043)) - Fixed a bug causing flattened shapes to have opaque background colors. #### Embed shape: add figma selection definition ([#6025](https://github.com/tldraw/tldraw/pull/6025)) - Fixed a bug with… #### Remove the selection background ([#6042](https://github.com/tldraw/tldraw/pull/6042)) - Removes default selection background component #### Prevent announcements during interactions ([#6041](https://github.com/tldraw/tldraw/pull/6041)) - Fixed a bug causing too many screenreader announcements #### arrows: create min-width for label indicator ([#6029](https://github.com/tldraw/tldraw/pull/6029)) - arrows: create min-width for label indicator #### Improve performance of a programatically rotating shape when it is selected ([#6023](https://github.com/tldraw/tldraw/pull/6023)) - Improve the performance of shape rotation. This slowdown could be seen when the shape was rotated programmatically and you selected it. Or in a multiplayer scenario if you selected a shape that somebody else was rotating. #### Fix inconsistent panning. ([#6024](https://github.com/tldraw/tldraw/pull/6024)) - Don't take pan speed into account for hand tool panning so that it's consistent with middle mouse button / spacebar panning. #### Elbow arrows ([#5572](https://github.com/tldraw/tldraw/pull/5572)) - The arrow shape now supports elbow arrows. Instead of a single straight line or arc, these arrows get from A to B in a series straight lines joined at right angles. Access the new arrow type by selecting the arrow tool, and choosing the new option under the "Line" style. #### laser: let hitting escape go back to Select tool ([#6015](https://github.com/tldraw/tldraw/pull/6015)) - laser: let hitting escape go back to Select tool #### Select offscreen shapes ([#6004](https://github.com/tldraw/tldraw/pull/6004)) - Fixed a bug with off-screen shapes not being selected. #### Better computed cache memoization ([#5988](https://github.com/tldraw/tldraw/pull/5988)) - Allow changes to shape.meta to bust the shape geometry cache. #### Indicators perf ([#5821](https://github.com/tldraw/tldraw/pull/5821)) - Improved performance when dragging many shapes at once #### Migrate radix dependencies to radix-ui package ([#5964](https://github.com/tldraw/tldraw/pull/5964)) - Bump radix dependencies. #### Fix hover buttons ([#5969](https://github.com/tldraw/tldraw/pull/5969)) - Fixed a bug with hovering buttons on the UI. #### Fix active states for buttons in toolbars ([#5981](https://github.com/tldraw/tldraw/pull/5981)) - Fixed a bug in the UI where active items in dropdowns weren't displayed as active #### Fix gradients / hovers for open submenus ([#5974](https://github.com/tldraw/tldraw/pull/5974)) - Standardizes hovers in the UI for submenus items. #### ENG 3023 Add double-click to fit frame to content on edges and corners ([#5967](https://github.com/tldraw/tldraw/pull/5967)) - Frames can now be resized to fit their contents by double-clicking their edges. #### a11y: dont go into edit mode when moving to canvas content ([#5957](https://github.com/tldraw/tldraw/pull/5957)) - a11y: don't go into edit mode when holding Enter for a long time. #### Fix flickering when rotating arrow ([#5951](https://github.com/tldraw/tldraw/pull/5951)) - Prevent bound arrows from flickering when you rotate them #### a11y: better embed interaction ([#5958](https://github.com/tldraw/tldraw/pull/5958)) - a11y: make sure we can tab into embeds. #### a11y: make toolbars more compliant with keyboard navigation ([#5872](https://github.com/tldraw/tldraw/pull/5872)) - a11y: make toolbars more compliant with keyboard navigation #### a11y: add rich text shortcuts to dialog; add shortcut for links ([#5912](https://github.com/tldraw/tldraw/pull/5912)) - a11y: list out rich text shortcuts; add link shortcut #### stickies: make sure our custom tab behavior takes over the rich text behavior ([#5908](https://github.com/tldraw/tldraw/pull/5908)) - Added `hasCustomTabBehavior` prop to `RichTextLabel` so developers can also opt out of this behavior where necessary --- #### 🐛 Bug Fixes - Improve feedback textarea [#6103](https://github.com/tldraw/tldraw/pull/6103) ([@steveruizok](https://github.com/steveruizok)) - feat: Merge util and binding within TldrawImage [#6071](https://github.com/tldraw/tldraw/pull/6071) ([@judicaelandria](https://github.com/judicaelandria)) - Fix dragging arrows breaking bindings [#6050](https://github.com/tldraw/tldraw/pull/6050) ([@steveruizok](https://github.com/steveruizok) [@huppy-bot[bot]](https://github.com/huppy-bot[bot])) - don't call createId if id is overridden [#6048](https://github.com/tldraw/tldraw/pull/6048) ([@ds300](https://github.com/ds300)) - Snap pasted text and embed content to the grid [#6020](https://github.com/tldraw/tldraw/pull/6020) ([@trygve-aaberge-adsk](https://github.com/trygve-aaberge-adsk)) - Fix super tight zoom button [#6044](https://github.com/tldraw/tldraw/pull/6044) ([@steveruizok](https://github.com/steveruizok)) - Elbow arrow fixes [#6028](https://github.com/tldraw/tldraw/pull/6028) ([@SomeHats](https://github.com/SomeHats) [@huppy-bot[bot]](https://github.com/huppy-bot[bot])) - Fix inconsistent panning. [#6024](https://github.com/tldraw/tldraw/pull/6024) ([@MitjaBezensek](https://github.com/MitjaBezensek)) - laser: let hitting escape go back to Select tool [#6015](https://github.com/tldraw/tldraw/pull/6015) ([@mimecuvalo](https://github.com/mimecuvalo)) - Select offscreen shapes [#6004](https://github.com/tldraw/tldraw/pull/6004) ([@steveruizok](https://github.com/steveruizok)) - Better computed cache memoization [#5988](https://github.com/tldraw/tldraw/pull/5988) ([@ds300](https://github.com/ds300)) - Fix hover buttons [#5969](https://github.com/tldraw/tldraw/pull/5969) ([@steveruizok](https://github.com/steveruizok)) - Fix active states for buttons in toolbars [#5981](https://github.com/tldraw/tldraw/pull/5981) ([@steveruizok](https://github.com/steveruizok)) - Fix gradients / hovers for open submenus [#5974](https://github.com/tldraw/tldraw/pull/5974) ([@steveruizok](https://github.com/steveruizok)) - Restore deleted margin in style panel [#5982](https://github.com/tldraw/tldraw/pull/5982) ([@steveruizok](https://github.com/steveruizok)) - a11y: dont go into edit mode when moving to canvas content [#5957](https://github.com/tldraw/tldraw/pull/5957) ([@mimecuvalo](https://github.com/mimecuvalo)) - Fix flickering when rotating arrow [#5951](https://github.com/tldraw/tldraw/pull/5951) ([@SomeHats](https://github.com/SomeHats)) - stickies: make sure our custom tab behavior takes over the rich text behavior [#5908](https://github.com/tldraw/tldraw/pull/5908) ([@mimecuvalo](https://github.com/mimecuvalo)) - Fix group bounds containing text shapes (#5909) [#5910](https://github.com/tldraw/tldraw/pull/5910) ([@SomeHats](https://github.com/SomeHats)) #### 💄 Product Improvements - ENG-3385 / Auto select text when Edit link menu opens [#6072](https://github.com/tldraw/tldraw/pull/6072) ([@budatl](https://github.com/budatl)) - a11y: add way to focus styling menu via kbd [#5827](https://github.com/tldraw/tldraw/pull/5827) ([@mimecuvalo](https://github.com/mimecuvalo)) - a11y: address icons and handles [#6001](https://github.com/tldraw/tldraw/pull/6001) ([@mimecuvalo](https://github.com/mimecuvalo)) - a11y: be able to navigate in/out of container shapes [#5973](https://github.com/tldraw/tldraw/pull/5973) ([@mimecuvalo](https://github.com/mimecuvalo)) - Simplify the cursor logic [#6053](https://github.com/tldraw/tldraw/pull/6053) ([@MitjaBezensek](https://github.com/MitjaBezensek)) - refactor: rename canEditOnly to canEditonly [#6019](https://github.com/tldraw/tldraw/pull/6019) ([@nayounsang](https://github.com/nayounsang)) - Redesign account / help menu [#6008](https://github.com/tldraw/tldraw/pull/6008) ([@steveruizok](https://github.com/steveruizok)) - Make flattened shapes image use a transparent background [#6043](https://github.com/tldraw/tldraw/pull/6043) ([@steveruizok](https://github.com/steveruizok)) - Embed shape: add figma selection definition [#6025](https://github.com/tldraw/tldraw/pull/6025) ([@steveruizok](https://github.com/steveruizok)) - Remove the selection background [#6042](https://github.com/tldraw/tldraw/pull/6042) ([@steveruizok](https://github.com/steveruizok)) - Prevent announcements during interactions [#6041](https://github.com/tldraw/tldraw/pull/6041) ([@steveruizok](https://github.com/steveruizok)) - arrows: create min-width for label indicator [#6029](https://github.com/tldraw/tldraw/pull/6029) ([@mimecuvalo](https://github.com/mimecuvalo) [@SomeHats](https://github.com/SomeHats)) - Improve performance of a programatically rotating shape when it is selected [#6023](https://github.com/tldraw/tldraw/pull/6023) ([@MitjaBezensek](https://github.com/MitjaBezensek)) - Indicators perf [#5821](https://github.com/tldraw/tldraw/pull/5821) ([@steveruizok](https://github.com/steveruizok)) - Migrate radix dependencies to radix-ui package [#5964](https://github.com/tldraw/tldraw/pull/5964) ([@steveruizok](https://github.com/steveruizok)) - a11y: better embed interaction [#5958](https://github.com/tldraw/tldraw/pull/5958) ([@mimecuvalo](https://github.com/mimecuvalo)) - a11y: make toolbars more compliant with keyboard navigation [#5872](https://github.com/tldraw/tldraw/pull/5872) ([@mimecuvalo](https://github.com/mimecuvalo)) - a11y: add rich text shortcuts to dialog; add shortcut for links [#5912](https://github.com/tldraw/tldraw/pull/5912) ([@mimecuvalo](https://github.com/mimecuvalo)) #### 🎉 New Features - Elbow arrows [#5572](https://github.com/tldraw/tldraw/pull/5572) ([@SomeHats](https://github.com/SomeHats) [@huppy-bot[bot]](https://github.com/huppy-bot[bot])) - ENG 3023 Add double-click to fit frame to content on edges and corners [#5967](https://github.com/tldraw/tldraw/pull/5967) ([@budatl](https://github.com/budatl) [@mimecuvalo](https://github.com/mimecuvalo)) #### Authors: 10 - [@budatl](https://github.com/budatl) - [@huppy-bot[bot]](https://github.com/huppy-bot[bot]) - alex ([@SomeHats](https://github.com/SomeHats)) - David Sheldrick ([@ds300](https://github.com/ds300)) - Judicael ([@judicaelandria](https://github.com/judicaelandria)) - Mime Čuvalo ([@mimecuvalo](https://github.com/mimecuvalo)) - Mitja Bezenšek ([@MitjaBezensek](https://github.com/MitjaBezensek)) - Steve Ruiz ([@steveruizok](https://github.com/steveruizok)) - Trygve Aaberge ([@trygve-aaberge-adsk](https://github.com/trygve-aaberge-adsk)) - Younsang Na ([@nayounsang](https://github.com/nayounsang)) --- # v3.12.0 (Tue Apr 15 2025) ### Release Notes #### events: explore using getCoalescedEvents, take 2 ([#5898](https://github.com/tldraw/tldraw/pull/5898)) - Improve draw fluidity on slower CPUs by using getCoalescedEvents. #### a11y: add null check for bookmark asset descriptor ([#5900](https://github.com/tldraw/tldraw/pull/5900)) - Fix NPE for asset check in BookmarkShapeUtil #### fix error pasting shapes from Miro, pt 2 ([#5896](https://github.com/tldraw/tldraw/pull/5896)) - Fix blowing up when pasting Miro shapes into tldraw. #### Revert "events: explore using getCoalescedEvents (#5554)" ([#5895](https://github.com/tldraw/tldraw/pull/5895)) - Revert coalesced events for now until we investigate further. #### youtube: fix up timestamp ([#5893](https://github.com/tldraw/tldraw/pull/5893)) - Followup fix for YouTube embed support for time #### rich text: export some of our custom extensions ([#5874](https://github.com/tldraw/tldraw/pull/5874)) - Export some of the custom rich text extensions we have by default to enable inclusion in custom extension lists. #### a11y: add resize kbd shortcut ([#5826](https://github.com/tldraw/tldraw/pull/5826)) - a11y: add resize kbd shortcut #### kbd: rework keyboard shortcut mapping symbols to be more intuitive ([#5605](https://github.com/tldraw/tldraw/pull/5605)) Breaking change: our keyboard shortcuts no longer use `$`/`!`/`?` but instead use `accel`/`shift`/`alt`, respectively. - Rework keyboard shortcut mapping symbols to be more intuitive #### Fix `useIsToolSelected`, add remove tool example ([#5849](https://github.com/tldraw/tldraw/pull/5849)) - Fixed a bug with `useIsToolSelected` - Adds example for removing a tool #### a11y: add keyboard shortcut items; fix up focus ring in dotcom menus ([#5852](https://github.com/tldraw/tldraw/pull/5852)) - Add accessibility section to keyboard shortcuts dialog. #### a11y: more role updates, more semantic html5 tags ([#5847](https://github.com/tldraw/tldraw/pull/5847)) - a11y: tweak `role`s for certain UI components #### a11y: add axe to be able to do audits ([#5840](https://github.com/tldraw/tldraw/pull/5840)) - a11y: add axe to be able to do audits #### a11y: announce shapes as they're visited ([#5773](https://github.com/tldraw/tldraw/pull/5773)) - a11y: announce shapes as they're visited #### Rename useIsMultiplayer.ts to useCollaborationStatus [#5833] ([#5835](https://github.com/tldraw/tldraw/pull/5835)) Renamed the useIsMultiplayer hook to useCollaborationStatus for better clarity and consistency around naming related to collaboration features. This affects internal imports only — no changes required for SDK consumers. #### A11y focus button fixes ([#5825](https://github.com/tldraw/tldraw/pull/5825)) - no fixes to public code #### a11y: navigable shapes ([#5761](https://github.com/tldraw/tldraw/pull/5761)) - a11y: navigable shapes using Tab and Cmd/Ctrl+Arrow #### Geometry2d Improvements ([#5754](https://github.com/tldraw/tldraw/pull/5754)) - It's now easier to work with `Geometry2d` objects, with methods for intersections, transforming geometries, and filtering. #### images: fix not being able to insert SVGs into Firefox ([#5789](https://github.com/tldraw/tldraw/pull/5789)) - Fix not being able to insert SVGs into Firefox #### isShapeHidden => getShapeVisibility, to allow children of hidden shapes to be visible ([#5762](https://github.com/tldraw/tldraw/pull/5762)) - Allow the children of a hidden shape to show themselves by returning a 'force_show' override from the `isShapeHidden` predicate. #### Make image pasting atomic ([#5800](https://github.com/tldraw/tldraw/pull/5800)) - Cleans up image creation side effects, coalescing create + update effects into a single create effect. #### fix error pasting shapes from Miro ([#5790](https://github.com/tldraw/tldraw/pull/5790)) - Fix blowing up when pasting Miro shapes into tldraw. #### fix zoom speed for pinch gestures ([#5771](https://github.com/tldraw/tldraw/pull/5771)) - Setting `zoomSpeed` in camera options no longer breaks zooming on safari trackpads and multitouch pinch to zoom. #### a11y: add a live region to announce selected tools ([#5634](https://github.com/tldraw/tldraw/pull/5634)) - Adds better voiceover support when selecting an action (a11y) #### events: explore using getCoalescedEvents ([#5554](https://github.com/tldraw/tldraw/pull/5554)) - Improve draw fluidity on slower CPUs by using getCoalescedEvents. #### Not preload empty `embedIcons` ([#5736](https://github.com/tldraw/tldraw/pull/5736)) - Allow to remove unused `embedIcons` from preload #### people menu: fix overflow and follow buttons ([#5753](https://github.com/tldraw/tldraw/pull/5753)) - Fix people menu CSS. #### When editing a text shape, don't mount the text editor for non-editing empty shapes unless they're hovered ([#5734](https://github.com/tldraw/tldraw/pull/5734)) - Fixed a bug causing a performance delay when editing text. #### Add Frame colors ([#5283](https://github.com/tldraw/tldraw/pull/5283)) - Added `FrameShapeUtil.options.showColors` option to display colors for frames. #### embed: youtube support time and loop ([#5726](https://github.com/tldraw/tldraw/pull/5726)) - Add YouTube support for t/start/loop params. --- #### 🐛 Bug Fix - a11y: move audit to just /develop [#5846](https://github.com/tldraw/tldraw/pull/5846) ([@mimecuvalo](https://github.com/mimecuvalo)) - a11y: fix focus ring on share menu/embed dialog; also slider/watermark [#5837](https://github.com/tldraw/tldraw/pull/5837) ([@mimecuvalo](https://github.com/mimecuvalo)) - a11y: fix up focus ring on dotcom [#5818](https://github.com/tldraw/tldraw/pull/5818) ([@mimecuvalo](https://github.com/mimecuvalo)) - isShapeHidden => getShapeVisibility, to allow children of hidden shapes to be visible [#5762](https://github.com/tldraw/tldraw/pull/5762) ([@ds300](https://github.com/ds300)) - [dotcom] fix deep link handling for previously-seen files [#5707](https://github.com/tldraw/tldraw/pull/5707) ([@ds300](https://github.com/ds300)) #### 🐛 Bug Fixes - a11y: add null check for bookmark asset descriptor [#5900](https://github.com/tldraw/tldraw/pull/5900) ([@mimecuvalo](https://github.com/mimecuvalo)) - fix error pasting shapes from Miro, pt 2 [#5896](https://github.com/tldraw/tldraw/pull/5896) ([@mimecuvalo](https://github.com/mimecuvalo)) - Revert "events: explore using getCoalescedEvents (#5554)" [#5895](https://github.com/tldraw/tldraw/pull/5895) ([@mimecuvalo](https://github.com/mimecuvalo)) - youtube: fix up timestamp [#5893](https://github.com/tldraw/tldraw/pull/5893) ([@mimecuvalo](https://github.com/mimecuvalo)) - Fix `useIsToolSelected`, add remove tool example [#5849](https://github.com/tldraw/tldraw/pull/5849) ([@steveruizok](https://github.com/steveruizok)) - A11y focus button fixes [#5825](https://github.com/tldraw/tldraw/pull/5825) ([@steveruizok](https://github.com/steveruizok)) - images: fix not being able to insert SVGs into Firefox [#5789](https://github.com/tldraw/tldraw/pull/5789) ([@mimecuvalo](https://github.com/mimecuvalo)) - fix error pasting shapes from Miro [#5790](https://github.com/tldraw/tldraw/pull/5790) ([@mimecuvalo](https://github.com/mimecuvalo)) - fix zoom speed for pinch gestures [#5771](https://github.com/tldraw/tldraw/pull/5771) ([@SomeHats](https://github.com/SomeHats)) - people menu: fix overflow and follow buttons [#5753](https://github.com/tldraw/tldraw/pull/5753) ([@mimecuvalo](https://github.com/mimecuvalo)) - When editing a text shape, don't mount the text editor for non-editing empty shapes unless they're hovered [#5734](https://github.com/tldraw/tldraw/pull/5734) ([@steveruizok](https://github.com/steveruizok) [@mimecuvalo](https://github.com/mimecuvalo)) - Add Frame colors [#5283](https://github.com/tldraw/tldraw/pull/5283) ([@steveruizok](https://github.com/steveruizok) [@huppy-bot[bot]](https://github.com/huppy-bot[bot]) [@SomeHats](https://github.com/SomeHats)) #### 💄 Product Improvements - events: explore using getCoalescedEvents, take 2 [#5898](https://github.com/tldraw/tldraw/pull/5898) ([@mimecuvalo](https://github.com/mimecuvalo)) - a11y: add resize kbd shortcut [#5826](https://github.com/tldraw/tldraw/pull/5826) ([@mimecuvalo](https://github.com/mimecuvalo)) - kbd: rework keyboard shortcut mapping symbols to be more intuitive [#5605](https://github.com/tldraw/tldraw/pull/5605) ([@steveruizok](https://github.com/steveruizok) [@mimecuvalo](https://github.com/mimecuvalo)) - a11y: add keyboard shortcut items; fix up focus ring in dotcom menus [#5852](https://github.com/tldraw/tldraw/pull/5852) ([@mimecuvalo](https://github.com/mimecuvalo)) - a11y: more role updates, more semantic html5 tags [#5847](https://github.com/tldraw/tldraw/pull/5847) ([@mimecuvalo](https://github.com/mimecuvalo)) - Rename useIsMultiplayer.ts to useCollaborationStatus [#5833] [#5835](https://github.com/tldraw/tldraw/pull/5835) ([@budatl](https://github.com/budatl)) - Make image pasting atomic [#5800](https://github.com/tldraw/tldraw/pull/5800) ([@ds300](https://github.com/ds300)) - a11y: add a live region to announce selected tools [#5634](https://github.com/tldraw/tldraw/pull/5634) ([@mimecuvalo](https://github.com/mimecuvalo)) - events: explore using getCoalescedEvents [#5554](https://github.com/tldraw/tldraw/pull/5554) ([@mimecuvalo](https://github.com/mimecuvalo)) - Not preload empty `embedIcons` [#5736](https://github.com/tldraw/tldraw/pull/5736) ([@khanilov](https://github.com/khanilov)) - embed: youtube support time and loop [#5726](https://github.com/tldraw/tldraw/pull/5726) ([@mimecuvalo](https://github.com/mimecuvalo)) #### 🎉 New Features - a11y: add axe to be able to do audits [#5840](https://github.com/tldraw/tldraw/pull/5840) ([@mimecuvalo](https://github.com/mimecuvalo)) - a11y: announce shapes as they're visited [#5773](https://github.com/tldraw/tldraw/pull/5773) ([@mimecuvalo](https://github.com/mimecuvalo)) - a11y: navigable shapes [#5761](https://github.com/tldraw/tldraw/pull/5761) ([@mimecuvalo](https://github.com/mimecuvalo)) #### 🛠️ API Changes - rich text: export some of our custom extensions [#5874](https://github.com/tldraw/tldraw/pull/5874) ([@mimecuvalo](https://github.com/mimecuvalo)) - Geometry2d Improvements [#5754](https://github.com/tldraw/tldraw/pull/5754) ([@SomeHats](https://github.com/SomeHats)) #### Authors: 7 - [@budatl](https://github.com/budatl) - [@huppy-bot[bot]](https://github.com/huppy-bot[bot]) - alex ([@SomeHats](https://github.com/SomeHats)) - David Sheldrick ([@ds300](https://github.com/ds300)) - Mime Čuvalo ([@mimecuvalo](https://github.com/mimecuvalo)) - Slava Khanilo ([@khanilov](https://github.com/khanilov)) - Steve Ruiz ([@steveruizok](https://github.com/steveruizok)) --- # v3.11.0 (Thu Mar 20 2025) ### Release Notes #### style panel: be able to hit Enter to continue editing after selection ([#5705](https://github.com/tldraw/tldraw/pull/5705)) - Style panel: be able to hit Enter to continue editing after selection #### text: fix editing for React 19/StrictMode ([#5689](https://github.com/tldraw/tldraw/pull/5689)) - Fix developing with StrictMode + React 19 when editing text. #### rich text: add RichTextSVG to exports ([#5700](https://github.com/tldraw/tldraw/pull/5700)) - Add `RichTextSVG` to the exports. #### [Fix] Rich text perf issue ([#5658](https://github.com/tldraw/tldraw/pull/5658)) - Improved performance related to rich text. #### exports: fix Inter being embedded; reduce excessive styling ([#5676](https://github.com/tldraw/tldraw/pull/5676)) - Fix issue with exports embedding Inter and having excessive styling. #### Allow embedding other multiplayer routes and also tldraw app routes ([#5326](https://github.com/tldraw/tldraw/pull/5326)) - Fixed a bug with… #### 5% minimum zoom / zoom-towards-cursor ([#5584](https://github.com/tldraw/tldraw/pull/5584)) - Added a new minimum zoom step at 5% - Added new keyboard shortcuts for zoom in or out towards your cursor (Shift +, Shift -) #### [Fix] indicators hideAll / showAll ([#5654](https://github.com/tldraw/tldraw/pull/5654)) - Improved performance on large projects when hiding / showing shape indicators. - Added `hideAll` and `showAll` props to the `ShapeIndicators` component props #### Add page navigation kbds ([#5586](https://github.com/tldraw/tldraw/pull/5586)) - Added keyboard shortcuts (option + arrows) for navigating between pages. #### [Fix] Use adjacent shape margin option in stackShapes, packShapes ([#5656](https://github.com/tldraw/tldraw/pull/5656)) - Adjusts distance for `stackShapes`. #### rich text: add `textOptions` to `<TldrawImage />` ([#5649](https://github.com/tldraw/tldraw/pull/5649)) - Fix a bug where `textOptions` was missing on `<TldrawImage />` #### a11y: make toolbar button labels better; fix missing str ([#5632](https://github.com/tldraw/tldraw/pull/5632)) - Improve labels for screen readers on toolbar buttons. Fix missing 'heart' string. #### embeds: add support for google maps satellite mode ([#5630](https://github.com/tldraw/tldraw/pull/5630)) - Adds support for satellite mode in Google Map embeds #### 'New user' -> 'Guest user' (dotcom only) ([#5614](https://github.com/tldraw/tldraw/pull/5614)) - Add a translation key 'people-menu.anonymous-user' with the default string 'New User' - BREAKING CHANGE: `editor.user.getName()` no longer returns `'New user'` if the user has no name set. Instead it returns the empty string `''`. - BREAKING CHANGE: `defaultUserPreferences.name` is no longer the string `'New user'`, it is now the empty string `''` #### a11y: focus ring ([#5401](https://github.com/tldraw/tldraw/pull/5401)) - a11y: enable focus ring. #### bookmark: add apostrophe to common html entities ([#5620](https://github.com/tldraw/tldraw/pull/5620)) - bookmark: add apostrophe to common html entities #### security: provide a way to pass through `nonce` to the editor ([#5607](https://github.com/tldraw/tldraw/pull/5607)) - Provide support to pass through `nonce` to the Editor. --- #### 🐛 Bug Fix - upgrade yarn to 4.7 [#5687](https://github.com/tldraw/tldraw/pull/5687) ([@SomeHats](https://github.com/SomeHats)) - toolbar: tweak selected color [#5624](https://github.com/tldraw/tldraw/pull/5624) ([@mimecuvalo](https://github.com/mimecuvalo)) - a11y: focus ring [#5401](https://github.com/tldraw/tldraw/pull/5401) ([@mimecuvalo](https://github.com/mimecuvalo) [@steveruizok](https://github.com/steveruizok)) - debug: move hard reset option to avoid fat finger [#5616](https://github.com/tldraw/tldraw/pull/5616) ([@mimecuvalo](https://github.com/mimecuvalo)) #### 🐛 Bug Fixes - style panel: be able to hit Enter to continue editing after selection, pt 2 [#5713](https://github.com/tldraw/tldraw/pull/5713) ([@mimecuvalo](https://github.com/mimecuvalo)) - style panel: be able to hit Enter to continue editing after selection [#5705](https://github.com/tldraw/tldraw/pull/5705) ([@mimecuvalo](https://github.com/mimecuvalo)) - text: fix editing for React 19/StrictMode [#5689](https://github.com/tldraw/tldraw/pull/5689) ([@mimecuvalo](https://github.com/mimecuvalo) [@SomeHats](https://github.com/SomeHats)) - rich text: add RichTextSVG to exports [#5700](https://github.com/tldraw/tldraw/pull/5700) ([@mimecuvalo](https://github.com/mimecuvalo)) - exports: fix Inter being embedded; reduce excessive styling [#5676](https://github.com/tldraw/tldraw/pull/5676) ([@mimecuvalo](https://github.com/mimecuvalo) [@huppy-bot[bot]](https://github.com/huppy-bot[bot])) - [Fix] indicators hideAll / showAll [#5654](https://github.com/tldraw/tldraw/pull/5654) ([@steveruizok](https://github.com/steveruizok)) - rich text: add `textOptions` to `<TldrawImage />` [#5649](https://github.com/tldraw/tldraw/pull/5649) ([@mimecuvalo](https://github.com/mimecuvalo)) - a11y: make toolbar button labels better; fix missing str [#5632](https://github.com/tldraw/tldraw/pull/5632) ([@mimecuvalo](https://github.com/mimecuvalo)) - bookmark: add apostrophe to common html entities [#5620](https://github.com/tldraw/tldraw/pull/5620) ([@mimecuvalo](https://github.com/mimecuvalo)) #### 💄 Product Improvements - [Fix] Rich text perf issue [#5658](https://github.com/tldraw/tldraw/pull/5658) ([@steveruizok](https://github.com/steveruizok) [@mimecuvalo](https://github.com/mimecuvalo)) - Allow embedding other multiplayer routes and also tldraw app routes [#5326](https://github.com/tldraw/tldraw/pull/5326) ([@MitjaBezensek](https://github.com/MitjaBezensek) [@steveruizok](https://github.com/steveruizok)) - 5% minimum zoom / zoom-towards-cursor [#5584](https://github.com/tldraw/tldraw/pull/5584) ([@steveruizok](https://github.com/steveruizok)) - [Fix] Use adjacent shape margin option in stackShapes, packShapes [#5656](https://github.com/tldraw/tldraw/pull/5656) ([@steveruizok](https://github.com/steveruizok)) - embeds: add support for google maps satellite mode [#5630](https://github.com/tldraw/tldraw/pull/5630) ([@mimecuvalo](https://github.com/mimecuvalo)) - 'New user' -> 'Guest user' (dotcom only) [#5614](https://github.com/tldraw/tldraw/pull/5614) ([@ds300](https://github.com/ds300)) #### 🎉 New Features - Add page navigation kbds [#5586](https://github.com/tldraw/tldraw/pull/5586) ([@steveruizok](https://github.com/steveruizok)) - security: provide a way to pass through `nonce` to the editor [#5607](https://github.com/tldraw/tldraw/pull/5607) ([@mimecuvalo](https://github.com/mimecuvalo)) #### Authors: 6 - [@huppy-bot[bot]](https://github.com/huppy-bot[bot]) - alex ([@SomeHats](https://github.com/SomeHats)) - David Sheldrick ([@ds300](https://github.com/ds300)) - Mime Čuvalo ([@mimecuvalo](https://github.com/mimecuvalo)) - Mitja Bezenšek ([@MitjaBezensek](https://github.com/MitjaBezensek)) - Steve Ruiz ([@steveruizok](https://github.com/steveruizok)) --- # v3.10.0 (Tue Mar 11 2025) ### Release Notes #### Use ImmutableMap inside AtomMap ([#5567](https://github.com/tldraw/tldraw/pull/5567)) - Fixed a perf regression that caused slowness mainly when loading documents. #### export: fix style embedding for foreignObjects in Firefox ([#5593](https://github.com/tldraw/tldraw/pull/5593)) - Fix exports / style embedding for foreignObjects in Firefox #### Display BrokenAssetIcon when file upload fails ([#5552](https://github.com/tldraw/tldraw/pull/5552)) - Improve UI around failed uploads to show that the asset is broken. #### rich text: fix links getting in the way of some tools and android selection ([#5568](https://github.com/tldraw/tldraw/pull/5568)) - Fix issue with rich text links taking precedence over tools. Also, fix fine-grained selection on Android. #### fix reparentshapes preserve order ([#5565](https://github.com/tldraw/tldraw/pull/5565)) - Modify the reparentShapes() function to ensure that the original order of the shapes is preserved when reparenting. #### Revert "Revert "Fix for resizing snapshot bug (#5211)" (#5292)" ([#5553](https://github.com/tldraw/tldraw/pull/5553)) - Fixed a bug that could occur when resizing. #### media: extract base64 assets from .tldr files ([#5525](https://github.com/tldraw/tldraw/pull/5525)) - Ensure .tldr files with embedded base64 assets get their assets rehydrated back into the local db. #### fix pasting files in safari ([#5545](https://github.com/tldraw/tldraw/pull/5545)) - Fixed a bug with pasting files from your computer in Safari #### [feature] add rich text and contextual toolbar ([#4895](https://github.com/tldraw/tldraw/pull/4895)) - Rich text using ProseMirror as a first-class supported option in the Editor. --- #### 🐛 Bug Fix - CTA analytics [#5542](https://github.com/tldraw/tldraw/pull/5542) ([@TodePond](https://github.com/TodePond)) #### 🐛 Bug Fixes - Use ImmutableMap inside AtomMap [#5567](https://github.com/tldraw/tldraw/pull/5567) ([@ds300](https://github.com/ds300)) - export: fix style embedding for foreignObjects in Firefox [#5593](https://github.com/tldraw/tldraw/pull/5593) ([@mimecuvalo](https://github.com/mimecuvalo)) - Display BrokenAssetIcon when file upload fails [#5552](https://github.com/tldraw/tldraw/pull/5552) ([@kazu-2020](https://github.com/kazu-2020) [@mimecuvalo](https://github.com/mimecuvalo)) - rich text: fix links getting in the way of some tools and android selection [#5568](https://github.com/tldraw/tldraw/pull/5568) ([@mimecuvalo](https://github.com/mimecuvalo)) - fix reparentshapes preserve order [#5565](https://github.com/tldraw/tldraw/pull/5565) (riley@toonsquare.co) - [important dotcom perf fix] use useMaybeEditor in ui context [#5560](https://github.com/tldraw/tldraw/pull/5560) ([@ds300](https://github.com/ds300)) - Revert "Revert "Fix for resizing snapshot bug (#5211)" (#5292)" [#5553](https://github.com/tldraw/tldraw/pull/5553) ([@mimecuvalo](https://github.com/mimecuvalo)) - fix: prevent text duplication when using IME with Enter key in Chrome [#5540](https://github.com/tldraw/tldraw/pull/5540) ([@banqinghe](https://github.com/banqinghe) [@mimecuvalo](https://github.com/mimecuvalo)) - fix pasting files in safari [#5545](https://github.com/tldraw/tldraw/pull/5545) ([@bluedot74](https://github.com/bluedot74)) #### 💄 Product Improvements - media: extract base64 assets from .tldr files [#5525](https://github.com/tldraw/tldraw/pull/5525) ([@mimecuvalo](https://github.com/mimecuvalo)) #### 🎉 New Features - [feature] add rich text and contextual toolbar [#4895](https://github.com/tldraw/tldraw/pull/4895) ([@mimecuvalo](https://github.com/mimecuvalo) [@huppy-bot[bot]](https://github.com/huppy-bot[bot]) [@SomeHats](https://github.com/SomeHats) [@ds300](https://github.com/ds300) [@steveruizok](https://github.com/steveruizok)) #### Authors: 10 - [@huppy-bot[bot]](https://github.com/huppy-bot[bot]) - alex ([@SomeHats](https://github.com/SomeHats)) - David Sheldrick ([@ds300](https://github.com/ds300)) - Josh Willis ([@bluedot74](https://github.com/bluedot74)) - Lu Wilson ([@TodePond](https://github.com/TodePond)) - mimata kazutaka ([@kazu-2020](https://github.com/kazu-2020)) - Mime Čuvalo ([@mimecuvalo](https://github.com/mimecuvalo)) - Qinghe Ban ([@banqinghe](https://github.com/banqinghe)) - Riley ([@dodo-Riley](https://github.com/dodo-Riley)) - Steve Ruiz ([@steveruizok](https://github.com/steveruizok)) --- # v3.9.0 (Mon Mar 03 2025) ### Release Notes #### Fix issue with duplicating bound arrows. ([#5495](https://github.com/tldraw/tldraw/pull/5495)) - Fix a bug with duplicating bound arrows. #### [botcom] Fix slow export menu in big files ([#5435](https://github.com/tldraw/tldraw/pull/5435)) - Fixed a bug with export menu performance. #### Improve / fix layout methods: alignment, distribute, flip, stack. ([#5479](https://github.com/tldraw/tldraw/pull/5479)) - Fixes several bugs when aligning / flipping / distributing / stretching / stacking a selection that included with arrows. - Fixed a bug with distribution with overlapping shapes - Fixed a bug with distribution that could lead to changed selection. - Fixed a bug preventing rotated shapes from being stretched. #### Fix text padding, add context to shape geometry ([#5487](https://github.com/tldraw/tldraw/pull/5487)) - Improved horizontal padding for arrows bound to text shapes #### Remove canvas size dependency ([#5488](https://github.com/tldraw/tldraw/pull/5488)) - API: removes canvas-size dependency. #### fix copy as svg mime type ([#5482](https://github.com/tldraw/tldraw/pull/5482)) - Fix copy as svg #### [hotfixme] Option-cloning text shapes ([#5470](https://github.com/tldraw/tldraw/pull/5470)) - Fixed a bug with cloning text shapes. #### assets: fix up regression with temporaryAssetPreview ([#5453](https://github.com/tldraw/tldraw/pull/5453)) - Fix a regression with temporary image previews while images are uploading. --- #### 🐛 Bug Fix - disable full-fat copy-as-svg on chrome [#5524](https://github.com/tldraw/tldraw/pull/5524) ([@ds300](https://github.com/ds300)) - Update discord links [#5500](https://github.com/tldraw/tldraw/pull/5500) ([@SomeHats](https://github.com/SomeHats) [@huppy-bot[bot]](https://github.com/huppy-bot[bot]) [@steveruizok](https://github.com/steveruizok) [@TodePond](https://github.com/TodePond)) #### 🐛 Bug Fixes - pull writing image/svg to clipboard [#5533](https://github.com/tldraw/tldraw/pull/5533) ([@SomeHats](https://github.com/SomeHats)) - Fix issue with duplicating bound arrows. [#5495](https://github.com/tldraw/tldraw/pull/5495) ([@MitjaBezensek](https://github.com/MitjaBezensek)) - [botcom] Fix slow export menu in big files [#5435](https://github.com/tldraw/tldraw/pull/5435) ([@steveruizok](https://github.com/steveruizok)) - Improve / fix layout methods: alignment, distribute, flip, stack. [#5479](https://github.com/tldraw/tldraw/pull/5479) ([@steveruizok](https://github.com/steveruizok)) - fix copy as svg mime type [#5482](https://github.com/tldraw/tldraw/pull/5482) ([@SomeHats](https://github.com/SomeHats)) - [hotfixme] Option-cloning text shapes [#5470](https://github.com/tldraw/tldraw/pull/5470) ([@steveruizok](https://github.com/steveruizok)) - assets: fix up regression with temporaryAssetPreview [#5453](https://github.com/tldraw/tldraw/pull/5453) ([@mimecuvalo](https://github.com/mimecuvalo)) #### 💄 Product Improvements - Fix text padding, add context to shape geometry [#5487](https://github.com/tldraw/tldraw/pull/5487) ([@steveruizok](https://github.com/steveruizok)) - Remove canvas size dependency [#5488](https://github.com/tldraw/tldraw/pull/5488) ([@steveruizok](https://github.com/steveruizok)) #### Authors: 7 - [@huppy-bot[bot]](https://github.com/huppy-bot[bot]) - alex ([@SomeHats](https://github.com/SomeHats)) - David Sheldrick ([@ds300](https://github.com/ds300)) - Lu Wilson ([@TodePond](https://github.com/TodePond)) - Mime Čuvalo ([@mimecuvalo](https://github.com/mimecuvalo)) - Mitja Bezenšek ([@MitjaBezensek](https://github.com/MitjaBezensek)) - Steve Ruiz ([@steveruizok](https://github.com/steveruizok)) --- # v3.8.0 (Wed Feb 12 2025) ### Release Notes #### Add tldraw and excalidraw to external content types ([#5402](https://github.com/tldraw/tldraw/pull/5402)) - You can now customize how pasted tldraw and excalidraw content is handled with `registerExternalContentHandler`. #### Move computation to where it is needed ([#5413](https://github.com/tldraw/tldraw/pull/5413)) - Slightly improve performance of frames. #### ShapeUtil.configure for shape options ([#5399](https://github.com/tldraw/tldraw/pull/5399)) - introduces shape options & `ShapeUtil.configure`, a utility for passing options to a shape util - moves (unreleased) noteShapeResizeMode to NoteShapeOptions.resizeMode - If you pass tldraw a shape util with the same type as a default, it'll now replace the default rather than crash - **BREAKING** `options.maxDrawShapePoints` should now be specified with `DrawShapeUtil.configure({maxPoints})` and `HighlightShapeUtil.configure({maxPoints})` #### Shape options ([#5349](https://github.com/tldraw/tldraw/pull/5349)) - introduces shape options - moves (unreleased) `noteShapeResizeMode` to `NoteShapeOptions.resizeMode` - moves `maxDrawShapePoints` to `DrawShapeOptions.maxPoints` - adds `maxPoints` to `HighlightShapeOptions.maxPoints` - 💥 breaking change if someone was using `options.maxDrawShapePoints`. #### Numeric shortcuts were still getting triggered when used inside some inputs (like the file rename input) ([#5378](https://github.com/tldraw/tldraw/pull/5378)) - Fix an issue with numeric shortcuts working inside of editable elements. #### Use tick for asset debounce ([#5361](https://github.com/tldraw/tldraw/pull/5361)) - Improve zoom performance when many shapes are in a document. #### Fix dialog interactions. ([#5366](https://github.com/tldraw/tldraw/pull/5366)) - Improve dialog interactions: mouse down inside of it followed by mouse out outside of it no longer dismisses dialogs. #### Improve frame heading perf ([#5357](https://github.com/tldraw/tldraw/pull/5357)) - Fix bug effecting performance when many frames are on the screen. #### Fix keyboard shortcut `1` not working for selecting the first tool ([#5358](https://github.com/tldraw/tldraw/pull/5358)) - Fix a bug when 1 didn't work as a keyboard shortcut to select the first tool. #### Add option to disable numbered shortcuts on the toolbar ([#5340](https://github.com/tldraw/tldraw/pull/5340)) - SDK: Added editor option to disable 0-9 keyboard shortcuts for the toolbar - Improved keyboard shortcuts for the toolbar #### Add "select geo tool" shortcut ([#5341](https://github.com/tldraw/tldraw/pull/5341)) - Added `g` shortcut to select the most recent geometric tool. #### support react 19 ([#5293](https://github.com/tldraw/tldraw/pull/5293)) - tldraw now supports react 19 #### separately export default external content/asset handlers ([#5298](https://github.com/tldraw/tldraw/pull/5298)) - You can now import each of our external asset/content handlers, so you can augment them without having to copy-paste them into your app #### BREAKING - `TLExternalAssetContent` has been renamed to `TLExternalAsset` #### fix pasting text/plain with keyboard shortcut ([#5303](https://github.com/tldraw/tldraw/pull/5303)) - Fixed a bug with handling native paste events for plain text #### Use the uncropped width when requesting an image shape asset ([#5300](https://github.com/tldraw/tldraw/pull/5300)) - Fixed a bug where a cropped image would use lower scaled assets the more it was cropped. #### Add editor option to allow sticky note resizing by scale ([#5273](https://github.com/tldraw/tldraw/pull/5273)) - Added `options.noteShapeResizeMode` editor option to control how note shapes resize. #### Fix an error when embed util is not present. ([#5296](https://github.com/tldraw/tldraw/pull/5296)) - Fix an issue with embeds logic not gracefully handling cases when we don't have an embed util. #### Add an onCrop handler to ShapeUtil ([#5137](https://github.com/tldraw/tldraw/pull/5137)) - Add support for an onCrop handler on shape utils that allows you to prevent or modify the crop. - The `TLImageShapeCrop` type has been replaced by `TLShapeCrop`. #### edit menu: don't disable if not in select tool ([#5274](https://github.com/tldraw/tldraw/pull/5274)) - Edit menu: fix accessing edit menu when not in the Select tool #### Fix for resizing snapshot bug ([#5211](https://github.com/tldraw/tldraw/pull/5211)) - Fixed a bug that could occur when resizing on mobile #### Welcome dialog for preview users ([#5263](https://github.com/tldraw/tldraw/pull/5263)) - Breaking SDK Changes - TldrawUiToasts renamed to DefaultToasts - TldrawUiDialogs renamed to DefaultDialogs - New SDK stuff - Toasts overridable component added - Dialogs overridable component added #### Asset uploads ([#5218](https://github.com/tldraw/tldraw/pull/5218)) **Breaking change** - `@tldraw/tlschema`: `TLAssetStore.upload` used to return just the `src` of the uploaded asset. It now returns `{src: string, meta?: JsonObject}`. The returned metadata will be added to the asset record and thus allows the users to add some additional data to them when uploading. - `@tldraw/editor`: `Editor.uploadAsset` used to return `Promise<string>` and now returns `Promise<{ src: string; meta?: JsonObject }> ` #### Exports DX pass ([#5114](https://github.com/tldraw/tldraw/pull/5114)) #### Breaking changes / user facing changes - The copy/export as JSON option has been removed. Data copied/exported from here could not be used anyway. If you need this in your app, look into `Editor.getContentFromCurrentPage`. - `useImageOrVideoAssetUrl` now expects a `width` parameter representing the rendered width of the asset. - `Editor.getSvgElement` and `Editor.getSvgString` will now export all shapes on the current page instead of returning undefined when passed an empty array of shape ids. #### Product improvement - When exporting to an image, image assets are now downloaded at a resolution appropriate for how they will appear in the export. #### API changes - There's a new `Editor.toImage` method that makes creating an image from your canvas easier. (`exportToBlob` is deprecated in favour of it) - `SvgExportContext` now exposes the `scale` and `pixelRatio` options of the current export - `SvgExportContext` now has a `resolveAssetUrl` method to resolve an asset at a resolution appropriate for the export. - `copyAs(editor, ids, format, opts)` has been deprecated in favour of `copyAs(editor, ids, opts)`. - `exportAs(editor, ids, format, name, opts)` has been deprecated in favour of `exportAs(editor, ids, opts)` #### Added toast instead of throwing an error for the case when the amount… ([#5201](https://github.com/tldraw/tldraw/pull/5201)) - added toast instead of throwing an error for the case when the amount of files is bigger than `maxFilesAtOnce` #### fix clipboard file upload ([#5223](https://github.com/tldraw/tldraw/pull/5223)) - Fix pasting files copied from the local filesystem with cmd-v #### Provided an ability to select multiple arrow labels using ctrl/cmd key ([#5161](https://github.com/tldraw/tldraw/pull/5161)) - Provided an ability to select multiple arrow labels using ctrl/cmd key --- #### 🐛 Bug Fix - Fix line wobble issue [#5281](https://github.com/tldraw/tldraw/pull/5281) ([@jamesbvaughan](https://github.com/jamesbvaughan)) - Revert "Fix for resizing snapshot bug (#5211)" [#5292](https://github.com/tldraw/tldraw/pull/5292) ([@mimecuvalo](https://github.com/mimecuvalo)) - hard code context id for dialogs [#5279](https://github.com/tldraw/tldraw/pull/5279) ([@ds300](https://github.com/ds300)) - Move examples from CodeSandbox to StackBlitz [#5255](https://github.com/tldraw/tldraw/pull/5255) ([@steveruizok](https://github.com/steveruizok)) - Focus file input on create/duplicate [#5253](https://github.com/tldraw/tldraw/pull/5253) ([@ds300](https://github.com/ds300)) - strings: rm some old ones, use nice apostrophes [#5213](https://github.com/tldraw/tldraw/pull/5213) ([@mimecuvalo](https://github.com/mimecuvalo)) #### 🐛 Bug Fixes - Numeric shortcuts were still getting triggered when used inside some inputs (like the file rename input) [#5378](https://github.com/tldraw/tldraw/pull/5378) ([@MitjaBezensek](https://github.com/MitjaBezensek)) - Improve frame heading perf [#5357](https://github.com/tldraw/tldraw/pull/5357) ([@steveruizok](https://github.com/steveruizok)) - Fix keyboard shortcut `1` not working for selecting the first tool [#5358](https://github.com/tldraw/tldraw/pull/5358) ([@MitjaBezensek](https://github.com/MitjaBezensek)) - fix pasting text/plain with keyboard shortcut [#5303](https://github.com/tldraw/tldraw/pull/5303) ([@ds300](https://github.com/ds300)) - Use the uncropped width when requesting an image shape asset [#5300](https://github.com/tldraw/tldraw/pull/5300) ([@trygve-aaberge-adsk](https://github.com/trygve-aaberge-adsk)) - Fix an error when embed util is not present. [#5296](https://github.com/tldraw/tldraw/pull/5296) ([@MitjaBezensek](https://github.com/MitjaBezensek) [@mimecuvalo](https://github.com/mimecuvalo)) - edit menu: don't disable if not in select tool [#5274](https://github.com/tldraw/tldraw/pull/5274) ([@mimecuvalo](https://github.com/mimecuvalo)) - Fix for resizing snapshot bug [#5211](https://github.com/tldraw/tldraw/pull/5211) ([@steveruizok](https://github.com/steveruizok)) - Added toast instead of throwing an error for the case when the amount… [#5201](https://github.com/tldraw/tldraw/pull/5201) ([@melnikkk](https://github.com/melnikkk)) - fix clipboard file upload [#5223](https://github.com/tldraw/tldraw/pull/5223) ([@SomeHats](https://github.com/SomeHats)) - i18n: rename two locale codes [#5212](https://github.com/tldraw/tldraw/pull/5212) ([@mimecuvalo](https://github.com/mimecuvalo)) - Fix lint. [#5182](https://github.com/tldraw/tldraw/pull/5182) ([@MitjaBezensek](https://github.com/MitjaBezensek)) - Provided an ability to select multiple arrow labels using ctrl/cmd key [#5161](https://github.com/tldraw/tldraw/pull/5161) ([@melnikkk](https://github.com/melnikkk)) #### 💄 Product Improvements - Move computation to where it is needed [#5413](https://github.com/tldraw/tldraw/pull/5413) ([@MitjaBezensek](https://github.com/MitjaBezensek)) - Improve published file experience [#5371](https://github.com/tldraw/tldraw/pull/5371) ([@ds300](https://github.com/ds300)) - Use tick for asset debounce [#5361](https://github.com/tldraw/tldraw/pull/5361) ([@steveruizok](https://github.com/steveruizok)) - Fix dialog interactions. [#5366](https://github.com/tldraw/tldraw/pull/5366) ([@MitjaBezensek](https://github.com/MitjaBezensek)) - support react 19 [#5293](https://github.