6 Commits

Author SHA1 Message Date
Ilya Ashikhmin
4f6fe37b4d test(app): add end-to-end scenarios against the real main window
Bundled registry/sample loading, edge selection populating the grouped
property panel, undoable title edit, solver + animation clock, and a
headless render smoke check.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 23:37:18 +02:00
Ilya Ashikhmin
b257c1a7cf feat(scene): add interactive graphics scene with grid, ports and styled edges
- SVG node items with snap-to-grid dragging; ports appear on focus/hover
  and highlight compatible targets during a connection drag
- Orthogonally routed edge items with line styles, head/tail decorations
  (arrow, circle, diamond, bar), selection halo and title labels; later
  edges jump crossings with arcs when enabled
- Grid background view with cursor-anchored zoom, middle-button pan,
  rubber-band selection and palette drag-and-drop
- Undoable commands: add/move/delete/connect/property/paste with
  clipboard fragments; light/dark/high-contrast themes
- Flow overlay: animated dashes, direction and density follow flow rate

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 23:25:06 +02:00
Ilya Ashikhmin
81f2a9ff8b feat(core): add JSON document save/load
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 23:14:11 +02:00
Ilya Ashikhmin
c2501ff04e feat(core): add mock flow solver with conservation-based distribution
Treats each relation network as a conductance network (diameter^4 / length),
solves nodal balance per connected component, so flow is conserved at every
junction and wider pipes carry proportionally more flow.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 23:14:11 +02:00
Ilya Ashikhmin
18d614ec67 feat(core): add orthogonal grid router with intersection jump-over arcs
Manhattan routing snapped to the rectangular grid with port-side-aware exit
stubs, right-angle crossing detection between routed polylines, and painter
paths bridging crossings with semicircular arcs (configurable radius).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 23:14:11 +02:00
Ilya Ashikhmin
26905a4ba0 feat(core): add network model with typed ports, relations and grouped properties
Data-driven node types (SVG + port config) loaded from JSON, relation-based
connection validation, and a property system supporting string, int, float,
enum, catalogue item(s), color and value-list types grouped by category.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 23:14:11 +02:00