Replaces the WIP node crate, which depended on a convex_hull crate that
only existed outside the repository, with a self-contained implementation:
- The curved hull algorithm lives in vector-types' algorithms module. It
splits curves at inflections and cusps into curvature-monotone arcs,
discovers the boundary structure from a sampled polygonal hull, refines
every transition to an exact tangency with closed-form quartic
tangent-through-point solves, then emits the boundary as cuts of the
original segments joined by straight bridge lines.
- The node moves into vector-nodes alongside the other 'Vector: Modifier'
nodes, ported to the List/attributes model. It accepts Graphic[] or
Vector[], wraps every subpath (open or closed) and free-floating anchor
point across all items, and outputs a single world-space hull path.
- The boolean-union pre-pass is dropped as unnecessary: the hull of all
segments equals the hull of their union, and the polyline connector it
relied on lost floating points and mishandled open paths.
* 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
* WIP render caching
* Hook up render cache to render pipeline
* Fixed offsets
* Initial cleanup
* Integrate cache with context invalidation
* Cleanup
* Improve rounding and reduce tile size to fix vello not rendering
* Include pointer position in cache key
* Avoid unwraps and zero sized textures
* Destroy textures after blitting to surface
* Fix context dependencies
* Exclude footprint from render params
* Batch animation frame messages
* Add vello max render size to preference dialogue
* Remove unused import
* Reorder vello preference
* Clean up preferences dialog
* Apply review suggestions
* Cap max render region size
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>