Recharts vs ECharts, Progress, and totals helpers. Split from the former data_model inventory.
For /analytics route status (discontinued chart UI), see charts-correlation-crosstab.md.
From package.json:
recharts (^2.15.3)echarts + echarts-for-react (wrapped by components/common/echarts/EChart.tsx)Representative components/ imports:
components/fire-data/charts/CategoryTotalsChart.tsxcomponents/fire-data/charts/echarts/ — drilldown (/simple), sankey, theme river, radar, treemap grid, heatmap, force graph, circle pack (/atlas + future routes); dashboard blocks: sunburst ↔ treemap morph via HierarchyMorphChart + hierarchy-morph.ts; bubble timeline via BubbleTimelineChart + bubble-timeline.ts (TimelineComponent + Scatter in EChart.tsx). Registry: registry.ts.components/common/echarts/EChart.tsx — not imported by routes; used inside product chartsNo Tremor in package.json.
ProgressInstalled as Radix + local wrapper:
components/ui/progress.tsx
(re-exports Progress; uses @radix-ui/react-progress — also listed in package.json.)
totalslib/utils/totals.ts exists; documents shared totals for live BRIS transform vs future getFireData + buildTotals.
When swapping chart stacks or adding a new visualization dependency, update this file and the analytics route doc if user-facing behavior changes.