+
Unified capacity
@@ -676,32 +676,34 @@ function Dashboard() {
- {[
- {
- title: 'Connected sessions',
- value: summary.totals.totalAccounts,
- tone: 'text-sky-300',
- },
- {
- title: 'Healthy sessions',
- value: summary.totals.activeAccounts,
- tone: 'text-emerald-300',
- },
- {
- title: 'Errored sessions',
- value: summary.totals.erroredAccounts,
- tone: 'text-rose-300',
- },
- ].map((item) => (
-
-
- {item.title}
-
- {item.value.toLocaleString()}
-
-
-
- ))}
+
+ {[
+ {
+ title: 'Connected sessions',
+ value: summary.totals.totalAccounts,
+ tone: 'text-sky-300',
+ },
+ {
+ title: 'Healthy sessions',
+ value: summary.totals.activeAccounts,
+ tone: 'text-emerald-300',
+ },
+ {
+ title: 'Errored sessions',
+ value: summary.totals.erroredAccounts,
+ tone: 'text-rose-300',
+ },
+ ].map((item) => (
+
+
+ {item.title}
+
+ {item.value.toLocaleString()}
+
+
+
+ ))}
+
diff --git a/apps/web/test/dashboard-summary-layout.test.js b/apps/web/test/dashboard-summary-layout.test.js
new file mode 100644
index 0000000..e37d37a
--- /dev/null
+++ b/apps/web/test/dashboard-summary-layout.test.js
@@ -0,0 +1,17 @@
+import { describe, expect, test } from 'bun:test';
+import { readFileSync } from 'node:fs';
+import { join } from 'node:path';
+
+const appSource = readFileSync(join(import.meta.dir, '../src/App.tsx'), 'utf8');
+
+describe('dashboard summary layout', () => {
+ test('stacks the session summary cards vertically beside unified capacity on desktop', () => {
+ expect(appSource).toContain(
+ 'className="grid gap-4 xl:grid-cols-[minmax(0,2fr)_minmax(16rem,1fr)] xl:items-stretch"',
+ );
+ expect(appSource).toContain('className="h-full"');
+ expect(appSource).toContain('className="grid gap-4 xl:grid-rows-3"');
+ expect(appSource).not.toContain('className="grid gap-4 md:grid-cols-3 xl:grid-cols-4"');
+ expect(appSource).not.toContain('className="md:col-span-2"');
+ });
+});