Back to Tldraw

Next release

apps/docs/content/releases/next.mdx

5.1.03.6 KB
Original Source

This release redesigns the page menu around inline interaction, adds a keyboard shortcut to copy styles from a hovered shape, and adds a selectLockedShapes option for inspecting locked shapes, along with new public translation APIs and various rendering and UI bug fixes.

What's new

The page menu no longer has an explicit edit mode. Reorder pages by dragging a row directly, rename inline by double-clicking the label or pressing Enter, and drag the new resize handle at the bottom of the popover to adjust the list height — the height is persisted across sessions and a double-click on the handle resets it to the default. The current page is now indicated by a subtle background pill, the row submenu trigger reveals on hover, and the "Create new page" button is pinned to the footer of the popover.

API changes

  • Add a selectLockedShapes option to TldrawOptions. When enabled, locked shapes can be selected by left click or by brush/scribble selection while remaining protected from edits, moves, and deletes. (#8860)
  • Export TldrawUiTranslationProvider, AssetUrlsProvider, and useAssetUrls as public API so components like TldrawSelectionForeground can be rendered without the full TldrawUiContextProvider. (#8909)
  • Add FontManager.dispose(), OverlayManager.dispose(), and OverlayUtil.dispose() for cleaning up manager state across editor lifecycles. (#8896)

Improvements

  • Add a q shortcut that copies the styles of the hovered shape and applies them to the next shape you create. (#8917) (contributed by @kaneel)
  • Improve performance on busy canvases — getRenderingShapes() now skips its sort step when only shape props, not the set of shape ids, have changed. (#8784)

Bug fixes

  • Fix a misleading "license expired" console warning for perpetual licenses on covered versions. (#8791)
  • Fix inconsistent tooltip behavior on the video toolbar by using TldrawUiToolbarButton for the replace and download buttons. (#8794)
  • Fix the missing open-state hint on the page menu and zoom menu triggers when rendered outside the main toolbar. (#8813)
  • Mark the tldraw UI layer with role="document" so toolbars, menus, and dialogs stay reachable to mobile screen readers like VoiceOver and TalkBack, which do not announce the outer canvas role="application". (#8901)
  • Fix selection edge resize handles overlapping corner handles, which made corners hard to grab on small shapes. (#8926)
  • Fix a bug where deleting a shape inside a group could move the group to a different z-index. (#8925) (contributed by @kaneel)
  • Avoid console errors from calling preventDefault on non-cancelable events. (#8910)
  • Only log the missing-translation warning once per session instead of once per useTranslation consumer. (#8909)
  • Catch image.decode() rejections from the icon preload effect so they no longer surface as uncaught promise errors in the console. (#8824)