feat: add generic prose component

This commit is contained in:
Wlad Meixner 2025-07-31 11:44:14 +02:00
parent 9dcc6ea98d
commit 240b12bf0c
No known key found for this signature in database

View File

@ -1 +1,27 @@
export const Prose = (props: React.PropsWithChildren<{ className?: string }>) => <div className={`prose ${props.className}`}>{props.children}</div>;
import { Slot } from "@radix-ui/react-slot";
import * as React from "react";
interface ProseProps<T extends React.ElementType = "div"> {
asChild?: boolean;
as?: T;
className?: string;
}
const Prose = React.forwardRef<
HTMLDivElement,
ProseProps & React.ComponentPropsWithoutRef<"div">
>(({ asChild = false, as, className, ...props }, ref) => {
if (asChild) {
return <Slot ref={ref} className={`prose ${className || ""}`} {...props} />;
}
const Component = as || "div";
return (
<Component ref={ref} className={`prose ${className || ""}`} {...props} />
);
});
Prose.displayName = "Prose";
export { Prose, type ProseProps };