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": "Assistenten",
"backup": "Säkerhetsbackup",
"account": "Konto",
"api": "API"
"api": "API",
"group_account": "Konto",
"group_company": "Företag",
"group_accounting": "Bokföring & skatt",
"group_sales": "Försäljning",
"group_tools": "Verktyg & integrationer"
},
"settings_modal": {
"title": "Inställningar",
"description": "Hantera ditt företag och konto"
},
"settings": {
"section_appearance": "Utseende",
@@ -3628,6 +3637,34 @@
"sie_moved_hint": "SIE-export finns nu under Importera/Exportera.",
"sie_moved_link": "Öppna SIE-export",
"download_pdf": "Ladda ner PDF",
"download_excel": "Ladda ner Excel",
"export": "Exportera",
"recent_heading": "Senast öppnade",
"back_to_library": "Rapporter",
"switch_report": "Byt rapport",
"calendar_badge": "Kalender",
"group_payroll": "Lön",
"group_export": "Export & arkiv",
"name_kpi": "Nyckeltal",
"name_sie_export": "SIE-export",
"desc_resultatrapport": "Intäkter minus kostnader för perioden",
"desc_balansrapport": "Tillgångar, skulder och eget kapital per konto",
"desc_trial_balance": "Alla konton med ingående och utgående saldo",
"desc_kpi": "Marginal, likviditet och andra nyckeltal",
"desc_income_statement": "Årets resultat enligt uppställningsform",
"desc_balance_sheet": "Ekonomisk ställning vid periodens slut",
"desc_kassaflodesanalys": "Likviditetens förändring under året",
"desc_arsredovisning": "Förvaltningsberättelse, noter och underskrifter",
"desc_vat_declaration": "Underlag till momsdeklarationen (rutor)",
"desc_periodisk_sammanstallning": "EU-försäljning av varor och tjänster",
"desc_ne_declaration": "NE-bilaga för enskild firma",
"desc_ink2_declaration": "Inkomstdeklaration 2 för aktiebolag",
"desc_huvudbok": "Alla transaktioner grupperade per konto",
"desc_grundbok": "Verifikationer i registreringsordning",
"desc_kundreskontra": "Utestående kundfordringar med åldersfördelning",
"desc_supplier_ledger": "Utestående leverantörsskulder med åldersfördelning",
"desc_bank_reconciliation": "Stäm av banktransaktioner mot bokföringen",
"desc_sie_export": "Exportera bokföringen som SIE-fil",
"categories_aria": "Rapportkategorier",
"group_interim": "Löpande",
"group_year_end": "Bokslut",