Inline Citation
Inline superscript markers that open a hovercard with the cited local chunk, paging multiple sources via a carousel.
Inline Citation
The InlineCitation primitives embed numbered/superscript citation markers in prose that open a hovercard showing the cited local chunk (title, excerpt, quoted snippet), with a carousel paging multiple sources for one claim. Distinct from the list-style SourceCitationList, citations reference locally-stored chunks only — no remote unfurl. Data source: useSemanticSearch.
Preview
Installation
pnpm dlx shadcn@latest add @localmode/ui/conversation/inline-citationnpx shadcn@latest add @localmode/ui/conversation/inline-citationyarn dlx shadcn@latest add @localmode/ui/conversation/inline-citationbunx --bun shadcn@latest add @localmode/ui/conversation/inline-citationData source & dependencies
Data source: renders the cited-chunk shape you pass — works with any backend. Recommended producer: local chunk provenance from useSemanticSearch in @localmode/react (on-device, optional).
clsx+tailwind-merge— via the sharedcn()util (installed automatically as a registry dependency)
Files installed
inline-citation.tsx—InlineCitation,InlineCitationCard,InlineCitationCardTrigger,InlineCitationCardBody,InlineCitationCarousel,InlineCitationSource,InlineCitationQuotelib/utils.ts— thecn()helper (if not already present)
Props
InlineCitationCardTrigger
Prop
Type
Examples
A cited claim
import {
InlineCitation, InlineCitationCard, InlineCitationCardBody, InlineCitationCardTrigger,
InlineCitationCarousel, InlineCitationQuote, InlineCitationSource,
} from '@/components/inline-citation';
LocalMode runs in your browser
<InlineCitation>
<InlineCitationCard>
<InlineCitationCardTrigger label={1} />
<InlineCitationCardBody>
<InlineCitationCarousel count={1}>
<InlineCitationSource title="architecture.md" excerpt="Execution model">
<InlineCitationQuote>All inference executes on-device.</InlineCitationQuote>
</InlineCitationSource>
</InlineCitationCarousel>
</InlineCitationCardBody>
</InlineCitationCard>
</InlineCitation>.Customization
The marker is a focusable <sup> so it works by hover and keyboard. Pass count > 1 to InlineCitationCarousel with multiple InlineCitationSource children to page sources for one claim.
These primitives are presentational and hook-driven: they render props and emit callbacks, holding only local view state. The orchestration state (e.g. useSemanticSearch) lives in your app. Every surface uses shadcn/ui CSS-variable utilities, so it inherits your theme — restyle the copied file freely.