1
0
mirror of https://github.com/excalidraw/excalidraw.git synced 2025-02-18 13:29:36 +01:00
Commit Graph

1633 Commits

Author SHA1 Message Date
Jeremy Scatigna
e7bf034fef duplicate element by alt dragging (#255) 2020-01-08 17:03:13 +01:00
Gasim Gasimzada
4b7eb2f04a
Add IDs to elements (#236)
* Add IDs to elements

- Move round rect function within the renderer

* Generate IDs using nanoid

* If element ID does not exist, add the ID during restoration
2020-01-07 23:49:39 +04:00
Timur Khazamov
2f9aa0e3ca Async loading of TwitterPicker (#246) 2020-01-07 10:37:22 -08:00
Timur Khazamov
2d66616e3f Fixed: Copy + Paste moves text inside rectangle #229 (#245) 2020-01-07 19:02:15 +01:00
Faustino Kialungila
846f427732 adding comments about diamond dimensions (#241) 2020-01-07 18:59:10 +01:00
Timur Khazamov
10955f8bb0 Wysiwyg text 2.0 (#238)
* Fixed cleaning handlers after cleanup

* Double click to edit text

* Preserve text styles on change
2020-01-07 09:21:05 -08:00
Timur Khazamov
ae982e9298 Revert "Save scene in URL (#220)" (#234)
This reverts commit db973c61e85347120c46adba6cb33e50d49988ba.
2020-01-07 07:18:20 -08:00
Gasim Gasimzada
829a65b8cb
Refactor Element Functions (#233)
* Remove `generatedraw` from element object

- Create a function that renders a single element
- Refactor rendering selected elements

* Replace getElementAbsoluteXY with getElementAbsoluteCoords
2020-01-07 19:04:52 +04:00
Gasim Gasimzada
85365e5bcb
Extract Sidebar panels into separate components (#230)
* Extract Sidebar panels into separate components

* Add Jest TS types
2020-01-07 15:06:22 +04:00
Faustino Kialungila
2fb5c4cd13 Add styles copy and pasting in the context menu (#227) 2020-01-06 23:04:15 -08:00
Christopher Chedeau
f2665408fc
Revert "Wysiwyg text (#200)" (#225)
This reverts commit abbc04df0e5a3b9265ada12a73bc9b8a810a329c.
2020-01-06 19:50:37 -08:00
Timur Khazamov
db973c61e8 Save scene in URL (#220)
Co-authored-by: Christopher Chedeau <vjeuxx@gmail.com>
2020-01-06 19:08:23 -08:00
Timur Khazamov
abbc04df0e Wysiwyg text (#200) 2020-01-06 19:03:05 -08:00
Anirban Sengupta
b2eb2807cc Use Ctrl instead of Cmd for keyboard shortcuts on Windows (#216)
Co-authored-by: Christopher Chedeau <vjeuxx@gmail.com>
2020-01-06 18:57:38 -08:00
Timur Khazamov
257f697a98 Context menu with some commands (#217) 2020-01-06 18:50:59 -08:00
Faustino Kialungila
9305a33dba
Copy and paste styles (#219)
* copy and paste styles

* save copied styles in memory
2020-01-06 23:22:48 +01:00
David Luzar
1443cf1cd5
implement shift+resize for all sides (#210) 2020-01-06 21:19:21 +01:00
Abhishek Kulshrestha
b12ea7de3e paste inside the viewport (#214) 2020-01-06 20:36:48 +01:00
Faustino Kialungila
5ade8987e4
Fixes pasting colors in color picker (#215)
* improve lozenge dimensions

* fix pasting colors in color picker input
2020-01-06 20:28:14 +01:00
Timur Khazamov
7bf0184499
Fixed ellipse hit test if sizes are negative (#205) 2020-01-06 23:06:54 +05:00
Gasim Gasimzada
d0365933a9
Extract history (#213)
* Extract History into its own module

* Encapsulate undo and redo actions within history

* Encapsulate clearing redo stack within History

* Add private access modifiers to scene history class member variables

* Remove duplicate files
2020-01-06 21:58:48 +04:00
Gasim Gasimzada
054669cfef
Extract components and shapes into their respective modules (#212) 2020-01-06 21:29:44 +04:00
Gasim Gasimzada
86a1c29eec
Extract scene functions to their respective modules (#208)
- Also, extract utilities into utils module -- capitalizeString, getDateTime, isInputLike
2020-01-06 20:24:54 +04:00
Gasim Gasimzada
01805f734d
Extract element functions into modules (#207) 2020-01-06 19:34:22 +04:00
Gasim Gasimzada
e3eef04e00 Move math and random files into their respective modules (#198)
* Move math and random files into their respective modules

- Move distanceBetweenPointAndSegment to math module
- Move LCG, randomSeed, and withCustomMathRandom to random module

* Add everything else back
2020-01-06 10:33:22 +01:00
Faustino Kialungila
b3667000e2
improve lozenge dimensions (#197) 2020-01-06 09:08:09 +01:00
Guillermo Peralta Scura
ea534dd535 Implement redo (#191) 2020-01-05 19:58:54 -08:00
Christopher Chedeau
3bbcb9cbdc
Improve Color Picker *2 (#195) 2020-01-05 19:57:50 -08:00
Christopher Chedeau
23cd62d148
Improve selection view (#192) 2020-01-05 19:11:35 -08:00
Paulo Menezes
d5c6dd49a2 Styles fix (#190)
* Styles improvements

* Default values when restore elements
2020-01-05 18:17:24 -08:00
Paulo Menezes
feefb14bf5 Double click to add text (#184)
* Double click to add text

* Remove duplicate code

* Add text improvements

* Cast element to text element
2020-01-05 17:38:19 -08:00
Paulo Menezes
f360c3cb33 Change styles (#179)
* Fill style

* Roughness, opacity and more styles

* Remove duplicated options

* Support diamonds

* Remove unused import

* Fix typo and remove react import
2020-01-05 15:37:24 -08:00
Faustino Kialungila
4be88c9c58 Adding diamond shape (#159)
* Adding diamond shape

* hittest diamond shape

* fix x,y arguments

* renaming
2020-01-05 15:10:35 -08:00
Christopher Chedeau
fd6b5024c7
Reorganize menu (#178) 2020-01-05 14:45:16 -08:00
IA
5f806474e3 Allow user to set file name (#145)
* Allow user to set file name

* Add EditableText component

Added editable text component and use component for project name edit.

* rebased branch

* Updated EditableText component

* Set default project name

* Move project name field away from the top section.
2020-01-05 14:26:00 -08:00
Timur Khazamov
7201198f23
Better scrollbars (#177)
* Better scrollbars

* Get rid of all unused options
2020-01-06 02:26:01 +05:00
Jared Palmer
b5c67260d7 Improved color picker (#174)
* Add react-color

* Prettier

* Better styles

* Use enum for color pickers instead of strings

* Run prettier on .scss file
2020-01-05 13:05:55 -08:00
Timur Khazamov
e7e676e1eb
Merge pull request #171 from nanot1m/arrows-start-end-points
Adjust arrow start/end points
2020-01-06 00:30:57 +05:00
Giovanni Giordano
be41bd0f1c
Merge pull request #168 from nanot1m/fix-square-selection
Square selection should work in all directions
2020-01-05 20:27:52 +01:00
hazam
d4693e0b37 Adjust arrow start/end points 2020-01-06 00:18:49 +05:00
Jared Palmer
15251e6c61 Add titles to shape buttons with key shortcuts 2020-01-05 10:46:00 -08:00
hazam
8c1af23d59 Square selection should work in all directions 2020-01-05 23:26:32 +05:00
Timur Khazamov
910b30a08a Dragging scrollbars (#161) 2020-01-05 10:06:21 -08:00
Giovanni Giordano
d61ecca184
Merge pull request #156 from gipsy-king/textmeasure-actualboundingbox
fallback if TextMeasure.actualBoundingBox* unavailable
2020-01-05 15:27:14 +01:00
Benjamin Große
2feedbdbb7 fallback if TextMeasure.actualBoundingBox* unavailable 2020-01-05 15:23:57 +01:00
Giovanni Giordano
02daf6ffbd Recover index.tsx 2020-01-05 15:10:42 +01:00
Giovanni Giordano
c4f4f18b81 Remove deploy files 2020-01-05 15:03:02 +01:00
Lucas Azzola
7c321b49ab Add save/load functionality from file (#146)
Fixes #143
2020-01-04 20:20:09 -08:00
Lucas Azzola
30ccaf0152 Set the cursor to 'crosshair' when expected to draw (#142)
* Set the cursor to 'crosshair' when expected to draw

And reset it back to default on mouse up.

Fixes #102

* Also reset cursor on text selection

* Use 'text' cursor for text
2020-01-04 19:33:21 -08:00
Christopher Chedeau
85fe9f85fb
Fix missing mouseup (#144) 2020-01-04 18:36:49 -08:00
Christopher Chedeau
9e5c5daf64
Cmd-Z (#141) 2020-01-04 16:59:59 -08:00
Christopher Chedeau
4ca8f65887
Use device pixel ratio (#139)
* Use device pixel ratio

* Update index.tsx
2020-01-04 16:08:35 -08:00
Brady Madden
4ad49ff970
Merge pull request #137 from bradymadden97/master
[bugfix] fix drag out of window for move/resize shape
2020-01-04 17:31:18 -05:00
Brady Madden
ec28c83626 fix other drag issues 2020-01-04 17:18:16 -05:00
Paulo Menezes
dfb7faec30 Resize with negative width or height (#136)
* Disable resize for text, arrow and multiple selection

* Resize with negative width and height

* Fix resizing when leaves windows
2020-01-04 13:39:55 -08:00
Christopher Chedeau
3172109050
Inline font-awesome icons (#134) 2020-01-04 12:47:12 -08:00
David Luzar
490438960d fix export to support scrolling (#133) 2020-01-04 12:46:50 -08:00
Timur Khazamov
aa01be2dbe Fixed Unable to preventDefault errors in Chrome (#130)
* Fixed Unable to preventDefault errors in Chrome

* Cleanup wheel event listener
2020-01-04 12:11:23 -08:00
Timur Khazamov
34b8883739 Added outlines to focused buttons (#129) 2020-01-04 12:08:27 -08:00
Brady Madden
1919f30878 fix offset top and length causing drag issues (#122) 2020-01-04 11:05:45 -08:00
Paulo Menezes
dee8a73d3d Resize (#103)
* Resize

* Detect collision with squares

* Disable resize for text, arrow and multiple selection

* Hide middle handlers when small
2020-01-04 10:56:11 -08:00
Christopher Chedeau
bd86f819df
Prevent re-assignment of elements (#121) 2020-01-04 10:48:23 -08:00
Christopher Chedeau
25aabdc4d1
Fix hit testing (#119) 2020-01-04 10:19:18 -08:00
dwelle
a1bcfb401c move css to scss 2020-01-04 19:14:12 +01:00
dwelle
250fbe2e1e make container fullscreen 2020-01-04 18:38:31 +01:00
dwelle
c5d65ccb39 ensure we defocus input on canvas click
- also reuse the same detection logic for cancelling keyboard events
2020-01-04 17:46:45 +01:00
Faustino Kialungila
922ad6edcb Improve Buttons UX 2020-01-04 15:35:46 +01:00
David Luzar
e0deb68875 ensure mouse drag doesn't select texts (#32) (#111) 2020-01-04 06:22:08 -08:00
David Luzar
c623312380 add support for clearing canvas (#108) 2020-01-04 06:20:53 -08:00
hazam
4a03fa8542 Fix: right clicking while on the canvas messes up selection 2020-01-04 15:58:31 +05:00
Christopher Chedeau
4886065443
Wire up forward (#101)
* Wire up forward

* Match words with Keynote/Powerpoint
2020-01-03 21:46:49 -08:00
Christopher Chedeau
6b8d2970ac
Add support for forward (#100) 2020-01-03 21:38:48 -08:00
Paulo Menezes
e9484080e7 UI move buttons (#99) 2020-01-03 21:38:32 -08:00
Christopher Chedeau
0d5272720f
Send to back (#98) 2020-01-03 21:03:25 -08:00
Paulo Menezes
b1a90c0020 Side panel (#95)
* Side panel

* Update arrow icon
2020-01-03 19:58:20 -08:00
Christopher Chedeau
66938ae5c6
Update on resize (#94)
Fixes #88
2020-01-03 18:35:14 -08:00
Christopher Chedeau
8605af2b54
Fix key warning (#93) 2020-01-03 18:32:23 -08:00
Christopher Chedeau
c077403eec Generate new seed on paste 2020-01-03 18:29:46 -08:00
Christopher Chedeau
929efa5e2c
Distance between point and ellipsis (#92) 2020-01-03 18:16:16 -08:00
Sergey Rubanov
51bea5eff3 - Use Math.hypot (#87)
- Fix context parameter name in isTextElement function
- Remove unused code
- Use block scope everywhere
2020-01-03 15:20:26 -08:00
Alex Bratsos
58d81280c9 Add shortcuts (#85)
* Add yarn.lock to .gitignore

* Extract available shapes to one place

* Add event listeners for shapes shortcuts

* fixup! Add event listeners for shapes shortcuts

* Underline first letter of shapes

to indicate interactivity

* fixup! Extract available shapes to one place

* fixup! Add event listeners for shapes shortcuts
2020-01-03 15:08:34 -08:00
hazam
9d65b1cbc1 Code cleanup 2020-01-04 03:03:08 +05:00
hazam
1b93888da5 Restore fill style 2020-01-04 02:52:47 +05:00
hazam
2a0eacbeca Fixed selection and added scrollbars 2020-01-04 02:45:01 +05:00
hazam
51e19b977e Scroll with mouse wheel 2020-01-04 02:45:00 +05:00
Giovanni Giordano
02bf6f0f14 Add preload to font 2020-01-03 22:21:58 +01:00
Christopher Chedeau
b18a0efe2c
Seed (#73) 2020-01-03 12:33:52 -08:00
Faustino Kialungila
4fa55222fd Rename excalibur to excalidraw 2020-01-03 20:21:55 +01:00
Paulo Menezes
98b158a83d Save to local storage (#53)
* Save to local storage

* Restore on page load

* Warning when leave without save
2020-01-03 09:12:37 -08:00
Faustino Kialungila
f2386eb131 Add Text Colors (#67)
* Add ability to choose a color when creating text elements

* use strokeColor instead of adding a new field
2020-01-03 08:29:12 -08:00
Kevin Viglucci
527209e740 Add support for 'delete' key (#56)
* add package-lock.json to gitignore as project appears to use yarn

* add support for deleting elements with "delete" key + assign magic numbers and keycode values to named properties
2020-01-03 07:47:34 -08:00
Giovanni Giordano
c2c13f0f27
Merge pull request #64 from excalidraw/fix-body-margin
Fixes body margin
2020-01-03 16:04:10 +01:00
Faustino Kialungila
c224bc4c8f Fix global items colors 2020-01-03 15:25:52 +01:00
Giovanni Giordano
26c7f362b6 Fixes body margin 2020-01-03 15:23:03 +01:00
David Luzar
db386b8400 fix regression of always exporting bg (#62) 2020-01-03 05:18:26 -08:00
Christopher Chedeau
a5b0e192b4
Remove drawScene (#58) 2020-01-02 19:47:32 -08:00
Christopher Chedeau
4c94976527
Random fixes (#57) 2020-01-02 18:20:08 -08:00
Faustino Kialungila
10e317e359 Colors 2020-01-02 17:54:08 -08:00
Christopher Chedeau
3b919f3235
Cmd-A to select everything (#51) 2020-01-02 14:42:53 -08:00
Christopher Chedeau
278fc11d22
Better selection click detection (#50) 2020-01-02 14:33:45 -08:00
Christopher Chedeau
8a43ed691d
Handle escape keybinding (#49) 2020-01-02 14:10:32 -08:00
Christopher Chedeau
0d75b78374
Path-dependent hit test (#48)
* Hit test

* Hit test

* Hit test
2020-01-02 13:47:50 -08:00
David Luzar
4c1bf07863 ensure click-to-select is exclusive (fixes #43) (#45) 2020-01-02 13:03:14 -08:00
Christopher Chedeau
b6c30c0550
Copy paste (#44)
* Copy Paste

* Copy paste
2020-01-02 12:49:06 -08:00
dwelle
579c32b5b2 remove optional chaning
until CodeSandbox adds support for it in CRA apps
2020-01-02 20:43:00 +01:00
Timur Khazamov
1383758aa7 TS, Prettier, Eslint (#39)
* TS, Prettier, Eslint

* Used rough ts definitions
2020-01-02 11:03:48 -08:00
dwelle
4eda1cfb5d prevent exporting empty canvas 2020-01-02 18:19:00 +01:00
dwelle
f091e9813e fix exporting bg for non-cropped exports
- also refactor and add comments to `exportAsPNG`
2020-01-02 18:11:58 +01:00
Giovanni Giordano
4a4f36592f Fixes selecting an element 2020-01-02 17:54:08 +01:00
Giovanni Giordano
61bdedaecf Clear selection if no element is clicked 2020-01-02 16:14:58 +01:00
Giovanni Giordano
874934e585
Merge branch 'master' into select-on-click 2020-01-02 15:58:24 +01:00
Giovanni Giordano
715efc054e Remove extra check for dragging 2020-01-02 15:56:34 +01:00
Giovanni Giordano
a9bd112f47 Select element on click 2020-01-02 15:54:36 +01:00
David Luzar
68eeaa3c7d add PNG export (#31) 2020-01-02 06:43:59 -08:00
Timur Khazamov
bb151d83bc Drag to move selection (#28) 2020-01-02 05:58:25 -08:00
Christopher Chedeau
44ff545219 Fix text height 2020-01-01 22:15:27 -08:00
Christopher Chedeau
afe6331c61 Reset selection when adding text 2020-01-01 22:09:12 -08:00
Christopher Chedeau
ee7dc953bf Fix clearRect for [0, 0.5] 2020-01-01 21:51:13 -08:00
Christopher Chedeau
457800caa3 Mouse move tracked outside window! 2020-01-01 21:46:42 -08:00
Christopher Chedeau
9aaaa24426 Also for text 2020-01-01 21:13:01 -08:00
Christopher Chedeau
2fa00f39fc Automatically select last inserted element 2020-01-01 21:10:56 -08:00
Christopher Chedeau
c26d04e162 Don't write null when cancelling text 2020-01-01 21:03:44 -08:00
Christopher Chedeau
ab84b5a048 Go to selection mode after adding a shape 2020-01-01 21:01:40 -08:00
Christopher Chedeau
f8873dd56b Do not regenerate shapes when moving 2020-01-01 20:56:18 -08:00
Christopher Chedeau
bd515f7e50 Real 1px lines 2020-01-01 20:21:47 -08:00
Christopher Chedeau
4076cf003f Proper fix for negative width 2020-01-01 20:13:06 -08:00
Christopher Chedeau
3c8eb862f5 Move with arrow keys 2020-01-01 20:02:09 -08:00
Christopher Chedeau
48d9147d87 Fix selection from right to left 2020-01-01 19:53:22 -08:00
Christopher Chedeau
aeb11989e3 Fix text selection 2020-01-01 18:12:49 -08:00
Christopher Chedeau
3769c4af00 Handle backspace 2020-01-01 17:58:28 -08:00
Christopher Chedeau
9dc19dde1d Proper text sizing 2020-01-01 17:51:14 -08:00
Christopher Chedeau
47e626f510
Add selection (#1) 2020-01-01 17:12:42 -08:00
Christopher Chedeau
6278cd9366 Initial commit 2020-01-01 17:04:47 -08:00