Pages
Column Picker

c93 — UxColumnPicker over UxPopover, prototyped here 2026-09-22 · extracted to the layer and seated in the trigger bar in c95, 2026-09-25

A popover of checkboxes, one per column, sitting above the whole table. The v-model is the list of visible keys in catalog order, so a DataTable consumer filters its column config with it and nothing inside the table changes. The identity column is locked; the last visible column can't be unchecked. Show/hide only — no reorder, no memory (persistence is the consumer's call).

Devices listing

the qdash DevicesOverview catalog + three more columns real devices carry
Devices
Owner
Team
Harnesses
Sessions · 7d
Last seen
Coverage
ci-runner-07—Platform11204just nowFull
thinkpad-choDana ChoData42311m agoPartial
mbp-aliceAlice NgPlatform31422m agoFull
mbp-benBen OrtizSecurity28814m agoFull
mbp-raviRavi MenonApps2193h agoBlocked
win-samSam WhitfieldSales142d agoPartial
visible: name, owner, team, installs, sessions, lastSeen, coverage

side="above" here: the list opens over the title area instead of dropping across the right-hand columns — the ones being toggled stay in view. The other pickers on this page open below (the default) for comparison.

Sorting by a column and then hiding it used to leave the rows in insertion order. Since c95 DataTable falls back to initialSort, else the first visible sortable column — try sorting by Owner and hiding it.

Seated in the listing bar

c95 — DataListingBar in DataTable's #toolbar slot · 2026-09-25

The picker's real home: the last segment of the global-filter trigger bar, so a listing has one strip — which rows on the left, which columns on the right — instead of two controls fighting for the same edge. The bar's #end slot hands over its tone; the picker's #trigger slot takes it. Filter and picker are both live here.

Devices

Team
Owner
Team
Harnesses
Sessions · 7d
Last seen
Coverage
ci-runner-07—Platform11204just nowFull
thinkpad-choDana ChoData42311m agoPartial
mbp-aliceAlice NgPlatform31422m agoFull
mbp-benBen OrtizSecurity28814m agoFull
mbp-raviRavi MenonApps2193h agoBlocked
win-samSam WhitfieldSales142d agoPartial
team: All · visible: name, owner, team, installs, sessions, lastSeen, coverage

Scenarios

minimal · overflow · guard · long labels · left-aligned
Minimal — 3 columns
Teams
Team
Members
Agents
Platform814
Security56
Data611
Overflow — 16 columns, the panel scrolls
Sessions
9 of 16 visible — the list caps at max-h-96 and scrolls; header and footer stay put.
Guard — only the locked column left
Devices
mbp-alice
mbp-ben
thinkpad-cho
Device is locked (checked, disabled). With nothing else on, it is also the last visible column, so the table can never empty. Show all restores the catalog.
Long labels · left-aligned · no locked column
panel hangs from the left edge; labels wrap inside w-64
Nothing locked here, so the guard moves: whichever column is last standing becomes the one you can't uncheck — currently —.

With UxTableList

the slot-driven table — a v-if per header and cell
Vendors
VendorRequestsErrorsAvailability
api.openai.com61,9441299.98%
api.anthropic.com48,210399.99%
hooks.slack.com8,1214099.51%

c93 — decisions 2026-09-22: target is DataTable (column-array) with the v-if pattern documented for UxTableList; popover idiom (qdash /controls precedent, framework-picker-ideas Idea 2); trigger above the whole component; v-model only, no persistence; show/hide only; locked identity column + min-one guard; UxPopover ships as its own layer primitive.

Qpoint Brand Style Guide