@a83/orbiter-admin 0.3.14 → 0.3.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +6 -3
- package/public/build.html +1 -1
- package/public/collections.html +1 -1
- package/public/dashboard.html +30 -3
- package/public/import.html +1 -1
- package/public/media.html +1 -1
- package/public/settings.html +27 -3
- package/public/sidebar.js +11 -0
- package/public/style.css +1142 -0
- package/public/theme.js +2 -1
- package/public/users.html +1 -1
- package/public/xfce.js +697 -0
- package/src/cli.js +30 -0
package/package.json
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@a83/orbiter-admin",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.15",
|
|
4
4
|
"description": "Standalone admin server for Orbiter CMS",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./src/server.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"orbiter-admin": "./src/cli.js"
|
|
9
|
+
},
|
|
7
10
|
"scripts": {
|
|
8
|
-
"start": "node src/
|
|
9
|
-
"dev": "node --watch src/
|
|
11
|
+
"start": "node src/cli.js",
|
|
12
|
+
"dev": "node --watch src/cli.js"
|
|
10
13
|
},
|
|
11
14
|
"engines": {
|
|
12
15
|
"node": ">=20.0.0"
|
package/public/build.html
CHANGED
package/public/collections.html
CHANGED
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
</div>
|
|
42
42
|
</nav>
|
|
43
43
|
<main class="main">
|
|
44
|
-
<div class="page-header" style="display:flex;align-items:flex-start;justify-content:space-between">
|
|
44
|
+
<div class="page-header glass-card" style="display:flex;align-items:flex-start;justify-content:space-between">
|
|
45
45
|
<div>
|
|
46
46
|
<h1 class="page-title">Collections</h1>
|
|
47
47
|
<p class="page-sub">All content types in this pod</p>
|
package/public/dashboard.html
CHANGED
|
@@ -205,7 +205,7 @@
|
|
|
205
205
|
|
|
206
206
|
<!-- Workspace: Notes + To-do -->
|
|
207
207
|
<div class="workspace glass-card">
|
|
208
|
-
<div class="ws-panel">
|
|
208
|
+
<div class="ws-panel" id="notes">
|
|
209
209
|
<div class="ws-head">
|
|
210
210
|
<div class="section-title">Notes</div>
|
|
211
211
|
<div style="display:flex;align-items:center;gap:10px">
|
|
@@ -215,7 +215,7 @@
|
|
|
215
215
|
</div>
|
|
216
216
|
<textarea class="notes-area" id="notes-area" placeholder="Jot something down…"></textarea>
|
|
217
217
|
</div>
|
|
218
|
-
<div class="ws-panel">
|
|
218
|
+
<div class="ws-panel" id="todos">
|
|
219
219
|
<div class="ws-head">
|
|
220
220
|
<div class="section-title">To-Do</div>
|
|
221
221
|
<div style="display:flex;align-items:center;gap:10px">
|
|
@@ -236,7 +236,34 @@
|
|
|
236
236
|
</div>
|
|
237
237
|
</div>
|
|
238
238
|
|
|
239
|
-
|
|
239
|
+
<script>
|
|
240
|
+
// Scroll to workspace panel when navigated via dock hash link
|
|
241
|
+
(function () {
|
|
242
|
+
var hash = location.hash;
|
|
243
|
+
if (hash === '#notes' || hash === '#todos') {
|
|
244
|
+
window.addEventListener('load', function () {
|
|
245
|
+
var target = document.getElementById(hash.slice(1));
|
|
246
|
+
if (target) {
|
|
247
|
+
setTimeout(function () {
|
|
248
|
+
var main = document.querySelector('.main');
|
|
249
|
+
if (main) {
|
|
250
|
+
main.scrollTo({ top: target.offsetTop - 60, behavior: 'smooth' });
|
|
251
|
+
} else {
|
|
252
|
+
target.scrollIntoView({ behavior: 'smooth', block: 'start' });
|
|
253
|
+
}
|
|
254
|
+
if (hash === '#notes') {
|
|
255
|
+
var ta = document.getElementById('notes-area');
|
|
256
|
+
if (ta) ta.focus();
|
|
257
|
+
} else {
|
|
258
|
+
var inp = document.getElementById('todo-input');
|
|
259
|
+
if (inp) inp.focus();
|
|
260
|
+
}
|
|
261
|
+
}, 400);
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
})();
|
|
266
|
+
</script>
|
|
240
267
|
<script type="module">
|
|
241
268
|
// Auth
|
|
242
269
|
const me = await fetch('/api/auth/me', { credentials: 'include' }).then(r => r.json()).catch(() => null);
|
package/public/import.html
CHANGED
package/public/media.html
CHANGED
package/public/settings.html
CHANGED
|
@@ -250,7 +250,7 @@
|
|
|
250
250
|
</div>
|
|
251
251
|
</nav>
|
|
252
252
|
<main class="main">
|
|
253
|
-
<div class="page-header">
|
|
253
|
+
<div class="page-header glass-card">
|
|
254
254
|
<h1 class="page-title">Settings</h1>
|
|
255
255
|
</div>
|
|
256
256
|
<div class="settings-wrap" id="settings-content">
|
|
@@ -630,6 +630,26 @@
|
|
|
630
630
|
<div class="theme-card-name">Glass</div>
|
|
631
631
|
<div class="theme-card-sub">Glassmorphism · blur</div>
|
|
632
632
|
</button>
|
|
633
|
+
<button class="style-card \${currentStyle==='xfce'?'active':''}" data-style="xfce">
|
|
634
|
+
<div class="style-preview sp-glass" style="position:relative;overflow:hidden;">
|
|
635
|
+
<div class="sp-orb sp-orb1"></div>
|
|
636
|
+
<div class="sp-orb sp-orb2"></div>
|
|
637
|
+
<div style="position:absolute;top:0;left:0;right:0;height:12%;background:color-mix(in srgb,var(--bg2) 60%,transparent);border-bottom:1px solid var(--line);"></div>
|
|
638
|
+
<div class="sp-body" style="margin:0;padding:8% 5% 25%;">
|
|
639
|
+
<div class="sp-row sp-glass-panel"></div>
|
|
640
|
+
<div class="sp-row sp-row-short sp-glass-panel"></div>
|
|
641
|
+
<div class="sp-row sp-glass-panel"></div>
|
|
642
|
+
</div>
|
|
643
|
+
<div style="position:absolute;bottom:4%;left:50%;transform:translateX(-50%);background:color-mix(in srgb,var(--bg2) 60%,transparent);border:1px solid var(--accent);border-radius:8px;padding:3px 8px;display:flex;gap:4px;align-items:center;">
|
|
644
|
+
<span style="width:6px;height:6px;background:var(--accent);border-radius:50%;display:block;"></span>
|
|
645
|
+
<span style="width:6px;height:6px;background:var(--muted);border-radius:50%;display:block;"></span>
|
|
646
|
+
<span style="width:6px;height:6px;background:var(--gold);border-radius:50%;display:block;"></span>
|
|
647
|
+
<span style="width:6px;height:6px;background:var(--muted);border-radius:50%;display:block;"></span>
|
|
648
|
+
</div>
|
|
649
|
+
</div>
|
|
650
|
+
<div class="theme-card-name">Station</div>
|
|
651
|
+
<div class="theme-card-sub">Dock · no sidebar</div>
|
|
652
|
+
</button>
|
|
633
653
|
</div>
|
|
634
654
|
</div>
|
|
635
655
|
</div>
|
|
@@ -779,9 +799,13 @@
|
|
|
779
799
|
const s = btn.dataset.style;
|
|
780
800
|
document.querySelectorAll('.style-card').forEach(b => b.classList.toggle('active', b.dataset.style === s));
|
|
781
801
|
const root = document.documentElement;
|
|
782
|
-
|
|
783
|
-
|
|
802
|
+
root.removeAttribute('data-style');
|
|
803
|
+
if (s === 'glass' || s === 'xfce') root.setAttribute('data-style', s);
|
|
784
804
|
localStorage.setItem('orb_style', s);
|
|
805
|
+
// xfce requires a reload to inject the dock
|
|
806
|
+
if (s === 'xfce' || document.documentElement.dataset.style === 'xfce') {
|
|
807
|
+
location.reload();
|
|
808
|
+
}
|
|
785
809
|
});
|
|
786
810
|
});
|
|
787
811
|
|
package/public/sidebar.js
CHANGED
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* sidebar.js — dynamically populates collection links + pod footer in every page.
|
|
3
3
|
* Supports parent/child hierarchy (matching SidebarCollections.astro in the original).
|
|
4
|
+
* Also bootstraps xfce.js when orb_style === 'xfce'.
|
|
4
5
|
*/
|
|
6
|
+
;(function () {
|
|
7
|
+
if (localStorage.getItem('orb_style') === 'xfce') {
|
|
8
|
+
var xs = document.createElement('script');
|
|
9
|
+
xs.src = '/xfce.js';
|
|
10
|
+
var cs = document.currentScript;
|
|
11
|
+
if (cs && cs.parentNode) cs.parentNode.insertBefore(xs, cs.nextSibling);
|
|
12
|
+
else document.head.appendChild(xs);
|
|
13
|
+
}
|
|
14
|
+
})();
|
|
15
|
+
|
|
5
16
|
(function () {
|
|
6
17
|
document.addEventListener('DOMContentLoaded', function () {
|
|
7
18
|
var params = new URLSearchParams(location.search);
|