/** * Password visibility toggle for all password inputs. * Wraps inputs on load; preserves autofill via type toggle only. */ (function () { "use strict"; var EYE = ''; var EYE_OFF = ''; function enhanceInput(input) { if (!input || input.type !== "password") return; if (input.closest(".password-field-wrap")) return; var wrap = document.createElement("div"); wrap.className = "password-field-wrap"; input.parentNode.insertBefore(wrap, input); wrap.appendChild(input); var btn = document.createElement("button"); btn.type = "button"; btn.className = "password-toggle-btn"; btn.setAttribute("aria-label", "Show password"); btn.setAttribute("aria-pressed", "false"); btn.innerHTML = EYE; wrap.appendChild(btn); btn.addEventListener("click", function () { var showing = input.type === "text"; input.type = showing ? "password" : "text"; btn.setAttribute("aria-label", showing ? "Show password" : "Hide password"); btn.setAttribute("aria-pressed", showing ? "false" : "true"); btn.innerHTML = showing ? EYE : EYE_OFF; }); } function init() { document.querySelectorAll('input[type="password"]').forEach(enhanceInput); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", init); } else { init(); } })();