spb/company-atlas
Public
Python 66.3%
TypeScript 22.7%
JavaScript 8.6%
HTML 1.4%
CSS 0.7%
1import { Search } from 'lucide-react';2import type { Metadata } from 'next';3import Link from 'next/link';4import { Container, Note } from '@/components/ui/section';5import { PUBLIC_API_BASE, routes } from '@/lib/site';67export const metadata: Metadata = { title: 'Not found', robots: { index: false } };89/** 404 for the whole site and for company/event/sensor pages whose id does not resolve. */10export default function NotFound() {11 return (12 <Container className="py-16 md:py-24">13 <p className="eyebrow">404 · Not on the map</p>14 <h1 className="display mt-2 text-3xl md:text-5xl">No monitored record at this address.</h1>15 <p className="mt-4 max-w-xl text-[15px] leading-relaxed text-ink-2">The company may not be onboarded yet, the slug may have changed (ids never do), or the page never existed. Nothing is invented to fill the gap — search the atlas instead.</p>16 <form action="/search" method="get" role="search" className="mt-6 flex max-w-xl items-stretch border border-rule-strong bg-surface focus-within:border-accent">17 <label htmlFor="nf-q" className="sr-only">18 Search Company Atlas19 </label>20 <Search className="my-auto ml-3 size-4 shrink-0 text-ink-3" aria-hidden />21 <input id="nf-q" name="q" type="search" placeholder="Search companies, industries, countries…" className="h-11 min-w-0 flex-1 bg-transparent px-3 text-[16px] text-ink placeholder:text-ink-3 focus:outline-none" autoComplete="off" spellCheck={false} />22 <button type="submit" className="bg-ink px-4 text-sm font-medium text-canvas hover:opacity-90">23 Search24 </button>25 </form>26 <div className="mt-6 flex flex-wrap gap-2 text-sm">27 <Link href={routes.home()} className="btn">28 Home29 </Link>30 <Link href={routes.companies()} className="btn">31 Companies32 </Link>33 <Link href={routes.live()} className="btn">34 Live feed35 </Link>36 <Link href={routes.events()} className="btn">37 Events38 </Link>39 </div>40 <Note className="mt-8 max-w-xl">41 Canonical URLs: <span className="mono">/company/<slug></span>, <span className="mono">/industry/<slug></span>, <span className="mono">/country/<code></span>, <span className="mono">/events/<id></span>. Programmatic lookup: <span className="mono">{PUBLIC_API_BASE.replace(/^https?:\/\/www\./, '')}/search/suggest?q=…</span>42 </Note>43 </Container>44 );45}46