Spaces:
Running
Running
File size: 3,781 Bytes
4893387 7a538d9 8095e4f 7a538d9 8095e4f 7a538d9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>Promptly β Web Client</title>
<link rel="stylesheet" href="styles.css" />
<link rel="manifest" href="manifest.json" />
<meta name="theme-color" content="#0b1220" />
</head>
<body>
<div id="root" class="theme-dark">
<!-- Top bar -->
<header class="topbar glass">
<div class="brand">
<div class="logo">β‘</div>
<div class="titles">
<div class="title">Promptly</div>
<div class="subtitle">https://promptly-az40.onrender.com</div>
</div>
</div>
<div class="actions">
<button id="themeToggle" class="icon-btn" title="Toggle theme">π</button>
<div id="status" class="status disconnected">Disconnected</div>
</div>
</header>
<!-- Login overlay -->
<div id="loginOverlay" class="overlay">
<div class="login-card glass">
<div class="login-header">
<div class="login-logo">β‘</div>
<h2>Welcome to Promptly</h2>
<p class="muted">Sign in to connect to the realtime chat</p>
</div>
<form id="loginForm" class="login-form" autocomplete="off">
<label class="field">
<span>Username</span>
<input id="loginUsername" type="text" required maxlength="32" placeholder="Your username" />
</label>
<label class="field">
<span>Password</span>
<input id="loginPassword" type="password" required maxlength="64" placeholder="Your password" />
</label>
<div class="login-row">
<button id="loginSubmit" class="btn primary" type="submit">Sign in</button>
<button id="loginGuest" class="btn ghost" type="button">Continue as Guest</button>
</div>
<div class="login-foot muted">Secure connection over WSS Β· Supports Android file picker Β· No typed /send</div>
</form>
</div>
</div>
<!-- Main content -->
<main class="main">
<aside class="side glass">
<div class="panel">
<div class="panel-head">
<div>
<div class="mono small">WS URI:</div>
<div class="mono">https://promptly-az40.onrender.com</div>
</div>
</div>
<div class="panel-body">
<div class="quick-title">Quick</div>
<div class="muted small">Use the file button to upload. Files appear inline & downloadable.</div>
<div class="rows">
<div class="row"><strong>Mode:</strong> <span id="modeText">Handshake</span></div>
<div class="row"><strong>Users:</strong> <span id="onlineCount">0</span></div>
</div>
<div class="controls-vertical">
<button id="connectBtn" class="btn">Connect</button>
<button id="disconnectBtn" class="btn ghost" disabled>Disconnect</button>
</div>
</div>
</div>
</aside>
<section class="chat glass">
<div id="messages" class="messages" aria-live="polite"></div>
<div class="composer">
<input id="input" class="input" placeholder="Type a message or use file button..." />
<input id="filePicker" type="file" style="display:none" />
<button id="fileBtn" class="icon-btn" title="Upload file">π</button>
<button id="sendBtn" class="btn primary">Send</button>
</div>
</section>
</main>
<footer class="footer glass muted">
Client UI β glass login β chat. File upload via picker. Images preview + download. Dark / Light.
</footer>
</div>
<script src="app.js"></script>
</body>
</html> |