da7c843d44
Port Ink's clip/unclip approach to vue-tui's paint output. When a box has overflow="hidden", content painted by its children that falls outside the box's content area (inside borders) is clipped. Implementation: - Add ClipRect, clip(), and unclip() to the Output class - Maintain a clip stack; active clip is applied to each write op - Horizontal clipping uses slice-ansi for correct ANSI handling - Vertical clipping slices the lines array - Store "overflow" in STYLE_PROPS so it's available in node.props for the paint pass Also adds explicit flexDirection="row" to two overflow tests where multiple child boxes should lay out side-by-side (Ink defaults to row, vue-tui defaults to yoga's column). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>