Commit Graph

28 Commits

Author SHA1 Message Date
Your Name
514090eed4 feat: 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
- Comprehensive README with feature documentation
- Remove tracked files that belong in gitignore
2026-02-21 01:15:57 +02:00
Your Name
29f29e3368 feat: receipt lightbox component with zoom and focus trap 2026-02-20 15:23:11 +02:00
Your Name
d4fa17d315 feat: global quick entry dialog component 2026-02-20 15:18:34 +02:00
Your Name
14c45c67e5 feat: entry template picker and save-as-template in entries view 2026-02-20 15:09:37 +02:00
Your Name
115bdd33db feat: timer save dialog for no-project and long-timer scenarios 2026-02-20 14:56:17 +02:00
Your Name
85b39e41f6 feat: toast undo button and hover/focus pause 2026-02-20 14:38:34 +02:00
Your Name
edccc12c34 feat: 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
f46424141d feat: rewrite InvoicePreview with 15 unique typographic layouts 2026-02-18 14:50:49 +02:00
Your Name
3cadb42f8b feat: add InvoicePreview.vue with all 7 header styles and 5 table styles 2026-02-18 13:30:27 +02:00
Your Name
673da2aab8 feat: add InvoiceTemplatePicker split-pane component 2026-02-18 13:28:40 +02:00
Your Name
32ee6284da refactor: 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
04d4220604 feat: 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
28d199bddc feat: add Calendar, Timesheet, and MiniTimer views
Calendar shows weekly time-block layout with hour rows, entry positioning,
current time indicator, and week navigation. Timesheet provides a weekly
grid with project/task rows, day columns, totals, and add-row functionality.
MiniTimer is a minimal always-on-top timer display for the floating window.
2026-02-18 10:39:08 +02:00
Your Name
b650e981fc feat: add AppTagInput multi-select tag component 2026-02-18 10:35:18 +02:00
Your Name
afa8bce2c9 fix: dynamic currency symbols and integrated datetime picker
- Replace all hardcoded prefix="$" with :prefix="getCurrencySymbol()"
  in Settings, Projects, and Invoices views
- Replace hardcoded ($) labels with dynamic currency symbol
- Extend AppDatePicker with showTime prop + hour/minute v-models
  for integrated date+time selection
- Simplify Entries.vue to use single AppDatePicker with showTime
  instead of separate hour/minute inputs
2026-02-17 23:53:45 +02:00
Your Name
519bdabe61 feat: replace all hardcoded en-US and $ formatting with locale-aware helpers 2026-02-17 23:39:31 +02:00
Your Name
7d43f02e59 feat: add AppNumberInput component with press-and-hold repeat 2026-02-17 23:33:13 +02:00
Your Name
06d646c8de feat: add searchable prop to AppSelect for filtering long option lists 2026-02-17 23:33:11 +02:00
Your Name
e3f7e2f470 feat: add Clients view with card grid, dialogs, and billing details 2026-02-17 22:57:08 +02:00
Your Name
c949a08981 feat: add Client billing fields to store, /clients route, and reorder NavRail 2026-02-17 22:54:31 +02:00
Your Name
3dbe4b4ac8 fix: make custom dropdowns and date pickers respect UI zoom setting
Teleported panels read zoom from #app and apply it to their own style,
with position coordinates divided by the zoom factor so they align
correctly with the zoomed trigger elements.
2026-02-17 22:35:42 +02:00
Your Name
b9aace912b feat: add AppDatePicker custom calendar component 2026-02-17 22:24:47 +02:00
Your Name
8cdd30b9e4 feat: add AppSelect custom dropdown component 2026-02-17 22:22:43 +02:00
Your Name
a300d85f6f feat: upgrade typography - Plus Jakarta Sans headings, JetBrains Mono data, 14px base
Heading font: Plus Jakarta Sans (500/600/700) for all h1-h3, stat values, dialog titles, timer display, and wordmark.
Body font: Inter (400/500/600/700) unchanged but base bumped from 13px to 14px.
Mono font: JetBrains Mono replaces IBM Plex Mono for code and tabular data.
2026-02-17 22:06:48 +02:00
Your Name
3c8868c899 style: bump border-radius globally - rounded to rounded-lg, rounded-lg to rounded-xl 2026-02-17 21:56:48 +02:00
Your Name
59bfc9fa5a fix: window dragging - use startDragging() API instead of data attribute 2026-02-17 21:36:30 +02:00
Your Name
9f79309ada feat: amber wordmark and NavRail active indicator 2026-02-17 21:25:08 +02:00
Your Name
520846511b feat: add toast notification system 2026-02-17 21:25:02 +02:00