@rasenganjs/mdx 1.2.0-beta.7 → 1.2.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.
Files changed (74) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/chunk-U2MZHTHK.js +89 -0
  3. package/dist/index.cjs +922 -0
  4. package/dist/index.d.cts +150 -0
  5. package/dist/index.d.ts +150 -0
  6. package/dist/index.js +798 -0
  7. package/dist/plugin.cjs +289 -0
  8. package/dist/plugin.d.cts +20 -0
  9. package/dist/plugin.d.ts +20 -0
  10. package/dist/plugin.js +174 -0
  11. package/package.json +15 -15
  12. package/tsup.config.ts +11 -0
  13. package/types/client.d.ts +1 -1
  14. package/lib/components/codeblock.d.ts +0 -15
  15. package/lib/components/codeblock.js +0 -62
  16. package/lib/components/codeblock.js.map +0 -1
  17. package/lib/components/codeblock2.d.ts +0 -14
  18. package/lib/components/codeblock2.js +0 -47
  19. package/lib/components/codeblock2.js.map +0 -1
  20. package/lib/components/heading.d.ts +0 -2
  21. package/lib/components/heading.js +0 -27
  22. package/lib/components/heading.js.map +0 -1
  23. package/lib/components/index.d.ts +0 -5
  24. package/lib/components/index.js +0 -8
  25. package/lib/components/index.js.map +0 -1
  26. package/lib/components/markdown.d.ts +0 -7
  27. package/lib/components/markdown.js +0 -28
  28. package/lib/components/markdown.js.map +0 -1
  29. package/lib/components/renderer.d.ts +0 -12
  30. package/lib/components/renderer.js +0 -45
  31. package/lib/components/renderer.js.map +0 -1
  32. package/lib/components/table.d.ts +0 -3
  33. package/lib/components/table.js +0 -5
  34. package/lib/components/table.js.map +0 -1
  35. package/lib/components/toc.d.ts +0 -7
  36. package/lib/components/toc.js +0 -26
  37. package/lib/components/toc.js.map +0 -1
  38. package/lib/hooks/use-toc-observer.d.ts +0 -8
  39. package/lib/hooks/use-toc-observer.js +0 -60
  40. package/lib/hooks/use-toc-observer.js.map +0 -1
  41. package/lib/index.d.ts +0 -13
  42. package/lib/index.js +0 -16
  43. package/lib/index.js.map +0 -1
  44. package/lib/styles/rasengan-mdx.min.css +0 -1
  45. package/lib/types/index.d.ts +0 -67
  46. package/lib/types/index.js +0 -2
  47. package/lib/types/index.js.map +0 -1
  48. package/lib/utils/create-filter.d.ts +0 -8
  49. package/lib/utils/create-filter.js +0 -23
  50. package/lib/utils/create-filter.js.map +0 -1
  51. package/lib/utils/create-heading.d.ts +0 -4
  52. package/lib/utils/create-heading.js +0 -19
  53. package/lib/utils/create-heading.js.map +0 -1
  54. package/lib/utils/define-mdx-config.d.ts +0 -2
  55. package/lib/utils/define-mdx-config.js +0 -4
  56. package/lib/utils/define-mdx-config.js.map +0 -1
  57. package/lib/utils/extract-toc.d.ts +0 -23
  58. package/lib/utils/extract-toc.js +0 -113
  59. package/lib/utils/extract-toc.js.map +0 -1
  60. package/lib/utils/generate-navigation.d.ts +0 -0
  61. package/lib/utils/generate-navigation.js +0 -75
  62. package/lib/utils/generate-navigation.js.map +0 -1
  63. package/lib/utils/index.d.ts +0 -15
  64. package/lib/utils/index.js +0 -4
  65. package/lib/utils/index.js.map +0 -1
  66. package/lib/utils/mark-to-html.d.ts +0 -1
  67. package/lib/utils/mark-to-html.js +0 -15
  68. package/lib/utils/mark-to-html.js.map +0 -1
  69. package/lib/utils/plugin.d.ts +0 -26
  70. package/lib/utils/plugin.js +0 -149
  71. package/lib/utils/plugin.js.map +0 -1
  72. package/lib/utils/polyfill.d.ts +0 -10
  73. package/lib/utils/polyfill.js +0 -15
  74. package/lib/utils/polyfill.js.map +0 -1
package/dist/index.js ADDED
@@ -0,0 +1,798 @@
1
+ import {
2
+ extractTOC,
3
+ generateAnchor
4
+ } from "./chunk-U2MZHTHK.js";
5
+
6
+ // src/utils/define-mdx-config.ts
7
+ function defineMDXConfig(config) {
8
+ return config;
9
+ }
10
+
11
+ // src/components/heading.tsx
12
+ import { createElement, useMemo } from "react";
13
+ import { jsx, jsxs } from "react/jsx-runtime";
14
+ var Heading = ({ variant }) => {
15
+ return ({ children }) => {
16
+ const { text, id } = useMemo(() => {
17
+ const { id: id2, text: text2 } = generateAnchor(children);
18
+ return {
19
+ id: variant === "h1" ? void 0 : id2,
20
+ text: text2
21
+ };
22
+ }, [children]);
23
+ const heading = createElement(variant, {
24
+ id,
25
+ className: "heading",
26
+ children: text
27
+ });
28
+ const handleClick = (e, id2) => {
29
+ e.preventDefault();
30
+ const element = document.getElementById(id2);
31
+ element?.scrollIntoView({ behavior: "smooth" });
32
+ history.pushState(null, "", `#${id2}`);
33
+ };
34
+ return /* @__PURE__ */ jsxs("div", { className: "ra-heading-wrapper", children: [
35
+ heading,
36
+ id && /* @__PURE__ */ jsx("a", { href: `#${id}`, onClick: (e) => handleClick(e, id), children: /* @__PURE__ */ jsxs(
37
+ "svg",
38
+ {
39
+ xmlns: "http://www.w3.org/2000/svg",
40
+ viewBox: "0 0 24 24",
41
+ width: "24",
42
+ height: "24",
43
+ color: "#ffffff",
44
+ fill: "none",
45
+ children: [
46
+ /* @__PURE__ */ jsx(
47
+ "path",
48
+ {
49
+ d: "M10 13.229C10.1416 13.4609 10.3097 13.6804 10.5042 13.8828C11.7117 15.1395 13.5522 15.336 14.9576 14.4722C15.218 14.3121 15.4634 14.1157 15.6872 13.8828L18.9266 10.5114C20.3578 9.02184 20.3578 6.60676 18.9266 5.11718C17.4953 3.6276 15.1748 3.62761 13.7435 5.11718L13.03 5.85978",
50
+ stroke: "currentColor",
51
+ strokeWidth: "1.5",
52
+ strokeLinecap: "round"
53
+ }
54
+ ),
55
+ /* @__PURE__ */ jsx(
56
+ "path",
57
+ {
58
+ d: "M10.9703 18.14L10.2565 18.8828C8.82526 20.3724 6.50471 20.3724 5.07345 18.8828C3.64218 17.3932 3.64218 14.9782 5.07345 13.4886L8.31287 10.1172C9.74413 8.62761 12.0647 8.6276 13.4959 10.1172C13.6904 10.3195 13.8584 10.539 14 10.7708",
59
+ stroke: "currentColor",
60
+ strokeWidth: "1.5",
61
+ strokeLinecap: "round"
62
+ }
63
+ )
64
+ ]
65
+ }
66
+ ) })
67
+ ] });
68
+ };
69
+ };
70
+
71
+ // src/components/toc.tsx
72
+ import React, { useCallback } from "react";
73
+
74
+ // src/hooks/use-toc-observer.ts
75
+ import { useState, useEffect, useRef } from "react";
76
+ function useActiveTocItem(items, options = {
77
+ root: null,
78
+ rootMargin: "0px",
79
+ threshold: 0.4
80
+ // Trigger when 40% of the section is visible
81
+ }) {
82
+ const [activeId, setActiveId] = useState(null);
83
+ const observerRef = useRef(null);
84
+ useEffect(() => {
85
+ observerRef.current = new IntersectionObserver((entries) => {
86
+ entries.forEach((entry) => {
87
+ if (entry.isIntersecting) {
88
+ const rect = entry.boundingClientRect;
89
+ if (rect.top >= 0) {
90
+ setActiveId(entry.target.id);
91
+ }
92
+ }
93
+ });
94
+ const sortedEntries = entries.filter((entry) => entry.isIntersecting).sort((a, b) => b.boundingClientRect.top - a.boundingClientRect.top);
95
+ if (sortedEntries.length > 0) {
96
+ setActiveId(sortedEntries[0].target.id);
97
+ }
98
+ }, options);
99
+ const observeElements = () => {
100
+ items.forEach((item) => {
101
+ const element = document.getElementById(item.anchor.id);
102
+ if (element && observerRef.current) {
103
+ observerRef.current.observe(element);
104
+ }
105
+ item.children?.forEach((child) => {
106
+ const childElement = document.getElementById(child.anchor.id);
107
+ if (childElement && observerRef.current) {
108
+ observerRef.current.observe(childElement);
109
+ }
110
+ });
111
+ });
112
+ };
113
+ observeElements();
114
+ return () => {
115
+ if (observerRef.current) {
116
+ observerRef.current.disconnect();
117
+ }
118
+ };
119
+ }, [items, options]);
120
+ return [activeId, setActiveId];
121
+ }
122
+
123
+ // src/components/toc.tsx
124
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
125
+ var TableOfContents = ({ items }) => {
126
+ const [activeId, setActiveId] = useActiveTocItem(items);
127
+ const renderTOCItems = useCallback(
128
+ (items2) => {
129
+ return items2.map((item, index) => /* @__PURE__ */ jsxs2(React.Fragment, { children: [
130
+ /* @__PURE__ */ jsx2(Item, { item, activeId, onActive: setActiveId }),
131
+ item.children && item.children.length > 0 && /* @__PURE__ */ jsx2("div", { className: "toc-item--children", children: renderTOCItems(item.children) })
132
+ ] }, index));
133
+ },
134
+ [items, activeId]
135
+ );
136
+ return /* @__PURE__ */ jsx2("aside", { className: "rasengan-toc", children: /* @__PURE__ */ jsxs2("div", { className: "table-of-contents", children: [
137
+ /* @__PURE__ */ jsx2("h2", { className: "title", children: "ON THIS PAGE" }),
138
+ /* @__PURE__ */ jsx2("div", { className: "items-container", children: renderTOCItems(items) })
139
+ ] }) });
140
+ };
141
+ var Item = ({ item, activeId, onActive }) => {
142
+ const handleClick = (e, id) => {
143
+ e.preventDefault();
144
+ onActive(id);
145
+ const element = document.getElementById(id);
146
+ element?.scrollIntoView({ behavior: "smooth" });
147
+ history.pushState(null, "", `#${id}`);
148
+ };
149
+ return /* @__PURE__ */ jsx2(
150
+ "div",
151
+ {
152
+ className: `
153
+ toc-item
154
+ ${item.level === 2 ? "level2" : "level3"}
155
+ ${activeId === item.anchor.id ? "active" : ""}
156
+ `,
157
+ children: /* @__PURE__ */ jsx2(
158
+ "a",
159
+ {
160
+ href: `#${item.anchor.id}`,
161
+ onClick: (e) => handleClick(e, item.anchor.id),
162
+ children: /* @__PURE__ */ jsx2("div", { className: "toc-item--title", children: item.anchor.text })
163
+ }
164
+ )
165
+ },
166
+ item.anchor.id
167
+ );
168
+ };
169
+ var toc_default = TableOfContents;
170
+
171
+ // src/utils/create-heading.tsx
172
+ import { jsx as jsx3 } from "react/jsx-runtime";
173
+ function createHeading(CustomHeading) {
174
+ return ({ children }) => {
175
+ const { id, text } = generateAnchor(children);
176
+ return /* @__PURE__ */ jsx3(CustomHeading, { id, children: text });
177
+ };
178
+ }
179
+
180
+ // src/components/renderer.tsx
181
+ import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
182
+ var MDXRenderer = ({
183
+ children: MDXContent,
184
+ className,
185
+ config,
186
+ // TOC Extracted from the original MDX file
187
+ toc: originalTocData,
188
+ // Original markdown content
189
+ raw
190
+ }) => {
191
+ const {
192
+ components = {},
193
+ toc: customTocFunction = void 0,
194
+ layout: Layout
195
+ } = config;
196
+ if (Layout) {
197
+ return /* @__PURE__ */ jsx4(
198
+ Layout,
199
+ {
200
+ toc: originalTocData && (customTocFunction ? customTocFunction(originalTocData) : /* @__PURE__ */ jsx4(toc_default, { items: originalTocData })),
201
+ children: /* @__PURE__ */ jsx4(
202
+ MDXContent,
203
+ {
204
+ components: {
205
+ ...components,
206
+ h1: components.h1 ? createHeading(components.h1) : Heading({ variant: "h1" }),
207
+ h2: components.h2 ? createHeading(components.h2) : Heading({ variant: "h2" }),
208
+ h3: components.h3 ? createHeading(components.h3) : Heading({ variant: "h3" }),
209
+ h4: components.h4 ? createHeading(components.h4) : Heading({ variant: "h4" }),
210
+ h5: components.h5 ? createHeading(components.h5) : Heading({ variant: "h5" }),
211
+ h6: components.h6 ? createHeading(components.h6) : Heading({ variant: "h6" })
212
+ }
213
+ }
214
+ )
215
+ }
216
+ );
217
+ }
218
+ return /* @__PURE__ */ jsxs3(
219
+ "section",
220
+ {
221
+ style: {
222
+ display: "flex",
223
+ flexDirection: "row",
224
+ gap: 40,
225
+ padding: 40
226
+ },
227
+ children: [
228
+ /* @__PURE__ */ jsx4(
229
+ "section",
230
+ {
231
+ style: {
232
+ width: "100%",
233
+ display: "flex",
234
+ flexDirection: "column",
235
+ alignItems: "center",
236
+ gap: 10
237
+ },
238
+ className,
239
+ children: /* @__PURE__ */ jsx4(
240
+ "div",
241
+ {
242
+ style: {
243
+ maxWidth: 800
244
+ },
245
+ children: /* @__PURE__ */ jsx4(
246
+ MDXContent,
247
+ {
248
+ components: {
249
+ ...components,
250
+ h1: components.h1 ? createHeading(components.h1) : Heading({ variant: "h1" }),
251
+ h2: components.h2 ? createHeading(components.h2) : Heading({ variant: "h2" }),
252
+ h3: components.h3 ? createHeading(components.h3) : Heading({ variant: "h3" }),
253
+ h4: components.h4 ? createHeading(components.h4) : Heading({ variant: "h4" }),
254
+ h5: components.h5 ? createHeading(components.h5) : Heading({ variant: "h5" }),
255
+ h6: components.h6 ? createHeading(components.h6) : Heading({ variant: "h6" })
256
+ }
257
+ }
258
+ )
259
+ }
260
+ )
261
+ }
262
+ ),
263
+ originalTocData && (customTocFunction ? customTocFunction(originalTocData) : /* @__PURE__ */ jsx4(toc_default, { items: originalTocData }))
264
+ ]
265
+ }
266
+ );
267
+ };
268
+
269
+ // src/components/markdown.tsx
270
+ import MarkdownComponent from "react-markdown";
271
+ import remarkGfm from "remark-gfm";
272
+ import rehypeStringify from "rehype-stringify";
273
+ import remarkParse from "remark-parse";
274
+ import remarkRehype from "remark-rehype";
275
+
276
+ // src/components/codeblock2.tsx
277
+ import { themes, Highlight } from "prism-react-renderer";
278
+ import React3 from "react";
279
+
280
+ // src/components/codeblock.tsx
281
+ import React2 from "react";
282
+ import { renderToString } from "react-dom/server";
283
+ import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
284
+ var CodeBlock = ({
285
+ children = "",
286
+ className = "",
287
+ ...rest
288
+ }) => {
289
+ const language = rest["data-language"] || "";
290
+ const numbers = rest["data-line-numbers"];
291
+ const [hover, setHover] = React2.useState(false);
292
+ const [copied, setCopied] = React2.useState(false);
293
+ React2.useEffect(() => {
294
+ const timer = setTimeout(() => {
295
+ setCopied(false);
296
+ }, 2e3);
297
+ return () => clearTimeout(timer);
298
+ }, [copied]);
299
+ const handleCopy = () => {
300
+ const content = renderToString(children);
301
+ const code = extractTextFromHTML(content);
302
+ navigator.clipboard.writeText(code);
303
+ setCopied(true);
304
+ };
305
+ const extractTextFromHTML = (htmlString) => {
306
+ const parser = new DOMParser();
307
+ const doc = parser.parseFromString(htmlString, "text/html");
308
+ return doc.body.textContent || "";
309
+ };
310
+ if (!language) {
311
+ return /* @__PURE__ */ jsx5(SimpleBlock, { children });
312
+ }
313
+ return /* @__PURE__ */ jsxs4(
314
+ "div",
315
+ {
316
+ onMouseEnter: () => setHover(true),
317
+ onMouseLeave: () => setHover(false),
318
+ children: [
319
+ hover ? /* @__PURE__ */ jsx5(
320
+ "button",
321
+ {
322
+ onClick: handleCopy,
323
+ style: {
324
+ position: "absolute",
325
+ top: "15px",
326
+ right: "15px",
327
+ transition: "all 0.2s",
328
+ zIndex: 10
329
+ },
330
+ children: copied ? /* @__PURE__ */ jsxs4(
331
+ "svg",
332
+ {
333
+ xmlns: "http://www.w3.org/2000/svg",
334
+ viewBox: "0 0 24 24",
335
+ width: "16",
336
+ height: "16",
337
+ color: "#f0f0f0",
338
+ fill: "none",
339
+ children: [
340
+ /* @__PURE__ */ jsx5(
341
+ "path",
342
+ {
343
+ d: "M22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12Z",
344
+ stroke: "currentColor",
345
+ strokeWidth: "1.5"
346
+ }
347
+ ),
348
+ /* @__PURE__ */ jsx5(
349
+ "path",
350
+ {
351
+ d: "M8 12.5L10.5 15L16 9",
352
+ stroke: "currentColor",
353
+ strokeWidth: "1.5",
354
+ strokeLinecap: "round",
355
+ strokeLinejoin: "round"
356
+ }
357
+ )
358
+ ]
359
+ }
360
+ ) : /* @__PURE__ */ jsxs4(
361
+ "svg",
362
+ {
363
+ xmlns: "http://www.w3.org/2000/svg",
364
+ viewBox: "0 0 24 24",
365
+ width: "16",
366
+ height: "16",
367
+ color: "#f0f0f0",
368
+ fill: "none",
369
+ children: [
370
+ /* @__PURE__ */ jsx5(
371
+ "path",
372
+ {
373
+ d: "M9 15C9 12.1716 9 10.7574 9.87868 9.87868C10.7574 9 12.1716 9 15 9L16 9C18.8284 9 20.2426 9 21.1213 9.87868C22 10.7574 22 12.1716 22 15V16C22 18.8284 22 20.2426 21.1213 21.1213C20.2426 22 18.8284 22 16 22H15C12.1716 22 10.7574 22 9.87868 21.1213C9 20.2426 9 18.8284 9 16L9 15Z",
374
+ stroke: "currentColor",
375
+ strokeWidth: "1.5",
376
+ strokeLinecap: "round",
377
+ strokeLinejoin: "round"
378
+ }
379
+ ),
380
+ /* @__PURE__ */ jsx5(
381
+ "path",
382
+ {
383
+ d: "M16.9999 9C16.9975 6.04291 16.9528 4.51121 16.092 3.46243C15.9258 3.25989 15.7401 3.07418 15.5376 2.90796C14.4312 2 12.7875 2 9.5 2C6.21252 2 4.56878 2 3.46243 2.90796C3.25989 3.07417 3.07418 3.25989 2.90796 3.46243C2 4.56878 2 6.21252 2 9.5C2 12.7875 2 14.4312 2.90796 15.5376C3.07417 15.7401 3.25989 15.9258 3.46243 16.092C4.51121 16.9528 6.04291 16.9975 9 16.9999",
384
+ stroke: "currentColor",
385
+ strokeWidth: "1.5",
386
+ strokeLinecap: "round",
387
+ strokeLinejoin: "round"
388
+ }
389
+ )
390
+ ]
391
+ }
392
+ )
393
+ }
394
+ ) : /* @__PURE__ */ jsx5(
395
+ "span",
396
+ {
397
+ style: {
398
+ position: "absolute",
399
+ top: "15px",
400
+ right: "15px",
401
+ transition: "all 0.2s",
402
+ zIndex: 10
403
+ },
404
+ children: language
405
+ }
406
+ ),
407
+ /* @__PURE__ */ jsx5(
408
+ "code",
409
+ {
410
+ className: `${className} code-block`,
411
+ "data-line-numbers": numbers !== void 0 ? "" : void 0,
412
+ children
413
+ }
414
+ )
415
+ ]
416
+ }
417
+ );
418
+ };
419
+ var SimpleBlock = ({
420
+ children
421
+ }) => {
422
+ return /* @__PURE__ */ jsx5("code", { className: "simple-block", children });
423
+ };
424
+
425
+ // src/components/codeblock2.tsx
426
+ import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
427
+ var CodeBlock2 = ({
428
+ children = "",
429
+ className = "",
430
+ ...rest
431
+ }) => {
432
+ const language = className.replace(/language-/, "");
433
+ const [hover, setHover] = React3.useState(false);
434
+ if (!language) {
435
+ return /* @__PURE__ */ jsx6(SimpleBlock, { children });
436
+ }
437
+ console.log({ children, className, rest });
438
+ return /* @__PURE__ */ jsx6(
439
+ Highlight,
440
+ {
441
+ theme: themes.oneDark,
442
+ code: children.toString().trim(),
443
+ language,
444
+ children: ({ className: className2, tokens, getLineProps, getTokenProps, ...rest2 }) => {
445
+ const [copied, setCopied] = React3.useState(false);
446
+ React3.useEffect(() => {
447
+ const timer = setTimeout(() => {
448
+ setCopied(false);
449
+ }, 2e3);
450
+ return () => clearTimeout(timer);
451
+ }, [copied]);
452
+ const handleCopy = () => {
453
+ navigator.clipboard.writeText((children ?? "").toString().trim());
454
+ setCopied(true);
455
+ };
456
+ return /* @__PURE__ */ jsx6("figure", { children: /* @__PURE__ */ jsx6(
457
+ "pre",
458
+ {
459
+ onMouseEnter: () => setHover(true),
460
+ onMouseLeave: () => setHover(false),
461
+ "data-language": language,
462
+ children: /* @__PURE__ */ jsxs5("div", { children: [
463
+ hover ? /* @__PURE__ */ jsx6("button", { className: "copy-button", onClick: handleCopy, children: copied ? /* @__PURE__ */ jsxs5(
464
+ "svg",
465
+ {
466
+ xmlns: "http://www.w3.org/2000/svg",
467
+ viewBox: "0 0 24 24",
468
+ width: "20",
469
+ height: "20",
470
+ color: "#f0f0f0",
471
+ fill: "none",
472
+ children: [
473
+ /* @__PURE__ */ jsx6(
474
+ "path",
475
+ {
476
+ d: "M22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12Z",
477
+ stroke: "currentColor",
478
+ strokeWidth: "1.5"
479
+ }
480
+ ),
481
+ /* @__PURE__ */ jsx6(
482
+ "path",
483
+ {
484
+ d: "M8 12.5L10.5 15L16 9",
485
+ stroke: "currentColor",
486
+ strokeWidth: "1.5",
487
+ strokeLinecap: "round",
488
+ strokeLinejoin: "round"
489
+ }
490
+ )
491
+ ]
492
+ }
493
+ ) : /* @__PURE__ */ jsxs5(
494
+ "svg",
495
+ {
496
+ xmlns: "http://www.w3.org/2000/svg",
497
+ viewBox: "0 0 24 24",
498
+ width: "20",
499
+ height: "20",
500
+ color: "#f0f0f0",
501
+ fill: "none",
502
+ children: [
503
+ /* @__PURE__ */ jsx6(
504
+ "path",
505
+ {
506
+ d: "M9 15C9 12.1716 9 10.7574 9.87868 9.87868C10.7574 9 12.1716 9 15 9L16 9C18.8284 9 20.2426 9 21.1213 9.87868C22 10.7574 22 12.1716 22 15V16C22 18.8284 22 20.2426 21.1213 21.1213C20.2426 22 18.8284 22 16 22H15C12.1716 22 10.7574 22 9.87868 21.1213C9 20.2426 9 18.8284 9 16L9 15Z",
507
+ stroke: "currentColor",
508
+ strokeWidth: "1.5",
509
+ strokeLinecap: "round",
510
+ strokeLinejoin: "round"
511
+ }
512
+ ),
513
+ /* @__PURE__ */ jsx6(
514
+ "path",
515
+ {
516
+ d: "M16.9999 9C16.9975 6.04291 16.9528 4.51121 16.092 3.46243C15.9258 3.25989 15.7401 3.07418 15.5376 2.90796C14.4312 2 12.7875 2 9.5 2C6.21252 2 4.56878 2 3.46243 2.90796C3.25989 3.07417 3.07418 3.25989 2.90796 3.46243C2 4.56878 2 6.21252 2 9.5C2 12.7875 2 14.4312 2.90796 15.5376C3.07417 15.7401 3.25989 15.9258 3.46243 16.092C4.51121 16.9528 6.04291 16.9975 9 16.9999",
517
+ stroke: "currentColor",
518
+ strokeWidth: "1.5",
519
+ strokeLinecap: "round",
520
+ strokeLinejoin: "round"
521
+ }
522
+ )
523
+ ]
524
+ }
525
+ ) }) : /* @__PURE__ */ jsx6("span", { className: "lang", children: language }),
526
+ /* @__PURE__ */ jsx6("code", { className: `${className2} code-block`, "data-line-numbers": true, children: tokens.map((line, i) => /* @__PURE__ */ jsxs5("span", { "data-line": true, ...getLineProps({ line }), children: [
527
+ /* @__PURE__ */ jsx6("span", { children: " " }),
528
+ line.map((token, key) => /* @__PURE__ */ jsx6("span", { ...getTokenProps({ token }) }, key))
529
+ ] }, i)) })
530
+ ] })
531
+ }
532
+ ) });
533
+ }
534
+ }
535
+ );
536
+ };
537
+
538
+ // src/components/markdown.tsx
539
+ import { jsx as jsx7 } from "react/jsx-runtime";
540
+ function Markdown({
541
+ content,
542
+ className,
543
+ overwriteStyle
544
+ }) {
545
+ return /* @__PURE__ */ jsx7(
546
+ "section",
547
+ {
548
+ className: `${className} ${overwriteStyle ? "" : "rasengan-markdown-body"}`,
549
+ children: /* @__PURE__ */ jsx7(
550
+ MarkdownComponent,
551
+ {
552
+ children: content,
553
+ remarkPlugins: [remarkParse, remarkGfm],
554
+ rehypePlugins: [remarkRehype, rehypeStringify],
555
+ components: {
556
+ code: CodeBlock2,
557
+ h1: Heading({ variant: "h1" }),
558
+ h2: Heading({ variant: "h2" }),
559
+ h3: Heading({ variant: "h3" }),
560
+ h4: Heading({ variant: "h4" }),
561
+ h5: Heading({ variant: "h5" }),
562
+ h6: Heading({ variant: "h6" })
563
+ }
564
+ }
565
+ )
566
+ }
567
+ );
568
+ }
569
+
570
+ // src/components/icons.tsx
571
+ import { FileIcon } from "lucide-react";
572
+ import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
573
+ var Icons = {
574
+ logo: (props) => /* @__PURE__ */ jsxs6("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 256 256", ...props, children: [
575
+ /* @__PURE__ */ jsx8("rect", { width: "256", height: "256", fill: "none" }),
576
+ /* @__PURE__ */ jsx8(
577
+ "line",
578
+ {
579
+ x1: "208",
580
+ y1: "128",
581
+ x2: "128",
582
+ y2: "208",
583
+ fill: "none",
584
+ stroke: "currentColor",
585
+ strokeLinecap: "round",
586
+ strokeLinejoin: "round",
587
+ strokeWidth: "32"
588
+ }
589
+ ),
590
+ /* @__PURE__ */ jsx8(
591
+ "line",
592
+ {
593
+ x1: "192",
594
+ y1: "40",
595
+ x2: "40",
596
+ y2: "192",
597
+ fill: "none",
598
+ stroke: "currentColor",
599
+ strokeLinecap: "round",
600
+ strokeLinejoin: "round",
601
+ strokeWidth: "32"
602
+ }
603
+ )
604
+ ] }),
605
+ twitter: (props) => /* @__PURE__ */ jsx8(
606
+ "svg",
607
+ {
608
+ ...props,
609
+ height: "23",
610
+ viewBox: "0 0 1200 1227",
611
+ width: "23",
612
+ xmlns: "http://www.w3.org/2000/svg",
613
+ children: /* @__PURE__ */ jsx8("path", { d: "M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z" })
614
+ }
615
+ ),
616
+ gitHub: (props) => /* @__PURE__ */ jsx8("svg", { viewBox: "0 0 438.549 438.549", ...props, children: /* @__PURE__ */ jsx8(
617
+ "path",
618
+ {
619
+ fill: "currentColor",
620
+ d: "M409.132 114.573c-19.608-33.596-46.205-60.194-79.798-79.8-33.598-19.607-70.277-29.408-110.063-29.408-39.781 0-76.472 9.804-110.063 29.408-33.596 19.605-60.192 46.204-79.8 79.8C9.803 148.168 0 184.854 0 224.63c0 47.78 13.94 90.745 41.827 128.906 27.884 38.164 63.906 64.572 108.063 79.227 5.14.954 8.945.283 11.419-1.996 2.475-2.282 3.711-5.14 3.711-8.562 0-.571-.049-5.708-.144-15.417a2549.81 2549.81 0 01-.144-25.406l-6.567 1.136c-4.187.767-9.469 1.092-15.846 1-6.374-.089-12.991-.757-19.842-1.999-6.854-1.231-13.229-4.086-19.13-8.559-5.898-4.473-10.085-10.328-12.56-17.556l-2.855-6.57c-1.903-4.374-4.899-9.233-8.992-14.559-4.093-5.331-8.232-8.945-12.419-10.848l-1.999-1.431c-1.332-.951-2.568-2.098-3.711-3.429-1.142-1.331-1.997-2.663-2.568-3.997-.572-1.335-.098-2.43 1.427-3.289 1.525-.859 4.281-1.276 8.28-1.276l5.708.853c3.807.763 8.516 3.042 14.133 6.851 5.614 3.806 10.229 8.754 13.846 14.842 4.38 7.806 9.657 13.754 15.846 17.847 6.184 4.093 12.419 6.136 18.699 6.136 6.28 0 11.704-.476 16.274-1.423 4.565-.952 8.848-2.383 12.847-4.285 1.713-12.758 6.377-22.559 13.988-29.41-10.848-1.14-20.601-2.857-29.264-5.14-8.658-2.286-17.605-5.996-26.835-11.14-9.235-5.137-16.896-11.516-22.985-19.126-6.09-7.614-11.088-17.61-14.987-29.979-3.901-12.374-5.852-26.648-5.852-42.826 0-23.035 7.52-42.637 22.557-58.817-7.044-17.318-6.379-36.732 1.997-58.24 5.52-1.715 13.706-.428 24.554 3.853 10.85 4.283 18.794 7.952 23.84 10.994 5.046 3.041 9.089 5.618 12.135 7.708 17.705-4.947 35.976-7.421 54.818-7.421s37.117 2.474 54.823 7.421l10.849-6.849c7.419-4.57 16.18-8.758 26.262-12.565 10.088-3.805 17.802-4.853 23.134-3.138 8.562 21.509 9.325 40.922 2.279 58.24 15.036 16.18 22.559 35.787 22.559 58.817 0 16.178-1.958 30.497-5.853 42.966-3.9 12.471-8.941 22.457-15.125 29.979-6.191 7.521-13.901 13.85-23.131 18.986-9.232 5.14-18.182 8.85-26.84 11.136-8.662 2.286-18.415 4.004-29.263 5.146 9.894 8.562 14.842 22.077 14.842 40.539v60.237c0 3.422 1.19 6.279 3.572 8.562 2.379 2.279 6.136 2.95 11.276 1.995 44.163-14.653 80.185-41.062 108.068-79.226 27.88-38.161 41.825-81.126 41.825-128.906-.01-39.771-9.818-76.454-29.414-110.049z"
621
+ }
622
+ ) }),
623
+ radix: (props) => /* @__PURE__ */ jsxs6("svg", { viewBox: "0 0 25 25", fill: "none", ...props, children: [
624
+ /* @__PURE__ */ jsx8(
625
+ "path",
626
+ {
627
+ d: "M12 25C7.58173 25 4 21.4183 4 17C4 12.5817 7.58173 9 12 9V25Z",
628
+ fill: "currentcolor"
629
+ }
630
+ ),
631
+ /* @__PURE__ */ jsx8("path", { d: "M12 0H4V8H12V0Z", fill: "currentcolor" }),
632
+ /* @__PURE__ */ jsx8(
633
+ "path",
634
+ {
635
+ d: "M17 8C19.2091 8 21 6.20914 21 4C21 1.79086 19.2091 0 17 0C14.7909 0 13 1.79086 13 4C13 6.20914 14.7909 8 17 8Z",
636
+ fill: "currentcolor"
637
+ }
638
+ )
639
+ ] }),
640
+ aria: (props) => /* @__PURE__ */ jsx8("svg", { role: "img", viewBox: "0 0 24 24", fill: "currentColor", ...props, children: /* @__PURE__ */ jsx8("path", { d: "M13.966 22.624l-1.69-4.281H8.122l3.892-9.144 5.662 13.425zM8.884 1.376H0v21.248zm15.116 0h-8.884L24 22.624Z" }) }),
641
+ npm: (props) => /* @__PURE__ */ jsx8("svg", { viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx8(
642
+ "path",
643
+ {
644
+ d: "M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z",
645
+ fill: "currentColor"
646
+ }
647
+ ) }),
648
+ yarn: (props) => /* @__PURE__ */ jsx8("svg", { viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx8(
649
+ "path",
650
+ {
651
+ d: "M12 0C5.375 0 0 5.375 0 12s5.375 12 12 12 12-5.375 12-12S18.625 0 12 0zm.768 4.105c.183 0 .363.053.525.157.125.083.287.185.755 1.154.31-.088.468-.042.551-.019.204.056.366.19.463.375.477.917.542 2.553.334 3.605-.241 1.232-.755 2.029-1.131 2.576.324.329.778.899 1.117 1.825.278.774.31 1.478.273 2.015a5.51 5.51 0 0 0 .602-.329c.593-.366 1.487-.917 2.553-.931.714-.009 1.269.445 1.353 1.103a1.23 1.23 0 0 1-.945 1.362c-.649.158-.95.278-1.821.843-1.232.797-2.539 1.242-3.012 1.39a1.686 1.686 0 0 1-.704.343c-.737.181-3.266.315-3.466.315h-.046c-.783 0-1.214-.241-1.45-.491-.658.329-1.51.19-2.122-.134a1.078 1.078 0 0 1-.58-1.153 1.243 1.243 0 0 1-.153-.195c-.162-.25-.528-.936-.454-1.946.056-.723.556-1.367.88-1.71a5.522 5.522 0 0 1 .408-2.256c.306-.727.885-1.348 1.32-1.737-.32-.537-.644-1.367-.329-2.21.227-.602.412-.936.82-1.08h-.005c.199-.074.389-.153.486-.259a3.418 3.418 0 0 1 2.298-1.103c.037-.093.079-.185.125-.283.31-.658.639-1.029 1.024-1.168a.94.94 0 0 1 .328-.06zm.006.7c-.507.016-1.001 1.519-1.001 1.519s-1.27-.204-2.266.871c-.199.218-.468.334-.746.44-.079.028-.176.023-.417.672-.371.991.625 2.094.625 2.094s-1.186.839-1.626 1.881c-.486 1.144-.338 2.261-.338 2.261s-.843.732-.899 1.487c-.051.663.139 1.2.343 1.515.227.343.51.176.51.176s-.561.653-.037.931c.477.25 1.283.394 1.71-.037.31-.31.371-1.001.486-1.283.028-.065.12.111.209.199.097.093.264.195.264.195s-.755.324-.445 1.066c.102.246.468.403 1.066.398.222-.005 2.664-.139 3.313-.296.375-.088.505-.283.505-.283s1.566-.431 2.998-1.357c.917-.598 1.293-.76 2.034-.936.612-.148.57-1.098-.241-1.084-.839.009-1.575.44-2.196.825-1.163.718-1.742.672-1.742.672l-.018-.032c-.079-.13.371-1.293-.134-2.678-.547-1.515-1.413-1.881-1.344-1.997.297-.5 1.038-1.297 1.334-2.78.176-.899.13-2.377-.269-3.151-.074-.144-.732.241-.732.241s-.616-1.371-.788-1.483a.271.271 0 0 0-.157-.046z",
652
+ fill: "currentColor"
653
+ }
654
+ ) }),
655
+ pnpm: (props) => /* @__PURE__ */ jsx8("svg", { viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx8(
656
+ "path",
657
+ {
658
+ d: "M0 0v7.5h7.5V0zm8.25 0v7.5h7.498V0zm8.25 0v7.5H24V0zM8.25 8.25v7.5h7.498v-7.5zm8.25 0v7.5H24v-7.5zM0 16.5V24h7.5v-7.5zm8.25 0V24h7.498v-7.5zm8.25 0V24H24v-7.5z",
659
+ fill: "currentColor"
660
+ }
661
+ ) }),
662
+ react: (props) => /* @__PURE__ */ jsx8("svg", { viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx8(
663
+ "path",
664
+ {
665
+ d: "M14.23 12.004a2.236 2.236 0 0 1-2.235 2.236 2.236 2.236 0 0 1-2.236-2.236 2.236 2.236 0 0 1 2.235-2.236 2.236 2.236 0 0 1 2.236 2.236zm2.648-10.69c-1.346 0-3.107.96-4.888 2.622-1.78-1.653-3.542-2.602-4.887-2.602-.41 0-.783.093-1.106.278-1.375.793-1.683 3.264-.973 6.365C1.98 8.917 0 10.42 0 12.004c0 1.59 1.99 3.097 5.043 4.03-.704 3.113-.39 5.588.988 6.38.32.187.69.275 1.102.275 1.345 0 3.107-.96 4.888-2.624 1.78 1.654 3.542 2.603 4.887 2.603.41 0 .783-.09 1.106-.275 1.374-.792 1.683-3.263.973-6.365C22.02 15.096 24 13.59 24 12.004c0-1.59-1.99-3.097-5.043-4.032.704-3.11.39-5.587-.988-6.38-.318-.184-.688-.277-1.092-.278zm-.005 1.09v.006c.225 0 .406.044.558.127.666.382.955 1.835.73 3.704-.054.46-.142.945-.25 1.44-.96-.236-2.006-.417-3.107-.534-.66-.905-1.345-1.727-2.035-2.447 1.592-1.48 3.087-2.292 4.105-2.295zm-9.77.02c1.012 0 2.514.808 4.11 2.28-.686.72-1.37 1.537-2.02 2.442-1.107.117-2.154.298-3.113.538-.112-.49-.195-.964-.254-1.42-.23-1.868.054-3.32.714-3.707.19-.09.4-.127.563-.132zm4.882 3.05c.455.468.91.992 1.36 1.564-.44-.02-.89-.034-1.345-.034-.46 0-.915.01-1.36.034.44-.572.895-1.096 1.345-1.565zM12 8.1c.74 0 1.477.034 2.202.093.406.582.802 1.203 1.183 1.86.372.64.71 1.29 1.018 1.946-.308.655-.646 1.31-1.013 1.95-.38.66-.773 1.288-1.18 1.87-.728.063-1.466.098-2.21.098-.74 0-1.477-.035-2.202-.093-.406-.582-.802-1.204-1.183-1.86-.372-.64-.71-1.29-1.018-1.946.303-.657.646-1.313 1.013-1.954.38-.66.773-1.286 1.18-1.868.728-.064 1.466-.098 2.21-.098zm-3.635.254c-.24.377-.48.763-.704 1.16-.225.39-.435.782-.635 1.174-.265-.656-.49-1.31-.676-1.947.64-.15 1.315-.283 2.015-.386zm7.26 0c.695.103 1.365.23 2.006.387-.18.632-.405 1.282-.66 1.933-.2-.39-.41-.783-.64-1.174-.225-.392-.465-.774-.705-1.146zm3.063.675c.484.15.944.317 1.375.498 1.732.74 2.852 1.708 2.852 2.476-.005.768-1.125 1.74-2.857 2.475-.42.18-.88.342-1.355.493-.28-.958-.646-1.956-1.1-2.98.45-1.017.81-2.01 1.085-2.964zm-13.395.004c.278.96.645 1.957 1.1 2.98-.45 1.017-.812 2.01-1.086 2.964-.484-.15-.944-.318-1.37-.5-1.732-.737-2.852-1.706-2.852-2.474 0-.768 1.12-1.742 2.852-2.476.42-.18.88-.342 1.356-.494zm11.678 4.28c.265.657.49 1.312.676 1.948-.64.157-1.316.29-2.016.39.24-.375.48-.762.705-1.158.225-.39.435-.788.636-1.18zm-9.945.02c.2.392.41.783.64 1.175.23.39.465.772.705 1.143-.695-.102-1.365-.23-2.006-.386.18-.63.406-1.282.66-1.933zM17.92 16.32c.112.493.2.968.254 1.423.23 1.868-.054 3.32-.714 3.708-.147.09-.338.128-.563.128-1.012 0-2.514-.807-4.11-2.28.686-.72 1.37-1.536 2.02-2.44 1.107-.118 2.154-.3 3.113-.54zm-11.83.01c.96.234 2.006.415 3.107.532.66.905 1.345 1.727 2.035 2.446-1.595 1.483-3.092 2.295-4.11 2.295-.22-.005-.406-.05-.553-.132-.666-.38-.955-1.834-.73-3.703.054-.46.142-.944.25-1.438zm4.56.64c.44.02.89.034 1.345.034.46 0 .915-.01 1.36-.034-.44.572-.895 1.095-1.345 1.565-.455-.47-.91-.993-1.36-1.565z",
666
+ fill: "currentColor"
667
+ }
668
+ ) }),
669
+ tailwind: (props) => /* @__PURE__ */ jsx8("svg", { viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx8(
670
+ "path",
671
+ {
672
+ d: "M12.001,4.8c-3.2,0-5.2,1.6-6,4.8c1.2-1.6,2.6-2.2,4.2-1.8c0.913,0.228,1.565,0.89,2.288,1.624 C13.666,10.618,15.027,12,18.001,12c3.2,0,5.2-1.6,6-4.8c-1.2,1.6-2.6,2.2-4.2,1.8c-0.913-0.228-1.565-0.89-2.288-1.624 C16.337,6.182,14.976,4.8,12.001,4.8z M6.001,12c-3.2,0-5.2,1.6-6,4.8c1.2-1.6,2.6-2.2,4.2-1.8c0.913,0.228,1.565,0.89,2.288,1.624 c1.177,1.194,2.538,2.576,5.512,2.576c3.2,0,5.2-1.6,6-4.8c-1.2,1.6-2.6,2.2-4.2,1.8c-0.913-0.228-1.565-0.89-2.288-1.624 C10.337,13.382,8.976,12,6.001,12z",
673
+ fill: "currentColor"
674
+ }
675
+ ) }),
676
+ google: (props) => /* @__PURE__ */ jsx8("svg", { role: "img", viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx8(
677
+ "path",
678
+ {
679
+ fill: "currentColor",
680
+ d: "M12.48 10.92v3.28h7.84c-.24 1.84-.853 3.187-1.787 4.133-1.147 1.147-2.933 2.4-6.053 2.4-4.827 0-8.6-3.893-8.6-8.72s3.773-8.72 8.6-8.72c2.6 0 4.507 1.027 5.907 2.347l2.307-2.307C18.747 1.44 16.133 0 12.48 0 5.867 0 .307 5.387.307 12s5.56 12 12.173 12c3.573 0 6.267-1.173 8.373-3.36 2.16-2.16 2.84-5.213 2.84-7.667 0-.76-.053-1.467-.173-2.053H12.48z"
681
+ }
682
+ ) }),
683
+ apple: (props) => /* @__PURE__ */ jsx8("svg", { role: "img", viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx8(
684
+ "path",
685
+ {
686
+ d: "M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701",
687
+ fill: "currentColor"
688
+ }
689
+ ) }),
690
+ paypal: (props) => /* @__PURE__ */ jsx8("svg", { role: "img", viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx8(
691
+ "path",
692
+ {
693
+ d: "M7.076 21.337H2.47a.641.641 0 0 1-.633-.74L4.944.901C5.026.382 5.474 0 5.998 0h7.46c2.57 0 4.578.543 5.69 1.81 1.01 1.15 1.304 2.42 1.012 4.287-.023.143-.047.288-.077.437-.983 5.05-4.349 6.797-8.647 6.797h-2.19c-.524 0-.968.382-1.05.9l-1.12 7.106zm14.146-14.42a3.35 3.35 0 0 0-.607-.541c-.013.076-.026.175-.041.254-.93 4.778-4.005 7.201-9.138 7.201h-2.19a.563.563 0 0 0-.556.479l-1.187 7.527h-.506l-.24 1.516a.56.56 0 0 0 .554.647h3.882c.46 0 .85-.334.922-.788.06-.26.76-4.852.816-5.09a.932.932 0 0 1 .923-.788h.58c3.76 0 6.705-1.528 7.565-5.946.36-1.847.174-3.388-.777-4.471z",
694
+ fill: "currentColor"
695
+ }
696
+ ) }),
697
+ spinner: (props) => /* @__PURE__ */ jsx8(
698
+ "svg",
699
+ {
700
+ xmlns: "http://www.w3.org/2000/svg",
701
+ width: "24",
702
+ height: "24",
703
+ viewBox: "0 0 24 24",
704
+ fill: "none",
705
+ stroke: "currentColor",
706
+ strokeWidth: "2",
707
+ strokeLinecap: "round",
708
+ strokeLinejoin: "round",
709
+ ...props,
710
+ children: /* @__PURE__ */ jsx8("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" })
711
+ }
712
+ ),
713
+ json: (props) => /* @__PURE__ */ jsx8("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx8(
714
+ "path",
715
+ {
716
+ fill: "currentColor",
717
+ d: "M12.043 23.968c.479-.004.953-.029 1.426-.094a11.805 11.805 0 0 0 3.146-.863 12.404 12.404 0 0 0 3.793-2.542 11.977 11.977 0 0 0 2.44-3.427 11.794 11.794 0 0 0 1.02-3.476c.149-1.16.135-2.346-.045-3.499a11.96 11.96 0 0 0-.793-2.788 11.197 11.197 0 0 0-.854-1.617c-1.168-1.837-2.861-3.314-4.81-4.3a12.835 12.835 0 0 0-2.172-.87h-.005c.119.063.24.132.345.201.12.074.239.146.351.225a8.93 8.93 0 0 1 1.559 1.33c1.063 1.145 1.797 2.548 2.218 4.041.284.982.434 1.998.495 3.017.044.743.044 1.491-.047 2.229-.149 1.27-.554 2.51-1.228 3.596a7.475 7.475 0 0 1-1.903 2.084c-1.244.928-2.877 1.482-4.436 1.114a3.916 3.916 0 0 1-.748-.258 4.692 4.692 0 0 1-.779-.45 6.08 6.08 0 0 1-1.244-1.105 6.507 6.507 0 0 1-1.049-1.747 7.366 7.366 0 0 1-.494-2.54c-.03-1.273.225-2.553.854-3.67a6.43 6.43 0 0 1 1.663-1.918c.225-.178.464-.333.704-.479l.016-.007a5.121 5.121 0 0 0-1.441-.12 4.963 4.963 0 0 0-1.228.24c-.359.12-.704.27-1.019.45a6.146 6.146 0 0 0-.733.494c-.211.18-.42.36-.615.555-1.123 1.153-1.768 2.682-2.022 4.256-.15.973-.15 1.96-.091 2.95.105 1.395.391 2.787.945 4.062a8.518 8.518 0 0 0 1.348 2.173 8.14 8.14 0 0 0 3.132 2.23 7.934 7.934 0 0 0 2.113.54c.074.015.149.015.209.015zm-2.934-.398a4.102 4.102 0 0 1-.45-.228 8.5 8.5 0 0 1-2.038-1.534c-1.094-1.137-1.827-2.566-2.247-4.08a15.184 15.184 0 0 1-.495-3.172 12.14 12.14 0 0 1 .046-2.082c.135-1.257.495-2.501 1.124-3.58a6.889 6.889 0 0 1 1.783-2.053 6.23 6.23 0 0 1 1.633-.9 5.363 5.363 0 0 1 3.522-.045c.029 0 .029 0 .045.03.015.015.045.015.06.03.045.016.104.045.165.074.239.12.479.271.704.42a6.294 6.294 0 0 1 2.097 2.502c.42.914.615 1.934.631 2.938.014 1.079-.18 2.157-.645 3.146a6.42 6.42 0 0 1-2.638 2.832c.09.03.18.045.271.075.225.044.449.074.688.074 1.468.045 2.892-.66 3.94-1.647.195-.18.375-.375.54-.585.225-.27.435-.54.614-.823.239-.375.435-.75.614-1.154a8.112 8.112 0 0 0 .509-1.664c.196-1.004.211-2.022.149-3.026-.135-2.022-.673-4.045-1.842-5.724a9.054 9.054 0 0 0-.555-.719 9.868 9.868 0 0 0-1.063-1.034 8.477 8.477 0 0 0-1.363-.915 9.927 9.927 0 0 0-1.692-.598l-.3-.06c-.209-.03-.42-.044-.634-.06a8.453 8.453 0 0 0-1.015.016c-.704.045-1.412.16-2.112.337C5.799 1.227 2.863 3.566 1.3 6.67A11.834 11.834 0 0 0 .238 9.801a11.81 11.81 0 0 0-.104 3.775c.12 1.02.374 2.023.778 2.977.227.57.511 1.124.825 1.648 1.094 1.783 2.683 3.236 4.51 4.24.688.39 1.408.69 2.157.944.226.074.45.15.689.21z"
718
+ }
719
+ ) }),
720
+ ts: (props) => /* @__PURE__ */ jsx8("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx8(
721
+ "path",
722
+ {
723
+ d: "M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z",
724
+ fill: "currentColor"
725
+ }
726
+ ) }),
727
+ css: (props) => /* @__PURE__ */ jsx8("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx8(
728
+ "path",
729
+ {
730
+ d: "M0 0v20.16A3.84 3.84 0 0 0 3.84 24h16.32A3.84 3.84 0 0 0 24 20.16V3.84A3.84 3.84 0 0 0 20.16 0Zm14.256 13.08c1.56 0 2.28 1.08 2.304 2.64h-1.608c.024-.288-.048-.6-.144-.84-.096-.192-.288-.264-.552-.264-.456 0-.696.264-.696.84-.024.576.288.888.768 1.08.72.288 1.608.744 1.92 1.296q.432.648.432 1.656c0 1.608-.912 2.592-2.496 2.592-1.656 0-2.4-1.032-2.424-2.688h1.68c0 .792.264 1.176.792 1.176.264 0 .456-.072.552-.24.192-.312.24-1.176-.048-1.512-.312-.408-.912-.6-1.32-.816q-.828-.396-1.224-.936c-.24-.36-.36-.888-.36-1.536 0-1.44.936-2.472 2.424-2.448m5.4 0c1.584 0 2.304 1.08 2.328 2.64h-1.608c0-.288-.048-.6-.168-.84-.096-.192-.264-.264-.528-.264-.48 0-.72.264-.72.84s.288.888.792 1.08c.696.288 1.608.744 1.92 1.296.264.432.408.984.408 1.656.024 1.608-.888 2.592-2.472 2.592-1.68 0-2.424-1.056-2.448-2.688h1.68c0 .744.264 1.176.792 1.176.264 0 .456-.072.552-.24.216-.312.264-1.176-.048-1.512-.288-.408-.888-.6-1.32-.816-.552-.264-.96-.576-1.2-.936s-.36-.888-.36-1.536c-.024-1.44.912-2.472 2.4-2.448m-11.031.018c.711-.006 1.419.198 1.839.63.432.432.672 1.128.648 1.992H9.336c.024-.456-.096-.792-.432-.96-.312-.144-.768-.048-.888.24-.12.264-.192.576-.168.864v3.504c0 .744.264 1.128.768 1.128a.65.65 0 0 0 .552-.264c.168-.24.192-.552.168-.84h1.776c.096 1.632-.984 2.712-2.568 2.688-1.536 0-2.496-.864-2.472-2.472v-4.032c0-.816.24-1.44.696-1.848.432-.408 1.146-.624 1.857-.63",
731
+ fill: "currentColor"
732
+ }
733
+ ) }),
734
+ bash: (props) => /* @__PURE__ */ jsx8("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx8(
735
+ "path",
736
+ {
737
+ d: "M21.038 4.9 13.461.402a2.86 2.86 0 0 0-2.923.001L2.961 4.9A3.023 3.023 0 0 0 1.5 7.503v8.995c0 1.073.557 2.066 1.462 2.603l7.577 4.497a2.86 2.86 0 0 0 2.922 0l7.577-4.497a3.023 3.023 0 0 0 1.462-2.603V7.503A3.021 3.021 0 0 0 21.038 4.9zM15.17 18.946l.013.646c.001.078-.05.167-.111.198l-.383.22c-.061.031-.111-.007-.112-.085l-.007-.635c-.328.136-.66.169-.872.084-.04-.016-.057-.075-.041-.142l.139-.584a.24.24 0 0 1 .069-.121.163.163 0 0 1 .036-.026c.022-.011.043-.014.062-.006.229.077.521.041.802-.101.357-.181.596-.545.592-.907-.003-.328-.181-.465-.613-.468-.55.001-1.064-.107-1.072-.917-.007-.667.34-1.361.889-1.8l-.007-.652c-.001-.08.048-.168.111-.2l.37-.236c.061-.031.111.007.112.087l.006.653c.273-.109.511-.138.726-.088.047.012.067.076.048.151l-.144.578a.255.255 0 0 1-.065.116.161.161 0 0 1-.038.028.083.083 0 0 1-.057.009c-.098-.022-.332-.073-.699.113-.385.195-.52.53-.517.778.003.297.155.387.681.396.7.012 1.003.318 1.01 1.023.007.689-.362 1.433-.928 1.888zm3.973-1.087c0 .06-.008.116-.058.145l-1.916 1.164c-.05.029-.09.004-.09-.056v-.494c0-.06.037-.093.087-.122l1.887-1.129c.05-.029.09-.004.09.056v.436zm1.316-11.062-7.168 4.427c-.894.523-1.553 1.109-1.553 2.187v8.833c0 .645.26 1.063.66 1.184a2.304 2.304 0 0 1-.398.039c-.42 0-.833-.114-1.197-.33L3.226 18.64a2.494 2.494 0 0 1-1.201-2.142V7.503c0-.881.46-1.702 1.201-2.142L10.803.863a2.342 2.342 0 0 1 2.394 0l7.577 4.498a2.479 2.479 0 0 1 1.164 1.732c-.252-.536-.818-.682-1.479-.296z",
738
+ fill: "currentColor"
739
+ }
740
+ ) }),
741
+ v0: (props) => /* @__PURE__ */ jsxs6(
742
+ "svg",
743
+ {
744
+ viewBox: "0 0 40 20",
745
+ fill: "none",
746
+ xmlns: "http://www.w3.org/2000/svg",
747
+ ...props,
748
+ children: [
749
+ /* @__PURE__ */ jsx8(
750
+ "path",
751
+ {
752
+ d: "M23.3919 0H32.9188C36.7819 0 39.9136 3.13165 39.9136 6.99475V16.0805H36.0006V6.99475C36.0006 6.90167 35.9969 6.80925 35.9898 6.71766L26.4628 16.079C26.4949 16.08 26.5272 16.0805 26.5595 16.0805H36.0006V19.7762H26.5595C22.6964 19.7762 19.4788 16.6139 19.4788 12.7508V3.68923H23.3919V12.7508C23.3919 12.9253 23.4054 13.0977 23.4316 13.2668L33.1682 3.6995C33.0861 3.6927 33.003 3.68923 32.9188 3.68923H23.3919V0Z",
753
+ fill: "currentColor"
754
+ }
755
+ ),
756
+ /* @__PURE__ */ jsx8(
757
+ "path",
758
+ {
759
+ d: "M13.7688 19.0956L0 3.68759H5.53933L13.6231 12.7337V3.68759H17.7535V17.5746C17.7535 19.6705 15.1654 20.6584 13.7688 19.0956Z",
760
+ fill: "currentColor"
761
+ }
762
+ )
763
+ ]
764
+ }
765
+ )
766
+ };
767
+ function getIconForLanguageExtension(language) {
768
+ switch (language) {
769
+ case "json":
770
+ return /* @__PURE__ */ jsx8(Icons.json, {});
771
+ case "bash":
772
+ case "sh":
773
+ case "shell":
774
+ return /* @__PURE__ */ jsx8(Icons.bash, {});
775
+ case "css":
776
+ return /* @__PURE__ */ jsx8(Icons.css, { className: "fill-foreground" });
777
+ case "js":
778
+ case "javascript":
779
+ case "jsx":
780
+ case "ts":
781
+ case "tsx":
782
+ case "typescript":
783
+ return /* @__PURE__ */ jsx8(Icons.ts, { className: "fill-foreground" });
784
+ default:
785
+ return /* @__PURE__ */ jsx8(FileIcon, {});
786
+ }
787
+ }
788
+ export {
789
+ CodeBlock,
790
+ Icons,
791
+ MDXRenderer,
792
+ Markdown,
793
+ TableOfContents,
794
+ defineMDXConfig,
795
+ extractTOC,
796
+ getIconForLanguageExtension,
797
+ useActiveTocItem
798
+ };