|
|
56682d0cc2
|
v0.1.0: Layout primitives + composable API — 23 new tests
Layout primitives (org/layout-primitives.org, ~290 lines):
- CLOS layout-node class wrapping YGNodeRef with tg:finalize for GC cleanup
- 12 setter functions with keyword→integer enum translation
- layout-calculate: runs Yoga layout, returns root
- 14 tests: dimension, direction, flex-grow, align, justify,
padding, margin, absolute position, wrap, gap, nested layout
Composable API (org/layout-composable.org, ~200 lines):
- vbox/hbox macros: declarative container creation with style props
- overlay macro: absolute-positioned child over relative base
- spacer function: flex-grow filler
- make-props-list helper: extracts plist minus :children
- 6 tests: vbox stacking, hbox layout, spacer flex, overlay position,
align/justify via vbox, padding offset
GREEN: 29/29 pass (59 assertions)
- yoga-ffi: 9 tests (22 assertions)
- layout-primitives: 14 tests (24 assertions)
- layout-composable: 6 tests (13 assertions)
|
2026-05-11 08:08:15 -04:00 |
|
|
|
f135b56a1a
|
v0.1.0: Yoga FFI binding — CFFI types, 50+ bound functions, 9 tests
- Load Yoga shared library via CFFI (/usr/local/lib/libyoga.so)
- 15 enum constant sets (YGDirection through YGUnit)
- Foreign type definitions: yg-node-ref, yg-size, yg-value
- Core node management: new, free, insert-child, remove-child, get-child-count
- Layout: calculate-layout, get-left/top/width/height
- Style setters: direction, flex-direction, justify-content, align-items,
align-self, flex-wrap, position-type, flex-grow/shrink/basis, overflow,
display, width/height, min/max dimensions, padding, margin, border, gap,
position (point and percent)
- Style getters: width, height, flex-direction, align-items, justify-content
- Disable FP traps for SBCL (Yoga uses NaN for YGUndefined)
GREEN: 9/9 pass (22 assertions)
- test-node-create-free, test-node-child-count, test-node-insert-child
- test-layout-basic-column, test-layout-basic-row
- test-layout-flex-grow, test-layout-absolute-position
- test-layout-padding, test-layout-nested
|
2026-05-11 07:18:53 -04:00 |
|
|
|
3e0268c982
|
Initial commit: cl-tui — Reusable Common Lisp Terminal UI Framework
Layout engine (Yoga FFI), renderables (Box, Text), rendering engine,
theme engine, TextInput/Textarea, ScrollBox/TabBar, Select, Markdown/Code/Diff,
dialog system, mouse support, plugin/slot system.
|
2026-05-11 06:48:20 -04:00 |
|