diff --git a/assets/blank-kpi-bg.png b/assets/blank-kpi-bg.png new file mode 100644 index 0000000..ee034fd Binary files /dev/null and b/assets/blank-kpi-bg.png differ diff --git a/public/blank-kpi-bg.png b/public/blank-kpi-bg.png new file mode 100644 index 0000000..ee034fd Binary files /dev/null and b/public/blank-kpi-bg.png differ diff --git a/src/pages/Infrastructure.tsx b/src/pages/Infrastructure.tsx index 8b8f047..d426b0e 100644 --- a/src/pages/Infrastructure.tsx +++ b/src/pages/Infrastructure.tsx @@ -28,14 +28,6 @@ const regions = [ { name: 'ap-northeast-1', x: '85%', y: '40%', resources: 6 }, ] -const topResources = [ - { label: 'db-primary-01', percentage: 92 }, - { label: 'app-server-03', percentage: 85 }, - { label: 'cache-cluster-02', percentage: 78 }, - { label: 'web-frontend-lb', percentage: 64 }, - { label: 'batch-worker-04', percentage: 51 }, -] - const trendData = Array.from({ length: 14 }, (_, i) => ({ day: i, compute: 60 + i * 0.6 + Math.sin(i / 2) * 3, @@ -92,9 +84,16 @@ const cardVignette: React.CSSProperties = { position: 'absolute', inset: 0, pointerEvents: 'none', - background: 'radial-gradient(ellipse closest-side at center, transparent 45%, var(--color-page) 100%)', + background: 'radial-gradient(ellipse closest-side at center, transparent 70%, var(--color-page) 100%)', } +const distributionData = [ + { name: 'Compute', value: 42, color: '#C8A434' }, + { name: 'Storage', value: 28, color: '#E67E22' }, + { name: 'Database', value: 18, color: '#2ECC71' }, + { name: 'Network', value: 12, color: '#7A7D85' }, +] + function Donut({ data, centerLabel }: { data: { name: string; value: number; color: string }[]; centerLabel?: string }) { return (
@@ -179,15 +178,18 @@ export default function Infrastructure() { {statusCards.map((card) => { const Icon = card.icon return ( -
-

- {card.label} -

-
- - {card.value} +
+
+
+

+ {card.label} +

+
+ + {card.value} +
+

{card.sub}

-

{card.sub}

) })} @@ -195,7 +197,15 @@ export default function Infrastructure() { {/* Middle Row */}
-
+
+ {/* Resource Distribution */} +
+
+
+ +
+
+ {/* Infrastructure Map — expanded */}
@@ -210,29 +220,6 @@ export default function Infrastructure() {
- - {/* Top Resources by Utilization */} -
-
-
-
- {topResources.map((res) => { - const color = res.percentage >= 90 ? '#E74C3C' : res.percentage >= 70 ? '#E67E22' : '#C8A434' - return ( -
-
- {res.label} - {res.percentage}% -
-
-
-
-
- ) - })} -
-
-