+
{tr("power_telemetry_title_v2", undefined, "Lifetime counters")}
@@ -100,7 +100,7 @@ export default function PowerTelemetryPanel({ mgmtAddr }: { mgmtAddr: string })
which of the four ICC symbols resolved, so use it rather than
guessing from the nulls. */}
{data && unavailableNote(data) && (
-
+
{tr(
`power_telemetry_note_${data.status}`,
undefined,
diff --git a/client/src/screens/Hardware/index.tsx b/client/src/screens/Hardware/index.tsx
index 56deb899..f295821b 100644
--- a/client/src/screens/Hardware/index.tsx
+++ b/client/src/screens/Hardware/index.tsx
@@ -437,7 +437,7 @@ export default function HardwareScreen() {
)}
-
+
}
title={tr("hardware_temperatures", undefined, "Temperatures")}
@@ -770,14 +770,14 @@ function SensorCard({
children: React.ReactNode;
}) {
return (
-
-
- {icon}
- {title}
+
+
-
- {children}
-
+ {children}
);
}
@@ -791,18 +791,20 @@ function StatRow({
value: string;
hint?: string;
}) {
+ // One metric row: label left, value right, the hint (if any) under the
+ // value in small muted type rather than squeezed in beside it.
return (
- <>
- {label}
-
- {value}
+
+
{label}
+
+ {value}
{hint && (
-
- · {hint}
-
+
+ {hint}
+
)}
- >
+
);
}
@@ -903,10 +905,10 @@ function FanThresholdCard({
);
return (
-
+
{confirmDialog}
-
-
+
+
{tr("hardware_fan_threshold", "Fan threshold")}
@@ -962,7 +964,7 @@ function FanThresholdCard({
type="button"
onClick={() => applyThreshold(draftC)}
disabled={!canSet || lastSetC === draftC}
- className="rounded-md border border-[var(--color-border)] px-3 py-1 text-xs hover:bg-[var(--color-surface-3)] disabled:opacity-50"
+ className="chip min-h-8 px-3.5 text-xs disabled:opacity-50"
>
{tr("hardware_apply", "Apply")}
@@ -994,7 +996,7 @@ function FanThresholdCard({
type="button"
onClick={restoreConsole}
disabled={!canSet || (pinnedC === 0 && lastSetC === null)}
- className="rounded-md border border-[var(--color-border)] px-3 py-1 text-xs hover:bg-[var(--color-surface-3)] disabled:opacity-50"
+ className="chip min-h-8 px-3.5 text-xs disabled:opacity-50"
>
{tr("hardware_fan_restore", undefined, "Use the console's own setting")}
@@ -1074,7 +1076,7 @@ function FanCurvePreview({ thresholdC }: { thresholdC: number }) {
.map(([t, p]) => `${xFor(t).toFixed(1)},${yFor(p).toFixed(1)}`)
.join(" ");
return (
-
+
{tr("hardware_fan_curve_preview", "Fan curve preview (approximate)")}
@@ -1266,9 +1268,9 @@ function SystemTimeCard({
const outcome = lastResult ? classifySyncResult(lastResult) : null;
return (
-
-
-
+
+
+
{tr("hardware_systime_title", "System time")}
@@ -1347,7 +1349,7 @@ function SystemTimeCard({
{/* Result — success / success-via-fallback / no-op / failure */}
{lastResult && !busy && (
-
+
{outcome === "stub_no_op" ? (
{tr(
@@ -1541,9 +1543,9 @@ function SmpMetaCard({
: tr("smp_meta_never_run", "never");
return (
-
-
-
+
+
+
{tr("smp_meta_title", "SMP appmeta heal")}
diff --git a/client/src/screens/Health/SpeedTestCard.tsx b/client/src/screens/Health/SpeedTestCard.tsx
index 564bb203..e0bbe01d 100644
--- a/client/src/screens/Health/SpeedTestCard.tsx
+++ b/client/src/screens/Health/SpeedTestCard.tsx
@@ -101,7 +101,7 @@ export function SpeedTestCard({ host }: { host: string }) {
value={sizeMib}
disabled={running}
onChange={(e) => setSizeMib(Number(e.currentTarget.value))}
- className="rounded border border-[var(--color-border)] bg-[var(--color-surface-1)] px-2 py-1 text-sm text-[var(--color-text)]"
+ className="rounded border border-[var(--color-border)] bg-[var(--color-surface)] px-2 py-1 text-sm text-[var(--color-text)]"
>
{SIZES.map((s) => (