<.auth_container> <.form :let={f} for={@conn.params} action={Routes.auth_path(@conn, :verify_2fa_recovery_code)} class="flex flex-col gap-y-6" onsubmit="document.getElementById('use-code-button').disabled = true" >
<.input type="text" field={f[:recovery_code]} autocomplete="off" autofocus="autofocus" maxlength="10" oninvalid="document.getElementById('use-code-button').disabled = false" required="required" placeholder="Recovery code" mt?={false} />

{@error}

<.button id="use-code-button" type="submit" mt?={false} class="w-full [&>span.label-enabled]:block [&>span.label-disabled]:hidden [&[disabled]>span.label-enabled]:hidden [&[disabled]>span.label-disabled]:block" > Verify <.spinner class="inline-block h-5 w-5 mr-2 text-white dark:text-gray-400" /> Verifying...

<.styled_link href={Routes.auth_path(@conn, :verify_2fa)}> Use authenticator app instead

Lost your recovery codes? <.styled_link href="https://plausible.io/contact"> Contact us