* Port gradient tool overlays
* Fix tests
* Text tool
* Artboard tool and some of select tool
* Port select tool drawing box
* Pen and path tool
* Remove overlays document
* Show the overlay refactor as done on the website roadmap
* Select tool bounds in layer space (first layer)
* Code review and fixes
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Fix crash when drawing on a deleted artboard
* Fix clear artboards button
* White background on no artboards
* Re-disable Clear Artboards since it still crashes
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Hide and collapse layers
* Reorder imports
* Fix Ctrl+H shortcut advertized action and hotkey tooltip; improve graph top right of options bar
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Reduce query selector all that was slowing perf
* Speed up double iteration of filter map with flatMap
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Initial work on fixing tests
* Fix formatting
* Remove dead code to satisfy rustc warnings
* Insert into an artboard
* Load updated artwork in editor
* Remove popup when importing image
* Fix up demo art
* Change transform app[lication method
* Reduce number of enums called BlendMode
* Finalize the demo artwork upgrade
* Code review pass
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Fix select tool smooth button
* Nit
* Fix behavior when zero points are selected but the shape is active
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Create artboard nodes
* Update node when resizing artboard
* Render clipped artboards
* More stable feature
* Do not render old artboards
* Fix some issues with transforms
* Fix crash when drawing rectangle
* Format
* Allow renaming document from Properties panel
* Adjust artboard label styling
* Fix document graph refresh so artboards show up
* Make "Clear Artboards" coming soon
* Fix displaying an infinite canvas
* Show document name in node graph options bar
* info!() to debug!()
* Fix Properties panel not being cleared when all docs closed
* Remove dead code
* Remove debug logs added in this branch
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Thumbnails for the layer node
* Raster node graph frames
* Downscale to a random resolution
* Cleanup and bug fixes
* Generate paths before duplicating outputs
* Fix stable id test
* Add a document node graph
* Fix merge conflict
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Thumbnails for the layer node
* Raster node graph frames
* Downscale to a random resolution
* Cleanup and bug fixes
* Generate paths before duplicating outputs
* Fix stable id test
* Code review changes
* Code review pass with minor changes
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Initial work towards text to node
* Add the text generate node
* Implement live edit
* Fix merge error
* Cleanup text tool
* Implement text
* Fix transforms
* Fix broken image frame
* Double click to edit text
* Fix rendering text on load
* Moving whilst editing
* Better text properties
* Prevent changing vector when there is a Text node
* Push node api
* Use node fn macro
* Stable ids
* Image module as a seperate file
* Explain check for "Input Frame" node
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Fix default value for output node
* Don't set frame transform to zero
* Fix typo in hash function
* Clear frame on empty image
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Multiple node outputs
* Add new nodes
* gcore use std by default to allow for testing
* Allow multiple node outputs
* Multiple outputs to frontend
* Add ImageFrameNode to node registry
* Minor cleanup
* Basic transform implementation
* Add some logging to image encoding
* Fix ImageFrameNode
* Add transform input to Imaginate node (#1014)
* Add transform input to imaginate node
* Force the resolution to be edited with no transform
* Add transform to imaginate generation
* Fix compilation
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Add labels to node outputs
* Fix seed; disable mask when transform is disconnected; add Imaginate tooltips
* Rename 'Input Multiple' node to 'Input'
* Code review
* Replicate to Svelte
* Show only the primary input chain in the Properties panel
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Use builder pattern for widgets
* Arguments to new function
* Add node graph when dragging in image
* Fix duplicate import
* Skip processing under node graph frame if unused
* Reduce node graph rerenders
* DUPLICATE ALL frontend changes into other frontend
* DUPLICATE more changes to another frontend
* Code review
* Allow importing SVG files as bitmaps
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Convert DocumentSave to struct
* Comit the artboard history save in some cases
* Cause index out of bounds error
* Use box to avoid weird wasm error
* Implement the artboard history
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Add some more history states
* Fix undo whilst drawing
* Paste image history
* Toggle output and preview history
* Code review nits
* Remove extra '{'
* Fix typo
* Fix about.toml
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Reuse existing gradient
* Double click to insert gradient stop
* Add history states to the gradient tool
* Do trig in viewport space so it is actually perpendicular
* Sync tool options with active gradient
* Deleting points with delete key
* More tolerance on inserting points
* Add the link button
* Transform around pivot
* Remove log
* Fix tests
* Add a hacky two-line layout for the checkbox
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Store drag start as document position
* Don't open graph whilst drawing
* Rename to is_drawing_node_graph_frame
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Don't allow disabling input or output nodes
* Shortcuts to show and preview node
* Update preview tooltip and label
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Add UI diffs to rust
* Clean up some js
* Fix lints
* Fix test
* Remove one unnecessary keyword
* Rename to widget path
* Rename new_val to new_value
* Rename newVal to layoutGroup in createLayoutGroup
* Extract get_widget_path to a function
* Base skipping on the layout rather than the target
* Rename to ResendActiveWidget
* Switch info to trace
* Add a link to the documentation about Object.assign
* knitpick js changes
* Add more comments to diff functions
Co-authored-by: mfish33 <maxmfishernj@gmail.com>