Commit Graph

54 Commits

Author SHA1 Message Date
ed0dacb435 feat: Implement a new CountUp component and refactor calendar day details to use a Sheet instead of a Dialog. 2025-12-14 02:16:29 -05:00
91d410cbce refactor: Remove env.example, optimize invoice calendar item selection with derived state, and enhance invoice form's default hourly rate initialization and save button loading state. 2025-12-14 02:16:21 -05:00
75c4362d97 fix: resolve all remaining type safety errors
- Create types.ts with proper TypeScript interfaces for dashboard data
- Replace all 'any' types in dashboard/page.tsx with DashboardStats and RecentInvoice
- Fix type safety in invoice-form.tsx:
  - Replace 'any' in updateItem with proper union type
  - Add generic type parameter to updateField for type safety
  - Fix status type assertion (any -> proper union type)
  - Replace || with ?? for safer null handling
- All TypeScript compilation errors resolved
- Lint down to 1 warning (false positive for 'loading' variable)
2025-12-11 20:15:29 -05:00
cf4ef928b8 fix: resolve majority of lint errors across codebase
- Remove unused imports from page.tsx, clients/page.tsx, invoices/page.tsx
- Remove unused imports from invoice-form.tsx, invoice-workspace.tsx
- Move CustomTooltip outside component in revenue-chart.tsx (fixes react-hooks/static-components)
- Fix type safety in umami.ts (any -> unknown)
- Fix type safety in sidebar-provider.tsx (add type assertion)
- Add no-op comments to empty fallback functions in animation-preferences-provider.tsx
- Fix type safety in invoice-workspace.tsx (any[] -> typed array)

Note: dashboard/page.tsx still has ~55 type safety warnings related to 'any' types
in stats/invoice data. These are pre-existing and would require significant refactoring
of the dashboard data flow to properly type. TypeScript compilation passes.
2025-12-11 20:05:34 -05:00
50735b74ea fix: resolve lint errors in modified files
- Remove unused imports from invoice-form.tsx, sidebar.tsx, dashboard-shell.tsx
- Remove unused imports from dashboard.ts and calendar.tsx
- Fix unused parameter in invoice-calendar-view.tsx with underscore prefix
- Fix type-only import for DayButton in calendar.tsx
- All typecheck errors resolved
- Remaining lint errors are in unmodified files (pre-existing)
2025-12-11 20:01:04 -05:00
1a3c2e08ce refactor: improve invoice editor UX and fix visual issues
- Remove clock icons and hour text from calendar month view, show only activity bars
- Fix calendar week view mobile layout (2-column grid instead of vertical stack)
- Update invoice form skeleton to match actual layout structure
- Add client-side validation for empty invoice item descriptions with auto-scroll to error
- Fix hourly rate defaulting logic with proper type guards
- Update invoice details skeleton to match page structure with PageHeader
- Fix hydration error in sidebar (div inside button -> span)
- Improve dashboard chart color consistency (draft status now matches monthly metrics)
- Fix mobile header layout to prevent text squishing (vertical stack on mobile)
- Add IDs to invoice line items for scroll-into-view functionality
2025-12-11 19:57:54 -05:00
39fdf16280 feat: Implement a new dashboard shell with animated background, refactor dashboard data fetching into a dedicated API route, and introduce new UI components.** 2025-12-10 03:16:36 -05:00
10d7500ef3 feat: integrate Umami analytics for client-side and server-side event tracking 2025-11-30 19:28:25 -05:00
e27877c477 fix: Ensure color theme syncs correctly by updating useEffect dependencies, refactor email base URL assignment, and add baseline-browser-mapping dependency. 2025-11-29 03:16:46 -05:00
03579bc625 feat: Implement database persistence and synchronization for user theme preferences 2025-11-29 03:08:10 -05:00
3ebec7aa4a refactor: migrate authentication system and update Drizzle schema. 2025-11-29 02:26:26 -05:00
c88e5d9d82 feat: Implement dynamic accent color selection and refactor appearance settings 2025-11-29 00:49:24 -05:00
10e1ca8396 feat: Add comprehensive theme management with mode and color selectors, alongside new fonts. 2025-11-27 23:31:10 -05:00
35ca35c28a Clean up unused imports and refactor type definitions
- Remove unused `cn` import from theme-selector - Remove unused `Slot`
import from badge - Remove unused `X` icon import from switch - Replace
empty interface extends with type alias in input - Replace empty
interface extends with type alias in textarea - Add "secondary" variant
to button type props - Replace "brand" variant with "default" in
client-list and invoice cards
2025-11-25 02:01:16 -05:00
75ce36cf9c Update Next.js to v15.5.6 and upgrade dependencies
Bump Next.js from 15.4.5 to 15.5.6 and update related dependencies.

Also upgrade other packages to latest compatible versions including: -
Radix UI components (all minor version updates) - Tiptap editor (3.0.7 →
3.11.0) - React and React DOM (19.1.1 → 19.2.0) - TanStack Query (5.84.0
→ 5.90.10) - TypeScript and ESLint ecosystem - Tailwind CSS (4.1.11 →
4.1.17) - Various other patch and minor updates

Additionally add theme support with next-themes and multiple color
schemes (light, dark, sunset, forest).
2025-11-25 01:54:23 -05:00
a270f6c1e5 Add user-controlled animation preferences and reduce motion support
- Persist prefersReducedMotion and animationSpeedMultiplier in user
profile - Provide UI controls to toggle reduce motion and adjust
animation speed globally - Centralize animation preferences via provider
and useAnimationPreferences hook - Apply preferences to charts’
animations (duration, enabled/disabled) - Inline script in layout to
apply preferences early and avoid FOUC - Update CSS to respect user
preference with reduced motion overrides and variable animation speeds
2025-08-11 17:54:53 -04:00
46767ca7e2 Improve input validation and data sanitization
The changes add consistent string trimming, better null handling, and
improved validation logic across the business and client forms.
2025-08-11 02:48:24 -04:00
a680f89a46 Add business nickname support across app and API 2025-08-11 01:50:20 -04:00
93ffdf3c86 Add global animation system and entrance effects to UI 2025-08-01 14:21:10 -04:00
f87cc2f295 Update defaultHourlyRate dependency array in InvoiceForm 2025-08-01 03:39:23 -04:00
9de86df070 Fix edit invoice initialization and routing
The form initialization logic for editing invoices was improved to
handle route changes correctly. The edit link path was fixed and cache
invalidation was added to ensure fresh data on navigation.
2025-08-01 03:33:19 -04:00
5e30d338af Prevent defaultHourlyRate from overwriting edited first item 2025-08-01 00:31:39 -04:00
e8fb8fa21c Add eslint-disable for useEffect dependency warning 2025-08-01 00:22:59 -04:00
43b8fd6c9e Use theme-aware chart colors and update color variables 2025-07-31 23:10:55 -04:00
8c8f09dab9 Update invoice-form.tsx 2025-07-31 19:14:11 -04:00
2eac74ea0c Default hourly 2025-07-31 19:14:01 -04:00
d9515f7723 Make hourly rate optional for clients and invoices 2025-07-31 19:11:20 -04:00
817689001c New invoice bug fix 2025-07-31 18:54:24 -04:00
2a4f78a762 Theme overhaul - missing files 2025-07-31 18:37:45 -04:00
8a2565adad Theme overhaul 2025-07-31 18:37:33 -04:00
acc8731e09 Add confirmation dialog before sending invoice email
The commit adds a confirmation dialog when sending invoices, improves
error handling with retries, and refines email-related UI text.
2025-07-29 20:15:40 -04:00
9370d5c935 Build fixes, email preview system 2025-07-29 19:45:38 -04:00
d5f9d1f583 Add invoice deletion functionality
The changes implement deletion capabilities for invoices with proper UI
feedback and confirmation dialogs.
2025-07-20 03:51:34 -04:00
3ac6e4d5b8 Update Next.js to version 15.4.2 and refactor invoice pages
- Upgrade Next.js and related packages for improved performance and security
- Refactor invoice-related pages to streamline navigation and enhance user experience
- Consolidate invoice editing and viewing functionality into a single page
- Remove deprecated edit page and implement a new view page for invoices
- Update links and routing for consistency across the dashboard
2025-07-18 20:18:43 -04:00
505d47918e Colors! 2025-07-17 02:27:36 -04:00
e9eb9c03eb Badge colors! 2025-07-17 02:08:27 -04:00
5f02bc1ff3 Refactor import page and add password change feature
This commit overhauls the invoice import UI and adds password
management. The changes:

- Replace custom import UI with reusable CSVImportPage component
- Add password change functionality with validation
- Improve form styling and accessibility
- Update import instructions for simplified CSV format
- Add client selection and validation
2025-07-16 14:40:15 -04:00
b5784061eb Refactor clients section to use client components
The commit makes several updates to the client-related pages in the
dashboard:

- Convert client edit/new pages to client components
- Remove server-side rendering wrappers
- Update client detail page styling and layout
- Add back button to client detail page
- Fix ID param handling in edit page
- Adjust visual styles and spacing

I focused on capturing the key changes while staying within the 50
character limit for the subject line and using the imperative mood. The
subject line alone adequately describes the core change without needing
a message body.
2025-07-16 14:19:50 -04:00
4976c13f32 Improve business details page layout and styling
The changes focus on improving the layout, styling and UX of the
business details pages by:
- Streamlining the edit page layout
- Adding consistent card styling and spacing
- Improving header structure and actions
- Enhancing content organization with separators
- Updating icon styles and colors
- Refining typography and spacing
2025-07-16 13:43:45 -04:00
572a10f30f Fix escaped quotes in CSV sample and data loading 2025-07-16 13:22:53 -04:00
c2fdcabac8 Dark theme tuning 2025-07-16 03:49:05 -04:00
c6fa9c4ac1 Update date picker, mobile styling 2025-07-16 03:27:56 -04:00
76711d2c10 Update invoice page layout and mobile styling
- Improve responsive layout and spacing for better mobile experience
- Refactor invoice skeleton loader for consistent appearance
- Revise padding and spacing for better content hierarchy
- Add sticky header navigation and floating action bar
- Update icon sizes and button styles for better touch targets
2025-07-15 23:59:35 -04:00
61733979cb Add default hourly rate to client model
The changes add a new defaultHourlyRate field to clients, including form
updates and automatic rate propagation to invoices. Add default hourly
rate for clients

The subject line you provided already clearly expresses the changes, and
no additional context is needed in the body, so I'll keep just the
subject line.
2025-07-15 20:24:43 -04:00
0d2b5de740 Adjust save button icon spacing for mobile screens 2025-07-15 20:08:25 -04:00
339684d132 Add clickable rows and standardize action button styles
The changes add row click functionality and consistent action button
styling across data tables. Main updates:

- Add `onRowClick` handler to make rows clickable and navigate to
  details pages
- Add `data-action-button` attribute to exclude action buttons from row
  click
- Fix TypeScript errors and types
2025-07-15 20:07:00 -04:00
c0279c4095 feat: enhance dashboard layout and UI components for improved responsiveness
- Introduce new 'xs' screen size in Tailwind configuration for better mobile support
- Update dashboard layout to use a cosmic gradient background for a modern look
- Refactor Quick Actions component for improved styling and layout consistency
- Add Current Open Invoice Card for quick access to ongoing invoices
- Standardize button sizes across various components for a cohesive user experience
- Implement responsive design adjustments in invoice forms and data tables

This update enhances the overall user experience by improving responsiveness and visual appeal across the dashboard and related components.
2025-07-15 03:04:10 -04:00
c9a664869c feat: improve invoice view responsiveness and settings UX
- Replace custom invoice items table with responsive DataTable component
- Fix server/client component error by creating InvoiceItemsTable client
  component
- Merge danger zone with actions sidebar and use destructive button
  variant
- Standardize button text sizing across all action buttons
- Remove false claims from homepage (testimonials, ratings, fake user
  counts)
- Focus homepage messaging on freelancers with honest feature
  descriptions
- Fix dark mode support throughout app by replacing hard-coded colors
  with semantic classes
- Remove aggressive red styling from settings, add subtle red accents
  only
- Align import/export buttons and improve delete confirmation UX
- Update dark mode background to have subtle green tint instead of pure
  black
- Fix HTML nesting error in AlertDialog by using div instead of nested p
  tags

This update makes the invoice view properly responsive, removes
misleading marketing claims, and ensures consistent dark mode support
across the entire application.
2025-07-15 02:35:55 -04:00
f331136090 feat: polish invoice editor and viewer UI with custom NumberInput
component

- Create custom NumberInput component with increment/decrement buttons
- Add 0.25 step increments for hours and rates in invoice forms
- Implement emerald-themed styling with hover states and accessibility
- Add keyboard navigation (arrow keys) and proper ARIA support
- Condense invoice editor tax/totals section into efficient grid layout
- Update client dropdown to single-line format (name + email)
- Add fixed footer with floating action bar pattern matching business
  forms
- Redesign invoice viewer with better space utilization and visual
  hierarchy
- Maintain professional appearance and consistent design system
- Fix Next.js 15 params Promise handling across all invoice pages
- Resolve TypeScript compilation errors and type-only imports
2025-07-15 00:29:02 -04:00
89de059501 Add dark mode styles to dashboard and UI components 2025-07-12 21:50:43 -04:00