* Begin implementing viewport selection
* Implement viewport click and drag selection for ellipse and rectangle
* Begin implementing line selection
* Remove debug prints
* Run cargo format
* Use DVec2 instead of kurbo::Point
* Line and polyline intersection
* Run cargo format
* Add fix for missing layer panel update
* Replace point selection with box selection
* Formatting
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Initial implementation of copy and paste for layers
* Sort layers on copy and add tests
* Fix logger init for test
* Fix `copy_paste_deleted_layers` test
* Readd erroneously removed svg
* Make Layer serializable and cleanup
* Add test for copy and pasting folders
* Cleanup
* Rename left_mouseup
* Cleanup
* Add length check to test
* Fix typo
* Make mouseup, mousedown more consistent
* Convert polygon and rectangle tool to kurbo::BezPath
* Add glam
* Add affine transform to elipse and remove circle
* Format
* Add svg group and add matrix for group
* Convert all operations to use matricies
* Work uses same transform as root
* Format
* Frontend fixed to render changes to working colors when changed from backend (#180)
* Backend and Frontend modification to show working color mods
* Remove comments & change precedence for tool and doc actions
* Add keybind for resetting work colors
* Minor Frontend changes
* Remove early sample "greet" code
* Add a contributing section to the project README
* Add moving document around
* Add document transform for tools
* Update to GraphiteEditor's fork
* Use write in foreach for rendering group / folder
* Add missing TranslateDown action
* Use points for line operation
* Format
* Add todo to change to shape's aspect ratio
* Remove empty if
* Initial pass at refactor
* Fix polyline test
* Use document message to modify document transform
* Messages -> Operations
* Transform layer
* Format
* Use DAffine2::IDENTITY
* Clean up kurbo generation for line and rect
* Use .into for rectangle points
* Rename cols to transform
* Rename other cols to transform
* Add todo for into_iter
* Remove unnecessary clone
Co-authored-by: akshay1992kalbhor <akshay1992kalbhor@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Can only remove last document successfully
* Correctly update the layer tree panel
* Remove comments
* Add support for randomly closing docs
* Create new doc after closing last doc
* Update layer panel when creating new docs
* Fix bug that crashed the program when first doc was closed
* Refactor to make code simpler and increase readability
* Add shortcut to close active doc (Shift + C)
* Add a confirmation dialog box before closing tabs
* New docs get the correct title
* Remove comments and fix typos
* Disable 'eslint-no-alert'
* Refactor and fix document title bug
* Rename the FrontendMessage and ReponseType for showing close confirmation modal
* Change the message displayed in the close confirmation modal
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Multi-docs WIP
* Change to number
* Add new document and switch documents
* Remove keybind for previous document. Change keybind for next document.
* Switch documents by clicking tabs
* Remove keybind for previous document. Change keybind for next document.
* multi-docs
* Update package-lock.json
* Hook up File>New to add new document
* Remove console logs and empty lines. Start new documents from 2 instead of 1.
* Fix formatting
* Backend and Frontend modification to show working color mods
* Remove comments & change precedence for tool and doc actions
* Add keybind for resetting work colors
* Minor Frontend changes
* Change arg to IconButton component
* Add basic layer selection mechanism
* Clean up print statements and add some comments
* Simplified the layer selection mechanism
* Remove redundant rule for 'no-param-reassign'
* Clean up frontend and and plumb selection flow to backend
* Update eslintrc
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
* Export current document when pressing Ctrl+Shift+S
* Use a blob for download
* Add Ctrl + E shortcut, match on lower case
* Don't mount element in DOM
* Polish some keybindings
* Add initialization for MappingEntries
* Implement svg coloring
* Add newline after svg tag
* Add spaces to svg style format
* Fix more svg formatting
* Add space before />
* Remove duplicate whitespace