Commit Graph
2 Commits
Author SHA1 Message Date
Jakob WennbergandClaude Fable 5 cb7b31819b feat(vat): Momsdeklaration as Stegen - stepper, flat steps, house toolbar (#1154)
* feat(vat): Momsdeklaration as Stegen (horizontal stepper, one step at a time)

The founder-picked concept variant for Moms: the four pipeline sections
(kontrollera, granska, bokfor, lamna in) become a clickable horizontal
stepper with honest per-step status subs (fel/varningar from the
pre-flight checks, att betala/aterfa from ruta 49, bokford/utkast lifted
from the settlement proposal via a new optional onStatus callback on
VatBookingCard) and one step's content rendered at a time with quiet
Nasta-links. Errors land on step 1, otherwise Granska. SkatteverketPanel
moves inside steg 4 next to the manual filing card when a declaration
exists; the no-data states keep it standalone. A period switch resets the
step choice. All checks, booking, drilldowns, exports and the SKV submit
flow are untouched.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* polish(vat): de-box the Stegen step contents to the concept language

Founder review: the stepper was new but the step contents kept the old
card chrome. Now flat on the panel throughout: the period picker is a
quiet toolbar row (no card, no labels), Granska renders as a centered
document column with sans eyebrow group heads and ruta 49 as an
emphasized document foot, the pre-flight checks are hairline rows with
quiet Korrigera links instead of boxed alerts and outline buttons,
VatBookingCard and VatManualFilingCard lose their cards (notes become
flat muted/attn lines), and SkatteverketPanel's card shells become flat
sections with sans uppercase eyebrows. All logic, flows and dialogs
untouched.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* polish(vat): black Exportera, no page-level Fraga Anna, clear Nasta buttons

Founder feedback on Stegen: the toolbar keeps only Exportera and it
wears the primary pill (ReportExportMenu gains an optional variant prop,
outline stays the default everywhere else); the AgentSparkleButton
leaves the page (the global assistant bubble remains); the Nasta step
links become white outline pill buttons so the forward path reads as
clearly as the export action. All other buttons on the page already
follow the house variants (primary/outline/ghost/quiet links).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 18:32:53 +02:00
Jakob WennbergandClaude Fable 5 0ef5593388 refactor(reports): restructure declaration pages around the filing pipeline (#992)
* refactor(reports): restructure declaration pages around the filing pipeline

Momsdeklaration (/reports/vat-declaration) becomes the four-step flow the
user actually runs: kontrollera, granska, bokfoer, laemna in.

- NEW VatChecksCard, mounted first and ungated: the local pre-flight
  checks and the RC-basis-gap worklist used to render inside
  SkatteverketPanel BELOW the filing CTAs, and vanished entirely for
  free-tier or not-connected users, exactly the manual filers who must
  not file a declaration the checks would have blocked.
- The gap worklist scales: compact DataList rows (first 8 + visa alla),
  visible shared classification selects, per-row overrides, bulk
  "Korrigera alla" behind a confirm dialog with serial progress, and an
  in-page declaration refetch replacing "Ladda om sidan". The list
  outlives the aggregate RC_BASIS_MISSING check so remaining rows never
  vanish after the first fix.
- Summary card: status Badge + font-display headline amount instead of a
  Badge carrying the number; sanctioned h3 section heads; Table
  primitive; NEW import block (rutor 50/60-62) and the utgaende sum now
  includes 60-62 so it matches ruta 49 arithmetic; drill-downs preserved.
- SkatteverketPanel stops being an API console: three forward buttons
  (Validera, Spara utkast, Laas och signera), six lookup/recovery actions
  in an overflow menu with two-line descriptions, destructive confirms on
  radera/koppla bort, one truthful notice slot (not-found is info, never
  green), visible disabled-reasons instead of title attrs, signing link
  as a real anchor plus auto re-check of inlaemning on tab refocus, and
  per-period state reset so a Q1 signing link can never show Q4's
  kvittens.
- VatCompositionChart deleted (decorative donut mixing in/out VAT);
  export menu keeps xlsx only, XML/PDF live in the Laemna in card.
- Sibling declaration pages adopt the same grammar: PS gets shadcn
  selects, auto-fetch with stale-discard, refresh button, envelope-parse
  fix (message_sv never existed); NE/INK2 auto-fetch on fiscal-year
  change (kills stale-year data), shared keyboard-accessible
  DeclarationRutaRow (fixes the expense sign bug), whole-krona amounts
  matching filed SRU values, neutral info notes instead of bg-primary/10,
  Skeleton loading, accessible download errors.

UI-only: no API, schema, or dependency changes. All strings hardcoded
Swedish (statutory surface). Adversarially reviewed (19-agent pass); all
10 confirmed findings fixed in this commit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(reports): address CodeRabbit review on #992

- formatWholeKronor truncates instead of rounds: NE/INK2 SRU generators
  drop oere with Math.trunc, and the UI must show the filed figures.
- SkatteverketPanel disconnect surfaces non-ok responses instead of
  silently stopping the spinner.
- VatChecksCard distinguishes a failed rc-basis-gaps fetch from a real
  zero-gap result: destructive note + retry instead of the benign
  'Inga verifikationer hittades'.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 23:22:52 +02:00