import { toString, QRCodeRenderersOptions } from 'qrcode'; type Colors = QRCodeRenderersOptions['color']; export interface WifiInfo { ssid: string; password: string; hidden: boolean; encryption: 'WPA' | 'WEP' | 'None'; } export interface MeCardInfo { adr?: string; bday?: string; email?: string; n?: string; nickname?: string; note?: string; sound?: string; tel?: string; tel_av?: string; url?: string; } // todo: css variables export async function generate_qr_code(data: string, colors?: Colors) { colors = colors || { dark: 'var(--theme-text-heading, currentcolor)', light: 'var(--theme-bg-main, transparent)' }; const svg = await toString(data, { type: 'svg', color: { dark: '#000000', light: '#ffffff' } }); const colored_svg = svg.replace(/#000000/g, colors.dark).replace(/#ffffff/g, colors.light).trim(); return colored_svg.replace(/^