Closes #016 - Deploy Native KaTeX Rig & Dual-Handbook System
This commit is contained in:
@@ -4,6 +4,7 @@ import React, { useState, useEffect } from 'react';
|
||||
import { LineChart, Line, ResponsiveContainer } from 'recharts';
|
||||
import 'katex/dist/katex.min.css';
|
||||
import TechMathModal from './TechMathModal';
|
||||
import TechBlueprintModal from './TechBlueprintModal';
|
||||
import {
|
||||
Cpu, AlertCircle, BookOpen, Activity, Zap, TrendingUp, TrendingDown,
|
||||
ArrowUpRight, ArrowDownRight, Minus, Server, Wallet
|
||||
@@ -89,7 +90,9 @@ export default function AiSpecialSilo() {
|
||||
const [loading, setLoading] = useState(true);
|
||||
const [error, setError] = useState<string | null>(null);
|
||||
const [payload, setPayload] = useState<Payload | null>(null);
|
||||
const [activeTab, setActiveTab] = useState<'matrix' | 'supply_chain'>('matrix');
|
||||
const [isMathModalOpen, setIsMathModalOpen] = useState(false);
|
||||
const [isBlueprintModalOpen, setIsBlueprintModalOpen] = useState(false);
|
||||
const [isShieldActive, setIsShieldActive] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
@@ -230,13 +233,21 @@ export default function AiSpecialSilo() {
|
||||
<div className="flex items-center gap-3 w-full md:w-auto justify-end">
|
||||
<button
|
||||
onClick={() => setIsMathModalOpen(true)}
|
||||
className="flex items-center gap-1.5 px-4 py-2.5 rounded-xl bg-slate-955/80 hover:bg-slate-900 border border-slate-800 hover:border-slate-700 transition-all font-semibold text-xs tracking-wider text-teal-400 w-full md:w-auto justify-center h-11 cursor-pointer"
|
||||
className="flex items-center gap-1.5 px-4 py-2.5 rounded-xl bg-slate-950/80 hover:bg-slate-900 border border-slate-800 hover:border-slate-700 transition-all font-semibold text-xs tracking-wider text-teal-400 w-full md:w-auto justify-center h-11 cursor-pointer"
|
||||
>
|
||||
<BookOpen className="w-4 h-4" />
|
||||
<span>📖 Quantitative Handbook</span>
|
||||
</button>
|
||||
|
||||
<button
|
||||
onClick={() => setIsBlueprintModalOpen(true)}
|
||||
className="flex items-center gap-1.5 px-4 py-2.5 rounded-xl bg-slate-950/80 hover:bg-slate-900 border border-slate-800 hover:border-slate-700 transition-all font-semibold text-xs tracking-wider text-teal-400 w-full md:w-auto justify-center h-11 cursor-pointer animate-pulse-slow"
|
||||
>
|
||||
<Cpu className="w-4 h-4" />
|
||||
<span>⚙️ Operational Blueprint</span>
|
||||
</button>
|
||||
|
||||
<div className="bg-slate-955/80 border border-slate-800 rounded-xl px-4 py-2 text-right shrink-0 h-11 flex flex-col justify-center">
|
||||
<div className="bg-slate-950/80 border border-slate-800 rounded-xl px-4 py-2 text-right shrink-0 h-11 flex flex-col justify-center">
|
||||
<div className="text-[9px] text-slate-500 uppercase font-mono">Archive State</div>
|
||||
<div className="font-mono text-xs text-slate-300">
|
||||
{new Date(payload.timestamp).toLocaleTimeString()}
|
||||
@@ -418,7 +429,7 @@ export default function AiSpecialSilo() {
|
||||
: '#f43f5e';
|
||||
|
||||
return (
|
||||
<div key={ticker} className="bg-slate-950/40 border border-slate-850 rounded-xl p-3 flex justify-between items-center hover:bg-slate-955/60 transition-colors">
|
||||
<div key={ticker} className="bg-slate-950/40 border border-slate-850 rounded-xl p-3 flex justify-between items-center hover:bg-slate-900/60 transition-colors">
|
||||
<div className="space-y-0.5 w-1/4">
|
||||
<div className="text-xs font-bold text-slate-200">{ticker}</div>
|
||||
<div className="text-[9px] text-slate-500 font-mono">
|
||||
@@ -483,7 +494,7 @@ export default function AiSpecialSilo() {
|
||||
: '#10b981';
|
||||
|
||||
return (
|
||||
<div key={ticker} className="bg-slate-955/40 border border-slate-850 rounded-xl p-3 flex justify-between items-center hover:bg-slate-955/60 transition-colors">
|
||||
<div key={ticker} className="bg-slate-950/40 border border-slate-850 rounded-xl p-3 flex justify-between items-center hover:bg-slate-900/60 transition-colors">
|
||||
<div className="space-y-0.5 w-1/4">
|
||||
<div className="text-xs font-bold text-slate-200">{ticker}</div>
|
||||
<div className="text-[9px] text-slate-500 font-mono">
|
||||
@@ -543,7 +554,7 @@ export default function AiSpecialSilo() {
|
||||
: '#10b981';
|
||||
|
||||
return (
|
||||
<div key={ticker} className="bg-slate-955/40 border border-slate-850 rounded-xl p-3 flex justify-between items-center hover:bg-slate-955/60 transition-colors">
|
||||
<div key={ticker} className="bg-slate-950/40 border border-slate-850 rounded-xl p-3 flex justify-between items-center hover:bg-slate-900/60 transition-colors">
|
||||
<div className="space-y-0.5 w-1/4">
|
||||
<div className="text-xs font-bold text-slate-200">{ticker}</div>
|
||||
<div className="text-[9px] text-slate-500 font-mono">
|
||||
@@ -592,7 +603,7 @@ export default function AiSpecialSilo() {
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="flex items-center gap-4 text-xs font-mono text-slate-400 bg-slate-955/80 border border-slate-850 px-3 py-1.5 rounded-xl">
|
||||
<div className="flex items-center gap-4 text-xs font-mono text-slate-400 bg-slate-900/80 border border-slate-850 px-3 py-1.5 rounded-xl">
|
||||
<div>
|
||||
NVDA Inventory: <span className="text-slate-200 font-semibold">{supplyChain.data[supplyChain.data.length - 1].aggregateObligations / 1000}B$</span>
|
||||
</div>
|
||||
@@ -629,7 +640,7 @@ export default function AiSpecialSilo() {
|
||||
: 'text-emerald-400';
|
||||
|
||||
return (
|
||||
<tr key={row.quarter} className="hover:bg-slate-955/20 transition-colors">
|
||||
<tr key={row.quarter} className="hover:bg-slate-900/20 transition-colors">
|
||||
<td className="py-3 font-semibold text-slate-300">{row.quarter}</td>
|
||||
<td className="py-3 text-right text-slate-300">{row.nvdaInvTurnover.toFixed(2)}x</td>
|
||||
<td className="py-3 text-right text-slate-355">{(row.aggregateObligations / 1000).toFixed(1)}B$</td>
|
||||
@@ -648,6 +659,10 @@ export default function AiSpecialSilo() {
|
||||
isOpen={isMathModalOpen}
|
||||
onClose={() => setIsMathModalOpen(false)}
|
||||
/>
|
||||
<TechBlueprintModal
|
||||
isOpen={isBlueprintModalOpen}
|
||||
onClose={() => setIsBlueprintModalOpen(false)}
|
||||
/>
|
||||
|
||||
</div>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user