mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-09-28 01:18:59 +03:00
@@ -0,0 +1,76 @@
|
||||
import { cn } from "@/lib/utils";
|
||||
|
||||
type TextElements =
|
||||
| "p"
|
||||
| "blockquote"
|
||||
| "code"
|
||||
| "lead"
|
||||
| "large"
|
||||
| "small"
|
||||
| "muted";
|
||||
|
||||
const Text = ({
|
||||
children,
|
||||
as,
|
||||
className,
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
as: TextElements;
|
||||
className?: string;
|
||||
}) => {
|
||||
switch (as) {
|
||||
case "p":
|
||||
return (
|
||||
<p className={cn("leading-7 [&:not(:first-child)]:mt-6", className)}>
|
||||
{children}
|
||||
</p>
|
||||
);
|
||||
case "blockquote":
|
||||
return (
|
||||
<blockquote className={cn("mt-6 border-l-2 pl-6 italic", className)}>
|
||||
{children}
|
||||
</blockquote>
|
||||
);
|
||||
case "code":
|
||||
return (
|
||||
<code
|
||||
className={cn(
|
||||
"relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold",
|
||||
className
|
||||
)}
|
||||
>
|
||||
{children}
|
||||
</code>
|
||||
);
|
||||
case "lead":
|
||||
return (
|
||||
<p className={cn("text-xl text-muted-foreground", className)}>
|
||||
{children}
|
||||
</p>
|
||||
);
|
||||
case "large":
|
||||
return (
|
||||
<div className={cn("text-lg font-semibold", className)}>{children}</div>
|
||||
);
|
||||
case "small":
|
||||
return (
|
||||
<small className={cn("text-sm font-medium leading-none", className)}>
|
||||
{children}
|
||||
</small>
|
||||
);
|
||||
case "muted":
|
||||
return (
|
||||
<p className={cn("text-sm text-muted-foreground", className)}>
|
||||
{children}.
|
||||
</p>
|
||||
);
|
||||
default:
|
||||
return (
|
||||
<p className={cn("leading-7 [&:not(:first-child)]:mt-6", className)}>
|
||||
{children}
|
||||
</p>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
export default Text;
|
||||
Reference in New Issue
Block a user