What each plan includes, and what it costs.
One price per plan: the one set for the market this page is read in. Each market's number is set locally and never converted from another - a price converted from somewhere else is on this company's own list of borders, and it turns somebody's local cost into a rounding artefact of a rate they did not choose.
Absence is drawn as a real "Not included" with an accessible label, not an empty cell. An empty cell is indistinguishable from data that failed to load.
A real table with scope on both axes, and group rows use scope="colgroup" so the grouping is structural.
import { PriceTable } from '@redrob-labs/ui';
| Prop | Type | Notes |
|---|---|---|
plans |
PricePlan[] |
|
rows |
PriceRow[] |
|
rowLabel |
React.ReactNode |
|
footNote |
React.ReactNode |
|
className |
string |