Keavon Chambers
4f318bbdae
Wrap serialized gradient stops in a new GradientRamp struct and unify FillChoice ( #4400 )
...
* Introduce the GradientRamp exchange struct as the serialized TaggedValue::Gradient payload
* Unify FillChoice and FillChoiceUI into one enum generic over color format, carrying GradientRamp stops
* Rename the TaggedValue::Gradient variant to GradientRamp to match its payload
* Move the Color variant into the tagged_value macro list since its stored and wire forms match
2026-09-10 20:23:56 +00:00
Keavon Chambers
b13ff712f5
Add a drill-in button beside Data panel gradient preview widgets ( #4398 )
2026-09-10 20:23:56 +00:00
Keavon Chambers
f688e4d478
Rework Gradient into a newtype of List<Color> with optional position and midpoint attributes ( #4397 )
...
* Rework Gradient into a newtype of List<Color> with optional position and midpoint attributes
* Fix Vello stopless-gradient fallback coverage, empty legacy gradient tables, the node docs gradient swatch, NaN position elision, and wired setter input overwrites
2026-09-10 20:23:55 +00:00
Keavon Chambers
46c0a08e06
Improve number fields/labels in the UI to filter out floating point noise and truncate at correct precision ( #4363 )
...
* Improve the displayed precision of float number labels
* Show actual tiny values in high-precision number fields
2026-09-10 20:13:43 +00:00
Timon
9d108421cd
Desktop: Stop compiling the editor into the wasm wrapper ( #4348 )
...
* Make wasm wrapper not depend on editor on native
* Introduce pkg-native
* Fix tests
* Fix fmt
* Correct span and make cargo fmt work inside editor_commands block
* Review
* Fix lint
2026-09-10 20:13:42 +00:00
Keavon Chambers
8bddd5680b
Convert the node catalog to rank-polymorphic Item and List kernels, materialize stored values as ranked wires, and display wire rank in the graph
2026-09-10 18:26:52 +00:00
Keavon Chambers
d13f926da3
Rename GradientStops to Gradient and the legacy Gradient/Fill structs to LegacyGradient/LegacyFill
2026-09-10 18:26:52 +00:00
Timon
eb50be844b
Remove now obsolete disable-registration special case from node macro ( #4375 )
2026-07-25 13:54:46 +00:00
Timon
f5b1fee85f
Fix node insertion crash caused by mismatched DefinitionIdentifier serialization ( #4353 )
2026-07-22 09:38:07 +00:00
Timon
6f8c4b2adb
Desktop: Stop compiling the editor into the wasm wrapper ( #4348 )
...
* Make wasm wrapper not depend on editor on native
* Introduce pkg-native
* Fix tests
* Fix fmt
* Correct span and make cargo fmt work inside editor_commands block
* Review
* Fix lint
2026-07-18 10:33:38 +00:00
Keavon Chambers
97a43e66fb
Split up Wasm binaries so Cloudflare deployments stay below 25 MB per file
2026-07-14 14:43:34 -07:00
Dennis Kobert
540a4ff273
Integrate document-format storage into the editor ( #4265 )
...
* Integrate document-format storage into the editor
* Address review feedback: drop redundant clones and dedupe metadata traversal
* Extract DocumentHistory and move storage-metadata tests to their own file
* Extract storage diffing/IO, gate validation and .gdd save behind preferences, restructure tests
* Address PR review: save-format/path consistency, autosave persistence, and view-settings/diff fixes
* Skip storage remount on .gdd open and split value/timestamp drift in attribute diff
* Rename storage tests module and surface .gdd open failures with per-resource diff detail
* Add debug-menu toggle to hide the storage preferences section
* Hopefully fix async tests
* Shorten comments
* Fix tests
* Review
* Review
* Review
* Block on future mesages in tests
* Review
* Shorten comments
---------
Co-authored-by: Timon <me@timon.zip >
2026-07-04 19:27:00 +00:00
Keavon Chambers
95c1ab81f3
Prep for the RC6 release of the desktop app
2026-07-01 04:55:57 -07:00
Keavon Chambers
7ae7bda3d3
Add persistence to the collapsed state of Properties panel node sections ( #4300 )
...
* Add persistence to the collapsed state of Properties panel node sections
* Improve comments
* Fix generator node handling with #4299
2026-07-01 04:54:39 -07:00
Keavon Chambers
1648e33c1f
Implement dragging to reorder Properties panel node sections ( #4299 )
...
* Implement dragging to reorder Properties panel node sections
* Code review
2026-07-01 03:39:52 -07:00
Timon
8a38af5be7
Rework clipboard handling to carry embedded resources across documents ( #4296 )
...
* Move clipboard code to its dedicated handler
* Adapt clipboard format to work with resources
* Restore visibility, lock, and collapse state when pasting layers
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2026-07-01 09:31:55 +00:00
Keavon Chambers
244b25708d
Add color picker gradient color stop duplication by holding Alt ( #4291 )
...
* Add color picker gradient color stop duplication by holding Alt
* Fix bugs
* Bug fix
2026-06-28 17:34:27 -07:00
Keavon Chambers
fa27d53b98
Add a Vite plugin to auto-prefix -webkit-user-select so it's not so often forgotten ( #4288 )
...
* Add a Vite plugin to auto-prefix -webkit-user-select so it's not so often forgotten
* Enforce a property boundary on the left
2026-06-28 00:20:26 -07:00
Keavon Chambers
c1fa8ba8da
Move NumberInput.svelte input processing from JS to Rust ( #4274 )
...
* Move NumberInput.svelte input processing from JS to Rust
* Fix edge cases
2026-06-22 14:57:11 -07:00
Timon
f798b48b83
Move branding and package install into cargo-run ( #4266 )
...
* Move branding asset fetch into cargo-run
* Move frontend npm install into cargo-run
* Rename branding::ensure to branding::setup
* Wording nits
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2026-06-22 20:21:46 +00:00
Timon
a72ac39059
Replace the dev server's wasm-pack, cargo-watch, and concurrently tools with custom cargo-run tooling ( #4254 )
...
Replace wasm-pack, cargo-watch and concurrently with custom build tooling
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2026-06-21 12:48:31 -07:00
Keavon Chambers
3414b32d5e
Remove dead code from the unused curves adjustment widget
2026-06-15 14:46:43 -07:00
Keavon Chambers
bc1f63ccc6
Add Alt+drag layer duplication to the Layers panel ( #4216 )
...
* Add Alt+drag layer duplication to the Layers panel
* Code review
2026-06-08 21:08:16 -07:00
Keavon Chambers
7a6e4f6f25
Fix new nodes being added in the wrong place near graph edges ( #4211 )
2026-06-07 19:22:30 -07:00
Hemu
b645871dbc
Fix duplicated dropdown selection styling when multiple entries have identical labels ( #4180 )
...
* Fix dropdown select if options have identical labels
* update other uses of label in favor of value
* simplify null checks
2026-06-07 17:53:58 -07:00
Timon
08c6d02e5b
Introduce network request handler ( #4194 )
...
* Impl NetworkMessageHandler
* Repalce Frontend fetch like messages with NetworkMessage
* Reimpl resource loading with NetworkMessage
* Fix wasm
* dedublicate resource requests
* Embedd font resources created by migration
* Fixup
* Fix tests
* Fix font catalog not loading
* Cleanup
* Fix layouts not updating when font catalog is loaded
* Review
* Review
* Cleanup
2026-06-05 13:27:45 -04:00
Timon
cd8ea1f554
Migrate fonts to be stored as resources ( #4165 )
...
* Good start
* Impl
* allow responses.add(async { Message::NoOp });
* Fix
* Cache font blob in text node
* Refactor font handling to use Font struct direcly
* Fix fmt
* Embedd Font Resources by default
* Review
* Review
* Cache font info based on ResourceHash
2026-06-05 13:27:25 -04:00
Dennis Kobert
7b9c480a8d
Make ResourceStorage trait &self-based and remove 'static requirement ( #4188 )
...
* Make ResourceStorage trait &self-based with elided-lifetime ResourceFuture
* Adress review comments
2026-06-01 10:37:05 +00:00
Dennis Kobert
78679a5ba2
Implement editor level future message handler ( #4182 )
...
* Implement proper editor level async message handler
* Take application_io and wake callback as Editor::new arguments
* Rename AsyncMessage -> FutureMessage
* add DesktopWrapperMessage::Wake
---------
Co-authored-by: Timon <me@timon.zip >
2026-05-31 21:26:29 +00:00
Timon
a40e0d2887
Use ResourceId for referring to Resources ( #4176 )
...
* Use ResourceId for referring to Resources
* Use Doc
* use error for preprocessor ResourceId replacement failure
* Keep hashes in DocumentInfo
* Migrate with less mem copy
* Global ResourceMessage -> ResourceStorageMessage
* Add document ResourceMessage
* Move embedding logic
* Fix
* Cleanup
* Review
* Fix
2026-05-29 10:56:32 +00:00
Timon
bbbe04903f
Define data types for ID-based resource handling ( #4168 )
...
* Add resource lib
* rename ResourceSource to ResourceInput
* Rename ResourceInput -> DataSource and improve API
* Review
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev >
2026-05-25 10:50:57 +00:00
Keavon Chambers
9dccc526bb
Add the May 2026 release message to the welcome screen
2026-05-23 01:41:42 -04:00
Keavon Chambers
96be4ec351
Add an "Initializing Renderer…" overlay when Vello shader compilation is slow on web
2026-05-23 01:07:26 -04:00
Timon
2770df7567
Implement content-addressed resource storage for raster images ( #4148 )
...
* Implement content-addressed resource storage
* Implement OPFS resource storage
* Remove ResourceStorage::read
* Review
2026-05-21 19:31:07 +00:00
Timon
d5f0140f26
Upgrade WGPU and Linebender dependencies ( #4154 )
2026-05-17 15:36:59 +00:00
Keavon Chambers
06e2a049de
Implement dragging layers into the group/new/delete buttons in the Layers panel ( #4153 )
2026-05-15 15:39:01 -07:00
Keavon Chambers
79df7cfa87
Implement dragging the visibility/lock icons in the Layers panel to toggle each ( #4152 )
...
* Implement dragging the visibility/lock icons in the Layers panel to toggle each
* Code review fixes
2026-05-15 15:16:40 -07:00
Keavon Chambers
16c7544d96
Add the Layer > Expand Fill/Stroke menu action ( #4151 )
...
* Add the Layer > Expand Fill/Stroke menu action
* Code review feedback
2026-05-15 13:10:50 -07:00
Keavon Chambers
a56746c6bf
Deprecate all usages of the Color struct representing gamma space values, fixing round-trip precision bugs ( #4149 )
...
* Deprecate all usages of the Color struct representing gamma space values, fixing round-trip precision bugs
* Code review fixes
2026-05-14 22:48:33 -07:00
Keavon Chambers
1c9c19a697
Simplify and standardize how data types are presented in user-facing strings ( #4147 )
...
* User-facing type formatting
* Parse unicode not ASCII chars
2026-05-14 00:56:43 -07:00
Keavon Chambers
696b625a3e
Fix hover transfer bugs occurring with the color picker popover ( #4146 )
...
* Fix hover transfer bugs occurring with the color picker popover
* Code review fix
2026-05-13 20:19:56 -07:00
Keavon Chambers
4d5dce976e
Replace the control bar's stroke weight with a full stroke properties popover ( #4145 )
...
* Replace the control bar's stroke weight with a full stroke properties popover
* Code review
2026-05-13 03:58:12 -07:00
Keavon Chambers
629a1f4b4c
Redesign how the control bar handles fill and stroke colors ( #4137 )
...
* Revamp how the control bar handles fill and stroke colors
* Fix bugs
* Code review
2026-05-11 18:13:02 -07:00
Keavon Chambers
f6def3b911
Add icons for stroke align, cap, join, and order ( #4136 )
2026-05-11 03:53:38 -07:00
Keavon Chambers
9d876ab27d
Add support for opening multiple selected files from disk ( #4128 )
2026-05-07 21:21:45 -07:00
Keavon Chambers
dff8ac5511
Remove code for the deprecated and unused Curve type ( #4127 )
...
* Remove the unused Curve type
* Fix frontend
2026-05-07 16:16:19 -07:00
Keavon Chambers
24c857ddc7
Make the Text tool control bar font family, style, and size sync with the selected layer ( #4118 )
...
* Fix contenteditable preview alignment
* Make the Text tool control bar font family, style, and size sync with the selected layer
* Tidying up
2026-05-06 20:50:41 -07:00
Keavon Chambers
2ae35a67e7
Add icons for text alignment/justification
2026-05-06 19:26:26 -07:00
Timon
8ae8c47fe1
Fix the Fix > Close All action not resulting in the welcome screen being shown ( #4107 )
...
Fix missing welcome panel after closing all documents
Closing all documents left the Welcome panel as the only tab, but the old active document index could still point to a tab that no longer existed. The fix is to reset it to 0 when the document list becomes empty.
2026-05-06 12:03:14 +00:00
Keavon Chambers
9db91a1ac4
Use the SpectrumInput widget for the adjustment node Properties panel layouts ( #4105 )
2026-05-05 03:42:44 -07:00