Commit Graph
792 Commits
Author SHA1 Message Date
Keavon Chambers 123108c813 Promote vector meshes from experimental by removing it from preferences 2025-12-21 19:33:42 -08:00
Keavon Chambers f1e8ebefc5 Improve tooltip docs with Markdown styling and refined math node explanations (#3488) 2025-12-20 01:05:15 -08:00
Keavon Chambers 2d6d054359 Make font selection show a live preview on hover; move its code to the backend (#3487)
* Remove FontInput.svelte

* Move font picking to the backend

* Fix Text tool font choice style turning to "-" on font that doesn't support previous style
2025-12-19 22:17:28 -08:00
Adam GerhantandKeavon Chambers 6733a24e47 Use more specific node input indexing when displaying invalid input errors (#3415)
* Reduce displayed invalid inputs

* Correct error offset for convert node

* Apply suggestions from code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-12-18 10:48:25 +00:00
Timon b4fc3d0580 Desktop: Fix pivot and axis constraint overlays (#3463)
* fix pivot gizmo native dowel_pin overlay

* fix native snapping overlay
2025-12-15 14:53:43 +00:00
Timon 6d852f11af Desktop: Text clipboard support (#3461)
* gray background for viewport texture

* cust copy paste support

* connect clipboard read on web

* fix eyedropper bounds

* cleanup

* add missing char events for some named keys like enter
2025-12-12 00:16:35 +00:00
Adam Gerhant bba771bd08 Add mitigation for inability to connect graph import directly to export by auto-inserting a Passthrough node (#3449)
insert passthrough
2025-12-07 19:19:55 +00:00
Adam Gerhant 9fc98cf03f Desktop: Remove web_sys text measuring to fix node graph layer widths (#3455)
* Remove web_sys text measuring

* Improve export

* Fix top of layer stack
2025-12-07 12:11:42 +00:00
Adam Gerhant 3926337b44 Fix traversal when deleting nodes (#3358)
* Fix deletion

* Fix traversal over primary
2025-12-07 03:41:23 -08:00
Keavon Chambers 5b472a64b2 Remove the "coming soon" dialog and hide not-yet-ready features/tools 2025-12-05 04:17:44 -08:00
Yuxiang HuangandKeavon Chambers 8ca546c164 Fix using Esc to abort box selection and wire dragging causing the graph to close (#3409)
* Implement proper node graph interaction aborting when pressing Escape

* Fixes

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-12-05 01:42:00 +00:00
Keavon Chambers 783ea0b437 Unwrap the Layout enum to replace it with the WidgetLayout struct now called Layout (#3448) 2025-12-04 15:24:40 -08:00
Keavon Chambers 3c4ad8b720 Refactor the WidgetLayout struct to remove SubLayout and avoid sending LayoutTarget to frontend 2025-12-04 02:44:54 -08:00
Keavon Chambers 4581689d9c Rename WidgetHolder to WidgetInstance 2025-12-04 01:10:22 -08:00
Keavon Chambers 810ce40e9b Restyle and refactor shortcut labels to send hints bar and welcome screen layouts from Rust (#3447)
* Restyle UserInputLabel and refactor its usages to have all input its data sent from Rust

* Replace the welcome screen quick buttons with ones sent by backend

* Add the ShortcutLabel widget to the backend

* Replace hints bar with a backend-controlled layout; show mouse icons in place of mouse labels
2025-12-04 01:04:14 -08:00
Keavon Chambers 6ed42d06bb Fix horizontal scrolling on Mac when holding Shift (#3446) 2025-12-03 20:06:00 -08:00
Timon 39b5229df7 Desktop: Limit application to a single instance (#3441)
* only allow single instance

* more reliable CEF cache cleanup

* some cleanup

* fix lock file location

* add simple signal handling

* fix skew handles on desktop

* mac remove unused helpers
2025-12-03 19:13:15 +01:00
Keavon ChambersandTimon Schelling 600fb5c28f Refactor the old menu bar plumbing to use standard TextButtons (#3444)
* Refactor the old menu bar plumbing to use standard TextButtons

* WIP: Fix Mac native menu bar

* WIP: fix desktop menu bar mac

* Refactor menu bar definitions to use the builder pattern

* WIP: fixup desktop

* cleanup

* fix linux

* Remove dead code that was failing to lint

---------

Co-authored-by: Timon Schelling <me@timon.zip>
2025-12-03 12:41:54 +00:00
Keavon Chambers e8ebcc2c21 Replace text-only tooltips with custom richly styled tooltips (#3436)
* Replace the title attribute with custom FloatingMenu tooltips

* Separate tooltip labels and descriptions into two styled blocks

* Move keyboard shortcut tooltips to a separate section at the bottom

* Update shortcut key styling in tooltips and hints bar

* Fix .to_string()
2025-11-30 13:32:58 -08:00
James LindsayandKeavon Chambers 8383a3afac New node: 'Extrude' (#3414)
* Add extrude node

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-11-26 18:50:10 -08:00
Keavon Chambers 9eb8835bd5 Add the 'Blend Shapes' and 'Origins to Polyline' nodes; generalize the 'Morph' node to >2 states (#3405)
* New nodes: 'Morph' and 'Multi-Morph'

* Blend Shapes node

* Add the 'Index Points' node

* Fix failing test
2025-11-25 22:17:55 -08:00
Keavon Chambers eb0f019b15 New nodes: 'Reset Transform', 'Replace Transform', 'Count Points', 'Index Points' (#3420)
- Add the 'Reset Transform' and 'Replace Transform' nodes
- Add the 'Count Points' and 'Index Points' nodes
- Make the 'Index Elements' node support negative indexing from the end
- Make the 'Flatten Vector' node's implementation reusable
- Fix crash displaying 0x0 raster image in the Data panel
- Fix the 'Points to Polyline' node not working on two-point objects
2025-11-25 20:41:59 -08:00
James LindsayandKeavon Chambers 117ce301b0 Fix regressions with G/R/S (#3355)
* Better local grab

* Formatting

* Multiply by document_to_viewport.matrix2.y_axis.length()

* Fix logic errors

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-11-25 15:26:19 -08:00
Dennis Kobert a932eaedcf Render artwork at correct resolution when using vello on wasm (#3416)
* Work on fixing rendering for wasm+vello

* Render vello canvas in wasm at the correct resolution

* Cleanup unused surface rendering code

* Remove vector to raster conversion

* Remove desktop changes

* Revert window.rs changes

* Don't round logical coordinates

* Fix desktop compilation + don't round logical coordinates for svg rendering

* Further cleanup

* Compute logical size from acutal physical sizes
2025-11-24 14:23:27 +00:00
Keavon ChambersandAdam 6e66c79392 Fix 'Mask' node missing Properties widget; fix crash with 'Brightness/Contrast Classic' node (#3404)
* Fix 'Mask' node missing Properties widget; fix crash with 'Brightness/Contrast Classic' node

Also clean up dead code and improve tooltip for the "-" Properties panel widget fallback.

* format type

---------

Co-authored-by: Adam <adamgerhant@gmail.com>
2025-11-24 09:21:07 +00:00
Adam GerhantandKeavon Chambers 7afbeaa1f9 Separate graph error diagnostics from frontend node metadata (#3385)
* Separate error popup from node

* Improve context menu data

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-11-24 08:55:30 +00:00
Adam GerhantandKeavon Chambers 06484ef4e0 Show red connectors on a type-erroring node and accurate connector colors upstream of it (#3110)
* Refactor TypeSource

* Add complete valid types

* Add invalid type

* Improve valid/complete types and disconnecting

* Code review

* Return types on error

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-11-19 03:00:32 +00:00
Dennis KobertandKeavon Chambers 57b0b9c7ed Restructure node crates (#3384)
* Restructure node-graph folder

* Fix wasm compilation

* Move node definitions out of *-types crates

* Cleanup

* Fix warnings

* Fix warnings

* Start adding migrations

* Add migrations and move memo nodes to gcore

* Move nodes/gsvg-render -> rendering

* Replace some hard coded identifiers and fix automatic conversion

* Fix Vec2Value node migration

* Fix formatting

* Add more migrations

* Cleanup features

* Fix core_types::raster import

* Update demo artwork (to make profile ci work)

* Move *-types to node-graph/libraries folder

* Add missing node migrations

* Migrate more nodes

* Remove impure memo node

* More fixes and remove warning

* Migrate context and add a few missing migrations

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-11-18 10:21:54 +00:00
Adam Gerhant 85965c8b6a Fix export edge distance (#3386) 2025-11-17 17:22:05 +00:00
Dennis Kobert 181c30bc0a Fix assorted Clippy lints (#3390) 2025-11-17 07:58:31 +00:00
Wade Cheng 94414adaf8 Add selection subtracting to the node graph view (#3290)
Add selection subtracting for node graph
2025-11-14 20:09:43 +00:00
Timon 3871b6c4cf Fix graph UI culling on-screen nodes (#3380)
* fix

* review fixup
2025-11-13 21:25:27 -08:00
Keavon Chambers ca5785bc8f Show a "Ctrl +" label instead of "Ctrl =" for View > Zoom In (#3377) 2025-11-13 17:24:04 -08:00
Keavon Chambers ac74bd9903 Allow the Stroke node to receive "Dash Lengths" values from the node graph 2025-11-12 01:14:17 -08:00
James Lindsay 4e65887b90 Fix the Artboard tool drawing the first artboard on an infinite canvas with layers present (#3356)
Improve creating the first artboard
2025-11-10 13:36:30 -08:00
James Lindsay 7f10a4258e Fix copying nodes sometimes failing when no OutputConnector exists (#3365)
* Fix copy nodes sometimes failing when no OutputConnector exists

* Add test for copying a node
2025-11-10 20:26:25 +00:00
TimonandDennis Kobert 881ec0b193 Split out viewport handling into its own message handler (#3331)
* extract viewport handeling

* fix web overlays

* some cleanup

* remove some physical conversions

* fix resize snapping

* fixup

* apply some review feedback

* make viewport api more ergonomic

* fix

* fix web overlay canvas clear size

* clear workaround for canvas

* rename trigger message

---------

Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2025-11-08 08:59:38 +00:00
Dennis Kobert 68e67055d8 Update Linebender-related dependencies (#3349)
* Updates crates from linebender ecosystem

* Remove usages of decprecated Clip mix mode
2025-11-08 08:59:00 +01:00
Keavon Chambers 0998abdaf3 Add support for visualizing Vec<String> in the Data panel 2025-11-03 13:13:54 -08:00
skearya c4bbb7e880 Reduce editor message size by 67% and fix simple clippy warnings (#3327)
Reduce message size and fix some clippy issues
2025-11-02 08:50:29 +01:00
James Lindsay 1b9a492a74 Fix crash when creating cyclic nodes (#3313)
* Fix crash when creating cyclic nodes

* Re-add the recursive set_input call
2025-10-30 13:01:45 +01:00
Dennis Kobert e8f18b0ac0 Cache calculation of bounding boxes with transforms (#3287)
* Cache calculation of bounding boxes with transforms

* Reuse bounding boxes across for the same rotation

* Cleanup code and add documentation

* Add tests
2025-10-17 10:20:55 +00:00
Timon 3509f0b035 Desktop: Persist document path (#3272)
* persist document path

* persist data cleanup
2025-10-15 10:30:47 +00:00
SambhramandTimon 591096a817 Exit sub-network via Escape key (#3285)
"Escape key in sub-network"

Co-authored-by: Timon <me@timon.zip>
2025-10-15 00:08:04 +00:00
Trevor Paley ca70fd8380 Add quick measurement between objects and artboards (#3274) 2025-10-12 18:14:02 +00:00
Dennis Kobert bc66148d2b Reset the overlay context for each draw request and use global font cache (#3231) 2025-09-28 15:36:08 +00:00
Dennis KobertandTimon Schelling ffc74273cc Implement Convert trait to convert between CPU and GPU images (#3194)
* Add upload texture trait

* Make convert trait use explicit converter

* Add gpu texture download implementation

* Add footprint to convert trait

* Cleanup texture upload / download

* Download wgpu textures aligned

* abstract texture download into converter helper

* rename module

not only doing uploads anymore
conversion looks like a ok name

* Remove into_iter call and intermediate vector allocation

---------

Co-authored-by: Timon Schelling <me@timon.zip>
2025-09-26 14:30:01 +02:00
Dennis Kobert 4e47b5db93 Restructure gcore/text module and fix memory leak (#3221)
* Restructure gcore/text module and fix memory leak

* Remove unused import

* Fix default font fallback causing wrong caching and rename to TextContext

* Upgrade demo art
2025-09-25 15:29:07 +02:00
Keavon Chambers 7e3ab78ea4 Fix more flaws with 'Transform' node rad-to-deg migration; make 'Tangent on Path' also use degrees by default 2025-09-18 14:09:10 -07:00
Dennis Kobert 390ce023ea Fix regression when rotating a group, resulting in an incorrect transform cage bounding box (#3184)
Revert "Reuse click target bounding boxes for document bounds"

This reverts commit d9e8a71cd0.
2025-09-16 13:41:44 -07:00