@@ -39,8 +39,9 @@ const headingClass =
3939
4040/**
4141 * The shared marketing-site footer for all three apps. The brand column, social
42- * row, the Applications cross-links, the Company column and copyright are
43- * derived from CURRENT_APP + APP_CONFIGS so each app reskins automatically;
42+ * row, the Applications cross-links (the three apps, then xbrlkit), the Company
43+ * column and copyright are derived from CURRENT_APP + APP_CONFIGS so each app
44+ * reskins automatically;
4445 * only the tagline and Product links vary and are passed in. Contact stays
4546 * per-app via the `contactModal` prop.
4647 */
@@ -187,6 +188,22 @@ export function LandingFooter({
187188 </ li >
188189 )
189190 } ) }
191+ < li >
192+ { /* xbrlkit, the free report viewer with its MCP server, is an
193+ application in its own right, listed after the three apps. It
194+ is a standalone site on its own domain, not an app config, so it
195+ is always an external link (absolute URL, new tab) from every
196+ app. Named the way the site names itself: "viewer" left its
197+ wordmark when /mcp made it a second function. */ }
198+ < Link
199+ href = "https://xbrlkit.com"
200+ target = "_blank"
201+ rel = "noopener noreferrer"
202+ className = { linkClass }
203+ >
204+ xbrlkit
205+ </ Link >
206+ </ li >
190207 </ ul >
191208 </ div >
192209
@@ -202,20 +219,6 @@ export function LandingFooter({
202219 Research
203220 </ Link >
204221 </ li >
205- < li >
206- { /* xbrlkit — the report viewer and its MCP connect page, a standalone
207- public site on its own domain, always an external link (absolute
208- URL, new tab) from every app. Named the way the site names itself:
209- "viewer" left its wordmark when /mcp made it a second function. */ }
210- < Link
211- href = "https://xbrlkit.com"
212- target = "_blank"
213- rel = "noopener noreferrer"
214- className = { linkClass }
215- >
216- xbrlkit
217- </ Link >
218- </ li >
219222 < li >
220223 < Link
221224 href = { resolvedBlogHref }
0 commit comments