From d646e2310e4112ba7033795baa05e1c7d565e129 Mon Sep 17 00:00:00 2001 From: Ajax Davis Date: Sun, 11 Jan 2026 01:08:36 +1000 Subject: [PATCH] feat: add API Reference and Custom Executors to developer menu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add /docs/api (API Reference - REST & MCP endpoints) to nav - Add /docs/executors (Custom Executors - Deploy your own) to nav - Updated both desktop dropdown and mobile menu - Fix lint error in MobileMenu backdrop 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- apps/web/src/components/AppHeader.tsx | 4 +++- apps/web/src/components/MobileMenu.tsx | 8 +++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/apps/web/src/components/AppHeader.tsx b/apps/web/src/components/AppHeader.tsx index 412b67f..9a53909 100644 --- a/apps/web/src/components/AppHeader.tsx +++ b/apps/web/src/components/AppHeader.tsx @@ -1,11 +1,11 @@ 'use client'; -import { useSession } from '@/lib/auth-client'; import { Button } from '@tpmjs/ui/Button/Button'; import { Header } from '@tpmjs/ui/Header/Header'; import { Icon } from '@tpmjs/ui/Icon/Icon'; import Link from 'next/link'; import { useEffect, useRef, useState } from 'react'; +import { useSession } from '@/lib/auth-client'; import { MobileMenu } from './MobileMenu'; import { ThemeToggle } from './ThemeToggle'; @@ -94,6 +94,8 @@ function NavDropdown({ label, items }: NavDropdownProps): React.ReactElement { const developerItems: DropdownItem[] = [ { href: '/docs', label: 'Documentation', description: 'Guides and tutorials' }, + { href: '/docs/api', label: 'API Reference', description: 'REST & MCP endpoints' }, + { href: '/docs/executors', label: 'Custom Executors', description: 'Deploy your own' }, { href: '/sdk', label: 'SDK', description: 'Build with our SDK' }, { href: '/spec', label: 'Specification', description: 'TPMJS tool format' }, { href: '/integrations', label: 'Integrations', description: 'Connect your tools' }, diff --git a/apps/web/src/components/MobileMenu.tsx b/apps/web/src/components/MobileMenu.tsx index e5e1946..409c893 100644 --- a/apps/web/src/components/MobileMenu.tsx +++ b/apps/web/src/components/MobileMenu.tsx @@ -36,6 +36,8 @@ const navSections: NavSection[] = [ title: 'Developers', links: [ { href: '/docs', label: 'Documentation', description: 'Guides and tutorials' }, + { href: '/docs/api', label: 'API Reference', description: 'REST & MCP endpoints' }, + { href: '/docs/executors', label: 'Custom Executors', description: 'Deploy your own' }, { href: '/sdk', label: 'SDK', description: 'Build with our SDK' }, { href: '/spec', label: 'Specification', description: 'TPMJS tool format' }, { href: '/integrations', label: 'Integrations', description: 'Connect your tools' }, @@ -91,14 +93,14 @@ export function MobileMenu({ return ( <> - {/* Backdrop */} + {/* Backdrop - clicking closes the menu */} + {/* biome-ignore lint/a11y/useKeyWithClickEvents: Escape key handled globally via useEffect */}
e.key === 'Escape' && onClose()} - role="presentation" + aria-hidden="true" /> {/* Slide-out drawer */}