tldraw/CHANGELOG.md
2024-06-25 13:27:57 +00:00

336 KiB

v2.3.0 (Tue Jun 25 2024)

Release Notes

editing: don't allow editing locked shapes when edit→edit mode. (#4007)

  • Editing: don't allow editing locked shapes when edit→edit mode.

clipboard: fix copy/paste bad typo, ugh (#4008)

  • Clipboard: fix copy/paste for older versions of Firefox

clipboard: fix copy/paste on Firefox (#4003)

  • Clipboard: fix copy/paste in Firefox 127+

Fix multiple editor instances issue (#4001)

  • Fix a bug causing text shape measurement to work incorrectly when using react strict mode

fix: typo on "CardShapeUtil" example name (#3998)

  • Fix typo on "CardShapeUtil" name in the custom shape example documentation.

Update license in readme of the store package (#3990)

  • Fix the license in the readme file for the store package.

Add a new environment for publishing (#3981)

  • Introduce a new CI environment and use it for publishing vs code extension.

Fix vs code publishing (#3976)

  • Fix VS Code publishing.

Fix border color for following user (#3975)

  • Add a brief release note for your PR here.

Fix edge scrolling at odd browser zoom levels (#3973)

  • Add a brief release note for your PR here.

images: make isAnimated check on shared rooms work better (#3967)

  • Images: fix isAnimated checks when adding an image to a shared room.

Add fill fill style. (#3966)

  • Secretly adds a fill-fill style (Alt-F)

Add tags to examples frontmatter (#3929)

  • Improve filtering of examples

Fix solid style draw shape. (#3963)

  • Fixes the appearance of solid-style heart shapes.

Fix asset positions (#3965)

  • Fixes the position of multiple assets when pasted / dropped onto the canvas.

Fix draw shape indicators for pen-drawn solid shapes (#3962)

  • Fixes a bug with the indicator for stylus-drawn draw shapes.

assets: fix copy/paste with missing src (#3959)

  • Assets: fix copy/paste for new asset resolver mechanic.

[Experiment] Allow users to use system's appearance (dark / light) mode (#3703)

  • Add a brief release note for your PR here.

Improve edge scrolling (#3950)

  • Add a delay and easing to edge scrolling.

Set up automatic VS Code publishing (#3905)

  • Automate publishing of the VS Code extension.

Move from unpkg to our own cdn. (#3923)

  • Start using our own cdn instead of unpkg.

bookmark: css tweaks (#3955)

  • Bookmarks: padding tweaks

Dynamic size mode + fill fill (#3835)

  • Adds a dynamic size user preferences.
  • Removes double click to reset scale on text shapes.
  • Removes double click to reset autosize on text shapes.

assets: preload fonts (#3927)

  • Perf: improve font loading timing on dotcom.

[tiny] getSnapshot and loadSnapshot on Editor class (#3912)

  • Add a brief release note for your PR here.

Make ArrowBindingUtil public (#3913)

  • Add a brief release note for your PR here.

Flatten shapes to image(s) (#3933)

  • Add Flatten, a new menu item to flatten shapes into images

Update with api key with access to all buckets (#3944)

  • Retrigger canary packaging.

Retrying with Mime's keys (#3943)

  • Retrigger canary package build to publish a new package and upload assets to R2.

Empty PR to trigger canary publish (#3942)

  • Retrigger canary package build to publish a new package and upload assets to R2.

Fix uploading static assets to r2 (#3941)

  • Fix an issue with uploading the static assets.

Uploading the static assets to R2 bucket (#3921)

  • Upload our static assets (fonts, icons, embed-icons, translations) to a R2 bucket so that we can move away from using unpkg and start using our own cdn.

assets: store in indexedDB, not as base64 (#3836)

  • Assets: store as reference to blob in indexedDB instead of storing directly as base64 in the snapshot.

images: avoid double request for animated images (#3924)

  • Images: avoid double request for animated images.

Fix document name editable in readonly mode (#3911)

  • Remove ability to rename document while in readonly mode

assets: make option to transform urls dynamically / LOD (#3827)

  • Assets: make option to transform urls dynamically to provide different sized images on demand.

VS Code release 2.0.36 (#3922)

  • VS Code 2.0.36 release.

📚 SDK Changes

🖥️ tldraw.com Changes

📖 Documentation changes

🏠 Internal

🧹 Chores

🧪 Tests

🛠️ Tools

🔩 Dependency Updates

Authors: 9


v2.2.0 (Tue Jun 11 2024)

Release Notes

Fix 'insert media' undo operation (#3910)

  • Add a brief release note for your PR here.

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.

Fix Content-Security-Policy browser warnings (#3906)

  • Fix Content-Security-Policy warnings

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

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

Open share menu when navigating from create new shared project button (#3898)

  • Open share menu when navigating from the create new shared project button.

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.

Add option to navigate to new project from file menu (#3876)

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

security: don't send referrer paths for images and bookmarks (#3881)

  • Security: fix referrer being sent for bookmarks and images.

Prevent stale shape data in render (#3882)

  • Add a brief release note for your PR here.

Fix pressure (#3877)

  • Fixes pen pressure.

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

Taha/more constraints tests (#3863)

  • Adds more tests for the camera constraints API

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.

share: make share/fork/copy actions clearer (#3846)

  • Share menu: make sharing/fork/copy actions clearer

cloudflare: dont cache no-cache headers (#3849)

  • Cloudflare: don't cache no-cache headers.

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

  • Text labels: fix some inconsistencies with rendering.

Camera Constraints Tests (#3844)

  • Adds tests for the camera constraints api

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

toolbar: disable items that dont work when not in select mode (#3819)

  • Toolbar: disable menu items that don't work when not in select mode.

Fix cropped image export (#3837)

  • Fixed cropped images not exporting properly

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

Add unit tests for the camera (#3814)

  • Adds unit tests for the camera

fix coarse pointer detection (#3795)

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

Update validation.ts (#3324)

  • Update example for Union type

I believe this type was changed and literal is what it should be now.

Tighten up zoom to fit padding (#3798)

  • Reduce padding when zooming to fit.

toolbar: rework overflow css logic (#3779)

  • Toolbar: cleanup overflow css rules.

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.

google meet: add hardware whiteboard integration (#3765)

  • Google Meet: add hardware whiteboard integration

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.

add missing spline icons (#3778)

  • Add a brief release note for your PR here.

delete old todo comment (#3777)

  • Add a brief release note for your PR here.

Prevent pressing escape when editing document name to bubble up to the editor (#3725)

  • Prevent escaping out of editing the document name to switch the active tool to select tool.

Prevent wobble during viewport following (#3695)

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

E2E camera tests (#3747)

  • Adds E2E tests for the camera

Bump max shapes to 4000 (#3716)

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

export DefaultNavigationPanel (#3772)

  • Add a brief release note for your PR here.

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 readonly fetching happening too often. (#3732)

  • Fix an issue where readonly slug was being fetched every time the url changed (panning, zooming,...).

assets: rework mime-type detection to be consistent/centralized; add support for webp/webm, apng, avif (#3730)

  • Images: unify list of acceptable types and expand to include webp, webm, apng, avif

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
  • Add a brief release note for your PR here.

Just a small link fix for the docs.

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

Move storing of snapshots to R2 (#3693)

  • Move storing of snapshots to cloudflare R2.

Add asset pruning when importing files (#3689)

  • Prunes unused assets when loading a tldraw document.

Fix background color for patterned shapes. (#3708)

  • Fixes an issue with copy pasting shapes as svg and png not correctly working for patterned shapes.

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)

Prevent unnecessary fetching of readonly slugs (#3663)

  • Prevent unnecessary fetching of readonly slugs.

delete stray error screen css import (#3683)

  • Add a brief release note for your PR here.

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.
  • Add a brief release note for your PR here.

[signia] perf thing again (#3645)

  • Add a brief release note for your PR here.

VS Code 2.0.32 (#3664)

  • VS Code release.

Fix textbox direction when it contains both RTL and LTR languages (#3188)

Fix textbox direction when it contains both RTL and LTR languages

embed: prevent nested tldraw (#3659)

  • Embeds: Fix infinite nesting of tldraw rooms.

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
  • Embeds: fix being able to click on links that go back to the embed's site (e.g. YouTube)

Improve pressure-detection logic in drawing (#3639)

  • Improves handling of mouse-type devices that support pressure, e.g. wacom tablets. They now use the same freehand options as true pen-type inputs.

copy/paste: fix pasting not working from Edit menu (#3623)

  • Clipboard: fix pasting from the Edit menu.

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.

Allow embedding tldraw in iframes (#3640)

  • Allow embedding tldraw inside iframes again.

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.

Add desmos graph embed type (#3608)

  • (feature) add desmos embed

Make coarse pointer check dynamic (#3572)

  • Add a brief release note for your PR here.

examples: add filter input (#3625)

  • Examples: add a filter box.

stickies: make pit/pack distance the same (#3606)

  • Shapes: tweak default gap value to be consistent with sticky note gaps.

Fix an issue with the minimap (#3617)

  • Fixes clicking on the minimap when we clicked just slightly outside of the current viewport.

Fix an issue with minimap. (#3621)

  • Fixes an issue with the minimap bugging out after you change the window's height.

Bring back /r (#3615)

  • Brings back /r route for creating new rooms.

Expose migrations, validators, and versions from tlschema (#3613)

Previously, we weren't exporting migrations & validators for our default shapes. This meant that it wasn't possible to make your own tlschema with both our default shapes and some of your own (e.g. for custom multiplayer). This fixes that by exposing all the migrations, validators, and versions from tlschema, plus defaultShapeSchemas which can be passed directly to createTLSchema

Readonly / room creation omnibus (#3192)

  1. This adds new functionality for readonly rooms:
  • We have a new route /ro for newly created readonly rooms. These rooms no longer use the scrambling logic to create readonly slugs. Instead we now use KV storage from cloudflare to track the mapping for slugs -> readonly slug and readonly slug -> slug.
  • The old route /v is preserved, so that the old room still work as they did before.
  • For old rooms we will keep on generating the old readonly slugs, but for new rooms we'll start using the new logic.
  1. We no longer prevent embedding of tldraw inside iframes.
  2. We do prevent generating new rooms from inside the iframes though. /r, /new, /r/non-existing-id should not allow creation of new rooms inside iframes. Only /new still works when not inside iframes.
  3. Forking a project from inside an iframe now opens it on tldraw.com
  4. Slight copy change on the sharing menu. We no longer have a toggle between readonly and non-readonly links.
  5. editor and app are no longer exposed on the window object for readonly rooms. Prevents users from using the updateInstanceState to escape readonly rooms.

fix migration exports (#3586)

  • Expose createShapePropsMigrationIds, defaultEditorAssetUrls, PORTRAIT_BREAKPOINT, useDefaultColorTheme, & getPerfectDashProps

🐛 Bug Fix

  • build: disable flaky edit->edit focus test for now #3803 (@mimecuvalo)
  • @tldraw/assets, @tldraw/editor, @tldraw/tlschema

🏎 Performance

  • @tldraw/editor, tldraw

📚 SDK Changes

🖥️ tldraw.com Changes

📖 Documentation changes

🏠 Internal

🧹 Chores

🔩 Dependency Updates

Authors: 17


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

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

  • Adjusts colors

Add slides example (#3467)

  • Docs: Added a slideshow example

Only show cursor chat button in select mode (#3485)

  • Fix cursor chat button appearing when not in select tool.

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

  • Add a brief release note for your PR here.

[perf] faster signia capture (again) (#3487)

  • Add a brief release note for your PR here.

[perf] faster signia capture (#3471)

  • Slight performance improvement to reactivity bookkeeping.

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.

conditionally use star-history dark theme (#3461)

updates the star-history image in the README to conditionally show a dark theme image based on the user's prefers-color-scheme

Allow users to edit the document title by double clicking it even when editing a shape. (#3459)

  • Allow users to editing document name by double clicking even when previously editing text.
  • 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

Update font import URL in quick-start.mdx (#3430)

  • Fixes font import link in tldraw.dev quickstart guide

Perf: Improve text outline performance (#3429)

  • Improves performance of text shapes on iOS / Safari.

Perf: throttle updateHoveredId (#3419)

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

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.

Examples: update kbd shortcuts, add actions overrides example (#3330)

  • Add action overrides example, update keyboard shortcuts example

Add long press event (#3275)

  • Add support for long pressing on desktop.

Tool with child states (#3074)

  • Add an example of a tool with child states

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.

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

  • Improve performance of zooming.

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.

Improve performance of culling (#3272)

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

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.

Update romanian translations (#3269)

  • Update Romanian translation.

Allow hiding debug panel. (#3261)

  • Allow users to fully override the DebugPanel.

Add inline behaviour example (#3113)

  • Docs: Added an example for inline behaviour.

toolbar: fix missing title attributes (#3244)

  • Fix title's being missing on toolbar items.

Don't double squash (#3182)

  • Minor improvement when modifying multiple shapes at once.

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

  • Add a brief release note for your PR here.

fix docs build (#3201)

  • Add a brief release note for your PR here.

Update the document title to include the document name. (#3197)

  • Use the document name in the document.title.

Remove access token logic. (#3187)

  • Remove some leftover logic from pro days.

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

[sync] allow connections from v4 clients (#3173)

  • Add a brief release note for your PR here.

[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 release eliding (#3156)

  • Add a brief release note for your PR here.
  • Add a brief release note for your PR here. Installation docs has a link to example for exploded which points to github 404. I have updated the working link.

Make the custom menu examples a bit clearer (#3106)

  • Add a brief release note for your PR here.

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 typo in useValue comment (#3088)

  • Fix typo in useValue comment.

Shape with Migrations (#3078)

  • Adds a shape with migrations example

Fix viewport params for pages. (#3079)

  • Fixes an issue with url params in the share links. The viewport params only worked on the first page in the document.

Fix typo (#3069)

N/A

Add custom tool examples (#3064)

  • Adds a simple custom tool example

Fix validation errors for duplicateProps (#3065)

  • Add a brief release note for your PR here.

Shorten url state (#3041)

  • Shortens url parameters for dot com.

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.

Lokalise: Translations update (#3049)

  • Updated Hungarian translations.

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

  • Add a brief release note for your PR here.

Fix cursor chat bubble position. (#3042)

  • Fixed a bug where cursor chat bubble position could be wrong when a sidebar was open.
  • Fix a link that was pointing to a 404 on GitHub

Protect local storage calls (#3043)

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

Custom shape examples (#2994)

  • adds a simple custom shape example
  • adds an interactive shape example
  • updates editable shape example

Expose getStyleForNextShape (#3039)

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

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

  • Fixed a rare crash with video shapes.

Example of using tldraw styles (#3017)

  • shape with tldraw styles example

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

  • squish sync data events before sending them out #3118 (@si14)
  • @tldraw/editor, tldraw
    • textfields [1 of 3]: add text into speech bubble; also add rich text example #3050 (@mimecuvalo)
  • @tldraw/editor

🐛 Bug Fix

📚 SDK Changes

🖥️ tldraw.com Changes

📖 Documentation changes

🏠 Internal

🐛 Bug Fixes

🧹 Chores

🧪 Tests

🔩 Dependency Updates

Authors: 23


v2.0.0 (Thu Feb 29 2024)

⚠️ Pushed to main

📝 Documentation

Authors: 1


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

⚠️ Pushed to main

  • allow changes (@ds300)
  • @tldraw/editor, tldraw
    • fix refresh-assets cache inputs (@ds300)

Authors: 1


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

⚠️ Pushed to main

  • @tldraw/editor, tldraw
    • 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

  • @tldraw/editor, tldraw

Authors: 1


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

Release Notes

fix setAllVersions (#3009)

  • Add a brief release note for your PR here.

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

fix publishing scripts (#3006)

  • Add a brief release note for your PR here.

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.

Adding a single E2E test per menu (#2954)

  • Add a brief release note for your PR here.

unbork publish-new (#2999)

  • Add a brief release note for your PR here.

Implement new package publish process (#2996)

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

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.

Add external dialog example (#2887)

  • Dev: Added an example for dialogs that go outside the component.

fix document name overlapping people menu (#2970)

  • Fix people menu overlapping with document name when it grew too large.

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] Corejs imports (#2940)

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

Add example for external UI (#2846)

  • Docs: Added external UI example.

Remove template references (#2919)

  • changes the doc site so it no longer references the site template

Fix keyboard shortcuts bugs (#2936)

  • [Fix] Keyboard shortcut focus bug

E2E Style Panel Tests (#2878)

  • Add style panel E2E tests

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.

Bounds snapping shape (#2909)

  • Adds a custom bounds snapping shape

Improve dialog appearance on small components (#2884)

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

Better example intros (#2912)

  • Adds more info to the examples section of the docs.

docs: add star history and contributor list to README. (#2914)

add star history and contributor list to README.

image
  • Increases project transparency: This can help other developers understand the popularity and activity level of the project.

  • Recognizes contributors: Listing contributors can recognize those who have contributed to the project, which may also motivate more people to participate in the project.

  • Provides more information: The star history chart and contributor list provide more information for potential users or contributors, helping them make decisions about whether to use or participate in the project.

  • Enhances the project's professionalism: A detailed README file can enhance the professionalism of the


💥 Breaking Change

🚀 Enhancement

🐛 Bug Fix

⚠️ Pushed to main

  • better name for publish-new (@ds300)
  • remove dry run early return (@ds300)
  • better error message in publish-new.yml (@ds300)
  • fix error logging in publish-now.yml (@ds300)
  • fix bash thing (@ds300)

🏠 Internal

📝 Documentation

🧪 Tests

🔩 Dependency Updates

  • @tldraw/assets, @tldraw/editor, @tldraw/state, @tldraw/store, tldraw, @tldraw/tlschema, @tldraw/utils, @tldraw/validate

Authors: 9


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.

Sentence case all example titles (#2889)

  • Docs: Made the examples titles sentence case.

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

Editable shape example (#2853)

  • Adds an editable shape example

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 some problem under Windows OS development enviroment (#2722)

  • stablize language.ts when running under different OS language.
  • add isWin32() and posixPath() to format the parameter of glob.sync().
  • use child_process.exec() instead of child_process.execFile() for win32 platform.

doc: fix typo in examples (#2859)

  • fix typo in examples

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

fix typo(examples/hosted-images) (#2849)

  • Fixed a typo in the description in the hosted-images example.

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.

Composable custom UI (#2796)

  • Add a brief release note for your PR here.

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

Readonly defaults to the hand tool (#2833)

  • Shared projects in read only mode now default to the hand tool

Improve signia error handling (#2835)

  • Add a brief release note for your PR here.

[docs] Fix missing Persistence page (#2828)

  • Add a brief release note for your PR here.

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

  • Adds emoji picker to text fields.

💥 Breaking Change

  • @tldraw/tldraw, @tldraw/tlschema
  • @tldraw/editor, @tldraw/tldraw
  • @tldraw/tldraw
  • @tldraw/editor, @tldraw/tldraw, @tldraw/validate
  • @tldraw/editor, @tldraw/tldraw, @tldraw/tlschema

🚀 Enhancement

🐛 Bug Fix

🏠 Internal

  • Fix some problem under Windows OS development enviroment #2722 (@Rokixy)
  • fix typo(examples/hosted-images) #2849 (@pocari)
  • humans.txt #2842 (@mimecuvalo)
  • examples: rename ui events and increase priority #2840 (@mimecuvalo)
  • repair Huppy's handling of LICENCE #2821 (@si14)
  • @tldraw/assets, @tldraw/editor, @tldraw/state, @tldraw/store, @tldraw/tldraw, @tldraw/tlschema, @tldraw/validate
  • @tldraw/tldraw
  • @tldraw/editor, @tldraw/state, @tldraw/store, @tldraw/tldraw, @tldraw/tlschema, @tldraw/utils, @tldraw/validate
  • @tldraw/editor, @tldraw/tldraw
    • Revert "emojis! 🧑‍🎨 🎨 ✏️ (#2814)" #2822 (@si14)

📝 Documentation

🧪 Tests

Authors: 10


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.

docs: better code snippets (#2801)

  • Docs: reworks code snippets

Quick start guide (#2692)

  • Add a quick start guide

docs: fix scrolling issue with sidebar (#2791)

  • Docs: fix up scrolling.

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.

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.

docs: disable ai search for now (#2740)

  • Docs: disable AI search for now.

seo: attempt at avoiding a "soft 404" with there being thin content on dotcom (#2737)

  • Add a "Loading..." text to help SEO.

docs: add full-text search (#2735)

  • Docs: Add full-text search.
  • Fixes docs CORS issue.

docs: rework search UI (#2723)

  • Docs: rework the search to be an inline dropdown.

[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

fix(docs): fix user-interface.mdx (#2700)

Add newMenuItem creation in "Toolbar and Menus" example

docs: more cleanup following restructure (#2702)

  • Docs: further cleanup following restructure.

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 up doc links with /gen links

docs: rework docs site to have different sections (#2686)

  • Rework our docs site to pull together the examples app and reference section more cohesively.

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.

Remove examples app landing page (#2678)

  • Remove examples app landing page

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.

Grouping examples into categories (#2585)

  • Add collapsible categories to the examples app

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

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

Add button to Examples to request an example (#2597)

  • Add a button to request an example to the examples app

Update README and examples copy in the docs (#2594)

  • Update examples copy and tldraw README

Remove repeated word in CONTRIBUTING.md (#2651)

  • Remove repeated word in CONTRIBUTING.md.

[Fix] Wheel bug (#2657)

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

Update layout.tsx (#2619)

  • Add a brief release note for your PR here.

[Improvement] Share zone styling (#2628)

  • Tweaked user avatar size.

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

i18n: sort languages by name, not by locale code (#2625)

  • Sorts the locale list by locale name, not code.

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.

Add context toolbar example. (#2596)

  • Add context toolbar example.

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.
  • N/A

[dotcom] Delete service worker, cache tldraw assets (#2552)

  • Fix 'could not load assets' error that we often see on tldraw.com after a deploy

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.

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

  • removes the internal useDprMultiple hook

add keyboard shortcuts example (#2474)

  • Add keyboard shortcuts example

[hot take] Make dark mode colours pop more (#2478)

  • Tweaked dark mode colour styles to make them pop more.

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.

rename and annotate user presence example (#2462)

  • annotate user presence example and rename to presence-record

annotate onthecanvas example (#2459)

  • annotate onthecanvas example

annotate snapshot example (#2454)

  • annotate snapshot example

Fix and annotate minimal example (#2448)

  • Fix and annotate minimal example

annotate zones example (#2461)

  • annotate zones example

annotate ui events example (#2460)

  • annotate ui events example

Annotate shape meta data example (#2453)

  • Annotate shape meta data example

Annotate example for using Tldraw component in a scrollable container (#2452)

  • Annotate example for using Tldraw component in a scrollable container

Annotate example for making editor read-only (#2451)

  • Annotate example for making editor read-only

Fix typos and add comments for persistence example (#2450)

  • Fix typos and add comments for persistence example

Fix bookmark info for VS Code (#2449)

  • Fix bookmark image and description for VS code extension.

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

[Minor] change Simplified Chinese label to Chinese (#2434)

  • Changed the label for the Simplified Chinese language from Chinese - Simplified to 简体中文, following the convention of other languages.
  • Updated the API and relevant documentation through build scripts.

annotate external sources example (#2414)

  • Adds annotation to the external sources example.

annotate multiple example (#2431)

  • annotate multiple example

annotate force mobile example (#2421)

  • annotate force mobile example

annotate hosted images example (#2422)

  • annotate hosted images example

annotate local images example (#2423)

  • annotate local images example

Lokalise: Translations update (#2418)

  • Added Hungarian translations.
  • Updated Turkish translations.

annotate meta oncreate example (#2426)

  • annotate meta oncreate example

Annotate exploded example (#2413)

  • Adds annotation to exploded example
  • imports all default components instead of just a few

annotate hide-ui example (#2420)

  • Annotate hide ui example

Annotate custom ui example (#2408)

  • Adds annotation to the custom ui example

[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

Custom components annotation (#2403)

  • Annotate the custom components example.

annotate meta onchange (#2430)

  • annotate meta onchange

💥 Breaking Change

  • @tldraw/editor, @tldraw/tldraw
  • @tldraw/editor, @tldraw/tldraw, @tldraw/utils
    • Split snap manager into ShapeBoundsSnaps and HandleSnaps #2747 (@SomeHats)
  • @tldraw/tldraw, @tldraw/utils

🚀 Enhancement

🐛 Bug Fix

🏠 Internal

📝 Documentation

🧪 Tests

  • @tldraw/editor, @tldraw/store, @tldraw/tldraw, @tldraw/utils

🔩 Dependency Updates

  • @tldraw/editor, @tldraw/state, @tldraw/store, @tldraw/tldraw, @tldraw/tlschema, @tldraw/utils, @tldraw/validate
    • Bump Yarn to 4.0.2 and add version constraints #2481 (@si14)

Authors: 13


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

Release Notes

Fix validation when pasting images. (#2436)

  • Fixes url validations.

Fix decrement button label in OnTheCanvas example component (#2432)

  • tiny bug fix, simply changing a label to match behaviour

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] next selected shapes comment (#2427)

  • Fix error in setStyleForNextSelectedShapes comment

annotate error boundary example (#2410)

  • Add annotation to error boundary example

Fix issues with clip paths for frames (#2406)

  • Add a brief release note for your PR here.

Annotate custom styles example (#2405)

  • Add annotation to the custom styles example

annotate custom config example (#2404)

  • Adds annotation to the custom config example with a bit more detail

annotate asset props, correct image/video confusion (#2399)

  • Annotates the asset props example and fixes a mistake in the existing comments

Annotate/refactor store events example (#2400)

  • Update store events example to use store.listen method
  • Annotate with explanations of the code

annotate canvas events (#2397)

  • Adds annotation to the canvas events example

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

  • Add a brief release note for your PR here.

Annotate api example (#2395)

  • Annotate API example

[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

Refactor and document speech bubble example (#2392)

  • Add annotations to the speech bubble example
  • Refactor code for clarity
  • Fixes broken links in a number of docs files.

[fix] polygon bounds (#2378)

  • Fixed a bug with the bounds calculation for polygons.

Avoid importing editor.css twice (#2373)

  • Prevent importing editor.css twice which should help when debugging the styles via developer console.

Adding an image shape from a file the public folder (#2370)

  • Adds a simple image example.

💥 Breaking Change

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

🚀 Enhancement

🐛 Bug Fix

🏠 Internal

📝 Documentation

Authors: 8


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

Release Notes

add speech bubble example (#2362)

  • Add an example for making a custom shape with handles, this one is a speech bubble with a movable tail.

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.

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

  • 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

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

  • Add a brief release note for your PR here.

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.

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

  • Fix for Matrix2d.Scale function

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.

Remove deprecated getters (#2333)

  • (Breaking) Removed deprecated getters.

Lokalise: Translations update (#2342)

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

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.

Use a global singleton for tlstate (#2322)

  • Make a global singleton for tlstate.

VS Code 2.0.19 (#2324)

  • Version bump for VS Code.

💥 Breaking Change

  • @tldraw/assets, @tldraw/editor, @tldraw/state, @tldraw/store, @tldraw/tldraw, @tldraw/tlschema, @tldraw/utils, @tldraw/validate
  • @tldraw/assets, @tldraw/tldraw
  • @tldraw/editor, @tldraw/state

🚀 Enhancement

🐛 Bug Fix

🏠 Internal

  • @tldraw/editor

Authors: 9


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