* Add support for double-clicking to rename layers in the graph view
* Fix text double-click area ending 10px too early from the right
* Fix clicking out and intermittent cursor clicking in text field
* Improve the Data panel with more type-specific detail pages
* Add network_path to SetDisplayName so renames target any network depth
* Track nested layers via full editor:layer paths and rename parent_layer to path_of_subgraph
* Polish the data panel NodeId leaf page with an editable name field
* Make lock and visibility toggles work for layers in nested subgraphs
* Fix formatting
* Fix connected_to_output running in the wrong network for nested-layer toggles
* Fix dropdown menus spawning offset in scrolled panels, a regression from upgrading to Svelte 5.54
Regression introduced in #3933 by upgrading from Svelte 5.47.1 to 5.54.1
* Code review
* Fix unrelated typo
* Add assets build size to build link comment
* Improve the Data panel's data display with monospaced text and copyable number values
* Revert attempted fix for dropdown menus appearing lower in scrolled Properties panel, since it makes other floating menus freeze the app
* Code review
* Switch indexedDb document serialized struct from camelCase to snake_case
* Refactor and migrate old indexedDb format to the same shape as desktop persistence
* Avoid duplicate struct definitions in the desktop crate
* Refactor frontend message handling to consolidate auto-save document loading
* Code review
* Review
---------
Co-authored-by: Timon <me@timon.zip>
* Add interactive panel docking
* Preserve active tab when a panel group is docked
* Add inter-panel gutter hover color
* Code review fixes
* More code review
* Add support for dragging panel tabs docked into other panel tab bars
* Fix terminology
* Add Group suffix to PanelGroupId enums variants
* Code review
* Fix Morph node transform interpolation and preservation in the table
* Fix click target positions for Morph's nested layers by pre-compensating upstream_data transforms
* Redesign Morph node (v3) with control path input and uniformly spaced progression, and fix Stroke::lerp interpolation weights
* Add migration from Morph node v2 to v3
* Redesign the 'Blend Shapes' node behavior and subgraph definition
* Add the Layer > Blend menu entry to easily set up a blend
* Optimize the Morph node
* Refactor the Morph node to remove the roundtrip through BezPath
* Fine-tune Morph node Bezier order promotion and handle interpolation
* Add the Layer > Morph menu bar entry
* Fix NaN and guard against other potential NaN bugs breaking the editor
* Add InterpolationDistribution parameter to Morph with weighted progression, swap parameter orders, and rename shear to skew
* Add the Reverse parameter to the Morph node
* Update the order of the inputs to Blend Shapes for consistency with Morph
* Make Layer > Morph create the Morph Path control layer
* Fix migrations
* Move 10 to a constant
* Avoid division by 0 in the Blend Shapes node internals
* Rename nodes 'Blend' -> 'Mix' and 'Blend Shapes' to 'Blend'
* Fix a crash encountered while testing
* Final code review
* Make domain push dupe checks debug-only and use push_unchecked in the Morph node
* Pre-allocate for pushes to the vector domains
* Add fast path at t=0
* Inline reserve()
* Set up the control path layer above not below, and starting collapsed
* Review fixes
---------
Co-authored-by: Timon <me@timon.zip>
One appeared on load (a deprecated meta tag). One appeared when adding an Identity (Passthrough) node. One appeared when exposing the the Weight parameter of the Stroke node. This also fixes the intended behavior of the bisect script, which was involved when finding the prevenance of these errors.
* Fix virtual scrolling MenuList dropdowns shrinking when wider content goes away
* Code review fixes
* Fix small CI workflow bug
* Stop scrolling in dropdowns from horizontally scrolling the control bar
* Use more robust way of getting commit hash in CI workflow
* Implement the service worker for cached offline mode
* Improve pre-loaded font menu preview visualization
* Code review fixes
* Simplify Response construction
* Attempt to fix ERR_FAILED when reloading page on CF Pages
* Reject service worker install if any precache fetch fails
* Fix an assertion failure bug when scaling a line in the transform cage
* Fix missing defaults on node gradient inputs
* Fix Blend Shapes path input wire not updating to show in the UI after Layer > Blend
* Fix assertion failure due to browser non-monotonic timestamp
* Fix SVG renderer drawing 1px strokes as half-width when using stroke alignment
* Fix incorrect appearance of the ColorInput widget when set to "none" and "disabled"
* Fix lerp function in Fill enum to handle None cases correctly
* Fix stroke alignment bug
* Remove the unused Editor.raw/wasmMemory/wasmImport
* Split out Editor.subscriptions
* Replace editor.handle.* with editor.* (1 of 2)
* Replace editor.handle.* with editor.* (2 of 2)
* Replace Editor typedef with EditorHandle import
* Pluralize subscription-router and rename subscriptionsRef->subscriptionsRouter and editorRef->editorHandle
* Remove editor.ts
* Update the readme
* Fix demo art loading bug
* Replace parameter passing with getContext and extract destroy functions to module-level exports
* Resend layouts from Rust when editor is re-mounted on HMR
* Code review
* Clean up component setup/tear-down side effects
* Clean up more component setup/tear-down side effects
* Remove nonfunctional debouncer
* Clean up even more component setup/tear-down side effects
* Reuse backend state
* Fix HMR for IO Managers and for State Providers
* Rename IO Managers -> Managers and State Providers -> Stores
* Restructure and partially flatten managers/stores
* Code review fixes
* Review fixes
* Migrate Specta to Tsify to auto-generate messages.ts, working except colors and widgets
* Adopt the generated FillColor/Color/GradientStops
* Fix widget typing
* Separate WidgetGroup enum variants into wrapper structs
* Small rename
* Simplify widgets further
* Clean up message type references
* Switch type imports to the auto-generated file
* Remove lowercase serde rename
* Fix FillChoice deserialization
* Fix small regression from #3837
* Improve type safety
* Make WidgetSpan type-safe
* More cleanup and type safety
* More type safety
* More type safety
* Get the rest to type-check without errors; improve widget builder macro to have optional icons; improve Svelte 5 configs
* Cargo fmt
* Fix imports
* Update outdated readme info
* Fix lint command rename references
* Fix typos
* One more typos fix
* Remove unnecessary dep: prefix from the edited Cargo.toml files
* Remove excess parts from Cargo.toml
* Fix compiling on desktop
* Revert "Remove excess parts from Cargo.toml"
This reverts commit 6b711117b3a5d5d8a3ee20f36a43bc74930b7c82.
* Update dev docs with simpler, more accurate instructions
* move nix flake to root
* cargo run tool
* use thiserror in third-party-licenses tool
* prefere panic over exit
* Add automatic dependency check to cargo run tool
* Skip dependecies that are not needed for the current task
* Fixup
* Fixup
* fix windows
* Fixup
* improve usage text
* Fix linux bundle
* add graphen-cli
* fix build profile
* fix
* release profile should not include debug infos
* Review
* remove profiling profile
was redundent with release
* rename to cargo-run tool
* improve consistency
* rename deps to requirements
* fix
* return success when showing usage
* Fix gamma correction with HTML-based editable Text tool text
* Migrate simple, undecorated classes to types
* Remove TupleToVec2 transformation
* Remove @Transform from tooltips
* Cleanup: replace value.toString() with String(value) everywhere
* Convert documentId from string to bigint
* Migrate the rest of the easy @Transform/@Type decorations
* Migrate FillChoice
* Migrate WidgetDiffUpdate
* Migrate WidgetInstance
* Migrate away from classes that extend WidgetProps
* Remove class-transformer and all classes in messages.ts
* Migrate UI layout passing
* Remove dead code
* Remove unnecessary export and readonly prefixes
* Remove HSVA type
* Break out Color, Gradient, and FillChoice functions into a utility-functions file
* Move widget helper functions from messages.ts into a new utility-functions file; restructure type imports
* Reduce internal type defs
* Rename JsMessage to FrontendMessage
* Code review fixes
* Fix other usages
* Tidying up