Table with **id-keyed** row selection and a bulk-action bar. `DataTable`’s own `selectable` prop keys selection by array index and only works in the deprecated legacy view, so selections there follow the wrong rows once anything sorts or paginates.
<BulkActionTable rows={companies} rowId={(c) => c.companyId} selected={selected} onSelectedChange={setSelected} columns={columns} actions={[{ key: 'enrich', label: 'Enrich', onAction: enrich }]} />
<BulkActionTable isRowSelectable={(c) => (c.suppressed ? 'Suppressed' : true)} totalMatching={total} onSelectAllMatching={selectEverything} … />