Commit Graph

176 Commits (c8f4a4cb41ea743b58765444ee064aaebca5d8c3)

Author SHA1 Message Date
David Luzar c8f4a4cb41
feat: add `props.onDuplicate` (#9117)
* feat: add `props.onDuplicate`

* docs

* clarify docs

* fix docs
2 weeks ago
David Luzar b0c8c5f7a7
feat: change empty arrowhead icon (#9100) 2 weeks ago
tothatt81 4f64372506
perf: Improved pointer events related performance when the sidebar is docked with a large library open (#9086)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
3 weeks ago
Márk Tolmács 302664e500
fix: Elbow arrow z-index binding (#9067) 3 weeks ago
David Luzar 86c67bd37f
fix: library item checkbox style regression (#9080) 3 weeks ago
David Luzar 511433988c
feat: tweak slider colors to be more muted (#9076) 3 weeks ago
Shalini 84bab403ff
Fix: issue #8818 Xiaolai font has been set as a fallback for Excalifont (#9055)
Co-authored-by: David Luzar <5153846+dwelle@users.noreply.github.com>
3 weeks ago
Are 61e0bb83d0
feat: improve library sidebar performance (#9060)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
3 weeks ago
Saikat Das bd1590fc74
feat: implement custom Range component for opacity control (#9009)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
4 weeks ago
Ryan Di 52eaf64591
feat: box select frame & children to allow resizing at the same time (#9031)
* 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>
4 weeks ago
David Luzar 7028daa44a
fix: remove flushSync to fix flickering (#9057) 4 weeks ago
David Luzar ec06fbc1fc
fix: do not refocus element link input on unrelated updates (#9037) 1 month ago
David Luzar fa05ae1230
refactor: remove `defaultProps` (#9035) 1 month ago
Márk Tolmács 91ebf8b0ea
feat: Elbow arrow segment fixing & positioning (#8952)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
Co-authored-by: David Luzar <5153846+dwelle@users.noreply.github.com>
1 month ago
Arnost Pleskot 8551823da9
feat: update jotai (#9015)
* feat: update jotai in excalidraw package

* feat: update jotai in excalidraw-app

* fix: exports from excalidraw/jotai

* fix: use isolated react hooks

* test: use jotai provider in <Trans /> test

* remove unused package

* refactor & make safer

---------

Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
1 month ago
Ryan Di 00b5b0a0ca
feat: add action to wrap selected items in a frame (#9005)
* 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>
1 month ago
YongJoon Kim c92f3bebf5
fix: change cursor by tool change immediately (#8212) 2 months ago
David Luzar 78ab12c7e6
fix: z-index clash in mobile UI (#8985) 2 months ago
Ryan Di d33e42e3a1
feat: add crowfoot to arrowheads (#8942)
* 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>
2 months ago
Ryan Di 107eae3916
refactor: separate resizing logic from pointer (#8155)
* 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>
2 months ago
Ryan Di 1e3399eac8
fix: make arrow binding area adapt to zoom levels (#8927)
* make binding area adapt to zoom

* revert stroke color

* normalize binding gap

* reduce normalized gap
2 months ago
David Luzar 873698a1a2
fix: robust `state.editingFrame` teardown (#8941) 2 months ago
Ryan Di 606ac6c743
fix: regression on dragging a selected frame by its name (#8924)
fix hit element check for a selected frame's name
2 months ago
Ryan Di d99e4a23ca
feat: use stats panel to crop (#8848)
* feat: use stats panel to crop

* fix: test flake

---------

Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
2 months ago
Ryan Di 551bae07a7
feat: snap when cropping as well (#8831)
* crop with snap

* make crop snap work with cmd as well

* turn off grid with cmd as well in crop
2 months ago
Marcel Mraz 8a1152ce36
fix: Flush pending DOM updates before .focus() (#8901) 3 months ago
Ryan Di b5652b8e36
fix: normalize svg using only absolute sizing (#8854) 3 months ago
David Luzar 31e2a0cb4a
fix: element link selector dialog z-index & positioning (#8853) 3 months ago
Ryan Di c0b80a03bd
feat: in canvas links between shapes (#8812)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
3 months ago
Márk Tolmács ab8b3537b3
fix: Optimize frameToHighlight state change and snapLines state change (#8763)
Fix case when frame interactions recursively call setState() without any change.
3 months ago
Márk Tolmács d21e0008dd
fix: Make some events expllicitly active to avoid console warnings (#8757)
Avoid chrome/edge reporting of by-default blocking event handlers
3 months ago
Márk Tolmács 2db5bbcb29
fix: Unify binding update options for `updateBoundElements()` (#8832)
Fix insonsistent naming for option newSize/oldSize for updateBoundElements()
3 months ago
David Luzar 798f5f4dfb
feat: update blog url (#8767) 4 months ago
Marcel Mraz 2734e646ca
chore: simplify line-break regexes, separate text wrapping (#8715) 4 months ago
Marcel Mraz 03028eaa8c
fix: load font faces in Safari manually (#8693) 4 months ago
David Luzar 79b181bcdc
fix: restore svg image DataURL dimensions (#8730) 4 months ago
Ryan Di e957c8e9ee
feat: image cropping (#8613)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
4 months ago
Marcel Mraz 61623bbeba
fix: Comic Shanns issues, new fonts structure (#8641) 4 months ago
David Luzar 15ca182333
fix: remove export-to-clip-as-svg shortcut for now (#8660) 4 months ago
Marcel Mraz b479f3bd65
feat: add first-class support for CJK (#8530) 4 months ago
Mathis Beauville 21815fb930
fix: text disappearing on edit (#8558) (#8624) 4 months ago
David Luzar 47ee8a0094
refactor: `point()` -> `pointFrom()` to fix compiler issue (#8578) 5 months ago
Márk Tolmács f3f0ab7c83
fix: Elbow arrow fixedpoint flipping now properly flips on inverted resize and flip action (#8324)
* 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
5 months ago
Márk Tolmács e0a22edfbd
fix: Re-route elbow arrows when pasted (#8448)
Re-route elbow arrows when pasted
5 months ago
David Luzar 01e83cc9a5
fix: default sidebar triggers & behavior (#8498) 5 months ago
David Luzar 813f9b702e
feat: merge search sidebar back to default sidebar (#8497) 5 months ago
David Luzar fd39712ba6
fix: improve canvas search scroll behavior further (#8491) 5 months ago
zsviczian b46ca0192b
fix: addFiles clears the whole image cache when each file is added - regression from #8471 (#8490)
Update App.tsx
6 months ago
David Luzar 72b7c937b1
feat: smarter zooming when scrolling to match & only match on search/switch (#8488) 6 months ago
David Luzar d107215564
fix: `select` instead of `focus` search input (#8483) 6 months ago