diff --git a/plugin-designs/my-upg-100-list/upg-100-list.vue b/plugin-designs/my-upg-100-list/upg-100-list.vue index 3ce4a92bf..2c2ec1ad2 100644 --- a/plugin-designs/my-upg-100-list/upg-100-list.vue +++ b/plugin-designs/my-upg-100-list/upg-100-list.vue @@ -271,14 +271,35 @@ const LEGEND_TITLE = 'My UPG 100 List — Legend' // by coincidence — the catalog means the ROP-2.5 sense, not this bundle's). Prefixed ids own no // catalog entry, so the labels below are what render. If these tabs are ever translated, add // `upg100Region`/`upg100Zone`/`upg100Group` to tabs.json rather than reusing a generic key. +// ★ "Zone" RENAMED, ORDER DELIBERATELY UNCHANGED (2026-09-23). +// Driver: "the user does not know what zones means" — the thing the map paints IS +// a UPG-100 list (27 of them); "zone" was our internal word leaking into the UI. +// So the LABEL now names what it shows. Region stays as what it actually is: a way +// to SORT those lists by world area when you want that. +// +// ⚠ DO NOT REORDER THESE TO MAKE THE LIST TAB OPEN FIRST. Tab INDEX is coupled to +// tree DEPTH in the shared legend: `activeTab = Math.min(sel.depth, …)` and again +// on breadcrumb (SemanticTreeLegend ~231 and ~418). The tree nests region(0) → +// zone(1) → group(2), so moving zone to index 0 would make selecting a zone jump +// to the Region tab. Seven profiles share that component. +// Opening on the list tab is done the way the codebase already provides for it: +// `:default-tab="1"` at the call site — the prop country-posters added for exactly +// this ("it opens to the country's semantic level in the legend"). +// +// NOTE the warning above: these prefixed ids own no catalog entry, so THESE labels +// are what render. If the packet is ever translated, add upg100Zone / upg100Region +// / upg100Group to tabs.json rather than reusing a generic key. const LEGEND_TABS = [ { id: 'upg100Region', label: 'Region', - info: 'Region — the broadest grouping, one row per world area (Africa, India, Middle East, Deaf, …). Counts are the UUPGs and population summed across every zone beneath it.' }, - { id: 'upg100Zone', label: 'Zone', - info: 'Zone — the prayer zones inside a region (e.g. Frontier Asia (uncovered) within Asia, or the Indian states within India). This is the level the map paints and colours.' }, + info: 'Region — sort the UPG-100 lists by world area (Africa, India, Middle East, Deaf, …). Counts are the UUPGs and population summed across every list beneath it.' }, + { id: 'upg100Zone', label: 'UPG-100 Lists', + info: 'UPG-100 Lists — each one is a prayer list of the unreached people groups in an area, and is what the map paints and colours. Every list prints as its own packet.' }, { id: 'upg100Group', label: 'People Group', - info: 'People Group — the individual unreached groups inside a zone, largest prayer need first. Each map dot is one of these.' }, + info: 'People Group — the individual unreached groups inside a list, largest prayer need first. Each map dot is one of these.' }, ] +// The generation the legend OPENS on: index 1 = the UPG-100 Lists tab. A reader +// should meet the lists first and reach for Region only to sort them. +const LEGEND_DEFAULT_TAB = 1 const geocoderContext = 'people-groups' const geocoderPlaceholder = 'Search people group, zone, or territory…' @@ -1810,6 +1831,7 @@ onBeforeUnmount(() => { v-if="legendNodes.length" :nodes="legendNodes" :tabs="LEGEND_TABS" + :default-tab="LEGEND_DEFAULT_TAB" :columns="['count', 'pop']" :title="LEGEND_TITLE" :export-enabled="true"