@a83/orbiter-admin 0.3.26 → 0.3.28
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 +1 -1
- package/public/style.css +45 -9
- package/public/xfce.js +34 -3
package/package.json
CHANGED
package/public/style.css
CHANGED
|
@@ -1994,6 +1994,19 @@ html[data-style="xfce"] .xfce-in-focus .xfce-focus-trigger::after {
|
|
|
1994
1994
|
text-align: center;
|
|
1995
1995
|
flex-shrink: 0;
|
|
1996
1996
|
}
|
|
1997
|
+
.xfce-tools-sep {
|
|
1998
|
+
height: 1px; background: var(--line); margin: 4px 6px;
|
|
1999
|
+
}
|
|
2000
|
+
.xfce-tools-palette {
|
|
2001
|
+
width: 100%; background: none; border: none; cursor: pointer;
|
|
2002
|
+
text-align: left; font-family: inherit;
|
|
2003
|
+
}
|
|
2004
|
+
.xfce-tools-kbd {
|
|
2005
|
+
margin-left: auto; font-family: var(--mono);
|
|
2006
|
+
font-size: 8px; color: var(--muted);
|
|
2007
|
+
background: color-mix(in srgb, var(--mid) 14%, transparent);
|
|
2008
|
+
padding: 2px 5px; border-radius: 3px; border: none; font-style: normal;
|
|
2009
|
+
}
|
|
1997
2010
|
|
|
1998
2011
|
/* Status bar links & logout */
|
|
1999
2012
|
a.xfce-sb-logo { text-decoration: none; color: var(--accent); }
|
|
@@ -2006,6 +2019,12 @@ a.xfce-sb-logo:hover { opacity: .8; }
|
|
|
2006
2019
|
font-family: var(--mono); transition: color .15s;
|
|
2007
2020
|
}
|
|
2008
2021
|
.xfce-sb-logout:hover { color: var(--red); }
|
|
2022
|
+
.xfce-sb-palette-btn {
|
|
2023
|
+
background: none; border: none; cursor: pointer; padding: 0 1px;
|
|
2024
|
+
font-size: 11px; color: var(--mid); line-height: 1;
|
|
2025
|
+
font-family: var(--mono); transition: color .15s;
|
|
2026
|
+
}
|
|
2027
|
+
.xfce-sb-palette-btn:hover { color: var(--accent); }
|
|
2009
2028
|
|
|
2010
2029
|
/* Draft badge on dock items */
|
|
2011
2030
|
.xfce-dock-badge {
|
|
@@ -2043,21 +2062,38 @@ a.xfce-sb-logo:hover { opacity: .8; }
|
|
|
2043
2062
|
/* ── Command Palette ─────────────────────────────────────── */
|
|
2044
2063
|
.xfce-palette {
|
|
2045
2064
|
display: none; position: fixed; inset: 0; z-index: 10000;
|
|
2046
|
-
background: rgba(0,0,0
|
|
2047
|
-
align-items: flex-
|
|
2048
|
-
padding-
|
|
2065
|
+
background: rgba(0,0,0,0);
|
|
2066
|
+
align-items: flex-end; justify-content: center;
|
|
2067
|
+
padding-bottom: calc(var(--dock-h, 76px) + 28px);
|
|
2068
|
+
transition: background .2s;
|
|
2069
|
+
}
|
|
2070
|
+
.xfce-palette.open {
|
|
2071
|
+
display: flex;
|
|
2072
|
+
background: rgba(0,0,0,.76);
|
|
2073
|
+
backdrop-filter: blur(5px);
|
|
2074
|
+
-webkit-backdrop-filter: blur(5px);
|
|
2049
2075
|
}
|
|
2050
|
-
.xfce-palette.open { display: flex; }
|
|
2051
2076
|
|
|
2052
2077
|
.xfce-palette-inner {
|
|
2053
|
-
width: min(
|
|
2078
|
+
width: min(580px, 92vw);
|
|
2054
2079
|
background: color-mix(in srgb, var(--bg1) 97%, transparent);
|
|
2055
|
-
backdrop-filter: blur(
|
|
2056
|
-
-webkit-backdrop-filter: blur(
|
|
2057
|
-
border: 1px solid var(--line);
|
|
2080
|
+
backdrop-filter: blur(12px) saturate(180%);
|
|
2081
|
+
-webkit-backdrop-filter: blur(12px) saturate(180%);
|
|
2082
|
+
border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--line));
|
|
2083
|
+
border-top: 2px solid var(--accent);
|
|
2058
2084
|
border-radius: 12px;
|
|
2059
|
-
box-shadow:
|
|
2085
|
+
box-shadow:
|
|
2086
|
+
0 -2px 0 0 color-mix(in srgb, var(--accent) 40%, transparent),
|
|
2087
|
+
0 8px 48px rgba(0,0,0,.5),
|
|
2088
|
+
0 0 60px color-mix(in srgb, var(--accent) 12%, transparent);
|
|
2060
2089
|
overflow: hidden;
|
|
2090
|
+
transform: translateY(16px);
|
|
2091
|
+
opacity: 0;
|
|
2092
|
+
transition: transform .22s cubic-bezier(.34,1.15,.64,1), opacity .16s;
|
|
2093
|
+
}
|
|
2094
|
+
.xfce-palette.open .xfce-palette-inner {
|
|
2095
|
+
transform: translateY(0);
|
|
2096
|
+
opacity: 1;
|
|
2061
2097
|
}
|
|
2062
2098
|
|
|
2063
2099
|
.xfce-palette-bar {
|
package/public/xfce.js
CHANGED
|
@@ -62,6 +62,8 @@
|
|
|
62
62
|
'</div>',
|
|
63
63
|
'<div class="xfce-sb-center" id="xfce-sb-title"></div>',
|
|
64
64
|
'<div class="xfce-sb-right">',
|
|
65
|
+
'<button id="xfce-sb-palette-btn" class="xfce-sb-palette-btn" title="Command palette (⌘K)">⌘</button>',
|
|
66
|
+
'<span class="xfce-sb-div">·</span>',
|
|
65
67
|
'<a id="xfce-sb-user" href="/account.html" class="xfce-sb-user-link"></a>',
|
|
66
68
|
'<span class="xfce-sb-div">·</span>',
|
|
67
69
|
'<button id="xfce-sb-logout" class="xfce-sb-logout" title="Log out">⏻</button>',
|
|
@@ -90,6 +92,12 @@
|
|
|
90
92
|
fetch('/api/auth/logout', { method: 'POST', credentials: 'include' })
|
|
91
93
|
.finally(function () { location.href = '/login.html'; });
|
|
92
94
|
});
|
|
95
|
+
|
|
96
|
+
// Palette trigger in status bar
|
|
97
|
+
document.getElementById('xfce-sb-palette-btn').addEventListener('click', function (e) {
|
|
98
|
+
e.stopPropagation();
|
|
99
|
+
openPalette();
|
|
100
|
+
});
|
|
93
101
|
}
|
|
94
102
|
|
|
95
103
|
// ── HUD Meta Panel ────────────────────────────────────────────────────
|
|
@@ -146,6 +154,19 @@
|
|
|
146
154
|
a.innerHTML = '<span class="xfce-tools-icon">' + t.icon + '</span><span>' + t.label + '</span>';
|
|
147
155
|
toolsPopup.appendChild(a);
|
|
148
156
|
});
|
|
157
|
+
// Separator
|
|
158
|
+
var sep = document.createElement('div');
|
|
159
|
+
sep.className = 'xfce-tools-sep';
|
|
160
|
+
toolsPopup.appendChild(sep);
|
|
161
|
+
// Command palette shortcut
|
|
162
|
+
var palBtn = el('button', 'xfce-tools-item xfce-tools-palette');
|
|
163
|
+
palBtn.innerHTML = '<span class="xfce-tools-icon">⌘</span><span>Palette</span><kbd class="xfce-tools-kbd">⌘K</kbd>';
|
|
164
|
+
palBtn.addEventListener('click', function (e) {
|
|
165
|
+
e.stopPropagation();
|
|
166
|
+
toolsPopup.classList.remove('open');
|
|
167
|
+
openPalette();
|
|
168
|
+
});
|
|
169
|
+
toolsPopup.appendChild(palBtn);
|
|
149
170
|
document.body.appendChild(toolsPopup);
|
|
150
171
|
document.addEventListener('click', function () {
|
|
151
172
|
toolsPopup.classList.remove('open');
|
|
@@ -302,15 +323,25 @@
|
|
|
302
323
|
|
|
303
324
|
function openPalette() {
|
|
304
325
|
if (!palette) buildPalette();
|
|
305
|
-
palette.
|
|
326
|
+
palette.style.display = 'flex';
|
|
306
327
|
paletteInp.value = '';
|
|
307
328
|
palActive = -1;
|
|
308
329
|
renderPalette('');
|
|
309
|
-
|
|
330
|
+
// double rAF so display:flex has rendered before the transition fires
|
|
331
|
+
requestAnimationFrame(function () {
|
|
332
|
+
requestAnimationFrame(function () {
|
|
333
|
+
palette.classList.add('open');
|
|
334
|
+
setTimeout(function () { paletteInp.focus(); }, 40);
|
|
335
|
+
});
|
|
336
|
+
});
|
|
310
337
|
}
|
|
311
338
|
|
|
312
339
|
function closePalette() {
|
|
313
|
-
if (palette)
|
|
340
|
+
if (!palette) return;
|
|
341
|
+
palette.classList.remove('open');
|
|
342
|
+
setTimeout(function () {
|
|
343
|
+
if (!palette.classList.contains('open')) palette.style.display = 'none';
|
|
344
|
+
}, 220);
|
|
314
345
|
}
|
|
315
346
|
|
|
316
347
|
// ── Toast system ──────────────────────────────────────────────────────
|