* Expose renderScrollbars to AppState
* fix: scrollbar rendering should use al renderable elements
* remove `appState.renderScrollbars`
* clean unused
---------
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
* fix: keep orig elem in place on alt-duplication
* clarify comment
* fix: incorrect selection on duplicating labeled containers
* fix: duplicating within group outside frame should remove from group
* fix: deselected hit element being duplicated + incorrect re-seeding
* snapshots
* Fix alt-drag binding
Signed-off-by: Mark Tolmacs <mark@lazycat.hu>
* Add alt-drag bound arrow test
Signed-off-by: Mark Tolmacs <mark@lazycat.hu>
---------
Signed-off-by: Mark Tolmacs <mark@lazycat.hu>
Co-authored-by: Mark Tolmacs <mark@lazycat.hu>
* lasso without 'real' shape detection
* select a single linear el
* improve ux
* feed segments to worker
* simplify path threshold adaptive to zoom
* add a tiny threshold for checks
* refactor code
* lasso tests
* fix: ts
* do not capture lasso tool
* try worker-loader in next config
* update config
* refactor
* lint
* feat: show active tool when using "more tools"
* keep lasso if selected from toolbar
* fix incorrect checks for resetting to selection
* shift for additive selection
* bound text related fixes
* lint
* keep alt toggled lasso selection if shift pressed
* fix regression
* fix 'dead' lassos
* lint
* use workerpool and polyfill
* fix worker bundled with window related code
* refactor
* add file extension for worker constructor error
* another attempt at constructor error
* attempt at build issue
* attempt with dynamic import
* test not importing from math
* narrow down imports
* Reusing existing workers infrastructure (fallback to the main thread, type-safety)
* Points on curve inside the shared chunk
* Give up on experimental code splitting
* Remove potentially unnecessary optimisation
* Removing workers as the complexit is much worse, while perf. does not seem to be much better
* fix selecting text containers and containing frames together
* render fill directly from animated trail
* do not re-render static when setting selected element ids in lasso
* remove unnecessary property
* tweak trail animation
* slice points to remove notch
* always start alt-lasso from initial point
* revert build & worker changes (unused)
* remove `lasso` from `hasStrokeColor`
* label change
* remove unused props
* remove unsafe optimization
* snaps
---------
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
Co-authored-by: Marcel Mraz <marcel@excalidraw.com>
* box select frame & children
* avoid selecting children twice to avoid double their moving
* do not show ele stats if frame and children selected together
* do not update frame membership if selected together
* do not group frame and its children
* comment and refactor code
* hide align altogether
* include frame children when selecting all
* simplify
---------
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
* feat: add action to wrap selected items in a frame
* fix type
* select frame on wrap & refactor
---------
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
* separate resizing logic for a single element
* replace resize logic in stats
* do not recompute width and height from points when they're already given
* correctly update linear elements' position when resized
* update snapshots
* lint
* simplify linear resizing logic
* fix initial scale for aspect ratio
* update tests for linear elements
* test typo
* separate pointer from resizing for multiple elements
* lint and simplify
* fix tests
* lint
* provide scene in param instead
* type
* refactor code
* fix floating in tests
* remove restrictions/checks on width & height
* update pointer to dimension to prevent regression
---------
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
* Flipping action now properly mirrors selections with elbow arrows
* Flipping action now re-centers the selection to the original center to avoid "walking" selections on repeated flipping