@dust-tt/sparkle 0.4.20 → 0.4.22
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/markdown/BlockquoteBlock.d.ts +3 -1
- package/dist/esm/components/markdown/BlockquoteBlock.d.ts.map +1 -1
- package/dist/esm/components/markdown/BlockquoteBlock.js +9 -5
- package/dist/esm/components/markdown/BlockquoteBlock.js.map +1 -1
- package/dist/esm/components/markdown/ContentBlockWrapper.d.ts +1 -1
- package/dist/esm/components/markdown/ContentBlockWrapper.d.ts.map +1 -1
- package/dist/esm/components/markdown/ContentBlockWrapper.js +2 -2
- package/dist/esm/components/markdown/ContentBlockWrapper.js.map +1 -1
- package/dist/esm/components/markdown/Markdown.d.ts +3 -1
- package/dist/esm/components/markdown/Markdown.d.ts.map +1 -1
- package/dist/esm/components/markdown/Markdown.js +12 -6
- package/dist/esm/components/markdown/Markdown.js.map +1 -1
- package/dist/esm/components/markdown/ParagraphBlock.d.ts +5 -2
- package/dist/esm/components/markdown/ParagraphBlock.d.ts.map +1 -1
- package/dist/esm/components/markdown/ParagraphBlock.js +10 -4
- package/dist/esm/components/markdown/ParagraphBlock.js.map +1 -1
- package/dist/esm/components/markdown/styles.d.ts +4 -1
- package/dist/esm/components/markdown/styles.d.ts.map +1 -1
- package/dist/esm/components/markdown/utils.d.ts +5 -0
- package/dist/esm/components/markdown/utils.d.ts.map +1 -1
- package/dist/esm/components/markdown/utils.js +9 -0
- package/dist/esm/components/markdown/utils.js.map +1 -1
- package/dist/esm/stories/Markdown.stories.d.ts +2 -0
- package/dist/esm/stories/Markdown.stories.d.ts.map +1 -1
- package/dist/sparkle.css +4 -4
- package/package.json +1 -1
- package/src/components/markdown/BlockquoteBlock.tsx +10 -4
- package/src/components/markdown/ContentBlockWrapper.tsx +28 -26
- package/src/components/markdown/Markdown.tsx +17 -4
- package/src/components/markdown/ParagraphBlock.tsx +22 -5
- package/src/components/markdown/utils.ts +10 -0
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
export declare const blockquoteVariants: (props?: ({
|
|
3
3
|
variant?: "surface" | null | undefined;
|
|
4
|
+
buttonDisplay?: "inside" | "outside" | null | undefined;
|
|
4
5
|
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
5
6
|
interface BlockquoteBlockProps {
|
|
6
7
|
children: React.ReactNode;
|
|
7
8
|
variant?: "surface";
|
|
9
|
+
buttonDisplay?: "inside" | "outside" | null;
|
|
8
10
|
}
|
|
9
|
-
export declare function BlockquoteBlock({ children, variant, }: BlockquoteBlockProps): React.JSX.Element;
|
|
11
|
+
export declare function BlockquoteBlock({ children, variant, buttonDisplay, }: BlockquoteBlockProps): React.JSX.Element;
|
|
10
12
|
export {};
|
|
11
13
|
//# sourceMappingURL=BlockquoteBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockquoteBlock.d.ts","sourceRoot":"","sources":["../../../../src/components/markdown/BlockquoteBlock.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"BlockquoteBlock.d.ts","sourceRoot":"","sources":["../../../../src/components/markdown/BlockquoteBlock.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,eAAO,MAAM,kBAAkB;;;mFAsB9B,CAAC;AAEF,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC;CAC7C;AAED,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,OAAmB,EACnB,aAAwB,GACzB,EAAE,oBAAoB,qBA4BtB"}
|
|
@@ -2,10 +2,10 @@ import { cva } from "class-variance-authority";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { ContentBlockWrapper } from "../../components";
|
|
4
4
|
export var blockquoteVariants = cva([
|
|
5
|
-
"s-w-full s-text-base s-italic s-
|
|
5
|
+
"s-w-full s-text-base s-italic s-p-3",
|
|
6
6
|
"s-relative",
|
|
7
7
|
"before:s-content-[''] before:s-absolute before:s-left-0 before:s-top-3 before:s-bottom-3",
|
|
8
|
-
"before:s-w-1 before:s-bg-
|
|
8
|
+
"before:s-w-1 before:s-bg-faint dark:before:s-bg-faint-night",
|
|
9
9
|
"before:s-rounded-full",
|
|
10
10
|
], {
|
|
11
11
|
variants: {
|
|
@@ -15,10 +15,14 @@ export var blockquoteVariants = cva([
|
|
|
15
15
|
"s-bg-transparent",
|
|
16
16
|
],
|
|
17
17
|
},
|
|
18
|
+
buttonDisplay: {
|
|
19
|
+
inside: ["s-pr-12"],
|
|
20
|
+
outside: [],
|
|
21
|
+
},
|
|
18
22
|
},
|
|
19
23
|
});
|
|
20
24
|
export function BlockquoteBlock(_a) {
|
|
21
|
-
var children = _a.children, _b = _a.variant, variant = _b === void 0 ? "surface" : _b;
|
|
25
|
+
var children = _a.children, _b = _a.variant, variant = _b === void 0 ? "surface" : _b, _c = _a.buttonDisplay, buttonDisplay = _c === void 0 ? "inside" : _c;
|
|
22
26
|
var elementAt1 = React.Children.toArray(children)[1];
|
|
23
27
|
var childrenContent = elementAt1 && React.isValidElement(elementAt1)
|
|
24
28
|
? elementAt1.props.children
|
|
@@ -31,7 +35,7 @@ export function BlockquoteBlock(_a) {
|
|
|
31
35
|
var clipboardContent = contentAsString
|
|
32
36
|
? { "text/plain": contentAsString }
|
|
33
37
|
: undefined;
|
|
34
|
-
return (React.createElement(ContentBlockWrapper, { content: clipboardContent, className: "s-my-2", buttonDisplay:
|
|
35
|
-
React.createElement("blockquote", { className: blockquoteVariants({ variant: variant }) }, children)));
|
|
38
|
+
return (React.createElement(ContentBlockWrapper, { content: clipboardContent, className: "s-my-2", buttonDisplay: buttonDisplay },
|
|
39
|
+
React.createElement("blockquote", { className: blockquoteVariants({ variant: variant, buttonDisplay: buttonDisplay }) }, children)));
|
|
36
40
|
}
|
|
37
41
|
//# sourceMappingURL=BlockquoteBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockquoteBlock.js","sourceRoot":"","sources":["../../../../src/components/markdown/BlockquoteBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,CAAC,IAAM,kBAAkB,GAAG,GAAG,CACnC;IACE,
|
|
1
|
+
{"version":3,"file":"BlockquoteBlock.js","sourceRoot":"","sources":["../../../../src/components/markdown/BlockquoteBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,CAAC,IAAM,kBAAkB,GAAG,GAAG,CACnC;IACE,qCAAqC;IACrC,YAAY;IACZ,0FAA0F;IAC1F,6DAA6D;IAC7D,uBAAuB;CACxB,EACD;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE;gBACP,gDAAgD;gBAChD,kBAAkB;aACnB;SACF;QACD,aAAa,EAAE;YACb,MAAM,EAAE,CAAC,SAAS,CAAC;YACnB,OAAO,EAAE,EAAE;SACZ;KACF;CACF,CACF,CAAC;AAQF,MAAM,UAAU,eAAe,CAAC,EAIT;QAHrB,QAAQ,cAAA,EACR,eAAmB,EAAnB,OAAO,mBAAG,SAAS,KAAA,EACnB,qBAAwB,EAAxB,aAAa,mBAAG,QAAQ,KAAA;IAExB,IAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,IAAM,eAAe,GACnB,UAAU,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC;QAC5C,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ;QAC3B,CAAC,CAAC,IAAI,CAAC;IAEX,+CAA+C;IAC/C,IAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;QACpD,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,OAAO,CAAC,KAAK,QAAQ,EAArB,CAAqB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/D,CAAC,CAAC,eAAe,CAAC;IAEpB,iCAAiC;IACjC,IAAM,gBAAgB,GAAG,eAAe;QACtC,CAAC,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE;QACnC,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,CACL,oBAAC,mBAAmB,IAClB,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAC,QAAQ,EAClB,aAAa,EAAE,aAAa;QAE5B,oCAAY,SAAS,EAAE,kBAAkB,CAAC,EAAE,OAAO,SAAA,EAAE,aAAa,eAAA,EAAE,CAAC,IAClE,QAAQ,CACE,CACO,CACvB,CAAC;AACJ,CAAC"}
|
|
@@ -18,7 +18,7 @@ interface ContentBlockWrapperProps {
|
|
|
18
18
|
getContentToDownload?: GetContentToDownloadFunction;
|
|
19
19
|
actions?: React.ReactNode[] | React.ReactNode;
|
|
20
20
|
displayActions?: "hover" | "always";
|
|
21
|
-
buttonDisplay?: "inside" | "outside";
|
|
21
|
+
buttonDisplay?: "inside" | "outside" | null;
|
|
22
22
|
}
|
|
23
23
|
export declare function ContentBlockWrapper({ children, className, innerClassName, content, actions, displayActions, getContentToDownload, buttonDisplay, }: ContentBlockWrapperProps): React.JSX.Element;
|
|
24
24
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentBlockWrapper.d.ts","sourceRoot":"","sources":["../../../../src/components/markdown/ContentBlockWrapper.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAW3C,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,GAAG,UAAU,CAAC;AAoDnE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED,MAAM,MAAM,4BAA4B,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE5E,KAAK,gBAAgB,GAAG;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,UAAU,wBAAwB;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;IACpC,oBAAoB,CAAC,EAAE,4BAA4B,CAAC;IACpD,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;IAC9C,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACpC,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ContentBlockWrapper.d.ts","sourceRoot":"","sources":["../../../../src/components/markdown/ContentBlockWrapper.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAW3C,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,GAAG,UAAU,CAAC;AAoDnE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED,MAAM,MAAM,4BAA4B,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE5E,KAAK,gBAAgB,GAAG;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,UAAU,wBAAwB;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;IACpC,oBAAoB,CAAC,EAAE,4BAA4B,CAAC;IACpD,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;IAC9C,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACpC,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC;CAC7C;AAED,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,SAAS,EACT,cAAc,EACd,OAAO,EACP,OAAO,EACP,cAAyB,EACzB,oBAAoB,EACpB,aAAyB,GAC1B,EAAE,wBAAwB,qBAwF1B"}
|
|
@@ -95,11 +95,11 @@ export function ContentBlockWrapper(_a) {
|
|
|
95
95
|
});
|
|
96
96
|
}); }, [getContentToDownload]);
|
|
97
97
|
return (React.createElement("div", { id: "BlockWrapper", className: cn(wrapperVariants({ buttonDisplay: buttonDisplay }), className) },
|
|
98
|
-
React.createElement("div", { className: stickyContainerVariants({ buttonDisplay: buttonDisplay }) },
|
|
98
|
+
buttonDisplay !== null && (React.createElement("div", { className: stickyContainerVariants({ buttonDisplay: buttonDisplay }) },
|
|
99
99
|
React.createElement("div", { id: "BlockActions", className: actionsVariants({ buttonDisplay: buttonDisplay, displayActions: displayActions }) },
|
|
100
100
|
actions && actions,
|
|
101
101
|
getContentToDownload && (React.createElement(Button, { variant: "outline", size: "xs", icon: ArrowDownOnSquareIcon, onClick: handleDownload, tooltip: "Download" })),
|
|
102
|
-
content && (React.createElement(Button, { variant: "outline", size: "xs", icon: isCopied ? ClipboardCheckIcon : ClipboardIcon, onClick: handleCopyToClipboard, tooltip: "Copy" })))),
|
|
102
|
+
content && (React.createElement(Button, { variant: "outline", size: "xs", icon: isCopied ? ClipboardCheckIcon : ClipboardIcon, onClick: handleCopyToClipboard, tooltip: "Copy" }))))),
|
|
103
103
|
React.createElement("div", { className: cn("s-z-0 s-w-full", innerClassName) }, children)));
|
|
104
104
|
}
|
|
105
105
|
//# sourceMappingURL=ContentBlockWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentBlockWrapper.js","sourceRoot":"","sources":["../../../../src/components/markdown/ContentBlockWrapper.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAIxC,IAAM,qBAAqB,GAAyC;IAClE,kBAAkB,EAAE,OAAO;IAC3B,UAAU,EAAE,MAAM;CACnB,CAAC;AAEF,IAAM,eAAe,GAAG,GAAG,CAAC,iDAAiD,EAAE;IAC7E,QAAQ,EAAE;QACR,aAAa,EAAE;YACb,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,SAAS;SACnB;KACF;IACD,eAAe,EAAE;QACf,aAAa,EAAE,SAAS;KACzB;CACF,CAAC,CAAC;AAEH,IAAM,uBAAuB,GAAG,GAAG,CAAC,wBAAwB,EAAE;IAC5D,QAAQ,EAAE;QACR,aAAa,EAAE;YACb,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,UAAU;SACpB;KACF;IACD,eAAe,EAAE;QACf,aAAa,EAAE,SAAS;KACzB;CACF,CAAC,CAAC;AAEH,IAAM,eAAe,GAAG,GAAG,CACzB,2DAA2D,EAC3D;IACE,QAAQ,EAAE;QACR,aAAa,EAAE;YACb,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,mBAAmB;SAC7B;QACD,cAAc,EAAE;YACd,KAAK,EACH,2EAA2E;YAC7E,MAAM,EAAE,EAAE;SACX;KACF;IACD,eAAe,EAAE;QACf,aAAa,EAAE,SAAS;QACxB,cAAc,EAAE,QAAQ;KACzB;CACF,CACF,CAAC;AA0BF,MAAM,UAAU,mBAAmB,CAAC,EAST;IAT3B,
|
|
1
|
+
{"version":3,"file":"ContentBlockWrapper.js","sourceRoot":"","sources":["../../../../src/components/markdown/ContentBlockWrapper.tsx"],"names":[],"mappings":"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"}
|
|
@@ -9,13 +9,15 @@ export declare const markdownHeaderClasses: {
|
|
|
9
9
|
h5: string;
|
|
10
10
|
h6: string;
|
|
11
11
|
};
|
|
12
|
-
export declare function Markdown({ content, isStreaming, textColor, forcedTextSize, isLastMessage, additionalMarkdownComponents, additionalMarkdownPlugins, }: {
|
|
12
|
+
export declare function Markdown({ content, isStreaming, textColor, forcedTextSize, isLastMessage, compactSpacing, additionalMarkdownComponents, additionalMarkdownPlugins, canCopyQuotes, }: {
|
|
13
13
|
content: string;
|
|
14
14
|
isStreaming?: boolean;
|
|
15
15
|
textColor?: string;
|
|
16
16
|
isLastMessage?: boolean;
|
|
17
|
+
compactSpacing?: boolean;
|
|
17
18
|
forcedTextSize?: string;
|
|
18
19
|
additionalMarkdownComponents?: Components;
|
|
19
20
|
additionalMarkdownPlugins?: PluggableList;
|
|
21
|
+
canCopyQuotes?: boolean;
|
|
20
22
|
}): React.JSX.Element;
|
|
21
23
|
//# 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;
|
|
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;AA4BvE,eAAO,MAAM,qBAAqB;;;;;;;CAOjC,CAAC;AAmBF,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EACP,WAAmB,EACnB,SAA4D,EAC5D,cAAc,EACd,aAAqB,EACrB,cAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EACzB,aAAoB,GACrB,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,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4BAA4B,CAAC,EAAE,UAAU,CAAC;IAC1C,yBAAyB,CAAC,EAAE,aAAa,CAAC;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,qBAsMA"}
|
|
@@ -15,7 +15,7 @@ import { ParagraphBlock } from "../../components/markdown/ParagraphBlock";
|
|
|
15
15
|
import { PreBlock } from "../../components/markdown/PreBlock";
|
|
16
16
|
import { safeRehypeKatex } from "../../components/markdown/safeRehypeKatex";
|
|
17
17
|
import { TableBlock, TableBodyBlock, TableDataBlock, TableHeadBlock, TableHeaderBlock, } from "../../components/markdown/TableBlock";
|
|
18
|
-
import { preprocessDollarSigns, sanitizeContent, } from "../../components/markdown/utils";
|
|
18
|
+
import { preprocessDollarSigns, preserveLineBreaks, sanitizeContent, } from "../../components/markdown/utils";
|
|
19
19
|
import { cn } from "../../lib/utils";
|
|
20
20
|
export var markdownHeaderClasses = {
|
|
21
21
|
h1: "s-heading-2xl",
|
|
@@ -38,11 +38,14 @@ function showUnsupportedDirective() {
|
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
40
|
export function Markdown(_a) {
|
|
41
|
-
var content = _a.content, _b = _a.isStreaming, isStreaming = _b === void 0 ? false : _b, _c = _a.textColor, textColor = _c === void 0 ? "s-text-foreground dark:s-text-foreground-night" : _c, forcedTextSize = _a.forcedTextSize, _d = _a.isLastMessage, isLastMessage = _d === void 0 ? false : _d, additionalMarkdownComponents = _a.additionalMarkdownComponents, additionalMarkdownPlugins = _a.additionalMarkdownPlugins;
|
|
41
|
+
var content = _a.content, _b = _a.isStreaming, isStreaming = _b === void 0 ? false : _b, _c = _a.textColor, textColor = _c === void 0 ? "s-text-foreground dark:s-text-foreground-night" : _c, forcedTextSize = _a.forcedTextSize, _d = _a.isLastMessage, isLastMessage = _d === void 0 ? false : _d, _e = _a.compactSpacing, compactSpacing = _e === void 0 ? false : _e, additionalMarkdownComponents = _a.additionalMarkdownComponents, additionalMarkdownPlugins = _a.additionalMarkdownPlugins, _f = _a.canCopyQuotes, canCopyQuotes = _f === void 0 ? true : _f;
|
|
42
42
|
var processedContent = useMemo(function () {
|
|
43
43
|
var sanitized = sanitizeContent(content);
|
|
44
|
+
if (compactSpacing) {
|
|
45
|
+
sanitized = preserveLineBreaks(sanitized);
|
|
46
|
+
}
|
|
44
47
|
return preprocessDollarSigns(sanitized);
|
|
45
|
-
}, [content]);
|
|
48
|
+
}, [content, compactSpacing]);
|
|
46
49
|
// Note on re-renderings. A lot of effort has been put into preventing rerendering across markdown
|
|
47
50
|
// AST parsing rounds (happening at each token being streamed).
|
|
48
51
|
//
|
|
@@ -72,7 +75,7 @@ export function Markdown(_a) {
|
|
|
72
75
|
return (React.createElement(LiBlock, { textColor: textColor, textSize: forcedTextSize ? forcedTextSize : sizes.p }, children));
|
|
73
76
|
}, p: function (_a) {
|
|
74
77
|
var children = _a.children;
|
|
75
|
-
return (React.createElement(ParagraphBlock, { textColor: textColor, textSize: forcedTextSize ? forcedTextSize : sizes.p }, children));
|
|
78
|
+
return (React.createElement(ParagraphBlock, { textColor: textColor, textSize: forcedTextSize ? forcedTextSize : sizes.p, compactSpacing: compactSpacing }, children));
|
|
76
79
|
}, table: TableBlock, thead: TableHeadBlock, tbody: TableBodyBlock, th: TableHeaderBlock, td: TableDataBlock, h1: function (_a) {
|
|
77
80
|
var children = _a.children;
|
|
78
81
|
return (React.createElement("h1", { className: cn("s-pb-2 s-pt-4", forcedTextSize ? forcedTextSize : sizes.h1, textColor) }, children));
|
|
@@ -94,8 +97,11 @@ export function Markdown(_a) {
|
|
|
94
97
|
}, strong: function (_a) {
|
|
95
98
|
var children = _a.children;
|
|
96
99
|
return (React.createElement("strong", { className: "s-font-semibold s-text-foreground dark:s-text-foreground-night" }, children));
|
|
97
|
-
}, input: Input, blockquote:
|
|
98
|
-
|
|
100
|
+
}, input: Input, blockquote: function (_a) {
|
|
101
|
+
var children = _a.children;
|
|
102
|
+
return (React.createElement(BlockquoteBlock, { buttonDisplay: canCopyQuotes ? "inside" : null }, children));
|
|
103
|
+
}, 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);
|
|
104
|
+
}, [textColor, compactSpacing, additionalMarkdownComponents]);
|
|
99
105
|
var markdownPlugins = useMemo(function () { return __spreadArray(__spreadArray([
|
|
100
106
|
remarkDirective,
|
|
101
107
|
remarkGfm,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../../../src/components/markdown/Markdown.tsx"],"names":[],"mappings":";AAAA,uDAAuD;AACvD,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAG3C,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAC/C,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,2DAA2D,CAAC;AACzG,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,gBAAgB,GACjB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,qBAAqB,EACrB,eAAe,GAChB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,MAAM,CAAC,IAAM,qBAAqB,GAAG;IACnC,EAAE,EAAE,eAAe;IACnB,EAAE,EAAE,cAAc;IAClB,EAAE,EAAE,cAAc;IAClB,EAAE,EAAE,6BAA6B;IACjC,EAAE,EAAE,2BAA2B;IAC/B,EAAE,EAAE,mCAAmC;CACxC,CAAC;AAEF,IAAM,KAAK,cACT,CAAC,EAAE,yBAAyB,IACzB,qBAAqB,CACzB,CAAC;AAEF,SAAS,wBAAwB;IAC/B,OAAO,UAAC,IAAS;QACf,KAAK,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,UAAC,IAAI;YAClC,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBAClC,8DAA8D;gBAC9D,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;gBACnB,IAAI,CAAC,KAAK,GAAG,WAAI,IAAI,CAAC,IAAI,SAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;YACtG,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../../../src/components/markdown/Markdown.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export declare const paragraphBlockVariants: (props?:
|
|
2
|
+
export declare const paragraphBlockVariants: (props?: ({
|
|
3
|
+
compactSpacing?: boolean | null | undefined;
|
|
4
|
+
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
3
5
|
interface ParagraphBlockProps {
|
|
4
6
|
children: React.ReactNode;
|
|
5
7
|
textColor: string;
|
|
6
8
|
textSize: string;
|
|
9
|
+
compactSpacing?: boolean;
|
|
7
10
|
}
|
|
8
|
-
export declare function ParagraphBlock({ children, textColor, textSize, }: ParagraphBlockProps): React.JSX.Element;
|
|
11
|
+
export declare function ParagraphBlock({ children, textColor, textSize, compactSpacing, }: ParagraphBlockProps): React.JSX.Element;
|
|
9
12
|
export {};
|
|
10
13
|
//# sourceMappingURL=ParagraphBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParagraphBlock.d.ts","sourceRoot":"","sources":["../../../../src/components/markdown/ParagraphBlock.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,eAAO,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"ParagraphBlock.d.ts","sourceRoot":"","sources":["../../../../src/components/markdown/ParagraphBlock.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,eAAO,MAAM,sBAAsB;;mFAYlC,CAAC;AAEF,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,cAAsB,GACvB,EAAE,mBAAmB,qBAYrB"}
|
|
@@ -3,10 +3,16 @@ import React from "react";
|
|
|
3
3
|
import { cn } from "../../lib";
|
|
4
4
|
export var paragraphBlockVariants = cva([
|
|
5
5
|
"s-whitespace-pre-wrap s-break-words s-font-normal first:s-pt-0 last:s-pb-0",
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
], {
|
|
7
|
+
variants: {
|
|
8
|
+
compactSpacing: {
|
|
9
|
+
true: ["s-py-0"],
|
|
10
|
+
false: ["s-py-1 @md:s-py-2 @md:s-leading-7"],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
});
|
|
8
14
|
export function ParagraphBlock(_a) {
|
|
9
|
-
var children = _a.children, textColor = _a.textColor, textSize = _a.textSize;
|
|
10
|
-
return (React.createElement("div", { className: cn(paragraphBlockVariants(), textSize, textColor) }, children));
|
|
15
|
+
var children = _a.children, textColor = _a.textColor, textSize = _a.textSize, _b = _a.compactSpacing, compactSpacing = _b === void 0 ? false : _b;
|
|
16
|
+
return (React.createElement("div", { className: cn(paragraphBlockVariants({ compactSpacing: compactSpacing }), textSize, textColor) }, children));
|
|
11
17
|
}
|
|
12
18
|
//# sourceMappingURL=ParagraphBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParagraphBlock.js","sourceRoot":"","sources":["../../../../src/components/markdown/ParagraphBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,MAAM,CAAC,IAAM,sBAAsB,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"ParagraphBlock.js","sourceRoot":"","sources":["../../../../src/components/markdown/ParagraphBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,MAAM,CAAC,IAAM,sBAAsB,GAAG,GAAG,CACvC;IACE,4EAA4E;CAC7E,EACD;IACE,QAAQ,EAAE;QACR,cAAc,EAAE;YACd,IAAI,EAAE,CAAC,QAAQ,CAAC;YAChB,KAAK,EAAE,CAAC,mCAAmC,CAAC;SAC7C;KACF;CACF,CACF,CAAC;AASF,MAAM,UAAU,cAAc,CAAC,EAKT;QAJpB,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,QAAQ,cAAA,EACR,sBAAsB,EAAtB,cAAc,mBAAG,KAAK,KAAA;IAEtB,OAAO,CACL,6BACE,SAAS,EAAE,EAAE,CACX,sBAAsB,CAAC,EAAE,cAAc,gBAAA,EAAE,CAAC,EAC1C,QAAQ,EACR,SAAS,CACV,IAEA,QAAQ,CACL,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare const markdownStyles: {
|
|
2
2
|
blockquote: (props?: ({
|
|
3
3
|
variant?: "surface" | null | undefined;
|
|
4
|
+
buttonDisplay?: "inside" | "outside" | null | undefined;
|
|
4
5
|
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
5
6
|
codeInline: (props?: ({
|
|
6
7
|
variant?: "surface" | null | undefined;
|
|
@@ -10,7 +11,9 @@ export declare const markdownStyles: {
|
|
|
10
11
|
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
11
12
|
list: (props?: import("class-variance-authority/dist/types").ClassProp | undefined) => string;
|
|
12
13
|
orderedList: (props?: import("class-variance-authority/dist/types").ClassProp | undefined) => string;
|
|
13
|
-
paragraph: (props?:
|
|
14
|
+
paragraph: (props?: ({
|
|
15
|
+
compactSpacing?: boolean | null | undefined;
|
|
16
|
+
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
14
17
|
pre: (props?: ({
|
|
15
18
|
variant?: "surface" | null | undefined;
|
|
16
19
|
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/components/markdown/styles.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/components/markdown/styles.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;CAS1B,CAAC"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
export declare function sanitizeContent(str: string): string;
|
|
3
3
|
export declare function detectLanguage(children: React.ReactNode): any;
|
|
4
|
+
/**
|
|
5
|
+
* Converts consecutive newlines (\n\n) into hard breaks to preserve line spacing.
|
|
6
|
+
* Inserts an empty line with a non-breaking space to create visual spacing.
|
|
7
|
+
*/
|
|
8
|
+
export declare function preserveLineBreaks(content: string): string;
|
|
4
9
|
/**
|
|
5
10
|
* Preprocesses content to escape dollar signs that are likely NOT inlione LaTeX math. This helps
|
|
6
11
|
* prevent false positives when enabling single $ math rendering.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/markdown/utils.ts"],"names":[],"mappings":";AAAA,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgCnD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,OAMvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA6B7D"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/markdown/utils.ts"],"names":[],"mappings":";AAAA,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgCnD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,OAMvD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA6B7D"}
|
|
@@ -39,6 +39,15 @@ export function detectLanguage(children) {
|
|
|
39
39
|
}
|
|
40
40
|
return "text";
|
|
41
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Converts consecutive newlines (\n\n) into hard breaks to preserve line spacing.
|
|
44
|
+
* Inserts an empty line with a non-breaking space to create visual spacing.
|
|
45
|
+
*/
|
|
46
|
+
export function preserveLineBreaks(content) {
|
|
47
|
+
// Replace \n\n with \n \n\n to insert an empty line with content
|
|
48
|
+
// This creates visual spacing between paragraphs
|
|
49
|
+
return content.replace(/\n\n\n\n/g, "\n\n \n\n");
|
|
50
|
+
}
|
|
42
51
|
/**
|
|
43
52
|
* Preprocesses content to escape dollar signs that are likely NOT inlione LaTeX math. This helps
|
|
44
53
|
* prevent false positives when enabling single $ math rendering.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/components/markdown/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,2FAA2F;IAC3F,4BAA4B;IAE5B,0EAA0E;IAC1E,IAAM,KAAK,GAAG,WAAW,CAAC;IAC1B,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,2DAA2D;IAC3D,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YACvB,eAAe,EAAE,CAAC;QACpB,CAAC;aAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC5B,eAAe,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IACD,qCAAqC;IACrC,IAAI,eAAe,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,GAAG,IAAI,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,GAAG,IAAI,GAAG,CAAC;QACb,CAAC;aAAM,CAAC;YACN,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9C,CAAC;IACH,CAAC;SAAM,IAAI,eAAe,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,GAAG,IAAI,GAAG,CAAC;IACb,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAyB;;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAA,MAAA,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,0CAAE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,KAAI,MAAM,CAAC;IACzE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,IAAI,SAAS,GAAG,OAAO,CAAC;IAExB,SAAS,GAAG,SAAS;SAClB,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,UAAC,IAAI;;QACR,IAAM,sBAAsB,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,mCAAI,EAAE,CAAC;QAC9D,gFAAgF;QAChF,IAAI,sBAAsB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,+BAA+B;YAC/B,iEAAiE;YACjE,IAAI,GAAG,IAAI,CAAC,OAAO,CACjB,yGAAyG,EACzG,QAAQ,CACT,CAAC;YAEF,kCAAkC;YAClC,wDAAwD;YACxD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,gCAAgC,EAAE,QAAQ,CAAC,CAAC;YAEhE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/components/markdown/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,9 +10,11 @@ declare const meta: {
|
|
|
10
10
|
isStreaming?: boolean | undefined;
|
|
11
11
|
textColor?: string | undefined;
|
|
12
12
|
isLastMessage?: boolean | undefined;
|
|
13
|
+
compactSpacing?: boolean | undefined;
|
|
13
14
|
forcedTextSize?: string | undefined;
|
|
14
15
|
additionalMarkdownComponents?: Partial<Omit<import("react-markdown/lib/complex-types").NormalComponents, keyof import("react-markdown/lib/ast-to-react").SpecialComponents> & import("react-markdown/lib/ast-to-react").SpecialComponents> | undefined;
|
|
15
16
|
additionalMarkdownPlugins?: import("unified").PluggableList | undefined;
|
|
17
|
+
canCopyQuotes?: boolean | undefined;
|
|
16
18
|
}>) => React.JSX.Element)[];
|
|
17
19
|
argTypes: {
|
|
18
20
|
textColor: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Markdown.stories.d.ts","sourceRoot":"","sources":["../../../src/stories/Markdown.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,QAAA,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"Markdown.stories.d.ts","sourceRoot":"","sources":["../../../src/stories/Markdown.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;CAeuB,CAAC;AAElC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAkWnC,eAAO,MAAM,qBAAqB,EAAE,KAInC,CAAC;AA2EF,eAAO,MAAM,iBAAiB,EAAE,KAI/B,CAAC"}
|
package/dist/sparkle.css
CHANGED
|
@@ -5539,10 +5539,10 @@ select {
|
|
|
5539
5539
|
border-radius: 9999px;
|
|
5540
5540
|
}
|
|
5541
5541
|
|
|
5542
|
-
.before\:s-bg-
|
|
5542
|
+
.before\:s-bg-faint::before {
|
|
5543
5543
|
content: var(--tw-content);
|
|
5544
5544
|
--tw-bg-opacity: 1;
|
|
5545
|
-
background-color: rgb(
|
|
5545
|
+
background-color: rgb(150 156 165 / var(--tw-bg-opacity));
|
|
5546
5546
|
}
|
|
5547
5547
|
|
|
5548
5548
|
.before\:s-content-\[\'\'\]::before {
|
|
@@ -8507,10 +8507,10 @@ select {
|
|
|
8507
8507
|
color: rgb(150 156 165 / var(--tw-text-opacity));
|
|
8508
8508
|
}
|
|
8509
8509
|
|
|
8510
|
-
:is(.s-dark .dark\:before\:s-bg-
|
|
8510
|
+
:is(.s-dark .dark\:before\:s-bg-faint-night)::before {
|
|
8511
8511
|
content: var(--tw-content);
|
|
8512
8512
|
--tw-bg-opacity: 1;
|
|
8513
|
-
background-color: rgb(
|
|
8513
|
+
background-color: rgb(84 93 108 / var(--tw-bg-opacity));
|
|
8514
8514
|
}
|
|
8515
8515
|
|
|
8516
8516
|
:is(.s-dark .dark\:after\:s-bg-foreground-night)::after {
|
package/package.json
CHANGED
|
@@ -5,10 +5,10 @@ import { ContentBlockWrapper } from "@sparkle/components";
|
|
|
5
5
|
|
|
6
6
|
export const blockquoteVariants = cva(
|
|
7
7
|
[
|
|
8
|
-
"s-w-full s-text-base s-italic s-
|
|
8
|
+
"s-w-full s-text-base s-italic s-p-3",
|
|
9
9
|
"s-relative",
|
|
10
10
|
"before:s-content-[''] before:s-absolute before:s-left-0 before:s-top-3 before:s-bottom-3",
|
|
11
|
-
"before:s-w-1 before:s-bg-
|
|
11
|
+
"before:s-w-1 before:s-bg-faint dark:before:s-bg-faint-night",
|
|
12
12
|
"before:s-rounded-full",
|
|
13
13
|
],
|
|
14
14
|
{
|
|
@@ -19,6 +19,10 @@ export const blockquoteVariants = cva(
|
|
|
19
19
|
"s-bg-transparent",
|
|
20
20
|
],
|
|
21
21
|
},
|
|
22
|
+
buttonDisplay: {
|
|
23
|
+
inside: ["s-pr-12"],
|
|
24
|
+
outside: [],
|
|
25
|
+
},
|
|
22
26
|
},
|
|
23
27
|
}
|
|
24
28
|
);
|
|
@@ -26,11 +30,13 @@ export const blockquoteVariants = cva(
|
|
|
26
30
|
interface BlockquoteBlockProps {
|
|
27
31
|
children: React.ReactNode;
|
|
28
32
|
variant?: "surface";
|
|
33
|
+
buttonDisplay?: "inside" | "outside" | null; // null to hide buttons
|
|
29
34
|
}
|
|
30
35
|
|
|
31
36
|
export function BlockquoteBlock({
|
|
32
37
|
children,
|
|
33
38
|
variant = "surface",
|
|
39
|
+
buttonDisplay = "inside",
|
|
34
40
|
}: BlockquoteBlockProps) {
|
|
35
41
|
const elementAt1 = React.Children.toArray(children)[1];
|
|
36
42
|
const childrenContent =
|
|
@@ -52,9 +58,9 @@ export function BlockquoteBlock({
|
|
|
52
58
|
<ContentBlockWrapper
|
|
53
59
|
content={clipboardContent}
|
|
54
60
|
className="s-my-2"
|
|
55
|
-
buttonDisplay=
|
|
61
|
+
buttonDisplay={buttonDisplay}
|
|
56
62
|
>
|
|
57
|
-
<blockquote className={blockquoteVariants({ variant })}>
|
|
63
|
+
<blockquote className={blockquoteVariants({ variant, buttonDisplay })}>
|
|
58
64
|
{children}
|
|
59
65
|
</blockquote>
|
|
60
66
|
</ContentBlockWrapper>
|
|
@@ -83,7 +83,7 @@ interface ContentBlockWrapperProps {
|
|
|
83
83
|
getContentToDownload?: GetContentToDownloadFunction;
|
|
84
84
|
actions?: React.ReactNode[] | React.ReactNode;
|
|
85
85
|
displayActions?: "hover" | "always";
|
|
86
|
-
buttonDisplay?: "inside" | "outside";
|
|
86
|
+
buttonDisplay?: "inside" | "outside" | null; // null to hide buttons
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
export function ContentBlockWrapper({
|
|
@@ -152,32 +152,34 @@ export function ContentBlockWrapper({
|
|
|
152
152
|
id="BlockWrapper"
|
|
153
153
|
className={cn(wrapperVariants({ buttonDisplay }), className)}
|
|
154
154
|
>
|
|
155
|
-
|
|
156
|
-
<div
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
155
|
+
{buttonDisplay !== null && (
|
|
156
|
+
<div className={stickyContainerVariants({ buttonDisplay })}>
|
|
157
|
+
<div
|
|
158
|
+
id="BlockActions"
|
|
159
|
+
className={actionsVariants({ buttonDisplay, displayActions })}
|
|
160
|
+
>
|
|
161
|
+
{actions && actions}
|
|
162
|
+
{getContentToDownload && (
|
|
163
|
+
<Button
|
|
164
|
+
variant={"outline"}
|
|
165
|
+
size="xs"
|
|
166
|
+
icon={ArrowDownOnSquareIcon}
|
|
167
|
+
onClick={handleDownload}
|
|
168
|
+
tooltip="Download"
|
|
169
|
+
/>
|
|
170
|
+
)}
|
|
171
|
+
{content && (
|
|
172
|
+
<Button
|
|
173
|
+
variant={"outline"}
|
|
174
|
+
size="xs"
|
|
175
|
+
icon={isCopied ? ClipboardCheckIcon : ClipboardIcon}
|
|
176
|
+
onClick={handleCopyToClipboard}
|
|
177
|
+
tooltip="Copy"
|
|
178
|
+
/>
|
|
179
|
+
)}
|
|
180
|
+
</div>
|
|
179
181
|
</div>
|
|
180
|
-
|
|
182
|
+
)}
|
|
181
183
|
<div className={cn("s-z-0 s-w-full", innerClassName)}>{children}</div>
|
|
182
184
|
</div>
|
|
183
185
|
);
|
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
} from "@sparkle/components/markdown/TableBlock";
|
|
27
27
|
import {
|
|
28
28
|
preprocessDollarSigns,
|
|
29
|
+
preserveLineBreaks,
|
|
29
30
|
sanitizeContent,
|
|
30
31
|
} from "@sparkle/components/markdown/utils";
|
|
31
32
|
import { cn } from "@sparkle/lib/utils";
|
|
@@ -62,21 +63,28 @@ export function Markdown({
|
|
|
62
63
|
textColor = "s-text-foreground dark:s-text-foreground-night",
|
|
63
64
|
forcedTextSize,
|
|
64
65
|
isLastMessage = false,
|
|
66
|
+
compactSpacing = false,
|
|
65
67
|
additionalMarkdownComponents,
|
|
66
68
|
additionalMarkdownPlugins,
|
|
69
|
+
canCopyQuotes = true,
|
|
67
70
|
}: {
|
|
68
71
|
content: string;
|
|
69
72
|
isStreaming?: boolean;
|
|
70
73
|
textColor?: string;
|
|
71
74
|
isLastMessage?: boolean;
|
|
75
|
+
compactSpacing?: boolean; // When true, removes vertical padding from paragraph blocks for tighter spacing
|
|
72
76
|
forcedTextSize?: string;
|
|
73
77
|
additionalMarkdownComponents?: Components;
|
|
74
78
|
additionalMarkdownPlugins?: PluggableList;
|
|
79
|
+
canCopyQuotes?: boolean;
|
|
75
80
|
}) {
|
|
76
81
|
const processedContent = useMemo(() => {
|
|
77
|
-
|
|
82
|
+
let sanitized = sanitizeContent(content);
|
|
83
|
+
if (compactSpacing) {
|
|
84
|
+
sanitized = preserveLineBreaks(sanitized);
|
|
85
|
+
}
|
|
78
86
|
return preprocessDollarSigns(sanitized);
|
|
79
|
-
}, [content]);
|
|
87
|
+
}, [content, compactSpacing]);
|
|
80
88
|
|
|
81
89
|
// Note on re-renderings. A lot of effort has been put into preventing rerendering across markdown
|
|
82
90
|
// AST parsing rounds (happening at each token being streamed).
|
|
@@ -126,6 +134,7 @@ export function Markdown({
|
|
|
126
134
|
<ParagraphBlock
|
|
127
135
|
textColor={textColor}
|
|
128
136
|
textSize={forcedTextSize ? forcedTextSize : sizes.p}
|
|
137
|
+
compactSpacing={compactSpacing}
|
|
129
138
|
>
|
|
130
139
|
{children}
|
|
131
140
|
</ParagraphBlock>
|
|
@@ -207,14 +216,18 @@ export function Markdown({
|
|
|
207
216
|
</strong>
|
|
208
217
|
),
|
|
209
218
|
input: Input,
|
|
210
|
-
blockquote:
|
|
219
|
+
blockquote: ({ children }) => (
|
|
220
|
+
<BlockquoteBlock buttonDisplay={canCopyQuotes ? "inside" : null}>
|
|
221
|
+
{children}
|
|
222
|
+
</BlockquoteBlock>
|
|
223
|
+
),
|
|
211
224
|
hr: () => (
|
|
212
225
|
<div className="s-my-6 s-border-b s-border-primary-150 dark:s-border-primary-150-night" />
|
|
213
226
|
),
|
|
214
227
|
code: CodeBlockWithExtendedSupport,
|
|
215
228
|
...additionalMarkdownComponents,
|
|
216
229
|
};
|
|
217
|
-
}, [textColor, additionalMarkdownComponents]);
|
|
230
|
+
}, [textColor, compactSpacing, additionalMarkdownComponents]);
|
|
218
231
|
|
|
219
232
|
const markdownPlugins: PluggableList = useMemo(
|
|
220
233
|
() => [
|