Call from a row's onClick handler with the item and the event.
Call from a row's onContextMenu handler. Mirrors Finder/Explorer behaviour: right-clicking on an unselected row replaces selection with just that row so the context menu acts on a sensible target. Right- clicking on an already-selected row leaves the selection untouched (so multi-select operations work).
Bind to the list container's onKeyDown for Cmd/Ctrl+A.
Cursor index (highlighted row; moves with keyboard nav).