@aumnidigital/bms 0.1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/renderer/MDXRenderer.tsx"],"names":["CTAButtonGroup","CTASection","Button","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","Alert","AlertTitle","AlertDescription","Badge","Accordion","AccordionContent","AccordionItem","AccordionTrigger","Tabs","TabsContent","TabsList","TabsTrigger","Separator","Avatar","AvatarFallback","AvatarImage","Breadcrumb","BreadcrumbItem","BreadcrumbLink","BreadcrumbList","BreadcrumbPage","BreadcrumbSeparator","Checkbox","Progress","Skeleton","Table","TableBody","TableCaption","TableCell","TableHead","TableHeader","TableRow","Tooltip","TooltipContent","TooltipProvider","TooltipTrigger","AspectRatio","jsx","React","compile","remarkGfm","Content","run","runtime","error","jsxs"],"mappings":"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","file":"index.cjs","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { compile, run } from \"@mdx-js/mdx\";\nimport * as runtime from \"react/jsx-runtime\";\nimport remarkGfm from \"remark-gfm\";\nimport type { MDXRendererProps } from \"./types\";\n\n// Import all components for MDX usage\nimport { Button } from \"@/components/ui/button\";\nimport {\n Card,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\n} from \"@/components/ui/card\";\nimport { Alert, AlertTitle, AlertDescription } from \"@/components/ui/alert\";\nimport { Badge } from \"@/components/ui/badge\";\nimport {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from \"@/components/ui/accordion\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui/avatar\";\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport { Progress } from \"@/components/ui/progress\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/components/ui/table\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport { AspectRatio } from \"@/components/ui/aspect-ratio\";\nimport { CTAButtonGroup } from \"@/components/custom/cta-buttons\";\nimport { CTASection } from \"@/components/custom/cta-section\";\n\n// Default components available in MDX\nconst defaultComponents = {\n // Custom components\n CTAButtonGroup,\n CTASection,\n\n // UI Components\n Button,\n Card,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\n Alert,\n AlertTitle,\n AlertDescription,\n Badge,\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Separator,\n Avatar,\n AvatarFallback,\n AvatarImage,\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n Checkbox,\n Progress,\n Skeleton,\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n AspectRatio,\n\n // HTML element overrides for better typography\n h1: (props: any) => (\n <h1\n className=\"scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl\"\n {...props}\n />\n ),\n h2: (props: any) => (\n <h2\n className=\"scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight first:mt-0\"\n {...props}\n />\n ),\n h3: (props: any) => (\n <h3\n className=\"scroll-m-20 text-2xl font-semibold tracking-tight\"\n {...props}\n />\n ),\n h4: (props: any) => (\n <h4\n className=\"scroll-m-20 text-xl font-semibold tracking-tight\"\n {...props}\n />\n ),\n p: (props: any) => (\n <p className=\"leading-7 [&:not(:first-child)]:mt-6\" {...props} />\n ),\n a: (props: any) => (\n <a\n className=\"font-medium text-primary underline underline-offset-4\"\n {...props}\n />\n ),\n ul: (props: any) => (\n <ul className=\"my-6 ml-6 list-disc [&>li]:mt-2\" {...props} />\n ),\n ol: (props: any) => (\n <ol className=\"my-6 ml-6 list-decimal [&>li]:mt-2\" {...props} />\n ),\n li: (props: any) => <li className=\"mt-2\" {...props} />,\n blockquote: (props: any) => (\n <blockquote className=\"mt-6 border-l-2 pl-6 italic\" {...props} />\n ),\n code: (props: any) => (\n <code\n className=\"relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold\"\n {...props}\n />\n ),\n pre: (props: any) => (\n <pre\n className=\"mb-4 mt-6 overflow-x-auto rounded-lg border bg-muted p-4\"\n {...props}\n />\n ),\n hr: (props: any) => <hr className=\"my-4 md:my-8\" {...props} />,\n table: (props: any) => (\n <div className=\"my-6 w-full overflow-y-auto\">\n <table className=\"w-full\" {...props} />\n </div>\n ),\n tr: (props: any) => (\n <tr className=\"m-0 border-t p-0 even:bg-muted\" {...props} />\n ),\n th: (props: any) => (\n <th\n className=\"border px-4 py-2 text-left font-bold [&[align=center]]:text-center [&[align=right]]:text-right\"\n {...props}\n />\n ),\n td: (props: any) => (\n <td\n className=\"border px-4 py-2 text-left [&[align=center]]:text-center [&[align=right]]:text-right\"\n {...props}\n />\n ),\n};\n\nexport function MDXRenderer({\n content,\n components: customComponents = {},\n scope = {},\n options = {},\n fallback,\n onError,\n}: MDXRendererProps) {\n const [MDXContent, setMDXContent] = React.useState<React.ComponentType | null>(\n null\n );\n const [error, setError] = React.useState<Error | null>(null);\n const [isLoading, setIsLoading] = React.useState(true);\n\n React.useEffect(() => {\n let isCancelled = false;\n\n async function compileMDX() {\n try {\n setIsLoading(true);\n setError(null);\n\n // Compile MDX content\n const compiled = await compile(content, {\n outputFormat: \"function-body\",\n remarkPlugins: [remarkGfm],\n ...options,\n });\n\n // Run the compiled code\n const { default: Content } = await run(String(compiled), {\n ...runtime,\n baseUrl: import.meta.url,\n });\n\n if (!isCancelled) {\n setMDXContent(() => Content);\n }\n } catch (err) {\n if (!isCancelled) {\n const error = err instanceof Error ? err : new Error(String(err));\n setError(error);\n onError?.(error);\n }\n } finally {\n if (!isCancelled) {\n setIsLoading(false);\n }\n }\n }\n\n if (content) {\n compileMDX();\n }\n\n return () => {\n isCancelled = true;\n };\n }, [content, options, onError]);\n\n const mergedComponents = React.useMemo(\n () => ({ ...defaultComponents, ...customComponents }),\n [customComponents]\n );\n\n // Loading state\n if (isLoading) {\n return (\n fallback ?? (\n <div className=\"animate-pulse space-y-4\">\n <div className=\"h-4 bg-muted rounded w-3/4\"></div>\n <div className=\"h-4 bg-muted rounded w-full\"></div>\n <div className=\"h-4 bg-muted rounded w-5/6\"></div>\n </div>\n )\n );\n }\n\n // Error state\n if (error) {\n return (\n <div className=\"bg-destructive/10 border border-destructive/20 rounded-lg p-6 my-8\">\n <h3 className=\"text-destructive font-semibold mb-2\">\n MDX Compilation Error\n </h3>\n <pre className=\"text-sm text-destructive/80 whitespace-pre-wrap overflow-x-auto\">\n {error.message}\n </pre>\n </div>\n );\n }\n\n // Empty state\n if (!MDXContent) {\n return null;\n }\n\n // Render compiled MDX\n const Content = MDXContent as React.ComponentType<any>;\n return <Content components={mergedComponents} {...scope} />;\n}\n"]}
@@ -0,0 +1,57 @@
1
+ import * as React from 'react';
2
+ import { ComponentType, ReactNode } from 'react';
3
+ import * as react_jsx_runtime from 'react/jsx-runtime';
4
+ import { CompileOptions } from '@mdx-js/mdx';
5
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, CTAButton, CTAButtonGroup, CTAButtonGroupProps, CTASection, CTASectionAction, CTASectionProps, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, Input, Label, Popover, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Skeleton, Slider, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants } from './components/index.cjs';
6
+ import { ClassValue } from 'clsx';
7
+ import 'class-variance-authority/types';
8
+ import 'class-variance-authority';
9
+ import '@radix-ui/react-alert-dialog';
10
+ import '@radix-ui/react-accordion';
11
+ import '@radix-ui/react-tabs';
12
+ import '@radix-ui/react-separator';
13
+ import '@radix-ui/react-avatar';
14
+ import '@radix-ui/react-checkbox';
15
+ import '@radix-ui/react-progress';
16
+ import '@radix-ui/react-tooltip';
17
+ import '@radix-ui/react-aspect-ratio';
18
+ import '@radix-ui/react-label';
19
+ import 'react-day-picker';
20
+ import '@radix-ui/react-select';
21
+ import '@radix-ui/react-dropdown-menu';
22
+ import '@radix-ui/react-dialog';
23
+ import '@radix-ui/react-popover';
24
+ import '@radix-ui/react-scroll-area';
25
+ import '@radix-ui/react-collapsible';
26
+ import '@radix-ui/react-slider';
27
+ import '@radix-ui/react-switch';
28
+ import '@radix-ui/react-radio-group';
29
+ import 'react-hook-form';
30
+ import '@radix-ui/react-slot';
31
+
32
+ interface MDXComponents {
33
+ [key: string]: ComponentType<any>;
34
+ }
35
+ interface MDXScope {
36
+ [key: string]: unknown;
37
+ }
38
+ interface MDXRendererProps {
39
+ /** Raw MDX content string */
40
+ content: string;
41
+ /** Custom components to override defaults */
42
+ components?: MDXComponents;
43
+ /** Variables/data to pass into MDX scope */
44
+ scope?: MDXScope;
45
+ /** MDX compile options */
46
+ options?: Omit<CompileOptions, "outputFormat">;
47
+ /** Loading fallback component */
48
+ fallback?: ReactNode;
49
+ /** Error callback */
50
+ onError?: (error: Error) => void;
51
+ }
52
+
53
+ declare function MDXRenderer({ content, components: customComponents, scope, options, fallback, onError, }: MDXRendererProps): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null;
54
+
55
+ declare function cn(...inputs: ClassValue[]): string;
56
+
57
+ export { type MDXComponents, MDXRenderer, type MDXRendererProps, type MDXScope, cn };
@@ -0,0 +1,57 @@
1
+ import * as React from 'react';
2
+ import { ComponentType, ReactNode } from 'react';
3
+ import * as react_jsx_runtime from 'react/jsx-runtime';
4
+ import { CompileOptions } from '@mdx-js/mdx';
5
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, CTAButton, CTAButtonGroup, CTAButtonGroupProps, CTASection, CTASectionAction, CTASectionProps, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, Input, Label, Popover, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Skeleton, Slider, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants } from './components/index.js';
6
+ import { ClassValue } from 'clsx';
7
+ import 'class-variance-authority/types';
8
+ import 'class-variance-authority';
9
+ import '@radix-ui/react-alert-dialog';
10
+ import '@radix-ui/react-accordion';
11
+ import '@radix-ui/react-tabs';
12
+ import '@radix-ui/react-separator';
13
+ import '@radix-ui/react-avatar';
14
+ import '@radix-ui/react-checkbox';
15
+ import '@radix-ui/react-progress';
16
+ import '@radix-ui/react-tooltip';
17
+ import '@radix-ui/react-aspect-ratio';
18
+ import '@radix-ui/react-label';
19
+ import 'react-day-picker';
20
+ import '@radix-ui/react-select';
21
+ import '@radix-ui/react-dropdown-menu';
22
+ import '@radix-ui/react-dialog';
23
+ import '@radix-ui/react-popover';
24
+ import '@radix-ui/react-scroll-area';
25
+ import '@radix-ui/react-collapsible';
26
+ import '@radix-ui/react-slider';
27
+ import '@radix-ui/react-switch';
28
+ import '@radix-ui/react-radio-group';
29
+ import 'react-hook-form';
30
+ import '@radix-ui/react-slot';
31
+
32
+ interface MDXComponents {
33
+ [key: string]: ComponentType<any>;
34
+ }
35
+ interface MDXScope {
36
+ [key: string]: unknown;
37
+ }
38
+ interface MDXRendererProps {
39
+ /** Raw MDX content string */
40
+ content: string;
41
+ /** Custom components to override defaults */
42
+ components?: MDXComponents;
43
+ /** Variables/data to pass into MDX scope */
44
+ scope?: MDXScope;
45
+ /** MDX compile options */
46
+ options?: Omit<CompileOptions, "outputFormat">;
47
+ /** Loading fallback component */
48
+ fallback?: ReactNode;
49
+ /** Error callback */
50
+ onError?: (error: Error) => void;
51
+ }
52
+
53
+ declare function MDXRenderer({ content, components: customComponents, scope, options, fallback, onError, }: MDXRendererProps): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null;
54
+
55
+ declare function cn(...inputs: ClassValue[]): string;
56
+
57
+ export { type MDXComponents, MDXRenderer, type MDXRendererProps, type MDXScope, cn };
package/dist/index.js ADDED
@@ -0,0 +1,207 @@
1
+ import { AspectRatio, TooltipTrigger, TooltipProvider, TooltipContent, Tooltip, TableRow, TableHeader, TableHead, TableCell, TableCaption, TableBody, Table, Skeleton, Progress, Checkbox, BreadcrumbSeparator, BreadcrumbPage, BreadcrumbList, BreadcrumbLink, BreadcrumbItem, Breadcrumb, AvatarImage, AvatarFallback, Avatar, Separator, TabsTrigger, TabsList, TabsContent, Tabs, AccordionTrigger, AccordionItem, AccordionContent, Accordion, Badge, AlertDescription, AlertTitle, Alert, CardFooter, CardContent, CardDescription, CardTitle, CardHeader, Card, Button, CTASection, CTAButtonGroup } from './chunk-NO6MNNEU.js';
2
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, CTAButtonGroup, CTASection, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, Input, Label, Popover, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Skeleton, Slider, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn } from './chunk-NO6MNNEU.js';
3
+ import * as React from 'react';
4
+ import { compile, run } from '@mdx-js/mdx';
5
+ import * as runtime from 'react/jsx-runtime';
6
+ import { jsx, jsxs } from 'react/jsx-runtime';
7
+ import remarkGfm from 'remark-gfm';
8
+
9
+ var defaultComponents = {
10
+ // Custom components
11
+ CTAButtonGroup,
12
+ CTASection,
13
+ // UI Components
14
+ Button,
15
+ Card,
16
+ CardHeader,
17
+ CardTitle,
18
+ CardDescription,
19
+ CardContent,
20
+ CardFooter,
21
+ Alert,
22
+ AlertTitle,
23
+ AlertDescription,
24
+ Badge,
25
+ Accordion,
26
+ AccordionContent,
27
+ AccordionItem,
28
+ AccordionTrigger,
29
+ Tabs,
30
+ TabsContent,
31
+ TabsList,
32
+ TabsTrigger,
33
+ Separator,
34
+ Avatar,
35
+ AvatarFallback,
36
+ AvatarImage,
37
+ Breadcrumb,
38
+ BreadcrumbItem,
39
+ BreadcrumbLink,
40
+ BreadcrumbList,
41
+ BreadcrumbPage,
42
+ BreadcrumbSeparator,
43
+ Checkbox,
44
+ Progress,
45
+ Skeleton,
46
+ Table,
47
+ TableBody,
48
+ TableCaption,
49
+ TableCell,
50
+ TableHead,
51
+ TableHeader,
52
+ TableRow,
53
+ Tooltip,
54
+ TooltipContent,
55
+ TooltipProvider,
56
+ TooltipTrigger,
57
+ AspectRatio,
58
+ // HTML element overrides for better typography
59
+ h1: (props) => /* @__PURE__ */ jsx(
60
+ "h1",
61
+ {
62
+ className: "scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl",
63
+ ...props
64
+ }
65
+ ),
66
+ h2: (props) => /* @__PURE__ */ jsx(
67
+ "h2",
68
+ {
69
+ className: "scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight first:mt-0",
70
+ ...props
71
+ }
72
+ ),
73
+ h3: (props) => /* @__PURE__ */ jsx(
74
+ "h3",
75
+ {
76
+ className: "scroll-m-20 text-2xl font-semibold tracking-tight",
77
+ ...props
78
+ }
79
+ ),
80
+ h4: (props) => /* @__PURE__ */ jsx(
81
+ "h4",
82
+ {
83
+ className: "scroll-m-20 text-xl font-semibold tracking-tight",
84
+ ...props
85
+ }
86
+ ),
87
+ p: (props) => /* @__PURE__ */ jsx("p", { className: "leading-7 [&:not(:first-child)]:mt-6", ...props }),
88
+ a: (props) => /* @__PURE__ */ jsx(
89
+ "a",
90
+ {
91
+ className: "font-medium text-primary underline underline-offset-4",
92
+ ...props
93
+ }
94
+ ),
95
+ ul: (props) => /* @__PURE__ */ jsx("ul", { className: "my-6 ml-6 list-disc [&>li]:mt-2", ...props }),
96
+ ol: (props) => /* @__PURE__ */ jsx("ol", { className: "my-6 ml-6 list-decimal [&>li]:mt-2", ...props }),
97
+ li: (props) => /* @__PURE__ */ jsx("li", { className: "mt-2", ...props }),
98
+ blockquote: (props) => /* @__PURE__ */ jsx("blockquote", { className: "mt-6 border-l-2 pl-6 italic", ...props }),
99
+ code: (props) => /* @__PURE__ */ jsx(
100
+ "code",
101
+ {
102
+ className: "relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold",
103
+ ...props
104
+ }
105
+ ),
106
+ pre: (props) => /* @__PURE__ */ jsx(
107
+ "pre",
108
+ {
109
+ className: "mb-4 mt-6 overflow-x-auto rounded-lg border bg-muted p-4",
110
+ ...props
111
+ }
112
+ ),
113
+ hr: (props) => /* @__PURE__ */ jsx("hr", { className: "my-4 md:my-8", ...props }),
114
+ table: (props) => /* @__PURE__ */ jsx("div", { className: "my-6 w-full overflow-y-auto", children: /* @__PURE__ */ jsx("table", { className: "w-full", ...props }) }),
115
+ tr: (props) => /* @__PURE__ */ jsx("tr", { className: "m-0 border-t p-0 even:bg-muted", ...props }),
116
+ th: (props) => /* @__PURE__ */ jsx(
117
+ "th",
118
+ {
119
+ className: "border px-4 py-2 text-left font-bold [&[align=center]]:text-center [&[align=right]]:text-right",
120
+ ...props
121
+ }
122
+ ),
123
+ td: (props) => /* @__PURE__ */ jsx(
124
+ "td",
125
+ {
126
+ className: "border px-4 py-2 text-left [&[align=center]]:text-center [&[align=right]]:text-right",
127
+ ...props
128
+ }
129
+ )
130
+ };
131
+ function MDXRenderer({
132
+ content,
133
+ components: customComponents = {},
134
+ scope = {},
135
+ options = {},
136
+ fallback,
137
+ onError
138
+ }) {
139
+ const [MDXContent, setMDXContent] = React.useState(
140
+ null
141
+ );
142
+ const [error, setError] = React.useState(null);
143
+ const [isLoading, setIsLoading] = React.useState(true);
144
+ React.useEffect(() => {
145
+ let isCancelled = false;
146
+ async function compileMDX() {
147
+ try {
148
+ setIsLoading(true);
149
+ setError(null);
150
+ const compiled = await compile(content, {
151
+ outputFormat: "function-body",
152
+ remarkPlugins: [remarkGfm],
153
+ ...options
154
+ });
155
+ const { default: Content2 } = await run(String(compiled), {
156
+ ...runtime,
157
+ baseUrl: import.meta.url
158
+ });
159
+ if (!isCancelled) {
160
+ setMDXContent(() => Content2);
161
+ }
162
+ } catch (err) {
163
+ if (!isCancelled) {
164
+ const error2 = err instanceof Error ? err : new Error(String(err));
165
+ setError(error2);
166
+ onError?.(error2);
167
+ }
168
+ } finally {
169
+ if (!isCancelled) {
170
+ setIsLoading(false);
171
+ }
172
+ }
173
+ }
174
+ if (content) {
175
+ compileMDX();
176
+ }
177
+ return () => {
178
+ isCancelled = true;
179
+ };
180
+ }, [content, options, onError]);
181
+ const mergedComponents = React.useMemo(
182
+ () => ({ ...defaultComponents, ...customComponents }),
183
+ [customComponents]
184
+ );
185
+ if (isLoading) {
186
+ return fallback ?? /* @__PURE__ */ jsxs("div", { className: "animate-pulse space-y-4", children: [
187
+ /* @__PURE__ */ jsx("div", { className: "h-4 bg-muted rounded w-3/4" }),
188
+ /* @__PURE__ */ jsx("div", { className: "h-4 bg-muted rounded w-full" }),
189
+ /* @__PURE__ */ jsx("div", { className: "h-4 bg-muted rounded w-5/6" })
190
+ ] });
191
+ }
192
+ if (error) {
193
+ return /* @__PURE__ */ jsxs("div", { className: "bg-destructive/10 border border-destructive/20 rounded-lg p-6 my-8", children: [
194
+ /* @__PURE__ */ jsx("h3", { className: "text-destructive font-semibold mb-2", children: "MDX Compilation Error" }),
195
+ /* @__PURE__ */ jsx("pre", { className: "text-sm text-destructive/80 whitespace-pre-wrap overflow-x-auto", children: error.message })
196
+ ] });
197
+ }
198
+ if (!MDXContent) {
199
+ return null;
200
+ }
201
+ const Content = MDXContent;
202
+ return /* @__PURE__ */ jsx(Content, { components: mergedComponents, ...scope });
203
+ }
204
+
205
+ export { MDXRenderer };
206
+ //# sourceMappingURL=index.js.map
207
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/renderer/MDXRenderer.tsx"],"names":["Content","error"],"mappings":";;;;;;;;AA4DA,IAAM,iBAAA,GAAoB;AAAA;AAAA,EAExB,cAAA;AAAA,EACA,UAAA;AAAA;AAAA,EAGA,MAAA;AAAA,EACA,IAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,eAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA,gBAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,gBAAA;AAAA,EACA,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,mBAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA;AAAA,EAGA,EAAA,EAAI,CAAC,KAAA,qBACH,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,gEAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAAA,EAEF,EAAA,EAAI,CAAC,KAAA,qBACH,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,4EAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAAA,EAEF,EAAA,EAAI,CAAC,KAAA,qBACH,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,mDAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAAA,EAEF,EAAA,EAAI,CAAC,KAAA,qBACH,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,kDAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAAA,EAEF,CAAA,EAAG,CAAC,KAAA,qBACF,GAAA,CAAC,OAAE,SAAA,EAAU,sCAAA,EAAwC,GAAG,KAAA,EAAO,CAAA;AAAA,EAEjE,CAAA,EAAG,CAAC,KAAA,qBACF,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,uDAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAAA,EAEF,EAAA,EAAI,CAAC,KAAA,qBACH,GAAA,CAAC,QAAG,SAAA,EAAU,iCAAA,EAAmC,GAAG,KAAA,EAAO,CAAA;AAAA,EAE7D,EAAA,EAAI,CAAC,KAAA,qBACH,GAAA,CAAC,QAAG,SAAA,EAAU,oCAAA,EAAsC,GAAG,KAAA,EAAO,CAAA;AAAA,EAEhE,EAAA,EAAI,CAAC,KAAA,qBAAe,GAAA,CAAC,QAAG,SAAA,EAAU,MAAA,EAAQ,GAAG,KAAA,EAAO,CAAA;AAAA,EACpD,UAAA,EAAY,CAAC,KAAA,qBACX,GAAA,CAAC,gBAAW,SAAA,EAAU,6BAAA,EAA+B,GAAG,KAAA,EAAO,CAAA;AAAA,EAEjE,IAAA,EAAM,CAAC,KAAA,qBACL,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,mFAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAAA,EAEF,GAAA,EAAK,CAAC,KAAA,qBACJ,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,0DAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAAA,EAEF,EAAA,EAAI,CAAC,KAAA,qBAAe,GAAA,CAAC,QAAG,SAAA,EAAU,cAAA,EAAgB,GAAG,KAAA,EAAO,CAAA;AAAA,EAC5D,KAAA,EAAO,CAAC,KAAA,qBACN,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EACb,QAAA,kBAAA,GAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,QAAA,EAAU,GAAG,OAAO,CAAA,EACvC,CAAA;AAAA,EAEF,EAAA,EAAI,CAAC,KAAA,qBACH,GAAA,CAAC,QAAG,SAAA,EAAU,gCAAA,EAAkC,GAAG,KAAA,EAAO,CAAA;AAAA,EAE5D,EAAA,EAAI,CAAC,KAAA,qBACH,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,gGAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAAA,EAEF,EAAA,EAAI,CAAC,KAAA,qBACH,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,sFAAA;AAAA,MACT,GAAG;AAAA;AAAA;AAGV,CAAA;AAEO,SAAS,WAAA,CAAY;AAAA,EAC1B,OAAA;AAAA,EACA,UAAA,EAAY,mBAAmB,EAAC;AAAA,EAChC,QAAQ,EAAC;AAAA,EACT,UAAU,EAAC;AAAA,EACX,QAAA;AAAA,EACA;AACF,CAAA,EAAqB;AACnB,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAU,KAAA,CAAA,QAAA;AAAA,IACxC;AAAA,GACF;AACA,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAU,eAAuB,IAAI,CAAA;AAC3D,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAU,eAAS,IAAI,CAAA;AAErD,EAAM,gBAAU,MAAM;AACpB,IAAA,IAAI,WAAA,GAAc,KAAA;AAElB,IAAA,eAAe,UAAA,GAAa;AAC1B,MAAA,IAAI;AACF,QAAA,YAAA,CAAa,IAAI,CAAA;AACjB,QAAA,QAAA,CAAS,IAAI,CAAA;AAGb,QAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,OAAA,EAAS;AAAA,UACtC,YAAA,EAAc,eAAA;AAAA,UACd,aAAA,EAAe,CAAC,SAAS,CAAA;AAAA,UACzB,GAAG;AAAA,SACJ,CAAA;AAGD,QAAA,MAAM,EAAE,SAASA,QAAAA,EAAQ,GAAI,MAAM,GAAA,CAAI,MAAA,CAAO,QAAQ,CAAA,EAAG;AAAA,UACvD,GAAG,OAAA;AAAA,UACH,SAAS,MAAA,CAAA,IAAA,CAAY;AAAA,SACtB,CAAA;AAED,QAAA,IAAI,CAAC,WAAA,EAAa;AAChB,UAAA,aAAA,CAAc,MAAMA,QAAO,CAAA;AAAA,QAC7B;AAAA,MACF,SAAS,GAAA,EAAK;AACZ,QAAA,IAAI,CAAC,WAAA,EAAa;AAChB,UAAA,MAAMC,MAAAA,GAAQ,eAAe,KAAA,GAAQ,GAAA,GAAM,IAAI,KAAA,CAAM,MAAA,CAAO,GAAG,CAAC,CAAA;AAChE,UAAA,QAAA,CAASA,MAAK,CAAA;AACd,UAAA,OAAA,GAAUA,MAAK,CAAA;AAAA,QACjB;AAAA,MACF,CAAA,SAAE;AACA,QAAA,IAAI,CAAC,WAAA,EAAa;AAChB,UAAA,YAAA,CAAa,KAAK,CAAA;AAAA,QACpB;AAAA,MACF;AAAA,IACF;AAEA,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,UAAA,EAAW;AAAA,IACb;AAEA,IAAA,OAAO,MAAM;AACX,MAAA,WAAA,GAAc,IAAA;AAAA,IAChB,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,OAAA,EAAS,OAAA,EAAS,OAAO,CAAC,CAAA;AAE9B,EAAA,MAAM,gBAAA,GAAyB,KAAA,CAAA,OAAA;AAAA,IAC7B,OAAO,EAAE,GAAG,iBAAA,EAAmB,GAAG,gBAAA,EAAiB,CAAA;AAAA,IACnD,CAAC,gBAAgB;AAAA,GACnB;AAGA,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,OACE,QAAA,oBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,WAAU,4BAAA,EAA6B,CAAA;AAAA,sBAC5C,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EAA8B,CAAA;AAAA,sBAC7C,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BAAA,EAA6B;AAAA,KAAA,EAC9C,CAAA;AAAA,EAGN;AAGA,EAAA,IAAI,KAAA,EAAO;AACT,IAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oEAAA,EACb,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,qCAAA,EAAsC,QAAA,EAAA,uBAAA,EAEpD,CAAA;AAAA,sBACA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iEAAA,EACZ,gBAAM,OAAA,EACT;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ;AAGA,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA,OAAO,IAAA;AAAA,EACT;AAGA,EAAA,MAAM,OAAA,GAAU,UAAA;AAChB,EAAA,uBAAO,GAAA,CAAC,OAAA,EAAA,EAAQ,UAAA,EAAY,gBAAA,EAAmB,GAAG,KAAA,EAAO,CAAA;AAC3D","file":"index.js","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { compile, run } from \"@mdx-js/mdx\";\nimport * as runtime from \"react/jsx-runtime\";\nimport remarkGfm from \"remark-gfm\";\nimport type { MDXRendererProps } from \"./types\";\n\n// Import all components for MDX usage\nimport { Button } from \"@/components/ui/button\";\nimport {\n Card,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\n} from \"@/components/ui/card\";\nimport { Alert, AlertTitle, AlertDescription } from \"@/components/ui/alert\";\nimport { Badge } from \"@/components/ui/badge\";\nimport {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from \"@/components/ui/accordion\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui/avatar\";\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport { Progress } from \"@/components/ui/progress\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/components/ui/table\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport { AspectRatio } from \"@/components/ui/aspect-ratio\";\nimport { CTAButtonGroup } from \"@/components/custom/cta-buttons\";\nimport { CTASection } from \"@/components/custom/cta-section\";\n\n// Default components available in MDX\nconst defaultComponents = {\n // Custom components\n CTAButtonGroup,\n CTASection,\n\n // UI Components\n Button,\n Card,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\n Alert,\n AlertTitle,\n AlertDescription,\n Badge,\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Separator,\n Avatar,\n AvatarFallback,\n AvatarImage,\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n Checkbox,\n Progress,\n Skeleton,\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n AspectRatio,\n\n // HTML element overrides for better typography\n h1: (props: any) => (\n <h1\n className=\"scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl\"\n {...props}\n />\n ),\n h2: (props: any) => (\n <h2\n className=\"scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight first:mt-0\"\n {...props}\n />\n ),\n h3: (props: any) => (\n <h3\n className=\"scroll-m-20 text-2xl font-semibold tracking-tight\"\n {...props}\n />\n ),\n h4: (props: any) => (\n <h4\n className=\"scroll-m-20 text-xl font-semibold tracking-tight\"\n {...props}\n />\n ),\n p: (props: any) => (\n <p className=\"leading-7 [&:not(:first-child)]:mt-6\" {...props} />\n ),\n a: (props: any) => (\n <a\n className=\"font-medium text-primary underline underline-offset-4\"\n {...props}\n />\n ),\n ul: (props: any) => (\n <ul className=\"my-6 ml-6 list-disc [&>li]:mt-2\" {...props} />\n ),\n ol: (props: any) => (\n <ol className=\"my-6 ml-6 list-decimal [&>li]:mt-2\" {...props} />\n ),\n li: (props: any) => <li className=\"mt-2\" {...props} />,\n blockquote: (props: any) => (\n <blockquote className=\"mt-6 border-l-2 pl-6 italic\" {...props} />\n ),\n code: (props: any) => (\n <code\n className=\"relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold\"\n {...props}\n />\n ),\n pre: (props: any) => (\n <pre\n className=\"mb-4 mt-6 overflow-x-auto rounded-lg border bg-muted p-4\"\n {...props}\n />\n ),\n hr: (props: any) => <hr className=\"my-4 md:my-8\" {...props} />,\n table: (props: any) => (\n <div className=\"my-6 w-full overflow-y-auto\">\n <table className=\"w-full\" {...props} />\n </div>\n ),\n tr: (props: any) => (\n <tr className=\"m-0 border-t p-0 even:bg-muted\" {...props} />\n ),\n th: (props: any) => (\n <th\n className=\"border px-4 py-2 text-left font-bold [&[align=center]]:text-center [&[align=right]]:text-right\"\n {...props}\n />\n ),\n td: (props: any) => (\n <td\n className=\"border px-4 py-2 text-left [&[align=center]]:text-center [&[align=right]]:text-right\"\n {...props}\n />\n ),\n};\n\nexport function MDXRenderer({\n content,\n components: customComponents = {},\n scope = {},\n options = {},\n fallback,\n onError,\n}: MDXRendererProps) {\n const [MDXContent, setMDXContent] = React.useState<React.ComponentType | null>(\n null\n );\n const [error, setError] = React.useState<Error | null>(null);\n const [isLoading, setIsLoading] = React.useState(true);\n\n React.useEffect(() => {\n let isCancelled = false;\n\n async function compileMDX() {\n try {\n setIsLoading(true);\n setError(null);\n\n // Compile MDX content\n const compiled = await compile(content, {\n outputFormat: \"function-body\",\n remarkPlugins: [remarkGfm],\n ...options,\n });\n\n // Run the compiled code\n const { default: Content } = await run(String(compiled), {\n ...runtime,\n baseUrl: import.meta.url,\n });\n\n if (!isCancelled) {\n setMDXContent(() => Content);\n }\n } catch (err) {\n if (!isCancelled) {\n const error = err instanceof Error ? err : new Error(String(err));\n setError(error);\n onError?.(error);\n }\n } finally {\n if (!isCancelled) {\n setIsLoading(false);\n }\n }\n }\n\n if (content) {\n compileMDX();\n }\n\n return () => {\n isCancelled = true;\n };\n }, [content, options, onError]);\n\n const mergedComponents = React.useMemo(\n () => ({ ...defaultComponents, ...customComponents }),\n [customComponents]\n );\n\n // Loading state\n if (isLoading) {\n return (\n fallback ?? (\n <div className=\"animate-pulse space-y-4\">\n <div className=\"h-4 bg-muted rounded w-3/4\"></div>\n <div className=\"h-4 bg-muted rounded w-full\"></div>\n <div className=\"h-4 bg-muted rounded w-5/6\"></div>\n </div>\n )\n );\n }\n\n // Error state\n if (error) {\n return (\n <div className=\"bg-destructive/10 border border-destructive/20 rounded-lg p-6 my-8\">\n <h3 className=\"text-destructive font-semibold mb-2\">\n MDX Compilation Error\n </h3>\n <pre className=\"text-sm text-destructive/80 whitespace-pre-wrap overflow-x-auto\">\n {error.message}\n </pre>\n </div>\n );\n }\n\n // Empty state\n if (!MDXContent) {\n return null;\n }\n\n // Render compiled MDX\n const Content = MDXContent as React.ComponentType<any>;\n return <Content components={mergedComponents} {...scope} />;\n}\n"]}
package/package.json ADDED
@@ -0,0 +1,129 @@
1
+ {
2
+ "name": "@aumnidigital/bms",
3
+ "version": "0.1.0",
4
+ "description": "Runtime MDX renderer with shadcn/ui components for React applications",
5
+ "type": "module",
6
+ "sideEffects": false,
7
+ "license": "MIT",
8
+ "author": "aumnidigital",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/aumnidigital/blog-software-v2.git",
12
+ "directory": "packages/bms"
13
+ },
14
+ "keywords": [
15
+ "mdx",
16
+ "react",
17
+ "shadcn",
18
+ "renderer",
19
+ "blog",
20
+ "cms",
21
+ "tailwindcss"
22
+ ],
23
+ "main": "./dist/index.cjs",
24
+ "module": "./dist/index.js",
25
+ "types": "./dist/index.d.ts",
26
+ "exports": {
27
+ ".": {
28
+ "import": {
29
+ "types": "./dist/index.d.ts",
30
+ "default": "./dist/index.js"
31
+ },
32
+ "require": {
33
+ "types": "./dist/index.d.cts",
34
+ "default": "./dist/index.cjs"
35
+ }
36
+ },
37
+ "./components": {
38
+ "import": {
39
+ "types": "./dist/components/index.d.ts",
40
+ "default": "./dist/components/index.js"
41
+ },
42
+ "require": {
43
+ "types": "./dist/components/index.d.cts",
44
+ "default": "./dist/components/index.cjs"
45
+ }
46
+ }
47
+ },
48
+ "files": [
49
+ "dist",
50
+ "README.md"
51
+ ],
52
+ "scripts": {
53
+ "build": "tsup",
54
+ "dev": "tsup --watch",
55
+ "lint": "eslint . --max-warnings 0",
56
+ "typecheck": "tsc --noEmit",
57
+ "clean": "rm -rf dist"
58
+ },
59
+ "peerDependencies": {
60
+ "@mdx-js/mdx": "^3.0.0",
61
+ "react": "^18.0.0 || ^19.0.0",
62
+ "react-dom": "^18.0.0 || ^19.0.0"
63
+ },
64
+ "dependencies": {
65
+ "@hookform/resolvers": "^5.2.2",
66
+ "@radix-ui/react-accordion": "^1.2.12",
67
+ "@radix-ui/react-alert-dialog": "^1.1.15",
68
+ "@radix-ui/react-aspect-ratio": "^1.1.8",
69
+ "@radix-ui/react-avatar": "^1.1.11",
70
+ "@radix-ui/react-checkbox": "^1.3.3",
71
+ "@radix-ui/react-collapsible": "^1.1.12",
72
+ "@radix-ui/react-context-menu": "^2.2.16",
73
+ "@radix-ui/react-dialog": "^1.1.15",
74
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
75
+ "@radix-ui/react-hover-card": "^1.1.15",
76
+ "@radix-ui/react-label": "^2.1.8",
77
+ "@radix-ui/react-menubar": "^1.1.16",
78
+ "@radix-ui/react-navigation-menu": "^1.2.14",
79
+ "@radix-ui/react-popover": "^1.1.15",
80
+ "@radix-ui/react-progress": "^1.1.8",
81
+ "@radix-ui/react-radio-group": "^1.3.8",
82
+ "@radix-ui/react-scroll-area": "^1.2.10",
83
+ "@radix-ui/react-select": "^2.2.6",
84
+ "@radix-ui/react-separator": "^1.1.8",
85
+ "@radix-ui/react-slider": "^1.3.6",
86
+ "@radix-ui/react-slot": "^1.2.3",
87
+ "@radix-ui/react-switch": "^1.2.6",
88
+ "@radix-ui/react-tabs": "^1.1.13",
89
+ "@radix-ui/react-toggle": "^1.1.10",
90
+ "@radix-ui/react-toggle-group": "^1.1.11",
91
+ "@radix-ui/react-tooltip": "^1.2.8",
92
+ "class-variance-authority": "^0.7.1",
93
+ "clsx": "^2.1.1",
94
+ "cmdk": "^1.1.1",
95
+ "date-fns": "^4.1.0",
96
+ "embla-carousel-react": "^8.6.0",
97
+ "input-otp": "^1.4.2",
98
+ "lucide-react": "^0.475.0",
99
+ "next-themes": "^0.4.6",
100
+ "react-day-picker": "^9.13.0",
101
+ "react-hook-form": "^7.71.0",
102
+ "react-resizable-panels": "^4.4.1",
103
+ "recharts": "2.15.4",
104
+ "sonner": "^2.0.7",
105
+ "tailwind-merge": "^3.3.1",
106
+ "vaul": "^1.1.2",
107
+ "zod": "^3.25.76"
108
+ },
109
+ "devDependencies": {
110
+ "@mdx-js/mdx": "^3.1.0",
111
+ "@types/react": "^19.1.9",
112
+ "@types/react-dom": "^19.1.7",
113
+ "@workspace/eslint-config": "workspace:*",
114
+ "@workspace/typescript-config": "workspace:*",
115
+ "eslint": "^9.32.0",
116
+ "react": "^19.1.1",
117
+ "react-dom": "^19.1.1",
118
+ "remark-gfm": "^4.0.0",
119
+ "tsup": "^8.3.5",
120
+ "typescript": "^5.9.2"
121
+ },
122
+ "publishConfig": {
123
+ "access": "public",
124
+ "registry": "https://registry.npmjs.org/"
125
+ },
126
+ "engines": {
127
+ "node": ">=18.0.0"
128
+ }
129
+ }