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