* Loop Lock/Unlock
* fixed condition. 4 line points are required for the action to be available
* extracted updateLoopLock to improve readability. Removed unnecessary SVG attributes
* lint + added loopLock to restore.ts
* added loopLock to newElement, updated test snapshots
* lint
* dislocate enpoint when breaking the loop.
* change icon & turn into a state style button
* POC: auto-transform to polygon on bg set
* keep polygon icon constant
* do not split points on de-polygonizing & highlight overlapping points
* rewrite color picker to support no (mixed) colors & fix focus handling
* refactor
* tweak point rendering inside line editor
* do not disable polygon when creating new points via alt
* auto-enable polygon when aligning start/end points
* TBD: remove bg color when disabling polygon
* TBD: only show polygon button for enabled polygons
* fix polygon behavior when adding/removing/moving points within line editor
* convert to polygon when creating line
* labels tweak
* add to command palette
* loopLock -> polygon
* restore `polygon` state on type conversions
* update snapshots
* naming
* break polygon on restore/finalize if invalid & prevent creation
* snapshots
* fix: merge issue and forgotten debug
* snaps
* do not merge points for 3-point lines
---------
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
* change lock label
* feat: add unlock logic for single units on pointer up
* feat: add unlock popup
* fix: linting errors
* style: padding tweaks
* style: remove redundant line
* feat: lock multiple units together
* style: tweak color & position
* feat: add highlight for locked elements
* feat: select groups correctly after unlocking
* test: update snapshots
* fix: lasso from selecting locked elements
* fix: should prevent selecting unlocked elements and setting locked id at the same time
* fix: reset hit locked id immediately when appropriate
* feat: capture locked units in delta
* test: update locking test
* feat: show lock highlight when locking (including undo/redo)
* feat: make locked highlighting consistent
* feat: show correct cursor type when moving over locked elements
* fix history
* remove `lockedUnits.singleUnits`
* tweak button
* do not render UnlockPopup if not locked element selected
* tweak actions
* refactor: simplify type
* refactor: rename type
* refactor: simplify hit element setting & checking
* fix: prefer locked over link
* rename to `activeLockedId`
* refactor: getElementAtPosition takes an optional hitelments array
* fix: avoid setting active locked id after resizing
---------
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
* 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>
* crowfoot many
* crowfoot one
* one or many
* add icons for crowfoot
* add crowfoot icons
* adjust arrowhead selection popover
* make options collapsible
* swap triangle and bar
* switch to radix popover
* put triangle outline in the first row
* align shadow with new design spec
* remove unused flag
* swap order
* tweak labels
* handle shift+tab
---------
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
Co-authored-by: Jakub Królak <108676707+j-krolak@users.noreply.github.com>
* build: enable consistent type imports eslint rule
* change to warn
* fix the warning in example and excalidraw-app
* fix packages
* enable type annotations and throw error for the rule