@dust-tt/sparkle 0.2.637 → 0.2.638-rc-1
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/dist/cjs/index.js +1 -1
- package/dist/esm/components/LoadingBlock.js +1 -1
- package/dist/esm/components/LoadingBlock.js.map +1 -1
- package/dist/esm/components/markdown/Markdown.d.ts +14 -0
- package/dist/esm/components/markdown/Markdown.d.ts.map +1 -1
- package/dist/esm/components/markdown/Markdown.js +18 -7
- package/dist/esm/components/markdown/Markdown.js.map +1 -1
- package/dist/esm/components/streaming/BlockStreamer.d.ts +8 -0
- package/dist/esm/components/streaming/BlockStreamer.d.ts.map +1 -0
- package/dist/esm/components/streaming/BlockStreamer.js +40 -0
- package/dist/esm/components/streaming/BlockStreamer.js.map +1 -0
- package/dist/esm/components/streaming/StreamingListItem.d.ts +14 -0
- package/dist/esm/components/streaming/StreamingListItem.d.ts.map +1 -0
- package/dist/esm/components/streaming/StreamingListItem.js +93 -0
- package/dist/esm/components/streaming/StreamingListItem.js.map +1 -0
- package/dist/esm/components/streaming/StreamingMarkdown.d.ts +5 -0
- package/dist/esm/components/streaming/StreamingMarkdown.d.ts.map +1 -0
- package/dist/esm/components/streaming/StreamingMarkdown.js +80 -0
- package/dist/esm/components/streaming/StreamingMarkdown.js.map +1 -0
- package/dist/esm/components/streaming/StreamingParagraph.d.ts +14 -0
- package/dist/esm/components/streaming/StreamingParagraph.d.ts.map +1 -0
- package/dist/esm/components/streaming/StreamingParagraph.js +41 -0
- package/dist/esm/components/streaming/StreamingParagraph.js.map +1 -0
- package/dist/esm/components/streaming/index.d.ts +3 -0
- package/dist/esm/components/streaming/index.d.ts.map +1 -0
- package/dist/esm/components/streaming/index.js +2 -0
- package/dist/esm/components/streaming/index.js.map +1 -0
- package/dist/esm/components/streaming/markdownComponents.d.ts +11 -0
- package/dist/esm/components/streaming/markdownComponents.d.ts.map +1 -0
- package/dist/esm/components/streaming/markdownComponents.js +85 -0
- package/dist/esm/components/streaming/markdownComponents.js.map +1 -0
- package/dist/esm/components/streaming/types.d.ts +70 -0
- package/dist/esm/components/streaming/types.d.ts.map +1 -0
- package/dist/esm/components/streaming/types.js +10 -0
- package/dist/esm/components/streaming/types.js.map +1 -0
- package/dist/esm/components/streaming/utils.d.ts +18 -0
- package/dist/esm/components/streaming/utils.d.ts.map +1 -0
- package/dist/esm/components/streaming/utils.js +97 -0
- package/dist/esm/components/streaming/utils.js.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/stories/StreamingMarkdown.stories.d.ts +12 -0
- package/dist/esm/stories/StreamingMarkdown.stories.d.ts.map +1 -0
- package/dist/esm/stories/StreamingMarkdown.stories.js +620 -0
- package/dist/esm/stories/StreamingMarkdown.stories.js.map +1 -0
- package/dist/esm/styles/global.css +43 -0
- package/dist/esm/styles/tailwind.css +43 -0
- package/dist/sparkle.css +56 -0
- package/package.json +2 -1
- package/src/components/LoadingBlock.tsx +1 -1
- package/src/components/markdown/Markdown.tsx +35 -12
- package/src/components/streaming/BlockStreamer.tsx +61 -0
- package/src/components/streaming/StreamingListItem.tsx +176 -0
- package/src/components/streaming/StreamingMarkdown.tsx +126 -0
- package/src/components/streaming/StreamingParagraph.tsx +104 -0
- package/src/components/streaming/index.ts +2 -0
- package/src/components/streaming/markdownComponents.tsx +270 -0
- package/src/components/streaming/types.ts +72 -0
- package/src/components/streaming/utils.ts +126 -0
- package/src/index.ts +1 -0
- package/src/stories/StreamingMarkdown.stories.tsx +1454 -0
- package/src/styles/global.css +43 -0
- package/src/styles/tailwind.css +43 -0
|
@@ -3,7 +3,7 @@ import * as React from "react";
|
|
|
3
3
|
import { cn } from "../lib/utils";
|
|
4
4
|
function LoadingBlock(_a) {
|
|
5
5
|
var className = _a.className, props = __rest(_a, ["className"]);
|
|
6
|
-
return (React.createElement("div", __assign({ className: cn("s-animate-opacity-pulse s-rounded-md", "s-bg-muted dark:s-bg-muted-
|
|
6
|
+
return (React.createElement("div", __assign({ className: cn("s-animate-opacity-pulse s-rounded-md", "s-bg-muted dark:s-bg-muted-night", className) }, props)));
|
|
7
7
|
}
|
|
8
8
|
export { LoadingBlock };
|
|
9
9
|
//# sourceMappingURL=LoadingBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoadingBlock.js","sourceRoot":"","sources":["../../../src/components/LoadingBlock.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,SAAS,YAAY,CAAC,EAGiB;IAFrC,IAAA,SAAS,eAAA,EACN,KAAK,cAFY,aAGrB,CADS;IAER,OAAO,CACL,sCACE,SAAS,EAAE,EAAE,CACX,sCAAsC,EACtC,
|
|
1
|
+
{"version":3,"file":"LoadingBlock.js","sourceRoot":"","sources":["../../../src/components/LoadingBlock.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,SAAS,YAAY,CAAC,EAGiB;IAFrC,IAAA,SAAS,eAAA,EACN,KAAK,cAFY,aAGrB,CADS;IAER,OAAO,CACL,sCACE,SAAS,EAAE,EAAE,CACX,sCAAsC,EACtC,kCAAkC,EAClC,SAAS,CACV,IACG,KAAK,EACT,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { Components } from "react-markdown";
|
|
3
|
+
import type { ReactMarkdownProps } from "react-markdown/lib/ast-to-react";
|
|
3
4
|
import type { PluggableList } from "react-markdown/lib/react-markdown";
|
|
4
5
|
export declare function Markdown({ content, isStreaming, textColor, forcedTextSize, isLastMessage, additionalMarkdownComponents, additionalMarkdownPlugins, }: {
|
|
5
6
|
content: string;
|
|
@@ -10,4 +11,17 @@ export declare function Markdown({ content, isStreaming, textColor, forcedTextSi
|
|
|
10
11
|
additionalMarkdownComponents?: Components;
|
|
11
12
|
additionalMarkdownPlugins?: PluggableList;
|
|
12
13
|
}): React.JSX.Element;
|
|
14
|
+
export declare function LinkBlock({ href, children, }: {
|
|
15
|
+
href?: string;
|
|
16
|
+
children: React.ReactNode;
|
|
17
|
+
}): React.JSX.Element;
|
|
18
|
+
export declare function StrongBlock({ children }: {
|
|
19
|
+
children: React.ReactNode;
|
|
20
|
+
}): React.JSX.Element;
|
|
21
|
+
export declare function HrBlock(): React.JSX.Element;
|
|
22
|
+
export declare function ImgBlock(props: React.ImgHTMLAttributes<HTMLImageElement>): React.JSX.Element;
|
|
23
|
+
export type InputProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, "ref"> & ReactMarkdownProps & {
|
|
24
|
+
ref?: React.Ref<HTMLInputElement>;
|
|
25
|
+
};
|
|
26
|
+
export declare function Input({ type, checked, className, onChange, ref, ...props }: InputProps): React.JSX.Element;
|
|
13
27
|
//# sourceMappingURL=Markdown.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../../../src/components/markdown/Markdown.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../../../src/components/markdown/Markdown.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AA+CvE,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EACP,WAAmB,EACnB,SAA4D,EAC5D,cAAc,EACd,aAAqB,EACrB,4BAA4B,EAC5B,yBAAyB,GAC1B,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4BAA4B,CAAC,EAAE,UAAU,CAAC;IAC1C,yBAAyB,CAAC,EAAE,aAAa,CAAC;CAC3C,qBAoLA;AAED,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,qBAgBA;AAED,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBAMtE;AAED,wBAAgB,OAAO,sBAItB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,qBAWxE;AAED,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC,GAC/E,kBAAkB,GAAG;IACnB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;CACnC,CAAC;AAEJ,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,EACH,GAAG,KAAK,EACT,EAAE,UAAU,qBAiCZ"}
|
|
@@ -3,6 +3,7 @@ import { __assign, __read, __rest, __spreadArray } from "tslib";
|
|
|
3
3
|
import React, { useMemo } from "react";
|
|
4
4
|
import ReactMarkdown from "react-markdown";
|
|
5
5
|
import rehypeKatex from "rehype-katex";
|
|
6
|
+
import rehypeRaw from "rehype-raw";
|
|
6
7
|
import remarkDirective from "remark-directive";
|
|
7
8
|
import remarkGfm from "remark-gfm";
|
|
8
9
|
import remarkMath from "remark-math";
|
|
@@ -88,10 +89,7 @@ export function Markdown(_a) {
|
|
|
88
89
|
}, h6: function (_a) {
|
|
89
90
|
var children = _a.children;
|
|
90
91
|
return (React.createElement("h6", { className: cn("s-pb-1.5 s-pt-2.5", forcedTextSize ? forcedTextSize : sizes.h6, textColor) }, children));
|
|
91
|
-
}, strong:
|
|
92
|
-
var children = _a.children;
|
|
93
|
-
return (React.createElement("strong", { className: "s-font-semibold s-text-foreground dark:s-text-foreground-night" }, children));
|
|
94
|
-
}, input: Input, blockquote: BlockquoteBlock, hr: function () { return (React.createElement("div", { className: "s-my-6 s-border-b s-border-primary-150 dark:s-border-primary-150-night" })); }, code: CodeBlockWithExtendedSupport }, additionalMarkdownComponents);
|
|
92
|
+
}, strong: StrongBlock, input: Input, blockquote: BlockquoteBlock, hr: HrBlock, img: ImgBlock, code: CodeBlockWithExtendedSupport }, additionalMarkdownComponents);
|
|
95
93
|
}, [textColor, additionalMarkdownComponents]);
|
|
96
94
|
var markdownPlugins = useMemo(function () { return __spreadArray(__spreadArray([
|
|
97
95
|
remarkDirective,
|
|
@@ -100,7 +98,7 @@ export function Markdown(_a) {
|
|
|
100
98
|
], __read((additionalMarkdownPlugins || [])), false), [
|
|
101
99
|
showUnsupportedDirective,
|
|
102
100
|
], false); }, [additionalMarkdownPlugins]);
|
|
103
|
-
var rehypePlugins = [[rehypeKatex, { output: "mathml" }]];
|
|
101
|
+
var rehypePlugins = [[rehypeKatex, { output: "mathml" }], rehypeRaw];
|
|
104
102
|
try {
|
|
105
103
|
return (React.createElement("div", { className: cn("s-w-full", isStreaming ? "s-blinking-cursor" : "") },
|
|
106
104
|
React.createElement(MarkdownContentContext.Provider, { value: {
|
|
@@ -116,11 +114,24 @@ export function Markdown(_a) {
|
|
|
116
114
|
processedContent));
|
|
117
115
|
}
|
|
118
116
|
}
|
|
119
|
-
function LinkBlock(_a) {
|
|
117
|
+
export function LinkBlock(_a) {
|
|
120
118
|
var href = _a.href, children = _a.children;
|
|
121
119
|
return (React.createElement("a", { href: href, target: "_blank", rel: "noopener noreferrer", className: cn("s-break-all s-font-semibold s-transition-all s-duration-200 s-ease-in-out hover:s-underline", "s-text-highlight dark:s-text-highlight-night", "hover:s-text-highlight-400 dark:hover:s-text-highlight-400-night", "active:s-text-highlight-dark dark:active:s-text-highlight-dark-night") }, children));
|
|
122
120
|
}
|
|
123
|
-
function
|
|
121
|
+
export function StrongBlock(_a) {
|
|
122
|
+
var children = _a.children;
|
|
123
|
+
return (React.createElement("strong", { className: "s-font-semibold s-text-foreground dark:s-text-foreground-night" }, children));
|
|
124
|
+
}
|
|
125
|
+
export function HrBlock() {
|
|
126
|
+
return (React.createElement("div", { className: "s-my-6 s-border-b s-border-primary-150 dark:s-border-primary-150-night" }));
|
|
127
|
+
}
|
|
128
|
+
export function ImgBlock(props) {
|
|
129
|
+
return (React.createElement("img", __assign({}, props, { className: "s-h-auto s-max-w-full", style: {
|
|
130
|
+
maxWidth: "100%",
|
|
131
|
+
height: "auto",
|
|
132
|
+
} })));
|
|
133
|
+
}
|
|
134
|
+
export function Input(_a) {
|
|
124
135
|
var type = _a.type, checked = _a.checked, className = _a.className, onChange = _a.onChange, ref = _a.ref, props = __rest(_a, ["type", "checked", "className", "onChange", "ref"]);
|
|
125
136
|
var inputRef = React.useRef(null);
|
|
126
137
|
React.useImperativeHandle(ref, function () { return inputRef.current; });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../../../src/components/markdown/Markdown.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../../../src/components/markdown/Markdown.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { BlockStreamerProps } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* BlockStreamer component handles the token-based streaming animation.
|
|
5
|
+
* It tracks new content as discrete diffs that animate independently.
|
|
6
|
+
*/
|
|
7
|
+
export declare const BlockStreamer: React.FC<BlockStreamerProps>;
|
|
8
|
+
//# sourceMappingURL=BlockStreamer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockStreamer.d.ts","sourceRoot":"","sources":["../../../../src/components/streaming/BlockStreamer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAoDtD,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* BlockStreamer component handles the token-based streaming animation.
|
|
4
|
+
* It tracks new content as discrete diffs that animate independently.
|
|
5
|
+
*/
|
|
6
|
+
export var BlockStreamer = function (_a) {
|
|
7
|
+
var text = _a.text, _b = _a.animate, animate = _b === void 0 ? true : _b, animationName = _a.animationName, animationDuration = _a.animationDuration, animationTimingFunction = _a.animationTimingFunction;
|
|
8
|
+
var prevRef = React.useRef("");
|
|
9
|
+
var tokensRef = React.useRef([]);
|
|
10
|
+
// Keep tokens up to date so initial render is visible.
|
|
11
|
+
var prev = prevRef.current;
|
|
12
|
+
if (!prev || text.length < prev.length || !text.startsWith(prev)) {
|
|
13
|
+
tokensRef.current = text ? [{ text: text, key: 0 }] : [];
|
|
14
|
+
prevRef.current = text;
|
|
15
|
+
}
|
|
16
|
+
else if (text !== prev) {
|
|
17
|
+
var suffix = text.slice(prev.length);
|
|
18
|
+
if (suffix.length > 0) {
|
|
19
|
+
tokensRef.current.push({
|
|
20
|
+
text: suffix,
|
|
21
|
+
key: tokensRef.current.length,
|
|
22
|
+
});
|
|
23
|
+
prevRef.current = text;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return (React.createElement(React.Fragment, null, tokensRef.current.map(function (t) { return (React.createElement("span", { key: t.key, style: animate
|
|
27
|
+
? {
|
|
28
|
+
whiteSpace: "pre-wrap",
|
|
29
|
+
display: "inline",
|
|
30
|
+
animationName: animationName,
|
|
31
|
+
animationDuration: animationDuration,
|
|
32
|
+
animationTimingFunction: animationTimingFunction,
|
|
33
|
+
animationIterationCount: 1,
|
|
34
|
+
}
|
|
35
|
+
: {
|
|
36
|
+
whiteSpace: "pre-wrap",
|
|
37
|
+
display: "inline",
|
|
38
|
+
} }, t.text)); })));
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=BlockStreamer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockStreamer.js","sourceRoot":"","sources":["../../../../src/components/streaming/BlockStreamer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B;;;GAGG;AACH,MAAM,CAAC,IAAM,aAAa,GAAiC,UAAC,EAM3D;QALC,IAAI,UAAA,EACJ,eAAc,EAAd,OAAO,mBAAG,IAAI,KAAA,EACd,aAAa,mBAAA,EACb,iBAAiB,uBAAA,EACjB,uBAAuB,6BAAA;IAEvB,IAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAS,EAAE,CAAC,CAAC;IACzC,IAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAkC,EAAE,CAAC,CAAC;IAEpE,uDAAuD;IACvD,IAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAC7B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACjE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,MAAA,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IACzB,CAAC;SAAM,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACzB,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;gBACrB,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM;aAC9B,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,CACL,0CACG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAC5B,8BACE,GAAG,EAAE,CAAC,CAAC,GAAG,EACV,KAAK,EACH,OAAO;YACL,CAAC,CAAC;gBACE,UAAU,EAAE,UAAU;gBACtB,OAAO,EAAE,QAAQ;gBACjB,aAAa,eAAA;gBACb,iBAAiB,mBAAA;gBACjB,uBAAuB,yBAAA;gBACvB,uBAAuB,EAAE,CAAC;aAC3B;YACH,CAAC,CAAC;gBACE,UAAU,EAAE,UAAU;gBACtB,OAAO,EAAE,QAAQ;aAClB,IAGN,CAAC,CAAC,IAAI,CACF,CACR,EArB6B,CAqB7B,CAAC,CACD,CACJ,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { ComponentProps } from "../../components/streaming/types";
|
|
3
|
+
interface StreamingListItemProps extends ComponentProps {
|
|
4
|
+
isStreaming: boolean;
|
|
5
|
+
animationName: string;
|
|
6
|
+
animationDuration: string;
|
|
7
|
+
animationTimingFunction: string;
|
|
8
|
+
textColor?: string;
|
|
9
|
+
forcedTextSize?: string;
|
|
10
|
+
sizes: Record<string, string>;
|
|
11
|
+
}
|
|
12
|
+
export declare function StreamingListItem({ node, isStreaming, animationName, animationDuration, animationTimingFunction, textColor, forcedTextSize, sizes, ...props }: StreamingListItemProps): React.JSX.Element;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=StreamingListItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamingListItem.d.ts","sourceRoot":"","sources":["../../../../src/components/streaming/StreamingListItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAU1E,UAAU,sBAAuB,SAAQ,cAAc;IACrD,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,SAAS,EACT,cAAc,EACd,KAAK,EACL,GAAG,KAAK,EACT,EAAE,sBAAsB,qBA6IxB"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { __assign, __rest } from "tslib";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { LiBlock } from "../../components/markdown/List";
|
|
4
|
+
import { BlockStreamer } from "../../components/streaming/BlockStreamer";
|
|
5
|
+
import { getElementProps, isCodeElement, isListElement, isReactElementWithProps, isTableElement, keyOf, } from "../../components/streaming/utils";
|
|
6
|
+
export function StreamingListItem(_a) {
|
|
7
|
+
var node = _a.node, isStreaming = _a.isStreaming, animationName = _a.animationName, animationDuration = _a.animationDuration, animationTimingFunction = _a.animationTimingFunction, textColor = _a.textColor, forcedTextSize = _a.forcedTextSize, sizes = _a.sizes, props = __rest(_a, ["node", "isStreaming", "animationName", "animationDuration", "animationTimingFunction", "textColor", "forcedTextSize", "sizes"]);
|
|
8
|
+
var bk = keyOf(node, "li");
|
|
9
|
+
// Process list item children to handle text streaming and nested lists.
|
|
10
|
+
var processChildren = function (children) {
|
|
11
|
+
if (!children) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
// If it's just a string, animate it.
|
|
15
|
+
if (typeof children === "string") {
|
|
16
|
+
return (React.createElement(BlockStreamer, { text: children, animate: isStreaming, animationName: animationName, animationDuration: animationDuration, animationTimingFunction: animationTimingFunction }));
|
|
17
|
+
}
|
|
18
|
+
// Safety check: if it's a non-React object, don't try to process it.
|
|
19
|
+
if (typeof children === "object" &&
|
|
20
|
+
children !== null &&
|
|
21
|
+
!React.isValidElement(children) &&
|
|
22
|
+
!Array.isArray(children)) {
|
|
23
|
+
console.warn("Unexpected object in processChildren:", children);
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
// If it's an array, process each child
|
|
27
|
+
if (Array.isArray(children)) {
|
|
28
|
+
// Filter out empty strings and newlines that might cause spacing.
|
|
29
|
+
var filtered = children.filter(function (child) { return !(typeof child === "string" && child.trim() === ""); });
|
|
30
|
+
return filtered.map(function (child, idx) {
|
|
31
|
+
if (typeof child === "string") {
|
|
32
|
+
return (React.createElement(BlockStreamer, { key: idx, text: child, animate: isStreaming, animationName: animationName, animationDuration: animationDuration, animationTimingFunction: animationTimingFunction }));
|
|
33
|
+
}
|
|
34
|
+
// Nested lists are preserved as-is (they'll handle their own animation).
|
|
35
|
+
if (React.isValidElement(child) && isListElement(child)) {
|
|
36
|
+
return child;
|
|
37
|
+
}
|
|
38
|
+
// Table elements are preserved as-is.
|
|
39
|
+
if (isTableElement(child)) {
|
|
40
|
+
return child;
|
|
41
|
+
}
|
|
42
|
+
// For paragraph elements inside list items, extract and animate their content.
|
|
43
|
+
if (isReactElementWithProps(child) && child.type === "p") {
|
|
44
|
+
var props_1 = getElementProps(child);
|
|
45
|
+
return processChildren(props_1.children);
|
|
46
|
+
}
|
|
47
|
+
// Code elements (including pre blocks) should be returned as-is.
|
|
48
|
+
if (isCodeElement(child)) {
|
|
49
|
+
return child;
|
|
50
|
+
}
|
|
51
|
+
// Other elements: recursively process their children.
|
|
52
|
+
if (isReactElementWithProps(child)) {
|
|
53
|
+
var childProps = getElementProps(child);
|
|
54
|
+
// Don't process children for certain element types that handle their own content
|
|
55
|
+
if (isCodeElement(child) || isTableElement(child)) {
|
|
56
|
+
return child;
|
|
57
|
+
}
|
|
58
|
+
// Skip processing if children is already a string (don't double-process)
|
|
59
|
+
if (typeof childProps.children === "string") {
|
|
60
|
+
return child;
|
|
61
|
+
}
|
|
62
|
+
// Clone the element with processed children
|
|
63
|
+
return React.cloneElement(child, __assign(__assign({}, childProps), { key: idx }), processChildren(childProps.children));
|
|
64
|
+
}
|
|
65
|
+
// If it's an object but not a React element, return empty string to avoid [object Object]
|
|
66
|
+
if (typeof child === "object" && child !== null) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
return child;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
// Single React element
|
|
73
|
+
if (React.isValidElement(children)) {
|
|
74
|
+
if (isListElement(children)) {
|
|
75
|
+
return children;
|
|
76
|
+
}
|
|
77
|
+
// For paragraph elements, extract their content
|
|
78
|
+
if (children.type === "p") {
|
|
79
|
+
var props_2 = getElementProps(children);
|
|
80
|
+
return processChildren(props_2.children);
|
|
81
|
+
}
|
|
82
|
+
// Code and table elements should be returned as-is
|
|
83
|
+
if (isCodeElement(children) || isTableElement(children)) {
|
|
84
|
+
return children;
|
|
85
|
+
}
|
|
86
|
+
var childProps = getElementProps(children);
|
|
87
|
+
return React.cloneElement(children, childProps, processChildren(childProps.children));
|
|
88
|
+
}
|
|
89
|
+
return children;
|
|
90
|
+
};
|
|
91
|
+
return (React.createElement(LiBlock, { key: bk, textColor: textColor || "", textSize: forcedTextSize || sizes.p, className: "s-stream-marker" }, processChildren(props.children)));
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=StreamingListItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamingListItem.js","sourceRoot":"","sources":["../../../../src/components/streaming/StreamingListItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamingMarkdown.d.ts","sourceRoot":"","sources":["../../../../src/components/streaming/StreamingMarkdown.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAevC,OAAO,KAAK,EAAyB,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAG7E,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAwG9D,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { __read, __spreadArray } from "tslib";
|
|
3
|
+
import React, { useMemo } from "react";
|
|
4
|
+
import ReactMarkdown from "react-markdown";
|
|
5
|
+
import rehypeKatex from "rehype-katex";
|
|
6
|
+
import rehypeRaw from "rehype-raw";
|
|
7
|
+
import remarkDirective from "remark-directive";
|
|
8
|
+
import remarkGfm from "remark-gfm";
|
|
9
|
+
import remarkMath from "remark-math";
|
|
10
|
+
import { Chip } from "../../components";
|
|
11
|
+
import { MarkdownContentContext } from "../../components/markdown/MarkdownContentContext";
|
|
12
|
+
import { sanitizeContent } from "../../components/markdown/utils";
|
|
13
|
+
import { createMarkdownComponents } from "./markdownComponents";
|
|
14
|
+
import { showUnsupportedDirective } from "./utils";
|
|
15
|
+
export var StreamingMarkdown = function (_a) {
|
|
16
|
+
var content = _a.content, animationName = _a.animationName, _b = _a.animationDuration, animationDuration = _b === void 0 ? "600ms" : _b, _c = _a.animationTimingFunction, animationTimingFunction = _c === void 0 ? "ease-out" : _c, _d = _a.animationCurve, animationCurve = _d === void 0 ? "linear" : _d, _e = _a.isStreaming, isStreaming = _e === void 0 ? true : _e, _f = _a.isLastMessage, isLastMessage = _f === void 0 ? false : _f, _g = _a.textColor, textColor = _g === void 0 ? "s-text-foreground dark:s-text-foreground-night" : _g, forcedTextSize = _a.forcedTextSize, additionalMarkdownComponents = _a.additionalMarkdownComponents, additionalMarkdownPlugins = _a.additionalMarkdownPlugins;
|
|
17
|
+
var effectiveAnimationName = useMemo(function () {
|
|
18
|
+
if (animationName) {
|
|
19
|
+
return animationName;
|
|
20
|
+
}
|
|
21
|
+
switch (animationCurve) {
|
|
22
|
+
case "accelerate":
|
|
23
|
+
return "s-stream-fadeInAccelerate";
|
|
24
|
+
case "accelerate-fast":
|
|
25
|
+
return "s-stream-fadeInAccelerateFast";
|
|
26
|
+
case "custom":
|
|
27
|
+
return "s-stream-fadeInCustom";
|
|
28
|
+
case "linear":
|
|
29
|
+
default:
|
|
30
|
+
return "s-stream-fadeIn";
|
|
31
|
+
}
|
|
32
|
+
}, [animationName, animationCurve]);
|
|
33
|
+
var processedContent = useMemo(function () { return sanitizeContent(content); }, [content]);
|
|
34
|
+
var processContext = useMemo(function () { return ({
|
|
35
|
+
isStreaming: isStreaming,
|
|
36
|
+
animationName: effectiveAnimationName,
|
|
37
|
+
animationDuration: animationDuration,
|
|
38
|
+
animationTimingFunction: animationTimingFunction,
|
|
39
|
+
}); }, [
|
|
40
|
+
isStreaming,
|
|
41
|
+
effectiveAnimationName,
|
|
42
|
+
animationDuration,
|
|
43
|
+
animationTimingFunction,
|
|
44
|
+
]);
|
|
45
|
+
var markdownComponents = useMemo(function () {
|
|
46
|
+
return createMarkdownComponents({
|
|
47
|
+
textColor: textColor,
|
|
48
|
+
forcedTextSize: forcedTextSize,
|
|
49
|
+
additionalMarkdownComponents: additionalMarkdownComponents,
|
|
50
|
+
processContext: processContext,
|
|
51
|
+
});
|
|
52
|
+
}, [textColor, forcedTextSize, additionalMarkdownComponents, processContext]);
|
|
53
|
+
var markdownPlugins = useMemo(function () { return __spreadArray(__spreadArray([
|
|
54
|
+
remarkDirective,
|
|
55
|
+
remarkGfm,
|
|
56
|
+
[remarkMath, { singleDollarTextMath: false }]
|
|
57
|
+
], __read((additionalMarkdownPlugins || [])), false), [
|
|
58
|
+
showUnsupportedDirective,
|
|
59
|
+
], false); }, [additionalMarkdownPlugins]);
|
|
60
|
+
var rehypePlugins = [
|
|
61
|
+
[rehypeKatex, { output: "mathml" }],
|
|
62
|
+
rehypeRaw,
|
|
63
|
+
];
|
|
64
|
+
try {
|
|
65
|
+
return (React.createElement("div", { className: "s-w-full" },
|
|
66
|
+
React.createElement(MarkdownContentContext.Provider, { value: {
|
|
67
|
+
content: processedContent,
|
|
68
|
+
isStreaming: isStreaming,
|
|
69
|
+
isLastMessage: isLastMessage,
|
|
70
|
+
} },
|
|
71
|
+
React.createElement(ReactMarkdown, { linkTarget: "_blank", components: markdownComponents, remarkPlugins: markdownPlugins, rehypePlugins: rehypePlugins }, processedContent))));
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
return (React.createElement("div", { className: "s-w-full" },
|
|
75
|
+
React.createElement(Chip, { color: "warning" }, "There was an error parsing this markdown content"),
|
|
76
|
+
processedContent));
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
export default StreamingMarkdown;
|
|
80
|
+
//# sourceMappingURL=StreamingMarkdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamingMarkdown.js","sourceRoot":"","sources":["../../../../src/components/streaming/StreamingMarkdown.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { ComponentProps } from "../../components/streaming/types";
|
|
3
|
+
interface StreamingParagraphProps extends ComponentProps {
|
|
4
|
+
isStreaming: boolean;
|
|
5
|
+
animationName: string;
|
|
6
|
+
animationDuration: string;
|
|
7
|
+
animationTimingFunction: string;
|
|
8
|
+
textColor?: string;
|
|
9
|
+
forcedTextSize?: string;
|
|
10
|
+
sizes: Record<string, string>;
|
|
11
|
+
}
|
|
12
|
+
export declare function StreamingParagraph({ node, isStreaming, animationName, animationDuration, animationTimingFunction, textColor, forcedTextSize, sizes, ...props }: StreamingParagraphProps): React.JSX.Element;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=StreamingParagraph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamingParagraph.d.ts","sourceRoot":"","sources":["../../../../src/components/streaming/StreamingParagraph.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAO1E,UAAU,uBAAwB,SAAQ,cAAc;IACtD,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,SAAS,EACT,cAAc,EACd,KAAK,EACL,GAAG,KAAK,EACT,EAAE,uBAAuB,qBAwEzB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { __assign, __rest } from "tslib";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { ParagraphBlock } from "../../components/markdown/ParagraphBlock";
|
|
4
|
+
import { BlockStreamer } from "../../components/streaming/BlockStreamer";
|
|
5
|
+
import { getElementProps, isReactElementWithProps, keyOf, } from "../../components/streaming/utils";
|
|
6
|
+
export function StreamingParagraph(_a) {
|
|
7
|
+
var node = _a.node, isStreaming = _a.isStreaming, animationName = _a.animationName, animationDuration = _a.animationDuration, animationTimingFunction = _a.animationTimingFunction, textColor = _a.textColor, forcedTextSize = _a.forcedTextSize, sizes = _a.sizes, props = __rest(_a, ["node", "isStreaming", "animationName", "animationDuration", "animationTimingFunction", "textColor", "forcedTextSize", "sizes"]);
|
|
8
|
+
var bk = keyOf(node, "p");
|
|
9
|
+
// Process children to handle mixed content (text, bold, italic, etc.).
|
|
10
|
+
var processChildren = function (children) {
|
|
11
|
+
if (!children) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
// If it's just a string, stream it.
|
|
15
|
+
if (typeof children === "string") {
|
|
16
|
+
// return createBlockStreamer(children);
|
|
17
|
+
return (React.createElement(BlockStreamer, { text: children, animate: isStreaming, animationName: animationName, animationDuration: animationDuration, animationTimingFunction: animationTimingFunction }));
|
|
18
|
+
}
|
|
19
|
+
// If it's an array, process each child.
|
|
20
|
+
if (Array.isArray(children)) {
|
|
21
|
+
return children.map(function (child, idx) {
|
|
22
|
+
if (typeof child === "string") {
|
|
23
|
+
return (React.createElement(BlockStreamer, { key: idx, text: child, animate: isStreaming, animationName: animationName, animationDuration: animationDuration, animationTimingFunction: animationTimingFunction }));
|
|
24
|
+
}
|
|
25
|
+
// React elements (strong, em, code, etc.) - recursively process their children.
|
|
26
|
+
if (isReactElementWithProps(child)) {
|
|
27
|
+
var childProps = getElementProps(child);
|
|
28
|
+
return React.cloneElement(child, __assign(__assign({}, childProps), { key: idx }), processChildren(childProps.children));
|
|
29
|
+
}
|
|
30
|
+
return child;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
if (isReactElementWithProps(children)) {
|
|
34
|
+
var childProps = getElementProps(children);
|
|
35
|
+
return React.cloneElement(children, childProps, processChildren(childProps.children));
|
|
36
|
+
}
|
|
37
|
+
return children;
|
|
38
|
+
};
|
|
39
|
+
return (React.createElement(ParagraphBlock, { key: bk, textColor: textColor || "", textSize: forcedTextSize || sizes.p }, processChildren(props.children)));
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=StreamingParagraph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamingParagraph.js","sourceRoot":"","sources":["../../../../src/components/streaming/StreamingParagraph.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAE5E,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,KAAK,GACN,MAAM,qCAAqC,CAAC;AAY7C,MAAM,UAAU,kBAAkB,CAAC,EAUT;IATxB,IAAA,IAAI,UAAA,EACJ,WAAW,iBAAA,EACX,aAAa,mBAAA,EACb,iBAAiB,uBAAA,EACjB,uBAAuB,6BAAA,EACvB,SAAS,eAAA,EACT,cAAc,oBAAA,EACd,KAAK,WAAA,EACF,KAAK,cATyB,gIAUlC,CADS;IAER,IAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAE5B,uEAAuE;IACvE,IAAM,eAAe,GAAG,UAAC,QAAyB;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YAAA,OAAO,IAAI,CAAC;QAAA,CAAC;QAE7B,oCAAoC;QACpC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,0CAA0C;YAC1C,OAAO,CACL,oBAAC,aAAa,IACZ,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB,EACpC,uBAAuB,EAAE,uBAAuB,GAChD,CACH,CAAC;QACJ,CAAC;QAED,wCAAwC;QACxC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC,GAAG,CAAC,UAAC,KAAK,EAAE,GAAG;gBAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC9B,OAAO,CACL,oBAAC,aAAa,IACZ,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB,EACpC,uBAAuB,EAAE,uBAAuB,GAChD,CACH,CAAC;gBACJ,CAAC;gBAED,gFAAgF;gBAChF,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnC,IAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;oBAC1C,OAAO,KAAK,CAAC,YAAY,CACvB,KAAK,wBACA,UAAU,KAAE,GAAG,EAAE,GAAG,KACzB,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,CACrC,CAAC;gBACJ,CAAC;gBAED,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,IAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC7C,OAAO,KAAK,CAAC,YAAY,CACvB,QAAQ,EACR,UAAU,EACV,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,CACrC,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,cAAc,IACb,GAAG,EAAE,EAAE,EACP,SAAS,EAAE,SAAS,IAAI,EAAE,EAC1B,QAAQ,EAAE,cAAc,IAAI,KAAK,CAAC,CAAC,IAElC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CACjB,CAClB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/streaming/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/streaming/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components } from "react-markdown";
|
|
2
|
+
import type { ProcessChildrenContext } from "./types";
|
|
3
|
+
interface CreateMarkdownComponentsParams {
|
|
4
|
+
textColor: string;
|
|
5
|
+
forcedTextSize?: string;
|
|
6
|
+
additionalMarkdownComponents?: Components;
|
|
7
|
+
processContext: ProcessChildrenContext;
|
|
8
|
+
}
|
|
9
|
+
export declare function createMarkdownComponents({ textColor, forcedTextSize, additionalMarkdownComponents, processContext, }: CreateMarkdownComponentsParams): Components;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=markdownComponents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdownComponents.d.ts","sourceRoot":"","sources":["../../../../src/components/streaming/markdownComponents.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAyBjD,OAAO,KAAK,EAAkB,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAItE,UAAU,8BAA8B;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4BAA4B,CAAC,EAAE,UAAU,CAAC;IAC1C,cAAc,EAAE,sBAAsB,CAAC;CACxC;AAED,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,cAAc,EACd,4BAA4B,EAC5B,cAAc,GACf,EAAE,8BAA8B,GAAG,UAAU,CAmO7C"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { __assign, __rest } from "tslib";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { BlockquoteBlock } from "../../components/markdown/BlockquoteBlock";
|
|
4
|
+
import { CodeBlockWithExtendedSupport } from "../../components/markdown/CodeBlockWithExtendedSupport";
|
|
5
|
+
import { OlBlock, UlBlock } from "../../components/markdown/List";
|
|
6
|
+
import { HrBlock, ImgBlock, Input, LinkBlock, StrongBlock, } from "../../components/markdown/Markdown";
|
|
7
|
+
import { PreBlock } from "../../components/markdown/PreBlock";
|
|
8
|
+
import { TableBlock, TableBodyBlock, TableDataBlock, TableHeadBlock, TableHeaderBlock, } from "../../components/markdown/TableBlock";
|
|
9
|
+
import { StreamingParagraph } from "../../components/streaming/StreamingParagraph";
|
|
10
|
+
import { cn } from "../../lib/utils";
|
|
11
|
+
import { BlockStreamer } from "./BlockStreamer";
|
|
12
|
+
import { StreamingListItem } from "./StreamingListItem";
|
|
13
|
+
import { MARKDOWN_TEXT_SIZES } from "./types";
|
|
14
|
+
import { flatten, keyOf } from "./utils";
|
|
15
|
+
export function createMarkdownComponents(_a) {
|
|
16
|
+
var textColor = _a.textColor, forcedTextSize = _a.forcedTextSize, additionalMarkdownComponents = _a.additionalMarkdownComponents, processContext = _a.processContext;
|
|
17
|
+
var isStreaming = processContext.isStreaming, animationName = processContext.animationName, animationDuration = processContext.animationDuration, animationTimingFunction = processContext.animationTimingFunction;
|
|
18
|
+
var sizes = MARKDOWN_TEXT_SIZES;
|
|
19
|
+
return __assign({
|
|
20
|
+
// Let parent blocks handle animation to keep identity stable
|
|
21
|
+
text: function (_a) {
|
|
22
|
+
var props = __rest(_a, []);
|
|
23
|
+
return props.children;
|
|
24
|
+
}, h1: function (_a) {
|
|
25
|
+
var node = _a.node, props = __rest(_a, ["node"]);
|
|
26
|
+
var text = flatten(props.children);
|
|
27
|
+
return (React.createElement("h1", __assign({ key: keyOf(node, "h1"), className: cn("s-pb-2 s-pt-4", forcedTextSize || sizes.h1, textColor) }, props),
|
|
28
|
+
React.createElement(BlockStreamer, { text: text, animate: isStreaming, animationName: animationName, animationDuration: animationDuration, animationTimingFunction: animationTimingFunction })));
|
|
29
|
+
}, h2: function (_a) {
|
|
30
|
+
var node = _a.node, props = __rest(_a, ["node"]);
|
|
31
|
+
var text = flatten(props.children);
|
|
32
|
+
return (React.createElement("h2", __assign({ key: keyOf(node, "h2"), className: cn("s-pb-2 s-pt-4", forcedTextSize || sizes.h2, textColor) }, props),
|
|
33
|
+
React.createElement(BlockStreamer, { text: text, animate: isStreaming, animationName: animationName, animationDuration: animationDuration, animationTimingFunction: animationTimingFunction })));
|
|
34
|
+
}, h3: function (_a) {
|
|
35
|
+
var node = _a.node, props = __rest(_a, ["node"]);
|
|
36
|
+
var text = flatten(props.children);
|
|
37
|
+
return (React.createElement("h3", __assign({ key: keyOf(node, "h3"), className: cn("s-pb-2 s-pt-4", forcedTextSize || sizes.h3, textColor) }, props),
|
|
38
|
+
React.createElement(BlockStreamer, { text: text, animate: isStreaming, animationName: animationName, animationDuration: animationDuration, animationTimingFunction: animationTimingFunction })));
|
|
39
|
+
}, h4: function (_a) {
|
|
40
|
+
var node = _a.node, props = __rest(_a, ["node"]);
|
|
41
|
+
var text = flatten(props.children);
|
|
42
|
+
return (React.createElement("h4", __assign({ key: keyOf(node, "h4"), className: cn("s-pb-2 s-pt-3", forcedTextSize || sizes.h4, textColor) }, props),
|
|
43
|
+
React.createElement(BlockStreamer, { text: text, animate: isStreaming, animationName: animationName, animationDuration: animationDuration, animationTimingFunction: animationTimingFunction })));
|
|
44
|
+
}, h5: function (_a) {
|
|
45
|
+
var node = _a.node, props = __rest(_a, ["node"]);
|
|
46
|
+
var text = flatten(props.children);
|
|
47
|
+
return (React.createElement("h5", __assign({ key: keyOf(node, "h5"), className: cn("s-pb-1.5 s-pt-2.5", forcedTextSize || sizes.h5, textColor) }, props),
|
|
48
|
+
React.createElement(BlockStreamer, { text: text, animate: isStreaming, animationName: animationName, animationDuration: animationDuration, animationTimingFunction: animationTimingFunction })));
|
|
49
|
+
}, h6: function (_a) {
|
|
50
|
+
var node = _a.node, props = __rest(_a, ["node"]);
|
|
51
|
+
var text = flatten(props.children);
|
|
52
|
+
return (React.createElement("h6", __assign({ key: keyOf(node, "h6"), className: cn("s-pb-1.5 s-pt-2.5", forcedTextSize || sizes.h6, textColor) }, props),
|
|
53
|
+
React.createElement(BlockStreamer, { text: text, animate: isStreaming, animationName: animationName, animationDuration: animationDuration, animationTimingFunction: animationTimingFunction })));
|
|
54
|
+
}, p: function (_a) {
|
|
55
|
+
var props = __rest(_a, []);
|
|
56
|
+
return (React.createElement(StreamingParagraph, __assign({}, props, { isStreaming: isStreaming, animationName: animationName, animationDuration: animationDuration, animationTimingFunction: animationTimingFunction, textColor: textColor, forcedTextSize: forcedTextSize, sizes: sizes })));
|
|
57
|
+
}, blockquote: function (_a) {
|
|
58
|
+
var props = __rest(_a, []);
|
|
59
|
+
return (React.createElement(BlockquoteBlock, null, props.children));
|
|
60
|
+
}, ul: function (_a) {
|
|
61
|
+
var props = __rest(_a, []);
|
|
62
|
+
return (React.createElement(UlBlock, { textColor: textColor, textSize: forcedTextSize || sizes.p }, props.children));
|
|
63
|
+
}, ol: function (_a) {
|
|
64
|
+
var start = _a.start, props = __rest(_a, ["start"]);
|
|
65
|
+
return (React.createElement(OlBlock, { start: start, textColor: textColor, textSize: forcedTextSize || sizes.p }, props.children));
|
|
66
|
+
}, li: function (props) { return (React.createElement(StreamingListItem, __assign({}, props, { isStreaming: isStreaming, animationName: animationName, animationDuration: animationDuration, animationTimingFunction: animationTimingFunction, textColor: textColor, forcedTextSize: forcedTextSize, sizes: sizes }))); }, a: function (_a) {
|
|
67
|
+
var props = __rest(_a, []);
|
|
68
|
+
return (React.createElement(LinkBlock, { href: props.href }, props.children));
|
|
69
|
+
}, strong: function (_a) {
|
|
70
|
+
var props = __rest(_a, []);
|
|
71
|
+
return (React.createElement(StrongBlock, null, props.children));
|
|
72
|
+
}, em: function (_a) {
|
|
73
|
+
var props = __rest(_a, []);
|
|
74
|
+
return React.createElement("em", __assign({}, props), props.children);
|
|
75
|
+
}, pre: function (_a) {
|
|
76
|
+
var children = _a.children;
|
|
77
|
+
return (React.createElement(PreBlock, null, children));
|
|
78
|
+
}, code: CodeBlockWithExtendedSupport, hr: HrBlock, img: ImgBlock, table: TableBlock, thead: TableHeadBlock, tbody: TableBodyBlock, th: TableHeaderBlock, td: function (_a) {
|
|
79
|
+
var props = __rest(_a, []);
|
|
80
|
+
var text = flatten(props.children);
|
|
81
|
+
return (React.createElement(TableDataBlock, null,
|
|
82
|
+
React.createElement(BlockStreamer, { text: text, animate: isStreaming, animationName: animationName, animationDuration: animationDuration, animationTimingFunction: animationTimingFunction })));
|
|
83
|
+
}, input: Input }, additionalMarkdownComponents);
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=markdownComponents.js.map
|