Commit Graph

574 Commits (f1ac8cac32cd77b5f6d57c50a374783753daa971)
 

Author SHA1 Message Date
Gasim Gasimzada 35b5f6dd0d Fix a bug where clipboard object doesn't exist in Safari (#296) 5 years ago
David Luzar 2fb3cdd5e4
fix copy/paste regression (#291) 5 years ago
David Luzar deee57314d
support export canvas to clipboard (#232) 5 years ago
Giovanni Giordano 1541428ab1 Clear active tool on escape (#286)
* Clear active tool on escape

* Remove console log
5 years ago
Gasim Gasimzada 862231da4f Make all operations on elements array immutable (#283)
* Make scene functions return array instead of mutate array

- Not all functions were changes; so the given argument was a new array to some

* Make data restoration functions immutable

- Make mutations in App component

* Make history actions immutable

* Fix an issue in change property that was causing elements to be removed

* mark elements params as readonly & remove unnecessary copying

* Make `clearSelection` return a new array

* Perform Id comparisons instead of reference comparisons in onDoubleClick

* Allow deselecting items with SHIFT key

- Refactor hit detection code

* Fix a bug in element selection and revert drag functionality

Co-authored-by: David Luzar <luzar.david@gmail.com>
5 years ago
Faustino Kialungila 1ea72e9134
Center element on paste (#248)
* Center element on paste

* paste on cursor position

* correctly center elements

* rename vars
5 years ago
davidbonan a73e4e28aa Add contributing md (#279)
* Add contributing setup file

* Add sandbox method
5 years ago
Christopher Chedeau 2553d10d34
Yet another awesome testimonial (#282) 5 years ago
Christopher Chedeau 77400c7b70
One more testimonial (#281) 5 years ago
Guillermo Peralta Scura 4a044d3ace Show move and resize cursors on hover (#280)
* Change to move cursor on hover

* Show resize handlers on hover
5 years ago
davidbonan a16cd3a34f Add font size and font familly option for selection (#278)
* Add font size and font familly option for selection

* Allow copy font style

* More clearner method name

* Update options size and font-familly
5 years ago
Gasim Gasimzada 299e7e9099
Extract app and keys (#276)
* Extract app component from entrypoint (index)

- Use refs to refer to canvas and rough context
- Remove ReactDOM double rendering

* Extract keys and key related utils into their own module

* Move everything back to entrypoint
5 years ago
Gasim Gasimzada 36ce6a26e6 Make panels collapsible (#239)
* Make panels collapsible

- Add Panel component with collapse logic
- Use the component in all the necessary panel groups

* Remove unnecessary container from PanelCanvas

* Add "hide property" to Pane component to hide Panel contents using a prop

- Instead of doing conditional rendering, pass the condition to Panel as props

* Change collapse icon rotation for closed

- Use one icon and use CSS transforms to rotate it

* Remove unnecessary imports from PanelSelection
5 years ago
Timur Khazamov e38f65dea7
Contenteditable wysiwyg (#274)
* Contenteditable wysiwyg

* Added comment about pasting multiline text
5 years ago
Christopher Chedeau 556843d9a2
Adding open collective sponsor (#275)
I just created an open collective for the project.
5 years ago
Timur Khazamov 1739540f00
Creating a text near the center of a shape should put it in the center (#270)
* Snap to element center

* Fixed typo

* Added comment

* Reduced threshold to 30

* Skip snapping if alt key is pressed

* Fixed creating text with shape tool
5 years ago
David Luzar 068dca604f
prevent commit on eslint warnings & fix lint (#268) 5 years ago
Timur Khazamov 37934c0f8b
Fixes text jumping on creation (#266)
* Fixes text jumping on creation

* Do not remove node on ESC

* Fixed typo
5 years ago
David Luzar 2122a9cf9f
fix for duplicating elements (#261) 5 years ago
David Luzar 7f7f51f70b
remove static/ from git & ignore (#265) 5 years ago
David Luzar 58ec6567ae ensure alt+drag duplicates all selected elems (#258) 5 years ago
dwelle 08b804ac63 ensure only selected elems can be resized (fixes #256) 5 years ago
dwelle 009412a093 improve typing for handlerRectangles 5 years ago
Jeremy Scatigna e7bf034fef duplicate element by alt dragging (#255) 5 years ago
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
5 years ago
Timur Khazamov 2f9aa0e3ca Async loading of TwitterPicker (#246) 5 years ago
Timur Khazamov 2d66616e3f Fixed: Copy + Paste moves text inside rectangle #229 (#245) 5 years ago
Faustino Kialungila 846f427732 adding comments about diamond dimensions (#241) 5 years ago
Timur Khazamov 10955f8bb0 Wysiwyg text 2.0 (#238)
* Fixed cleaning handlers after cleanup

* Double click to edit text

* Preserve text styles on change
5 years ago
Timur Khazamov ae982e9298 Revert "Save scene in URL (#220)" (#234)
This reverts commit db973c61e8.
5 years ago
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
5 years ago
Gasim Gasimzada 85365e5bcb
Extract Sidebar panels into separate components (#230)
* Extract Sidebar panels into separate components

* Add Jest TS types
5 years ago
Faustino Kialungila 2fb5c4cd13 Add styles copy and pasting in the context menu (#227) 5 years ago
Christopher Chedeau f2665408fc
Revert "Wysiwyg text (#200)" (#225)
This reverts commit abbc04df0e.
5 years ago
Timur Khazamov db973c61e8 Save scene in URL (#220)
Co-authored-by: Christopher Chedeau <vjeuxx@gmail.com>
5 years ago
Timur Khazamov abbc04df0e Wysiwyg text (#200) 5 years ago
Anirban Sengupta b2eb2807cc Use Ctrl instead of Cmd for keyboard shortcuts on Windows (#216)
Co-authored-by: Christopher Chedeau <vjeuxx@gmail.com>
5 years ago
Timur Khazamov 257f697a98 Context menu with some commands (#217) 5 years ago
Ben Kraft 9fe3fe5091 Fix URL in README (#222)
Looks like excalidraw.com is an SSL error, but www.excalidraw.com
works great.  It's possible the github pages config could be changed
to make both work, but this seemed easier to fix.
5 years ago
Faustino Kialungila 9305a33dba
Copy and paste styles (#219)
* copy and paste styles

* save copied styles in memory
5 years ago
Christopher Chedeau 8a91f4fe7b
One more testimonial (#221) 5 years ago
David Luzar 1443cf1cd5
implement shift+resize for all sides (#210) 5 years ago
Abhishek Kulshrestha b12ea7de3e paste inside the viewport (#214) 5 years ago
Faustino Kialungila 5ade8987e4
Fixes pasting colors in color picker (#215)
* improve lozenge dimensions

* fix pasting colors in color picker input
5 years ago
Timur Khazamov 7bf0184499
Fixed ellipse hit test if sizes are negative (#205) 5 years ago
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
5 years ago
Gasim Gasimzada 054669cfef
Extract components and shapes into their respective modules (#212) 5 years ago
Gasim Gasimzada 86a1c29eec
Extract scene functions to their respective modules (#208)
- Also, extract utilities into utils module -- capitalizeString, getDateTime, isInputLike
5 years ago
Gasim Gasimzada 01805f734d
Extract element functions into modules (#207) 5 years ago
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
5 years ago