KQ-895 · SEARCH/INLINE

Search Inline

Find in the thread, without leaving it. Every occurrence takes a wash that sweeps in from its left edge — scaleX on a layer behind the words, staggered by cascade and capped at the 600ms budget — while messages with no match recede on a tween, so the hits read as a set. Enter steps to the next match and the box slides to it on glide with every scroll frame rounded, Shift+Enter steps back, Escape clears the term, and the 3 / 7 readout rolls a digit at a time on snap.

KQ-895 · SEARCH/INLINE
  1. Ines Moreau, 14:38.Coldbrook depot closes Thursday at noon.
  2. Marta Ferreira, 14:41.Do the pallets go out before that?
  3. Ines Moreau, 14:44.Two pallets, both labelled, on dock two.
  4. Rui Baptista, 14:52.Dock two is short a loader until nine.
  5. Marta Ferreira, 14:55.Then take dock three.
  6. Rui Baptista, 15:02.Dock three is free from nine, yes.
  7. Ines Moreau, 15:11.Waylight Pay reference is 4471-CB.
  8. Marta Ferreira, 15:18.On the sheet. Pallets are stacked.
  9. Rui Baptista, 15:24.Loader is booked at the dock until half past.

dock · no matches

Install

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

$ pnpm dlx shadcn@latest add @kinetiq/search-inline

Props

messages
SearchMessage[]
default
The thread, oldest first: id, author, text, a preformatted time and an own flag.
query / defaultQuery
string
default ""
Controlled or initial search term.
onQueryChange
(query: string) => void
default
Fires from every keystroke and from Escape's clear.
onMatchChange
(index: number, total: number) => void
default
Fires when the current match or the total changes; index is 1-based and 0 when there is nothing to step to. Memoise it.
onAnnounce
(sentence: string) => void
default
Fires once per frozen change sentence, for a parent's own status line.
caseSensitive
boolean
default false
Match case.
label
string
default "Find in thread"
Names the field for assistive technology.
placeholder
string
default "Find in thread"
Placeholder text in the field.
threadLabel
string
default
Names the thread's scroll region.
maxHeight
number
default 260
Tallest the thread grows before it scrolls inside its own box.