@the-portland-company/shell 0.77.0 → 0.78.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## 0.78.0
2
+
3
+ Dashboard, Battleground and District Data are three features in two Modes; no Polls row in the Relationship left bar. Specs cited: Reference/UI-Platform "Dashboard, Battleground and District Data are three features in two Modes" (decided 2026-10-12, Ben), Specs/Left-Navigation §9.1 and §9.2.
4
+
5
+ - **New registry rows `battleground` and `districts`**, both `mode: 'campaign'`, titles "Battleground" and "District Data". The Dashboard deployment must render those two pages with `app="battleground"` / `app="districts"`, never `app="dashboard"`: the `dashboard` row is unscoped, so it draws the Relationship rail, which is how both pages showed inside Relationship Mode with a "Dashboard · Battleground · District Data" strip above the header (measured 2026-10-12). Their hosts are decided (`battleground.politogyvrm.com`, `districts.politogyvrm.com`; UI-Platform, 2026-10-12) but not live, so both origins and both left-bar links stay on the dashboard host until each goes live.
6
+ - **`dashboard` row unchanged** in behavior; its comment now says it is the Relationship Dashboard only.
7
+
8
+ Polls: Spec cited: Specs/Left-Navigation §9.1 ("Polls is not a Relationship row. Polling is a Campaign Mode feature only").
9
+
10
+ - **Relationship tree.** `standardPolitogyNav` no longer adds a `Polls` row to the Collect section (it was restored in 0.75.0). Collect is Calls to action, Forms, Surveys. Seen live on dashboard.politogyvrm.com in Relationship Mode on 2026-10-12.
11
+ - **Campaign tree unchanged.** `Polling` stays under Research, and the `polls` registry entry is already `mode: 'campaign'`, so the Polls app keeps an active row.
12
+ - **For consumers.** `hiddenItems: ['Polls']` is now a no-op and can be dropped.
13
+ - Tests: `__tests__/standardNav.test.ts`.
14
+
1
15
  ## 0.77.0
2
16
 
3
17
  No theme control in the account menu. Specs cited: Reference/UI-Platform "Theme — light only (Dark Mode retired)" and "There is no theme control … Apps must not render any theme control"; Reference/Global-Rules "Theming — Light Only".
@@ -2361,16 +2361,9 @@ function standardPolitogyNav(opts) {
2361
2361
  href: withOrg("https://surveys.politogyvrm.com/surveys"),
2362
2362
  children: APP_SURVEYS_CHILDREN.map((c) => ({ label: c.label, icon: icon(c.icon), href: withOrg(c.href) }))
2363
2363
  },
2364
- // Polls (polls.politogyvrm.com) — kept in the default Collect section;
2365
- // apps that want it hidden pass `hiddenItems: ['Polls']`. Regression:
2366
- // dropped entirely in 03c4dc2 when app.politogyvrm.com retired; restored
2367
- // here (this row is independent of the retired app).
2368
- {
2369
- label: "Polls",
2370
- icon: icon("chartNoAxes"),
2371
- href: withOrg(POLLS_ORIGIN),
2372
- children: APP_POLLS_CHILDREN.map((c) => ({ label: c.label, icon: icon(c.icon), href: withOrg(c.href) }))
2373
- },
2364
+ // No Polls row here: Polling is a Campaign Mode feature only
2365
+ // (Specs/Left-Navigation §9.1 "Polls is not a Relationship row"). Its
2366
+ // row is "Polling" under Research in the Campaign tree below.
2374
2367
  ...accountRows()
2375
2368
  ];
2376
2369
  };
@@ -2384,11 +2377,14 @@ function standardPolitogyNav(opts) {
2384
2377
  // Battleground is the Campaign landing page; there is no Campaign
2385
2378
  // Dashboard row, and Voter Contact and Tribes have no row.
2386
2379
  { kind: "section", label: "Race data" },
2387
- // Battleground moved to the Dashboard app (dashboard.politogyvrm.com)
2388
- // until a dedicated Battleground host is decided (UI-Platform route table).
2380
+ // Battleground is its own Campaign Mode app (registry key
2381
+ // `battleground`), not part of the Dashboard. It is served from the
2382
+ // dashboard deployment only until battleground.politogyvrm.com is live
2383
+ // (Reference/UI-Platform, decided 2026-10-12).
2389
2384
  { label: "Battleground", icon: icon("crosshair"), href: withOrg(`${DASHBOARD_ORIGIN}battleground`) },
2390
- // District data moved to the Dashboard app (dashboard.politogyvrm.com)
2391
- // per Reference/UI-Platform v44.
2385
+ // District Data is its own Campaign Mode app (registry key
2386
+ // `districts`); served from the dashboard deployment until
2387
+ // districts.politogyvrm.com is live.
2392
2388
  { label: "District data", icon: icon("landmark"), href: withOrg(`${DASHBOARD_ORIGIN}districts`) },
2393
2389
  { kind: "section", label: "Research" },
2394
2390
  {
@@ -4549,11 +4545,23 @@ var POLITOGY_APPS = {
4549
4545
  polls: { title: "Polls", origin: "https://polls.politogyvrm.com", storagePrefix: "polls", mode: "campaign", grants: ["title"] },
4550
4546
  ctas: { title: "CTAs", origin: "https://ctas.politogyvrm.com", storagePrefix: "ctas", grants: ["title"] },
4551
4547
  // V2 apps that replace retired app.politogyvrm.com pages (Reference/
4552
- // UI-Platform v42 "Retirement of app.politogyvrm.com"). Dashboard hosts the
4553
- // Relationship Dashboard + Campaign Battleground/District data/Campaigns
4554
- // (Specs/Relationship-Dashboard); Settings hosts org settings & billing
4555
- // (Specs/Organization-Settings).
4548
+ // UI-Platform v42 "Retirement of app.politogyvrm.com"). Dashboard is the
4549
+ // Relationship Dashboard, the Relationship Mode landing page, and nothing
4550
+ // else (Specs/Relationship-Dashboard §1A "Relationship Mode only"); Settings
4551
+ // hosts org settings & billing (Specs/Organization-Settings).
4556
4552
  dashboard: { title: "Dashboard", origin: "https://dashboard.politogyvrm.com", storagePrefix: "dashboard" },
4553
+ // Battleground (the Campaign Mode landing page) and District Data are
4554
+ // Campaign Mode features, each its own app (Specs/Left-Navigation §9.2;
4555
+ // Reference/UI-Platform, decided 2026-10-12). They are never rendered with
4556
+ // `app="dashboard"`: that frame is the Relationship rail, which is how they
4557
+ // came to show inside Relationship Mode. Their hosts are decided
4558
+ // (UI-Platform, 2026-10-12): battleground.politogyvrm.com and
4559
+ // districts.politogyvrm.com. Neither is live yet, so the pages are still
4560
+ // served from the dashboard deployment and the origin below is that host.
4561
+ // When a host goes live, change its origin here and its row's href in
4562
+ // standardNav in the same release.
4563
+ battleground: { title: "Battleground", origin: "https://dashboard.politogyvrm.com", storagePrefix: "battleground", mode: "campaign" },
4564
+ districts: { title: "District Data", origin: "https://dashboard.politogyvrm.com", storagePrefix: "districts", mode: "campaign" },
4557
4565
  settings: { title: "Settings", origin: "https://settings.politogyvrm.com", storagePrefix: "settings" },
4558
4566
  petitions: {
4559
4567
  title: "Petitions",