Tldraw/CHANGELOG.md

144 KiB

v2.0.0-alpha.19 (Tue Dec 12 2023)

Release Notes

zoom to affected shapes after undo/redo (#2293)

  • Make sure affected shapes are visible after undo/redo

Fix hmr. (#2303)

  • Fixes HMR in local dev.

Fix migrations. (#2302)

  • Fix migrations of instance_page_state.

Add fit to content for frames. (#2275)

  • Add Fit to content option to the context menu for frames. This resizes the frames to correctly fit all their content.

Fix an issue with a stale editor reference in shape utils (#2295)

  • Fix an issue where the shape utils could have a stale reference to the editor.

fix new page naming (#2292)

  • Fix naming of pages created by the "move to page" action

Fix exporting of cropped images. (#2268)

  • Fix exporting of cropped images.

Update the comment in the example. (#2272)

  • Improve the comment for one of our examples.

[improvements] arrows x enclosing shapes x precision. (#2265)

  • Improves the logic about when to draw "precise" arrows between the center of bound shapes.

fix vite HMR issue (#2279)

  • Fixes a bug that could cause crashes due to a re-render loop with HMR #1989

Add connecting screen override. (#2273)

  • Allow users to customize the connecting screen.

Removing frames and adding elements to frames (#2219)

  • Allow users to remove the frame, but keep it's children. Allow the users to add shapes to the frame directly when creating a frame.

fix typo in useFixSafariDoubleTapZoomPencilEvents.ts (#2242)

  • Add a brief release note for your PR here.

improves translation into pt-br (#2231)

  • Improves the overall translation into Portuguese (pt-br).

Fixes #2246 Sublibraries example (ExplodedExample.tsx) (#2247)

  • Fixed Sublibraries (Exploded) example

Fix missing padding-right in toast (#2251)

  • Fox padding-right in toast content.

Fix "custom UI" example (#2253)

  • Fixed double rendering of canvas in the "custom UI" example

Lokalise: Translations update (#2248)

  • Update Romanian translations.

Also export TLUiEventMap (#2234)

  • Export TLUiEventMap type.

Fix the tool lock button. (#2225)

  • Adds the missing tool lock button.

Custom Tools DX + screenshot example (#2198)

  • adds ScreenshotTool custom tool example
  • improvements and new exports related to copying and exporting images / files
  • loosens up types around icons and translations
  • moving StateNode.isActive into an atom
  • adding Editor.path

StateNode atoms (#2213)

  • adds computed StateNode.getPath
  • adds computed StateNode.getCurrent`
  • adds computed StateNode.getIsActive`
  • adds computed Editor.getPath()
  • makes transition's second property optional

VS Code bump 2.0.17 (#2217)

  • VS code extension 2.0.17.

don't overwrite bookmark position if it changed before metadata arrives (#2215)

  • Fixes issue when creating new bookmark shape where the position would be reset if you moved it before the bookmark metadata was fetched.

Add prettier caching (#2212)

  • Speed up formatting of files via yarn format.

Update translations from community submissions (#2201)

  • Updated translations for Spanish, Japanese, Romanian, Russian, Ukrainian, and Simplified Chinese.

[fix] huge images, use downscale for image scaling (#2207)

  • Improved image rescaling.

Revert back to the previous color. (#2210)

  • Fixes the color of culled shapes when using dark mode.

Fix an issue with not being able to group a shape an an arrow. (#2205)

  • Add a brief release note for your PR here.

Japanese translations. (update) (#2199)

  • Updated Japanese translations.

feat: add new prop to force mobile mode layout (#1734)

  • add new prop to force mobile mode layout

[fix] masked bounds calculation (#2197)

  • Fix bug with getmaskedpagebounds calculation for identical parent / child sizes

💥 Breaking Change

  • @tldraw/editor, @tldraw/state, @tldraw/store, @tldraw/tldraw, @tldraw/tlschema

🚀 Enhancement

🐛 Bug Fix

🏠 Internal

📝 Documentation

🧪 Tests

Authors: 13


v2.0.0-alpha.18 (Fri Nov 10 2023)

Release Notes

Fix an error when using context menu. (#2186)

  • Fixes the console error when opening the context menu for the first time.

[fix] actions menu freezing ui (#2187)

  • Fix actions menu not closing when clicking the canvas after grouping items via the actions menu.
  • Fixes an issue with using the Edit link dialog.

add missing semicolon (#2182)

  • Fix typo in CSS file

Only use the hack if we are in safari. (#2185)

  • Improve the speed of exporting to png for non Safari browsers.

Fix keyboard shortcuts for vscode. (#2181)

  • Fixes keyboard shortcuts for VS Code extension.

Fix printing. (#2177)

  • Fixes printing of shapes.

[fix] Frame label not following staying aligned correctly on rotation (#2172)

  • Frame labels immediately update their position on rotation.

Don't show scrollbars. (#2171)

  • Hide the horizontal scrollbar in the vertical alignment for Firefox.

instant bookmarks (#2176)

  • Improves ux around pasting bookmarks

Fix arrow dropdown localizations. (#2174)

  • Fix arrow headstyle dropdown translations.

Fix crash with zero length arrow (#2173)

  • Fix a hyper niche arrow crash with zero length arrows.

Allow users to select shapes when drag starts on top of a locked shape. (#2169)

  • Allows brush selecting when you start it on top of a locked shape.

Fix the problem with text not being correctly aligned in small geo shapes. (#2168)

  • Fixes position of Text labels in geo shapes.

Zooming improvement (#2149)

  • Improves zooming for inactive windows.

[feature] Things on the canvas (#2150)

  • [editor] Adds two new components, OnTheCanvas and InFrontOfTheCanvas.

Bump vs code extension. (#2142)

  • Release a new version of VS Code extension with all the latest changes.

Fix cleanupText (#2138)

  • Fixes a minor bug where cleaning up text would fail.
  • Fixed a bug where labels and links could lose alignment on android.

[feature] multi-scribbles (#2125)

  • [feature] multi scribbles

Tighten up editor ui (#2102)

  • Small adjustment to editor ui.

Remove indicator for autosize text shapes while editing (#2120)

  • Removed the indicator from autosize text shapes.

Taha/initial shape in handle change (#2117)

  • Add a brief release note for your PR here.

Fix an issue with addEventListener in old Safari (pre v14) (#2114)

  • Fixes an issue with addEventListener on MediaQueryList object in old versions of Safari.

fix selection fg transform (#2113)

  • Fixes a small issue causing the selection foreground to be offset when the browser is at particular zoom levels.

Remove (optional) from jsdocs (#2109)

  • dev: Removed duplicate/inconsistent (optional)s from docs

[fix] mobile style panel switching open / closed (#2101)

  • Fix bug with style panel

🚀 Enhancement

🐛 Bug Fix

🏠 Internal

  • @tldraw/assets, @tldraw/editor, @tldraw/state, @tldraw/store, @tldraw/tldraw, @tldraw/tlschema, @tldraw/utils, @tldraw/validate
    • Revert "bump prerelease from alpha to beta" #2192 (@ds300)
    • bump prerelease from alpha to beta #2148 (@ds300)
  • @tldraw/editor, @tldraw/tldraw

📝 Documentation

Authors: 5


v2.0.0-alpha.17 (Tue Oct 17 2023)

Release Notes

Firefox, Touch: Fix not being able to open style dropdowns (#2092)

  • Firefox Mobile: Fixed a bug where you couldn't open some style dropdown options.

Add timestamp to file names (#2096)

  • Add timestamp to exported image file names

[fix] Context menu + menus not closing correctly (#2086)

  • [fix] bug with menus

Fix not being able to upload massive images (#2095)

  • Fixed big images being too big to get added to the canvas.

fix cropped image size (#2097)

  • Fixes a rendering issue where cropped images were sometimes bleeding outside their bounds.

Add offline indicator (also to top zone example) (#2083)

  • [@tldraw/tldraw] add offline indicator to ui components

[fix] missing border on group shape when unlocked (#2075)

  • Fix case where indicator was not shown when unlocking groups

[fix] reparenting locked shapes (#2070)

  • Fix a bug where grouped locked shapes would be deleted when ungrouped.

[fix] Don't select locked shapes on pointer up (#2069)

  • Fix bug where locked shape could be selected by clicking on its label

[fix] locked shape of opacity problem with eraser.pointing (#2073)

  • locked shape of opacity problem with eraser.pointing Before/after: A B

🚀 Enhancement

  • @tldraw/assets, @tldraw/tldraw
  • @tldraw/tldraw
  • @tldraw/tldraw, @tldraw/tlschema

🐛 Bug Fix

🏠 Internal

🧪 Tests

🔩 Dependency Updates

  • @tldraw/editor, @tldraw/store, @tldraw/tlschema

Authors: 9


v2.0.0-alpha.16 (Wed Oct 11 2023)

Release Notes

Fix shape opacity when erasing (#2055)

  • Fixes opacity of shapes while erasing in a group or frame.

[fix] Hit testing against zero width / height lines (#2060)

  • [fix] Bug where arrows would not bind to straight lines

Fix opacity lowering on shapes that cannot be deleted (#2061)

  • Locked shapes don't change opacity when scribble erasing.

Before/after:

fix: proper label for opacity tooltip on hover (#2044)

  • Add a brief release note for your PR here.

Fix alt + shift keyboard shortcuts (#2053)

  • Fixes keyboard shortcuts that use alt and shift modifiers.

[improvement] Scope getShapeAtPoint to rendering shapes only (#2043)

  • Improve perf for hovering shapes / shape hit tests

Remove topBar prop from (#2018)

  • [BREAKING] removed topBar prop

🚀 Enhancement

  • @tldraw/editor, @tldraw/tldraw
  • @tldraw/tldraw, @tldraw/tlschema
  • @tldraw/editor, @tldraw/tlschema
    • prevent hover indicator from showing when pointer isn't over the canvas #2023 (@SomeHats)
  • @tldraw/tldraw

🐛 Bug Fix

🏠 Internal

🧪 Tests

Authors: 7


v2.0.0-alpha.15 (Fri Oct 06 2023)

Release Notes

frame label fix (#2016)

  • Add a brief release note for your PR here.

fix cloud rendering (#2008)

  • Improves cloud shape rendering

[improvement] prevent editing in readonly (#1990)

  • Prevent editing text shapes in readonly mode.

[fix] Hovered indicators shown when coarse pointer (#1985)

  • Hide hovered indicators on mobile / coarse pointer devices.

fix(docs): update shapes docs add the array of defined shapes (#1949)

This pr add the custom defined shapes that's being passed to Tldraw

Fix style panel opening when disabled (#1983)

  • When select tool is active, the style menu shouldn't be openable unless a shape is also selected.

Before/After

[fix] pinch events (#1979)

  • Improve pinch gesture events.

Fix text-wrapping on Safari (#1980)

  • Fix text wrapping differently on Safari and Chrome/Firefox

Before/After

Remove focus management (#1953)

  • [editor] Make autofocus default, remove automatic blur / focus events.

[fix] Drawing tool touch for first pen mark (#1977)

  • [fix] Accidental palm inputs when using iPad pencil

Remove targeted editing from text (#1962)

  • Fixed some cases where text would get selected in the wrong place.
  • Changed the behaviour of text selection. Removed 'deep editing'.

fix line bugs (#1936)

  • This PR patches a couple of bugs which led to straight draw lines and beziered dash lines not rendering on the canvas

Before & After:

Allow right clicking selection backgrounds (#1968)

  • Improved right click behaviour.

Mark an undo before toggling lock (#1969)

  • Mark an undo before toggling locked.

Stop editing frame headers when clicking inside a frame. (#1955)

  • Stop editing frame headers when clicking inside of a frame.

Lokalise: Translations update (#1964)

  • Updated community translations for German and Galician

[improvement] improve arrows (for real) (#1957)

  • Improve arrows.

[feature] Include sources in TLExternalContent (#1925)

  • [editor / tldraw] add sources to TLExternalContent

[improvement] quick actions (#1922)

  • Improve the menu / kbds behavior when select tool is not active

Fix shape drag perf (#1932)

  • Fixes a perf regression for dragging shapes around

Firefox: Fix dropdowns not opening with touch (#1923)

  • Firefox: Fixed dropdown menus not opening with touch.

Use smarter rounding for shape container div width/height (#1930)

  • Improves the precision of the shape dimensions rounding logic

Fix lines being draggable via their background (#1920)

  • None - unreleased bug

Fix first handle of line snapping to itself (#1912)

  • Fixed a bug where the first handle of a line shape could snap to itself.

[fix] Moving group items inside of a frame (dropping) (#1886)

  • Fix bug: ungroup when moving a shape in a group in a frame.

[fix] id properties of undefined (#1730) (#1919)

  • Fixed a bug similar #1730

♻️ fix: editing is not terminated after the conversion is confirmed. (#1885)

  • fix: editing is not terminated after the conversion is confirmed.

Update community translations (#1889)

  • Updated translations for Russian, Ukrainian, and Simplified Chinese

Fix line wobble (#1915)

  • Fixes an issue where lines would wobble as you dragged the handles around

Fix selecting one shape from selection group (#1905)

  • Fix bug when selecting a single shape from a selection group

Before

https://github.com/tldraw/tldraw/assets/98838967/1412f9c6-d466-42b3-af94-d08cbc1656be

After Kapture 2023-09-18 at 14 15 10

Fix highlighter dots not being clickable (#1903)

  • None - unreleased bug

Fix video shape controls (#1909)

  • Fixes pointer events for editing video shapes.

Fix line handles (#1904)

  • Fixes an issue where line handles were slightly offset from the indicator line.

Fix pinch start with toolbar open (#1895)

  • Fixes a bug that could trigger undo by accident when closing the style toolbar via a pinch gesture on mobile.

[wip] Viewport focus of editing shapes (#1873)

Removed a feature to reset the viewport back to a shape that is being edited.

(Before) Don't be held back by the past Kapture 2023-09-15 at 10 57 29

(After) You are free to find new avenues of exploration Kapture 2023-09-15 at 11 02 36

Migrate snapshot (#1843)

  • [editor] add Store.migrateSnapshot

[fix] zero width / height bounds (#1840)

  • Fix bug with straight lines / arrows

clamp x-box and check-box lines to stay within box at small scales (#1860)

  • Fixes a regression introduced by the geometry refactor related to x-box and checkbox resizing.

Fix paste transform (#1859)

  • Fixes a bug affecting the position of pasted content inside frames.

Fix indicator transform miscalculation (#1852)

  • Fixes indicator transform miscalculation on android and windows

update currentPageShapesSorted reference in docs (#1851)

  • Add a brief release note for your PR here.

[fix] awful rendering issue (#1842)

  • [fix] iframe rendering issue

fix typo (#1831)

  • Just fixed a typo in the docs

[feature] Asset props (#1824)

  • [@tldraw/tldraw] add asset props

[fix] snapping bug (#1819)

  • [fix] crash that could occur when snapping

[fix] editing video shapes (#1821)

  • Fix bug with editing video shapes.

[feature] unlock all action (#1820)

  • Adds the unlock all feature.

[fix] bug with eventemitter3 default export (#1818)

  • [@tldraw/editor] updates eventemitter3 import to fix issue with Astro builds.

Add next cache to clean command (#1811)

  • Internal tooling change

Fix text editing in page menu popover (#1790)

  • (fix) page menu editing

[fix] embeds switching / tldraw embed (#1792)

  • [fix] tldraw embeds

Custom rendering margin / don't cull selected shapes (#1788)

  • [editor] add Editor.renderingBoundsMargin

Camera APIs (#1786)

  • (editor) improve camera commands

environment manager (#1784)

  • [editor] Move environment flags to environment manager

Editor commands API / effects (#1778)

  • tbd

[feature] Add val town embed (#1777)

  • (feature) val town

export UiEventsProvider (#1774)

  • [@tldraw/tldraw] export ui events, so that UI hooks can work without context

remove useForceSolid effect for geo / line shapes (#1769)

  • Remove the force solid switching for geo / line shapes

[fix] shape indicator showing when locked shapes are hovered (#1771)

  • locked shapes do not show an indicator when hovered

remove selectionPageCenter (#1766)

  • [dev] Removes Editor.selectionPageCenter

rename selection page bounds (#1763)

  • [editor] rename selectedPageBounds to selectionPageBounds

ShapeUtil.getGeometry, selection rewrite (#1751)

  • [editor] Remove ShapeUtil.getBounds, ShapeUtil.getOutline, ShapeUtil.hitTestPoint, ShapeUtil.hitTestLineSegment
  • [editor] Add ShapeUtil.getGeometry
  • [editor] Add Editor.getShapeGeometry

Fix asset urls (#1758)

  • Fixed asset urls

[fix] arrow snapping bug (#1756)

  • [fix] arrow snapping

[fix] dark mode (#1754)

  • [fix] dark mode colors not updating

Remove helpers / extraneous API methods. (#1745)

  • [tldraw] rename useReadonly to useReadOnly
  • [editor] remove Editor.isDarkMode
  • [editor] remove Editor.isChangingStyle
  • [editor] remove Editor.isCoarsePointer
  • [editor] remove Editor.isDarkMode
  • [editor] remove Editor.isFocused
  • [editor] remove Editor.isGridMode
  • [editor] remove Editor.isPenMode
  • [editor] remove Editor.isReadOnly
  • [editor] remove Editor.isSnapMode
  • [editor] remove Editor.isToolLocked
  • [editor] remove Editor.locale
  • [editor] rename Editor.pageState to Editor.currentPageState
  • [editor] add Editor.pageStates
  • [editor] add Editor.setErasingIds
  • [editor] add Editor.setEditingId
  • [editor] add several new component overrides

add shapes docs content (#1705)

  • Documentation: Added more info about shapes.

fix: escape eraser tool on escape (#1732)

  • escape eraser tool on escape

fix: arrow label dark mode color (#1733)

  • fixed arrow label dark mode color

tldraw zero - package shuffle (#1710)

  • [@tldraw/editor] lots, wip
  • [@tldraw/ui] gone, merged to tldraw/tldraw
  • [@tldraw/polyfills] gone, merged to tldraw/editor
  • [@tldraw/primitives] gone, merged to tldraw/editor / tldraw/tldraw
  • [@tldraw/indices] gone, merged to tldraw/editor
  • [@tldraw/file-format] gone, merged to tldraw/tldraw

[fix] add cloud tooltip (#1728)

  • Add a brief release note for your PR here.

(2/2) Add content to Tools docs page. (#1721)

  • Tools docs.

tweaks for cloud shape (#1723)

  • Add a brief release note for your PR here.

Add cloud shape (#1708)

  • Adds a cloud shape.

[refactor] reduce dependencies on shape utils in editor (#1693)

  • removes shape utils from the arguments of isShapeOfType, replacing with a generic
  • removes shape utils from the arguments of getShapeUtil, replacing with a generic
  • moves custom arrow info cache out of the util and into the editor class
  • changes the a tool's shapeType to be a string instead of a shape util

Make some missing tsdocs appear on the docs site (#1706)

  • Docs: Fixed some missing docs for the TldrawEditor component.

[hot take] remove tool from shape definition (#1691)

  • [dev] Removed the tool property from defineShape

[refactor] reordering shapes (#1718)

  • [api] removes Editor.getParentsMappedToChildren
  • [api] removes Editor.reorderShapes
  • [api] moves reordering shapes code into its own file, outside of the editor

remove state checks for brush and zoom brush (#1717)

  • [editor] remove editor.isIn state checks for displaying brush and zoom brush.
  • Documentation: Added links to API reference in guides.

Go back to default cursor when done resizing. (#1700)

  • Switch back to the default cursor after you are done inserting a new text shape.

Firefox: Fix coarse pointer issue (#1701)

  • Fixed firefox not being able to use cursor chat when using a touch screen on desktop.

Fix tsdocs for TldrawUi component (#1707)

  • Docs: Show some docs missing from TldrawUi component.

💥 Breaking Change

🚀 Enhancement

🐛 Bug Fix

🏠 Internal

📝 Documentation

🧪 Tests

🔩 Dependency Updates

Authors: 14


v2.0.0-alpha.14 (Tue Jul 04 2023)

Release Notes

Disable styles panel button on mobile when using the laser tool. (#1704)

  • Disable the styles panel button for laser tool on mobile.

remove lock option from highlighter (#1703)

  • We no longer show the tool lock option for highlighter - it didn't do anything anyway

[fix] penmode (#1698)

  • [fix] pen mode

Update readme (#1686)

  • Documentation: Updated readme to reflect recent library changes.

[docs] Fix the types in the Shapes example (#1681)

  • Documentation: Fix some incorrect types on the Shapes page.

[improvement] More nuanced cursor state (#1682)

  • Improve cursor timeouts and hiding logic.

Fix VS Code commits failing on bublic? (#1680)

  • [internal] fixed commits failing from bublic when using UI

[fix] Lock shortcut (#1677)

  • [@tldraw/editor] Fix lock tool shortcut

[fix] comma keyboard shortcuts (#1675)

  • [@tldraw/editor] Bug fixes on document events.

[improvement] add box sizing border box (#1674)

  • [@tldraw/editor] Add box-sizing: border-box to tl-container

[improvemnet] drop crc, Buffer dependency (#1673)

  • [@tldraw/editor] Remove peer dependency on buffer.

[improvement] export scribble manager (#1671)

  • [@tldraw/tldraw] Export ScribbleManager

[feature] add meta property to records (#1627)

  • todo

[fix] mutating snapshot in migrateStoreSnapshot (#1663)

  • [@tldraw/store] Fixed a bug that would cause Store.migrateStoreSnapshot to mutate its snapshot argument.

🚀 Enhancement

  • @tldraw/editor
  • @tldraw/editor, @tldraw/file-format, @tldraw/tlschema, @tldraw/ui, @tldraw/utils, @tldraw/validate

🐛 Bug Fix

🏠 Internal

📝 Documentation

Authors: 5


v2.0.0-alpha.13 (Wed Jun 28 2023)

Release Notes

Fix crash when rotating a deleted shape (#1658)

  • Fixed a crash when trying to rotate a deleted shape.

[improvement] store snapshot types (#1657)

  • [dev] Rename StoreSnapshot to SerializedStore
  • [dev] Create new StoreSnapshot as type related to getSnapshot/loadSnapshot

[fix] pen mode touches (#1655)

  • Removes three touches to cancel pen mode feature.
  • Documentation: Simplified links to the API reference.

(1/2) [docs] Restore some missing changes (#1652)

  • None (Docs internals)

[docs] Remove embeds page (#1653)

  • Documentation: Removed unused Embeds page.

Fix text shapes not having colour (#1649)

  • None: Fixes an unreleased bug.

Styles API docs (#1641)

--

Styles API follow-ups (#1636)

--

docs: remove not accepting contributions notice (#1647)

  • Remove not accepting contributions notice from README

Fix SVG cursors not being used (#1639)

  • None: Fixing an unreleased bug.

[docs] Add table of contents to Editor page (#1642)

  • Documentation: Added a table of contents to the Editor page.

speed up playwright and add visual regression tests (#1638)

--

[docs] Allow sidebar to be scrolled on short screens (#1632)

  • Documentation: Fixed the sidebar being unscrollable on some short screens.

[docs] Add feedback when you search (#1633)

  • Documentation: Added some immediate feedback when you search.

[docs] Separate some pages out of the Docs section (#1626)

  • Documentation: Restructured the sidebar for clarity.

[docs] Fix wrong cursor when hovering buttons (#1630)

  • Documentation: Fixed the wrong cursor showing when hovering some buttons.

[docs] Tighten up wording & structure of Usage page (#1624)

  • Documentation: Impoved clarity of wording and structure of the Usage page.

[docs] Tighten up Editor page introduction (#1622)

  • Documentation: Simplified the Editor page.

[docs] Tighten up Introduction page (#1621)

  • Documentation: Simplified the Introduction page.

Lokalise: Translations update (#1618)

  • Added more translations for Simplified Chinese.

[docs] Simplify paths for uncategorised pages (#1619)

  • Documentation: Cleaned up some paths.

ShapeUtil refactor, Editor cleanup (#1611)

  • [editor] renames defaultProps to getDefaultProps
  • [editor] removes outline, outlineSegments, handles, bounds
  • [editor] renames renderBackground to backgroundComponent

Revert "Update dependencies (#1613)" (#1617)

Remove on drop override (#1612)

  • [editor] Remove onDropOverride

Make resizeBox a regular function (#1610)

  • [editor] Change resizeBox to be a regular function.

Rename ShapeUtil.render -> ShapeUtil.component (#1609)

  • [editor] rename ShapeUtil.render to ShapeUtil.component

tldraw.css (#1607)

  • [tldraw] Removes editor.css and ui.css exports, replaces with tldraw.css

[fix] camera culling (#1602)

  • [editor] Adds Editor.cameraState
  • Adds smart culling to make panning and zooming more smooth

Styles API (#1580)

(1/2) Timeout collaborator cursors (#1525)

  • Brought back cursor timeouts. Collaborator cursors now disappear after 3 seconds of inactivity.

Remove @tldraw/utils from the docs site (#1596)

  • [docs] Removed an internal utilities package.

(1/2) Cursor Chat - Presence (#1487)

  • [dev] Added support for cursor chat presence.

[docs] Add barebones note about translations (#1593)

  • [docs] Added brief info on how to join as a translations contributor.

[refactor] snapping (#1589)

  • [editor] fix bug in snapping

remove ShapeUtil.transform (#1590)

  • [editor] Remove ShapeUtil.transform

Change app to editor in docs (#1592)

  • [docs] Updated 'App' to 'Editor'.

Make sure loading screens use dark mode user preference. (#1552)

  • Make sure our loading and error screens take dark mode setting into account.

remove ShapeUtil.point (#1591)

  • [editor] Remove ShapeUtil.point

[fix] Remove group shape export backgrounds (#1587)

  • Fix image exports for groups

Add tsdocs to Editor methods (#1581)

  • [dev] Added initial documentation for the Editor class.

add presence to yjs example (#1582)

  • [editor] Add presence to yjs example.

Add optional generic to updateShapes / createShapes (#1579)

  • [editor] adds an optional shape generic to updateShapes and createShapes

fix: properly remove awareness from store (#1565)

  • Add a brief release note for your PR here.

[improvement] Embed shape cleanup (#1569)

  • [editor] Remove unused props for TLEditorShape
  • [editor] Adds canUnmount property to embed definitions

Move the loading of assets to the TldrawEditorWithReadyStore so that all code paths load the assets. (#1561)

  • Fix a problem where assets were not loading in some cases (snapshots).

Add anchor targets to our headings. (#1571)

  • Improve documentation to include anchor targets.

shapes folder, move tools into shape defs (#1574)

n/a

mini defineShape API (#1563)

[dev-facing, notes to come]

Lokalise: Translations update (#1572)

  • Added and updates translations for Italian, Russian, and Ukrainian.

Fix README typo (#1451)

  • None

yjs example (#1560)

  • [editor] Adds yjs example project

ExternalContentManager for handling external content (files, images, etc) (#1550)

  • [editor] add ExternalContentManager for plopping content onto the canvas
  • [editor] remove onCreateAssetFromFile prop
  • [editor] remove onCreateBookmarkFromUrl prop
  • [editor] introduce ExternalContentManager
  • [editor] add cleanup function to onMount

Misc sync fixes (#1555)

  • Fixes a handful of state management bugs that manifest in multiplayer rooms

[Docs] Change some editor properties to methods (#1553)

  • [docs] Fixed some methods that were incorrectly marked as properties.

[Docs] Change some internal methods to public (#1554)

  • [docs] Changed some Editor methods from internal to public.

Use unpkg as a default for serving assets. (#1548)

  • Use unpkg asset hosting as a default.

hoist opacity out of props (#1526)

[internal only for now]

Fix arrows with weird bends crashing (#1540)

  • Fixed a rare crash that could happen when you try to curve an arrow with zero distance.

[feature] add vertical align to note shape (#1539)

  • Adds vertical align prop to note shapes

[fix] Shift key code / nudge (#1537)

  • Fix shift key nudging

scale exported canvases when they reach the browsers max size (#1536)

  • Fix a bug where sometimes exports would fail when they were too big for your browser. Now, they're scaled down to the max supported size.

[fix] control click on mac (#1535)

  • Fix control click to open menu on Mac

Fix being able to undo following (#1531)

  • Fixed a bug where you could undo viewport-following and viewport-unfollowing.

Select locked shapes on long press (#1529)

highlighter fixes (#1530)

[aq bug fixes]

Lokalise: Translations update (#1515)

  • Added and updated community translations for Galician, Italian, Romanian, Russian, Ukrainian, and Traditional Chinese.

Simplify static cursors (#1520)

  • (editor) Simplifies the cursors in our CSS.

Renaming types, shape utils, tools (#1513)

  • Renaming of types, shape utils, tools

tlschema cleanup (#1509)

  • [editor] Remove app.createShapeId
  • [tlschema] Cleans up exports

Rename tlstore to store (#1507)

  • Replace @tldraw/tlstore with @tldraw/store

Rename tlvalidate to validate (#1508)

  • Rename tlvalidate to validate

Filter out unused assets. (#1502)

  • Optimize file size of exported files.

Cleanup @tldraw/ui types / exports (#1504)

  • [editor] clean up / unify types

rename app to editor (#1503)

  • Rename App to Editor and many other things that reference app to editor.

Revert 09c36781 & tweak linting (#1501)

[internal-only]

Add support for locking shapes (#1447)

  • Add support for locking shapes.

[3/3] Highlighter styling (#1490)

Highlighter pen is here! 🎉🎉🎉

[2/3] renderer changes to support "sandwich mode" highlighting (#1418)

[not yet!]

[1/3] initial highlighter shape/tool (#1401)

[internal only change layout ground work for highlighter]

[feature] reduce motion (#1485)

  • [editor] Add reduceMotion user preference
  • Add reduce motion option to preferences

[feature] Easier store persistence API + persistence example (#1480)

  • [tlstore] adds getSnapshot and loadSnapshot

Add DSL to make writing shape-layout test cases much easier (#1413)

[internal only change]

Feature flags rework (#1474)

[internal only change]

[tiny] add isPageId (#1482)

  • [tlschema] Add isPageId

[minor] Mark tlsync-client internal APIs (#1481)

  • Removes internal APIs from @tldraw/tlsync-client

[refactor] update record names (#1473)

  • [editor] rename record types

remove safari special-casing for paste (#1470)

[fixes a regression introduced during this release]

Don't allow g keyboard shortcut in readonly mode, show laser tool in the toolbar (#1459)

  • Disable geo tool shortcut in readonly mode. Show laser on the toolbar.

[mini-feature] Following indicator (#1468)

  • Adds viewport following indicator

[chore] refactor user preferences (#1435)

  • Add a brief release note for your PR here.

Add translations for "Leave shared project" action (#1394)

  • None

update use-gesture (#1453)

  • Updates use-gesture to fix pinch gesture bug on iPad.

Add migration for horizontal alignment (#1443)

  • Add support for legacy alignment options.

Stricter ID types (#1439)

[internal only, covered by #1432 changelog]

[refactor] restore createTLSchema (#1444)

  • [editor] Simplifies custom shape definition
  • [tldraw] Updates props for component to require a TldrawEditorConfig.

Fix cursor shadow getting clipped (#1441)

  • Fixed a bug where custom cursors could have their shadow clipped.

Add SVG cursors for all cursor types (#1416)

  • Added consistent custom cursors.

[refactor] remove createTLSchema (#1440)

  • [tlschema] Removes createTLSchema in favor of TldrawEditorConfig

[refactor] Remove TLShapeDef, getShapeUtilByType. (#1432)

  • [tlschema] Update props of createTLSchema
  • [editor] Update props of TldrawEditorConfig
  • [editor] Remove App.getShapeUtilByType
  • [editor] Update App.getShapeUtil to take a type rather than a shape

[refactor] record migrations (#1430)

  • [tlschema] Improve defineMigrations
  • [editor] Simplify migration definitions

Measure individual words instead of just line breaks for text exports (#1397)

  • Add a brief release note for your PR here.
  • [docs] Updated guides to get assets from the new tldraw/tldraw repo instead of the old tldraw/tldraw-examples.
  • [docs] Updated an old CodeSandbox link to the new StackBlitz.

Create @tldraw/indices package (#1426)

  • [@tldraw/editor] Remove fractional indices code into @tldraw/indices
  • [@tldraw/indices] Create library for fractional indices code

[feature] Add checkbox to toolbar (#1423)

  • Adds missing checkbox to toolbar.

[improvement] set horizontal position using text alignment (#1419)

  • Geo shapes and sticky notes now position their labels based on their alignment.

[fix] reorder handles in front of selection (#1420)

  • Fix a bug where handles would appear behind selection indicators.

[feature] add laser pointer (#1412)

  • Adds the laser pointer tool.

[firefox] Fix the pointer getting stuck down when you press the control key (#1390)

  • [Firefox] Fixed a bug where the pointer could get stuck down when the control key is held down.

Vertical text alignment for geo shapes (#1414)

  • This adds vertical text alignment property to geo shapes.

[fix] page menu, drag handle css (#1406)

  • Fix styling in the page menu

Switch to new collaborators component (#1405)

  • [Breaking] Removes the old version of LiveCollaborators, replacing it with the new one based on TLInstancePresence

[improvement] refactor paste to support multi-line text (#1398)

  • Improves clipboard logic when pasting text
  • Adds support for pasting multi-line text
  • Adds maximum widths when pasting single-line text
  • Adds support for RTL languages when pasting multi-line or wrapped text
  • Strips leading indentation when pasting text

remove url state, to private (#1402)

  • [editor] remove useUrlState

Don't allow the users to use keyboard shortcuts to select tools in readonly mode. (#1382)

  • Disable keyboard shortcut events for tools in readonly mode. We only allow the select, hand tools, and zoom tool.

[fix] Don't synchronize isReadOnly (#1396)

  • Removes the isReadOnly value from the user_document_settings record type.

fix pasted tabs not getting converted to space (#1388)

  • Fixed a bug where pasted tabs wouldn't get converted into spaces.

Delete an empty text shape when clicking on another text shape. (#1384)

  • Fix a problem with empty text shapes not getting deleted if you clicked on another text shape.

Fix setting the grid mode. (#1386)

  • Fix grid mode toggle.
  • [docs] Fixed some links to examples.

Fix selection foreground being misaligned (#1380)

  • None (fix for a bug that hasn't released)

Expand selection outline for single-selected draw shape (#1379)

  • Improve selection outlines around horizontal or vertical draw shapes
  • Add localization for creating snapshot links.

[fix] pointer location not updating when moving over editing shape (#1378)

  • Fix a bug where the pointer location would not update when moving the pointer over an editing shape.

[perf] deleteShapes (#1373)

  • Perf improvement for deleting shapes in a document with lots of pages.

Neaten up pr template (#1369)

  • None: internal

fix a couple of consistency assumptions (#1365)

  • Fixes a couple of minor consistency bugs affecting shape updating and page deletion in multiplayer contexts.

Disable nightly/on-demand webdriver scripts (#1366)

None

avoid lazy race conditions (#1364)

[internal only]

Adds CI for webdriver tests (#1343)

  • Github action CI workflows added for webdriver tests
  • Refactored e2e test runner

enable eslint for test files (#1363)

internal-only change

[perf] make ensureStoreIsUsable scale better (#1362)

  • Add a brief release note for your PR here.

Export Events stuff (#1360)

  • [ui] export the TLUiEventSource type
  • [ui] export the EventsProviderProps type
  • [ui] export the useEvents hook
  • Fix a bug where creating a page could throw an error in some multiplayer contexts.

[improvement] rename onEvent to onUiEvent (#1358)

  • [docs] Adds docs for ui events
  • [tldraw] Renames onEvent to onUiEvent
  • [docs] Update links in docs to point to the tldraw repository rather than tldraw-examples.

[improvement] Ui events followup (#1354)

  • [ui] Adds source to ui events data object
  • [ui] Corrects source for toolbar events
  • [ui] Corrects source for clipboard events
  • [examples] Updates events example

[fix] various text (#1350)

  • Allow leading whitespace

[chore] Bump nanoid (#1349)

  • Remove unused userId and instanceId props from AppOptions

Fix "copy as png" in firefox when dom.events.asyncClipboard.clipboardItem is enabled (#1342)

  • Fix "copy as png" in firefox when dom.events.asyncClipboard.clipboardItem is enabled

Rework the assets package for strategy-specific imports (#1341)

  • [dev] If you're using the @tldraw/assets package, you need to update your code to import { getAssetUrlsByImport } from '@tldraw/assets/imports' instead of import { getBundlerAssetUrls } from '@tldraw/assets

💥 Breaking Change

🚀 Enhancement

🐛 Bug Fix

⚠️ Pushed to main

  • Update publish-new.yml (@steveruizok)
  • Update lerna.json (@steveruizok)
  • Update publish-new.ts (@steveruizok)
  • change App to Editor in docs (@TodePond)
  • rename api.mdx to editor.mdx (@TodePond)
  • remove e2e files (@steveruizok)
  • main: notify huppy after release (@SomeHats)
  • main: exclude @tldraw/assets from vite dep optimization to fix examples links (@SomeHats)
  • @tldraw/assets, @tldraw/editor, @tldraw/file-format, @tldraw/indices, @tldraw/polyfills, @tldraw/primitives, @tldraw/store, @tldraw/tldraw, @tldraw/tlschema, @tldraw/ui, @tldraw/utils, @tldraw/validate

🏠 Internal

📝 Documentation

🧪 Tests

🔩 Dependency Updates

  • [chore] update wdio-vscode-service #1346 (@ds300)
  • @tldraw/editor, @tldraw/state, @tldraw/store, @tldraw/tlschema, @tldraw/ui
  • @tldraw/assets, @tldraw/editor, @tldraw/polyfills, @tldraw/tldraw, @tldraw/ui
  • @tldraw/editor

Authors: 13