export const metadata = {
title:
"v1.0.3 - Email visibility toggle for seller and buyer, reworked seller/buyer sections, confirm dialog to discard changes, UX improvements",
description:
"Email visibility toggle for seller/buyer sections, reworked form layouts with locked-state banners, ConfirmDiscardDialog, and auto-scroll on mobile",
date: "2026-03-29",
version: "1.0.3",
type: "minor",
};
## Highlights
- **Seller & Buyer Email visibility toggle** — control whether the email address appears in the generated PDF
- **`ConfirmDiscardDialog`** component to warn users about unsaved changes when closing the buyer/seller dialogs
- **Reworked seller and buyer information form sections** with improved layout, locked-state banners, and cleaner field grouping
- **Auto-scroll the invoice form on mobile** when switching between tabs (UX improvement)
- **Out-of-Date dates helper** shows outdated fields and provides a button to update all dates at once
---
### Changed
- Invalid localStorage entries for buyers and sellers are now validated and silently dropped instead of causing errors
- Error message component layout and copy updated for better readability
- CI workflows updated to latest action versions; failure handling added to all CI jobs
- Added knip CI job for automated dead-code and unused-dependency detection
### Fixed
- Pre-fill switch in buyer/seller dialogs no longer retains its state after the dialog is closed and reopened
- Buyer and seller dialogs now reset form values and pre-fill switch to their defaults when closed
- Buyer and seller names are trimmed of whitespace before saving; whitespace-padded duplicates are rejected
---