openpencil/vite
Danila Poyarkov 9b418de13e
refactor: print OpenPencil JSX export as syntax trees (#799)
* refactor(codegen): share syntax-tree code generation between exporters

dom-css printed Tailwind JSX with its own esrap JSX builders and kept TypeScript template helpers under its Storybook export. The OpenPencil JSX exporter needs the same JSX builders, and design-jsx and dom-css may not depend on each other.

@open-pencil/codegen holds both: es for ESTree templates and modules (moved from dom-css) and jsx for JSX elements, attributes, text, and printing, including the literal rules that keep exported strings from being reinterpreted. dom-css no longer depends on acorn and esrap directly.

* refactor(design-jsx): print JSX export as syntax trees

sceneNodeToJSX concatenated strings with hand-written escaping and indentation. It now collects typed props (moved to export/props.ts) and prints them with @open-pencil/codegen's JSX builders. Output is unchanged except for text: special characters print as a string expression instead of entities, and multi-line text keeps its line breaks, which the old line-splitting lost on render.

* docs(codegen): fix package metadata and dependency rules

codegen's repository.directory still named design-jsx, the README mentioned es without showing it, and the design-jsx and dom-css guides still said they depend only on scene-graph.

* test(core): move the JSX export round-trips to the design-jsx test home

Covers tabs in layer names and text, which JSX keeps as written.
2026-10-01 21:22:43 +04:00
..
aliases.ts refactor: print OpenPencil JSX export as syntax trees (#799) 2026-10-01 21:22:43 +04:00
automation.ts test: isolate managed browser and MCP runtimes 2026-09-10 21:41:10 +03:00
canvaskit-assets.ts chore: enable stricter oxlint rules 2026-05-18 18:58:30 +03:00
empty-node-module.ts Refactor architecture boundaries across core, app, and packages (#234) 2026-04-30 15:14:19 +03:00
pwa.ts feat: refresh branding with generated platform icons (#707) 2026-09-16 11:54:07 +03:00
raw-markdown.ts refactor(kiwi): split schema text from runtime 2026-05-21 14:54:12 +03:00
server.ts feat(editor): checkpoint live interaction improvements 2026-09-15 11:36:17 +03:00