Skip to content
kitn AI/UI

Suggestions

kai-suggestions

A row (or full-width list) of clickable prompt chips — drop it above an input in the welcome state or below the last assistant message as follow-up shortcuts.

  • Shadow DOM
  • 3 chip styles
  • Block layout mode
  • Substring highlight
  • 1 event

Assign the suggestions property and listen for kai-select:

<kai-suggestions id="suggs" variant="outline"></kai-suggestions>
<script type="module">
import '@kitn.ai/ui/elements';
await customElements.whenDefined('kai-suggestions');
const suggs = document.getElementById('suggs');
suggs.suggestions = ['Explain the architecture', 'Show me a code example'];
suggs.addEventListener('kai-select', (e) => console.log(e.detail.value));
</script>

For the declarative path, use <kai-suggestion> children — value sets the emitted value, text content is the label. Prop items render first; declarative children are appended after.

Child elementAttributesText contentNotes
iconvalue
YesParse a single `<kai-suggestion>` node into an `Item` descriptor.

variant="ghost" — no border, subtle hover. Good when chips should blend into the surrounding UI.

block stacks suggestions as full-width rows — useful in sidebars or constrained panels.

highlight emphasises the matching substring in every chip — ideal for autocomplete or search-suggestion lists.

Pass { label, value } objects when the displayed text and the emitted value should differ.

PropertyTypeDefaultNotes
theme'auto'Color mode (`auto` follows prefers-color-scheme).
suggestions[]The suggestions. Strings, or `{ label, value }` when the displayed text and the emitted value differ. Set as a JS property. Omit to supply them as `<kai-suggestion>` light-DOM children instead; when both are present the property's suggestions come first.
variant'outline'Chip style: `'outline'` (default), `'ghost'`, or `'default'` (filled).
size'md'Row height for `layout="list"`: `'md'` (default) or `'lg'` for taller rows. Chips are unaffected.
layout'chips'Layout: `'chips'` (default) renders a wrapping row of rounded pills; `'list'` renders a vertical, full-width "Ideas for you" list where each row is left-aligned with a leading `icon`, a label, and a hover background.
blockfalseFull-width left-aligned rows instead of pills.
highlightSubstring to highlight within each suggestion.
EventDetailNotes
A suggestion was clicked.

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

PromptSuggestion