/* === library.jsx ==================================================== Login screen + Demo library home page for UpFlux Studio. ===================================================================== */ const DEFAULT_STUDIO_PASSWORD = 'upflux2026'; /* Read the current password from localStorage; falls back to the default on first run. Persisted plain (no hashing) — this is a soft access gate for sales team, not a security boundary. */ function getStudioPassword() { try { const stored = localStorage.getItem('studio_password'); return (stored && stored.length > 0) ? stored : DEFAULT_STUDIO_PASSWORD; } catch { return DEFAULT_STUDIO_PASSWORD; } } function setStudioPassword(next) { try { localStorage.setItem('studio_password', next); } catch {} } /* ================================================================== LOGIN SCREEN ================================================================== */ function LoginScreen({ onAuth }) { const [pwd, setPwd] = React.useState(''); const [err, setErr] = React.useState(false); const submit = (e) => { e?.preventDefault(); if (pwd === getStudioPassword()) onAuth(); else { setErr(true); setTimeout(() => setErr(false), 1800); } }; return (
Crie uma demo nova, abra uma existente ou clone para começar rápido a partir de um template.
assets/ no servidor para deixá-lo
permanente e visível em qualquer dispositivo. Os números podem ser ajustados por cliente no
modo edição, direto na tela.
assets/ no servidor
e cole o caminho. Vídeo aceita MP4 (upload) ou link Loom/Vimeo/YouTube.