import { Color } from '@/types/theme'; import { Text, StyleSheet } from '@react-pdf/renderer'; import type { Style } from '@react-pdf/types'; type TypographySize = 'h1' | 'h2' | 'h3' | 'h4' | 'p' | 'small' | 'label'; type TypographyVariant = Color | 'default'; type PdfTypographyProps = { children: React.ReactNode; size?: TypographySize; variant?: TypographyVariant; color?: string; style?: Style; }; const styles = StyleSheet.create({ h1: { fontSize: 14, fontWeight: 'bold', marginBottom: 5, }, h2: { fontSize: 12, fontWeight: 'bold', marginBottom: 8, }, h3: { fontSize: 10, fontWeight: 'bold', marginBottom: 4, }, h4: { fontSize: 9, fontWeight: 'bold', marginBottom: 3, }, p: { fontSize: 10, marginBottom: 4, }, small: { fontSize: 8, marginBottom: 2, }, label: { fontSize: 9, marginBottom: 5, }, }); const variantColors: Record = { default: '#333333', primary: '#1f74bf', secondary: '#6B7280', accent: '#8B5CF6', neutral: '#6B7280', info: '#3B82F6', success: '#065F46', warning: '#92400E', error: '#DC2626', none: '#333333', }; export const PdfTypography = ({ children, size = 'p', variant = 'default', color, style, }: PdfTypographyProps) => { const sizeStyle = styles[size]; const textColor = color || variantColors[variant]; return ( {children} ); };