Tldraw/packages/tldraw/CHANGELOG.md

116 KiB

v2.1.0 (Tue Apr 23 2024)

Release Notes

Make note handles show only one when zoomed out (#3562)

  • Show only the bottom handle on notes when zoomed between .25 and .5

Perf: minor drawing speedup (#3464)

  • Improve performance of draw shapes.

Prevent default on native clipboard events (#3536)

  • Fix copy sound on clipboard events.

WebGL Minimap (#3510)

  • Add a brief release note for your PR here.

arrows: fix bound arrow labels going over text shape (#3512)

  • Arrows: fix label positioning when bound.

arrows: still use Dist instead of Dist2 (#3511)

  • Fix arrow label positioning

Fix culling. (#3504)

  • Fix culling.

"Soft preload" icons (#3507)

  • Improve icon preloading

Fix alt-duplicating shapes sometimes not working (#3488)

  • Add a brief release note for your PR here.

New migrations again (#3220)

BREAKING CHANGES

  • The Migrations type is now called LegacyMigrations.

  • The serialized schema format (e.g. returned by StoreSchema.serialize() and Store.getSnapshot()) has changed. You don't need to do anything about it unless you were reading data directly from the schema for some reason. In which case it'd be best to avoid that in the future! We have no plans to change the schema format again (this time was traumatic enough) but you never know.

  • compareRecordVersions and the RecordVersion type have both disappeared. There is no replacement. These were public by mistake anyway, so hopefully nobody had been using it.

  • compareSchemas is gone. Comparing the schemas directly is no longer really possible since we introduced some fuzziness. The best thing to do now to check compatibility is to call schema.getMigraitonsSince(prevSchema) and it will return an error if the schemas are not compatible, an empty array if there are no migrations to apply since the prev schema, and a nonempty array otherwise.

    Generally speaking, the best way to check schema compatibility now is to call store.schema.getMigrationsSince(persistedSchema). This will throw an error if there is no upgrade path from the persistedSchema to the current version.

  • defineMigrations has been deprecated and will be removed in a future release. For upgrade instructions see https://tldraw.dev/docs/persistence#Updating-legacy-shape-migrations-defineMigrations

  • migrate has been removed. Nobody should have been using this but if you were you'll need to find an alternative. For migrating tldraw data, you should stick to using schema.migrateStoreSnapshot and, if you are building a nuanced sync engine that supports some amount of backwards compatibility, also feel free to use schema.migratePersistedRecord.

  • the Migration type has changed. If you need the old one for some reason it has been renamed to LegacyMigration. It will be removed in a future release.

  • the Migrations type has been renamed to LegacyMigrations and will be removed in a future release.

  • the SerializedSchema type has been augmented. If you need the old version specifically you can use SerializedSchemaV1

Stickies: release candidate (#3249)

  • Improves sticky notes (see list)
  • Hide edit link context menu option for locked shapes.

Faster selection / erasing (#3454)

  • Improve performance of minimum distance checks.

Make minimap display sharp rectangles. (#3434)

  • Improve

Perf: throttle updateHoveredId (#3419)

  • Improves canvas performance by throttling the update to the editor's hovered id.

Perf: (slightly) faster min dist checks (#3401)

  • Performance: small improvements to hit testing.

Add long press event (#3275)

  • Add support for long pressing on desktop.

Fix text resizing bug (#3327)

  • Fixes an issue with text shapes overflowing their bounds when resized.

Input buffering (#3223)

  • Add a brief release note for your PR here.

Add white (#3321)

  • Adds secret white color.

Decrease the number of rendered dom nodes for geo shape and arrows (#3283)

  • Reduce the number of rendered dom nodes for geo shapes and arrows without text.

styling: make dotcom and examples site have consistent font styling (#3271)

  • Add a brief release note for your PR here.

ui: make toasts look more toasty (#2988)

  • UI: Add severity to toasts.

textfields [1 of 3]: add text into speech bubble; also add rich text example (#3050)

  • Refactor textfields be composable/swappable.

Allow hiding debug panel. (#3261)

  • Allow users to fully override the DebugPanel.

toolbar: fix missing title attributes (#3244)

  • Fix title's being missing on toolbar items.

Fix lag while panning + translating at the same time (#3186)

  • Add a brief release note for your PR here.

[fix] Batch tick events (#3181)

  • Fix a performance issue effecting resizing multiple shapes.

[tinyish] Simplify / skip some work in Shape (#3176)

  • SDK: minor improvements to the Shape component

Menu updates / fix flip / add export / remove Shape menu (#3115)

  • Revert some changes in the menu.

Performance improvements (#2977)

  • Improves the performance of rendering.

[fix] Rotated crop handle (#3093)

  • Fixed a bug that could cause rotated cropping images to have incorrectly rotated handles.

Fix validation errors for duplicateProps (#3065)

  • Add a brief release note for your PR here.

Fix an issue where the video size was not drawn correctly (#3047)

  • Fix an issue where the video size was not drawn correctly.

[fix] Input tags (#3038)

  • Fixed autocomplete, autocapitalize, and autocorrect tags on text inputs.

[terrible] Firefox: Allow scrolling on keyboard shortcuts dialog (#2974)

  • Add a brief release note for your PR here.

Protect local storage calls (#3043)

  • Fixes a bug that could cause crashes in React Native webviews.

[fix] Missing element crash (rare) on video shapes. (#3037)

  • Fixed a rare crash with video shapes.

Show a broken image for files without assets (#2990)

  • Better handling of broken images / videos.

💥 Breaking Change

🚀 Enhancement

  • textfields [1 of 3]: add text into speech bubble; also add rich text example #3050 (@mimecuvalo)

🐛 Bug Fix

📚 SDK Changes

📖 Documentation changes

🏠 Internal

🐛 Bug Fixes

Authors: 10


v2.0.0 (Thu Feb 29 2024)

⚠️ Pushed to main

Authors: 1


v2.0.0-beta.9 (Thu Feb 29 2024)

⚠️ Pushed to main

  • fix refresh-assets cache inputs (@ds300)

Authors: 1


v2.0.0-beta.8 (Thu Feb 29 2024)

⚠️ Pushed to main

  • use glob to pick up version files? (@ds300)

Authors: 1


v2.0.0-beta.7 (Thu Feb 29 2024)

Release Notes

Fix publish script one more time (#3010)

  • Add a brief release note for your PR here.

🏠 Internal

Authors: 1


v2.0.0-beta.6 (Thu Feb 29 2024)

Release Notes

Fix publishing scripts (#3008)

  • Add a brief release note for your PR here.

🏠 Internal

Authors: 1


v2.0.0-beta.5 (Thu Feb 29 2024)

Release Notes

tldraw_final_v6_final(old version).docx.pdf (#2998)

  • The @tldraw/tldraw package has been renamed to tldraw. You can keep using the old version if you want though!

Adding a single E2E test per menu (#2954)

  • Add a brief release note for your PR here.

[feature] wrap mode (#2938)

  • Added isWrapMode to user preferences.
  • Added Wrap Mode toggle to user preferences menu.

Make exportToBlob public (#2983)

  • Exposes the exportToBlob function for library users

export default ui items (#2973)

  • Components within default menu content components are now exported.

Show toast on upload error (#2959)

  • Adds a quick toast to show when image uploads fail.

Fix transparency toggle (#2964)

  • Fixes the Transparent toggle. The condition was accidentally flipped.

menu: rework File menu / ensure Export menu is present (#2783)

  • Composable UI: makes File items be more granularly accessible / usable
  • Menu: show Export under the File menu.

ui events: prevent sending 2nd event unnecessarily (#2921)

  • Some cleanup on duplicate UI events being sent.

[fix] fit to content shown on groups (#2946)

  • Fix bug where "fit frame to content" would be shown when a group is selected.

fix structured clone reference in drawing (#2945)

  • Fixes a reference to structuredClone that caused a crash on older browsers.

Fix keyboard shortcuts bugs (#2936)

  • [Fix] Keyboard shortcut focus bug

Fix undo/redo for Opacity Slider + Style dropdowns. (#2933)

  • Fixed issues where undo/redo entries were not being set up correctly for the opacity slider or the style dropdown menus.

Add custom static assets example, extract preloadFont (#2932)

  • Docs, added custom static assets example.

Fix frames not preserving shape order (#2928)

  • Fix an issue when framing shapes did not preserve the original order of the shapes.
  • You can now frame shapes inside of the frame.

Improve dialog appearance on small components (#2884)

  • Dev: Made default dialogs work better when used in small components.

🚀 Enhancement

🐛 Bug Fix

🏠 Internal

📝 Documentation

🧪 Tests

🔩 Dependency Updates

Authors: 7


v2.0.0-beta.4 (Wed Feb 21 2024)

Release Notes

  • Add company menu links back in and make sure the Language menu is updated on change.

Fix some menu issues on mobile (#2906)

  • Add a brief release note for your PR here.

[experiment] paste: show little puff when pasting to denote something happened (#2787)

  • UI: add a little 'puff' when something is pasted to tell that something has happened.

Fix custom keyboard shortcut dialog example (#2876)

  • Docs: Fixed custom keyboard shortcut dialog example.

Fix 'style panel doesn't always disappear if you switch to the hand/laser tools' (#2886)

  • Fixes an bug causing the opacity slider to show up in the move tool and laser pointer tool.

Faster validations + record reference stability at the same time (#2848)

  • Add a brief release note for your PR here.

[Snapping 6/6] Self-snapping API (#2869)

  • Line handles now snap to other handles on the same line when holding command

Fix dialog title styles (#2873)

  • Unreleased bug: Fixed dialog titles appearance.

Fix some incorrect translation keys (#2870)

  • Unreleased issue. Fixed some translation keys being wrong.

Allow users to set document name and use it for exporting / saving (#2685)

  • Allow users to name their documents.

[fix] grid, other insets (#2858)

  • Fixes a bug with the grid not appearing.

E2e tests for the toolbar (#2709)

  • Add e2e tests for the toolbar

fix frame style panel (#2851)

  • Fixes an issue with the opacity slider getting squished.

Add component for viewing an image of a snapshot (#2804)

  • Dev: Added the TldrawImage component.

ui: refactor breakpoints to fit in an enum (#2843)

  • Refactor breakpoints into an enum.

[Snapping 5/5] Better handle snapping for geo shapes (#2845)

  • You can now snap the handles of lines to the corners of rectangles, stars, triangles, etc.

[Snapping 4/5] Add handle-point snapping (#2841)

  • Line handles

[Snapping 3/5] Custom snapping API (#2793)

  • Add ShapeUtil.getSnapInfo for customising shape snaps.

[Snapping 2/5] Fix line-handle mid-point snapping (#2831)

  • Simplify the contents of TLLineShape.props.handles

emojis! 🧑‍🎨 🎨 ✏️ (#2814)

  • Adds emoji picker to text fields.

💥 Breaking Change

🚀 Enhancement

🐛 Bug Fix

🏠 Internal

🧪 Tests

Authors: 8


v2.0.0-beta.3 (Tue Feb 13 2024)

Release Notes

Use canvas bounds for viewport bounds (#2798)

  • Changes the source of truth for the viewport page bounds to be the canvas instead.

Style UI based on component size instead of window size (#2758)

  • Dev: Fixed the default tldraw UI not matching the size of the component.

examples: clean up Canvas/Store events and make UiEvents have code snippets (#2770)

  • Examples: add an interactive example that shows code snippets for the SDK.

Fixed actions menu opening in wrong direction on mobile (and add an inline layout example) (#2730)

  • Dev: Fixed the actions menu opening in the wrong direction.

error reporting: rm ids from msgs for better Sentry grouping (#2738)

  • Error reporting: improve grouping for Sentry.

rearrange export / import from tldraw to help builds (#2739)

  • Build: Help with import/export error on some builds.

arrows: account for another NaN (#2753)

  • Fixes zero-width arrow NaN computation when moving the label.

Split snap manager into ShapeBoundsSnaps and HandleSnaps (#2747)

  • SnapLines are now called SnapIndicators
  • Snapping methods moved from editor.snaps to editor.snaps.shapeBounds and editor.snaps.handles depending on the type of snapping you're trying to do.

arrows: update cursor only when in Select mode (#2742)

  • Cursor tweak for arrow labels.

[fix] VSCode keyboard shortcuts while editing text (#2721)

  • Fixed a bug in the VS Code that prevented keyboard shortcuts from working in text labels.

[Fix] Camera coordinate issues (#2719)

  • Fixed bugs with getViewportScreenCenter that could effect zooming and pinching on editors that aren't full screen

reactive context menu overrides (#2697)

  • Context Menu overrides will now update reactively

[Fix] Note shape border radius (#2696)

  • Fixes a bad border radius

arrows: separate out handle behavior from labels (#2621)

  • Arrow labels: provide more polish on label placement

Fix svg exporting for images with not fully qualified url (/tldraw.png or ./tldraw.png) (#2676)

  • Fix the svg export for images that have a local url.

dev: add test-dev command for easier testing of packages (#2627)

  • Adds easier testing command for individual packages.

debug: start adding more tooling for debugging when interacting with shapes (#2560)

  • Adds more information in the debug view about what shape is selected and coordinates.

[Fix] Overlapping non-adjacent handles (#2663)

  • Fixed a bug with virtual / create handle visibility.

Improved duplication (#2480)

  • Add a brief release note for your PR here.

Positional keyboard shortcuts for toolbar (#2409)

  • You can now use the number keys to select the corresponding tool from the toolbar

[draft] Keep editor focus after losing focus of an action button (#2630)

  • Fixed a bug where keyboard shortcuts could stop working after using an action button.

Fix nudge bug (#2634)

  • Fixes a bug with keyboard nudging.

menus: address several little big things about menu styling (#2624)

  • Fixes nits on styling on our Radix menus.

style: fix missing titles on vertical align menu (#2623)

  • Adds missing titles to vertical align menu.

Only actions on selected shapes if we are in select tool. (#2617)

  • Disable actions that work on selections when we are not in select tool as it makes it not obvious what the target for these actions.

debug: add FPS counter (#2558)

  • Adds FPS counter to debug panel.

Fix ios export crash (#2615)

  • iOS Safari: Fixed a crash when exporting large images.

arrows: add ability to change label placement (#2557)

  • Adds ability to change label position on arrows.

[improvement] better comma control for pointer (#2568)

  • Improve comma key as a replacement for pointer down / pointer up.

Allow snapping of shapes to the frame when dragging inside the frame. (#2520)

  • Adds snapping to frames when dragging shapes inside a frame.

Allow dismissing dialogs by clicking backdrop (#2497)

  • Allows dismissing dialogs by clicking the backdrop.

Fix the first run of dev script. (#2484)

  • Fix first yarn dev experience.

Maintain bindings whilst translating arrows (#2424)

  • You can now move arrows without them becoming unattached the shapes they're pointing to

[improvement] update dark mode (#2468)

  • Updated dark mode colors.

[fix] disable vertical edge resizing for text on mobile (#2456)

  • Add a brief release note for your PR here.

Don't bother measuring canvas max size for small images (#2442)

  • Android: Sped up exporting and importing images.

[improvement] account for coarse pointers / insets in edge scrolling (#2401)

  • Add instanceState.insets to track which edges of the component are inset from the edges of the document body.
  • Improve behavior around edge scrolling

💥 Breaking Change

🚀 Enhancement

🐛 Bug Fix

🏠 Internal

📝 Documentation

🧪 Tests

🔩 Dependency Updates

  • Bump Yarn to 4.0.2 and add version constraints #2481 (@si14)

Authors: 8


v2.0.0-beta.2 (Wed Jan 10 2024)

Release Notes

refactor copy/export, fix safari copy-as-image being broken (#2411)

  • Fix a bug preventing copying as an image on iOS

Add url validation (#2428)

  • Add validation to urls.

[fix] edge scrolling when component is inside of screen (#2398)

  • Add a brief release note for your PR here.

[tech debt] Primitives renaming party / cleanup (#2396)

  • renames Vec2d to Vec
  • renames Vec2dModel to VecModel
  • renames Box2d to Box
  • renames Box2dModel to BoxModel
  • renames Matrix2d to Mat
  • renames Matrix2dModel to MatModel
  • removes unused primitive helpers
  • Fixes broken links in a number of docs files.

[fix] polygon bounds (#2378)

  • Fixed a bug with the bounds calculation for polygons.

💥 Breaking Change

🐛 Bug Fix

📝 Documentation

Authors: 5


v2.0.0-beta.1 (Wed Dec 20 2023)

Release Notes

Fix clicking off the context menu (#2355)

  • Fix not being able to close the context menu by clicking on the UI or your selected shape.

fix read only page menu (#2356)

  • Add a brief release note for your PR here.

focus on container before deleting to avoid losing focus (#2354)

  • Prevents losing focus when clicking the trash button

Use custom font (#2343)

  • Add a brief release note for your PR here.

Only allow side resizing when we have some shapes that are not aspect ratio locked (#2347)

  • Don't allow edges resizing on mobile. The only exception is a single text shape.

Fix iconleft padding (#2345)

  • Fixes the icon padding in back to content / pen mode buttons.

Allow dragging on top of locked shapes. (#2337)

  • Allow translating of shapes on top of a locked shape by clicking inside of selection and moving the mouse.

Prevent diff mutation (#2336)

  • Fix squashRecordDiffs to prevent a bug where it mutates the 'updated' entires

Fix indicator radius for bookmarks. (#2335)

  • Fix the indicator for the bookmark shape. The radius now matches the shape's radius.

Start scrolling if we are dragging close to the window edges. (#2299)

  • Adds the logic to change the camera position when you get close to the edges of the window. This allows you to drag, resize, brush select past the edges of the current viewport.

Fix downscaling (#2325)

  • Decrease the size of uploaded assets.

💥 Breaking Change

🚀 Enhancement

🐛 Bug Fix

Authors: 6


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

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 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.

[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

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 missing padding-right in toast (#2251)

  • Fox padding-right in toast content.

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

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.

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

  • Improved image rescaling.

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

  • Add a brief release note for your PR here.

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

  • add new prop to force mobile mode layout

💥 Breaking Change

🚀 Enhancement

🐛 Bug Fix

🧪 Tests

Authors: 7


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.

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.

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 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

📝 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] 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

🐛 Bug Fix

Authors: 7


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

Release Notes

[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

🐛 Bug Fix

🏠 Internal

Authors: 6


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 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 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.

[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

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

  • Firefox: Fixed dropdown menus not opening with touch.

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.

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.

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.

[feature] Asset props (#1824)

  • [@tldraw/tldraw] add asset props

[fix] editing video shapes (#1821)

  • Fix bug with editing video shapes.

[feature] unlock all action (#1820)

  • Adds the unlock all feature.

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

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

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

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

💥 Breaking Change

🚀 Enhancement

🐛 Bug Fix

🏠 Internal

🧪 Tests

Authors: 12


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

Release Notes

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)

tldraw.css (#1607)

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

mini defineShape API (#1563)

[dev-facing, notes to come]

rename app to editor (#1503)

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

[chore] refactor user preferences (#1435)

  • Add a brief release note for your PR here.

[refactor] restore createTLSchema (#1444)

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

avoid lazy race conditions (#1364)

[internal only]


💥 Breaking Change

🐛 Bug Fix

⚠️ Pushed to main

🏠 Internal

🔩 Dependency Updates

Authors: 4


v2.0.0-alpha.12 (Mon Apr 03 2023)

🐛 Bug Fix

Authors: 3


@tldraw/ui

2.0.0-alpha.11

Patch Changes

  • fix some package build scripting
  • Updated dependencies
    • @tldraw/editor@2.0.0-alpha.11
    • @tldraw/polyfills@2.0.0-alpha.10
    • @tldraw/tlsync-client@2.0.0-alpha.11
    • @tldraw/ui@2.0.0-alpha.11

2.0.0-alpha.10

Patch Changes

  • 4b4399b6e: redeploy with yarn to prevent package version issues
  • Updated dependencies [4b4399b6e]
    • @tldraw/polyfills@2.0.0-alpha.9
    • @tldraw/tlsync-client@2.0.0-alpha.10
    • @tldraw/ui@2.0.0-alpha.10
    • @tldraw/editor@2.0.0-alpha.10

2.0.0-alpha.9

Patch Changes

  • Release day!
  • Updated dependencies
    • @tldraw/editor@2.0.0-alpha.9
    • @tldraw/polyfills@2.0.0-alpha.8
    • @tldraw/tlsync-client@2.0.0-alpha.9
    • @tldraw/ui@2.0.0-alpha.9

2.0.0-alpha.8

Patch Changes

  • Updated dependencies [23dd81cfe]
    • @tldraw/editor@2.0.0-alpha.8
    • @tldraw/tlsync-client@2.0.0-alpha.8
    • @tldraw/ui@2.0.0-alpha.8

2.0.0-alpha.7

Patch Changes

  • Bug fixes.
  • Updated dependencies
    • @tldraw/editor@2.0.0-alpha.7
    • @tldraw/tlsync-client@2.0.0-alpha.7
    • @tldraw/ui@2.0.0-alpha.7

2.0.0-alpha.6

Patch Changes

  • Add licenses.
  • Updated dependencies
    • @tldraw/editor@2.0.0-alpha.6
    • @tldraw/tlsync-client@2.0.0-alpha.6
    • @tldraw/ui@2.0.0-alpha.6

2.0.0-alpha.5

Patch Changes

  • Add CSS files to tldraw/tldraw.
  • Updated dependencies
    • @tldraw/editor@2.0.0-alpha.5
    • @tldraw/tlsync-client@2.0.0-alpha.5
    • @tldraw/ui@2.0.0-alpha.5

2.0.0-alpha.4

Patch Changes

  • Add children to tldraw/tldraw
  • Updated dependencies
    • @tldraw/editor@2.0.0-alpha.4
    • @tldraw/tlsync-client@2.0.0-alpha.4
    • @tldraw/ui@2.0.0-alpha.4

2.0.0-alpha.3

Patch Changes

  • Change permissions.
  • Updated dependencies
    • @tldraw/editor@2.0.0-alpha.3
    • @tldraw/tlsync-client@2.0.0-alpha.3
    • @tldraw/ui@2.0.0-alpha.3

2.0.0-alpha.2

Patch Changes

  • Add tldraw, editor
  • Updated dependencies
    • @tldraw/editor@2.0.0-alpha.2
    • @tldraw/tlsync-client@2.0.0-alpha.2
    • @tldraw/ui@2.0.0-alpha.2

0.1.0-alpha.11

Patch Changes

  • Fix stale reactors.
  • Updated dependencies
    • @tldraw/primitives@0.1.0-alpha.11
    • @tldraw/tldraw-beta@0.1.0-alpha.11
    • @tldraw/tlsync-client@0.1.0-alpha.11
    • @tldraw/utils@0.1.0-alpha.11

0.1.0-alpha.10

Patch Changes

  • Fix type export bug.
  • Updated dependencies
    • @tldraw/primitives@0.1.0-alpha.10
    • @tldraw/tldraw-beta@0.1.0-alpha.10
    • @tldraw/tlsync-client@0.1.0-alpha.10
    • @tldraw/utils@0.1.0-alpha.10

0.1.0-alpha.9

Patch Changes

  • Fix import bugs.
  • Updated dependencies
    • @tldraw/primitives@0.1.0-alpha.9
    • @tldraw/tldraw-beta@0.1.0-alpha.9
    • @tldraw/tlsync-client@0.1.0-alpha.9
    • @tldraw/utils@0.1.0-alpha.9

0.1.0-alpha.8

Patch Changes

  • Changes validation requirements, exports validation helpers.
  • Updated dependencies
    • @tldraw/primitives@0.1.0-alpha.8
    • @tldraw/tldraw-beta@0.1.0-alpha.8
    • @tldraw/tlsync-client@0.1.0-alpha.8
    • @tldraw/utils@0.1.0-alpha.8

0.1.0-alpha.7

Patch Changes

    • Pre-pre-release update
  • Updated dependencies
    • @tldraw/primitives@0.1.0-alpha.7
    • @tldraw/tldraw-beta@0.1.0-alpha.7
    • @tldraw/tlsync-client@0.1.0-alpha.7
    • @tldraw/utils@0.1.0-alpha.7

0.0.2-alpha.1

Patch Changes

  • Fix error with HMR
  • Updated dependencies
    • @tldraw/primitives@0.0.2-alpha.1
    • @tldraw/tldraw-beta@0.0.2-alpha.1
    • @tldraw/tlsync-client@0.0.2-alpha.1
    • @tldraw/utils@0.0.2-alpha.1

0.0.2-alpha.0

Patch Changes

  • Initial release
  • Updated dependencies
    • @tldraw/primitives@0.0.2-alpha.0
    • @tldraw/tldraw-beta@0.0.2-alpha.0
    • @tldraw/tlsync-client@0.0.2-alpha.0
    • @tldraw/utils@0.0.2-alpha.0