@dust-tt/sparkle 0.4.20 → 0.4.21
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/Markdown.d.ts +2 -1
- package/dist/esm/components/markdown/Markdown.d.ts.map +1 -1
- package/dist/esm/components/markdown/Markdown.js +8 -5
- 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 +3 -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 +1 -0
- package/dist/esm/stories/Markdown.stories.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/markdown/Markdown.tsx +10 -3
- package/src/components/markdown/ParagraphBlock.tsx +22 -5
- package/src/components/markdown/utils.ts +10 -0
|
@@ -9,11 +9,12 @@ 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, }: {
|
|
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;
|
|
@@ -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,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,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4BAA4B,CAAC,EAAE,UAAU,CAAC;IAC1C,yBAAyB,CAAC,EAAE,aAAa,CAAC;CAC3C,qBAkMA"}
|
|
@@ -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;
|
|
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));
|
|
@@ -95,7 +98,7 @@ export function Markdown(_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
100
|
}, 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);
|
|
98
|
-
}, [textColor, additionalMarkdownComponents]);
|
|
101
|
+
}, [textColor, compactSpacing, additionalMarkdownComponents]);
|
|
99
102
|
var markdownPlugins = useMemo(function () { return __spreadArray(__spreadArray([
|
|
100
103
|
remarkDirective,
|
|
101
104
|
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"}
|
|
@@ -10,7 +10,9 @@ export declare const markdownStyles: {
|
|
|
10
10
|
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
11
11
|
list: (props?: import("class-variance-authority/dist/types").ClassProp | undefined) => string;
|
|
12
12
|
orderedList: (props?: import("class-variance-authority/dist/types").ClassProp | undefined) => string;
|
|
13
|
-
paragraph: (props?:
|
|
13
|
+
paragraph: (props?: ({
|
|
14
|
+
compactSpacing?: boolean | null | undefined;
|
|
15
|
+
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
14
16
|
pre: (props?: ({
|
|
15
17
|
variant?: "surface" | null | undefined;
|
|
16
18
|
} & 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,6 +10,7 @@ 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;
|
|
@@ -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/package.json
CHANGED
|
@@ -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,6 +63,7 @@ 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,
|
|
67
69
|
}: {
|
|
@@ -69,14 +71,18 @@ export function Markdown({
|
|
|
69
71
|
isStreaming?: boolean;
|
|
70
72
|
textColor?: string;
|
|
71
73
|
isLastMessage?: boolean;
|
|
74
|
+
compactSpacing?: boolean; // When true, removes vertical padding from paragraph blocks for tighter spacing
|
|
72
75
|
forcedTextSize?: string;
|
|
73
76
|
additionalMarkdownComponents?: Components;
|
|
74
77
|
additionalMarkdownPlugins?: PluggableList;
|
|
75
78
|
}) {
|
|
76
79
|
const processedContent = useMemo(() => {
|
|
77
|
-
|
|
80
|
+
let sanitized = sanitizeContent(content);
|
|
81
|
+
if (compactSpacing) {
|
|
82
|
+
sanitized = preserveLineBreaks(sanitized);
|
|
83
|
+
}
|
|
78
84
|
return preprocessDollarSigns(sanitized);
|
|
79
|
-
}, [content]);
|
|
85
|
+
}, [content, compactSpacing]);
|
|
80
86
|
|
|
81
87
|
// Note on re-renderings. A lot of effort has been put into preventing rerendering across markdown
|
|
82
88
|
// AST parsing rounds (happening at each token being streamed).
|
|
@@ -126,6 +132,7 @@ export function Markdown({
|
|
|
126
132
|
<ParagraphBlock
|
|
127
133
|
textColor={textColor}
|
|
128
134
|
textSize={forcedTextSize ? forcedTextSize : sizes.p}
|
|
135
|
+
compactSpacing={compactSpacing}
|
|
129
136
|
>
|
|
130
137
|
{children}
|
|
131
138
|
</ParagraphBlock>
|
|
@@ -214,7 +221,7 @@ export function Markdown({
|
|
|
214
221
|
code: CodeBlockWithExtendedSupport,
|
|
215
222
|
...additionalMarkdownComponents,
|
|
216
223
|
};
|
|
217
|
-
}, [textColor, additionalMarkdownComponents]);
|
|
224
|
+
}, [textColor, compactSpacing, additionalMarkdownComponents]);
|
|
218
225
|
|
|
219
226
|
const markdownPlugins: PluggableList = useMemo(
|
|
220
227
|
() => [
|
|
@@ -3,24 +3,41 @@ import React from "react";
|
|
|
3
3
|
|
|
4
4
|
import { cn } from "@sparkle/lib";
|
|
5
5
|
|
|
6
|
-
export const paragraphBlockVariants = cva(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
]
|
|
6
|
+
export const paragraphBlockVariants = cva(
|
|
7
|
+
[
|
|
8
|
+
"s-whitespace-pre-wrap s-break-words s-font-normal first:s-pt-0 last:s-pb-0",
|
|
9
|
+
],
|
|
10
|
+
{
|
|
11
|
+
variants: {
|
|
12
|
+
compactSpacing: {
|
|
13
|
+
true: ["s-py-0"],
|
|
14
|
+
false: ["s-py-1 @md:s-py-2 @md:s-leading-7"],
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
}
|
|
18
|
+
);
|
|
10
19
|
|
|
11
20
|
interface ParagraphBlockProps {
|
|
12
21
|
children: React.ReactNode;
|
|
13
22
|
textColor: string;
|
|
14
23
|
textSize: string;
|
|
24
|
+
compactSpacing?: boolean;
|
|
15
25
|
}
|
|
16
26
|
|
|
17
27
|
export function ParagraphBlock({
|
|
18
28
|
children,
|
|
19
29
|
textColor,
|
|
20
30
|
textSize,
|
|
31
|
+
compactSpacing = false,
|
|
21
32
|
}: ParagraphBlockProps) {
|
|
22
33
|
return (
|
|
23
|
-
<div
|
|
34
|
+
<div
|
|
35
|
+
className={cn(
|
|
36
|
+
paragraphBlockVariants({ compactSpacing }),
|
|
37
|
+
textSize,
|
|
38
|
+
textColor
|
|
39
|
+
)}
|
|
40
|
+
>
|
|
24
41
|
{children}
|
|
25
42
|
</div>
|
|
26
43
|
);
|
|
@@ -40,6 +40,16 @@ export function detectLanguage(children: React.ReactNode) {
|
|
|
40
40
|
return "text";
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
+
/**
|
|
44
|
+
* Converts consecutive newlines (\n\n) into hard breaks to preserve line spacing.
|
|
45
|
+
* Inserts an empty line with a non-breaking space to create visual spacing.
|
|
46
|
+
*/
|
|
47
|
+
export function preserveLineBreaks(content: string): string {
|
|
48
|
+
// Replace \n\n with \n \n\n to insert an empty line with content
|
|
49
|
+
// This creates visual spacing between paragraphs
|
|
50
|
+
return content.replace(/\n\n\n\n/g, "\n\n \n\n");
|
|
51
|
+
}
|
|
52
|
+
|
|
43
53
|
/**
|
|
44
54
|
* Preprocesses content to escape dollar signs that are likely NOT inlione LaTeX math. This helps
|
|
45
55
|
* prevent false positives when enabling single $ math rendering.
|