Production readiness, SEO enhancements, and Engine V2 upgrades

This commit is contained in:
drjones
2026-06-13 19:10:10 -07:00
parent 8333e241c6
commit 44d89d205c
34 changed files with 23521 additions and 162056 deletions

View File

@@ -457,6 +457,18 @@ function GrowTentCard({ part }: { part: PlacedPart }) {
</div>
<div className="text-[10px] text-zinc-400 space-y-1 pt-1.5 border-t border-zinc-800/60 font-mono">
<div className="flex justify-between">
<span>Air Exchange:</span>
<span className="text-zinc-200">{metrics.airChangesPerMinute.toFixed(2)} /min</span>
</div>
<div className="flex justify-between">
<span>Fresh Air:</span>
<span className="text-zinc-200">{metrics.netFreshAirCfm.toFixed(0)} CFM</span>
</div>
<div className="flex justify-between">
<span>Intake / Exhaust:</span>
<span className="text-zinc-200">{metrics.intakeCfm.toFixed(0)} / {metrics.exhaustCfm.toFixed(0)} CFM</span>
</div>
<div className="flex justify-between">
<span>Est. Temp:</span>
<span className="text-zinc-200">{metrics.roomTempF.toFixed(1)}°F</span>
@@ -515,7 +527,7 @@ function ReservoirCard({ part }: { part: PlacedPart }) {
</span>
</div>
<div className="grid grid-cols-2 gap-2">
<div className="grid grid-cols-3 gap-2">
<div className="rounded-md bg-zinc-900/80 p-2 text-center">
<div className="text-[9px] text-zinc-500 font-bold uppercase">Runtime</div>
<div className={`mt-0.5 text-xs font-bold ${runtime?.empty ? 'text-rose-400' : runtime?.minutesRemaining !== null ? 'text-amber-400' : 'text-emerald-400'}`}>
@@ -545,6 +557,14 @@ function ReservoirCard({ part }: { part: PlacedPart }) {
</div>
<div className="text-[8px] text-zinc-600">Gallons</div>
</div>
<div className="rounded-md bg-zinc-900/80 p-2 text-center">
<div className="text-[9px] text-zinc-500 font-bold uppercase">Line Hold</div>
<div className="mt-0.5 text-xs font-bold text-zinc-200">
{runtime ? runtime.gallonsHeldInSystem.toFixed(2) : '0.00'}
</div>
<div className="text-[8px] text-zinc-600">Gal in plumbing</div>
</div>
</div>
{/* Water Stats Grid */}