tldraw/packages/editor/CHANGELOG.md
2024-06-11 12:53:15 +00:00

149 KiB

v2.2.0 (Tue Jun 11 2024)

Release Notes

Cropping undo/redo UX (#3891)

  • Add a brief release note for your PR here.

Bindings tests (#3800)

  • Add a brief release note for your PR here.

bookmark: fix up double request and rework extractor (#3856)

  • Bookmarks: fix up double request and rework extractor code.

Add option for max points per draw shape (#3900)

  • SDK: Add option for controlling max length of draw shapes

Bindings onBeforeShapeIsolate? (#3871)

  • Add a brief release note for your PR here.

[DX] sensible defaults for createTLStore (#3886)

  • Add a brief release note for your PR here.

Editor.blur method (#3875)

  • Add a brief release note for your PR here.

Prevent stale shape data in render (#3882)

  • Add a brief release note for your PR here.

Fix drag distance (#3873)

  • Fixed a bug where the minimum distance for a drag was wrong when zoomed in or out.

editor: register timeouts/intervals/rafs for disposal (#3852)

  • Editor: add registry of timeouts/intervals/rafs

Snapshots pit of success (#3811)

  • Add a brief release note for your PR here.

[bugfix] Preserve redo stack when selection changes (#3862)

  • Add a brief release note for your PR here.

Add select option to Editor.groupShapes and Editor.ungroupShapes (#3690)

  • Add a brief release note for your PR here.

text labels: address some rendering inconsistencies with the content vs. textarea (#3830)

  • Text labels: fix some inconsistencies with rendering.

Move constants to options prop (#3799)

You can now override many options which were previously hard-coded constants. Pass an options prop into the tldraw component to change the maximum number of pages, grid steps, or other previously hard-coded values. See TldrawOptions for more

[fix] setCamera animates to constrained viewport (#3828)

  • Add a brief release note for your PR here.

Add heart geo shape (#3787)

  • Adds a heart shape to the geo shape set.

rework canBind callback (#3797)

Breaking changes

The canBind flag now accepts an options object instead of just the shape in question. If you're relying on its arguments, you need to change from canBind(shape) {} to canBind({shape}) {}.

fix coarse pointer detection (#3795)

  • Fix a bug where coarse-pointer mode would get incorrectly detected on some touch devices

Tighten up zoom to fit padding (#3798)

  • Reduce padding when zooming to fit.

Fix spacebar/mmb panning bug. (#3791)

  • Fix bug with panning

[bugfix] Cleanup input state after middle-click-to-pan (#3792)

  • Add a brief release note for your PR here.

Move InFrontOfTheCanvas (#3782)

  • Add a brief release note for your PR here.

fix flipping for arrows (#3780)

  • Add a brief release note for your PR here.

[bugfix?] End interactions before switching page (#3771)

  • Add a brief release note for your PR here.

Prevent wobble during viewport following (#3695)

  • Fixes a bug that caused the cursor & shapes to wiggle around when following someone else's viewport

Bump max shapes to 4000 (#3716)

  • Increase maximum number of shapes per page from 2000 to 4000.

Allow DefaultErrorFallback to be used independently (#3769)

  • Add a brief release note for your PR here.

focus: rework and untangle existing focus management logic in the sdk (#3718)

  • Focus: rework and untangle existing focus management logic in the SDK

[bindings] beforeUnbind/afterUnbind to replace beforeDelete/afterDelete (#3761)

  • Add a brief release note for your PR here.

No defaults for contexts (#3750)

useEditor and other context-based hooks will now throw an error when used out-of-context, instead of returning a fake value.

Store-level "operation end" event (#3748)

Breaking changes

editor.registerBatchCompleteHandler has been replaced with editor.registerOperationCompleteHandler

Fix imports in Astro (#3742)

  • Fix bug effecting imports in Astro.

Move arrow helpers from editor to tldraw (#3721)

Breaking changes

  • editor.getArrowInfo(shape) has been replaced with getArrowInfo(editor, shape)
  • editor.getArrowsBoundTo(shape) has been removed. Instead, use editor.getBindingsToShape(shape, 'arrow') and follow the fromId of each binding to the corresponding arrow shape
  • These types have moved from @tldraw/editor to tldraw:
    • TLArcInfo
    • TLArrowInfo
    • TLArrowPoint
  • WeakMapCache has been removed

Bindings (#3326)

Breaking changes

  • The start and end properties on TLArrowShape no longer have type: point | binding. Instead, they're always a point, which may be out of date if a binding exists. To check for & retrieve arrow bindings, use getArrowBindings(editor, shape) instead.
  • getArrowTerminalsInArrowSpace must be passed a TLArrowBindings as a third argument: getArrowTerminalsInArrowSpace(editor, shape, getArrowBindings(editor, shape))
  • The following types have been renamed:
    • ShapeProps -> RecordProps
    • ShapePropsType -> RecordPropsType
    • TLShapePropsMigrations -> TLPropsMigrations
    • SchemaShapeInfo -> SchemaPropsInfo

Camera options (#3282)

  • SDK: Adds camera options.

Prevent duplicate from creating any shapes if we reach max allowed shapes (#3692)

  • Prevent duplicating shapes if we would go over the maximum shape limit. It's now an all or nothing operation, where as before some shapes would get created.

textfields: fix RTL layout for SVG exports (#3680)

  • [Add a brief release note for your PR here.](textfields: fix RTL layout for SVG exports)

Fix viewport following (#3681)

  • Fixes an issue where viewport following was not working

Fix className.includes bug (#3672)

  • Fixes a rare bug effecting text shapes on mobile.

fix android long press changing cursor to non-coarse (#3656)

  • Add a brief release note for your PR here.

[bugfix] don't crash if a bound shape doesn't exist (#3653)

  • fixes an edge case in multiplayer rooms where the room can crash if an arrow's bound shape is deleted by a peer

textfields: for unfilled geo shapes fix edit->edit (#3577)

  • Text labels: fix edit→edit not working as expected when unfilled geo shapes are on 'top' of other shapes.

Separate text-align property for shapes (#3627)

  • Separates the text align property for text shapes and labels.

Fix text resizing with alt key (#3632)

  • Fixed a bug with resizing text shapes from the left and right while holding alt.

Don't hover locked shapes (#3575)

  • Fixed a bug with locked shapes being hoverable.

Make coarse pointer check dynamic (#3572)

  • Add a brief release note for your PR here.

🐛 Bug Fix

🏎 Performance

📚 SDK Changes

🖥️ tldraw.com Changes

📖 Documentation changes

🏠 Internal

Authors: 8


v2.1.0 (Tue Apr 23 2024)

Release Notes

WebGL Minimap (#3510)

  • Add a brief release note for your PR here.

Fix culling. (#3504)

  • Fix culling.

Color tweaks (light and dark mode) (#3486)

  • Adjusts colors

Add slides example (#3467)

  • Docs: Added a slideshow example

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)

Cancel pointer velocity while pinching (#3462)

  • Fixed a bug that could occur while pinching with the hand tool selected.

Faster selection / erasing (#3454)

  • Improve performance of minimum distance checks.

Perf: Improve text outline performance (#3429)

  • Improves performance of text shapes on iOS / Safari.

Perf: block hit tests while moving camera (#3418)

  • Improves performance of canvas while the camera is moving.

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.

Input buffering (#3223)

  • Add a brief release note for your PR here.

Don't trigger pointer move on zoom (#3305)

  • Improve performance of zooming.

Improve performance of culling (#3272)

  • Improve performance of the canvas when many shapes are present.

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.

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

[tiny] Slightly more efficient selection rotated page bounds / page bounds (#3178)

  • SDK, slightly more performant selection bounds calculations.

[fix] Handles extra renders (#3172)

  • SDK: Fixed a minor rendering issue related to handles.

[fix] Cleanup text measures (#3169)

  • Fixed a bug that could cause multiple text measurement divs in development mode.

[perf] Reinstate render throttling (#3160)

  • Add a brief release note for your PR here.

Fix validation errors for duplicateProps (#3065)

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

Expose getStyleForNextShape (#3039)

  • Expose the API for Editor.getStyleForNextShape, previously marked as internal.

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

  • Better handling of broken images / videos.

Selection UI example (plus fixes to pageToScreen) (#3015)

  • Adds selection UI example.
  • Adds Editor.getSelectionRotatedScreenBounds method
  • Fixes a bug with pageToScreen.

[bugfix] Avoid randomness at init time to allow running on cloudflare. (#3016)

  • Prevent using randomness API at init time, to allow importing the tldraw package in a cloudflare worker.

💥 Breaking Change

🚀 Enhancement

  • textfields [1 of 3]: add text into speech bubble; also add rich text example #3050 (@mimecuvalo)
  • Selection UI example (plus fixes to pageToScreen) #3015 (@steveruizok)

📚 SDK Changes

🖥️ tldraw.com Changes

📖 Documentation changes

🏠 Internal

🐛 Bug Fixes

🧪 Tests

Authors: 8


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!

Don't add editor / app to window. (#2995)

  • Remove window.editor and window.app references to editor.

[feature] wrap mode (#2938)

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

Don't allow edge scrolling when camera is frozen. (#2992)

  • Don't allow edge scrolling when camera is frozen.

Setup papercuts (#2987)

  • Add a brief release note for your PR here.

[fix] Corejs imports (#2940)

  • Fixes a bug effecting some users related to corejs imports.

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.

💥 Breaking Change

🚀 Enhancement

🐛 Bug Fix

🏠 Internal

🔩 Dependency Updates

Authors: 4


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

Release Notes

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

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.

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

  • Dev: Added the TldrawImage component.

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

  • Line handles

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

  • Add ShapeUtil.getSnapInfo for customising shape snaps.

errors: improve msg in dialog when error happens (#2844)

  • Improves error dialog messaging.

[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

Authors: 7


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

Release Notes

Fix camera. (#2818)

  • Fixes an issue with the camera and zooming.

Use canvas bounds for viewport bounds (#2798)

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

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

  • Error reporting: improve grouping for Sentry.

i18n: add HR 🇭🇷 (#2778)

  • i18n: add Croatian / Hrvatski.

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 pinch zooming (#2748)

  • None: Fixes an unreleased bug.

[Fix] Camera coordinate issues (#2719)

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

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

  • Arrow labels: provide more polish on label placement

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

  • Adds easier testing command for individual packages.

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

  • Fixed a bug with virtual / create handle visibility.

[Fix] Missing bend handles on curved arrows (#2661)

  • Fixed a bug where the bend handle on arrows with a large curve could sometimes be hidden.

[Fix] Wheel bug (#2657)

  • Fixed a bug with the mouse wheel effecting the pointer location when the editor was not full screen

Fix nudge bug (#2634)

  • Fixes a bug with keyboard nudging.

debug: add FPS counter (#2558)

  • Adds FPS counter to debug panel.

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

  • Adds ability to change label position on arrows.

Export TLCommandHistoryOptions type (#2598)

  • Added TLCommandHistoryOptions to the exported types.

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

Prevent overlay content disappearing at some browser zoom levels (#2483)

  • removes the internal useDprMultiple hook

fix typo in hideRotateHandle method (#2473)

  • fix typo in hideRotateHandle method

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.

[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: 9


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

Release Notes

[fix] next selected shapes comment (#2427)

  • Fix error in setStyleForNextSelectedShapes comment

Fix issues with clip paths for frames (#2406)

  • Add a brief release note for your PR here.

[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: 4


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.

refactor: Keep hook function convention the same (#2358)

  • Add a brief release note for your PR here.

Stop shape text labels being hoverable when context menu is open (#2352)

  • Add a brief release note for your PR here.

[bug] Fix for issue #2329 (#2330)

  • Fix for Matrix2d.Scale function

Remove deprecated getters (#2333)

  • (Breaking) Removed deprecated getters.

Lokalise: Translations update (#2342)

Added Czech translations. Updated translations for German, Korean, Russian, Ukrainian, Traditional Chinese.

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.

💥 Breaking Change

🚀 Enhancement

🐛 Bug Fix

🏠 Internal

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

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

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

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.

[fix] masked bounds calculation (#2197)

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

💥 Breaking Change

🚀 Enhancement

🐛 Bug Fix

📝 Documentation

Authors: 6


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

Release Notes

[fix] actions menu freezing ui (#2187)

  • Fix actions menu not closing when clicking the canvas after grouping items via the actions menu.

add missing semicolon (#2182)

  • Fix typo in CSS file

Fix crash with zero length arrow (#2173)

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

Zooming improvement (#2149)

  • Improves zooming for inactive windows.

[feature] Things on the canvas (#2150)

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

[feature] multi-scribbles (#2125)

  • [feature] multi scribbles

Tighten up editor ui (#2102)

  • Small adjustment to editor ui.

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.

Remove (optional) from jsdocs (#2109)

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

🚀 Enhancement

🐛 Bug Fix

🏠 Internal

📝 Documentation

Authors: 5


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

Release Notes

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

  • [fix] bug with menus

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

🐛 Bug Fix

🔩 Dependency Updates

Authors: 2


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

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

  • Improve perf for hovering shapes / shape hit tests

🚀 Enhancement

  • [improvement] Scope getShapeAtPoint to rendering shapes only #2043 (@steveruizok)
  • prevent hover indicator from showing when pointer isn't over the canvas #2023 (@SomeHats)

🐛 Bug Fix

🏠 Internal

Authors: 4


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

Release Notes

frame label fix (#2016)

  • Add a brief release note for your PR here.

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

Allow right clicking selection backgrounds (#1968)

  • Improved right click behaviour.

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

  • Improve arrows.

[feature] Include sources in TLExternalContent (#1925)

  • [editor / tldraw] add sources to TLExternalContent

Fix shape drag perf (#1932)

  • Fixes a perf regression for dragging shapes around

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

  • Improves the precision of the shape dimensions rounding logic

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

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

Fix line wobble (#1915)

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

[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

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

[fix] awful rendering issue (#1842)

  • [fix] iframe rendering issue

[fix] snapping bug (#1819)

  • [fix] crash that could occur when snapping

[fix] editing video shapes (#1821)

  • Fix bug with editing video shapes.

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

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

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

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

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

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.

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.

💥 Breaking Change

🚀 Enhancement

🐛 Bug Fix

📝 Documentation

🔩 Dependency Updates

Authors: 8


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

Release Notes

[fix] penmode (#1698)

  • [fix] pen mode

[improvement] More nuanced cursor state (#1682)

  • Improve cursor timeouts and hiding logic.

[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

🚀 Enhancement

🐛 Bug Fix

Authors: 1


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.

Fix text shapes not having colour (#1649)

  • None: Fixes an unreleased bug.

Styles API docs (#1641)

--

Styles API follow-ups (#1636)

--

Fix SVG cursors not being used (#1639)

  • None: Fixing an unreleased bug.

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.

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

  • [dev] Added support for cursor chat presence.

[refactor] snapping (#1589)

  • [editor] fix bug in snapping

remove ShapeUtil.transform (#1590)

  • [editor] Remove ShapeUtil.transform

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 optional generic to updateShapes / createShapes (#1579)

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

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

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

n/a

mini defineShape API (#1563)

[dev-facing, notes to come]

yjs example (#1560)

  • [editor] Adds yjs example project

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.

highlighter fixes (#1530)

[aq bug fixes]

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

rename app to editor (#1503)

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

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 flags rework (#1474)

[internal only change]

[tiny] add isPageId (#1482)

  • [tlschema] Add isPageId

[refactor] update record names (#1473)

  • [editor] rename record types

[mini-feature] Following indicator (#1468)

  • Adds viewport following indicator

[chore] refactor user preferences (#1435)

  • Add a brief release note for your PR here.

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.

Create @tldraw/indices package (#1426)

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

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

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

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

  • Removes the isReadOnly value from the user_document_settings record type.

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.

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

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

fix a couple of consistency assumptions (#1365)

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

avoid lazy race conditions (#1364)

[internal only]

enable eslint for test files (#1363)

internal-only change

  • Fix a bug where creating a page could throw an error in some multiplayer contexts.

[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

💥 Breaking Change

🚀 Enhancement

🐛 Bug Fix

⚠️ Pushed to main

🏠 Internal

📝 Documentation

🧪 Tests

🔩 Dependency Updates

Authors: 8


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

🐛 Bug Fix

⚠️ Pushed to main

Authors: 6


@tldraw/tldraw-beta

2.0.0-alpha.11

Patch Changes

  • fix some package build scripting
  • Updated dependencies
    • @tldraw/primitives@2.0.0-alpha.11
    • @tldraw/tlschema@2.0.0-alpha.11
    • @tldraw/tlstore@2.0.0-alpha.11
    • @tldraw/tlvalidate@2.0.0-alpha.10
    • @tldraw/utils@2.0.0-alpha.10

2.0.0-alpha.10

Patch Changes

  • Updated dependencies [4b4399b6e]
    • @tldraw/primitives@2.0.0-alpha.10
    • @tldraw/tlschema@2.0.0-alpha.10
    • @tldraw/tlstore@2.0.0-alpha.10
    • @tldraw/tlvalidate@2.0.0-alpha.9
    • @tldraw/utils@2.0.0-alpha.9

2.0.0-alpha.9

Patch Changes

  • Release day!
  • Updated dependencies
    • @tldraw/primitives@2.0.0-alpha.9
    • @tldraw/tlschema@2.0.0-alpha.9
    • @tldraw/tlstore@2.0.0-alpha.9
    • @tldraw/tlvalidate@2.0.0-alpha.8
    • @tldraw/utils@2.0.0-alpha.8

2.0.0-alpha.8

Patch Changes

  • 23dd81cfe: Make signia a peer dependency
  • Updated dependencies [23dd81cfe]
    • @tldraw/tlstore@2.0.0-alpha.8
    • @tldraw/tlschema@2.0.0-alpha.8
    • @tldraw/primitives@2.0.0-alpha.8

2.0.0-alpha.7

Patch Changes

  • Bug fixes.
  • Updated dependencies
    • @tldraw/primitives@2.0.0-alpha.7
    • @tldraw/tlschema@2.0.0-alpha.7
    • @tldraw/tlstore@2.0.0-alpha.7
    • @tldraw/tlvalidate@2.0.0-alpha.7
    • @tldraw/utils@2.0.0-alpha.7

2.0.0-alpha.6

Patch Changes

  • Add licenses.
  • Updated dependencies
    • @tldraw/primitives@2.0.0-alpha.6
    • @tldraw/tlschema@2.0.0-alpha.6
    • @tldraw/tlstore@2.0.0-alpha.6
    • @tldraw/tlvalidate@2.0.0-alpha.6
    • @tldraw/utils@2.0.0-alpha.6

2.0.0-alpha.5

Patch Changes

  • Add CSS files to tldraw/tldraw.
  • Updated dependencies
    • @tldraw/primitives@2.0.0-alpha.5
    • @tldraw/tlschema@2.0.0-alpha.5
    • @tldraw/tlstore@2.0.0-alpha.5
    • @tldraw/tlvalidate@2.0.0-alpha.5
    • @tldraw/utils@2.0.0-alpha.5

2.0.0-alpha.4

Patch Changes

  • Add children to tldraw/tldraw
  • Updated dependencies
    • @tldraw/primitives@2.0.0-alpha.4
    • @tldraw/tlschema@2.0.0-alpha.4
    • @tldraw/tlstore@2.0.0-alpha.4
    • @tldraw/tlvalidate@2.0.0-alpha.4
    • @tldraw/utils@2.0.0-alpha.4

2.0.0-alpha.3

Patch Changes

  • Change permissions.
  • Updated dependencies
    • @tldraw/primitives@2.0.0-alpha.3
    • @tldraw/tlschema@2.0.0-alpha.3
    • @tldraw/tlstore@2.0.0-alpha.3
    • @tldraw/tlvalidate@2.0.0-alpha.3
    • @tldraw/utils@2.0.0-alpha.3

2.0.0-alpha.2

Patch Changes

  • Add tldraw, editor
  • Updated dependencies
    • @tldraw/primitives@2.0.0-alpha.2
    • @tldraw/tlschema@2.0.0-alpha.2
    • @tldraw/tlstore@2.0.0-alpha.2
    • @tldraw/tlvalidate@2.0.0-alpha.2
    • @tldraw/utils@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/tlschema@0.1.0-alpha.11
    • @tldraw/tlstore@0.1.0-alpha.11
    • @tldraw/tlvalidate@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/tlschema@0.1.0-alpha.10
    • @tldraw/tlstore@0.1.0-alpha.10
    • @tldraw/tlvalidate@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/tlschema@0.1.0-alpha.9
    • @tldraw/tlstore@0.1.0-alpha.9
    • @tldraw/tlvalidate@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/tlschema@0.1.0-alpha.8
    • @tldraw/tlstore@0.1.0-alpha.8
    • @tldraw/tlvalidate@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/tlschema@0.1.0-alpha.7
    • @tldraw/tlstore@0.1.0-alpha.7
    • @tldraw/tlvalidate@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/tlschema@0.0.2-alpha.1
    • @tldraw/tlstore@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/tlschema@0.0.2-alpha.0
    • @tldraw/tlstore@0.0.2-alpha.0
    • @tldraw/utils@0.0.2-alpha.0