Adds keepAlive: when true, all entry bodies stay mounted via
IndexedStack so switching tabs doesn't tear down their state.
Hosts that own PTY-backed sessions or any long-lived widget
state opt in; callers that want fresh state on each switch use
the default single-body mode.
Polishes the tab strip itself for production use:
- bottom divider so the strip visually anchors to the body below
- Column.crossAxisAlignment.stretch so the strip fills the pane
width instead of sizing to its content
- close button: replace the text × glyph with the CloseIcon
painter (clean cross strokes, font-independent)
- two-column tab layout — Expanded title on the left, fixed
16x16 close button on the right; uniform 12px left padding,
6px right padding to match the 6px top/bottom breathing room
around the close button
Two new widget tests cover keepAlive (state preserved across
switches) and default mode (inactive bodies disposed).
Co-Authored-By: Claude <noreply@anthropic.com>