// Site footer, copied from the canonical appview fragment // appview/pages/templates/layouts/fragments/footer.html (the Svelte repo-view // footer was removed from this working tree; this is the same product footer — // same columns, links, and styles). Icons are omitted; all links are absolute // since the status worker only serves this origin. import { LOGOTYPE_SVG } from './logotype'; const linkClass = 'text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-200 hover:underline inline-flex gap-1 items-center'; const headerClass = 'text-gray-900 dark:text-gray-200 font-bold text-sm tracking-wide mb-1'; function column(title: string, links: [string, string, boolean][]): string { const items = links .map(([href, label, external]) => `${escapeHtml(label)}`, ) .join('\n '); return `
${escapeHtml(title)}
${items}
`; } function escapeHtml(s: string): string { return s .replace(/&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, '''); } export const FOOTER_HTML = ``;