Commit graph

156 commits

Author SHA1 Message Date
Herb Caudill
372cc690c7
Scroll wheel fixes & enhancements (#501)
* scroll wheel fixes & enhancements

1. correct zoom direction (was reversed)
2. support ctrl+scroll for zoom (in addition to alt+scroll)
3. support shift+scroll for horizontal pan

* Allow two-axis panning

Co-authored-by: Steve Ruiz <steveruizok@gmail.com>
2022-01-12 14:33:55 +00:00
Steve Ruiz
6a282ca9c2 Bump dependencies, fix bug on mobile, preserve settings. 2022-01-10 21:09:26 +00:00
Steve Ruiz
f2481642f9 Fix context menu bug on mobile 2022-01-08 20:08:17 +00:00
Steve Ruiz
9c3424a5fc Update documentation
bump versions

update readmes, licenses
2022-01-07 09:01:08 +00:00
Steve Ruiz
9255e7a4a5 Update useShapeEvents.tsx 2022-01-06 14:01:25 +00:00
Steve Ruiz
b1697b2ca7 Fix context menu, fix blur issue 2022-01-06 14:00:23 +00:00
Steve Ruiz
d00d443492
Add shift+click to draw straight lines between points (#478)
* Add shift+click to draw straight lines between points

* Add points to previous shape

* undo/redo fixes

* Fix bug with non-draw shapes

* Update drawHelpers.ts
2022-01-03 09:49:34 +00:00
Steve Ruiz
d0fd712e5e
[improvement] labels (#467)
* Improve appearance of arrow shape labels, set label text color to match stroke

* fix svg copy fonts for text, labels

* Reduce opacity effect of scaled arrow label, update font in export, adds command+enter to finish text
2021-12-28 11:23:17 +00:00
Steve Ruiz
d7a697647b
[feature] Labels for shapes (#462)
* Adds generic text label

* Clean up text label / text util

* labels for ellipse and triangles

* Add arrow label

* Update filesystem.ts

* Double click bend to edit label, fix mask location

* refactor arrowutil

* fix arrow bindings

* Rename text to label, add labelPoint

* Fix arrow binding, styles on text labels, double click bounds edge to edit label

* Update ArrowSession.ts

* Update StyleMenu.tsx

* set version
2021-12-27 19:21:30 +00:00
Steve Ruiz
d5cd7ed480 bump use-gesture, memoize gesture callbacks 2021-12-27 12:50:18 +00:00
Steve Ruiz
4aa8547a8e
[improvement] performance modes (#463)
* add performance modes to core, sessions

* Update filesystem.ts

* rename TLPerformance to TLPerformanceMode, fix bugs
2021-12-27 12:30:35 +00:00
Steve Ruiz
0ed7e55c4c Make core asset types more generic, update docs. 2021-12-25 18:39:50 +00:00
Faraz Shaikh
1c65c031b2
Add Image and Video shapes (#460)
* Added image and video shapes

* Fixed bugs; Added optional onImageUpload callback

* Added id field to onImageUpload

* Added onImageDelete callback for cleanup

* Added firebase storage to multiplayer for media

* Added firebase storage to multiplayer for media

* Silence unnecessary TS errors

* Fixed bugs; Added tests

* Added tests

* Disable images for multiplayer example

* switch to assets in document, rather than on shapes, fix resize, fix sizes

* bump version, add migration for assets table

* Rename onImageUpload

* Add isPlaying state to video (not complete)

* Revert "Add isPlaying state to video (not complete)"

This reverts commit 3dc2ba703f4194eb7c47524d384dc8392daa18be.

* Adds controls when editing video, sync current time when cloning

* Remove unused tools

* avoid duplication in assets

* Remove unused image styles from style menu

* Fix placement of clone buttons

* Fix flag to hide image assets in multiplayer

* move getSizeFromDataUrl to filesystem

* Update VideoUtil.tsx

* Re-center video after it loads

* Add copy and paste support for assets

* Fix bug in state manager, remove unused assets on load, fix indicators

* Add multiplayer with images example

* Update MultiplayerEditor.tsx

* Add images to copy SVG

* tighten up some code around svg export

* Update TldrawApp.spec.ts

* Update useBoundsHandleEvents.tsx

* Reset image size by double clicking bounds

* fix reset size

Co-authored-by: Steve Ruiz <steveruizok@gmail.com>
2021-12-25 17:06:33 +00:00
Thomas Mathisen
4cf283e84f
Bugfix on useShapeEvents wrong key name (#459)
* onPointShape called instead of onPointerDown

* Update useShapeEvents.tsx

* Bugfix on useShapeEvents wrong key name

Co-authored-by: Steve Ruiz <steveruizok@gmail.com>
2021-12-22 12:56:49 +00:00
Steve Ruiz
e8befe2290 fix leaky ref 2021-12-22 00:40:37 +00:00
Steve Ruiz
4da632d5d8
[improvement] Multiplayer cursors (#458)
* bump versions, improve cursors

* Spline cursors

* Update useCursorAnimation.ts

* Update useCursorAnimation.ts

* Add improved cursors

* Update MultiplayerEditor.tsx

* Update [id].tsx
2021-12-22 00:34:44 +00:00
Steve Ruiz
7c2777966f
[improvement] Multiplayer + cursors (#457)
* bump versions, improve cursors

* Spline cursors
2021-12-22 00:14:38 +00:00
Steve Ruiz
58b8968f12
[fix] intersection bug (#452)
* Update TLShapeUtil.tsx

* Add tests

* Update tsconfig.json
2021-12-17 16:29:08 +00:00
Thomas Mathisen
34492f2f01
Bugfix: onPointerDown not called (#451)
* onPointShape called instead of onPointerDown

* Update useShapeEvents.tsx

Co-authored-by: Steve Ruiz <steveruizok@gmail.com>
2021-12-17 16:02:13 +00:00
Steve Ruiz
5e6a4939d1 Removes faulty error boundary from core, removes faulty ID provider from tldraw 2021-12-12 21:44:44 +00:00
Elizabeth Louie
c5124b160e
add triangle tool (#433)
* add triangle tool

* fix keyboard shortcuts

* cleaned code

* Add binding, better indicator, bounds

* Fix tests

* Refactor getBindingPoint, binding distances, add comments to getBindingPoint

* Update TextUtil.spec.tsx.snap

* fix intersection math

* fix ellipse indicator

* Update EllipseUtil.tsx

* Update BrushSession.spec.ts

* Add draw style to triangle

* improve strokes

Co-authored-by: Steve Ruiz <steveruizok@gmail.com>
2021-12-09 22:29:09 +00:00
Steve Ruiz
52ae47371d
[improvement] Select unfilled shapes by clicking on their stroke (#438)
* removes touch events from middle of shapes

* Improve ellipse

* selectable stroke when not selected, fill when selected

* Update BrushSession.spec.ts

* Fix test
2021-12-07 20:48:56 +00:00
Steve Ruiz
0334ac0f30
Fix alt zoom (#424) 2021-12-01 14:25:56 +00:00
Noah Shipley
98cc0d4cac
Feature/mobx - adds mobx support to @tldraw/core (#383)
* Initial commit with mobx

* Convert more to mobx

* Make useCameraCss reactive (autorun)

* Move more items to mobx

* Fix more invalid components and layout hooks that needed to be reactive

* Add autorun to css layout effect

* Remove centric specific yarn.lock changes

* mild cleanup

* update from main

* add tests, example

* cleanup

* minor tweak to advanced example

* Update app.tsx

* Optimizations around events not being memoized

* Support className property on SVGContainer

* Add data-type to shape container to aid with external styling

* Fix classnames

* Fixes bug on text shapes / shapes with refs

* v1.1.9-beta.1

* v1.1.9-beta.2

* Drop mobx as a dependency for core

* v1.1.9-beta.3

* rename

* Revert "Drop mobx as a dependency for core"

This reverts commit 2d93f84a87f0c709e55fb2766519bfde03f8e854.

* remove unused code from utils, move curve to separate package

* v1.1.9-beta.4

* Add pretty-quick

* Update package.json

* Renamings

Co-authored-by: Noah Shipley <nshipley@centricsoftware.com>
Co-authored-by: Steve Ruiz <steveruizok@gmail.com>
2021-11-28 10:05:40 +00:00
Christian Petersen
e2814943e9
[feature] Add grids (#344)
* [feature] grids

* Shows relative grids at different zoom levels

* Update colors

* Restores vec and intersect to monorepo, changes vec.round to vec.toFixed, adds vec.snap

* Snapping in translate and transforms, fix shortcut

* fix bugs in build

* use grid size for nudge too

* update scripts

* Update grid.tsx

* Update grid.tsx

* Fixed!

* Update grid.tsx

* Fix package imports

* Update Editor.tsx

* Improve tsconfigs, imports

* Fix tiny arrow bugs, snap starting points to grid

* Update tsconfig.base.json

* Update shape-styles.ts

* Fix example tsconfig

* Fix translate type error

* Fix types, paths

Co-authored-by: Steve Ruiz <steveruizok@gmail.com>
2021-11-26 15:14:10 +00:00
Proful Sadangi
1f7f779506
feature middle mouse wheel pan (#364) 2021-11-24 10:01:17 +00:00
Steve Ruiz
a2fff9dca7
[improvement] Add basic support for copying text (#354)
* Add getSvgElement

* Update TextUtil.tsx

* Add sticky svg

* Fix bounds bug, improve text export

* Include fonts
2021-11-22 16:15:51 +00:00
Steve Ruiz
62803443ef
fix stuck pointer during text editing / palm hits (#316) 2021-11-20 00:05:48 +00:00
Steve Ruiz
6af6cfb617 update readmes 2021-11-18 14:05:44 +00:00
Steve Ruiz
e6a3e5c3ea
[big chore] restore core to monorepo (#287)
* move core into repo, apps into apps folder, update tests

* Update scripts for build:core

* improve scripts

* remove noise from www

* Update .gitignore

* Fix focus bug

* add ci test script

* Update main.yml
2021-11-18 13:09:18 +00:00
Steve Ruiz
599e6032a9 Removes core (off to its own repo) 2021-10-27 18:52:02 +01:00
Steve Ruiz
02a6488f46 Fix types for real 2021-10-27 17:21:49 +01:00
Steve Ruiz
c04e4134d2 Fix rendering bug, tweak API 2021-10-27 17:16:07 +01:00
Steve Ruiz
2e6c33342d
[refactor] ShapeUtils (#206)
* Starts refactor

* tests passing, got it

* Fix next
2021-10-27 16:15:01 +01:00
Steve Ruiz
8d6fe119a5 minor utils tweaks 2021-10-25 09:38:11 +01:00
Steve Ruiz
0f2887a039 updates package 2021-10-22 20:14:02 +01:00
Steve Ruiz
b94c97aafe moves svg utils into its own package 2021-10-22 20:03:22 +01:00
Steve Ruiz
757feb009b
[fix] group behavior (#197)
* Fixes nudging on groups

* Fix alignment of grouped shapes

* fix distribute of grouped shapes

* Fixes stretching groups

* Fix rotate command

* Improve idsToMutate code

* remove boundsRotation
2021-10-22 14:09:39 +01:00
Steve Ruiz
3ba4d435bc
[fix] Hides handles that are too close to a previous handle (#193)
* Hides handles that are too close to a previous handle

* Hide handles if only one handle is visible
2021-10-22 12:28:11 +01:00
Steve Ruiz
ff50aa6ad5
[fix] bound shape size undo (#191)
* fix text centering, double click grouped text to select rather than edit

* Fix selecting grouped text

* Writes tests for select tool, fixes undo behavior while in session

* reduces binding distance, adds constants for binding distance and cloning distances

* adjust text sizes

* Update arrow.session.spec.ts
2021-10-22 12:05:23 +01:00
Steve Ruiz
0dffdd2d29
[improvement] snaps (#190)
* Simplify snaps

* Update readmes

* Improves snapping

* filter snappable shapes, give viewport information to sessions
2021-10-21 19:54:54 +01:00
Steve Ruiz
8fd9cf8389
[feature] UX preferences (#172)
* Improves snapping util, styles corner buttons, adds preferences

* Update bounds.test.tsx

* Update preferences.tsx

* Update preferences.tsx

* Change copy
2021-10-19 14:29:55 +01:00
Steve Ruiz
a7e8fafb96
Adds up and downstream links (#171) 2021-10-19 12:19:56 +01:00
Steve Ruiz
235a57d302 Adds indicator for text, linked translate 2021-10-18 16:59:12 +01:00
Steve Ruiz
6661ab0586
[feature] transform snaps (#170)
* transform single

* transform
2021-10-18 15:26:34 +01:00
Steve Ruiz
0cfc68b004
[feature] snapping (#168)
* defer cloning

* basic snapping

* Improves algorithm for snap points, rendering

* Improves snapping, snaplines

* Enables a clone to snap to its parent

* Adds overlay

* Fix overlay, zoom scaling for distance and speed
2021-10-18 14:30:42 +01:00
Steve Ruiz
01c824bbbe
Improve rectangle rendering (#163) 2021-10-17 09:09:01 +01:00
Steve Ruiz
db62005251
Fix dark theme UI (#161)
* Fix theming

* Cleanup

* Update tldraw.tsx
2021-10-17 06:59:10 +01:00
Steve Ruiz
abcdcd8dae
improves multiplayer presence (#160) 2021-10-16 21:24:31 +01:00
Steve Ruiz
32b2ae88ee
[feature] grid cloning (#152)
* Adds more clone buttons

* Adds grid session, fix bug on text, adds keyboard handlers for sessions

* Adds copy paint, point argument to duplicate

* Adds tests for duplicate at point

* Adds status for shape cloning

* Adds 32px padding when clone brushing
2021-10-15 17:14:36 +01:00