openpencil/tests/engine
Ed-Key 9b48e47329 feat(canvas): render arrow stroke caps on lines and open vectors
ARROW_LINES and ARROW_EQUILATERAL stroke caps were accepted by the schema
and round-tripped from .fig files, but the renderer mapped every cap to
Butt, so imported arrows lost their heads and arrows could not be drawn
locally.

Add a pure arrow-cap geometry module to scene-graph (open-endpoint
collection with per-vertex cap overrides, weight-scaled head geometry)
and draw heads in the stroke color for LINE nodes and open VECTOR
centerline strokes, including the dashed-centerline path. Fold the head
reach into strokeOverflow and the node picture margin so heads are not
cropped by visual bounds, caches, or culling. Round-trip per-vertex
stroke caps through the .fig vector style override table so one-ended
Figma arrows import correctly. Expose both caps in the stroke inspector
cap picker with localized labels, and cover the renderer with an
arrow-stroke-caps Playwright canvas snapshot.

Claude-Session: https://claude.ai/code/session_012zjEbyLSBYyPpJP4fu1XNB
2026-08-31 21:25:38 +03:00
..
acp
app perf(canvas): rebuild navigation rendering (#591) 2026-08-31 13:39:40 +03:00
bytes refactor(core): centralize Base64 encoding 2026-07-28 08:27:22 +03:00
cli refactor: standardize acronym casing 2026-08-10 15:48:16 +03:00
clipboard fix(clipboard): preserve pasted instance links 2026-08-12 20:08:06 +03:00
collab perf(collab): skip unchanged Yjs node fields (#529) 2026-08-15 11:40:27 +03:00
color
core feat(fig): support text on path 2026-08-17 12:00:01 +03:00
dom-css fix(fig): restore strict parse validation 2026-07-18 03:58:18 +03:00
editor perf(canvas): rebuild navigation rendering (#591) 2026-08-31 13:39:40 +03:00
figma/api feat(figma-api): complete component property compatibility 2026-08-31 09:47:46 +03:00
geometry feat(canvas): render arrow stroke caps on lines and open vectors 2026-08-31 21:25:38 +03:00
hit-test perf(scene-graph): accelerate axis-aligned hit tests (#534) 2026-08-16 15:43:25 +03:00
icons fix(core): preserve inline SVG primitives (#485) 2026-08-12 16:02:45 +03:00
io fix(fig): preserve roundtrip options type 2026-08-31 20:31:25 +03:00
kiwi fix(fig): preserve regenerated override lineage 2026-07-21 01:51:27 +03:00
layout feat(fig): support text on path 2026-08-17 12:00:01 +03:00
library feat: add Figma-style variants and component libraries (#512) 2026-08-14 19:31:41 +03:00
lint
mcp fix(mcp): align runtime metadata and restart errors 2026-08-20 16:27:11 +03:00
pen refactor(fig): own instance interpretation 2026-07-18 02:06:34 +03:00
profiler
random
render feat(canvas): render arrow stroke caps on lines and open vectors 2026-08-31 21:25:38 +03:00
scene-graph fix(scene-graph): scope component property cleanup 2026-08-30 22:45:21 +03:00
snap
tauri feat(app): prepare documents atomically per tab (#592) 2026-08-30 12:21:49 +03:00
text fix(text): finalize font readiness and label shaping (#593) 2026-08-30 14:33:32 +03:00
tools fix(tools): require sibling variant components 2026-08-19 20:05:54 +03:00
vector feat(canvas): render arrow stroke caps on lines and open vectors 2026-08-31 21:25:38 +03:00
vue feat(canvas): render arrow stroke caps on lines and open vectors 2026-08-31 21:25:38 +03:00
perf.bench.ts