openpencil/src/app
Danila Poyarkov 3cfc86371d feat(design-jsx): masks, inline <svg> vectors, and instance overrides
Fill the three biggest gaps that blocked authoring real designs in JSX:

- mask prop on any node: <Ellipse mask> / mask="luminance" / mask="vector"
  sets isMask + maskType so sibling content clips (Figma's mask model)
- <svg> element rendering inline SVG markup into vector nodes, reusing the
  iconify path pipeline (extractPaths + parseSVGPath + scalePathInfos)
- Instance overrides: <Instance of="X" overrides={{ 'childName:prop': v }} />
  applies child overrides by name and records them so component sync keeps them

Adds gap tests and the shared scalePathInfos/finishIconRender helpers to
avoid duplicating the iconify pipeline.
2026-07-21 11:40:13 +03:00
..
ai feat(text): harden font resolution lifecycle 2026-07-17 14:52:35 +03:00
automation fix(automation): keep expected bridge closures quiet 2026-07-20 22:40:43 +03:00
cache fix(fig): stabilize engine test suite 2026-05-21 14:54:17 +03:00
collab fix(collab): replicate document content to joiners 2026-06-30 11:56:58 +03:00
demo feat(design-jsx): masks, inline <svg> vectors, and instance overrides 2026-07-21 11:40:13 +03:00
document fix(mcp): target live automation by document and page 2026-07-03 17:05:04 +03:00
editor fix(app): restore release validation coverage 2026-07-20 16:26:07 +03:00
shell fix(canvas): rulers follow the active theme 2026-07-18 08:12:58 +03:00
tabs fix(mcp): target live automation by document and page 2026-07-03 17:05:04 +03:00
tauri fix(tauri): preserve request and abort semantics 2026-07-18 05:02:51 +03:00
browser-bridge.ts chore(tests): route store access through browser bridge 2026-05-06 12:19:39 +03:00