* Allow generic node input for type inference
* Make imaginate resolution picking depend on the image resolution instead of the transform
* Remove dead code
* Fix console spam after crash
* Fix crash when disconnecting Imaginate node input
* Update Imaginate tool tooltip
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
* A few minor lints and docs
* Added required packages to compile on Debian-style linux
* Inlined some format args, and removed some `&` in args (they cause about 6% slowdown that compiler cannot inline)
* a few spelling mistakes
* fix fmt
* Organize persistence.ts
* Switch to simpler promise handling
* Switch document list storage from localStorage to IndexedDB
* Track document auto-save status to avoid re-auto-saving unnecessarily
* Add button to clear storage on crash
* Bump document version and test file
* Switch to IDB-Keyval instead of raw IDB transactions
* IPP for Mac, flawed initial experiments
* Cleanup and progress, but not compiling yet
* Fix error and rename nonmac -> standard
* Extentd ipp macros to accomodate mac input
* Add Mac versions of shortcuts; refactor and document the input mapper macros
* Change frontend styling for user input labels in floating menus
* Additional macro documentation
* A little more documentation
* Improve entry macro syntax
* Move input mapper macros to a separate file
* Adapt the keyboard shortcuts to the user's OS
* Display keyboard shortcuts in the menu bar based on OS
* Change Input Mapper macro syntax from {} to ()
* Fix esc key bug in Vue
* Tweaks
* Interim solution for Mac-specific hints
* Feed tooltip input hotkeys from their actions
* Fix hotkeys for tools because of missing actions
* Make Vue respect Ctrl/Cmd differences per platform
* Remove commented lines
* Code review pass by me
* Code review suggestions with TrueDoctor
* Turn FutureKeyMapping struct into ActionKeys enum which is a bit cleaner
* Add serde derive attributes for message discriminants
* Re-add serde deserialize
* Fix not mutating ActionKeys conversion; remove custom serializer
* Add serde to dev dependencies
Co-authored-by: Dennis <dennis@kobert.dev>
* unfinished implementation
* Add frontend for the empty panel screen
* Add an icon for Folder based on NodeFolder
* fixed messages causing peicees of ui not to render on new document
* Standardize nextTick syntax
* WIP generisization of component subscriptions (not compiling yet)
* Fix crash when loading font and there is no active document
* Only advertise tool actions with a document
* Fix failure to create new document
* Initalise the properties panel
* Fix highlight tab, canvas jump, warns and layer tree
* Fix tests
* Possibly fix some things?
* Move WorkingColors layout definition to backend
* Standardize action macro formatting
* Provide typing for widgets in TS/Vue and associated cleanup
* Fix viewport positioning initialization
* Fix menu bar init at startup not document creation
* Fix no viewport bounds bug
* Change !=0 to >0
* Simplify the init system
Closes#656
Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: 0hypercube <0hypercube@gmail.com>
* Dissolve Points from path
* Add handling for removing the first anchor
* Add function to turn handles into bez_paths
* Created overlay manager, wip
* WIP Refactor of VectorShape / Overlays / ShapeEditor
* WIP stripping vector shape, anchor, point.
* WIP Removed kurbo deps from vector shape, anchor, point
* WIP Further work to make vector shapes / anchors / points more standalone.
* WIP more pruning
* WIP Progress on overlay_renderer
* WIP more overlay_renderer work
* WIP more pruning, cleared warnings
* WIP decided ShapeRenderer wasn't an accurate name, ShapeAdapter now. Error squashing continues.
* WIP squashed more errors, now need to decide if anchors should have unique IDs
* WIP Errors squashed, now to actually make it work.
* WIP Moved vector structs to graphene, beginning to remove bezpath from shape_layer
* Refactoring: disentangle kurbo from apply_affine
* Refactor internal shape and remove reliance on Kurbo (PR #617) - Disentangle Kurbo (#619)
* Refactoring: disentangle kurbo from apply_affine
* Broke boolean operations, refactor in state which compiles
* "fixed" boolean operation refactor related errors
* fixed apply_affine, which would not have applied any type of affine
* Small Cleanup, readability
* Fix issue with overlay styles no longer showing selection state.
* Resolved error with point option
* WIP, figuring out how to have one source of truth for VectorShape. Trying to avoid cloning.
* WIP work on single source of truth vectorshapes
* More steps toward single source of truth VectorShape
* Continued wip on making VectorShapes mutably accessible without cloning
* Wip using paths to reference vectorshapes instead, need to restructure ShapeEditor
* Decided to allow temporary copies of vectorshapes.
* Removed HashSet for selected shape indices
* Added @TrueDoctor's id_storage.rs with some heavy modification. Added it to VectorShape. Isn't yet used for folders.
* Integrated UniqueElements<T> with VectorShape to store VectorAnchors
* Improved storage_id.rs perf and cleaned up it's interface
* Iterator Implementations and fixes (#637)
* Refactoring: disentangle kurbo from apply_affine
* Broke boolean operations, refactor in state which compiles
* "fixed" boolean operation refactor related errors
* fixed apply_affine, which would not have applied any type of affine
* implemented transforms for VectorAnchors
implemented Not for VectorControlPointType
* started adding Vector Shape implementations of shape prototypes
* added several useful implemtations to UniqueElements
* added another implemnation for UniqueElements to make working with iterators easier, fixed vector-shape errors
* package-lock.json
* clean up rebase, added back Layer paths
* added deref implementation for VectorShape
* unnecesary variable
* simplify code by removing levels of indirection
* fixed errors
* merge cleanup
* removed package-lock.json
* Removed .selected from VectorShape, it isn't needed as layers are selected not shapes specifically.
* Removed transform and layer_path from VectorShape
* Auto-saving tentitively working. Work toward Overlay transform issues.
* Overlays properly hiding and caching. Not clearing cache yet and some tool switching issues remain, but progress.
* Putting layers in folders changes their unique ID. This is problematic. Assumed this was not the case.
* Removed need for closed bool, changed VectorShape to a tuple struct.
* WIP Switched to layer paths as opposed to VectorShapes. Next up add messages for changing VectorShapes.
* Added initial messages to edit VectorShape points.
* DeleteSelectedPoints messages implemented, selection isn't working currently though.
* Selection messages arriving in document, but transform is wrong.
* Selection, Deselection working, delete working for first point.
* Working towards moving points again
* Removed extra vec from UniqueElements, attempting to squash ordering bug. Still appears to occur though.
* Delete more stable, clean up, renamed to HandleIn, HandleOut
* Further vec_unique cleanup
* Further cleanup
* Removed Deref / DerefMut from VectorShape
* Document version++, will likely revert before merge into master
* Seleting / deleting handles tentitively working again.
* Version number bump, fixed tests.
* Fixed comment in VecUnique
* Improved VecUnique descriptor comment
* Renamed VecUnique to IdBackedVec to further clarify usage.
* Resolved formatting.
* WIP Fixing dragging points
* Fixed an instance where an OverlayMessage could be sent to the main document incorrectly.
* Deleting all of a shapes points now gracefully deletes the layer instead of crashing.
* Fixed handle configurations that would panic on deletion
* Single anchor dragging restored with multi-dragging next plus handles
* sides.into()
* Handle and Multi-point dragging working
* WIP Handle symmetry working again
* Handle mirroring functional again.
* Cleaned up warnings
* Fixed overlay outline not matching shape
* Git branch fix of compatibility with new master
* Fixed closed shape bug, replaced kurbo ellipse
* Removed unused func, updated comments
* Deleting points can undo, multiple shape selection deletes now working
* Removed AddOverlay* operations
* Partial fix for select drift, added helpers
* Don't snap against dragging points
* Properly cleanup path outline with multiple shapes
* Clear all points in other selected shapes
* Actually don't snap against dragging points
* Fix path tool & add snap angle and break handle
* Fix handle being set to NaN causing render issues
* Fix cached overlays not showing line -> curve
* Add operations for modifying paths
* Remove kurbo from pen tool
* Do not snap against handles when anchor selected
* Fix overlays not being cleaned up on path tool
* Fix handle position after dragging
* Use `Anchor` for text & no kurbo in operations
* Replace kurbo to_svg function
* Ngon no longer center scales by default, still some weird behaviour when holding alt
* Cleanup overlays
* Fix render and bounding box doctests
* Fix fun to_svg error
* Fix compile error
* Some code review
* Remove legacy `SelectPoint` on doubleclick
* Remove font from test document
* Fix the pen tool selection changed
* Reorder imports
Co-authored-by: Dennis <dennis@kobert.dev>
Co-authored-by: Caleb Dennis <caleb.dennis429@gmail.com>
Co-authored-by: caleb <56044292+caleb-ad@users.noreply.github.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: 0hypercube <0hypercube@gmail.com>
Co-authored-by: 0HyperCube <78500760+0HyperCube@users.noreply.github.com>
* Fix two-axis scrollbars in scrollable regions on Firefox
* Move Document Mode dropdown to the backend; and related code cleanup
* Port the Layer Tree options bar layout to the backend
* Port the tool shelf to the backend
* Clean up initialization and wasm wrapper
* Fix crash
* Fix missing document bar
* Remove unused functions in api.rs
* Code review
* Tool initalisation
* Remove some frontend functions
* Initalise -> Init so en-US/GB doesn't have to matter :)
* Remove blend_mode and opacity from LayerPanelEntry
Co-authored-by: 0hypercube <0hypercube@gmail.com>