Commit Graph

99 Commits

Author SHA1 Message Date
Your Name
55941a4d41 complete export/import cycle and remove sample data
Export now includes invoice_payments and recurring_invoices tables.
Import restored to use ID-based lookups and all fields for clients,
projects, tasks, and time entries. Added missing import support for
timeline_events, calendar_sources, calendar_events, invoice_payments,
and recurring_invoices. Export uses native save dialog instead of blob
download. Removed sample data seeding (seed.rs, UI, command).
2026-02-21 01:34:26 +02:00
Your Name
c4703dfe98 tooltips, two-column timer, font selector, tray behavior, icons, readme
- Custom tooltip directive (WCAG AAA) on every button in the app
- Two-column timer layout with sticky hero and recent entries sidebar
- Timer font selector with 16 monospace Google Fonts and live preview
- UI font selector with 15+ Google Fonts
- Close-to-tray and minimize-to-tray settings
- New app icons (no-glow variants), platform icon set
- Mini timer pop-out window
- Favorites strip with drag-reorder and inline actions
- README with feature documentation
- Remove tracked files that belong in gitignore
2026-02-21 01:15:57 +02:00
Your Name
66d12e8c5c boost text-tertiary contrast for WCAG AAA (7:1) 2026-02-20 18:40:19 +02:00
Your Name
4617c7bb7f auto-backup UI and window close hook 2026-02-20 15:41:38 +02:00
Your Name
e0558eb93c rounding visibility in invoices and reports 2026-02-20 15:37:20 +02:00
Your Name
84b2ca54c8 rounding visibility indicators on entry rows 2026-02-20 15:36:07 +02:00
Your Name
76b139e792 time-of-day heatmap in reports patterns tab 2026-02-20 15:32:20 +02:00
Your Name
8567f94e3e project health badges and attention section 2026-02-20 15:32:14 +02:00
Your Name
361a1308b8 weekly comparison indicators and sparklines on dashboard 2026-02-20 15:32:07 +02:00
Your Name
81171bec1b receipt thumbnails, lightbox, and file picker for expenses 2026-02-20 15:25:18 +02:00
Your Name
2b8f9415b3 receipt lightbox component with zoom and focus trap 2026-02-20 15:23:11 +02:00
Your Name
218277e899 global shortcut for quick entry dialog 2026-02-20 15:20:27 +02:00
Your Name
45764795b3 global quick entry dialog component 2026-02-20 15:18:34 +02:00
Your Name
44803a7f6d timesheet row persistence and copy last week 2026-02-20 15:17:01 +02:00
Your Name
5c44327500 entry template management in settings 2026-02-20 15:10:48 +02:00
Your Name
304483e4f9 entry template picker and save-as-template in entries view 2026-02-20 15:09:37 +02:00
Your Name
eb8595f512 entry templates pinia store 2026-02-20 15:07:18 +02:00
Your Name
15c858a2fb cascade delete dialog for clients with dependency counts 2026-02-20 15:02:39 +02:00
Your Name
36b9cbcc54 smart timer safety net - save dialog on stop without project 2026-02-20 14:58:02 +02:00
Your Name
a9e6984009 timer save dialog for no-project and long-timer scenarios 2026-02-20 14:56:17 +02:00
Your Name
8f86a7e5b6 use batch save for invoice items 2026-02-20 14:55:17 +02:00
Your Name
8ed76a1249 independent try/catch per onboarding detection call 2026-02-20 14:47:26 +02:00
Your Name
ece4abde97 standardize error handling across all stores 2026-02-20 14:46:56 +02:00
Your Name
342579a78a use unified error handler in entries store 2026-02-20 14:43:10 +02:00
Your Name
1a7b361a16 unified error handler with retry for transient errors 2026-02-20 14:42:30 +02:00
Your Name
525a93e218 persistent notifications toggle in settings 2026-02-20 14:40:50 +02:00
Your Name
a391c539f4 toast undo button and hover/focus pause 2026-02-20 14:38:34 +02:00
Your Name
b42c3d49d7 toast auto-dismiss with undo and pause support 2026-02-20 14:38:08 +02:00
Your Name
8330da5608 add tour store for guided walkthrough state 2026-02-20 09:36:26 +02:00
Your Name
5e313f3cea tidy up project structure and normalize formatting 2026-02-19 22:43:14 +02:00
Your Name
81f9386136 mini timer renders via window label instead of hash routing
The mini timer window was blank because hash-based routing
(createWebHashHistory) doesn't work with Tauri's WebviewUrl path.
Now App.vue detects the mini timer by checking getCurrentWindow().label
=== 'mini-timer' and renders the MiniTimer component directly,
bypassing the router entirely.
2026-02-18 15:26:44 +02:00
Your Name
f78bfa81ec load invoice templates from JSON files via backend
Templates are now loaded dynamically from data/templates/*.json
via the get_invoice_templates Tauri command instead of being
hardcoded in TypeScript. Preview and PDF renderer switch on
template.layout instead of template.id, allowing custom templates
to reuse built-in layouts with different colors.
2026-02-18 15:17:54 +02:00
Your Name
f329e20aa0 make template picker full-screen with fixed positioning so buttons are visible 2026-02-18 15:05:02 +02:00
Your Name
960fa5c791 rewrite InvoicePreview with 15 unique typographic layouts 2026-02-18 14:50:49 +02:00
Your Name
7de92d122e rewrite PDF renderer with 15 unique typographic layouts 2026-02-18 14:45:38 +02:00
Your Name
68a575fc3f add two-step invoice flow with full-screen template picker 2026-02-18 14:43:55 +02:00
Your Name
53f2449438 update invoicePdf wrapper with new default template ID 2026-02-18 14:41:23 +02:00
Your Name
9373d207a2 rewrite invoice template configs with design-doc IDs and colors 2026-02-18 14:39:01 +02:00
Your Name
f3b6bb0b21 add template_id to Invoice interface and updateInvoiceTemplate action 2026-02-18 14:38:14 +02:00
Your Name
41ddba5d13 integrate template picker into invoice create and preview views 2026-02-18 13:35:11 +02:00
Your Name
1eadc82db7 add business identity settings for invoice branding 2026-02-18 13:34:44 +02:00
Your Name
5308006578 add InvoicePreview.vue with all 7 header styles and 5 table styles 2026-02-18 13:30:27 +02:00
Your Name
efeba209cf add InvoiceTemplatePicker split-pane component 2026-02-18 13:28:40 +02:00
Your Name
978b3baec3 add config-driven jsPDF invoice renderer with all header and table styles 2026-02-18 13:26:11 +02:00
Your Name
6ea47e534f add 15 invoice template configs and registry 2026-02-18 13:16:36 +02:00
Your Name
1bb6619a17 migrate remaining dialogs to Vue Transition, remove old keyframes
Convert Settings, Invoices, IdlePrompt, AppTrackingPrompt, and
AppDiscard dialogs from animate-modal-enter CSS class to proper
<Transition name="modal"> wrappers for enter/leave animations.
Remove unused animate-modal-enter and animate-dropdown-enter keyframes.
2026-02-18 11:36:35 +02:00
Your Name
85ef68c461 add transitions and micro-interactions across all views
- Page transitions with slide-up/fade on route changes (App.vue)
- NavRail sliding active indicator with spring-like easing
- List enter/leave/move animations on Entries, Projects, Clients, Timer
- Modal enter/leave transitions with scale+fade on all dialogs
- Dropdown transitions with overshoot on all select/picker components
- Button feedback (scale on hover/active), card hover lift effects
- Timer pulse on start, glow on stop, floating empty state icons
- Content fade-in on Dashboard, Reports, Calendar, Timesheet
- Tag chip enter/leave animations in AppTagInput
- Progress bar smooth width transitions
- Implementation plan document
2026-02-18 11:33:58 +02:00
Your Name
1bb1debad0 add animation CSS classes, keyframes, and reduced-motion support 2026-02-18 11:22:32 +02:00
Your Name
76f0c3cfd2 install @vueuse/motion and create spring presets 2026-02-18 11:19:52 +02:00
Your Name
dff9ca60ff add daily/weekly goals, streaks, and time rounding
Settings Timer tab now has daily/weekly goal hour inputs. Dashboard
shows goal progress bars and streak counter. Settings Billing tab
has rounding toggle with increment and method selectors. New
rounding.ts utility for nearest/up/down time rounding.
2026-02-18 10:51:56 +02:00