Added
- Added
Normal and PreWrap whitespace modes for text, with configurable tab widths.
- Added allocation-traced benchmarks for element-tree traversal and retained text layout, including reproducible corpora and checked baselines.
- Added a public
Geom module with shared Pos, Size, and Bounds types for canvas and geometry APIs.
Changed
- Represented views as structured trees with one stack-based depth-first walker, substantially reducing allocations while retaining operation-stream iteration and collection helpers.
- Reworked text preparation, wrapping, and caching to reuse width-independent measurements across rebuilds and resize passes.
Normal remains the default whitespace mode.
- Removed the implicit scissor scope around each custom canvas to substantially reduce rendering overhead. Canvas callbacks must keep drawing within their supplied bounds; canvases still inherit clipping from overflow-clipped ancestors.
- Moved the standard canvas callback and payload types from
Renderer to Program; use Program.CanvasDraw and Geom.Bounds in application code.
Fixed
- Preserved spaces, tabs, explicit line breaks, and trailing whitespace when text uses
PreWrap.
- Kept the newest text-measurement cache entries when the cache exceeds its size limit.
- Made the controlled text-input configuration a proper public
Widget.TextInputConfig type so package API extraction no longer references a private widget module.
Removed
- Removed the low-level
Paint and Renderer modules from the public package surface.
Install
tc: "https://github.com/obust/terrocotta/releases/download/0.2.0/Hhcsfh2yPhePMS7YrAkTkTvgrQEqzCVnPK7VeYJvMfwG.tar.zst"