Repository navigation
0.18.0
SwiftTUI 0.18.0 improves variable-height collection scrolling, fixes composed
layout and terminal behavior, and makes browser renderer packaging explicit.
Added
- App-owned browser bundles for the terminal companion, selected through
WebHostConfig.browserAssetsPathor the runtime configuration. Build a
standalone Canvas or experimental DOM companion withswifttui-web build:web
(STUI-945). - Text-clipping benchmarks and a
text_line_visitswork counter. Thanks to
@vmarcella for
#52.
Changed
- The bundled terminal companion ships only Canvas and its semantic sidecar.
Experimental DOM requires an app-owned bundle;?renderer=domcannot switch
the built-in companion. DOM bundles use packaged Ioskeley Mono fonts
(STUI-926, STUI-945). - Lists, tables, and lazy stacks share sparse measured row geometry for
layout, scroll extents, and target refinement (STUI-921).
Fixed
- Retain variable row heights across worker snapshots so upward keyboard
navigation preserves selection, focus, and visible row geometry. Preserve
final-row and footer navigation, multi-selection painting, and pending
scrollTorefinement (STUI-921, STUI-927–STUI-941,
#56). - Preserve authored child layout in custom
DisclosureGroupStylecontent.
Thanks to @echoz for the contribution in
#49. - Respect declared Spacer minima and wrapped flexibility, retain nested
destination state, preserve scroll viewport ownership through custom Layout
placement, and reject estimate-derived wrappers for exact measurement reuse. - Coordinate terminal probes with reader-mode capabilities, detect terminal
protocols independently, detach link-helper standard descriptors, and honor
termination requests raised during exit flushing (STUI-927–STUI-941). - Isolate benchmark render modes and make PTY cleanup regressions independent
of concurrent descriptor reuse.