doxa-maps/library/components/legends
Doxa Maps 9500375be8 Vertical legend emits a zone id, and cannot drop a zone
Reworked to the consuming dashboard's contract. It emits a zone id or null on
zone-change, not a selector: an id is serialisable into a query parameter, a
profile config and a deep link, which is the chain that dashboard already
resolves its list from, and a predicate is none of those. It also keeps the
component promotable -- a selector would have to know what it selects over, and
the consumer holds four different row shapes across its tabs. The join stays in
one place, where the diacritic folding and the province bridge already are.

A leaf emits its zone id; a region row emits the region's id and the consumer
expands it, because that is where the zone data lives.

And it cannot silently drop a zone. Four joinable zones are absent from the
region file today, one of them the consumer's largest at a hundred groups, so
grouping by region loses them with no error and no empty state -- just a shorter
tree. Given the full zone set, the legend renders the difference in an explicit
bucket, each one selectable. That makes the drop structurally impossible rather
than something to keep checking. Omit the set and the tree is untouched, so the
guard is additive.

Its check includes a negative control that the unaugmented tree really does omit
the largest zone, so the bucket is demonstrably not decoration.
2026-09-28 13:55:52 +00:00
..
ApproxPinNote.vue C4 wave 2: five library components share the guard, and keep their own English 2026-09-26 22:06:57 +00:00
LegendDesktop.vue legends: physical left/right -> logical, where the rule should mirror 2026-09-28 09:07:29 +00:00
LegendMobile.vue The prayer map's legends see the pins it draws 2026-09-27 02:17:35 +00:00
LegendProgressBar.vue Legend progress bar draws no empty segments, so its left end is rounded again 2026-09-27 23:14:15 +00:00
LegendRows.vue The legend mirrors in Arabic: logical insets instead of left/right 2026-09-26 22:06:57 +00:00
LegendTools.vue The legend mirrors in Arabic: logical insets instead of left/right 2026-09-26 22:06:57 +00:00
listSelection.js Vertical legend emits a zone id, and cannot drop a zone 2026-09-28 13:55:52 +00:00
ListSelectorLegend.vue Vertical legend emits a zone id, and cannot drop a zone 2026-09-28 13:55:52 +00:00
SemanticTreeLegend.vue legends: physical left/right -> logical, where the rule should mirror 2026-09-28 09:07:29 +00:00