@the-portland-company/shell 0.77.0 → 0.79.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.
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { ReactNode } from 'react';
3
- import { S as StandardNavIconKey, f as NavIcon, N as NavItem, g as NavBreadcrumb, h as StandardNavMode, i as NavLinkComponent, j as NavChromeFetcher, k as NavMode, l as NavUserMenu, m as NavOrgOption, b as NotificationsAdapter, o as NavFooter, p as NavDisplayMode } from './index-Cu5frXRQ.cjs';
3
+ import { S as StandardNavIconKey, f as NavIcon, N as NavItem, g as NavBreadcrumb, h as StandardNavMode, i as NavLinkComponent, j as NavChromeFetcher, k as NavMode, l as NavUserMenu, m as NavOrgOption, b as NotificationsAdapter, o as NavFooter, p as NavDisplayMode } from './index-fydj5EU2.cjs';
4
4
  import './theme-preference.cjs';
5
5
 
6
6
  /**
@@ -89,7 +89,7 @@ type LoadingScreenProps = {
89
89
  declare function LoadingScreen({ bootProgress, syntheticReady, visible, onExitComplete, }: LoadingScreenProps): react_jsx_runtime.JSX.Element | null;
90
90
 
91
91
  /** Every app that renders the shared chrome. Keyed by its subdomain. */
92
- type PolitogyAppKey = 'vrm' | 'contacts' | 'forms' | 'surveys' | 'polls' | 'petitions' | 'dashboard' | 'settings' | 'email' | 'a2p' | 'phonebank' | 'canvass' | 'signs' | 'ctas';
92
+ type PolitogyAppKey = 'vrm' | 'contacts' | 'forms' | 'surveys' | 'polls' | 'petitions' | 'dashboard' | 'settings' | 'battleground' | 'districts' | 'email' | 'a2p' | 'phonebank' | 'canvass' | 'signs' | 'ctas';
93
93
  /**
94
94
  * The operating Mode an app is scoped to, if any. It drives two things,
95
95
  * BOTH derived here from app identity so no app passes chrome config:
@@ -201,7 +201,7 @@ type PolitogyFrameData = {
201
201
  count?: string | number | null;
202
202
  };
203
203
  /**
204
- * Top-level standard-nav rows to omit, by label (e.g. `['Polls', 'CTAs']`).
204
+ * Top-level standard-nav rows to omit, by label (e.g. `['Forms', 'Surveys']`).
205
205
  * The Specs/Contacts design rail shows exactly Dashboard · Contacts · Email
206
206
  * broadcast · SMS/MMS blast / Calls to action · Forms · Surveys / My profile
207
207
  * · Organization settings. Default: nothing hidden.
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { ReactNode } from 'react';
3
- import { S as StandardNavIconKey, f as NavIcon, N as NavItem, g as NavBreadcrumb, h as StandardNavMode, i as NavLinkComponent, j as NavChromeFetcher, k as NavMode, l as NavUserMenu, m as NavOrgOption, b as NotificationsAdapter, o as NavFooter, p as NavDisplayMode } from './index-DJ3qBzfQ.js';
3
+ import { S as StandardNavIconKey, f as NavIcon, N as NavItem, g as NavBreadcrumb, h as StandardNavMode, i as NavLinkComponent, j as NavChromeFetcher, k as NavMode, l as NavUserMenu, m as NavOrgOption, b as NotificationsAdapter, o as NavFooter, p as NavDisplayMode } from './index-KGYMc_1i.js';
4
4
  import './theme-preference.js';
5
5
 
6
6
  /**
@@ -89,7 +89,7 @@ type LoadingScreenProps = {
89
89
  declare function LoadingScreen({ bootProgress, syntheticReady, visible, onExitComplete, }: LoadingScreenProps): react_jsx_runtime.JSX.Element | null;
90
90
 
91
91
  /** Every app that renders the shared chrome. Keyed by its subdomain. */
92
- type PolitogyAppKey = 'vrm' | 'contacts' | 'forms' | 'surveys' | 'polls' | 'petitions' | 'dashboard' | 'settings' | 'email' | 'a2p' | 'phonebank' | 'canvass' | 'signs' | 'ctas';
92
+ type PolitogyAppKey = 'vrm' | 'contacts' | 'forms' | 'surveys' | 'polls' | 'petitions' | 'dashboard' | 'settings' | 'battleground' | 'districts' | 'email' | 'a2p' | 'phonebank' | 'canvass' | 'signs' | 'ctas';
93
93
  /**
94
94
  * The operating Mode an app is scoped to, if any. It drives two things,
95
95
  * BOTH derived here from app identity so no app passes chrome config:
@@ -201,7 +201,7 @@ type PolitogyFrameData = {
201
201
  count?: string | number | null;
202
202
  };
203
203
  /**
204
- * Top-level standard-nav rows to omit, by label (e.g. `['Polls', 'CTAs']`).
204
+ * Top-level standard-nav rows to omit, by label (e.g. `['Forms', 'Surveys']`).
205
205
  * The Specs/Contacts design rail shows exactly Dashboard · Contacts · Email
206
206
  * broadcast · SMS/MMS blast / Calls to action · Forms · Surveys / My profile
207
207
  * · Organization settings. Default: nothing hidden.
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { broadcastLogout, watchLogout } from './chunk-LL6LSJAH.js';
3
- import { clearBetaBannerDismissal, standardPolitogyNav, standardNavIcons, isNavItemActive, NavAppShell } from './chunk-GGM4AD43.js';
4
- export { standardNavIcons } from './chunk-GGM4AD43.js';
3
+ import { clearBetaBannerDismissal, standardPolitogyNav, standardNavIcons, isNavItemActive, NavAppShell } from './chunk-KXVRYN5D.js';
4
+ export { standardNavIcons } from './chunk-KXVRYN5D.js';
5
5
  import { warnDeprecated, NavChromeProvider, TopBarWidgetSlot, FuelAction, SpecOverlayAction, NotificationsAction, SupportAction, useChromeMe, useNavChromeDedupedFetch, useChromeOrgs, useNavChromeFetcher } from './chunk-TUK2IEL5.js';
6
6
  import './chunk-BHRVZPZ7.js';
7
7
  import { NAV_DISPLAY_DEFAULT, resolveNavDisplay, writeNavDisplayLocal, writeNavDisplayCookie, isNavDisplayPreference, NAV_DISPLAY_STORAGE_KEY, readNavDisplayCookie } from './chunk-7YVJ7HQG.js';
@@ -538,11 +538,20 @@ var POLITOGY_APPS = {
538
538
  polls: { title: "Polls", origin: "https://polls.politogyvrm.com", storagePrefix: "polls", mode: "campaign", grants: ["title"] },
539
539
  ctas: { title: "CTAs", origin: "https://ctas.politogyvrm.com", storagePrefix: "ctas", grants: ["title"] },
540
540
  // V2 apps that replace retired app.politogyvrm.com pages (Reference/
541
- // UI-Platform v42 "Retirement of app.politogyvrm.com"). Dashboard hosts the
542
- // Relationship Dashboard + Campaign Battleground/District data/Campaigns
543
- // (Specs/Relationship-Dashboard); Settings hosts org settings & billing
544
- // (Specs/Organization-Settings).
541
+ // UI-Platform v42 "Retirement of app.politogyvrm.com"). Dashboard is the
542
+ // Relationship Dashboard, the Relationship Mode landing page, and nothing
543
+ // else (Specs/Relationship-Dashboard §1A "Relationship Mode only"); Settings
544
+ // hosts org settings & billing (Specs/Organization-Settings).
545
545
  dashboard: { title: "Dashboard", origin: "https://dashboard.politogyvrm.com", storagePrefix: "dashboard" },
546
+ // Battleground (the Campaign Mode landing page) and District Data are
547
+ // Campaign Mode features, each its own app on its own host (Specs/Left-
548
+ // Navigation §9.2, §13, §14; Reference/UI-Platform, decided 2026-10-12).
549
+ // They are never rendered with `app="dashboard"`: that frame is the
550
+ // Relationship rail. The dashboard deployment serves these hosts
551
+ // (politogy-dashboard #47) and redirects its old /battleground and
552
+ // /districts paths here; the rows' hrefs in standardNav move together.
553
+ battleground: { title: "Battleground", origin: "https://battleground.politogyvrm.com", storagePrefix: "battleground", mode: "campaign" },
554
+ districts: { title: "District Data", origin: "https://districts.politogyvrm.com", storagePrefix: "districts", mode: "campaign" },
546
555
  settings: { title: "Settings", origin: "https://settings.politogyvrm.com", storagePrefix: "settings" },
547
556
  petitions: {
548
557
  title: "Petitions",