// QR rendering via the zero-dependency `qrcode-generator` library, output as a // crisp SVG path (scales perfectly, no canvas, prints well on a paper wallet). import qrcode from 'qrcode-generator'; export function qrSvg(text, { margin = 2 } = {}) { const qr = qrcode(0, 'M'); // type 0 = auto-size, error correction M qr.addData(text); qr.make(); const count = qr.getModuleCount(); const size = count + margin * 2; let path = ''; for (let r = 0; r < count; r++) { for (let c = 0; c < count; c++) { if (qr.isDark(r, c)) { path += `M${c + margin},${r + margin}h1v1h-1z`; } } } return ` `; }