);
}
function ApproverDash() {
const ppl = [['Marta Rojas','CFO · AT',238,96.1],['Jan Huber','Director · AT',181,94.2],['Lena Eder','Controller · CH',142,97.8],['Stefan Weiss','Director · AT',97,88.4],['Ana Marković','Treasurer',54,99.1]];
return (
Vendor scorecard
{[['Gebrüder Weiss GmbH','VEN-0139','€214,820','A',97],['OMV Aktiengesellschaft','VEN-0041','€1,284,410','A',99],['Mondi Group AG','VEN-0308','€88,302','B',87],['Spar Österr. Warenh.','VEN-0512','€42,140','B',81],['Strabag SE','VEN-0019','€1,904,200','A',95]].map(([n,id,vol,g,s])=>(
);
}
function AIQualityDash() {
const fields = [['Vendor',99.4],['Amount',99.1],['VAT',97.8],['Lines',94.2],['Cost ctr',91.6],['PO link',89.3]];
return (
AI quality · field-level
Holdout · 2.4k
97.4%
Weighted extraction accuracy
);
}
/* ------------ 5. WORKFLOW ------------ */
function Workflow() {
const { t } = useT();
return (
{t('wf.h1.a')}
{t('wf.h1.b')}
{t('wf.approvalHead')}
{[
[t('wf.a1.t'), t('wf.a1.b')],
[t('wf.a2.t'), t('wf.a2.b')],
[t('wf.a3.t'), t('wf.a3.b')],
[t('wf.a4.t'), t('wf.a4.b')],
].map(([title, d]) => (
-
—
))}
{t('wf.paymentHead')}
{[
[t('wf.p1.t'), t('wf.p1.b')],
[t('wf.p2.t'), t('wf.p2.b')],
[t('wf.p3.t'), t('wf.p3.b')],
[t('wf.p4.t'), t('wf.p4.b')],
].map(([title, d]) => (
-
—
))}
{/* Approval UI screenshot framed as laptop */}
{t('wf.fig')}
{t('wf.figNote')}
);
}
/* ------------ 6. OBSERVABILITY ------------ */
function Observability() {
const { t } = useT();
const tiles = [
[t('obs.t1'),
],
[t('obs.t2'),
],
[t('obs.t3'),
],
[t('obs.t4'),
],
];
return (
{t('obs.h1.a')}
{t('obs.h1.b')}
{t('obs.lede')}
{tiles.map(([label, dash], i) => (
{dash}
{label}
Fig {String(i+2).padStart(2,'0')}
))}
);
}
/* ------------ 7. INTEGRATIONS ------------ */
function Integrations() {
const { t } = useT();
const erps = ['BMD','SAP','NetSuite','Dynamics 365','Business Central','Odoo','Abacus'];
const crms = ['Salesforce','Monday','Business Central','Twenty'];
const LogoTile = ({ name }) => (
{name}
);
return (
{t('int.h1.a')}
{t('int.h1.b')}
{t('int.erp')}
{erps.map(n => )}
{t('int.crm')}
{crms.map(n => )}
{t('int.foot')}
);
}
/* ------------ 8. CASE STUDY ------------ */
function CaseStudy() {
const { t } = useT();
return (
{t('case.h1.a')}
{t('case.h1.b')}
{t('case.h1.c')}
30 {t('case.big')}
{t('case.bigLabel')}
{t('case.bigSub')}
{t('case.body')}
{['DACH-live', 'BMD + Abacus', 'Multi-entity', 'Super-admin stand-in', 'Audit-verified'].map(x => (
{x}
))}
);
}
/* ------------ 9. NEXT STEPS ------------ */
function NextSteps() {
const { t } = useT();
const steps = [
[t('next.s1.w'), t('next.s1.t'), t('next.s1.b')],
[t('next.s2.w'), t('next.s2.t'), t('next.s2.b')],
[t('next.s3.w'), t('next.s3.t'), t('next.s3.b')],
];
return (
{t('next.h1')}
{steps.map(([w, title, d], i) => (
))}
{t('next.formH.a')}
{t('next.formH.b')}
);
}
/* ------------ FOOTER ------------ */
function Footer() {
const { t } = useT();
return (
);
}
Object.assign(window, { Workflow, Observability, Integrations, CaseStudy, NextSteps, Footer, ApprovalUIMock, FunnelDash, ApproverDash, VendorDash, AIQualityDash, DemoForm });