Commit Graph

94 Commits (4c5408263cd8bc8e110c609087a0228f5181ddd1)

Author SHA1 Message Date
Aakansha Doshi d25a7d365b
feat: upgrade mermaid-to-excalidraw to v1.1.0 (#8226)
* feat: upgrade mermaid-to-excalidraw to v1.1.0

* fixes

* upgrade and remove config as its redundant

* lint

* upgrade to v1.1.0
7 months ago
zsviczian 2e1f08c796
fix: memory leak - scene.destroy() and window.launchQueue (#8198) 7 months ago
Márk Tolmács 66a2f24296
fix: Add binding update to manual stat changes (#8183)
Manual stats changes now respect previous element bindings.
7 months ago
David Luzar abbeed3d5f
feat: support Stats bound text `fontSize` editing (#8187) 7 months ago
David Luzar 744b3e5d09
fix: stats state leaking & race conds (#8177) 7 months ago
Esteban Romo 6ba9bd60e8
feat: allow props.initialData to be a function (#8135) 7 months ago
Ryan Di d2f67e619f
feat: editable element stats (#6382)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
8 months ago
David Luzar 22b39277f5
feat: paste as mermaid if applicable (#8116) 8 months ago
David Luzar 69f4cc70cb
feat: stop autoselecting text on text edit on mobile (#8076) 8 months ago
Ryan Di 860308eb27
feat: create new text with width (#8038)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
8 months ago
David Luzar defd34923a
docs: fix `updateScene` `storeAction` default tsdoc & document types (#8048) 9 months ago
Ryan Di c540bd68aa
feat: wrap long text when pasting (#8026)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
9 months ago
David Luzar 1b6e3fe05b
feat: rerender canvas on focus (#8035) 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
Karthik Nishanth ff0b4394b1
feat: add missing `type="button"` (#8030) 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
David Luzar 273ba803d9
fix: font not rendered correctly on init (#8002) 9 months ago
David Luzar ed5ce8d3de
fix: command palette filter (#7981) 9 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
9 months ago
David Luzar d1f37cc64f
feat: tweak a few icons & add line editor button to side panel (#7990) 9 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>
9 months ago
Ryan Di 88812e0386
feat: resize elements from the sides (#7855)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
9 months ago
Marcel Mraz 6e5aeb112d
feat: record freedraw tool selection to history (#7949) 9 months ago
Márk Tolmács a04676d423
fix: CTRL/CMD & arrow point drag unbinds both sides (#6459) (#7877) 9 months ago
Milos Vetesnik c851aaaf7b
fix: z-index for laser pointer to be able to draw on embeds and such (#7918) 9 months ago
Marcel Mraz 015b46ab23
feat: expose `StoreAction` in relation to multiplayer history (#7898)
Improved Store API and improved handling of actions to eliminate potential concurrency issues
10 months ago
Marcel Mraz 530617be90
feat: multiplayer undo / redo (#7348) 10 months ago
Ryan Di bbcca06b94
fix: collision regressions from vector geometry rewrite (#7902) 10 months ago
David Luzar 890ed9f31f
feat: add "toggle grid" to command palette (#7887) 10 months ago
Ryan Di 4689a6b300
fix: hit test for closed sharp curves (#7881) 10 months ago
David Luzar 0ae9b383d6
fix: Gist embed allowing unsafe html (#7883) 10 months ago
David Luzar f597bd3e01
fix: command palette tweaks and fixes (#7876) 10 months ago
Rinku Chaudhari d917db438e
fix: external link not opening (#7859) 10 months ago
Aakansha Doshi a33a400f01
fix: add safe check for arrow points length in tranformToExcalidrawElements (#7863)
* fix: add safe check for arrow points length in tranformToExcalidrawElements

* add spec

* throw error only for dev mode

* fix lint
10 months ago
Arnost Pleskot cd50aa719f
feat: add system mode to the theme selector (#7853)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
10 months ago
Ryan Di 32df5502ae
feat: fractional indexing (#7359)
* Introducing fractional indices as part of `element.index`

* Ensuring invalid fractional indices are always synchronized with the array order

* Simplifying reconciliation based on the fractional indices

* Moving reconciliation inside the `@excalidraw/excalidraw` package

---------

Co-authored-by: Marcel Mraz <marcel@excalidraw.com>
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
10 months ago
Ryan Di bbdcd30a73
refactor: update collision from ga to vector geometry (#7636)
* new collision api

* isPointOnShape

* removed redundant code

* new collision methods in app

* curve shape takes starting point

* clean up geometry

* curve rotation

* freedraw

* inside curve

* improve ellipse inside check

* ellipse distance func

* curve inside

* include frame name bounds

* replace previous private methods for getting elements at x,y

* arrow bound text hit detection

* keep iframes on top

* remove dependence on old collision methods from app

* remove old collision functions

* move some hit functions outside of app

* code refactor

* type

* text collision from inside

* fix context menu test

* highest z-index collision

* fix 1px away binding test

* strictly less

* remove unused imports

* lint

* 'ignore' resize flipping test

* more lint fix

* skip 'flips while resizing' test

* more test

* fix merge errors

* fix selection in resize test

* added a bit more comment

---------

Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
10 months ago
David Luzar 3e334a67ed
feat: show firefox-compatible command palette shortcut alias (#7825) 10 months ago
David Luzar 1d71f84515
fix: stop using lookbehind for backwards compat (#7824) 10 months ago
Ryan Di 550a388b2b
feat: command palette (#7804)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
10 months ago
David Luzar 65bc500598
fix: `excalidrawAPI.toggleSidebar` not switching between tabs correctly (#7821) 10 months ago
David Luzar 15bfa626b4
feat: support to not render remote cursor & username (#7130) 11 months ago
David Luzar 068895db0e
feat: expose more collaborator status icons (#7777) 11 months ago
David Luzar a38e82f999
feat: close dropdown on escape (#7750) 11 months ago
David Luzar a07f6e9e3a
feat: show ai badge for discovery (#7749) 11 months ago
Ryan Di 160440b860
feat: improve collab error notification (#7741)
* identify cause

* toast after dialog for error messages in collab

* remove comment

* shake tooltip instead for repeating collab errors

* clear collab error

* empty commit

* simplify & fix reset race condition

---------

Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
11 months ago
Aakansha Doshi b09b5cb5f4
fix: split renderScene so that locales aren't imported unnecessarily (#7718)
* fix: split renderScene so that locales aren't imported unnecessarily

* lint

* split export code

* rename renderScene to helpers.ts

* add helpers

* fix typo

* fixes

* move renderElementToSvg to export

* lint

* rename export to staticSvgScene

* fix
11 months ago
Aakansha Doshi f639d44a95
fix: remove dependency of t in blob.ts (#7717)
* remove dependency of t in blob.ts

* fix
11 months ago
Aakansha Doshi f5ab3e4e12
fix: remove dependency of t from clipboard and image (#7712)
* fix: remove dependency of t from clipboard and image

* pass errorMessage to copyTextToSystemClipboard where needed

* wrap copyTextToSystemClipboard and rethrow translated error in caller

* review fix

* typo
12 months ago