Docs Components Advanced

CodeBlock

React example follows below.
ts
const codeBlockFixture = {
id: "code-block",
code: "#!/usr/bin/env bash\nset -euo pipefail\nkubectl rollout status deploy/ledger-api --timeout=90s",
filename: "deploy.sh",
lang: "bash" as const,
lineNumbers: true,
};
import { CodeBlock } from "@grassroot/ui-react/advanced";
export default function CodeBlockDemo() {
const { id: _id, ...props } = codeBlockFixture;
return (
<div>
<CodeBlock {...props} />
</div>
);
}
ts
<script setup lang="ts">
const codeBlockFixture = {
id: "code-block",
code: "#!/usr/bin/env bash\nset -euo pipefail\nkubectl rollout status deploy/ledger-api --timeout=90s",
filename: "deploy.sh",
lang: "bash" as const,
lineNumbers: true,
};
import { CodeBlock } from "@grassroot/ui-vue";
</script>
<template>
<div>
<CodeBlock
:code="codeBlockFixture.code"
:filename="codeBlockFixture.filename"
:lang="codeBlockFixture.lang"
:line-numbers="codeBlockFixture.lineNumbers"
/>
</div>
</template>
ts
import { Component } from "@angular/core";
const codeBlockFixture = {
id: "code-block",
code: "#!/usr/bin/env bash\nset -euo pipefail\nkubectl rollout status deploy/ledger-api --timeout=90s",
filename: "deploy.sh",
lang: "bash" as const,
lineNumbers: true,
};
import { GrassrootCodeBlock } from "@grassroot/ui-angular";
@Component({
selector: "app-code-block-demo",
standalone: true,
imports: [GrassrootCodeBlock],
template: `
<div>
<grassroot-code-block
[code]="fixture.code"
[filename]="fixture.filename"
[lang]="fixture.lang"
[lineNumbers]="fixture.lineNumbers"
/>
</div>
`,
})
export class CodeBlockDemoComponent {
protected readonly fixture = codeBlockFixture;
}
export default CodeBlockDemoComponent;
ts
<script lang="ts">
const codeBlockFixture = {
id: "code-block",
code: "#!/usr/bin/env bash\nset -euo pipefail\nkubectl rollout status deploy/ledger-api --timeout=90s",
filename: "deploy.sh",
lang: "bash" as const,
lineNumbers: true,
};
import { CodeBlock } from "@grassroot/ui-svelte";
</script>
<div>
<CodeBlock
code={codeBlockFixture.code}
filename={codeBlockFixture.filename}
lang={codeBlockFixture.lang}
lineNumbers={codeBlockFixture.lineNumbers}
/>
</div>
ts
/** @jsxImportSource solid-js */
const codeBlockFixture = {
id: "code-block",
code: "#!/usr/bin/env bash\nset -euo pipefail\nkubectl rollout status deploy/ledger-api --timeout=90s",
filename: "deploy.sh",
lang: "bash" as const,
lineNumbers: true,
};
import { CodeBlock } from "@grassroot/ui-solid";
export default function CodeBlockDemo() {
return (
<div>
<CodeBlock
code={codeBlockFixture.code}
filename={codeBlockFixture.filename}
lang={codeBlockFixture.lang}
lineNumbers={codeBlockFixture.lineNumbers}
/>
</div>
);
}

Installation

API Reference

Import

import { CodeBlock } from "@grassroot/ui-react/advanced";

Props

Prop
Type
Default
Requirement
Description
code
string
—
required
Source to render and copy.
filename
string | undefined
—
optional
Filename shown in the bar tab (e.g.
lang
CodeBlockLang | undefined
"bash"
optional
Language label + token ruleset.
lineNumbers
boolean | undefined
true
optional
Show the gutter line numbers.
tokens
readonly (readonly CodeBlockToken[])[] | undefined
—
optional
Optional pre-tokenized lines supplied by Markdown/highlighter adapters.
className
string | undefined
—
optional
—
Prop
code
Type
string
Default
—
Requirement
required
Description
Source to render and copy.
Prop
filename
Type
string | undefined
Default
—
Requirement
optional
Description
Filename shown in the bar tab (e.g.
Prop
lang
Type
CodeBlockLang | undefined
Default
"bash"
Requirement
optional
Description
Language label + token ruleset.
Prop
lineNumbers
Type
boolean | undefined
Default
true
Requirement
optional
Description
Show the gutter line numbers.
Prop
tokens
Type
readonly (readonly CodeBlockToken[])[] | undefined
Default
—
Requirement
optional
Description
Optional pre-tokenized lines supplied by Markdown/highlighter adapters.
Prop
className
Type
string | undefined
Default
—
Requirement
optional
Description
—

Import

import { CodeBlock } from "@grassroot/ui-vue";

Props

Prop
Type
Default
Requirement
code
string
—
required
filename
string | undefined
—
optional
lang
CodeBlockLang | undefined
codeBlockDefaultLang
optional
lineNumbers
boolean | undefined
codeBlockDefaultLineNumbers
optional
tokens
readonly (readonly CodeBlockToken[])[] | undefined
—
optional
className
string | undefined
—
optional
Prop
code
Type
string
Default
—
Requirement
required
Prop
filename
Type
string | undefined
Default
—
Requirement
optional
Prop
lang
Type
CodeBlockLang | undefined
Default
codeBlockDefaultLang
Requirement
optional
Prop
lineNumbers
Type
boolean | undefined
Default
codeBlockDefaultLineNumbers
Requirement
optional
Prop
tokens
Type
readonly (readonly CodeBlockToken[])[] | undefined
Default
—
Requirement
optional
Prop
className
Type
string | undefined
Default
—
Requirement
optional

Import

import { Component } from "@angular/core";
import { GrassrootCodeBlock } from "@grassroot/ui-angular";

Props

Prop
Type
Default
Requirement
code
string
—
required
filename
string
—
optional
lang
CodeBlockLang
codeBlockDefaultLang
optional
lineNumbers
boolean
codeBlockDefaultLineNumbers
optional
tokens
readonly (readonly CodeBlockToken[])[]
—
optional
className
string
—
optional
Prop
code
Type
string
Default
—
Requirement
required
Prop
filename
Type
string
Default
—
Requirement
optional
Prop
lang
Type
CodeBlockLang
Default
codeBlockDefaultLang
Requirement
optional
Prop
lineNumbers
Type
boolean
Default
codeBlockDefaultLineNumbers
Requirement
optional
Prop
tokens
Type
readonly (readonly CodeBlockToken[])[]
Default
—
Requirement
optional
Prop
className
Type
string
Default
—
Requirement
optional

Import

import { CodeBlock } from "@grassroot/ui-svelte";

Props

Prop
Type
Default
Requirement
code
string
—
required
filename
string
—
optional
lang
CodeBlockLang
—
optional
lineNumbers
boolean
—
optional
tokens
readonly (readonly CodeBlockToken[])[]
—
optional
className
string
—
optional
Prop
code
Type
string
Default
—
Requirement
required
Prop
filename
Type
string
Default
—
Requirement
optional
Prop
lang
Type
CodeBlockLang
Default
—
Requirement
optional
Prop
lineNumbers
Type
boolean
Default
—
Requirement
optional
Prop
tokens
Type
readonly (readonly CodeBlockToken[])[]
Default
—
Requirement
optional
Prop
className
Type
string
Default
—
Requirement
optional

Import

import { CodeBlock } from "@grassroot/ui-solid";

Props

Prop
Type
Default
Requirement
code
string
—
required
filename
string
—
optional
lang
CodeBlockLang
"bash"
optional
lineNumbers
boolean
true
optional
tokens
readonly (readonly CodeBlockToken[])[]
—
optional
className
string
—
optional
Prop
code
Type
string
Default
—
Requirement
required
Prop
filename
Type
string
Default
—
Requirement
optional
Prop
lang
Type
CodeBlockLang
Default
"bash"
Requirement
optional
Prop
lineNumbers
Type
boolean
Default
true
Requirement
optional
Prop
tokens
Type
readonly (readonly CodeBlockToken[])[]
Default
—
Requirement
optional
Prop
className
Type
string
Default
—
Requirement
optional