KQ-819 · RECENT/RAIL

Recent Rail

A rail of recent conversations, newest first. Rows slide in from a step away on snap in a cascade — on mount, and again when a new conversation lands at the top while the rows beneath travel down with layout on glide and the one past the limit fades out at the bottom, the rail's measured height gliding to fit. The active row glows: a shared layoutId plate travels to it on snap and a bloom behind it arrives on flick and settles to a soft rest on drift. Renaming edits in place, the title swapping for an input at the same height, and the new title cross-fades in.

KQ-819 · RECENT/RAIL
Recent

Active · Refund for a Waylight Pay order

Install

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

$ pnpm dlx shadcn@latest add @kinetiq/recent-rail

Props

items
RecentItem[]
default
Newest first — id, title and a short age label the host supplies, never read from a clock; the host owns the list.
max
number
default 6
Rows the rail shows; the one pushed past it fades out at the bottom.
value / defaultValue
string
default
Controlled or initial active conversation; defaults to the first item.
onValueChange
(id: string) => void
default
Fires from the click or key that opened a conversation.
onRename
(id: string, title: string) => void
default
Fires from a committed rename with a non-empty, changed title.
label
string
default
Names the rail for assistive technology and prints as its heading.