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