DocsAPI referenceHeadlessmarkdown

markdown headless API

The core connector and vanilla mount are always visible. Use the framework choice to inspect native composition, props, outputs, context and hooks for the selected adapter.

@grassroot/ui-headless-core/markdown

Core connector and vanilla API

39 exports
View source packages/ui-headless/core/src/markdown/index.ts

astToEditorNodes

function
DeclarationView source
astToEditorNodests
declare function astToEditorNodes(document: MarkdownDocument): readonly EditorBridgeNode[];
Name
Kind
Type
Requirement
document
parameter
MarkdownDocument
required
return
return value
readonly EditorBridgeNode[]
n/a
Name
document
Kind
parameter
Type
MarkdownDocument
Requirement
required
Name
return
Kind
return value
Type
readonly EditorBridgeNode[]
Requirement
n/a

BlockNode

type
DeclarationView source
BlockNodets
type BlockNode = {
readonly id: string;
readonly type: Exclude<MarkdownNodeType, "document" | "text" | "emphasis" | "strong" | "strikethrough" | "code-span" | "link" | "autolink" | "image" | "footnote-ref" | "hard-break">;
readonly raw: string;
readonly position?: Position;
readonly text?: string;
readonly level?: number;
readonly lang?: string;
readonly meta?: string;
readonly ordered?: boolean;
readonly start?: number;
readonly tight?: boolean;
readonly checked?: boolean;
readonly align?: readonly ("left" | "center" | "right" | null)[];
readonly cells?: readonly (readonly InlineNode[])[];
readonly children?: readonly (BlockNode | InlineNode)[];
};
Name
Kind
Type
Requirement
align
property
readonly ("left" | "center" | "right" | null)[]
optional
cells
property
readonly (readonly InlineNode[])[]
optional
checked
property
boolean
optional
children
property
readonly (BlockNode | InlineNode)[]
optional
id
property
string
required
lang
property
string
optional
level
property
number
optional
meta
property
string
optional
ordered
property
boolean
optional
position
property
Position
optional
raw
property
string
required
start
property
number
optional
text
property
string
optional
tight
property
boolean
optional
Name
align
Kind
property
Type
readonly ("left" | "center" | "right" | null)[]
Requirement
optional
Name
cells
Kind
property
Type
readonly (readonly InlineNode[])[]
Requirement
optional
Name
checked
Kind
property
Type
boolean
Requirement
optional
Name
children
Kind
property
Type
readonly (BlockNode | InlineNode)[]
Requirement
optional
Name
id
Kind
property
Type
string
Requirement
required
Name
lang
Kind
property
Type
string
Requirement
optional
Name
level
Kind
property
Type
number
Requirement
optional
Name
meta
Kind
property
Type
string
Requirement
optional
Name
ordered
Kind
property
Type
boolean
Requirement
optional
Name
position
Kind
property
Type
Position
Requirement
optional
Name
raw
Kind
property
Type
string
Requirement
required
Name
start
Kind
property
Type
number
Requirement
optional
Name
text
Kind
property
Type
string
Requirement
optional
Name
tight
Kind
property
Type
boolean
Requirement
optional
Name
type
Kind
property
Type
Exclude<MarkdownNodeType, "document" | "text" | "emphasis" | "strong" | "strikethrough" | "code-span" | "link" | "autolink" | "image" | "footnote-ref" | "hard-break">
Requirement
required
DeclarationView source
collectDiagnosticsts
declare function collectDiagnostics(document: MarkdownDocument, code?: MarkdownDiagnosticCode | string): readonly MarkdownDiagnostic[];
Name
Kind
Type
Requirement
document
parameter
MarkdownDocument
required
code
parameter
MarkdownDiagnosticCode | string
optional
return
return value
readonly MarkdownDiagnostic[]
n/a
Name
document
Kind
parameter
Type
MarkdownDocument
Requirement
required
Name
code
Kind
parameter
Type
MarkdownDiagnosticCode | string
Requirement
optional
Name
return
Kind
return value
Type
readonly MarkdownDiagnostic[]
Requirement
n/a

computeBlockId

function
DeclarationView source
computeBlockIdts
declare function computeBlockId(ordinal: number, rawSourceSlice: string): string;
Name
Kind
Type
Requirement
ordinal
parameter
number
required
rawSourceSlice
parameter
string
required
return
return value
string
n/a
Name
ordinal
Kind
parameter
Type
number
Requirement
required
Name
rawSourceSlice
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
string
Requirement
n/a
DeclarationView source
EDITOR_MARK_TYPESts
export declare const EDITOR_MARK_TYPES: readonly ["bold", "italic", "code", "strike", "link"];
DeclarationView source
EDITOR_NODE_TYPESts
export declare const EDITOR_NODE_TYPES: readonly ["doc", "paragraph", "heading", "list", "listItem", "blockquote", "codeBlock", "hr", "image", "text", "hardBreak"];

EditorBridgeNode

interface
DeclarationView source
EditorBridgeNodets
interface EditorBridgeNode {
readonly type: string;
readonly attrs?: Readonly<Record<string, unknown>>;
readonly marks?: readonly {
readonly type: string;
readonly attrs?: Readonly<Record<string, unknown>>;
}[];
readonly text?: string;
readonly children?: readonly EditorBridgeNode[];
}
Name
Kind
Type
Requirement
attrs
property
Readonly<Record<string, unknown>>
optional
children
property
readonly EditorBridgeNode[]
optional
marks
property
readonly { readonly type: string; readonly attrs?: Readonly<Record<string, unknown>>; }[]
optional
text
property
string
optional
type
property
string
required
Name
attrs
Kind
property
Type
Readonly<Record<string, unknown>>
Requirement
optional
Name
children
Kind
property
Type
readonly EditorBridgeNode[]
Requirement
optional
Name
marks
Kind
property
Type
readonly { readonly type: string; readonly attrs?: Readonly<Record<string, unknown>>; }[]
Requirement
optional
Name
text
Kind
property
Type
string
Requirement
optional
Name
type
Kind
property
Type
string
Requirement
required

editorNodesToAst

function
DeclarationView source
editorNodesToAstts
declare function editorNodesToAst(nodes: readonly EditorBridgeNode[]): MarkdownDocument;
Name
Kind
Type
Requirement
nodes
parameter
readonly EditorBridgeNode[]
required
return
return value
MarkdownDocument
n/a
Name
nodes
Kind
parameter
Type
readonly EditorBridgeNode[]
Requirement
required
Name
return
Kind
return value
Type
MarkdownDocument
Requirement
n/a

fnv1a32

function

FNV-1a 32-bit, used deliberately instead of a dependency for stable ids.

DeclarationView source
fnv1a32ts
declare function fnv1a32(value: string): string;
Name
Kind
Type
Requirement
value
parameter
string
required
return
return value
string
n/a
Name
value
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
string
Requirement
n/a

getBlockById

function
DeclarationView source
getBlockByIdts
declare function getBlockById(document: MarkdownDocument, id: string): BlockNode | undefined;
Name
Kind
Type
Requirement
document
parameter
MarkdownDocument
required
id
parameter
string
required
return
return value
BlockNode | undefined
n/a
Name
document
Kind
parameter
Type
MarkdownDocument
Requirement
required
Name
id
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
BlockNode | undefined
Requirement
n/a

getBlocksByType

function
DeclarationView source
getBlocksByTypets
declare function getBlocksByType(document: MarkdownDocument, type: BlockNode["type"]): readonly BlockNode[];
Name
Kind
Type
Requirement
document
parameter
MarkdownDocument
required
type
parameter
BlockNode["type"]
required
return
return value
readonly BlockNode[]
n/a
Name
document
Kind
parameter
Type
MarkdownDocument
Requirement
required
Name
type
Kind
parameter
Type
BlockNode["type"]
Requirement
required
Name
return
Kind
return value
Type
readonly BlockNode[]
Requirement
n/a
DeclarationView source
getFootnoteDefinitionts
declare function getFootnoteDefinition(document: MarkdownDocument, identifier: string): BlockNode | undefined;
Name
Kind
Type
Requirement
document
parameter
MarkdownDocument
required
identifier
parameter
string
required
return
return value
BlockNode | undefined
n/a
Name
document
Kind
parameter
Type
MarkdownDocument
Requirement
required
Name
identifier
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
BlockNode | undefined
Requirement
n/a
DeclarationView source
hasInteractiveNodests
declare function hasInteractiveNodes(document: MarkdownDocument): boolean;
Name
Kind
Type
Requirement
document
parameter
MarkdownDocument
required
return
return value
boolean
n/a
Name
document
Kind
parameter
Type
MarkdownDocument
Requirement
required
Name
return
Kind
return value
Type
boolean
Requirement
n/a

Highlighters may return their native `content`/`type` shape or the public CodeBlock `text`/`tone` shape. Both are normalised into render tokens.

DeclarationView source
HighlightTokents
type HighlightToken = {
readonly text: string;
readonly tone?: CodeBlockTokenTone;
readonly type?: string;
} | {
readonly content: string;
readonly tone?: CodeBlockTokenTone;
readonly type?: string;
};

IncrementalState

interface
DeclarationView source
IncrementalStatets
interface IncrementalState {
readonly source: string;
readonly blocks: readonly BlockNode[];
readonly openBlockStart: number;
}
Name
Kind
Type
Requirement
blocks
property
readonly BlockNode[]
required
openBlockStart
property
number
required
source
property
string
required
Name
blocks
Kind
property
Type
readonly BlockNode[]
Requirement
required
Name
openBlockStart
Kind
property
Type
number
Requirement
required
Name
source
Kind
property
Type
string
Requirement
required

InlineNode

type
DeclarationView source
InlineNodets
type InlineNode = {
readonly type: Extract<MarkdownNodeType, "text" | "emphasis" | "strong" | "strikethrough" | "code-span" | "link" | "autolink" | "image" | "footnote-ref" | "hard-break" | "html-blocked">;
readonly raw: string;
readonly position?: Position;
readonly text?: string;
readonly url?: string;
readonly title?: string;
readonly label?: string;
readonly identifier?: string;
readonly children?: readonly InlineNode[];
};
Name
Kind
Type
Requirement
children
property
readonly InlineNode[]
optional
identifier
property
string
optional
label
property
string
optional
position
property
Position
optional
raw
property
string
required
text
property
string
optional
title
property
string
optional
type
property
Extract<MarkdownNodeType, "text" | "emphasis" | "strong" | "strikethrough" | "code-span" | "link" | "autolink" | "image" | "footnote-ref" | "hard-break" | "html-blocked">
required
url
property
string
optional
Name
children
Kind
property
Type
readonly InlineNode[]
Requirement
optional
Name
identifier
Kind
property
Type
string
Requirement
optional
Name
label
Kind
property
Type
string
Requirement
optional
Name
position
Kind
property
Type
Position
Requirement
optional
Name
raw
Kind
property
Type
string
Requirement
required
Name
text
Kind
property
Type
string
Requirement
optional
Name
title
Kind
property
Type
string
Requirement
optional
Name
type
Kind
property
Type
Extract<MarkdownNodeType, "text" | "emphasis" | "strong" | "strikethrough" | "code-span" | "link" | "autolink" | "image" | "footnote-ref" | "hard-break" | "html-blocked">
Requirement
required
Name
url
Kind
property
Type
string
Requirement
optional

listHeadings

function
DeclarationView source
listHeadingsts
declare function listHeadings(document: MarkdownDocument): readonly {
readonly id: string;
readonly level: 1 | 2 | 3 | 4 | 5 | 6;
readonly text: string;
}[];
Name
Kind
Type
Requirement
document
parameter
MarkdownDocument
required
return
return value
readonly { readonly id: string; readonly level: 1 | 2 | 3 | 4 | 5 | 6; readonly text: string; }[]
n/a
Name
document
Kind
parameter
Type
MarkdownDocument
Requirement
required
Name
return
Kind
return value
Type
readonly { readonly id: string; readonly level: 1 | 2 | 3 | 4 | 5 | 6; readonly text: string; }[]
Requirement
n/a
DeclarationView source
MarkdownDiagnosticts
type MarkdownDiagnostic = {
readonly code: MarkdownDiagnosticCode;
readonly severity: "warning" | "error";
readonly message: string;
readonly data?: Readonly<Record<string, unknown>>;
readonly position?: Position;
};
Name
Kind
Type
Requirement
code
property
MarkdownDiagnosticCode
required
data
property
Readonly<Record<string, unknown>>
optional
message
property
string
required
position
property
Position
optional
severity
property
"warning" | "error"
required
Name
code
Kind
property
Type
MarkdownDiagnosticCode
Requirement
required
Name
data
Kind
property
Type
Readonly<Record<string, unknown>>
Requirement
optional
Name
message
Kind
property
Type
string
Requirement
required
Name
position
Kind
property
Type
Position
Requirement
optional
Name
severity
Kind
property
Type
"warning" | "error"
Requirement
required
DeclarationView source
MarkdownDiagnosticCodets
type MarkdownDiagnosticCode = "markdown.unsafe-url" | "markdown.unclosed-fence" | "markdown.duplicate-footnote-id" | "markdown.unresolved-footnote-ref" | "markdown.unresolved-reference-link" | "markdown.raw-html-blocked" | "markdown.callout-ambiguous";
DeclarationView source
markdownDiagnosticMessagests
export declare const markdownDiagnosticMessages: Readonly<Record<MarkdownDiagnosticCode, string>>;
DeclarationView source
MarkdownDocumentts
type MarkdownDocument = {
readonly source: string;
readonly blocks: readonly BlockNode[];
readonly diagnostics: readonly MarkdownDiagnostic[];
};
Name
Kind
Type
Requirement
blocks
property
readonly BlockNode[]
required
diagnostics
property
readonly MarkdownDiagnostic[]
required
source
property
string
required
Name
blocks
Kind
property
Type
readonly BlockNode[]
Requirement
required
Name
diagnostics
Kind
property
Type
readonly MarkdownDiagnostic[]
Requirement
required
Name
source
Kind
property
Type
string
Requirement
required

MarkdownMount

interface
DeclarationView source
MarkdownMountts
interface MarkdownMount {
readonly document: MarkdownDocument;
readonly plan: ReturnType<typeof toRenderPlan>;
destroy(): void;
}
Name
Kind
Type
Requirement
destroy
method
() => void
required
document
property
MarkdownDocument
required
plan
property
ReturnType<typeof toRenderPlan>
required
Name
destroy
Kind
method
Type
() => void
Requirement
required
Name
document
Kind
property
Type
MarkdownDocument
Requirement
required
Name
plan
Kind
property
Type
ReturnType<typeof toRenderPlan>
Requirement
required
DeclarationView source
MarkdownNodeTypets
type MarkdownNodeType = "document" | "heading" | "paragraph" | "code-block" | "code-fence-custom" | "list" | "list-item" | "task-item" | "blockquote" | "callout" | "thematic-break" | "table" | "table-row" | "table-cell" | "details" | "emphasis" | "strong" | "strikethrough" | "code-span" | "link" | "autolink" | "image" | "footnote-ref" | "footnote-def" | "hard-break" | "html-blocked" | "text";

mountMarkdown

function

Mounts a static Markdown render plan without a framework or HTML string sinks.

DeclarationView source
mountMarkdownts
declare function mountMarkdown(container: HTMLElement, source: string, options?: MountMarkdownOptions): MarkdownMount;
Name
Kind
Type
Requirement
container
parameter
HTMLElement
required
source
parameter
string
required
options
parameter
MountMarkdownOptions
optional
return
return value
MarkdownMount
n/a
Name
container
Kind
parameter
Type
HTMLElement
Requirement
required
Name
source
Kind
parameter
Type
string
Requirement
required
Name
options
Kind
parameter
Type
MountMarkdownOptions
Requirement
optional
Name
return
Kind
return value
Type
MarkdownMount
Requirement
n/a
DeclarationView source
MountMarkdownOptionsts
interface MountMarkdownOptions extends ParseOptions, RenderPlanOptions {
readonly ast?: MarkdownDocument;
readonly dir?: "ltr" | "rtl" | "auto";
readonly className?: string;
}
Name
Kind
Type
Requirement
ast
property
MarkdownDocument
optional
className
property
string
optional
dir
property
"ltr" | "rtl" | "auto"
optional
Name
ast
Kind
property
Type
MarkdownDocument
Requirement
optional
Name
className
Kind
property
Type
string
Requirement
optional
Name
dir
Kind
property
Type
"ltr" | "rtl" | "auto"
Requirement
optional

parse

function
DeclarationView source
parsets
declare function parse(source: string, options?: ParseOptions): MarkdownDocument;
Name
Kind
Type
Requirement
source
parameter
string
required
options
parameter
ParseOptions
optional
return
return value
MarkdownDocument
n/a
Name
source
Kind
parameter
Type
string
Requirement
required
Name
options
Kind
parameter
Type
ParseOptions
Requirement
optional
Name
return
Kind
return value
Type
MarkdownDocument
Requirement
n/a

parseIncremental

function
DeclarationView source
parseIncrementalts
declare function parseIncremental(previous: IncrementalState | undefined, source: string, options?: ParseOptions): {
readonly document: MarkdownDocument;
readonly state: IncrementalState;
};
Name
Kind
Type
Requirement
previous
parameter
IncrementalState | undefined
required
source
parameter
string
required
options
parameter
ParseOptions
optional
return
return value
{ readonly document: MarkdownDocument; readonly state: IncrementalState; }
n/a
Name
previous
Kind
parameter
Type
IncrementalState | undefined
Requirement
required
Name
source
Kind
parameter
Type
string
Requirement
required
Name
options
Kind
parameter
Type
ParseOptions
Requirement
optional
Name
return
Kind
return value
Type
{ readonly document: MarkdownDocument; readonly state: IncrementalState; }
Requirement
n/a

ParseOptions

interface
DeclarationView source
ParseOptionsts
interface ParseOptions {
readonly gfm?: boolean;
readonly footnotes?: boolean;
readonly callouts?: boolean;
readonly sourcePositions?: boolean;
readonly allowDataImage?: boolean;
}
Name
Kind
Type
Requirement
allowDataImage
property
boolean
optional
callouts
property
boolean
optional
footnotes
property
boolean
optional
gfm
property
boolean
optional
sourcePositions
property
boolean
optional
Name
allowDataImage
Kind
property
Type
boolean
Requirement
optional
Name
callouts
Kind
property
Type
boolean
Requirement
optional
Name
footnotes
Kind
property
Type
boolean
Requirement
optional
Name
gfm
Kind
property
Type
boolean
Requirement
optional
Name
sourcePositions
Kind
property
Type
boolean
Requirement
optional
DeclarationView source
parseToEditorNodests
declare function parseToEditorNodes(source: string, options?: ParseOptions): readonly EditorBridgeNode[];
Name
Kind
Type
Requirement
source
parameter
string
required
options
parameter
ParseOptions
optional
return
return value
readonly EditorBridgeNode[]
n/a
Name
source
Kind
parameter
Type
string
Requirement
required
Name
options
Kind
parameter
Type
ParseOptions
Requirement
optional
Name
return
Kind
return value
Type
readonly EditorBridgeNode[]
Requirement
n/a

Position

type
DeclarationView source
Positionts
type Position = {
readonly start: PositionPoint;
readonly end: PositionPoint;
};
Name
Kind
Type
Requirement
end
property
PositionPoint
required
start
property
PositionPoint
required
Name
end
Kind
property
Type
PositionPoint
Requirement
required
Name
start
Kind
property
Type
PositionPoint
Requirement
required
DeclarationView source
PositionPointts
type PositionPoint = {
readonly line: number;
readonly column: number;
readonly offset: number;
};
Name
Kind
Type
Requirement
column
property
number
required
line
property
number
required
offset
property
number
required
Name
column
Kind
property
Type
number
Requirement
required
Name
line
Kind
property
Type
number
Requirement
required
Name
offset
Kind
property
Type
number
Requirement
required

RenderPlan

interface
DeclarationView source
RenderPlants
interface RenderPlan {
readonly nodes: readonly RenderPlanNode[];
readonly interactive: boolean;
}
Name
Kind
Type
Requirement
interactive
property
boolean
required
nodes
property
readonly RenderPlanNode[]
required
Name
interactive
Kind
property
Type
boolean
Requirement
required
Name
nodes
Kind
property
Type
readonly RenderPlanNode[]
Requirement
required

RenderPlanNode

interface
DeclarationView source
RenderPlanNodets
interface RenderPlanNode {
readonly part: MarkdownNodeType;
readonly props: Readonly<Record<string, unknown>>;
readonly children: readonly RenderPlanNode[];
readonly key: string;
readonly text?: string;
readonly element?: string;
}
Name
Kind
Type
Requirement
children
property
readonly RenderPlanNode[]
required
element
property
string
optional
key
property
string
required
part
property
MarkdownNodeType
required
props
property
Readonly<Record<string, unknown>>
required
text
property
string
optional
Name
children
Kind
property
Type
readonly RenderPlanNode[]
Requirement
required
Name
element
Kind
property
Type
string
Requirement
optional
Name
key
Kind
property
Type
string
Requirement
required
Name
part
Kind
property
Type
MarkdownNodeType
Requirement
required
Name
props
Kind
property
Type
Readonly<Record<string, unknown>>
Requirement
required
Name
text
Kind
property
Type
string
Requirement
optional

RenderPlanOptions

interface
DeclarationView source
RenderPlanOptionsts
interface RenderPlanOptions {
readonly components?: Partial<Record<MarkdownNodeType, unknown>>;
readonly code?: Readonly<Record<string, unknown>>;
readonly highlight?: (code: string, lang: string | undefined) => readonly HighlightToken[];
}
Name
Kind
Type
Requirement
code
property
Readonly<Record<string, unknown>>
optional
components
property
Partial<Record<MarkdownNodeType, unknown>>
optional
highlight
property
(code: string, lang: string | undefined) => readonly HighlightToken[]
optional
Name
code
Kind
property
Type
Readonly<Record<string, unknown>>
Requirement
optional
Name
components
Kind
property
Type
Partial<Record<MarkdownNodeType, unknown>>
Requirement
optional
Name
highlight
Kind
property
Type
(code: string, lang: string | undefined) => readonly HighlightToken[]
Requirement
optional
DeclarationView source
RenderTokents
type RenderToken = {
readonly text: string;
readonly tone?: CodeBlockTokenTone;
};
Name
Kind
Type
Requirement
text
property
string
required
tone
property
CodeBlockTokenTone
optional
Name
text
Kind
property
Type
string
Requirement
required
Name
tone
Kind
property
Type
CodeBlockTokenTone
Requirement
optional

sanitizeUrl

function
DeclarationView source
sanitizeUrlts
declare function sanitizeUrl(raw: string, options?: {
readonly allowDataImage?: boolean;
}): UrlSanitizeResult;
Name
Kind
Type
Requirement
raw
parameter
string
required
options
parameter
{ readonly allowDataImage?: boolean; }
optional
return
return value
UrlSanitizeResult
n/a
Name
raw
Kind
parameter
Type
string
Requirement
required
Name
options
Kind
parameter
Type
{ readonly allowDataImage?: boolean; }
Requirement
optional
Name
return
Kind
return value
Type
UrlSanitizeResult
Requirement
n/a
DeclarationView source
serializeMarkdownts
declare function serializeMarkdown(document: MarkdownDocument, options?: {
readonly lineWidth?: number;
}): string;
Name
Kind
Type
Requirement
document
parameter
MarkdownDocument
required
options
parameter
{ readonly lineWidth?: number; }
optional
return
return value
string
n/a
Name
document
Kind
parameter
Type
MarkdownDocument
Requirement
required
Name
options
Kind
parameter
Type
{ readonly lineWidth?: number; }
Requirement
optional
Name
return
Kind
return value
Type
string
Requirement
n/a

toRenderPlan

function
DeclarationView source
toRenderPlants
declare function toRenderPlan(document: MarkdownDocument, options?: RenderPlanOptions): RenderPlan;
Name
Kind
Type
Requirement
document
parameter
MarkdownDocument
required
options
parameter
RenderPlanOptions
optional
return
return value
RenderPlan
n/a
Name
document
Kind
parameter
Type
MarkdownDocument
Requirement
required
Name
options
Kind
parameter
Type
RenderPlanOptions
Requirement
optional
Name
return
Kind
return value
Type
RenderPlan
Requirement
n/a
DeclarationView source
UrlSanitizeResultts
type UrlSanitizeResult = {
readonly ok: true;
readonly url: string;
} | {
readonly ok: false;
readonly reason: "unsafe-scheme" | "malformed";
};

Framework adapters

Each panel keeps its adapter's public vocabulary. React compound exports, Vue composables, standalone Angular declarations, Svelte components, and Solid hooks stay native to their framework.

React example follows below.

React imports

@grassroot/ui-headless-react/markdownts
import { Markdown } from "@grassroot/ui-headless-react/markdown";

Vue imports

@grassroot/ui-headless-vue/markdownts
<script setup lang="ts">
import { Markdown } from "@grassroot/ui-headless-vue/markdown";
</script>

Angular imports

@grassroot/ui-headless-angular/markdownts
import { Component } from "@angular/core";
import { GR_MARKDOWN_DECLARATIONS } from "@grassroot/ui-headless-angular/markdown";
@Component({ standalone: true, imports: [GR_MARKDOWN_DECLARATIONS], template: `<!-- compose the markdown parts here -->` })
export class Example {}

Svelte imports

@grassroot/ui-headless-svelte/markdownts
<script lang="ts">
import { Markdown } from "@grassroot/ui-headless-svelte/markdown";
</script>

Solid imports

@grassroot/ui-headless-solid/markdownts
import { Markdown } from "@grassroot/ui-headless-solid/markdown";

@grassroot/ui-headless-react/markdown

React adapter

5 exports
View source packages/ui-headless/react/src/markdown/index.tsx

default

function

Pure, SSR-safe Markdown renderer. Interactive nodes are marked in the plan; this adapter owns no service or effects.

DeclarationView source
defaultts
declare function Markdown({ source, ast, options, components, code, highlight, dir, className }: MarkdownProps): ReactNode;
Name
Kind
Type
Requirement
__0
parameter
MarkdownProps
required
return
return value
ReactNode
n/a
Name
__0
Kind
parameter
Type
MarkdownProps
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

Markdown

function

Pure, SSR-safe Markdown renderer. Interactive nodes are marked in the plan; this adapter owns no service or effects.

DeclarationView source
Markdownts
declare function Markdown({ source, ast, options, components, code, highlight, dir, className }: MarkdownProps): ReactNode;
Name
Kind
Type
Requirement
__0
parameter
MarkdownProps
required
return
return value
ReactNode
n/a
Name
__0
Kind
parameter
Type
MarkdownProps
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a
DeclarationView source
MarkdownComponentPropsts
type MarkdownComponentProps = Record<string, unknown> & {
readonly children?: ReactNode;
};
Name
Kind
Type
Requirement
children
property
ReactNode
optional
Name
children
Kind
property
Type
ReactNode
Requirement
optional
DeclarationView source
MarkdownComponentsts
type MarkdownComponents = Partial<Record<MarkdownNodeType, ComponentType<MarkdownComponentProps>>>;

MarkdownProps

interface
DeclarationView source
MarkdownPropsts
interface MarkdownProps {
readonly source?: string;
readonly ast?: MarkdownDocument;
readonly options?: ParseOptions;
readonly components?: MarkdownComponents;
readonly code?: Readonly<Record<string, ComponentType<MarkdownComponentProps>>>;
readonly highlight?: (code: string, lang: string | undefined) => readonly HighlightToken[];
readonly dir?: "ltr" | "rtl" | "auto";
readonly className?: string;
}
Name
Kind
Type
Requirement
ast
property
MarkdownDocument
optional
className
property
string
optional
code
property
Readonly<Record<string, ComponentType<MarkdownComponentProps>>>
optional
components
property
MarkdownComponents
optional
dir
property
"ltr" | "rtl" | "auto"
optional
highlight
property
(code: string, lang: string | undefined) => readonly HighlightToken[]
optional
options
property
ParseOptions
optional
source
property
string
optional
Name
ast
Kind
property
Type
MarkdownDocument
Requirement
optional
Name
className
Kind
property
Type
string
Requirement
optional
Name
code
Kind
property
Type
Readonly<Record<string, ComponentType<MarkdownComponentProps>>>
Requirement
optional
Name
components
Kind
property
Type
MarkdownComponents
Requirement
optional
Name
dir
Kind
property
Type
"ltr" | "rtl" | "auto"
Requirement
optional
Name
highlight
Kind
property
Type
(code: string, lang: string | undefined) => readonly HighlightToken[]
Requirement
optional
Name
options
Kind
property
Type
ParseOptions
Requirement
optional
Name
source
Kind
property
Type
string
Requirement
optional

@grassroot/ui-headless-vue/markdown

Vue adapter

10 exports
View source packages/ui-headless/vue/src/markdown/index.ts

default

value
DeclarationView source
defaultts
export declare const default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
source: {
type: StringConstructor;
default: string;
};
ast: {
type: PropType<MarkdownDocument$1>;
default: undefined;
};
options: {
type: PropType<ParseOptions$1>;
default: undefined;
};
components: {
type: PropType<MarkdownProps["components"]>;
default: () => {};
};
code: {
type: PropType<MarkdownProps["code"]>;
default: () => {};
};
highlight: {
type: PropType<MarkdownProps["highlight"]>;
default: undefined;
};
dir: {
type: PropType<MarkdownProps["dir"]>;
default: undefined;
};
className: {
type: StringConstructor;
default: undefined;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
source: {
type: StringConstructor;
default: string;
};
ast: {
type: PropType<MarkdownDocument$1>;
default: undefined;
};
options: {
type: PropType<ParseOptions$1>;
default: undefined;
};
components: {
type: PropType<MarkdownProps["components"]>;
default: () => {};
};
code: {
type: PropType<MarkdownProps["code"]>;
default: () => {};
};
highlight: {
type: PropType<MarkdownProps["highlight"]>;
default: undefined;
};
dir: {
type: PropType<MarkdownProps["dir"]>;
default: undefined;
};
className: {
type: StringConstructor;
default: undefined;
};
}>> & Readonly<{}>, {
source: string;
ast: MarkdownDocument$1;
options: ParseOptions$1;
components: Partial<Record<MarkdownNodeType$1, Component>> | undefined;
code: Readonly<Record<string, Component>> | undefined;
highlight: ((code: string, lang: string | undefined) => readonly HighlightToken$1[]) | undefined;
dir: "auto" | "ltr" | "rtl" | undefined;
className: string;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;

Highlighters may return their native `content`/`type` shape or the public CodeBlock `text`/`tone` shape. Both are normalised into render tokens.

DeclarationView source
HighlightTokents
type HighlightToken = {
readonly text: string;
readonly tone?: CodeBlockTokenTone;
readonly type?: string;
} | {
readonly content: string;
readonly tone?: CodeBlockTokenTone;
readonly type?: string;
};

Markdown

value
DeclarationView source
Markdownts
export declare const Markdown: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
source: {
type: StringConstructor;
default: string;
};
ast: {
type: PropType<MarkdownDocument$1>;
default: undefined;
};
options: {
type: PropType<ParseOptions$1>;
default: undefined;
};
components: {
type: PropType<MarkdownProps["components"]>;
default: () => {};
};
code: {
type: PropType<MarkdownProps["code"]>;
default: () => {};
};
highlight: {
type: PropType<MarkdownProps["highlight"]>;
default: undefined;
};
dir: {
type: PropType<MarkdownProps["dir"]>;
default: undefined;
};
className: {
type: StringConstructor;
default: undefined;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
source: {
type: StringConstructor;
default: string;
};
ast: {
type: PropType<MarkdownDocument$1>;
default: undefined;
};
options: {
type: PropType<ParseOptions$1>;
default: undefined;
};
components: {
type: PropType<MarkdownProps["components"]>;
default: () => {};
};
code: {
type: PropType<MarkdownProps["code"]>;
default: () => {};
};
highlight: {
type: PropType<MarkdownProps["highlight"]>;
default: undefined;
};
dir: {
type: PropType<MarkdownProps["dir"]>;
default: undefined;
};
className: {
type: StringConstructor;
default: undefined;
};
}>> & Readonly<{}>, {
source: string;
ast: MarkdownDocument$1;
options: ParseOptions$1;
components: Partial<Record<MarkdownNodeType$1, Component>> | undefined;
code: Readonly<Record<string, Component>> | undefined;
highlight: ((code: string, lang: string | undefined) => readonly HighlightToken$1[]) | undefined;
dir: "auto" | "ltr" | "rtl" | undefined;
className: string;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
MarkdownDocumentts
type MarkdownDocument = {
readonly source: string;
readonly blocks: readonly BlockNode[];
readonly diagnostics: readonly MarkdownDiagnostic[];
};
Name
Kind
Type
Requirement
blocks
property
readonly BlockNode[]
required
diagnostics
property
readonly MarkdownDiagnostic[]
required
source
property
string
required
Name
blocks
Kind
property
Type
readonly BlockNode[]
Requirement
required
Name
diagnostics
Kind
property
Type
readonly MarkdownDiagnostic[]
Requirement
required
Name
source
Kind
property
Type
string
Requirement
required
DeclarationView source
MarkdownNodeTypets
type MarkdownNodeType = "document" | "heading" | "paragraph" | "code-block" | "code-fence-custom" | "list" | "list-item" | "task-item" | "blockquote" | "callout" | "thematic-break" | "table" | "table-row" | "table-cell" | "details" | "emphasis" | "strong" | "strikethrough" | "code-span" | "link" | "autolink" | "image" | "footnote-ref" | "footnote-def" | "hard-break" | "html-blocked" | "text";

MarkdownProps

interface
DeclarationView source
MarkdownPropsts
interface MarkdownProps {
readonly source?: string;
readonly ast?: MarkdownDocument$1;
readonly options?: ParseOptions$1;
readonly components?: Partial<Record<MarkdownNodeType$1, Component>>;
readonly code?: Readonly<Record<string, Component>>;
readonly highlight?: (code: string, lang: string | undefined) => readonly HighlightToken$1[];
readonly dir?: "ltr" | "rtl" | "auto";
readonly className?: string;
}
Name
Kind
Type
Requirement
ast
property
MarkdownDocument$1
optional
className
property
string
optional
code
property
Readonly<Record<string, Component>>
optional
components
property
Partial<Record<MarkdownNodeType$1, Component>>
optional
dir
property
"ltr" | "rtl" | "auto"
optional
highlight
property
(code: string, lang: string | undefined) => readonly HighlightToken$1[]
optional
options
property
ParseOptions$1
optional
source
property
string
optional
Name
ast
Kind
property
Type
MarkdownDocument$1
Requirement
optional
Name
className
Kind
property
Type
string
Requirement
optional
Name
code
Kind
property
Type
Readonly<Record<string, Component>>
Requirement
optional
Name
components
Kind
property
Type
Partial<Record<MarkdownNodeType$1, Component>>
Requirement
optional
Name
dir
Kind
property
Type
"ltr" | "rtl" | "auto"
Requirement
optional
Name
highlight
Kind
property
Type
(code: string, lang: string | undefined) => readonly HighlightToken$1[]
Requirement
optional
Name
options
Kind
property
Type
ParseOptions$1
Requirement
optional
Name
source
Kind
property
Type
string
Requirement
optional

parse

function
DeclarationView source
parsets
declare function parse(source: string, options?: ParseOptions): MarkdownDocument;
Name
Kind
Type
Requirement
source
parameter
string
required
options
parameter
ParseOptions
optional
return
return value
MarkdownDocument
n/a
Name
source
Kind
parameter
Type
string
Requirement
required
Name
options
Kind
parameter
Type
ParseOptions
Requirement
optional
Name
return
Kind
return value
Type
MarkdownDocument
Requirement
n/a

ParseOptions

interface
DeclarationView source
ParseOptionsts
interface ParseOptions {
readonly gfm?: boolean;
readonly footnotes?: boolean;
readonly callouts?: boolean;
readonly sourcePositions?: boolean;
readonly allowDataImage?: boolean;
}
Name
Kind
Type
Requirement
allowDataImage
property
boolean
optional
callouts
property
boolean
optional
footnotes
property
boolean
optional
gfm
property
boolean
optional
sourcePositions
property
boolean
optional
Name
allowDataImage
Kind
property
Type
boolean
Requirement
optional
Name
callouts
Kind
property
Type
boolean
Requirement
optional
Name
footnotes
Kind
property
Type
boolean
Requirement
optional
Name
gfm
Kind
property
Type
boolean
Requirement
optional
Name
sourcePositions
Kind
property
Type
boolean
Requirement
optional

RenderPlanNode

interface
DeclarationView source
RenderPlanNodets
interface RenderPlanNode {
readonly part: MarkdownNodeType;
readonly props: Readonly<Record<string, unknown>>;
readonly children: readonly RenderPlanNode[];
readonly key: string;
readonly text?: string;
readonly element?: string;
}
Name
Kind
Type
Requirement
children
property
readonly RenderPlanNode[]
required
element
property
string
optional
key
property
string
required
part
property
MarkdownNodeType
required
props
property
Readonly<Record<string, unknown>>
required
text
property
string
optional
Name
children
Kind
property
Type
readonly RenderPlanNode[]
Requirement
required
Name
element
Kind
property
Type
string
Requirement
optional
Name
key
Kind
property
Type
string
Requirement
required
Name
part
Kind
property
Type
MarkdownNodeType
Requirement
required
Name
props
Kind
property
Type
Readonly<Record<string, unknown>>
Requirement
required
Name
text
Kind
property
Type
string
Requirement
optional

toRenderPlan

function
DeclarationView source
toRenderPlants
declare function toRenderPlan(document: MarkdownDocument, options?: RenderPlanOptions): RenderPlan;
Name
Kind
Type
Requirement
document
parameter
MarkdownDocument
required
options
parameter
RenderPlanOptions
optional
return
return value
RenderPlan
n/a
Name
document
Kind
parameter
Type
MarkdownDocument
Requirement
required
Name
options
Kind
parameter
Type
RenderPlanOptions
Requirement
optional
Name
return
Kind
return value
Type
RenderPlan
Requirement
n/a

@grassroot/ui-headless-angular/markdown

Angular adapter

9 exports
View source packages/ui-headless/angular/src/markdown/index.ts
DeclarationView source
GR_MARKDOWN_DECLARATIONSts
export declare const GR_MARKDOWN_DECLARATIONS: readonly [typeof GrMarkdown];

GrMarkdown

class
DeclarationView source
GrMarkdownts
export declare class GrMarkdown {
readonly source: import("@angular/core").InputSignal<string>;
readonly ast: import("@angular/core").InputSignal<MarkdownDocument | undefined>;
readonly options: import("@angular/core").InputSignal<ParseOptions | undefined>;
readonly dir: import("@angular/core").InputSignal<"rtl" | "ltr" | "auto" | undefined>;
readonly className: import("@angular/core").InputSignal<string | undefined>;
readonly plan: import("@angular/core").Signal<import("@grassroot/ui-headless-core").RenderPlan>;
text(node: RenderPlanNode): string;
static ɵfac: i0.ɵɵFactoryDeclaration<GrMarkdown, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<GrMarkdown, "gr-markdown", never, { "source": { "alias": "source"; "required": false; "isSignal": true; }; "ast": { "alias": "ast"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
ast
property
import("@angular/core").InputSignal<MarkdownDocument | undefined>
required
className
property
import("@angular/core").InputSignal<string | undefined>
required
dir
property
import("@angular/core").InputSignal<"rtl" | "ltr" | "auto" | undefined>
required
options
property
import("@angular/core").InputSignal<ParseOptions | undefined>
required
ɵcmp
property
i0.ɵɵComponentDeclaration<GrMarkdown, "gr-markdown", never, { "source": { "alias": "source"; "required": false; "isSignal": true; }; "ast": { "alias": "ast"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrMarkdown, never>
required
plan
property
import("@angular/core").Signal<import("@grassroot/ui-headless-core").RenderPlan>
required
source
property
import("@angular/core").InputSignal<string>
required
text
method
(node: RenderPlanNode) => string
required
Name
ast
Kind
property
Type
import("@angular/core").InputSignal<MarkdownDocument | undefined>
Requirement
required
Name
className
Kind
property
Type
import("@angular/core").InputSignal<string | undefined>
Requirement
required
Name
dir
Kind
property
Type
import("@angular/core").InputSignal<"rtl" | "ltr" | "auto" | undefined>
Requirement
required
Name
options
Kind
property
Type
import("@angular/core").InputSignal<ParseOptions | undefined>
Requirement
required
Name
ɵcmp
Kind
property
Type
i0.ɵɵComponentDeclaration<GrMarkdown, "gr-markdown", never, { "source": { "alias": "source"; "required": false; "isSignal": true; }; "ast": { "alias": "ast"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrMarkdown, never>
Requirement
required
Name
plan
Kind
property
Type
import("@angular/core").Signal<import("@grassroot/ui-headless-core").RenderPlan>
Requirement
required
Name
source
Kind
property
Type
import("@angular/core").InputSignal<string>
Requirement
required
Name
text
Kind
method
Type
(node: RenderPlanNode) => string
Requirement
required

Highlighters may return their native `content`/`type` shape or the public CodeBlock `text`/`tone` shape. Both are normalised into render tokens.

DeclarationView source
HighlightTokents
type HighlightToken = {
readonly text: string;
readonly tone?: CodeBlockTokenTone;
readonly type?: string;
} | {
readonly content: string;
readonly tone?: CodeBlockTokenTone;
readonly type?: string;
};
DeclarationView source
MarkdownDocumentts
type MarkdownDocument = {
readonly source: string;
readonly blocks: readonly BlockNode[];
readonly diagnostics: readonly MarkdownDiagnostic[];
};
Name
Kind
Type
Requirement
blocks
property
readonly BlockNode[]
required
diagnostics
property
readonly MarkdownDiagnostic[]
required
source
property
string
required
Name
blocks
Kind
property
Type
readonly BlockNode[]
Requirement
required
Name
diagnostics
Kind
property
Type
readonly MarkdownDiagnostic[]
Requirement
required
Name
source
Kind
property
Type
string
Requirement
required
DeclarationView source
MarkdownNodeTypets
type MarkdownNodeType = "document" | "heading" | "paragraph" | "code-block" | "code-fence-custom" | "list" | "list-item" | "task-item" | "blockquote" | "callout" | "thematic-break" | "table" | "table-row" | "table-cell" | "details" | "emphasis" | "strong" | "strikethrough" | "code-span" | "link" | "autolink" | "image" | "footnote-ref" | "footnote-def" | "hard-break" | "html-blocked" | "text";

parse

function
DeclarationView source
parsets
declare function parse(source: string, options?: ParseOptions): MarkdownDocument;
Name
Kind
Type
Requirement
source
parameter
string
required
options
parameter
ParseOptions
optional
return
return value
MarkdownDocument
n/a
Name
source
Kind
parameter
Type
string
Requirement
required
Name
options
Kind
parameter
Type
ParseOptions
Requirement
optional
Name
return
Kind
return value
Type
MarkdownDocument
Requirement
n/a

ParseOptions

interface
DeclarationView source
ParseOptionsts
interface ParseOptions {
readonly gfm?: boolean;
readonly footnotes?: boolean;
readonly callouts?: boolean;
readonly sourcePositions?: boolean;
readonly allowDataImage?: boolean;
}
Name
Kind
Type
Requirement
allowDataImage
property
boolean
optional
callouts
property
boolean
optional
footnotes
property
boolean
optional
gfm
property
boolean
optional
sourcePositions
property
boolean
optional
Name
allowDataImage
Kind
property
Type
boolean
Requirement
optional
Name
callouts
Kind
property
Type
boolean
Requirement
optional
Name
footnotes
Kind
property
Type
boolean
Requirement
optional
Name
gfm
Kind
property
Type
boolean
Requirement
optional
Name
sourcePositions
Kind
property
Type
boolean
Requirement
optional

RenderPlanNode

interface
DeclarationView source
RenderPlanNodets
interface RenderPlanNode {
readonly part: MarkdownNodeType;
readonly props: Readonly<Record<string, unknown>>;
readonly children: readonly RenderPlanNode[];
readonly key: string;
readonly text?: string;
readonly element?: string;
}
Name
Kind
Type
Requirement
children
property
readonly RenderPlanNode[]
required
element
property
string
optional
key
property
string
required
part
property
MarkdownNodeType
required
props
property
Readonly<Record<string, unknown>>
required
text
property
string
optional
Name
children
Kind
property
Type
readonly RenderPlanNode[]
Requirement
required
Name
element
Kind
property
Type
string
Requirement
optional
Name
key
Kind
property
Type
string
Requirement
required
Name
part
Kind
property
Type
MarkdownNodeType
Requirement
required
Name
props
Kind
property
Type
Readonly<Record<string, unknown>>
Requirement
required
Name
text
Kind
property
Type
string
Requirement
optional

toRenderPlan

function
DeclarationView source
toRenderPlants
declare function toRenderPlan(document: MarkdownDocument, options?: RenderPlanOptions): RenderPlan;
Name
Kind
Type
Requirement
document
parameter
MarkdownDocument
required
options
parameter
RenderPlanOptions
optional
return
return value
RenderPlan
n/a
Name
document
Kind
parameter
Type
MarkdownDocument
Requirement
required
Name
options
Kind
parameter
Type
RenderPlanOptions
Requirement
optional
Name
return
Kind
return value
Type
RenderPlan
Requirement
n/a

@grassroot/ui-headless-svelte/markdown

Svelte adapter

9 exports
View source packages/ui-headless/svelte/src/markdown/index.ts

default

value
DeclarationView source
defaultts
export declare const default: LegacyComponentType;
Name
Kind
Type
Requirement
args
parameter
Parameters<Component<Record<string, any>>>
optional
return
return value
ReturnType<Component<Record<string, any>, Record<string, any>>>
n/a
Name
args
Kind
parameter
Type
Parameters<Component<Record<string, any>>>
Requirement
optional
Name
return
Kind
return value
Type
ReturnType<Component<Record<string, any>, Record<string, any>>>
Requirement
n/a

Highlighters may return their native `content`/`type` shape or the public CodeBlock `text`/`tone` shape. Both are normalised into render tokens.

DeclarationView source
HighlightTokents
type HighlightToken = {
readonly text: string;
readonly tone?: CodeBlockTokenTone;
readonly type?: string;
} | {
readonly content: string;
readonly tone?: CodeBlockTokenTone;
readonly type?: string;
};

Markdown

value
DeclarationView source
Markdownts
export declare const Markdown: LegacyComponentType;
Name
Kind
Type
Requirement
args
parameter
Parameters<Component<Record<string, any>>>
optional
return
return value
ReturnType<Component<Record<string, any>, Record<string, any>>>
n/a
Name
args
Kind
parameter
Type
Parameters<Component<Record<string, any>>>
Requirement
optional
Name
return
Kind
return value
Type
ReturnType<Component<Record<string, any>, Record<string, any>>>
Requirement
n/a
DeclarationView source
MarkdownDocumentts
type MarkdownDocument = {
readonly source: string;
readonly blocks: readonly BlockNode[];
readonly diagnostics: readonly MarkdownDiagnostic[];
};
Name
Kind
Type
Requirement
blocks
property
readonly BlockNode[]
required
diagnostics
property
readonly MarkdownDiagnostic[]
required
source
property
string
required
Name
blocks
Kind
property
Type
readonly BlockNode[]
Requirement
required
Name
diagnostics
Kind
property
Type
readonly MarkdownDiagnostic[]
Requirement
required
Name
source
Kind
property
Type
string
Requirement
required
DeclarationView source
MarkdownNodeTypets
type MarkdownNodeType = "document" | "heading" | "paragraph" | "code-block" | "code-fence-custom" | "list" | "list-item" | "task-item" | "blockquote" | "callout" | "thematic-break" | "table" | "table-row" | "table-cell" | "details" | "emphasis" | "strong" | "strikethrough" | "code-span" | "link" | "autolink" | "image" | "footnote-ref" | "footnote-def" | "hard-break" | "html-blocked" | "text";

parse

function
DeclarationView source
parsets
declare function parse(source: string, options?: ParseOptions): MarkdownDocument;
Name
Kind
Type
Requirement
source
parameter
string
required
options
parameter
ParseOptions
optional
return
return value
MarkdownDocument
n/a
Name
source
Kind
parameter
Type
string
Requirement
required
Name
options
Kind
parameter
Type
ParseOptions
Requirement
optional
Name
return
Kind
return value
Type
MarkdownDocument
Requirement
n/a

ParseOptions

interface
DeclarationView source
ParseOptionsts
interface ParseOptions {
readonly gfm?: boolean;
readonly footnotes?: boolean;
readonly callouts?: boolean;
readonly sourcePositions?: boolean;
readonly allowDataImage?: boolean;
}
Name
Kind
Type
Requirement
allowDataImage
property
boolean
optional
callouts
property
boolean
optional
footnotes
property
boolean
optional
gfm
property
boolean
optional
sourcePositions
property
boolean
optional
Name
allowDataImage
Kind
property
Type
boolean
Requirement
optional
Name
callouts
Kind
property
Type
boolean
Requirement
optional
Name
footnotes
Kind
property
Type
boolean
Requirement
optional
Name
gfm
Kind
property
Type
boolean
Requirement
optional
Name
sourcePositions
Kind
property
Type
boolean
Requirement
optional

RenderPlanNode

interface
DeclarationView source
RenderPlanNodets
interface RenderPlanNode {
readonly part: MarkdownNodeType;
readonly props: Readonly<Record<string, unknown>>;
readonly children: readonly RenderPlanNode[];
readonly key: string;
readonly text?: string;
readonly element?: string;
}
Name
Kind
Type
Requirement
children
property
readonly RenderPlanNode[]
required
element
property
string
optional
key
property
string
required
part
property
MarkdownNodeType
required
props
property
Readonly<Record<string, unknown>>
required
text
property
string
optional
Name
children
Kind
property
Type
readonly RenderPlanNode[]
Requirement
required
Name
element
Kind
property
Type
string
Requirement
optional
Name
key
Kind
property
Type
string
Requirement
required
Name
part
Kind
property
Type
MarkdownNodeType
Requirement
required
Name
props
Kind
property
Type
Readonly<Record<string, unknown>>
Requirement
required
Name
text
Kind
property
Type
string
Requirement
optional

toRenderPlan

function
DeclarationView source
toRenderPlants
declare function toRenderPlan(document: MarkdownDocument, options?: RenderPlanOptions): RenderPlan;
Name
Kind
Type
Requirement
document
parameter
MarkdownDocument
required
options
parameter
RenderPlanOptions
optional
return
return value
RenderPlan
n/a
Name
document
Kind
parameter
Type
MarkdownDocument
Requirement
required
Name
options
Kind
parameter
Type
RenderPlanOptions
Requirement
optional
Name
return
Kind
return value
Type
RenderPlan
Requirement
n/a

@grassroot/ui-headless-solid/markdown

Solid adapter

3 exports
View source packages/ui-headless/solid/src/markdown/index.tsx

default

function
DeclarationView source
defaultts
export declare function Markdown(props: MarkdownProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
MarkdownProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
MarkdownProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a

Markdown

function
DeclarationView source
Markdownts
export declare function Markdown(props: MarkdownProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
MarkdownProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
MarkdownProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a

MarkdownProps

interface
DeclarationView source
MarkdownPropsts
export interface MarkdownProps {
source?: string;
ast?: MarkdownDocument;
options?: ParseOptions;
components?: Partial<Record<MarkdownNodeType, Component<{
children?: JSX.Element;
}>>>;
code?: Readonly<Record<string, Component<{
children?: JSX.Element;
}>>>;
highlight?: (code: string, lang: string | undefined) => readonly HighlightToken[];
dir?: "ltr" | "rtl" | "auto";
className?: string;
}
Name
Kind
Type
Requirement
ast
property
MarkdownDocument
optional
className
property
string
optional
code
property
Readonly<Record<string, Component<{ children?: JSX.Element; }>>>
optional
components
property
Partial<Record<MarkdownNodeType, Component<{ children?: JSX.Element; }>>>
optional
dir
property
"ltr" | "rtl" | "auto"
optional
highlight
property
(code: string, lang: string | undefined) => readonly HighlightToken[]
optional
options
property
ParseOptions
optional
source
property
string
optional
Name
ast
Kind
property
Type
MarkdownDocument
Requirement
optional
Name
className
Kind
property
Type
string
Requirement
optional
Name
code
Kind
property
Type
Readonly<Record<string, Component<{ children?: JSX.Element; }>>>
Requirement
optional
Name
components
Kind
property
Type
Partial<Record<MarkdownNodeType, Component<{ children?: JSX.Element; }>>>
Requirement
optional
Name
dir
Kind
property
Type
"ltr" | "rtl" | "auto"
Requirement
optional
Name
highlight
Kind
property
Type
(code: string, lang: string | undefined) => readonly HighlightToken[]
Requirement
optional
Name
options
Kind
property
Type
ParseOptions
Requirement
optional
Name
source
Kind
property
Type
string
Requirement
optional