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
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
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
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
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
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
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
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
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
e59612c4ce
Port the color picker popover to a Rust-defined layout ( #4102 )
...
* Break out VisualColorPickersInput.svelte
* Break out ColorComparisonInput.svelte and ColorPresetsInput.svelte
* Add backend definitions and plumbing for the 4 new widgets
* Port the ColorPicker.svelte layout and business logic to Rust
* Port more ColorComparisonInput.svelte logic to Rust
* Port more SpectrumInput.svelte logic to Rust
* Port more frontend logic to Rust
* Code review
* Code review
* Fix some CSS
2026-05-05 02:47:53 -07:00
Keavon Chambers
83d03ad67d
Fix panel docking bugs and polish its behavior ( #4087 )
...
* Fix panel docking bugs and polish its behavior
* Fix bug
2026-05-01 17:02:10 +00:00
Keavon Chambers
5774ec215d
Replace deprecated row/cell/instance terminology with "item" and "value" terms ( #4075 )
2026-04-28 19:12:59 -07:00
Keavon Chambers
d44b0cd308
Make documents fall back to "Untitled Document" (+ number suffix) if given a blank name ( #4074 )
...
* Make documents fall back to "Untitled Document" (+ number suffix) if given a blank name
* Bug fix
2026-04-28 18:37:13 -07:00
Keavon Chambers
b152f46380
Add support for double-clicking to rename document tabs ( #4072 )
2026-04-28 17:54:58 -07:00
Keavon Chambers
6b11b47753
Improve the Data panel with type-specific detail pages and nested-layer support ( #4070 )
...
* 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
2026-04-28 15:37:07 -07:00
Dennis Kobert
3d84e63ef9
Migrate usage of the Hash trait for cache invalidation to the dedicated CacheHash trait ( #4051 )
...
* WIP start migrating usages of hash for cache invalidadion to dedicated trait
* Finish migrating usages
* Code review
* Add comments clearifying the reasoning for using random ids in the VectorModification cach hash impl
* Fix some remaining hash violations
* Finish migration and fix compilation
* Fix import ordering
* Cleanup
* Fix code review stuff
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2026-04-27 05:18:47 +00:00
Timon
6c5e3c97f8
Refactor persistence to combine document handling and workspace layout ( #4031 )
...
* Unify editor state persistence
* Review
* Fix
* Remove redundant DocumentDetails
* LoadDocumentContent indirection
2026-04-19 09:31:21 +00:00
Timon
661e8bc569
Remove surface and window from ApplicationIo ( #3941 )
...
* Remove surface and window from ApplicationIo
* Seperate Wasm and Native ApplicationIo
* Fix warnings
* Fix tests
* Remove redundant PlatformApplicationIo::new_offscreen
* Fixup
* Remove unused From implementaitions for ApplicationIo
2026-04-09 20:12:53 +00:00
Keavon Chambers
b100892bfa
Add support for persistent storage of panel layouts, sizes, and active tabs ( #4017 )
...
* Add persistence to panel layouts
* Fix and persist the Window > Focus Document mode
* Add a Window > Reset Workspace action
* workspace_layout.json -> workspace_layout.ron
* Fix native app hole punch
* Cleanup review pass
2026-04-08 21:05:58 -07:00
Keavon Chambers
b099e2faca
Add support for interactive panel docking ( #4015 )
...
* 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
2026-04-08 06:09:20 -07:00
Keavon Chambers
39656d4c73
Refactor panel layouts to generalize recursive panel group subdivision splits ( #4014 )
...
* Generalize recursive panel group splits
* Code review
2026-04-08 00:44:58 -07:00
Keavon Chambers
848ff5fd52
Add support for dragging panel tabs docked into other panel tab bars ( #4006 )
...
* Add support for dragging panel tabs docked into other panel tab bars
* Fix terminology
* Add Group suffix to PanelGroupId enums variants
* Code review
2026-04-04 06:28:53 -07:00
Keavon Chambers
55463fe0aa
Refactor platform detection to use import.meta.env.MODE instead of isPlatformNative()
2026-04-03 21:26:27 -07:00
Keavon Chambers
b52bf7b7d4
Add support for reordering document tabs ( #3999 )
...
* Add support for reordering document tabs
* Fix tab bar scrolling
* Close tab without activating it on pointerdown
2026-04-03 06:35:52 -07:00
Keavon Chambers
d41883a942
Add Layers panel support for displaying multiple groups with instances of the same children layers ( #3982 )
...
* Add Layers panel support for displaying multiple groups with instances of the same children layers
* Fix insert folder box drawing
2026-04-01 00:13:42 -07:00
Keavon Chambers
d5d10fe548
Rename /frontend/wasm -> /frontend/wrapper ( #3927 )
2026-03-21 03:46:47 -07:00