* Fix a bug where clicking a submenu would cause the parent menu to be closed before the submenu click could be registered. Also ignores package-lock.json.
* Remove package-lock gitignore
* Add back empty line
* Enforce cache dirtification
* Turn all shapes into one struct
* Remove working folder
* Remove old shapes
* Major restructuring
* Refactor Ellipse, Rectangle and ShapeTool
* Simplify bounding box calculation for folder
* Fix panic in select tool
* Refactorselect tool
* Refactor Align
* Refactor flipping layers
* Zoom to fit all
* Refactor tools to avoid state keeping
* Refactor more tools to use state that is passed along
* Fix whitespace + change selection box style
* Set viewbox of svg export based on the contents
Closes#269Closes#196
* Add DialogModal and use it for close confirmations and "coming soon" features
* Code cleanup; add Enter key to accept emphasized dialog button
* Add alignment of selected layers
* Refactor alignment to a document message
* Condense align messages into a tuple variant
* Rename dimension to axis and fix redundant math
* Add correct Center alignment
* Add TODO comment for nested transforms
* Add TODO for merging bounding boxes
* Move align enums to document_message_handler
* Run cargo clippy
* Clean up unwraps with filter_map
* Support moving single layers
* Fix "Move layer to top/bottom" keybinds
* Rename things named "move" to "reorder"
Fix formatting
* Combine sorted layer helper functions
* Use integer consts for moving layers to front/back
* Fix merge mistake
* Fix some clippy lints
* Fix panic
* Remove "get" prefix from functions
* Bring layer menu items out to sub-menu
* Support moving multiple layers at a time
* Add comment explaining odd keybinding
* Add reordering tests
* Add negative test
* Add new error type
* Add layer position helper, clean up tests
* Make position helper return Result
* Clean up slice iteration
* Simplify source_layer_ids computation
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
* 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 651161fd167193b4790c88b7cd7faf2f0e172102.
* 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