Commit Graph

1672 Commits (e4d02fb27522bcabcfa1e78563bcef3c308ba7bb)

Author SHA1 Message Date
David Luzar 0097652b79 disallow shape selection during creation (#449) 5 years ago
Faustino Kialungila 61be0f7b61
Render text actions panel on double click (#450)
* Render text actions panel on double click

* cleanup wysiwyg on click

* use `state.editingElement` instead of global to determine whether t ext panel is shown

* clarify comment

Co-authored-by: David Luzar <luzar.david@gmail.com>
5 years ago
Guillermo Peralta Scura 3715da9966
Remove not needed nesting for resize (#460) 5 years ago
Guillermo Peralta Scura 7ae52f1164
Add ColorInput component (#455)
* Add ColorInput component

* Use valid color on input blur

* Darken input text and add labels
5 years ago
Christopher Chedeau 7f6e1f420e
Pure node rendering (#443) 5 years ago
Mike Lewis 5ce5e5ac1e Adjust type of data URI when saving (#452)
Previously the type used for the data URI when saving was text/plain.
On iPad, this caused the file to automatically have a .txt extension
added (so files ended up with names like "drawing-xyz.json.txt"). This
meant that the files couldn't be loaded by the tool, which expects only
files with a .json extension.

Now, the type used is application/json, which means that the files get
saved with the correct extension and can be successfully loaded on iPad.
5 years ago
Günay Mert Karadoğan d505c6615d Fix reversed cursor issues on resize with bi-directional cursors (#451) 5 years ago
Faustino Kialungila 86cb228df4 Trim wysiwyg text to avoid misalignment on Firefox (#454) 5 years ago
Faustino Kialungila bbabf33d78 Render shape action on tool selected (#448) 5 years ago
Sosuke Suzuki 5563dd30d7 Modify to ignore enter-key in IME composing (#446) 5 years ago
Sosuke Suzuki 4180485eef Disable shortcuts for shapes while dragging the selection (#447) 5 years ago
Lipis 67aed07b72 Subtle border around the color picker (#442)
* Subtle border around the color picker

* Rename
5 years ago
Lipis 61d5615a81 Change order of Text and Line (#435) 5 years ago
Lipis 70b88a6a53
Force lowercase for the color inputs (#423) 5 years ago
Abhishek Kulshrestha 31403ab373 Bug 389 (#428)
* paste inside the viewport

* Buttons in top left panel aren't horizontally centered
5 years ago
JavaScript Joe b2d3d6eca3 fix: replace Draftsman with Architect (#427) 5 years ago
David Luzar 6892348c3d Revert 400 and 420 (#422)
* revert #400 font file

* Revert "Revert "Set scale for export images (#416)" (#420)"

This reverts commit d603921234.
5 years ago
Timur Khazamov d603921234
Revert "Set scale for export images (#416)" (#420)
This reverts commit 82f559f826.
5 years ago
Timur Khazamov 82f559f826
Set scale for export images (#416) 5 years ago
Thomas Steiner 7ddc206b8c
Add Native File System API saving/exporting and opening (#388)
* Add Native File System API saving/exporting

* Add Native File System API opening

* Add origin trial token placeholder

* Reuse an opened file handle for better saving experience

* Fix file handle reuse to only kick in for Excalidraw files

* Remove reference
5 years ago
Lipis f4d4b323e1 Update colors from open colors (#406)
* Update to open colors

* Update more

* More colors

* Dahh

* More

* Border none

* More

* Update
5 years ago
Günay Mert Karadoğan 8bc049a0b9 Remove resized element if it is invisibly small (#405) 5 years ago
JavaScript Joe e5e0e37f23 feat: update font file and add meta tags (#400)
* fix: add new, smaller FG_Virgil file

* fix: update with new codesandbox font file link

* feat: add og-image and meta tags

* feat: add pr template

* fix: update pr template

* fix: remove pr template

* refactor: remove twitter meta in favor of og:image

* fix: add og:image:width

* refactor: update image

* refactor: use image in readme
5 years ago
Lipis 8154ccd907 No named colors and lowercase hex (#395)
* No named colors and lowercase hex

* consistent
5 years ago
JavaScript Joe 1ae3c64860 fix(font): modify exclamation point in font (#394)
* fix: add new modified FG_Virgil font

* fix: update codesandbox links to use modified virgil font

* fix: typo in Contributing
5 years ago
Lipis cb8d866c33 Open colors (#378)
* Add open colors

* More colors

* Update colors

* Shade 0
5 years ago
Günay Mert Karadoğan 4ecc734659 Fix #360 prevent creating invisibly small elements (#387) 5 years ago
Jilles Soeters 2a8e562e98 Add numeric hotkeys (#380)
* Add numeric hotkeys

* Nit: add space after comma
5 years ago
Brady Madden a3aa57d98b
Add AppState to export json to fix various import bugs (#358)
* export background, app state

* review comments
5 years ago
David Luzar 0e56cd4f56 pan canvas on wheel button drag (#375)
* pan canvas on wheel button drag

* make mousemove passive
5 years ago
Shane O'Sullivan 80cee4d3c0 Add a title for the Export button as it was missing one (#376) 5 years ago
Bakhtiiar Muzakparov 8db8827c6f feat: add line shape (#371)
* feat: add line shape

* fix: align line tool

* fix: hitbox bug sw to ne

* fix: add stroke width n sloppiness  for line

* fix: center line inside a panel box

* fix: use color as a unique key
5 years ago
David Luzar 42968ef44d enable curveFitting & bump roughjs (#373) 5 years ago
Faustino Kialungila 657014466c Active styles bg color (#372)
* Active styles bg color

* fix whitespace

Co-authored-by: David Luzar <luzar.david@gmail.com>
5 years ago
Timur Khazamov 79aee53ff6 Redesign idea (#343)
* Redisign idea

* Code cleanup

* Fixed to right container

* Reoredered layout

* Reordering panels

* Export dialog

* Removed redunant code

* Fixed not removing temp canvas

* Fixed preview not using only selected elements

* Returned file name on export

* Toggle export selected/all elements

* Hide copy to clipboard button if no support of clipboard

* Added border to swatches

* Fixed modal flickering
5 years ago
David Luzar 8104c8525d ensure contextMenu doesn't overflow viewport (#364) 5 years ago
Preet 8dbd1b80df Update to rough.js 4.0.1 (#363)
* upgrade to latest rough.js

* remove random.ts because roughjs now supports seeding.
5 years ago
Timur Khazamov bc2bae2a9a Shift drag to add to selection (#355)
* Shift drag to add to selection

* Inlined variable
5 years ago
Guillermo Peralta Scura 4c62cbf57e Don't show resize cursor if multiple elements are selected (#353) 5 years ago
Christopher Chedeau f91b708abb
Revert "Shift drag to add to selection (#350)" (#352)
This reverts commit ce467f7b65.
5 years ago
Timur Khazamov ce467f7b65 Shift drag to add to selection (#350) 5 years ago
David Luzar 58ad6d741d fix selecting elem inside already selected element (#349) 5 years ago
David Luzar 5887be6eda select filled elements by clicking inside (#340) 5 years ago
Guillermo Peralta Scura c67435719f Use cursor delta to resize shape (#341) 5 years ago
Jeremy Press abf2aaa102 "Select All" only appears when clicking outside of a shape via actionFilter (#329)
Co-authored-by: Christopher Chedeau <vjeuxx@gmail.com>
5 years ago
Enzo Ferey 88a9cee8bb History improvements (#337)
* Simplified redoOnce.

* Help mental model.

* Move clear redo stack where it belongs.

* Not needed anymore as we check for same state.
5 years ago
Gasim Gasimzada ba8bc10431 Remove element shape object from local storage save (#336) 5 years ago
Christopher Chedeau bc909b76da
Move copy paste handler to document (#334)
Hopefully it should resolve the copy pasting issues

Fixes #249
5 years ago
Christopher Chedeau aad6e8f434
Reset to selection after creating a text (#333)
Fixes #252

Test plan:
- Click on text icon
- Click anywhere to start entering text
- Add a letter
- Make sure the cursor is selection and not text
- Click anywhere else, make sure it completes the text and not create a new one
5 years ago
Christopher Chedeau 44657efe71
Fix undoOnce (#332)
I just pasted @enzoferey's implementation and it fixed the bug reported by @dwelle

Fixes #307
5 years ago
Christopher Chedeau dd2a7eb597
Fix copy-paste on input (#331)
If the input is active, we shouldn't override copy paste behavior
5 years ago
Christopher Chedeau d45f48e60f
Set shape background to be transparent by default (#330)
Also makes "Clear canvas" reset the entire app state
5 years ago
Christopher Chedeau 3db7d69849
Debounce localstorage save (#328)
I profiled dragging and it looks like it takes ~3ms to save to localStorage a smallish scene and we're doing it twice per mousemove. Let's debounce so we don't pay that cost on every mouse move.

Stole the implementation from #220 which got reverted.
5 years ago
Christopher Chedeau c745fd4e5e
Prevent cmd-r from selecting rectangle (#327)
I keep adding empty rectangles because I reload with cmd-r which enables rectangle :p Let's only make the shortcut work if there's no modifier enabled
5 years ago
Christopher Chedeau 407f00bbd5
Fix alt-duplicate (#326)
We need to unselect all the previous elements and select all the new ones. Also made sure that the shape is regenerated when the element is duplicated
5 years ago
Christopher Chedeau 8785bef523
Support transparent background + inline picker (#325)
Unfortunately, react-color has a bug where transparent color doesn't trigger onChange. I've been annoyed by the huge dependency anyway so decided to take the generated html (which is awesome) and reimplement a specific component for it.

I also made sure that we don't actually render anything when the background is transparent on rough (I looked at the generated path and made sure it didn't have the commands for the background)
5 years ago
Christopher Chedeau 157f0eae0c
Export to canvas only selected elements (#323)
Fixes #308
5 years ago
Christopher Chedeau 9fa69448e4
Remove Delete from panel (#322)
Now that we have context menu, we don't need it there
5 years ago
Christopher Chedeau 5bdd0a35f6
Fix cmd-a drawing arrows (#321)
We need to quit if we have either elements OR appState, not both.
5 years ago
Gasim Gasimzada 74764b06eb Regenerate roughjs shape only when the item is updated (#316)
* Regenerate roughjs shape only when the item is updated

* Remove shape object during export and history undo/redo

* Remove shape element during copying

* Fix shape generation during creation
5 years ago
Christopher Chedeau 1bf18fe4ed
Tweak context menu style (#320)
- Move the context menu right next to the mouse so it's not so far away. But 1px out so that nothing is selected until you move your mouse
- Change the colors to be closer to the macos one. Unfortunately, macos has a 0.5px border that I'm not able to reproduce without some annoying hacks, 1px it'll be.
5 years ago
Christopher Chedeau b481a29024
Remove console.log (#317) 5 years ago
Enzo Ferey c6accd9fc7 Improve color suggestions (#304)
* Add palettes for each type of color picker.

* Add white canvas background and black element stroke.

* Add white for element background.
5 years ago
Christopher Chedeau 6399b1f318
Remove zindex options from panel (#315)
Now that they are in the context menu, we don't need to have them in the panel anymore.

Fixes #242
5 years ago
Timur Khazamov 8f28c59deb Removed SceneState from renderElement (#301) 5 years ago
Gasim Gasimzada 76467073f2 Use `innerText` instead of `innerHTML` when measuring text (#312) 5 years ago
Gasim Gasimzada f465121f9b Feature: Action System (#298)
* Add Action System

- Add keyboard test
- Add context menu label
- Add PanelComponent

* Show context menu items based on actions

* Add render action feature

- Replace bringForward etc buttons with action manager render functions

* Move all property changes and canvas into actions

* Remove unnecessary functions and add forgotten force update when elements array change

* Extract export operations into actions

* Add elements and app state as arguments to `keyTest` function

* Add key priorities

- Sort actions by key priority when handling key presses

* Extract copy/paste styles

* Add Context Menu Item order

- Sort context menu items based on menu item order parameter

* Remove unnecessary functions from App component
5 years ago
Timur Khazamov c253c0b635 Command clicking should "xor" selection (#300)
* Command clicking should "xor" selection

* Only shift key should play a role

* Get rid of `isDraggingElements`

* Renamed someElementIsDragged to draggingOccured
5 years ago
Gunay Mert Karadogan 3eb6d1de68 Fix history saving for resizing/dragging element (#292) 5 years ago
dwelle 81f23a8ccb fix text shape contenteditable & paste handling (fixes #293) 5 years ago
Gasim Gasimzada f2346275ef
Extract Side Panel from App component (#295)
* Extract Side Panel from App component

* Refactor SidePanel component

- Remove unnecessary props (we are already passing appState as a prop)
- Remove unnecessary allback (we are already passing setState)
5 years ago
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
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
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 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
Faustino Kialungila 9305a33dba
Copy and paste styles (#219)
* copy and paste styles

* save copied styles in memory
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
Faustino Kialungila b3667000e2
improve lozenge dimensions (#197) 5 years ago
Guillermo Peralta Scura ea534dd535 Implement redo (#191) 5 years ago
Christopher Chedeau 3bbcb9cbdc
Improve Color Picker *2 (#195) 5 years ago
Christopher Chedeau 23cd62d148
Improve selection view (#192) 5 years ago
Paulo Menezes d5c6dd49a2 Styles fix (#190)
* Styles improvements

* Default values when restore elements
5 years ago
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
5 years ago
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
5 years ago
Faustino Kialungila 4be88c9c58 Adding diamond shape (#159)
* Adding diamond shape

* hittest diamond shape

* fix x,y arguments

* renaming
5 years ago
Christopher Chedeau fd6b5024c7
Reorganize menu (#178) 5 years ago
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.
5 years ago
Timur Khazamov 7201198f23
Better scrollbars (#177)
* Better scrollbars

* Get rid of all unused options
5 years ago
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
5 years ago
Timur Khazamov e7e676e1eb
Merge pull request #171 from nanot1m/arrows-start-end-points
Adjust arrow start/end points
5 years ago
Giovanni Giordano be41bd0f1c
Merge pull request #168 from nanot1m/fix-square-selection
Square selection should work in all directions
5 years ago
hazam d4693e0b37 Adjust arrow start/end points 5 years ago
Jared Palmer 15251e6c61 Add titles to shape buttons with key shortcuts 5 years ago
hazam 8c1af23d59 Square selection should work in all directions 5 years ago
Timur Khazamov 910b30a08a Dragging scrollbars (#161) 5 years ago
Giovanni Giordano d61ecca184
Merge pull request #156 from gipsy-king/textmeasure-actualboundingbox
fallback if TextMeasure.actualBoundingBox* unavailable
5 years ago
Benjamin Große 2feedbdbb7 fallback if TextMeasure.actualBoundingBox* unavailable 5 years ago
Giovanni Giordano 02daf6ffbd Recover index.tsx 5 years ago
Giovanni Giordano c4f4f18b81 Remove deploy files 5 years ago
Lucas Azzola 7c321b49ab Add save/load functionality from file (#146)
Fixes #143
5 years ago
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
5 years ago
Christopher Chedeau 85fe9f85fb
Fix missing mouseup (#144) 5 years ago
Christopher Chedeau 9e5c5daf64
Cmd-Z (#141) 5 years ago
Christopher Chedeau 4ca8f65887
Use device pixel ratio (#139)
* Use device pixel ratio

* Update index.tsx
5 years ago
Brady Madden 4ad49ff970
Merge pull request #137 from bradymadden97/master
[bugfix] fix drag out of window for move/resize shape
5 years ago
Brady Madden ec28c83626 fix other drag issues 5 years ago
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
5 years ago
Christopher Chedeau 3172109050
Inline font-awesome icons (#134) 5 years ago
David Luzar 490438960d fix export to support scrolling (#133) 5 years ago
Timur Khazamov aa01be2dbe Fixed Unable to preventDefault errors in Chrome (#130)
* Fixed Unable to preventDefault errors in Chrome

* Cleanup wheel event listener
5 years ago
Timur Khazamov 34b8883739 Added outlines to focused buttons (#129) 5 years ago
Brady Madden 1919f30878 fix offset top and length causing drag issues (#122) 5 years ago
Paulo Menezes dee8a73d3d Resize (#103)
* Resize

* Detect collision with squares

* Disable resize for text, arrow and multiple selection

* Hide middle handlers when small
5 years ago
Christopher Chedeau bd86f819df
Prevent re-assignment of elements (#121) 5 years ago
Christopher Chedeau 25aabdc4d1
Fix hit testing (#119) 5 years ago
dwelle a1bcfb401c move css to scss 5 years ago
dwelle 250fbe2e1e make container fullscreen 5 years ago
dwelle c5d65ccb39 ensure we defocus input on canvas click
- also reuse the same detection logic for cancelling keyboard events
5 years ago
Faustino Kialungila 922ad6edcb Improve Buttons UX 5 years ago
David Luzar e0deb68875 ensure mouse drag doesn't select texts (#32) (#111) 5 years ago
David Luzar c623312380 add support for clearing canvas (#108) 5 years ago
hazam 4a03fa8542 Fix: right clicking while on the canvas messes up selection 5 years ago
Christopher Chedeau 4886065443
Wire up forward (#101)
* Wire up forward

* Match words with Keynote/Powerpoint
5 years ago
Christopher Chedeau 6b8d2970ac
Add support for forward (#100) 5 years ago
Paulo Menezes e9484080e7 UI move buttons (#99) 5 years ago
Christopher Chedeau 0d5272720f
Send to back (#98) 5 years ago
Paulo Menezes b1a90c0020 Side panel (#95)
* Side panel

* Update arrow icon
5 years ago
Christopher Chedeau 66938ae5c6
Update on resize (#94)
Fixes #88
5 years ago
Christopher Chedeau 8605af2b54
Fix key warning (#93) 5 years ago
Christopher Chedeau c077403eec Generate new seed on paste 5 years ago
Christopher Chedeau 929efa5e2c
Distance between point and ellipsis (#92) 5 years ago
Sergey Rubanov 51bea5eff3 - Use Math.hypot (#87)
- Fix context parameter name in isTextElement function
- Remove unused code
- Use block scope everywhere
5 years ago
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
5 years ago
hazam 9d65b1cbc1 Code cleanup 5 years ago
hazam 1b93888da5 Restore fill style 5 years ago
hazam 2a0eacbeca Fixed selection and added scrollbars 5 years ago
hazam 51e19b977e Scroll with mouse wheel 5 years ago
Giovanni Giordano 02bf6f0f14 Add preload to font 5 years ago
Christopher Chedeau b18a0efe2c
Seed (#73) 5 years ago
Faustino Kialungila 4fa55222fd Rename excalibur to excalidraw 5 years ago
Paulo Menezes 98b158a83d Save to local storage (#53)
* Save to local storage

* Restore on page load

* Warning when leave without save
5 years ago
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
5 years ago
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
5 years ago
Giovanni Giordano c2c13f0f27
Merge pull request #64 from excalidraw/fix-body-margin
Fixes body margin
5 years ago
Faustino Kialungila c224bc4c8f Fix global items colors 5 years ago
Giovanni Giordano 26c7f362b6 Fixes body margin 5 years ago
David Luzar db386b8400 fix regression of always exporting bg (#62) 5 years ago
Christopher Chedeau a5b0e192b4
Remove drawScene (#58) 5 years ago
Christopher Chedeau 4c94976527
Random fixes (#57) 5 years ago
Faustino Kialungila 10e317e359 Colors 5 years ago
Christopher Chedeau 3b919f3235
Cmd-A to select everything (#51) 5 years ago
Christopher Chedeau 278fc11d22
Better selection click detection (#50) 5 years ago
Christopher Chedeau 8a43ed691d
Handle escape keybinding (#49) 5 years ago
Christopher Chedeau 0d75b78374
Path-dependent hit test (#48)
* Hit test

* Hit test

* Hit test
5 years ago
David Luzar 4c1bf07863 ensure click-to-select is exclusive (fixes #43) (#45) 5 years ago
Christopher Chedeau b6c30c0550
Copy paste (#44)
* Copy Paste

* Copy paste
5 years ago
dwelle 579c32b5b2 remove optional chaning
until CodeSandbox adds support for it in CRA apps
5 years ago
Timur Khazamov 1383758aa7 TS, Prettier, Eslint (#39)
* TS, Prettier, Eslint

* Used rough ts definitions
5 years ago
dwelle 4eda1cfb5d prevent exporting empty canvas 5 years ago
dwelle f091e9813e fix exporting bg for non-cropped exports
- also refactor and add comments to `exportAsPNG`
5 years ago
Giovanni Giordano 4a4f36592f Fixes selecting an element 5 years ago
Giovanni Giordano 61bdedaecf Clear selection if no element is clicked 5 years ago
Giovanni Giordano 874934e585
Merge branch 'master' into select-on-click 5 years ago
Giovanni Giordano 715efc054e Remove extra check for dragging 5 years ago
Giovanni Giordano a9bd112f47 Select element on click 5 years ago
David Luzar 68eeaa3c7d add PNG export (#31) 5 years ago
Timur Khazamov bb151d83bc Drag to move selection (#28) 5 years ago
Christopher Chedeau 44ff545219 Fix text height 5 years ago
Christopher Chedeau afe6331c61 Reset selection when adding text 5 years ago
Christopher Chedeau ee7dc953bf Fix clearRect for [0, 0.5] 5 years ago
Christopher Chedeau 457800caa3 Mouse move tracked outside window! 5 years ago
Christopher Chedeau 9aaaa24426 Also for text 5 years ago
Christopher Chedeau 2fa00f39fc Automatically select last inserted element 5 years ago
Christopher Chedeau c26d04e162 Don't write null when cancelling text 5 years ago
Christopher Chedeau ab84b5a048 Go to selection mode after adding a shape 5 years ago
Christopher Chedeau f8873dd56b Do not regenerate shapes when moving 5 years ago
Christopher Chedeau bd515f7e50 Real 1px lines 5 years ago
Christopher Chedeau 4076cf003f Proper fix for negative width 5 years ago
Christopher Chedeau 3c8eb862f5 Move with arrow keys 5 years ago
Christopher Chedeau 48d9147d87 Fix selection from right to left 5 years ago
Christopher Chedeau aeb11989e3 Fix text selection 5 years ago
Christopher Chedeau 3769c4af00 Handle backspace 5 years ago
Christopher Chedeau 9dc19dde1d Proper text sizing 5 years ago
Christopher Chedeau 47e626f510
Add selection (#1) 5 years ago
Christopher Chedeau 6278cd9366 Initial commit 5 years ago