openpencil/tests/engine
Danila Poyarkov 9bc353587f
refactor!: generate Tailwind JSX through dom-css (#763)
* refactor!: generate Tailwind JSX through dom-css

Core kept its own SceneGraph → Tailwind mapper next to the one dom-css
uses for Tailwind HTML, and the two drifted: HTML export turned grid
frames into flex columns and dropped rotation, inner shadows, blur, and
flex grow, while Tailwind JSX had them.

Tailwind JSX is now printed by dom-css from the same CSS projection as
HTML export, with esrap building the JSX and string literals carrying
text or attributes that JSX would otherwise reinterpret. The projection
gains grid layout and placement, rotation, every shadow, layer and
background blur, flex grow, right-to-left direction, and sections, and
writes opaque colors as hex so Tailwind can match its palette.

BREAKING CHANGE: `sceneNodeToJSX` and `selectionToJSX` in
`@open-pencil/core` no longer accept a format, and `JSXFormat` and
`JSXExportOptions` are removed. Use `sceneNodesToTailwindJSX` from
`@open-pencil/dom-css` or `@open-pencil/dom-css/browser`.

* fix(dom-css): keep backslashes and line breaks in Tailwind JSX attributes

JSX attribute strings keep backslashes literally, but the printer
escapes backslashes and line breaks in string literals, so a layer
named `a\b` came back as `a\\b`. Such values are now written as
expression containers, like values containing quotes or `&`.
2026-09-26 10:50:28 +04:00
..
acp
app feat(updater): show download progress while installing an update 2026-09-25 23:15:14 +04:00
bytes
cli refactor!: generate Tailwind JSX through dom-css (#763) 2026-09-26 10:50:28 +04:00
clipboard ci: shard unit tests by owner and cut the quick suite from 100 s to 13 s (#715) 2026-09-17 10:18:16 +03:00
collab Release v0.15.0 2026-09-16 17:57:35 +03:00
color fix(core): store picker colours in the document's colour profile (#724) 2026-09-18 13:08:49 +03:00
core refactor(canvas): share bounded resource cache bookkeeping 2026-09-15 21:28:16 +03:00
dom-css
editor fix: convert document colour profiles, keep text edits live, and fix .fig exports (#716) 2026-09-18 00:43:10 +03:00
figma/api Merge master into fix/create-component-drops-bound-variables 2026-09-02 01:09:01 +03:00
geometry feat(editor): checkpoint live interaction improvements 2026-09-15 11:36:17 +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 refactor(export): derive export format lists from the IO registry (#755) 2026-09-25 15:42:42 +04:00
kiwi
layout test: fix heavy unit-test measurement and round-trip checks (#655) 2026-09-07 00:33:12 +03:00
library build: upgrade oxfmt and format Vue imports (#669) 2026-09-10 02:45:13 +03:00
lint
mcp fix(MCP): add read-only file lifecycle tools (#722) 2026-09-18 11:55:06 +03:00
pen fix(pen): honor layout and sizing defaults (#652) 2026-09-10 17:02:56 +03:00
profiler
random
render refactor!: generate Tailwind JSX through dom-css (#763) 2026-09-26 10:50:28 +04:00
scene-graph ci: shard unit tests by owner and cut the quick suite from 100 s to 13 s (#715) 2026-09-17 10:18:16 +03:00
snap
tauri feat(updater): show download progress while installing an update 2026-09-25 23:15:14 +04:00
text fix(text): preserve cached font coverage and source offsets 2026-09-02 09:26:59 +03:00
tools fix(tools): evaluate calc expressions without expr-eval (#753) 2026-09-25 01:44:46 +04:00
vector feat(canvas): render arrow stroke caps on lines and open vectors 2026-08-31 21:25:38 +03:00
vue fix: convert document colour profiles, keep text edits live, and fix .fig exports (#716) 2026-09-18 00:43:10 +03:00
perf.bench.ts