- Prop
session- Type
{ readonly start: () => Promise<void>; readonly connect: () => Promise<void>; readonly disconnect: () => Promise<void>; readonly end: (reason: import("@grassroot/ui-machines/voice-session").VoiceSessionEndReason, error?: unknown) => void; readonly setMuted: (muted: boolean) => void; readonly setMode: (mode: import("@grassroot/ui-machines/voice-session").VoiceSessionMode) => void; readonly getState: () => import("@grassroot/ui-machines/voice-session").VoiceSessionSnapshot; readonly subscribe: (listener: (snapshot: import("@grassroot/ui-machines/voice-session").VoiceSessionSnapshot, previous: import("@grassroot/ui-machines/voice-session").VoiceSessionSnapshot) => void) => () => void; readonly subscribeTranscript: (listener: (item: import("@grassroot/assistant/adapters/voice").VoiceTranscriptItem) => void) => () => void; readonly subscribeVoiceVolume: (listener: (volume: number) => void) => () => void; readonly publishTranscript: (item: import("@grassroot/assistant/adapters/voice").VoiceTranscriptItem) => void; readonly publishVoiceVolume: (volume: number) => void; }- Default
- —
- Requirement
- required
Docs Components Assistant
VoiceOrb
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 { createVoiceSession } from "@grassroot/assistant/adapters/voice";import { VoiceOrb } from "@grassroot/ui-react/assistant"; const session = createVoiceSession({ setup: ({ publishTranscript, publishVoiceVolume }) => { publishTranscript({ role: "user", text: "Show me the theme tokens.", isFinal: true }); publishVoiceVolume(0.4); },}); export default function VoiceOrbDemo() { return <VoiceOrb session={session} variant="default" size="md" />;}- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
<script setup lang="ts">import { createVoiceSession } from "@grassroot/assistant/adapters/voice";import { VoiceOrb } from "@grassroot/ui-vue/assistant"; const session = createVoiceSession({ setup: ({ publishTranscript, publishVoiceVolume }) => { publishTranscript({ role: "user", text: "Show me the theme tokens.", isFinal: true }); publishVoiceVolume(0.4); },});</script> <template> <VoiceOrb :session="session" variant="default" size="md" /></template>- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
import "./ensure-compiler";import { ChangeDetectionStrategy, Component } from "@angular/core";import { createVoiceSession } from "@grassroot/assistant/adapters/voice";import { GrassrootVoiceOrb } from "@grassroot/ui-angular/assistant"; @Component({ selector: "app-voice-orb-demo", standalone: true, imports: [GrassrootVoiceOrb], changeDetection: ChangeDetectionStrategy.OnPush, template: `<grassroot-voice-orb [session]="session" variant="default" size="md" />`,})export class VoiceOrbDemoComponent { protected readonly session = createVoiceSession({ setup: ({ publishTranscript, publishVoiceVolume }) => { publishTranscript({ role: "user", text: "Show me the theme tokens.", isFinal: true }); publishVoiceVolume(0.4); }, });} export default VoiceOrbDemoComponent;- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
<script lang="ts"> import { createVoiceSession } from "@grassroot/assistant/adapters/voice"; import { VoiceOrb } from "@grassroot/ui-svelte/assistant"; const session = createVoiceSession({ setup: ({ publishTranscript, publishVoiceVolume }) => { publishTranscript({ role: "user", text: "Show me the theme tokens.", isFinal: true }); publishVoiceVolume(0.4); }, });</script> <VoiceOrb {session} variant="default" size="md" />- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
/** @jsxImportSource solid-js */import { createVoiceSession } from "@grassroot/assistant/adapters/voice";import { VoiceOrb } from "@grassroot/ui-solid/assistant"; const session = createVoiceSession({ setup: ({ publishTranscript, publishVoiceVolume }) => { publishTranscript({ role: "user", text: "Show me the theme tokens.", isFinal: true }); publishVoiceVolume(0.4); },}); export default function VoiceOrbDemo() { return <VoiceOrb session={session} variant="default" size="md" />;}Installation
API Reference
Import
import { createVoiceSession } from "@grassroot/assistant/adapters/voice";
import { VoiceOrb } from "@grassroot/ui-react/assistant";
Props
Prop
Type
Default
Requirement
session{ readonly start: () => Promise<void>; readonly connect: () => Promise<void>; readonly disconnect: () => Promise<void>; readonly end: (reason: import("@grassroot/ui-machines/voice-session").VoiceSessionEndReason, error?: unknown) => void; readonly setMuted: (muted: boolean) => void; readonly setMode: (mode: import("@grassroot/ui-machines/voice-session").VoiceSessionMode) => void; readonly getState: () => import("@grassroot/ui-machines/voice-session").VoiceSessionSnapshot; readonly subscribe: (listener: (snapshot: import("@grassroot/ui-machines/voice-session").VoiceSessionSnapshot, previous: import("@grassroot/ui-machines/voice-session").VoiceSessionSnapshot) => void) => () => void; readonly subscribeTranscript: (listener: (item: import("@grassroot/assistant/adapters/voice").VoiceTranscriptItem) => void) => () => void; readonly subscribeVoiceVolume: (listener: (volume: number) => void) => () => void; readonly publishTranscript: (item: import("@grassroot/assistant/adapters/voice").VoiceTranscriptItem) => void; readonly publishVoiceVolume: (volume: number) => void; }—
required
labelstring | undefined—
optional
size"sm" | "md" | "lg" | undefined—
optional
stateVoiceOrbState | undefined—
optional
variantVoiceOrbVariant | undefined—
optional
- Prop
label- Type
string | undefined- Default
- —
- Requirement
- optional
- Prop
size- Type
"sm" | "md" | "lg" | undefined- Default
- —
- Requirement
- optional
- Prop
state- Type
VoiceOrbState | undefined- Default
- —
- Requirement
- optional
- Prop
variant- Type
VoiceOrbVariant | undefined- Default
- —
- Requirement
- optional
Native attributes
Standard DOM and ARIA attributes not listed above spread onto the root element.
Import
import { createVoiceSession } from "@grassroot/assistant/adapters/voice";
import { VoiceOrb } from "@grassroot/ui-vue/assistant";
Props
Prop
Type
Default
Requirement
sessionVoiceSession—
required
labelstring"Voice activity"optional
size"sm" | "md" | "lg""md"optional
stateVoiceOrbState—
optional
variantVoiceOrbVariant"default"optional
- Prop
session- Type
VoiceSession- Default
- —
- Requirement
- required
- Prop
label- Type
string- Default
"Voice activity"- Requirement
- optional
- Prop
size- Type
"sm" | "md" | "lg"- Default
"md"- Requirement
- optional
- Prop
state- Type
VoiceOrbState- Default
- —
- Requirement
- optional
- Prop
variant- Type
VoiceOrbVariant- Default
"default"- Requirement
- optional
Import
import "./ensure-compiler";
import { ChangeDetectionStrategy, Component } from "@angular/core";
import { createVoiceSession } from "@grassroot/assistant/adapters/voice";
import { GrassrootVoiceOrb } from "@grassroot/ui-angular/assistant";
Props
Prop
Type
Default
Requirement
sessionVoiceSession—
required
labelstring"Voice activity"optional
size"sm" | "md" | "lg""md"optional
stateVoiceSessionValue | "idle"—
optional
variant"default" | "compact" | "minimal""default"optional
- Prop
session- Type
VoiceSession- Default
- —
- Requirement
- required
- Prop
label- Type
string- Default
"Voice activity"- Requirement
- optional
- Prop
size- Type
"sm" | "md" | "lg"- Default
"md"- Requirement
- optional
- Prop
state- Type
VoiceSessionValue | "idle"- Default
- —
- Requirement
- optional
- Prop
variant- Type
"default" | "compact" | "minimal"- Default
"default"- Requirement
- optional
Import
import { createVoiceSession } from "@grassroot/assistant/adapters/voice";
import { VoiceOrb } from "@grassroot/ui-svelte/assistant";
Props
Prop
Type
Default
Requirement
sessionVoiceSession—
required
labelstring"Voice activity"optional
size"sm" | "md" | "lg""md"optional
stateVoiceSessionValue | "idle"—
optional
variant"default" | "compact" | "minimal""default"optional
- Prop
session- Type
VoiceSession- Default
- —
- Requirement
- required
- Prop
label- Type
string- Default
"Voice activity"- Requirement
- optional
- Prop
size- Type
"sm" | "md" | "lg"- Default
"md"- Requirement
- optional
- Prop
state- Type
VoiceSessionValue | "idle"- Default
- —
- Requirement
- optional
- Prop
variant- Type
"default" | "compact" | "minimal"- Default
"default"- Requirement
- optional
Native attributes
Standard DOM and ARIA attributes not listed above spread onto the root element.
Import
import { createVoiceSession } from "@grassroot/assistant/adapters/voice";
import { VoiceOrb } from "@grassroot/ui-solid/assistant";
Props
Prop
Type
Default
Requirement
sessionVoiceSession—
required
labelstring—
optional
size"sm" | "md" | "lg"—
optional
stateVoiceOrbState—
optional
variantVoiceOrbVariant—
optional
- Prop
session- Type
VoiceSession- Default
- —
- Requirement
- required
- Prop
label- Type
string- Default
- —
- Requirement
- optional
- Prop
size- Type
"sm" | "md" | "lg"- Default
- —
- Requirement
- optional
- Prop
state- Type
VoiceOrbState- Default
- —
- Requirement
- optional
- Prop
variant- Type
VoiceOrbVariant- Default
- —
- Requirement
- optional
Native attributes
Standard DOM and ARIA attributes not listed above spread onto the root element.