53 lines
1.1 KiB
TypeScript
53 lines
1.1 KiB
TypeScript
import React from 'react';
|
|
|
|
interface CardProps {
|
|
children: React.ReactNode;
|
|
className?: string;
|
|
}
|
|
|
|
export function Card({ children, className = '' }: CardProps) {
|
|
return (
|
|
<div className={`bg-white rounded-lg border border-gray-200 shadow-sm ${className}`}>
|
|
{children}
|
|
</div>
|
|
);
|
|
}
|
|
|
|
interface CardHeaderProps {
|
|
children: React.ReactNode;
|
|
className?: string;
|
|
}
|
|
|
|
export function CardHeader({ children, className = '' }: CardHeaderProps) {
|
|
return (
|
|
<div className={`px-6 py-4 border-b border-gray-200 ${className}`}>
|
|
{children}
|
|
</div>
|
|
);
|
|
}
|
|
|
|
interface CardContentProps {
|
|
children: React.ReactNode;
|
|
className?: string;
|
|
}
|
|
|
|
export function CardContent({ children, className = '' }: CardContentProps) {
|
|
return (
|
|
<div className={`px-6 py-4 ${className}`}>
|
|
{children}
|
|
</div>
|
|
);
|
|
}
|
|
|
|
interface CardFooterProps {
|
|
children: React.ReactNode;
|
|
className?: string;
|
|
}
|
|
|
|
export function CardFooter({ children, className = '' }: CardFooterProps) {
|
|
return (
|
|
<div className={`px-6 py-4 border-t border-gray-200 ${className}`}>
|
|
{children}
|
|
</div>
|
|
);
|
|
}
|