@chainloyalty/react 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"Leaderboard.d.ts","sourceRoot":"","sources":["../src/Leaderboard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAiBnD,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AA2LD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA8RlD,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"Leaderboard.d.ts","sourceRoot":"","sources":["../src/Leaderboard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAiBnD,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAiMD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA6RlD,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -93,7 +93,7 @@ const getRankIcon = (rank) => {
93
93
  return '🥉';
94
94
  return null;
95
95
  };
96
- const LeaderboardRow = ({ entry, accentColor, isCurrentUser = false, onCopyAddress, }) => {
96
+ const LeaderboardRow = ({ entry, accentColor, theme, isCurrentUser = false, onCopyAddress, }) => {
97
97
  const [copied, setCopied] = useState(false);
98
98
  const handleCopy = () => {
99
99
  copyToClipboard(entry.walletAddress);
@@ -105,12 +105,16 @@ const LeaderboardRow = ({ entry, accentColor, isCurrentUser = false, onCopyAddre
105
105
  };
106
106
  const rankIcon = getRankIcon(entry.rank);
107
107
  const rankColor = getRankColor(entry.rank);
108
- return (_jsxs("tr", { className: `border-b border-gray-700 transition-all hover:bg-gray-700/30 ${isCurrentUser ? 'bg-gray-700/20' : ''}`, children: [_jsx("td", { className: "px-4 py-3 text-sm", children: _jsxs("div", { className: "flex items-center justify-center", children: [rankIcon && _jsx("span", { className: "text-lg mr-2", children: rankIcon }), _jsxs("span", { className: "font-bold", style: {
108
+ return (_jsxs("tr", { className: "border-b transition-all hover:opacity-80", style: {
109
+ borderColor: theme.border,
110
+ backgroundColor: isCurrentUser ? 'rgba(0,0,0,0.1)' : 'transparent'
111
+ }, children: [_jsx("td", { className: "px-4 py-3 text-sm", children: _jsxs("div", { className: "flex items-center justify-center", children: [rankIcon && _jsx("span", { className: "text-lg mr-2", children: rankIcon }), _jsxs("span", { className: "font-bold", style: {
109
112
  color: rankColor,
110
- }, children: ["#", entry.rank] })] }) }), _jsx("td", { className: "px-4 py-3 text-sm", children: _jsxs("div", { className: "flex items-center gap-2 group", children: [_jsx("span", { className: "text-white font-mono", children: shortenAddress(entry.walletAddress) }), _jsx("button", { onClick: handleCopy, className: "p-1.5 rounded-md text-gray-500 group-hover:text-gray-300 hover:bg-gray-700/50 transition-all opacity-0 group-hover:opacity-100", title: entry.walletAddress, children: copied ? (_jsx(CheckCircle, { className: "w-4 h-4", style: { color: '#3FB950' } })) : (_jsx(Copy, { className: "w-4 h-4" })) }), entry.displayName && (_jsxs("span", { className: "hidden sm:inline text-xs text-gray-400", children: ["(", entry.displayName, ")"] }))] }) }), _jsx("td", { className: "px-4 py-3 text-sm", children: _jsxs("div", { className: "text-right", children: [_jsx("p", { className: "font-bold", style: { color: accentColor }, children: entry.points.toLocaleString() }), _jsx("p", { className: "text-xs text-gray-400 hidden sm:block", children: "points" })] }) }), _jsx("td", { className: "px-4 py-3 text-sm", children: _jsxs("div", { className: "inline-flex items-center gap-1 px-2 py-1 rounded-lg", style: {
111
- backgroundColor: 'rgba(47, 129, 247, 0.1)',
112
- borderColor: accentColor,
113
- }, children: [_jsx(Award, { className: "w-4 h-4", style: { color: accentColor } }), _jsx("span", { className: "font-semibold text-white", children: entry.badgesCount })] }) })] }));
113
+ }, children: ["#", entry.rank] })] }) }), _jsx("td", { className: "px-4 py-3 text-sm", children: _jsxs("div", { className: "flex items-center gap-2 group", children: [_jsx("span", { className: "font-mono", style: { color: theme.foreground }, children: shortenAddress(entry.walletAddress) }), _jsx("button", { onClick: handleCopy, className: "p-1.5 rounded-md transition-all opacity-0 group-hover:opacity-100", style: { color: theme.mutedForeground }, title: entry.walletAddress, children: copied ? (_jsx(CheckCircle, { className: "w-4 h-4", style: { color: '#3FB950' } })) : (_jsx(Copy, { className: "w-4 h-4" })) }), entry.displayName && (_jsxs("span", { className: "hidden sm:inline text-xs", style: { color: theme.mutedForeground }, children: ["(", entry.displayName, ")"] }))] }) }), _jsx("td", { className: "px-4 py-3 text-sm", children: _jsxs("div", { className: "text-right", children: [_jsx("p", { className: "font-bold", style: { color: accentColor }, children: entry.points.toLocaleString() }), _jsx("p", { className: "text-xs hidden sm:block", style: { color: theme.mutedForeground }, children: "points" })] }) }), _jsx("td", { className: "px-4 py-3 text-sm", children: _jsxs("div", { className: "inline-flex items-center gap-1 px-2 py-1 rounded-lg", style: {
114
+ backgroundColor: theme.muted,
115
+ borderColor: theme.border,
116
+ border: '1px solid',
117
+ }, children: [_jsx(Award, { className: "w-4 h-4", style: { color: accentColor } }), _jsx("span", { className: "font-semibold", style: { color: theme.foreground }, children: entry.badgesCount })] }) })] }));
114
118
  };
115
119
  // ============================================================================
116
120
  // Main Leaderboard Component
@@ -126,7 +130,6 @@ export const Leaderboard = ({ walletAddress = null, customColors = {}, itemsPerP
126
130
  // Override with customColors if provided (backward compatibility)
127
131
  const accentColor = customColors.accent1 || theme.accent;
128
132
  const accentColor2 = customColors.accent2 || theme.primary;
129
- const backgroundColor = customColors.background || theme.card;
130
133
  // Fetch data when timeframe changes
131
134
  useEffect(() => {
132
135
  setLoading(true);
@@ -156,35 +159,33 @@ export const Leaderboard = ({ walletAddress = null, customColors = {}, itemsPerP
156
159
  const currentUserRank = walletAddress
157
160
  ? data.find((entry) => entry.walletAddress.toLowerCase() === walletAddress.toLowerCase())
158
161
  : null;
159
- return (_jsxs("div", { className: "rounded-lg border border-gray-700 overflow-hidden", style: { backgroundColor }, children: [_jsxs("div", { className: "p-6 border-b border-gray-700", children: [_jsxs("div", { className: "flex items-center justify-between mb-4", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Trophy, { className: "w-6 h-6", style: { color: accentColor2 } }), _jsx("h2", { className: "text-2xl font-bold text-white", children: "Leaderboard" })] }), _jsx("button", { onClick: handleRefresh, disabled: loading, className: "p-2 rounded-lg text-gray-400 hover:text-white hover:bg-gray-700 transition-all disabled:opacity-50", title: "Refresh leaderboard", children: _jsx(RefreshCw, { className: `w-5 h-5 ${loading ? 'animate-spin' : ''}` }) })] }), _jsxs("div", { className: "grid grid-cols-2 md:grid-cols-3 gap-3 mb-4", children: [_jsxs("div", { className: "p-3 rounded-lg border border-gray-700", style: { backgroundColor: 'rgba(31, 41, 55, 0.5)' }, children: [_jsx("p", { className: "text-xs text-gray-400", children: "Total Users" }), _jsx("p", { className: "text-2xl font-bold text-white", children: data.length.toLocaleString() })] }), currentUserRank && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "p-3 rounded-lg border", style: {
162
+ return (_jsxs("div", { className: "rounded-lg border overflow-hidden", style: { backgroundColor: theme.card, borderColor: theme.border }, children: [_jsxs("div", { className: "p-6", style: { borderBottom: `1px solid ${theme.border}` }, children: [_jsxs("div", { className: "flex items-center justify-between mb-4", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Trophy, { className: "w-6 h-6", style: { color: accentColor2 } }), _jsx("h2", { className: "text-2xl font-bold", style: { color: theme.foreground }, children: "Leaderboard" })] }), _jsx("button", { onClick: handleRefresh, disabled: loading, className: "p-2 rounded-lg transition-all disabled:opacity-50", style: { color: theme.mutedForeground }, title: "Refresh leaderboard", children: _jsx(RefreshCw, { className: `w-5 h-5 ${loading ? 'animate-spin' : ''}` }) })] }), _jsxs("div", { className: "grid grid-cols-2 md:grid-cols-3 gap-3 mb-4", children: [_jsxs("div", { className: "p-3 rounded-lg border", style: { backgroundColor: theme.muted, borderColor: theme.border }, children: [_jsx("p", { className: "text-xs", style: { color: theme.mutedForeground }, children: "Total Users" }), _jsx("p", { className: "text-2xl font-bold", style: { color: theme.foreground }, children: data.length.toLocaleString() })] }), currentUserRank && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "p-3 rounded-lg border", style: {
160
163
  borderColor: accentColor,
161
- backgroundColor: 'rgba(47, 129, 247, 0.1)',
162
- }, children: [_jsx("p", { className: "text-xs text-gray-400", children: "Your Rank" }), _jsxs("p", { className: "text-2xl font-bold", style: { color: accentColor }, children: ["#", currentUserRank.rank] })] }), _jsxs("div", { className: "p-3 rounded-lg border", style: {
164
+ backgroundColor: theme.card,
165
+ }, children: [_jsx("p", { className: "text-xs", style: { color: theme.mutedForeground }, children: "Your Rank" }), _jsxs("p", { className: "text-2xl font-bold", style: { color: accentColor }, children: ["#", currentUserRank.rank] })] }), _jsxs("div", { className: "p-3 rounded-lg border", style: {
163
166
  borderColor: accentColor2,
164
- backgroundColor: 'rgba(63, 185, 80, 0.1)',
165
- }, children: [_jsx("p", { className: "text-xs text-gray-400", children: "Your Points" }), _jsx("p", { className: "text-2xl font-bold", style: { color: accentColor2 }, children: currentUserRank.points.toLocaleString() })] })] }))] }), !hideTimeframeFilter && (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Calendar, { className: "w-4 h-4 text-gray-400" }), _jsx("div", { className: "flex gap-2", children: ['alltime', 'month'].map((tf) => (_jsx("button", { onClick: () => setTimeframe(tf), className: `px-3 py-1.5 rounded-lg text-sm font-medium transition-all ${timeframe === tf
166
- ? 'text-white'
167
- : 'text-gray-400 hover:text-white hover:bg-gray-700/50'}`, style: timeframe === tf
167
+ backgroundColor: theme.card,
168
+ }, children: [_jsx("p", { className: "text-xs", style: { color: theme.mutedForeground }, children: "Your Points" }), _jsx("p", { className: "text-2xl font-bold", style: { color: accentColor2 }, children: currentUserRank.points.toLocaleString() })] })] }))] }), !hideTimeframeFilter && (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Calendar, { className: "w-4 h-4", style: { color: theme.mutedForeground } }), _jsx("div", { className: "flex gap-2", children: ['alltime', 'month'].map((tf) => (_jsx("button", { onClick: () => setTimeframe(tf), className: `px-3 py-1.5 rounded-lg text-sm font-medium transition-all ${timeframe === tf
169
+ ? ''
170
+ : ''}`, style: timeframe === tf
168
171
  ? {
169
172
  backgroundColor: accentColor,
170
173
  color: 'white',
171
174
  }
172
- : {}, children: tf === 'alltime' ? 'All Time' : 'This Month' }, tf))) })] }))] }), _jsxs("div", { style: { backgroundColor: 'rgba(31, 41, 55, 0.2)' }, children: [loading && !data.length && (_jsx("div", { className: "p-6 space-y-3", children: [...Array(5)].map((_, i) => (_jsx("div", { className: "h-12 bg-gray-700 rounded-lg animate-pulse" }, i))) })), error && !data.length && (_jsxs("div", { className: "p-6 text-center", children: [_jsx("p", { className: "text-red-400 mb-4", children: error }), _jsx("button", { onClick: handleRefresh, className: "px-4 py-2 rounded-lg text-white text-sm transition-all", style: { backgroundColor: accentColor }, children: "Try Again" })] })), !loading && !error && data.length === 0 && (_jsxs("div", { className: "p-12 text-center", children: [_jsx(TrendingUp, { className: "w-12 h-12 mx-auto mb-4 text-gray-500" }), _jsx("h3", { className: "text-lg font-semibold text-white mb-2", children: "No Leaderboard Data" }), _jsx("p", { className: "text-gray-400", children: "The leaderboard will be populated as users start earning points." })] })), data.length > 0 && (_jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "w-full", children: [_jsx("thead", { children: _jsxs("tr", { className: "border-b border-gray-700 bg-gray-800/50", children: [_jsx("th", { className: "px-4 py-3 text-left text-xs font-semibold text-gray-400 uppercase", children: "Rank" }), _jsx("th", { className: "px-4 py-3 text-left text-xs font-semibold text-gray-400 uppercase", children: "Wallet" }), _jsx("th", { className: "px-4 py-3 text-right text-xs font-semibold text-gray-400 uppercase", children: "Points" }), _jsx("th", { className: "px-4 py-3 text-center text-xs font-semibold text-gray-400 uppercase", children: "Badges" })] }) }), _jsx("tbody", { children: displayedData.map((entry) => (_jsx(LeaderboardRow, { entry: entry, accentColor: accentColor, isCurrentUser: walletAddress
175
+ : { color: theme.mutedForeground }, children: tf === 'alltime' ? 'All Time' : 'This Month' }, tf))) })] }))] }), _jsxs("div", { style: { backgroundColor: theme.background }, children: [loading && !data.length && (_jsx("div", { className: "p-6 space-y-3", children: [...Array(5)].map((_, i) => (_jsx("div", { className: "h-12 rounded-lg animate-pulse", style: { backgroundColor: theme.muted } }, i))) })), error && !data.length && (_jsxs("div", { className: "p-6 text-center", children: [_jsx("p", { className: "mb-4", style: { color: '#ef4444' }, children: error }), _jsx("button", { onClick: handleRefresh, className: "px-4 py-2 rounded-lg text-sm transition-all text-white", style: { backgroundColor: accentColor }, children: "Try Again" })] })), !loading && !error && data.length === 0 && (_jsxs("div", { className: "p-12 text-center", children: [_jsx(TrendingUp, { className: "w-12 h-12 mx-auto mb-4", style: { color: theme.mutedForeground } }), _jsx("h3", { className: "text-lg font-semibold mb-2", style: { color: theme.foreground }, children: "No Leaderboard Data" }), _jsx("p", { style: { color: theme.mutedForeground }, children: "The leaderboard will be populated as users start earning points." })] })), data.length > 0 && (_jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "w-full", children: [_jsx("thead", { children: _jsxs("tr", { className: "border-b", style: { borderColor: theme.border, backgroundColor: theme.muted }, children: [_jsx("th", { className: "px-4 py-3 text-left text-xs font-semibold uppercase", style: { color: theme.mutedForeground }, children: "Rank" }), _jsx("th", { className: "px-4 py-3 text-left text-xs font-semibold uppercase", style: { color: theme.mutedForeground }, children: "Wallet" }), _jsx("th", { className: "px-4 py-3 text-right text-xs font-semibold uppercase", style: { color: theme.mutedForeground }, children: "Points" }), _jsx("th", { className: "px-4 py-3 text-center text-xs font-semibold uppercase", style: { color: theme.mutedForeground }, children: "Badges" })] }) }), _jsx("tbody", { children: displayedData.map((entry) => (_jsx(LeaderboardRow, { entry: entry, accentColor: accentColor, theme: theme, isCurrentUser: walletAddress
173
176
  ? entry.walletAddress.toLowerCase() === walletAddress.toLowerCase()
174
177
  : false, onCopyAddress: () => {
175
178
  // Toast notification would go here
176
179
  console.log('Copied:', entry.walletAddress);
177
- } }, entry.rank))) })] }) }))] }), !compactMode && data.length > itemsPerPage && (_jsxs("div", { className: "px-6 py-4 border-t border-gray-700 flex items-center justify-between", children: [_jsxs("div", { className: "text-sm text-gray-400", children: ["Showing ", startIndex + 1, " to ", Math.min(endIndex, data.length), " of ", data.length] }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { onClick: () => setCurrentPage((p) => Math.max(1, p - 1)), disabled: currentPage === 1, className: "px-3 py-1.5 rounded-lg text-sm font-medium text-gray-400 hover:text-white hover:bg-gray-700 transition-all disabled:opacity-50 disabled:cursor-not-allowed", children: "\u2190 Previous" }), _jsx("div", { className: "flex items-center gap-1", children: [...Array(Math.min(5, totalPages))].map((_, i) => {
180
+ } }, entry.rank))) })] }) }))] }), !compactMode && data.length > itemsPerPage && (_jsxs("div", { className: "px-6 py-4 border-t flex items-center justify-between", style: { borderColor: theme.border }, children: [_jsxs("div", { className: "text-sm", style: { color: theme.mutedForeground }, children: ["Showing ", startIndex + 1, " to ", Math.min(endIndex, data.length), " of ", data.length] }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { onClick: () => setCurrentPage((p) => Math.max(1, p - 1)), disabled: currentPage === 1, className: "px-3 py-1.5 rounded-lg text-sm font-medium transition-all disabled:opacity-50 disabled:cursor-not-allowed", style: { color: theme.mutedForeground }, children: "\u2190 Previous" }), _jsx("div", { className: "flex items-center gap-1", children: [...Array(Math.min(5, totalPages))].map((_, i) => {
178
181
  const pageNum = i + 1;
179
- return (_jsx("button", { onClick: () => setCurrentPage(pageNum), className: `px-3 py-1.5 rounded-lg text-sm font-medium transition-all ${currentPage === pageNum
180
- ? 'text-white'
181
- : 'text-gray-400 hover:text-white hover:bg-gray-700'}`, style: currentPage === pageNum
182
+ return (_jsx("button", { onClick: () => setCurrentPage(pageNum), className: "px-3 py-1.5 rounded-lg text-sm font-medium transition-all", style: currentPage === pageNum
182
183
  ? {
183
184
  backgroundColor: accentColor,
184
185
  color: 'white',
185
186
  }
186
- : {}, children: pageNum }, pageNum));
187
- }) }), _jsx("button", { onClick: () => setCurrentPage((p) => Math.min(totalPages, p + 1)), disabled: currentPage === totalPages, className: "px-3 py-1.5 rounded-lg text-sm font-medium text-gray-400 hover:text-white hover:bg-gray-700 transition-all disabled:opacity-50 disabled:cursor-not-allowed", children: "Next \u2192" })] })] })), _jsx("div", { className: "px-6 py-3 border-t border-gray-700 flex items-center justify-end text-xs text-gray-500", children: _jsxs("span", { className: "flex items-center gap-1", children: [_jsx(ExternalLink, { className: "w-3 h-3" }), "@chainloyalty/react"] }) })] }));
187
+ : { color: theme.mutedForeground }, children: pageNum }, pageNum));
188
+ }) }), _jsx("button", { onClick: () => setCurrentPage((p) => Math.min(totalPages, p + 1)), disabled: currentPage === totalPages, className: "px-3 py-1.5 rounded-lg text-sm font-medium transition-all disabled:opacity-50 disabled:cursor-not-allowed", style: { color: theme.mutedForeground }, children: "Next \u2192" })] })] })), _jsx("div", { className: "px-6 py-3 border-t flex items-center justify-end text-xs", style: { borderColor: theme.border, color: theme.mutedForeground }, children: _jsxs("span", { className: "flex items-center gap-1", children: [_jsx(ExternalLink, { className: "w-3 h-3" }), "@chainloyalty/react"] }) })] }));
188
189
  };
189
190
  export default Leaderboard;
190
191
  //# sourceMappingURL=Leaderboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Leaderboard.js","sourceRoot":"","sources":["../src/Leaderboard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Leaderboard.js","sourceRoot":"","sources":["../src/Leaderboard.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RewardsDashboard.d.ts","sourceRoot":"","sources":["../src/RewardsDashboard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAkBnD,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;CAClD;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,GAAG,eAAe,CAAC;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAmSD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAoO5D,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"RewardsDashboard.d.ts","sourceRoot":"","sources":["../src/RewardsDashboard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAkBnD,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;CAClD;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,GAAG,eAAe,CAAC;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AA4SD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAwO5D,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -168,22 +168,28 @@ const getRarityColor = (rarity) => {
168
168
  };
169
169
  return rarityColors[rarity] || '#A0AEC0';
170
170
  };
171
- const RewardHistory = ({ items, accentColor }) => {
172
- return (_jsx("div", { className: "space-y-3", children: items.map((item) => (_jsxs("div", { className: "flex items-start justify-between p-3 rounded-lg border border-gray-700 hover:border-gray-600 transition-colors", style: { borderLeftColor: accentColor, borderLeftWidth: '3px' }, children: [_jsxs("div", { className: "flex-1", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-sm font-semibold text-white", children: item.title }), _jsx("span", { className: "text-xs px-2 py-0.5 rounded-full bg-gray-700 text-gray-300", children: item.type })] }), item.description && (_jsx("p", { className: "text-xs text-gray-400 mt-1", children: item.description })), _jsx("p", { className: "text-xs text-gray-500 mt-1", children: formatDate(item.timestamp) })] }), _jsxs("div", { className: "ml-4 text-right", children: [_jsxs("p", { className: "text-lg font-bold", style: { color: accentColor }, children: ["+", item.points] }), _jsx("p", { className: "text-xs text-gray-400", children: "points" })] })] }, item.id))) }));
171
+ const RewardHistory = ({ items, accentColor, theme }) => {
172
+ return (_jsx("div", { className: "space-y-3", children: items.map((item) => (_jsxs("div", { className: "flex items-start justify-between p-3 rounded-lg border transition-colors hover:opacity-80", style: {
173
+ borderColor: theme.border,
174
+ borderLeftColor: accentColor,
175
+ borderLeftWidth: '3px',
176
+ backgroundColor: 'transparent',
177
+ }, children: [_jsxs("div", { className: "flex-1", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-sm font-semibold", style: { color: theme.foreground }, children: item.title }), _jsx("span", { className: "text-xs px-2 py-0.5 rounded-full", style: { backgroundColor: theme.muted, color: theme.mutedForeground }, children: item.type })] }), item.description && (_jsx("p", { className: "text-xs mt-1", style: { color: theme.mutedForeground }, children: item.description })), _jsx("p", { className: "text-xs mt-1", style: { color: theme.mutedForeground }, children: formatDate(item.timestamp) })] }), _jsxs("div", { className: "ml-4 text-right", children: [_jsxs("p", { className: "text-lg font-bold", style: { color: accentColor }, children: ["+", item.points] }), _jsx("p", { className: "text-xs", style: { color: theme.mutedForeground }, children: "points" })] })] }, item.id))) }));
173
178
  };
174
- const BadgeGrid = ({ badges, compactMode = false }) => {
179
+ const BadgeGrid = ({ badges, theme, compactMode = false }) => {
175
180
  const displayBadges = compactMode ? badges.slice(0, 4) : badges;
176
181
  return (_jsx("div", { className: `grid gap-3 ${compactMode ? 'grid-cols-2 sm:grid-cols-3 md:grid-cols-4' : 'grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5'}`, children: displayBadges.map((badge) => (_jsxs("div", { className: "group relative p-3 rounded-lg border transition-all hover:scale-105 cursor-pointer", style: {
177
182
  borderColor: getRarityColor(badge.rarity),
178
- backgroundColor: 'rgba(31, 41, 55, 0.5)',
179
- }, title: `${badge.name} - ${badge.description}`, children: [_jsx("div", { className: "text-3xl mb-1 text-center", children: badge.icon }), _jsx("p", { className: "text-xs font-semibold text-white text-center truncate", children: badge.name }), _jsx("p", { className: "text-xs text-gray-400 text-center mt-0.5", children: new Date(badge.earnedAt).toLocaleDateString() }), _jsx("div", { className: "hidden group-hover:block absolute bottom-full left-1/2 transform -translate-x-1/2 mb-2 p-2 bg-gray-900 border border-gray-700 rounded-lg text-xs text-gray-300 w-32 text-center whitespace-normal z-10", children: badge.description })] }, badge.id))) }));
183
+ backgroundColor: theme.card,
184
+ opacity: 0.9,
185
+ }, title: `${badge.name} - ${badge.description}`, children: [_jsx("div", { className: "text-3xl mb-1 text-center", children: badge.icon }), _jsx("p", { className: "text-xs font-semibold text-center truncate", style: { color: theme.foreground }, children: badge.name }), _jsx("p", { className: "text-xs text-center mt-0.5", style: { color: theme.mutedForeground }, children: new Date(badge.earnedAt).toLocaleDateString() }), _jsx("div", { className: "hidden group-hover:block absolute bottom-full left-1/2 transform -translate-x-1/2 mb-2 p-2 border rounded-lg text-xs w-32 text-center whitespace-normal z-10", style: { backgroundColor: theme.muted, borderColor: theme.border, color: theme.mutedForeground }, children: badge.description })] }, badge.id))) }));
180
186
  };
181
- const TierCard = ({ tier, accentColor }) => {
187
+ const TierCard = ({ tier, accentColor, theme }) => {
182
188
  const progressPercent = (tier.currentProgress / tier.nextMilestone) * 100;
183
189
  return (_jsxs("div", { className: "p-4 rounded-lg border", style: {
184
190
  borderColor: accentColor,
185
- backgroundColor: 'rgba(31, 41, 55, 0.3)',
186
- }, children: [_jsx("div", { className: "flex items-start justify-between mb-3", children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-3xl", children: tier.icon }), _jsxs("div", { children: [_jsx("p", { className: "text-sm font-semibold text-white", children: tier.name }), _jsxs("p", { className: "text-xs text-gray-400", children: ["Level ", tier.level] })] })] }) }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex justify-between text-xs text-gray-400", children: [_jsxs("span", { children: [tier.currentProgress.toLocaleString(), " points"] }), _jsxs("span", { children: [tier.nextMilestone.toLocaleString(), " goal"] })] }), _jsx("div", { className: "w-full bg-gray-700 rounded-full h-2 overflow-hidden", children: _jsx("div", { className: "h-full rounded-full transition-all duration-500", style: {
191
+ backgroundColor: theme.card,
192
+ }, children: [_jsx("div", { className: "flex items-start justify-between mb-3", children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-3xl", children: tier.icon }), _jsxs("div", { children: [_jsx("p", { className: "text-sm font-semibold", style: { color: theme.foreground }, children: tier.name }), _jsxs("p", { className: "text-xs", style: { color: theme.mutedForeground }, children: ["Level ", tier.level] })] })] }) }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex justify-between text-xs", style: { color: theme.mutedForeground }, children: [_jsxs("span", { children: [tier.currentProgress.toLocaleString(), " points"] }), _jsxs("span", { children: [tier.nextMilestone.toLocaleString(), " goal"] })] }), _jsx("div", { className: "w-full rounded-full h-2 overflow-hidden", style: { backgroundColor: theme.muted }, children: _jsx("div", { className: "h-full rounded-full transition-all duration-500", style: {
187
193
  width: `${Math.min(progressPercent, 100)}%`,
188
194
  backgroundColor: accentColor,
189
195
  } }) })] })] }));
@@ -237,24 +243,25 @@ export const RewardsDashboard = ({ walletAddress = null, onConnectWallet, custom
237
243
  };
238
244
  // Disconnected state
239
245
  if (!walletAddress) {
240
- return (_jsx("div", { className: "p-6 rounded-lg border border-gray-700 max-w-2xl", style: { backgroundColor }, children: _jsxs("div", { className: "text-center", children: [_jsx(Lock, { className: "w-12 h-12 mx-auto mb-4 text-gray-500" }), _jsx("h2", { className: "text-xl font-bold text-white mb-2", children: "Connect Your Wallet" }), _jsx("p", { className: "text-gray-400 mb-6", children: "Connect your wallet to view your rewards, badges, and track your achievements." }), onConnectWallet && (_jsxs("button", { onClick: onConnectWallet, className: "inline-flex items-center gap-2 px-6 py-2 rounded-lg font-semibold text-white transition-all hover:opacity-90", style: {
246
+ return (_jsx("div", { className: "p-6 rounded-lg border max-w-2xl", style: { backgroundColor: theme.card, borderColor: theme.border }, children: _jsxs("div", { className: "text-center", children: [_jsx(Lock, { className: "w-12 h-12 mx-auto mb-4", style: { color: theme.mutedForeground } }), _jsx("h2", { className: "text-xl font-bold mb-2", style: { color: theme.foreground }, children: "Connect Your Wallet" }), _jsx("p", { className: "mb-6", style: { color: theme.mutedForeground }, children: "Connect your wallet to view your rewards, badges, and track your achievements." }), onConnectWallet && (_jsxs("button", { onClick: onConnectWallet, className: "inline-flex items-center gap-2 px-6 py-2 rounded-lg font-semibold transition-all hover:opacity-90", style: {
241
247
  backgroundColor: accentColor,
248
+ color: '#fff',
242
249
  }, children: [_jsx(Wallet, { className: "w-5 h-5" }), "Connect Wallet"] }))] }) }));
243
250
  }
244
251
  // Loading state
245
252
  if (loading && !data) {
246
- return (_jsx("div", { className: "p-6 rounded-lg border border-gray-700 max-w-2xl", style: { backgroundColor }, children: _jsxs("div", { className: "space-y-4", children: [_jsx("div", { className: "h-20 bg-gray-700 rounded-lg animate-pulse" }), _jsx("div", { className: "h-40 bg-gray-700 rounded-lg animate-pulse" }), _jsx("div", { className: "h-32 bg-gray-700 rounded-lg animate-pulse" })] }) }));
253
+ return (_jsx("div", { className: "p-6 rounded-lg border max-w-2xl", style: { backgroundColor: theme.card, borderColor: theme.border }, children: _jsxs("div", { className: "space-y-4", children: [_jsx("div", { className: "h-20 rounded-lg animate-pulse", style: { backgroundColor: theme.muted } }), _jsx("div", { className: "h-40 rounded-lg animate-pulse", style: { backgroundColor: theme.muted } }), _jsx("div", { className: "h-32 rounded-lg animate-pulse", style: { backgroundColor: theme.muted } })] }) }));
247
254
  }
248
255
  // Error state
249
256
  if (error && !data) {
250
- return (_jsxs("div", { className: "p-6 rounded-lg border border-red-700 max-w-2xl", style: { backgroundColor }, children: [_jsxs("p", { className: "text-red-400", children: ["Failed to load rewards: ", error] }), _jsx("button", { onClick: handleRefresh, className: "mt-4 px-4 py-2 rounded-lg text-white text-sm transition-all", style: { backgroundColor: accentColor }, children: "Try Again" })] }));
257
+ return (_jsxs("div", { className: "p-6 rounded-lg border max-w-2xl", style: { backgroundColor: theme.card, borderColor: '#dc2626' }, children: [_jsxs("p", { style: { color: '#ef4444' }, children: ["Failed to load rewards: ", error] }), _jsx("button", { onClick: handleRefresh, className: "mt-4 px-4 py-2 rounded-lg text-white text-sm transition-all", style: { backgroundColor: accentColor }, children: "Try Again" })] }));
251
258
  }
252
259
  if (!data)
253
260
  return null;
254
- return (_jsxs("div", { className: "rounded-lg border border-gray-700 overflow-hidden", style: { backgroundColor }, children: [_jsxs("div", { className: "p-6 border-b border-gray-700", children: [_jsxs("div", { className: "flex items-center justify-between mb-4", children: [_jsx("h2", { className: "text-2xl font-bold text-white", children: "Rewards Dashboard" }), _jsx("button", { onClick: handleRefresh, disabled: loading, className: "p-2 rounded-lg text-gray-400 hover:text-white hover:bg-gray-700 transition-all disabled:opacity-50", children: _jsx(RefreshCw, { className: `w-5 h-5 ${loading ? 'animate-spin' : ''}` }) })] }), _jsxs("div", { className: "flex items-center justify-between p-3 rounded-lg bg-gray-800/50 border border-gray-700", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Wallet, { className: "w-5 h-5", style: { color: accentColor } }), _jsxs("div", { children: [_jsx("p", { className: "text-xs text-gray-400", children: "Connected Wallet" }), _jsx("p", { className: "text-sm font-mono font-semibold text-white", children: shortenAddress(walletAddress) })] })] }), _jsx("button", { onClick: handleCopyAddress, className: "p-2 rounded-lg text-gray-400 hover:text-white hover:bg-gray-700 transition-all", title: walletAddress, children: copied ? _jsx(CheckCircle, { className: "w-5 h-5", style: { color: accentColor2 } }) : _jsx(Copy, { className: "w-5 h-5" }) })] })] }), _jsxs("div", { className: `p-6 space-y-6 ${compactMode ? 'max-w-3xl' : ''}`, style: { backgroundColor: 'rgba(31, 41, 55, 0.2)' }, children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { className: "p-6 rounded-lg border text-center", style: {
261
+ return (_jsxs("div", { className: "rounded-lg border border-gray-700 overflow-hidden", style: { backgroundColor }, children: [_jsxs("div", { className: "p-6 border-b border-gray-700", children: [_jsxs("div", { className: "flex items-center justify-between mb-4", children: [_jsx("h2", { className: "text-2xl font-bold", style: { color: theme.foreground }, children: "Rewards Dashboard" }), _jsx("button", { onClick: handleRefresh, disabled: loading, className: "p-2 rounded-lg transition-all disabled:opacity-50", style: { color: theme.mutedForeground }, children: _jsx(RefreshCw, { className: `w-5 h-5 ${loading ? 'animate-spin' : ''}` }) })] }), _jsxs("div", { className: "flex items-center justify-between p-3 rounded-lg border", style: { backgroundColor: theme.muted, borderColor: theme.border }, children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Wallet, { className: "w-5 h-5", style: { color: accentColor } }), _jsxs("div", { children: [_jsx("p", { className: "text-xs", style: { color: theme.mutedForeground }, children: "Connected Wallet" }), _jsx("p", { className: "text-sm font-mono font-semibold", style: { color: theme.foreground }, children: shortenAddress(walletAddress) })] })] }), _jsx("button", { onClick: handleCopyAddress, className: "p-2 rounded-lg transition-all", style: { color: theme.mutedForeground }, title: walletAddress, children: copied ? _jsx(CheckCircle, { className: "w-5 h-5", style: { color: accentColor2 } }) : _jsx(Copy, { className: "w-5 h-5" }) })] })] }), _jsxs("div", { className: `p-6 space-y-6 ${compactMode ? 'max-w-3xl' : ''}`, style: { backgroundColor: theme.background }, children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { className: "p-6 rounded-lg border text-center", style: {
255
262
  borderColor: accentColor,
256
- backgroundColor: 'rgba(47, 129, 247, 0.1)',
257
- }, children: [_jsx("p", { className: "text-sm text-gray-400 mb-2", children: "Total Points" }), _jsx("p", { className: "text-4xl font-bold", style: { color: accentColor }, children: data.totalPoints.toLocaleString() }), _jsxs("div", { className: "flex items-center justify-center gap-1 mt-2 text-xs text-gray-400", children: [_jsx(TrendingUp, { className: "w-4 h-4" }), _jsx("span", { children: "Keep earning rewards" })] })] }), !hideTier && (_jsx(TierCard, { tier: data.tier, accentColor: accentColor2 }))] }), !hideBadges && data.badges.length > 0 && (_jsxs("div", { children: [_jsxs("div", { className: "flex items-center gap-2 mb-4", children: [_jsx(Award, { className: "w-5 h-5", style: { color: accentColor } }), _jsxs("h3", { className: "text-lg font-semibold text-white", children: ["Badges (", data.badges.length, ")"] })] }), _jsx(BadgeGrid, { badges: data.badges, compactMode: compactMode })] })), !hideHistory && data.rewardHistory.length > 0 && (_jsxs("div", { children: [_jsxs("div", { className: "flex items-center gap-2 mb-4", children: [_jsx(Zap, { className: "w-5 h-5", style: { color: accentColor2 } }), _jsx("h3", { className: "text-lg font-semibold text-white", children: "Recent Rewards" })] }), _jsx(RewardHistory, { items: compactMode ? data.rewardHistory.slice(0, 3) : data.rewardHistory, accentColor: accentColor })] }))] }), _jsxs("div", { className: "px-6 py-3 border-t border-gray-700 flex items-center justify-between text-xs text-gray-500", children: [_jsxs("span", { children: ["Last updated: ", formatDate(data.lastUpdated)] }), _jsxs("span", { className: "flex items-center gap-1", children: [_jsx(ExternalLink, { className: "w-3 h-3" }), "@chainloyalty/react"] })] })] }));
263
+ backgroundColor: theme.card,
264
+ }, children: [_jsx("p", { className: "text-sm mb-2", style: { color: theme.mutedForeground }, children: "Total Points" }), _jsx("p", { className: "text-4xl font-bold", style: { color: accentColor }, children: data.totalPoints.toLocaleString() }), _jsxs("div", { className: "flex items-center justify-center gap-1 mt-2 text-xs", style: { color: theme.mutedForeground }, children: [_jsx(TrendingUp, { className: "w-4 h-4" }), _jsx("span", { children: "Keep earning rewards" })] })] }), !hideTier && (_jsx(TierCard, { tier: data.tier, accentColor: accentColor2, theme: theme }))] }), !hideBadges && data.badges.length > 0 && (_jsxs("div", { children: [_jsxs("div", { className: "flex items-center gap-2 mb-4", children: [_jsx(Award, { className: "w-5 h-5", style: { color: accentColor } }), _jsxs("h3", { className: "text-lg font-semibold", style: { color: theme.foreground }, children: ["Badges (", data.badges.length, ")"] })] }), _jsx(BadgeGrid, { badges: data.badges, theme: theme, compactMode: compactMode })] })), !hideHistory && data.rewardHistory.length > 0 && (_jsxs("div", { children: [_jsxs("div", { className: "flex items-center gap-2 mb-4", children: [_jsx(Zap, { className: "w-5 h-5", style: { color: accentColor2 } }), _jsx("h3", { className: "text-lg font-semibold", style: { color: theme.foreground }, children: "Recent Rewards" })] }), _jsx(RewardHistory, { items: compactMode ? data.rewardHistory.slice(0, 3) : data.rewardHistory, accentColor: accentColor, theme: theme })] }))] }), _jsxs("div", { className: "px-6 py-3 border-t flex items-center justify-between text-xs", style: { borderColor: theme.border, color: theme.mutedForeground }, children: [_jsxs("span", { children: ["Last updated: ", formatDate(data.lastUpdated)] }), _jsxs("span", { className: "flex items-center gap-1", children: [_jsx(ExternalLink, { className: "w-3 h-3" }), "@chainloyalty/react"] })] })] }));
258
265
  };
259
266
  export default RewardsDashboard;
260
267
  //# sourceMappingURL=RewardsDashboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RewardsDashboard.js","sourceRoot":"","sources":["../src/RewardsDashboard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RewardsDashboard.js","sourceRoot":"","sources":["../src/RewardsDashboard.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@chainloyalty/react",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "type": "module",
5
- "description": "ChainLoyalty React Components - Event tracking, rewards dashboard, and leaderboard with automatic theme detection",
5
+ "description": "ChainLoyalty React Components - Event tracking, rewards dashboard, and leaderboard with automatic light/dark theme detection",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "scripts": {
@@ -143,6 +143,7 @@ const getRankIcon = (rank: number): React.ReactNode => {
143
143
  interface LeaderboardRowProps {
144
144
  entry: LeaderboardEntry;
145
145
  accentColor: string;
146
+ theme: ReturnType<typeof getThemeColors>;
146
147
  isCurrentUser?: boolean;
147
148
  onCopyAddress?: (address: string) => void;
148
149
  }
@@ -150,6 +151,7 @@ interface LeaderboardRowProps {
150
151
  const LeaderboardRow: React.FC<LeaderboardRowProps> = ({
151
152
  entry,
152
153
  accentColor,
154
+ theme,
153
155
  isCurrentUser = false,
154
156
  onCopyAddress,
155
157
  }) => {
@@ -169,9 +171,11 @@ const LeaderboardRow: React.FC<LeaderboardRowProps> = ({
169
171
 
170
172
  return (
171
173
  <tr
172
- className={`border-b border-gray-700 transition-all hover:bg-gray-700/30 ${
173
- isCurrentUser ? 'bg-gray-700/20' : ''
174
- }`}
174
+ className="border-b transition-all hover:opacity-80"
175
+ style={{
176
+ borderColor: theme.border,
177
+ backgroundColor: isCurrentUser ? 'rgba(0,0,0,0.1)' : 'transparent'
178
+ }}
175
179
  >
176
180
  {/* Rank */}
177
181
  <td className="px-4 py-3 text-sm">
@@ -191,12 +195,13 @@ const LeaderboardRow: React.FC<LeaderboardRowProps> = ({
191
195
  {/* Wallet Address */}
192
196
  <td className="px-4 py-3 text-sm">
193
197
  <div className="flex items-center gap-2 group">
194
- <span className="text-white font-mono">
198
+ <span className="font-mono" style={{ color: theme.foreground }}>
195
199
  {shortenAddress(entry.walletAddress)}
196
200
  </span>
197
201
  <button
198
202
  onClick={handleCopy}
199
- className="p-1.5 rounded-md text-gray-500 group-hover:text-gray-300 hover:bg-gray-700/50 transition-all opacity-0 group-hover:opacity-100"
203
+ className="p-1.5 rounded-md transition-all opacity-0 group-hover:opacity-100"
204
+ style={{ color: theme.mutedForeground }}
200
205
  title={entry.walletAddress}
201
206
  >
202
207
  {copied ? (
@@ -206,7 +211,7 @@ const LeaderboardRow: React.FC<LeaderboardRowProps> = ({
206
211
  )}
207
212
  </button>
208
213
  {entry.displayName && (
209
- <span className="hidden sm:inline text-xs text-gray-400">({entry.displayName})</span>
214
+ <span className="hidden sm:inline text-xs" style={{ color: theme.mutedForeground }}>({entry.displayName})</span>
210
215
  )}
211
216
  </div>
212
217
  </td>
@@ -217,7 +222,7 @@ const LeaderboardRow: React.FC<LeaderboardRowProps> = ({
217
222
  <p className="font-bold" style={{ color: accentColor }}>
218
223
  {entry.points.toLocaleString()}
219
224
  </p>
220
- <p className="text-xs text-gray-400 hidden sm:block">points</p>
225
+ <p className="text-xs hidden sm:block" style={{ color: theme.mutedForeground }}>points</p>
221
226
  </div>
222
227
  </td>
223
228
 
@@ -226,12 +231,13 @@ const LeaderboardRow: React.FC<LeaderboardRowProps> = ({
226
231
  <div
227
232
  className="inline-flex items-center gap-1 px-2 py-1 rounded-lg"
228
233
  style={{
229
- backgroundColor: 'rgba(47, 129, 247, 0.1)',
230
- borderColor: accentColor,
234
+ backgroundColor: theme.muted,
235
+ borderColor: theme.border,
236
+ border: '1px solid',
231
237
  }}
232
238
  >
233
239
  <Award className="w-4 h-4" style={{ color: accentColor }} />
234
- <span className="font-semibold text-white">{entry.badgesCount}</span>
240
+ <span className="font-semibold" style={{ color: theme.foreground }}>{entry.badgesCount}</span>
235
241
  </div>
236
242
  </td>
237
243
  </tr>
@@ -261,7 +267,6 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
261
267
  // Override with customColors if provided (backward compatibility)
262
268
  const accentColor = customColors.accent1 || theme.accent;
263
269
  const accentColor2 = customColors.accent2 || theme.primary;
264
- const backgroundColor = customColors.background || theme.card;
265
270
 
266
271
  // Fetch data when timeframe changes
267
272
  useEffect(() => {
@@ -299,20 +304,21 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
299
304
 
300
305
  return (
301
306
  <div
302
- className="rounded-lg border border-gray-700 overflow-hidden"
303
- style={{ backgroundColor }}
307
+ className="rounded-lg border overflow-hidden"
308
+ style={{ backgroundColor: theme.card, borderColor: theme.border }}
304
309
  >
305
310
  {/* Header */}
306
- <div className="p-6 border-b border-gray-700">
311
+ <div className="p-6" style={{ borderBottom: `1px solid ${theme.border}` }}>
307
312
  <div className="flex items-center justify-between mb-4">
308
313
  <div className="flex items-center gap-3">
309
314
  <Trophy className="w-6 h-6" style={{ color: accentColor2 }} />
310
- <h2 className="text-2xl font-bold text-white">Leaderboard</h2>
315
+ <h2 className="text-2xl font-bold" style={{ color: theme.foreground }}>Leaderboard</h2>
311
316
  </div>
312
317
  <button
313
318
  onClick={handleRefresh}
314
319
  disabled={loading}
315
- className="p-2 rounded-lg text-gray-400 hover:text-white hover:bg-gray-700 transition-all disabled:opacity-50"
320
+ className="p-2 rounded-lg transition-all disabled:opacity-50"
321
+ style={{ color: theme.mutedForeground }}
316
322
  title="Refresh leaderboard"
317
323
  >
318
324
  <RefreshCw className={`w-5 h-5 ${loading ? 'animate-spin' : ''}`} />
@@ -322,11 +328,11 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
322
328
  {/* Stats */}
323
329
  <div className="grid grid-cols-2 md:grid-cols-3 gap-3 mb-4">
324
330
  <div
325
- className="p-3 rounded-lg border border-gray-700"
326
- style={{ backgroundColor: 'rgba(31, 41, 55, 0.5)' }}
331
+ className="p-3 rounded-lg border"
332
+ style={{ backgroundColor: theme.muted, borderColor: theme.border }}
327
333
  >
328
- <p className="text-xs text-gray-400">Total Users</p>
329
- <p className="text-2xl font-bold text-white">{data.length.toLocaleString()}</p>
334
+ <p className="text-xs" style={{ color: theme.mutedForeground }}>Total Users</p>
335
+ <p className="text-2xl font-bold" style={{ color: theme.foreground }}>{data.length.toLocaleString()}</p>
330
336
  </div>
331
337
 
332
338
  {currentUserRank && (
@@ -335,10 +341,10 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
335
341
  className="p-3 rounded-lg border"
336
342
  style={{
337
343
  borderColor: accentColor,
338
- backgroundColor: 'rgba(47, 129, 247, 0.1)',
344
+ backgroundColor: theme.card,
339
345
  }}
340
346
  >
341
- <p className="text-xs text-gray-400">Your Rank</p>
347
+ <p className="text-xs" style={{ color: theme.mutedForeground }}>Your Rank</p>
342
348
  <p className="text-2xl font-bold" style={{ color: accentColor }}>
343
349
  #{currentUserRank.rank}
344
350
  </p>
@@ -348,10 +354,10 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
348
354
  className="p-3 rounded-lg border"
349
355
  style={{
350
356
  borderColor: accentColor2,
351
- backgroundColor: 'rgba(63, 185, 80, 0.1)',
357
+ backgroundColor: theme.card,
352
358
  }}
353
359
  >
354
- <p className="text-xs text-gray-400">Your Points</p>
360
+ <p className="text-xs" style={{ color: theme.mutedForeground }}>Your Points</p>
355
361
  <p className="text-2xl font-bold" style={{ color: accentColor2 }}>
356
362
  {currentUserRank.points.toLocaleString()}
357
363
  </p>
@@ -363,7 +369,7 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
363
369
  {/* Filters */}
364
370
  {!hideTimeframeFilter && (
365
371
  <div className="flex items-center gap-2">
366
- <Calendar className="w-4 h-4 text-gray-400" />
372
+ <Calendar className="w-4 h-4" style={{ color: theme.mutedForeground }} />
367
373
  <div className="flex gap-2">
368
374
  {(['alltime', 'month'] as const).map((tf) => (
369
375
  <button
@@ -371,8 +377,8 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
371
377
  onClick={() => setTimeframe(tf)}
372
378
  className={`px-3 py-1.5 rounded-lg text-sm font-medium transition-all ${
373
379
  timeframe === tf
374
- ? 'text-white'
375
- : 'text-gray-400 hover:text-white hover:bg-gray-700/50'
380
+ ? ''
381
+ : ''
376
382
  }`}
377
383
  style={
378
384
  timeframe === tf
@@ -380,7 +386,7 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
380
386
  backgroundColor: accentColor,
381
387
  color: 'white',
382
388
  }
383
- : {}
389
+ : { color: theme.mutedForeground }
384
390
  }
385
391
  >
386
392
  {tf === 'alltime' ? 'All Time' : 'This Month'}
@@ -392,12 +398,12 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
392
398
  </div>
393
399
 
394
400
  {/* Content */}
395
- <div style={{ backgroundColor: 'rgba(31, 41, 55, 0.2)' }}>
401
+ <div style={{ backgroundColor: theme.background }}>
396
402
  {/* Loading State */}
397
403
  {loading && !data.length && (
398
404
  <div className="p-6 space-y-3">
399
405
  {[...Array(5)].map((_, i) => (
400
- <div key={i} className="h-12 bg-gray-700 rounded-lg animate-pulse" />
406
+ <div key={i} className="h-12 rounded-lg animate-pulse" style={{ backgroundColor: theme.muted }} />
401
407
  ))}
402
408
  </div>
403
409
  )}
@@ -405,10 +411,10 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
405
411
  {/* Error State */}
406
412
  {error && !data.length && (
407
413
  <div className="p-6 text-center">
408
- <p className="text-red-400 mb-4">{error}</p>
414
+ <p className="mb-4" style={{ color: '#ef4444' }}>{error}</p>
409
415
  <button
410
416
  onClick={handleRefresh}
411
- className="px-4 py-2 rounded-lg text-white text-sm transition-all"
417
+ className="px-4 py-2 rounded-lg text-sm transition-all text-white"
412
418
  style={{ backgroundColor: accentColor }}
413
419
  >
414
420
  Try Again
@@ -419,9 +425,9 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
419
425
  {/* Empty State */}
420
426
  {!loading && !error && data.length === 0 && (
421
427
  <div className="p-12 text-center">
422
- <TrendingUp className="w-12 h-12 mx-auto mb-4 text-gray-500" />
423
- <h3 className="text-lg font-semibold text-white mb-2">No Leaderboard Data</h3>
424
- <p className="text-gray-400">The leaderboard will be populated as users start earning points.</p>
428
+ <TrendingUp className="w-12 h-12 mx-auto mb-4" style={{ color: theme.mutedForeground }} />
429
+ <h3 className="text-lg font-semibold mb-2" style={{ color: theme.foreground }}>No Leaderboard Data</h3>
430
+ <p style={{ color: theme.mutedForeground }}>The leaderboard will be populated as users start earning points.</p>
425
431
  </div>
426
432
  )}
427
433
 
@@ -430,17 +436,17 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
430
436
  <div className="overflow-x-auto">
431
437
  <table className="w-full">
432
438
  <thead>
433
- <tr className="border-b border-gray-700 bg-gray-800/50">
434
- <th className="px-4 py-3 text-left text-xs font-semibold text-gray-400 uppercase">
439
+ <tr className="border-b" style={{ borderColor: theme.border, backgroundColor: theme.muted }}>
440
+ <th className="px-4 py-3 text-left text-xs font-semibold uppercase" style={{ color: theme.mutedForeground }}>
435
441
  Rank
436
442
  </th>
437
- <th className="px-4 py-3 text-left text-xs font-semibold text-gray-400 uppercase">
443
+ <th className="px-4 py-3 text-left text-xs font-semibold uppercase" style={{ color: theme.mutedForeground }}>
438
444
  Wallet
439
445
  </th>
440
- <th className="px-4 py-3 text-right text-xs font-semibold text-gray-400 uppercase">
446
+ <th className="px-4 py-3 text-right text-xs font-semibold uppercase" style={{ color: theme.mutedForeground }}>
441
447
  Points
442
448
  </th>
443
- <th className="px-4 py-3 text-center text-xs font-semibold text-gray-400 uppercase">
449
+ <th className="px-4 py-3 text-center text-xs font-semibold uppercase" style={{ color: theme.mutedForeground }}>
444
450
  Badges
445
451
  </th>
446
452
  </tr>
@@ -451,6 +457,7 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
451
457
  key={entry.rank}
452
458
  entry={entry}
453
459
  accentColor={accentColor}
460
+ theme={theme}
454
461
  isCurrentUser={
455
462
  walletAddress
456
463
  ? entry.walletAddress.toLowerCase() === walletAddress.toLowerCase()
@@ -470,15 +477,16 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
470
477
 
471
478
  {/* Pagination */}
472
479
  {!compactMode && data.length > itemsPerPage && (
473
- <div className="px-6 py-4 border-t border-gray-700 flex items-center justify-between">
474
- <div className="text-sm text-gray-400">
480
+ <div className="px-6 py-4 border-t flex items-center justify-between" style={{ borderColor: theme.border }}>
481
+ <div className="text-sm" style={{ color: theme.mutedForeground }}>
475
482
  Showing {startIndex + 1} to {Math.min(endIndex, data.length)} of {data.length}
476
483
  </div>
477
484
  <div className="flex gap-2">
478
485
  <button
479
486
  onClick={() => setCurrentPage((p) => Math.max(1, p - 1))}
480
487
  disabled={currentPage === 1}
481
- className="px-3 py-1.5 rounded-lg text-sm font-medium text-gray-400 hover:text-white hover:bg-gray-700 transition-all disabled:opacity-50 disabled:cursor-not-allowed"
488
+ className="px-3 py-1.5 rounded-lg text-sm font-medium transition-all disabled:opacity-50 disabled:cursor-not-allowed"
489
+ style={{ color: theme.mutedForeground }}
482
490
  >
483
491
  ← Previous
484
492
  </button>
@@ -489,18 +497,14 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
489
497
  <button
490
498
  key={pageNum}
491
499
  onClick={() => setCurrentPage(pageNum)}
492
- className={`px-3 py-1.5 rounded-lg text-sm font-medium transition-all ${
493
- currentPage === pageNum
494
- ? 'text-white'
495
- : 'text-gray-400 hover:text-white hover:bg-gray-700'
496
- }`}
500
+ className="px-3 py-1.5 rounded-lg text-sm font-medium transition-all"
497
501
  style={
498
502
  currentPage === pageNum
499
503
  ? {
500
504
  backgroundColor: accentColor,
501
505
  color: 'white',
502
506
  }
503
- : {}
507
+ : { color: theme.mutedForeground }
504
508
  }
505
509
  >
506
510
  {pageNum}
@@ -511,7 +515,8 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
511
515
  <button
512
516
  onClick={() => setCurrentPage((p) => Math.min(totalPages, p + 1))}
513
517
  disabled={currentPage === totalPages}
514
- className="px-3 py-1.5 rounded-lg text-sm font-medium text-gray-400 hover:text-white hover:bg-gray-700 transition-all disabled:opacity-50 disabled:cursor-not-allowed"
518
+ className="px-3 py-1.5 rounded-lg text-sm font-medium transition-all disabled:opacity-50 disabled:cursor-not-allowed"
519
+ style={{ color: theme.mutedForeground }}
515
520
  >
516
521
  Next →
517
522
  </button>
@@ -520,7 +525,7 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
520
525
  )}
521
526
 
522
527
  {/* Footer */}
523
- <div className="px-6 py-3 border-t border-gray-700 flex items-center justify-end text-xs text-gray-500">
528
+ <div className="px-6 py-3 border-t flex items-center justify-end text-xs" style={{ borderColor: theme.border, color: theme.mutedForeground }}>
524
529
  <span className="flex items-center gap-1">
525
530
  <ExternalLink className="w-3 h-3" />
526
531
  @chainloyalty/react
@@ -245,34 +245,40 @@ const getRarityColor = (rarity: string): string => {
245
245
  interface RewardHistoryProps {
246
246
  items: RewardHistoryItem[];
247
247
  accentColor: string;
248
+ theme: ReturnType<typeof getThemeColors>;
248
249
  }
249
250
 
250
- const RewardHistory: React.FC<RewardHistoryProps> = ({ items, accentColor }) => {
251
+ const RewardHistory: React.FC<RewardHistoryProps> = ({ items, accentColor, theme }) => {
251
252
  return (
252
253
  <div className="space-y-3">
253
254
  {items.map((item) => (
254
255
  <div
255
256
  key={item.id}
256
- className="flex items-start justify-between p-3 rounded-lg border border-gray-700 hover:border-gray-600 transition-colors"
257
- style={{ borderLeftColor: accentColor, borderLeftWidth: '3px' }}
257
+ className="flex items-start justify-between p-3 rounded-lg border transition-colors hover:opacity-80"
258
+ style={{
259
+ borderColor: theme.border,
260
+ borderLeftColor: accentColor,
261
+ borderLeftWidth: '3px',
262
+ backgroundColor: 'transparent',
263
+ }}
258
264
  >
259
265
  <div className="flex-1">
260
266
  <div className="flex items-center gap-2">
261
- <span className="text-sm font-semibold text-white">{item.title}</span>
262
- <span className="text-xs px-2 py-0.5 rounded-full bg-gray-700 text-gray-300">
267
+ <span className="text-sm font-semibold" style={{ color: theme.foreground }}>{item.title}</span>
268
+ <span className="text-xs px-2 py-0.5 rounded-full" style={{ backgroundColor: theme.muted, color: theme.mutedForeground }}>
263
269
  {item.type}
264
270
  </span>
265
271
  </div>
266
272
  {item.description && (
267
- <p className="text-xs text-gray-400 mt-1">{item.description}</p>
273
+ <p className="text-xs mt-1" style={{ color: theme.mutedForeground }}>{item.description}</p>
268
274
  )}
269
- <p className="text-xs text-gray-500 mt-1">{formatDate(item.timestamp)}</p>
275
+ <p className="text-xs mt-1" style={{ color: theme.mutedForeground }}>{formatDate(item.timestamp)}</p>
270
276
  </div>
271
277
  <div className="ml-4 text-right">
272
278
  <p className="text-lg font-bold" style={{ color: accentColor }}>
273
279
  +{item.points}
274
280
  </p>
275
- <p className="text-xs text-gray-400">points</p>
281
+ <p className="text-xs" style={{ color: theme.mutedForeground }}>points</p>
276
282
  </div>
277
283
  </div>
278
284
  ))}
@@ -286,10 +292,11 @@ const RewardHistory: React.FC<RewardHistoryProps> = ({ items, accentColor }) =>
286
292
 
287
293
  interface BadgeGridProps {
288
294
  badges: Badge[];
295
+ theme: ReturnType<typeof getThemeColors>;
289
296
  compactMode?: boolean;
290
297
  }
291
298
 
292
- const BadgeGrid: React.FC<BadgeGridProps> = ({ badges, compactMode = false }) => {
299
+ const BadgeGrid: React.FC<BadgeGridProps> = ({ badges, theme, compactMode = false }) => {
293
300
  const displayBadges = compactMode ? badges.slice(0, 4) : badges;
294
301
 
295
302
  return (
@@ -302,18 +309,19 @@ const BadgeGrid: React.FC<BadgeGridProps> = ({ badges, compactMode = false }) =>
302
309
  className="group relative p-3 rounded-lg border transition-all hover:scale-105 cursor-pointer"
303
310
  style={{
304
311
  borderColor: getRarityColor(badge.rarity),
305
- backgroundColor: 'rgba(31, 41, 55, 0.5)',
312
+ backgroundColor: theme.card,
313
+ opacity: 0.9,
306
314
  }}
307
315
  title={`${badge.name} - ${badge.description}`}
308
316
  >
309
317
  <div className="text-3xl mb-1 text-center">{badge.icon}</div>
310
- <p className="text-xs font-semibold text-white text-center truncate">{badge.name}</p>
311
- <p className="text-xs text-gray-400 text-center mt-0.5">
318
+ <p className="text-xs font-semibold text-center truncate" style={{ color: theme.foreground }}>{badge.name}</p>
319
+ <p className="text-xs text-center mt-0.5" style={{ color: theme.mutedForeground }}>
312
320
  {new Date(badge.earnedAt).toLocaleDateString()}
313
321
  </p>
314
322
 
315
323
  {/* Tooltip on hover */}
316
- <div className="hidden group-hover:block absolute bottom-full left-1/2 transform -translate-x-1/2 mb-2 p-2 bg-gray-900 border border-gray-700 rounded-lg text-xs text-gray-300 w-32 text-center whitespace-normal z-10">
324
+ <div className="hidden group-hover:block absolute bottom-full left-1/2 transform -translate-x-1/2 mb-2 p-2 border rounded-lg text-xs w-32 text-center whitespace-normal z-10" style={{ backgroundColor: theme.muted, borderColor: theme.border, color: theme.mutedForeground }}>
317
325
  {badge.description}
318
326
  </div>
319
327
  </div>
@@ -329,9 +337,10 @@ const BadgeGrid: React.FC<BadgeGridProps> = ({ badges, compactMode = false }) =>
329
337
  interface TierCardProps {
330
338
  tier: TierInfo;
331
339
  accentColor: string;
340
+ theme: ReturnType<typeof getThemeColors>;
332
341
  }
333
342
 
334
- const TierCard: React.FC<TierCardProps> = ({ tier, accentColor }) => {
343
+ const TierCard: React.FC<TierCardProps> = ({ tier, accentColor, theme }) => {
335
344
  const progressPercent = (tier.currentProgress / tier.nextMilestone) * 100;
336
345
 
337
346
  return (
@@ -339,24 +348,24 @@ const TierCard: React.FC<TierCardProps> = ({ tier, accentColor }) => {
339
348
  className="p-4 rounded-lg border"
340
349
  style={{
341
350
  borderColor: accentColor,
342
- backgroundColor: 'rgba(31, 41, 55, 0.3)',
351
+ backgroundColor: theme.card,
343
352
  }}
344
353
  >
345
354
  <div className="flex items-start justify-between mb-3">
346
355
  <div className="flex items-center gap-2">
347
356
  <span className="text-3xl">{tier.icon}</span>
348
357
  <div>
349
- <p className="text-sm font-semibold text-white">{tier.name}</p>
350
- <p className="text-xs text-gray-400">Level {tier.level}</p>
358
+ <p className="text-sm font-semibold" style={{ color: theme.foreground }}>{tier.name}</p>
359
+ <p className="text-xs" style={{ color: theme.mutedForeground }}>Level {tier.level}</p>
351
360
  </div>
352
361
  </div>
353
362
  </div>
354
363
  <div className="space-y-2">
355
- <div className="flex justify-between text-xs text-gray-400">
364
+ <div className="flex justify-between text-xs" style={{ color: theme.mutedForeground }}>
356
365
  <span>{tier.currentProgress.toLocaleString()} points</span>
357
366
  <span>{tier.nextMilestone.toLocaleString()} goal</span>
358
367
  </div>
359
- <div className="w-full bg-gray-700 rounded-full h-2 overflow-hidden">
368
+ <div className="w-full rounded-full h-2 overflow-hidden" style={{ backgroundColor: theme.muted }}>
360
369
  <div
361
370
  className="h-full rounded-full transition-all duration-500"
362
371
  style={{
@@ -438,21 +447,22 @@ export const RewardsDashboard: React.FC<RewardsDashboardProps> = ({
438
447
  if (!walletAddress) {
439
448
  return (
440
449
  <div
441
- className="p-6 rounded-lg border border-gray-700 max-w-2xl"
442
- style={{ backgroundColor }}
450
+ className="p-6 rounded-lg border max-w-2xl"
451
+ style={{ backgroundColor: theme.card, borderColor: theme.border }}
443
452
  >
444
453
  <div className="text-center">
445
- <Lock className="w-12 h-12 mx-auto mb-4 text-gray-500" />
446
- <h2 className="text-xl font-bold text-white mb-2">Connect Your Wallet</h2>
447
- <p className="text-gray-400 mb-6">
454
+ <Lock className="w-12 h-12 mx-auto mb-4" style={{ color: theme.mutedForeground }} />
455
+ <h2 className="text-xl font-bold mb-2" style={{ color: theme.foreground }}>Connect Your Wallet</h2>
456
+ <p className="mb-6" style={{ color: theme.mutedForeground }}>
448
457
  Connect your wallet to view your rewards, badges, and track your achievements.
449
458
  </p>
450
459
  {onConnectWallet && (
451
460
  <button
452
461
  onClick={onConnectWallet}
453
- className="inline-flex items-center gap-2 px-6 py-2 rounded-lg font-semibold text-white transition-all hover:opacity-90"
462
+ className="inline-flex items-center gap-2 px-6 py-2 rounded-lg font-semibold transition-all hover:opacity-90"
454
463
  style={{
455
464
  backgroundColor: accentColor,
465
+ color: '#fff',
456
466
  }}
457
467
  >
458
468
  <Wallet className="w-5 h-5" />
@@ -468,13 +478,13 @@ export const RewardsDashboard: React.FC<RewardsDashboardProps> = ({
468
478
  if (loading && !data) {
469
479
  return (
470
480
  <div
471
- className="p-6 rounded-lg border border-gray-700 max-w-2xl"
472
- style={{ backgroundColor }}
481
+ className="p-6 rounded-lg border max-w-2xl"
482
+ style={{ backgroundColor: theme.card, borderColor: theme.border }}
473
483
  >
474
484
  <div className="space-y-4">
475
- <div className="h-20 bg-gray-700 rounded-lg animate-pulse" />
476
- <div className="h-40 bg-gray-700 rounded-lg animate-pulse" />
477
- <div className="h-32 bg-gray-700 rounded-lg animate-pulse" />
485
+ <div className="h-20 rounded-lg animate-pulse" style={{ backgroundColor: theme.muted }} />
486
+ <div className="h-40 rounded-lg animate-pulse" style={{ backgroundColor: theme.muted }} />
487
+ <div className="h-32 rounded-lg animate-pulse" style={{ backgroundColor: theme.muted }} />
478
488
  </div>
479
489
  </div>
480
490
  );
@@ -484,10 +494,10 @@ export const RewardsDashboard: React.FC<RewardsDashboardProps> = ({
484
494
  if (error && !data) {
485
495
  return (
486
496
  <div
487
- className="p-6 rounded-lg border border-red-700 max-w-2xl"
488
- style={{ backgroundColor }}
497
+ className="p-6 rounded-lg border max-w-2xl"
498
+ style={{ backgroundColor: theme.card, borderColor: '#dc2626' }}
489
499
  >
490
- <p className="text-red-400">Failed to load rewards: {error}</p>
500
+ <p style={{ color: '#ef4444' }}>Failed to load rewards: {error}</p>
491
501
  <button
492
502
  onClick={handleRefresh}
493
503
  className="mt-4 px-4 py-2 rounded-lg text-white text-sm transition-all"
@@ -509,28 +519,30 @@ export const RewardsDashboard: React.FC<RewardsDashboardProps> = ({
509
519
  {/* Header */}
510
520
  <div className="p-6 border-b border-gray-700">
511
521
  <div className="flex items-center justify-between mb-4">
512
- <h2 className="text-2xl font-bold text-white">Rewards Dashboard</h2>
522
+ <h2 className="text-2xl font-bold" style={{ color: theme.foreground }}>Rewards Dashboard</h2>
513
523
  <button
514
524
  onClick={handleRefresh}
515
525
  disabled={loading}
516
- className="p-2 rounded-lg text-gray-400 hover:text-white hover:bg-gray-700 transition-all disabled:opacity-50"
526
+ className="p-2 rounded-lg transition-all disabled:opacity-50"
527
+ style={{ color: theme.mutedForeground }}
517
528
  >
518
529
  <RefreshCw className={`w-5 h-5 ${loading ? 'animate-spin' : ''}`} />
519
530
  </button>
520
531
  </div>
521
532
 
522
533
  {/* Wallet Display */}
523
- <div className="flex items-center justify-between p-3 rounded-lg bg-gray-800/50 border border-gray-700">
534
+ <div className="flex items-center justify-between p-3 rounded-lg border" style={{ backgroundColor: theme.muted, borderColor: theme.border }}>
524
535
  <div className="flex items-center gap-2">
525
536
  <Wallet className="w-5 h-5" style={{ color: accentColor }} />
526
537
  <div>
527
- <p className="text-xs text-gray-400">Connected Wallet</p>
528
- <p className="text-sm font-mono font-semibold text-white">{shortenAddress(walletAddress)}</p>
538
+ <p className="text-xs" style={{ color: theme.mutedForeground }}>Connected Wallet</p>
539
+ <p className="text-sm font-mono font-semibold" style={{ color: theme.foreground }}>{shortenAddress(walletAddress)}</p>
529
540
  </div>
530
541
  </div>
531
542
  <button
532
543
  onClick={handleCopyAddress}
533
- className="p-2 rounded-lg text-gray-400 hover:text-white hover:bg-gray-700 transition-all"
544
+ className="p-2 rounded-lg transition-all"
545
+ style={{ color: theme.mutedForeground }}
534
546
  title={walletAddress}
535
547
  >
536
548
  {copied ? <CheckCircle className="w-5 h-5" style={{ color: accentColor2 }} /> : <Copy className="w-5 h-5" />}
@@ -539,28 +551,28 @@ export const RewardsDashboard: React.FC<RewardsDashboardProps> = ({
539
551
  </div>
540
552
 
541
553
  {/* Main Content */}
542
- <div className={`p-6 space-y-6 ${compactMode ? 'max-w-3xl' : ''}`} style={{backgroundColor: 'rgba(31, 41, 55, 0.2)'}}>
554
+ <div className={`p-6 space-y-6 ${compactMode ? 'max-w-3xl' : ''}`} style={{backgroundColor: theme.background}}>
543
555
  {/* Points Display */}
544
556
  <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
545
557
  <div
546
558
  className="p-6 rounded-lg border text-center"
547
559
  style={{
548
560
  borderColor: accentColor,
549
- backgroundColor: 'rgba(47, 129, 247, 0.1)',
561
+ backgroundColor: theme.card,
550
562
  }}
551
563
  >
552
- <p className="text-sm text-gray-400 mb-2">Total Points</p>
564
+ <p className="text-sm mb-2" style={{ color: theme.mutedForeground }}>Total Points</p>
553
565
  <p className="text-4xl font-bold" style={{ color: accentColor }}>
554
566
  {data.totalPoints.toLocaleString()}
555
567
  </p>
556
- <div className="flex items-center justify-center gap-1 mt-2 text-xs text-gray-400">
568
+ <div className="flex items-center justify-center gap-1 mt-2 text-xs" style={{ color: theme.mutedForeground }}>
557
569
  <TrendingUp className="w-4 h-4" />
558
570
  <span>Keep earning rewards</span>
559
571
  </div>
560
572
  </div>
561
573
 
562
574
  {!hideTier && (
563
- <TierCard tier={data.tier} accentColor={accentColor2} />
575
+ <TierCard tier={data.tier} accentColor={accentColor2} theme={theme} />
564
576
  )}
565
577
  </div>
566
578
 
@@ -569,11 +581,11 @@ export const RewardsDashboard: React.FC<RewardsDashboardProps> = ({
569
581
  <div>
570
582
  <div className="flex items-center gap-2 mb-4">
571
583
  <Award className="w-5 h-5" style={{ color: accentColor }} />
572
- <h3 className="text-lg font-semibold text-white">
584
+ <h3 className="text-lg font-semibold" style={{ color: theme.foreground }}>
573
585
  Badges ({data.badges.length})
574
586
  </h3>
575
587
  </div>
576
- <BadgeGrid badges={data.badges} compactMode={compactMode} />
588
+ <BadgeGrid badges={data.badges} theme={theme} compactMode={compactMode} />
577
589
  </div>
578
590
  )}
579
591
 
@@ -582,18 +594,19 @@ export const RewardsDashboard: React.FC<RewardsDashboardProps> = ({
582
594
  <div>
583
595
  <div className="flex items-center gap-2 mb-4">
584
596
  <Zap className="w-5 h-5" style={{ color: accentColor2 }} />
585
- <h3 className="text-lg font-semibold text-white">Recent Rewards</h3>
597
+ <h3 className="text-lg font-semibold" style={{ color: theme.foreground }}>Recent Rewards</h3>
586
598
  </div>
587
599
  <RewardHistory
588
600
  items={compactMode ? data.rewardHistory.slice(0, 3) : data.rewardHistory}
589
601
  accentColor={accentColor}
602
+ theme={theme}
590
603
  />
591
604
  </div>
592
605
  )}
593
606
  </div>
594
607
 
595
608
  {/* Footer */}
596
- <div className="px-6 py-3 border-t border-gray-700 flex items-center justify-between text-xs text-gray-500">
609
+ <div className="px-6 py-3 border-t flex items-center justify-between text-xs" style={{ borderColor: theme.border, color: theme.mutedForeground }}>
597
610
  <span>Last updated: {formatDate(data.lastUpdated)}</span>
598
611
  <span className="flex items-center gap-1">
599
612
  <ExternalLink className="w-3 h-3" />