Commit Graph

1382 Commits

Author SHA1 Message Date
Keavon Chambers 7af60e02a3
Add the auto-generated node catalog to the website's user manual (#3662)
* Generate the MVP node catalog in the manual (with some placeholders)

* Implement nearly the rest of everything

* Move to the tools directory and make it generate nicer default values

* Add category descriptions

* Organize file structure and improve type naming

* Improve book table of contents code

* Add collapsing chapter navigation to the book template

* Add to build workflow

* Clean up site structure
2026-01-20 22:52:03 -08:00
Timon 95d3556204
Replace globals with editor environment (#3656)
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-01-19 17:06:02 +00:00
Timon 07fbcd489c
Desktop: Add fullscreen window mode (#3625) 2026-01-19 16:32:03 +00:00
Keavon Chambers 3b55064f44
Add tooltip documentation to the Text node and tidy up node catalog categorization (#3645)
* Add more node doc comments

* Tidy up node categories
2026-01-16 01:27:56 -08:00
Adam Gerhant c13647aef4
Fix regression where tooltip node descriptions in the graph stopped showing (#3639)
* Fix tooltips

* Convert DefinitionIdentifier to string in JavaScript

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-01-15 23:30:16 -08:00
Adam Gerhant c60ddcf875
Fix the Text node's Max Width/Height parameters with OptionalF64 losing the value when unticked (#3643)
* WIP

* Fix widget

* Fix migration

* Remove OptionalF64

* Custom attributes for optional f64 widget

* Code review

* Move comments to another PR

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-01-16 06:13:32 +00:00
Timon 73682b482b
Desktop: Implement pointer lock for NumberInput (#3638)
* Desktop: Implement pointer lock for NumberInput

* add shift and ctrl modifiers

* fixup
2026-01-15 11:27:31 +00:00
Timon 6616d1bfb1
Desktop: Add commit info to binaries build with Nix (#3635) 2026-01-15 10:34:01 +00:00
James Lindsay c46060db44
Add a Select tool overlay for the layer origin (#3471)
* Add blue layer origin cross overlay

* Apply suggestion from @Keavon

* Skip layers without local transforms

* Disable the Custom Pivot by default

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-01-14 01:50:03 -08:00
Adam Gerhant a6052c5819
Replace node definition string-based lookups with DefinitionIdentifier instances (#3451)
* create definition identifier and integrate it

* Bug fixes and code review

* formatting

* Fix migrations

* Fix remove handles migration

* formatting

* Fix test

* Fix tests 2

* fix deserialization

* Code review

* Small fixes

* Consolidate 'Morph' node migrations

* Add old SamplePointsNode name to migrations list

* Fix tests

* Unrelated small fix

* Fix migration crashes

* Fix tests

* Final code review

* fmt

* Add metadata

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-01-12 23:09:43 -08:00
Vatsal Kumar 4fea2b0fe7
Add an arrow to the Shape tool (#3343)
* add arrow shape feature in editor

Signed-off-by: krVatsal <kumarvatsal34@gmail.com>

* fix the arrow tool to show arrow in viewport space

Signed-off-by: krVatsal <kumarvatsal34@gmail.com>

* fix the direction of arrow and make the new arrow node

Signed-off-by: krVatsal <kumarvatsal34@gmail.com>

* updated arrow tool to hae start and end points

Signed-off-by: krVatsal <kumarvatsal34@gmail.com>

* fixed calculate point bug

Signed-off-by: krVatsal <kumarvatsal34@gmail.com>

* fixed some bugs of arrow positioning

Signed-off-by: krVatsal <kumarvatsal34@gmail.com>

* fixed formatting in whole codebase and added fill to arrow

Signed-off-by: krVatsal <kumarvatsal34@gmail.com>

* fix

---------

Signed-off-by: krVatsal <kumarvatsal34@gmail.com>
Co-authored-by: Timon <me@timon.zip>
2026-01-12 00:58:28 +00:00
Ayush Amawate 5dd11bf138
Ignore out-of-range mouse button values using from_bits_truncate (#3541)
* fix: ignore out-of-range mouse button values using from_bits_truncate

* Apply suggestion from @TrueDoctor

* Fix formatting

---------

Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2026-01-11 22:31:15 +00:00
Ayush Amawate 33e3a88458
Fix joining paths from different layers with Ctrl+J fails (#3534)
* fix: handle PointId remapping when joining paths from different layers

When using Ctrl+J to join two points from different layers, the operation
failed because PointIds change during merge due to collision resolution.

The fix uses index-based point tracking instead of PointIds:
1. Before merge: Record the index of each selected point in its layer
2. Calculate post-merge indices using the point offset from layer1
3. After merge: Retrieve the actual PointIds at those indices
4. Create the connecting segment using the resolved PointIds

This works because Vector::concat() preserves point ordering during merge,
so we can use exact index arithmetic to find points after remapping.

Fixes #3519

* fix: use position-based lookup when joining paths from different layers

* fix cmd + g group case

* fix check for grouped folder

* add in the single layer inside a group case

* use ApplyPointDelta instead of creating a dummy segment

* Update editor/src/messages/tool/common_functionality/shape_editor.rs

Co-authored-by: James Lindsay <78500760+0HyperCube@users.noreply.github.com>

* Update editor/src/messages/tool/common_functionality/shape_editor.rs

Co-authored-by: James Lindsay <78500760+0HyperCube@users.noreply.github.com>

* encapsulate point connection logic in defer_connect_points_by_position

* reduce tolerance to 1e-6

* remove wrong comments

---------

Co-authored-by: James Lindsay <78500760+0HyperCube@users.noreply.github.com>
2026-01-11 12:56:48 +00:00
Ayush Amawate d98f19bf4a
Add artboard name to the export when exporting a single artboard (#3613)
* add artboard name to the export

* change file name to {docname}-{artboard} for more than 1 arboard

* add switch statement instead of if else
2026-01-11 13:28:19 +01:00
Keavon Chambers 1b91198b28
Fix 'Regular Polygon' and 'Star' shapes incorrectly having cubic handles, not linear (#3606)
Fix shape nodes creating cubic-curved polylines
2026-01-06 20:58:08 -08:00
Ayush Amawate f808e6d37c
Fix freehand tool showing all anchors in overlay (#3585)
Use anchor_endpoints() instead of anchor_points() in path_endpoint_overlays() to only show overlays at true path endpoints, not intermediate points
2026-01-06 20:04:38 +01:00
Ayush Amawate fcf32b3cff
Fix PNG exports being off by 1 pixel (#3582)
use round() instead of as_uvec2() while exporting
2026-01-06 13:50:32 +00:00
Keavon Chambers 02e3293e72 Prep for the RC2 release of the desktop app 2026-01-06 04:38:52 +01:00
Keavon Chambers 2fa958aa79 Remove generics from the user-facing name for the Vector data type 2026-01-01 21:26:02 -08:00
Keavon Chambers fa45efa9e2
New node: Pointer Position (#3535)
* New node: Pointer Position

* Fix test
2025-12-27 16:02:23 -08:00
Jatin Bharti 0b38beb79b
Fix Pen tool anchor point overlays disappearing forever after viewing the node graph (#3523)
* Promote vector meshes from experimental by removing it from preferences

* fix : pen tool anchor point issue with node graph open/close

* fix : Memory allocation by removing .collct()

* fix : remove the reduntant if condition

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: Adesh Gupta <148623820+4adex@users.noreply.github.com>
2025-12-25 05:43:26 -08:00
Keavon Chambers 9f25c50ca1 Prep for the RC1 release of the desktop app 2025-12-24 22:45:08 -08:00
Keavon Chambers 63217feac6 Organize the categories of widget component props 2025-12-23 21:23:13 -08:00
Keavon Chambers 2f880fa035 Fix missing artboard layer icon 2025-12-23 14:43:13 -08:00
Keavon Chambers 9d26c040e9
Box the `widget: Widget` field of `WidgetInstance` (#3506)
Box the `pub widget: Box<Widget>` field of `WidgetInstance`
2025-12-22 04:18:33 -08:00
Keavon Chambers 64ed21f694 Clean up code with better naming 2025-12-21 23:35:00 -08:00
Keavon Chambers 123108c813 Promote vector meshes from experimental by removing it from preferences 2025-12-21 19:33:42 -08:00
Jatin Bharti d16fd46399
Fix disabled state of Layer > Make Path Editable menu action getting out of sync (#3497)
* fix : sync the make path editable option

* fix : control the call with state

* fix : fix the call

* fix : redundancy

* fix : fmt
2025-12-20 17:06:34 -08:00
Keavon Chambers 0a5e65bc9d Fix the Brush tool being accessible while disabled in preferences 2025-12-20 03:48:41 -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 2c21e1a90b Desktop: Clean up the UI scale setting in the Preferences dialog 2025-12-20 00:20:50 -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 Gerhant 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 b97978e91d
Fix regression where Ctrl+X is copying not cutting (#3486)
fix nodegraph cut regression
2025-12-18 00:40:54 -08: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 820865389c
Desktop: UI scale preference (#3475)
* ui scale preference

* cleanup

* add update ui scale message to SIDE_EFFECT_FREE_MESSAGES

* fix mac title bar height

* hide UI preference section on web

* set % as unit of ui scale
2025-12-15 14:11:43 +00:00
Timon 7532bd7260
Desktop: Hide menu bar in fullscreen mode on Mac (#3464)
hide menu bar in fullscreen mode on mac
2025-12-12 13:09:31 +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
Keavon Chambers d6c06da878
Move the MenuBarMessage up from within PortfolioMessage to the root Message (#3459)
Move the MenuBarMessage up from within PortfolioMessage
2025-12-08 20:49:35 -08:00
Dennis Kobert 532dc30028
Fix checkboxes by using deterministic widget IDs instead of random ones to make the diffing easier (#3457)
* Move diffing to trait

* Add deterministic widget ids

* Cleanup
2025-12-08 12:30:29 +00:00
Keavon Chambers 90c91db550 Disable the Brush tool by default and add it to preferences under experimental 2025-12-08 04:02:50 -08: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 fb0fab0622 Update links from graphite.rs to graphite.art 2025-12-06 18:10:27 -08:00
Timon 2e4481880e
Desktop: Fix missing resize events causing all-gray window on Mac after launch (#3445)
* okayish solution

should be improved at some point but for now it works well enough.

* do leftover renames

* better solution

* less weird resize frames

* move surface reconfiguration

* fix recent desktop mac breakages

* better looking resize on mac

* fix background color

* Fix blank screen on window initialization

* cleanup

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-12-06 23:11:47 +00:00
Keavon Chambers 5b472a64b2 Remove the "coming soon" dialog and hide not-yet-ready features/tools 2025-12-05 04:17:44 -08:00
Keavon Chambers 74d9c911bd Fix ShortcutLabel drawing of consecutive key labels 2025-12-04 22:04:37 -08:00
Yuxiang Huang 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 2ee8e56cef Fix sending platform-specific shortcut keys to frontend before editor is initialized with the platform set 2025-12-04 15:35:30 -08:00