@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.
@@ -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-FUEIKJLN.js';
4
+ export { standardNavIcons } from './chunk-FUEIKJLN.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,23 @@ 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 (Specs/Left-Navigation §9.2;
548
+ // Reference/UI-Platform, decided 2026-10-12). They are never rendered with
549
+ // `app="dashboard"`: that frame is the Relationship rail, which is how they
550
+ // came to show inside Relationship Mode. Their hosts are decided
551
+ // (UI-Platform, 2026-10-12): battleground.politogyvrm.com and
552
+ // districts.politogyvrm.com. Neither is live yet, so the pages are still
553
+ // served from the dashboard deployment and the origin below is that host.
554
+ // When a host goes live, change its origin here and its row's href in
555
+ // standardNav in the same release.
556
+ battleground: { title: "Battleground", origin: "https://dashboard.politogyvrm.com", storagePrefix: "battleground", mode: "campaign" },
557
+ districts: { title: "District Data", origin: "https://dashboard.politogyvrm.com", storagePrefix: "districts", mode: "campaign" },
546
558
  settings: { title: "Settings", origin: "https://settings.politogyvrm.com", storagePrefix: "settings" },
547
559
  petitions: {
548
560
  title: "Petitions",