418 Commits

Author SHA1 Message Date
dwelle
8110de9e70 snaps 2025-05-25 23:12:23 +02:00
dwelle
2d6469a695 fix: merge issue and forgotten debug 2025-05-25 23:12:20 +02:00
dwelle
23cf5fb475 snapshots 2025-05-25 22:57:38 +02:00
dwelle
d56bb4087f break polygon on restore/finalize if invalid & prevent creation 2025-05-25 22:57:32 +02:00
dwelle
ad1c28c27c Merge branch 'master' into zsviczian-loop-lock
# Conflicts:
#	packages/element/src/linearElementEditor.ts
#	packages/excalidraw/actions/actionFinalize.tsx
2025-05-25 22:46:41 +02:00
Márk Tolmács
4dc205537c
feat: Call actionFinalize at the end of arrow creation and drag (#9453)
* 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>
2025-05-25 22:28:24 +02:00
Márk Tolmács
91d36e9b81
fix: Linear to elbow conversion crash (#9556)
* Fix linear to elbow conversion

* Add invariant check

* Add dev invariant fix

* Add arrowhead
2025-05-22 12:34:15 +02:00
Kamil Wąż
27522110df
fix: fix keybindings for arrowheads (#9557) 2025-05-22 09:47:41 +02:00
Ryan Di
712f267519
feat: better unlock (#9546)
* 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>
2025-05-21 21:57:12 +10:00
Márk Tolmács
41a7613dff
fix: Elbow arrow conversion labels mixed up (#9547) 2025-05-19 20:35:48 +02:00
dwelle
d645e0ed13 Merge branch 'master' into zsviczian-loop-lock
# Conflicts:
#	packages/excalidraw/actions/actionProperties.tsx
#	packages/excalidraw/components/RadioSelection.tsx
2025-05-15 13:23:41 +02:00
David Luzar
95d89a751a
refactor: decouple radio button selection from .buttonList wrapper (#9528)
* refactor: decouple radio button selection from `.buttonList`

* fix
2025-05-15 13:22:26 +02:00
dwelle
d3ee66b7cc naming 2025-05-14 20:46:53 +02:00
Marcel Mraz
6b5fb30d69
fix: unify line height across default fonts (#9513) 2025-05-14 16:02:01 +02:00
Marcel Mraz
d92a849038
fix: issues when importing package outside of browser (#9525) 2025-05-14 16:01:43 +02:00
David Luzar
0a534f1bc6
fix: never show snap lines when lasso tool active (#9523) 2025-05-14 22:04:40 +10:00
Ryan Di
4ca5f53b1f
fix: alt + ctrl lasso selected elements not always kept (#9522)
* 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>
2025-05-14 22:04:03 +10:00
zsviczian
f7dcc893ea
feat: transparent link background, scale link icon when zooming to below 100% (#9520)
* 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>
2025-05-14 13:38:18 +02:00
zsviczian
4dfb8a3f8e
feat: allow forms.microsoft.com domain for embeddables (#9519)
* 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
2025-05-13 19:48:26 +02:00
dwelle
7ce0615411 update snapshots 2025-05-13 16:47:33 +02:00
David Luzar
298812e1d0
fix: improve ctrl+alt lasso selecting (#9514) 2025-05-12 18:09:37 +02:00
Ryan Di
35bb449a4b
fix: update cached segments when visible area changes (#9512) 2025-05-12 15:55:36 +02:00
dwelle
defdd7977c Merge branch 'master' into zsviczian-loop-lock
# Conflicts:
#	packages/excalidraw/components/ColorPicker/Picker.tsx
2025-05-11 15:08:54 +02:00
David Luzar
c4c064982f
feat: show empty active color if no common color (#9506) 2025-05-11 15:07:57 +02:00
dwelle
54b124c4f4 restore polygon state on type conversions 2025-05-10 20:09:07 +02:00
dwelle
7c3190d4bb Merge branch 'master' into zsviczian-loop-lock
# Conflicts:
#	packages/element/src/typeChecks.ts
#	packages/excalidraw/actions/actionProperties.tsx
2025-05-10 20:07:46 +02:00
David Luzar
51dbd4831b
refactor: make element type conversion more generic (#9504)
* feat: add `reduceToCommonValue()` & improve opacity slider

* feat: generalize and simplify type conversion cache

* refactor: change cache from atoms to Map

* feat: always attempt to reuse original fontSize when converting generic types
2025-05-10 20:06:16 +02:00
dwelle
e7deda0404 Merge branch 'master' into zsviczian-loop-lock
# Conflicts:
#	packages/element/src/linearElementEditor.ts
#	packages/excalidraw/actions/actionFinalize.tsx
#	packages/excalidraw/actions/actionLinearEditor.tsx
2025-05-10 10:14:59 +02:00
Marcel Mraz
7e41026812
refactor: export everything from @excalidraw/element, don't import from subpaths (#9466)
* Don't import from subpaths

* Fix tests, move related tests to element
2025-05-09 23:01:33 +02:00
Ryan Di
a30e1b25c6
feat: include frame names in canvas searches (#9484)
* 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>
2025-05-09 18:32:16 +02:00
dwelle
74dcaeebda loopLock -> polygon 2025-05-08 23:09:41 +02:00
dwelle
35fa4fc041 add to command palette 2025-05-08 23:01:19 +02:00
dwelle
b0174503d0 labels tweak 2025-05-08 23:01:06 +02:00
dwelle
0f18b9832f convert to polygon when creating line 2025-05-08 23:00:30 +02:00
dwelle
d1fa9005b9 fix polygon behavior when adding/removing/moving points within line editor 2025-05-08 22:59:44 +02:00
dwelle
ac1ad31921 Merge branch 'master' into zsviczian-loop-lock
# Conflicts:
#	packages/element/src/linearElementEditor.ts
#	packages/excalidraw/actions/actionLinearEditor.tsx
#	packages/excalidraw/tests/__snapshots__/regressionTests.test.tsx.snap
2025-05-08 17:09:49 +02:00
David Luzar
ff2ed5d26a
refactor: change movePoints pointUpdates type (#9499) 2025-05-08 16:47:13 +02:00
dwelle
703e37f84c TBD: only show polygon button for enabled polygons 2025-05-07 23:10:35 +02:00
dwelle
012076a3e9 TBD: remove bg color when disabling polygon 2025-05-07 23:04:45 +02:00
dwelle
b3eb93f130 auto-enable polygon when aligning start/end points 2025-05-07 23:04:45 +02:00
dwelle
904c209f96 do not disable polygon when creating new points via alt 2025-05-07 23:04:45 +02:00
dwelle
d0be24bd6a tweak point rendering inside line editor 2025-05-07 23:04:45 +02:00
dwelle
6d6b958f27 refactor 2025-05-07 23:04:43 +02:00
dwelle
f832bf9fde rewrite color picker to support no (mixed) colors & fix focus handling 2025-05-07 20:50:46 +02:00
Narek Malkhasyan
e058a08b33
fix: use rimraf instead of rm -rf (#9460) 2025-05-07 14:13:27 +02:00
Narek Malkhasyan
a306a909a0
fix: don't scroll page when TTDDialog is opened (#9455) 2025-05-07 13:33:18 +02:00
Marcel Mraz
3dc54a724a
feat: add onIncrement API (#9450) 2025-05-06 19:23:02 +02:00
David Luzar
a7c61319dd
fix: do not translate bound elements twice (#9486) 2025-05-06 13:09:00 +02:00
Narek Malkhasyan
cec5232a7a
fix: when resizing element, update bound elements after final size of element is determined (#9475) 2025-05-05 12:15:42 +02:00
dwelle
a7b4b08e86 do not split points on de-polygonizing & highlight overlapping points 2025-05-05 11:52:34 +02:00