feat: rewrite invoice template configs with design-doc IDs and colors

This commit is contained in:
Your Name
2026-02-18 14:39:01 +02:00
parent ed8b0c0776
commit 59e713f1ec

View File

@@ -12,515 +12,319 @@ export interface InvoiceTemplateColors {
totalHighlight: string totalHighlight: string
} }
export interface InvoiceTemplateLayout {
logoPosition: 'top-left' | 'top-center' | 'top-right'
headerStyle: 'full-width' | 'split' | 'minimal' | 'sidebar' | 'gradient' | 'geometric' | 'centered'
tableStyle: 'bordered' | 'striped' | 'borderless' | 'minimal-lines' | 'colored-sections'
totalsPosition: 'right' | 'center'
showDividers: boolean
dividerStyle: 'thin' | 'double' | 'thick' | 'none'
}
export interface InvoiceTemplateTypography {
titleSize: number
titleWeight: 'bold' | 'normal'
headerSize: number
bodySize: number
numberStyle: 'normal' | 'monospace-feel'
}
export interface InvoiceTemplateDecorative {
cornerShape: 'none' | 'colored-block' | 'triangle' | 'diagonal'
sidebarWidth: number
sidebarColor: string
useGradientHeader: boolean
gradientFrom?: string
gradientTo?: string
backgroundTint: boolean
backgroundTintColor?: string
}
export interface InvoiceTemplateConfig { export interface InvoiceTemplateConfig {
id: string id: string
name: string name: string
category: 'essential' | 'creative' | 'warm' | 'premium' category: 'essential' | 'creative' | 'warm' | 'premium'
description: string description: string
colors: InvoiceTemplateColors colors: InvoiceTemplateColors
layout: InvoiceTemplateLayout
typography: InvoiceTemplateTypography
decorative: InvoiceTemplateDecorative
} }
// --- Template definitions --- const clean: InvoiceTemplateConfig = {
// Define all 15 templates. Each has unique colors, layout, typography, decorative. id: 'clean',
name: 'Clean',
const cleanMinimal: InvoiceTemplateConfig = {
id: 'clean-minimal',
name: 'Clean Minimal',
category: 'essential', category: 'essential',
description: 'Swiss-inspired simplicity with a single accent line', description: 'Swiss minimalism with a single blue accent',
colors: { colors: {
primary: '#3B82F6', primary: '#1e293b',
secondary: '#93C5FD', secondary: '#3b82f6',
background: '#FFFFFF', background: '#ffffff',
headerBg: '#FFFFFF', headerBg: '#ffffff',
headerText: '#111827', headerText: '#1e293b',
bodyText: '#374151', bodyText: '#374151',
tableHeaderBg: '#F9FAFB', tableHeaderBg: '#f8fafc',
tableHeaderText: '#374151', tableHeaderText: '#374151',
tableRowAlt: '#F9FAFB', tableRowAlt: '#f8fafc',
tableBorder: '#E5E7EB', tableBorder: '#e5e7eb',
totalHighlight: '#3B82F6', totalHighlight: '#3b82f6',
}, },
layout: {
logoPosition: 'top-left',
headerStyle: 'minimal',
tableStyle: 'bordered',
totalsPosition: 'right',
showDividers: true,
dividerStyle: 'thin',
},
typography: { titleSize: 24, titleWeight: 'bold', headerSize: 11, bodySize: 9, numberStyle: 'normal' },
decorative: { cornerShape: 'none', sidebarWidth: 0, sidebarColor: '', useGradientHeader: false, backgroundTint: false },
} }
const corporateClassic: InvoiceTemplateConfig = { const professional: InvoiceTemplateConfig = {
id: 'corporate-classic', id: 'professional',
name: 'Corporate Classic', name: 'Professional',
category: 'essential', category: 'essential',
description: 'Navy header band with professional table layout', description: 'Navy header band with corporate polish',
colors: { colors: {
primary: '#1E3A5F', primary: '#1e3a5f',
secondary: '#2563EB', secondary: '#2563eb',
background: '#FFFFFF', background: '#ffffff',
headerBg: '#1E3A5F', headerBg: '#1e3a5f',
headerText: '#FFFFFF', headerText: '#ffffff',
bodyText: '#374151', bodyText: '#374151',
tableHeaderBg: '#1E3A5F', tableHeaderBg: '#1e3a5f',
tableHeaderText: '#FFFFFF', tableHeaderText: '#ffffff',
tableRowAlt: '#F3F4F6', tableRowAlt: '#f3f4f6',
tableBorder: '#D1D5DB', tableBorder: '#d1d5db',
totalHighlight: '#1E3A5F', totalHighlight: '#1e3a5f',
}, },
layout: {
logoPosition: 'top-left',
headerStyle: 'full-width',
tableStyle: 'striped',
totalsPosition: 'right',
showDividers: false,
dividerStyle: 'none',
},
typography: { titleSize: 28, titleWeight: 'bold', headerSize: 11, bodySize: 9, numberStyle: 'normal' },
decorative: { cornerShape: 'none', sidebarWidth: 0, sidebarColor: '', useGradientHeader: false, backgroundTint: false },
} }
const modernBold: InvoiceTemplateConfig = { const bold: InvoiceTemplateConfig = {
id: 'modern-bold', id: 'bold',
name: 'Modern Bold', name: 'Bold',
category: 'essential', category: 'essential',
description: 'Large accent block with oversized typography', description: 'Large indigo block with oversized typography',
colors: { colors: {
primary: '#6366F1', primary: '#4f46e5',
secondary: '#A5B4FC', secondary: '#a5b4fc',
background: '#FFFFFF', background: '#ffffff',
headerBg: '#6366F1', headerBg: '#4f46e5',
headerText: '#FFFFFF', headerText: '#ffffff',
bodyText: '#1F2937', bodyText: '#1f2937',
tableHeaderBg: '#6366F1', tableHeaderBg: '#4f46e5',
tableHeaderText: '#FFFFFF', tableHeaderText: '#ffffff',
tableRowAlt: '#F5F3FF', tableRowAlt: '#f5f3ff',
tableBorder: '#E0E7FF', tableBorder: '#e0e7ff',
totalHighlight: '#6366F1', totalHighlight: '#4f46e5',
}, },
layout: {
logoPosition: 'top-left',
headerStyle: 'full-width',
tableStyle: 'borderless',
totalsPosition: 'right',
showDividers: false,
dividerStyle: 'none',
},
typography: { titleSize: 32, titleWeight: 'bold', headerSize: 12, bodySize: 10, numberStyle: 'normal' },
decorative: { cornerShape: 'colored-block', sidebarWidth: 0, sidebarColor: '', useGradientHeader: false, backgroundTint: false },
} }
const elegantSerif: InvoiceTemplateConfig = { const minimal: InvoiceTemplateConfig = {
id: 'elegant-serif', id: 'minimal',
name: 'Elegant Serif', name: 'Minimal',
category: 'essential', category: 'essential',
description: 'Refined charcoal and gold with centered layout', description: 'Pure monochrome centered layout',
colors: { colors: {
primary: '#374151', primary: '#18181b',
secondary: '#B8860B', secondary: '#18181b',
background: '#FFFFFF', background: '#ffffff',
headerBg: '#FFFFFF', headerBg: '#ffffff',
headerText: '#374151', headerText: '#18181b',
bodyText: '#4B5563', bodyText: '#3f3f46',
tableHeaderBg: '#374151', tableHeaderBg: '#ffffff',
tableHeaderText: '#FFFFFF', tableHeaderText: '#18181b',
tableRowAlt: '#FAFAFA', tableRowAlt: '#ffffff',
tableBorder: '#D1D5DB', tableBorder: '#e4e4e7',
totalHighlight: '#B8860B', totalHighlight: '#18181b',
}, },
layout: {
logoPosition: 'top-center',
headerStyle: 'centered',
tableStyle: 'minimal-lines',
totalsPosition: 'right',
showDividers: true,
dividerStyle: 'double',
},
typography: { titleSize: 26, titleWeight: 'normal', headerSize: 11, bodySize: 9, numberStyle: 'normal' },
decorative: { cornerShape: 'none', sidebarWidth: 0, sidebarColor: '', useGradientHeader: false, backgroundTint: false },
} }
const simpleTwoTone: InvoiceTemplateConfig = { const classic: InvoiceTemplateConfig = {
id: 'simple-two-tone', id: 'classic',
name: 'Simple Two-Tone', name: 'Classic',
category: 'essential', category: 'essential',
description: 'Dark/light split header with emerald accents', description: 'Traditional layout with burgundy accents',
colors: { colors: {
primary: '#1F2937', primary: '#7f1d1d',
secondary: '#10B981', secondary: '#991b1b',
background: '#FFFFFF', background: '#ffffff',
headerBg: '#1F2937', headerBg: '#7f1d1d',
headerText: '#FFFFFF', headerText: '#ffffff',
bodyText: '#374151', bodyText: '#374151',
tableHeaderBg: '#F3F4F6', tableHeaderBg: '#7f1d1d',
tableHeaderText: '#1F2937', tableHeaderText: '#ffffff',
tableRowAlt: '#FFFFFF', tableRowAlt: '#f5f5f4',
tableBorder: '#E5E7EB', tableBorder: '#d6d3d1',
totalHighlight: '#10B981', totalHighlight: '#7f1d1d',
}, },
layout: {
logoPosition: 'top-left',
headerStyle: 'split',
tableStyle: 'minimal-lines',
totalsPosition: 'right',
showDividers: true,
dividerStyle: 'thin',
},
typography: { titleSize: 24, titleWeight: 'bold', headerSize: 11, bodySize: 9, numberStyle: 'normal' },
decorative: { cornerShape: 'none', sidebarWidth: 0, sidebarColor: '', useGradientHeader: false, backgroundTint: false },
} }
const gradientHeader: InvoiceTemplateConfig = { const modern: InvoiceTemplateConfig = {
id: 'gradient-header', id: 'modern',
name: 'Gradient Header', name: 'Modern',
category: 'creative', category: 'creative',
description: 'Full-width gradient header with modern feel', description: 'Asymmetric header with teal accents',
colors: { colors: {
primary: '#667EEA', primary: '#0d9488',
secondary: '#764BA2', secondary: '#14b8a6',
background: '#FFFFFF', background: '#ffffff',
headerBg: '#667EEA', headerBg: '#ffffff',
headerText: '#FFFFFF', headerText: '#0f172a',
bodyText: '#334155',
tableHeaderBg: '#ffffff',
tableHeaderText: '#0d9488',
tableRowAlt: '#f0fdfa',
tableBorder: '#99f6e4',
totalHighlight: '#0d9488',
},
}
const elegant: InvoiceTemplateConfig = {
id: 'elegant',
name: 'Elegant',
category: 'creative',
description: 'Gold double-rule accents on centered layout',
colors: {
primary: '#a16207',
secondary: '#ca8a04',
background: '#ffffff',
headerBg: '#ffffff',
headerText: '#422006',
bodyText: '#57534e',
tableHeaderBg: '#ffffff',
tableHeaderText: '#422006',
tableRowAlt: '#fefce8',
tableBorder: '#a16207',
totalHighlight: '#a16207',
},
}
const creative: InvoiceTemplateConfig = {
id: 'creative',
name: 'Creative',
category: 'creative',
description: 'Purple sidebar with card-style rows',
colors: {
primary: '#7c3aed',
secondary: '#a78bfa',
background: '#ffffff',
headerBg: '#ffffff',
headerText: '#1f2937',
bodyText: '#374151', bodyText: '#374151',
tableHeaderBg: '#667EEA', tableHeaderBg: '#faf5ff',
tableHeaderText: '#FFFFFF', tableHeaderText: '#7c3aed',
tableRowAlt: '#F5F3FF', tableRowAlt: '#faf5ff',
tableBorder: '#E0E7FF', tableBorder: '#e9d5ff',
totalHighlight: '#667EEA', totalHighlight: '#7c3aed',
}, },
layout: {
logoPosition: 'top-left',
headerStyle: 'gradient',
tableStyle: 'striped',
totalsPosition: 'right',
showDividers: false,
dividerStyle: 'none',
},
typography: { titleSize: 28, titleWeight: 'bold', headerSize: 11, bodySize: 9, numberStyle: 'normal' },
decorative: { cornerShape: 'none', sidebarWidth: 0, sidebarColor: '', useGradientHeader: true, gradientFrom: '#667EEA', gradientTo: '#764BA2', backgroundTint: false },
} }
const sidebarAccent: InvoiceTemplateConfig = { const compact: InvoiceTemplateConfig = {
id: 'sidebar-accent', id: 'compact',
name: 'Sidebar Accent', name: 'Compact',
category: 'creative', category: 'creative',
description: 'Rose vertical bar with asymmetric layout', description: 'Data-dense layout with tight spacing',
colors: {
primary: '#E11D48',
secondary: '#FB7185',
background: '#FFFFFF',
headerBg: '#FFFFFF',
headerText: '#111827',
bodyText: '#374151',
tableHeaderBg: '#FFF1F2',
tableHeaderText: '#E11D48',
tableRowAlt: '#FFF1F2',
tableBorder: '#FECDD3',
totalHighlight: '#E11D48',
},
layout: {
logoPosition: 'top-left',
headerStyle: 'sidebar',
tableStyle: 'borderless',
totalsPosition: 'right',
showDividers: true,
dividerStyle: 'thin',
},
typography: { titleSize: 24, titleWeight: 'bold', headerSize: 11, bodySize: 9, numberStyle: 'normal' },
decorative: { cornerShape: 'none', sidebarWidth: 4, sidebarColor: '#E11D48', useGradientHeader: false, backgroundTint: false },
}
const geometricModern: InvoiceTemplateConfig = {
id: 'geometric-modern',
name: 'Geometric Modern',
category: 'creative',
description: 'Violet triangle accent with diagonal elements',
colors: {
primary: '#8B5CF6',
secondary: '#C4B5FD',
background: '#FFFFFF',
headerBg: '#FFFFFF',
headerText: '#1F2937',
bodyText: '#374151',
tableHeaderBg: '#8B5CF6',
tableHeaderText: '#FFFFFF',
tableRowAlt: '#F5F3FF',
tableBorder: '#DDD6FE',
totalHighlight: '#8B5CF6',
},
layout: {
logoPosition: 'top-left',
headerStyle: 'geometric',
tableStyle: 'striped',
totalsPosition: 'right',
showDividers: false,
dividerStyle: 'none',
},
typography: { titleSize: 26, titleWeight: 'bold', headerSize: 11, bodySize: 9, numberStyle: 'normal' },
decorative: { cornerShape: 'triangle', sidebarWidth: 0, sidebarColor: '', useGradientHeader: false, backgroundTint: false },
}
const darkMode: InvoiceTemplateConfig = {
id: 'dark-mode',
name: 'Dark Mode',
category: 'creative',
description: 'Near-black background with cyan highlights',
colors: {
primary: '#06B6D4',
secondary: '#22D3EE',
background: '#1A1A2E',
headerBg: '#1A1A2E',
headerText: '#E2E8F0',
bodyText: '#CBD5E1',
tableHeaderBg: '#0F172A',
tableHeaderText: '#06B6D4',
tableRowAlt: '#16213E',
tableBorder: '#334155',
totalHighlight: '#06B6D4',
},
layout: {
logoPosition: 'top-left',
headerStyle: 'minimal',
tableStyle: 'striped',
totalsPosition: 'right',
showDividers: true,
dividerStyle: 'thin',
},
typography: { titleSize: 26, titleWeight: 'bold', headerSize: 11, bodySize: 9, numberStyle: 'monospace-feel' },
decorative: { cornerShape: 'none', sidebarWidth: 0, sidebarColor: '', useGradientHeader: false, backgroundTint: false },
}
const warmNatural: InvoiceTemplateConfig = {
id: 'warm-natural',
name: 'Warm Natural',
category: 'warm',
description: 'Earth tones on warm beige background',
colors: {
primary: '#C2703E',
secondary: '#6B7A3D',
background: '#FDF6EC',
headerBg: '#FDF6EC',
headerText: '#78350F',
bodyText: '#57534E',
tableHeaderBg: '#C2703E',
tableHeaderText: '#FFFFFF',
tableRowAlt: '#FEF3C7',
tableBorder: '#D6D3D1',
totalHighlight: '#C2703E',
},
layout: {
logoPosition: 'top-left',
headerStyle: 'minimal',
tableStyle: 'striped',
totalsPosition: 'right',
showDividers: true,
dividerStyle: 'thin',
},
typography: { titleSize: 26, titleWeight: 'bold', headerSize: 11, bodySize: 9, numberStyle: 'normal' },
decorative: { cornerShape: 'none', sidebarWidth: 0, sidebarColor: '', useGradientHeader: false, backgroundTint: true, backgroundTintColor: '#FDF6EC' },
}
const playfulColorBlock: InvoiceTemplateConfig = {
id: 'playful-color-block',
name: 'Playful Color Block',
category: 'warm',
description: 'Teal and coral blocks for a fun professional feel',
colors: {
primary: '#0D9488',
secondary: '#F97316',
background: '#FFFFFF',
headerBg: '#0D9488',
headerText: '#FFFFFF',
bodyText: '#1F2937',
tableHeaderBg: '#F97316',
tableHeaderText: '#FFFFFF',
tableRowAlt: '#FFF7ED',
tableBorder: '#FDBA74',
totalHighlight: '#0D9488',
},
layout: {
logoPosition: 'top-left',
headerStyle: 'full-width',
tableStyle: 'colored-sections',
totalsPosition: 'right',
showDividers: false,
dividerStyle: 'none',
},
typography: { titleSize: 28, titleWeight: 'bold', headerSize: 11, bodySize: 9, numberStyle: 'normal' },
decorative: { cornerShape: 'colored-block', sidebarWidth: 0, sidebarColor: '', useGradientHeader: false, backgroundTint: false },
}
const retroProfessional: InvoiceTemplateConfig = {
id: 'retro-professional',
name: 'Retro Professional',
category: 'warm',
description: 'Vintage double-rule lines with warm brown palette',
colors: {
primary: '#78350F',
secondary: '#92400E',
background: '#FFFBEB',
headerBg: '#FFFBEB',
headerText: '#78350F',
bodyText: '#57534E',
tableHeaderBg: '#78350F',
tableHeaderText: '#FFFFFF',
tableRowAlt: '#FEF3C7',
tableBorder: '#92400E',
totalHighlight: '#78350F',
},
layout: {
logoPosition: 'top-left',
headerStyle: 'minimal',
tableStyle: 'bordered',
totalsPosition: 'right',
showDividers: true,
dividerStyle: 'double',
},
typography: { titleSize: 24, titleWeight: 'bold', headerSize: 11, bodySize: 9, numberStyle: 'normal' },
decorative: { cornerShape: 'none', sidebarWidth: 0, sidebarColor: '', useGradientHeader: false, backgroundTint: true, backgroundTintColor: '#FFFBEB' },
}
const techMinimal: InvoiceTemplateConfig = {
id: 'tech-minimal',
name: 'Tech Minimal',
category: 'premium',
description: 'Slate and electric green with code-editor aesthetic',
colors: { colors: {
primary: '#475569', primary: '#475569',
secondary: '#22C55E', secondary: '#64748b',
background: '#FFFFFF', background: '#ffffff',
headerBg: '#FFFFFF', headerBg: '#ffffff',
headerText: '#0F172A', headerText: '#0f172a',
bodyText: '#475569', bodyText: '#334155',
tableHeaderBg: '#0F172A', tableHeaderBg: '#f1f5f9',
tableHeaderText: '#22C55E', tableHeaderText: '#334155',
tableRowAlt: '#F8FAFC', tableRowAlt: '#f8fafc',
tableBorder: '#E2E8F0', tableBorder: '#e2e8f0',
totalHighlight: '#22C55E', totalHighlight: '#475569',
}, },
layout: {
logoPosition: 'top-left',
headerStyle: 'minimal',
tableStyle: 'minimal-lines',
totalsPosition: 'right',
showDividers: true,
dividerStyle: 'thin',
},
typography: { titleSize: 22, titleWeight: 'bold', headerSize: 10, bodySize: 9, numberStyle: 'monospace-feel' },
decorative: { cornerShape: 'none', sidebarWidth: 0, sidebarColor: '', useGradientHeader: false, backgroundTint: false },
} }
const executivePremium: InvoiceTemplateConfig = { const dark: InvoiceTemplateConfig = {
id: 'executive-premium', id: 'dark',
name: 'Executive Premium', name: 'Dark',
category: 'premium', category: 'warm',
description: 'Black and gold luxury with generous spacing', description: 'Near-black background with cyan highlights',
colors: { colors: {
primary: '#111827', primary: '#06b6d4',
secondary: '#D4AF37', secondary: '#22d3ee',
background: '#FFFFFF', background: '#0f172a',
headerBg: '#111827', headerBg: '#020617',
headerText: '#D4AF37', headerText: '#e2e8f0',
bodyText: '#374151', bodyText: '#cbd5e1',
tableHeaderBg: '#111827', tableHeaderBg: '#020617',
tableHeaderText: '#D4AF37', tableHeaderText: '#06b6d4',
tableRowAlt: '#F9FAFB', tableRowAlt: '#1e293b',
tableBorder: '#D1D5DB', tableBorder: '#334155',
totalHighlight: '#D4AF37', totalHighlight: '#06b6d4',
}, },
layout: {
logoPosition: 'top-left',
headerStyle: 'full-width',
tableStyle: 'minimal-lines',
totalsPosition: 'right',
showDividers: true,
dividerStyle: 'thin',
},
typography: { titleSize: 28, titleWeight: 'normal', headerSize: 11, bodySize: 10, numberStyle: 'normal' },
decorative: { cornerShape: 'none', sidebarWidth: 0, sidebarColor: '', useGradientHeader: false, backgroundTint: false },
} }
const dataDrivenClean: InvoiceTemplateConfig = { const vibrant: InvoiceTemplateConfig = {
id: 'data-driven-clean', id: 'vibrant',
name: 'Data-Driven Clean', name: 'Vibrant',
category: 'premium', category: 'warm',
description: 'Deep blue with emphasis on data hierarchy', description: 'Coral-to-orange gradient header band',
colors: { colors: {
primary: '#1E40AF', primary: '#ea580c',
secondary: '#3B82F6', secondary: '#f97316',
background: '#FFFFFF', background: '#ffffff',
headerBg: '#1E40AF', headerBg: '#ea580c',
headerText: '#FFFFFF', headerText: '#ffffff',
bodyText: '#1F2937', bodyText: '#1f2937',
tableHeaderBg: '#1E40AF', tableHeaderBg: '#fff7ed',
tableHeaderText: '#FFFFFF', tableHeaderText: '#9a3412',
tableRowAlt: '#EFF6FF', tableRowAlt: '#fff7ed',
tableBorder: '#BFDBFE', tableBorder: '#fed7aa',
totalHighlight: '#1E40AF', totalHighlight: '#ea580c',
},
}
const corporate: InvoiceTemplateConfig = {
id: 'corporate',
name: 'Corporate',
category: 'warm',
description: 'Deep blue header with info bar below',
colors: {
primary: '#1e40af',
secondary: '#3b82f6',
background: '#ffffff',
headerBg: '#1e40af',
headerText: '#ffffff',
bodyText: '#1f2937',
tableHeaderBg: '#1e40af',
tableHeaderText: '#ffffff',
tableRowAlt: '#eff6ff',
tableBorder: '#bfdbfe',
totalHighlight: '#1e40af',
},
}
const fresh: InvoiceTemplateConfig = {
id: 'fresh',
name: 'Fresh',
category: 'premium',
description: 'Oversized watermark invoice number',
colors: {
primary: '#0284c7',
secondary: '#38bdf8',
background: '#ffffff',
headerBg: '#ffffff',
headerText: '#0c4a6e',
bodyText: '#334155',
tableHeaderBg: '#0284c7',
tableHeaderText: '#ffffff',
tableRowAlt: '#f0f9ff',
tableBorder: '#bae6fd',
totalHighlight: '#0284c7',
},
}
const natural: InvoiceTemplateConfig = {
id: 'natural',
name: 'Natural',
category: 'premium',
description: 'Warm beige background with terracotta accents',
colors: {
primary: '#c2703e',
secondary: '#d97706',
background: '#fdf6ec',
headerBg: '#fdf6ec',
headerText: '#78350f',
bodyText: '#57534e',
tableHeaderBg: '#c2703e',
tableHeaderText: '#ffffff',
tableRowAlt: '#fef3c7',
tableBorder: '#d6d3d1',
totalHighlight: '#c2703e',
},
}
const statement: InvoiceTemplateConfig = {
id: 'statement',
name: 'Statement',
category: 'premium',
description: 'Total-forward design with hero amount',
colors: {
primary: '#18181b',
secondary: '#be123c',
background: '#ffffff',
headerBg: '#ffffff',
headerText: '#18181b',
bodyText: '#3f3f46',
tableHeaderBg: '#ffffff',
tableHeaderText: '#18181b',
tableRowAlt: '#ffffff',
tableBorder: '#e4e4e7',
totalHighlight: '#be123c',
}, },
layout: {
logoPosition: 'top-right',
headerStyle: 'full-width',
tableStyle: 'striped',
totalsPosition: 'center',
showDividers: false,
dividerStyle: 'none',
},
typography: { titleSize: 24, titleWeight: 'bold', headerSize: 12, bodySize: 10, numberStyle: 'monospace-feel' },
decorative: { cornerShape: 'none', sidebarWidth: 0, sidebarColor: '', useGradientHeader: false, backgroundTint: false },
} }
// --- Registry ---
export const INVOICE_TEMPLATES: InvoiceTemplateConfig[] = [ export const INVOICE_TEMPLATES: InvoiceTemplateConfig[] = [
cleanMinimal, clean, professional, bold, minimal, classic,
corporateClassic, modern, elegant, creative, compact,
modernBold, dark, vibrant, corporate,
elegantSerif, fresh, natural, statement,
simpleTwoTone,
gradientHeader,
sidebarAccent,
geometricModern,
darkMode,
warmNatural,
playfulColorBlock,
retroProfessional,
techMinimal,
executivePremium,
dataDrivenClean,
] ]
export const TEMPLATE_CATEGORIES = [ export const TEMPLATE_CATEGORIES = [