v0.3.0: Rendering pipeline — render dispatch, tree walk, dirty propagation

- render generic function dispatches per component type
- render-screen entry point with sync wrapper
- render-node walks tree, computes layout, calls render
- component-layout-node generic (box/text methods)
- component-children/component-parent generics
- propagate-dirty marks component + ancestors dirty
- box and text now inherit from dirty-mixin
- 6 new tests: render dispatch, layout-node accessor, children,
  dirty propagation, available-width defaults
- 42 component tests, 100% GREEN
This commit is contained in:
Hermes
2026-05-11 15:12:38 +00:00
parent 88c576a6b9
commit b0e5c18257
6 changed files with 126 additions and 5 deletions

View File

@@ -20,7 +20,8 @@
((:file "package")
(:file "dirty")
(:file "box" :depends-on ("package"))
(:file "text" :depends-on ("package" "box")))))
(:file "text" :depends-on ("package" "box"))
(:file "render" :depends-on ("package" "box" "text")))))
:in-order-to ((test-op (test-op :cl-tui-tests))))
(asdf:defsystem :cl-tui-tests
@@ -36,6 +37,7 @@
(:module "src/components"
:components
((:file "box-tests")
(:file "dirty-tests"))))
(:file "dirty-tests")
(:file "render-tests"))))
:perform (test-op (o c)
(uiop:symbol-call :cl-tui-backend-test '#:run-tests)))