- Prop
source- Type
LogEntry[]- Default
- —
- Requirement
- required
- Description
- Lines to stream, cycled in order.
Docs Components Advanced
LogStream
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
const logStreamFixture = { id: "log-stream", title: "ledger-api · production", intervalMs: 1900, prefill: 3, maxLines: 60, filters: true, paused: true, source: [ { level: "INFO" as const, message: "GET /v2/ledger/entries 200 · 42ms", ts: "10:14:03.100" }, { level: "WARN" as const, message: "retry queue depth 12 - approaching threshold", ts: "10:14:05.000" }, { level: "ERR" as const, message: "analytics-ingest connection refused · retrying", ts: "10:14:07.400" }, ],}; import { LogStream } from "@grassroot/ui-react/advanced"; export default function LogStreamDemo() { const { id: _id, ...props } = logStreamFixture; return ( <div> <LogStream {...props} /> </div> );}- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
<script setup lang="ts">const logStreamFixture = { id: "log-stream", title: "ledger-api · production", intervalMs: 1900, prefill: 3, maxLines: 60, filters: true, paused: true, source: [ { level: "INFO" as const, message: "GET /v2/ledger/entries 200 · 42ms", ts: "10:14:03.100" }, { level: "WARN" as const, message: "retry queue depth 12 - approaching threshold", ts: "10:14:05.000" }, { level: "ERR" as const, message: "analytics-ingest connection refused · retrying", ts: "10:14:07.400" }, ],}; import { LogStream } from "@grassroot/ui-vue";</script> <template> <div> <LogStream :source="logStreamFixture.source" :title="logStreamFixture.title" :interval-ms="logStreamFixture.intervalMs" :prefill="logStreamFixture.prefill" :max-lines="logStreamFixture.maxLines" :filters="logStreamFixture.filters" :paused="logStreamFixture.paused" /> </div></template>- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
import { Component } from "@angular/core";const logStreamFixture = { id: "log-stream", title: "ledger-api · production", intervalMs: 1900, prefill: 3, maxLines: 60, filters: true, paused: true, source: [ { level: "INFO" as const, message: "GET /v2/ledger/entries 200 · 42ms", ts: "10:14:03.100" }, { level: "WARN" as const, message: "retry queue depth 12 - approaching threshold", ts: "10:14:05.000" }, { level: "ERR" as const, message: "analytics-ingest connection refused · retrying", ts: "10:14:07.400" }, ],}; import { GrassrootLogStream } from "@grassroot/ui-angular"; @Component({ selector: "app-log-stream-demo", standalone: true, imports: [GrassrootLogStream], template: ` <div> <grassroot-log-stream [source]="fixture.source" [title]="fixture.title" [intervalMs]="fixture.intervalMs" [prefill]="fixture.prefill" [maxLines]="fixture.maxLines" [filters]="fixture.filters" [paused]="fixture.paused" /> </div> `,})export class LogStreamDemoComponent { protected readonly fixture = logStreamFixture;} export default LogStreamDemoComponent;- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
<script lang="ts"> const logStreamFixture = { id: "log-stream", title: "ledger-api · production", intervalMs: 1900, prefill: 3, maxLines: 60, filters: true, paused: true, source: [ { level: "INFO" as const, message: "GET /v2/ledger/entries 200 · 42ms", ts: "10:14:03.100" }, { level: "WARN" as const, message: "retry queue depth 12 - approaching threshold", ts: "10:14:05.000" }, { level: "ERR" as const, message: "analytics-ingest connection refused · retrying", ts: "10:14:07.400" }, ], }; import { LogStream } from "@grassroot/ui-svelte";</script> <div> <LogStream source={logStreamFixture.source} title={logStreamFixture.title} intervalMs={logStreamFixture.intervalMs} prefill={logStreamFixture.prefill} maxLines={logStreamFixture.maxLines} filters={logStreamFixture.filters} paused={logStreamFixture.paused} /></div>- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
/** @jsxImportSource solid-js */const logStreamFixture = { id: "log-stream", title: "ledger-api · production", intervalMs: 1900, prefill: 3, maxLines: 60, filters: true, paused: true, source: [ { level: "INFO" as const, message: "GET /v2/ledger/entries 200 · 42ms", ts: "10:14:03.100" }, { level: "WARN" as const, message: "retry queue depth 12 - approaching threshold", ts: "10:14:05.000" }, { level: "ERR" as const, message: "analytics-ingest connection refused · retrying", ts: "10:14:07.400" }, ],}; import { LogStream } from "@grassroot/ui-solid"; export default function LogStreamDemo() { return ( <div> <LogStream source={logStreamFixture.source} title={logStreamFixture.title} intervalMs={logStreamFixture.intervalMs} prefill={logStreamFixture.prefill} maxLines={logStreamFixture.maxLines} filters={logStreamFixture.filters} paused={logStreamFixture.paused} /> </div> );}Installation
API Reference
Import
import { LogStream } from "@grassroot/ui-react/advanced";
Props
Prop
Type
Default
Requirement
Description
sourceLogEntry[]—
required
Lines to stream, cycled in order.
titlestring | undefined"stream"optional
Terminal title shown in the bar.
intervalMsnumber | undefined1900optional
Append interval in ms.
prefillnumber | undefined8optional
How many lines to seed immediately on mount.
maxLinesnumber | undefined60optional
Max retained lines (oldest dropped).
filtersboolean | undefinedtrueoptional
Show the per-level filter chips.
pausedboolean | undefinedfalseoptional
Pause streaming.
- Prop
title- Type
string | undefined- Default
"stream"- Requirement
- optional
- Description
- Terminal title shown in the bar.
- Prop
intervalMs- Type
number | undefined- Default
1900- Requirement
- optional
- Description
- Append interval in ms.
- Prop
prefill- Type
number | undefined- Default
8- Requirement
- optional
- Description
- How many lines to seed immediately on mount.
- Prop
maxLines- Type
number | undefined- Default
60- Requirement
- optional
- Description
- Max retained lines (oldest dropped).
- Prop
filters- Type
boolean | undefined- Default
true- Requirement
- optional
- Description
- Show the per-level filter chips.
- Prop
paused- Type
boolean | undefined- Default
false- Requirement
- optional
- Description
- Pause streaming.
Native attributes
Standard DOM and ARIA attributes not listed above spread onto the root element.
Import
import { LogStream } from "@grassroot/ui-vue";
Props
Prop
Type
Default
Requirement
sourcereadonly LogEntry[]—
required
titlestring | undefinedlogStreamDefaultTitleoptional
intervalMsnumber | undefinedlogStreamDefaultIntervalMsoptional
prefillnumber | undefinedlogStreamDefaultPrefilloptional
maxLinesnumber | undefinedlogStreamDefaultMaxLinesoptional
filtersboolean | undefinedlogStreamDefaultFiltersoptional
pausedboolean | undefinedlogStreamDefaultPausedoptional
classNamestring | undefined—
optional
- Prop
source- Type
readonly LogEntry[]- Default
- —
- Requirement
- required
- Prop
title- Type
string | undefined- Default
logStreamDefaultTitle- Requirement
- optional
- Prop
intervalMs- Type
number | undefined- Default
logStreamDefaultIntervalMs- Requirement
- optional
- Prop
prefill- Type
number | undefined- Default
logStreamDefaultPrefill- Requirement
- optional
- Prop
maxLines- Type
number | undefined- Default
logStreamDefaultMaxLines- Requirement
- optional
- Prop
filters- Type
boolean | undefined- Default
logStreamDefaultFilters- Requirement
- optional
- Prop
paused- Type
boolean | undefined- Default
logStreamDefaultPaused- Requirement
- optional
- Prop
className- Type
string | undefined- Default
- —
- Requirement
- optional
Import
import { Component } from "@angular/core";
import { GrassrootLogStream } from "@grassroot/ui-angular";
Props
Prop
Type
Default
Requirement
sourcereadonly LogEntry[]—
required
titlestringlogStreamDefaultTitleoptional
intervalMsnumberlogStreamDefaultIntervalMsoptional
prefillnumberlogStreamDefaultPrefilloptional
maxLinesnumberlogStreamDefaultMaxLinesoptional
filtersbooleanlogStreamDefaultFiltersoptional
pausedbooleanlogStreamDefaultPausedoptional
classNamestring—
optional
- Prop
source- Type
readonly LogEntry[]- Default
- —
- Requirement
- required
- Prop
title- Type
string- Default
logStreamDefaultTitle- Requirement
- optional
- Prop
intervalMs- Type
number- Default
logStreamDefaultIntervalMs- Requirement
- optional
- Prop
prefill- Type
number- Default
logStreamDefaultPrefill- Requirement
- optional
- Prop
maxLines- Type
number- Default
logStreamDefaultMaxLines- Requirement
- optional
- Prop
filters- Type
boolean- Default
logStreamDefaultFilters- Requirement
- optional
- Prop
paused- Type
boolean- Default
logStreamDefaultPaused- Requirement
- optional
- Prop
className- Type
string- Default
- —
- Requirement
- optional
Import
import { LogStream } from "@grassroot/ui-svelte";
Props
Prop
Type
Default
Requirement
sourcereadonly LogEntry[]—
required
titlestring—
optional
intervalMsnumber—
optional
prefillnumber—
optional
maxLinesnumber—
optional
filtersboolean—
optional
pausedboolean—
optional
classNamestring—
optional
- Prop
source- Type
readonly LogEntry[]- Default
- —
- Requirement
- required
- Prop
title- Type
string- Default
- —
- Requirement
- optional
- Prop
intervalMs- Type
number- Default
- —
- Requirement
- optional
- Prop
prefill- Type
number- Default
- —
- Requirement
- optional
- Prop
maxLines- Type
number- Default
- —
- Requirement
- optional
- Prop
filters- Type
boolean- Default
- —
- Requirement
- optional
- Prop
paused- Type
boolean- Default
- —
- Requirement
- optional
- Prop
className- Type
string- Default
- —
- Requirement
- optional
Import
import { LogStream } from "@grassroot/ui-solid";
Props
Prop
Type
Default
Requirement
sourcereadonly LogEntry[]—
required
titlestring—
optional
intervalMsnumber—
optional
prefillnumber—
optional
maxLinesnumber—
optional
filtersboolean—
optional
pausedboolean—
optional
classNamestring—
optional
- Prop
source- Type
readonly LogEntry[]- Default
- —
- Requirement
- required
- Prop
title- Type
string- Default
- —
- Requirement
- optional
- Prop
intervalMs- Type
number- Default
- —
- Requirement
- optional
- Prop
prefill- Type
number- Default
- —
- Requirement
- optional
- Prop
maxLines- Type
number- Default
- —
- Requirement
- optional
- Prop
filters- Type
boolean- Default
- —
- Requirement
- optional
- Prop
paused- Type
boolean- Default
- —
- Requirement
- optional
- Prop
className- Type
string- Default
- —
- Requirement
- optional