Deploy
This commit is contained in:
@@ -0,0 +1,55 @@
|
|||||||
|
import * as React from 'react'
|
||||||
|
import { cn } from '@/lib/utils'
|
||||||
|
|
||||||
|
interface CardProps {
|
||||||
|
className?: string
|
||||||
|
children?: React.ReactNode
|
||||||
|
}
|
||||||
|
|
||||||
|
export function Card({ className, children }: CardProps) {
|
||||||
|
return (
|
||||||
|
<div className={cn('rounded-xl border border-border bg-card text-foreground shadow-sm', className)}>
|
||||||
|
{children}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function CardHeader({ className, children }: CardProps) {
|
||||||
|
return (
|
||||||
|
<div className={cn('flex flex-col space-y-1.5 p-6', className)}>
|
||||||
|
{children}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function CardTitle({ className, children }: CardProps) {
|
||||||
|
return (
|
||||||
|
<h3 className={cn('text-2xl font-semibold leading-none tracking-tight', className)}>
|
||||||
|
{children}
|
||||||
|
</h3>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function CardDescription({ className, children }: CardProps) {
|
||||||
|
return (
|
||||||
|
<p className={cn('text-sm text-muted-foreground', className)}>
|
||||||
|
{children}
|
||||||
|
</p>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function CardContent({ className, children }: CardProps) {
|
||||||
|
return (
|
||||||
|
<div className={cn('p-6 pt-0', className)}>
|
||||||
|
{children}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function CardFooter({ className, children }: CardProps) {
|
||||||
|
return (
|
||||||
|
<div className={cn('flex items-center p-6 pt-0', className)}>
|
||||||
|
{children}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user