KQ-898 · ARCHIVE/SLIDE

Archive Slide

A channel list where a row can be pushed aside. Dragging a row left uncovers the one action parked under it, whose ink and glyph grow straight from the travel so the commit point is felt before the finger lifts; a short release returns the row on snap, and a release past the threshold hands the rest of the travel to a tween on the exit ease before the rows below close the gap on glide. An undo chip unfolds in flow at the foot of the list against a measured height, and every row keeps an archive button so Delete or Backspace archives without the gesture.

KQ-898 · ARCHIVE/SLIDE

5 showing · 0 archived · drag a row left

Install

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

$ pnpm dlx shadcn@latest add @kinetiq/archive-slide

Props

channels
ArchiveChannel[]
default
The rows in list order: id, name, preview and an optional unread count.
archived / defaultArchived
string[]
default []
Controlled or initial archived ids; those rows leave the list.
onArchivedChange
(ids: string[]) => void
default
Fires with the next set from an archive or an undo.
onArchive
(id: string) => void
default
Fires when a row commits, from the gesture or the button.
onRestore
(id: string) => void
default
Fires from the undo chip with the channel that came back.
activeChannel / defaultActiveChannel
string
default
Controlled or initial open channel id.
onChannelSelect
(id: string) => void
default
Fires from a row press that was a press, not a drag.
threshold
number
default 88
Pixels of travel that commit the archive.
actionLabel
string
default "Archive"
The parked action's copy.
emptyLabel
string
default "Every channel is archived."
The sentence shown when every channel has been put away.
label
string
default
Names the list for assistive technology.