FE-1635: Give the default canvas nodes the compact nodes' surface - #9595
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
PR SummaryLow Risk Overview Label handling switches from Focus and firing: The minimap draws shapes at each node’s real Docs describe the updated classic vs compact appearance; changesets note the dimension and styling bumps for Reviewed by Cursor Bugbot for commit 249f73d. Bugbot is set up for automated code reviews on this repo. Configure here. |
There was a problem hiding this comment.
🟡 Changes recommended
The completed firing animation continues overriding the transition’s hover shadow.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Unifies classic and compact canvas node surfaces while improving classic transition sizing and label wrapping. Documentation screenshots remain pending.
Changes:
- Adds shared node surface, selection, and firing-animation logic.
- Makes classic transitions square and supports three-line labels.
- Updates tests, documentation, and package changesets.
File summaries
| File | Description |
|---|---|
.changeset/classic-transition-dimensions.md |
Records the core dimension change. |
.changeset/default-nodes-compact-surface.md |
Records Petrinaut’s visual changes. |
libs/@hashintel/petrinaut/docs/visual-settings.md |
Documents both node styles. |
libs/@hashintel/petrinaut/src/ui/lib/label-wrap-points.test.ts |
Tests label boundaries. |
libs/@hashintel/petrinaut/src/ui/lib/label-wrap-points.ts |
Adds non-destructive wrap points. |
libs/@hashintel/petrinaut/src/ui/lib/split-pascal-case.test.ts |
Removes superseded tests. |
libs/@hashintel/petrinaut/src/ui/lib/split-pascal-case.ts |
Removes superseded helper. |
libs/@hashintel/petrinaut/src/ui/views/SDCPN/hooks/use-firing-animation.ts |
Shares transition firing animation. |
libs/@hashintel/petrinaut/src/ui/views/SDCPN/hooks/use-selection-variant.ts |
Centralizes selection-state mapping. |
libs/@hashintel/petrinaut/src/ui/views/SDCPN/renderers/react-flow/react-flow-canvas/classic-place-node.tsx |
Applies shared surface and wrapping. |
libs/@hashintel/petrinaut/src/ui/views/SDCPN/renderers/react-flow/react-flow-canvas/classic-transition-node.tsx |
Adds square layout and shared surface. |
libs/@hashintel/petrinaut/src/ui/views/SDCPN/renderers/react-flow/react-flow-canvas/component-instance-node.tsx |
Reuses selection-state logic. |
libs/@hashintel/petrinaut/src/ui/views/SDCPN/renderers/react-flow/react-flow-canvas/node-card.tsx |
Composes shared surface styling. |
libs/@hashintel/petrinaut/src/ui/views/SDCPN/renderers/react-flow/react-flow-canvas/place-node.tsx |
Adopts shared selection handling. |
libs/@hashintel/petrinaut/src/ui/views/SDCPN/renderers/react-flow/react-flow-canvas/transition-node.tsx |
Adopts shared surface and animation. |
libs/@hashintel/petrinaut/src/ui/views/SDCPN/styles/node-surface.ts |
Defines common node styling. |
libs/@hashintel/petrinaut-core/src/layout/dimensions.ts |
Changes classic transitions to 120×120. |
Review details
- Files reviewed: 17/17 changed files
- Comments generated: 1
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## codex/fe-1708-petricon #9595 +/- ##
=========================================================
Coverage ? 15.35%
=========================================================
Files ? 210
Lines ? 6677
Branches ? 1154
=========================================================
Hits ? 1025
Misses ? 5551
Partials ? 101
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
cdf6f80 to
f7bff9e
Compare
31977ec to
eb20606
Compare
eb20606 to
eb564b4
Compare
eb564b4 to
c18bae4
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 5a8eec8. Configure here.

Summary
Give default canvas nodes a compact surface while keeping circular Places and rectangular Transitions. Place circles are 104px, and Transitions are 180 × 60px with an icon on the left, a wrapped name, and the transition type below it. Both names use the same 13px medium weight, with soft shadows and muted 1.5px outlines.
9595.mp4
Links
Blocked by
Changes
Known issues
Canvas screenshots in drawing-a-net, examples, petri-net-extensions, and simulation still need refreshing. Existing React Compiler diagnostics remain nonfatal under the inherited configuration.
Test coverage
Label-wrapping tests cover sentence names, PascalCase, acronyms, and digits. All 23 local build, unit-test, type-check, and lint tasks passed for Petrinaut, core, and the website, including a full website rerun after an asynchronous chat-history test race. All three commits remain patch-equivalent on the final rebased head
249f73dcc6; CI completed with 63 successful checks and no failures.Browser checks covered classic and compact node dimensions and minimap positions. The final rebased SIR demo verifies selection, firing flashes, token counts, and switching to Compact Nodes, with no recorded console or page errors. Earlier checks also covered three-line Place names with token counts, matching typography, and plain and colored outlines; all three commits remained patch-equivalent through the final rebase.
How to test