✨ Highlights
- Seller & Buyer Email visibility toggle — control whether the email address appears in the generated PDF
ConfirmDiscardDialogcomponent 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
- GitHub Actions workflows updated to latest action versions; failure handling added to all CI jobs
- Added knip GitHub 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
Full Changelog: v1.0.2...v1.0.3







