PageSourceSearch

https://devicals.github.io/

html devicals.github.io collected 2026-10-03 08:59:06 UTC 7,683 bytes, 183 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>devicals</title>
7    <link rel="icon" href="assets/favicon.ico">
8    <link rel="stylesheet" href="css/style.css">
9    
9<script src="https://cdn.jsdelivr.net/npm/@supabase/supabase-js@2" crossorigin="anonymous"></script>
9
10    
10<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/11.1.1/marked.min.js" crossorigin="anonymous"></script>
10
11    
11<script src="https://cdnjs.cloudflare.com/ajax/libs/js-yaml/4.1.0/js-yaml.min.js" crossorigin="anonymous"></script>
11
12    <style>
13        .admin-dashboard-btn {
14            display: none;
15            padding: 12px 20px;
16            background: var(--bg-hover);
17            border-top: 1px solid var(--border);
18            color: var(--accent);
19            font-family: var(--font-ui);
20            font-size: 13px;
21            font-weight: bold;
22            cursor: pointer;
23            text-transform: lowercase;
24            letter-spacing: 1px;
25            justify-content: space-between;
26            align-items: center;
27        }
28        .admin-dashboard-btn:hover { background: var(--bg-workspace); }
29        body.is-admin .admin-dashboard-btn { display: flex; }
30
31        #announcement-container {
32            position: fixed;
33            bottom: 24px;
34            right: 24px;
35            display: flex;
36            flex-direction: column;
37            gap: 12px;
38            z-index: 1500;
39            pointer-events: none;
40        }
41
42        .announcement-toast {
43            width: 320px;
44            background: var(--bg-sidebar);
45            border: 1px solid var(--accent);
46            padding: 16px;
47            display: flex;
48            flex-direction: column;
49            gap: 10px;
50            box-shadow: 0 10px 30px rgba(0,0,0,0.5);
51            pointer-events: auto;
52            position: relative;
53            overflow: hidden;
54        }
55        .announcement-toast a {
56            color: var(--accent) !important;
57            text-decoration: underline;
58        }
59        .announcement-toast.warning-toast {
60            border-color: var(--destructive);
61        }
62    </style>
63</head>
64<body>
65    <style id="custom-css-block"></style>
66
67    <div class="app-layout">
68        <div class="sidebar left-sidebar">
69            <div id="nav-tree" class="nav-tree"></div>
70
71            <div class="admin-dashboard-btn" onclick="window.location.hash='admin'">
72                <span>admin dashboard</span>
73                <span>></span>
74            </div>
75
76            <div class="sidebar-bottom-actions">
77                <div class="action-btn" id="auth-trigger" title="User Profile">
78                    <svg viewBox="0 0 24 24" width="18" height="18" stroke="currentColor" stroke-width="2" fill="none"><circle cx="12" cy="8" r="5"></circle><path d="M20 21a8 8 0 1 0-16 0"></path></svg>
79                </div>
80                <div class="action-btn" id="settings-trigger" title="Settings">
81                    <svg viewBox="0 0 24 24" width="18" height="18" stroke="currentColor" stroke-width="2" fill="none"><line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line></svg>
82                </div>
83            </div>
84        </div>
85
86        <div class="main-content">
87            <div class="top-bar">
88                <div id="breadcrumbs" class="breadcrumbs"></div>
89            </div>
90            <div id="workspace" style="flex: 1; display: flex; flex-direction: column; overflow: hidden; position: relative;">
91                <iframe id="iframe-workspace" class="workspace-frame" style="display:none;"></iframe>
92                <div id="page-content" class="page-content markdown-body" style="display:none;"></div>
93            </div>
94        </div>
95    </div>
96
97    <div id="announcement-container"></div>
98
99    <div id="auth-modal" class="modal">
100        <div class="modal-box">
101            <div class="modal-title">account center</div>
102            <div id="auth-content"></div>
103            <button class="modal-close" onclick="document.getElementById('auth-modal').style.display='none'">close</button>
104        </div>
105    </div>
106
107    <div id="settings-modal" class="modal">
108        <div class="modal-box">
109            <div class="modal-title">settings</div>
110            <div class="settings-group">
111                <label>theme options</label>
112                <button id="toggle-dark-mode" class="ui-btn">toggle dark/light mode</button>
113                <select id="theme-selector" class="ui-input">
114                    <option value="primary">primary (default warm)</option>
115                    <option value="obsidian">obsidian dark</option>
116                </select>
117            </div>
118            <div class="settings-group">
119                <label>background effect</label>
120                <select id="bg-effect-selector" class="ui-input">
121                    <option value="particles">network</option>
122                    <option value="matrix">matrix</option>
123                    <option value="stars">stars</option>
124                    <option value="none">nothing</option>
125                </select>
126            </div>
127            <div class="settings-group">
128                <label>custom css</label>
129                <textarea id="custom-css-input" class="ui-input" rows="4" placeholder="enter custom css rules..."></textarea>
130                <button id="save-css" class="ui-btn">apply custom css</button>
131            </div>
132            <button class="modal-close" onclick="document.getElementById('settings-modal').style.display='none'">close</button>
133        </div>
134    </div>
135
136    <div id="gui-modal" class="modal">
137        <div class="modal-box">
138            <div class="modal-title" id="gui-title">notification</div>
139            <div id="gui-msg" class="gui-msg-box"></div>
140            <button class="ui-btn" onclick="closeGuiModal()">ok</button>
141        </div>
142    </div>
143
144    <div id="gui-confirm-modal" class="modal">
145        <div class="modal-box">
146            <div class="modal-title" id="gui-confirm-title">confirm action</div>
147            <div id="gui-confirm-msg" style="font-size:12px; margin-bottom:16px;"></div>
148            <div style="display:flex; gap:8px;">
149                <button class="ui-btn" id="gui-confirm-yes">yes</button>
150                <button class="ui-btn" id="gui-confirm-no" onclick="closeGuiConfirmModal()">cancel</button>
151            </div>
152        </div>
153    </div>
154
155    <div id="gui-prompt-modal" class="modal">
156        <div class="modal-box">
157            <div class="modal-title" id="gui-prompt-title">input required</div>
158            <div id="gui-prompt-msg" style="font-size:12px; margin-bottom:10px;"></div>
159            <input type="text" id="gui-prompt-input" class="ui-input">
160            <div style="display:flex; gap:8px;">
161                <button class="ui-btn" id="gui-prompt-ok">ok</button>
162                <button class="ui-btn" onclick="closeGuiPromptModal()">cancel</button>
163            </div>
164        </div>
165    </div>
166
167    <div id="gui-form-modal" class="modal">
168        <div class="modal-box">
169            <div class="modal-title" id="gui-form-title">input required</div>
170            <div id="gui-form-fields"></div>
171            <div style="display:flex; gap:8px;">
172                <button class="ui-btn" id="gui-form-ok">save</button>
173                <button class="ui-btn" onclick="closeGuiFormModal()">cancel</button>
174            </div>
175        </div>
176    </div>
177
178    
178<script src="js/bg-canvas.js"></script>
178
179    
179<script src="js/app.js"></script>
179
180    
180<script src="js/admin.js"></script>
180
181    
181<script src="js/spotify.js"></script>
181
182</body>
183</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.