Smith::UI::Style
The text layer comes from anvil. What is left here are the names smith knows it by, plus the palette.
Style, Span, StyledLine and the line helpers (widths, wrapping,
truncation, ANSI output) are the same there — with two differences smith
has taken on: colors are Anvil::Text::Color rather than raw 256-colour
indices, and the attribute is called reverse rather than invert.
anvil computes widths over grapheme clusters and termisu's Unicode tables instead of the approximation that used to live here, which is more accurate for emoji with variation selectors and for combining marks.