KQ-932 · DIGEST/FOLD
Digest Fold
What you missed, folded into one line: a count, the rooms and the hour it starts from, beside procedural author marks hashed from their names. Pressing the header unfolds the body against a ResizeObserver-measured height on glide while the chevron turns on snap and the rows fade in on a cascade, and pressing a row jumps to it, drawing a tick on flick before the row dims to opened. The header is a real disclosure, rows carry a roving tabindex, and Escape folds the card back to the header.
KQ-932 · DIGEST/FOLD
folded · 7 missed in 3 rooms
Install
One command — the source lands in your repo. Or copy it from the Code tab.
$ pnpm dlx shadcn@latest add @kinetiq/digest-fold
Props
- groups
- DigestGroup[]
- default —
- What you missed, grouped by room, oldest first.
- since
- string
- default —
- The time the digest starts from; printed and spoken.
- open / defaultOpen
- boolean
- default false
- Controlled or initial fold state.
- onOpenChange
- (open: boolean) => void
- default —
- Fires from the header press or from Escape.
- onJump
- (message: DigestMessage, room: string) => void
- default —
- Fires with the pressed row and the room it came from.
- onAnnounce
- (sentence: string) => void
- default —
- The frozen sentence the polite region just spoke.
- title
- string
- default "While you were away"
- The card's heading.
| Prop | Type | Default | Description |
|---|---|---|---|
| groups | DigestGroup[] | — | What you missed, grouped by room, oldest first. |
| since | string | — | The time the digest starts from; printed and spoken. |
| open / defaultOpen | boolean | false | Controlled or initial fold state. |
| onOpenChange | (open: boolean) => void | — | Fires from the header press or from Escape. |
| onJump | (message: DigestMessage, room: string) => void | — | Fires with the pressed row and the room it came from. |
| onAnnounce | (sentence: string) => void | — | The frozen sentence the polite region just spoke. |
| title | string | "While you were away" | The card's heading. |