@the-portland-company/shell 0.96.0 → 0.96.1

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,11 @@
1
+ ## 0.96.1
2
+
3
+ Privacy, Terms and Subscriptions open in a new tab (Ben 2026-11-04: clicking Privacy replaced the app with the public Politogy ID page, with no left bar or top bar).
4
+
5
+ - **Left-bar footer links honor `external`.** `NavFooterLink.external` was documented as "opens in a new tab" but the rail footer ignored it, so every app sent the user away from the app in the same tab. External links now get `target="_blank"` and `rel="noopener noreferrer"`; links without `external` keep opening in the same tab. Every app on the frame gets this with a version bump and no code change.
6
+ - **Privacy and Terms point at the website** (Ben 2026-11-04: "Yes, point them now"): Privacy `https://politogyvrm.com/privacy` (was Politogy ID `/privacy-policy`), Terms `https://politogyvrm.com/terms-of-service` (was `/terms-and-conditions`). Subscriptions is unchanged. `footerLinks()` no longer depends on the host, so staging links to the same public pages.
7
+ - Tests: `__tests__/native.test.tsx` ("opens external legal links in a new tab"), `__tests__/retiredHostLinks.test.tsx` (the three addresses).
8
+
1
9
  ## 0.96.0
2
10
 
3
11
  One shared "⋯" row menu for list rows (Ben 2026-10-26: Email's broadcast menu stuck open, and on the last row Archive and Delete were cut off by the table frame).
@@ -3180,6 +3180,7 @@ function NavSidebar({
3180
3180
  "a",
3181
3181
  {
3182
3182
  href: safeHref(l.href),
3183
+ ...l.external ? { target: "_blank", rel: "noopener noreferrer" } : {},
3183
3184
  className: "text-[color:var(--sidebar-caption,var(--sidebar-text-muted,var(--muted)))] hover:text-[color:var(--sidebar-text,var(--foreground))] hover:underline",
3184
3185
  children: l.label
3185
3186
  }
@@ -5668,14 +5669,11 @@ function useIsSuperAdmin() {
5668
5669
  return (state?.orgs ?? []).some((o) => /super/i.test(o.rawRole ?? ""));
5669
5670
  }
5670
5671
  function footerLinks() {
5671
- const auth = authBaseUrl();
5672
- return [
5673
- { label: "Privacy", href: `${auth}/privacy-policy`, external: true },
5674
- { label: "Terms", href: `${auth}/terms-and-conditions`, external: true },
5675
- ...FOOTER_LINKS_STATIC
5676
- ];
5672
+ return FOOTER_LINKS.map((l) => ({ ...l }));
5677
5673
  }
5678
- var FOOTER_LINKS_STATIC = [
5674
+ var FOOTER_LINKS = [
5675
+ { label: "Privacy", href: "https://politogyvrm.com/privacy", external: true },
5676
+ { label: "Terms", href: "https://politogyvrm.com/terms-of-service", external: true },
5679
5677
  {
5680
5678
  label: "Subscriptions",
5681
5679
  href: "https://politogyvrm.com/subscription-cancellation-policy",