Filters (web/excel-filter.js), modeled on Excel's AutoFilter:
- Every column header gets a dropdown: Sort A to Z / Z to A, Clear Filter
From "<column>", Search, a checkbox list of the column's values with
(Select All) and (Blanks), OK / Cancel. Values come from rows passing
the other columns' filters; filters on several columns combine. Tags
and software lists are split into individual items.
- The button shows a funnel when filtered and an arrow when sorted, and a
"Clear filters (n)" button appears beside the group's copy buttons
- Replaces the old per-column filter row (which also removes the gap
between header and filter rows); hooks the existing filter passes so
global search, counts and worker re-renders keep working
- Menus are fixed-position on <body>, so sticky headers and neighbouring
tables can't cover them; on phones they open as a bottom sheet
- Workbench stacks get the same menus (sorting done client-side)
- Custom View's filter icon opens the same menu
Layout:
- Sticky headers use separated borders so no hairline gap opens
- Phones/tablets: a sticky bar of column chips (with active counts and
"Clear all") opens the filter menus
- Custom View fills the page like the other views on desktop; it still
scrolls sideways when wide, with its header pinned under the group header
- Custom View on phones/tablets: a "Card fields" sheet to choose, order
and remove the fields shown on each card
Demo: first visit puts 6 PCs (one per migration stage) on the Workbench.