"use client"; import { useReveal } from "@/hooks/use-reveal"; import { useT } from "@/components/locale-provider"; const CHAIN = [ ["01", { en: "Official APIs", sv: "Officiella API:er" }, { en: "GLEIF · Brreg · Companies House", sv: "GLEIF · Brreg · Companies House" }, "var(--prov-3)"], ["02", { en: "Authorized web", sv: "Auktoriserad webb" }, { en: "robots.txt. Rate limits.", sv: "robots.txt. Rate limits." }, "var(--prov-1)"], ["03", { en: "Licensed partner data", sv: "Licensierad partnerdata" }, { en: "Contracted access.", sv: "Avtalad åtkomst." }, "var(--prov-2)"], ["04", { en: "Otherwise: empty", sv: "Annars: tomt" }, { en: "We never guess.", sv: "Vi gissar aldrig." }, "transparent"], ] as const; const PIPELINE = [ { en: "Source racing", sv: "Källracing" }, { en: "Extraction", sv: "Extraktion" }, { en: "Structuring", sv: "Strukturering" }, { en: "Enrichment", sv: "Berikning" }, { en: "QA", sv: "QA" }, ] as const; export function TechnologySection() { const ref = useReveal(); const t = useT(); return (
{/* graph-paper hairline texture */}
{/* oversized faint section numeral */} 03

{t({ en: "The engine", sv: "Motorn" })}

{t({ en: "Lawfully collected.", sv: "Lagligt insamlat." })}
{t({ en: "Traceable at every step.", sv: "Spårbart varje steg." })}

{/* sourcing chain */}

{t({ en: "The sourcing chain — by priority", sv: "Källkedjan — i prioritet" })}

{CHAIN.map(([n, title, sub, color], i) => (
{/* hairline draw on hover */}
{n}

{t(title)}

{t(sub)}

))}
{/* pipeline */}

{t({ en: "The pipeline", sv: "Pipelinen" })}

{PIPELINE.map((s, i) => (
{String(i + 1).padStart(2, "0")} {t(s)} {i < PIPELINE.length - 1 ? / : null}
))}

{t({ en: "QA runs inside the pipeline. Not on the side.", sv: "QA körs i pipelinen. Inte vid sidan om." })}

); }