     [ show-row-summary ]
     2tri ;
 
+: prev/next-row ( table n -- )
+    [ dup selected-index>> ] dip '[ _ + ] [ 0 ] if* select-row ;
+    
 : prev-row ( table -- )
-    dup selected-index>> [ 1- ] [ 0 ] if* select-row ;
+    -1 prev/next-row ;
 
 : next-row ( table -- )
-    dup selected-index>> [ 1+ ] [ 0 ] if* select-row ;
+    1 prev/next-row ;
 
 : first-row ( table -- )
     0 select-row ;

    row-rect [ { 0 1 } v* ] change-dim ;

: (select-row) ( table n -- )
    [ [ thin-row-rect ] [ drop ] 2bi scroll>rect ]
    [ >>selected-index relayout-1 ]
    2bi ;


    line-height /i ;

: validate-row ( m table -- n )
    control-value [ drop f ] [ length 1- min 0 max ] if-empty ;

: visible-row ( table quot -- n )
    '[
