* 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 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 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
* 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
* Make popover buttons open popover menus and add placeholder messages to all of them.
* Implement all directions for drawing, aligning, and edge-clamping popovers.
* Fix popovers so they are drawn outside their parent panel bounds and not clipped.
* Fix popover HTML to avoid nesting it inside a <button> element.