ensureRowFullyVisible
suspend fun <C> ensureRowFullyVisible(index: Int, verticalState: LazyListState, state: TableState<C>, density: Density, movement: Int = 0)
Ensure that the given index row becomes fully visible in the viewport (supports dynamic row heights).
index is a row index; the backing LazyColumn is indexed by units (a unit is a single row or a declared group of adjacent rows), so it is translated once via TableState.rowUnits and the unit index is used for every layoutInfo lookup and scroll call. Height estimates stay keyed by row (state.rowHeightsPx): they under-count a group's internal gap, which is acceptable because every branch fine-tunes the final scroll from the measured info.offset once the target unit is visible.