fix(devices): recolor bundled icons to theme light + larger size (2.5.1)

Tabler icons use currentColor which doesn't inherit through <img>, so they
rendered black on the dark theme. Bake --text (#e8e6ed) into the 15 bundled
SVGs and bump icon sizes (tile 20->30px, picker 22->28px).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
root
2026-06-09 11:19:27 +10:00
parent b16456fc1b
commit 18eba2d911
19 changed files with 23 additions and 23 deletions

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "void-server",
"version": "2.5.0",
"version": "2.5.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "void-server",
"version": "2.5.0",
"version": "2.5.1",
"dependencies": {
"@modelcontextprotocol/sdk": "^1.29.0",
"@mozilla/readability": "^0.6.0",

View File

@@ -1,6 +1,6 @@
{
"name": "void-server",
"version": "2.5.0",
"version": "2.5.1",
"type": "module",
"private": true,
"scripts": {

View File

@@ -10,7 +10,7 @@ unicode: "ea54"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke="#e8e6ed"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"

Before

Width:  |  Height:  |  Size: 560 B

After

Width:  |  Height:  |  Size: 555 B

View File

@@ -10,7 +10,7 @@ unicode: "f1d2"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke="#e8e6ed"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"

Before

Width:  |  Height:  |  Size: 634 B

After

Width:  |  Height:  |  Size: 629 B

View File

@@ -10,7 +10,7 @@ unicode: "ea89"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke="#e8e6ed"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"

Before

Width:  |  Height:  |  Size: 533 B

After

Width:  |  Height:  |  Size: 528 B

View File

@@ -10,7 +10,7 @@ unicode: "eb64"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke="#e8e6ed"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"

Before

Width:  |  Height:  |  Size: 487 B

After

Width:  |  Height:  |  Size: 482 B

View File

@@ -10,7 +10,7 @@ unicode: "ea88"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke="#e8e6ed"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"

Before

Width:  |  Height:  |  Size: 497 B

After

Width:  |  Height:  |  Size: 492 B

View File

@@ -10,7 +10,7 @@ unicode: "ea8a"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke="#e8e6ed"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"

Before

Width:  |  Height:  |  Size: 510 B

After

Width:  |  Height:  |  Size: 505 B

View File

@@ -10,7 +10,7 @@ unicode: "ebd9"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke="#e8e6ed"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"

Before

Width:  |  Height:  |  Size: 556 B

After

Width:  |  Height:  |  Size: 551 B

View File

@@ -10,7 +10,7 @@ unicode: "eb0e"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke="#e8e6ed"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"

Before

Width:  |  Height:  |  Size: 604 B

After

Width:  |  Height:  |  Size: 599 B

View File

@@ -10,7 +10,7 @@ unicode: "eb18"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke="#e8e6ed"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"

Before

Width:  |  Height:  |  Size: 622 B

After

Width:  |  Height:  |  Size: 617 B

View File

@@ -10,7 +10,7 @@ unicode: "eb1f"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke="#e8e6ed"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"

Before

Width:  |  Height:  |  Size: 594 B

After

Width:  |  Height:  |  Size: 589 B

View File

@@ -10,7 +10,7 @@ unicode: "ed61"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke="#e8e6ed"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"

Before

Width:  |  Height:  |  Size: 599 B

After

Width:  |  Height:  |  Size: 594 B

View File

@@ -10,7 +10,7 @@ unicode: "ea8c"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke="#e8e6ed"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"

Before

Width:  |  Height:  |  Size: 513 B

After

Width:  |  Height:  |  Size: 508 B

View File

@@ -10,7 +10,7 @@ unicode: "ea8d"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke="#e8e6ed"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"

Before

Width:  |  Height:  |  Size: 475 B

After

Width:  |  Height:  |  Size: 470 B

View File

@@ -10,7 +10,7 @@ version: "3.5"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke="#e8e6ed"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"

Before

Width:  |  Height:  |  Size: 572 B

After

Width:  |  Height:  |  Size: 567 B

View File

@@ -10,7 +10,7 @@ unicode: "ebf9"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke="#e8e6ed"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"

Before

Width:  |  Height:  |  Size: 494 B

After

Width:  |  Height:  |  Size: 489 B

View File

@@ -647,14 +647,14 @@ body.drawer-open #scrim { opacity: 1; pointer-events: auto; }
.sv-cluster .st-fill.bad { background: var(--bad); }
.sv-cluster .sv-subhdr { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; margin: 11px 0 5px; font-family: var(--font-mono); }
.dv-icon { width: 20px; height: 20px; object-fit: contain; opacity: .9; }
.dv-icon-fb { width: 20px; height: 20px; display: grid; place-items: center; font-size: 11px; background: var(--panel-2, #1b1b22); border-radius: 4px; }
.dv-icon { width: 30px; height: 30px; object-fit: contain; opacity: .95; }
.dv-icon-fb { width: 30px; height: 30px; display: grid; place-items: center; font-size: 14px; color: var(--text); background: var(--panel-2, #1b1b22); border-radius: 4px; }
.dv-seen { font-size: 11px; color: var(--muted, #8a8a94); }
.icon-picker { border: 1px solid var(--border, #2a2a36); border-radius: 6px; padding: 6px; margin-top: 6px; max-width: 320px; }
.ip-tabs { display: flex; gap: 4px; margin-bottom: 6px; }
.ip-tab.active { color: var(--accent, #ff4f2e); border-bottom: 1px solid var(--accent, #ff4f2e); }
.ip-grid { display: flex; flex-wrap: wrap; gap: 6px; }
.ip-icon { width: 34px; height: 34px; display: grid; place-items: center; background: transparent; border: 1px solid var(--border, #2a2a36); border-radius: 4px; cursor: pointer; }
.ip-icon img { width: 22px; height: 22px; object-fit: contain; }
.ip-icon { width: 40px; height: 40px; display: grid; place-items: center; background: transparent; border: 1px solid var(--border, #2a2a36); border-radius: 4px; cursor: pointer; }
.ip-icon img { width: 28px; height: 28px; object-fit: contain; }
.ip-set-hd, .isp-hd { font-size: 12px; margin: 6px 0 3px; text-transform: capitalize; }
.isp-upload { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }

View File

@@ -15,7 +15,7 @@ import { mcpAuth } from './lib/api/middleware/mcp_auth.js';
import { handleMcp } from './lib/mcp/http.js';
import httpProxy from 'http-proxy';
const VERSION = '2.5.0';
const VERSION = '2.5.1';
// Proxy /terminal (+ its WebSocket) to ttyd on CT 300, so the embedded terminal
// works whether the Void is reached via Traefik (void2-app.hynesy.com) OR the