"use client"; import * as React from "react"; import { cn } from "./lib/utils"; export interface TwoFactorProps extends React.HTMLAttributes { /** Backup recovery codes; displays generated sample if omitted */ recoveryCodes?: string[]; onConfirm?: () => void; } /** Two-factor authentication setup: QR code + recovery backup codes. */ export function TwoFactor({ recoveryCodes, onConfirm, className, ...props }: TwoFactorProps) { const codes = recoveryCodes ?? [ "4F7A-9K2M", "B3X8-QP1D", "M2VD-88ZL", "T9RC-55WN", "J6HB-33YF", "W4KN-77TS", "P8QX-21GB", "R5ZM-66JV", ]; const [revealed, setRevealed] = React.useState(false); const [copied, setCopied] = React.useState(false); const copyAll = () => { try { void navigator.clipboard?.writeText(codes.join("\n")); } catch { /* yoksay */ } setCopied(true); setTimeout(() => setCopied(false), 1800); }; return (

Two-Factor Authentication

Scan the QR code with your authenticator application.

{/* QR simulator */}
); }