PageSourceSearch

https://hyper-dock-686.web.app/

html hyper-dock-686.web.app collected 2026-10-03 12:26:12 UTC 12,881 bytes, 289 lines download raw bytes

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 &amp; Firebase</span>
274        <span class="footer-sep">·</span>
275        <span>Free &amp; 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.