File size: 11,491 Bytes
d491dc1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
import React from 'react';

const LoyaltyAnalytics = () => {
  return (
    <>

{/* TopAppBar */}
<header className="fixed top-0 left-0 w-full z-50 flex flex-col px-margin-mobile pt-sm pb-md bg-surface-panel/80 backdrop-blur-xl border-b border-border-glass">
<div className="flex items-center justify-between max-w-[1440px] mx-auto w-full">
<div className="flex items-center gap-xl">
<span className="text-hero-display font-hero-display font-bold text-primary dark:text-primary tracking-tighter">District</span>
<nav className="hidden md:flex items-center gap-lg">
<a className="text-on-surface-variant dark:text-on-surface-variant font-section-header hover:opacity-80 transition-opacity" href="#">Market</a>
<a className="text-on-surface-variant dark:text-on-surface-variant font-section-header hover:opacity-80 transition-opacity" href="#">Network</a>
<a className="text-primary dark:text-primary font-bold font-section-header" href="#">Dashboard</a>
<a className="text-on-surface-variant dark:text-on-surface-variant font-section-header hover:opacity-80 transition-opacity" href="#">Vault</a>
</nav>
</div>
<div className="flex items-center gap-md">
<div className="hidden lg:flex flex-col items-end mr-sm">
<span className="text-label-small font-label-small text-on-surface-variant uppercase tracking-widest">VIP Tier</span>
<span className="text-body-medium font-bold text-tertiary">PLATINUM ELITE</span>
</div>
<div className="relative group cursor-pointer active:scale-95 transition-transform duration-200">
<div className="w-10 h-10 rounded-full border border-primary/30 p-0.5 overflow-hidden">
<img className="w-full h-full object-cover rounded-full" data-alt="A professional high-fashion portrait of a tech executive in a futuristic obsidian-themed studio. The lighting is moody with subtle neon pink highlights reflecting off their polished features. The overall aesthetic is ultra-premium, sleek, and high-velocity, matching a luxury tech platform's brand identity." src="https://lh3.googleusercontent.com/aida-public/AB6AXuC5u43FbnSbU9YJ8b9qkfFsWDKrUls0yW1EDXv9Ur4zomQ90bcTJd8_pYSwoe4NGIE_3kwm3oWSfbIrVvm3nmG_L2PXI12R9RIccm_5zrXnbNNFO8rNaTxCG6zJrMpbDSdG8q0cHtTIULiJCxZEcntXlJS8VcL4FrOOh07fTOFiZnkD019u6-zvBBb5QTmm1eIlwthHqlL60JU8Bamc-0HY8Ny53gBuTKdUSDA1VEutL_Q2TGuGr8PRcF50_8rloigpWhJcvOcpUvbU" />
</div>
</div>
<button className="material-symbols-outlined text-primary p-2 hover:opacity-80 transition-opacity">location_on</button>
</div>
</div>
</header>
<main className="flex-1 mt-[72px] mb-8 px-xl lg:px-24 w-full max-w-[1440px] mx-auto grid grid-cols-12 gap-xl">
{/* Left Sidebar: Profile & VIP Status */}
<section className="col-span-12 lg:col-span-4 flex flex-col gap-xl">
{/* Metallic VIP Card Render */}
<div className="vip-card-shimmer glass-panel rounded-xl p-xl flex flex-col justify-between h-64 relative border border-white/10 group cursor-default" style={{backgroundImage: 'url(&quot', https: '//lh3.googleusercontent.com/aida-public/AB6AXuC44lAJOv8nWiuBTlgmx2FY4tF0WBtku74oZ2nkIvqP3V9DsV0mTBc6Wcqoo889up4AMSNncoc7plStUc1YS8nrEMDzpZfHYEM2xSDne4pSecQXjvI-W_IshKrYAkGUxb40eUTN1FggZD5xUehAnKxqvSdGwWlhqBVoDXzlSkhvhTs-HP-awVo51aSHBti3tMDt8G1mSO0rqqxQOuUuWd8WCL3Dy4YScoSXTud8MpklGGHWUpth2HlYWhMSl1k1R1Fw684KW4mTqf_I&quot', backgroundSize: 'cover', backgroundPosition: 'center center'}}>
<div className="flex justify-between items-start">
<div className="flex flex-col">
<span className="text-label-small font-label-small text-on-surface-variant tracking-widest uppercase">District Membership</span>
<h2 className="text-hero-display font-hero-display text-white mt-1 italic tracking-tight">VIP PLATINUM</h2>
</div>
<span className="material-symbols-outlined text-tertiary text-[32px]">contactless</span>
</div>
<div className="flex flex-col gap-base">
<span className="metric-mono text-lg text-white/90 tracking-[0.2em]">4429 • 8821 • 0092 • 4040</span>
<div className="flex justify-between items-end mt-4">
<div className="flex flex-col">
<span className="text-[8px] text-on-surface-variant uppercase font-bold">Member Since</span>
<span className="metric-mono text-body-medium text-white">2021/04</span>
</div>
<div className="w-12 h-8 bg-white/5 rounded-lg border border-white/10 flex items-center justify-center">
<span className="text-[10px] font-bold text-white/40 italic">DISTRICT</span>
</div>
</div>
</div>
</div>
{/* Spend Milestones */}
<div className="glass-panel rounded-xl p-lg flex flex-col gap-md">
<div className="flex justify-between items-center">
<h3 className="text-section-header font-section-header text-white">Spend Milestones</h3>
<span className="metric-mono text-primary text-body-medium">$12,450.00 / $15k</span>
</div>
{/* Progress Bar */}
<div className="h-1.5 w-full bg-surface-container rounded-full overflow-hidden">
<div className="h-full bg-gradient-to-r from-primary to-secondary w-[83%] rounded-full relative">
<div className="absolute top-0 right-0 w-4 h-full bg-white/20 blur-sm"></div>
</div>
</div>
<div className="grid grid-cols-3 gap-sm mt-2">
<div className="flex flex-col gap-xs">
<span className="text-[9px] text-on-surface-variant uppercase font-bold">Silver</span>
<div className="h-1 bg-tertiary rounded-full opacity-40"></div>
</div>
<div className="flex flex-col gap-xs">
<span className="text-[9px] text-on-surface-variant uppercase font-bold">Gold</span>
<div className="h-1 bg-tertiary rounded-full opacity-80"></div>
</div>
<div className="flex flex-col gap-xs">
<span className="text-[9px] text-primary uppercase font-bold">VIP Platinum</span>
<div className="h-1 bg-primary rounded-full"></div>
</div>
</div>
<div className="mt-xl flex flex-col gap-md">
<div className="flex items-center justify-between p-md bg-surface-container/50 border border-border-glass rounded-lg">
<div className="flex items-center gap-md">
<div className="w-8 h-8 rounded-full bg-primary/10 flex items-center justify-center">
<span className="material-symbols-outlined text-primary text-lg">bolt</span>
</div>
<span className="text-body-default font-body-default">High-Velocity Rewards</span>
</div>
<span className="metric-mono text-tertiary">Active</span>
</div>
<div className="flex items-center justify-between p-md bg-surface-container/50 border border-border-glass rounded-lg">
<div className="flex items-center gap-md">
<div className="w-8 h-8 rounded-full bg-secondary/10 flex items-center justify-center">
<span className="material-symbols-outlined text-secondary text-lg">auto_awesome</span>
</div>
<span className="text-body-default font-body-default">AI Concierge Priority</span>
</div>
<span className="metric-mono text-tertiary">Enabled</span>
</div>
</div>
</div>
</section>
{/* Right Content: Analytics Chart */}
<section className="col-span-12 lg:col-span-8 flex flex-col gap-xl">
<div className="glass-panel rounded-xl p-xl h-full flex flex-col gap-xl relative overflow-hidden">
{/* Background ambient glow */}
<div className="absolute top-[-20%] right-[-10%] w-[400px] h-[400px] bg-primary/5 blur-[120px] rounded-full"></div>
<div className="flex flex-col md:flex-row justify-between items-start md:items-center gap-md z-10">
<div className="flex flex-col">
<h2 className="text-hero-display font-hero-display text-white">Spend vs. Vitality</h2>
<p className="text-body-default text-on-surface-variant max-w-md mt-1">Cross-analyzing logistics expenditure against biometrics and calorie intake for maximum system optimization.</p>
</div>
<div className="flex gap-sm">
<button className="px-md py-sm rounded-full bg-surface-container border border-border-glass text-label-small font-bold hover:bg-surface-variant transition-colors">MONTHLY</button>
<button className="px-md py-sm rounded-full bg-primary text-on-primary text-label-small font-bold shadow-lg shadow-primary/20">WEEKLY</button>
</div>
</div>
{/* Recharts Container */}
<div className="flex-1 w-full min-h-[400px] mt-xl relative z-10" id="chart-container">
{/* Chart logic implemented via scripts */}
</div>
<div className="grid grid-cols-1 md:grid-cols-4 gap-xl border-t border-border-glass pt-xl z-10">
<div className="flex flex-col gap-xs">
<span className="text-label-small font-label-small text-on-surface-variant uppercase tracking-widest">Total Spend</span>
<span className="text-hero-display-mobile font-hero-display-mobile text-white metric-mono">$4,281.40</span>
<span className="text-[10px] text-tertiary font-bold flex items-center gap-1">
<span className="material-symbols-outlined text-sm">trending_up</span> +12% vs LY
                        </span>
</div>
<div className="flex flex-col gap-xs">
<span className="text-label-small font-label-small text-on-surface-variant uppercase tracking-widest">Avg Calories</span>
<span className="text-hero-display-mobile font-hero-display-mobile text-white metric-mono">2,140 kcal</span>
<span className="text-[10px] text-danger font-bold flex items-center gap-1">
<span className="material-symbols-outlined text-sm">trending_down</span> -4% optimal
                        </span>
</div>
<div className="flex flex-col gap-xs">
<span className="text-label-small font-label-small text-on-surface-variant uppercase tracking-widest">Logistics Hubs</span>
<span className="text-hero-display-mobile font-hero-display-mobile text-white metric-mono">14</span>
<span className="text-[10px] text-on-surface-variant font-bold">Across 3 Districts</span>
</div>
<div className="flex flex-col gap-xs">
<span className="text-label-small font-label-small text-on-surface-variant uppercase tracking-widest">Efficiency</span>
<span className="text-hero-display-mobile font-hero-display-mobile text-tertiary metric-mono">98.2%</span>
<span className="text-[10px] text-tertiary font-bold">PLATINUM LEVEL</span>
</div>
</div>
</div>
</section>
</main>
{/* BottomNavBar (Mobile Only) */}
<footer className="md:hidden fixed bottom-0 left-0 w-full z-50 flex justify-around items-center px-4 py-2 pb-safe bg-surface-panel/90 backdrop-blur-2xl border-t border-border-glass shadow-[0_-8px_24px_rgba(0,0,0,0.5)]">
<div className="flex flex-col items-center justify-center text-on-surface-variant opacity-60 hover:text-primary/80 transition-colors">
<span className="material-symbols-outlined text-[24px]">delivery_dining</span>
<span className="text-label-small font-label-small">Delivery</span>
</div>
<div className="flex flex-col items-center justify-center text-on-surface-variant opacity-60 hover:text-primary/80 transition-colors">
<span className="material-symbols-outlined text-[24px]">restaurant</span>
<span className="text-label-small font-label-small">Dining</span>
</div>
<div className="flex flex-col items-center justify-center text-on-surface-variant opacity-60 hover:text-primary/80 transition-colors">
<span className="material-symbols-outlined text-[24px]">local_mall</span>
<span className="text-label-small font-label-small">Groceries</span>
</div>
<div className="flex flex-col items-center justify-center text-on-surface-variant opacity-60 hover:text-primary/80 transition-colors">
<span className="material-symbols-outlined text-[24px]">smart_toy</span>
<span className="text-label-small font-label-small">AI Agent</span>
</div>
<div className="flex flex-col items-center justify-center text-primary font-bold scale-110">
<span className="material-symbols-outlined text-[24px]" style={{fontVariationSettings: '\'FILL\' 1'}}>person</span>
<span className="text-label-small font-label-small">Profile</span>
</div>
</footer>
{/* Chart Script */}







    </>
  );
};

export default LoyaltyAnalytics;