MessageScroller is the transport-neutral scroll container behind
ChatTranscript: it follows new content by default, stops following when the
reader scrolls away, and exposes a jump button without coupling the UI to a
Gateway or streaming client.
Props
The forwarded
MessageScrollerHandle provides scrollToBottom(behavior?) and
isFollowing(). stickToBottom={false} disables all automatic scrolling while
retaining fades and one-shot jump behavior.