Henry Sloan
1f1c307211
Options bar widgets for tools to control tool behavior ( #283 )
...
* 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
2021-07-21 01:07:48 -04:00
Keavon Chambers
150b530a73
Fix tooltips in Document panel
2021-07-19 18:02:08 -07:00
Keavon Chambers
5b5388a1d6
Fix dropdown menu widget showing wrong active entry
...
Fixes #250
2021-07-19 15:03:08 -07:00
Keavon Chambers
209d71ddc2
Add (nonfunctional) rulers and scrollbars to the viewport ( #279 )
...
* 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
2021-07-17 16:11:52 -07:00
Keavon Chambers
1e786750c5
Remove outdated todo comment
2021-07-17 03:36:35 -07:00
TrueDoctor
5b1d36fafe
Apply clippy lints ( #278 )
2021-07-17 11:12:37 +02:00
Keavon Chambers
0c25031ad1
Clean up widget type naming conventions
2021-07-16 15:57:42 -07:00
Keavon Chambers
60968431b4
Categorize frontend widgets to match design system
2021-07-16 15:37:35 -07:00
Simon Desloges
783b7801e6
Add support for folder bounding boxes ( #276 )
2021-07-16 16:34:04 +02:00
Keavon Chambers
59b817301d
Edit readme with various updates and simplifications
2021-07-16 04:01:32 -07:00
bjorn3
5d91ae21a0
Two improvements to the development workflow ( #270 )
...
* Configure rust-analyzer to target wasm32-unknown-unknown
* Watch changes to core rust files
2021-07-16 01:49:52 -07:00
Henry Sloan
08d5536663
Pass layer metadata to tools ( #277 )
2021-07-16 08:38:46 +02:00
Simon Desloges
92b6458eee
Add a document method that returns a layer's bounding box ( #273 )
...
* Add a document method that returns a layer's bounding box
* Moved `use` to the top of the file
* Add layer local bounding box method
2021-07-15 20:18:32 -07:00
Keavon Chambers
a25fb40fd5
Remove CLI client stub
2021-07-15 03:44:57 -07:00
Keavon Chambers
8591dd2983
Adjust OptionalInput widget design to add back its right border
2021-07-15 01:01:05 -07:00
Keavon Chambers
761406537c
Rename tool icons
2021-07-15 00:46:32 -07:00
Keavon Chambers
8a06e8e771
Switch all JS imports to absolute paths
2021-07-15 00:34:56 -07:00
Keavon Chambers
0b44a17a5d
Make frontend request tab list on initialization
2021-07-15 00:07:21 -07:00
Henry Sloan
2e579a3ac6
Transform nudge coordinates to viewport space ( #264 )
...
* Transform nudge coordinates to viewport space
* Refactor nudge transform for clarity
2021-07-14 23:05:46 -07:00
Keavon Chambers
34828a7837
Cleanup of variable naming
2021-07-14 20:11:51 -07:00
Keavon Chambers
ca50e8f37d
Add a fullscreen button and the keyboard lock API ( #266 )
...
Closes #249
2021-07-14 18:56:22 -07:00
Keavon Chambers
2aff782e70
Enforce downgraded dependency versions in package.json
2021-07-14 16:51:56 -07:00
Keavon Chambers
62092910ef
Implement closing the current, and all, documents from the menu bar ( #265 )
...
Closes #261
Additional cleanup and refactoring with the way the backend relays the list of open documents to the frontend and prompts for confirmation.
2021-07-14 16:13:58 -07:00
TrueDoctor
3075412c19
Order mapping entries precedence based on number of modifiers ( #262 )
...
* Order mapping entries precedence based on number of modifiers
* Fix format
* Rename variables
* More renaming
2021-07-15 00:40:37 +02:00
Keavon Chambers
d311ac6bfc
Frontend refactor to move response handler, key input handling, and more into new utilities folder ( #260 )
...
Part of #124
2021-07-14 14:31:09 -07:00
Henry Sloan
8158d4be0e
Implement fill tool ( #254 )
...
* 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
2021-07-14 00:49:12 -07:00
TrueDoctor
d0d25d6d48
Implement snapping for rotation ( #257 )
2021-07-13 20:38:58 +02:00
TrueDoctor
521c21b837
Implement more scrolling features ( #256 )
...
* Use sideways scrolling
* Add horizontal scroll with shift
* Combine WheelCanvasTranslate messages
* Add zooming to current mouse position
* Fix formatting
* Fix scroll direction
* Rename some Constants
2021-07-13 14:02:38 +02:00
Keavon Chambers
00d6c3a5d7
Clean up and polish some code from the previous commit ( #255 )
2021-07-13 00:52:45 -07:00
0HyperCube
cd45a8d275
Viewport canvas navigation with modifier keys and zoom widget ( #229 )
...
* Add rotation around the center
* Document transform centred
* Fix drawing hexagon on rotated document
* Format
* Fix translation on rotated document
* Remove logging
* Rotate around centre of viewport
* Rotate with shift + MMB drag
* Zoom with +/- keys
* Rotation input field
* Implement frontend zoom buttons
* Zoom with ctrl + MMB
* Format
* Update number inputs
* Require Ctrl + Plus / Minus key
* Ctrl scroll
* Update zoom -> Multiply Zoom
* Fix typo
* More fixing typo
* Remove :v-on
* Add mouse scroll X
* Scrolling on document
* Refactor
* Format
* Fix ctrl + plus/minus to zoom
* Reduce zoom sensitivity
* Ctrl + shift + mmb drag = snap rotate
* Further reduce zoom speed
* Add ctrl + number key to change zoom
* Switch Ctrl and Shift for zoom and rotate
* Fix compile errors
* Format JS
* Add increment to snap angle
* Edit getting layerdata functions
* Pass viewport size directily into create_document_transform_from_layerdata
* Add to_dvec2()
* Refactor get_transform
* Get -> Calculate
* Add consts
* Use to_radians
* Remove get from function names
* Use .entry when getting layerdata that does not exist
* Fix distance scroll calculations
* Fix zooming.
* Remove 'Violation' in chrome
* Fix compile errors
2021-07-12 23:50:10 -07:00
0HyperCube
1aebeabb3a
Unmount working folder on select ( #253 )
2021-07-12 12:58:12 -07:00
Simon Desloges
fb4d34bdc1
Add modifier keys to every keyboard and mouse input ( #247 )
...
* Add modifier keys to every keyboard and mouse input
* Fix bad naming convention in Typescript
* Added some tests related to modifier keys
2021-07-11 20:46:00 -07:00
Henry Sloan
3353974a0b
Implement nudging selected layers with arrow keys ( #245 )
...
* 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
2021-07-11 19:22:26 -07:00
0HyperCube
5d3a496456
Allow transforming layers ( #244 )
...
* Allow transforming layers
* Add document_layer function to return non mut
2021-07-11 10:24:46 +01:00
Simon Desloges
0240ba81cc
Implement Select All/Deselect All layers ( #242 )
...
* 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
2021-07-10 17:01:37 -07:00
Keavon Chambers
bc11e30785
Add a pull request template so GitHub reminds to reference issue numbers
2021-07-10 13:58:54 -07:00
Keavon Chambers
f9337bf635
Downgrade wasm-pack and Vue-related dependencies which are causing issues
...
This reverts commit 744e3729d7 .
2021-07-09 20:29:14 -07:00
Keavon Chambers
4ddb69d07e
Improve panel tabs to fix pixel mislaignments and support MMB closing
2021-07-09 16:49:54 -07:00
Keavon Chambers
e215495430
Improve readability of OptionalInput widget design styling
2021-07-09 16:02:36 -07:00
Keavon Chambers
12dac1c154
Add the checkbox input widget ( #204 )
...
* Add the checkbox input widget
* Add OptionalInput widget
2021-07-08 14:10:30 -07:00
Keavon Chambers
8eea3720f2
Fix horizontal scrollbar due to status bar negative margin
2021-07-05 00:38:18 -07:00
Paul Kupper
a297c9de8a
Implement viewport selection ( #178 )
...
* 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 >
2021-07-04 16:05:12 -07:00
Till Arnold
2595662d83
Copy and paste layers MVP ( #220 )
...
* 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
2021-07-04 15:34:47 -07:00
0HyperCube
b2064c7bfd
Re-add PartialEq removed in #230 ( #232 )
2021-07-04 14:27:09 -07:00
Paul Kupper
f808ee5a94
Don't use ESLint formatter for Rust files in VS Code ( #228 )
...
* Remove default formatter from vscode settings
* Only use eslint formatter on js/ts/json/vue files
2021-07-04 13:29:50 -07:00
kastenbutt
877c2c0e4e
Auto-select new layer created by Pen Tool. ( #235 )
...
Signed-off-by: kastenbutt <hello@jonasklein.dev >
2021-07-03 02:28:52 -07:00
Keavon Chambers
2ce6ca0935
Downgrade @vue/compiler-sfc which breaks linting
2021-07-02 15:02:01 -07:00
Keavon Chambers
77021176b2
Update wasm-pack dependency and others, fixes #167
2021-07-02 13:51:00 -07:00
Keavon Chambers
55d2fc4408
Add styled scrollbars ( #231 )
2021-07-01 22:08:23 -07:00
0HyperCube
df6f3fd9e8
Remove partialeq for layers ( #230 )
...
# Conflicts:
# Cargo.lock
# core/document/Cargo.toml
2021-06-29 21:06:37 +01:00