import { LucideIcon } from 'lucide-react';
import { Box } from './Box';
import { Icon } from './Icon';
import { Surface } from './Surface';
import { Text } from './Text';

export interface StatBoxProps {
  label: string;
  value: string | number;
  icon: LucideIcon;
  intent?: 'primary' | 'success' | 'warning' | 'critical' | 'telemetry' | 'low';
  color?: string;
}

export const StatBox = ({ 
  label, 
  value, 
  icon, 
  intent = 'primary',
  color
}: StatBoxProps) => {
  return (
    <Surface variant="muted" rounded="xl" padding={4} style={{ border: '1px solid var(--ui-color-border-default)' }}>
      <Box display="flex" alignItems="center" gap={4}>
        <Box padding={2} rounded="lg" bg="var(--ui-color-bg-surface-muted)" style={color ? { color } : undefined}>
          <Icon icon={icon} size={5} intent={color ? undefined : intent} />
        </Box>
        <Box>
          <Text size="xs" weight="bold" variant="low" uppercase>
            {label}
          </Text>
          <Text size="xl" weight="bold" variant="high" block marginTop={0.5}>
            {value}
          </Text>
        </Box>
      </Box>
    </Surface>
  );
};
