Share Export Sheet
Export format selection and actions. Opened from 407-history-section.
Formats
| Format | Description | Service |
|---|---|---|
| PDF Report | Visual report with chart | 310-webkit-service |
| SVG Report | Vector graphics version | 307-svg-renderer |
| PNG Report | Raster image (2x resolution) | 310-webkit-service |
| CSV Data | Tabular data export | 302-export |
Actions
| Action | Availability | Description |
|---|---|---|
| Preview | All | View before exporting |
| Save File | Mac only | Native save panel |
| Share | All | System share sheet |
| Copy as Text | SVG/CSV | Copy to clipboard |
Preview
- PDF: PDFKit viewer
- PNG: Image view
- SVG/CSV: Monospaced text
Data Flow
- Receives snapshot of filtered records
- User selects format
- Generates data via appropriate service
- Presents action options
Snapshot Pattern
Uses captured data to prevent re-render:
struct ExportSnapshot {
let records: [TimeRecord]
let startDate: Date
let endDate: Date
let selectedTags: Set<UUID>
} Related
- 407-history-section - Opens this sheet
- 306-report - Report data models
- 307-svg-renderer - SVG generation
- 310-webkit-service - PDF/PNG conversion
- 302-export - CSV export