1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 6 <title>HyperDock - Community Forum</title> 7 <meta name="description" content="HyperDock is an open community forum. No registration needed. Post freely!" /> 8 <link rel="preconnect" href="https://fonts.googleapis.com" /> 9 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> 10 <link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700;900&family=Fira+Sans:wght@300;400;500;600;700&display=swap" rel="stylesheet" /> 11 <link rel="stylesheet" href="style.css" /> 12</head> 13<body> 14 15 <div id="page-wrap"> 16 17 <!-- ââââââââââââââââââ SITE HEADER ââââââââââââââââââ --> 18 <header id="site-header"> 19 <div id="header-grid-bg"></div> 20 <div id="header-overlay"> 21 <div id="header-logo"> 22 <span class="logo-tech">Hyper</span><span class="logo-hub">Dock</span> 23 </div> 24 <div id="header-tagline">:: CODING - LOGIC - ALGORITHMS ::</div> 25 <div id="header-marquee-wrap"> 26 <div id="header-marquee"> 27 $ Welcome to HyperDock! $ Join the discussion $ No registration needed $ Post freely $ Real-time community $</div> 28 </div> 29 </div> 30 </header> 31 32 <!-- ââââââââââââââââââ NAV BAR ââââââââââââââââââ --> 33 <nav id="top-nav-bar"> 34 <a href="#" class="top-nav-link" id="nav-home" onclick="App.showBoard()">⬡ Home</a> 35 <a href="#" class="top-nav-link" id="nav-new" onclick="App.showNewTopic()">+ Launch Thread</a> 36 <a href="#" class="top-nav-link" id="nav-rules">â Wiki</a> 37 <div id="top-nav-right"> 38 <span id="online-badge">â <span id="online-count">12</span> Online</span> 39 </div> 40 </nav> 41 42 <!-- ââââââââââââââââââ CONTENT WRAP ââââââââââââââââââ --> 43 <div id="content-wrap"> 44 45 <!-- LEFT SIDEBAR --> 46 <aside id="left-sidebar"> 47 48 <div class="sidebar-box" id="sb-navigate"> 49 <div class="sidebar-title">⬡ Navigate</div> 50 <div class="sidebar-body sidebar-links"> 51 <a class="sb-link" href="#" onclick="App.showBoard()">ð Board Index</a> 52 <a class="sb-link" href="#" onclick="App.showNewTopic()">+ Launch Thread</a> 53 <a class="sb-link" href="#rules-section">â Forum Rules</a> 54 <a class="sb-link" href="#" onclick="App.showBoard()">ð Recent Posts</a> 55 </div> 56 </div> 57 58 <div class="sidebar-box" id="sb-stats"> 59 <div class="sidebar-title">â Board Stats</div> 60 <div class="sidebar-body"> 61 <div class="stat-row"><span class="stat-lbl">Threads:</span><span class="stat-val" id="stat-topics">â</span></div> 62 <div class="stat-row"><span class="stat-lbl">Replies:</span><span class="stat-val" id="stat-replies">â</span></div> 63 <div class="stat-row"><span class="stat-lbl">Users:</span><span class="stat-val">1,337</span></div> 64 <div class="stat-row"><span class="stat-lbl">Status:</span><span class="stat-val online-dot">â Online</span></div> 65 </div> 66 </div> 67 68 <div class="sidebar-box" id="sb-online"> 69 <div class="sidebar-title">â Online Users</div> 70 <div class="sidebar-body" id="online-users-list"> 71 <!-- Injected by JS --> 72 </div> 73 </div> 74 75 <div class="sidebar-box" id="sb-rules" id="rules-section"> 76 <div class="sidebar-title">â Wiki</div> 77 <div class="sidebar-body sidebar-rules"> 78 <div class="rule-item">â Be respectful</div> 79 <div class="rule-item">â No spam/flooding</div> 80 <div class="rule-item">â Stay on topic</div> 81 <div class="rule-item">â No illegal content</div> 82 <div class="rule-item">â Posts are public</div> 83 <div class="rule-item">â No registration</div> 84 </div> 85 </div> 86 87 <div class="sidebar-box"> 88 <div class="sidebar-title">â Features</div> 89 <div class="sidebar-body sidebar-quickinfo"> 90 <div>â Dark mode UI</div> 91 <div>â No sign-up</div> 92 <div>â Instant posting</div> 93 <div>â Thread replies</div> 94 <div>â Search & filter</div> 95 </div> 96 </div> 97 98 </aside> 99 100 <!-- MAIN CONTENT --> 101 <main id="main-content"> 102 103 <!-- âââ VIEW: BOARD INDEX âââ --> 104 <section id="view-board" class="view active"> 105 106 <div class="page-title-bar"> 107 <h1>ð¡ Active Discussions</h1> 108 <button class="btn-primary" onclick="App.showNewTopic()">+ Launch Thread</button> 109 </div> 110 111 <!-- Search --> 112 <div id="search-bar"> 113 <div id="search-input-wrap">
114 <span id="search-icon">â</span> 115 <input type="text" id="board-search" placeholder="Search threads by title, author or tagâ¦" autocomplete="off" spellcheck="false" /> 116 <button id="btn-clear-search" class="hidden" title="Clear">â</button> 117 </div> 118 <span id="search-count"></span> 119 </div> 120 121 <!-- Category filter pills --> 122 <div id="filter-bar"> 123 <span class="filter-label">Filter:</span> 124 <div id="filter-pills"> 125 <button class="filter-pill active" data-category="all">All</button> 126 </div> 127 </div> 128 129 <!-- Board states --> 130 <div id="board-empty" class="board-state hidden"> 131 <p>ð¡ No threads yet. Be the first to post!</p> 132 </div> 133 <div id="board-no-results" class="board-state hidden"> 134 <p>â No threads match your search.</p> 135 </div> 136 137 <!-- Topic table --> 138 <div id="board-table-wrap"> 139 <table id="board-table" class="topic-table"> 140 <thead> 141 <tr> 142 <th class="col-icon"></th> 143 <th class="col-subject">Thread / Title</th> 144 <th class="col-cat">Tag</th> 145 <th class="col-replies">Replies</th> 146 <th class="col-author">Author</th> 147 <th class="col-lastpost">Last Post</th> 148 </tr> 149 </thead> 150 <tbody id="board-tbody"> 151 <!-- Injected by JS --> 152 </tbody> 153 </table> 154 </div> 155 156 </section> 157 158 <!-- âââ VIEW: TOPIC VIEWER âââ --> 159 <section id="view-topic" class="view hidden"> 160 161 <div id="viewer-back-bar"> 162 <button class="btn-back" onclick="App.showBoard()">â Back to Board</button> 163 <span id="viewer-breadcrumb"></span> 164 </div> 165 166 <div class="page-title-bar"> 167 <h1 id="viewer-subject">Loadingâ¦</h1> 168 <button class="btn-primary" id="btn-reply-top" onclick="App.scrollToReplyForm()">+ Reply</button> 169 </div> 170 171 <div id="post-list"></div> 172 173 <div id="reply-form-section" class="board-section-box"> 174 <div class="section-heading">+ Post a Reply</div> 175 <form id="reply-form" novalidate> 176 <div class="form-row"> 177 <label class="form-label" for="reply-name">Your Name <span class="req">*</span></label> 178 <div class="form-input-wrap"> 179 <input type="text" id="reply-name" maxlength="60" placeholder="e.g. Anonymous, GuestCoderâ¦" autocomplete="off" /> 180 </div> 181 </div> 182 <div class="form-row"> 183 <label class="form-label" for="reply-body">Message <span class="req">*</span></label> 184 <div class="form-input-wrap"> 185 <textarea id="reply-body" rows="6" maxlength="3000" placeholder="Write your reply hereâ¦"></textarea> 186 <span class="field-hint">Max 3000 characters</span> 187 </div> 188 </div> 189 <div class="form-actions"> 190 <button type="submit" class="btn-primary">ð¤ Post Reply</button> 191 <button type="reset" class="btn-secondary">Clear</button> 192 </div> 193 <div id="reply-feedback" class="hidden"></div> 194 </form> 195 </div> 196 197 </section> 198 199 <!-- âââ VIEW: NEW TOPIC FORM âââ --> 200 <section id="view-new-topic" class="view hidden"> 201 202 <div id="new-topic-back-bar"> 203 <button class="btn-back" onclick="App.showBoard()">â Back to Board</button> 204 </div> 205 206 <div class="page-title-bar"> 207 <h1>+ Launch Thread</h1> 208 <span class="subtitle-tag">No account required â post as guest</span> 209 </div> 210 211 <div class="board-section-box"> 212 <form id="topic-form" novalidate> 213 214 <div class="form-row"> 215 <label class="form-label" for="field-name">Your Name <span class="req">*</span></label> 216 <div class="form-input-wrap"> 217 <input type="text" id="field-name" maxlength="60" placeholder="e.g. Anonymous, CodeNinja99â¦" autocomplete="off" />
218 <span class="field-hint">Max 60 characters</span> 219 </div> 220 </div> 221 222 <div class="form-row"> 223 <label class="form-label" for="cat-search-input">Tag <span class="req">*</span></label> 224 <div class="form-input-wrap"> 225 <input type="hidden" id="field-category" value="" /> 226 <div id="cat-dropdown-wrap" class="cat-dropdown-wrap"> 227 <input type="text" id="cat-search-input" class="cat-search-input" placeholder="â Type to search tagâ¦" autocomplete="off" spellcheck="false" /> 228 <div id="cat-dropdown-list" class="cat-dropdown-list hidden"></div> 229 </div> 230 <span class="field-hint">Choose from 30+ categories</span> 231 </div> 232 </div> 233 234 <div class="form-row"> 235 <label class="form-label" for="field-subject">Subject <span class="req">*</span></label> 236 <div class="form-input-wrap"> 237 <input type="text" id="field-subject" maxlength="120" placeholder="What's this thread about?" autocomplete="off" /> 238 <span class="field-hint">Max 120 characters</span> 239 </div> 240 </div> 241 242 <div class="form-row"> 243 <label class="form-label" for="field-body">Message <span class="req">*</span></label> 244 <div class="form-input-wrap"> 245 <textarea id="field-body" rows="9" maxlength="5000" placeholder="Write your message hereâ¦"></textarea> 246 <span class="field-hint">Max 5000 characters</span> 247 </div> 248 </div> 249 250 <div class="form-actions"> 251 <button type="submit" id="btn-submit" class="btn-primary"> 252 <span id="btn-text">ð¤ Post Thread</span> 253 <span id="btn-spinner" class="spinner hidden">â§</span> 254 </button> 255 <button type="reset" id="btn-reset" class="btn-secondary">Clear Form</button> 256 </div> 257 258 <div id="form-feedback" class="hidden"></div> 259 260 </form> 261 </div> 262 263 </section> 264 265 </main> 266 </div><!-- /content-wrap --> 267 268 <!-- ââââââââââââââââââ FOOTER ââââââââââââââââââ --> 269 <footer id="site-footer"> 270 <div id="footer-inner"> 271 <span>HyperDock © 2024â<span id="footer-year"></span></span> 272 <span class="footer-sep">·</span> 273 <span>Powered by Pure JS & Firebase</span> 274 <span class="footer-sep">·</span> 275 <span>Free & Open · No Registration</span> 276 </div> 277 <div id="footer-marquee-wrap"> 278 <div id="footer-marquee"> 279 $ HyperDock -- Where minds connect $ No registration needed $ Post freely $</div> 280 </div> 281 </footer> 282 283 </div><!-- /page-wrap --> 284 285
285<script src="https://www.gstatic.com/firebasejs/10.12.2/firebase-app-compat.js"></script>
285 286
286<script src="https://www.gstatic.com/firebasejs/10.12.2/firebase-firestore-compat.js"></script>
286 287
287<script src="app.js"></script>
287 288</body> 289</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.