@dust-tt/sparkle 0.2.638-rc-1 → 0.2.638
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/AssistantCard.d.ts +1 -0
- package/dist/esm/components/AssistantCard.d.ts.map +1 -1
- package/dist/esm/components/AssistantCard.js +2 -2
- package/dist/esm/components/AssistantCard.js.map +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 +0 -14
- package/dist/esm/components/markdown/Markdown.d.ts.map +1 -1
- package/dist/esm/components/markdown/Markdown.js +7 -18
- package/dist/esm/components/markdown/Markdown.js.map +1 -1
- package/dist/esm/index.d.ts +0 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/styles/global.css +0 -43
- package/dist/esm/styles/tailwind.css +0 -43
- package/dist/sparkle.css +0 -56
- package/package.json +1 -2
- package/src/components/AssistantCard.tsx +3 -0
- package/src/components/LoadingBlock.tsx +1 -1
- package/src/components/markdown/Markdown.tsx +12 -35
- package/src/index.ts +0 -1
- package/src/styles/global.css +0 -43
- package/src/styles/tailwind.css +0 -43
- package/dist/esm/components/streaming/BlockStreamer.d.ts +0 -8
- package/dist/esm/components/streaming/BlockStreamer.d.ts.map +0 -1
- package/dist/esm/components/streaming/BlockStreamer.js +0 -40
- package/dist/esm/components/streaming/BlockStreamer.js.map +0 -1
- package/dist/esm/components/streaming/StreamingListItem.d.ts +0 -14
- package/dist/esm/components/streaming/StreamingListItem.d.ts.map +0 -1
- package/dist/esm/components/streaming/StreamingListItem.js +0 -93
- package/dist/esm/components/streaming/StreamingListItem.js.map +0 -1
- package/dist/esm/components/streaming/StreamingMarkdown.d.ts +0 -5
- package/dist/esm/components/streaming/StreamingMarkdown.d.ts.map +0 -1
- package/dist/esm/components/streaming/StreamingMarkdown.js +0 -80
- package/dist/esm/components/streaming/StreamingMarkdown.js.map +0 -1
- package/dist/esm/components/streaming/StreamingParagraph.d.ts +0 -14
- package/dist/esm/components/streaming/StreamingParagraph.d.ts.map +0 -1
- package/dist/esm/components/streaming/StreamingParagraph.js +0 -41
- package/dist/esm/components/streaming/StreamingParagraph.js.map +0 -1
- package/dist/esm/components/streaming/index.d.ts +0 -3
- package/dist/esm/components/streaming/index.d.ts.map +0 -1
- package/dist/esm/components/streaming/index.js +0 -2
- package/dist/esm/components/streaming/index.js.map +0 -1
- package/dist/esm/components/streaming/markdownComponents.d.ts +0 -11
- package/dist/esm/components/streaming/markdownComponents.d.ts.map +0 -1
- package/dist/esm/components/streaming/markdownComponents.js +0 -85
- package/dist/esm/components/streaming/markdownComponents.js.map +0 -1
- package/dist/esm/components/streaming/types.d.ts +0 -70
- package/dist/esm/components/streaming/types.d.ts.map +0 -1
- package/dist/esm/components/streaming/types.js +0 -10
- package/dist/esm/components/streaming/types.js.map +0 -1
- package/dist/esm/components/streaming/utils.d.ts +0 -18
- package/dist/esm/components/streaming/utils.d.ts.map +0 -1
- package/dist/esm/components/streaming/utils.js +0 -97
- package/dist/esm/components/streaming/utils.js.map +0 -1
- package/dist/esm/stories/StreamingMarkdown.stories.d.ts +0 -12
- package/dist/esm/stories/StreamingMarkdown.stories.d.ts.map +0 -1
- package/dist/esm/stories/StreamingMarkdown.stories.js +0 -620
- package/dist/esm/stories/StreamingMarkdown.stories.js.map +0 -1
- package/src/components/streaming/BlockStreamer.tsx +0 -61
- package/src/components/streaming/StreamingListItem.tsx +0 -176
- package/src/components/streaming/StreamingMarkdown.tsx +0 -126
- package/src/components/streaming/StreamingParagraph.tsx +0 -104
- package/src/components/streaming/index.ts +0 -2
- package/src/components/streaming/markdownComponents.tsx +0 -270
- package/src/components/streaming/types.ts +0 -72
- package/src/components/streaming/utils.ts +0 -126
- package/src/stories/StreamingMarkdown.stories.tsx +0 -1454
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StreamingMarkdown.stories.js","sourceRoot":"","sources":["../../../src/stories/StreamingMarkdown.stories.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
|
|
3
|
-
import type { BlockStreamerProps } from "./types";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* BlockStreamer component handles the token-based streaming animation.
|
|
7
|
-
* It tracks new content as discrete diffs that animate independently.
|
|
8
|
-
*/
|
|
9
|
-
export const BlockStreamer: React.FC<BlockStreamerProps> = ({
|
|
10
|
-
text,
|
|
11
|
-
animate = true,
|
|
12
|
-
animationName,
|
|
13
|
-
animationDuration,
|
|
14
|
-
animationTimingFunction,
|
|
15
|
-
}) => {
|
|
16
|
-
const prevRef = React.useRef<string>("");
|
|
17
|
-
const tokensRef = React.useRef<{ text: string; key: number }[]>([]);
|
|
18
|
-
|
|
19
|
-
// Keep tokens up to date so initial render is visible.
|
|
20
|
-
const prev = prevRef.current;
|
|
21
|
-
if (!prev || text.length < prev.length || !text.startsWith(prev)) {
|
|
22
|
-
tokensRef.current = text ? [{ text, key: 0 }] : [];
|
|
23
|
-
prevRef.current = text;
|
|
24
|
-
} else if (text !== prev) {
|
|
25
|
-
const suffix = text.slice(prev.length);
|
|
26
|
-
if (suffix.length > 0) {
|
|
27
|
-
tokensRef.current.push({
|
|
28
|
-
text: suffix,
|
|
29
|
-
key: tokensRef.current.length,
|
|
30
|
-
});
|
|
31
|
-
prevRef.current = text;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return (
|
|
36
|
-
<>
|
|
37
|
-
{tokensRef.current.map((t) => (
|
|
38
|
-
<span
|
|
39
|
-
key={t.key}
|
|
40
|
-
style={
|
|
41
|
-
animate
|
|
42
|
-
? {
|
|
43
|
-
whiteSpace: "pre-wrap",
|
|
44
|
-
display: "inline",
|
|
45
|
-
animationName,
|
|
46
|
-
animationDuration,
|
|
47
|
-
animationTimingFunction,
|
|
48
|
-
animationIterationCount: 1,
|
|
49
|
-
}
|
|
50
|
-
: {
|
|
51
|
-
whiteSpace: "pre-wrap",
|
|
52
|
-
display: "inline",
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
>
|
|
56
|
-
{t.text}
|
|
57
|
-
</span>
|
|
58
|
-
))}
|
|
59
|
-
</>
|
|
60
|
-
);
|
|
61
|
-
};
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
|
|
3
|
-
import { LiBlock } from "@sparkle/components/markdown/List";
|
|
4
|
-
import { BlockStreamer } from "@sparkle/components/streaming/BlockStreamer";
|
|
5
|
-
import type { ComponentProps } from "@sparkle/components/streaming/types";
|
|
6
|
-
import {
|
|
7
|
-
getElementProps,
|
|
8
|
-
isCodeElement,
|
|
9
|
-
isListElement,
|
|
10
|
-
isReactElementWithProps,
|
|
11
|
-
isTableElement,
|
|
12
|
-
keyOf,
|
|
13
|
-
} from "@sparkle/components/streaming/utils";
|
|
14
|
-
|
|
15
|
-
interface StreamingListItemProps extends ComponentProps {
|
|
16
|
-
isStreaming: boolean;
|
|
17
|
-
animationName: string;
|
|
18
|
-
animationDuration: string;
|
|
19
|
-
animationTimingFunction: string;
|
|
20
|
-
textColor?: string;
|
|
21
|
-
forcedTextSize?: string;
|
|
22
|
-
sizes: Record<string, string>;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export function StreamingListItem({
|
|
26
|
-
node,
|
|
27
|
-
isStreaming,
|
|
28
|
-
animationName,
|
|
29
|
-
animationDuration,
|
|
30
|
-
animationTimingFunction,
|
|
31
|
-
textColor,
|
|
32
|
-
forcedTextSize,
|
|
33
|
-
sizes,
|
|
34
|
-
...props
|
|
35
|
-
}: StreamingListItemProps) {
|
|
36
|
-
const bk = keyOf(node, "li");
|
|
37
|
-
|
|
38
|
-
// Process list item children to handle text streaming and nested lists.
|
|
39
|
-
const processChildren = (children: React.ReactNode): React.ReactNode => {
|
|
40
|
-
if (!children) {
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// If it's just a string, animate it.
|
|
45
|
-
if (typeof children === "string") {
|
|
46
|
-
return (
|
|
47
|
-
<BlockStreamer
|
|
48
|
-
text={children}
|
|
49
|
-
animate={isStreaming}
|
|
50
|
-
animationName={animationName}
|
|
51
|
-
animationDuration={animationDuration}
|
|
52
|
-
animationTimingFunction={animationTimingFunction}
|
|
53
|
-
/>
|
|
54
|
-
);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
// Safety check: if it's a non-React object, don't try to process it.
|
|
58
|
-
if (
|
|
59
|
-
typeof children === "object" &&
|
|
60
|
-
children !== null &&
|
|
61
|
-
!React.isValidElement(children) &&
|
|
62
|
-
!Array.isArray(children)
|
|
63
|
-
) {
|
|
64
|
-
console.warn("Unexpected object in processChildren:", children);
|
|
65
|
-
return null;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// If it's an array, process each child
|
|
69
|
-
if (Array.isArray(children)) {
|
|
70
|
-
// Filter out empty strings and newlines that might cause spacing.
|
|
71
|
-
const filtered = children.filter(
|
|
72
|
-
(child) => !(typeof child === "string" && child.trim() === "")
|
|
73
|
-
);
|
|
74
|
-
|
|
75
|
-
return filtered.map((child, idx) => {
|
|
76
|
-
if (typeof child === "string") {
|
|
77
|
-
return (
|
|
78
|
-
<BlockStreamer
|
|
79
|
-
key={idx}
|
|
80
|
-
text={child}
|
|
81
|
-
animate={isStreaming}
|
|
82
|
-
animationName={animationName}
|
|
83
|
-
animationDuration={animationDuration}
|
|
84
|
-
animationTimingFunction={animationTimingFunction}
|
|
85
|
-
/>
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
// Nested lists are preserved as-is (they'll handle their own animation).
|
|
90
|
-
if (React.isValidElement(child) && isListElement(child)) {
|
|
91
|
-
return child;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
// Table elements are preserved as-is.
|
|
95
|
-
if (isTableElement(child)) {
|
|
96
|
-
return child;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
// For paragraph elements inside list items, extract and animate their content.
|
|
100
|
-
if (isReactElementWithProps(child) && child.type === "p") {
|
|
101
|
-
const props = getElementProps(child);
|
|
102
|
-
return processChildren(props.children);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
// Code elements (including pre blocks) should be returned as-is.
|
|
106
|
-
if (isCodeElement(child)) {
|
|
107
|
-
return child;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
// Other elements: recursively process their children.
|
|
111
|
-
if (isReactElementWithProps(child)) {
|
|
112
|
-
const childProps = getElementProps(child);
|
|
113
|
-
|
|
114
|
-
// Don't process children for certain element types that handle their own content
|
|
115
|
-
if (isCodeElement(child) || isTableElement(child)) {
|
|
116
|
-
return child;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
// Skip processing if children is already a string (don't double-process)
|
|
120
|
-
if (typeof childProps.children === "string") {
|
|
121
|
-
return child;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
// Clone the element with processed children
|
|
125
|
-
return React.cloneElement(
|
|
126
|
-
child,
|
|
127
|
-
{ ...childProps, key: idx },
|
|
128
|
-
processChildren(childProps.children)
|
|
129
|
-
);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
// If it's an object but not a React element, return empty string to avoid [object Object]
|
|
133
|
-
if (typeof child === "object" && child !== null) {
|
|
134
|
-
return null;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
return child;
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
// Single React element
|
|
142
|
-
if (React.isValidElement(children)) {
|
|
143
|
-
if (isListElement(children)) {
|
|
144
|
-
return children;
|
|
145
|
-
}
|
|
146
|
-
// For paragraph elements, extract their content
|
|
147
|
-
if (children.type === "p") {
|
|
148
|
-
const props = getElementProps(children);
|
|
149
|
-
return processChildren(props.children);
|
|
150
|
-
}
|
|
151
|
-
// Code and table elements should be returned as-is
|
|
152
|
-
if (isCodeElement(children) || isTableElement(children)) {
|
|
153
|
-
return children;
|
|
154
|
-
}
|
|
155
|
-
const childProps = getElementProps(children);
|
|
156
|
-
return React.cloneElement(
|
|
157
|
-
children,
|
|
158
|
-
childProps,
|
|
159
|
-
processChildren(childProps.children)
|
|
160
|
-
);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
return children;
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
return (
|
|
167
|
-
<LiBlock
|
|
168
|
-
key={bk}
|
|
169
|
-
textColor={textColor || ""}
|
|
170
|
-
textSize={forcedTextSize || sizes.p}
|
|
171
|
-
className="s-stream-marker"
|
|
172
|
-
>
|
|
173
|
-
{processChildren(props.children)}
|
|
174
|
-
</LiBlock>
|
|
175
|
-
);
|
|
176
|
-
}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import React, { useMemo } from "react";
|
|
3
|
-
import type { Components } from "react-markdown";
|
|
4
|
-
import ReactMarkdown from "react-markdown";
|
|
5
|
-
import type { PluggableList } from "react-markdown/lib/react-markdown";
|
|
6
|
-
import rehypeKatex from "rehype-katex";
|
|
7
|
-
import rehypeRaw from "rehype-raw";
|
|
8
|
-
import remarkDirective from "remark-directive";
|
|
9
|
-
import remarkGfm from "remark-gfm";
|
|
10
|
-
import remarkMath from "remark-math";
|
|
11
|
-
|
|
12
|
-
import { Chip } from "@sparkle/components";
|
|
13
|
-
import { MarkdownContentContext } from "@sparkle/components/markdown/MarkdownContentContext";
|
|
14
|
-
import { sanitizeContent } from "@sparkle/components/markdown/utils";
|
|
15
|
-
|
|
16
|
-
import { createMarkdownComponents } from "./markdownComponents";
|
|
17
|
-
import type { ProcessChildrenContext,StreamingMarkdownProps } from "./types";
|
|
18
|
-
import { showUnsupportedDirective } from "./utils";
|
|
19
|
-
|
|
20
|
-
export const StreamingMarkdown: React.FC<StreamingMarkdownProps> = ({
|
|
21
|
-
content,
|
|
22
|
-
animationName,
|
|
23
|
-
animationDuration = "600ms",
|
|
24
|
-
animationTimingFunction = "ease-out",
|
|
25
|
-
animationCurve = "linear",
|
|
26
|
-
isStreaming = true,
|
|
27
|
-
isLastMessage = false,
|
|
28
|
-
textColor = "s-text-foreground dark:s-text-foreground-night",
|
|
29
|
-
forcedTextSize,
|
|
30
|
-
additionalMarkdownComponents,
|
|
31
|
-
additionalMarkdownPlugins,
|
|
32
|
-
}) => {
|
|
33
|
-
const effectiveAnimationName = useMemo(() => {
|
|
34
|
-
if (animationName) {return animationName;}
|
|
35
|
-
|
|
36
|
-
switch (animationCurve) {
|
|
37
|
-
case "accelerate":
|
|
38
|
-
return "s-stream-fadeInAccelerate";
|
|
39
|
-
case "accelerate-fast":
|
|
40
|
-
return "s-stream-fadeInAccelerateFast";
|
|
41
|
-
case "custom":
|
|
42
|
-
return "s-stream-fadeInCustom";
|
|
43
|
-
case "linear":
|
|
44
|
-
default:
|
|
45
|
-
return "s-stream-fadeIn";
|
|
46
|
-
}
|
|
47
|
-
}, [animationName, animationCurve]);
|
|
48
|
-
|
|
49
|
-
const processedContent = useMemo(() => sanitizeContent(content), [content]);
|
|
50
|
-
|
|
51
|
-
const processContext: ProcessChildrenContext = useMemo(
|
|
52
|
-
() => ({
|
|
53
|
-
isStreaming,
|
|
54
|
-
animationName: effectiveAnimationName,
|
|
55
|
-
animationDuration,
|
|
56
|
-
animationTimingFunction,
|
|
57
|
-
}),
|
|
58
|
-
[
|
|
59
|
-
isStreaming,
|
|
60
|
-
effectiveAnimationName,
|
|
61
|
-
animationDuration,
|
|
62
|
-
animationTimingFunction,
|
|
63
|
-
]
|
|
64
|
-
);
|
|
65
|
-
|
|
66
|
-
const markdownComponents: Components = useMemo(
|
|
67
|
-
() =>
|
|
68
|
-
createMarkdownComponents({
|
|
69
|
-
textColor,
|
|
70
|
-
forcedTextSize,
|
|
71
|
-
additionalMarkdownComponents,
|
|
72
|
-
processContext,
|
|
73
|
-
}),
|
|
74
|
-
[textColor, forcedTextSize, additionalMarkdownComponents, processContext]
|
|
75
|
-
);
|
|
76
|
-
|
|
77
|
-
const markdownPlugins: PluggableList = useMemo(
|
|
78
|
-
() => [
|
|
79
|
-
remarkDirective,
|
|
80
|
-
remarkGfm,
|
|
81
|
-
[remarkMath, { singleDollarTextMath: false }],
|
|
82
|
-
...(additionalMarkdownPlugins || []),
|
|
83
|
-
showUnsupportedDirective,
|
|
84
|
-
],
|
|
85
|
-
[additionalMarkdownPlugins]
|
|
86
|
-
);
|
|
87
|
-
|
|
88
|
-
const rehypePlugins = [
|
|
89
|
-
[rehypeKatex, { output: "mathml" }],
|
|
90
|
-
rehypeRaw,
|
|
91
|
-
] as PluggableList;
|
|
92
|
-
|
|
93
|
-
try {
|
|
94
|
-
return (
|
|
95
|
-
<div className="s-w-full">
|
|
96
|
-
<MarkdownContentContext.Provider
|
|
97
|
-
value={{
|
|
98
|
-
content: processedContent,
|
|
99
|
-
isStreaming,
|
|
100
|
-
isLastMessage,
|
|
101
|
-
}}
|
|
102
|
-
>
|
|
103
|
-
<ReactMarkdown
|
|
104
|
-
linkTarget="_blank"
|
|
105
|
-
components={markdownComponents}
|
|
106
|
-
remarkPlugins={markdownPlugins}
|
|
107
|
-
rehypePlugins={rehypePlugins}
|
|
108
|
-
>
|
|
109
|
-
{processedContent}
|
|
110
|
-
</ReactMarkdown>
|
|
111
|
-
</MarkdownContentContext.Provider>
|
|
112
|
-
</div>
|
|
113
|
-
);
|
|
114
|
-
} catch (error) {
|
|
115
|
-
return (
|
|
116
|
-
<div className="s-w-full">
|
|
117
|
-
<Chip color="warning">
|
|
118
|
-
There was an error parsing this markdown content
|
|
119
|
-
</Chip>
|
|
120
|
-
{processedContent}
|
|
121
|
-
</div>
|
|
122
|
-
);
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
export default StreamingMarkdown;
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
|
|
3
|
-
import { ParagraphBlock } from "@sparkle/components/markdown/ParagraphBlock";
|
|
4
|
-
import { BlockStreamer } from "@sparkle/components/streaming/BlockStreamer";
|
|
5
|
-
import type { ComponentProps } from "@sparkle/components/streaming/types";
|
|
6
|
-
import {
|
|
7
|
-
getElementProps,
|
|
8
|
-
isReactElementWithProps,
|
|
9
|
-
keyOf,
|
|
10
|
-
} from "@sparkle/components/streaming/utils";
|
|
11
|
-
|
|
12
|
-
interface StreamingParagraphProps extends ComponentProps {
|
|
13
|
-
isStreaming: boolean;
|
|
14
|
-
animationName: string;
|
|
15
|
-
animationDuration: string;
|
|
16
|
-
animationTimingFunction: string;
|
|
17
|
-
textColor?: string;
|
|
18
|
-
forcedTextSize?: string;
|
|
19
|
-
sizes: Record<string, string>;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export function StreamingParagraph({
|
|
23
|
-
node,
|
|
24
|
-
isStreaming,
|
|
25
|
-
animationName,
|
|
26
|
-
animationDuration,
|
|
27
|
-
animationTimingFunction,
|
|
28
|
-
textColor,
|
|
29
|
-
forcedTextSize,
|
|
30
|
-
sizes,
|
|
31
|
-
...props
|
|
32
|
-
}: StreamingParagraphProps) {
|
|
33
|
-
const bk = keyOf(node, "p");
|
|
34
|
-
|
|
35
|
-
// Process children to handle mixed content (text, bold, italic, etc.).
|
|
36
|
-
const processChildren = (children: React.ReactNode): React.ReactNode => {
|
|
37
|
-
if (!children) {return null;}
|
|
38
|
-
|
|
39
|
-
// If it's just a string, stream it.
|
|
40
|
-
if (typeof children === "string") {
|
|
41
|
-
// return createBlockStreamer(children);
|
|
42
|
-
return (
|
|
43
|
-
<BlockStreamer
|
|
44
|
-
text={children}
|
|
45
|
-
animate={isStreaming}
|
|
46
|
-
animationName={animationName}
|
|
47
|
-
animationDuration={animationDuration}
|
|
48
|
-
animationTimingFunction={animationTimingFunction}
|
|
49
|
-
/>
|
|
50
|
-
);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// If it's an array, process each child.
|
|
54
|
-
if (Array.isArray(children)) {
|
|
55
|
-
return children.map((child, idx) => {
|
|
56
|
-
if (typeof child === "string") {
|
|
57
|
-
return (
|
|
58
|
-
<BlockStreamer
|
|
59
|
-
key={idx}
|
|
60
|
-
text={child}
|
|
61
|
-
animate={isStreaming}
|
|
62
|
-
animationName={animationName}
|
|
63
|
-
animationDuration={animationDuration}
|
|
64
|
-
animationTimingFunction={animationTimingFunction}
|
|
65
|
-
/>
|
|
66
|
-
);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// React elements (strong, em, code, etc.) - recursively process their children.
|
|
70
|
-
if (isReactElementWithProps(child)) {
|
|
71
|
-
const childProps = getElementProps(child);
|
|
72
|
-
return React.cloneElement(
|
|
73
|
-
child,
|
|
74
|
-
{ ...childProps, key: idx },
|
|
75
|
-
processChildren(childProps.children)
|
|
76
|
-
);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return child;
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
if (isReactElementWithProps(children)) {
|
|
84
|
-
const childProps = getElementProps(children);
|
|
85
|
-
return React.cloneElement(
|
|
86
|
-
children,
|
|
87
|
-
childProps,
|
|
88
|
-
processChildren(childProps.children)
|
|
89
|
-
);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
return children;
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
return (
|
|
96
|
-
<ParagraphBlock
|
|
97
|
-
key={bk}
|
|
98
|
-
textColor={textColor || ""}
|
|
99
|
-
textSize={forcedTextSize || sizes.p}
|
|
100
|
-
>
|
|
101
|
-
{processChildren(props.children)}
|
|
102
|
-
</ParagraphBlock>
|
|
103
|
-
);
|
|
104
|
-
}
|