- Add GraphQL dashboard operations, ApolloProvider, CardDescription, label/checkbox/alert - Fix case-sensitive UI imports, Crossplane VM metadata uid, VMList spec parsing - Extend next-auth session user (id, role); fairness filters as unknown; ESLint relax to warnings - Remove unused session destructure across pages; next.config without skip TS/ESLint api: GraphQL/WebSocket hardening, logger import in websocket service Made-with: Cursor
40 lines
1005 B
TypeScript
40 lines
1005 B
TypeScript
import * as React from 'react';
|
|
|
|
interface CardProps {
|
|
children: React.ReactNode;
|
|
className?: string;
|
|
}
|
|
|
|
export function Card({ children, className = '' }: CardProps) {
|
|
return (
|
|
<div className={`rounded-lg border bg-card text-card-foreground shadow-sm ${className}`}>
|
|
{children}
|
|
</div>
|
|
);
|
|
}
|
|
|
|
export function CardHeader({ children, className = '' }: CardProps) {
|
|
return (
|
|
<div className={`flex flex-col space-y-1.5 p-6 ${className}`}>
|
|
{children}
|
|
</div>
|
|
);
|
|
}
|
|
|
|
export function CardTitle({ children, className = '' }: CardProps) {
|
|
return (
|
|
<h3 className={`text-2xl font-semibold leading-none tracking-tight ${className}`}>
|
|
{children}
|
|
</h3>
|
|
);
|
|
}
|
|
|
|
export function CardContent({ children, className = '' }: CardProps) {
|
|
return <div className={`p-6 pt-0 ${className}`}>{children}</div>;
|
|
}
|
|
|
|
export function CardDescription({ children, className = '' }: CardProps) {
|
|
return <p className={`text-sm text-muted-foreground ${className}`}>{children}</p>;
|
|
}
|
|
|