KQ-942 · LEVEL/FILTER

Level Filter

Four level chips and the log lines they let through. Turn a level off and its lines leave on a fast tween while everything below travels up under layout on glide — a FLIP, because the list is moving rather than repainting — and the box's measured height glides with it; each chip's count rolls a digit at a time on snap. Where a run has been hidden a rule opens in the gap and says what is missing, its hairlines growing outward from the centre.

KQ-942 · LEVEL/FILTER
  1. Debug, ledger-api, 09:14:02. pool 2 of 8 connections busy
  2. Info, ledger-api, 09:14:04. capture 8841 accepted
  3. Debug, gate-relay, 09:14:05. lease renewed, ttl 30s
  4. Debug, gate-relay, 09:14:07. peer dock-2 answered in 12ms
  5. Warn, ledger-api, 09:14:09. retry 1 of 3 for capture 8843
  6. Info, gate-relay, 09:14:11. handshake accepted from dock-2
  7. Debug, ledger-api, 09:14:12. batch 77 queued
  8. Error, ledger-api, 09:14:14. capture 8843 refused, ledger locked
  9. Debug, gate-relay, 09:14:15. backoff window 400ms
  10. Info, dock-worker, 09:14:17. batch 77 drained in 412ms
  11. Debug, dock-worker, 09:14:18. shard 3 idle
  12. Warn, dock-worker, 09:14:20. queue depth 212, above the mark
  13. Debug, gate-relay, 09:14:22. lease renewed, ttl 30s
  14. Error, gate-relay, 09:14:24. handshake refused by dock-2
  15. Info, ledger-api, 09:14:25. capture 8844 accepted
  16. Debug, ledger-api, 09:14:27. pool 5 of 8 connections busy
  17. Error, dock-worker, 09:14:29. batch 78 dropped after 3 retries
  18. Info, gate-relay, 09:14:31. north run clear

All levels · 18 of 18 lines

Install

One command — the source lands in your repo. Or copy it from the Code tab.

$ pnpm dlx shadcn@latest add @kinetiq/level-filter

Props

lines
LevelLine[]
default
The buffer, oldest first; each line carries id, level, service, time and text.
levels / defaultLevels
FilterLevel[]
default all four
Controlled or initial set of shown levels.
onLevelsChange
(levels: FilterLevel[]) => void
default
Fires from a chip press with the new set, in level order.
onAnnounce
(sentence: string) => void
default
The sentence the polite region just spoke.
maxHeight
number
default 216
Scroll ceiling for the list box, in px.
label
string
default "Log"
Names the toolbar ("<label> levels") and the list ("<label> lines").