- Engine: Add ppa_revenue_cr, mcp_revenue_cr, tariff, units to PnLRow - Engine: Split PPA vs MCP revenue in P&L computation - Web: Collapsible rows for PPA/MCP Revenue and Opex - Web: Highlighted rows (Total Revenue, EBITDA, EBIT, PBT, PAT) - Web: Units above Tariff in breakdown, bg-blue-50 highlight - Fix sticky column z-index for horizontal scroll - CLAUDE.md: Add project documentation Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| app | ||
| components | ||
| lib | ||
| public | ||
| .gitignore | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| components.json | ||
| next.config.ts | ||
| package.json | ||
| pnpm-lock.yaml | ||
| postcss.config.mjs | ||
| README.md | ||
| tsconfig.json | ||
remodel-web
Next.js App Router frontend for REmodel.
Setup
pnpm install
Common commands
pnpm dev # dev server on :3000
pnpm build # production build
pnpm lint # eslint
pnpm type-check # tsc --noEmit
pnpm generate-types # regenerate API types from OpenAPI (needs API on :8000)
Adding shadcn/ui components
pnpm dlx shadcn@latest add <component-name>
Key conventions
- All API types live in
app/api-types/index.ts(auto-generated). Never hand-write them. DataGridwrapper (AG Grid Community) lives incomponents/DataGrid/— one implementation only.- Server state: TanStack Query. Client-only UI state: Zustand.
- Charts: Recharts only.