+
@@ -577,85 +512,85 @@ function CreateEditModal({ alert, onClose, onSuccess, isTycoon }: {
{/* Basic Info */}
-
Basic Info
+
Basic Info
-
+
setForm({ ...form, name: e.target.value })}
placeholder="e.g. Premium 4L .com domains"
required
- className="w-full px-4 py-3 bg-white/5 border border-white/10 rounded-xl text-white placeholder:text-zinc-600 focus:outline-none focus:border-emerald-500/50 transition-all"
+ className="w-full px-4 py-3 bg-white/5 border border-white/10 text-white placeholder:text-white/25 outline-none focus:border-accent/50 transition-all"
/>
-
+
{/* Filters */}
-
Criteria
+
Criteria
-
+
setForm({ ...form, keywords: e.target.value })}
placeholder="crypto,web3,ai"
- className="w-full px-4 py-3 bg-white/5 border border-white/10 rounded-xl text-white placeholder:text-zinc-600 focus:outline-none focus:border-emerald-500/50 transition-all font-mono text-sm"
+ className="w-full px-4 py-3 bg-white/5 border border-white/10 text-white placeholder:text-white/25 outline-none focus:border-accent/50 font-mono text-sm"
/>
-
+
setForm({ ...form, exclude_keywords: e.target.value })}
placeholder="xxx,adult"
- className="w-full px-4 py-3 bg-white/5 border border-white/10 rounded-xl text-white placeholder:text-zinc-600 focus:outline-none focus:border-emerald-500/50 transition-all font-mono text-sm"
+ className="w-full px-4 py-3 bg-white/5 border border-white/10 text-white placeholder:text-white/25 outline-none focus:border-accent/50 font-mono text-sm"
/>
-
-
-
{/* Notifications */}
-
Notifications
+ Notifications
-
@@ -807,14 +704,14 @@ function CreateEditModal({ alert, onClose, onSuccess, isTycoon }: {
@@ -834,4 +731,3 @@ function CreateEditModal({ alert, onClose, onSuccess, isTycoon }: {
)
}
-
diff --git a/frontend/src/app/terminal/yield/page.tsx b/frontend/src/app/terminal/yield/page.tsx
index 1545021..21478d4 100644
--- a/frontend/src/app/terminal/yield/page.tsx
+++ b/frontend/src/app/terminal/yield/page.tsx
@@ -9,7 +9,6 @@ import {
CheckCircle2,
Clock,
AlertCircle,
- ArrowUpRight,
MousePointer,
Target,
Wallet,
@@ -17,85 +16,42 @@ import {
ChevronRight,
Copy,
Check,
- ExternalLink,
XCircle,
Sparkles,
Loader2
} from 'lucide-react'
import { api, YieldDomain, YieldTransaction } from '@/lib/api'
import { useStore } from '@/lib/store'
+import { CommandCenterLayout } from '@/components/CommandCenterLayout'
+import clsx from 'clsx'
-// Stats Card Component
-function StatsCard({
- label,
- value,
- subValue,
- icon: Icon,
- trend,
- color = 'emerald'
-}: {
- label: string
- value: string | number
- subValue?: string
- icon: any
- trend?: number
- color?: 'emerald' | 'blue' | 'amber' | 'purple'
-}) {
- const colorClasses = {
- emerald: 'from-emerald-500/20 to-emerald-500/5 text-emerald-400 border-emerald-500/30',
- blue: 'from-blue-500/20 to-blue-500/5 text-blue-400 border-blue-500/30',
- amber: 'from-amber-500/20 to-amber-500/5 text-amber-400 border-amber-500/30',
- purple: 'from-purple-500/20 to-purple-500/5 text-purple-400 border-purple-500/30',
- }
-
- return (
-
-
-
-
{label}
-
{value}
- {subValue && (
-
{subValue}
- )}
-
-
-
-
-
- {trend !== undefined && (
-
= 0 ? 'text-emerald-400' : 'text-red-400'}`}>
-
-
{Math.abs(trend)}% vs last month
-
- )}
-
- )
-}
+// ============================================================================
+// STATUS BADGE
+// ============================================================================
-// Domain Status Badge
function StatusBadge({ status }: { status: string }) {
const config: Record
= {
- active: { color: 'bg-emerald-500/20 text-emerald-400 border-emerald-500/30', icon: CheckCircle2 },
- pending: { color: 'bg-amber-500/20 text-amber-400 border-amber-500/30', icon: Clock },
- verifying: { color: 'bg-blue-500/20 text-blue-400 border-blue-500/30', icon: RefreshCw },
- paused: { color: 'bg-zinc-500/20 text-zinc-400 border-zinc-500/30', icon: AlertCircle },
- error: { color: 'bg-red-500/20 text-red-400 border-red-500/30', icon: XCircle },
+ active: { color: 'bg-accent/10 text-accent border-accent/20', icon: CheckCircle2 },
+ pending: { color: 'bg-amber-400/10 text-amber-400 border-amber-400/20', icon: Clock },
+ verifying: { color: 'bg-blue-400/10 text-blue-400 border-blue-400/20', icon: RefreshCw },
+ paused: { color: 'bg-white/5 text-white/40 border-white/10', icon: AlertCircle },
+ error: { color: 'bg-red-400/10 text-red-400 border-red-400/20', icon: XCircle },
}
const { color, icon: Icon } = config[status] || config.pending
return (
-
+
{status}
)
}
-// Activate Domain Modal
+// ============================================================================
+// ACTIVATE MODAL
+// ============================================================================
+
function ActivateModal({
isOpen,
onClose,
@@ -115,7 +71,6 @@ function ActivateModal({
const handleAnalyze = async () => {
if (!domain.trim()) return
-
setLoading(true)
setError(null)
@@ -163,19 +118,17 @@ function ActivateModal({
if (!isOpen) return null
return (
-
-
+
+
-
+
{/* Header */}
-
+
-
-
-
+
-
Activate Domain for Yield
-
Turn your parked domains into passive income
+
Activate Domain for Yield
+
Turn parked domains into passive income
@@ -185,19 +138,19 @@ function ActivateModal({
{step === 'input' && (
- Domain Name
+ Domain Name
setDomain(e.target.value)}
placeholder="e.g. zahnarzt-zuerich.ch"
- className="w-full px-4 py-3 bg-zinc-800 border border-zinc-700 rounded-lg text-white placeholder:text-zinc-500 focus:outline-none focus:border-emerald-500"
+ className="w-full px-4 py-3 bg-white/5 border border-white/10 text-white placeholder:text-white/25 outline-none focus:border-accent/50"
onKeyDown={(e) => e.key === 'Enter' && handleAnalyze()}
/>
{error && (
-
+
{error}
)}
@@ -205,7 +158,7 @@ function ActivateModal({