KQ-947 · LOG/GROUP
Log Group
Consecutive lines carrying the same level and message fold into one row whose count rolls on snap when the run grows, with a ring popping off the badge so the change reads without the row moving. Pressing a folded row unfolds it: a ResizeObserver measures the member list, the wrapper glides to that height, and the members cascade in from 4px away inside the choreography budget. The rows are a roving tabindex — Arrow Up and Down step, Home and End jump, Right unfolds and Left folds.
KQ-947 · LOG/GROUP
- 09:41:02infobatch 118 opened, 12 holds
- 09:41:02infogate-relay handshake ok
- 09:41:05infohold 4471 written
- 09:41:06errorgate-relay unreachable, retry scheduled
7 lines · 0 runs open · nothing unfolded yet
Install
One command — the source lands in your repo. Or copy it from the Code tab.
$ pnpm dlx shadcn@latest add @kinetiq/log-group
Props
- lines
- LogLine[]
- default —
- The log in order: id, level, a printed clock string, and the message.
- openIds / defaultOpenIds
- string[]
- default []
- Controlled or initial unfolded runs, keyed by each run's first line.
- onOpenChange
- (ids: string[]) => void
- default —
- Fires from the press that folded or unfolded a run.
- onGroupToggle
- (id: string, open: boolean, count: number) => void
- default —
- Fires with the run that changed and its length, for a host's own readout.
- minRun
- number
- default 2
- Repeats needed before a run folds; below it every line prints on its own.
- label
- string
- default "Log"
- Names the list for assistive technology.
| Prop | Type | Default | Description |
|---|---|---|---|
| lines | LogLine[] | — | The log in order: id, level, a printed clock string, and the message. |
| openIds / defaultOpenIds | string[] | [] | Controlled or initial unfolded runs, keyed by each run's first line. |
| onOpenChange | (ids: string[]) => void | — | Fires from the press that folded or unfolded a run. |
| onGroupToggle | (id: string, open: boolean, count: number) => void | — | Fires with the run that changed and its length, for a host's own readout. |
| minRun | number | 2 | Repeats needed before a run folds; below it every line prints on its own. |
| label | string | "Log" | Names the list for assistive technology. |