import { Box } from '@/ui/Box';
import { Button } from '@/ui/Button';
import { Heading } from '@/ui/Heading';
import { Link } from '@/ui/Link';
import { EmptyStateProps } from '@/ui/state-types';
import { Text } from '@/ui/Text';
import React from 'react';
// Illustration components (simple SVG representations)
const Illustrations = {
racing: () => (
),
league: () => (
),
team: () => (
),
sponsor: () => (
),
driver: () => (
),
} as const;
export function EmptyState({
icon: Icon,
title,
description,
action,
variant = 'default',
illustration,
ariaLabel = 'Empty state',
children,
}: EmptyStateProps & { children?: React.ReactNode }) {
const IllustrationComponent = illustration ? Illustrations[illustration] : null;
const content = (
{IllustrationComponent ? (
) : Icon ? (
) : null}
{title}
{description && (
{description}
)}
{action && (
)}
{children && (
{children}
)}
);
if (variant === 'full-page') {
return (
{content}
Need help? Contact us at{' '}
support@gridpilot.com
);
}
return (
{content}
);
}
export function MinimalEmptyState(props: Omit) {
return ;
}