adjustScroll method
Updates scroll offset based on selected index to keep selection visible.
Implementation
void adjustScroll(int viewportHeight) {
if (items.isEmpty || viewportHeight <= 0) return;
selectedIndex = selectedIndex.clamp(0, items.length - 1);
if (selectedIndex < scrollOffset) {
scrollOffset = selectedIndex;
} else if (selectedIndex >= scrollOffset + viewportHeight) {
scrollOffset = selectedIndex - viewportHeight + 1;
}
}