@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.
Files changed (65) hide show
  1. package/dist/cjs/index.js +1 -1
  2. package/dist/esm/components/LoadingBlock.js +1 -1
  3. package/dist/esm/components/LoadingBlock.js.map +1 -1
  4. package/dist/esm/components/markdown/Markdown.d.ts +14 -0
  5. package/dist/esm/components/markdown/Markdown.d.ts.map +1 -1
  6. package/dist/esm/components/markdown/Markdown.js +18 -7
  7. package/dist/esm/components/markdown/Markdown.js.map +1 -1
  8. package/dist/esm/components/streaming/BlockStreamer.d.ts +8 -0
  9. package/dist/esm/components/streaming/BlockStreamer.d.ts.map +1 -0
  10. package/dist/esm/components/streaming/BlockStreamer.js +40 -0
  11. package/dist/esm/components/streaming/BlockStreamer.js.map +1 -0
  12. package/dist/esm/components/streaming/StreamingListItem.d.ts +14 -0
  13. package/dist/esm/components/streaming/StreamingListItem.d.ts.map +1 -0
  14. package/dist/esm/components/streaming/StreamingListItem.js +93 -0
  15. package/dist/esm/components/streaming/StreamingListItem.js.map +1 -0
  16. package/dist/esm/components/streaming/StreamingMarkdown.d.ts +5 -0
  17. package/dist/esm/components/streaming/StreamingMarkdown.d.ts.map +1 -0
  18. package/dist/esm/components/streaming/StreamingMarkdown.js +80 -0
  19. package/dist/esm/components/streaming/StreamingMarkdown.js.map +1 -0
  20. package/dist/esm/components/streaming/StreamingParagraph.d.ts +14 -0
  21. package/dist/esm/components/streaming/StreamingParagraph.d.ts.map +1 -0
  22. package/dist/esm/components/streaming/StreamingParagraph.js +41 -0
  23. package/dist/esm/components/streaming/StreamingParagraph.js.map +1 -0
  24. package/dist/esm/components/streaming/index.d.ts +3 -0
  25. package/dist/esm/components/streaming/index.d.ts.map +1 -0
  26. package/dist/esm/components/streaming/index.js +2 -0
  27. package/dist/esm/components/streaming/index.js.map +1 -0
  28. package/dist/esm/components/streaming/markdownComponents.d.ts +11 -0
  29. package/dist/esm/components/streaming/markdownComponents.d.ts.map +1 -0
  30. package/dist/esm/components/streaming/markdownComponents.js +85 -0
  31. package/dist/esm/components/streaming/markdownComponents.js.map +1 -0
  32. package/dist/esm/components/streaming/types.d.ts +70 -0
  33. package/dist/esm/components/streaming/types.d.ts.map +1 -0
  34. package/dist/esm/components/streaming/types.js +10 -0
  35. package/dist/esm/components/streaming/types.js.map +1 -0
  36. package/dist/esm/components/streaming/utils.d.ts +18 -0
  37. package/dist/esm/components/streaming/utils.d.ts.map +1 -0
  38. package/dist/esm/components/streaming/utils.js +97 -0
  39. package/dist/esm/components/streaming/utils.js.map +1 -0
  40. package/dist/esm/index.d.ts +1 -0
  41. package/dist/esm/index.d.ts.map +1 -1
  42. package/dist/esm/index.js +1 -0
  43. package/dist/esm/index.js.map +1 -1
  44. package/dist/esm/stories/StreamingMarkdown.stories.d.ts +12 -0
  45. package/dist/esm/stories/StreamingMarkdown.stories.d.ts.map +1 -0
  46. package/dist/esm/stories/StreamingMarkdown.stories.js +620 -0
  47. package/dist/esm/stories/StreamingMarkdown.stories.js.map +1 -0
  48. package/dist/esm/styles/global.css +43 -0
  49. package/dist/esm/styles/tailwind.css +43 -0
  50. package/dist/sparkle.css +56 -0
  51. package/package.json +2 -1
  52. package/src/components/LoadingBlock.tsx +1 -1
  53. package/src/components/markdown/Markdown.tsx +35 -12
  54. package/src/components/streaming/BlockStreamer.tsx +61 -0
  55. package/src/components/streaming/StreamingListItem.tsx +176 -0
  56. package/src/components/streaming/StreamingMarkdown.tsx +126 -0
  57. package/src/components/streaming/StreamingParagraph.tsx +104 -0
  58. package/src/components/streaming/index.ts +2 -0
  59. package/src/components/streaming/markdownComponents.tsx +270 -0
  60. package/src/components/streaming/types.ts +72 -0
  61. package/src/components/streaming/utils.ts +126 -0
  62. package/src/index.ts +1 -0
  63. package/src/stories/StreamingMarkdown.stories.tsx +1454 -0
  64. package/src/styles/global.css +43 -0
  65. 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-background-night", className) }, props)));
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,6CAA6C,EAC7C,SAAS,CACV,IACG,KAAK,EACT,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
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;AAGjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AA8CvE,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,qBAyLA"}
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: function (_a) {
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 Input(_a) {
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":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAE5E,OAAO,EACL,eAAe,EACf,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,KAAK,GACN,MAAM,qCAAqC,CAAC;AAY7C,MAAM,UAAU,iBAAiB,CAAC,EAUT;IATvB,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,cATwB,gIAUjC,CADS;IAER,IAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAE7B,wEAAwE;IACxE,IAAM,eAAe,GAAG,UAAC,QAAyB;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,qCAAqC;QACrC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,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,qEAAqE;QACrE,IACE,OAAO,QAAQ,KAAK,QAAQ;YAC5B,QAAQ,KAAK,IAAI;YACjB,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EACxB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,QAAQ,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,uCAAuC;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,kEAAkE;YAClE,IAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAC9B,UAAC,KAAK,IAAK,OAAA,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAnD,CAAmD,CAC/D,CAAC;YAEF,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,yEAAyE;gBACzE,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;oBACxD,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,sCAAsC;gBACtC,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,+EAA+E;gBAC/E,IAAI,uBAAuB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;oBACzD,IAAM,OAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;oBACrC,OAAO,eAAe,CAAC,OAAK,CAAC,QAAQ,CAAC,CAAC;gBACzC,CAAC;gBAED,iEAAiE;gBACjE,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,sDAAsD;gBACtD,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnC,IAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;oBAE1C,iFAAiF;oBACjF,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;wBAClD,OAAO,KAAK,CAAC;oBACf,CAAC;oBAED,yEAAyE;oBACzE,IAAI,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;wBAC5C,OAAO,KAAK,CAAC;oBACf,CAAC;oBAED,4CAA4C;oBAC5C,OAAO,KAAK,CAAC,YAAY,CACvB,KAAK,wBACA,UAAU,KAAE,GAAG,EAAE,GAAG,KACzB,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,CACrC,CAAC;gBACJ,CAAC;gBAED,0FAA0F;gBAC1F,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBAChD,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC;QAED,uBAAuB;QACvB,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,gDAAgD;YAChD,IAAI,QAAQ,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBAC1B,IAAM,OAAK,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;gBACxC,OAAO,eAAe,CAAC,OAAK,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;YACD,mDAAmD;YACnD,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxD,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,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,OAAO,IACN,GAAG,EAAE,EAAE,EACP,SAAS,EAAE,SAAS,IAAI,EAAE,EAC1B,QAAQ,EAAE,cAAc,IAAI,KAAK,CAAC,CAAC,EACnC,SAAS,EAAC,iBAAiB,IAE1B,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CACxB,CACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import type { StreamingMarkdownProps } from "./types";
3
+ export declare const StreamingMarkdown: React.FC<StreamingMarkdownProps>;
4
+ export default StreamingMarkdown;
5
+ //# sourceMappingURL=StreamingMarkdown.d.ts.map
@@ -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,3 @@
1
+ export { StreamingMarkdown } from "./StreamingMarkdown";
2
+ export type { StreamingMarkdownProps } from "./types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ export { StreamingMarkdown } from "./StreamingMarkdown";
2
+ //# sourceMappingURL=index.js.map
@@ -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