filteredWholeRowBlocks

fun <T> List<T>.filteredWholeRowBlocks(blockOf: (T) -> Any?, predicate: (T) -> Boolean): List<T>

Filters at block granularity: a block survives in full when ANY member matches, so the rendered blocks never show partially. The plain row-level filter stays first-class — hidden members simply travel with their block on a drag — this helper exists for consumers who want match-whole-block semantics instead.