mirror of
https://github.com/versia-pub/docs.git
synced 2025-12-06 06:18:19 +01:00
26 lines
830 B
TypeScript
26 lines
830 B
TypeScript
|
|
import clsx from "clsx";
|
||
|
|
import type { ComponentPropsWithoutRef, ElementType } from "react";
|
||
|
|
|
||
|
|
export function Prose<T extends ElementType = "div">({
|
||
|
|
as,
|
||
|
|
className,
|
||
|
|
...props
|
||
|
|
}: Omit<ComponentPropsWithoutRef<T>, "as" | "className"> & {
|
||
|
|
as?: T;
|
||
|
|
className?: string;
|
||
|
|
}) {
|
||
|
|
const Component = as ?? "div";
|
||
|
|
|
||
|
|
return (
|
||
|
|
<Component
|
||
|
|
className={clsx(
|
||
|
|
className,
|
||
|
|
"prose dark:prose-invert",
|
||
|
|
// `html :where(& > *)` is used to select all direct children without an increase in specificity like you'd get from just `& > *`
|
||
|
|
"[html_:where(&>*)]:mx-auto [html_:where(&>*)]:max-w-2xl [html_:where(&>*)]:lg:mx-[calc(50%-min(50%,theme(maxWidth.lg)))] [html_:where(&>*)]:lg:max-w-3xl",
|
||
|
|
)}
|
||
|
|
{...props}
|
||
|
|
/>
|
||
|
|
);
|
||
|
|
}
|