@assistant-ui/react-markdown 0.2.22 → 0.2.24
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.d.ts +6 -45
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -307
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7 -293
- package/dist/index.mjs.map +1 -1
- package/dist/overrides/CodeBlock.d.ts +14 -0
- package/dist/overrides/CodeBlock.d.ts.map +1 -0
- package/dist/overrides/CodeBlock.js +50 -0
- package/dist/overrides/CodeBlock.js.map +1 -0
- package/dist/overrides/CodeBlock.mjs +26 -0
- package/dist/overrides/CodeBlock.mjs.map +1 -0
- package/dist/overrides/CodeOverride.d.ts +16 -0
- package/dist/overrides/CodeOverride.d.ts.map +1 -0
- package/dist/overrides/CodeOverride.js +85 -0
- package/dist/overrides/CodeOverride.js.map +1 -0
- package/dist/overrides/CodeOverride.mjs +61 -0
- package/dist/overrides/CodeOverride.mjs.map +1 -0
- package/dist/overrides/PreOverride.d.ts +6 -0
- package/dist/overrides/PreOverride.d.ts.map +1 -0
- package/dist/overrides/PreOverride.js +41 -0
- package/dist/overrides/PreOverride.js.map +1 -0
- package/dist/overrides/PreOverride.mjs +15 -0
- package/dist/overrides/PreOverride.mjs.map +1 -0
- package/dist/overrides/defaultComponents.d.ts +13 -0
- package/dist/overrides/defaultComponents.d.ts.map +1 -0
- package/dist/overrides/defaultComponents.js +39 -0
- package/dist/overrides/defaultComponents.js.map +1 -0
- package/dist/overrides/defaultComponents.mjs +12 -0
- package/dist/overrides/defaultComponents.mjs.map +1 -0
- package/dist/overrides/types.d.ts +16 -0
- package/dist/overrides/types.d.ts.map +1 -0
- package/dist/overrides/types.js +17 -0
- package/dist/overrides/types.js.map +1 -0
- package/dist/overrides/types.mjs +1 -0
- package/dist/overrides/types.mjs.map +1 -0
- package/dist/overrides/withDefaults.d.ts +4 -0
- package/dist/overrides/withDefaults.d.ts.map +1 -0
- package/dist/overrides/withDefaults.js +49 -0
- package/dist/overrides/withDefaults.js.map +1 -0
- package/dist/overrides/withDefaults.mjs +15 -0
- package/dist/overrides/withDefaults.mjs.map +1 -0
- package/dist/primitives/MarkdownText.d.ts +22 -0
- package/dist/primitives/MarkdownText.d.ts.map +1 -0
- package/dist/primitives/MarkdownText.js +96 -0
- package/dist/primitives/MarkdownText.js.map +1 -0
- package/dist/primitives/MarkdownText.mjs +69 -0
- package/dist/primitives/MarkdownText.mjs.map +1 -0
- package/dist/styles/markdown.css +1 -0
- package/dist/styles/markdown.css.map +1 -0
- package/dist/tailwindcss/index.d.ts +4 -6
- package/dist/tailwindcss/index.d.ts.map +1 -0
- package/dist/tailwindcss/index.js +3 -76
- package/dist/tailwindcss/index.js.map +1 -1
- package/dist/tailwindcss/index.mjs +3 -75
- package/dist/tailwindcss/index.mjs.map +1 -1
- package/dist/ui/code-header.d.ts +4 -0
- package/dist/ui/code-header.d.ts.map +1 -0
- package/dist/ui/code-header.js +52 -0
- package/dist/ui/code-header.js.map +1 -0
- package/dist/ui/code-header.mjs +28 -0
- package/dist/ui/code-header.mjs.map +1 -0
- package/dist/ui/markdown-text.d.ts +4 -0
- package/dist/ui/markdown-text.d.ts.map +1 -0
- package/dist/ui/markdown-text.js +112 -0
- package/dist/ui/markdown-text.js.map +1 -0
- package/dist/ui/markdown-text.mjs +80 -0
- package/dist/ui/markdown-text.mjs.map +1 -0
- package/dist/ui/useCopyToClipboard.d.ts +7 -0
- package/dist/ui/useCopyToClipboard.d.ts.map +1 -0
- package/dist/ui/useCopyToClipboard.js +42 -0
- package/dist/ui/useCopyToClipboard.js.map +1 -0
- package/dist/ui/useCopyToClipboard.mjs +18 -0
- package/dist/ui/useCopyToClipboard.mjs.map +1 -0
- package/package.json +15 -21
- package/src/index.ts +18 -0
- package/src/overrides/CodeBlock.tsx +41 -0
- package/src/overrides/CodeOverride.tsx +91 -0
- package/src/overrides/PreOverride.tsx +15 -0
- package/src/overrides/defaultComponents.tsx +21 -0
- package/src/overrides/types.ts +22 -0
- package/src/overrides/withDefaults.tsx +14 -0
- package/src/primitives/MarkdownText.tsx +110 -0
- package/src/styles/tailwindcss/markdown.css +106 -0
- package/src/tailwindcss/index.ts +8 -0
- package/src/ui/code-header.tsx +32 -0
- package/src/ui/markdown-text.tsx +114 -0
- package/src/ui/useCopyToClipboard.tsx +21 -0
- package/tailwindcss/README.md +1 -0
- package/tailwindcss/package.json +5 -0
- package/dist/index.d.mts +0 -45
- package/dist/tailwindcss/index.d.mts +0 -11
package/dist/index.mjs
CHANGED
|
@@ -1,297 +1,11 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
// src/primitives/MarkdownText.tsx
|
|
4
|
-
import { INTERNAL, useContentPartText } from "@assistant-ui/react";
|
|
5
1
|
import {
|
|
6
|
-
|
|
7
|
-
} from "
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
import {
|
|
13
|
-
var PreContext = createContext(null);
|
|
14
|
-
var useIsMarkdownCodeBlock = () => {
|
|
15
|
-
return useContext(PreContext) !== null;
|
|
16
|
-
};
|
|
17
|
-
var PreOverride = ({ children, ...rest }) => {
|
|
18
|
-
return /* @__PURE__ */ jsx(PreContext.Provider, { value: rest, children });
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
// src/overrides/defaultComponents.tsx
|
|
22
|
-
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
23
|
-
var DefaultPre = ({ node, ...rest }) => /* @__PURE__ */ jsx2("pre", { ...rest });
|
|
24
|
-
var DefaultCode = ({ node, ...rest }) => /* @__PURE__ */ jsx2("code", { ...rest });
|
|
25
|
-
var DefaultCodeBlockContent = ({ components: { Pre, Code }, code }) => /* @__PURE__ */ jsx2(Pre, { children: /* @__PURE__ */ jsx2(Code, { children: code }) });
|
|
26
|
-
var DefaultCodeHeader = () => null;
|
|
27
|
-
|
|
28
|
-
// src/primitives/MarkdownText.tsx
|
|
29
|
-
import { useCallbackRef as useCallbackRef2 } from "@radix-ui/react-use-callback-ref";
|
|
30
|
-
|
|
31
|
-
// src/overrides/CodeOverride.tsx
|
|
32
|
-
import { useContext as useContext2 } from "react";
|
|
33
|
-
|
|
34
|
-
// src/overrides/CodeBlock.tsx
|
|
35
|
-
import { useMemo } from "react";
|
|
36
|
-
import { Fragment, jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
37
|
-
var DefaultCodeBlock = ({
|
|
38
|
-
components: { Pre, Code, SyntaxHighlighter, CodeHeader: CodeHeader2 },
|
|
39
|
-
language,
|
|
40
|
-
code
|
|
41
|
-
}) => {
|
|
42
|
-
const components = useMemo(() => ({ Pre, Code }), [Pre, Code]);
|
|
43
|
-
const SH = !!language ? SyntaxHighlighter : DefaultCodeBlockContent;
|
|
44
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
45
|
-
/* @__PURE__ */ jsx3(CodeHeader2, { language, code }),
|
|
46
|
-
/* @__PURE__ */ jsx3(
|
|
47
|
-
SH,
|
|
48
|
-
{
|
|
49
|
-
components,
|
|
50
|
-
language: language ?? "unknown",
|
|
51
|
-
code
|
|
52
|
-
}
|
|
53
|
-
)
|
|
54
|
-
] });
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
// src/overrides/CodeOverride.tsx
|
|
58
|
-
import { useCallbackRef } from "@radix-ui/react-use-callback-ref";
|
|
59
|
-
|
|
60
|
-
// src/overrides/withDefaults.tsx
|
|
61
|
-
import classNames from "classnames";
|
|
62
|
-
var withDefaultProps = ({
|
|
63
|
-
className,
|
|
64
|
-
...defaultProps
|
|
65
|
-
}) => ({ className: classNameProp, ...props }) => {
|
|
66
|
-
return {
|
|
67
|
-
className: classNames(className, classNameProp),
|
|
68
|
-
...defaultProps,
|
|
69
|
-
...props
|
|
70
|
-
};
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
// src/overrides/CodeOverride.tsx
|
|
74
|
-
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
75
|
-
var CodeBlockOverride = ({
|
|
76
|
-
components: {
|
|
77
|
-
Pre,
|
|
78
|
-
Code,
|
|
79
|
-
SyntaxHighlighter: FallbackSyntaxHighlighter,
|
|
80
|
-
CodeHeader: FallbackCodeHeader,
|
|
81
|
-
by_language = {}
|
|
82
|
-
},
|
|
83
|
-
children,
|
|
84
|
-
...codeProps
|
|
85
|
-
}) => {
|
|
86
|
-
const preProps = useContext2(PreContext);
|
|
87
|
-
const getPreProps = withDefaultProps(preProps);
|
|
88
|
-
const WrappedPre = useCallbackRef((props) => /* @__PURE__ */ jsx4(Pre, { ...getPreProps(props) }));
|
|
89
|
-
const getCodeProps = withDefaultProps(codeProps);
|
|
90
|
-
const WrappedCode = useCallbackRef((props) => /* @__PURE__ */ jsx4(Code, { ...getCodeProps(props) }));
|
|
91
|
-
const language = /language-(\w+)/.exec(codeProps.className || "")?.[1] ?? "";
|
|
92
|
-
if (typeof children !== "string") {
|
|
93
|
-
return /* @__PURE__ */ jsx4(
|
|
94
|
-
DefaultCodeBlockContent,
|
|
95
|
-
{
|
|
96
|
-
components: { Pre: WrappedPre, Code: WrappedCode },
|
|
97
|
-
code: children
|
|
98
|
-
}
|
|
99
|
-
);
|
|
100
|
-
}
|
|
101
|
-
const SyntaxHighlighter = by_language[language]?.SyntaxHighlighter ?? FallbackSyntaxHighlighter;
|
|
102
|
-
const CodeHeader2 = by_language[language]?.CodeHeader ?? FallbackCodeHeader;
|
|
103
|
-
return /* @__PURE__ */ jsx4(
|
|
104
|
-
DefaultCodeBlock,
|
|
105
|
-
{
|
|
106
|
-
components: {
|
|
107
|
-
Pre: WrappedPre,
|
|
108
|
-
Code: WrappedCode,
|
|
109
|
-
SyntaxHighlighter,
|
|
110
|
-
CodeHeader: CodeHeader2
|
|
111
|
-
},
|
|
112
|
-
language: language || "unknown",
|
|
113
|
-
code: children
|
|
114
|
-
}
|
|
115
|
-
);
|
|
116
|
-
};
|
|
117
|
-
var CodeOverride = ({
|
|
118
|
-
components,
|
|
119
|
-
...props
|
|
120
|
-
}) => {
|
|
121
|
-
const preProps = useContext2(PreContext);
|
|
122
|
-
if (!preProps) return /* @__PURE__ */ jsx4(components.Code, { ...props });
|
|
123
|
-
return /* @__PURE__ */ jsx4(CodeBlockOverride, { components, ...props });
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
// src/primitives/MarkdownText.tsx
|
|
127
|
-
import classNames2 from "classnames";
|
|
128
|
-
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
129
|
-
var { useSmooth } = INTERNAL;
|
|
130
|
-
var MarkdownTextPrimitive = forwardRef(
|
|
131
|
-
({
|
|
132
|
-
components: userComponents,
|
|
133
|
-
className,
|
|
134
|
-
containerProps,
|
|
135
|
-
containerComponent: Container = "div",
|
|
136
|
-
...rest
|
|
137
|
-
}, forwardedRef, smooth = true) => {
|
|
138
|
-
const { text, status } = useSmooth(useContentPartText(), smooth);
|
|
139
|
-
const {
|
|
140
|
-
pre = DefaultPre,
|
|
141
|
-
code = DefaultCode,
|
|
142
|
-
SyntaxHighlighter = DefaultCodeBlockContent,
|
|
143
|
-
CodeHeader: CodeHeader2 = DefaultCodeHeader,
|
|
144
|
-
by_language,
|
|
145
|
-
...componentsRest
|
|
146
|
-
} = userComponents ?? {};
|
|
147
|
-
const components = {
|
|
148
|
-
...componentsRest,
|
|
149
|
-
pre: PreOverride,
|
|
150
|
-
code: useCallbackRef2((props) => /* @__PURE__ */ jsx5(
|
|
151
|
-
CodeOverride,
|
|
152
|
-
{
|
|
153
|
-
components: {
|
|
154
|
-
Pre: pre,
|
|
155
|
-
Code: code,
|
|
156
|
-
SyntaxHighlighter,
|
|
157
|
-
CodeHeader: CodeHeader2,
|
|
158
|
-
by_language
|
|
159
|
-
},
|
|
160
|
-
...props
|
|
161
|
-
}
|
|
162
|
-
))
|
|
163
|
-
};
|
|
164
|
-
return /* @__PURE__ */ jsx5(
|
|
165
|
-
Container,
|
|
166
|
-
{
|
|
167
|
-
"data-status": status.type,
|
|
168
|
-
...containerProps,
|
|
169
|
-
className: classNames2(className, containerProps?.className),
|
|
170
|
-
ref: forwardedRef,
|
|
171
|
-
children: /* @__PURE__ */ jsx5(ReactMarkdown, { components, ...rest, children: text })
|
|
172
|
-
}
|
|
173
|
-
);
|
|
174
|
-
}
|
|
175
|
-
);
|
|
176
|
-
MarkdownTextPrimitive.displayName = "MarkdownTextPrimitive";
|
|
177
|
-
|
|
178
|
-
// src/ui/markdown-text.tsx
|
|
179
|
-
import { memo } from "react";
|
|
180
|
-
|
|
181
|
-
// src/ui/code-header.tsx
|
|
182
|
-
import { CheckIcon, CopyIcon } from "lucide-react";
|
|
183
|
-
import { INTERNAL as INTERNAL2, useThreadConfig } from "@assistant-ui/react";
|
|
184
|
-
|
|
185
|
-
// src/ui/useCopyToClipboard.tsx
|
|
186
|
-
import { useState } from "react";
|
|
187
|
-
var useCopyToClipboard = ({
|
|
188
|
-
copiedDuration = 3e3
|
|
189
|
-
} = {}) => {
|
|
190
|
-
const [isCopied, setIsCopied] = useState(false);
|
|
191
|
-
const copyToClipboard = (value) => {
|
|
192
|
-
if (!value) return;
|
|
193
|
-
navigator.clipboard.writeText(value).then(() => {
|
|
194
|
-
setIsCopied(true);
|
|
195
|
-
setTimeout(() => setIsCopied(false), copiedDuration);
|
|
196
|
-
});
|
|
197
|
-
};
|
|
198
|
-
return { isCopied, copyToClipboard };
|
|
199
|
-
};
|
|
200
|
-
|
|
201
|
-
// src/ui/code-header.tsx
|
|
202
|
-
import { jsx as jsx6, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
203
|
-
var { TooltipIconButton } = INTERNAL2;
|
|
204
|
-
var CodeHeader = ({ language, code }) => {
|
|
205
|
-
const {
|
|
206
|
-
strings: {
|
|
207
|
-
code: { header: { copy: { tooltip = "Copy" } = {} } = {} } = {}
|
|
208
|
-
} = {}
|
|
209
|
-
} = useThreadConfig();
|
|
210
|
-
const { isCopied, copyToClipboard } = useCopyToClipboard();
|
|
211
|
-
const onCopy = () => {
|
|
212
|
-
if (!code || isCopied) return;
|
|
213
|
-
copyToClipboard(code);
|
|
214
|
-
};
|
|
215
|
-
return /* @__PURE__ */ jsxs2("div", { className: "aui-code-header-root", children: [
|
|
216
|
-
/* @__PURE__ */ jsx6("span", { className: "aui-code-header-language", children: language }),
|
|
217
|
-
/* @__PURE__ */ jsxs2(TooltipIconButton, { tooltip, onClick: onCopy, children: [
|
|
218
|
-
!isCopied && /* @__PURE__ */ jsx6(CopyIcon, {}),
|
|
219
|
-
isCopied && /* @__PURE__ */ jsx6(CheckIcon, {})
|
|
220
|
-
] })
|
|
221
|
-
] });
|
|
222
|
-
};
|
|
223
|
-
|
|
224
|
-
// src/ui/markdown-text.tsx
|
|
225
|
-
import classNames3 from "classnames";
|
|
226
|
-
import { INTERNAL as INTERNAL3 } from "@assistant-ui/react";
|
|
227
|
-
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
228
|
-
var { withSmoothContextProvider, useSmoothStatus } = INTERNAL3;
|
|
229
|
-
var defaultComponents = {
|
|
230
|
-
h1: ({ node, className, ...props }) => /* @__PURE__ */ jsx7("h1", { className: classNames3("aui-md-h1", className), ...props }),
|
|
231
|
-
h2: ({ node, className, ...props }) => /* @__PURE__ */ jsx7("h2", { className: classNames3("aui-md-h2", className), ...props }),
|
|
232
|
-
h3: ({ node, className, ...props }) => /* @__PURE__ */ jsx7("h3", { className: classNames3("aui-md-h3", className), ...props }),
|
|
233
|
-
h4: ({ node, className, ...props }) => /* @__PURE__ */ jsx7("h4", { className: classNames3("aui-md-h4", className), ...props }),
|
|
234
|
-
h5: ({ node, className, ...props }) => /* @__PURE__ */ jsx7("h5", { className: classNames3("aui-md-h5", className), ...props }),
|
|
235
|
-
h6: ({ node, className, ...props }) => /* @__PURE__ */ jsx7("h6", { className: classNames3("aui-md-h6", className), ...props }),
|
|
236
|
-
p: ({ node, className, ...props }) => /* @__PURE__ */ jsx7("p", { className: classNames3("aui-md-p", className), ...props }),
|
|
237
|
-
a: ({ node, className, ...props }) => /* @__PURE__ */ jsx7("a", { className: classNames3("aui-md-a", className), ...props }),
|
|
238
|
-
blockquote: ({ node, className, ...props }) => /* @__PURE__ */ jsx7(
|
|
239
|
-
"blockquote",
|
|
240
|
-
{
|
|
241
|
-
className: classNames3("aui-md-blockquote", className),
|
|
242
|
-
...props
|
|
243
|
-
}
|
|
244
|
-
),
|
|
245
|
-
ul: ({ node, className, ...props }) => /* @__PURE__ */ jsx7("ul", { className: classNames3("aui-md-ul", className), ...props }),
|
|
246
|
-
ol: ({ node, className, ...props }) => /* @__PURE__ */ jsx7("ol", { className: classNames3("aui-md-ol", className), ...props }),
|
|
247
|
-
hr: ({ node, className, ...props }) => /* @__PURE__ */ jsx7("hr", { className: classNames3("aui-md-hr", className), ...props }),
|
|
248
|
-
table: ({ node, className, ...props }) => /* @__PURE__ */ jsx7("table", { className: classNames3("aui-md-table", className), ...props }),
|
|
249
|
-
th: ({ node, className, ...props }) => /* @__PURE__ */ jsx7("th", { className: classNames3("aui-md-th", className), ...props }),
|
|
250
|
-
td: ({ node, className, ...props }) => /* @__PURE__ */ jsx7("td", { className: classNames3("aui-md-td", className), ...props }),
|
|
251
|
-
tr: ({ node, className, ...props }) => /* @__PURE__ */ jsx7("tr", { className: classNames3("aui-md-tr", className), ...props }),
|
|
252
|
-
sup: ({ node, className, ...props }) => /* @__PURE__ */ jsx7("sup", { className: classNames3("aui-md-sup", className), ...props }),
|
|
253
|
-
pre: ({ node, className, ...props }) => /* @__PURE__ */ jsx7("pre", { className: classNames3("aui-md-pre", className), ...props }),
|
|
254
|
-
code: ({ node, className, ...props }) => {
|
|
255
|
-
const isCodeBlock = useIsMarkdownCodeBlock();
|
|
256
|
-
return /* @__PURE__ */ jsx7(
|
|
257
|
-
"code",
|
|
258
|
-
{
|
|
259
|
-
className: classNames3(!isCodeBlock && "aui-md-inline-code", className),
|
|
260
|
-
...props
|
|
261
|
-
}
|
|
262
|
-
);
|
|
263
|
-
},
|
|
264
|
-
CodeHeader
|
|
265
|
-
};
|
|
266
|
-
var makeMarkdownText = ({
|
|
267
|
-
className,
|
|
268
|
-
components: userComponents,
|
|
269
|
-
...rest
|
|
270
|
-
} = {}) => {
|
|
271
|
-
const components = {
|
|
272
|
-
...defaultComponents,
|
|
273
|
-
...Object.fromEntries(
|
|
274
|
-
// ignore undefined values, so undefined values do not override default components
|
|
275
|
-
Object.entries(userComponents ?? {}).filter(([_, v]) => v !== void 0)
|
|
276
|
-
)
|
|
277
|
-
};
|
|
278
|
-
const MarkdownTextImpl = () => {
|
|
279
|
-
const status = useSmoothStatus();
|
|
280
|
-
return /* @__PURE__ */ jsx7(
|
|
281
|
-
MarkdownTextPrimitive,
|
|
282
|
-
{
|
|
283
|
-
components,
|
|
284
|
-
...rest,
|
|
285
|
-
className: classNames3(
|
|
286
|
-
status.type === "running" && "aui-md-running",
|
|
287
|
-
className
|
|
288
|
-
)
|
|
289
|
-
}
|
|
290
|
-
);
|
|
291
|
-
};
|
|
292
|
-
MarkdownTextImpl.displayName = "MarkdownText";
|
|
293
|
-
return memo(withSmoothContextProvider(MarkdownTextImpl), () => true);
|
|
294
|
-
};
|
|
2
|
+
MarkdownTextPrimitive
|
|
3
|
+
} from "./primitives/MarkdownText";
|
|
4
|
+
import { useIsMarkdownCodeBlock } from "./overrides/PreOverride";
|
|
5
|
+
import {
|
|
6
|
+
makeMarkdownText
|
|
7
|
+
} from "./ui/markdown-text";
|
|
8
|
+
import { CodeHeader } from "./ui/code-header";
|
|
295
9
|
export {
|
|
296
10
|
CodeHeader,
|
|
297
11
|
MarkdownTextPrimitive,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/primitives/MarkdownText.tsx","../src/overrides/PreOverride.tsx","../src/overrides/defaultComponents.tsx","../src/overrides/CodeOverride.tsx","../src/overrides/CodeBlock.tsx","../src/overrides/withDefaults.tsx","../src/ui/markdown-text.tsx","../src/ui/code-header.tsx","../src/ui/useCopyToClipboard.tsx"],"sourcesContent":["\"use client\";\n\nimport { INTERNAL, useContentPartText } from \"@assistant-ui/react\";\nimport {\n ElementRef,\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 = ElementRef<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\">;\n containerComponent?: ElementType;\n components?: NonNullable<Options[\"components\"]> & {\n SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps>;\n CodeHeader?: ComponentType<CodeHeaderProps>;\n by_language?: Record<\n string,\n {\n CodeHeader?: ComponentType<CodeHeaderProps>;\n SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps>;\n }\n >;\n };\n smooth?: boolean;\n};\n\nexport const MarkdownTextPrimitive: ForwardRefExoticComponent<MarkdownTextPrimitiveProps> &\n RefAttributes<MarkdownTextPrimitiveElement> = forwardRef<\n MarkdownTextPrimitiveElement,\n MarkdownTextPrimitiveProps\n>(\n (\n {\n components: userComponents,\n className,\n containerProps,\n containerComponent: Container = \"div\",\n ...rest\n },\n forwardedRef,\n smooth = true,\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 by_language,\n }}\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","import { createContext, ComponentPropsWithoutRef, useContext } from \"react\";\nimport { PreComponent } from \"./types\";\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\nexport const PreOverride: PreComponent = ({ children, ...rest }) => {\n return <PreContext.Provider value={rest}>{children}</PreContext.Provider>;\n};\n","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","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 by_language = {},\n },\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 components={{ Pre: WrappedPre, Code: WrappedCode }}\n code={children}\n />\n );\n }\n\n const SyntaxHighlighter: ComponentType<SyntaxHighlighterProps> =\n by_language[language]?.SyntaxHighlighter ?? FallbackSyntaxHighlighter;\n\n const CodeHeader: ComponentType<CodeHeaderProps> =\n by_language[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 />\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 by_language?: Record<\n string,\n {\n CodeHeader?: ComponentType<CodeHeaderProps>;\n SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps>;\n }\n >;\n };\n};\n\nexport const CodeOverride: FC<CodeOverrideProps> = ({\n components,\n ...props\n}) => {\n const preProps = useContext(PreContext);\n if (!preProps) return <components.Code {...(props as any)} />;\n return <CodeBlockOverride components={components} {...props} />;\n};\n","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","import classNames from \"classnames\";\n\nexport const withDefaultProps =\n <TProps extends { className?: string | undefined }>({\n className,\n ...defaultProps\n }: Partial<TProps>) =>\n ({ className: classNameProp, ...props }: TProps) => {\n return {\n className: classNames(className, classNameProp),\n ...defaultProps,\n ...props,\n } as TProps;\n };\n","import { FC, memo } from \"react\";\nimport { CodeHeader } from \"./code-header\";\nimport classNames from \"classnames\";\nimport {\n MarkdownTextPrimitive,\n MarkdownTextPrimitiveProps,\n} from \"../primitives/MarkdownText\";\nimport { INTERNAL } from \"@assistant-ui/react\";\nimport { useIsMarkdownCodeBlock } from \"../overrides/PreOverride\";\n\nconst { withSmoothContextProvider, useSmoothStatus } = INTERNAL;\n\nexport type MakeMarkdownTextProps = MarkdownTextPrimitiveProps;\n\nconst defaultComponents: MakeMarkdownTextProps[\"components\"] = {\n h1: ({ node, className, ...props }) => (\n <h1 className={classNames(\"aui-md-h1\", className)} {...props} />\n ),\n h2: ({ node, className, ...props }) => (\n <h2 className={classNames(\"aui-md-h2\", className)} {...props} />\n ),\n h3: ({ node, className, ...props }) => (\n <h3 className={classNames(\"aui-md-h3\", className)} {...props} />\n ),\n h4: ({ node, className, ...props }) => (\n <h4 className={classNames(\"aui-md-h4\", className)} {...props} />\n ),\n h5: ({ node, className, ...props }) => (\n <h5 className={classNames(\"aui-md-h5\", className)} {...props} />\n ),\n h6: ({ node, className, ...props }) => (\n <h6 className={classNames(\"aui-md-h6\", className)} {...props} />\n ),\n p: ({ node, className, ...props }) => (\n <p className={classNames(\"aui-md-p\", className)} {...props} />\n ),\n a: ({ node, className, ...props }) => (\n <a className={classNames(\"aui-md-a\", className)} {...props} />\n ),\n blockquote: ({ node, className, ...props }) => (\n <blockquote\n className={classNames(\"aui-md-blockquote\", className)}\n {...props}\n />\n ),\n ul: ({ node, className, ...props }) => (\n <ul className={classNames(\"aui-md-ul\", className)} {...props} />\n ),\n ol: ({ node, className, ...props }) => (\n <ol className={classNames(\"aui-md-ol\", className)} {...props} />\n ),\n hr: ({ node, className, ...props }) => (\n <hr className={classNames(\"aui-md-hr\", className)} {...props} />\n ),\n table: ({ node, className, ...props }) => (\n <table className={classNames(\"aui-md-table\", className)} {...props} />\n ),\n th: ({ node, className, ...props }) => (\n <th className={classNames(\"aui-md-th\", className)} {...props} />\n ),\n td: ({ node, className, ...props }) => (\n <td className={classNames(\"aui-md-td\", className)} {...props} />\n ),\n tr: ({ node, className, ...props }) => (\n <tr className={classNames(\"aui-md-tr\", className)} {...props} />\n ),\n sup: ({ node, className, ...props }) => (\n <sup className={classNames(\"aui-md-sup\", className)} {...props} />\n ),\n pre: ({ node, className, ...props }) => (\n <pre className={classNames(\"aui-md-pre\", className)} {...props} />\n ),\n code: ({ node, className, ...props }) => {\n const isCodeBlock = useIsMarkdownCodeBlock();\n return (\n <code\n className={classNames(!isCodeBlock && \"aui-md-inline-code\", className)}\n {...props}\n />\n );\n },\n CodeHeader,\n};\n\nexport const makeMarkdownText = ({\n className,\n components: userComponents,\n ...rest\n}: MakeMarkdownTextProps = {}) => {\n const components = {\n ...defaultComponents,\n ...Object.fromEntries(\n // ignore undefined values, so undefined values do not override default components\n Object.entries(userComponents ?? {}).filter(([_, v]) => v !== undefined),\n ),\n };\n\n const MarkdownTextImpl: FC = () => {\n const status = useSmoothStatus();\n return (\n <MarkdownTextPrimitive\n components={components}\n {...rest}\n className={classNames(\n status.type === \"running\" && \"aui-md-running\",\n className,\n )}\n />\n );\n };\n MarkdownTextImpl.displayName = \"MarkdownText\";\n\n return memo(withSmoothContextProvider(MarkdownTextImpl), () => true);\n};\n","import { FC } from \"react\";\nimport { CheckIcon, CopyIcon } from \"lucide-react\";\nimport { INTERNAL, useThreadConfig } from \"@assistant-ui/react\";\n\nimport { CodeHeaderProps } from \"../overrides/types\";\nimport { useCopyToClipboard } from \"./useCopyToClipboard\";\n\nconst { TooltipIconButton } = INTERNAL;\n\nexport const CodeHeader: FC<CodeHeaderProps> = ({ language, code }) => {\n const {\n strings: {\n code: { header: { copy: { tooltip = \"Copy\" } = {} } = {} } = {},\n } = {},\n } = useThreadConfig();\n\n const { isCopied, copyToClipboard } = useCopyToClipboard();\n const onCopy = () => {\n if (!code || isCopied) return;\n copyToClipboard(code);\n };\n\n return (\n <div className=\"aui-code-header-root\">\n <span className=\"aui-code-header-language\">{language}</span>\n <TooltipIconButton tooltip={tooltip} onClick={onCopy}>\n {!isCopied && <CopyIcon />}\n {isCopied && <CheckIcon />}\n </TooltipIconButton>\n </div>\n );\n};\n","import { useState } from \"react\";\nimport { UseActionBarCopyProps } from \"@assistant-ui/react\";\n\nexport type useCopyToClipboardProps = UseActionBarCopyProps;\n\nexport const useCopyToClipboard = ({\n copiedDuration = 3000,\n}: useCopyToClipboardProps = {}) => {\n const [isCopied, setIsCopied] = useState<boolean>(false);\n\n const copyToClipboard = (value: string) => {\n if (!value) return;\n\n navigator.clipboard.writeText(value).then(() => {\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), copiedDuration);\n });\n };\n\n return { isCopied, copyToClipboard };\n};\n"],"mappings":"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","names":["jsx","useCallbackRef","useContext","jsx","CodeHeader","jsx","useContext","CodeHeader","classNames","jsx","CodeHeader","useCallbackRef","INTERNAL","jsx","jsxs","INTERNAL","classNames","INTERNAL","jsx","INTERNAL","classNames"]}
|
|
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\";\n\nexport {\n makeMarkdownText,\n type MakeMarkdownTextProps,\n} from \"./ui/markdown-text\";\n\nexport { CodeHeader } from \"./ui/code-header\";\n"],"mappings":"AAAA;AAAA,EACE;AAAA,OAEK;AAOP,SAAS,8BAA8B;AAEvC;AAAA,EACE;AAAA,OAEK;AAEP,SAAS,kBAAkB;","names":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ComponentType, FC } from "react";
|
|
2
|
+
import { CodeComponent, CodeHeaderProps, PreComponent, SyntaxHighlighterProps } from "./types";
|
|
3
|
+
export type CodeBlockProps = {
|
|
4
|
+
language: string;
|
|
5
|
+
code: string;
|
|
6
|
+
components: {
|
|
7
|
+
Pre: PreComponent;
|
|
8
|
+
Code: CodeComponent;
|
|
9
|
+
CodeHeader: ComponentType<CodeHeaderProps>;
|
|
10
|
+
SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export declare const DefaultCodeBlock: FC<CodeBlockProps>;
|
|
14
|
+
//# sourceMappingURL=CodeBlock.d.ts.map
|
|
@@ -0,0 +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;AAGjB,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;CACH,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,cAAc,CAmB/C,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var CodeBlock_exports = {};
|
|
20
|
+
__export(CodeBlock_exports, {
|
|
21
|
+
DefaultCodeBlock: () => DefaultCodeBlock
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(CodeBlock_exports);
|
|
24
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
|
+
var import_react = require("react");
|
|
26
|
+
var import_defaultComponents = require("./defaultComponents");
|
|
27
|
+
const DefaultCodeBlock = ({
|
|
28
|
+
components: { Pre, Code, SyntaxHighlighter, CodeHeader },
|
|
29
|
+
language,
|
|
30
|
+
code
|
|
31
|
+
}) => {
|
|
32
|
+
const components = (0, import_react.useMemo)(() => ({ Pre, Code }), [Pre, Code]);
|
|
33
|
+
const SH = !!language ? SyntaxHighlighter : import_defaultComponents.DefaultCodeBlockContent;
|
|
34
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
35
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CodeHeader, { language, code }),
|
|
36
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
37
|
+
SH,
|
|
38
|
+
{
|
|
39
|
+
components,
|
|
40
|
+
language: language ?? "unknown",
|
|
41
|
+
code
|
|
42
|
+
}
|
|
43
|
+
)
|
|
44
|
+
] });
|
|
45
|
+
};
|
|
46
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
47
|
+
0 && (module.exports = {
|
|
48
|
+
DefaultCodeBlock
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=CodeBlock.js.map
|
|
@@ -0,0 +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;AA+BI;AA/BJ,mBAA2C;AAQ3C,+BAAwC;AAajC,MAAM,mBAAuC,CAAC;AAAA,EACnD,YAAY,EAAE,KAAK,MAAM,mBAAmB,WAAW;AAAA,EACvD;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;AAAA,IACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { DefaultCodeBlockContent } from "./defaultComponents";
|
|
4
|
+
const DefaultCodeBlock = ({
|
|
5
|
+
components: { Pre, Code, SyntaxHighlighter, CodeHeader },
|
|
6
|
+
language,
|
|
7
|
+
code
|
|
8
|
+
}) => {
|
|
9
|
+
const components = useMemo(() => ({ Pre, Code }), [Pre, Code]);
|
|
10
|
+
const SH = !!language ? SyntaxHighlighter : DefaultCodeBlockContent;
|
|
11
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
12
|
+
/* @__PURE__ */ jsx(CodeHeader, { language, code }),
|
|
13
|
+
/* @__PURE__ */ jsx(
|
|
14
|
+
SH,
|
|
15
|
+
{
|
|
16
|
+
components,
|
|
17
|
+
language: language ?? "unknown",
|
|
18
|
+
code
|
|
19
|
+
}
|
|
20
|
+
)
|
|
21
|
+
] });
|
|
22
|
+
};
|
|
23
|
+
export {
|
|
24
|
+
DefaultCodeBlock
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=CodeBlock.mjs.map
|
|
@@ -0,0 +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":"AA+BI,mBACE,KADF;AA/BJ,SAA4B,eAAe;AAQ3C,SAAS,+BAA+B;AAajC,MAAM,mBAAuC,CAAC;AAAA,EACnD,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,UAAoB,MAAY;AAAA,IAC5C;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,UAAU,YAAY;AAAA,QACtB;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ComponentPropsWithoutRef, ComponentType, FC } 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
|
+
by_language?: Record<string, {
|
|
10
|
+
CodeHeader?: ComponentType<CodeHeaderProps>;
|
|
11
|
+
SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps>;
|
|
12
|
+
}>;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export declare const CodeOverride: FC<CodeOverrideProps>;
|
|
16
|
+
//# sourceMappingURL=CodeOverride.d.ts.map
|
|
@@ -0,0 +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;AA4DjB,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;QACzD,WAAW,CAAC,EAAE,MAAM,CAClB,MAAM,EACN;YACE,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;YAC5C,iBAAiB,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;SAC3D,CACF,CAAC;KACH,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAO9C,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var CodeOverride_exports = {};
|
|
20
|
+
__export(CodeOverride_exports, {
|
|
21
|
+
CodeOverride: () => CodeOverride
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(CodeOverride_exports);
|
|
24
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
|
+
var import_react = require("react");
|
|
26
|
+
var import_PreOverride = require("./PreOverride");
|
|
27
|
+
var import_CodeBlock = require("./CodeBlock");
|
|
28
|
+
var import_react_use_callback_ref = require("@radix-ui/react-use-callback-ref");
|
|
29
|
+
var import_withDefaults = require("./withDefaults");
|
|
30
|
+
var import_defaultComponents = require("./defaultComponents");
|
|
31
|
+
const CodeBlockOverride = ({
|
|
32
|
+
components: {
|
|
33
|
+
Pre,
|
|
34
|
+
Code,
|
|
35
|
+
SyntaxHighlighter: FallbackSyntaxHighlighter,
|
|
36
|
+
CodeHeader: FallbackCodeHeader,
|
|
37
|
+
by_language = {}
|
|
38
|
+
},
|
|
39
|
+
children,
|
|
40
|
+
...codeProps
|
|
41
|
+
}) => {
|
|
42
|
+
const preProps = (0, import_react.useContext)(import_PreOverride.PreContext);
|
|
43
|
+
const getPreProps = (0, import_withDefaults.withDefaultProps)(preProps);
|
|
44
|
+
const WrappedPre = (0, import_react_use_callback_ref.useCallbackRef)((props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Pre, { ...getPreProps(props) }));
|
|
45
|
+
const getCodeProps = (0, import_withDefaults.withDefaultProps)(codeProps);
|
|
46
|
+
const WrappedCode = (0, import_react_use_callback_ref.useCallbackRef)((props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Code, { ...getCodeProps(props) }));
|
|
47
|
+
const language = /language-(\w+)/.exec(codeProps.className || "")?.[1] ?? "";
|
|
48
|
+
if (typeof children !== "string") {
|
|
49
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
50
|
+
import_defaultComponents.DefaultCodeBlockContent,
|
|
51
|
+
{
|
|
52
|
+
components: { Pre: WrappedPre, Code: WrappedCode },
|
|
53
|
+
code: children
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
const SyntaxHighlighter = by_language[language]?.SyntaxHighlighter ?? FallbackSyntaxHighlighter;
|
|
58
|
+
const CodeHeader = by_language[language]?.CodeHeader ?? FallbackCodeHeader;
|
|
59
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
60
|
+
import_CodeBlock.DefaultCodeBlock,
|
|
61
|
+
{
|
|
62
|
+
components: {
|
|
63
|
+
Pre: WrappedPre,
|
|
64
|
+
Code: WrappedCode,
|
|
65
|
+
SyntaxHighlighter,
|
|
66
|
+
CodeHeader
|
|
67
|
+
},
|
|
68
|
+
language: language || "unknown",
|
|
69
|
+
code: children
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
};
|
|
73
|
+
const CodeOverride = ({
|
|
74
|
+
components,
|
|
75
|
+
...props
|
|
76
|
+
}) => {
|
|
77
|
+
const preProps = (0, import_react.useContext)(import_PreOverride.PreContext);
|
|
78
|
+
if (!preProps) return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(components.Code, { ...props });
|
|
79
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CodeBlockOverride, { components, ...props });
|
|
80
|
+
};
|
|
81
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
82
|
+
0 && (module.exports = {
|
|
83
|
+
CodeOverride
|
|
84
|
+
});
|
|
85
|
+
//# sourceMappingURL=CodeOverride.js.map
|
|
@@ -0,0 +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 by_language = {},\n },\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 components={{ Pre: WrappedPre, Code: WrappedCode }}\n code={children}\n />\n );\n }\n\n const SyntaxHighlighter: ComponentType<SyntaxHighlighterProps> =\n by_language[language]?.SyntaxHighlighter ?? FallbackSyntaxHighlighter;\n\n const CodeHeader: ComponentType<CodeHeaderProps> =\n by_language[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 />\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 by_language?: Record<\n string,\n {\n CodeHeader?: ComponentType<CodeHeaderProps>;\n SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps>;\n }\n >;\n };\n};\n\nexport const CodeOverride: FC<CodeOverrideProps> = ({\n components,\n ...props\n}) => {\n const preProps = useContext(PreContext);\n if (!preProps) return <components.Code {...(props as any)} />;\n return <CodeBlockOverride components={components} {...props} />;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BI;AA3BJ,mBAAwE;AACxE,yBAA2B;AAO3B,uBAAiC;AACjC,oCAA+B;AAC/B,0BAAiC;AACjC,+BAAwC;AAExC,MAAM,oBAA2C,CAAC;AAAA,EAChD,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,cAAc,CAAC;AAAA,EACjB;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;AAAA,IACR;AAAA,EAEJ;AAEA,QAAM,oBACJ,YAAY,QAAQ,GAAG,qBAAqB;AAE9C,QAAM,aACJ,YAAY,QAAQ,GAAG,cAAc;AAEvC,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;AAAA,EACR;AAEJ;AAkBO,MAAM,eAAsC,CAAC;AAAA,EAClD;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,eAAW,yBAAW,6BAAU;AACtC,MAAI,CAAC,SAAU,QAAO,4CAAC,WAAW,MAAX,EAAiB,GAAI,OAAe;AAC3D,SAAO,4CAAC,qBAAkB,YAAyB,GAAG,OAAO;AAC/D;","names":[]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
import { PreContext } from "./PreOverride";
|
|
4
|
+
import { DefaultCodeBlock } from "./CodeBlock";
|
|
5
|
+
import { useCallbackRef } from "@radix-ui/react-use-callback-ref";
|
|
6
|
+
import { withDefaultProps } from "./withDefaults";
|
|
7
|
+
import { DefaultCodeBlockContent } from "./defaultComponents";
|
|
8
|
+
const CodeBlockOverride = ({
|
|
9
|
+
components: {
|
|
10
|
+
Pre,
|
|
11
|
+
Code,
|
|
12
|
+
SyntaxHighlighter: FallbackSyntaxHighlighter,
|
|
13
|
+
CodeHeader: FallbackCodeHeader,
|
|
14
|
+
by_language = {}
|
|
15
|
+
},
|
|
16
|
+
children,
|
|
17
|
+
...codeProps
|
|
18
|
+
}) => {
|
|
19
|
+
const preProps = useContext(PreContext);
|
|
20
|
+
const getPreProps = withDefaultProps(preProps);
|
|
21
|
+
const WrappedPre = useCallbackRef((props) => /* @__PURE__ */ jsx(Pre, { ...getPreProps(props) }));
|
|
22
|
+
const getCodeProps = withDefaultProps(codeProps);
|
|
23
|
+
const WrappedCode = useCallbackRef((props) => /* @__PURE__ */ jsx(Code, { ...getCodeProps(props) }));
|
|
24
|
+
const language = /language-(\w+)/.exec(codeProps.className || "")?.[1] ?? "";
|
|
25
|
+
if (typeof children !== "string") {
|
|
26
|
+
return /* @__PURE__ */ jsx(
|
|
27
|
+
DefaultCodeBlockContent,
|
|
28
|
+
{
|
|
29
|
+
components: { Pre: WrappedPre, Code: WrappedCode },
|
|
30
|
+
code: children
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
const SyntaxHighlighter = by_language[language]?.SyntaxHighlighter ?? FallbackSyntaxHighlighter;
|
|
35
|
+
const CodeHeader = by_language[language]?.CodeHeader ?? FallbackCodeHeader;
|
|
36
|
+
return /* @__PURE__ */ jsx(
|
|
37
|
+
DefaultCodeBlock,
|
|
38
|
+
{
|
|
39
|
+
components: {
|
|
40
|
+
Pre: WrappedPre,
|
|
41
|
+
Code: WrappedCode,
|
|
42
|
+
SyntaxHighlighter,
|
|
43
|
+
CodeHeader
|
|
44
|
+
},
|
|
45
|
+
language: language || "unknown",
|
|
46
|
+
code: children
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
};
|
|
50
|
+
const CodeOverride = ({
|
|
51
|
+
components,
|
|
52
|
+
...props
|
|
53
|
+
}) => {
|
|
54
|
+
const preProps = useContext(PreContext);
|
|
55
|
+
if (!preProps) return /* @__PURE__ */ jsx(components.Code, { ...props });
|
|
56
|
+
return /* @__PURE__ */ jsx(CodeBlockOverride, { components, ...props });
|
|
57
|
+
};
|
|
58
|
+
export {
|
|
59
|
+
CodeOverride
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=CodeOverride.mjs.map
|