* Add JSON-backed options widget
* Add initial tool settings messaging to backend
* Add shape side selection with JSON deserialization
* Enforce minimum number of n-gon sides
* Make tool settings JSON errors safer
* Make tool settings JSON errors safer
* Refactor ToolOptions to ToolSettings
* Revert "Refactor ToolOptions to ToolSettings"
This reverts commit 651161fd16.
* Refactor all instances of "settings" to "options"
* Fix names and formatting
* Rearrange ToolOptions data to enforce types
* Add nonfunctional rulers and scrollbars to viewport
* Switch from DOM divs to SVG lines
* Switch from SVG lines to a single SVG path
* Change variable names
* Implement fill tool
* Add fill tool shortcut
* Add getters and setters to styles
* Make fill tool act on the topmost layer clicked
* Refactor fill operation
* Refactor and unify selection tolerance
* Add mark_as_dirty function
* Fix getter names
* Implement nudging selected layers with arrow keys
* Normalize diagonal nudges and add constants
* Replace sqrt(2.0) with a constant
* Remove normalization of diagonal movement
* Implement select all layers shortcut
* Adjust menu entry for Select All Layers
* Avoid selecting the root of the document when selecting all layers
* Implement deselect all layers
* Fix formatting
* Add extensions.json so VS Code recommends useful extensions
* Add rust-analyzer as the default Rust formatter
* 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>