* Upgrade Liveblocks packages to 0.17
* Convert app to recommended Liveblocks 0.17 setup
* Convert multiplayer example to recommended Liveblocks 0.17 setup
* Convert multiplayer-with-images example to recommended Liveblocks 0.17 setup
* Fix React rendering issue for multiplayer app
This bug could manifest after _navigating_ internally to the Multiplayer
example app. Liveblocks Storage would seem to remain empty, but Presence
would still seem to work. In other words, you'd see cursors flying, but
no document contents.
This did not happen when doing a full page load.
This bug only occurs in React strict mode.
* update onPatch and onCommand
* "Add event callbacks for `onSessionStart` and `onSessionEnd`"
* Adds edit state
* Pass callbacks to app
* Remove console logs
* interpolate cursor only when not in session
* Update multiplayer icon
* Fix a few things
Co-authored-by: Steve Ruiz <steveruizok@gmail.com>
* feat: add translation
* modal, left menu translation
* primary tools translation
* render with intl provider for testing
restore file
* french translation done
* context menu translation and test
* added italian
* Add menu to select language
* translation for the word language
* bump dev deps
Bump react on www
* Fix types
* update dependencies
* pre-release
* Delete lask.config.json
Co-authored-by: Enrico <franciscono.enry@gmail.com>
Co-authored-by: Steve Ruiz <steveruizok@gmail.com>
* fix: Pointer position is incorrect if Tldraw is drawing in a scrolling container
fix https://github.com/tldraw/tldraw/issues/661
* Add example for scrolling
Co-authored-by: Steve Ruiz <steveruizok@gmail.com>
* local images
use assets for local copy
add menu options
* clean up packages
* cleanup unused content, move file handling into app.paste
* Add tldraw-assets.json to other files.
* add path to editor
* Update build.mjs
* add export to server example with link to gist
* Fix onAssetCreate and onAssetDelete APIs
* Update yarn.lock
* fix bugs on paste, adjust api for getting images, fix readonly on cut, copy, paste
* re-enable swc
* paste svg strings as svg images
* cleanup
* fix string case for tldraw json
Based onto [this worldanvil whiteboard issue](https://github.com/worldanvil/worldanvil-bug-tracker/issues/969) which is based on tldraw where one of our users noticed that the horizontal scrolling (panning) with the middle mouse didn't worked on macOS.
Tested on different machines and this bug fixes it
Co-authored-by: Alejandro Duran <alejandro@worldanvil.com>
* Add text field to rename the page
* tweak appearance
Co-authored-by: judicael_ai <judicael@smartpredict.ai>
Co-authored-by: Steve Ruiz <steveruizok@gmail.com>
* added cade like behaviour like described in issue #555
* added color change when selecting depending on behavior
* added option to turn on/off cad like selection
* Revert "added color change when selecting depending on behavior"
This reverts commit 4a4aac02b68bf1bfbc86f9b9f05e23b3e6e0ae9d.
* Remove colors, add perfect dash props, rename setting, move prop to appState
* Reorder menu
Co-authored-by: Steve Ruiz <steveruizok@gmail.com>
* fix(import): make sure every shape is in page
- only to add the shape is in page shapes
-https://gist.github.com/cangoektas/4a84e2d48f6e2551b8b3a632ae1b4f71Closes#554
* Update useShapeTree.tsx
* Update useShapeTree.tsx
* Update turbo.json
Co-authored-by: Steve Ruiz <steveruizok@gmail.com>
* 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>
* account for "virtual" shapes when preserving appState
* rewrite merge logic
* More work on multiplayer
* Update TldrawApp.ts
* Improve logic around when to replace page content
Co-authored-by: Steve Ruiz <steveruizok@gmail.com>
- when paste the content from clipboard, if the content is not JSON, the `JSON.parse` parse error will be thrown. The info should not be in production build.
Closes#400
* Temp change so I can create a PR
* Have select all,copy/paste/cut, and undo/redo working for text/sticky shapes in VS Code extension
* cleanup
* removed some semi colons
* Ran prettier
* More cleanup
* Adds stopPropagation for native context menu
Co-authored-by: Steve Ruiz <steveruizok@gmail.com>
* 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>
* feat(menu): disable buttons when items not selected
* cut and copy options not shown when item isn't selected
* added cut option on ContextMenu
* Show buttons but disabled
Co-authored-by: Steve Ruiz <steveruizok@gmail.com>