feat: add API Reference and Custom Executors to developer menu

- 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 <noreply@anthropic.com>
This commit is contained in:
Ajax Davis 2026-01-11 01:08:36 +10:00
parent 55ec58065e
commit d646e2310e
2 changed files with 8 additions and 4 deletions

View file

@ -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' },

View file

@ -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 */}
<div
className={`fixed inset-0 z-40 bg-black/50 transition-opacity duration-300 ${
isOpen ? 'opacity-100' : 'opacity-0 pointer-events-none'
}`}
onClick={onClose}
onKeyDown={(e) => e.key === 'Escape' && onClose()}
role="presentation"
aria-hidden="true"
/>
{/* Slide-out drawer */}