export const esc = (s: unknown) => String(s).replace(/&/g, "&").replace(//g, ">").replace(/"/g, """); export interface Badge { text: string; cls: string; href?: string; title?: string; } export function badge(b: Badge): string { const cls = `badge ${b.cls} badge-xs`; const title = b.title ? ` title="${esc(b.title)}"` : ""; return b.href ? `${esc(b.text)}` : `${esc(b.text)}`; } export const LEGEND: { label: string; cls: string }[] = [ { label: "reference (fk)", cls: "badge-soft badge-info" }, { label: "contains (nested)", cls: "badge-soft badge-secondary" }, { label: "indexed / pk", cls: "badge-soft badge-success" }, { label: "required", cls: "badge-soft badge-error" }, { label: "deprecated", cls: "badge-soft badge-warning" }, { label: "enum", cls: "badge-soft badge-accent" }, { label: "optional", cls: "badge-soft badge-neutral" }, ]; export function legendHtml(): string { return LEGEND.map((l) => `${esc(l.label)}`).join(" "); }