Commit Graph

78 Commits (0927431d0d9145589554a77f0d6d3fd7c3e7149e)

Author SHA1 Message Date
Marcel Mraz 70e0e8dc29
fix: text pushes UI due to padding (#8745) 4 months ago
Marcel Mraz 2734e646ca
chore: simplify line-break regexes, separate text wrapping (#8715) 4 months ago
David Luzar 79b181bcdc
fix: restore svg image DataURL dimensions (#8730) 4 months ago
David Luzar f9815b8b4f
fix: image cropping svg + compat mode (#8710)
Co-authored-by: Ryan Di <ryan.weihao.di@gmail.com>
4 months ago
David Luzar 4cedf3d966
feat: do not strip unknown element properties on restore (#8682) 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
David Luzar 47ee8a0094
refactor: `point()` -> `pointFrom()` to fix compiler issue (#8578) 5 months ago
Marcel Mraz a80cb5896a
feat: self-hosting existing google fonts (#8540) 5 months ago
David Luzar 8ca4cf3260
feat: flip arrowheads if only arrow(s) selected (#8525)
Co-authored-by: Mark Tolmacs <mark@lazycat.hu>
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
zsviczian caf2db934c
fix: aspect ratio of distorted images are not preserved in SVG exports (#8061) 5 months ago
David Luzar 813f9b702e
feat: merge search sidebar back to default sidebar (#8497) 6 months ago
David Luzar d107215564
fix: `select` instead of `focus` search input (#8483) 6 months ago
Ryan Di 6959a363f0
feat: canvas search (#8438)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
6 months ago
Aakansha Doshi 6ff56c36e3
fix: add partial mocking (#8473)
* fix: add partial mocking

* lint

* Update packages/utils/export.test.ts
6 months ago
Aakansha Doshi 51ea184938
build: upgrade vite to 5.4.x, vitest to 2.x and related vite packages (#8459)
* build: upgrade vite to 5.x, vitest to 2.x and related vite packages

* upgrade vitest-ui and coverage

* pass empty set to fix type error and update snap

* set ignoreEmptyLines to false

* update threshold

* update coverage threshold

* downgrade vite-plugin-pwa as its better to push separately with testing

* add package resolutions for strip-ansi, string-width and wrap-ansi

* disable pwa

* only add resolution for strip-ansi
6 months ago
Márk Tolmács f4dd23fc31
chore: Unify math types, utils and functions (#8389)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
6 months ago
Ryan Di 5e1ff7cafe
perf: improve new element drawing (#8340)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
6 months ago
David Luzar 3cfcc7b489
feat: split `gridSize` from enabled state & support custom `gridStep` (#8364) 6 months ago
Márk Tolmács 8420e1aa13
fix: Reimplement rectangle intersection (#8367) 7 months ago
David Luzar 97981804d7
feat: Stats popup style tweaks (#8361) 7 months ago
David Luzar 1ea5b26f25
fix: missing `act()` in flowchart tests (#8354) 7 months ago
Clarence Chan d5f4ee7b3f
fix: z-index change by one causes app to freeze (#8314) 7 months ago
Márk Tolmács dd1370381d
chore: Refactor and remove scene from elbow arrow generation (#8342)
* Refactor and remove scene from elbow arrow generation
7 months ago
David Luzar 232242d2e9
test: skip test.yml in PRs (#8330) 7 months ago
David Luzar f19ce30dfe
chore: bump `@testing-library/react` `12.1.5` -> `16.0.0` (#8322) 7 months ago
Ryan Di 3cf14c73a3
refactor: rename `draggingElement` -> `newElement` (#8294)
* add newElement to appState

* freedraw should not be an editing element

* do not set editing element for freedraw and generic

* remove ununsed `appState.draggingElement`

* remove setting dragged for new linear element

* decouple selection element from new element

* fix hint for text bindables

* update snapshot

* fixes

* fix frame regressions

* add comments to types

* document `editingElement`

---------

Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
7 months ago
Marcel Mraz 84d89b9a8a
fix: throttle fractional indices validation (#8306) 7 months ago
Márk Tolmács 15e019706d
feat: Orthogonal (elbow) arrows for diagramming (#8299)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
7 months ago
Marcel Mraz d0a380758e
feat: ability to debug the state of fractional indices (#8235) 7 months ago
Marcel Mraz 62228e0bbb
feat: introduce font picker (#8012)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
7 months ago
Márk Tolmács 04668d8263
fix: Binding after duplicating is now applied for both the old and duplicate shapes (#8185)
Using ALT/OPT + drag to clone does not transfer the bindings (or leaves the duplicates in place of the old one , which are also not bound).

Signed-off-by: Mark Tolmacs <mark@lazycat.hu>
8 months ago
Márk Tolmács ba8c09d529
fix: Incorrect point offsetting in LinearElementEditor.movePoints() (#8145)
The LinearElementEditor.movePoints() function incorrectly calculates the offset for local linear element points when multiple targetPoints are provided, one of those target points is index === 0 AND the other points are moved in the negative direction, and ending up with negative local coordinates.

Signed-off-by: Mark Tolmacs <mark@lazycat.hu>
8 months ago
Ryan Di d2f67e619f
feat: editable element stats (#6382)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
9 months ago
David Luzar 22b39277f5
feat: paste as mermaid if applicable (#8116) 9 months ago
Ryan Di 860308eb27
feat: create new text with width (#8038)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
9 months ago
Marcel Mraz 661d6a4a75
fix: flaky snapshot tests with floating point precision issues (#8049) 9 months ago
Marcel Mraz eddbe55f50
fix: always re-generate index of defined moved elements (#8040) 9 months ago
VatsalSoni_13 afe52c89a7
fix: undo/redo when exiting view mode (#8024)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
9 months ago
zsviczian be4e127f6c
fix: Two finger panning is slow (#7849)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
9 months ago
Hey 7d8b7fc14d
fix: compatible safari layers button svg (#8020)
Co-authored-by: ysen <ysen.ge@hairobotics.com>
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
9 months ago
Ryan Di 971b4d4ae6
feat: text wrapping (#7999)
* resize single elements from the side

* fix lint

* do not resize texts from the sides (for we want to wrap/unwrap)

* omit side handles for frames too

* upgrade types

* enable resizing from the sides for multiple elements as well

* fix lint

* maintain aspect ratio when elements are not of the same angle

* lint

* always resize proportionally for multiple elements

* increase side resizing padding

* code cleanup

* adaptive handles

* do not resize for linear elements with only two points

* prioritize point dragging over edge resizing

* lint

* allow free resizing for multiple elements at degree 0

* always resize from the sides

* reduce hit threshold

* make small multiple elements movable

* lint

* show side handles on touch screen and mobile devices

* differentiate touchscreens

* keep proportional with text in multi-element resizing

* update snapshot

* update multi elements resizing logic

* lint

* reduce side resizing padding

* bound texts do not scale in normal cases

* lint

* test sides for texts

* wrap text

* do not update text size when changing its alignment

* keep text wrapped/unwrapped when editing

* change wrapped size to auto size from context menu

* fix test

* lint

* increase min width for wrapped texts

* wrap wrapped text in container

* unwrap when binding text to container

* rename `wrapped` to `autoResize`

* fix lint

* revert: use `center` align when wrapping text in container

* update snaps

* fix lint

* simplify logic on autoResize

* lint and test

* snapshots

* remove unnecessary code

* snapshots

* fix: defaults not set correctly

* tests for wrapping texts when resized

* tests for text wrapping when edited

* fix autoResize refactor

* include autoResize flag check

* refactor

* feat: rename action label & change contextmenu position

* fix: update version on `autoResize` action

* fix infinite loop when editing text in a container

* simplify

* always maintain `width` if `!autoResize`

* maintain `x` if `!autoResize`

* maintain `y` pos after fontSize change if `!autoResize`

* refactor

* when editing, do not wrap text in textWysiwyg

* simplify text editor

* make test more readable

* comment

* rename action to match file name

* revert function signature change

* only update  in app

---------

Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
9 months ago
Marcel Mraz dc66261c19
fix: re-introduce wysiwyg width offset (#8014) 10 months ago
Aakansha Doshi 1ed53b153c
build: enable consistent type imports eslint rule (#7992)
* 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
10 months ago
David Luzar d1f37cc64f
feat: tweak a few icons & add line editor button to side panel (#7990) 10 months ago
Márk Tolmács d9bbf1eda6
feat: Allow binding only via linear element ends (#7946)
Arrows now only bind to new shapes if their start or end point is dragged close to them. Arrows previously bound to shapes remain bound on move and drag if at the end of the drag/move the points remain in the original shapes' binding area.

---------

Signed-off-by: Mark Tolmacs <mark@lazycat.hu>
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
Co-authored-by: Sammy Lee <sammy.joe.lee@gmail.com>
10 months ago
Ryan Di 88812e0386
feat: resize elements from the sides (#7855)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
10 months ago