AI product kit
Thread, reasoning trace, approvals, citations — and the meter that bills them.
The surfaces an agent product is actually made of, which are not "a dashboard with a chatbot bolted on". A thread, a streaming answer, a visible reasoning trace, an approval card a human has to sign, retrieved context with its citations, and the credit balance that pays for all of it. Each is its own layout problem with its own live-region and focus rules, and each is solved here rather than approximated.
Take the whole kit
Add every piece to your bundle and export it as one archive, or run the command below to write all 23 into your project.
The free bundle holds ten pieces. Pro removes the cap — every piece stays free to read and copy either way.
npx hoverlab add ai-assistant ai-assistant-page chat-thread-panel chat-prompt-bar chat-streaming-answer chat-empty-state chat-model-picker agent-thinking-trace agent-tool-calls agent-working-indicator approval-request-card agent-diff-review source-citation-list context-chunk-cards context-window-budget selection-ai-toolbar ai-inline-suggestion pricing-credits billing-credit-balance loader-dots text-typewriter loader-pulse-ring card-glassEvery id spelled out, so it resolves against the CLI you already have rather than a shorthand that has to know this list.
Free to read, copy and install for personal and non-commercial work. Shipping it in client work or a paid product needs Pro ($79 once). The licence is the same for a kit as for any single piece in it — bundling things together does not change what you may do with them.
Templates1
Pages1
Blocks17
- Assistant Thread with ComposerAgent Chat
A scrolling conversation with per-turn actions, announced as a polite log restricted to additions — so a streaming reply is not re-read on every token — and auto-scroll that only pins when the user is already at the bottom.
chat-thread-panel - Composer with @ Sources and / CommandsAgent Chat
The trigger menus done properly: @ and / open only at a token boundary, the query is derived from the caret so the menu closes itself, and focus never leaves the textarea — the combobox pattern, not a floating div.
chat-prompt-bar - Streaming Answer with CitationsAgent Chat
Token-by-token text with linked citations, follow-up chips and a caret that stops the moment the stream does. The status is announced once; the prose is deliberately outside every live region.
chat-streaming-answer - Assistant Starter ScreenAgent Chat
The blank thread, answered: grouped starter prompts as real lists of buttons, each group labelled, so the highest-leverage screen in an AI product is not a centred logo.
chat-empty-state - Model Picker with Trade-offsAgent Chat
Model selection with the three numbers the choice actually turns on — capability, latency and cost per message — and locked models explained rather than greyed out.
chat-model-picker - Collapsible Thinking TraceAgent Reasoning
The "thought for 5s" panel: a native details/summary outside, individually expandable steps inside — buttons rather than nested disclosures, which are announced as a disclosure within a disclosure.
agent-thinking-trace - Tool Call ChipsAgent Reasoning
Dense tool invocations that open into their arguments and result, with status carried by icon and word rather than colour, and errors marked as alerts only once the user opens them.
agent-tool-calls - Working Indicator with Elapsed TimeAgent Reasoning
The gap before the first token: a shimmer grid, a phase label that advances as the wait lengthens, and a running counter — which is the only honest answer to "is it stuck". The timer is hidden from the live region on purpose.
agent-working-indicator - Approval Request with Blast RadiusHuman in the Loop
The agent stops and asks: the effect stated before the verb, choices as radios in a fieldset so picking is separate from committing, no pre-focused Approve, and the decision left on screen afterwards.
approval-request-card - Proposed Edits Diff TableHuman in the Loop
Machine-proposed row edits accepted one at a time, with before and after in real del/ins elements, a tri-state select-all that actually sets indeterminate, and a running count of what will be written.
agent-diff-review - Answer Source CitationsRetrieval & Context
The published footnotes under an answer — ordered list, real cite and time elements, the claim each source supports, and a staleness warning written in words rather than shown as an amber dot.
source-citation-list - Retrieved Context ChunksRetrieval & Context
The RAG debugging surface: ranked passages with similarity as a meter, matched spans in real mark elements, and filter chips wired as a radiogroup so arrows move between them.
context-chunk-cards - Context Window BudgetRetrieval & Context
What is in the context and what fell out of it — a stacked budget with the reply reserve drawn as a segment, and the dropped chunks named with the reason, which is the part nobody ships.
context-window-budget - Selection Action ToolbarInline AI Actions
Highlight a passage and hand it to the model. Positioned from the range rect relative to its container, raised by selectionchange so Shift-Arrow works, and every button prevents the mousedown that would collapse the selection.
selection-ai-toolbar - Ghost Text CompletionInline AI Actions
Copilot-style completion in a plain textarea: a transparent-caret field over a metric-matched mirror, Tab to accept, Escape that actually sticks, and the suggestion announced rather than left as invisible grey text.
ai-inline-suggestion - Prepaid Credit PacksPricing
One-time packs with the per-credit price worked out for the reader and the saving stated rather than implied — the pricing shape for a product that sells quantity, not a subscription.
pricing-credits - Credit Balance and ExpiryBilling & Usage
Consumable credits split into the buckets they actually live in, rendered in spend order, with a proportional warning that only appears when a meaningful balance is about to expire.
billing-credit-balance
Effects4
- Three Dots BounceLoaders
Three colored dots that bounce in a staggered rhythm, perfect for inline status indicators.
loader-dots - TypewriterText
Mono-spaced text that types itself out character by character with a blinking caret, then re-types.
text-typewriter - Pulse Ring LoaderLoaders
Two concentric rings expand and fade in alternation, creating a sonar-like pulse.
loader-pulse-ring - Glassmorphism CardCards
A frosted glass card with backdrop blur sitting over a colorful gradient plate — the classic iOS-style material.
card-glass
You are building on top of a model and need the human-facing half. If you would rather be walked through the order than handed the list, the guided paths cover the same ground one step at a time.