Commit Graph

56 Commits

Author SHA1 Message Date
Kinneyzhang
fad54d7fb1 feat(ebox): project layouts into TP surface plans
Assign retained TP identity before layout and emit pure, runtime-free surface plans with exact character and text-property equivalence. Keep live publication unchanged for the staged cutover and add focused surface, package, docs, and CI contracts.\n\nVerified: make check EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs\nVerified: WERROR byte compilation for all 16 active Lisp files\nVerified: focused ebox-surface checkdoc has zero warnings
2026-08-06 04:13:13 +08:00
Kinneyzhang
bfef45f765 fix: size grid auto rows after item width resolution
Render auto-width grid children at their resolved track widths before resolving row heights. This keeps wrapped content visible and prevents stale intrinsic heights from clipping the final line.

Verification: make grid-tests EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs; make compile EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs; make check EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs.
2026-08-05 20:42:58 +08:00
Kinneyzhang
d4dc572c2d fix: keep grid borders aligned across multiline items
Measure auto-width children intrinsically, constrain them to resolved tracks, account for border-box wrapper content, and align every rendered line before painting the wrapper border.
2026-08-05 20:36:29 +08:00
Kinneyzhang
ab9efe62a7 refactor: move playground fixtures to sibling package
Keep the standalone Ebox package focused on its public layout and DSL primitives while the generic ebox-playground package owns executable .ebox references.
2026-08-05 20:36:24 +08:00
Kinneyzhang
de6f56637b fix: measure full stack leaf width
Measure every rendered line when a column determines its natural width so a narrower first Grid line cannot cause later lines to overflow after stack padding.\n\nVerified with make check; core 545/545 and Grid 11/11 passed.
2026-08-05 12:01:36 +08:00
Kinneyzhang
8a8e862098 feat(ebox): publish standalone low-level package
Split the verified renderer, layout engine, Grid support, native boundary, tests, examples, and paired documentation into the independent Ebox repository. Keep ETAF and application concerns outside this package.
2026-08-05 09:15:35 +08:00