Skip to content
kitn AI/UI

Sources

kai-sources

A wrapping row of citation chips that renders the sources behind an assistant answer — each chip shows the domain (or a custom label), an optional favicon, and a hover-card with the title and description.

  • Shadow DOM
  • No events
  • Optional favicons
  • Numbered or domain labels
  • Declarative children

Assign the sources property — an array can’t be an HTML attribute:

<kai-sources id="srcs" show-favicon></kai-sources>
<script type="module">
import '@kitn.ai/ui/elements';
document.getElementById('srcs').sources = [
{ href: 'https://kitn.dev', title: 'kitn — the kit', description: 'Composable chat UI.' },
{ href: 'https://solidjs.com', title: 'SolidJS', description: 'A reactive UI library.' },
];
</script>
  • Each item accepts href (required), title, description, label, and showFavicon.
  • show-favicon enables favicons globally; a per-item showFavicon: false overrides for that chip.
  • numbered replaces domain labels with [1], [2], … — useful when the response body uses in-line citation markers.
  • Declarative path — write <kai-source> elements as light-DOM children of <kai-sources>. Prop sources render first; declarative children are appended after.
PropertyTypeDefaultNotes
sources [] The sources to render. Set as a JS property.
showFavicon false Show favicons on all items (per-item `showFavicon` overrides).
numbered false When true, each citation chip is labelled with its 1-based index in the merged (prop + declarative-children) list (`[1]`, `[2]`, …) instead of the per-item `label` or domain fallback. HTML attribute: `numbered` (boolean — bare attribute or `numbered="true"`). JS property: `el.numbered = true`.

This element wraps these SolidJS components — reach for them directly when you need finer control than the props expose.

SourceSourceTriggerSourceContentSourceList