@assistant-ui/react-markdown 0.9.2 → 0.10.0
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 +6 -7
- package/dist/index.d.ts +0 -5
- package/dist/index.d.ts.map +0 -1
- package/dist/index.mjs +0 -12
- package/dist/index.mjs.map +0 -1
- package/dist/memoization.d.ts +0 -22
- package/dist/memoization.d.ts.map +0 -1
- package/dist/memoization.mjs +0 -33
- package/dist/memoization.mjs.map +0 -1
- package/dist/overrides/CodeBlock.d.ts +0 -16
- package/dist/overrides/CodeBlock.d.ts.map +0 -1
- package/dist/overrides/CodeBlock.mjs +0 -29
- package/dist/overrides/CodeBlock.mjs.map +0 -1
- package/dist/overrides/CodeOverride.d.ts +0 -16
- package/dist/overrides/CodeOverride.d.ts.map +0 -1
- package/dist/overrides/CodeOverride.mjs +0 -83
- package/dist/overrides/CodeOverride.mjs.map +0 -1
- package/dist/overrides/PreOverride.d.ts +0 -8
- package/dist/overrides/PreOverride.d.ts.map +0 -1
- package/dist/overrides/PreOverride.mjs +0 -24
- package/dist/overrides/PreOverride.mjs.map +0 -1
- package/dist/overrides/defaultComponents.d.ts +0 -15
- package/dist/overrides/defaultComponents.d.ts.map +0 -1
- package/dist/overrides/defaultComponents.mjs +0 -13
- package/dist/overrides/defaultComponents.mjs.map +0 -1
- package/dist/overrides/types.d.ts +0 -23
- package/dist/overrides/types.d.ts.map +0 -1
- package/dist/overrides/types.mjs +0 -1
- package/dist/overrides/types.mjs.map +0 -1
- package/dist/overrides/withDefaults.d.ts +0 -4
- package/dist/overrides/withDefaults.d.ts.map +0 -1
- package/dist/overrides/withDefaults.mjs +0 -16
- package/dist/overrides/withDefaults.mjs.map +0 -1
- package/dist/primitives/MarkdownText.d.ts +0 -22
- package/dist/primitives/MarkdownText.d.ts.map +0 -1
- package/dist/primitives/MarkdownText.mjs +0 -94
- package/dist/primitives/MarkdownText.mjs.map +0 -1
|
@@ -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.0",
|
|
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",
|
|
@@ -24,14 +23,14 @@
|
|
|
24
23
|
],
|
|
25
24
|
"sideEffects": false,
|
|
26
25
|
"dependencies": {
|
|
27
|
-
"@radix-ui/react-primitive": "^2.0
|
|
26
|
+
"@radix-ui/react-primitive": "^2.1.0",
|
|
28
27
|
"@radix-ui/react-use-callback-ref": "^1.1.1",
|
|
29
28
|
"@types/hast": "^3.0.4",
|
|
30
29
|
"classnames": "^2.5.1",
|
|
31
30
|
"react-markdown": "^10.1.0"
|
|
32
31
|
},
|
|
33
32
|
"peerDependencies": {
|
|
34
|
-
"@assistant-ui/react": "^0.
|
|
33
|
+
"@assistant-ui/react": "^0.10.0",
|
|
35
34
|
"@types/react": "*",
|
|
36
35
|
"react": "^18 || ^19 || ^19.0.0-rc"
|
|
37
36
|
},
|
|
@@ -47,7 +46,7 @@
|
|
|
47
46
|
"react": "19.1.0",
|
|
48
47
|
"react-dom": "19.1.0",
|
|
49
48
|
"tsx": "^4.19.3",
|
|
50
|
-
"@assistant-ui/react": "0.
|
|
49
|
+
"@assistant-ui/react": "0.10.0",
|
|
51
50
|
"@assistant-ui/tsbuildutils": "0.0.1",
|
|
52
51
|
"@assistant-ui/tsconfig": "0.0.0"
|
|
53
52
|
},
|
package/dist/index.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export { MarkdownTextPrimitive, type MarkdownTextPrimitiveProps, } from "./primitives/MarkdownText";
|
|
2
|
-
export type { CodeHeaderProps, SyntaxHighlighterProps, } from "./overrides/types";
|
|
3
|
-
export { useIsMarkdownCodeBlock } from "./overrides/PreOverride";
|
|
4
|
-
export { memoizeMarkdownComponents as unstable_memoizeMarkdownComponents } from "./memoization";
|
|
5
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,KAAK,0BAA0B,GAChC,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,eAAe,EACf,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,yBAAyB,IAAI,kCAAkC,EAAE,MAAM,eAAe,CAAC"}
|
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.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Element } from "hast";
|
|
2
|
-
import { ComponentProps, ComponentType, ElementType } from "react";
|
|
3
|
-
import { CodeHeaderProps, SyntaxHighlighterProps } from "./overrides/types";
|
|
4
|
-
type Components = {
|
|
5
|
-
[Key in Extract<ElementType, string>]?: ComponentType<ComponentProps<Key>>;
|
|
6
|
-
} & {
|
|
7
|
-
SyntaxHighlighter?: ComponentType<Omit<SyntaxHighlighterProps, "node">> | undefined;
|
|
8
|
-
CodeHeader?: ComponentType<Omit<CodeHeaderProps, "node">> | undefined;
|
|
9
|
-
};
|
|
10
|
-
export declare const areNodesEqual: (prev: Element | undefined, next: Element | undefined) => boolean;
|
|
11
|
-
export declare const memoCompareNodes: (prev: {
|
|
12
|
-
node?: Element | undefined;
|
|
13
|
-
}, next: {
|
|
14
|
-
node?: Element | undefined;
|
|
15
|
-
}) => boolean;
|
|
16
|
-
export declare const memoizeMarkdownComponents: (components?: Components) => {
|
|
17
|
-
[k: string]: import("react").MemoExoticComponent<({ node, ...props }: {
|
|
18
|
-
node?: Element;
|
|
19
|
-
}) => import("react/jsx-runtime").JSX.Element> | undefined;
|
|
20
|
-
};
|
|
21
|
-
export {};
|
|
22
|
-
//# sourceMappingURL=memoization.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memoization.d.ts","sourceRoot":"","sources":["../src/memoization.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAQ,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE5E,KAAK,UAAU,GAAG;KACf,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;CAC3E,GAAG;IACF,iBAAiB,CAAC,EACd,aAAa,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,GACnD,SAAS,CAAC;IACd,UAAU,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CACvE,CAAC;AAOF,eAAO,MAAM,aAAa,GACxB,MAAM,OAAO,GAAG,SAAS,EACzB,MAAM,OAAO,GAAG,SAAS,YAQ1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,MAAM;IAAE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,EACpC,MAAM;IAAE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,YAGrC,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,aAAY,UAAe;0EAMtB;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE;CAMhE,CAAC"}
|
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,16 +0,0 @@
|
|
|
1
|
-
import { ComponentType, FC } from "react";
|
|
2
|
-
import { CodeComponent, CodeHeaderProps, PreComponent, SyntaxHighlighterProps } from "./types";
|
|
3
|
-
import { Element } from "hast";
|
|
4
|
-
export type CodeBlockProps = {
|
|
5
|
-
node: Element | undefined;
|
|
6
|
-
language: string;
|
|
7
|
-
code: string;
|
|
8
|
-
components: {
|
|
9
|
-
Pre: PreComponent;
|
|
10
|
-
Code: CodeComponent;
|
|
11
|
-
CodeHeader: ComponentType<CodeHeaderProps>;
|
|
12
|
-
SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
export declare const DefaultCodeBlock: FC<CodeBlockProps>;
|
|
16
|
-
//# sourceMappingURL=CodeBlock.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,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;CACH,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,cAAc,CAqB/C,CAAC"}
|
|
@@ -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,16 +0,0 @@
|
|
|
1
|
-
import { ComponentPropsWithoutRef, ComponentType } from "react";
|
|
2
|
-
import { CodeComponent, CodeHeaderProps, PreComponent, SyntaxHighlighterProps } from "./types";
|
|
3
|
-
export type CodeOverrideProps = ComponentPropsWithoutRef<CodeComponent> & {
|
|
4
|
-
components: {
|
|
5
|
-
Pre: PreComponent;
|
|
6
|
-
Code: CodeComponent;
|
|
7
|
-
CodeHeader: ComponentType<CodeHeaderProps>;
|
|
8
|
-
SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;
|
|
9
|
-
};
|
|
10
|
-
componentsByLanguage?: Record<string, {
|
|
11
|
-
CodeHeader?: ComponentType<CodeHeaderProps>;
|
|
12
|
-
SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps>;
|
|
13
|
-
}> | undefined;
|
|
14
|
-
};
|
|
15
|
-
export declare const CodeOverride: import("react").NamedExoticComponent<CodeOverrideProps>;
|
|
16
|
-
//# sourceMappingURL=CodeOverride.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CodeOverride.d.ts","sourceRoot":"","sources":["../../src/overrides/CodeOverride.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,aAAa,EAId,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,aAAa,EACb,eAAe,EACf,YAAY,EACZ,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAiEjB,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;AAoBF,eAAO,MAAM,YAAY,yDAMvB,CAAC"}
|
|
@@ -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,8 +0,0 @@
|
|
|
1
|
-
export declare const PreContext: import("react").Context<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLPreElement>, HTMLPreElement>, "ref"> & {
|
|
2
|
-
node?: import("hast").Element | undefined;
|
|
3
|
-
}, "children"> | null>;
|
|
4
|
-
export declare const useIsMarkdownCodeBlock: () => boolean;
|
|
5
|
-
export declare const PreOverride: import("react").NamedExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLPreElement>, HTMLPreElement>, "ref"> & {
|
|
6
|
-
node?: import("hast").Element | undefined;
|
|
7
|
-
}>;
|
|
8
|
-
//# sourceMappingURL=PreOverride.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PreOverride.d.ts","sourceRoot":"","sources":["../../src/overrides/PreOverride.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,UAAU;;sBAGR,CAAC;AAEhB,eAAO,MAAM,sBAAsB,eAElC,CAAC;AAMF,eAAO,MAAM,WAAW;;EAA0C,CAAC"}
|
|
@@ -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,15 +0,0 @@
|
|
|
1
|
-
import type { ComponentType, ReactNode } from "react";
|
|
2
|
-
import { PreComponent, CodeComponent, CodeHeaderProps } from "./types";
|
|
3
|
-
import { Element } from "hast";
|
|
4
|
-
export declare const DefaultPre: PreComponent;
|
|
5
|
-
export declare const DefaultCode: CodeComponent;
|
|
6
|
-
export declare const DefaultCodeBlockContent: ComponentType<{
|
|
7
|
-
node: Element | undefined;
|
|
8
|
-
components: {
|
|
9
|
-
Pre: PreComponent;
|
|
10
|
-
Code: CodeComponent;
|
|
11
|
-
};
|
|
12
|
-
code: string | ReactNode | undefined;
|
|
13
|
-
}>;
|
|
14
|
-
export declare const DefaultCodeHeader: ComponentType<CodeHeaderProps>;
|
|
15
|
-
//# sourceMappingURL=defaultComponents.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,eAAO,MAAM,UAAU,EAAE,YAExB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,aAEzB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,aAAa,CAAC;IAClD,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,UAAU,EAAE;QAAE,GAAG,EAAE,YAAY,CAAC;QAAC,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC;IACvD,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACtC,CAIA,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,eAAe,CAAc,CAAC"}
|
|
@@ -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":[]}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Element } from "hast";
|
|
2
|
-
import { ComponentPropsWithoutRef, ComponentType } from "react";
|
|
3
|
-
export type PreComponent = ComponentType<ComponentPropsWithoutRef<"pre"> & {
|
|
4
|
-
node?: Element | undefined;
|
|
5
|
-
}>;
|
|
6
|
-
export type CodeComponent = ComponentType<ComponentPropsWithoutRef<"code"> & {
|
|
7
|
-
node?: Element | undefined;
|
|
8
|
-
}>;
|
|
9
|
-
export type CodeHeaderProps = {
|
|
10
|
-
node?: Element | undefined;
|
|
11
|
-
language: string | undefined;
|
|
12
|
-
code: string;
|
|
13
|
-
};
|
|
14
|
-
export type SyntaxHighlighterProps = {
|
|
15
|
-
node?: Element | undefined;
|
|
16
|
-
components: {
|
|
17
|
-
Pre: PreComponent;
|
|
18
|
-
Code: CodeComponent;
|
|
19
|
-
};
|
|
20
|
-
language: string;
|
|
21
|
-
code: string;
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,CACjE,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,aAAa,CACvC,wBAAwB,CAAC,MAAM,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,CAClE,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,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"}
|