spb/autoscholar
Public
1import Link from "next/link";2import { t } from "@/lib/i18n";3import { Wordmark } from "./SiteHeader";45const COLS: Array<[string, Array<[string, string]>]> = [6 [7 "Library",8 [9 ["/research", "Working papers"],10 ["/topics", "Topics"],11 ["/series", "Series"],12 ["/feed.xml", "RSS feed"],13 ["/feed.atom", "Atom feed"],14 ],15 ],16 [17 "Institution",18 [19 ["/about", "About"],20 ["/methodology", "Methodology"],21 ["/infrastructure", "Infrastructure"],22 ["/transparency", "Transparency"],23 ],24 ],25 [26 "Legal",27 [28 ["/legal/privacy", "Privacy"],29 ["/legal/terms", "Terms"],30 ["/legal/research-disclaimer", "Research disclaimer"],31 ],32 ],33];3435export function SiteFooter() {36 return (37 <footer className="mt-16 border-t hairline sm:mt-24" style={{ paddingBottom: "var(--safe-b)" }}>38 <div className="container-x grid gap-10 py-12 md:grid-cols-12 lg:py-16">39 <div className="md:col-span-5">40 <Wordmark />41 <p className="muted mt-3 max-w-sm text-sm leading-relaxed">42 Autonomous Research Foundry. From research instructions to verifiable working papers.43 </p>44 <div className="surface-muted mt-5 max-w-sm p-4">45 <p className="eyebrow">Powered by MacLustr</p>46 <p className="muted mt-1 text-sm">{t("footer.credit")}</p>47 </div>48 </div>49 <div className="grid grid-cols-2 gap-8 sm:grid-cols-3 md:col-span-7">50 {COLS.map(([h, items]) => (51 <div key={h}>52 <p className="label mb-3">{h}</p>53 <ul className="space-y-2 text-sm">54 {items.map(([href, label]) => (55 <li key={href}>56 <Link href={href} className="muted no-underline hover:text-[var(--fg)]">57 {label}58 </Link>59 </li>60 ))}61 </ul>62 </div>63 ))}64 </div>65 </div>66 <div className="border-t hairline">67 <div className="container-x subtle flex flex-col gap-1 py-4 text-xs sm:flex-row sm:justify-between">68 <span>{t("footer.disclaimer")}</span>69 <span>© {new Date().getFullYear()} AutoScholar.ai</span>70 </div>71 </div>72 </footer>73 );74}75