* Fix abortion while dragging
* Create function for text bounding box
* Reorder arms of text tool FSM
* add transform cage to textbox pt.1
* add transform cage pt.2
* Fix minor issue after merge
* Get bounding box working in place without action keys
* Add max_height and disable pivot drag
* Cleanup code and write doco for new utility function
* Minor change due to merge
* Add bottom overlay
* Get modifier keys to work pt.1
* Code cleanup
* cleanup
* Fix transform
* Minor improvements
* Undo debug statement!
* Add comments and keep original layer transformation
* Alt from centre
* Fix merge conflict
* Minor code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: hypercube <0hypercube@gmail.com>
Co-authored-by: James Lindsay <78500760+0HyperCube@users.noreply.github.com>
* Just group
* Partly working but without transforms
* Remove Transform/TransformMut from GraphicElement and GraphicGroupTable
* Fix layers and flattening
* Fix transform group handling on the remaining nodes
* Change collect metadata
* Add transform on vector data. TODO: Remove duplicate transform
* Small code tidying-up
* Add concatenate node?
* Remove ignore_modifications which is always false
* Improve transforms
* Mostly fix the nested transform cage angle (except leaf layers and skew)
* WIP attempt to integrate skew
* Fix nesting bounding box
* Avoid setting the transform
* Fix stroke transforms
* Renderer cleanup
* Fix tests for repeated elements not given unique point IDs
* Suppress cargo-deny warning
* Fix upgrade code for graphic group data
* Work around rendering issue in Isometric Fountain
---------
Co-authored-by: Adam <adamgerhant@gmail.com>
Co-authored-by: hypercube <0hypercube@gmail.com>
* Remove color input outline; reduce antialiasing compositing artifacts in color widgets
* Rename ColorButton to ColorInput
* Add features and aborting to several other widgets
- Prevent Esc from closing parent floating menus when aborting
- Fix missing icon regression
- Gutter resizing abort
- Color picker aborts, Shift axis alignment, improve click/drag behavior for gradient spectrum
- Scrollbar abort, repeat when held, fix directional arrows when viewport is zoomed
- Number input abort, repeat when held
* Move ColorInput into the inputs folder
* Fix tiny logo
* Changes rotation handles to be around overlay squares
Fixes https://discord.com/channels/731730685944922173/931942323644928040/1330785941786329209
* Fix zero width objects not being selected by slightly nudging the transform
* Follow the categorical limits to render overlay quads
As discussed here: https://discord.com/channels/731730685944922173/931942323644928040/1331166336923074600
* Replace area based calculations with edge based calculations
* Fix 3rd category vis
* Code review
* Add missing powi(2)
* Fixes to handle logic
* Remove single axis prioritisation
* Explicitly check for distance to find nearest handle
* Replace threshold check based on corner vis bounds
* Fix discrepancy at h=12px
* Allow grab when box is too small by disabling resizing within bounds
* Replace inside resize pixel limit
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* implemented left selection logic
* added logic for right ward selection
* removed the logs code
* corrected capitalization error
* corrected capitalization error
* added radio buttons for selection_mode
* fixed multiple selection of checkboxes
* adapted to the RadioEntryData
* State management bug
* integrated message system to selection_mode
* updated
* updated
* added selection mode to transition arms
* removed from portfolio message and added preference in ToolMessageData
* removed dead code of selection_mode from frontend logic
* removed dead code for zoomWithScroll
* Cleanup
* Rename, simplify, use dashed box, and highlight only outlines of layers that'll get selected
* More code review
---------
Co-authored-by: Pratik Agrawal <patrik@Pratiks-MacBook-Air.local>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Fixes last tab being opened instead of last active tab
Fixes https://discord.com/channels/731730685944922173/881073965047636018/937518022548131891
* Defers node initialisation to SelectDocument message instead of load_document
* Fix warning regarding attempt to load closed document
* Defer loading resources and running nodes to selection time
* Make last active tab load before others
* Load last active saved document instead of last autosaved doc
* Fix failing tests
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Make progress in text tool
* Add line_width to gcore and gstd
* minor fix
* Dragging sets line_width correctly
* Get draw overlay to work
* Typo fix
* Make progress in text tool
* Add line_width to gcore and gstd
* minor fix
* Dragging sets line_width correctly
* Get draw overlay to work
* Typo fix
* Improve text bounding box
* Add toggle for editing line width
* Take absolute value of drag
* Fix optional properties
* Code review
* Attempt to add box height and abort with keys
* Attempt to add key modifiers and snap manager
* Use resize for improved dragging
* Refactor typesetting configuration into a struct
* Fix missing px unit in frontend
* Remove lines on rendered text
* Fix backwards compatibility
* Refactor lenient slection as an associate function in tool data
* Add dashed quad to text nodes
* Use correct names for max height and width
* Additional renames and reorder
* ReResolve conflict
* Code review and improvements
---------
Co-authored-by: hypercube <0hypercube@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* properties panel remains active when user edits text layer
* Keep text layers selected after editing
* Update editor/src/messages/portfolio/document/document_message_handler.rs
* Delete Empty Text Layer on Escape or Right Click
* Fix: delete empty text layer on right click
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Add "Fade Artwork" slider and disable tools when graph is open
* Add navigation and layer/node management buttons to graph top bar
* Reduce code duplication
* Add node button
* Improve css a bit
* Add layer renaming to the Properties panel and move New Layer to that, plus add unpinning to properties sections
* Add tooltip
* Re-add layer itself in listing
* Final code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Add support structure for new node macro to gcore
* Fix compile issues and code generation
* Implement new node_fn macro
* Implement property translation
* Fix NodeIO type generation
* Start translating math nodes
* Move node implementation to outer scope to allow usage of local imports
* Add expose attribute to allow controlling the parameter exposure
* Add rust analyzer support for #[implementations] attribute
* Migrate logic nodes
* Handle where clause properly
* Implement argument ident pattern preservation
* Implement adjustment layer mapping
* Fix node registry types
* Fix module paths
* Improve demo artwork comptibility
* Improve macro error reporting
* Fix handling of impl node implementations
* Fix nodeio type computation
* Fix opacity node and graph type resolution
* Fix loading of demo artworks
* Fix eslint
* Fix typo in macro test
* Remove node definitions for Adjustment Nodes
* Fix type alias property generation and make adjustments footprint aware
* Convert vector nodes
* Implement path overrides
* Fix stroke node
* Fix painted dreams
* Implement experimental type level specialization
* Fix poisson disk sampling -> all demo artworks should work again
* Port text node + make node macro more robust by implementing lifetime substitution
* Fix vector node tests
* Fix red dress demo + ci
* Fix clippy warnings
* Code review
* Fix primary input issues
* Improve math nodes and audit others
* Set no_properties when no automatic properties are derived
* Port vector generator nodes (could not derive all definitions yet)
* Various QA changes and add min/max/mode_range to number parameters
* Add min and max for f64 and u32
* Convert gpu nodes and clean up unused nodes
* Partially port transform node
* Allow implementations on call arg
* Port path modify node
* Start porting graphic element nodes
* Transform nodes in graphic_element.rs
* Port brush node
* Port nodes in wasm_executior
* Rename node macro
* Fix formatting
* Fix Mandelbrot node
* Formatting
* Fix Load Image and Load Resource nodes, add scope input to node macro
* Remove unnecessary underscores
* Begin attemping to make nodes resolution-aware
* Infer a generic manual compositon type on generic call arg
* Various fixes and work towards merging
* Final changes for merge!
* Fix tests, probably
* More free line removals!
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* modify interval calculation
* modify progression and add powers of 10
* Some small tweaks
* Prevent the graph view from subdividing below 1
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>