* Improve arrows binding logic
* Update ArrowSession.ts
* more arrow improvements
* major arrow cleanup / refactor
* point toward anchor rather than center
* 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>
* Kee track of changed assets
* Add support for multiplayer image assets
* fix tests
* Add images
* Improve asset deletion
* Remove assets from document
* Test with v small image only
* Add test for deleteShapes
* Cleanup document assets
* Add multiplayer assets to www
* remove default storage root, which was preventing migration
* Update onAssetDelete flow, rename some files
* bump upload size to 5mb
* Fix freeze bug where image fails to load
* fix logic for removing assets
* Update useMultiplayerState.ts
Co-authored-by: Steve Ruiz <steveruizok@gmail.com>
* Enable panning for DrawTool
* move camera panning logic to TlDrawApp
* fix: disable shape button on keyboard pan
* ensure middle wheel panning returns to idle globally
* prevent flicker during mouseup while spacePanning
* Use boolean flags for force panning
* add middle mouse button
* Fix logic
* Fix toolbar re-selecting
Co-authored-by: Steve Ruiz <steveruizok@gmail.com>
* 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
* 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
* 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>
* onPointShape called instead of onPointerDown
* Update useShapeEvents.tsx
* Bugfix on useShapeEvents wrong key name
Co-authored-by: Steve Ruiz <steveruizok@gmail.com>
* Bugfix: 'Copy as SVG' shapes have black fill by default
* Remove binding hit areas from copied SVG
Co-authored-by: Steve Ruiz <steveruizok@gmail.com>
* removes touch events from middle of shapes
* Improve ellipse
* selectable stroke when not selected, fill when selected
* Update BrushSession.spec.ts
* Fix test
* fix for undo button on menu open
* Change toggle to set, add option for keyboard events
* Update .gitignore
* Update .gitignore
* Remove isStyleOpen
* Remove isStyleOpen
Co-authored-by: Steve Ruiz <steveruizok@gmail.com>