Commit Graph
100 Commits
Author SHA1 Message Date
David LuzarandGitHub d1f8eec174 feat: support giphy.com embed domain (#7192) 2023-10-26 00:00:50 +02:00
David LuzarandGitHub 0f81c30276 fix: frame add/remove/z-index ordering changes (#7194) 2023-10-25 23:16:02 +02:00
David LuzarandGitHub f794b0bb90 fix: freedraw non-solid bg hitbox not working (#7193) 2023-10-25 17:21:01 +02:00
David LuzarandGitHub 104f64f1dc revert: remove bound-arrows from frames (#7190) 2023-10-25 10:39:19 +02:00
David LuzarandGitHub afea0df141 feat: renderer tweaks (#6698) 2023-10-20 17:45:37 +02:00
3697618266 feat: support props.locked for setActiveTool (#7153)
Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-10-20 13:16:23 +02:00
David LuzarandGitHub e7cc2337ea feat: add onChange, onPointerDown, onPointerUp api subs (#7154) 2023-10-20 13:08:22 +02:00
David LuzarandGitHub 2cabb1f1f4 fix: attempt to fix flake in wysiwyg tests (#7173) 2023-10-19 12:32:31 +02:00
David LuzarandGitHub dde3dac931 feat: remove bound-arrows from frames (#7157) 2023-10-17 18:18:20 +02:00
David LuzarandGitHub 5b94cffc74 fix: ensure ClipboardItem created in the same tick to fix safari (#7066) 2023-10-16 11:38:57 +02:00
David LuzarandGitHub aaf73c8ff3 fix: double image dialog shown on insert (#7152) 2023-10-16 00:19:46 +02:00
David LuzarandGitHub b86184a849 fix: ensure relative z-index of elements added to frame is retained (#7134) 2023-10-12 15:00:23 +02:00
David LuzarandGitHub 26ff3993bb feat: better laser cursor for dark mode (#7132) 2023-10-11 11:17:27 +02:00
David LuzarandGitHub 7ad02c359a fix: memoize static canvas on props.renderConfig (#7131) 2023-10-10 23:31:23 +02:00
David LuzarandGitHub 2523fe82e3 feat: laser pointer improvements (#7128) 2023-10-10 13:55:55 +02:00
David LuzarandGitHub a249f332a2 fix: ensure we do not stop laser update prematurely (#7100) 2023-10-06 12:00:35 +02:00
David LuzarandGitHub e6f74350ac refactor: DRY out tool typing (#7086) 2023-10-04 23:39:00 +02:00
David LuzarandGitHub fa33aa08ab refactor: refactor event globals to differentiate from lastPointerUp (#7084) 2023-10-04 16:18:22 +02:00
David LuzarandGitHub 8b838049df fix: remove invisible elements safely (#7083) 2023-10-04 16:09:59 +02:00
David LuzarandGitHub 1f4f5e11ae refactor: DRY out and simplify setting active tool from toolbar (#7079) 2023-10-04 00:16:54 +02:00
David LuzarandGitHub 12420592ef feat: support menu / dropdown items to have selected state (#7078) 2023-10-03 23:35:47 +02:00
David LuzarandGitHub ceb637f5ea fix: elements being dropped/duplicated when added to frame (#7057) 2023-09-29 15:40:14 +02:00
David LuzarandGitHub 4765f5536e fix: frame name not editable on dbl-click (#7037) 2023-09-25 16:54:23 +02:00
David LuzarandGitHub 556175558a fix: polyfill Element.replaceChildren (#7034) 2023-09-24 19:07:35 +02:00
David LuzarandGitHub f8b3692262 fix: more eye-droper fixes (#7019) 2023-09-21 09:54:03 +05:30
3d617958cc fix: improperly disabling UI pointer-events on canvas interaction (#7005)
Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-09-19 16:01:40 +02:00
David LuzarandGitHub 4b11f43117 feat: zen-mode/go-to-plus button style tweaks (#7006) 2023-09-19 14:20:59 +02:00
David LuzarandGitHub c1952fd6cc fix: several eyeDropper fixes (#7002) 2023-09-17 13:24:50 +02:00
a34216f9fc docs: new Sidebar API (#6976)
Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-09-15 13:03:23 +00:00
David LuzarandGitHub c9efb12e5b fix: use device.isMobile for sidebar trigger label breakpoint (#6994) 2023-09-15 12:08:51 +00:00
David LuzarandGitHub 6abf194281 fix: export to plus url (#6980) 2023-09-11 21:13:16 +00:00
David LuzarandGitHub 5302490372 feat: update logo (#6979) 2023-09-11 17:47:41 +02:00
David LuzarandGitHub 27fd150a20 fix: canvas flickering due to resetting canvas on skipped frames (#6960) 2023-09-05 12:06:48 +02:00
David LuzarandGitHub de1ebad755 fix: regression in indexing when adding elements to frame (#6904) 2023-08-18 16:34:01 +02:00
David LuzarandGitHub 9cd5e15917 fix: stabilize selectedElementIds when box selecting (#6912) 2023-08-18 16:14:57 +02:00
David LuzarandGitHub 8101a351db fix: resetting deleted elements on duplication (#6906) 2023-08-18 00:28:26 +02:00
David LuzarandGitHub d140d1b8b3 fix: make canvas compos memoize appState on props they declare (#6897) 2023-08-17 13:39:15 +02:00
David LuzarandGitHub 9e0bfd178e refactor: factor out shape generation from renderElement.ts pt 2 (#6878) 2023-08-14 13:52:25 +02:00
David LuzarandGitHub 083bcf802c fix: remove embeddable from generic elements (#6853) 2023-08-04 15:16:55 +02:00
David LuzarandGitHub fc9a9a2571 fix: eye-dropper not working with app offset correctly on non-1 dPR (#6835) 2023-07-31 16:36:30 +02:00
David LuzarandGitHub 12e37e3dd2 fix: forgotten REACT_APP env variables (#6834) 2023-07-31 15:29:24 +02:00
David LuzarandGitHub 8af9ea3cf3 fix: adding to selection via shift box-select (#6815) 2023-07-27 12:50:08 +02:00
c1247742ea fix: prevent binding focus NaN value (#6803)
Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-07-26 23:28:11 +02:00
David LuzarandGitHub 9f76f8677b feat: cache most of element selection (#6747) 2023-07-17 01:09:44 +02:00
David LuzarandGitHub 2e46e27490 fix: use actual dock state to not close docked library on insert (#6766) 2023-07-14 20:21:02 +02:00
David LuzarandGitHub cf0413338e feat: support customizing what parts of frames are rendered (#6752) 2023-07-10 17:13:44 +02:00
David LuzarandGitHub 49e4289878 feat: make appState.selectedElementIds more stable (#6745) 2023-07-08 23:33:34 +02:00
David LuzarandGitHub 8dfa2a98bb fix: scrollbars renders but disable (#6706) 2023-06-22 14:35:01 +02:00
David LuzarandGitHub 1747e93957 feat: polyfill CanvasRenderingContext2D.roundRect (#6673) 2023-06-13 16:34:24 +02:00
David LuzarandGitHub 74d2fc6406 fix: collab username style fixes (#6668) 2023-06-12 17:43:31 +02:00
84bd9bd4ff fix: creating text while color picker open (#6651)
Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-06-06 22:04:06 +02:00
David LuzarandGitHub a065ec67a9 fix: eye dropper not accounting for offsets (#6640) 2023-06-02 17:35:25 +02:00
David LuzarandGitHub 079aa72475 feat: eye dropper (#6615) 2023-06-02 17:06:11 +02:00
David LuzarandGitHub 75bea48b54 fix: export dialog shortcut toggles console on firefox (#6620) 2023-05-24 22:52:21 +02:00
David LuzarandGitHub 13780f390a fix: add react v17 useTransition polyfill (#6618) 2023-05-24 15:24:54 +00:00
David LuzarandGitHub a8f0a14610 fix: withInternalFallback leaking state in multi-instance scenarios (#6602) 2023-05-19 15:47:01 +02:00
David LuzarandGitHub f6f9ed0396 refactor: simplify ImageExportDialog (#6578) 2023-05-13 22:58:35 +02:00
David LuzarandGitHub b1b325b9a7 feat: add "unlock all elements" to canvas contextMenu (#5894) 2023-05-13 22:52:03 +02:00
David LuzarandGitHub 5bf27a463c fix: language list containing duplicate en lang (#6583) 2023-05-13 22:50:14 +02:00
David LuzarandGitHub fff9d1522a feat: library sidebar design tweaks (#6582) 2023-05-13 13:18:14 +02:00
David LuzarandGitHub 560231d365 perf: use UIAppState where possible to reduce UI rerenders (#6560) 2023-05-08 10:14:02 +02:00
David LuzarandGitHub 026949204d fix: fix brave error i18n string and remove unused (#6561) 2023-05-06 10:36:42 +02:00
e9cae918a7 feat: sidebar tabs support (#6213)
* feat: Sidebar tabs support [wip]

* tab trigger styling tweaks

* add `:hover` & `:active` states

* replace `@dwelle/tunnel-rat` with `tunnel-rat`

* make stuff more explicit

- remove `Sidebar.Header` fallback (host apps need to render manually), and stop tunneling it (render in place)
- make `docked` state explicit
- stop tunneling `Sidebar.TabTriggers` (render in place)

* redesign sidebar / library as per latest spec

* support no label on `Sidebar.Trigger`

* add Sidebar `props.onStateChange`

* style fixes

* make `appState.isSidebarDocked` into a soft user preference

* px -> rem & refactor

* remove `props.renderSidebar`

* update tests

* remove

* refactor

* rename constants

* tab triggers styling fixes

* factor out library-related logic from generic sidebar trigger

* change `props.onClose` to `onToggle`

* rename `props.value` -> `props.tab`

* add displayNames

* allow HTMLAttributes on applicable compos

* fix example App

* more styling tweaks and fixes

* fix not setting `dockable`

* more style fixes

* fix and align sidebar header button styling

* make DefaultSidebar dockable on if host apps supplies `onDock`

* stop `Sidebar.Trigger` hiding label on mobile

this should be only the default sidebar trigger behavior, and for that we don't need to use `device` hook as we handle in CSS

* fix `dockable` prop of defaultSidebar

* remove extra `typescript` dep

* remove `defaultTab` prop

in favor of explicit `tab` value in `<Sidebar.Trigger/>` and `toggleSidebar()`, to reduce API surface area and solve inconsistency of `appState.openSidebar.tab` not reflecting actual UI value if `defaultTab` was supported (without additional syncing logic which feels like the wrong solution).

* remove `onToggle` in favor of `onStateChange`

reducing API surface area

* fix restore

* comment no longer applies

* reuse `Button` component in sidebar buttons

* fix tests

* split Sidebar sub-components into files

* remove `props.dockable` in favor of `props.onDock` only

* split tests

* fix sidebar showing dock button if no `props.docked` supplied & add more tests

* reorder and group sidebar tests

* clarify

* rename classes & dedupe css

* refactor tests

* update changelog

* update changelog

---------

Co-authored-by: barnabasmolnar <barnabas@excalidraw.com>
2023-05-04 17:33:31 +00:00
David LuzarandGitHub d35386755f feat: retain seed on shift-paste (#6509)
thanks for the review 👍
2023-04-24 10:26:21 +02:00
David LuzarandGitHub fee760d38c feat: allow avif, jfif, webp, bmp, ico image types (#6500
* feat: allow `avif`, `jfif`, `webp`, `bmp`, `ico` image types

* dedupe for SSOT

* more SSOT
2023-04-21 22:53:49 +02:00
David LuzarandGitHub eea30da05a fix: incorrect background fill button active state (#6491) 2023-04-19 16:23:24 +02:00
David LuzarandGitHub 4d0d844e39 feat: constrain export dialog preview size (#6475) 2023-04-18 15:27:51 +02:00
David LuzarandGitHub c3e8ddaf58 fix: improperly cache-busting on canvas scale instead of zoom (#6473) 2023-04-17 11:41:27 +02:00
David LuzarandGitHub f640ddc2aa fix: incorrectly duplicating items on paste/library insert (#6467
* fix: incorrectly duplicating items on paste/library insert

* fix: deduplicate element ids on restore

* tests
2023-04-16 17:22:16 +02:00
David LuzarandGitHub e9064a4a87 fix: library ids cross-contamination on multiple insert (#6466) 2023-04-16 17:09:51 +02:00
David LuzarandGitHub 034113772d fix: color picker keyboard handling not working (#6464) 2023-04-16 15:33:30 +02:00
David LuzarandGitHub e31230f78c refactor: inline SingleLibraryItem into PublishLibrary (#6462
refactor: inline `SingleLibraryItem` into `PublishLibrary` to reduce api surface area
2023-04-16 11:57:13 +02:00
David LuzarandGitHub 399c92d882 fix: utils leaking Scene state (#6461
* fix: utils leaking Scene state

* remove debug

* doc

* add tests for group duplicating

* tweaks
2023-04-16 11:56:25 +02:00
David LuzarandGitHub 372743f59f fix: autoredirect to plus in prod only (#6446) 2023-04-12 10:57:00 +02:00
David LuzarandGitHub e4d8ba226f feat: zigzag fill easter egg (#6439) 2023-04-10 15:38:50 +02:00
David LuzarandGitHub 9e52c30ce8 fix: use ideographic textBaseline to improve layout shift when editing text (#6384) 2023-03-22 18:33:37 +01:00
David LuzarandGitHub ac4c8b3ca7 fix: chrome crashing when embedding scene on chrome arm (#6383) 2023-03-21 18:48:49 +01:00
David LuzarandGitHub 20edddcd4e fix: ensure export preview is centered (#6337) 2023-03-14 13:03:55 +01:00
David LuzarandGitHub 1eee488dab feat: add thai lang support (#6314) 2023-03-11 22:15:52 +01:00
David LuzarandGitHub 8542c95a7a fix: move utility types out of .d.ts file to fix exported declaration files (#6315) 2023-03-04 19:21:57 +01:00
David LuzarandGitHub cef6094d4c fix: more jotai scopes missing (#6313) 2023-03-03 16:19:02 +01:00
David LuzarandGitHub 15655acb5a fix: use jotai scope for editor-specific atoms (#6308) 2023-03-03 11:58:36 +00:00
David LuzarandGitHub e1dc748aef fix: svg text baseline (#6285
* fix: svg text baseline

* fix for multiline
2023-02-26 12:51:44 +01:00
David LuzarandGitHub 04a8c22f39 fix: rerender i18n in host components on lang change (#6224) 2023-02-22 14:01:23 +00:00
David LuzarandGitHub b107c9af2a docs: fix next.js example (#6241) 2023-02-15 15:14:15 +01:00
4414069617 feat: disable canvas smoothing (antialiasing) for right-angled elements (#6186)Co-authored-by: Ignacio Cuadra <67276174+ignacio-cuadra@users.noreply.github.com>
* feat: disable canvas smoothing for text and other types

* disable smoothing for all right-angled elements

* Update src/renderer/renderElement.ts

Co-authored-by: Ignacio Cuadra <67276174+ignacio-cuadra@users.noreply.github.com>

* Update src/renderer/renderElement.ts

Co-authored-by: Ignacio Cuadra <67276174+ignacio-cuadra@users.noreply.github.com>

* fix lint

* always enable smoothing while zooming

---------

Co-authored-by: Ignacio Cuadra <67276174+ignacio-cuadra@users.noreply.github.com>
2023-02-03 17:07:14 +01:00
David LuzarandGitHub 7562d9b533 fix: make tunnels work in multi-instance scenarios (#6178)
* fix: make tunnels work in multi-instance scenarios

* factor tunnels out

* use tunnel-rat fork until upsteam updated
2023-02-01 10:46:17 +05:30
e6de1fe4a4 feat: rewrite public UI component rendering using tunnels (#6117)
* feat: rewrite public UI component rendering using tunnels

* factor out into components

* comments

* fix variable naming

* fix not hiding welcomeScreen

* factor out AppFooter and memoize components

* remove `UIOptions.welcomeScreen` and render only from host app

* factor out tunnels into own file

* update changelog. Keep `UIOptions.welcomeScreen` as deprecated

* update changelog

* lint

---------

Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-01-31 13:53:20 +01:00
David LuzarandGitHub 1db078a3dc feat: close MainMenu and Library dropdown on item select (#6152) 2023-01-23 16:54:35 +01:00
David LuzarandGitHub d4afd66268 feat: add hand/panning tool (#6141)
* feat: add hand/panning tool

* move hand tool right of tool lock separator

* tweak i18n

* rename `panning` -> `hand`

* toggle between last tool and hand on `H` shortcut

* hide properties sidebar when `hand` active

* revert to rendering HandButton manually due to mobile toolbar
2023-01-23 16:12:28 +01:00
David LuzarandGitHub 849e6a0c86 fix: button background and svg sizes (#6155)
* fix: button background color fallback

* fix svg width/height
2023-01-23 16:10:04 +01:00
David LuzarandGitHub d2b698093c feat: show copy-as-png export button on firefox and show steps how to enable it (#6125)
* feat: hide copy-as-png shortcut from help dialog if not supported

* fix: support firefox if clipboard.write supported

* show shrotcut in firefox and instead show error message how to enable the flag support

* widen to TypeError because minification

* show copy-as-png on firefox even if it will throw
2023-01-22 12:33:15 +01:00
David LuzarandGitHub d0b33d35db build: temporarily disable pre-commit (#6132) 2023-01-19 13:50:42 +01:00
David LuzarandGitHub 599a8f3c6f feat: support WelcomeScreen customization API (#6048) 2023-01-12 15:49:28 +01:00
David LuzarandGitHub 0982da38fe feat: render unknown supplied children to UI (#6096) 2023-01-12 15:20:16 +01:00
David LuzarandGitHub 618442299f fix: React.memo resolvers not accounting for all props (#6042) 2023-01-09 10:24:17 +01:00
David LuzarandGitHub 809d5ba17f fix: png-exporting does not preserve angles correctly for flipped images (#6085)
* fix: png-exporting does not preserve angles correctly for flipped images

* refactor related code

* simplify further and comment
2023-01-08 16:22:04 +01:00
David LuzarandGitHub 40d53d9231 fix: stale appState of MainMenu defaultItems rendered from Actions (#6074) 2023-01-06 14:32:55 +01:00
David LuzarandGitHub 08afb857c3 fix: show error message on collab save failure (#6063)
* fix: show error message on collab save failure

* comment
2023-01-02 23:53:51 +01:00
David LuzarandGitHub 9230c8f4d2 fix: remove ga from docker build (#6059)
* fix: remove ga from docker build

* lint

* fix debug
2023-01-02 21:21:57 +01:00