From 59e713f1ec64c461ea1c3b7ea715b3ca8150c9f1 Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 18 Feb 2026 14:39:01 +0200 Subject: [PATCH] feat: rewrite invoice template configs with design-doc IDs and colors --- src/utils/invoiceTemplates.ts | 706 ++++++++++++---------------------- 1 file changed, 255 insertions(+), 451 deletions(-) diff --git a/src/utils/invoiceTemplates.ts b/src/utils/invoiceTemplates.ts index c1e8a75..eee84eb 100644 --- a/src/utils/invoiceTemplates.ts +++ b/src/utils/invoiceTemplates.ts @@ -12,515 +12,319 @@ export interface InvoiceTemplateColors { 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 { id: string name: string category: 'essential' | 'creative' | 'warm' | 'premium' description: string colors: InvoiceTemplateColors - layout: InvoiceTemplateLayout - typography: InvoiceTemplateTypography - decorative: InvoiceTemplateDecorative } -// --- Template definitions --- -// Define all 15 templates. Each has unique colors, layout, typography, decorative. - -const cleanMinimal: InvoiceTemplateConfig = { - id: 'clean-minimal', - name: 'Clean Minimal', +const clean: InvoiceTemplateConfig = { + id: 'clean', + name: 'Clean', category: 'essential', - description: 'Swiss-inspired simplicity with a single accent line', + description: 'Swiss minimalism with a single blue accent', colors: { - primary: '#3B82F6', - secondary: '#93C5FD', - background: '#FFFFFF', - headerBg: '#FFFFFF', - headerText: '#111827', + primary: '#1e293b', + secondary: '#3b82f6', + background: '#ffffff', + headerBg: '#ffffff', + headerText: '#1e293b', bodyText: '#374151', - tableHeaderBg: '#F9FAFB', + tableHeaderBg: '#f8fafc', tableHeaderText: '#374151', - tableRowAlt: '#F9FAFB', - tableBorder: '#E5E7EB', - totalHighlight: '#3B82F6', + tableRowAlt: '#f8fafc', + tableBorder: '#e5e7eb', + 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 = { - id: 'corporate-classic', - name: 'Corporate Classic', +const professional: InvoiceTemplateConfig = { + id: 'professional', + name: 'Professional', category: 'essential', - description: 'Navy header band with professional table layout', + description: 'Navy header band with corporate polish', colors: { - primary: '#1E3A5F', - secondary: '#2563EB', - background: '#FFFFFF', - headerBg: '#1E3A5F', - headerText: '#FFFFFF', + primary: '#1e3a5f', + secondary: '#2563eb', + background: '#ffffff', + headerBg: '#1e3a5f', + headerText: '#ffffff', bodyText: '#374151', - tableHeaderBg: '#1E3A5F', - tableHeaderText: '#FFFFFF', - tableRowAlt: '#F3F4F6', - tableBorder: '#D1D5DB', - totalHighlight: '#1E3A5F', + tableHeaderBg: '#1e3a5f', + tableHeaderText: '#ffffff', + tableRowAlt: '#f3f4f6', + tableBorder: '#d1d5db', + 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 = { - id: 'modern-bold', - name: 'Modern Bold', +const bold: InvoiceTemplateConfig = { + id: 'bold', + name: 'Bold', category: 'essential', - description: 'Large accent block with oversized typography', + description: 'Large indigo block with oversized typography', colors: { - primary: '#6366F1', - secondary: '#A5B4FC', - background: '#FFFFFF', - headerBg: '#6366F1', - headerText: '#FFFFFF', - bodyText: '#1F2937', - tableHeaderBg: '#6366F1', - tableHeaderText: '#FFFFFF', - tableRowAlt: '#F5F3FF', - tableBorder: '#E0E7FF', - totalHighlight: '#6366F1', + primary: '#4f46e5', + secondary: '#a5b4fc', + background: '#ffffff', + headerBg: '#4f46e5', + headerText: '#ffffff', + bodyText: '#1f2937', + tableHeaderBg: '#4f46e5', + tableHeaderText: '#ffffff', + tableRowAlt: '#f5f3ff', + tableBorder: '#e0e7ff', + 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 = { - id: 'elegant-serif', - name: 'Elegant Serif', +const minimal: InvoiceTemplateConfig = { + id: 'minimal', + name: 'Minimal', category: 'essential', - description: 'Refined charcoal and gold with centered layout', + description: 'Pure monochrome centered layout', colors: { - primary: '#374151', - secondary: '#B8860B', - background: '#FFFFFF', - headerBg: '#FFFFFF', - headerText: '#374151', - bodyText: '#4B5563', - tableHeaderBg: '#374151', - tableHeaderText: '#FFFFFF', - tableRowAlt: '#FAFAFA', - tableBorder: '#D1D5DB', - totalHighlight: '#B8860B', + primary: '#18181b', + secondary: '#18181b', + background: '#ffffff', + headerBg: '#ffffff', + headerText: '#18181b', + bodyText: '#3f3f46', + tableHeaderBg: '#ffffff', + tableHeaderText: '#18181b', + tableRowAlt: '#ffffff', + tableBorder: '#e4e4e7', + 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 = { - id: 'simple-two-tone', - name: 'Simple Two-Tone', +const classic: InvoiceTemplateConfig = { + id: 'classic', + name: 'Classic', category: 'essential', - description: 'Dark/light split header with emerald accents', + description: 'Traditional layout with burgundy accents', colors: { - primary: '#1F2937', - secondary: '#10B981', - background: '#FFFFFF', - headerBg: '#1F2937', - headerText: '#FFFFFF', + primary: '#7f1d1d', + secondary: '#991b1b', + background: '#ffffff', + headerBg: '#7f1d1d', + headerText: '#ffffff', bodyText: '#374151', - tableHeaderBg: '#F3F4F6', - tableHeaderText: '#1F2937', - tableRowAlt: '#FFFFFF', - tableBorder: '#E5E7EB', - totalHighlight: '#10B981', + tableHeaderBg: '#7f1d1d', + tableHeaderText: '#ffffff', + tableRowAlt: '#f5f5f4', + tableBorder: '#d6d3d1', + 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 = { - id: 'gradient-header', - name: 'Gradient Header', +const modern: InvoiceTemplateConfig = { + id: 'modern', + name: 'Modern', category: 'creative', - description: 'Full-width gradient header with modern feel', + description: 'Asymmetric header with teal accents', colors: { - primary: '#667EEA', - secondary: '#764BA2', - background: '#FFFFFF', - headerBg: '#667EEA', - headerText: '#FFFFFF', + primary: '#0d9488', + secondary: '#14b8a6', + background: '#ffffff', + headerBg: '#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', - tableHeaderBg: '#667EEA', - tableHeaderText: '#FFFFFF', - tableRowAlt: '#F5F3FF', - tableBorder: '#E0E7FF', - totalHighlight: '#667EEA', + tableHeaderBg: '#faf5ff', + tableHeaderText: '#7c3aed', + tableRowAlt: '#faf5ff', + tableBorder: '#e9d5ff', + 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 = { - id: 'sidebar-accent', - name: 'Sidebar Accent', +const compact: InvoiceTemplateConfig = { + id: 'compact', + name: 'Compact', category: 'creative', - description: 'Rose vertical bar with asymmetric layout', - 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', + description: 'Data-dense layout with tight spacing', colors: { primary: '#475569', - secondary: '#22C55E', - background: '#FFFFFF', - headerBg: '#FFFFFF', - headerText: '#0F172A', - bodyText: '#475569', - tableHeaderBg: '#0F172A', - tableHeaderText: '#22C55E', - tableRowAlt: '#F8FAFC', - tableBorder: '#E2E8F0', - totalHighlight: '#22C55E', + secondary: '#64748b', + background: '#ffffff', + headerBg: '#ffffff', + headerText: '#0f172a', + bodyText: '#334155', + tableHeaderBg: '#f1f5f9', + tableHeaderText: '#334155', + tableRowAlt: '#f8fafc', + tableBorder: '#e2e8f0', + 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 = { - id: 'executive-premium', - name: 'Executive Premium', - category: 'premium', - description: 'Black and gold luxury with generous spacing', +const dark: InvoiceTemplateConfig = { + id: 'dark', + name: 'Dark', + category: 'warm', + description: 'Near-black background with cyan highlights', colors: { - primary: '#111827', - secondary: '#D4AF37', - background: '#FFFFFF', - headerBg: '#111827', - headerText: '#D4AF37', - bodyText: '#374151', - tableHeaderBg: '#111827', - tableHeaderText: '#D4AF37', - tableRowAlt: '#F9FAFB', - tableBorder: '#D1D5DB', - totalHighlight: '#D4AF37', + primary: '#06b6d4', + secondary: '#22d3ee', + background: '#0f172a', + headerBg: '#020617', + headerText: '#e2e8f0', + bodyText: '#cbd5e1', + tableHeaderBg: '#020617', + tableHeaderText: '#06b6d4', + tableRowAlt: '#1e293b', + tableBorder: '#334155', + 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 = { - id: 'data-driven-clean', - name: 'Data-Driven Clean', - category: 'premium', - description: 'Deep blue with emphasis on data hierarchy', +const vibrant: InvoiceTemplateConfig = { + id: 'vibrant', + name: 'Vibrant', + category: 'warm', + description: 'Coral-to-orange gradient header band', colors: { - primary: '#1E40AF', - secondary: '#3B82F6', - background: '#FFFFFF', - headerBg: '#1E40AF', - headerText: '#FFFFFF', - bodyText: '#1F2937', - tableHeaderBg: '#1E40AF', - tableHeaderText: '#FFFFFF', - tableRowAlt: '#EFF6FF', - tableBorder: '#BFDBFE', - totalHighlight: '#1E40AF', + primary: '#ea580c', + secondary: '#f97316', + background: '#ffffff', + headerBg: '#ea580c', + headerText: '#ffffff', + bodyText: '#1f2937', + tableHeaderBg: '#fff7ed', + tableHeaderText: '#9a3412', + tableRowAlt: '#fff7ed', + tableBorder: '#fed7aa', + 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[] = [ - cleanMinimal, - corporateClassic, - modernBold, - elegantSerif, - simpleTwoTone, - gradientHeader, - sidebarAccent, - geometricModern, - darkMode, - warmNatural, - playfulColorBlock, - retroProfessional, - techMinimal, - executivePremium, - dataDrivenClean, + clean, professional, bold, minimal, classic, + modern, elegant, creative, compact, + dark, vibrant, corporate, + fresh, natural, statement, ] export const TEMPLATE_CATEGORIES = [