(encodedPath)
| 12390 | placeholder="Confirm password"> |
| 12391 | </div> |
| 12392 | <div id="setup-status" class="hidden p-3 rounded-lg text-sm"></div> |
| 12393 | <button type="submit" id="setup-btn" |
| 12394 | class="w-full bg-sky-600 hover:bg-sky-700 text-white font-semibold py-2 px-4 rounded-lg transition-colors"> |
| 12395 | Enable Authentication |
| 12396 | </button> |
| 12397 | </form> |
| 12398 | `; |
| 12399 | } else { |
| 12400 | // Show management panel |
| 12401 | let hwBadge = status.hw_match |
| 12402 | ? '<span class="text-green-400 text-xs">Hardware matched</span>' |
| 12403 | : '<span class="text-red-400 text-xs">Hardware mismatch!</span>'; |
| 12404 | |
| 12405 | container.innerHTML = ` |
| 12406 | <div class="space-y-4"> |
| 12407 | <div class="flex items-center justify-between"> |
| 12408 | <div> |
| 12409 | <span class="text-green-400 font-medium">Authentication Enabled</span> |
| 12410 | <span class="mx-2 text-gray-500">|</span> |
| 12411 | ${hwBadge} |
| 12412 | <span class="mx-2 text-gray-500">|</span> |
| 12413 | <span class="text-gray-400 text-xs">${status.recovery_codes_remaining} recovery codes remaining</span> |
| 12414 | </div> |
| 12415 | </div> |
| 12416 | |
| 12417 | <!-- Change Password --> |
| 12418 | <div class="glass rounded-lg p-4"> |
| 12419 | <h4 class="font-medium mb-3">Change Password</h4> |
| 12420 | <form id="change-pw-form" onsubmit="handleChangePassword(event)" class="space-y-3"> |
| 12421 | <input type="password" id="current-password" required autocomplete="current-password" |
| 12422 | class="w-full px-3 py-2 rounded-lg bg-slate-700 border border-slate-600 text-white placeholder-gray-400 focus:ring-2 focus:ring-sky-500 outline-none" |
| 12423 | placeholder="Current password"> |
| 12424 | <input type="password" id="new-password" required minlength="8" autocomplete="new-password" |
| 12425 | class="w-full px-3 py-2 rounded-lg bg-slate-700 border border-slate-600 text-white placeholder-gray-400 focus:ring-2 focus:ring-sky-500 outline-none" |
| 12426 | placeholder="New password (min 8 chars)"> |
| 12427 | <input type="password" id="confirm-new-password" required minlength="8" autocomplete="new-password" |
| 12428 | class="w-full px-3 py-2 rounded-lg bg-slate-700 border border-slate-600 text-white placeholder-gray-400 focus:ring-2 focus:ring-sky-500 outline-none" |
| 12429 | placeholder="Confirm new password"> |
| 12430 | <div id="change-pw-status" class="hidden p-3 rounded-lg text-sm"></div> |
| 12431 | <button type="submit" |
| 12432 | class="bg-sky-600 hover:bg-sky-700 text-white px-4 py-2 rounded-lg transition-colors text-sm"> |
| 12433 | Change Password |
| 12434 | </button> |
nothing calls this directly
no test coverage detected