68 lines
1.5 KiB
TypeScript
68 lines
1.5 KiB
TypeScript
import * as React from "react"
|
|
|
|
import { cn } from "@/lib/utils"
|
|
|
|
const BlogCard = React.forwardRef<
|
|
HTMLDivElement,
|
|
React.HTMLAttributes<HTMLDivElement>
|
|
>(({ className, ...props }, ref) => (
|
|
<div
|
|
ref={ref}
|
|
className={cn(
|
|
"rounded-lg border bg-card text-card-foreground shadow-sm",
|
|
className
|
|
)}
|
|
{...props}
|
|
/>
|
|
))
|
|
BlogCard.displayName = "Blog Card"
|
|
|
|
const BlogCardImage = React.forwardRef<
|
|
HTMLDivElement,
|
|
React.HTMLAttributes<HTMLDivElement>
|
|
>(({ className, ...props }, ref) => (
|
|
<div
|
|
ref={ref}
|
|
className={cn("float-left w-1/4", className)}
|
|
{...props}
|
|
/>
|
|
))
|
|
BlogCardImage.displayName = "Blog Card Image"
|
|
|
|
const BlogCardContent = React.forwardRef<
|
|
HTMLDivElement,
|
|
React.HTMLAttributes<HTMLDivElement>
|
|
>(({ className, ...props }, ref) => (
|
|
<div
|
|
ref={ref}
|
|
className={cn("float-right w-3/4 h-full", className)}
|
|
{...props}
|
|
/>
|
|
))
|
|
BlogCardContent.displayName = "Blog Card Content"
|
|
|
|
const BlogCardText = React.forwardRef<
|
|
HTMLDivElement,
|
|
React.HTMLAttributes<HTMLDivElement>
|
|
>(({ className, ...props }, ref) => (
|
|
<div
|
|
ref={ref}
|
|
className={cn("p-4 h-3/4", className)}
|
|
{...props}
|
|
/>
|
|
))
|
|
BlogCardText.displayName = "Blog Card Text"
|
|
|
|
const BlogCardMore = React.forwardRef<
|
|
HTMLDivElement,
|
|
React.HTMLAttributes<HTMLDivElement>
|
|
>(({ className, ...props }, ref) => (
|
|
<div
|
|
ref={ref}
|
|
className={cn("px-4 h-1/4", className)}
|
|
{...props}
|
|
/>
|
|
))
|
|
BlogCardMore.displayName = "Blog Card Read More"
|
|
|
|
export { BlogCard, BlogCardImage, BlogCardContent, BlogCardText, BlogCardMore } |