'use client'; import { Calendar, Target, TrendingUp, Clock, FileBarChart } from 'lucide-react'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; interface Template { id: string; name: string; description: string; type: 'weekly' | 'monthly' | 'project' | 'habit' | 'custom'; icon: React.ComponentType<{ className?: string }>; content: string; } const templates: Template[] = [ { id: 'weekly', name: 'Weekly Summary', description: 'Review your tasks, habits, and time from the past week', type: 'weekly', icon: Calendar, content: `
Week of [DATE_RANGE]
Total: [TIME_TOTAL]
What went well this week?
What could be improved?
Goals for next week:
`, }, { id: 'monthly', name: 'Monthly Review', description: 'Comprehensive review of the past month', type: 'monthly', icon: Calendar, content: `[HABIT_ANALYSIS]
[TIME_BREAKDOWN]
What worked well?
What didn't work?
Priorities:
Goals:
`, }, { id: 'project', name: 'Project Health', description: 'Status and progress report for a specific project', type: 'project', icon: Target, content: `Progress: [PROGRESS]%
Tasks: [COMPLETED] / [TOTAL]
Due: [DUE_DATE]
[RISKS]
Completion rate: [COMPLETION_RATE]%
Active streaks: [STREAK_COUNT]
[TREND_ANALYSIS]
[TOTAL_TIME]
Where did most time go?
Was time aligned with priorities?
Adjustments for next period:
`, }, ]; interface ReportTemplatesProps { onSelect: (template: Template) => void; onCancel: () => void; } export function ReportTemplates({ onSelect, onCancel }: ReportTemplatesProps) { return (Start with a template or create from scratch
{template.description}
Start writing...
', }) } onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); onSelect({ id: 'custom', name: 'Custom Report', description: 'Start with a blank report', type: 'custom', icon: FileBarChart, content: 'Start writing...
', }); } }} tabIndex={0} role="listitem" aria-label="Start with a blank custom report" >Start with a blank report