Commit Graph

4 Commits

Author SHA1 Message Date
root ca101fd916 feat(canvas): remap per-boundary stroke styles when a path is edited
Instead of discarding stroke segments after a vertex edit,
strokeSegmentsForEditedPath projects each stored edge index onto the
edited path's edges and rebuilds every segment's geometry from the
edges it now owns, so boolean results keep their per-operand colors,
widths, and dash styles through the path editor.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 00:59:23 +08:00
root dd8c67af3e feat(canvas): compute real boolean shape geometry with paper.js
Add a booleanShapePath engine that runs union/subtract/intersect/
exclude/flatten through paper.js and returns normalized result path
data plus per-operand stroke segments, so boolean results are real
vector paths instead of SVG mask approximations.

- Store the computed pathData on boolean groups and recompute it when
  the operation changes; flatten legacy groups into ordinary path nodes
- Render previews and SVG/PSD exports from the computed result path,
  keeping each operand's stroke style on the boundary it contributes
- Open boolean results in the path editor and flatten them on commit
- Add paper 0.12.18 with a paper-core type shim and mark it as a
  server-external package for the standalone Next build

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 00:23:19 +08:00
root 7e9f8194d9 feat(canvas): update pen tool cursor and add PNG asset 2026-07-17 11:58:52 +08:00
root d424b56076 feat: add CanvasPathEditor and editable path functionality
- Implemented CanvasPathEditor component for editing paths on the canvas.
- Created editablePath module to handle path data manipulation and conversion to SVG.
- Introduced pathPen module for managing path drawing with a pen tool, including anchor management and path data generation.
- Added tests for editablePath and pathPen functionalities to ensure correctness of path editing and drawing behavior.
2026-07-17 11:28:29 +08:00