diff --git a/packages/@react-spectrum/s2/s2wf-icons/S2_Icon_MoreVertical_20_N.svg b/packages/@react-spectrum/s2/s2wf-icons/S2_Icon_MoreVertical_20_N.svg new file mode 100644 index 00000000000..06ce1b7e2a5 --- /dev/null +++ b/packages/@react-spectrum/s2/s2wf-icons/S2_Icon_MoreVertical_20_N.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/packages/@react-spectrum/s2/src/TableView.tsx b/packages/@react-spectrum/s2/src/TableView.tsx index 2eb75fc0c75..6ddb48a8f42 100644 --- a/packages/@react-spectrum/s2/src/TableView.tsx +++ b/packages/@react-spectrum/s2/src/TableView.tsx @@ -98,6 +98,7 @@ import {Key} from '@react-types/shared'; import {LayoutInfo, Rect, TableLayout, Virtualizer} from 'react-aria-components/Virtualizer'; import {LayoutNode} from 'react-stately/useVirtualizerState'; import {Menu, MenuItem, MenuSection, MenuTrigger} from './Menu'; +import MoreVertical from '../s2wf-icons/S2_Icon_MoreVertical_20_N.svg'; import Nubbin from '../ui-icons/S2_MoveHorizontalTableWidget.svg'; import {OverlayTriggerStateContext} from 'react-aria-components/Dialog'; import {ProgressCircle} from './ProgressCircle'; @@ -897,9 +898,7 @@ const resizableMenuButtonWrapper = style({ paddingX: 16, backgroundColor: 'transparent', borderStyle: 'none', - fontSize: controlFont(), - fontFamily: 'sans', - fontWeight: 'bold' + font: 'title-sm' }); const resizerHandleContainer = style({ @@ -949,20 +948,24 @@ const resizerHandle = style<{isFocusVisible: boolean; isResizing: boolean}>({ const columnHeaderText = style({ truncate: true, // Make it so the text doesn't completely disappear when column is resized to smallest width + both sort and chevron icon is rendered - minWidth: fontRelative(16), + minWidth: fontRelative(18), flexGrow: 0, flexShrink: 1, flexBasis: 'auto' }); -const chevronIcon = style({ - rotate: 90, +const moreVerticalIcon = style({ + size: '1lh', marginStart: 'text-to-visual', minWidth: fontRelative(16), flexShrink: 0, '--iconPrimary': { type: 'fill', - value: 'currentColor' + value: { + default: 'gray-700', + isHovered: 'gray-800', + isFocusVisible: 'gray-800' + } } }); @@ -1064,22 +1067,36 @@ function ColumnWithMenu(props: ColumnWithMenuProps) { className={renderProps => resizableMenuButtonWrapper({...renderProps, align: buttonAlignment}) }> - {allowsSorting && ( - - {sortDirection != null && - (sortDirection === 'ascending' ? : )} - + {({isHovered, isFocusVisible}) => ( + <> + {allowsSorting && ( + + {sortDirection != null && + (sortDirection === 'ascending' ? : )} + + )} +
{children}
+ + + + )} -
{children}
- {items.length > 0 && (