Skip to content

Conversation

@Tsopic
Copy link
Member

@Tsopic Tsopic commented Jan 23, 2026

Summary

  • Add frontend README.md with setup instructions, available scripts, and project structure
  • Create comprehensive ARCHITECTURE.md covering patterns, components, and conventions
  • Add JSDoc documentation to all 12 Svelte components
  • Implement API retry logic with exponential backoff for transient failures (5xx, 429)
  • Add 81 new tests: ErrorAlert (22), TenantSelector (30), API retry (29)

Test plan

  • Run npm run check - TypeScript validation passes
  • Run npm run test - All 427 unit tests pass
  • Run npm run test:e2e - E2E tests pass
  • Verify README.md renders correctly on GitHub
  • Review ARCHITECTURE.md for accuracy

🤖 Generated with Claude Code

Tsopic and others added 7 commits January 23, 2026 08:29
These badge styles are now defined in the shared StatusBadge component
using :global() selectors. This cleanup removes 50 lines of duplicate CSS.

- assets/+page.svelte: Remove badge-draft, badge-active, badge-disposed, badge-sold
- contacts/+page.svelte: Remove badge-customer, badge-supplier, badge-both
- employees/+page.svelte: Remove badge-fulltime, badge-parttime, badge-contract
  (keep badge-active/badge-inactive for boolean is_active display)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Complete CSS cleanup after StatusBadge migration. This removes 205 additional
lines of duplicate badge CSS from 10 more page components.

Files cleaned:
- invoices/+page.svelte: 30 lines (draft, sent, partial, paid, overdue, voided)
- quotes/+page.svelte: 30 lines (draft, sent, accepted, rejected, expired, converted)
- orders/+page.svelte: 30 lines (pending, confirmed, processing, shipped, delivered, cancelled)
- payroll/+page.svelte: 25 lines (draft, calculated, approved, paid, declared)
- employees/absences/+page.svelte: 20 lines (pending, approved, rejected, cancelled)
- tsd/+page.svelte: 20 lines (draft, submitted, accepted, rejected)
- tax/+page.svelte: 15 lines (draft, submitted, accepted)
- settings/email/+page.svelte: 15 lines (success, danger, muted)
- payments/+page.svelte: 10 lines (received, made)
- payments/cash/+page.svelte: 10 lines (received, made)

Result: Reduced CSS warnings from 85 to 46 (eliminated all badge-related warnings)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove unused .header CSS from accounts, payments pages
- Remove unused .header .btn and .header button from reports page
- Remove empty .declarations ruleset from tax page
- Fix chartCanvas/cashFlowCanvas to use $state for Svelte 5 compatibility

Reduces warnings from 46 to 39 (7 more warnings eliminated)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add for/id associations to form labels in banking pages
- Add aria-label to close buttons in cost-centers modals and alerts
- Change group labels (line items, logo) from <label> to <span>
  since they don't associate with single form controls

Reduces warnings from 39 to 14 (25 a11y warnings fixed)

Remaining 14 warnings are mostly OnboardingWizard's intentional
form initialization pattern (capturing prop values on mount).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add tabindex="-1" to dialog elements for focus management
- Add keyboard handlers for Escape key on modal overlays
- Add svelte-ignore comments for intentional non-interactive interactions

Reduces warnings from 14 to 10 (all remaining are OnboardingWizard's
intentional form initialization pattern)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add README.md with setup instructions, scripts, and project structure
- Add docs/ARCHITECTURE.md with comprehensive frontend architecture guide
- Add JSDoc documentation to all 12 Svelte components
- Add API retry logic with exponential backoff for transient failures
- Add component tests for ErrorAlert (22 tests) and TenantSelector (30 tests)
- Add api-retry.test.ts with 29 tests for retry utilities

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Cast mockFetch to typeof fetch to fix TypeScript error on global.fetch assignment
- Extract initialSettings from tenant prop to avoid repeated property access warnings

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@Tsopic Tsopic merged commit 16e258a into main Jan 23, 2026
10 checks passed
@Tsopic Tsopic deleted the chore/frontend-improvements branch January 23, 2026 07:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants