mega-plant/components
David ea94754f02 Dashboard: income per site, one bar per site for a chosen month
Answers "which site earned what this month" without leaving the overview.
Horizontal bars, so the site NAME is the y axis and the card grows downward
as sites are added rather than squeezing the bars narrower.

The month defaults to the latest month that actually carries billing, not the
calendar month: the September invoices only land in October, so a "current
month" default opened on an empty card that read as broken. A month picker
covers the rest of the year, and a month with no invoice says so in words
rather than drawing five zero-height bars.

Figures come from buildSiteSummaries, so this card and /sites are the same
numbers by construction — West Park Sep R 185 573, total R 780 003.61 on both.
The site's own fetches are wrapped: the dashboard must still render its own
numbers if the invoices collections are missing.

Also p-4 sm:p-8 on the page shell, which was p-8 at every width.
2026-10-03 19:09:17 +02:00
..
ChartsGrid.tsx Charts: a profit line that changes colour, and a Series toggle 2026-10-03 09:20:16 +02:00
DashboardCharts.tsx Dashboard: income per site, one bar per site for a chosen month 2026-10-03 19:09:17 +02:00
ExpenseSectionPage.tsx Fix: the mobile table was mislabelled and clipping its own totals 2026-10-02 15:34:19 +02:00
GlobalSearch.tsx Fix: the mobile table was mislabelled and clipping its own totals 2026-10-02 15:34:19 +02:00
IncomeView.tsx Income: hide stood-down machines, with an active/inactive filter 2026-10-03 18:40:32 +02:00
InvoiceIntake.tsx Fix: toast and machine dropdown were rendering behind the page chrome 2026-10-02 18:42:29 +02:00
InvoiceList.tsx Mobile: the top tiles overflowed on /income, hugged text on /sites, and repeated on invoices 2026-10-03 16:45:23 +02:00
InvoiceTable.tsx Invoices: a machine chosen in the dropdown was never actually booked 2026-10-03 15:43:46 +02:00
InvoiceUploader.tsx Invoices: line-item extraction, booking to plant items, VAT-inclusive income 2026-10-01 15:59:30 +02:00
MachineCombobox.tsx Invoices: a machine chosen in the dropdown was never actually booked 2026-10-03 15:43:46 +02:00
MachineLineChart.tsx Income: hide stood-down machines, with an active/inactive filter 2026-10-03 18:40:32 +02:00
PlantMap.tsx Map: dark tiles from Esri, because CARTO retired keyless access 2026-10-03 09:20:24 +02:00
PlantMapLoader.tsx Map: dark tiles from Esri, because CARTO retired keyless access 2026-10-03 09:20:24 +02:00
PlantRegisterTable.tsx Plant: default the register's status filter to Active 2026-10-03 09:59:11 +02:00
RunningView.tsx Fix: the mobile table was mislabelled and clipping its own totals 2026-10-02 15:34:19 +02:00
ScrollFade.tsx Fix: the mobile table was mislabelled and clipping its own totals 2026-10-02 15:34:19 +02:00
Sidebar.tsx Mobile: the menu button was indenting every page 2026-10-03 16:08:04 +02:00
SiteBookingSelect.tsx Invoices: fix the tablet layout and make booking an unbooked line obvious 2026-10-03 09:59:05 +02:00
SiteContainerEditor.tsx Sites: auto-allocate container lines to the container the site hires 2026-10-02 18:32:12 +02:00
SiteCoordinateEditor.tsx Sites: give every site coordinates 2026-10-02 16:33:43 +02:00
SitesView.tsx Sites: a card list that reads like the income screen 2026-10-03 09:20:20 +02:00
Sparkline.tsx Invoices: keep the PDF on the invoice, and search the invoice's own words 2026-10-02 19:09:16 +02:00
ThemeProvider.tsx Mega Plant dashboard — fix & harden (Parts 0-5) 2026-09-12 09:35:48 +02:00
ThemeToggle.tsx Mega Plant dashboard — fix & harden (Parts 0-5) 2026-09-12 09:35:48 +02:00
Toast.tsx Fix: toast and machine dropdown were rendering behind the page chrome 2026-10-02 18:42:29 +02:00