47 lines
1.7 KiB
Markdown
47 lines
1.7 KiB
Markdown
---
|
|
epic: 7
|
|
story: 7.13
|
|
title: "Export"
|
|
status: draft
|
|
---
|
|
|
|
## Epic 7 — macOS App (Swift/SwiftUI)
|
|
**Goal:** A beautiful, native macOS app that feels like it belongs on the platform.
|
|
|
|
### Story 7.13: Export
|
|
|
|
As a **macOS user**,
|
|
I want to export my CalcPad sheets in multiple formats,
|
|
So that I can share my calculations with others or archive them in a standard format.
|
|
|
|
**Acceptance Criteria:**
|
|
|
|
**Given** a sheet is open with calculations and results
|
|
**When** the user selects File > Export > PDF
|
|
**Then** a PDF is generated showing the two-column layout (expressions on the left, results on the right)
|
|
**And** the file is saved to the user-selected location
|
|
|
|
**Given** a sheet is open
|
|
**When** the user selects File > Export > HTML
|
|
**Then** an HTML file is generated with a styled two-column layout that looks good in any browser
|
|
|
|
**Given** a sheet is open
|
|
**When** the user selects File > Export > Markdown
|
|
**Then** a Markdown file is generated with expressions and results formatted in a readable way (e.g., a table or code block)
|
|
|
|
**Given** a sheet is open
|
|
**When** the user selects File > Export > Plain Text
|
|
**Then** a `.txt` file is generated with expressions and results in a simple aligned format
|
|
|
|
**Given** a sheet is open
|
|
**When** the user selects File > Export > JSON
|
|
**Then** a JSON file is generated with structured data including each line's expression, result, and metadata
|
|
|
|
**Given** a sheet is open
|
|
**When** the user selects File > Export > CSV
|
|
**Then** a CSV file is generated with columns for line number, expression, and result
|
|
|
|
**Given** an export format is selected
|
|
**When** the user uses the macOS Share Sheet instead of File > Export
|
|
**Then** the same export functionality is available through the share interface
|