@@ -497,7 +497,7 @@ export const TableHeader = /*#__PURE__*/ createBranchComponent(
497497 }
498498 } , [ ] )
499499 } ) ;
500-
500+
501501 let { rowGroupProps} = useTableRowGroup ( ) ;
502502 return (
503503 < thead
@@ -792,6 +792,7 @@ function ColumnResizer(props: ColumnResizerProps, ref: ForwardedRef<HTMLDivEleme
792792 < div
793793 ref = { objectRef }
794794 role = "presentation"
795+ { ...filterDOMProps ( props as any ) }
795796 { ...renderProps }
796797 { ...mergeProps ( resizerProps , { onPointerDown} , hoverProps ) }
797798 data-hovered = { isHovered || undefined }
@@ -876,7 +877,10 @@ export const TableBody = /*#__PURE__*/ createBranchComponent('tablebody', <T ext
876877 ) ;
877878} ) ;
878879
879- export interface RowRenderProps extends ItemRenderProps { }
880+ export interface RowRenderProps extends ItemRenderProps {
881+ /** Whether the row's children have keyboard focus. */
882+ isFocusVisibleWithin : boolean
883+ }
880884
881885export interface RowProps < T > extends StyleRenderProps < RowRenderProps > , LinkDOMProps , HoverEvents {
882886 /** The unique id of the row. */
@@ -918,23 +922,27 @@ export const Row = /*#__PURE__*/ createBranchComponent(
918922 ref
919923 ) ;
920924 let { isFocused, isFocusVisible, focusProps} = useFocusRing ( ) ;
925+ let {
926+ isFocusVisible : isFocusVisibleWithin ,
927+ focusProps : focusWithinProps
928+ } = useFocusRing ( { within : true } ) ;
921929 let { hoverProps, isHovered} = useHover ( {
922930 isDisabled : ! states . allowsSelection && ! states . hasAction ,
923931 onHoverStart : props . onHoverStart ,
924932 onHoverChange : props . onHoverChange ,
925933 onHoverEnd : props . onHoverEnd
926934 } ) ;
927-
935+
928936 let { checkboxProps} = useTableSelectionCheckbox (
929937 { key : item . key } ,
930938 state
931939 ) ;
932-
940+
933941 let draggableItem : DraggableItemResult | undefined = undefined ;
934942 if ( dragState && dragAndDropHooks ) {
935943 draggableItem = dragAndDropHooks . useDraggableItem ! ( { key : item . key , hasDragButton : true } , dragState ) ;
936944 }
937-
945+
938946 let dropIndicator : DropIndicatorAria | undefined = undefined ;
939947 let dropIndicatorRef = useRef < HTMLDivElement > ( null ) ;
940948 let { visuallyHiddenProps} = useVisuallyHidden ( ) ;
@@ -943,7 +951,7 @@ export const Row = /*#__PURE__*/ createBranchComponent(
943951 target : { type : 'item' , key : item . key , dropPosition : 'on' }
944952 } , dropState , dropIndicatorRef ) ;
945953 }
946-
954+
947955 let renderDropIndicator = dragAndDropHooks ?. renderDropIndicator || ( target => < DropIndicator target = { target } /> ) ;
948956 let dragButtonRef = useRef < HTMLButtonElement > ( null ) ;
949957 useEffect ( ( ) => {
@@ -952,7 +960,7 @@ export const Row = /*#__PURE__*/ createBranchComponent(
952960 }
953961 // eslint-disable-next-line
954962 } , [ ] ) ;
955-
963+
956964 let isDragging = dragState && dragState . isDragging ( item . key ) ;
957965 // eslint-disable-next-line @typescript-eslint/no-unused-vars
958966 let { children : _ , ...restProps } = props ;
@@ -968,10 +976,11 @@ export const Row = /*#__PURE__*/ createBranchComponent(
968976 selectionMode : state . selectionManager . selectionMode ,
969977 selectionBehavior : state . selectionManager . selectionBehavior ,
970978 isDragging,
971- isDropTarget : dropIndicator ?. isDropTarget
979+ isDropTarget : dropIndicator ?. isDropTarget ,
980+ isFocusVisibleWithin
972981 }
973982 } ) ;
974-
983+
975984 return (
976985 < >
977986 { dragAndDropHooks ?. useDropIndicator &&
@@ -985,7 +994,7 @@ export const Row = /*#__PURE__*/ createBranchComponent(
985994 </ tr >
986995 ) }
987996 < tr
988- { ...mergeProps ( filterDOMProps ( props as any ) , rowProps , focusProps , hoverProps , draggableItem ?. dragProps ) }
997+ { ...mergeProps ( filterDOMProps ( props as any ) , rowProps , focusProps , hoverProps , draggableItem ?. dragProps , focusWithinProps ) }
989998 { ...renderProps }
990999 ref = { ref }
9911000 data-disabled = { states . isDisabled || undefined }
@@ -996,7 +1005,8 @@ export const Row = /*#__PURE__*/ createBranchComponent(
9961005 data-pressed = { states . isPressed || undefined }
9971006 data-dragging = { isDragging || undefined }
9981007 data-drop-target = { dropIndicator ?. isDropTarget || undefined }
999- data-selection-mode = { state . selectionManager . selectionMode === 'none' ? undefined : state . selectionManager . selectionMode } >
1008+ data-selection-mode = { state . selectionManager . selectionMode === 'none' ? undefined : state . selectionManager . selectionMode }
1009+ data-focus-visible-within = { isFocusVisibleWithin || undefined } >
10001010 < Provider
10011011 values = { [
10021012 [ CheckboxContext , {
0 commit comments