KQ-815 · PIN/BOARD
Pin Board
A board of facts the assistant is holding in view, laid out as wrapping tiles whose widths follow their text. Pinning a fact lands its tile on recoil from 0.9 scale, two visible bounces, while every other tile reflows to its new place with a layout move on glide and the board's measured height glides with it; unpinning fades the tile on the exit ease and the board closes around the gap. Hovering or focusing a tile reads where it came from in a cross-fading source strip, pressing holds the source open, and the fact buttons share a roving tabindex where arrows step, Home and End jump, and Delete unpins.
Nothing pinned yet
Nothing pinned · press pin next
Install
One command — the source lands in your repo. Or copy it from the Code tab.
$ pnpm dlx shadcn@latest add @kinetiq/pin-board
Props
- items
- PinnedFact[]
- default —
- The pinned facts in pin order, each with an id, a fact and a source of who said it, which turn and the quoted line; the host owns the list.
- onUnpin
- (id: string) => void
- default —
- Fires from a tile's unpin button or Delete and Backspace on a focused tile.
- onSourceChange
- (id: string | null) => void
- default —
- Fires when the source strip changes what it shows, with the tile's id or null.
- assistantName
- string
- default "Assistant"
- Name used for assistant sources in the strip; invented names only.
- label
- string
- default —
- Names the board for assistive technology.
- emptyText
- string
- default "Nothing pinned yet"
- The line shown while nothing is pinned.
| Prop | Type | Default | Description |
|---|---|---|---|
| items | PinnedFact[] | — | The pinned facts in pin order, each with an id, a fact and a source of who said it, which turn and the quoted line; the host owns the list. |
| onUnpin | (id: string) => void | — | Fires from a tile's unpin button or Delete and Backspace on a focused tile. |
| onSourceChange | (id: string | null) => void | — | Fires when the source strip changes what it shows, with the tile's id or null. |
| assistantName | string | "Assistant" | Name used for assistant sources in the strip; invented names only. |
| label | string | — | Names the board for assistive technology. |
| emptyText | string | "Nothing pinned yet" | The line shown while nothing is pinned. |