feat(reports,settings): report library + focused report routes, settings modal (#629)

* feat(reports,settings): report library + focused report routes, settings modal

Reports
- Replace the monolithic /reports tab-switcher with a calm, grouped report
  library landing (ReportLibrary + RecentReportsShelf) driven by a new
  lib/reports/catalog.ts.
- Each report opens a focused /reports/[slug] route (FocusedReport) with a
  shared fiscal-year selector, optional date-range, and URL-based account
  drill-down into the general ledger.
- Extract every report view into components/reports/views, add a reusable
  ReportExportMenu, and remove the old ReportsNav.

Settings
- Add an intercepting @settingsModal parallel route so in-app navigation to
  /settings opens as a modal over the current page; hard loads still resolve
  to the full page.
- Share one SettingsShell (rail + content) between page and modal, extract each
  section into components/settings/sections/*Content, add a settings hotkey and
  command-palette entry, and remove the old SettingsSidebar.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(reports,settings): remove dead salary-journal entry, fix border token

Addresses PR review feedback (#629):

- Remove the unreachable `salary-journal` report from the catalog. It had
  needsEmployees + no route + no FocusedView handler and `hasEmployees` was
  never plumbed through, so it never appeared in the library and a direct
  /reports/salary-journal URL rendered a blank frame. The report was never on
  the old page and has no view component; the API + generator stay in place for
  a proper follow-up. Drops its two now-unused i18n keys.

- Replace opacity-suffixed `border-border/8` section dividers with full-opacity
  `border-border` across the extracted settings section components, per the
  design system (no opacity-suffixed border tokens on surfaces).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci: re-trigger checks (pg-real hit a Docker Hub registry timeout)

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jakob Wennberg
2026-06-02 14:50:50 +02:00
committed by GitHub
co-authored by Claude Opus 4.8
parent f6ee0c2a82
commit ff01640f60
44 changed files with 4755 additions and 3974 deletions
+38 -1
View File
@@ -176,7 +176,16 @@
"assistant": "Assistant",
"backup": "Backup",
"account": "Account",
"api": "API"
"api": "API",
"group_account": "Account",
"group_company": "Company",
"group_accounting": "Accounting & tax",
"group_sales": "Sales",
"group_tools": "Tools & integrations"
},
"settings_modal": {
"title": "Settings",
"description": "Manage your company and account"
},
"settings": {
"section_appearance": "Appearance",
@@ -3628,6 +3637,34 @@
"sie_moved_hint": "SIE export now lives under Import/Export.",
"sie_moved_link": "Open SIE export",
"download_pdf": "Download PDF",
"download_excel": "Download Excel",
"export": "Export",
"recent_heading": "Recently opened",
"back_to_library": "Reports",
"switch_report": "Switch report",
"calendar_badge": "Calendar",
"group_payroll": "Payroll",
"group_export": "Export & archive",
"name_kpi": "Key figures",
"name_sie_export": "SIE export",
"desc_resultatrapport": "Revenue less costs for the period",
"desc_balansrapport": "Assets, liabilities and equity by account",
"desc_trial_balance": "All accounts with opening and closing balances",
"desc_kpi": "Margin, liquidity and other key figures",
"desc_income_statement": "Profit or loss in the statutory layout",
"desc_balance_sheet": "Financial position at the end of the period",
"desc_kassaflodesanalys": "Change in liquidity during the year",
"desc_arsredovisning": "Directors' report, notes and signatures",
"desc_vat_declaration": "Basis for the VAT return (boxes)",
"desc_periodisk_sammanstallning": "EU sales of goods and services",
"desc_ne_declaration": "NE appendix for sole traders",
"desc_ink2_declaration": "Income tax return 2 for limited companies",
"desc_huvudbok": "All transactions grouped by account",
"desc_grundbok": "Vouchers in registration order",
"desc_kundreskontra": "Outstanding receivables with aging",
"desc_supplier_ledger": "Outstanding payables with aging",
"desc_bank_reconciliation": "Reconcile bank transactions against the books",
"desc_sie_export": "Export the books as a SIE file",
"categories_aria": "Report categories",
"group_interim": "Interim",
"group_year_end": "Year-end",