* fix : double click on line enables line editor
* fix : prevent double-click to edit/create text
when inside line editor
* refactor: use lineCheck instead of arrowCheck in
doubleClick handler to align with updated logic
* fix: replace negative arrowCheck with lineCheck in
dbl click handler and fix double-click bind text
test in linearElementEditor tests
* clean up test
* simplify check
* add tests
* prevent text editing on dblclick when inside arrow editor
---------
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
* 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>
* First iter
Signed-off-by: Mark Tolmacs <mark@lazycat.hu>
* Restore binding
Signed-off-by: Mark Tolmacs <mark@lazycat.hu>
* More actionFinalize
Signed-off-by: Mark Tolmacs <mark@lazycat.hu>
* Additional fixes
Signed-off-by: Mark Tolmacs <mark@lazycat.hu>
* New elbow arrow is removed if too small
Signed-off-by: Mark Tolmacs <mark@lazycat.hu>
* Remove very small arrows
* Still allow loops
* Restore tests
Signed-off-by: Mark Tolmacs <mark@lazycat.hu>
* Update history snapshot
* More history snapshot updates
* keep invisible 2-point lines/freedraw elements
---------
Signed-off-by: Mark Tolmacs <mark@lazycat.hu>
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>
* fix: alt + ctrl lasso selected elements not always kept
* Update packages/excalidraw/components/App.tsx
---------
Co-authored-by: David Luzar <5153846+dwelle@users.noreply.github.com>
* Do not set link background color, dynamically scale down link icon size with zoom.
* removed unnecessary change
* use canvas bg color & reduce size and stroke width
---------
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
* Update embeddable.ts
* no need for same origin
* The form does not load without allow same origin
* automatically add embed=true to link if not present
* fix link check
* fix frame name clipping on zooming
* include assistant font
* default frame name
* extend search to frame names
* add a simple test
* collpase search match items
* id check out of loop
* fix frame name check
* include focusedId for small perf improvement
* optionally show and hide collapse icon
* update section title
* fix tests
* rename `serverSide` -> `private`
* revert: do not reset zoom on zoom change
* feat: do not close menu on repeated ctrl+f
* remove collapsible
* tweak results CSS
* remove redundant check
* set `appState.searchMatches` to null if empty
---------
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
* feat: switch between basic shapes
* add tab for testing
* style tweaks
* only show hint when a new node is created
* fix panel state
* refactor
* combine captures into one
* keep original font size
* switch multi
* switch different types altogether
* use tab only
* fix font size atom
* do not switch from active tool change
* prefer generic when mixed
* provide an optional direction when shape switching
* adjust panel bg & shadow
* redraw to correctly position text
* remove redundant code
* only tab to switch if focusing on app container
* limit which linear elements can be switched
* add shape switch to command palette
* remove hint
* cache initial panel position
* bend line to elbow if needed
* remove debug logic
* clean switch of arrows using app state
* safe conversion between line, sharp, curved, and elbow
* cache linear when panel shows up
* type safe element conversion
* rename type
* respect initial type when switching between linears
* fix elbow segment indexing
* use latest linear
* merge converted elbow points if too close
* focus on panel after click
* set roudness to null to fix drag points offset for elbows
* remove Mutable
* add arrowBoundToElement check
* make it dependent on one signle state
* unmount when not showing
* simpler types, tidy up code
* can change linear when it's linear + non-generic
* fix popup component lifecycle
* move constant to CLASSES
* DRY out type detection
* file & variable renaming
* refactor
* throw in not-prod instead
* simplify
* semi-fix bindings on `generic` type conversion
---------
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>