* 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>
* Do not select layer immediatly on drag
* Add LayerReferenceInput MVP widget
* Properties Panel
* Fix dragging marker flicker
* Change mask shape to outline
* Add mask rendering
* Simplify select code
* Remove colours
* Fix inpaint/outpaint and rearrage widget UX
* Add mask blur and mask starting fill parameters
* Guard for the case when the layer is missing
* Add icon to LayerReferenceInput to finalize its UI
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Node graph API stub
* Rename and fix SetInputValue
* Get list of links from network
* Test populating node graph UI
* Node properties
* Fix viewport bounds
* Slightly change promise usage
* A tiny bit of cleanup I did while reading code
* Cleanup and work towards hooking up node links in Vue template
* Add the brighten colour node
* Run cargo fmt
* Add to and from hsla
* GrayscaleImage node with small perf improvement
* Fix gutter panel resizing
* Display node links from backend
* Add support for connecting node links
* Use existing message
* Fix formatting error
* Add a (currently crashing) brighten node
* Replace brighten node with proto node implementation
* Add support for connecting node links
* Update watch dirs
* Add hue shift node
* Add create_node function to editor api
* Basic insert node UI
* Fix broken names
* Add log
* Fix positioning
* Set connector index to 0
* Add properties for Heu shift / brighten
* Allow deselecting nodes
* Redesign Properties panel collapsible sections
Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
* Add AI Artist layer
* WIP add a button to download the rendered folder under an AI Artist layer
* Successfully download the correct image
* Break out image downloading JS into helper function
* Change file download from using data URLs to blob URLs
* WIP rasterize to blob
* Remove dimensions from AI Artist layer
* Successfully draw rasterized image on layer after calculation
* Working txt2img generation based on user prompt
* Add img2img and the main parameters
* Fix ability to rasterize multi-depth documents with blob URL images by switching them to base64
* Fix test
* Rasterize with artboard background color
* Allow aspect ratio stretch of AI Artist images
* Add automatic resolution choosing
* Add a terminate button, and make the lifecycle more robust
* Add negative prompt
* Add range bounds for parameter inputs
* Add seed
* Add tiling and restore faces
* Add server status check, server hostname customization, and resizing layer to fit AI Artist resolution
* Fix background color of infinite canvas rasterization
* Escape prompt text sent in the JSON
* Revoke blob URLs when cleared/replaced to reduce memory leak
* Fix welcome screen logo color
* Add PreferencesMessageHandler
* Add persistent storage of preferences
* Fix crash introduced in previous commit when moving mouse on page load
* Add tooltips to the AI Artist layer properties
* Integrate AI Artist tool into the raster section of the tool shelf
* Add a refresh button to the connection status
* Fix crash when generating and switching to a different document tab
* Add persistent image storage to AI Artist layers and fix duplication bugs
* Add a generate with random seed button
* Simplify and standardize message names
* Majorly improve robustness of networking code
* Fix race condition causing default server hostname to show disconnected when app loads with AI Artist layer selected (probably, not confirmed fixed)
* Clean up messages and function calls by changing arguments into structs
* Update API to more recent server commit
* Add support for picking the sampling method
* Add machinery for filtering selected layers with type
* Replace placeholder button icons
* Improve the random icon by tilting the dice
* Use selected_layers() instead of repeating that code
* Fix borrow error
* Change message flow in progress towards fixing #797
* Allow loading image on non-active document (fixes#797)
* Reduce code duplication with rasterization
* Add AI Artist tool and layer icons, and remove ugly node layer icon style
* Rename "AI Artist" codename to "Imaginate" feature name
Co-authored-by: otdavies <oliver@psyfer.io>
Co-authored-by: 0hypercube <0hypercube@gmail.com>
* 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>
* Image and text bugfixes
* Mark only the required layer types as dirty
* Fix doctest
* Disable selection if empty
* Cleanup naming
* Simplify cache deleting on export
* Minor css style change
* Nit
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Keyboard menu navigation
* Fix dropdown keyboard navigation
* Fix merge error
* Some code review
* Interactive dropdowns
* Query by data attr not class name
* Add locking behaviour
* Add font prieviews
* Remove blank line in css
* Use default for interactive in struct
* Use menulist for fontinput
* Polish
* Rename state -> manager
* Code review
* Cleanup fontinput
* More cleanup
* Make fonts.ts an empty state
* Fix regression
Co-authored-by: Keavon Chambers <keavon@keavon.com>