- Prop
client- Type
import("@grassroot/assistant/client").AssistantClient | undefined- Default
- —
- Requirement
- optional
Docs Components Assistant
Thread
React example follows below.
Vue example follows below.
Angular example follows below.
Svelte example follows below.
Solid example follows below.
- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
import { Thread } from "@grassroot/ui-react/assistant";import { assistantDemoMessages, assistantDemoSuggestions } from "@grassroot/demo-fixtures"; export default function ThreadDemo() { return <Thread messages={assistantDemoMessages} suggestions={assistantDemoSuggestions} maxWidth={560} />;}- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
<script setup lang="ts">import { Thread } from "@grassroot/ui-vue/assistant";import { assistantDemoMessages, assistantDemoSuggestions } from "@grassroot/demo-fixtures";</script> <template> <Thread :messages="assistantDemoMessages" :suggestions="assistantDemoSuggestions" :maxWidth="560" /></template>- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
import "./ensure-compiler";import { ChangeDetectionStrategy, Component } from "@angular/core";import { GrassrootAssistantThread } from "@grassroot/ui-angular/assistant";import { assistantDemoMessages, assistantDemoSuggestions } from "@grassroot/demo-fixtures"; @Component({ selector: "app-thread-demo", standalone: true, imports: [GrassrootAssistantThread], changeDetection: ChangeDetectionStrategy.OnPush, template: `<grassroot-assistant-thread [messages]="messages" [suggestions]="suggestions" [maxWidth]="maxWidth" />`,})export class ThreadDemoComponent { protected readonly messages = assistantDemoMessages; protected readonly suggestions = assistantDemoSuggestions; protected readonly maxWidth = 560;} export default ThreadDemoComponent;- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
<script lang="ts"> import { Thread } from "@grassroot/ui-svelte/assistant"; import { assistantDemoMessages, assistantDemoSuggestions } from "@grassroot/demo-fixtures";</script> <Thread messages={assistantDemoMessages} suggestions={assistantDemoSuggestions} maxWidth={560} />- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
/** @jsxImportSource solid-js */import { Thread } from "@grassroot/ui-solid/assistant";import { assistantDemoMessages, assistantDemoSuggestions } from "@grassroot/demo-fixtures"; export default function ThreadDemo() { return <Thread messages={assistantDemoMessages} suggestions={assistantDemoSuggestions} maxWidth={560} />;}Installation
API Reference
Import
import { Thread } from "@grassroot/ui-react/assistant";
import { assistantDemoMessages, assistantDemoSuggestions } from "@grassroot/demo-fixtures";
Props
Prop
Type
Default
Requirement
clientimport("@grassroot/assistant/client").AssistantClient | undefined—
optional
messagesreadonly AssistantMessageLike[] | undefined—
optional
suggestionsreadonly string[] | undefined—
optional
onSuggestionSelect((suggestion: string) => void) | undefined—
optional
maxWidthstring | number | undefined—
optional
autoScrollboolean | undefined—
optional
- Prop
messages- Type
readonly AssistantMessageLike[] | undefined- Default
- —
- Requirement
- optional
- Prop
suggestions- Type
readonly string[] | undefined- Default
- —
- Requirement
- optional
- Prop
onSuggestionSelect- Type
((suggestion: string) => void) | undefined- Default
- —
- Requirement
- optional
- Prop
maxWidth- Type
string | number | undefined- Default
- —
- Requirement
- optional
- Prop
autoScroll- Type
boolean | undefined- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
onSuggestionSelect | ((suggestion: string) => void) | undefined |
Content regions
composerwelcome
Native attributes
Standard DOM and ARIA attributes not listed above spread onto the root element.
Import
import { Thread } from "@grassroot/ui-vue/assistant";
import { assistantDemoMessages, assistantDemoSuggestions } from "@grassroot/demo-fixtures";
Props
Prop
Type
Default
Requirement
clientAssistantClientundefinedoptional
messagesAssistantMessageLike[]() => []optional
welcomeunknown—
optional
composerunknown—
optional
suggestionsstring[]() => []optional
maxWidthstring | number—
optional
autoScrollbooleantrueoptional
- Prop
client- Type
AssistantClient- Default
undefined- Requirement
- optional
- Prop
messages- Type
AssistantMessageLike[]- Default
() => []- Requirement
- optional
- Prop
welcome- Type
unknown- Default
- —
- Requirement
- optional
- Prop
composer- Type
unknown- Default
- —
- Requirement
- optional
- Prop
suggestions- Type
string[]- Default
() => []- Requirement
- optional
- Prop
maxWidth- Type
string | number- Default
- —
- Requirement
- optional
- Prop
autoScroll- Type
boolean- Default
true- Requirement
- optional
Events
| Event | Payload |
|---|---|
suggestionSelect | (string) => void |
Import
import "./ensure-compiler";
import { ChangeDetectionStrategy, Component } from "@angular/core";
import { GrassrootAssistantThread } from "@grassroot/ui-angular/assistant";
import { assistantDemoMessages, assistantDemoSuggestions } from "@grassroot/demo-fixtures";
Props
Prop
Type
Default
Requirement
clientAssistantClient—
optional
messagesreadonly AssistantMessageLike[][]optional
welcomestring"Start a conversation"optional
suggestionsreadonly string[][]optional
maxWidthnumber | string760optional
autoScrollbooleantrueoptional
- Prop
client- Type
AssistantClient- Default
- —
- Requirement
- optional
- Prop
messages- Type
readonly AssistantMessageLike[]- Default
[]- Requirement
- optional
- Prop
welcome- Type
string- Default
"Start a conversation"- Requirement
- optional
- Prop
suggestions- Type
readonly string[]- Default
[]- Requirement
- optional
- Prop
maxWidth- Type
number | string- Default
760- Requirement
- optional
- Prop
autoScroll- Type
boolean- Default
true- Requirement
- optional
Events
| Event | Payload |
|---|---|
suggestionSelect | string |
Content regions
composer
Import
import { Thread } from "@grassroot/ui-svelte/assistant";
import { assistantDemoMessages, assistantDemoSuggestions } from "@grassroot/demo-fixtures";
Props
Prop
Type
Default
Requirement
classstring—
optional
stylestring—
optional
messagesreadonly AssistantMessageLike[]—
optional
maxWidthstring | number760optional
autoScrollbooleantrueoptional
clientAssistantClient—
optional
suggestionsreadonly string[]—
optional
onSuggestionSelect(suggestion: string) => void—
optional
- Prop
class- Type
string- Default
- —
- Requirement
- optional
- Prop
style- Type
string- Default
- —
- Requirement
- optional
- Prop
messages- Type
readonly AssistantMessageLike[]- Default
- —
- Requirement
- optional
- Prop
maxWidth- Type
string | number- Default
760- Requirement
- optional
- Prop
autoScroll- Type
boolean- Default
true- Requirement
- optional
- Prop
client- Type
AssistantClient- Default
- —
- Requirement
- optional
- Prop
suggestions- Type
readonly string[]- Default
- —
- Requirement
- optional
- Prop
onSuggestionSelect- Type
(suggestion: string) => void- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
onSuggestionSelect | (suggestion: string) => void |
Content regions
childrencomposerwelcome
Import
import { Thread } from "@grassroot/ui-solid/assistant";
import { assistantDemoMessages, assistantDemoSuggestions } from "@grassroot/demo-fixtures";
Props
Prop
Type
Default
Requirement
clientAssistantClient—
optional
messagesreadonly AssistantMessageLike[]—
optional
suggestionsreadonly string[]—
optional
onSuggestionSelect(suggestion: string) => void—
optional
maxWidthstring | number—
optional
autoScrollboolean—
optional
- Prop
client- Type
AssistantClient- Default
- —
- Requirement
- optional
- Prop
messages- Type
readonly AssistantMessageLike[]- Default
- —
- Requirement
- optional
- Prop
suggestions- Type
readonly string[]- Default
- —
- Requirement
- optional
- Prop
onSuggestionSelect- Type
(suggestion: string) => void- Default
- —
- Requirement
- optional
- Prop
maxWidth- Type
string | number- Default
- —
- Requirement
- optional
- Prop
autoScroll- Type
boolean- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
onSuggestionSelect | (suggestion: string) => void |
Content regions
childrencomposerwelcome
Native attributes
Standard DOM and ARIA attributes not listed above spread onto the root element.