@assistant-ui/react-markdown 0.7.4 → 0.7.6
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/overrides/CodeBlock.d.ts +2 -0
- package/dist/overrides/CodeBlock.d.ts.map +1 -1
- package/dist/overrides/CodeBlock.js +4 -2
- package/dist/overrides/CodeBlock.js.map +1 -1
- package/dist/overrides/CodeBlock.mjs +4 -2
- package/dist/overrides/CodeBlock.mjs.map +1 -1
- package/dist/overrides/CodeOverride.d.ts +4 -4
- package/dist/overrides/CodeOverride.d.ts.map +1 -1
- package/dist/overrides/CodeOverride.js +18 -7
- package/dist/overrides/CodeOverride.js.map +1 -1
- package/dist/overrides/CodeOverride.mjs +18 -7
- package/dist/overrides/CodeOverride.mjs.map +1 -1
- package/dist/overrides/PreOverride.d.ts +3 -2
- package/dist/overrides/PreOverride.d.ts.map +1 -1
- package/dist/overrides/defaultComponents.d.ts +2 -0
- package/dist/overrides/defaultComponents.d.ts.map +1 -1
- package/dist/overrides/defaultComponents.js +1 -1
- package/dist/overrides/defaultComponents.js.map +1 -1
- package/dist/overrides/defaultComponents.mjs +1 -1
- package/dist/overrides/defaultComponents.mjs.map +1 -1
- package/dist/overrides/types.d.ts +8 -3
- package/dist/overrides/types.d.ts.map +1 -1
- package/dist/overrides/types.js.map +1 -1
- package/dist/primitives/MarkdownText.d.ts +17 -13
- package/dist/primitives/MarkdownText.d.ts.map +1 -1
- package/dist/primitives/MarkdownText.js +5 -3
- package/dist/primitives/MarkdownText.js.map +1 -1
- package/dist/primitives/MarkdownText.mjs +5 -3
- package/dist/primitives/MarkdownText.mjs.map +1 -1
- package/package.json +11 -10
- package/src/overrides/CodeBlock.tsx +4 -0
- package/src/overrides/CodeOverride.tsx +25 -12
- package/src/overrides/defaultComponents.tsx +5 -3
- package/src/overrides/types.ts +6 -5
- package/src/primitives/MarkdownText.tsx +27 -18
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ComponentType, FC } from "react";
|
|
2
2
|
import { CodeComponent, CodeHeaderProps, PreComponent, SyntaxHighlighterProps } from "./types";
|
|
3
|
+
import { Element } from "hast";
|
|
3
4
|
export type CodeBlockProps = {
|
|
4
5
|
language: string;
|
|
5
6
|
code: string;
|
|
@@ -9,6 +10,7 @@ export type CodeBlockProps = {
|
|
|
9
10
|
CodeHeader: ComponentType<CodeHeaderProps>;
|
|
10
11
|
SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;
|
|
11
12
|
};
|
|
13
|
+
node: Element;
|
|
12
14
|
};
|
|
13
15
|
export declare const DefaultCodeBlock: FC<CodeBlockProps>;
|
|
14
16
|
//# sourceMappingURL=CodeBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../src/overrides/CodeBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,EAAE,EAAW,MAAM,OAAO,CAAC;AAEnD,OAAO,EACL,aAAa,EACb,eAAe,EACf,YAAY,EACZ,sBAAsB,EACvB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../src/overrides/CodeBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,EAAE,EAAW,MAAM,OAAO,CAAC;AAEnD,OAAO,EACL,aAAa,EACb,eAAe,EACf,YAAY,EACZ,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE;QACV,GAAG,EAAE,YAAY,CAAC;QAClB,IAAI,EAAE,aAAa,CAAC;QACpB,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QAC3C,iBAAiB,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;KAC1D,CAAC;IACF,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,cAAc,CAqB/C,CAAC"}
|
|
@@ -29,7 +29,8 @@ var import_jsx_runtime = require("react/jsx-runtime");
|
|
|
29
29
|
var DefaultCodeBlock = ({
|
|
30
30
|
components: { Pre, Code, SyntaxHighlighter, CodeHeader },
|
|
31
31
|
language,
|
|
32
|
-
code
|
|
32
|
+
code,
|
|
33
|
+
node
|
|
33
34
|
}) => {
|
|
34
35
|
const components = (0, import_react.useMemo)(() => ({ Pre, Code }), [Pre, Code]);
|
|
35
36
|
const SH = !!language ? SyntaxHighlighter : import_defaultComponents.DefaultCodeBlockContent;
|
|
@@ -40,7 +41,8 @@ var DefaultCodeBlock = ({
|
|
|
40
41
|
{
|
|
41
42
|
components,
|
|
42
43
|
language: language ?? "unknown",
|
|
43
|
-
code
|
|
44
|
+
code,
|
|
45
|
+
node
|
|
44
46
|
}
|
|
45
47
|
)
|
|
46
48
|
] });
|
|
@@ -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\";\n\nexport type CodeBlockProps = {\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 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 language={language} code={code} />\n <SH\n components={components}\n language={language ?? \"unknown\"}\n code={code}\n />\n </>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA2C;AAQ3C,+BAAwC;
|
|
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 language: string;\n code: string;\n components: {\n Pre: PreComponent;\n Code: CodeComponent;\n CodeHeader: ComponentType<CodeHeaderProps>;\n SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;\n };\n node: Element;\n};\n\nexport const DefaultCodeBlock: FC<CodeBlockProps> = ({\n components: { Pre, Code, SyntaxHighlighter, CodeHeader },\n language,\n code,\n node,\n}) => {\n const components = useMemo(() => ({ Pre, Code }), [Pre, Code]);\n\n const SH = !!language ? SyntaxHighlighter : DefaultCodeBlockContent;\n\n return (\n <>\n <CodeHeader language={language} code={code} />\n <SH\n components={components}\n language={language ?? \"unknown\"}\n code={code}\n node={node}\n />\n </>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA2C;AAQ3C,+BAAwC;AA0BpC;AAXG,IAAM,mBAAuC,CAAC;AAAA,EACnD,YAAY,EAAE,KAAK,MAAM,mBAAmB,WAAW;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,iBAAa,sBAAQ,OAAO,EAAE,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC;AAE7D,QAAM,KAAK,CAAC,CAAC,WAAW,oBAAoB;AAE5C,SACE,4EACE;AAAA,gDAAC,cAAW,UAAoB,MAAY;AAAA,IAC5C;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,UAAU,YAAY;AAAA,QACtB;AAAA,QACA;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -5,7 +5,8 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
|
5
5
|
var DefaultCodeBlock = ({
|
|
6
6
|
components: { Pre, Code, SyntaxHighlighter, CodeHeader },
|
|
7
7
|
language,
|
|
8
|
-
code
|
|
8
|
+
code,
|
|
9
|
+
node
|
|
9
10
|
}) => {
|
|
10
11
|
const components = useMemo(() => ({ Pre, Code }), [Pre, Code]);
|
|
11
12
|
const SH = !!language ? SyntaxHighlighter : DefaultCodeBlockContent;
|
|
@@ -16,7 +17,8 @@ var DefaultCodeBlock = ({
|
|
|
16
17
|
{
|
|
17
18
|
components,
|
|
18
19
|
language: language ?? "unknown",
|
|
19
|
-
code
|
|
20
|
+
code,
|
|
21
|
+
node
|
|
20
22
|
}
|
|
21
23
|
)
|
|
22
24
|
] });
|
|
@@ -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\";\n\nexport type CodeBlockProps = {\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 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 language={language} code={code} />\n <SH\n components={components}\n language={language ?? \"unknown\"}\n code={code}\n />\n </>\n );\n};\n"],"mappings":";AAAA,SAA4B,eAAe;AAQ3C,SAAS,+BAA+B;
|
|
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 language: string;\n code: string;\n components: {\n Pre: PreComponent;\n Code: CodeComponent;\n CodeHeader: ComponentType<CodeHeaderProps>;\n SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;\n };\n node: Element;\n};\n\nexport const DefaultCodeBlock: FC<CodeBlockProps> = ({\n components: { Pre, Code, SyntaxHighlighter, CodeHeader },\n language,\n code,\n node,\n}) => {\n const components = useMemo(() => ({ Pre, Code }), [Pre, Code]);\n\n const SH = !!language ? SyntaxHighlighter : DefaultCodeBlockContent;\n\n return (\n <>\n <CodeHeader language={language} code={code} />\n <SH\n components={components}\n language={language ?? \"unknown\"}\n code={code}\n node={node}\n />\n </>\n );\n};\n"],"mappings":";AAAA,SAA4B,eAAe;AAQ3C,SAAS,+BAA+B;AA0BpC,mBACE,KADF;AAXG,IAAM,mBAAuC,CAAC;AAAA,EACnD,YAAY,EAAE,KAAK,MAAM,mBAAmB,WAAW;AAAA,EACvD;AAAA,EACA;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,UAAoB,MAAY;AAAA,IAC5C;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,UAAU,YAAY;AAAA,QACtB;AAAA,QACA;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -6,11 +6,11 @@ export type CodeOverrideProps = ComponentPropsWithoutRef<CodeComponent> & {
|
|
|
6
6
|
Code: CodeComponent;
|
|
7
7
|
CodeHeader: ComponentType<CodeHeaderProps>;
|
|
8
8
|
SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;
|
|
9
|
-
by_language?: Record<string, {
|
|
10
|
-
CodeHeader?: ComponentType<CodeHeaderProps>;
|
|
11
|
-
SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps>;
|
|
12
|
-
}>;
|
|
13
9
|
};
|
|
10
|
+
componentsByLanguage?: Record<string, {
|
|
11
|
+
CodeHeader?: ComponentType<CodeHeaderProps>;
|
|
12
|
+
SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps>;
|
|
13
|
+
}> | undefined;
|
|
14
14
|
};
|
|
15
15
|
export declare const CodeOverride: FC<CodeOverrideProps>;
|
|
16
16
|
//# sourceMappingURL=CodeOverride.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeOverride.d.ts","sourceRoot":"","sources":["../../src/overrides/CodeOverride.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,EAAE,EAAc,MAAM,OAAO,CAAC;AAEhF,OAAO,EACL,aAAa,EACb,eAAe,EACf,YAAY,EACZ,sBAAsB,EACvB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"CodeOverride.d.ts","sourceRoot":"","sources":["../../src/overrides/CodeOverride.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,EAAE,EAAc,MAAM,OAAO,CAAC;AAEhF,OAAO,EACL,aAAa,EACb,eAAe,EACf,YAAY,EACZ,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAgEjB,MAAM,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,aAAa,CAAC,GAAG;IACxE,UAAU,EAAE;QACV,GAAG,EAAE,YAAY,CAAC;QAClB,IAAI,EAAE,aAAa,CAAC;QACpB,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QAC3C,iBAAiB,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;KAC1D,CAAC;IACF,oBAAoB,CAAC,EACjB,MAAM,CACJ,MAAM,EACN;QACE,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QAC5C,iBAAiB,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;KAC3D,CACF,GACD,SAAS,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAc9C,CAAC"}
|
|
@@ -35,10 +35,11 @@ var CodeBlockOverride = ({
|
|
|
35
35
|
Pre,
|
|
36
36
|
Code,
|
|
37
37
|
SyntaxHighlighter: FallbackSyntaxHighlighter,
|
|
38
|
-
CodeHeader: FallbackCodeHeader
|
|
39
|
-
by_language = {}
|
|
38
|
+
CodeHeader: FallbackCodeHeader
|
|
40
39
|
},
|
|
40
|
+
componentsByLanguage = {},
|
|
41
41
|
children,
|
|
42
|
+
node,
|
|
42
43
|
...codeProps
|
|
43
44
|
}) => {
|
|
44
45
|
const preProps = (0, import_react.useContext)(import_PreOverride.PreContext);
|
|
@@ -52,12 +53,13 @@ var CodeBlockOverride = ({
|
|
|
52
53
|
import_defaultComponents.DefaultCodeBlockContent,
|
|
53
54
|
{
|
|
54
55
|
components: { Pre: WrappedPre, Code: WrappedCode },
|
|
55
|
-
code: children
|
|
56
|
+
code: children,
|
|
57
|
+
node
|
|
56
58
|
}
|
|
57
59
|
);
|
|
58
60
|
}
|
|
59
|
-
const SyntaxHighlighter =
|
|
60
|
-
const CodeHeader =
|
|
61
|
+
const SyntaxHighlighter = componentsByLanguage[language]?.SyntaxHighlighter ?? FallbackSyntaxHighlighter;
|
|
62
|
+
const CodeHeader = componentsByLanguage[language]?.CodeHeader ?? FallbackCodeHeader;
|
|
61
63
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
62
64
|
import_CodeBlock.DefaultCodeBlock,
|
|
63
65
|
{
|
|
@@ -68,17 +70,26 @@ var CodeBlockOverride = ({
|
|
|
68
70
|
CodeHeader
|
|
69
71
|
},
|
|
70
72
|
language: language || "unknown",
|
|
71
|
-
code: children
|
|
73
|
+
code: children,
|
|
74
|
+
node
|
|
72
75
|
}
|
|
73
76
|
);
|
|
74
77
|
};
|
|
75
78
|
var CodeOverride = ({
|
|
76
79
|
components,
|
|
80
|
+
componentsByLanguage,
|
|
77
81
|
...props
|
|
78
82
|
}) => {
|
|
79
83
|
const preProps = (0, import_react.useContext)(import_PreOverride.PreContext);
|
|
80
84
|
if (!preProps) return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(components.Code, { ...props });
|
|
81
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
85
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
86
|
+
CodeBlockOverride,
|
|
87
|
+
{
|
|
88
|
+
components,
|
|
89
|
+
componentsByLanguage,
|
|
90
|
+
...props
|
|
91
|
+
}
|
|
92
|
+
);
|
|
82
93
|
};
|
|
83
94
|
// Annotate the CommonJS export names for ESM import in node:
|
|
84
95
|
0 && (module.exports = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/overrides/CodeOverride.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, ComponentType, FC, useContext } from \"react\";\nimport { PreContext } 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\";\n\nconst CodeBlockOverride: FC<CodeOverrideProps> = ({\n components: {\n Pre,\n Code,\n SyntaxHighlighter: FallbackSyntaxHighlighter,\n CodeHeader: FallbackCodeHeader,\n
|
|
1
|
+
{"version":3,"sources":["../../src/overrides/CodeOverride.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, ComponentType, FC, useContext } from \"react\";\nimport { PreContext } 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\";\n\nconst CodeBlockOverride: FC<CodeOverrideProps> = ({\n components: {\n Pre,\n Code,\n SyntaxHighlighter: FallbackSyntaxHighlighter,\n CodeHeader: FallbackCodeHeader,\n },\n componentsByLanguage = {},\n children,\n node,\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 components={{ Pre: WrappedPre, Code: WrappedCode }}\n code={children}\n node={node}\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 components={{\n Pre: WrappedPre,\n Code: WrappedCode,\n SyntaxHighlighter,\n CodeHeader,\n }}\n language={language || \"unknown\"}\n code={children}\n node={node}\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\nexport const CodeOverride: FC<CodeOverrideProps> = ({\n components,\n componentsByLanguage,\n ...props\n}) => {\n const preProps = useContext(PreContext);\n if (!preProps) return <components.Code {...props} />;\n return (\n <CodeBlockOverride\n components={components}\n componentsByLanguage={componentsByLanguage}\n {...props}\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAwE;AACxE,yBAA2B;AAO3B,uBAAiC;AACjC,oCAA+B;AAC/B,0BAAiC;AACjC,+BAAwC;AAiBpC;AAfJ,IAAM,oBAA2C,CAAC;AAAA,EAChD,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA,mBAAmB;AAAA,IACnB,YAAY;AAAA,EACd;AAAA,EACA,uBAAuB,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,eAAW,yBAAW,6BAAU;AACtC,QAAM,kBAAc,sCAAsB,QAAQ;AAClD,QAAM,iBAA2B,8CAAe,CAAC,UAC/C,4CAAC,OAAK,GAAG,YAAY,KAAK,GAAG,CAC9B;AAED,QAAM,mBAAe,sCAAsB,SAAS;AACpD,QAAM,kBAA6B,8CAAe,CAAC,UACjD,4CAAC,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,YAAY,EAAE,KAAK,YAAY,MAAM,YAAY;AAAA,QACjD,MAAM;AAAA,QACN;AAAA;AAAA,IACF;AAAA,EAEJ;AAEA,QAAM,oBACJ,qBAAqB,QAAQ,GAAG,qBAChC;AAEF,QAAM,aACJ,qBAAqB,QAAQ,GAAG,cAAc;AAEhD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,YAAY;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MACF;AAAA,MACA,UAAU,YAAY;AAAA,MACtB,MAAM;AAAA,MACN;AAAA;AAAA,EACF;AAEJ;AAoBO,IAAM,eAAsC,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,eAAW,yBAAW,6BAAU;AACtC,MAAI,CAAC,SAAU,QAAO,4CAAC,WAAW,MAAX,EAAiB,GAAG,OAAO;AAClD,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;","names":[]}
|
|
@@ -11,10 +11,11 @@ var CodeBlockOverride = ({
|
|
|
11
11
|
Pre,
|
|
12
12
|
Code,
|
|
13
13
|
SyntaxHighlighter: FallbackSyntaxHighlighter,
|
|
14
|
-
CodeHeader: FallbackCodeHeader
|
|
15
|
-
by_language = {}
|
|
14
|
+
CodeHeader: FallbackCodeHeader
|
|
16
15
|
},
|
|
16
|
+
componentsByLanguage = {},
|
|
17
17
|
children,
|
|
18
|
+
node,
|
|
18
19
|
...codeProps
|
|
19
20
|
}) => {
|
|
20
21
|
const preProps = useContext(PreContext);
|
|
@@ -28,12 +29,13 @@ var CodeBlockOverride = ({
|
|
|
28
29
|
DefaultCodeBlockContent,
|
|
29
30
|
{
|
|
30
31
|
components: { Pre: WrappedPre, Code: WrappedCode },
|
|
31
|
-
code: children
|
|
32
|
+
code: children,
|
|
33
|
+
node
|
|
32
34
|
}
|
|
33
35
|
);
|
|
34
36
|
}
|
|
35
|
-
const SyntaxHighlighter =
|
|
36
|
-
const CodeHeader =
|
|
37
|
+
const SyntaxHighlighter = componentsByLanguage[language]?.SyntaxHighlighter ?? FallbackSyntaxHighlighter;
|
|
38
|
+
const CodeHeader = componentsByLanguage[language]?.CodeHeader ?? FallbackCodeHeader;
|
|
37
39
|
return /* @__PURE__ */ jsx(
|
|
38
40
|
DefaultCodeBlock,
|
|
39
41
|
{
|
|
@@ -44,17 +46,26 @@ var CodeBlockOverride = ({
|
|
|
44
46
|
CodeHeader
|
|
45
47
|
},
|
|
46
48
|
language: language || "unknown",
|
|
47
|
-
code: children
|
|
49
|
+
code: children,
|
|
50
|
+
node
|
|
48
51
|
}
|
|
49
52
|
);
|
|
50
53
|
};
|
|
51
54
|
var CodeOverride = ({
|
|
52
55
|
components,
|
|
56
|
+
componentsByLanguage,
|
|
53
57
|
...props
|
|
54
58
|
}) => {
|
|
55
59
|
const preProps = useContext(PreContext);
|
|
56
60
|
if (!preProps) return /* @__PURE__ */ jsx(components.Code, { ...props });
|
|
57
|
-
return /* @__PURE__ */ jsx(
|
|
61
|
+
return /* @__PURE__ */ jsx(
|
|
62
|
+
CodeBlockOverride,
|
|
63
|
+
{
|
|
64
|
+
components,
|
|
65
|
+
componentsByLanguage,
|
|
66
|
+
...props
|
|
67
|
+
}
|
|
68
|
+
);
|
|
58
69
|
};
|
|
59
70
|
export {
|
|
60
71
|
CodeOverride
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/overrides/CodeOverride.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, ComponentType, FC, useContext } from \"react\";\nimport { PreContext } 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\";\n\nconst CodeBlockOverride: FC<CodeOverrideProps> = ({\n components: {\n Pre,\n Code,\n SyntaxHighlighter: FallbackSyntaxHighlighter,\n CodeHeader: FallbackCodeHeader,\n
|
|
1
|
+
{"version":3,"sources":["../../src/overrides/CodeOverride.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, ComponentType, FC, useContext } from \"react\";\nimport { PreContext } 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\";\n\nconst CodeBlockOverride: FC<CodeOverrideProps> = ({\n components: {\n Pre,\n Code,\n SyntaxHighlighter: FallbackSyntaxHighlighter,\n CodeHeader: FallbackCodeHeader,\n },\n componentsByLanguage = {},\n children,\n node,\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 components={{ Pre: WrappedPre, Code: WrappedCode }}\n code={children}\n node={node}\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 components={{\n Pre: WrappedPre,\n Code: WrappedCode,\n SyntaxHighlighter,\n CodeHeader,\n }}\n language={language || \"unknown\"}\n code={children}\n node={node}\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\nexport const CodeOverride: FC<CodeOverrideProps> = ({\n components,\n componentsByLanguage,\n ...props\n}) => {\n const preProps = useContext(PreContext);\n if (!preProps) return <components.Code {...props} />;\n return (\n <CodeBlockOverride\n components={components}\n componentsByLanguage={componentsByLanguage}\n {...props}\n />\n );\n};\n"],"mappings":";AAAA,SAAsD,kBAAkB;AACxE,SAAS,kBAAkB;AAO3B,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AACjC,SAAS,+BAA+B;AAiBpC;AAfJ,IAAM,oBAA2C,CAAC;AAAA,EAChD,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA,mBAAmB;AAAA,IACnB,YAAY;AAAA,EACd;AAAA,EACA,uBAAuB,CAAC;AAAA,EACxB;AAAA,EACA;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,YAAY,EAAE,KAAK,YAAY,MAAM,YAAY;AAAA,QACjD,MAAM;AAAA,QACN;AAAA;AAAA,IACF;AAAA,EAEJ;AAEA,QAAM,oBACJ,qBAAqB,QAAQ,GAAG,qBAChC;AAEF,QAAM,aACJ,qBAAqB,QAAQ,GAAG,cAAc;AAEhD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,YAAY;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MACF;AAAA,MACA,UAAU,YAAY;AAAA,MACtB,MAAM;AAAA,MACN;AAAA;AAAA,EACF;AAEJ;AAoBO,IAAM,eAAsC,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,WAAW,WAAW,UAAU;AACtC,MAAI,CAAC,SAAU,QAAO,oBAAC,WAAW,MAAX,EAAiB,GAAG,OAAO;AAClD,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;","names":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ComponentPropsWithoutRef } from "react";
|
|
2
1
|
import { PreComponent } from "./types";
|
|
3
|
-
export declare const PreContext: import("react").Context<Omit<
|
|
2
|
+
export declare const PreContext: import("react").Context<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLPreElement>, HTMLPreElement>, "ref"> & {
|
|
3
|
+
node: import("hast").Element;
|
|
4
|
+
}, "children"> | null>;
|
|
4
5
|
export declare const useIsMarkdownCodeBlock: () => boolean;
|
|
5
6
|
export declare const PreOverride: PreComponent;
|
|
6
7
|
//# sourceMappingURL=PreOverride.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreOverride.d.ts","sourceRoot":"","sources":["../../src/overrides/PreOverride.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PreOverride.d.ts","sourceRoot":"","sources":["../../src/overrides/PreOverride.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,eAAO,MAAM,UAAU;;sBAGR,CAAC;AAEhB,eAAO,MAAM,sBAAsB,eAElC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,YAEzB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ComponentType, ReactNode } from "react";
|
|
2
|
+
import { Element } from "hast";
|
|
2
3
|
import { PreComponent, CodeComponent, CodeHeaderProps } from "./types";
|
|
3
4
|
export declare const DefaultPre: PreComponent;
|
|
4
5
|
export declare const DefaultCode: CodeComponent;
|
|
@@ -8,6 +9,7 @@ export declare const DefaultCodeBlockContent: ComponentType<{
|
|
|
8
9
|
Code: CodeComponent;
|
|
9
10
|
};
|
|
10
11
|
code: string | ReactNode | undefined;
|
|
12
|
+
node: Element;
|
|
11
13
|
}>;
|
|
12
14
|
export declare const DefaultCodeHeader: ComponentType<CodeHeaderProps>;
|
|
13
15
|
//# sourceMappingURL=defaultComponents.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultComponents.d.ts","sourceRoot":"","sources":["../../src/overrides/defaultComponents.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEvE,eAAO,MAAM,UAAU,EAAE,YAExB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,aAEzB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,aAAa,CAAC;IAClD,UAAU,EAAE;QAAE,GAAG,EAAE,YAAY,CAAC;QAAC,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC;IACvD,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"defaultComponents.d.ts","sourceRoot":"","sources":["../../src/overrides/defaultComponents.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEvE,eAAO,MAAM,UAAU,EAAE,YAExB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,aAEzB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,aAAa,CAAC;IAClD,UAAU,EAAE;QAAE,GAAG,EAAE,YAAY,CAAC;QAAC,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC;IACvD,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IACrC,IAAI,EAAE,OAAO,CAAC;CACf,CAIA,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,eAAe,CAAc,CAAC"}
|
|
@@ -29,7 +29,7 @@ module.exports = __toCommonJS(defaultComponents_exports);
|
|
|
29
29
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
30
30
|
var DefaultPre = ({ node, ...rest }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("pre", { ...rest });
|
|
31
31
|
var DefaultCode = ({ node, ...rest }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("code", { ...rest });
|
|
32
|
-
var DefaultCodeBlockContent = ({ components: { Pre, Code }, code }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Pre, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Code, { children: code }) });
|
|
32
|
+
var DefaultCodeBlockContent = ({ components: { Pre, Code }, code, node }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Pre, { node, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Code, { node, children: code }) });
|
|
33
33
|
var DefaultCodeHeader = () => null;
|
|
34
34
|
// Annotate the CommonJS export names for ESM import in node:
|
|
35
35
|
0 && (module.exports = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/overrides/defaultComponents.tsx"],"sourcesContent":["import type { ComponentType, ReactNode } from \"react\";\nimport { PreComponent, CodeComponent, CodeHeaderProps } from \"./types\";\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 components: { Pre: PreComponent; Code: CodeComponent };\n code: string | ReactNode | undefined;\n}> = ({ components: { Pre, Code }, code }) => (\n <Pre>\n <Code>{code}</Code>\n </Pre>\n);\n\nexport const DefaultCodeHeader: ComponentType<CodeHeaderProps> = () => null;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
1
|
+
{"version":3,"sources":["../../src/overrides/defaultComponents.tsx"],"sourcesContent":["import type { ComponentType, ReactNode } from \"react\";\nimport { Element } from \"hast\";\nimport { PreComponent, CodeComponent, CodeHeaderProps } from \"./types\";\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 components: { Pre: PreComponent; Code: CodeComponent };\n code: string | ReactNode | undefined;\n node: Element;\n}> = ({ components: { Pre, Code }, code, node }) => (\n <Pre node={node}>\n <Code node={node}>{code}</Code>\n </Pre>\n);\n\nexport const DefaultCodeHeader: ComponentType<CodeHeaderProps> = () => null;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKE;AADK,IAAM,aAA2B,CAAC,EAAE,MAAM,GAAG,KAAK,MACvD,4CAAC,SAAK,GAAG,MAAM;AAGV,IAAM,cAA6B,CAAC,EAAE,MAAM,GAAG,KAAK,MACzD,4CAAC,UAAM,GAAG,MAAM;AAGX,IAAM,0BAIR,CAAC,EAAE,YAAY,EAAE,KAAK,KAAK,GAAG,MAAM,KAAK,MAC5C,4CAAC,OAAI,MACH,sDAAC,QAAK,MAAa,gBAAK,GAC1B;AAGK,IAAM,oBAAoD,MAAM;","names":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
var DefaultPre = ({ node, ...rest }) => /* @__PURE__ */ jsx("pre", { ...rest });
|
|
4
4
|
var DefaultCode = ({ node, ...rest }) => /* @__PURE__ */ jsx("code", { ...rest });
|
|
5
|
-
var DefaultCodeBlockContent = ({ components: { Pre, Code }, code }) => /* @__PURE__ */ jsx(Pre, { children: /* @__PURE__ */ jsx(Code, { children: code }) });
|
|
5
|
+
var DefaultCodeBlockContent = ({ components: { Pre, Code }, code, node }) => /* @__PURE__ */ jsx(Pre, { node, children: /* @__PURE__ */ jsx(Code, { node, children: code }) });
|
|
6
6
|
var DefaultCodeHeader = () => null;
|
|
7
7
|
export {
|
|
8
8
|
DefaultCode,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/overrides/defaultComponents.tsx"],"sourcesContent":["import type { ComponentType, ReactNode } from \"react\";\nimport { PreComponent, CodeComponent, CodeHeaderProps } from \"./types\";\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 components: { Pre: PreComponent; Code: CodeComponent };\n code: string | ReactNode | undefined;\n}> = ({ components: { Pre, Code }, code }) => (\n <Pre>\n <Code>{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 { Element } from \"hast\";\nimport { PreComponent, CodeComponent, CodeHeaderProps } from \"./types\";\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 components: { Pre: PreComponent; Code: CodeComponent };\n code: string | ReactNode | undefined;\n node: Element;\n}> = ({ components: { Pre, Code }, code, node }) => (\n <Pre node={node}>\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,YAAY,EAAE,KAAK,KAAK,GAAG,MAAM,KAAK,MAC5C,oBAAC,OAAI,MACH,8BAAC,QAAK,MAAa,gBAAK,GAC1B;AAGK,IAAM,oBAAoD,MAAM;","names":[]}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export type
|
|
1
|
+
import { Element } from "hast";
|
|
2
|
+
import { ComponentPropsWithoutRef, ComponentType } from "react";
|
|
3
|
+
export type PreComponent = ComponentType<ComponentPropsWithoutRef<"pre"> & {
|
|
4
|
+
node: Element;
|
|
5
|
+
}>;
|
|
6
|
+
export type CodeComponent = ComponentType<ComponentPropsWithoutRef<"code"> & {
|
|
7
|
+
node: Element;
|
|
8
|
+
}>;
|
|
4
9
|
export type CodeHeaderProps = {
|
|
5
10
|
language: string | undefined;
|
|
6
11
|
code: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/overrides/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/overrides/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEhE,MAAM,MAAM,YAAY,GAAG,aAAa,CACtC,wBAAwB,CAAC,KAAK,CAAC,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CACpD,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,aAAa,CACvC,wBAAwB,CAAC,MAAM,CAAC,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CACrD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE;QACV,GAAG,EAAE,YAAY,CAAC;QAClB,IAAI,EAAE,aAAa,CAAC;KACrB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/overrides/types.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../src/overrides/types.ts"],"sourcesContent":["import { Element } from \"hast\";\nimport { ComponentPropsWithoutRef, ComponentType } from \"react\";\n\nexport type PreComponent = ComponentType<\n ComponentPropsWithoutRef<\"pre\"> & { node: Element }\n>;\nexport type CodeComponent = ComponentType<\n ComponentPropsWithoutRef<\"code\"> & { node: Element }\n>;\n\nexport type CodeHeaderProps = {\n language: string | undefined;\n code: string;\n};\n\nexport type SyntaxHighlighterProps = {\n components: {\n Pre: PreComponent;\n Code: CodeComponent;\n };\n language: string;\n code: string;\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
|
|
@@ -1,21 +1,25 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ComponentRef, ElementType, ForwardRefExoticComponent, RefAttributes, type ComponentPropsWithoutRef, type ComponentType } from "react";
|
|
2
2
|
import { type Options } from "react-markdown";
|
|
3
3
|
import { SyntaxHighlighterProps, CodeHeaderProps } from "../overrides/types";
|
|
4
4
|
import { Primitive } from "@radix-ui/react-primitive";
|
|
5
|
-
type MarkdownTextPrimitiveElement =
|
|
5
|
+
type MarkdownTextPrimitiveElement = ComponentRef<typeof Primitive.div>;
|
|
6
6
|
type PrimitiveDivProps = ComponentPropsWithoutRef<typeof Primitive.div>;
|
|
7
7
|
export type MarkdownTextPrimitiveProps = Omit<Options, "components" | "children"> & {
|
|
8
|
-
containerProps?: Omit<PrimitiveDivProps, "children" | "asChild"
|
|
9
|
-
containerComponent?: ElementType;
|
|
10
|
-
components?: NonNullable<Options["components"]> & {
|
|
11
|
-
SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps
|
|
12
|
-
CodeHeader?: ComponentType<CodeHeaderProps
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
};
|
|
18
|
-
|
|
8
|
+
containerProps?: Omit<PrimitiveDivProps, "children" | "asChild"> | undefined;
|
|
9
|
+
containerComponent?: ElementType | undefined;
|
|
10
|
+
components?: (NonNullable<Options["components"]> & {
|
|
11
|
+
SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps> | undefined;
|
|
12
|
+
CodeHeader?: ComponentType<CodeHeaderProps> | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated Use `componentsByLanguage` instead of `components.by_language`. This will be removed in the next major version.
|
|
15
|
+
**/
|
|
16
|
+
by_language?: undefined;
|
|
17
|
+
}) | undefined;
|
|
18
|
+
componentsByLanguage?: Record<string, {
|
|
19
|
+
CodeHeader?: ComponentType<CodeHeaderProps> | undefined;
|
|
20
|
+
SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps> | undefined;
|
|
21
|
+
}> | undefined;
|
|
22
|
+
smooth?: boolean | undefined;
|
|
19
23
|
};
|
|
20
24
|
export declare const MarkdownTextPrimitive: ForwardRefExoticComponent<MarkdownTextPrimitiveProps> & RefAttributes<MarkdownTextPrimitiveElement>;
|
|
21
25
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownText.d.ts","sourceRoot":"","sources":["../../src/primitives/MarkdownText.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"MarkdownText.d.ts","sourceRoot":"","sources":["../../src/primitives/MarkdownText.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,YAAY,EACZ,WAAW,EAEX,yBAAyB,EACzB,aAAa,EACb,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AACf,OAAsB,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAU7E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAKtD,KAAK,4BAA4B,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACvE,KAAK,iBAAiB,GAAG,wBAAwB,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AAExE,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,OAAO,EACP,YAAY,GAAG,UAAU,CAC1B,GAAG;IACF,cAAc,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAC7E,kBAAkB,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC7C,UAAU,CAAC,EACP,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG;QACpC,iBAAiB,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,GAAG,SAAS,CAAC;QACtE,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;QACxD;;YAEI;QACJ,WAAW,CAAC,EAAE,SAAS,CAAC;KACzB,CAAC,GACF,SAAS,CAAC;IACd,oBAAoB,CAAC,EACjB,MAAM,CACJ,MAAM,EACN;QACE,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;QACxD,iBAAiB,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,GAAG,SAAS,CAAC;KACvE,CACF,GACD,SAAS,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,yBAAyB,CAAC,0BAA0B,CAAC,GACvF,aAAa,CAAC,4BAA4B,CAwD3C,CAAC"}
|
|
@@ -47,11 +47,13 @@ var { useSmooth } = import_react.INTERNAL;
|
|
|
47
47
|
var MarkdownTextPrimitive = (0, import_react2.forwardRef)(
|
|
48
48
|
({
|
|
49
49
|
components: userComponents,
|
|
50
|
+
componentsByLanguage = userComponents?.by_language,
|
|
50
51
|
className,
|
|
51
52
|
containerProps,
|
|
52
53
|
containerComponent: Container = "div",
|
|
54
|
+
smooth = true,
|
|
53
55
|
...rest
|
|
54
|
-
}, forwardedRef
|
|
56
|
+
}, forwardedRef) => {
|
|
55
57
|
const { text, status } = useSmooth((0, import_react.useContentPartText)(), smooth);
|
|
56
58
|
const {
|
|
57
59
|
pre = import_defaultComponents.DefaultPre,
|
|
@@ -71,9 +73,9 @@ var MarkdownTextPrimitive = (0, import_react2.forwardRef)(
|
|
|
71
73
|
Pre: pre,
|
|
72
74
|
Code: code,
|
|
73
75
|
SyntaxHighlighter,
|
|
74
|
-
CodeHeader
|
|
75
|
-
by_language
|
|
76
|
+
CodeHeader
|
|
76
77
|
},
|
|
78
|
+
componentsByLanguage,
|
|
77
79
|
...props
|
|
78
80
|
}
|
|
79
81
|
))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/primitives/MarkdownText.tsx"],"sourcesContent":["\"use client\";\n\nimport { INTERNAL, useContentPartText } from \"@assistant-ui/react\";\nimport {\n
|
|
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 forwardRef,\n ForwardRefExoticComponent,\n RefAttributes,\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 } = 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 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 * @deprecated Use `componentsByLanguage` instead of `components.by_language`. This will be removed in the next major version.\n **/\n by_language?: 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\nexport const MarkdownTextPrimitive: ForwardRefExoticComponent<MarkdownTextPrimitiveProps> &\n RefAttributes<MarkdownTextPrimitiveElement> = forwardRef<\n MarkdownTextPrimitiveElement,\n MarkdownTextPrimitiveProps\n>(\n (\n {\n components: userComponents,\n componentsByLanguage = userComponents?.by_language,\n className,\n containerProps,\n containerComponent: Container = \"div\",\n smooth = true,\n ...rest\n },\n forwardedRef,\n ) => {\n const { text, status } = useSmooth(useContentPartText(), smooth);\n\n const {\n pre = DefaultPre,\n code = DefaultCode,\n SyntaxHighlighter = DefaultCodeBlockContent,\n CodeHeader = DefaultCodeHeader,\n by_language,\n ...componentsRest\n } = userComponents ?? {};\n const components: typeof userComponents = {\n ...componentsRest,\n pre: PreOverride,\n code: useCallbackRef((props) => (\n <CodeOverride\n components={{\n Pre: pre,\n Code: code,\n SyntaxHighlighter,\n CodeHeader,\n }}\n componentsByLanguage={componentsByLanguage}\n {...props}\n />\n )),\n };\n\n return (\n <Container\n data-status={status.type}\n {...containerProps}\n className={classNames(className, containerProps?.className)}\n ref={forwardedRef}\n >\n <ReactMarkdown components={components} {...rest}>\n {text}\n </ReactMarkdown>\n </Container>\n );\n },\n);\n\nMarkdownTextPrimitive.displayName = \"MarkdownTextPrimitive\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA6C;AAC7C,IAAAA,gBAQO;AACP,4BAA4C;AAE5C,yBAA4B;AAC5B,+BAKO;AACP,oCAA+B;AAC/B,0BAA6B;AAE7B,wBAAuB;AAkEf;AAhER,IAAM,EAAE,UAAU,IAAI;AAiCf,IAAM,4BACmC;AAAA,EAI9C,CACE;AAAA,IACE,YAAY;AAAA,IACZ,uBAAuB,gBAAgB;AAAA,IACvC;AAAA,IACA;AAAA,IACA,oBAAoB,YAAY;AAAA,IAChC,SAAS;AAAA,IACT,GAAG;AAAA,EACL,GACA,iBACG;AACH,UAAM,EAAE,MAAM,OAAO,IAAI,cAAU,iCAAmB,GAAG,MAAM;AAE/D,UAAM;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,oBAAoB;AAAA,MACpB,aAAa;AAAA,MACb;AAAA,MACA,GAAG;AAAA,IACL,IAAI,kBAAkB,CAAC;AACvB,UAAM,aAAoC;AAAA,MACxC,GAAG;AAAA,MACH,KAAK;AAAA,MACL,UAAM,8CAAe,CAAC,UACpB;AAAA,QAAC;AAAA;AAAA,UACC,YAAY;AAAA,YACV,KAAK;AAAA,YACL,MAAM;AAAA,YACN;AAAA,YACA;AAAA,UACF;AAAA,UACA;AAAA,UACC,GAAG;AAAA;AAAA,MACN,CACD;AAAA,IACH;AAEA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,eAAa,OAAO;AAAA,QACnB,GAAG;AAAA,QACJ,eAAW,kBAAAC,SAAW,WAAW,gBAAgB,SAAS;AAAA,QAC1D,KAAK;AAAA,QAEL,sDAAC,sBAAAC,SAAA,EAAc,YAAyB,GAAG,MACxC,gBACH;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AAEA,sBAAsB,cAAc;","names":["import_react","classNames","ReactMarkdown"]}
|
|
@@ -21,11 +21,13 @@ var { useSmooth } = INTERNAL;
|
|
|
21
21
|
var MarkdownTextPrimitive = forwardRef(
|
|
22
22
|
({
|
|
23
23
|
components: userComponents,
|
|
24
|
+
componentsByLanguage = userComponents?.by_language,
|
|
24
25
|
className,
|
|
25
26
|
containerProps,
|
|
26
27
|
containerComponent: Container = "div",
|
|
28
|
+
smooth = true,
|
|
27
29
|
...rest
|
|
28
|
-
}, forwardedRef
|
|
30
|
+
}, forwardedRef) => {
|
|
29
31
|
const { text, status } = useSmooth(useContentPartText(), smooth);
|
|
30
32
|
const {
|
|
31
33
|
pre = DefaultPre,
|
|
@@ -45,9 +47,9 @@ var MarkdownTextPrimitive = forwardRef(
|
|
|
45
47
|
Pre: pre,
|
|
46
48
|
Code: code,
|
|
47
49
|
SyntaxHighlighter,
|
|
48
|
-
CodeHeader
|
|
49
|
-
by_language
|
|
50
|
+
CodeHeader
|
|
50
51
|
},
|
|
52
|
+
componentsByLanguage,
|
|
51
53
|
...props
|
|
52
54
|
}
|
|
53
55
|
))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/primitives/MarkdownText.tsx"],"sourcesContent":["\"use client\";\n\nimport { INTERNAL, useContentPartText } from \"@assistant-ui/react\";\nimport {\n
|
|
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 forwardRef,\n ForwardRefExoticComponent,\n RefAttributes,\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 } = 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 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 * @deprecated Use `componentsByLanguage` instead of `components.by_language`. This will be removed in the next major version.\n **/\n by_language?: 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\nexport const MarkdownTextPrimitive: ForwardRefExoticComponent<MarkdownTextPrimitiveProps> &\n RefAttributes<MarkdownTextPrimitiveElement> = forwardRef<\n MarkdownTextPrimitiveElement,\n MarkdownTextPrimitiveProps\n>(\n (\n {\n components: userComponents,\n componentsByLanguage = userComponents?.by_language,\n className,\n containerProps,\n containerComponent: Container = \"div\",\n smooth = true,\n ...rest\n },\n forwardedRef,\n ) => {\n const { text, status } = useSmooth(useContentPartText(), smooth);\n\n const {\n pre = DefaultPre,\n code = DefaultCode,\n SyntaxHighlighter = DefaultCodeBlockContent,\n CodeHeader = DefaultCodeHeader,\n by_language,\n ...componentsRest\n } = userComponents ?? {};\n const components: typeof userComponents = {\n ...componentsRest,\n pre: PreOverride,\n code: useCallbackRef((props) => (\n <CodeOverride\n components={{\n Pre: pre,\n Code: code,\n SyntaxHighlighter,\n CodeHeader,\n }}\n componentsByLanguage={componentsByLanguage}\n {...props}\n />\n )),\n };\n\n return (\n <Container\n data-status={status.type}\n {...containerProps}\n className={classNames(className, containerProps?.className)}\n ref={forwardedRef}\n >\n <ReactMarkdown components={components} {...rest}>\n {text}\n </ReactMarkdown>\n </Container>\n );\n },\n);\n\nMarkdownTextPrimitive.displayName = \"MarkdownTextPrimitive\";\n"],"mappings":";;;AAEA,SAAS,UAAU,0BAA0B;AAC7C;AAAA,EAGE;AAAA,OAKK;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;AAkEf;AAhER,IAAM,EAAE,UAAU,IAAI;AAiCf,IAAM,wBACmC;AAAA,EAI9C,CACE;AAAA,IACE,YAAY;AAAA,IACZ,uBAAuB,gBAAgB;AAAA,IACvC;AAAA,IACA;AAAA,IACA,oBAAoB,YAAY;AAAA,IAChC,SAAS;AAAA,IACT,GAAG;AAAA,EACL,GACA,iBACG;AACH,UAAM,EAAE,MAAM,OAAO,IAAI,UAAU,mBAAmB,GAAG,MAAM;AAE/D,UAAM;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,oBAAoB;AAAA,MACpB,aAAa;AAAA,MACb;AAAA,MACA,GAAG;AAAA,IACL,IAAI,kBAAkB,CAAC;AACvB,UAAM,aAAoC;AAAA,MACxC,GAAG;AAAA,MACH,KAAK;AAAA,MACL,MAAM,eAAe,CAAC,UACpB;AAAA,QAAC;AAAA;AAAA,UACC,YAAY;AAAA,YACV,KAAK;AAAA,YACL,MAAM;AAAA,YACN;AAAA,YACA;AAAA,UACF;AAAA,UACA;AAAA,UACC,GAAG;AAAA;AAAA,MACN,CACD;AAAA,IACH;AAEA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,eAAa,OAAO;AAAA,QACnB,GAAG;AAAA,QACJ,WAAW,WAAW,WAAW,gBAAgB,SAAS;AAAA,QAC1D,KAAK;AAAA,QAEL,8BAAC,iBAAc,YAAyB,GAAG,MACxC,gBACH;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AAEA,sBAAsB,cAAc;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@assistant-ui/react-markdown",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.6",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -30,14 +30,15 @@
|
|
|
30
30
|
],
|
|
31
31
|
"sideEffects": false,
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@radix-ui/react-primitive": "^2.0.
|
|
33
|
+
"@radix-ui/react-primitive": "^2.0.1",
|
|
34
34
|
"@radix-ui/react-use-callback-ref": "^1.1.0",
|
|
35
|
+
"@types/hast": "^3.0.4",
|
|
35
36
|
"classnames": "^2.5.1",
|
|
36
|
-
"lucide-react": "^0.
|
|
37
|
+
"lucide-react": "^0.468.0",
|
|
37
38
|
"react-markdown": "^9.0.1"
|
|
38
39
|
},
|
|
39
40
|
"peerDependencies": {
|
|
40
|
-
"@assistant-ui/react": "^0.7.
|
|
41
|
+
"@assistant-ui/react": "^0.7.18",
|
|
41
42
|
"@types/react": "*",
|
|
42
43
|
"react": "^18 || ^19 || ^19.0.0-rc",
|
|
43
44
|
"tailwindcss": "^3.4.4"
|
|
@@ -51,20 +52,20 @@
|
|
|
51
52
|
}
|
|
52
53
|
},
|
|
53
54
|
"devDependencies": {
|
|
54
|
-
"@types/node": "^22.
|
|
55
|
+
"@types/node": "^22.10.2",
|
|
55
56
|
"autoprefixer": "^10.4.20",
|
|
56
57
|
"eslint": "^9",
|
|
57
|
-
"eslint-config-next": "15.0
|
|
58
|
+
"eslint-config-next": "15.1.0",
|
|
58
59
|
"postcss": "^8.4.49",
|
|
59
60
|
"postcss-js": "^4.0.1",
|
|
60
|
-
"react": "19.0.0
|
|
61
|
-
"react-dom": "19.0.0
|
|
62
|
-
"tailwindcss": "^3.4.
|
|
61
|
+
"react": "19.0.0",
|
|
62
|
+
"react-dom": "19.0.0",
|
|
63
|
+
"tailwindcss": "^3.4.16",
|
|
63
64
|
"tailwindcss-animate": "^1.0.7",
|
|
64
65
|
"tsup": "8.3.5",
|
|
65
66
|
"tsx": "^4.19.2",
|
|
66
|
-
"@assistant-ui/react": "0.7.9",
|
|
67
67
|
"@assistant-ui/tailwindcss-transformer": "0.1.0",
|
|
68
|
+
"@assistant-ui/react": "0.7.18",
|
|
68
69
|
"@assistant-ui/tsbuildutils": "^0.0.0",
|
|
69
70
|
"@assistant-ui/tsconfig": "0.0.0"
|
|
70
71
|
},
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
SyntaxHighlighterProps,
|
|
8
8
|
} from "./types";
|
|
9
9
|
import { DefaultCodeBlockContent } from "./defaultComponents";
|
|
10
|
+
import { Element } from "hast";
|
|
10
11
|
|
|
11
12
|
export type CodeBlockProps = {
|
|
12
13
|
language: string;
|
|
@@ -17,12 +18,14 @@ export type CodeBlockProps = {
|
|
|
17
18
|
CodeHeader: ComponentType<CodeHeaderProps>;
|
|
18
19
|
SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;
|
|
19
20
|
};
|
|
21
|
+
node: Element;
|
|
20
22
|
};
|
|
21
23
|
|
|
22
24
|
export const DefaultCodeBlock: FC<CodeBlockProps> = ({
|
|
23
25
|
components: { Pre, Code, SyntaxHighlighter, CodeHeader },
|
|
24
26
|
language,
|
|
25
27
|
code,
|
|
28
|
+
node,
|
|
26
29
|
}) => {
|
|
27
30
|
const components = useMemo(() => ({ Pre, Code }), [Pre, Code]);
|
|
28
31
|
|
|
@@ -35,6 +38,7 @@ export const DefaultCodeBlock: FC<CodeBlockProps> = ({
|
|
|
35
38
|
components={components}
|
|
36
39
|
language={language ?? "unknown"}
|
|
37
40
|
code={code}
|
|
41
|
+
node={node}
|
|
38
42
|
/>
|
|
39
43
|
</>
|
|
40
44
|
);
|
|
@@ -17,9 +17,10 @@ const CodeBlockOverride: FC<CodeOverrideProps> = ({
|
|
|
17
17
|
Code,
|
|
18
18
|
SyntaxHighlighter: FallbackSyntaxHighlighter,
|
|
19
19
|
CodeHeader: FallbackCodeHeader,
|
|
20
|
-
by_language = {},
|
|
21
20
|
},
|
|
21
|
+
componentsByLanguage = {},
|
|
22
22
|
children,
|
|
23
|
+
node,
|
|
23
24
|
...codeProps
|
|
24
25
|
}) => {
|
|
25
26
|
const preProps = useContext(PreContext)!;
|
|
@@ -41,15 +42,17 @@ const CodeBlockOverride: FC<CodeOverrideProps> = ({
|
|
|
41
42
|
<DefaultCodeBlockContent
|
|
42
43
|
components={{ Pre: WrappedPre, Code: WrappedCode }}
|
|
43
44
|
code={children}
|
|
45
|
+
node={node}
|
|
44
46
|
/>
|
|
45
47
|
);
|
|
46
48
|
}
|
|
47
49
|
|
|
48
50
|
const SyntaxHighlighter: ComponentType<SyntaxHighlighterProps> =
|
|
49
|
-
|
|
51
|
+
componentsByLanguage[language]?.SyntaxHighlighter ??
|
|
52
|
+
FallbackSyntaxHighlighter;
|
|
50
53
|
|
|
51
54
|
const CodeHeader: ComponentType<CodeHeaderProps> =
|
|
52
|
-
|
|
55
|
+
componentsByLanguage[language]?.CodeHeader ?? FallbackCodeHeader;
|
|
53
56
|
|
|
54
57
|
return (
|
|
55
58
|
<DefaultCodeBlock
|
|
@@ -61,6 +64,7 @@ const CodeBlockOverride: FC<CodeOverrideProps> = ({
|
|
|
61
64
|
}}
|
|
62
65
|
language={language || "unknown"}
|
|
63
66
|
code={children}
|
|
67
|
+
node={node}
|
|
64
68
|
/>
|
|
65
69
|
);
|
|
66
70
|
};
|
|
@@ -71,21 +75,30 @@ export type CodeOverrideProps = ComponentPropsWithoutRef<CodeComponent> & {
|
|
|
71
75
|
Code: CodeComponent;
|
|
72
76
|
CodeHeader: ComponentType<CodeHeaderProps>;
|
|
73
77
|
SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;
|
|
74
|
-
by_language?: Record<
|
|
75
|
-
string,
|
|
76
|
-
{
|
|
77
|
-
CodeHeader?: ComponentType<CodeHeaderProps>;
|
|
78
|
-
SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps>;
|
|
79
|
-
}
|
|
80
|
-
>;
|
|
81
78
|
};
|
|
79
|
+
componentsByLanguage?:
|
|
80
|
+
| Record<
|
|
81
|
+
string,
|
|
82
|
+
{
|
|
83
|
+
CodeHeader?: ComponentType<CodeHeaderProps>;
|
|
84
|
+
SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps>;
|
|
85
|
+
}
|
|
86
|
+
>
|
|
87
|
+
| undefined;
|
|
82
88
|
};
|
|
83
89
|
|
|
84
90
|
export const CodeOverride: FC<CodeOverrideProps> = ({
|
|
85
91
|
components,
|
|
92
|
+
componentsByLanguage,
|
|
86
93
|
...props
|
|
87
94
|
}) => {
|
|
88
95
|
const preProps = useContext(PreContext);
|
|
89
|
-
if (!preProps) return <components.Code {...
|
|
90
|
-
return
|
|
96
|
+
if (!preProps) return <components.Code {...props} />;
|
|
97
|
+
return (
|
|
98
|
+
<CodeBlockOverride
|
|
99
|
+
components={components}
|
|
100
|
+
componentsByLanguage={componentsByLanguage}
|
|
101
|
+
{...props}
|
|
102
|
+
/>
|
|
103
|
+
);
|
|
91
104
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ComponentType, ReactNode } from "react";
|
|
2
|
+
import { Element } from "hast";
|
|
2
3
|
import { PreComponent, CodeComponent, CodeHeaderProps } from "./types";
|
|
3
4
|
|
|
4
5
|
export const DefaultPre: PreComponent = ({ node, ...rest }) => (
|
|
@@ -12,9 +13,10 @@ export const DefaultCode: CodeComponent = ({ node, ...rest }) => (
|
|
|
12
13
|
export const DefaultCodeBlockContent: ComponentType<{
|
|
13
14
|
components: { Pre: PreComponent; Code: CodeComponent };
|
|
14
15
|
code: string | ReactNode | undefined;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
node: Element;
|
|
17
|
+
}> = ({ components: { Pre, Code }, code, node }) => (
|
|
18
|
+
<Pre node={node}>
|
|
19
|
+
<Code node={node}>{code}</Code>
|
|
18
20
|
</Pre>
|
|
19
21
|
);
|
|
20
22
|
|
package/src/overrides/types.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Element } from "hast";
|
|
2
|
+
import { ComponentPropsWithoutRef, ComponentType } from "react";
|
|
2
3
|
|
|
3
|
-
export type PreComponent =
|
|
4
|
-
|
|
4
|
+
export type PreComponent = ComponentType<
|
|
5
|
+
ComponentPropsWithoutRef<"pre"> & { node: Element }
|
|
5
6
|
>;
|
|
6
|
-
export type CodeComponent =
|
|
7
|
-
|
|
7
|
+
export type CodeComponent = ComponentType<
|
|
8
|
+
ComponentPropsWithoutRef<"code"> & { node: Element }
|
|
8
9
|
>;
|
|
9
10
|
|
|
10
11
|
export type CodeHeaderProps = {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { INTERNAL, useContentPartText } from "@assistant-ui/react";
|
|
4
4
|
import {
|
|
5
|
-
|
|
5
|
+
ComponentRef,
|
|
6
6
|
ElementType,
|
|
7
7
|
forwardRef,
|
|
8
8
|
ForwardRefExoticComponent,
|
|
@@ -26,27 +26,35 @@ import classNames from "classnames";
|
|
|
26
26
|
|
|
27
27
|
const { useSmooth } = INTERNAL;
|
|
28
28
|
|
|
29
|
-
type MarkdownTextPrimitiveElement =
|
|
29
|
+
type MarkdownTextPrimitiveElement = ComponentRef<typeof Primitive.div>;
|
|
30
30
|
type PrimitiveDivProps = ComponentPropsWithoutRef<typeof Primitive.div>;
|
|
31
31
|
|
|
32
32
|
export type MarkdownTextPrimitiveProps = Omit<
|
|
33
33
|
Options,
|
|
34
34
|
"components" | "children"
|
|
35
35
|
> & {
|
|
36
|
-
containerProps?: Omit<PrimitiveDivProps, "children" | "asChild"
|
|
37
|
-
containerComponent?: ElementType;
|
|
38
|
-
components?:
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
36
|
+
containerProps?: Omit<PrimitiveDivProps, "children" | "asChild"> | undefined;
|
|
37
|
+
containerComponent?: ElementType | undefined;
|
|
38
|
+
components?:
|
|
39
|
+
| (NonNullable<Options["components"]> & {
|
|
40
|
+
SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps> | undefined;
|
|
41
|
+
CodeHeader?: ComponentType<CodeHeaderProps> | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* @deprecated Use `componentsByLanguage` instead of `components.by_language`. This will be removed in the next major version.
|
|
44
|
+
**/
|
|
45
|
+
by_language?: undefined;
|
|
46
|
+
})
|
|
47
|
+
| undefined;
|
|
48
|
+
componentsByLanguage?:
|
|
49
|
+
| Record<
|
|
50
|
+
string,
|
|
51
|
+
{
|
|
52
|
+
CodeHeader?: ComponentType<CodeHeaderProps> | undefined;
|
|
53
|
+
SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps> | undefined;
|
|
54
|
+
}
|
|
55
|
+
>
|
|
56
|
+
| undefined;
|
|
57
|
+
smooth?: boolean | undefined;
|
|
50
58
|
};
|
|
51
59
|
|
|
52
60
|
export const MarkdownTextPrimitive: ForwardRefExoticComponent<MarkdownTextPrimitiveProps> &
|
|
@@ -57,13 +65,14 @@ export const MarkdownTextPrimitive: ForwardRefExoticComponent<MarkdownTextPrimit
|
|
|
57
65
|
(
|
|
58
66
|
{
|
|
59
67
|
components: userComponents,
|
|
68
|
+
componentsByLanguage = userComponents?.by_language,
|
|
60
69
|
className,
|
|
61
70
|
containerProps,
|
|
62
71
|
containerComponent: Container = "div",
|
|
72
|
+
smooth = true,
|
|
63
73
|
...rest
|
|
64
74
|
},
|
|
65
75
|
forwardedRef,
|
|
66
|
-
smooth = true,
|
|
67
76
|
) => {
|
|
68
77
|
const { text, status } = useSmooth(useContentPartText(), smooth);
|
|
69
78
|
|
|
@@ -85,8 +94,8 @@ export const MarkdownTextPrimitive: ForwardRefExoticComponent<MarkdownTextPrimit
|
|
|
85
94
|
Code: code,
|
|
86
95
|
SyntaxHighlighter,
|
|
87
96
|
CodeHeader,
|
|
88
|
-
by_language,
|
|
89
97
|
}}
|
|
98
|
+
componentsByLanguage={componentsByLanguage}
|
|
90
99
|
{...props}
|
|
91
100
|
/>
|
|
92
101
|
)),
|