@assistant-ui/react-markdown 0.9.3 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +8 -34
- package/dist/index.js.map +1 -1
- package/dist/memoization.js +10 -38
- package/dist/memoization.js.map +1 -1
- package/dist/overrides/CodeBlock.js +11 -37
- package/dist/overrides/CodeBlock.js.map +1 -1
- package/dist/overrides/CodeOverride.js +29 -52
- package/dist/overrides/CodeOverride.js.map +1 -1
- package/dist/overrides/PreOverride.js +15 -39
- package/dist/overrides/PreOverride.js.map +1 -1
- package/dist/overrides/defaultComponents.js +7 -36
- package/dist/overrides/defaultComponents.js.map +1 -1
- package/dist/overrides/types.js +0 -18
- package/dist/overrides/types.js.map +1 -1
- package/dist/overrides/withDefaults.js +5 -41
- package/dist/overrides/withDefaults.js.map +1 -1
- package/dist/primitives/MarkdownText.js +41 -69
- package/dist/primitives/MarkdownText.js.map +1 -1
- package/package.json +7 -8
- package/dist/index.mjs +0 -12
- package/dist/index.mjs.map +0 -1
- package/dist/memoization.mjs +0 -33
- package/dist/memoization.mjs.map +0 -1
- package/dist/overrides/CodeBlock.mjs +0 -29
- package/dist/overrides/CodeBlock.mjs.map +0 -1
- package/dist/overrides/CodeOverride.mjs +0 -83
- package/dist/overrides/CodeOverride.mjs.map +0 -1
- package/dist/overrides/PreOverride.mjs +0 -24
- package/dist/overrides/PreOverride.mjs.map +0 -1
- package/dist/overrides/defaultComponents.mjs +0 -13
- package/dist/overrides/defaultComponents.mjs.map +0 -1
- package/dist/overrides/types.mjs +0 -1
- package/dist/overrides/types.mjs.map +0 -1
- package/dist/overrides/withDefaults.mjs +0 -16
- package/dist/overrides/withDefaults.mjs.map +0 -1
- package/dist/primitives/MarkdownText.mjs +0 -94
- package/dist/primitives/MarkdownText.mjs.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,37 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/index.ts
|
|
21
|
-
var index_exports = {};
|
|
22
|
-
__export(index_exports, {
|
|
23
|
-
MarkdownTextPrimitive: () => import_MarkdownText.MarkdownTextPrimitive,
|
|
24
|
-
unstable_memoizeMarkdownComponents: () => import_memoization.memoizeMarkdownComponents,
|
|
25
|
-
useIsMarkdownCodeBlock: () => import_PreOverride.useIsMarkdownCodeBlock
|
|
26
|
-
});
|
|
27
|
-
module.exports = __toCommonJS(index_exports);
|
|
28
|
-
var import_MarkdownText = require("./primitives/MarkdownText.js");
|
|
29
|
-
var import_PreOverride = require("./overrides/PreOverride.js");
|
|
30
|
-
var import_memoization = require("./memoization.js");
|
|
31
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
32
|
-
0 && (module.exports = {
|
|
1
|
+
import {
|
|
2
|
+
MarkdownTextPrimitive
|
|
3
|
+
} from "./primitives/MarkdownText";
|
|
4
|
+
import { useIsMarkdownCodeBlock } from "./overrides/PreOverride";
|
|
5
|
+
import { memoizeMarkdownComponents } from "./memoization";
|
|
6
|
+
export {
|
|
33
7
|
MarkdownTextPrimitive,
|
|
34
|
-
unstable_memoizeMarkdownComponents,
|
|
8
|
+
memoizeMarkdownComponents as unstable_memoizeMarkdownComponents,
|
|
35
9
|
useIsMarkdownCodeBlock
|
|
36
|
-
}
|
|
10
|
+
};
|
|
37
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export {\n MarkdownTextPrimitive,\n type MarkdownTextPrimitiveProps,\n} from \"./primitives/MarkdownText\";\n\nexport type {\n CodeHeaderProps,\n SyntaxHighlighterProps,\n} from \"./overrides/types\";\n\nexport { useIsMarkdownCodeBlock } from \"./overrides/PreOverride\";\nexport { memoizeMarkdownComponents as unstable_memoizeMarkdownComponents } from \"./memoization\";\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export {\n MarkdownTextPrimitive,\n type MarkdownTextPrimitiveProps,\n} from \"./primitives/MarkdownText\";\n\nexport type {\n CodeHeaderProps,\n SyntaxHighlighterProps,\n} from \"./overrides/types\";\n\nexport { useIsMarkdownCodeBlock } from \"./overrides/PreOverride\";\nexport { memoizeMarkdownComponents as unstable_memoizeMarkdownComponents } from \"./memoization\";\n"],"mappings":"AAAA;AAAA,EACE;AAAA,OAEK;AAOP,SAAS,8BAA8B;AACvC,SAAsC,iCAA0C;","names":[]}
|
package/dist/memoization.js
CHANGED
|
@@ -1,60 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/memoization.tsx
|
|
21
|
-
var memoization_exports = {};
|
|
22
|
-
__export(memoization_exports, {
|
|
23
|
-
areNodesEqual: () => areNodesEqual,
|
|
24
|
-
memoCompareNodes: () => memoCompareNodes,
|
|
25
|
-
memoizeMarkdownComponents: () => memoizeMarkdownComponents
|
|
26
|
-
});
|
|
27
|
-
module.exports = __toCommonJS(memoization_exports);
|
|
28
|
-
var import_react = require("react");
|
|
29
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
30
|
-
var areChildrenEqual = (prev, next) => {
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { memo } from "react";
|
|
3
|
+
const areChildrenEqual = (prev, next) => {
|
|
31
4
|
if (typeof prev === "string") return prev === next;
|
|
32
5
|
return JSON.stringify(prev) === JSON.stringify(next);
|
|
33
6
|
};
|
|
34
|
-
|
|
7
|
+
const areNodesEqual = (prev, next) => {
|
|
35
8
|
if (!prev || !next) return false;
|
|
36
9
|
const isEqual = JSON.stringify(prev?.properties) === JSON.stringify(next?.properties) && areChildrenEqual(prev?.children, next?.children);
|
|
37
10
|
return isEqual;
|
|
38
11
|
};
|
|
39
|
-
|
|
12
|
+
const memoCompareNodes = (prev, next) => {
|
|
40
13
|
return areNodesEqual(prev.node, next.node);
|
|
41
14
|
};
|
|
42
|
-
|
|
15
|
+
const memoizeMarkdownComponents = (components = {}) => {
|
|
43
16
|
return Object.fromEntries(
|
|
44
17
|
Object.entries(components ?? {}).map(([key, value]) => {
|
|
45
18
|
if (!value) return [key, value];
|
|
46
19
|
const Component = value;
|
|
47
20
|
const WithoutNode = ({ node, ...props }) => {
|
|
48
|
-
return /* @__PURE__ */
|
|
21
|
+
return /* @__PURE__ */ jsx(Component, { ...props });
|
|
49
22
|
};
|
|
50
|
-
return [key,
|
|
23
|
+
return [key, memo(WithoutNode, memoCompareNodes)];
|
|
51
24
|
})
|
|
52
25
|
);
|
|
53
26
|
};
|
|
54
|
-
|
|
55
|
-
0 && (module.exports = {
|
|
27
|
+
export {
|
|
56
28
|
areNodesEqual,
|
|
57
29
|
memoCompareNodes,
|
|
58
30
|
memoizeMarkdownComponents
|
|
59
|
-
}
|
|
31
|
+
};
|
|
60
32
|
//# sourceMappingURL=memoization.js.map
|
package/dist/memoization.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/memoization.tsx"],"sourcesContent":["import { Element } from \"hast\";\nimport { ComponentProps, ComponentType, ElementType, memo } from \"react\";\nimport { CodeHeaderProps, SyntaxHighlighterProps } from \"./overrides/types\";\n\ntype Components = {\n [Key in Extract<ElementType, string>]?: ComponentType<ComponentProps<Key>>;\n} & {\n SyntaxHighlighter?:\n | ComponentType<Omit<SyntaxHighlighterProps, \"node\">>\n | undefined;\n CodeHeader?: ComponentType<Omit<CodeHeaderProps, \"node\">> | undefined;\n};\n\nconst areChildrenEqual = (prev: string | unknown, next: string | unknown) => {\n if (typeof prev === \"string\") return prev === next;\n return JSON.stringify(prev) === JSON.stringify(next);\n};\n\nexport const areNodesEqual = (\n prev: Element | undefined,\n next: Element | undefined,\n) => {\n // TODO troubleshoot why this is triggering for code blocks\n if (!prev || !next) return false;\n const isEqual =\n JSON.stringify(prev?.properties) === JSON.stringify(next?.properties) &&\n areChildrenEqual(prev?.children, next?.children);\n return isEqual;\n};\n\nexport const memoCompareNodes = (\n prev: { node?: Element | undefined },\n next: { node?: Element | undefined },\n) => {\n return areNodesEqual(prev.node, next.node);\n};\n\nexport const memoizeMarkdownComponents = (components: Components = {}) => {\n return Object.fromEntries(\n Object.entries(components ?? {}).map(([key, value]) => {\n if (!value) return [key, value];\n\n const Component = value as ComponentType;\n const WithoutNode = ({ node, ...props }: { node?: Element }) => {\n return <Component {...props} />;\n };\n return [key, memo(WithoutNode, memoCompareNodes)];\n }),\n );\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/memoization.tsx"],"sourcesContent":["import { Element } from \"hast\";\nimport { ComponentProps, ComponentType, ElementType, memo } from \"react\";\nimport { CodeHeaderProps, SyntaxHighlighterProps } from \"./overrides/types\";\n\ntype Components = {\n [Key in Extract<ElementType, string>]?: ComponentType<ComponentProps<Key>>;\n} & {\n SyntaxHighlighter?:\n | ComponentType<Omit<SyntaxHighlighterProps, \"node\">>\n | undefined;\n CodeHeader?: ComponentType<Omit<CodeHeaderProps, \"node\">> | undefined;\n};\n\nconst areChildrenEqual = (prev: string | unknown, next: string | unknown) => {\n if (typeof prev === \"string\") return prev === next;\n return JSON.stringify(prev) === JSON.stringify(next);\n};\n\nexport const areNodesEqual = (\n prev: Element | undefined,\n next: Element | undefined,\n) => {\n // TODO troubleshoot why this is triggering for code blocks\n if (!prev || !next) return false;\n const isEqual =\n JSON.stringify(prev?.properties) === JSON.stringify(next?.properties) &&\n areChildrenEqual(prev?.children, next?.children);\n return isEqual;\n};\n\nexport const memoCompareNodes = (\n prev: { node?: Element | undefined },\n next: { node?: Element | undefined },\n) => {\n return areNodesEqual(prev.node, next.node);\n};\n\nexport const memoizeMarkdownComponents = (components: Components = {}) => {\n return Object.fromEntries(\n Object.entries(components ?? {}).map(([key, value]) => {\n if (!value) return [key, value];\n\n const Component = value as ComponentType;\n const WithoutNode = ({ node, ...props }: { node?: Element }) => {\n return <Component {...props} />;\n };\n return [key, memo(WithoutNode, memoCompareNodes)];\n }),\n );\n};\n"],"mappings":"AA4Ce;AA3Cf,SAAqD,YAAY;AAYjE,MAAM,mBAAmB,CAAC,MAAwB,SAA2B;AAC3E,MAAI,OAAO,SAAS,SAAU,QAAO,SAAS;AAC9C,SAAO,KAAK,UAAU,IAAI,MAAM,KAAK,UAAU,IAAI;AACrD;AAEO,MAAM,gBAAgB,CAC3B,MACA,SACG;AAEH,MAAI,CAAC,QAAQ,CAAC,KAAM,QAAO;AAC3B,QAAM,UACJ,KAAK,UAAU,MAAM,UAAU,MAAM,KAAK,UAAU,MAAM,UAAU,KACpE,iBAAiB,MAAM,UAAU,MAAM,QAAQ;AACjD,SAAO;AACT;AAEO,MAAM,mBAAmB,CAC9B,MACA,SACG;AACH,SAAO,cAAc,KAAK,MAAM,KAAK,IAAI;AAC3C;AAEO,MAAM,4BAA4B,CAAC,aAAyB,CAAC,MAAM;AACxE,SAAO,OAAO;AAAA,IACZ,OAAO,QAAQ,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACrD,UAAI,CAAC,MAAO,QAAO,CAAC,KAAK,KAAK;AAE9B,YAAM,YAAY;AAClB,YAAM,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,MAA0B;AAC9D,eAAO,oBAAC,aAAW,GAAG,OAAO;AAAA,MAC/B;AACA,aAAO,CAAC,KAAK,KAAK,aAAa,gBAAgB,CAAC;AAAA,IAClD,CAAC;AAAA,EACH;AACF;","names":[]}
|
|
@@ -1,42 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/overrides/CodeBlock.tsx
|
|
21
|
-
var CodeBlock_exports = {};
|
|
22
|
-
__export(CodeBlock_exports, {
|
|
23
|
-
DefaultCodeBlock: () => DefaultCodeBlock
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(CodeBlock_exports);
|
|
26
|
-
var import_react = require("react");
|
|
27
|
-
var import_defaultComponents = require("./defaultComponents.js");
|
|
28
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
29
|
-
var DefaultCodeBlock = ({
|
|
1
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { DefaultCodeBlockContent } from "./defaultComponents";
|
|
4
|
+
const DefaultCodeBlock = ({
|
|
30
5
|
node,
|
|
31
6
|
components: { Pre, Code, SyntaxHighlighter, CodeHeader },
|
|
32
7
|
language,
|
|
33
8
|
code
|
|
34
9
|
}) => {
|
|
35
|
-
const components =
|
|
36
|
-
const SH = !!language ? SyntaxHighlighter :
|
|
37
|
-
return /* @__PURE__ */
|
|
38
|
-
/* @__PURE__ */
|
|
39
|
-
/* @__PURE__ */
|
|
10
|
+
const components = useMemo(() => ({ Pre, Code }), [Pre, Code]);
|
|
11
|
+
const SH = !!language ? SyntaxHighlighter : DefaultCodeBlockContent;
|
|
12
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
13
|
+
/* @__PURE__ */ jsx(CodeHeader, { node, language, code }),
|
|
14
|
+
/* @__PURE__ */ jsx(
|
|
40
15
|
SH,
|
|
41
16
|
{
|
|
42
17
|
node,
|
|
@@ -47,8 +22,7 @@ var DefaultCodeBlock = ({
|
|
|
47
22
|
)
|
|
48
23
|
] });
|
|
49
24
|
};
|
|
50
|
-
|
|
51
|
-
0 && (module.exports = {
|
|
25
|
+
export {
|
|
52
26
|
DefaultCodeBlock
|
|
53
|
-
}
|
|
27
|
+
};
|
|
54
28
|
//# sourceMappingURL=CodeBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/overrides/CodeBlock.tsx"],"sourcesContent":["import { ComponentType, FC, useMemo } from \"react\";\n\nimport {\n CodeComponent,\n CodeHeaderProps,\n PreComponent,\n SyntaxHighlighterProps,\n} from \"./types\";\nimport { DefaultCodeBlockContent } from \"./defaultComponents\";\nimport { Element } from \"hast\";\n\nexport type CodeBlockProps = {\n node: Element | undefined;\n language: string;\n code: string;\n components: {\n Pre: PreComponent;\n Code: CodeComponent;\n CodeHeader: ComponentType<CodeHeaderProps>;\n SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;\n };\n};\n\nexport const DefaultCodeBlock: FC<CodeBlockProps> = ({\n node,\n components: { Pre, Code, SyntaxHighlighter, CodeHeader },\n language,\n code,\n}) => {\n const components = useMemo(() => ({ Pre, Code }), [Pre, Code]);\n\n const SH = !!language ? SyntaxHighlighter : DefaultCodeBlockContent;\n\n return (\n <>\n <CodeHeader node={node} language={language} code={code} />\n <SH\n node={node}\n components={components}\n language={language ?? \"unknown\"}\n code={code}\n />\n </>\n );\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/overrides/CodeBlock.tsx"],"sourcesContent":["import { ComponentType, FC, useMemo } from \"react\";\n\nimport {\n CodeComponent,\n CodeHeaderProps,\n PreComponent,\n SyntaxHighlighterProps,\n} from \"./types\";\nimport { DefaultCodeBlockContent } from \"./defaultComponents\";\nimport { Element } from \"hast\";\n\nexport type CodeBlockProps = {\n node: Element | undefined;\n language: string;\n code: string;\n components: {\n Pre: PreComponent;\n Code: CodeComponent;\n CodeHeader: ComponentType<CodeHeaderProps>;\n SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;\n };\n};\n\nexport const DefaultCodeBlock: FC<CodeBlockProps> = ({\n node,\n components: { Pre, Code, SyntaxHighlighter, CodeHeader },\n language,\n code,\n}) => {\n const components = useMemo(() => ({ Pre, Code }), [Pre, Code]);\n\n const SH = !!language ? SyntaxHighlighter : DefaultCodeBlockContent;\n\n return (\n <>\n <CodeHeader node={node} language={language} code={code} />\n <SH\n node={node}\n components={components}\n language={language ?? \"unknown\"}\n code={code}\n />\n </>\n );\n};\n"],"mappings":"AAkCI,mBACE,KADF;AAlCJ,SAA4B,eAAe;AAQ3C,SAAS,+BAA+B;AAejC,MAAM,mBAAuC,CAAC;AAAA,EACnD;AAAA,EACA,YAAY,EAAE,KAAK,MAAM,mBAAmB,WAAW;AAAA,EACvD;AAAA,EACA;AACF,MAAM;AACJ,QAAM,aAAa,QAAQ,OAAO,EAAE,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC;AAE7D,QAAM,KAAK,CAAC,CAAC,WAAW,oBAAoB;AAE5C,SACE,iCACE;AAAA,wBAAC,cAAW,MAAY,UAAoB,MAAY;AAAA,IACxD;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,UAAU,YAAY;AAAA,QACtB;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1,37 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/overrides/CodeOverride.tsx
|
|
21
|
-
var CodeOverride_exports = {};
|
|
22
|
-
__export(CodeOverride_exports, {
|
|
23
|
-
CodeOverride: () => CodeOverride
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(CodeOverride_exports);
|
|
26
|
-
var import_react = require("react");
|
|
27
|
-
var import_PreOverride = require("./PreOverride.js");
|
|
28
|
-
var import_CodeBlock = require("./CodeBlock.js");
|
|
29
|
-
var import_react_use_callback_ref = require("@radix-ui/react-use-callback-ref");
|
|
30
|
-
var import_withDefaults = require("./withDefaults.js");
|
|
31
|
-
var import_defaultComponents = require("./defaultComponents.js");
|
|
32
|
-
var import_memoization = require("../memoization.js");
|
|
33
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
34
|
-
var CodeBlockOverride = ({
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import {
|
|
3
|
+
memo,
|
|
4
|
+
useContext
|
|
5
|
+
} from "react";
|
|
6
|
+
import { PreContext, useIsMarkdownCodeBlock } from "./PreOverride";
|
|
7
|
+
import { DefaultCodeBlock } from "./CodeBlock";
|
|
8
|
+
import { useCallbackRef } from "@radix-ui/react-use-callback-ref";
|
|
9
|
+
import { withDefaultProps } from "./withDefaults";
|
|
10
|
+
import { DefaultCodeBlockContent } from "./defaultComponents";
|
|
11
|
+
import { memoCompareNodes } from "../memoization";
|
|
12
|
+
const CodeBlockOverride = ({
|
|
35
13
|
node,
|
|
36
14
|
components: {
|
|
37
15
|
Pre,
|
|
@@ -43,15 +21,15 @@ var CodeBlockOverride = ({
|
|
|
43
21
|
children,
|
|
44
22
|
...codeProps
|
|
45
23
|
}) => {
|
|
46
|
-
const preProps =
|
|
47
|
-
const getPreProps =
|
|
48
|
-
const WrappedPre =
|
|
49
|
-
const getCodeProps =
|
|
50
|
-
const WrappedCode =
|
|
24
|
+
const preProps = useContext(PreContext);
|
|
25
|
+
const getPreProps = withDefaultProps(preProps);
|
|
26
|
+
const WrappedPre = useCallbackRef((props) => /* @__PURE__ */ jsx(Pre, { ...getPreProps(props) }));
|
|
27
|
+
const getCodeProps = withDefaultProps(codeProps);
|
|
28
|
+
const WrappedCode = useCallbackRef((props) => /* @__PURE__ */ jsx(Code, { ...getCodeProps(props) }));
|
|
51
29
|
const language = /language-(\w+)/.exec(codeProps.className || "")?.[1] ?? "";
|
|
52
30
|
if (typeof children !== "string") {
|
|
53
|
-
return /* @__PURE__ */
|
|
54
|
-
|
|
31
|
+
return /* @__PURE__ */ jsx(
|
|
32
|
+
DefaultCodeBlockContent,
|
|
55
33
|
{
|
|
56
34
|
node,
|
|
57
35
|
components: { Pre: WrappedPre, Code: WrappedCode },
|
|
@@ -61,8 +39,8 @@ var CodeBlockOverride = ({
|
|
|
61
39
|
}
|
|
62
40
|
const SyntaxHighlighter = componentsByLanguage[language]?.SyntaxHighlighter ?? FallbackSyntaxHighlighter;
|
|
63
41
|
const CodeHeader = componentsByLanguage[language]?.CodeHeader ?? FallbackCodeHeader;
|
|
64
|
-
return /* @__PURE__ */
|
|
65
|
-
|
|
42
|
+
return /* @__PURE__ */ jsx(
|
|
43
|
+
DefaultCodeBlock,
|
|
66
44
|
{
|
|
67
45
|
node,
|
|
68
46
|
components: {
|
|
@@ -76,15 +54,15 @@ var CodeBlockOverride = ({
|
|
|
76
54
|
}
|
|
77
55
|
);
|
|
78
56
|
};
|
|
79
|
-
|
|
57
|
+
const CodeOverrideImpl = ({
|
|
80
58
|
node,
|
|
81
59
|
components,
|
|
82
60
|
componentsByLanguage,
|
|
83
61
|
...props
|
|
84
62
|
}) => {
|
|
85
|
-
const isCodeBlock =
|
|
86
|
-
if (!isCodeBlock) return /* @__PURE__ */
|
|
87
|
-
return /* @__PURE__ */
|
|
63
|
+
const isCodeBlock = useIsMarkdownCodeBlock();
|
|
64
|
+
if (!isCodeBlock) return /* @__PURE__ */ jsx(components.Code, { ...props });
|
|
65
|
+
return /* @__PURE__ */ jsx(
|
|
88
66
|
CodeBlockOverride,
|
|
89
67
|
{
|
|
90
68
|
node,
|
|
@@ -94,12 +72,11 @@ var CodeOverrideImpl = ({
|
|
|
94
72
|
}
|
|
95
73
|
);
|
|
96
74
|
};
|
|
97
|
-
|
|
98
|
-
const isEqual = prev.components === next.components && prev.componentsByLanguage === next.componentsByLanguage &&
|
|
75
|
+
const CodeOverride = memo(CodeOverrideImpl, (prev, next) => {
|
|
76
|
+
const isEqual = prev.components === next.components && prev.componentsByLanguage === next.componentsByLanguage && memoCompareNodes(prev, next);
|
|
99
77
|
return isEqual;
|
|
100
78
|
});
|
|
101
|
-
|
|
102
|
-
0 && (module.exports = {
|
|
79
|
+
export {
|
|
103
80
|
CodeOverride
|
|
104
|
-
}
|
|
81
|
+
};
|
|
105
82
|
//# sourceMappingURL=CodeOverride.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/overrides/CodeOverride.tsx"],"sourcesContent":["import {\n ComponentPropsWithoutRef,\n ComponentType,\n FC,\n memo,\n useContext,\n} from \"react\";\nimport { PreContext, useIsMarkdownCodeBlock } from \"./PreOverride\";\nimport {\n CodeComponent,\n CodeHeaderProps,\n PreComponent,\n SyntaxHighlighterProps,\n} from \"./types\";\nimport { DefaultCodeBlock } from \"./CodeBlock\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { withDefaultProps } from \"./withDefaults\";\nimport { DefaultCodeBlockContent } from \"./defaultComponents\";\nimport { memoCompareNodes } from \"../memoization\";\n\nconst CodeBlockOverride: FC<CodeOverrideProps> = ({\n node,\n components: {\n Pre,\n Code,\n SyntaxHighlighter: FallbackSyntaxHighlighter,\n CodeHeader: FallbackCodeHeader,\n },\n componentsByLanguage = {},\n children,\n ...codeProps\n}) => {\n const preProps = useContext(PreContext)!;\n const getPreProps = withDefaultProps<any>(preProps);\n const WrappedPre: PreComponent = useCallbackRef((props) => (\n <Pre {...getPreProps(props)} />\n ));\n\n const getCodeProps = withDefaultProps<any>(codeProps);\n const WrappedCode: CodeComponent = useCallbackRef((props) => (\n <Code {...getCodeProps(props)} />\n ));\n\n const language = /language-(\\w+)/.exec(codeProps.className || \"\")?.[1] ?? \"\";\n\n // if the code content is not string (due to rehype plugins), return a default code block\n if (typeof children !== \"string\") {\n return (\n <DefaultCodeBlockContent\n node={node}\n components={{ Pre: WrappedPre, Code: WrappedCode }}\n code={children}\n />\n );\n }\n\n const SyntaxHighlighter: ComponentType<SyntaxHighlighterProps> =\n componentsByLanguage[language]?.SyntaxHighlighter ??\n FallbackSyntaxHighlighter;\n\n const CodeHeader: ComponentType<CodeHeaderProps> =\n componentsByLanguage[language]?.CodeHeader ?? FallbackCodeHeader;\n\n return (\n <DefaultCodeBlock\n node={node}\n components={{\n Pre: WrappedPre,\n Code: WrappedCode,\n SyntaxHighlighter,\n CodeHeader,\n }}\n language={language || \"unknown\"}\n code={children}\n />\n );\n};\n\nexport type CodeOverrideProps = ComponentPropsWithoutRef<CodeComponent> & {\n components: {\n Pre: PreComponent;\n Code: CodeComponent;\n CodeHeader: ComponentType<CodeHeaderProps>;\n SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;\n };\n componentsByLanguage?:\n | Record<\n string,\n {\n CodeHeader?: ComponentType<CodeHeaderProps>;\n SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps>;\n }\n >\n | undefined;\n};\n\nconst CodeOverrideImpl: FC<CodeOverrideProps> = ({\n node,\n components,\n componentsByLanguage,\n ...props\n}) => {\n const isCodeBlock = useIsMarkdownCodeBlock();\n if (!isCodeBlock) return <components.Code {...props} />;\n return (\n <CodeBlockOverride\n node={node}\n components={components}\n componentsByLanguage={componentsByLanguage}\n {...props}\n />\n );\n};\n\nexport const CodeOverride = memo(CodeOverrideImpl, (prev, next) => {\n const isEqual =\n prev.components === next.components &&\n prev.componentsByLanguage === next.componentsByLanguage &&\n memoCompareNodes(prev, next);\n return isEqual;\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/overrides/CodeOverride.tsx"],"sourcesContent":["import {\n ComponentPropsWithoutRef,\n ComponentType,\n FC,\n memo,\n useContext,\n} from \"react\";\nimport { PreContext, useIsMarkdownCodeBlock } from \"./PreOverride\";\nimport {\n CodeComponent,\n CodeHeaderProps,\n PreComponent,\n SyntaxHighlighterProps,\n} from \"./types\";\nimport { DefaultCodeBlock } from \"./CodeBlock\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { withDefaultProps } from \"./withDefaults\";\nimport { DefaultCodeBlockContent } from \"./defaultComponents\";\nimport { memoCompareNodes } from \"../memoization\";\n\nconst CodeBlockOverride: FC<CodeOverrideProps> = ({\n node,\n components: {\n Pre,\n Code,\n SyntaxHighlighter: FallbackSyntaxHighlighter,\n CodeHeader: FallbackCodeHeader,\n },\n componentsByLanguage = {},\n children,\n ...codeProps\n}) => {\n const preProps = useContext(PreContext)!;\n const getPreProps = withDefaultProps<any>(preProps);\n const WrappedPre: PreComponent = useCallbackRef((props) => (\n <Pre {...getPreProps(props)} />\n ));\n\n const getCodeProps = withDefaultProps<any>(codeProps);\n const WrappedCode: CodeComponent = useCallbackRef((props) => (\n <Code {...getCodeProps(props)} />\n ));\n\n const language = /language-(\\w+)/.exec(codeProps.className || \"\")?.[1] ?? \"\";\n\n // if the code content is not string (due to rehype plugins), return a default code block\n if (typeof children !== \"string\") {\n return (\n <DefaultCodeBlockContent\n node={node}\n components={{ Pre: WrappedPre, Code: WrappedCode }}\n code={children}\n />\n );\n }\n\n const SyntaxHighlighter: ComponentType<SyntaxHighlighterProps> =\n componentsByLanguage[language]?.SyntaxHighlighter ??\n FallbackSyntaxHighlighter;\n\n const CodeHeader: ComponentType<CodeHeaderProps> =\n componentsByLanguage[language]?.CodeHeader ?? FallbackCodeHeader;\n\n return (\n <DefaultCodeBlock\n node={node}\n components={{\n Pre: WrappedPre,\n Code: WrappedCode,\n SyntaxHighlighter,\n CodeHeader,\n }}\n language={language || \"unknown\"}\n code={children}\n />\n );\n};\n\nexport type CodeOverrideProps = ComponentPropsWithoutRef<CodeComponent> & {\n components: {\n Pre: PreComponent;\n Code: CodeComponent;\n CodeHeader: ComponentType<CodeHeaderProps>;\n SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;\n };\n componentsByLanguage?:\n | Record<\n string,\n {\n CodeHeader?: ComponentType<CodeHeaderProps>;\n SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps>;\n }\n >\n | undefined;\n};\n\nconst CodeOverrideImpl: FC<CodeOverrideProps> = ({\n node,\n components,\n componentsByLanguage,\n ...props\n}) => {\n const isCodeBlock = useIsMarkdownCodeBlock();\n if (!isCodeBlock) return <components.Code {...props} />;\n return (\n <CodeBlockOverride\n node={node}\n components={components}\n componentsByLanguage={componentsByLanguage}\n {...props}\n />\n );\n};\n\nexport const CodeOverride = memo(CodeOverrideImpl, (prev, next) => {\n const isEqual =\n prev.components === next.components &&\n prev.componentsByLanguage === next.componentsByLanguage &&\n memoCompareNodes(prev, next);\n return isEqual;\n});\n"],"mappings":"AAmCI;AAnCJ;AAAA,EAIE;AAAA,EACA;AAAA,OACK;AACP,SAAS,YAAY,8BAA8B;AAOnD,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AACjC,SAAS,+BAA+B;AACxC,SAAS,wBAAwB;AAEjC,MAAM,oBAA2C,CAAC;AAAA,EAChD;AAAA,EACA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA,mBAAmB;AAAA,IACnB,YAAY;AAAA,EACd;AAAA,EACA,uBAAuB,CAAC;AAAA,EACxB;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,WAAW,WAAW,UAAU;AACtC,QAAM,cAAc,iBAAsB,QAAQ;AAClD,QAAM,aAA2B,eAAe,CAAC,UAC/C,oBAAC,OAAK,GAAG,YAAY,KAAK,GAAG,CAC9B;AAED,QAAM,eAAe,iBAAsB,SAAS;AACpD,QAAM,cAA6B,eAAe,CAAC,UACjD,oBAAC,QAAM,GAAG,aAAa,KAAK,GAAG,CAChC;AAED,QAAM,WAAW,iBAAiB,KAAK,UAAU,aAAa,EAAE,IAAI,CAAC,KAAK;AAG1E,MAAI,OAAO,aAAa,UAAU;AAChC,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,YAAY,EAAE,KAAK,YAAY,MAAM,YAAY;AAAA,QACjD,MAAM;AAAA;AAAA,IACR;AAAA,EAEJ;AAEA,QAAM,oBACJ,qBAAqB,QAAQ,GAAG,qBAChC;AAEF,QAAM,aACJ,qBAAqB,QAAQ,GAAG,cAAc;AAEhD,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,YAAY;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MACF;AAAA,MACA,UAAU,YAAY;AAAA,MACtB,MAAM;AAAA;AAAA,EACR;AAEJ;AAoBA,MAAM,mBAA0C,CAAC;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,cAAc,uBAAuB;AAC3C,MAAI,CAAC,YAAa,QAAO,oBAAC,WAAW,MAAX,EAAiB,GAAG,OAAO;AACrD,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEO,MAAM,eAAe,KAAK,kBAAkB,CAAC,MAAM,SAAS;AACjE,QAAM,UACJ,KAAK,eAAe,KAAK,cACzB,KAAK,yBAAyB,KAAK,wBACnC,iBAAiB,MAAM,IAAI;AAC7B,SAAO;AACT,CAAC;","names":[]}
|
|
@@ -1,46 +1,22 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
"use client";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import {
|
|
4
|
+
createContext,
|
|
5
|
+
useContext,
|
|
6
|
+
memo
|
|
7
|
+
} from "react";
|
|
8
|
+
import { memoCompareNodes } from "../memoization";
|
|
9
|
+
const PreContext = createContext(null);
|
|
10
|
+
const useIsMarkdownCodeBlock = () => {
|
|
11
|
+
return useContext(PreContext) !== null;
|
|
10
12
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
13
|
+
const PreOverrideImpl = ({ children, ...rest }) => {
|
|
14
|
+
return /* @__PURE__ */ jsx(PreContext.Provider, { value: rest, children });
|
|
18
15
|
};
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
// src/overrides/PreOverride.tsx
|
|
22
|
-
var PreOverride_exports = {};
|
|
23
|
-
__export(PreOverride_exports, {
|
|
24
|
-
PreContext: () => PreContext,
|
|
25
|
-
PreOverride: () => PreOverride,
|
|
26
|
-
useIsMarkdownCodeBlock: () => useIsMarkdownCodeBlock
|
|
27
|
-
});
|
|
28
|
-
module.exports = __toCommonJS(PreOverride_exports);
|
|
29
|
-
var import_react = require("react");
|
|
30
|
-
var import_memoization = require("../memoization.js");
|
|
31
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
32
|
-
var PreContext = (0, import_react.createContext)(null);
|
|
33
|
-
var useIsMarkdownCodeBlock = () => {
|
|
34
|
-
return (0, import_react.useContext)(PreContext) !== null;
|
|
35
|
-
};
|
|
36
|
-
var PreOverrideImpl = ({ children, ...rest }) => {
|
|
37
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PreContext.Provider, { value: rest, children });
|
|
38
|
-
};
|
|
39
|
-
var PreOverride = (0, import_react.memo)(PreOverrideImpl, import_memoization.memoCompareNodes);
|
|
40
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
41
|
-
0 && (module.exports = {
|
|
16
|
+
const PreOverride = memo(PreOverrideImpl, memoCompareNodes);
|
|
17
|
+
export {
|
|
42
18
|
PreContext,
|
|
43
19
|
PreOverride,
|
|
44
20
|
useIsMarkdownCodeBlock
|
|
45
|
-
}
|
|
21
|
+
};
|
|
46
22
|
//# sourceMappingURL=PreOverride.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/overrides/PreOverride.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n createContext,\n ComponentPropsWithoutRef,\n useContext,\n memo,\n} from \"react\";\nimport { PreComponent } from \"./types\";\nimport { memoCompareNodes } from \"../memoization\";\n\nexport const PreContext = createContext<Omit<\n ComponentPropsWithoutRef<PreComponent>,\n \"children\"\n> | null>(null);\n\nexport const useIsMarkdownCodeBlock = () => {\n return useContext(PreContext) !== null;\n};\n\nconst PreOverrideImpl: PreComponent = ({ children, ...rest }) => {\n return <PreContext.Provider value={rest}>{children}</PreContext.Provider>;\n};\n\nexport const PreOverride = memo(PreOverrideImpl, memoCompareNodes);\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/overrides/PreOverride.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n createContext,\n ComponentPropsWithoutRef,\n useContext,\n memo,\n} from \"react\";\nimport { PreComponent } from \"./types\";\nimport { memoCompareNodes } from \"../memoization\";\n\nexport const PreContext = createContext<Omit<\n ComponentPropsWithoutRef<PreComponent>,\n \"children\"\n> | null>(null);\n\nexport const useIsMarkdownCodeBlock = () => {\n return useContext(PreContext) !== null;\n};\n\nconst PreOverrideImpl: PreComponent = ({ children, ...rest }) => {\n return <PreContext.Provider value={rest}>{children}</PreContext.Provider>;\n};\n\nexport const PreOverride = memo(PreOverrideImpl, memoCompareNodes);\n"],"mappings":";AAqBS;AAnBT;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,wBAAwB;AAE1B,MAAM,aAAa,cAGhB,IAAI;AAEP,MAAM,yBAAyB,MAAM;AAC1C,SAAO,WAAW,UAAU,MAAM;AACpC;AAEA,MAAM,kBAAgC,CAAC,EAAE,UAAU,GAAG,KAAK,MAAM;AAC/D,SAAO,oBAAC,WAAW,UAAX,EAAoB,OAAO,MAAO,UAAS;AACrD;AAEO,MAAM,cAAc,KAAK,iBAAiB,gBAAgB;","names":[]}
|
|
@@ -1,41 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/overrides/defaultComponents.tsx
|
|
21
|
-
var defaultComponents_exports = {};
|
|
22
|
-
__export(defaultComponents_exports, {
|
|
23
|
-
DefaultCode: () => DefaultCode,
|
|
24
|
-
DefaultCodeBlockContent: () => DefaultCodeBlockContent,
|
|
25
|
-
DefaultCodeHeader: () => DefaultCodeHeader,
|
|
26
|
-
DefaultPre: () => DefaultPre
|
|
27
|
-
});
|
|
28
|
-
module.exports = __toCommonJS(defaultComponents_exports);
|
|
29
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
30
|
-
var DefaultPre = ({ node, ...rest }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("pre", { ...rest });
|
|
31
|
-
var DefaultCode = ({ node, ...rest }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("code", { ...rest });
|
|
32
|
-
var DefaultCodeBlockContent = ({ node, components: { Pre, Code }, code }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Pre, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Code, { node, children: code }) });
|
|
33
|
-
var DefaultCodeHeader = () => null;
|
|
34
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
35
|
-
0 && (module.exports = {
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
const DefaultPre = ({ node, ...rest }) => /* @__PURE__ */ jsx("pre", { ...rest });
|
|
3
|
+
const DefaultCode = ({ node, ...rest }) => /* @__PURE__ */ jsx("code", { ...rest });
|
|
4
|
+
const DefaultCodeBlockContent = ({ node, components: { Pre, Code }, code }) => /* @__PURE__ */ jsx(Pre, { children: /* @__PURE__ */ jsx(Code, { node, children: code }) });
|
|
5
|
+
const DefaultCodeHeader = () => null;
|
|
6
|
+
export {
|
|
36
7
|
DefaultCode,
|
|
37
8
|
DefaultCodeBlockContent,
|
|
38
9
|
DefaultCodeHeader,
|
|
39
10
|
DefaultPre
|
|
40
|
-
}
|
|
11
|
+
};
|
|
41
12
|
//# sourceMappingURL=defaultComponents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/overrides/defaultComponents.tsx"],"sourcesContent":["import type { ComponentType, ReactNode } from \"react\";\nimport { PreComponent, CodeComponent, CodeHeaderProps } from \"./types\";\nimport { Element } from \"hast\";\n\nexport const DefaultPre: PreComponent = ({ node, ...rest }) => (\n <pre {...rest} />\n);\n\nexport const DefaultCode: CodeComponent = ({ node, ...rest }) => (\n <code {...rest} />\n);\n\nexport const DefaultCodeBlockContent: ComponentType<{\n node: Element | undefined;\n components: { Pre: PreComponent; Code: CodeComponent };\n code: string | ReactNode | undefined;\n}> = ({ node, components: { Pre, Code }, code }) => (\n <Pre>\n <Code node={node}>{code}</Code>\n </Pre>\n);\n\nexport const DefaultCodeHeader: ComponentType<CodeHeaderProps> = () => null;\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/overrides/defaultComponents.tsx"],"sourcesContent":["import type { ComponentType, ReactNode } from \"react\";\nimport { PreComponent, CodeComponent, CodeHeaderProps } from \"./types\";\nimport { Element } from \"hast\";\n\nexport const DefaultPre: PreComponent = ({ node, ...rest }) => (\n <pre {...rest} />\n);\n\nexport const DefaultCode: CodeComponent = ({ node, ...rest }) => (\n <code {...rest} />\n);\n\nexport const DefaultCodeBlockContent: ComponentType<{\n node: Element | undefined;\n components: { Pre: PreComponent; Code: CodeComponent };\n code: string | ReactNode | undefined;\n}> = ({ node, components: { Pre, Code }, code }) => (\n <Pre>\n <Code node={node}>{code}</Code>\n </Pre>\n);\n\nexport const DefaultCodeHeader: ComponentType<CodeHeaderProps> = () => null;\n"],"mappings":"AAKE;AADK,MAAM,aAA2B,CAAC,EAAE,MAAM,GAAG,KAAK,MACvD,oBAAC,SAAK,GAAG,MAAM;AAGV,MAAM,cAA6B,CAAC,EAAE,MAAM,GAAG,KAAK,MACzD,oBAAC,UAAM,GAAG,MAAM;AAGX,MAAM,0BAIR,CAAC,EAAE,MAAM,YAAY,EAAE,KAAK,KAAK,GAAG,KAAK,MAC5C,oBAAC,OACC,8BAAC,QAAK,MAAa,gBAAK,GAC1B;AAGK,MAAM,oBAAoD,MAAM;","names":[]}
|
package/dist/overrides/types.js
CHANGED
|
@@ -1,19 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __copyProps = (to, from, except, desc) => {
|
|
7
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
-
for (let key of __getOwnPropNames(from))
|
|
9
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
-
}
|
|
12
|
-
return to;
|
|
13
|
-
};
|
|
14
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
-
|
|
16
|
-
// src/overrides/types.ts
|
|
17
|
-
var types_exports = {};
|
|
18
|
-
module.exports = __toCommonJS(types_exports);
|
|
19
1
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1,51 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
|
|
30
|
-
// src/overrides/withDefaults.tsx
|
|
31
|
-
var withDefaults_exports = {};
|
|
32
|
-
__export(withDefaults_exports, {
|
|
33
|
-
withDefaultProps: () => withDefaultProps
|
|
34
|
-
});
|
|
35
|
-
module.exports = __toCommonJS(withDefaults_exports);
|
|
36
|
-
var import_classnames = __toESM(require("classnames"));
|
|
37
|
-
var withDefaultProps = ({
|
|
1
|
+
import classNames from "classnames";
|
|
2
|
+
const withDefaultProps = ({
|
|
38
3
|
className,
|
|
39
4
|
...defaultProps
|
|
40
5
|
}) => ({ className: classNameProp, ...props }) => {
|
|
41
6
|
return {
|
|
42
|
-
className: (
|
|
7
|
+
className: classNames(className, classNameProp),
|
|
43
8
|
...defaultProps,
|
|
44
9
|
...props
|
|
45
10
|
};
|
|
46
11
|
};
|
|
47
|
-
|
|
48
|
-
0 && (module.exports = {
|
|
12
|
+
export {
|
|
49
13
|
withDefaultProps
|
|
50
|
-
}
|
|
14
|
+
};
|
|
51
15
|
//# sourceMappingURL=withDefaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/overrides/withDefaults.tsx"],"sourcesContent":["import classNames from \"classnames\";\n\nexport const withDefaultProps =\n <TProps extends { className?: string | undefined }>({\n className,\n ...defaultProps\n }: Partial<TProps>) =>\n ({ className: classNameProp, ...props }: TProps) => {\n return {\n className: classNames(className, classNameProp),\n ...defaultProps,\n ...props,\n } as TProps;\n };\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/overrides/withDefaults.tsx"],"sourcesContent":["import classNames from \"classnames\";\n\nexport const withDefaultProps =\n <TProps extends { className?: string | undefined }>({\n className,\n ...defaultProps\n }: Partial<TProps>) =>\n ({ className: classNameProp, ...props }: TProps) => {\n return {\n className: classNames(className, classNameProp),\n ...defaultProps,\n ...props,\n } as TProps;\n };\n"],"mappings":"AAAA,OAAO,gBAAgB;AAEhB,MAAM,mBACX,CAAoD;AAAA,EAClD;AAAA,EACA,GAAG;AACL,MACA,CAAC,EAAE,WAAW,eAAe,GAAG,MAAM,MAAc;AAClD,SAAO;AAAA,IACL,WAAW,WAAW,WAAW,aAAa;AAAA,IAC9C,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF;","names":[]}
|
|
@@ -1,63 +1,36 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
"use client";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
-
mod
|
|
28
|
-
));
|
|
29
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
-
|
|
31
|
-
// src/primitives/MarkdownText.tsx
|
|
32
|
-
var MarkdownText_exports = {};
|
|
33
|
-
__export(MarkdownText_exports, {
|
|
34
|
-
MarkdownTextPrimitive: () => MarkdownTextPrimitive
|
|
35
|
-
});
|
|
36
|
-
module.exports = __toCommonJS(MarkdownText_exports);
|
|
37
|
-
var import_react = require("@assistant-ui/react");
|
|
38
|
-
var import_react2 = require("react");
|
|
39
|
-
var import_react_markdown = __toESM(require("react-markdown"));
|
|
40
|
-
var import_PreOverride = require("../overrides/PreOverride.js");
|
|
41
|
-
var import_defaultComponents = require("../overrides/defaultComponents.js");
|
|
42
|
-
var import_react_use_callback_ref = require("@radix-ui/react-use-callback-ref");
|
|
43
|
-
var import_CodeOverride = require("../overrides/CodeOverride.js");
|
|
44
|
-
var import_classnames = __toESM(require("classnames"));
|
|
45
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
46
|
-
var { useSmooth, useSmoothStatus, withSmoothContextProvider } = import_react.INTERNAL;
|
|
47
|
-
var MarkdownTextInner = ({
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { INTERNAL, useContentPartText } from "@assistant-ui/react";
|
|
4
|
+
import {
|
|
5
|
+
forwardRef,
|
|
6
|
+
useMemo
|
|
7
|
+
} from "react";
|
|
8
|
+
import ReactMarkdown from "react-markdown";
|
|
9
|
+
import { PreOverride } from "../overrides/PreOverride";
|
|
10
|
+
import {
|
|
11
|
+
DefaultPre,
|
|
12
|
+
DefaultCode,
|
|
13
|
+
DefaultCodeBlockContent,
|
|
14
|
+
DefaultCodeHeader
|
|
15
|
+
} from "../overrides/defaultComponents";
|
|
16
|
+
import { useCallbackRef } from "@radix-ui/react-use-callback-ref";
|
|
17
|
+
import { CodeOverride } from "../overrides/CodeOverride";
|
|
18
|
+
import classNames from "classnames";
|
|
19
|
+
const { useSmooth, useSmoothStatus, withSmoothContextProvider } = INTERNAL;
|
|
20
|
+
const MarkdownTextInner = ({
|
|
48
21
|
components: userComponents,
|
|
49
22
|
componentsByLanguage,
|
|
50
23
|
smooth = true,
|
|
51
24
|
...rest
|
|
52
25
|
}) => {
|
|
53
|
-
const { text } = useSmooth(
|
|
26
|
+
const { text } = useSmooth(useContentPartText(), smooth);
|
|
54
27
|
const {
|
|
55
|
-
pre =
|
|
56
|
-
code =
|
|
57
|
-
SyntaxHighlighter =
|
|
58
|
-
CodeHeader =
|
|
28
|
+
pre = DefaultPre,
|
|
29
|
+
code = DefaultCode,
|
|
30
|
+
SyntaxHighlighter = DefaultCodeBlockContent,
|
|
31
|
+
CodeHeader = DefaultCodeHeader
|
|
59
32
|
} = userComponents ?? {};
|
|
60
|
-
const useCodeOverrideComponents =
|
|
33
|
+
const useCodeOverrideComponents = useMemo(() => {
|
|
61
34
|
return {
|
|
62
35
|
Pre: pre,
|
|
63
36
|
Code: code,
|
|
@@ -65,31 +38,31 @@ var MarkdownTextInner = ({
|
|
|
65
38
|
CodeHeader
|
|
66
39
|
};
|
|
67
40
|
}, [pre, code, SyntaxHighlighter, CodeHeader]);
|
|
68
|
-
const CodeComponent =
|
|
69
|
-
|
|
41
|
+
const CodeComponent = useCallbackRef((props) => /* @__PURE__ */ jsx(
|
|
42
|
+
CodeOverride,
|
|
70
43
|
{
|
|
71
44
|
components: useCodeOverrideComponents,
|
|
72
45
|
componentsByLanguage,
|
|
73
46
|
...props
|
|
74
47
|
}
|
|
75
48
|
));
|
|
76
|
-
const components =
|
|
49
|
+
const components = useMemo(() => {
|
|
77
50
|
const {
|
|
78
|
-
pre: pre2 =
|
|
79
|
-
code: code2 =
|
|
80
|
-
SyntaxHighlighter: SyntaxHighlighter2 =
|
|
81
|
-
CodeHeader: CodeHeader2 =
|
|
51
|
+
pre: pre2 = DefaultPre,
|
|
52
|
+
code: code2 = DefaultCode,
|
|
53
|
+
SyntaxHighlighter: SyntaxHighlighter2 = DefaultCodeBlockContent,
|
|
54
|
+
CodeHeader: CodeHeader2 = DefaultCodeHeader,
|
|
82
55
|
...componentsRest
|
|
83
56
|
} = userComponents ?? {};
|
|
84
57
|
return {
|
|
85
58
|
...componentsRest,
|
|
86
|
-
pre:
|
|
59
|
+
pre: PreOverride,
|
|
87
60
|
code: CodeComponent
|
|
88
61
|
};
|
|
89
62
|
}, [CodeComponent, userComponents]);
|
|
90
|
-
return /* @__PURE__ */
|
|
63
|
+
return /* @__PURE__ */ jsx(ReactMarkdown, { components, ...rest, children: text });
|
|
91
64
|
};
|
|
92
|
-
|
|
65
|
+
const MarkdownTextPrimitiveImpl = forwardRef(
|
|
93
66
|
({
|
|
94
67
|
className,
|
|
95
68
|
containerProps,
|
|
@@ -97,24 +70,23 @@ var MarkdownTextPrimitiveImpl = (0, import_react2.forwardRef)(
|
|
|
97
70
|
...rest
|
|
98
71
|
}, forwardedRef) => {
|
|
99
72
|
const status = useSmoothStatus();
|
|
100
|
-
return /* @__PURE__ */
|
|
73
|
+
return /* @__PURE__ */ jsx(
|
|
101
74
|
Container,
|
|
102
75
|
{
|
|
103
76
|
"data-status": status.type,
|
|
104
77
|
...containerProps,
|
|
105
|
-
className: (
|
|
78
|
+
className: classNames(className, containerProps?.className),
|
|
106
79
|
ref: forwardedRef,
|
|
107
|
-
children: /* @__PURE__ */
|
|
80
|
+
children: /* @__PURE__ */ jsx(MarkdownTextInner, { ...rest })
|
|
108
81
|
}
|
|
109
82
|
);
|
|
110
83
|
}
|
|
111
84
|
);
|
|
112
85
|
MarkdownTextPrimitiveImpl.displayName = "MarkdownTextPrimitive";
|
|
113
|
-
|
|
86
|
+
const MarkdownTextPrimitive = withSmoothContextProvider(
|
|
114
87
|
MarkdownTextPrimitiveImpl
|
|
115
88
|
);
|
|
116
|
-
|
|
117
|
-
0 && (module.exports = {
|
|
89
|
+
export {
|
|
118
90
|
MarkdownTextPrimitive
|
|
119
|
-
}
|
|
91
|
+
};
|
|
120
92
|
//# sourceMappingURL=MarkdownText.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/primitives/MarkdownText.tsx"],"sourcesContent":["\"use client\";\n\nimport { INTERNAL, useContentPartText } from \"@assistant-ui/react\";\nimport {\n ComponentRef,\n ElementType,\n FC,\n forwardRef,\n ForwardRefExoticComponent,\n RefAttributes,\n useMemo,\n type ComponentPropsWithoutRef,\n type ComponentType,\n} from \"react\";\nimport ReactMarkdown, { type Options } from \"react-markdown\";\nimport { SyntaxHighlighterProps, CodeHeaderProps } from \"../overrides/types\";\nimport { PreOverride } from \"../overrides/PreOverride\";\nimport {\n DefaultPre,\n DefaultCode,\n DefaultCodeBlockContent,\n DefaultCodeHeader,\n} from \"../overrides/defaultComponents\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { CodeOverride } from \"../overrides/CodeOverride\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport classNames from \"classnames\";\n\nconst { useSmooth, useSmoothStatus, withSmoothContextProvider } = INTERNAL;\n\ntype MarkdownTextPrimitiveElement = ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = ComponentPropsWithoutRef<typeof Primitive.div>;\n\nexport type MarkdownTextPrimitiveProps = Omit<\n Options,\n \"components\" | \"children\"\n> & {\n className?: string | undefined;\n containerProps?: Omit<PrimitiveDivProps, \"children\" | \"asChild\"> | undefined;\n containerComponent?: ElementType | undefined;\n components?:\n | (NonNullable<Options[\"components\"]> & {\n SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps> | undefined;\n CodeHeader?: ComponentType<CodeHeaderProps> | undefined;\n })\n | undefined;\n componentsByLanguage?:\n | Record<\n string,\n {\n CodeHeader?: ComponentType<CodeHeaderProps> | undefined;\n SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps> | undefined;\n }\n >\n | undefined;\n smooth?: boolean | undefined;\n};\n\nconst MarkdownTextInner: FC<MarkdownTextPrimitiveProps> = ({\n components: userComponents,\n componentsByLanguage,\n smooth = true,\n ...rest\n}) => {\n const { text } = useSmooth(useContentPartText(), smooth);\n\n const {\n pre = DefaultPre,\n code = DefaultCode,\n SyntaxHighlighter = DefaultCodeBlockContent,\n CodeHeader = DefaultCodeHeader,\n } = userComponents ?? {};\n const useCodeOverrideComponents = useMemo(() => {\n return {\n Pre: pre,\n Code: code,\n SyntaxHighlighter,\n CodeHeader,\n };\n }, [pre, code, SyntaxHighlighter, CodeHeader]);\n const CodeComponent = useCallbackRef((props) => (\n <CodeOverride\n components={useCodeOverrideComponents}\n componentsByLanguage={componentsByLanguage}\n {...props}\n />\n ));\n\n const components: Options[\"components\"] = useMemo(() => {\n const {\n pre = DefaultPre,\n code = DefaultCode,\n SyntaxHighlighter = DefaultCodeBlockContent,\n CodeHeader = DefaultCodeHeader,\n ...componentsRest\n } = userComponents ?? {};\n return {\n ...componentsRest,\n pre: PreOverride,\n code: CodeComponent,\n };\n }, [CodeComponent, userComponents]);\n\n return (\n <ReactMarkdown components={components} {...rest}>\n {text}\n </ReactMarkdown>\n );\n};\n\nconst MarkdownTextPrimitiveImpl: ForwardRefExoticComponent<MarkdownTextPrimitiveProps> &\n RefAttributes<MarkdownTextPrimitiveElement> = forwardRef<\n MarkdownTextPrimitiveElement,\n MarkdownTextPrimitiveProps\n>(\n (\n {\n className,\n containerProps,\n containerComponent: Container = \"div\",\n ...rest\n },\n forwardedRef,\n ) => {\n const status = useSmoothStatus();\n return (\n <Container\n data-status={status.type}\n {...containerProps}\n className={classNames(className, containerProps?.className)}\n ref={forwardedRef}\n >\n <MarkdownTextInner {...rest}></MarkdownTextInner>\n </Container>\n );\n },\n);\n\nMarkdownTextPrimitiveImpl.displayName = \"MarkdownTextPrimitive\";\n\nexport const MarkdownTextPrimitive = withSmoothContextProvider(\n MarkdownTextPrimitiveImpl,\n);\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/primitives/MarkdownText.tsx"],"sourcesContent":["\"use client\";\n\nimport { INTERNAL, useContentPartText } from \"@assistant-ui/react\";\nimport {\n ComponentRef,\n ElementType,\n FC,\n forwardRef,\n ForwardRefExoticComponent,\n RefAttributes,\n useMemo,\n type ComponentPropsWithoutRef,\n type ComponentType,\n} from \"react\";\nimport ReactMarkdown, { type Options } from \"react-markdown\";\nimport { SyntaxHighlighterProps, CodeHeaderProps } from \"../overrides/types\";\nimport { PreOverride } from \"../overrides/PreOverride\";\nimport {\n DefaultPre,\n DefaultCode,\n DefaultCodeBlockContent,\n DefaultCodeHeader,\n} from \"../overrides/defaultComponents\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { CodeOverride } from \"../overrides/CodeOverride\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport classNames from \"classnames\";\n\nconst { useSmooth, useSmoothStatus, withSmoothContextProvider } = INTERNAL;\n\ntype MarkdownTextPrimitiveElement = ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = ComponentPropsWithoutRef<typeof Primitive.div>;\n\nexport type MarkdownTextPrimitiveProps = Omit<\n Options,\n \"components\" | \"children\"\n> & {\n className?: string | undefined;\n containerProps?: Omit<PrimitiveDivProps, \"children\" | \"asChild\"> | undefined;\n containerComponent?: ElementType | undefined;\n components?:\n | (NonNullable<Options[\"components\"]> & {\n SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps> | undefined;\n CodeHeader?: ComponentType<CodeHeaderProps> | undefined;\n })\n | undefined;\n componentsByLanguage?:\n | Record<\n string,\n {\n CodeHeader?: ComponentType<CodeHeaderProps> | undefined;\n SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps> | undefined;\n }\n >\n | undefined;\n smooth?: boolean | undefined;\n};\n\nconst MarkdownTextInner: FC<MarkdownTextPrimitiveProps> = ({\n components: userComponents,\n componentsByLanguage,\n smooth = true,\n ...rest\n}) => {\n const { text } = useSmooth(useContentPartText(), smooth);\n\n const {\n pre = DefaultPre,\n code = DefaultCode,\n SyntaxHighlighter = DefaultCodeBlockContent,\n CodeHeader = DefaultCodeHeader,\n } = userComponents ?? {};\n const useCodeOverrideComponents = useMemo(() => {\n return {\n Pre: pre,\n Code: code,\n SyntaxHighlighter,\n CodeHeader,\n };\n }, [pre, code, SyntaxHighlighter, CodeHeader]);\n const CodeComponent = useCallbackRef((props) => (\n <CodeOverride\n components={useCodeOverrideComponents}\n componentsByLanguage={componentsByLanguage}\n {...props}\n />\n ));\n\n const components: Options[\"components\"] = useMemo(() => {\n const {\n pre = DefaultPre,\n code = DefaultCode,\n SyntaxHighlighter = DefaultCodeBlockContent,\n CodeHeader = DefaultCodeHeader,\n ...componentsRest\n } = userComponents ?? {};\n return {\n ...componentsRest,\n pre: PreOverride,\n code: CodeComponent,\n };\n }, [CodeComponent, userComponents]);\n\n return (\n <ReactMarkdown components={components} {...rest}>\n {text}\n </ReactMarkdown>\n );\n};\n\nconst MarkdownTextPrimitiveImpl: ForwardRefExoticComponent<MarkdownTextPrimitiveProps> &\n RefAttributes<MarkdownTextPrimitiveElement> = forwardRef<\n MarkdownTextPrimitiveElement,\n MarkdownTextPrimitiveProps\n>(\n (\n {\n className,\n containerProps,\n containerComponent: Container = \"div\",\n ...rest\n },\n forwardedRef,\n ) => {\n const status = useSmoothStatus();\n return (\n <Container\n data-status={status.type}\n {...containerProps}\n className={classNames(className, containerProps?.className)}\n ref={forwardedRef}\n >\n <MarkdownTextInner {...rest}></MarkdownTextInner>\n </Container>\n );\n },\n);\n\nMarkdownTextPrimitiveImpl.displayName = \"MarkdownTextPrimitive\";\n\nexport const MarkdownTextPrimitive = withSmoothContextProvider(\n MarkdownTextPrimitiveImpl,\n);\n"],"mappings":";AAiFI;AA/EJ,SAAS,UAAU,0BAA0B;AAC7C;AAAA,EAIE;AAAA,EAGA;AAAA,OAGK;AACP,OAAO,mBAAqC;AAE5C,SAAS,mBAAmB;AAC5B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;AAE7B,OAAO,gBAAgB;AAEvB,MAAM,EAAE,WAAW,iBAAiB,0BAA0B,IAAI;AA8BlE,MAAM,oBAAoD,CAAC;AAAA,EACzD,YAAY;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,EACT,GAAG;AACL,MAAM;AACJ,QAAM,EAAE,KAAK,IAAI,UAAU,mBAAmB,GAAG,MAAM;AAEvD,QAAM;AAAA,IACJ,MAAM;AAAA,IACN,OAAO;AAAA,IACP,oBAAoB;AAAA,IACpB,aAAa;AAAA,EACf,IAAI,kBAAkB,CAAC;AACvB,QAAM,4BAA4B,QAAQ,MAAM;AAC9C,WAAO;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN;AAAA,MACA;AAAA,IACF;AAAA,EACF,GAAG,CAAC,KAAK,MAAM,mBAAmB,UAAU,CAAC;AAC7C,QAAM,gBAAgB,eAAe,CAAC,UACpC;AAAA,IAAC;AAAA;AAAA,MACC,YAAY;AAAA,MACZ;AAAA,MACC,GAAG;AAAA;AAAA,EACN,CACD;AAED,QAAM,aAAoC,QAAQ,MAAM;AACtD,UAAM;AAAA,MACJ,KAAAA,OAAM;AAAA,MACN,MAAAC,QAAO;AAAA,MACP,mBAAAC,qBAAoB;AAAA,MACpB,YAAAC,cAAa;AAAA,MACb,GAAG;AAAA,IACL,IAAI,kBAAkB,CAAC;AACvB,WAAO;AAAA,MACL,GAAG;AAAA,MACH,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF,GAAG,CAAC,eAAe,cAAc,CAAC;AAElC,SACE,oBAAC,iBAAc,YAAyB,GAAG,MACxC,gBACH;AAEJ;AAEA,MAAM,4BAC0C;AAAA,EAI9C,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA,oBAAoB,YAAY;AAAA,IAChC,GAAG;AAAA,EACL,GACA,iBACG;AACH,UAAM,SAAS,gBAAgB;AAC/B,WACE;AAAA,MAAC;AAAA;AAAA,QACC,eAAa,OAAO;AAAA,QACnB,GAAG;AAAA,QACJ,WAAW,WAAW,WAAW,gBAAgB,SAAS;AAAA,QAC1D,KAAK;AAAA,QAEL,8BAAC,qBAAmB,GAAG,MAAM;AAAA;AAAA,IAC/B;AAAA,EAEJ;AACF;AAEA,0BAA0B,cAAc;AAEjC,MAAM,wBAAwB;AAAA,EACnC;AACF;","names":["pre","code","SyntaxHighlighter","CodeHeader"]}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@assistant-ui/react-markdown",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.1",
|
|
4
4
|
"license": "MIT",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"exports": {
|
|
6
7
|
".": {
|
|
7
8
|
"types": "./dist/index.d.ts",
|
|
8
|
-
"
|
|
9
|
-
"require": "./dist/index.js"
|
|
9
|
+
"default": "./dist/index.js"
|
|
10
10
|
},
|
|
11
11
|
"./styles/dot.css": {
|
|
12
12
|
"default": "./styles/dot.css"
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
},
|
|
15
15
|
"source": "./src/index.ts",
|
|
16
16
|
"main": "./dist/index.js",
|
|
17
|
-
"module": "./dist/index.mjs",
|
|
18
17
|
"types": "./dist/index.d.ts",
|
|
19
18
|
"files": [
|
|
20
19
|
"dist",
|
|
@@ -31,7 +30,7 @@
|
|
|
31
30
|
"react-markdown": "^10.1.0"
|
|
32
31
|
},
|
|
33
32
|
"peerDependencies": {
|
|
34
|
-
"@assistant-ui/react": "^0.
|
|
33
|
+
"@assistant-ui/react": "^0.10.1",
|
|
35
34
|
"@types/react": "*",
|
|
36
35
|
"react": "^18 || ^19 || ^19.0.0-rc"
|
|
37
36
|
},
|
|
@@ -47,9 +46,9 @@
|
|
|
47
46
|
"react": "19.1.0",
|
|
48
47
|
"react-dom": "19.1.0",
|
|
49
48
|
"tsx": "^4.19.3",
|
|
50
|
-
"@assistant-ui/
|
|
49
|
+
"@assistant-ui/react": "0.10.1",
|
|
51
50
|
"@assistant-ui/tsconfig": "0.0.0",
|
|
52
|
-
"@assistant-ui/
|
|
51
|
+
"@assistant-ui/tsbuildutils": "0.0.1"
|
|
53
52
|
},
|
|
54
53
|
"publishConfig": {
|
|
55
54
|
"access": "public",
|
|
@@ -58,7 +57,7 @@
|
|
|
58
57
|
"homepage": "https://www.assistant-ui.com/",
|
|
59
58
|
"repository": {
|
|
60
59
|
"type": "git",
|
|
61
|
-
"url": "
|
|
60
|
+
"url": "https://github.com/assistant-ui/assistant-ui/tree/main/packages/react-markdown"
|
|
62
61
|
},
|
|
63
62
|
"bugs": {
|
|
64
63
|
"url": "https://github.com/assistant-ui/assistant-ui/issues"
|
package/dist/index.mjs
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
// src/index.ts
|
|
2
|
-
import {
|
|
3
|
-
MarkdownTextPrimitive
|
|
4
|
-
} from "./primitives/MarkdownText.mjs";
|
|
5
|
-
import { useIsMarkdownCodeBlock } from "./overrides/PreOverride.mjs";
|
|
6
|
-
import { memoizeMarkdownComponents } from "./memoization.mjs";
|
|
7
|
-
export {
|
|
8
|
-
MarkdownTextPrimitive,
|
|
9
|
-
memoizeMarkdownComponents as unstable_memoizeMarkdownComponents,
|
|
10
|
-
useIsMarkdownCodeBlock
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export {\n MarkdownTextPrimitive,\n type MarkdownTextPrimitiveProps,\n} from \"./primitives/MarkdownText\";\n\nexport type {\n CodeHeaderProps,\n SyntaxHighlighterProps,\n} from \"./overrides/types\";\n\nexport { useIsMarkdownCodeBlock } from \"./overrides/PreOverride\";\nexport { memoizeMarkdownComponents as unstable_memoizeMarkdownComponents } from \"./memoization\";\n"],"mappings":";AAAA;AAAA,EACE;AAAA,OAEK;AAOP,SAAS,8BAA8B;AACvC,SAAsC,iCAA0C;","names":[]}
|
package/dist/memoization.mjs
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
// src/memoization.tsx
|
|
2
|
-
import { memo } from "react";
|
|
3
|
-
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
var areChildrenEqual = (prev, next) => {
|
|
5
|
-
if (typeof prev === "string") return prev === next;
|
|
6
|
-
return JSON.stringify(prev) === JSON.stringify(next);
|
|
7
|
-
};
|
|
8
|
-
var areNodesEqual = (prev, next) => {
|
|
9
|
-
if (!prev || !next) return false;
|
|
10
|
-
const isEqual = JSON.stringify(prev?.properties) === JSON.stringify(next?.properties) && areChildrenEqual(prev?.children, next?.children);
|
|
11
|
-
return isEqual;
|
|
12
|
-
};
|
|
13
|
-
var memoCompareNodes = (prev, next) => {
|
|
14
|
-
return areNodesEqual(prev.node, next.node);
|
|
15
|
-
};
|
|
16
|
-
var memoizeMarkdownComponents = (components = {}) => {
|
|
17
|
-
return Object.fromEntries(
|
|
18
|
-
Object.entries(components ?? {}).map(([key, value]) => {
|
|
19
|
-
if (!value) return [key, value];
|
|
20
|
-
const Component = value;
|
|
21
|
-
const WithoutNode = ({ node, ...props }) => {
|
|
22
|
-
return /* @__PURE__ */ jsx(Component, { ...props });
|
|
23
|
-
};
|
|
24
|
-
return [key, memo(WithoutNode, memoCompareNodes)];
|
|
25
|
-
})
|
|
26
|
-
);
|
|
27
|
-
};
|
|
28
|
-
export {
|
|
29
|
-
areNodesEqual,
|
|
30
|
-
memoCompareNodes,
|
|
31
|
-
memoizeMarkdownComponents
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=memoization.mjs.map
|
package/dist/memoization.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/memoization.tsx"],"sourcesContent":["import { Element } from \"hast\";\nimport { ComponentProps, ComponentType, ElementType, memo } from \"react\";\nimport { CodeHeaderProps, SyntaxHighlighterProps } from \"./overrides/types\";\n\ntype Components = {\n [Key in Extract<ElementType, string>]?: ComponentType<ComponentProps<Key>>;\n} & {\n SyntaxHighlighter?:\n | ComponentType<Omit<SyntaxHighlighterProps, \"node\">>\n | undefined;\n CodeHeader?: ComponentType<Omit<CodeHeaderProps, \"node\">> | undefined;\n};\n\nconst areChildrenEqual = (prev: string | unknown, next: string | unknown) => {\n if (typeof prev === \"string\") return prev === next;\n return JSON.stringify(prev) === JSON.stringify(next);\n};\n\nexport const areNodesEqual = (\n prev: Element | undefined,\n next: Element | undefined,\n) => {\n // TODO troubleshoot why this is triggering for code blocks\n if (!prev || !next) return false;\n const isEqual =\n JSON.stringify(prev?.properties) === JSON.stringify(next?.properties) &&\n areChildrenEqual(prev?.children, next?.children);\n return isEqual;\n};\n\nexport const memoCompareNodes = (\n prev: { node?: Element | undefined },\n next: { node?: Element | undefined },\n) => {\n return areNodesEqual(prev.node, next.node);\n};\n\nexport const memoizeMarkdownComponents = (components: Components = {}) => {\n return Object.fromEntries(\n Object.entries(components ?? {}).map(([key, value]) => {\n if (!value) return [key, value];\n\n const Component = value as ComponentType;\n const WithoutNode = ({ node, ...props }: { node?: Element }) => {\n return <Component {...props} />;\n };\n return [key, memo(WithoutNode, memoCompareNodes)];\n }),\n );\n};\n"],"mappings":";AACA,SAAqD,YAAY;AA2ClD;AA/Bf,IAAM,mBAAmB,CAAC,MAAwB,SAA2B;AAC3E,MAAI,OAAO,SAAS,SAAU,QAAO,SAAS;AAC9C,SAAO,KAAK,UAAU,IAAI,MAAM,KAAK,UAAU,IAAI;AACrD;AAEO,IAAM,gBAAgB,CAC3B,MACA,SACG;AAEH,MAAI,CAAC,QAAQ,CAAC,KAAM,QAAO;AAC3B,QAAM,UACJ,KAAK,UAAU,MAAM,UAAU,MAAM,KAAK,UAAU,MAAM,UAAU,KACpE,iBAAiB,MAAM,UAAU,MAAM,QAAQ;AACjD,SAAO;AACT;AAEO,IAAM,mBAAmB,CAC9B,MACA,SACG;AACH,SAAO,cAAc,KAAK,MAAM,KAAK,IAAI;AAC3C;AAEO,IAAM,4BAA4B,CAAC,aAAyB,CAAC,MAAM;AACxE,SAAO,OAAO;AAAA,IACZ,OAAO,QAAQ,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACrD,UAAI,CAAC,MAAO,QAAO,CAAC,KAAK,KAAK;AAE9B,YAAM,YAAY;AAClB,YAAM,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,MAA0B;AAC9D,eAAO,oBAAC,aAAW,GAAG,OAAO;AAAA,MAC/B;AACA,aAAO,CAAC,KAAK,KAAK,aAAa,gBAAgB,CAAC;AAAA,IAClD,CAAC;AAAA,EACH;AACF;","names":[]}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
// src/overrides/CodeBlock.tsx
|
|
2
|
-
import { useMemo } from "react";
|
|
3
|
-
import { DefaultCodeBlockContent } from "./defaultComponents.mjs";
|
|
4
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
-
var DefaultCodeBlock = ({
|
|
6
|
-
node,
|
|
7
|
-
components: { Pre, Code, SyntaxHighlighter, CodeHeader },
|
|
8
|
-
language,
|
|
9
|
-
code
|
|
10
|
-
}) => {
|
|
11
|
-
const components = useMemo(() => ({ Pre, Code }), [Pre, Code]);
|
|
12
|
-
const SH = !!language ? SyntaxHighlighter : DefaultCodeBlockContent;
|
|
13
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
14
|
-
/* @__PURE__ */ jsx(CodeHeader, { node, language, code }),
|
|
15
|
-
/* @__PURE__ */ jsx(
|
|
16
|
-
SH,
|
|
17
|
-
{
|
|
18
|
-
node,
|
|
19
|
-
components,
|
|
20
|
-
language: language ?? "unknown",
|
|
21
|
-
code
|
|
22
|
-
}
|
|
23
|
-
)
|
|
24
|
-
] });
|
|
25
|
-
};
|
|
26
|
-
export {
|
|
27
|
-
DefaultCodeBlock
|
|
28
|
-
};
|
|
29
|
-
//# sourceMappingURL=CodeBlock.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/overrides/CodeBlock.tsx"],"sourcesContent":["import { ComponentType, FC, useMemo } from \"react\";\n\nimport {\n CodeComponent,\n CodeHeaderProps,\n PreComponent,\n SyntaxHighlighterProps,\n} from \"./types\";\nimport { DefaultCodeBlockContent } from \"./defaultComponents\";\nimport { Element } from \"hast\";\n\nexport type CodeBlockProps = {\n node: Element | undefined;\n language: string;\n code: string;\n components: {\n Pre: PreComponent;\n Code: CodeComponent;\n CodeHeader: ComponentType<CodeHeaderProps>;\n SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;\n };\n};\n\nexport const DefaultCodeBlock: FC<CodeBlockProps> = ({\n node,\n components: { Pre, Code, SyntaxHighlighter, CodeHeader },\n language,\n code,\n}) => {\n const components = useMemo(() => ({ Pre, Code }), [Pre, Code]);\n\n const SH = !!language ? SyntaxHighlighter : DefaultCodeBlockContent;\n\n return (\n <>\n <CodeHeader node={node} language={language} code={code} />\n <SH\n node={node}\n components={components}\n language={language ?? \"unknown\"}\n code={code}\n />\n </>\n );\n};\n"],"mappings":";AAAA,SAA4B,eAAe;AAQ3C,SAAS,+BAA+B;AA0BpC,mBACE,KADF;AAXG,IAAM,mBAAuC,CAAC;AAAA,EACnD;AAAA,EACA,YAAY,EAAE,KAAK,MAAM,mBAAmB,WAAW;AAAA,EACvD;AAAA,EACA;AACF,MAAM;AACJ,QAAM,aAAa,QAAQ,OAAO,EAAE,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC;AAE7D,QAAM,KAAK,CAAC,CAAC,WAAW,oBAAoB;AAE5C,SACE,iCACE;AAAA,wBAAC,cAAW,MAAY,UAAoB,MAAY;AAAA,IACxD;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,UAAU,YAAY;AAAA,QACtB;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
// src/overrides/CodeOverride.tsx
|
|
2
|
-
import {
|
|
3
|
-
memo,
|
|
4
|
-
useContext
|
|
5
|
-
} from "react";
|
|
6
|
-
import { PreContext, useIsMarkdownCodeBlock } from "./PreOverride.mjs";
|
|
7
|
-
import { DefaultCodeBlock } from "./CodeBlock.mjs";
|
|
8
|
-
import { useCallbackRef } from "@radix-ui/react-use-callback-ref";
|
|
9
|
-
import { withDefaultProps } from "./withDefaults.mjs";
|
|
10
|
-
import { DefaultCodeBlockContent } from "./defaultComponents.mjs";
|
|
11
|
-
import { memoCompareNodes } from "../memoization.mjs";
|
|
12
|
-
import { jsx } from "react/jsx-runtime";
|
|
13
|
-
var CodeBlockOverride = ({
|
|
14
|
-
node,
|
|
15
|
-
components: {
|
|
16
|
-
Pre,
|
|
17
|
-
Code,
|
|
18
|
-
SyntaxHighlighter: FallbackSyntaxHighlighter,
|
|
19
|
-
CodeHeader: FallbackCodeHeader
|
|
20
|
-
},
|
|
21
|
-
componentsByLanguage = {},
|
|
22
|
-
children,
|
|
23
|
-
...codeProps
|
|
24
|
-
}) => {
|
|
25
|
-
const preProps = useContext(PreContext);
|
|
26
|
-
const getPreProps = withDefaultProps(preProps);
|
|
27
|
-
const WrappedPre = useCallbackRef((props) => /* @__PURE__ */ jsx(Pre, { ...getPreProps(props) }));
|
|
28
|
-
const getCodeProps = withDefaultProps(codeProps);
|
|
29
|
-
const WrappedCode = useCallbackRef((props) => /* @__PURE__ */ jsx(Code, { ...getCodeProps(props) }));
|
|
30
|
-
const language = /language-(\w+)/.exec(codeProps.className || "")?.[1] ?? "";
|
|
31
|
-
if (typeof children !== "string") {
|
|
32
|
-
return /* @__PURE__ */ jsx(
|
|
33
|
-
DefaultCodeBlockContent,
|
|
34
|
-
{
|
|
35
|
-
node,
|
|
36
|
-
components: { Pre: WrappedPre, Code: WrappedCode },
|
|
37
|
-
code: children
|
|
38
|
-
}
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
const SyntaxHighlighter = componentsByLanguage[language]?.SyntaxHighlighter ?? FallbackSyntaxHighlighter;
|
|
42
|
-
const CodeHeader = componentsByLanguage[language]?.CodeHeader ?? FallbackCodeHeader;
|
|
43
|
-
return /* @__PURE__ */ jsx(
|
|
44
|
-
DefaultCodeBlock,
|
|
45
|
-
{
|
|
46
|
-
node,
|
|
47
|
-
components: {
|
|
48
|
-
Pre: WrappedPre,
|
|
49
|
-
Code: WrappedCode,
|
|
50
|
-
SyntaxHighlighter,
|
|
51
|
-
CodeHeader
|
|
52
|
-
},
|
|
53
|
-
language: language || "unknown",
|
|
54
|
-
code: children
|
|
55
|
-
}
|
|
56
|
-
);
|
|
57
|
-
};
|
|
58
|
-
var CodeOverrideImpl = ({
|
|
59
|
-
node,
|
|
60
|
-
components,
|
|
61
|
-
componentsByLanguage,
|
|
62
|
-
...props
|
|
63
|
-
}) => {
|
|
64
|
-
const isCodeBlock = useIsMarkdownCodeBlock();
|
|
65
|
-
if (!isCodeBlock) return /* @__PURE__ */ jsx(components.Code, { ...props });
|
|
66
|
-
return /* @__PURE__ */ jsx(
|
|
67
|
-
CodeBlockOverride,
|
|
68
|
-
{
|
|
69
|
-
node,
|
|
70
|
-
components,
|
|
71
|
-
componentsByLanguage,
|
|
72
|
-
...props
|
|
73
|
-
}
|
|
74
|
-
);
|
|
75
|
-
};
|
|
76
|
-
var CodeOverride = memo(CodeOverrideImpl, (prev, next) => {
|
|
77
|
-
const isEqual = prev.components === next.components && prev.componentsByLanguage === next.componentsByLanguage && memoCompareNodes(prev, next);
|
|
78
|
-
return isEqual;
|
|
79
|
-
});
|
|
80
|
-
export {
|
|
81
|
-
CodeOverride
|
|
82
|
-
};
|
|
83
|
-
//# sourceMappingURL=CodeOverride.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/overrides/CodeOverride.tsx"],"sourcesContent":["import {\n ComponentPropsWithoutRef,\n ComponentType,\n FC,\n memo,\n useContext,\n} from \"react\";\nimport { PreContext, useIsMarkdownCodeBlock } from \"./PreOverride\";\nimport {\n CodeComponent,\n CodeHeaderProps,\n PreComponent,\n SyntaxHighlighterProps,\n} from \"./types\";\nimport { DefaultCodeBlock } from \"./CodeBlock\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { withDefaultProps } from \"./withDefaults\";\nimport { DefaultCodeBlockContent } from \"./defaultComponents\";\nimport { memoCompareNodes } from \"../memoization\";\n\nconst CodeBlockOverride: FC<CodeOverrideProps> = ({\n node,\n components: {\n Pre,\n Code,\n SyntaxHighlighter: FallbackSyntaxHighlighter,\n CodeHeader: FallbackCodeHeader,\n },\n componentsByLanguage = {},\n children,\n ...codeProps\n}) => {\n const preProps = useContext(PreContext)!;\n const getPreProps = withDefaultProps<any>(preProps);\n const WrappedPre: PreComponent = useCallbackRef((props) => (\n <Pre {...getPreProps(props)} />\n ));\n\n const getCodeProps = withDefaultProps<any>(codeProps);\n const WrappedCode: CodeComponent = useCallbackRef((props) => (\n <Code {...getCodeProps(props)} />\n ));\n\n const language = /language-(\\w+)/.exec(codeProps.className || \"\")?.[1] ?? \"\";\n\n // if the code content is not string (due to rehype plugins), return a default code block\n if (typeof children !== \"string\") {\n return (\n <DefaultCodeBlockContent\n node={node}\n components={{ Pre: WrappedPre, Code: WrappedCode }}\n code={children}\n />\n );\n }\n\n const SyntaxHighlighter: ComponentType<SyntaxHighlighterProps> =\n componentsByLanguage[language]?.SyntaxHighlighter ??\n FallbackSyntaxHighlighter;\n\n const CodeHeader: ComponentType<CodeHeaderProps> =\n componentsByLanguage[language]?.CodeHeader ?? FallbackCodeHeader;\n\n return (\n <DefaultCodeBlock\n node={node}\n components={{\n Pre: WrappedPre,\n Code: WrappedCode,\n SyntaxHighlighter,\n CodeHeader,\n }}\n language={language || \"unknown\"}\n code={children}\n />\n );\n};\n\nexport type CodeOverrideProps = ComponentPropsWithoutRef<CodeComponent> & {\n components: {\n Pre: PreComponent;\n Code: CodeComponent;\n CodeHeader: ComponentType<CodeHeaderProps>;\n SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;\n };\n componentsByLanguage?:\n | Record<\n string,\n {\n CodeHeader?: ComponentType<CodeHeaderProps>;\n SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps>;\n }\n >\n | undefined;\n};\n\nconst CodeOverrideImpl: FC<CodeOverrideProps> = ({\n node,\n components,\n componentsByLanguage,\n ...props\n}) => {\n const isCodeBlock = useIsMarkdownCodeBlock();\n if (!isCodeBlock) return <components.Code {...props} />;\n return (\n <CodeBlockOverride\n node={node}\n components={components}\n componentsByLanguage={componentsByLanguage}\n {...props}\n />\n );\n};\n\nexport const CodeOverride = memo(CodeOverrideImpl, (prev, next) => {\n const isEqual =\n prev.components === next.components &&\n prev.componentsByLanguage === next.componentsByLanguage &&\n memoCompareNodes(prev, next);\n return isEqual;\n});\n"],"mappings":";AAAA;AAAA,EAIE;AAAA,EACA;AAAA,OACK;AACP,SAAS,YAAY,8BAA8B;AAOnD,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AACjC,SAAS,+BAA+B;AACxC,SAAS,wBAAwB;AAiB7B;AAfJ,IAAM,oBAA2C,CAAC;AAAA,EAChD;AAAA,EACA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA,mBAAmB;AAAA,IACnB,YAAY;AAAA,EACd;AAAA,EACA,uBAAuB,CAAC;AAAA,EACxB;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,WAAW,WAAW,UAAU;AACtC,QAAM,cAAc,iBAAsB,QAAQ;AAClD,QAAM,aAA2B,eAAe,CAAC,UAC/C,oBAAC,OAAK,GAAG,YAAY,KAAK,GAAG,CAC9B;AAED,QAAM,eAAe,iBAAsB,SAAS;AACpD,QAAM,cAA6B,eAAe,CAAC,UACjD,oBAAC,QAAM,GAAG,aAAa,KAAK,GAAG,CAChC;AAED,QAAM,WAAW,iBAAiB,KAAK,UAAU,aAAa,EAAE,IAAI,CAAC,KAAK;AAG1E,MAAI,OAAO,aAAa,UAAU;AAChC,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,YAAY,EAAE,KAAK,YAAY,MAAM,YAAY;AAAA,QACjD,MAAM;AAAA;AAAA,IACR;AAAA,EAEJ;AAEA,QAAM,oBACJ,qBAAqB,QAAQ,GAAG,qBAChC;AAEF,QAAM,aACJ,qBAAqB,QAAQ,GAAG,cAAc;AAEhD,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,YAAY;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MACF;AAAA,MACA,UAAU,YAAY;AAAA,MACtB,MAAM;AAAA;AAAA,EACR;AAEJ;AAoBA,IAAM,mBAA0C,CAAC;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,cAAc,uBAAuB;AAC3C,MAAI,CAAC,YAAa,QAAO,oBAAC,WAAW,MAAX,EAAiB,GAAG,OAAO;AACrD,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEO,IAAM,eAAe,KAAK,kBAAkB,CAAC,MAAM,SAAS;AACjE,QAAM,UACJ,KAAK,eAAe,KAAK,cACzB,KAAK,yBAAyB,KAAK,wBACnC,iBAAiB,MAAM,IAAI;AAC7B,SAAO;AACT,CAAC;","names":[]}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
// src/overrides/PreOverride.tsx
|
|
4
|
-
import {
|
|
5
|
-
createContext,
|
|
6
|
-
useContext,
|
|
7
|
-
memo
|
|
8
|
-
} from "react";
|
|
9
|
-
import { memoCompareNodes } from "../memoization.mjs";
|
|
10
|
-
import { jsx } from "react/jsx-runtime";
|
|
11
|
-
var PreContext = createContext(null);
|
|
12
|
-
var useIsMarkdownCodeBlock = () => {
|
|
13
|
-
return useContext(PreContext) !== null;
|
|
14
|
-
};
|
|
15
|
-
var PreOverrideImpl = ({ children, ...rest }) => {
|
|
16
|
-
return /* @__PURE__ */ jsx(PreContext.Provider, { value: rest, children });
|
|
17
|
-
};
|
|
18
|
-
var PreOverride = memo(PreOverrideImpl, memoCompareNodes);
|
|
19
|
-
export {
|
|
20
|
-
PreContext,
|
|
21
|
-
PreOverride,
|
|
22
|
-
useIsMarkdownCodeBlock
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=PreOverride.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/overrides/PreOverride.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n createContext,\n ComponentPropsWithoutRef,\n useContext,\n memo,\n} from \"react\";\nimport { PreComponent } from \"./types\";\nimport { memoCompareNodes } from \"../memoization\";\n\nexport const PreContext = createContext<Omit<\n ComponentPropsWithoutRef<PreComponent>,\n \"children\"\n> | null>(null);\n\nexport const useIsMarkdownCodeBlock = () => {\n return useContext(PreContext) !== null;\n};\n\nconst PreOverrideImpl: PreComponent = ({ children, ...rest }) => {\n return <PreContext.Provider value={rest}>{children}</PreContext.Provider>;\n};\n\nexport const PreOverride = memo(PreOverrideImpl, memoCompareNodes);\n"],"mappings":";;;AAEA;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,wBAAwB;AAYxB;AAVF,IAAM,aAAa,cAGhB,IAAI;AAEP,IAAM,yBAAyB,MAAM;AAC1C,SAAO,WAAW,UAAU,MAAM;AACpC;AAEA,IAAM,kBAAgC,CAAC,EAAE,UAAU,GAAG,KAAK,MAAM;AAC/D,SAAO,oBAAC,WAAW,UAAX,EAAoB,OAAO,MAAO,UAAS;AACrD;AAEO,IAAM,cAAc,KAAK,iBAAiB,gBAAgB;","names":[]}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// src/overrides/defaultComponents.tsx
|
|
2
|
-
import { jsx } from "react/jsx-runtime";
|
|
3
|
-
var DefaultPre = ({ node, ...rest }) => /* @__PURE__ */ jsx("pre", { ...rest });
|
|
4
|
-
var DefaultCode = ({ node, ...rest }) => /* @__PURE__ */ jsx("code", { ...rest });
|
|
5
|
-
var DefaultCodeBlockContent = ({ node, components: { Pre, Code }, code }) => /* @__PURE__ */ jsx(Pre, { children: /* @__PURE__ */ jsx(Code, { node, children: code }) });
|
|
6
|
-
var DefaultCodeHeader = () => null;
|
|
7
|
-
export {
|
|
8
|
-
DefaultCode,
|
|
9
|
-
DefaultCodeBlockContent,
|
|
10
|
-
DefaultCodeHeader,
|
|
11
|
-
DefaultPre
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=defaultComponents.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/overrides/defaultComponents.tsx"],"sourcesContent":["import type { ComponentType, ReactNode } from \"react\";\nimport { PreComponent, CodeComponent, CodeHeaderProps } from \"./types\";\nimport { Element } from \"hast\";\n\nexport const DefaultPre: PreComponent = ({ node, ...rest }) => (\n <pre {...rest} />\n);\n\nexport const DefaultCode: CodeComponent = ({ node, ...rest }) => (\n <code {...rest} />\n);\n\nexport const DefaultCodeBlockContent: ComponentType<{\n node: Element | undefined;\n components: { Pre: PreComponent; Code: CodeComponent };\n code: string | ReactNode | undefined;\n}> = ({ node, components: { Pre, Code }, code }) => (\n <Pre>\n <Code node={node}>{code}</Code>\n </Pre>\n);\n\nexport const DefaultCodeHeader: ComponentType<CodeHeaderProps> = () => null;\n"],"mappings":";AAKE;AADK,IAAM,aAA2B,CAAC,EAAE,MAAM,GAAG,KAAK,MACvD,oBAAC,SAAK,GAAG,MAAM;AAGV,IAAM,cAA6B,CAAC,EAAE,MAAM,GAAG,KAAK,MACzD,oBAAC,UAAM,GAAG,MAAM;AAGX,IAAM,0BAIR,CAAC,EAAE,MAAM,YAAY,EAAE,KAAK,KAAK,GAAG,KAAK,MAC5C,oBAAC,OACC,8BAAC,QAAK,MAAa,gBAAK,GAC1B;AAGK,IAAM,oBAAoD,MAAM;","names":[]}
|
package/dist/overrides/types.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=types.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
// src/overrides/withDefaults.tsx
|
|
2
|
-
import classNames from "classnames";
|
|
3
|
-
var withDefaultProps = ({
|
|
4
|
-
className,
|
|
5
|
-
...defaultProps
|
|
6
|
-
}) => ({ className: classNameProp, ...props }) => {
|
|
7
|
-
return {
|
|
8
|
-
className: classNames(className, classNameProp),
|
|
9
|
-
...defaultProps,
|
|
10
|
-
...props
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
-
export {
|
|
14
|
-
withDefaultProps
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=withDefaults.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/overrides/withDefaults.tsx"],"sourcesContent":["import classNames from \"classnames\";\n\nexport const withDefaultProps =\n <TProps extends { className?: string | undefined }>({\n className,\n ...defaultProps\n }: Partial<TProps>) =>\n ({ className: classNameProp, ...props }: TProps) => {\n return {\n className: classNames(className, classNameProp),\n ...defaultProps,\n ...props,\n } as TProps;\n };\n"],"mappings":";AAAA,OAAO,gBAAgB;AAEhB,IAAM,mBACX,CAAoD;AAAA,EAClD;AAAA,EACA,GAAG;AACL,MACA,CAAC,EAAE,WAAW,eAAe,GAAG,MAAM,MAAc;AAClD,SAAO;AAAA,IACL,WAAW,WAAW,WAAW,aAAa;AAAA,IAC9C,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF;","names":[]}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
// src/primitives/MarkdownText.tsx
|
|
4
|
-
import { INTERNAL, useContentPartText } from "@assistant-ui/react";
|
|
5
|
-
import {
|
|
6
|
-
forwardRef,
|
|
7
|
-
useMemo
|
|
8
|
-
} from "react";
|
|
9
|
-
import ReactMarkdown from "react-markdown";
|
|
10
|
-
import { PreOverride } from "../overrides/PreOverride.mjs";
|
|
11
|
-
import {
|
|
12
|
-
DefaultPre,
|
|
13
|
-
DefaultCode,
|
|
14
|
-
DefaultCodeBlockContent,
|
|
15
|
-
DefaultCodeHeader
|
|
16
|
-
} from "../overrides/defaultComponents.mjs";
|
|
17
|
-
import { useCallbackRef } from "@radix-ui/react-use-callback-ref";
|
|
18
|
-
import { CodeOverride } from "../overrides/CodeOverride.mjs";
|
|
19
|
-
import classNames from "classnames";
|
|
20
|
-
import { jsx } from "react/jsx-runtime";
|
|
21
|
-
var { useSmooth, useSmoothStatus, withSmoothContextProvider } = INTERNAL;
|
|
22
|
-
var MarkdownTextInner = ({
|
|
23
|
-
components: userComponents,
|
|
24
|
-
componentsByLanguage,
|
|
25
|
-
smooth = true,
|
|
26
|
-
...rest
|
|
27
|
-
}) => {
|
|
28
|
-
const { text } = useSmooth(useContentPartText(), smooth);
|
|
29
|
-
const {
|
|
30
|
-
pre = DefaultPre,
|
|
31
|
-
code = DefaultCode,
|
|
32
|
-
SyntaxHighlighter = DefaultCodeBlockContent,
|
|
33
|
-
CodeHeader = DefaultCodeHeader
|
|
34
|
-
} = userComponents ?? {};
|
|
35
|
-
const useCodeOverrideComponents = useMemo(() => {
|
|
36
|
-
return {
|
|
37
|
-
Pre: pre,
|
|
38
|
-
Code: code,
|
|
39
|
-
SyntaxHighlighter,
|
|
40
|
-
CodeHeader
|
|
41
|
-
};
|
|
42
|
-
}, [pre, code, SyntaxHighlighter, CodeHeader]);
|
|
43
|
-
const CodeComponent = useCallbackRef((props) => /* @__PURE__ */ jsx(
|
|
44
|
-
CodeOverride,
|
|
45
|
-
{
|
|
46
|
-
components: useCodeOverrideComponents,
|
|
47
|
-
componentsByLanguage,
|
|
48
|
-
...props
|
|
49
|
-
}
|
|
50
|
-
));
|
|
51
|
-
const components = useMemo(() => {
|
|
52
|
-
const {
|
|
53
|
-
pre: pre2 = DefaultPre,
|
|
54
|
-
code: code2 = DefaultCode,
|
|
55
|
-
SyntaxHighlighter: SyntaxHighlighter2 = DefaultCodeBlockContent,
|
|
56
|
-
CodeHeader: CodeHeader2 = DefaultCodeHeader,
|
|
57
|
-
...componentsRest
|
|
58
|
-
} = userComponents ?? {};
|
|
59
|
-
return {
|
|
60
|
-
...componentsRest,
|
|
61
|
-
pre: PreOverride,
|
|
62
|
-
code: CodeComponent
|
|
63
|
-
};
|
|
64
|
-
}, [CodeComponent, userComponents]);
|
|
65
|
-
return /* @__PURE__ */ jsx(ReactMarkdown, { components, ...rest, children: text });
|
|
66
|
-
};
|
|
67
|
-
var MarkdownTextPrimitiveImpl = forwardRef(
|
|
68
|
-
({
|
|
69
|
-
className,
|
|
70
|
-
containerProps,
|
|
71
|
-
containerComponent: Container = "div",
|
|
72
|
-
...rest
|
|
73
|
-
}, forwardedRef) => {
|
|
74
|
-
const status = useSmoothStatus();
|
|
75
|
-
return /* @__PURE__ */ jsx(
|
|
76
|
-
Container,
|
|
77
|
-
{
|
|
78
|
-
"data-status": status.type,
|
|
79
|
-
...containerProps,
|
|
80
|
-
className: classNames(className, containerProps?.className),
|
|
81
|
-
ref: forwardedRef,
|
|
82
|
-
children: /* @__PURE__ */ jsx(MarkdownTextInner, { ...rest })
|
|
83
|
-
}
|
|
84
|
-
);
|
|
85
|
-
}
|
|
86
|
-
);
|
|
87
|
-
MarkdownTextPrimitiveImpl.displayName = "MarkdownTextPrimitive";
|
|
88
|
-
var MarkdownTextPrimitive = withSmoothContextProvider(
|
|
89
|
-
MarkdownTextPrimitiveImpl
|
|
90
|
-
);
|
|
91
|
-
export {
|
|
92
|
-
MarkdownTextPrimitive
|
|
93
|
-
};
|
|
94
|
-
//# sourceMappingURL=MarkdownText.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/primitives/MarkdownText.tsx"],"sourcesContent":["\"use client\";\n\nimport { INTERNAL, useContentPartText } from \"@assistant-ui/react\";\nimport {\n ComponentRef,\n ElementType,\n FC,\n forwardRef,\n ForwardRefExoticComponent,\n RefAttributes,\n useMemo,\n type ComponentPropsWithoutRef,\n type ComponentType,\n} from \"react\";\nimport ReactMarkdown, { type Options } from \"react-markdown\";\nimport { SyntaxHighlighterProps, CodeHeaderProps } from \"../overrides/types\";\nimport { PreOverride } from \"../overrides/PreOverride\";\nimport {\n DefaultPre,\n DefaultCode,\n DefaultCodeBlockContent,\n DefaultCodeHeader,\n} from \"../overrides/defaultComponents\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { CodeOverride } from \"../overrides/CodeOverride\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport classNames from \"classnames\";\n\nconst { useSmooth, useSmoothStatus, withSmoothContextProvider } = INTERNAL;\n\ntype MarkdownTextPrimitiveElement = ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = ComponentPropsWithoutRef<typeof Primitive.div>;\n\nexport type MarkdownTextPrimitiveProps = Omit<\n Options,\n \"components\" | \"children\"\n> & {\n className?: string | undefined;\n containerProps?: Omit<PrimitiveDivProps, \"children\" | \"asChild\"> | undefined;\n containerComponent?: ElementType | undefined;\n components?:\n | (NonNullable<Options[\"components\"]> & {\n SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps> | undefined;\n CodeHeader?: ComponentType<CodeHeaderProps> | undefined;\n })\n | undefined;\n componentsByLanguage?:\n | Record<\n string,\n {\n CodeHeader?: ComponentType<CodeHeaderProps> | undefined;\n SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps> | undefined;\n }\n >\n | undefined;\n smooth?: boolean | undefined;\n};\n\nconst MarkdownTextInner: FC<MarkdownTextPrimitiveProps> = ({\n components: userComponents,\n componentsByLanguage,\n smooth = true,\n ...rest\n}) => {\n const { text } = useSmooth(useContentPartText(), smooth);\n\n const {\n pre = DefaultPre,\n code = DefaultCode,\n SyntaxHighlighter = DefaultCodeBlockContent,\n CodeHeader = DefaultCodeHeader,\n } = userComponents ?? {};\n const useCodeOverrideComponents = useMemo(() => {\n return {\n Pre: pre,\n Code: code,\n SyntaxHighlighter,\n CodeHeader,\n };\n }, [pre, code, SyntaxHighlighter, CodeHeader]);\n const CodeComponent = useCallbackRef((props) => (\n <CodeOverride\n components={useCodeOverrideComponents}\n componentsByLanguage={componentsByLanguage}\n {...props}\n />\n ));\n\n const components: Options[\"components\"] = useMemo(() => {\n const {\n pre = DefaultPre,\n code = DefaultCode,\n SyntaxHighlighter = DefaultCodeBlockContent,\n CodeHeader = DefaultCodeHeader,\n ...componentsRest\n } = userComponents ?? {};\n return {\n ...componentsRest,\n pre: PreOverride,\n code: CodeComponent,\n };\n }, [CodeComponent, userComponents]);\n\n return (\n <ReactMarkdown components={components} {...rest}>\n {text}\n </ReactMarkdown>\n );\n};\n\nconst MarkdownTextPrimitiveImpl: ForwardRefExoticComponent<MarkdownTextPrimitiveProps> &\n RefAttributes<MarkdownTextPrimitiveElement> = forwardRef<\n MarkdownTextPrimitiveElement,\n MarkdownTextPrimitiveProps\n>(\n (\n {\n className,\n containerProps,\n containerComponent: Container = \"div\",\n ...rest\n },\n forwardedRef,\n ) => {\n const status = useSmoothStatus();\n return (\n <Container\n data-status={status.type}\n {...containerProps}\n className={classNames(className, containerProps?.className)}\n ref={forwardedRef}\n >\n <MarkdownTextInner {...rest}></MarkdownTextInner>\n </Container>\n );\n },\n);\n\nMarkdownTextPrimitiveImpl.displayName = \"MarkdownTextPrimitive\";\n\nexport const MarkdownTextPrimitive = withSmoothContextProvider(\n MarkdownTextPrimitiveImpl,\n);\n"],"mappings":";;;AAEA,SAAS,UAAU,0BAA0B;AAC7C;AAAA,EAIE;AAAA,EAGA;AAAA,OAGK;AACP,OAAO,mBAAqC;AAE5C,SAAS,mBAAmB;AAC5B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;AAE7B,OAAO,gBAAgB;AAuDnB;AArDJ,IAAM,EAAE,WAAW,iBAAiB,0BAA0B,IAAI;AA8BlE,IAAM,oBAAoD,CAAC;AAAA,EACzD,YAAY;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,EACT,GAAG;AACL,MAAM;AACJ,QAAM,EAAE,KAAK,IAAI,UAAU,mBAAmB,GAAG,MAAM;AAEvD,QAAM;AAAA,IACJ,MAAM;AAAA,IACN,OAAO;AAAA,IACP,oBAAoB;AAAA,IACpB,aAAa;AAAA,EACf,IAAI,kBAAkB,CAAC;AACvB,QAAM,4BAA4B,QAAQ,MAAM;AAC9C,WAAO;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN;AAAA,MACA;AAAA,IACF;AAAA,EACF,GAAG,CAAC,KAAK,MAAM,mBAAmB,UAAU,CAAC;AAC7C,QAAM,gBAAgB,eAAe,CAAC,UACpC;AAAA,IAAC;AAAA;AAAA,MACC,YAAY;AAAA,MACZ;AAAA,MACC,GAAG;AAAA;AAAA,EACN,CACD;AAED,QAAM,aAAoC,QAAQ,MAAM;AACtD,UAAM;AAAA,MACJ,KAAAA,OAAM;AAAA,MACN,MAAAC,QAAO;AAAA,MACP,mBAAAC,qBAAoB;AAAA,MACpB,YAAAC,cAAa;AAAA,MACb,GAAG;AAAA,IACL,IAAI,kBAAkB,CAAC;AACvB,WAAO;AAAA,MACL,GAAG;AAAA,MACH,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF,GAAG,CAAC,eAAe,cAAc,CAAC;AAElC,SACE,oBAAC,iBAAc,YAAyB,GAAG,MACxC,gBACH;AAEJ;AAEA,IAAM,4BAC0C;AAAA,EAI9C,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA,oBAAoB,YAAY;AAAA,IAChC,GAAG;AAAA,EACL,GACA,iBACG;AACH,UAAM,SAAS,gBAAgB;AAC/B,WACE;AAAA,MAAC;AAAA;AAAA,QACC,eAAa,OAAO;AAAA,QACnB,GAAG;AAAA,QACJ,WAAW,WAAW,WAAW,gBAAgB,SAAS;AAAA,QAC1D,KAAK;AAAA,QAEL,8BAAC,qBAAmB,GAAG,MAAM;AAAA;AAAA,IAC/B;AAAA,EAEJ;AACF;AAEA,0BAA0B,cAAc;AAEjC,IAAM,wBAAwB;AAAA,EACnC;AACF;","names":["pre","code","SyntaxHighlighter","CodeHeader"]}
|