Introducing independent change detection for appState and elements
Generalizing object change, cleanup, refactoring, comments, solving typing issues
Shaping increment, change, delta hierarchy
Structural clone of elements
Introducing store and incremental API
Disabling buttons for canvas actions, smaller store and changes improvements
Update history entry based on latest changes, iterate through the stack for visible changes to limit empty commands
Solving concurrency issues, solving (partly) linear element issues, introducing commitToStore breaking change
Fixing existing tests, updating snapshots
Trying to be smarter on the appstate change detection
Extending collab test, refactoring action / updateScene params, bugfixes
Resetting snapshots
Resetting snapshots
UI / API tests for history - WIP
Changing actions related to the observed appstate to at least update the store snapshot - WIP
Adding skipping of snapshot update flag for most no-breaking changes compatible solution
Ignoring uncomitted elements from local async actions, updating store directly in updateScene
Bound element issues - WIP
* feat: integrate mermaidToExcalidraw
* create mermaid to excal dialog
* allow mermaid syntax and export in preview
* fix
* fix webpack config
* fix markdown error by using named export
* center preview
* set elements as selected when inserted onto canvas
* persist mermaid data to storage
* store canvas data in refs
* load mermaid lazily
* tweak design
* compute width, height correctly for arrows
* fix undefined vertex issue
* add mermaid icon in dropdown
* add a note in dialog
* reset preview when error
* show error in preview when error
* show mermaid error messgae react way
* design tweaks
* add example and docs link
* fix
* tweak design to remove scroll bar
* show a spinner unless mermaid loaded
* regenerate ids when needed via programmatic api, this makes sure for mermaid diagrams ids are regenerated
* tweak
* add option to transform viewport to scene coords in transform api
* make opts optional and use 100% zoom when inserting to canvas
* fix arrow bindings in safari and firefox
* fix elements insert position and viewport centering
* fix: Update start/end points by 0.5 so bindings don't overlap with start/end bound element coordinates.
* defer rendering the preview
* tweak text
* fix tests
* remove only
* make design responsive
* fix: show extra tools dropdown in mobile
* fix mobile css
* width auto
* upgrade mermaid-to-excalidraw
* don't pass appState in deps as its not used
* upgrade mermaid-to-excalidraw to fix firefox issue
* use types from mermaid-to-excalidraw
* upgrade mermaid-to-excalidraw
* use stable version of mermaid-to-excalidraw
* upgrade mermaid-to-excalidraw
* fix width of shapes toolbar for smaller screen size and also fix regression of mobile menu
* use i18n
* better api
* enable test coverage in ui
* Add tests
* use common utils to update and get text editor
* updgrade mermaid-to-excalidraw to support sequence diagrams
* fix test
* don't update arrow container height anytime in when redrawing text bounding box
* increase size limit
* increase size limit of vendor to 900kb
* use openDialog for mermaid
* upgrade mermaid-to-excalidraw
* update frame id post generation
* upgrade mermaid-to-excalidraw to add entity codes support
* update size limit
* upgrade mermaid-to-excalidraw package with frame api changes
* upgrade mermaid-to-excalidraw to remove directive and use config
* don't highlight mermaid tool and remove unused api setSelection
* stop using loading state to update text area
* move some styling to scss
* review fixes
* use modifiedTableIcon props and remove stale snap
* css
* dialog css
* fix snap
* use dialog border
* change mermaidToExcalidrawLib to state
* better styling of errors
* make modal bigger
* fix mobile
* update snaps
* fix icon color
* fix dark mode insert button color
* horizontally center spinner
* render canvas conditionally on loaded state
* rd tweaks
* tweak class names
* remove max height
* typo in example
* upgrade mermaid-to-excalidraw
* simplify error state
* fix height & overflow on vertical breakpoint
* fix lint
* show errors in overlay
* set textarea font family
* reduce opacity
* update snap
* upgrade to mermaid 0.1.2
---------
Co-authored-by: dwelle <luzar.david@gmail.com>
* feat: initial Laser pointer mvp
* feat: add laser-pointer package and integrate it with collab
* chore: fix yarn.lock
* feat: update laser-pointer package, prevent panning from showing
* feat: add laser pointer tool button when collaborating, migrate to official package
* feat: reduce laser tool button size
* update icon
* fix icon & rotate
* fix: lock zoom level
* fix icon
* add `selected` state, simplify and reduce api
* set up pointer callbacks in viewMode if laser tool active
* highlight extra-tools button if one of the nested tools active
* add shortcut to laser pointer
* feat: don't update paths if nothing changed
* ensure we reset flag if no rAF scheduled
* move `lastUpdate` to instance to optimize
* return early
* factor out into constants and add doc
* skip iteration instead of exit
* fix naming
* feat: remove testing variable on window
* destroy on editor unmount
* fix incorrectly resetting `lastUpdate` in `stop()`
---------
Co-authored-by: dwelle <luzar.david@gmail.com>