@copilotkit/markdown 0.0.1 → 2.0.0-rc.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +23 -2
- package/dist/index.cjs +2023 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +361 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +361 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +2018 -0
- package/dist/index.mjs.map +1 -0
- package/dist/react/index.cjs +538 -0
- package/dist/react/index.cjs.map +1 -0
- package/dist/react/index.d.cts +190 -0
- package/dist/react/index.d.cts.map +1 -0
- package/dist/react/index.d.mts +190 -0
- package/dist/react/index.d.mts.map +1 -0
- package/dist/react/index.mjs +535 -0
- package/dist/react/index.mjs.map +1 -0
- package/dist/react-native/index.cjs +330 -0
- package/dist/react-native/index.cjs.map +1 -0
- package/dist/react-native/index.d.cts +74 -0
- package/dist/react-native/index.d.cts.map +1 -0
- package/dist/react-native/index.d.mts +74 -0
- package/dist/react-native/index.d.mts.map +1 -0
- package/dist/react-native/index.mjs +300 -0
- package/dist/react-native/index.mjs.map +1 -0
- package/dist/vue/index.cjs +256 -0
- package/dist/vue/index.cjs.map +1 -0
- package/dist/vue/index.d.cts +116 -0
- package/dist/vue/index.d.cts.map +1 -0
- package/dist/vue/index.d.mts +116 -0
- package/dist/vue/index.d.mts.map +1 -0
- package/dist/vue/index.mjs +255 -0
- package/dist/vue/index.mjs.map +1 -0
- package/package.json +75 -2
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
2
|
+
import { CitationDefinition, StreamingMarkdownAstNode, StreamingMarkdownNodeType, StreamingMarkdownParserOptions, StreamingMarkdownParserState } from "@copilotkit/markdown";
|
|
3
|
+
import { MouseEvent, ReactNode } from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/react/streaming-markdown-renderer.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Metadata available when a citation node is rendered.
|
|
8
|
+
*
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
interface StreamingMarkdownCitationRenderData {
|
|
12
|
+
id: string;
|
|
13
|
+
number: number | string;
|
|
14
|
+
definition?: CitationDefinition;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Props for the `StreamingMarkdownRenderer` component.
|
|
18
|
+
*
|
|
19
|
+
* @public
|
|
20
|
+
*/
|
|
21
|
+
interface StreamingMarkdownRendererProps {
|
|
22
|
+
/**
|
|
23
|
+
* Full markdown source that grows over time.
|
|
24
|
+
*/
|
|
25
|
+
children: string;
|
|
26
|
+
/**
|
|
27
|
+
* Optional parser option overrides.
|
|
28
|
+
*/
|
|
29
|
+
options?: Partial<StreamingMarkdownParserOptions>;
|
|
30
|
+
/**
|
|
31
|
+
* When `true`, finalizes the parser state after applying the latest text.
|
|
32
|
+
*/
|
|
33
|
+
isComplete?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Caret rendering behavior for streaming output.
|
|
36
|
+
*
|
|
37
|
+
* - `false`/`undefined`: no caret
|
|
38
|
+
* - `true`: render the default caret
|
|
39
|
+
* - `ReactNode`: render a custom caret node
|
|
40
|
+
* - function: render a custom caret node from parser state
|
|
41
|
+
*/
|
|
42
|
+
caret?: StreamingMarkdownCaret;
|
|
43
|
+
/**
|
|
44
|
+
* Optional class applied to the root element.
|
|
45
|
+
*/
|
|
46
|
+
className?: string;
|
|
47
|
+
/**
|
|
48
|
+
* Called when a link or autolink is clicked.
|
|
49
|
+
*/
|
|
50
|
+
onLinkClick?: (event: MouseEvent<HTMLAnchorElement>, url: string, node: StreamingMarkdownAstNode) => void;
|
|
51
|
+
/**
|
|
52
|
+
* Called when a citation reference is clicked.
|
|
53
|
+
*/
|
|
54
|
+
onCitationClick?: (event: MouseEvent<HTMLAnchorElement>, citation: StreamingMarkdownCitationRenderData, node: StreamingMarkdownAstNode) => void;
|
|
55
|
+
/**
|
|
56
|
+
* Optional custom renderers keyed by streaming markdown node type.
|
|
57
|
+
*/
|
|
58
|
+
nodeRenderers?: StreamingMarkdownNodeRenderers;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Props supplied to a custom node renderer.
|
|
62
|
+
*
|
|
63
|
+
* @public
|
|
64
|
+
*/
|
|
65
|
+
interface StreamingMarkdownNodeRendererProps<TNode extends StreamingMarkdownAstNode = StreamingMarkdownAstNode> {
|
|
66
|
+
/**
|
|
67
|
+
* The immutable AST node being rendered.
|
|
68
|
+
*/
|
|
69
|
+
node: TNode;
|
|
70
|
+
/**
|
|
71
|
+
* Already-rendered child content for container nodes.
|
|
72
|
+
*/
|
|
73
|
+
children: ReactNode;
|
|
74
|
+
/**
|
|
75
|
+
* Default element tree produced by `StreamingMarkdownRenderer` for this node.
|
|
76
|
+
*/
|
|
77
|
+
defaultNode: ReactNode;
|
|
78
|
+
/**
|
|
79
|
+
* Citation metadata when rendering a citation node.
|
|
80
|
+
*/
|
|
81
|
+
citation?: StreamingMarkdownCitationRenderData;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Custom renderer callback for a specific streaming markdown node.
|
|
85
|
+
*
|
|
86
|
+
* @public
|
|
87
|
+
*/
|
|
88
|
+
type StreamingMarkdownNodeRenderer<TNode extends StreamingMarkdownAstNode = StreamingMarkdownAstNode> = (props: StreamingMarkdownNodeRendererProps<TNode>) => ReactNode;
|
|
89
|
+
/**
|
|
90
|
+
* Render context supplied to caret renderer callbacks.
|
|
91
|
+
*
|
|
92
|
+
* @public
|
|
93
|
+
*/
|
|
94
|
+
interface StreamingMarkdownCaretRenderProps {
|
|
95
|
+
/**
|
|
96
|
+
* Whether the parser state is complete for the current source text.
|
|
97
|
+
*/
|
|
98
|
+
isComplete: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* The deepest currently open AST node, if any.
|
|
101
|
+
*/
|
|
102
|
+
openNode: StreamingMarkdownAstNode | null;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Callback type for custom caret renderers.
|
|
106
|
+
*
|
|
107
|
+
* @public
|
|
108
|
+
*/
|
|
109
|
+
type StreamingMarkdownCaretRenderer = (props: StreamingMarkdownCaretRenderProps) => ReactNode;
|
|
110
|
+
/**
|
|
111
|
+
* Supported caret prop values.
|
|
112
|
+
*
|
|
113
|
+
* @public
|
|
114
|
+
*/
|
|
115
|
+
type StreamingMarkdownCaret = boolean | ReactNode | StreamingMarkdownCaretRenderer;
|
|
116
|
+
type StreamingMarkdownNodeOfType<TNodeType extends StreamingMarkdownNodeType> = Extract<StreamingMarkdownAstNode, {
|
|
117
|
+
type: TNodeType;
|
|
118
|
+
}>;
|
|
119
|
+
/**
|
|
120
|
+
* Supported key names for `nodeRenderers`.
|
|
121
|
+
*
|
|
122
|
+
* @public
|
|
123
|
+
*/
|
|
124
|
+
type StreamingMarkdownNodeRendererKey = "node" | "document" | "paragraph" | "heading" | "blockquote" | "list" | "listItem" | "codeBlock" | "table" | "tableRow" | "tableCell" | "thematicBreak" | "text" | "em" | "strong" | "strikethrough" | "inlineCode" | "softBreak" | "hardBreak" | "image" | "link" | "autolink" | "citation";
|
|
125
|
+
type StreamingMarkdownNodeByRendererKey = {
|
|
126
|
+
node: StreamingMarkdownAstNode;
|
|
127
|
+
document: StreamingMarkdownNodeOfType<"document">;
|
|
128
|
+
paragraph: StreamingMarkdownNodeOfType<"paragraph">;
|
|
129
|
+
heading: StreamingMarkdownNodeOfType<"heading">;
|
|
130
|
+
blockquote: StreamingMarkdownNodeOfType<"blockquote">;
|
|
131
|
+
list: StreamingMarkdownNodeOfType<"list">;
|
|
132
|
+
listItem: StreamingMarkdownNodeOfType<"list-item">;
|
|
133
|
+
codeBlock: StreamingMarkdownNodeOfType<"code-block">;
|
|
134
|
+
table: StreamingMarkdownNodeOfType<"table">;
|
|
135
|
+
tableRow: StreamingMarkdownNodeOfType<"table-row">;
|
|
136
|
+
tableCell: StreamingMarkdownNodeOfType<"table-cell">;
|
|
137
|
+
thematicBreak: StreamingMarkdownNodeOfType<"thematic-break">;
|
|
138
|
+
text: StreamingMarkdownNodeOfType<"text">;
|
|
139
|
+
em: StreamingMarkdownNodeOfType<"em">;
|
|
140
|
+
strong: StreamingMarkdownNodeOfType<"strong">;
|
|
141
|
+
strikethrough: StreamingMarkdownNodeOfType<"strikethrough">;
|
|
142
|
+
inlineCode: StreamingMarkdownNodeOfType<"inline-code">;
|
|
143
|
+
softBreak: StreamingMarkdownNodeOfType<"soft-break">;
|
|
144
|
+
hardBreak: StreamingMarkdownNodeOfType<"hard-break">;
|
|
145
|
+
image: StreamingMarkdownNodeOfType<"image">;
|
|
146
|
+
link: StreamingMarkdownNodeOfType<"link">;
|
|
147
|
+
autolink: StreamingMarkdownNodeOfType<"autolink">;
|
|
148
|
+
citation: StreamingMarkdownNodeOfType<"citation">;
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Custom renderers keyed by camelCase node names.
|
|
152
|
+
*
|
|
153
|
+
* @public
|
|
154
|
+
*/
|
|
155
|
+
type StreamingMarkdownNodeRenderers = Partial<{ [TKey in StreamingMarkdownNodeRendererKey]: StreamingMarkdownNodeRenderer<StreamingMarkdownNodeByRendererKey[TKey]> }>;
|
|
156
|
+
/**
|
|
157
|
+
* Helper for creating typed streaming markdown node renderer maps.
|
|
158
|
+
*
|
|
159
|
+
* @public
|
|
160
|
+
*/
|
|
161
|
+
declare function createStreamingMarkdownNodeRenderers<T extends StreamingMarkdownNodeRenderers>(renderers: T): T;
|
|
162
|
+
/**
|
|
163
|
+
* React renderer for streaming markdown parser output.
|
|
164
|
+
*
|
|
165
|
+
* @public
|
|
166
|
+
*/
|
|
167
|
+
declare function StreamingMarkdownRenderer({
|
|
168
|
+
children,
|
|
169
|
+
options,
|
|
170
|
+
isComplete,
|
|
171
|
+
caret,
|
|
172
|
+
className,
|
|
173
|
+
onLinkClick,
|
|
174
|
+
onCitationClick,
|
|
175
|
+
nodeRenderers
|
|
176
|
+
}: StreamingMarkdownRendererProps): react_jsx_runtime0.JSX.Element;
|
|
177
|
+
//#endregion
|
|
178
|
+
//#region src/react/use-streaming-markdown-parser.d.ts
|
|
179
|
+
/**
|
|
180
|
+
* Internal prop-driven hook for streaming markdown parsing in React.
|
|
181
|
+
*
|
|
182
|
+
* @param text - Full markdown text that typically grows over time.
|
|
183
|
+
* @param options - Optional parser option overrides.
|
|
184
|
+
* @param isCompleteInput - When true, finalizes the parse state for the current text.
|
|
185
|
+
* @returns The current immutable streaming markdown parser state.
|
|
186
|
+
*/
|
|
187
|
+
declare function useStreamingMarkdownParser(text: string, options?: Partial<StreamingMarkdownParserOptions>, isCompleteInput?: boolean): StreamingMarkdownParserState;
|
|
188
|
+
//#endregion
|
|
189
|
+
export { type StreamingMarkdownCaret, type StreamingMarkdownCaretRenderProps, type StreamingMarkdownCaretRenderer, type StreamingMarkdownCitationRenderData, type StreamingMarkdownNodeRenderer, type StreamingMarkdownNodeRendererKey, type StreamingMarkdownNodeRendererProps, type StreamingMarkdownNodeRenderers, StreamingMarkdownRenderer, type StreamingMarkdownRendererProps, createStreamingMarkdownNodeRenderers, useStreamingMarkdownParser };
|
|
190
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/react/streaming-markdown-renderer.tsx","../../src/react/use-streaming-markdown-parser.tsx"],"mappings":";;;;;;;;AAkCA;;UAAiB,mCAAA;EACf,EAAA;EACA,MAAA;EACA,UAAA,GAAa,kBAAA;AAAA;;;;AAQf;;UAAiB,8BAAA;EASG;;;EALlB,QAAA;EA+BS;;;EA1BT,OAAA,GAAU,OAAA,CAAQ,8BAAA;EAoCN;;;EA/BZ,UAAA;EAsC8C;;;;;;;;EA5B9C,KAAA,GAAQ,sBAAA;EAUR;;;EALA,SAAA;EAOE;;;EAFF,WAAA,IACE,KAAA,EAAO,UAAA,CAAW,iBAAA,GAClB,GAAA,UACA,IAAA,EAAM,wBAAA;EAOC;;;EADT,eAAA,IACE,KAAA,EAAO,UAAA,CAAW,iBAAA,GAClB,QAAA,EAAU,mCAAA,EACV,IAAA,EAAM,wBAAA;EADN;;;EAOF,aAAA,GAAgB,8BAAA;AAAA;;;AAQlB;;;UAAiB,kCAAA,eACD,wBAAA,GAA2B,wBAAA;EAAA;;;EAKzC,IAAA,EAAM,KAAA;EAeK;;;EAVX,QAAA,EAAU,SAAA;EAVI;;;EAed,WAAA,EAAa,SAAA;EALb;;;EAUA,QAAA,GAAW,mCAAA;AAAA;;;;AAQb;;KAAY,6BAAA,eACI,wBAAA,GAA2B,wBAAA,KACtC,KAAA,EAAO,kCAAA,CAAmC,KAAA,MAAW,SAAA;;;;;;UAOzC,iCAAA;EAPkD;;;EAWjE,UAAA;EAXU;;;EAgBV,QAAA,EAAU,wBAAA;AAAA;;AATZ;;;;KAiBY,8BAAA,IACV,KAAA,EAAO,iCAAA,KACJ,SAAA;;;;;AAFL;KASY,sBAAA,aAER,SAAA,GACA,8BAAA;AAAA,KAEC,2BAAA,mBAA8C,yBAAA,IACjD,OAAA,CAAQ,wBAAA;EAA4B,IAAA,EAAM,SAAA;AAAA;;;;;AAN5C;KAaY,gCAAA;AAAA,KAyBP,kCAAA;EACH,IAAA,EAAM,wBAAA;EACN,QAAA,EAAU,2BAAA;EACV,SAAA,EAAW,2BAAA;EACX,OAAA,EAAS,2BAAA;EACT,UAAA,EAAY,2BAAA;EACZ,IAAA,EAAM,2BAAA;EACN,QAAA,EAAU,2BAAA;EACV,SAAA,EAAW,2BAAA;EACX,KAAA,EAAO,2BAAA;EACP,QAAA,EAAU,2BAAA;EACV,SAAA,EAAW,2BAAA;EACX,aAAA,EAAe,2BAAA;EACf,IAAA,EAAM,2BAAA;EACN,EAAA,EAAI,2BAAA;EACJ,MAAA,EAAQ,2BAAA;EACR,aAAA,EAAe,2BAAA;EACf,UAAA,EAAY,2BAAA;EACZ,SAAA,EAAW,2BAAA;EACX,SAAA,EAAW,2BAAA;EACX,KAAA,EAAO,2BAAA;EACP,IAAA,EAAM,2BAAA;EACN,QAAA,EAAU,2BAAA;EACV,QAAA,EAAU,2BAAA;AAAA;AAzBG;;;;;AAAA,KAiCH,8BAAA,GAAiC,OAAA,YAClC,gCAAA,GAAmC,6BAAA,CAC1C,kCAAA,CAAmC,IAAA;;;;;;iBASvB,oCAAA,WACJ,8BAAA,CAAA,CACV,SAAA,EAAW,CAAA,GAAI,CAAA;;;;;;iBA8rBD,yBAAA,CAAA;EACd,QAAA;EACA,OAAA;EACA,UAAA;EACA,KAAA;EACA,SAAA;EACA,WAAA;EACA,eAAA;EACA;AAAA,GACC,8BAAA,GAA8B,kBAAA,CAAA,GAAA,CAAA,OAAA;;;;;;;AAh6BjC;;;;iBC4GgB,0BAAA,CACd,IAAA,UACA,OAAA,GAAU,OAAA,CAAQ,8BAAA,GAClB,eAAA,aACC,4BAAA"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { MouseEvent, ReactNode } from "react";
|
|
2
|
+
import { CitationDefinition, StreamingMarkdownAstNode, StreamingMarkdownNodeType, StreamingMarkdownParserOptions, StreamingMarkdownParserState } from "@copilotkit/markdown";
|
|
3
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
|
+
|
|
5
|
+
//#region src/react/streaming-markdown-renderer.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Metadata available when a citation node is rendered.
|
|
8
|
+
*
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
interface StreamingMarkdownCitationRenderData {
|
|
12
|
+
id: string;
|
|
13
|
+
number: number | string;
|
|
14
|
+
definition?: CitationDefinition;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Props for the `StreamingMarkdownRenderer` component.
|
|
18
|
+
*
|
|
19
|
+
* @public
|
|
20
|
+
*/
|
|
21
|
+
interface StreamingMarkdownRendererProps {
|
|
22
|
+
/**
|
|
23
|
+
* Full markdown source that grows over time.
|
|
24
|
+
*/
|
|
25
|
+
children: string;
|
|
26
|
+
/**
|
|
27
|
+
* Optional parser option overrides.
|
|
28
|
+
*/
|
|
29
|
+
options?: Partial<StreamingMarkdownParserOptions>;
|
|
30
|
+
/**
|
|
31
|
+
* When `true`, finalizes the parser state after applying the latest text.
|
|
32
|
+
*/
|
|
33
|
+
isComplete?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Caret rendering behavior for streaming output.
|
|
36
|
+
*
|
|
37
|
+
* - `false`/`undefined`: no caret
|
|
38
|
+
* - `true`: render the default caret
|
|
39
|
+
* - `ReactNode`: render a custom caret node
|
|
40
|
+
* - function: render a custom caret node from parser state
|
|
41
|
+
*/
|
|
42
|
+
caret?: StreamingMarkdownCaret;
|
|
43
|
+
/**
|
|
44
|
+
* Optional class applied to the root element.
|
|
45
|
+
*/
|
|
46
|
+
className?: string;
|
|
47
|
+
/**
|
|
48
|
+
* Called when a link or autolink is clicked.
|
|
49
|
+
*/
|
|
50
|
+
onLinkClick?: (event: MouseEvent<HTMLAnchorElement>, url: string, node: StreamingMarkdownAstNode) => void;
|
|
51
|
+
/**
|
|
52
|
+
* Called when a citation reference is clicked.
|
|
53
|
+
*/
|
|
54
|
+
onCitationClick?: (event: MouseEvent<HTMLAnchorElement>, citation: StreamingMarkdownCitationRenderData, node: StreamingMarkdownAstNode) => void;
|
|
55
|
+
/**
|
|
56
|
+
* Optional custom renderers keyed by streaming markdown node type.
|
|
57
|
+
*/
|
|
58
|
+
nodeRenderers?: StreamingMarkdownNodeRenderers;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Props supplied to a custom node renderer.
|
|
62
|
+
*
|
|
63
|
+
* @public
|
|
64
|
+
*/
|
|
65
|
+
interface StreamingMarkdownNodeRendererProps<TNode extends StreamingMarkdownAstNode = StreamingMarkdownAstNode> {
|
|
66
|
+
/**
|
|
67
|
+
* The immutable AST node being rendered.
|
|
68
|
+
*/
|
|
69
|
+
node: TNode;
|
|
70
|
+
/**
|
|
71
|
+
* Already-rendered child content for container nodes.
|
|
72
|
+
*/
|
|
73
|
+
children: ReactNode;
|
|
74
|
+
/**
|
|
75
|
+
* Default element tree produced by `StreamingMarkdownRenderer` for this node.
|
|
76
|
+
*/
|
|
77
|
+
defaultNode: ReactNode;
|
|
78
|
+
/**
|
|
79
|
+
* Citation metadata when rendering a citation node.
|
|
80
|
+
*/
|
|
81
|
+
citation?: StreamingMarkdownCitationRenderData;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Custom renderer callback for a specific streaming markdown node.
|
|
85
|
+
*
|
|
86
|
+
* @public
|
|
87
|
+
*/
|
|
88
|
+
type StreamingMarkdownNodeRenderer<TNode extends StreamingMarkdownAstNode = StreamingMarkdownAstNode> = (props: StreamingMarkdownNodeRendererProps<TNode>) => ReactNode;
|
|
89
|
+
/**
|
|
90
|
+
* Render context supplied to caret renderer callbacks.
|
|
91
|
+
*
|
|
92
|
+
* @public
|
|
93
|
+
*/
|
|
94
|
+
interface StreamingMarkdownCaretRenderProps {
|
|
95
|
+
/**
|
|
96
|
+
* Whether the parser state is complete for the current source text.
|
|
97
|
+
*/
|
|
98
|
+
isComplete: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* The deepest currently open AST node, if any.
|
|
101
|
+
*/
|
|
102
|
+
openNode: StreamingMarkdownAstNode | null;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Callback type for custom caret renderers.
|
|
106
|
+
*
|
|
107
|
+
* @public
|
|
108
|
+
*/
|
|
109
|
+
type StreamingMarkdownCaretRenderer = (props: StreamingMarkdownCaretRenderProps) => ReactNode;
|
|
110
|
+
/**
|
|
111
|
+
* Supported caret prop values.
|
|
112
|
+
*
|
|
113
|
+
* @public
|
|
114
|
+
*/
|
|
115
|
+
type StreamingMarkdownCaret = boolean | ReactNode | StreamingMarkdownCaretRenderer;
|
|
116
|
+
type StreamingMarkdownNodeOfType<TNodeType extends StreamingMarkdownNodeType> = Extract<StreamingMarkdownAstNode, {
|
|
117
|
+
type: TNodeType;
|
|
118
|
+
}>;
|
|
119
|
+
/**
|
|
120
|
+
* Supported key names for `nodeRenderers`.
|
|
121
|
+
*
|
|
122
|
+
* @public
|
|
123
|
+
*/
|
|
124
|
+
type StreamingMarkdownNodeRendererKey = "node" | "document" | "paragraph" | "heading" | "blockquote" | "list" | "listItem" | "codeBlock" | "table" | "tableRow" | "tableCell" | "thematicBreak" | "text" | "em" | "strong" | "strikethrough" | "inlineCode" | "softBreak" | "hardBreak" | "image" | "link" | "autolink" | "citation";
|
|
125
|
+
type StreamingMarkdownNodeByRendererKey = {
|
|
126
|
+
node: StreamingMarkdownAstNode;
|
|
127
|
+
document: StreamingMarkdownNodeOfType<"document">;
|
|
128
|
+
paragraph: StreamingMarkdownNodeOfType<"paragraph">;
|
|
129
|
+
heading: StreamingMarkdownNodeOfType<"heading">;
|
|
130
|
+
blockquote: StreamingMarkdownNodeOfType<"blockquote">;
|
|
131
|
+
list: StreamingMarkdownNodeOfType<"list">;
|
|
132
|
+
listItem: StreamingMarkdownNodeOfType<"list-item">;
|
|
133
|
+
codeBlock: StreamingMarkdownNodeOfType<"code-block">;
|
|
134
|
+
table: StreamingMarkdownNodeOfType<"table">;
|
|
135
|
+
tableRow: StreamingMarkdownNodeOfType<"table-row">;
|
|
136
|
+
tableCell: StreamingMarkdownNodeOfType<"table-cell">;
|
|
137
|
+
thematicBreak: StreamingMarkdownNodeOfType<"thematic-break">;
|
|
138
|
+
text: StreamingMarkdownNodeOfType<"text">;
|
|
139
|
+
em: StreamingMarkdownNodeOfType<"em">;
|
|
140
|
+
strong: StreamingMarkdownNodeOfType<"strong">;
|
|
141
|
+
strikethrough: StreamingMarkdownNodeOfType<"strikethrough">;
|
|
142
|
+
inlineCode: StreamingMarkdownNodeOfType<"inline-code">;
|
|
143
|
+
softBreak: StreamingMarkdownNodeOfType<"soft-break">;
|
|
144
|
+
hardBreak: StreamingMarkdownNodeOfType<"hard-break">;
|
|
145
|
+
image: StreamingMarkdownNodeOfType<"image">;
|
|
146
|
+
link: StreamingMarkdownNodeOfType<"link">;
|
|
147
|
+
autolink: StreamingMarkdownNodeOfType<"autolink">;
|
|
148
|
+
citation: StreamingMarkdownNodeOfType<"citation">;
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Custom renderers keyed by camelCase node names.
|
|
152
|
+
*
|
|
153
|
+
* @public
|
|
154
|
+
*/
|
|
155
|
+
type StreamingMarkdownNodeRenderers = Partial<{ [TKey in StreamingMarkdownNodeRendererKey]: StreamingMarkdownNodeRenderer<StreamingMarkdownNodeByRendererKey[TKey]> }>;
|
|
156
|
+
/**
|
|
157
|
+
* Helper for creating typed streaming markdown node renderer maps.
|
|
158
|
+
*
|
|
159
|
+
* @public
|
|
160
|
+
*/
|
|
161
|
+
declare function createStreamingMarkdownNodeRenderers<T extends StreamingMarkdownNodeRenderers>(renderers: T): T;
|
|
162
|
+
/**
|
|
163
|
+
* React renderer for streaming markdown parser output.
|
|
164
|
+
*
|
|
165
|
+
* @public
|
|
166
|
+
*/
|
|
167
|
+
declare function StreamingMarkdownRenderer({
|
|
168
|
+
children,
|
|
169
|
+
options,
|
|
170
|
+
isComplete,
|
|
171
|
+
caret,
|
|
172
|
+
className,
|
|
173
|
+
onLinkClick,
|
|
174
|
+
onCitationClick,
|
|
175
|
+
nodeRenderers
|
|
176
|
+
}: StreamingMarkdownRendererProps): react_jsx_runtime0.JSX.Element;
|
|
177
|
+
//#endregion
|
|
178
|
+
//#region src/react/use-streaming-markdown-parser.d.ts
|
|
179
|
+
/**
|
|
180
|
+
* Internal prop-driven hook for streaming markdown parsing in React.
|
|
181
|
+
*
|
|
182
|
+
* @param text - Full markdown text that typically grows over time.
|
|
183
|
+
* @param options - Optional parser option overrides.
|
|
184
|
+
* @param isCompleteInput - When true, finalizes the parse state for the current text.
|
|
185
|
+
* @returns The current immutable streaming markdown parser state.
|
|
186
|
+
*/
|
|
187
|
+
declare function useStreamingMarkdownParser(text: string, options?: Partial<StreamingMarkdownParserOptions>, isCompleteInput?: boolean): StreamingMarkdownParserState;
|
|
188
|
+
//#endregion
|
|
189
|
+
export { type StreamingMarkdownCaret, type StreamingMarkdownCaretRenderProps, type StreamingMarkdownCaretRenderer, type StreamingMarkdownCitationRenderData, type StreamingMarkdownNodeRenderer, type StreamingMarkdownNodeRendererKey, type StreamingMarkdownNodeRendererProps, type StreamingMarkdownNodeRenderers, StreamingMarkdownRenderer, type StreamingMarkdownRendererProps, createStreamingMarkdownNodeRenderers, useStreamingMarkdownParser };
|
|
190
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/react/streaming-markdown-renderer.tsx","../../src/react/use-streaming-markdown-parser.tsx"],"mappings":";;;;;;;;AAkCA;;UAAiB,mCAAA;EACf,EAAA;EACA,MAAA;EACA,UAAA,GAAa,kBAAA;AAAA;;;;AAQf;;UAAiB,8BAAA;EASG;;;EALlB,QAAA;EA+BS;;;EA1BT,OAAA,GAAU,OAAA,CAAQ,8BAAA;EAoCN;;;EA/BZ,UAAA;EAsC8C;;;;;;;;EA5B9C,KAAA,GAAQ,sBAAA;EAUR;;;EALA,SAAA;EAOE;;;EAFF,WAAA,IACE,KAAA,EAAO,UAAA,CAAW,iBAAA,GAClB,GAAA,UACA,IAAA,EAAM,wBAAA;EAOC;;;EADT,eAAA,IACE,KAAA,EAAO,UAAA,CAAW,iBAAA,GAClB,QAAA,EAAU,mCAAA,EACV,IAAA,EAAM,wBAAA;EADN;;;EAOF,aAAA,GAAgB,8BAAA;AAAA;;;AAQlB;;;UAAiB,kCAAA,eACD,wBAAA,GAA2B,wBAAA;EAAA;;;EAKzC,IAAA,EAAM,KAAA;EAeK;;;EAVX,QAAA,EAAU,SAAA;EAVI;;;EAed,WAAA,EAAa,SAAA;EALb;;;EAUA,QAAA,GAAW,mCAAA;AAAA;;;;AAQb;;KAAY,6BAAA,eACI,wBAAA,GAA2B,wBAAA,KACtC,KAAA,EAAO,kCAAA,CAAmC,KAAA,MAAW,SAAA;;;;;;UAOzC,iCAAA;EAPkD;;;EAWjE,UAAA;EAXU;;;EAgBV,QAAA,EAAU,wBAAA;AAAA;;AATZ;;;;KAiBY,8BAAA,IACV,KAAA,EAAO,iCAAA,KACJ,SAAA;;;;;AAFL;KASY,sBAAA,aAER,SAAA,GACA,8BAAA;AAAA,KAEC,2BAAA,mBAA8C,yBAAA,IACjD,OAAA,CAAQ,wBAAA;EAA4B,IAAA,EAAM,SAAA;AAAA;;;;;AAN5C;KAaY,gCAAA;AAAA,KAyBP,kCAAA;EACH,IAAA,EAAM,wBAAA;EACN,QAAA,EAAU,2BAAA;EACV,SAAA,EAAW,2BAAA;EACX,OAAA,EAAS,2BAAA;EACT,UAAA,EAAY,2BAAA;EACZ,IAAA,EAAM,2BAAA;EACN,QAAA,EAAU,2BAAA;EACV,SAAA,EAAW,2BAAA;EACX,KAAA,EAAO,2BAAA;EACP,QAAA,EAAU,2BAAA;EACV,SAAA,EAAW,2BAAA;EACX,aAAA,EAAe,2BAAA;EACf,IAAA,EAAM,2BAAA;EACN,EAAA,EAAI,2BAAA;EACJ,MAAA,EAAQ,2BAAA;EACR,aAAA,EAAe,2BAAA;EACf,UAAA,EAAY,2BAAA;EACZ,SAAA,EAAW,2BAAA;EACX,SAAA,EAAW,2BAAA;EACX,KAAA,EAAO,2BAAA;EACP,IAAA,EAAM,2BAAA;EACN,QAAA,EAAU,2BAAA;EACV,QAAA,EAAU,2BAAA;AAAA;AAzBG;;;;;AAAA,KAiCH,8BAAA,GAAiC,OAAA,YAClC,gCAAA,GAAmC,6BAAA,CAC1C,kCAAA,CAAmC,IAAA;;;;;;iBASvB,oCAAA,WACJ,8BAAA,CAAA,CACV,SAAA,EAAW,CAAA,GAAI,CAAA;;;;;;iBA8rBD,yBAAA,CAAA;EACd,QAAA;EACA,OAAA;EACA,UAAA;EACA,KAAA;EACA,SAAA;EACA,WAAA;EACA,eAAA;EACA;AAAA,GACC,8BAAA,GAA8B,kBAAA,CAAA,GAAA,CAAA,OAAA;;;;;;;AAh6BjC;;;;iBC4GgB,0BAAA,CACd,IAAA,UACA,OAAA,GAAU,OAAA,CAAQ,8BAAA,GAClB,eAAA,aACC,4BAAA"}
|