@sampleapp.ai/sdk 1.0.29 → 1.0.31

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 (145) hide show
  1. package/dist/components/guardian/app-layout-no-sidebar.js +8 -0
  2. package/dist/components/guardian/ask-ai-view.js +249 -0
  3. package/dist/components/guardian/code-focus-section.d.ts +41 -0
  4. package/dist/components/guardian/code-focus-section.js +174 -0
  5. package/dist/components/guardian/context/guardian-context.js +94 -0
  6. package/dist/components/guardian/context/vm-context.js +28 -0
  7. package/dist/components/guardian/default-guide-view.js +34 -0
  8. package/dist/components/guardian/demo/guardian-demo.js +35 -0
  9. package/dist/components/guardian/demo/left-view/toggle.js +28 -0
  10. package/dist/components/guardian/demo/left-view.js +49 -0
  11. package/dist/components/guardian/guardian-component.js +79 -0
  12. package/dist/components/guardian/guardian-demo.js +35 -0
  13. package/dist/components/guardian/guardian-home.d.ts +4 -0
  14. package/dist/components/guardian/guardian-home.js +61 -0
  15. package/dist/components/guardian/guardian-playground.js +45 -0
  16. package/dist/components/guardian/guardian-style-wrapper.js +29 -0
  17. package/dist/components/guardian/guardian-upload-spec.d.ts +14 -0
  18. package/dist/components/guardian/guardian-upload-spec.js +160 -0
  19. package/dist/components/guardian/header/glassmorphic-combobox.d.ts +15 -0
  20. package/dist/components/guardian/header/glassmorphic-combobox.js +30 -0
  21. package/dist/components/guardian/header.js +61 -0
  22. package/dist/components/guardian/hooks/use-frame-messages.js +65 -0
  23. package/dist/components/guardian/hooks/use-frame-params.js +44 -0
  24. package/dist/components/guardian/hooks/use-sandbox-url-loader.js +101 -0
  25. package/dist/components/guardian/ide/browser.js +538 -0
  26. package/dist/components/guardian/index.js +8 -0
  27. package/dist/components/guardian/layout/app-layout-no-sidebar.js +8 -0
  28. package/dist/components/guardian/layout/header/glassmorphic-combobox.js +48 -0
  29. package/dist/components/guardian/layout/header.js +63 -0
  30. package/dist/components/guardian/right-view/code-view.js +56 -0
  31. package/dist/components/guardian/right-view/pill-file-selector.js +233 -0
  32. package/dist/components/guardian/right-view/preview-control-bar.js +25 -0
  33. package/dist/components/guardian/right-view/right-panel-view.js +38 -0
  34. package/dist/components/guardian/right-view/right-top-down-view.js +289 -0
  35. package/dist/components/guardian/right-view/right-view.js +28 -0
  36. package/dist/components/guardian/right-view/simplified-editor.js +234 -0
  37. package/dist/components/guardian/types/ide-types.js +162 -0
  38. package/dist/components/guardian/types.js +3 -0
  39. package/dist/components/guardian/ui/ai-loader.js +48 -0
  40. package/dist/components/guardian/ui/badge.js +24 -0
  41. package/dist/components/guardian/ui/button.js +45 -0
  42. package/dist/components/guardian/ui/command.js +63 -0
  43. package/dist/components/guardian/ui/console-with-app.js +17 -0
  44. package/dist/components/guardian/ui/dialog.js +57 -0
  45. package/dist/components/guardian/ui/dropdown-menu.js +82 -0
  46. package/dist/components/guardian/ui/markdown.js +57 -0
  47. package/dist/components/guardian/ui/popover.js +25 -0
  48. package/dist/components/guardian/ui/tooltip.js +25 -0
  49. package/dist/components/guardian/utils.js +88 -0
  50. package/dist/components/guardian/zip-to-codebase.js +246 -0
  51. package/dist/components/guardian/zip-to-filetree.js +284 -0
  52. package/dist/components/icons.js +22 -0
  53. package/dist/components/sandbox/Sandbox.js +88 -0
  54. package/dist/components/sandbox/SandboxHome.js +141 -0
  55. package/dist/components/sandbox/api.js +84 -0
  56. package/dist/components/sandbox/guardian/app-layout-no-sidebar.js +11 -0
  57. package/dist/components/sandbox/guardian/ask-ai-view.js +249 -0
  58. package/dist/components/sandbox/guardian/code-focus-section.js +174 -0
  59. package/dist/components/sandbox/guardian/context/guardian-context.js +94 -0
  60. package/dist/components/sandbox/guardian/context/vm-context.js +28 -0
  61. package/dist/components/sandbox/guardian/default-guide-view.js +34 -0
  62. package/dist/components/sandbox/guardian/demo/guardian-demo.js +35 -0
  63. package/dist/components/sandbox/guardian/demo/left-view/toggle.js +28 -0
  64. package/dist/components/sandbox/guardian/demo/left-view.js +70 -0
  65. package/dist/components/sandbox/guardian/guardian-component.js +99 -0
  66. package/dist/components/sandbox/guardian/guardian-demo.js +35 -0
  67. package/dist/components/sandbox/guardian/guardian-home.d.ts +4 -0
  68. package/dist/components/sandbox/guardian/guardian-home.js +61 -0
  69. package/dist/components/sandbox/guardian/guardian-playground.js +45 -0
  70. package/dist/components/sandbox/guardian/guardian-style-wrapper.js +47 -0
  71. package/dist/components/sandbox/guardian/guardian-upload-spec.d.ts +14 -0
  72. package/dist/components/sandbox/guardian/guardian-upload-spec.js +160 -0
  73. package/dist/components/sandbox/guardian/header/glassmorphic-combobox.js +30 -0
  74. package/dist/components/sandbox/guardian/header.js +61 -0
  75. package/dist/components/sandbox/guardian/hooks/use-frame-messages.js +65 -0
  76. package/dist/components/sandbox/guardian/hooks/use-frame-params.js +44 -0
  77. package/dist/components/sandbox/guardian/hooks/use-sandbox-url-loader.js +125 -0
  78. package/dist/components/sandbox/guardian/ide/browser.js +538 -0
  79. package/dist/components/sandbox/guardian/index.js +8 -0
  80. package/dist/components/sandbox/guardian/right-view/code-view.js +60 -0
  81. package/dist/components/sandbox/guardian/right-view/pill-file-selector.js +246 -0
  82. package/dist/components/sandbox/guardian/right-view/preview-control-bar.js +25 -0
  83. package/dist/components/sandbox/guardian/right-view/right-panel-view.js +51 -0
  84. package/dist/components/sandbox/guardian/right-view/right-top-down-view.js +281 -0
  85. package/dist/components/sandbox/guardian/right-view/right-view.js +28 -0
  86. package/dist/components/sandbox/guardian/right-view/simplified-editor.js +234 -0
  87. package/dist/components/sandbox/guardian/types/ide-types.js +162 -0
  88. package/dist/components/sandbox/guardian/types.js +3 -0
  89. package/dist/components/sandbox/guardian/ui/ai-loader.js +91 -0
  90. package/dist/components/sandbox/guardian/ui/badge.js +24 -0
  91. package/dist/components/sandbox/guardian/ui/button.js +45 -0
  92. package/dist/components/sandbox/guardian/ui/command.js +63 -0
  93. package/dist/components/sandbox/guardian/ui/console-with-app.js +17 -0
  94. package/dist/components/sandbox/guardian/ui/dialog.js +57 -0
  95. package/dist/components/sandbox/guardian/ui/download-and-open-buttons.js +117 -0
  96. package/dist/components/sandbox/guardian/ui/dropdown-menu.js +82 -0
  97. package/dist/components/sandbox/guardian/ui/markdown/accordion-group/accordion.js +62 -0
  98. package/dist/components/sandbox/guardian/ui/markdown/accordion-group.js +23 -0
  99. package/dist/components/sandbox/guardian/ui/markdown/callout/callout-check.js +4 -0
  100. package/dist/components/sandbox/guardian/ui/markdown/callout/callout-error.js +4 -0
  101. package/dist/components/sandbox/guardian/ui/markdown/callout/callout-info.js +4 -0
  102. package/dist/components/sandbox/guardian/ui/markdown/callout/callout-note.js +4 -0
  103. package/dist/components/sandbox/guardian/ui/markdown/callout/callout-tip.js +4 -0
  104. package/dist/components/sandbox/guardian/ui/markdown/callout/callout-warning.js +4 -0
  105. package/dist/components/sandbox/guardian/ui/markdown/callout/shared/callout.js +9 -0
  106. package/dist/components/sandbox/guardian/ui/markdown/callout/shared/types.js +1 -0
  107. package/dist/components/sandbox/guardian/ui/markdown/card-group/card.js +18 -0
  108. package/dist/components/sandbox/guardian/ui/markdown/card-group.js +25 -0
  109. package/dist/components/sandbox/guardian/ui/markdown/code-group/code-block.js +54 -0
  110. package/dist/components/sandbox/guardian/ui/markdown/code-group.js +101 -0
  111. package/dist/components/sandbox/guardian/ui/markdown/icon.js +31 -0
  112. package/dist/components/sandbox/guardian/ui/markdown.js +791 -0
  113. package/dist/components/sandbox/guardian/ui/popover.js +25 -0
  114. package/dist/components/sandbox/guardian/ui/tooltip.js +25 -0
  115. package/dist/components/sandbox/guardian/utils.js +89 -0
  116. package/dist/components/sandbox/guardian/zip-to-codebase.js +259 -0
  117. package/dist/components/sandbox/guardian/zip-to-filetree.js +284 -0
  118. package/dist/components/sandbox/index.js +4 -0
  119. package/dist/components/sandbox/sandbox-control-bar.js +91 -0
  120. package/dist/components/sandbox/sandbox-header.js +52 -0
  121. package/dist/components/sandbox/sandbox-home/SandboxCard.js +65 -0
  122. package/dist/components/sandbox/sandbox-home/SandboxHome.js +115 -0
  123. package/dist/components/sandbox/sandbox-home/SearchBar.js +12 -0
  124. package/dist/components/sandbox/sandbox-home/index.js +3 -0
  125. package/dist/components/sandbox/sandbox-left-panel.js +248 -0
  126. package/dist/components/sandbox/sandbox-loading.js +48 -0
  127. package/dist/components/sandbox/sandbox-right-panel.js +247 -0
  128. package/dist/components/sandbox/types.js +1 -0
  129. package/dist/components/sandbox.js +32 -0
  130. package/dist/components/tailwind-example.js +46 -0
  131. package/dist/components/ui/skeleton.js +18 -0
  132. package/dist/index.d.ts +32 -103
  133. package/dist/index.es.js +90529 -423
  134. package/dist/index.js +13 -2
  135. package/dist/index.standalone.js +61 -53
  136. package/dist/index.standalone.umd.js +17 -24
  137. package/dist/lib/api-client.example.js +60 -0
  138. package/dist/lib/api-client.js +140 -0
  139. package/dist/lib/generated-css.js +4 -0
  140. package/dist/lib/inject-styles.js +42 -0
  141. package/dist/lib/shadow-dom-wrapper.js +42 -0
  142. package/dist/lib/utils.js +5 -0
  143. package/dist/sdk.css +1 -1
  144. package/dist/tailwind.css +1 -0
  145. package/package.json +41 -9
@@ -0,0 +1,791 @@
1
+ /* eslint-disable */
2
+ //@ts-nocheck
3
+ var __rest = (this && this.__rest) || function (s, e) {
4
+ var t = {};
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
6
+ t[p] = s[p];
7
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
8
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
9
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
10
+ t[p[i]] = s[p[i]];
11
+ }
12
+ return t;
13
+ };
14
+ import { cn } from "../../../../lib/utils";
15
+ import { memo } from "react";
16
+ import ReactMarkdown from "react-markdown";
17
+ import remarkGfm from "remark-gfm";
18
+ import remarkMath from "remark-math";
19
+ import rehypeRaw from "rehype-raw";
20
+ // import remarkMdx from "remark-mdx"; // Import remark-mdx
21
+ import React from "react";
22
+ import { CodeGroup } from "./markdown/code-group";
23
+ import { CodeBlock } from "./markdown/code-group/code-block";
24
+ import { Accordion } from "./markdown/accordion-group/accordion";
25
+ import { AccordionGroup } from "./markdown/accordion-group";
26
+ import { CalloutCheck } from "./markdown/callout/callout-check";
27
+ import { CalloutError } from "./markdown/callout/callout-error";
28
+ import { CalloutInfo } from "./markdown/callout/callout-info";
29
+ import { CalloutNote } from "./markdown/callout/callout-note";
30
+ import { CalloutTip } from "./markdown/callout/callout-tip";
31
+ import { CalloutWarning } from "./markdown/callout/callout-warning";
32
+ import { CardGroup } from "./markdown/card-group";
33
+ import { Card } from "./markdown/card-group/card";
34
+ import CodeFocusSection from "@/components/sandbox/guardian/code-focus-section";
35
+ import { DownloadAndOpenButtons } from "./download-and-open-buttons";
36
+ // Stub components for components that don't exist in SDK
37
+ const ButtonFileServer = ({ title, description, filePath, feature, fileContent, color, }) => {
38
+ return null; // Stub - not implemented in SDK
39
+ };
40
+ const ToggleFileServer = ({ title, description, filePath, feature, fileContent, color, }) => {
41
+ return null; // Stub - not implemented in SDK
42
+ };
43
+ const ToggleIframeUrl = ({ title, description, newUrl, feature, color, useVm, groupId, preloadedVmUrl, }) => {
44
+ return null; // Stub - not implemented in SDK
45
+ };
46
+ const createId = (text) => {
47
+ return text
48
+ .toLowerCase()
49
+ .replace(/[^a-z0-9]+/g, "-")
50
+ .replace(/(^-|-$)/g, "");
51
+ };
52
+ export const MemoizedReactMarkdown = memo(ReactMarkdown, (prevProps, nextProps) => prevProps.children === nextProps.children &&
53
+ prevProps.className === nextProps.className);
54
+ export const Markdown = ({ children, className, isRestricted, showToc, themeColor, browserUrl, gitUrl }) => {
55
+ const headingRenderer = (level) => {
56
+ return (_a) => {
57
+ var _b, _c;
58
+ var { children: headerChildren, node } = _a, props = __rest(_a, ["children", "node"]);
59
+ const text = String(headerChildren);
60
+ const id = createId(text);
61
+ const isFirstElement = ((_c = (_b = node === null || node === void 0 ? void 0 : node.position) === null || _b === void 0 ? void 0 : _b.start) === null || _c === void 0 ? void 0 : _c.offset) === 0;
62
+ const HeadingClasses = {
63
+ 1: cn("scroll-m-20 text-3xl font-bold tracking-tight lg:text-3xl mb-7 text-zinc-900 dark:text-zinc-50", !isFirstElement && "mt-16"),
64
+ 2: cn("scroll-m-20 text-2xl font-bold tracking-tight mb-7 text-zinc-900 dark:text-zinc-50", !isFirstElement && "mt-14"),
65
+ 3: cn("scroll-m-20 text-xl font-bold tracking-tight mb-6 text-zinc-900 dark:text-zinc-50", !isFirstElement && "mt-10"),
66
+ 4: cn("scroll-m-20 text-lg font-bold tracking-tight mb-6 text-zinc-900 dark:text-zinc-50", !isFirstElement && "mt-10"),
67
+ };
68
+ const Tag = `h${level}`;
69
+ return (React.createElement(Tag, Object.assign({ id: id, className: HeadingClasses[level] }, props),
70
+ React.createElement("a", { href: `#${id}`, className: "no-underline hover:after:content-['#'] hover:after:ml-2 hover:after:text-zinc-400" }, headerChildren)));
71
+ };
72
+ };
73
+ // Wrapper for CodeFocusSection to handle HTML attributes from react-markdown
74
+ const CodeFocusSectionWrapper = (_a) => {
75
+ var { children, filepath, filerange, title, description, className } = _a, props = __rest(_a, ["children", "filepath", "filerange", "title", "description", "className"]);
76
+ // Parse lineRange from string format like "10-30" or "10"
77
+ let lineRange;
78
+ if (filerange) {
79
+ const parts = filerange.split("-");
80
+ if (parts.length === 2) {
81
+ lineRange = {
82
+ start: parseInt(parts[0], 10),
83
+ end: parseInt(parts[1], 10),
84
+ };
85
+ }
86
+ else if (parts.length === 1) {
87
+ lineRange = {
88
+ start: parseInt(parts[0], 10),
89
+ };
90
+ }
91
+ }
92
+ if (!filepath || !title) {
93
+ return React.createElement("div", { className: className }, children);
94
+ }
95
+ // Use themeColor from Markdown component props (from guardian-playground)
96
+ // Don't accept themecolor from HTML attributes
97
+ const color = themeColor || "#3b82f6";
98
+ return (React.createElement("div", { className: className },
99
+ React.createElement(CodeFocusSection, { filePath: filepath, lineRange: lineRange, title: title, description: description, themeColor: color }, children)));
100
+ };
101
+ // Wrapper for ButtonFileServer to handle HTML attributes from react-markdown
102
+ const ButtonFileServerWrapper = (_a) => {
103
+ var { children, title, description, filepath, feature, filecontent, color, className } = _a, props = __rest(_a, ["children", "title", "description", "filepath", "feature", "filecontent", "color", "className"]);
104
+ if (!title ||
105
+ !description ||
106
+ !filepath ||
107
+ !feature ||
108
+ !filecontent ||
109
+ !color) {
110
+ return React.createElement("div", { className: className }, children);
111
+ }
112
+ return (React.createElement("div", { className: className },
113
+ React.createElement(ButtonFileServer, { title: title, description: description, filePath: filepath, feature: feature, fileContent: filecontent, color: color }),
114
+ children));
115
+ };
116
+ // Wrapper for ToggleFileServer to handle HTML attributes from react-markdown
117
+ const ToggleFileServerWrapper = (_a) => {
118
+ var { children, title, description, filepath, feature, filecontent, color, className } = _a, props = __rest(_a, ["children", "title", "description", "filepath", "feature", "filecontent", "color", "className"]);
119
+ if (!title ||
120
+ !description ||
121
+ !filepath ||
122
+ !feature ||
123
+ !filecontent ||
124
+ !color) {
125
+ return React.createElement("div", { className: className }, children);
126
+ }
127
+ return (React.createElement("div", { className: className },
128
+ React.createElement(ToggleFileServer, { title: title, description: description, filePath: filepath, feature: feature, fileContent: filecontent, color: color }),
129
+ children));
130
+ };
131
+ // Wrapper for ToggleIframeUrl to handle HTML attributes from react-markdown
132
+ const ToggleIframeUrlWrapper = (_a) => {
133
+ var { children, title, description, newurl, feature, color, usevm, groupid, preloadedvmurl, className } = _a, props = __rest(_a, ["children", "title", "description", "newurl", "feature", "color", "usevm", "groupid", "preloadedvmurl", "className"]);
134
+ if (!title || !description || !newurl || !feature || !color) {
135
+ return React.createElement("div", { className: className }, children);
136
+ }
137
+ // Convert usevm string to boolean
138
+ const useVmBoolean = usevm === "true" || usevm === "1";
139
+ return (React.createElement("div", { className: className },
140
+ React.createElement(ToggleIframeUrl, { title: title, description: description, newUrl: newurl, feature: feature, color: color, useVm: useVmBoolean, groupId: groupid, preloadedVmUrl: preloadedvmurl }),
141
+ children));
142
+ };
143
+ // Wrapper for DownloadAndOpenButtons to handle HTML attributes from react-markdown
144
+ const DownloadAndOpenButtonsWrapper = (_a) => {
145
+ var { children, downloadurl, giturl, className } = _a, props = __rest(_a, ["children", "downloadurl", "giturl", "className"]);
146
+ // Use themeColor from Markdown component props (from guardian-playground)
147
+ // Don't accept themecolor from HTML attributes
148
+ const effectiveThemeColor = themeColor || "#3b82f6";
149
+ // Use gitUrl from Markdown component props (from guardian-playground) as priority,
150
+ // fall back to HTML attribute if not provided
151
+ const effectiveGitUrl = gitUrl || giturl;
152
+ if (!downloadurl || !effectiveThemeColor) {
153
+ return React.createElement("div", { className: className }, children);
154
+ }
155
+ return (React.createElement("div", { className: cn("my-6", className) },
156
+ React.createElement(DownloadAndOpenButtons, { downloadUrl: downloadurl, themeColor: effectiveThemeColor, gitUrl: effectiveGitUrl, browserUrl: browserUrl }),
157
+ children));
158
+ };
159
+ const sharedComponents = {
160
+ codegroup: CodeGroup, // For <codegroup>
161
+ codeblock: CodeBlock, // For <codeblock>
162
+ accordiongroup: AccordionGroup, // For <accordiongroup>
163
+ accordion: Accordion, // For <accordion>
164
+ check: CalloutCheck, // For <calloutcheck>
165
+ error: CalloutError, // For <callouterror>
166
+ info: CalloutInfo, // For <calloutinfo>
167
+ note: CalloutNote, // For <calloutnote>
168
+ tip: CalloutTip, // For <callouttip>
169
+ warning: CalloutWarning, // For <calloutwarning>
170
+ cardgroup: CardGroup, // For <cardgroup>
171
+ card: Card, // For <card>
172
+ codefocussection: CodeFocusSectionWrapper, // For <codefocussection>
173
+ buttonfileserver: ButtonFileServerWrapper, // For <buttonfileserver>
174
+ togglefileserver: ToggleFileServerWrapper, // For <togglefileserver>
175
+ toggleiframeurl: ToggleIframeUrlWrapper, // For <toggleiframeurl>
176
+ downloadandopenbuttons: DownloadAndOpenButtonsWrapper, // For <downloadandopenbuttons>
177
+ // icon: Icon, // For <icon> //TODO: HIDE THIS FIX SOME ICON ISSUES
178
+ p(_a) {
179
+ var _b, _c;
180
+ var { children, node } = _a, props = __rest(_a, ["children", "node"]);
181
+ const isFirstElement = ((_c = (_b = node === null || node === void 0 ? void 0 : node.position) === null || _b === void 0 ? void 0 : _b.start) === null || _c === void 0 ? void 0 : _c.offset) === 0;
182
+ // Check if children contain known block-level components, to prevent hydration error.
183
+ const blockComponents = [
184
+ CalloutCheck,
185
+ CalloutError,
186
+ CalloutInfo,
187
+ CalloutNote,
188
+ CalloutTip,
189
+ CalloutWarning,
190
+ ];
191
+ const hasBlockElementChild = React.Children.toArray(children).some((child) => React.isValidElement(child) &&
192
+ blockComponents.includes(child.type));
193
+ if (hasBlockElementChild) {
194
+ // If there's a block-level component, don't wrap in <p>, just return a <div> or fragment
195
+ return React.createElement("div", Object.assign({}, props), children);
196
+ }
197
+ return (React.createElement("div", Object.assign({ className: cn("leading-6 text-zinc-700 dark:text-zinc-300 text-sm", !isFirstElement && "mt-5") }, props), children));
198
+ },
199
+ // List
200
+ li({ children }) {
201
+ return (React.createElement("li", { className: "text-zinc-700 dark:text-zinc-300 leading-7 text-sm" }, children));
202
+ },
203
+ // Unordered List
204
+ ul({ children }) {
205
+ return (React.createElement("ul", { className: "my-4 ml-6 list-disc marker:text-zinc-400" }, children));
206
+ },
207
+ // Ordered List
208
+ ol({ children }) {
209
+ return (React.createElement("ol", { className: "my-4 ml-6 list-decimal marker:text-zinc-400" }, children));
210
+ },
211
+ a(_a) {
212
+ var { children, href } = _a, props = __rest(_a, ["children", "href"]);
213
+ const isInternal = href === null || href === void 0 ? void 0 : href.startsWith("#");
214
+ return (React.createElement("a", Object.assign({ className: cn("font-medium transition-colors underline underline-offset-4", isInternal
215
+ ? "text-zinc-900 hover:text-zinc-700 dark:text-zinc-100 dark:hover:text-zinc-300"
216
+ : "text-[var(--colors-primary)] hover:text-[var(--colors-primary)]"), target: isInternal ? undefined : "_blank", rel: isInternal ? undefined : "noopener noreferrer", href: href }, props), children));
217
+ },
218
+ // "> This is ÷a quote"
219
+ blockquote({ children }) {
220
+ return (React.createElement("blockquote", { className: "mt-4 border-l-4 border-zinc-200 dark:border-zinc-800 pl-6 italic text-zinc-800 dark:text-zinc-200" }, children));
221
+ },
222
+ code(_a) {
223
+ var _b, _c;
224
+ var { node, inline, className, children } = _a, props = __rest(_a, ["node", "inline", "className", "children"]);
225
+ const match = /language-(\w+)/.exec(className || "");
226
+ const isInline = ((_b = node.position) === null || _b === void 0 ? void 0 : _b.start.line) === ((_c = node.position) === null || _c === void 0 ? void 0 : _c.end.line);
227
+ // If it's an inline code block, render it as a small block by default
228
+ // so it visually separates from the surrounding text instead of sitting inline.
229
+ if (isInline) {
230
+ return (React.createElement("code", Object.assign({ className: cn("inline-block text-[var(--colors-primary)] text-sm bg-[var(--colors-secondary)] px-2 py-1 rounded-lg mt-2", className) }, props), children));
231
+ }
232
+ // Extract language and title
233
+ const language = (match === null || match === void 0 ? void 0 : match[1]) || "";
234
+ // Look for title in the className (format: language-js title.js)
235
+ const parts = (className === null || className === void 0 ? void 0 : className.split(" ")) || [];
236
+ const title = parts[1] || `${language}`;
237
+ return match ? (React.createElement(CodeBlock, Object.assign({ language: language, value: String(children).trim(), isInsideCodeGroup: false, title: title, className: "my-5" }, props))) : (
238
+ // <code className={className} {...props}>
239
+ // {children}
240
+ // </code>
241
+ React.createElement(CodeBlock, Object.assign({ language: "", value: String(children).trim(), isInsideCodeGroup: false, title: "", className: "my-5" }, props)));
242
+ },
243
+ };
244
+ return (React.createElement("div", { className: "mx-auto min-w-0" },
245
+ React.createElement(MemoizedReactMarkdown, { className: cn("prose prose-slate dark:prose-invert max-w-none", "prose-headings:font-semibold prose-headings:tracking-tight", "[&>*:first-child]:mt-0", "prose-p:leading-7", "prose-li:leading-7", "prose-code:rounded-md prose-code:bg-zinc-100 dark:prose-code:bg-zinc-800 prose-code:px-2 prose-code:py-1", "prose-pre:rounded-lg prose-pre:border prose-pre:border-zinc-200 dark:prose-pre:border-zinc-800", "prose-img:rounded-lg prose-img:border prose-img:border-zinc-200 dark:prose-img:border-zinc-800", "prose-blockquote:border-l-4 prose-blockquote:border-zinc-200 dark:prose-blockquote:border-zinc-800", "prose-table:border prose-table:border-zinc-200 dark:prose-table:border-zinc-800", "prose-a:no-underline hover:prose-a:underline", className), remarkPlugins: [
246
+ remarkGfm,
247
+ remarkMath,
248
+ // add remarkMdx to the remarkPlugins array
249
+ // remarkMdx,
250
+ ], rehypePlugins: [rehypeRaw], components: isRestricted
251
+ ? sharedComponents
252
+ : Object.assign(Object.assign({}, sharedComponents), { h1: headingRenderer(1), h2: headingRenderer(2), h3: headingRenderer(3), h4: headingRenderer(4), table({ children }) {
253
+ return (React.createElement("div", { className: "my-6 w-full overflow-x-auto rounded-lg" },
254
+ React.createElement("table", { className: "w-full border-collapse border border-zinc-200 dark:border-zinc-800" }, children)));
255
+ },
256
+ th({ children }) {
257
+ return (React.createElement("th", { className: "border border-zinc-200 dark:border-zinc-800 px-4 py-2 text-left font-semibold bg-zinc-50 dark:bg-zinc-900" }, children));
258
+ },
259
+ td({ children }) {
260
+ return (React.createElement("td", { className: "border border-zinc-200 dark:border-zinc-800 px-4 py-2" }, children));
261
+ } }) }, children)));
262
+ };
263
+ // import React, { FC, useEffect, useState } from "react";
264
+ // import { cn } from "@/lib/utils";
265
+ // import { MDXProvider } from "@mdx-js/react";
266
+ // import { evaluate } from "@mdx-js/mdx";
267
+ // import { jsx, jsxs, Fragment } from "react/jsx-runtime";
268
+ // import remarkGfm from "remark-gfm";
269
+ // import remarkMath from "remark-math";
270
+ // import rehypeRaw from "rehype-raw";
271
+ // // Import your custom components
272
+ // import { CodeGroup } from "./markdown/code-group";
273
+ // import { CodeBlock } from "./markdown/code-group/code-block";
274
+ // import { Accordion } from "./markdown/accordion-group/accordion";
275
+ // import { AccordionGroup } from "./markdown/accordion-group";
276
+ // import { CalloutCheck } from "./markdown/callout/callout-check";
277
+ // import { CalloutError } from "./markdown/callout/callout-error";
278
+ // import { CalloutInfo } from "./markdown/callout/callout-info";
279
+ // import { CalloutNote } from "./markdown/callout/callout-note";
280
+ // import { CalloutTip } from "./markdown/callout/callout-tip";
281
+ // import { CalloutWarning } from "./markdown/callout/callout-warning";
282
+ // import { CardGroup } from "./markdown/card-group";
283
+ // import { Card } from "./markdown/card-group/card";
284
+ // import { Icon } from "./markdown/icon";
285
+ // const createId = (text: string) => {
286
+ // return text
287
+ // .toLowerCase()
288
+ // .replace(/[^a-z0-9]+/g, "-")
289
+ // .replace(/(^-|-$)/g, "");
290
+ // };
291
+ // export const Markdown: FC<{
292
+ // children: string;
293
+ // className?: string;
294
+ // isRestricted?: boolean;
295
+ // showToc?: boolean;
296
+ // }> = ({ children, className, isRestricted }) => {
297
+ // const [MDXContent, setMDXContent] = useState<React.ComponentType | null>(
298
+ // null,
299
+ // );
300
+ // useEffect(() => {
301
+ // let isMounted = true;
302
+ // (async () => {
303
+ // try {
304
+ // const { default: Content } = await evaluate(children, {
305
+ // jsx,
306
+ // jsxs,
307
+ // Fragment,
308
+ // remarkPlugins: [remarkGfm],
309
+ // rehypePlugins: [rehypeRaw],
310
+ // });
311
+ // if (isMounted) setMDXContent(() => Content);
312
+ // } catch (err) {
313
+ // console.error("MDX Evaluation Error:", err); // Log evaluation errors
314
+ // }
315
+ // })();
316
+ // return () => {
317
+ // isMounted = false;
318
+ // };
319
+ // }, [children]);
320
+ // // Define shared components
321
+ // const sharedComponents = {
322
+ // codegroup: CodeGroup,
323
+ // codeblock: CodeBlock,
324
+ // accordiongroup: AccordionGroup,
325
+ // accordion: Accordion,
326
+ // check: CalloutCheck,
327
+ // error: CalloutError,
328
+ // info: CalloutInfo,
329
+ // note: CalloutNote,
330
+ // tip: CalloutTip,
331
+ // warning: CalloutWarning,
332
+ // cardgroup: CardGroup,
333
+ // card: Card,
334
+ // icon: Icon,
335
+ // p: ({ children, ...props }) => (
336
+ // <p
337
+ // className={cn("leading-6 text-zinc-700 dark:text-zinc-300")}
338
+ // {...props}
339
+ // >
340
+ // {children}
341
+ // </p>
342
+ // ),
343
+ // li: ({ children, ...props }) => (
344
+ // <li className="text-zinc-700 dark:text-zinc-300 leading-7" {...props}>
345
+ // {children}
346
+ // </li>
347
+ // ),
348
+ // ul: ({ children, ...props }) => (
349
+ // <ul className="my-4 ml-6 list-disc marker:text-zinc-400" {...props}>
350
+ // {children}
351
+ // </ul>
352
+ // ),
353
+ // ol: ({ children, ...props }) => (
354
+ // <ol className="my-4 ml-6 list-decimal marker:text-zinc-400" {...props}>
355
+ // {children}
356
+ // </ol>
357
+ // ),
358
+ // a: ({ children, href, ...props }) => {
359
+ // const isInternal = href?.startsWith("#");
360
+ // return (
361
+ // <a
362
+ // className={cn(
363
+ // "font-medium transition-colors underline-offset-4 hover:underline",
364
+ // isInternal
365
+ // ? "text-zinc-900 hover:text-zinc-700 dark:text-zinc-100 dark:hover:text-zinc-300"
366
+ // : "text-blue-600 hover:text-blue-500 dark:text-blue-400 dark:hover:text-blue-300",
367
+ // )}
368
+ // target={isInternal ? undefined : "_blank"}
369
+ // rel={isInternal ? undefined : "noopener noreferrer"}
370
+ // href={href}
371
+ // {...props}
372
+ // >
373
+ // {children}
374
+ // </a>
375
+ // );
376
+ // },
377
+ // blockquote: ({ children, ...props }) => (
378
+ // <blockquote
379
+ // className="mt-4 border-l-4 border-zinc-200 dark:border-zinc-800 pl-6 italic text-zinc-800 dark:text-zinc-200"
380
+ // {...props}
381
+ // >
382
+ // {children}
383
+ // </blockquote>
384
+ // ),
385
+ // code: ({ children, className, ...props }) => {
386
+ // const match = /language-(\w+)/.exec(className || "");
387
+ // const language = match?.[1] || "";
388
+ // return (
389
+ // <CodeBlock
390
+ // language={language}
391
+ // value={String(children).trim()}
392
+ // isInsideCodeGroup={false}
393
+ // {...props}
394
+ // />
395
+ // );
396
+ // },
397
+ // table: ({ children, ...props }) => (
398
+ // <div className="my-6 w-full overflow-x-auto rounded-lg">
399
+ // <table
400
+ // className="w-full border-collapse border border-zinc-200 dark:border-zinc-800"
401
+ // {...props}
402
+ // >
403
+ // {children}
404
+ // </table>
405
+ // </div>
406
+ // ),
407
+ // th: ({ children, ...props }) => (
408
+ // <th
409
+ // className="border border-zinc-200 dark:border-zinc-800 px-4 py-2 text-left font-semibold bg-zinc-50 dark:bg-zinc-900"
410
+ // {...props}
411
+ // >
412
+ // {children}
413
+ // </th>
414
+ // ),
415
+ // td: ({ children, ...props }) => (
416
+ // <td
417
+ // className="border border-zinc-200 dark:border-zinc-800 px-4 py-2"
418
+ // {...props}
419
+ // >
420
+ // {children}
421
+ // </td>
422
+ // ),
423
+ // };
424
+ // // If not restricted, add headings
425
+ // const components = isRestricted
426
+ // ? sharedComponents
427
+ // : {
428
+ // ...sharedComponents,
429
+ // h1: ({ children, ...props }) => {
430
+ // const text = String(children);
431
+ // const id = createId(text);
432
+ // return (
433
+ // <h1
434
+ // id={id}
435
+ // className="scroll-m-20 text-3xl font-bold tracking-tight lg:text-3xl mb-4 text-zinc-900 dark:text-zinc-50"
436
+ // {...props}
437
+ // >
438
+ // <a
439
+ // href={`#${id}`}
440
+ // className="no-underline hover:after:content-['#'] hover:after:ml-2 hover:after:text-zinc-400"
441
+ // >
442
+ // {children}
443
+ // </a>
444
+ // </h1>
445
+ // );
446
+ // },
447
+ // h2: ({ children, ...props }) => {
448
+ // const text = String(children);
449
+ // const id = createId(text);
450
+ // return (
451
+ // <h2
452
+ // id={id}
453
+ // className="scroll-m-20 text-2xl font-bold tracking-tight mb-3 text-zinc-900 dark:text-zinc-50"
454
+ // {...props}
455
+ // >
456
+ // <a
457
+ // href={`#${id}`}
458
+ // className="no-underline hover:after:content-['#'] hover:after:ml-2 hover:after:text-zinc-400"
459
+ // >
460
+ // {children}
461
+ // </a>
462
+ // </h2>
463
+ // );
464
+ // },
465
+ // h3: ({ children, ...props }) => {
466
+ // const text = String(children);
467
+ // const id = createId(text);
468
+ // return (
469
+ // <h3
470
+ // id={id}
471
+ // className="scroll-m-20 text-xl font-bold tracking-tight mb-3 text-zinc-900 dark:text-zinc-50"
472
+ // {...props}
473
+ // >
474
+ // <a
475
+ // href={`#${id}`}
476
+ // className="no-underline hover:after:content-['#'] hover:after:ml-2 hover:after:text-zinc-400"
477
+ // >
478
+ // {children}
479
+ // </a>
480
+ // </h3>
481
+ // );
482
+ // },
483
+ // h4: ({ children, ...props }) => {
484
+ // const text = String(children);
485
+ // const id = createId(text);
486
+ // return (
487
+ // <h4
488
+ // id={id}
489
+ // className="scroll-m-20 text-lg font-bold tracking-tight mb-3 text-zinc-900 dark:text-zinc-50"
490
+ // {...props}
491
+ // >
492
+ // <a
493
+ // href={`#${id}`}
494
+ // className="no-underline hover:after:content-['#'] hover:after:ml-2 hover:after:text-zinc-400"
495
+ // >
496
+ // {children}
497
+ // </a>
498
+ // </h4>
499
+ // );
500
+ // },
501
+ // };
502
+ // return (
503
+ // <div
504
+ // className={cn(
505
+ // "mx-auto min-w-0",
506
+ // "prose prose-slate dark:prose-invert max-w-none",
507
+ // "prose-headings:font-semibold prose-headings:tracking-tight",
508
+ // "[&>*:first-child]:mt-0",
509
+ // "prose-p:leading-7",
510
+ // "prose-li:leading-7",
511
+ // "prose-code:rounded-md prose-code:bg-zinc-100 dark:prose-code:bg-zinc-800 prose-code:px-2 prose-code:py-1",
512
+ // "prose-pre:rounded-lg prose-pre:border prose-pre:border-zinc-200 dark:prose-pre:border-zinc-800",
513
+ // "prose-img:rounded-lg prose-img:border prose-img:border-zinc-200 dark:prose-img:border-zinc-800",
514
+ // "prose-blockquote:border-l-4 prose-blockquote:border-zinc-200 dark:prose-blockquote:border-zinc-800",
515
+ // "prose-table:border prose-table:border-zinc-200 dark:prose-table:border-zinc-800",
516
+ // "prose-a:no-underline hover:prose-a:underline",
517
+ // className,
518
+ // )}
519
+ // >
520
+ // <MDXProvider components={components}>
521
+ // {/* Render the evaluated component only after it's loaded */}
522
+ // {MDXContent ? <MDXContent /> : null}
523
+ // </MDXProvider>
524
+ // </div>
525
+ // );
526
+ // };
527
+ //v3
528
+ // import React, { FC, useEffect, useState } from "react";
529
+ // import { cn } from "@/lib/utils";
530
+ // import { MDXProvider } from "@mdx-js/react";
531
+ // import { evaluate } from "@mdx-js/mdx";
532
+ // import * as runtime from "react/jsx-runtime"; // Use the entire runtime
533
+ // import remarkGfm from "remark-gfm";
534
+ // import remarkMath from "remark-math";
535
+ // import rehypeRaw from "rehype-raw";
536
+ // // Import your custom components
537
+ // import { CodeGroup } from "./markdown/code-group";
538
+ // import { CodeBlock } from "./markdown/code-group/code-block";
539
+ // import { Accordion } from "./markdown/accordion-group/accordion";
540
+ // import { AccordionGroup } from "./markdown/accordion-group";
541
+ // import { CalloutCheck } from "./markdown/callout/callout-check";
542
+ // import { CalloutError } from "./markdown/callout/callout-error";
543
+ // import { CalloutInfo } from "./markdown/callout/callout-info";
544
+ // import { CalloutNote } from "./markdown/callout/callout-note";
545
+ // import { CalloutTip } from "./markdown/callout/callout-tip";
546
+ // import { CalloutWarning } from "./markdown/callout/callout-warning";
547
+ // import { CardGroup } from "./markdown/card-group";
548
+ // import { Card } from "./markdown/card-group/card";
549
+ // import { Icon } from "./markdown/icon";
550
+ // const createId = (text: string) => {
551
+ // return text
552
+ // .toLowerCase()
553
+ // .replace(/[^a-z0-9]+/g, "-")
554
+ // .replace(/(^-|-$)/g, "");
555
+ // };
556
+ // export const Markdown: FC<{
557
+ // children: string;
558
+ // className?: string;
559
+ // isRestricted?: boolean;
560
+ // showToc?: boolean;
561
+ // }> = ({ children, className, isRestricted }) => {
562
+ // const [MDXContent, setMDXContent] = useState<React.ComponentType | null>(
563
+ // null,
564
+ // );
565
+ // useEffect(() => {
566
+ // let isMounted = true;
567
+ // (async () => {
568
+ // try {
569
+ // const { default: Content } = await evaluate(children, {
570
+ // ...runtime,
571
+ // remarkPlugins: [remarkGfm, remarkMath],
572
+ // rehypePlugins: [rehypeRaw],
573
+ // development: true, // Adds helpful debugging
574
+ // format: "mdx", // Ensures MDX format
575
+ // });
576
+ // if (isMounted) setMDXContent(() => Content);
577
+ // } catch (err) {
578
+ // console.error("MDX Evaluation Error:", err); // Log evaluation errors
579
+ // }
580
+ // })();
581
+ // return () => {
582
+ // isMounted = false;
583
+ // };
584
+ // }, [children]);
585
+ // // Define shared components
586
+ // const sharedComponents = {
587
+ // codegroup: CodeGroup,
588
+ // codeblock: CodeBlock,
589
+ // accordiongroup: AccordionGroup,
590
+ // accordion: Accordion,
591
+ // check: CalloutCheck,
592
+ // error: CalloutError,
593
+ // info: CalloutInfo,
594
+ // note: CalloutNote,
595
+ // tip: CalloutTip,
596
+ // warning: CalloutWarning,
597
+ // cardgroup: CardGroup,
598
+ // card: Card,
599
+ // icon: Icon,
600
+ // p: ({ children, ...props }) => (
601
+ // <p
602
+ // className={cn("leading-6 text-zinc-700 dark:text-zinc-300")}
603
+ // {...props}
604
+ // >
605
+ // {children}
606
+ // </p>
607
+ // ),
608
+ // li: ({ children, ...props }) => (
609
+ // <li className="text-zinc-700 dark:text-zinc-300 leading-7" {...props}>
610
+ // {children}
611
+ // </li>
612
+ // ),
613
+ // ul: ({ children, ...props }) => (
614
+ // <ul className="my-4 ml-6 list-disc marker:text-zinc-400" {...props}>
615
+ // {children}
616
+ // </ul>
617
+ // ),
618
+ // ol: ({ children, ...props }) => (
619
+ // <ol className="my-4 ml-6 list-decimal marker:text-zinc-400" {...props}>
620
+ // {children}
621
+ // </ol>
622
+ // ),
623
+ // a: ({ children, href, ...props }) => {
624
+ // const isInternal = href?.startsWith("#");
625
+ // return (
626
+ // <a
627
+ // className={cn(
628
+ // "font-medium transition-colors underline-offset-4 hover:underline",
629
+ // isInternal
630
+ // ? "text-zinc-900 hover:text-zinc-700 dark:text-zinc-100 dark:hover:text-zinc-300"
631
+ // : "text-blue-600 hover:text-blue-500 dark:text-blue-400 dark:hover:text-blue-300",
632
+ // )}
633
+ // target={isInternal ? undefined : "_blank"}
634
+ // rel={isInternal ? undefined : "noopener noreferrer"}
635
+ // href={href}
636
+ // {...props}
637
+ // >
638
+ // {children}
639
+ // </a>
640
+ // );
641
+ // },
642
+ // blockquote: ({ children, ...props }) => (
643
+ // <blockquote
644
+ // className="mt-4 border-l-4 border-zinc-200 dark:border-zinc-800 pl-6 italic text-zinc-800 dark:text-zinc-200"
645
+ // {...props}
646
+ // >
647
+ // {children}
648
+ // </blockquote>
649
+ // ),
650
+ // code: ({ children, className, ...props }) => {
651
+ // const match = /language-(\w+)/.exec(className || "");
652
+ // const language = match?.[1] || "";
653
+ // return (
654
+ // <CodeBlock
655
+ // language={language}
656
+ // value={String(children).trim()}
657
+ // isInsideCodeGroup={false}
658
+ // {...props}
659
+ // />
660
+ // );
661
+ // },
662
+ // table: ({ children, ...props }) => (
663
+ // <div className="my-6 w-full overflow-x-auto rounded-lg">
664
+ // <table
665
+ // className="w-full border-collapse border border-zinc-200 dark:border-zinc-800"
666
+ // {...props}
667
+ // >
668
+ // {children}
669
+ // </table>
670
+ // </div>
671
+ // ),
672
+ // th: ({ children, ...props }) => (
673
+ // <th
674
+ // className="border border-zinc-200 dark:border-zinc-800 px-4 py-2 text-left font-semibold bg-zinc-50 dark:bg-zinc-900"
675
+ // {...props}
676
+ // >
677
+ // {children}
678
+ // </th>
679
+ // ),
680
+ // td: ({ children, ...props }) => (
681
+ // <td
682
+ // className="border border-zinc-200 dark:border-zinc-800 px-4 py-2"
683
+ // {...props}
684
+ // >
685
+ // {children}
686
+ // </td>
687
+ // ),
688
+ // };
689
+ // // If not restricted, add headings
690
+ // const components = isRestricted
691
+ // ? sharedComponents
692
+ // : {
693
+ // ...sharedComponents,
694
+ // h1: ({ children, ...props }) => {
695
+ // const text = String(children);
696
+ // const id = createId(text);
697
+ // return (
698
+ // <h1
699
+ // id={id}
700
+ // className="scroll-m-20 text-3xl font-bold tracking-tight lg:text-3xl mb-4 text-zinc-900 dark:text-zinc-50"
701
+ // {...props}
702
+ // >
703
+ // <a
704
+ // href={`#${id}`}
705
+ // className="no-underline hover:after:content-['#'] hover:after:ml-2 hover:after:text-zinc-400"
706
+ // >
707
+ // {children}
708
+ // </a>
709
+ // </h1>
710
+ // );
711
+ // },
712
+ // h2: ({ children, ...props }) => {
713
+ // const text = String(children);
714
+ // const id = createId(text);
715
+ // return (
716
+ // <h2
717
+ // id={id}
718
+ // className="scroll-m-20 text-2xl font-bold tracking-tight mb-3 text-zinc-900 dark:text-zinc-50"
719
+ // {...props}
720
+ // >
721
+ // <a
722
+ // href={`#${id}`}
723
+ // className="no-underline hover:after:content-['#'] hover:after:ml-2 hover:after:text-zinc-400"
724
+ // >
725
+ // {children}
726
+ // </a>
727
+ // </h2>
728
+ // );
729
+ // },
730
+ // h3: ({ children, ...props }) => {
731
+ // const text = String(children);
732
+ // const id = createId(text);
733
+ // return (
734
+ // <h3
735
+ // id={id}
736
+ // className="scroll-m-20 text-xl font-bold tracking-tight mb-3 text-zinc-900 dark:text-zinc-50"
737
+ // {...props}
738
+ // >
739
+ // <a
740
+ // href={`#${id}`}
741
+ // className="no-underline hover:after:content-['#'] hover:after:ml-2 hover:after:text-zinc-400"
742
+ // >
743
+ // {children}
744
+ // </a>
745
+ // </h3>
746
+ // );
747
+ // },
748
+ // h4: ({ children, ...props }) => {
749
+ // const text = String(children);
750
+ // const id = createId(text);
751
+ // return (
752
+ // <h4
753
+ // id={id}
754
+ // className="scroll-m-20 text-lg font-bold tracking-tight mb-3 text-zinc-900 dark:text-zinc-50"
755
+ // {...props}
756
+ // >
757
+ // <a
758
+ // href={`#${id}`}
759
+ // className="no-underline hover:after:content-['#'] hover:after:ml-2 hover:after:text-zinc-400"
760
+ // >
761
+ // {children}
762
+ // </a>
763
+ // </h4>
764
+ // );
765
+ // },
766
+ // };
767
+ // return (
768
+ // <div
769
+ // className={cn(
770
+ // "mx-auto min-w-0",
771
+ // "prose prose-slate dark:prose-invert max-w-none",
772
+ // "prose-headings:font-semibold prose-headings:tracking-tight",
773
+ // "[&>*:first-child]:mt-0",
774
+ // "prose-p:leading-7",
775
+ // "prose-li:leading-7",
776
+ // "prose-code:rounded-md prose-code:bg-zinc-100 dark:prose-code:bg-zinc-800 prose-code:px-2 prose-code:py-1",
777
+ // "prose-pre:rounded-lg prose-pre:border prose-pre:border-zinc-200 dark:prose-pre:border-zinc-800",
778
+ // "prose-img:rounded-lg prose-img:border prose-img:border-zinc-200 dark:prose-img:border-zinc-800",
779
+ // "prose-blockquote:border-l-4 prose-blockquote:border-zinc-200 dark:prose-blockquote:border-zinc-800",
780
+ // "prose-table:border prose-table:border-zinc-200 dark:prose-table:border-zinc-800",
781
+ // "prose-a:no-underline hover:prose-a:underline",
782
+ // className,
783
+ // )}
784
+ // >
785
+ // <MDXProvider components={components}>
786
+ // {/* Render the evaluated component only after it's loaded */}
787
+ // {MDXContent ? <MDXContent /> : null}
788
+ // </MDXProvider>
789
+ // </div>
790
+ // );
791
+ // };