@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.
- package/README.md +359 -0
- package/dist/chunk-KRDZATRT.cjs +2234 -0
- package/dist/chunk-KRDZATRT.cjs.map +1 -0
- package/dist/chunk-NO6MNNEU.js +2068 -0
- package/dist/chunk-NO6MNNEU.js.map +1 -0
- package/dist/components/index.cjs +508 -0
- package/dist/components/index.cjs.map +1 -0
- package/dist/components/index.d.cts +240 -0
- package/dist/components/index.d.ts +240 -0
- package/dist/components/index.js +3 -0
- package/dist/components/index.js.map +1 -0
- package/dist/index.cjs +736 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +57 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.js +207 -0
- package/dist/index.js.map +1 -0
- package/package.json +129 -0
|
@@ -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"]}
|
package/dist/index.d.cts
ADDED
|
@@ -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 };
|
package/dist/index.d.ts
ADDED
|
@@ -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":"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","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
|
+
}
|