@yyc3/music-growth 1.0.0 → 2.0.1

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.
package/dist/index.js CHANGED
@@ -1,75 +1,75 @@
1
- import { jsx as e, jsxs as t, Fragment as Z } from "react/jsx-runtime";
2
- import { useState as h, useCallback as B, useEffect as K, useRef as Re } from "react";
3
- import { AnimatePresence as W, motion as g } from "motion/react";
4
- import { Star as U, X as Q, Gift as we, ChevronRight as se, Award as Se, Calendar as ze, Sparkles as G, TrendingUp as V, Zap as oe, ShoppingBag as ne, Package as Pe, Palette as $e, Music as q, Check as ue, AlertCircle as We, Trophy as J, Info as Me, RefreshCw as De, Crown as Fe, Medal as Ne, Play as Ie, Heart as H, MessageCircle as Oe, Rocket as Be, Minus as Ze, ArrowUp as Ue, ArrowDown as _e, Flame as Je, Users as ye, BarChart3 as Ge, ExternalLink as Ye, ArrowLeft as qe, GitFork as ve, GitBranch as ke } from "lucide-react";
5
- import { clsx as N } from "clsx";
6
- import { apiFetch as E } from "@yyc3/music-utils";
7
- import { useI18n as Y } from "@yyc3/music-hooks";
8
- import { DEMO_PLAYLIST as He } from "@yyc3/music-data";
9
- import { ImageWithFallback as Ve } from "@yyc3/music-ui";
10
- const Ke = {
1
+ import { jsx as e, jsxs as t, Fragment as B } from "react/jsx-runtime";
2
+ import { useState as c, useCallback as O, useEffect as H, useRef as Te } from "react";
3
+ import { AnimatePresence as D, motion as b } from "motion/react";
4
+ import { Star as Z, X as V, Gift as fe, ChevronRight as se, Award as ke, Calendar as Ce, Sparkles as _, TrendingUp as q, Zap as oe, ShoppingBag as ne, Package as Ae, Palette as Pe, Music as G, Check as ge, AlertCircle as Re, Trophy as U, Info as $e, RefreshCw as De, Crown as We, Medal as we, Play as Se, Heart as Y, MessageCircle as Me, Rocket as Fe, Minus as Oe, ArrowUp as Be, ArrowDown as Ze, Flame as Ue, Users as ue, BarChart3 as _e, ExternalLink as Je, ArrowLeft as Ge, GitFork as Ne, GitBranch as ye } from "lucide-react";
5
+ import { clsx as u } from "clsx";
6
+ import { apiFetch as I } from "@yyc3/music-utils";
7
+ import { useI18n as J } from "@yyc3/music-hooks";
8
+ import { DEMO_PLAYLIST as Ye } from "@yyc3/music-data";
9
+ import { ImageWithFallback as qe } from "@yyc3/music-ui";
10
+ const He = {
11
11
  daily_checkin: { zh: "每日签到", en: "Daily Check-in" },
12
12
  like: { zh: "歌曲点赞", en: "Song Like" },
13
13
  annotation: { zh: "情感标注", en: "Emotion Annotation" },
14
14
  achievement: { zh: "成就解锁", en: "Achievement Unlocked" },
15
15
  welcome: { zh: "注册奖励", en: "Welcome Bonus" }
16
- }, pt = ({
17
- isOpen: m,
18
- onClose: b,
19
- user: r,
20
- starPower: f,
21
- onStarPowerUpdate: z,
22
- onOpenShop: d
16
+ }, mt = ({
17
+ isOpen: d,
18
+ onClose: p,
19
+ user: i,
20
+ starPower: g,
21
+ onStarPowerUpdate: S,
22
+ onOpenShop: h
23
23
  }) => {
24
- const { t: i, lang: x } = Y(), [p, M] = h(null), [y, D] = h([]), [L, P] = h(!1), [A, $] = h(0), [T, u] = h([]), [k, I] = h(!1), [R, n] = h(null), [s, v] = h(!1), l = B(async () => {
25
- if (r) {
26
- I(!0);
24
+ const { t: r, lang: m } = J(), [x, W] = c(null), [N, M] = c([]), [j, P] = c(!1), [T, R] = c(0), [E, w] = c([]), [v, z] = c(!1), [A, n] = c(null), [s, k] = c(!1), l = O(async () => {
25
+ if (i) {
26
+ z(!0);
27
27
  try {
28
- const [o, j] = await Promise.all([
29
- E(`/starpower/${r.id}/level`),
30
- E(`/starpower/${r.id}/transactions`)
28
+ const [o, L] = await Promise.all([
29
+ I(`/starpower/${i.id}/level`),
30
+ I(`/starpower/${i.id}/transactions`)
31
31
  ]);
32
- o && (M(o.vipLevel), D(o.allLevels || []), P(o.checkedInToday || !1), $(o.streak || 0)), j != null && j.transactions && u(j.transactions);
32
+ o && (W(o.vipLevel), M(o.allLevels || []), P(o.checkedInToday || !1), R(o.streak || 0)), L?.transactions && w(L.transactions);
33
33
  } catch (o) {
34
34
  console.error("StarPower fetch error:", o);
35
35
  } finally {
36
- I(!1);
36
+ z(!1);
37
37
  }
38
38
  }
39
- }, [r]);
40
- K(() => {
41
- m && r && l();
42
- }, [m, r, l]);
43
- const c = async () => {
44
- if (!(!r || L))
39
+ }, [i]);
40
+ H(() => {
41
+ d && i && l();
42
+ }, [d, i, l]);
43
+ const f = async () => {
44
+ if (!(!i || j))
45
45
  try {
46
- const o = await E(`/starpower/${r.id}/checkin`, {
46
+ const o = await I(`/starpower/${i.id}/checkin`, {
47
47
  method: "POST",
48
48
  headers: { "Content-Type": "application/json" },
49
49
  body: JSON.stringify({})
50
50
  });
51
- o != null && o.success ? (P(!0), $(o.streak), n({ reward: o.reward, streak: o.streak }), z(o.starPower), setTimeout(() => n(null), 3e3), l()) : o != null && o.alreadyCheckedIn && P(!0);
51
+ o?.success ? (P(!0), R(o.streak), n({ reward: o.reward, streak: o.streak }), S(o.starPower), setTimeout(() => n(null), 3e3), l()) : o?.alreadyCheckedIn && P(!0);
52
52
  } catch (o) {
53
53
  console.error("Check-in error:", o);
54
54
  }
55
- }, C = p != null && p.nextThreshold ? (f - p.threshold) / (p.nextThreshold - p.threshold) * 100 : 100;
56
- function O(o) {
57
- const j = Date.now() - o;
58
- return j < 6e4 ? x === "zh" ? "刚刚" : "just now" : j < 36e5 ? `${Math.floor(j / 6e4)}${x === "zh" ? "分钟前" : "m ago"}` : j < 864e5 ? `${Math.floor(j / 36e5)}${x === "zh" ? "小时前" : "h ago"}` : `${Math.floor(j / 864e5)}${x === "zh" ? "天前" : "d ago"}`;
55
+ }, C = x?.nextThreshold ? (g - x.threshold) / (x.nextThreshold - x.threshold) * 100 : 100;
56
+ function F(o) {
57
+ const L = Date.now() - o;
58
+ return L < 6e4 ? m === "zh" ? "刚刚" : "just now" : L < 36e5 ? `${Math.floor(L / 6e4)}${m === "zh" ? "分钟前" : "m ago"}` : L < 864e5 ? `${Math.floor(L / 36e5)}${m === "zh" ? "小时前" : "h ago"}` : `${Math.floor(L / 864e5)}${m === "zh" ? "天前" : "d ago"}`;
59
59
  }
60
- return /* @__PURE__ */ e(W, { children: m && /* @__PURE__ */ t(Z, { children: [
60
+ return /* @__PURE__ */ e(D, { children: d && /* @__PURE__ */ t(B, { children: [
61
61
  /* @__PURE__ */ e(
62
- g.div,
62
+ b.div,
63
63
  {
64
64
  initial: { opacity: 0 },
65
65
  animate: { opacity: 1 },
66
66
  exit: { opacity: 0 },
67
67
  className: "fixed inset-0 z-[60] bg-black/50 backdrop-blur-sm",
68
- onClick: b
68
+ onClick: p
69
69
  }
70
70
  ),
71
71
  /* @__PURE__ */ t(
72
- g.div,
72
+ b.div,
73
73
  {
74
74
  initial: { x: "100%", opacity: 0 },
75
75
  animate: { x: 0, opacity: 1 },
@@ -79,106 +79,106 @@ const Ke = {
79
79
  children: [
80
80
  /* @__PURE__ */ t("div", { className: "flex items-center justify-between p-5 border-b border-white/[0.06] flex-shrink-0", children: [
81
81
  /* @__PURE__ */ t("div", { className: "flex items-center gap-3", children: [
82
- /* @__PURE__ */ e("div", { className: "w-9 h-9 rounded-xl bg-gradient-to-tr from-yellow-500/20 to-orange-500/20 border border-white/10 flex items-center justify-center", children: /* @__PURE__ */ e(U, { className: "w-4.5 h-4.5 text-yellow-400 fill-yellow-400" }) }),
82
+ /* @__PURE__ */ e("div", { className: "w-9 h-9 rounded-xl bg-gradient-to-tr from-yellow-500/20 to-orange-500/20 border border-white/10 flex items-center justify-center", children: /* @__PURE__ */ e(Z, { className: "w-4.5 h-4.5 text-yellow-400 fill-yellow-400" }) }),
83
83
  /* @__PURE__ */ t("div", { children: [
84
- /* @__PURE__ */ e("h3", { className: "text-white font-semibold text-sm leading-tight", children: i("starpower.title") }),
85
- /* @__PURE__ */ e("p", { className: "text-white/30 text-xs", children: i("starpower.subtitle") })
84
+ /* @__PURE__ */ e("h3", { className: "text-white font-semibold text-sm leading-tight", children: r("starpower.title") }),
85
+ /* @__PURE__ */ e("p", { className: "text-white/30 text-xs", children: r("starpower.subtitle") })
86
86
  ] })
87
87
  ] }),
88
- /* @__PURE__ */ e("button", { onClick: b, className: "p-2 rounded-lg text-white/40 hover:text-white/70 hover:bg-white/5 transition-colors", children: /* @__PURE__ */ e(Q, { className: "w-4 h-4" }) })
88
+ /* @__PURE__ */ e("button", { onClick: p, className: "p-2 rounded-lg text-white/40 hover:text-white/70 hover:bg-white/5 transition-colors", children: /* @__PURE__ */ e(V, { className: "w-4 h-4" }) })
89
89
  ] }),
90
- r ? /* @__PURE__ */ t("div", { className: "flex-1 overflow-y-auto p-4", style: { scrollbarWidth: "none" }, children: [
90
+ i ? /* @__PURE__ */ t("div", { className: "flex-1 overflow-y-auto p-4", style: { scrollbarWidth: "none" }, children: [
91
91
  /* @__PURE__ */ t("div", { className: "relative p-5 rounded-2xl bg-gradient-to-br from-yellow-500/10 via-orange-500/5 to-purple-500/10 border border-yellow-500/15 mb-4 overflow-hidden", children: [
92
92
  /* @__PURE__ */ e("div", { className: "absolute -top-10 -right-10 w-32 h-32 bg-yellow-500/10 rounded-full blur-2xl" }),
93
93
  /* @__PURE__ */ t("div", { className: "relative", children: [
94
- /* @__PURE__ */ e("p", { className: "text-xs text-yellow-200/50 uppercase tracking-wider mb-1", children: i("starpower.balance") }),
94
+ /* @__PURE__ */ e("p", { className: "text-xs text-yellow-200/50 uppercase tracking-wider mb-1", children: r("starpower.balance") }),
95
95
  /* @__PURE__ */ t("div", { className: "flex items-baseline gap-2", children: [
96
- /* @__PURE__ */ e("span", { className: "text-3xl font-bold text-transparent bg-clip-text bg-gradient-to-r from-yellow-300 to-orange-400 font-mono tabular-nums", children: f.toLocaleString() }),
96
+ /* @__PURE__ */ e("span", { className: "text-3xl font-bold text-transparent bg-clip-text bg-gradient-to-r from-yellow-300 to-orange-400 font-mono tabular-nums", children: g.toLocaleString() }),
97
97
  /* @__PURE__ */ e("span", { className: "text-xs text-yellow-300/40", children: "SP" })
98
98
  ] }),
99
- p && /* @__PURE__ */ t("div", { className: "flex items-center gap-2 mt-2", children: [
99
+ x && /* @__PURE__ */ t("div", { className: "flex items-center gap-2 mt-2", children: [
100
100
  /* @__PURE__ */ e(
101
101
  "span",
102
102
  {
103
103
  className: "text-xs font-medium px-2 py-0.5 rounded-full border",
104
- style: { color: p.color, borderColor: p.color + "40", backgroundColor: p.color + "15" },
105
- children: x === "zh" ? p.label : p.labelEn
104
+ style: { color: x.color, borderColor: x.color + "40", backgroundColor: x.color + "15" },
105
+ children: m === "zh" ? x.label : x.labelEn
106
106
  }
107
107
  ),
108
108
  /* @__PURE__ */ t("span", { className: "text-[10px] text-white/20", children: [
109
109
  "Lv.",
110
- p.level
110
+ x.level
111
111
  ] })
112
112
  ] })
113
113
  ] })
114
114
  ] }),
115
- d && /* @__PURE__ */ t(
115
+ h && /* @__PURE__ */ t(
116
116
  "button",
117
117
  {
118
118
  onClick: () => {
119
- b(), setTimeout(d, 150);
119
+ p(), setTimeout(h, 150);
120
120
  },
121
121
  className: "w-full mb-4 flex items-center justify-between p-3 rounded-xl bg-gradient-to-r from-amber-500/[0.06] to-orange-500/[0.06] border border-amber-500/15 hover:border-amber-500/30 transition-all group",
122
122
  children: [
123
123
  /* @__PURE__ */ t("div", { className: "flex items-center gap-2", children: [
124
- /* @__PURE__ */ e(we, { className: "w-4 h-4 text-amber-400" }),
125
- /* @__PURE__ */ e("span", { className: "text-xs text-white/60 group-hover:text-white/80 transition-colors", children: x === "zh" ? "星力商城 — 兑换虚拟好物" : "SP Shop — Redeem virtual items" })
124
+ /* @__PURE__ */ e(fe, { className: "w-4 h-4 text-amber-400" }),
125
+ /* @__PURE__ */ e("span", { className: "text-xs text-white/60 group-hover:text-white/80 transition-colors", children: m === "zh" ? "星力商城 — 兑换虚拟好物" : "SP Shop — Redeem virtual items" })
126
126
  ] }),
127
127
  /* @__PURE__ */ e(se, { className: "w-3.5 h-3.5 text-white/20 group-hover:text-white/40 transition-colors" })
128
128
  ]
129
129
  }
130
130
  ),
131
- p && /* @__PURE__ */ t("div", { className: "mb-4 p-3 rounded-xl bg-white/[0.02] border border-white/[0.06]", children: [
131
+ x && /* @__PURE__ */ t("div", { className: "mb-4 p-3 rounded-xl bg-white/[0.02] border border-white/[0.06]", children: [
132
132
  /* @__PURE__ */ t("div", { className: "flex items-center justify-between mb-2", children: [
133
- /* @__PURE__ */ e("span", { className: "text-xs text-white/40", children: i("starpower.vipLevel") }),
134
- p.nextThreshold ? /* @__PURE__ */ t("span", { className: "text-[10px] text-white/25", children: [
135
- i("starpower.needMore"),
133
+ /* @__PURE__ */ e("span", { className: "text-xs text-white/40", children: r("starpower.vipLevel") }),
134
+ x.nextThreshold ? /* @__PURE__ */ t("span", { className: "text-[10px] text-white/25", children: [
135
+ r("starpower.needMore"),
136
136
  " ",
137
- (p.nextThreshold - f).toLocaleString(),
137
+ (x.nextThreshold - g).toLocaleString(),
138
138
  " ",
139
- i("starpower.spMore")
140
- ] }) : /* @__PURE__ */ e("span", { className: "text-[10px] text-yellow-400/50", children: i("starpower.maxLevel") })
139
+ r("starpower.spMore")
140
+ ] }) : /* @__PURE__ */ e("span", { className: "text-[10px] text-yellow-400/50", children: r("starpower.maxLevel") })
141
141
  ] }),
142
142
  /* @__PURE__ */ e("div", { className: "h-2 rounded-full bg-white/[0.06] overflow-hidden", children: /* @__PURE__ */ e(
143
- g.div,
143
+ b.div,
144
144
  {
145
145
  initial: { width: 0 },
146
146
  animate: { width: `${Math.min(C, 100)}%` },
147
147
  transition: { duration: 0.8, ease: "easeOut" },
148
148
  className: "h-full rounded-full",
149
- style: { background: `linear-gradient(90deg, ${p.color}80, ${p.color})` }
149
+ style: { background: `linear-gradient(90deg, ${x.color}80, ${x.color})` }
150
150
  }
151
151
  ) }),
152
152
  /* @__PURE__ */ t(
153
153
  "button",
154
154
  {
155
- onClick: () => v(!s),
155
+ onClick: () => k(!s),
156
156
  className: "flex items-center gap-1 mt-2 text-[10px] text-white/20 hover:text-white/40 transition-colors",
157
157
  children: [
158
- /* @__PURE__ */ e(Se, { className: "w-3 h-3" }),
159
- i("starpower.allLevels"),
160
- /* @__PURE__ */ e(se, { className: N("w-3 h-3 transition-transform", s && "rotate-90") })
158
+ /* @__PURE__ */ e(ke, { className: "w-3 h-3" }),
159
+ r("starpower.allLevels"),
160
+ /* @__PURE__ */ e(se, { className: u("w-3 h-3 transition-transform", s && "rotate-90") })
161
161
  ]
162
162
  }
163
163
  ),
164
- /* @__PURE__ */ e(W, { children: s && /* @__PURE__ */ e(
165
- g.div,
164
+ /* @__PURE__ */ e(D, { children: s && /* @__PURE__ */ e(
165
+ b.div,
166
166
  {
167
167
  initial: { height: 0, opacity: 0 },
168
168
  animate: { height: "auto", opacity: 1 },
169
169
  exit: { height: 0, opacity: 0 },
170
170
  className: "overflow-hidden mt-2",
171
- children: /* @__PURE__ */ e("div", { className: "space-y-1", children: y.map((o) => /* @__PURE__ */ t(
171
+ children: /* @__PURE__ */ e("div", { className: "space-y-1", children: N.map((o) => /* @__PURE__ */ t(
172
172
  "div",
173
173
  {
174
- className: N(
174
+ className: u(
175
175
  "flex items-center justify-between px-2 py-1 rounded-lg text-[11px]",
176
- f >= o.threshold ? "bg-white/[0.03]" : "opacity-40"
176
+ g >= o.threshold ? "bg-white/[0.03]" : "opacity-40"
177
177
  ),
178
178
  children: [
179
179
  /* @__PURE__ */ t("div", { className: "flex items-center gap-2", children: [
180
180
  /* @__PURE__ */ e("div", { className: "w-2 h-2 rounded-full", style: { backgroundColor: o.color } }),
181
- /* @__PURE__ */ e("span", { className: "text-white/60", children: x === "zh" ? o.label : o.labelEn })
181
+ /* @__PURE__ */ e("span", { className: "text-white/60", children: m === "zh" ? o.label : o.labelEn })
182
182
  ] }),
183
183
  /* @__PURE__ */ t("div", { className: "flex items-center gap-3", children: [
184
184
  /* @__PURE__ */ t("span", { className: "text-white/25 font-mono tabular-nums", children: [
@@ -201,50 +201,50 @@ const Ke = {
201
201
  /* @__PURE__ */ t("div", { className: "mb-4 p-3 rounded-xl bg-white/[0.02] border border-white/[0.06]", children: [
202
202
  /* @__PURE__ */ t("div", { className: "flex items-center justify-between", children: [
203
203
  /* @__PURE__ */ t("div", { className: "flex items-center gap-2", children: [
204
- /* @__PURE__ */ e(ze, { className: "w-4 h-4 text-orange-400" }),
204
+ /* @__PURE__ */ e(Ce, { className: "w-4 h-4 text-orange-400" }),
205
205
  /* @__PURE__ */ t("div", { children: [
206
- /* @__PURE__ */ e("p", { className: "text-xs text-white/60", children: i("starpower.checkin") }),
206
+ /* @__PURE__ */ e("p", { className: "text-xs text-white/60", children: r("starpower.checkin") }),
207
207
  /* @__PURE__ */ t("p", { className: "text-[10px] text-white/25", children: [
208
- i("starpower.streak"),
208
+ r("starpower.streak"),
209
209
  ": ",
210
- A,
210
+ T,
211
211
  " ",
212
- x === "zh" ? "天" : "days"
212
+ m === "zh" ? "天" : "days"
213
213
  ] })
214
214
  ] })
215
215
  ] }),
216
216
  /* @__PURE__ */ e(
217
217
  "button",
218
218
  {
219
- onClick: c,
220
- disabled: L,
221
- className: N(
219
+ onClick: f,
220
+ disabled: j,
221
+ className: u(
222
222
  "px-4 py-2 rounded-xl text-xs font-medium transition-all",
223
- L ? "bg-emerald-500/10 text-emerald-300 border border-emerald-500/20 cursor-default" : "bg-gradient-to-r from-yellow-500/20 to-orange-500/20 text-yellow-300 border border-yellow-500/20 hover:from-yellow-500/30 hover:to-orange-500/30"
223
+ j ? "bg-emerald-500/10 text-emerald-300 border border-emerald-500/20 cursor-default" : "bg-gradient-to-r from-yellow-500/20 to-orange-500/20 text-yellow-300 border border-yellow-500/20 hover:from-yellow-500/30 hover:to-orange-500/30"
224
224
  ),
225
- children: i(L ? "starpower.checkinDone" : "starpower.checkin")
225
+ children: r(j ? "starpower.checkinDone" : "starpower.checkin")
226
226
  }
227
227
  )
228
228
  ] }),
229
- /* @__PURE__ */ e(W, { children: R && /* @__PURE__ */ e(
230
- g.div,
229
+ /* @__PURE__ */ e(D, { children: A && /* @__PURE__ */ e(
230
+ b.div,
231
231
  {
232
232
  initial: { height: 0, opacity: 0 },
233
233
  animate: { height: "auto", opacity: 1 },
234
234
  exit: { height: 0, opacity: 0 },
235
235
  className: "overflow-hidden",
236
236
  children: /* @__PURE__ */ t("div", { className: "mt-3 p-2 rounded-lg bg-yellow-500/10 border border-yellow-500/15 flex items-center gap-2", children: [
237
- /* @__PURE__ */ e(G, { className: "w-4 h-4 text-yellow-400 flex-shrink-0" }),
237
+ /* @__PURE__ */ e(_, { className: "w-4 h-4 text-yellow-400 flex-shrink-0" }),
238
238
  /* @__PURE__ */ t("span", { className: "text-xs text-yellow-200", children: [
239
- i("starpower.checkinReward"),
239
+ r("starpower.checkinReward"),
240
240
  " +",
241
- R.reward,
241
+ A.reward,
242
242
  " SP",
243
- R.streak > 1 && /* @__PURE__ */ t("span", { className: "text-yellow-300/50", children: [
243
+ A.streak > 1 && /* @__PURE__ */ t("span", { className: "text-yellow-300/50", children: [
244
244
  " (",
245
- i("starpower.streak"),
245
+ r("starpower.streak"),
246
246
  " ×",
247
- R.streak,
247
+ A.streak,
248
248
  ")"
249
249
  ] })
250
250
  ] })
@@ -254,32 +254,31 @@ const Ke = {
254
254
  ] }),
255
255
  /* @__PURE__ */ t("div", { children: [
256
256
  /* @__PURE__ */ t("h4", { className: "text-xs font-medium text-white/30 uppercase tracking-wider mb-3 flex items-center gap-2", children: [
257
- /* @__PURE__ */ e(V, { className: "w-3.5 h-3.5" }),
258
- i("starpower.transactions")
257
+ /* @__PURE__ */ e(q, { className: "w-3.5 h-3.5" }),
258
+ r("starpower.transactions")
259
259
  ] }),
260
- T.length === 0 ? /* @__PURE__ */ t("div", { className: "text-center py-8 bg-white/[0.01] rounded-xl border border-white/[0.04]", children: [
261
- /* @__PURE__ */ e(we, { className: "w-8 h-8 text-white/10 mx-auto mb-2" }),
262
- /* @__PURE__ */ e("p", { className: "text-xs text-white/20", children: i("starpower.noTransactions") })
263
- ] }) : /* @__PURE__ */ e("div", { className: "space-y-1", children: T.slice(0, 20).map((o) => {
264
- var _;
265
- const j = ((_ = Ke[o.reason]) == null ? void 0 : _[x]) || o.reason;
260
+ E.length === 0 ? /* @__PURE__ */ t("div", { className: "text-center py-8 bg-white/[0.01] rounded-xl border border-white/[0.04]", children: [
261
+ /* @__PURE__ */ e(fe, { className: "w-8 h-8 text-white/10 mx-auto mb-2" }),
262
+ /* @__PURE__ */ e("p", { className: "text-xs text-white/20", children: r("starpower.noTransactions") })
263
+ ] }) : /* @__PURE__ */ e("div", { className: "space-y-1", children: E.slice(0, 20).map((o) => {
264
+ const L = He[o.reason]?.[m] || o.reason;
266
265
  return /* @__PURE__ */ t("div", { className: "flex items-center justify-between py-2 px-2 rounded-lg hover:bg-white/[0.02] transition-colors", children: [
267
266
  /* @__PURE__ */ t("div", { className: "flex items-center gap-2", children: [
268
- /* @__PURE__ */ e("div", { className: N(
267
+ /* @__PURE__ */ e("div", { className: u(
269
268
  "w-6 h-6 rounded-full flex items-center justify-center",
270
269
  o.type === "earn" ? "bg-emerald-500/10" : "bg-red-500/10"
271
- ), children: o.type === "earn" ? /* @__PURE__ */ e(V, { className: "w-3 h-3 text-emerald-400" }) : /* @__PURE__ */ e(oe, { className: "w-3 h-3 text-red-400" }) }),
270
+ ), children: o.type === "earn" ? /* @__PURE__ */ e(q, { className: "w-3 h-3 text-emerald-400" }) : /* @__PURE__ */ e(oe, { className: "w-3 h-3 text-red-400" }) }),
272
271
  /* @__PURE__ */ t("div", { children: [
273
- /* @__PURE__ */ e("p", { className: "text-[11px] text-white/60", children: j }),
272
+ /* @__PURE__ */ e("p", { className: "text-[11px] text-white/60", children: L }),
274
273
  /* @__PURE__ */ t("p", { className: "text-[9px] text-white/15", children: [
275
274
  o.detail,
276
275
  " · ",
277
- O(o.timestamp)
276
+ F(o.timestamp)
278
277
  ] })
279
278
  ] })
280
279
  ] }),
281
280
  /* @__PURE__ */ t("div", { className: "text-right", children: [
282
- /* @__PURE__ */ t("p", { className: N(
281
+ /* @__PURE__ */ t("p", { className: u(
283
282
  "text-xs font-mono tabular-nums font-medium",
284
283
  o.type === "earn" ? "text-emerald-400" : "text-red-400"
285
284
  ), children: [
@@ -294,79 +293,79 @@ const Ke = {
294
293
  ] }, o.id);
295
294
  }) })
296
295
  ] })
297
- ] }) : /* @__PURE__ */ e("div", { className: "flex-1 flex items-center justify-center", children: /* @__PURE__ */ e("p", { className: "text-white/30 text-sm", children: i("starpower.signInRequired") }) })
296
+ ] }) : /* @__PURE__ */ e("div", { className: "flex-1 flex items-center justify-center", children: /* @__PURE__ */ e("p", { className: "text-white/30 text-sm", children: r("starpower.signInRequired") }) })
298
297
  ]
299
298
  }
300
299
  )
301
300
  ] }) });
302
- }, Qe = [
301
+ }, Ve = [
303
302
  { id: "all", labelZh: "全部", labelEn: "All", icon: ne },
304
- { id: "theme", labelZh: "主题", labelEn: "Themes", icon: $e },
305
- { id: "sound", labelZh: "音色", labelEn: "Sounds", icon: q },
306
- { id: "ai", labelZh: "AI", labelEn: "AI", icon: G },
307
- { id: "badge", labelZh: "徽章", labelEn: "Badges", icon: U },
303
+ { id: "theme", labelZh: "主题", labelEn: "Themes", icon: Pe },
304
+ { id: "sound", labelZh: "音色", labelEn: "Sounds", icon: G },
305
+ { id: "ai", labelZh: "AI", labelEn: "AI", icon: _ },
306
+ { id: "badge", labelZh: "徽章", labelEn: "Badges", icon: Z },
308
307
  { id: "boost", labelZh: "加速", labelEn: "Boost", icon: oe }
309
- ], Ce = {
308
+ ], ve = {
310
309
  common: { bg: "from-gray-500/10 to-gray-600/10", border: "border-gray-500/20", text: "text-gray-400", label: "普通", labelEn: "Common" },
311
310
  rare: { bg: "from-blue-500/10 to-cyan-500/10", border: "border-blue-500/20", text: "text-blue-400", label: "稀有", labelEn: "Rare" },
312
311
  epic: { bg: "from-purple-500/10 to-pink-500/10", border: "border-purple-500/20", text: "text-purple-400", label: "史诗", labelEn: "Epic" },
313
312
  legendary: { bg: "from-amber-500/10 to-orange-500/10", border: "border-amber-500/20", text: "text-amber-400", label: "传说", labelEn: "Legendary" }
314
- }, bt = ({
315
- isOpen: m,
316
- onClose: b,
317
- user: r,
318
- starPower: f,
319
- onStarPowerUpdate: z
313
+ }, xt = ({
314
+ isOpen: d,
315
+ onClose: p,
316
+ user: i,
317
+ starPower: g,
318
+ onStarPowerUpdate: S
320
319
  }) => {
321
- const { lang: d } = Y(), [i, x] = h([]), [p, M] = h([]), [y, D] = h("all"), [L, P] = h(!1), [A, $] = h(null), [T, u] = h(null), [k, I] = h(null), R = B(async () => {
322
- if (r) {
320
+ const { lang: h } = J(), [r, m] = c([]), [x, W] = c([]), [N, M] = c("all"), [j, P] = c(!1), [T, R] = c(null), [E, w] = c(null), [v, z] = c(null), A = O(async () => {
321
+ if (i) {
323
322
  P(!0);
324
323
  try {
325
- const [l, c] = await Promise.all([
326
- E("/starpower/shop/items"),
327
- E(`/starpower/shop/inventory/${r.id}`)
324
+ const [l, f] = await Promise.all([
325
+ I("/starpower/shop/items"),
326
+ I(`/starpower/shop/inventory/${i.id}`)
328
327
  ]);
329
- l != null && l.items && x(l.items), c != null && c.inventory && M(c.inventory);
328
+ l?.items && m(l.items), f?.inventory && W(f.inventory);
330
329
  } catch (l) {
331
330
  console.error("Shop fetch error:", l);
332
331
  } finally {
333
332
  P(!1);
334
333
  }
335
334
  }
336
- }, [r]);
337
- K(() => {
338
- m && r && R();
339
- }, [m, r, R]);
340
- const n = (l) => p.some((c) => c.itemId === l), s = async (l) => {
341
- if (!(!r || A)) {
342
- $(l.id), u(null);
335
+ }, [i]);
336
+ H(() => {
337
+ d && i && A();
338
+ }, [d, i, A]);
339
+ const n = (l) => x.some((f) => f.itemId === l), s = async (l) => {
340
+ if (!(!i || T)) {
341
+ R(l.id), w(null);
343
342
  try {
344
- const c = await E("/starpower/shop/purchase", {
343
+ const f = await I("/starpower/shop/purchase", {
345
344
  method: "POST",
346
345
  headers: { "Content-Type": "application/json" },
347
- body: JSON.stringify({ userId: r.id, itemId: l.id })
346
+ body: JSON.stringify({ userId: i.id, itemId: l.id })
348
347
  });
349
- c != null && c.success ? (z(c.starPower), M((C) => [...C, { itemId: l.id, purchasedAt: Date.now(), expiresAt: null }]), u({ success: !0, message: d === "zh" ? "购买成功!" : "Purchase successful!" })) : u({ success: !1, message: (c == null ? void 0 : c.error) || (d === "zh" ? "购买失败" : "Purchase failed") });
348
+ f?.success ? (S(f.starPower), W((C) => [...C, { itemId: l.id, purchasedAt: Date.now(), expiresAt: null }]), w({ success: !0, message: h === "zh" ? "购买成功!" : "Purchase successful!" })) : w({ success: !1, message: f?.error || (h === "zh" ? "购买失败" : "Purchase failed") });
350
349
  } catch {
351
- u({ success: !1, message: d === "zh" ? "网络错误" : "Network error" });
350
+ w({ success: !1, message: h === "zh" ? "网络错误" : "Network error" });
352
351
  } finally {
353
- $(null), I(null), setTimeout(() => u(null), 3e3);
352
+ R(null), z(null), setTimeout(() => w(null), 3e3);
354
353
  }
355
354
  }
356
- }, v = y === "all" ? i : i.filter((l) => l.category === y);
357
- return /* @__PURE__ */ e(W, { children: m && /* @__PURE__ */ t(Z, { children: [
355
+ }, k = N === "all" ? r : r.filter((l) => l.category === N);
356
+ return /* @__PURE__ */ e(D, { children: d && /* @__PURE__ */ t(B, { children: [
358
357
  /* @__PURE__ */ e(
359
- g.div,
358
+ b.div,
360
359
  {
361
360
  initial: { opacity: 0 },
362
361
  animate: { opacity: 1 },
363
362
  exit: { opacity: 0 },
364
363
  className: "fixed inset-0 z-[60] bg-black/50 backdrop-blur-sm",
365
- onClick: b
364
+ onClick: p
366
365
  }
367
366
  ),
368
367
  /* @__PURE__ */ t(
369
- g.div,
368
+ b.div,
370
369
  {
371
370
  initial: { x: "100%", opacity: 0 },
372
371
  animate: { x: 0, opacity: 1 },
@@ -378,87 +377,87 @@ const Ke = {
378
377
  /* @__PURE__ */ t("div", { className: "flex items-center gap-2.5", children: [
379
378
  /* @__PURE__ */ e("div", { className: "w-8 h-8 rounded-lg bg-gradient-to-br from-amber-500/20 to-orange-500/20 flex items-center justify-center", children: /* @__PURE__ */ e(ne, { className: "w-4 h-4 text-amber-400" }) }),
380
379
  /* @__PURE__ */ t("div", { children: [
381
- /* @__PURE__ */ e("h2", { className: "text-base font-bold text-white leading-tight", children: d === "zh" ? "星力商城" : "Star Power Shop" }),
382
- /* @__PURE__ */ e("p", { className: "text-[10px] text-white/30", children: d === "zh" ? "用星力值兑换虚拟好物" : "Exchange SP for virtual items" })
380
+ /* @__PURE__ */ e("h2", { className: "text-base font-bold text-white leading-tight", children: h === "zh" ? "星力商城" : "Star Power Shop" }),
381
+ /* @__PURE__ */ e("p", { className: "text-[10px] text-white/30", children: h === "zh" ? "用星力值兑换虚拟好物" : "Exchange SP for virtual items" })
383
382
  ] })
384
383
  ] }),
385
- /* @__PURE__ */ e("button", { onClick: b, className: "w-7 h-7 rounded-full bg-white/5 flex items-center justify-center hover:bg-white/10 transition-colors", children: /* @__PURE__ */ e(Q, { className: "w-3.5 h-3.5 text-white/40" }) })
384
+ /* @__PURE__ */ e("button", { onClick: p, className: "w-7 h-7 rounded-full bg-white/5 flex items-center justify-center hover:bg-white/10 transition-colors", children: /* @__PURE__ */ e(V, { className: "w-3.5 h-3.5 text-white/40" }) })
386
385
  ] }),
387
386
  /* @__PURE__ */ e("div", { className: "px-5 py-3 bg-gradient-to-r from-amber-500/[0.06] to-orange-500/[0.06] border-b border-white/[0.04]", children: /* @__PURE__ */ t("div", { className: "flex items-center justify-between", children: [
388
387
  /* @__PURE__ */ t("div", { className: "flex items-center gap-2", children: [
389
- /* @__PURE__ */ e(U, { className: "w-4 h-4 text-yellow-400 fill-yellow-400" }),
390
- /* @__PURE__ */ e("span", { className: "text-yellow-200 font-bold text-lg tabular-nums", children: f }),
391
- /* @__PURE__ */ e("span", { className: "text-xs text-white/30", children: d === "zh" ? "可用星力值" : "SP available" })
388
+ /* @__PURE__ */ e(Z, { className: "w-4 h-4 text-yellow-400 fill-yellow-400" }),
389
+ /* @__PURE__ */ e("span", { className: "text-yellow-200 font-bold text-lg tabular-nums", children: g }),
390
+ /* @__PURE__ */ e("span", { className: "text-xs text-white/30", children: h === "zh" ? "可用星力值" : "SP available" })
392
391
  ] }),
393
392
  /* @__PURE__ */ t("div", { className: "flex items-center gap-1 text-[10px] text-white/20", children: [
394
- /* @__PURE__ */ e(Pe, { className: "w-3 h-3" }),
395
- p.length,
393
+ /* @__PURE__ */ e(Ae, { className: "w-3 h-3" }),
394
+ x.length,
396
395
  " ",
397
- d === "zh" ? "件已拥有" : "owned"
396
+ h === "zh" ? "件已拥有" : "owned"
398
397
  ] })
399
398
  ] }) }),
400
- /* @__PURE__ */ e("div", { className: "px-4 py-2.5 border-b border-white/[0.04] overflow-x-auto no-scrollbar", children: /* @__PURE__ */ e("div", { className: "flex items-center gap-1.5", children: Qe.map((l) => {
401
- const c = l.icon, C = y === l.id;
399
+ /* @__PURE__ */ e("div", { className: "px-4 py-2.5 border-b border-white/[0.04] overflow-x-auto no-scrollbar", children: /* @__PURE__ */ e("div", { className: "flex items-center gap-1.5", children: Ve.map((l) => {
400
+ const f = l.icon, C = N === l.id;
402
401
  return /* @__PURE__ */ t(
403
402
  "button",
404
403
  {
405
- onClick: () => D(l.id),
406
- className: N(
404
+ onClick: () => M(l.id),
405
+ className: u(
407
406
  "flex items-center gap-1.5 px-3 py-1.5 rounded-full text-xs font-medium whitespace-nowrap transition-all",
408
407
  C ? "bg-amber-500/15 text-amber-400 border border-amber-500/30" : "bg-white/[0.03] text-white/30 border border-transparent hover:bg-white/[0.06] hover:text-white/50"
409
408
  ),
410
409
  children: [
411
- /* @__PURE__ */ e(c, { className: "w-3 h-3" }),
412
- d === "zh" ? l.labelZh : l.labelEn
410
+ /* @__PURE__ */ e(f, { className: "w-3 h-3" }),
411
+ h === "zh" ? l.labelZh : l.labelEn
413
412
  ]
414
413
  },
415
414
  l.id
416
415
  );
417
416
  }) }) }),
418
- /* @__PURE__ */ e(W, { children: T && /* @__PURE__ */ t(
419
- g.div,
417
+ /* @__PURE__ */ e(D, { children: E && /* @__PURE__ */ t(
418
+ b.div,
420
419
  {
421
420
  initial: { opacity: 0, y: -10 },
422
421
  animate: { opacity: 1, y: 0 },
423
422
  exit: { opacity: 0, y: -10 },
424
- className: N(
423
+ className: u(
425
424
  "mx-4 mt-2 px-3 py-2 rounded-lg text-xs font-medium flex items-center gap-2",
426
- T.success ? "bg-emerald-500/15 text-emerald-400 border border-emerald-500/20" : "bg-red-500/15 text-red-400 border border-red-500/20"
425
+ E.success ? "bg-emerald-500/15 text-emerald-400 border border-emerald-500/20" : "bg-red-500/15 text-red-400 border border-red-500/20"
427
426
  ),
428
427
  children: [
429
- T.success ? /* @__PURE__ */ e(ue, { className: "w-3.5 h-3.5" }) : /* @__PURE__ */ e(We, { className: "w-3.5 h-3.5" }),
430
- T.message
428
+ E.success ? /* @__PURE__ */ e(ge, { className: "w-3.5 h-3.5" }) : /* @__PURE__ */ e(Re, { className: "w-3.5 h-3.5" }),
429
+ E.message
431
430
  ]
432
431
  }
433
432
  ) }),
434
- /* @__PURE__ */ e("div", { className: "flex-1 overflow-y-auto p-4", children: L ? /* @__PURE__ */ e("div", { className: "flex items-center justify-center py-12", children: /* @__PURE__ */ e("div", { className: "w-6 h-6 border-2 border-amber-400/30 border-t-amber-400 rounded-full animate-spin" }) }) : v.length === 0 ? /* @__PURE__ */ t("div", { className: "text-center py-10", children: [
433
+ /* @__PURE__ */ e("div", { className: "flex-1 overflow-y-auto p-4", children: j ? /* @__PURE__ */ e("div", { className: "flex items-center justify-center py-12", children: /* @__PURE__ */ e("div", { className: "w-6 h-6 border-2 border-amber-400/30 border-t-amber-400 rounded-full animate-spin" }) }) : k.length === 0 ? /* @__PURE__ */ t("div", { className: "text-center py-10", children: [
435
434
  /* @__PURE__ */ e(ne, { className: "w-10 h-10 text-white/10 mx-auto mb-3" }),
436
- /* @__PURE__ */ e("p", { className: "text-sm text-white/30", children: d === "zh" ? "此分类暂无商品" : "No items in this category" })
437
- ] }) : /* @__PURE__ */ e("div", { className: "grid grid-cols-2 gap-3", children: v.map((l) => {
438
- const c = Ce[l.rarity] || Ce.common, C = n(l.id), O = f >= l.cost;
435
+ /* @__PURE__ */ e("p", { className: "text-sm text-white/30", children: h === "zh" ? "此分类暂无商品" : "No items in this category" })
436
+ ] }) : /* @__PURE__ */ e("div", { className: "grid grid-cols-2 gap-3", children: k.map((l) => {
437
+ const f = ve[l.rarity] || ve.common, C = n(l.id), F = g >= l.cost;
439
438
  return /* @__PURE__ */ t(
440
- g.button,
439
+ b.button,
441
440
  {
442
441
  whileTap: { scale: 0.97 },
443
- onClick: () => !C && I(l),
442
+ onClick: () => !C && z(l),
444
443
  disabled: C,
445
- className: N(
444
+ className: u(
446
445
  "relative flex flex-col p-3 rounded-xl border text-left transition-all",
447
- C ? "bg-white/[0.02] border-white/[0.04] opacity-60" : `bg-gradient-to-br ${c.bg} ${c.border} hover:brightness-110`
446
+ C ? "bg-white/[0.02] border-white/[0.04] opacity-60" : `bg-gradient-to-br ${f.bg} ${f.border} hover:brightness-110`
448
447
  ),
449
448
  children: [
450
- /* @__PURE__ */ e("span", { className: N("absolute top-2 right-2 text-[8px] font-bold uppercase tracking-wider", c.text), children: d === "zh" ? c.label : c.labelEn }),
449
+ /* @__PURE__ */ e("span", { className: u("absolute top-2 right-2 text-[8px] font-bold uppercase tracking-wider", f.text), children: h === "zh" ? f.label : f.labelEn }),
451
450
  /* @__PURE__ */ e("span", { className: "text-2xl mb-2", children: l.icon }),
452
- /* @__PURE__ */ e("p", { className: "text-xs text-white font-semibold leading-tight", children: d === "zh" ? l.nameZh : l.nameEn }),
453
- /* @__PURE__ */ e("p", { className: "text-[10px] text-white/30 mt-0.5 leading-tight line-clamp-2", children: d === "zh" ? l.descZh : l.descEn }),
451
+ /* @__PURE__ */ e("p", { className: "text-xs text-white font-semibold leading-tight", children: h === "zh" ? l.nameZh : l.nameEn }),
452
+ /* @__PURE__ */ e("p", { className: "text-[10px] text-white/30 mt-0.5 leading-tight line-clamp-2", children: h === "zh" ? l.descZh : l.descEn }),
454
453
  /* @__PURE__ */ e("div", { className: "mt-auto pt-2 flex items-center justify-between", children: C ? /* @__PURE__ */ t("span", { className: "flex items-center gap-1 text-[10px] text-emerald-400/60", children: [
455
- /* @__PURE__ */ e(ue, { className: "w-3 h-3" }),
456
- d === "zh" ? "已拥有" : "Owned"
457
- ] }) : /* @__PURE__ */ t("span", { className: N(
454
+ /* @__PURE__ */ e(ge, { className: "w-3 h-3" }),
455
+ h === "zh" ? "已拥有" : "Owned"
456
+ ] }) : /* @__PURE__ */ t("span", { className: u(
458
457
  "flex items-center gap-1 text-xs font-bold",
459
- O ? "text-yellow-400" : "text-red-400/60"
458
+ F ? "text-yellow-400" : "text-red-400/60"
460
459
  ), children: [
461
- /* @__PURE__ */ e(U, { className: "w-3 h-3 fill-current" }),
460
+ /* @__PURE__ */ e(Z, { className: "w-3 h-3 fill-current" }),
462
461
  l.cost
463
462
  ] }) })
464
463
  ]
@@ -466,16 +465,16 @@ const Ke = {
466
465
  l.id
467
466
  );
468
467
  }) }) }),
469
- /* @__PURE__ */ e(W, { children: k && /* @__PURE__ */ e(
470
- g.div,
468
+ /* @__PURE__ */ e(D, { children: v && /* @__PURE__ */ e(
469
+ b.div,
471
470
  {
472
471
  initial: { opacity: 0 },
473
472
  animate: { opacity: 1 },
474
473
  exit: { opacity: 0 },
475
474
  className: "absolute inset-0 z-10 bg-black/70 backdrop-blur-sm flex items-center justify-center p-6",
476
- onClick: () => I(null),
475
+ onClick: () => z(null),
477
476
  children: /* @__PURE__ */ t(
478
- g.div,
477
+ b.div,
479
478
  {
480
479
  initial: { scale: 0.9, opacity: 0 },
481
480
  animate: { scale: 1, opacity: 1 },
@@ -483,34 +482,34 @@ const Ke = {
483
482
  onClick: (l) => l.stopPropagation(),
484
483
  className: "w-full max-w-[280px] bg-[#0F1540] border border-white/10 rounded-2xl p-5 text-center",
485
484
  children: [
486
- /* @__PURE__ */ e("span", { className: "text-4xl block mb-3", children: k.icon }),
487
- /* @__PURE__ */ e("p", { className: "text-white font-bold text-sm", children: d === "zh" ? k.nameZh : k.nameEn }),
488
- /* @__PURE__ */ e("p", { className: "text-white/30 text-[11px] mt-1", children: d === "zh" ? k.descZh : k.descEn }),
485
+ /* @__PURE__ */ e("span", { className: "text-4xl block mb-3", children: v.icon }),
486
+ /* @__PURE__ */ e("p", { className: "text-white font-bold text-sm", children: h === "zh" ? v.nameZh : v.nameEn }),
487
+ /* @__PURE__ */ e("p", { className: "text-white/30 text-[11px] mt-1", children: h === "zh" ? v.descZh : v.descEn }),
489
488
  /* @__PURE__ */ t("div", { className: "flex items-center justify-center gap-1 my-4 text-yellow-400 font-bold", children: [
490
- /* @__PURE__ */ e(U, { className: "w-4 h-4 fill-yellow-400" }),
491
- /* @__PURE__ */ e("span", { className: "text-lg", children: k.cost }),
489
+ /* @__PURE__ */ e(Z, { className: "w-4 h-4 fill-yellow-400" }),
490
+ /* @__PURE__ */ e("span", { className: "text-lg", children: v.cost }),
492
491
  /* @__PURE__ */ e("span", { className: "text-xs text-yellow-400/50 ml-1", children: "SP" })
493
492
  ] }),
494
- f < k.cost ? /* @__PURE__ */ e("p", { className: "text-xs text-red-400/70 mb-3", children: d === "zh" ? `星力值不足(需 ${k.cost},当前 ${f})` : `Insufficient SP (need ${k.cost}, have ${f})` }) : null,
493
+ g < v.cost ? /* @__PURE__ */ e("p", { className: "text-xs text-red-400/70 mb-3", children: h === "zh" ? `星力值不足(需 ${v.cost},当前 ${g})` : `Insufficient SP (need ${v.cost}, have ${g})` }) : null,
495
494
  /* @__PURE__ */ t("div", { className: "flex gap-2", children: [
496
495
  /* @__PURE__ */ e(
497
496
  "button",
498
497
  {
499
- onClick: () => I(null),
498
+ onClick: () => z(null),
500
499
  className: "flex-1 py-2 rounded-lg bg-white/5 text-white/50 text-xs hover:bg-white/10 transition-colors",
501
- children: d === "zh" ? "取消" : "Cancel"
500
+ children: h === "zh" ? "取消" : "Cancel"
502
501
  }
503
502
  ),
504
503
  /* @__PURE__ */ e(
505
504
  "button",
506
505
  {
507
- onClick: () => s(k),
508
- disabled: f < k.cost || !!A,
509
- className: N(
506
+ onClick: () => s(v),
507
+ disabled: g < v.cost || !!T,
508
+ className: u(
510
509
  "flex-1 py-2 rounded-lg text-xs font-medium transition-all",
511
- f >= k.cost ? "bg-gradient-to-r from-amber-500 to-orange-500 text-white hover:brightness-110" : "bg-white/5 text-white/20 cursor-not-allowed"
510
+ g >= v.cost ? "bg-gradient-to-r from-amber-500 to-orange-500 text-white hover:brightness-110" : "bg-white/5 text-white/20 cursor-not-allowed"
512
511
  ),
513
- children: A ? "..." : d === "zh" ? "确认购买" : "Confirm"
512
+ children: T ? "..." : h === "zh" ? "确认购买" : "Confirm"
514
513
  }
515
514
  )
516
515
  ] })
@@ -523,95 +522,95 @@ const Ke = {
523
522
  }
524
523
  )
525
524
  ] }) });
526
- }, Xe = [
527
- { icon: Fe, color: "text-yellow-400", bg: "from-yellow-500/20 to-amber-500/20", border: "border-yellow-500/30", glow: "shadow-yellow-500/20", barColor: "from-yellow-400 to-amber-500" },
528
- { icon: Ne, color: "text-gray-300", bg: "from-gray-400/20 to-slate-400/20", border: "border-gray-400/20", glow: "shadow-gray-400/10", barColor: "from-gray-300 to-slate-400" },
529
- { icon: Ne, color: "text-amber-600", bg: "from-amber-600/20 to-orange-600/20", border: "border-amber-600/20", glow: "shadow-amber-600/10", barColor: "from-amber-500 to-orange-500" }
530
- ], je = "dmusic-leaderboard-prev";
531
- function Ee() {
525
+ }, Ke = [
526
+ { icon: We, color: "text-yellow-400", bg: "from-yellow-500/20 to-amber-500/20", border: "border-yellow-500/30", glow: "shadow-yellow-500/20", barColor: "from-yellow-400 to-amber-500" },
527
+ { icon: we, color: "text-gray-300", bg: "from-gray-400/20 to-slate-400/20", border: "border-gray-400/20", glow: "shadow-gray-400/10", barColor: "from-gray-300 to-slate-400" },
528
+ { icon: we, color: "text-amber-600", bg: "from-amber-600/20 to-orange-600/20", border: "border-amber-600/20", glow: "shadow-amber-600/10", barColor: "from-amber-500 to-orange-500" }
529
+ ], ze = "dmusic-leaderboard-prev";
530
+ function Ie() {
532
531
  try {
533
- const m = localStorage.getItem(je);
534
- if (m) return JSON.parse(m);
532
+ const d = localStorage.getItem(ze);
533
+ if (d) return JSON.parse(d);
535
534
  } catch {
536
535
  }
537
536
  return {};
538
537
  }
539
- function te(m) {
538
+ function ee(d) {
540
539
  try {
541
- const b = {};
542
- m.forEach((r, f) => {
543
- b[r.songId] = f + 1;
544
- }), localStorage.setItem(je, JSON.stringify(b));
540
+ const p = {};
541
+ d.forEach((i, g) => {
542
+ p[i.songId] = g + 1;
543
+ }), localStorage.setItem(ze, JSON.stringify(p));
545
544
  } catch {
546
545
  }
547
546
  }
548
- function et(m) {
549
- const b = Ee(), r = Object.keys(b).length > 0;
550
- return m.map((f, z) => {
551
- const d = z + 1, i = b[f.songId] ?? null;
552
- let x = null;
553
- return r ? i === null ? x = null : x = i - d : x = null, { ...f, rankChange: x, previousRank: i };
547
+ function Qe(d) {
548
+ const p = Ie(), i = Object.keys(p).length > 0;
549
+ return d.map((g, S) => {
550
+ const h = S + 1, r = p[g.songId] ?? null;
551
+ let m = null;
552
+ return i ? r === null ? m = null : m = r - h : m = null, { ...g, rankChange: m, previousRank: r };
554
553
  });
555
554
  }
556
- function tt(m) {
557
- return m.length === 0 ? 1 : Math.max(...m.map((b) => b.wilsonScore), 1e-4);
555
+ function Xe(d) {
556
+ return d.length === 0 ? 1 : Math.max(...d.map((p) => p.wilsonScore), 1e-4);
558
557
  }
559
- const ft = ({
560
- isOpen: m,
561
- onClose: b,
562
- onSelectTrack: r,
563
- user: f,
564
- starPower: z = 0,
565
- onStarPowerUpdate: d
558
+ const pt = ({
559
+ isOpen: d,
560
+ onClose: p,
561
+ onSelectTrack: i,
562
+ user: g,
563
+ starPower: S = 0,
564
+ onStarPowerUpdate: h
566
565
  }) => {
567
- const [i, x] = h([]), [p, M] = h([]), [y, D] = h(!1), [L, P] = h(!1), [A, $] = h(null), T = Re(!0), { t: u } = Y(), k = async (s) => {
568
- if (!(!f || z < 100))
566
+ const [r, m] = c([]), [x, W] = c([]), [N, M] = c(!1), [j, P] = c(!1), [T, R] = c(null), E = Te(!0), { t: w } = J(), v = async (s) => {
567
+ if (!(!g || S < 100))
569
568
  try {
570
- const v = await E("/leaderboard/boost", {
569
+ const k = await I("/leaderboard/boost", {
571
570
  method: "POST",
572
571
  headers: { "Content-Type": "application/json" },
573
- body: JSON.stringify({ userId: f.id, songId: s, amount: 100 })
572
+ body: JSON.stringify({ userId: g.id, songId: s, amount: 100 })
574
573
  });
575
- v != null && v.success && (d == null || d(v.starPower), $(s), setTimeout(() => $(null), 2e3), p.length > 0 && te(p), I());
576
- } catch (v) {
577
- console.error("Boost error:", v);
574
+ k?.success && (h?.(k.starPower), R(s), setTimeout(() => R(null), 2e3), x.length > 0 && ee(x), z());
575
+ } catch (k) {
576
+ console.error("Boost error:", k);
578
577
  }
579
- }, I = B(async () => {
580
- D(!0);
578
+ }, z = O(async () => {
579
+ M(!0);
581
580
  try {
582
- const s = await E("/leaderboard");
583
- if (s != null && s.rankings) {
584
- const v = et(s.rankings);
585
- if (x(v), M(s.rankings), !T.current)
586
- te(s.rankings);
581
+ const s = await I("/leaderboard");
582
+ if (s?.rankings) {
583
+ const k = Qe(s.rankings);
584
+ if (m(k), W(s.rankings), !E.current)
585
+ ee(s.rankings);
587
586
  else {
588
- const l = Ee();
589
- Object.keys(l).length === 0 && te(s.rankings), T.current = !1;
587
+ const l = Ie();
588
+ Object.keys(l).length === 0 && ee(s.rankings), E.current = !1;
590
589
  }
591
590
  }
592
591
  } catch (s) {
593
592
  console.error("Failed to fetch leaderboard:", s);
594
593
  } finally {
595
- D(!1);
594
+ M(!1);
596
595
  }
597
596
  }, []);
598
- K(() => {
599
- m && I();
600
- }, [m, I]);
601
- const R = (s) => He.find((v) => v.id === s), n = tt(p);
602
- return /* @__PURE__ */ e(W, { children: m && /* @__PURE__ */ t(Z, { children: [
597
+ H(() => {
598
+ d && z();
599
+ }, [d, z]);
600
+ const A = (s) => Ye.find((k) => k.id === s), n = Xe(x);
601
+ return /* @__PURE__ */ e(D, { children: d && /* @__PURE__ */ t(B, { children: [
603
602
  /* @__PURE__ */ e(
604
- g.div,
603
+ b.div,
605
604
  {
606
605
  initial: { opacity: 0 },
607
606
  animate: { opacity: 1 },
608
607
  exit: { opacity: 0 },
609
608
  className: "fixed inset-0 z-[60] bg-black/50 backdrop-blur-sm",
610
- onClick: b
609
+ onClick: p
611
610
  }
612
611
  ),
613
612
  /* @__PURE__ */ t(
614
- g.div,
613
+ b.div,
615
614
  {
616
615
  initial: { x: "100%", opacity: 0 },
617
616
  animate: { x: 0, opacity: 1 },
@@ -621,35 +620,35 @@ const ft = ({
621
620
  children: [
622
621
  /* @__PURE__ */ t("div", { className: "flex items-center justify-between p-5 border-b border-white/[0.06] flex-shrink-0", children: [
623
622
  /* @__PURE__ */ t("div", { className: "flex items-center gap-3", children: [
624
- /* @__PURE__ */ e("div", { className: "w-9 h-9 rounded-xl bg-gradient-to-tr from-yellow-500/20 to-orange-500/20 border border-white/10 flex items-center justify-center", children: /* @__PURE__ */ e(J, { className: "w-4.5 h-4.5 text-yellow-400" }) }),
623
+ /* @__PURE__ */ e("div", { className: "w-9 h-9 rounded-xl bg-gradient-to-tr from-yellow-500/20 to-orange-500/20 border border-white/10 flex items-center justify-center", children: /* @__PURE__ */ e(U, { className: "w-4.5 h-4.5 text-yellow-400" }) }),
625
624
  /* @__PURE__ */ t("div", { children: [
626
- /* @__PURE__ */ e("h3", { className: "text-white font-semibold text-sm leading-tight", children: u("leaderboard.title") }),
627
- /* @__PURE__ */ e("p", { className: "text-white/30 text-xs", children: u("leaderboard.subtitle") })
625
+ /* @__PURE__ */ e("h3", { className: "text-white font-semibold text-sm leading-tight", children: w("leaderboard.title") }),
626
+ /* @__PURE__ */ e("p", { className: "text-white/30 text-xs", children: w("leaderboard.subtitle") })
628
627
  ] })
629
628
  ] }),
630
629
  /* @__PURE__ */ t("div", { className: "flex items-center gap-2", children: [
631
630
  /* @__PURE__ */ e(
632
631
  "button",
633
632
  {
634
- onClick: () => P(!L),
635
- className: N(
633
+ onClick: () => P(!j),
634
+ className: u(
636
635
  "p-2 rounded-lg border transition-all",
637
- L ? "bg-blue-500/10 border-blue-500/20 text-blue-400" : "bg-white/5 border-white/[0.08] text-white/40 hover:text-white/70"
636
+ j ? "bg-blue-500/10 border-blue-500/20 text-blue-400" : "bg-white/5 border-white/[0.08] text-white/40 hover:text-white/70"
638
637
  ),
639
- title: u("leaderboard.aboutWilson"),
640
- children: /* @__PURE__ */ e(Me, { className: "w-4 h-4" })
638
+ title: w("leaderboard.aboutWilson"),
639
+ children: /* @__PURE__ */ e($e, { className: "w-4 h-4" })
641
640
  }
642
641
  ),
643
642
  /* @__PURE__ */ e(
644
643
  "button",
645
644
  {
646
645
  onClick: () => {
647
- p.length > 0 && te(p), I();
646
+ x.length > 0 && ee(x), z();
648
647
  },
649
- disabled: y,
650
- className: N(
648
+ disabled: N,
649
+ className: u(
651
650
  "p-2 rounded-lg bg-white/5 hover:bg-white/10 border border-white/[0.08] text-white/60 hover:text-white transition-all",
652
- y && "animate-spin"
651
+ N && "animate-spin"
653
652
  ),
654
653
  children: /* @__PURE__ */ e(De, { className: "w-4 h-4" })
655
654
  }
@@ -657,15 +656,15 @@ const ft = ({
657
656
  /* @__PURE__ */ e(
658
657
  "button",
659
658
  {
660
- onClick: b,
659
+ onClick: p,
661
660
  className: "p-2 rounded-lg text-white/40 hover:text-white/70 hover:bg-white/5 transition-colors",
662
- children: /* @__PURE__ */ e(Q, { className: "w-4 h-4" })
661
+ children: /* @__PURE__ */ e(V, { className: "w-4 h-4" })
663
662
  }
664
663
  )
665
664
  ] })
666
665
  ] }),
667
- /* @__PURE__ */ e(W, { children: L && /* @__PURE__ */ e(
668
- g.div,
666
+ /* @__PURE__ */ e(D, { children: j && /* @__PURE__ */ e(
667
+ b.div,
669
668
  {
670
669
  initial: { height: 0, opacity: 0 },
671
670
  animate: { height: "auto", opacity: 1 },
@@ -673,40 +672,40 @@ const ft = ({
673
672
  className: "overflow-hidden border-b border-white/[0.04]",
674
673
  children: /* @__PURE__ */ t("div", { className: "p-4 bg-blue-500/5", children: [
675
674
  /* @__PURE__ */ t("h4", { className: "text-xs font-semibold text-blue-300 mb-2 flex items-center gap-1.5", children: [
676
- /* @__PURE__ */ e(V, { className: "w-3.5 h-3.5" }),
677
- u("leaderboard.wilsonAlgorithm")
675
+ /* @__PURE__ */ e(q, { className: "w-3.5 h-3.5" }),
676
+ w("leaderboard.wilsonAlgorithm")
678
677
  ] }),
679
- /* @__PURE__ */ e("p", { className: "text-xs text-white/40 leading-relaxed", children: u("leaderboard.wilsonInfo") }),
678
+ /* @__PURE__ */ e("p", { className: "text-xs text-white/40 leading-relaxed", children: w("leaderboard.wilsonInfo") }),
680
679
  /* @__PURE__ */ e("div", { className: "mt-2 p-2 bg-white/[0.03] rounded-lg font-mono text-[10px] text-white/30", children: "score = (p̂ + z²/2n − z√(p̂(1−p̂)/n + z²/4n²)) / (1 + z²/n)" })
681
680
  ] })
682
681
  }
683
682
  ) }),
684
- /* @__PURE__ */ e("div", { className: "flex-1 overflow-y-auto", style: { scrollbarWidth: "none" }, children: y && i.length === 0 ? /* @__PURE__ */ e("div", { className: "flex justify-center py-16", children: /* @__PURE__ */ e("div", { className: "w-6 h-6 border-2 border-yellow-500/30 border-t-yellow-500 rounded-full animate-spin" }) }) : i.length === 0 ? /* @__PURE__ */ t("div", { className: "text-center py-16 px-6", children: [
685
- /* @__PURE__ */ e(J, { className: "w-12 h-12 text-white/10 mx-auto mb-3" }),
686
- /* @__PURE__ */ e("p", { className: "text-white/30 text-sm", children: u("leaderboard.noRankings") }),
687
- /* @__PURE__ */ e("p", { className: "text-white/15 text-xs mt-1", children: u("leaderboard.buildBoard") })
688
- ] }) : /* @__PURE__ */ e("div", { className: "p-4 space-y-2", children: i.map((s, v) => {
689
- const l = R(s.songId), c = Xe[v], C = v < 3, O = (c == null ? void 0 : c.icon) || J, o = n > 0 ? s.wilsonScore / n * 100 : 0, j = s.plays + s.likes + s.comments;
683
+ /* @__PURE__ */ e("div", { className: "flex-1 overflow-y-auto", style: { scrollbarWidth: "none" }, children: N && r.length === 0 ? /* @__PURE__ */ e("div", { className: "flex justify-center py-16", children: /* @__PURE__ */ e("div", { className: "w-6 h-6 border-2 border-yellow-500/30 border-t-yellow-500 rounded-full animate-spin" }) }) : r.length === 0 ? /* @__PURE__ */ t("div", { className: "text-center py-16 px-6", children: [
684
+ /* @__PURE__ */ e(U, { className: "w-12 h-12 text-white/10 mx-auto mb-3" }),
685
+ /* @__PURE__ */ e("p", { className: "text-white/30 text-sm", children: w("leaderboard.noRankings") }),
686
+ /* @__PURE__ */ e("p", { className: "text-white/15 text-xs mt-1", children: w("leaderboard.buildBoard") })
687
+ ] }) : /* @__PURE__ */ e("div", { className: "p-4 space-y-2", children: r.map((s, k) => {
688
+ const l = A(s.songId), f = Ke[k], C = k < 3, F = f?.icon || U, o = n > 0 ? s.wilsonScore / n * 100 : 0, L = s.plays + s.likes + s.comments;
690
689
  return /* @__PURE__ */ t(
691
- g.div,
690
+ b.div,
692
691
  {
693
692
  initial: { opacity: 0, x: 20 },
694
693
  animate: { opacity: 1, x: 0 },
695
- transition: { delay: v * 0.08 },
696
- onClick: () => r == null ? void 0 : r(s.songId),
697
- className: N(
694
+ transition: { delay: k * 0.08 },
695
+ onClick: () => i?.(s.songId),
696
+ className: u(
698
697
  "p-4 rounded-xl border transition-all cursor-pointer group relative",
699
- C ? `bg-gradient-to-r ${c.bg} ${c.border} shadow-lg ${c.glow}` : "bg-white/[0.02] border-white/[0.06] hover:bg-white/[0.04]"
698
+ C ? `bg-gradient-to-r ${f.bg} ${f.border} shadow-lg ${f.glow}` : "bg-white/[0.02] border-white/[0.06] hover:bg-white/[0.04]"
700
699
  ),
701
700
  children: [
702
- /* @__PURE__ */ e(at, { change: s.rankChange }),
701
+ /* @__PURE__ */ e(et, { change: s.rankChange }),
703
702
  /* @__PURE__ */ t("div", { className: "flex items-center gap-3", children: [
704
- /* @__PURE__ */ e("div", { className: N(
703
+ /* @__PURE__ */ e("div", { className: u(
705
704
  "w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",
706
705
  C ? "bg-white/10" : "bg-white/[0.04]"
707
- ), children: C ? /* @__PURE__ */ e(O, { className: N("w-4 h-4", c == null ? void 0 : c.color) }) : /* @__PURE__ */ e("span", { className: "text-xs font-mono text-white/30", children: v + 1 }) }),
706
+ ), children: C ? /* @__PURE__ */ e(F, { className: u("w-4 h-4", f?.color) }) : /* @__PURE__ */ e("span", { className: "text-xs font-mono text-white/30", children: k + 1 }) }),
708
707
  l && /* @__PURE__ */ e("div", { className: "w-10 h-10 rounded-lg overflow-hidden flex-shrink-0", children: /* @__PURE__ */ e(
709
- Ve,
708
+ qe,
710
709
  {
711
710
  src: l.albumArt,
712
711
  alt: l.title,
@@ -714,25 +713,25 @@ const ft = ({
714
713
  }
715
714
  ) }),
716
715
  /* @__PURE__ */ t("div", { className: "flex-1 min-w-0", children: [
717
- /* @__PURE__ */ e("p", { className: N(
716
+ /* @__PURE__ */ e("p", { className: u(
718
717
  "text-sm font-medium truncate",
719
718
  C ? "text-white" : "text-white/80"
720
- ), children: (l == null ? void 0 : l.title) || s.songId }),
721
- /* @__PURE__ */ e("p", { className: "text-xs text-white/30 truncate", children: (l == null ? void 0 : l.artist) || u("leaderboard.unknown") })
719
+ ), children: l?.title || s.songId }),
720
+ /* @__PURE__ */ e("p", { className: "text-xs text-white/30 truncate", children: l?.artist || w("leaderboard.unknown") })
722
721
  ] }),
723
722
  /* @__PURE__ */ t("div", { className: "text-right flex-shrink-0", children: [
724
- /* @__PURE__ */ e("p", { className: N(
723
+ /* @__PURE__ */ e("p", { className: u(
725
724
  "text-sm font-bold font-mono tabular-nums",
726
- C ? c == null ? void 0 : c.color : "text-white/60"
725
+ C ? f?.color : "text-white/60"
727
726
  ), children: s.wilsonScore.toFixed(4) }),
728
- /* @__PURE__ */ e("p", { className: "text-[10px] text-white/20", children: u("leaderboard.score") })
727
+ /* @__PURE__ */ e("p", { className: "text-[10px] text-white/20", children: w("leaderboard.score") })
729
728
  ] })
730
729
  ] }),
731
730
  /* @__PURE__ */ t("div", { className: "mt-3 ml-11", children: [
732
731
  /* @__PURE__ */ t("div", { className: "flex items-center justify-between mb-1", children: [
733
732
  /* @__PURE__ */ t("span", { className: "text-[10px] text-white/20 flex items-center gap-1", children: [
734
733
  /* @__PURE__ */ e(oe, { className: "w-2.5 h-2.5" }),
735
- u("leaderboard.wilsonBar")
734
+ w("leaderboard.wilsonBar")
736
735
  ] }),
737
736
  /* @__PURE__ */ t("span", { className: "text-[10px] text-white/25 font-mono tabular-nums", children: [
738
737
  o.toFixed(1),
@@ -740,54 +739,54 @@ const ft = ({
740
739
  ] })
741
740
  ] }),
742
741
  /* @__PURE__ */ e("div", { className: "h-1.5 rounded-full bg-white/[0.06] overflow-hidden", children: /* @__PURE__ */ e(
743
- g.div,
742
+ b.div,
744
743
  {
745
744
  initial: { width: 0 },
746
745
  animate: { width: `${o}%` },
747
- transition: { delay: v * 0.08 + 0.3, duration: 0.6, ease: "easeOut" },
748
- className: N(
746
+ transition: { delay: k * 0.08 + 0.3, duration: 0.6, ease: "easeOut" },
747
+ className: u(
749
748
  "h-full rounded-full bg-gradient-to-r",
750
- C ? c.barColor : "from-indigo-400 to-purple-500"
749
+ C ? f.barColor : "from-indigo-400 to-purple-500"
751
750
  )
752
751
  }
753
752
  ) })
754
753
  ] }),
755
754
  /* @__PURE__ */ t("div", { className: "flex items-center gap-4 mt-2.5 ml-11", children: [
756
755
  /* @__PURE__ */ t("span", { className: "flex items-center gap-1 text-[11px] text-white/25", children: [
757
- /* @__PURE__ */ e(Ie, { className: "w-3 h-3" }),
756
+ /* @__PURE__ */ e(Se, { className: "w-3 h-3" }),
758
757
  s.plays
759
758
  ] }),
760
759
  /* @__PURE__ */ t("span", { className: "flex items-center gap-1 text-[11px] text-white/25", children: [
761
- /* @__PURE__ */ e(H, { className: "w-3 h-3" }),
760
+ /* @__PURE__ */ e(Y, { className: "w-3 h-3" }),
762
761
  s.likes
763
762
  ] }),
764
763
  /* @__PURE__ */ t("span", { className: "flex items-center gap-1 text-[11px] text-white/25", children: [
765
- /* @__PURE__ */ e(Oe, { className: "w-3 h-3" }),
764
+ /* @__PURE__ */ e(Me, { className: "w-3 h-3" }),
766
765
  s.comments
767
766
  ] }),
768
- f && z >= 100 && /* @__PURE__ */ t(
767
+ g && S >= 100 && /* @__PURE__ */ t(
769
768
  "button",
770
769
  {
771
- onClick: (_) => {
772
- _.stopPropagation(), k(s.songId);
770
+ onClick: (re) => {
771
+ re.stopPropagation(), v(s.songId);
773
772
  },
774
- disabled: A === s.songId,
775
- className: N(
773
+ disabled: T === s.songId,
774
+ className: u(
776
775
  "ml-auto flex items-center gap-1 px-2 py-0.5 rounded-full text-[9px] font-medium border transition-all",
777
- A === s.songId ? "bg-emerald-500/15 text-emerald-300 border-emerald-500/20" : "bg-yellow-500/10 text-yellow-300/70 border-yellow-500/15 hover:bg-yellow-500/20 hover:text-yellow-300"
776
+ T === s.songId ? "bg-emerald-500/15 text-emerald-300 border-emerald-500/20" : "bg-yellow-500/10 text-yellow-300/70 border-yellow-500/15 hover:bg-yellow-500/20 hover:text-yellow-300"
778
777
  ),
779
- title: u("starpower.boostCost"),
778
+ title: w("starpower.boostCost"),
780
779
  children: [
781
- /* @__PURE__ */ e(Be, { className: "w-2.5 h-2.5" }),
782
- A === s.songId ? u("starpower.boostSuccess") : `${u("starpower.boost")} 100SP`
780
+ /* @__PURE__ */ e(Fe, { className: "w-2.5 h-2.5" }),
781
+ T === s.songId ? w("starpower.boostSuccess") : `${w("starpower.boost")} 100SP`
783
782
  ]
784
783
  }
785
784
  ),
786
- (!f || z < 100) && /* @__PURE__ */ t("span", { className: "text-[10px] text-white/15 ml-auto flex items-center gap-1", children: [
787
- /* @__PURE__ */ e(G, { className: "w-2.5 h-2.5" }),
788
- j,
785
+ (!g || S < 100) && /* @__PURE__ */ t("span", { className: "text-[10px] text-white/15 ml-auto flex items-center gap-1", children: [
786
+ /* @__PURE__ */ e(_, { className: "w-2.5 h-2.5" }),
787
+ L,
789
788
  " ",
790
- u("leaderboard.totalEngagement")
789
+ w("leaderboard.totalEngagement")
791
790
  ] })
792
791
  ] })
793
792
  ]
@@ -796,113 +795,113 @@ const ft = ({
796
795
  );
797
796
  }) }) }),
798
797
  /* @__PURE__ */ e("div", { className: "p-4 border-t border-white/[0.06] flex-shrink-0", children: /* @__PURE__ */ e("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ t("div", { className: "flex items-center gap-2 text-white/20", children: [
799
- /* @__PURE__ */ e(V, { className: "w-3.5 h-3.5" }),
800
- /* @__PURE__ */ e("span", { className: "text-xs", children: u("leaderboard.poweredBy") })
798
+ /* @__PURE__ */ e(q, { className: "w-3.5 h-3.5" }),
799
+ /* @__PURE__ */ e("span", { className: "text-xs", children: w("leaderboard.poweredBy") })
801
800
  ] }) }) })
802
801
  ]
803
802
  }
804
803
  )
805
804
  ] }) });
806
- }, at = ({ change: m }) => {
807
- const { t: b } = Y();
808
- return m === null ? /* @__PURE__ */ t(
809
- g.div,
805
+ }, et = ({ change: d }) => {
806
+ const { t: p } = J();
807
+ return d === null ? /* @__PURE__ */ t(
808
+ b.div,
810
809
  {
811
810
  initial: { scale: 0, opacity: 0 },
812
811
  animate: { scale: 1, opacity: 1 },
813
812
  transition: { delay: 0.4, type: "spring", damping: 12 },
814
813
  className: "absolute top-2 right-2 flex items-center gap-0.5 px-1.5 py-0.5 rounded-full bg-cyan-500/15 border border-cyan-500/20",
815
814
  children: [
816
- /* @__PURE__ */ e(G, { className: "w-2.5 h-2.5 text-cyan-400" }),
817
- /* @__PURE__ */ e("span", { className: "text-[9px] font-semibold text-cyan-400", children: b("leaderboard.rankNew") })
815
+ /* @__PURE__ */ e(_, { className: "w-2.5 h-2.5 text-cyan-400" }),
816
+ /* @__PURE__ */ e("span", { className: "text-[9px] font-semibold text-cyan-400", children: p("leaderboard.rankNew") })
818
817
  ]
819
818
  }
820
- ) : m === 0 ? /* @__PURE__ */ t("div", { className: "absolute top-2 right-2 flex items-center gap-0.5 px-1.5 py-0.5 rounded-full bg-white/[0.04] border border-white/[0.06]", children: [
821
- /* @__PURE__ */ e(Ze, { className: "w-2.5 h-2.5 text-white/25" }),
822
- /* @__PURE__ */ e("span", { className: "text-[9px] text-white/25", children: b("leaderboard.rankSame") })
823
- ] }) : m > 0 ? /* @__PURE__ */ t(
824
- g.div,
819
+ ) : d === 0 ? /* @__PURE__ */ t("div", { className: "absolute top-2 right-2 flex items-center gap-0.5 px-1.5 py-0.5 rounded-full bg-white/[0.04] border border-white/[0.06]", children: [
820
+ /* @__PURE__ */ e(Oe, { className: "w-2.5 h-2.5 text-white/25" }),
821
+ /* @__PURE__ */ e("span", { className: "text-[9px] text-white/25", children: p("leaderboard.rankSame") })
822
+ ] }) : d > 0 ? /* @__PURE__ */ t(
823
+ b.div,
825
824
  {
826
825
  initial: { y: 5, opacity: 0 },
827
826
  animate: { y: 0, opacity: 1 },
828
827
  transition: { delay: 0.3 },
829
828
  className: "absolute top-2 right-2 flex items-center gap-0.5 px-1.5 py-0.5 rounded-full bg-emerald-500/15 border border-emerald-500/20",
830
829
  children: [
831
- /* @__PURE__ */ e(Ue, { className: "w-2.5 h-2.5 text-emerald-400" }),
830
+ /* @__PURE__ */ e(Be, { className: "w-2.5 h-2.5 text-emerald-400" }),
832
831
  /* @__PURE__ */ t("span", { className: "text-[9px] font-semibold text-emerald-400", children: [
833
- m,
832
+ d,
834
833
  " ",
835
- b("leaderboard.rankUp")
834
+ p("leaderboard.rankUp")
836
835
  ] })
837
836
  ]
838
837
  }
839
838
  ) : /* @__PURE__ */ t(
840
- g.div,
839
+ b.div,
841
840
  {
842
841
  initial: { y: -5, opacity: 0 },
843
842
  animate: { y: 0, opacity: 1 },
844
843
  transition: { delay: 0.3 },
845
844
  className: "absolute top-2 right-2 flex items-center gap-0.5 px-1.5 py-0.5 rounded-full bg-red-500/15 border border-red-500/20",
846
845
  children: [
847
- /* @__PURE__ */ e(_e, { className: "w-2.5 h-2.5 text-red-400" }),
846
+ /* @__PURE__ */ e(Ze, { className: "w-2.5 h-2.5 text-red-400" }),
848
847
  /* @__PURE__ */ t("span", { className: "text-[9px] font-semibold text-red-400", children: [
849
- Math.abs(m),
848
+ Math.abs(d),
850
849
  " ",
851
- b("leaderboard.rankDown")
850
+ p("leaderboard.rankDown")
852
851
  ] })
853
852
  ]
854
853
  }
855
854
  );
856
- }, gt = ({
857
- isOpen: m,
858
- onClose: b,
859
- user: r,
860
- starPower: f = 0
855
+ }, bt = ({
856
+ isOpen: d,
857
+ onClose: p,
858
+ user: i,
859
+ starPower: g = 0
861
860
  }) => {
862
- const { t: z, lang: d } = Y(), [i, x] = h([]), [p, M] = h({}), [y, D] = h(0), [L, P] = h(12), [A, $] = h(!1), [T, u] = h(null), k = B(async () => {
863
- if (r) {
864
- $(!0);
861
+ const { t: S, lang: h } = J(), [r, m] = c([]), [x, W] = c({}), [N, M] = c(0), [j, P] = c(12), [T, R] = c(!1), [E, w] = c(null), v = O(async () => {
862
+ if (i) {
863
+ R(!0);
865
864
  try {
866
- await E(`/achievements/${r.id}/track`, {
865
+ await I(`/achievements/${i.id}/track`, {
867
866
  method: "POST",
868
867
  headers: { "Content-Type": "application/json" },
869
- body: JSON.stringify({ action: "daily_login", starPower: f })
868
+ body: JSON.stringify({ action: "daily_login", starPower: g })
870
869
  });
871
- const n = await E(`/achievements/${r.id}`);
872
- if (n != null && n.achievements) {
873
- x(n.achievements), M(n.stats || {}), D(n.totalUnlocked), P(n.totalAchievements);
874
- const s = n.achievements.find((v) => v.newlyUnlocked);
875
- s && (u(s.id), setTimeout(() => u(null), 4e3));
870
+ const n = await I(`/achievements/${i.id}`);
871
+ if (n?.achievements) {
872
+ m(n.achievements), W(n.stats || {}), M(n.totalUnlocked), P(n.totalAchievements);
873
+ const s = n.achievements.find((k) => k.newlyUnlocked);
874
+ s && (w(s.id), setTimeout(() => w(null), 4e3));
876
875
  }
877
876
  } catch (n) {
878
877
  console.error("Achievements fetch error:", n);
879
878
  } finally {
880
- $(!1);
879
+ R(!1);
881
880
  }
882
881
  }
883
- }, [r, f]);
884
- K(() => {
885
- m && r && k();
886
- }, [m, r, k]);
887
- const I = L > 0 ? y / L * 100 : 0, R = [
888
- { key: "totalWorks", labelZh: "总作品", labelEn: "Works", icon: U, color: "text-yellow-400" },
889
- { key: "streakDays", labelZh: "连续天数", labelEn: "Streak", icon: Je, color: "text-orange-400" },
890
- { key: "totalLikesReceived", labelZh: "获赞", labelEn: "Likes", icon: V, color: "text-pink-400" },
891
- { key: "totalMessages", labelZh: "喊话", labelEn: "Messages", icon: G, color: "text-purple-400" }
882
+ }, [i, g]);
883
+ H(() => {
884
+ d && i && v();
885
+ }, [d, i, v]);
886
+ const z = j > 0 ? N / j * 100 : 0, A = [
887
+ { key: "totalWorks", labelZh: "总作品", labelEn: "Works", icon: Z, color: "text-yellow-400" },
888
+ { key: "streakDays", labelZh: "连续天数", labelEn: "Streak", icon: Ue, color: "text-orange-400" },
889
+ { key: "totalLikesReceived", labelZh: "获赞", labelEn: "Likes", icon: q, color: "text-pink-400" },
890
+ { key: "totalMessages", labelZh: "喊话", labelEn: "Messages", icon: _, color: "text-purple-400" }
892
891
  ];
893
- return /* @__PURE__ */ e(W, { children: m && /* @__PURE__ */ t(Z, { children: [
892
+ return /* @__PURE__ */ e(D, { children: d && /* @__PURE__ */ t(B, { children: [
894
893
  /* @__PURE__ */ e(
895
- g.div,
894
+ b.div,
896
895
  {
897
896
  initial: { opacity: 0 },
898
897
  animate: { opacity: 1 },
899
898
  exit: { opacity: 0 },
900
899
  className: "fixed inset-0 z-[60] bg-black/50 backdrop-blur-sm",
901
- onClick: b
900
+ onClick: p
902
901
  }
903
902
  ),
904
903
  /* @__PURE__ */ t(
905
- g.div,
904
+ b.div,
906
905
  {
907
906
  initial: { x: "100%", opacity: 0 },
908
907
  animate: { x: 0, opacity: 1 },
@@ -912,23 +911,23 @@ const ft = ({
912
911
  children: [
913
912
  /* @__PURE__ */ t("div", { className: "flex items-center justify-between p-5 border-b border-white/[0.06] flex-shrink-0", children: [
914
913
  /* @__PURE__ */ t("div", { className: "flex items-center gap-3", children: [
915
- /* @__PURE__ */ e("div", { className: "w-9 h-9 rounded-xl bg-gradient-to-tr from-yellow-500/20 to-orange-500/20 border border-white/10 flex items-center justify-center", children: /* @__PURE__ */ e(J, { className: "w-4.5 h-4.5 text-yellow-400" }) }),
914
+ /* @__PURE__ */ e("div", { className: "w-9 h-9 rounded-xl bg-gradient-to-tr from-yellow-500/20 to-orange-500/20 border border-white/10 flex items-center justify-center", children: /* @__PURE__ */ e(U, { className: "w-4.5 h-4.5 text-yellow-400" }) }),
916
915
  /* @__PURE__ */ t("div", { children: [
917
- /* @__PURE__ */ e("h3", { className: "text-white font-semibold text-sm leading-tight", children: z("achievements.title") }),
918
- /* @__PURE__ */ e("p", { className: "text-white/30 text-xs", children: z("achievements.subtitle") })
916
+ /* @__PURE__ */ e("h3", { className: "text-white font-semibold text-sm leading-tight", children: S("achievements.title") }),
917
+ /* @__PURE__ */ e("p", { className: "text-white/30 text-xs", children: S("achievements.subtitle") })
919
918
  ] })
920
919
  ] }),
921
- /* @__PURE__ */ e("button", { onClick: b, className: "p-2 rounded-lg text-white/40 hover:text-white/70 hover:bg-white/5 transition-colors", children: /* @__PURE__ */ e(Q, { className: "w-4 h-4" }) })
920
+ /* @__PURE__ */ e("button", { onClick: p, className: "p-2 rounded-lg text-white/40 hover:text-white/70 hover:bg-white/5 transition-colors", children: /* @__PURE__ */ e(V, { className: "w-4 h-4" }) })
922
921
  ] }),
923
- /* @__PURE__ */ e("div", { className: "flex-1 overflow-y-auto p-4 space-y-4", style: { scrollbarWidth: "none" }, children: r ? A && i.length === 0 ? /* @__PURE__ */ e("div", { className: "flex justify-center py-16", children: /* @__PURE__ */ e("div", { className: "w-6 h-6 border-2 border-yellow-500/30 border-t-yellow-500 rounded-full animate-spin" }) }) : /* @__PURE__ */ t(Z, { children: [
922
+ /* @__PURE__ */ e("div", { className: "flex-1 overflow-y-auto p-4 space-y-4", style: { scrollbarWidth: "none" }, children: i ? T && r.length === 0 ? /* @__PURE__ */ e("div", { className: "flex justify-center py-16", children: /* @__PURE__ */ e("div", { className: "w-6 h-6 border-2 border-yellow-500/30 border-t-yellow-500 rounded-full animate-spin" }) }) : /* @__PURE__ */ t(B, { children: [
924
923
  /* @__PURE__ */ t("div", { className: "p-4 rounded-2xl bg-gradient-to-br from-yellow-500/[0.06] to-orange-500/[0.06] border border-yellow-500/10", children: [
925
924
  /* @__PURE__ */ t("div", { className: "flex items-center justify-between mb-3", children: [
926
925
  /* @__PURE__ */ t("div", { children: [
927
- /* @__PURE__ */ e("p", { className: "text-xs text-white/40 uppercase tracking-wider font-medium", children: z("achievements.progress") }),
926
+ /* @__PURE__ */ e("p", { className: "text-xs text-white/40 uppercase tracking-wider font-medium", children: S("achievements.progress") }),
928
927
  /* @__PURE__ */ t("p", { className: "text-2xl font-bold text-transparent bg-clip-text bg-gradient-to-r from-yellow-400 to-orange-400 mt-0.5", children: [
929
- y,
928
+ N,
930
929
  " / ",
931
- L
930
+ j
932
931
  ] })
933
932
  ] }),
934
933
  /* @__PURE__ */ t("div", { className: "w-16 h-16 relative", children: [
@@ -943,7 +942,7 @@ const ft = ({
943
942
  fill: "none",
944
943
  stroke: "url(#achieveGrad)",
945
944
  strokeWidth: "4",
946
- strokeDasharray: `${175.9 * I / 100} 175.9`,
945
+ strokeDasharray: `${175.9 * z / 100} 175.9`,
947
946
  strokeLinecap: "round"
948
947
  }
949
948
  ),
@@ -953,24 +952,24 @@ const ft = ({
953
952
  ] }) })
954
953
  ] }),
955
954
  /* @__PURE__ */ e("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ t("span", { className: "text-xs font-bold text-yellow-300", children: [
956
- Math.round(I),
955
+ Math.round(z),
957
956
  "%"
958
957
  ] }) })
959
958
  ] })
960
959
  ] }),
961
- /* @__PURE__ */ e("div", { className: "grid grid-cols-4 gap-2 mt-3 pt-3 border-t border-white/[0.04]", children: R.map((n) => {
960
+ /* @__PURE__ */ e("div", { className: "grid grid-cols-4 gap-2 mt-3 pt-3 border-t border-white/[0.04]", children: A.map((n) => {
962
961
  const s = n.icon;
963
962
  return /* @__PURE__ */ t("div", { className: "text-center", children: [
964
- /* @__PURE__ */ e(s, { className: N("w-3.5 h-3.5 mx-auto mb-0.5", n.color) }),
965
- /* @__PURE__ */ e("p", { className: "text-sm font-semibold text-white/80", children: p[n.key] || 0 }),
966
- /* @__PURE__ */ e("p", { className: "text-[9px] text-white/25", children: d === "zh" ? n.labelZh : n.labelEn })
963
+ /* @__PURE__ */ e(s, { className: u("w-3.5 h-3.5 mx-auto mb-0.5", n.color) }),
964
+ /* @__PURE__ */ e("p", { className: "text-sm font-semibold text-white/80", children: x[n.key] || 0 }),
965
+ /* @__PURE__ */ e("p", { className: "text-[9px] text-white/25", children: h === "zh" ? n.labelZh : n.labelEn })
967
966
  ] }, n.key);
968
967
  }) })
969
968
  ] }),
970
- /* @__PURE__ */ e(W, { children: T && (() => {
971
- const n = i.find((s) => s.id === T);
969
+ /* @__PURE__ */ e(D, { children: E && (() => {
970
+ const n = r.find((s) => s.id === E);
972
971
  return n ? /* @__PURE__ */ t(
973
- g.div,
972
+ b.div,
974
973
  {
975
974
  initial: { scale: 0.8, opacity: 0 },
976
975
  animate: { scale: 1, opacity: 1 },
@@ -978,7 +977,7 @@ const ft = ({
978
977
  className: "p-4 rounded-2xl bg-gradient-to-br from-yellow-500/15 to-orange-500/15 border border-yellow-500/25 text-center",
979
978
  children: [
980
979
  /* @__PURE__ */ e(
981
- g.div,
980
+ b.div,
982
981
  {
983
982
  animate: { rotate: [0, -10, 10, -10, 10, 0] },
984
983
  transition: { duration: 0.6, delay: 0.3 },
@@ -986,29 +985,29 @@ const ft = ({
986
985
  children: n.icon
987
986
  }
988
987
  ),
989
- /* @__PURE__ */ e("p", { className: "text-xs text-yellow-300 font-semibold uppercase tracking-wider", children: d === "zh" ? "新成就解锁!" : "Achievement Unlocked!" }),
990
- /* @__PURE__ */ e("p", { className: "text-sm font-bold text-white/90 mt-1", children: d === "zh" ? n.nameZh : n.nameEn }),
991
- /* @__PURE__ */ e("p", { className: "text-[10px] text-white/40 mt-0.5", children: d === "zh" ? n.descZh : n.descEn })
988
+ /* @__PURE__ */ e("p", { className: "text-xs text-yellow-300 font-semibold uppercase tracking-wider", children: h === "zh" ? "新成就解锁!" : "Achievement Unlocked!" }),
989
+ /* @__PURE__ */ e("p", { className: "text-sm font-bold text-white/90 mt-1", children: h === "zh" ? n.nameZh : n.nameEn }),
990
+ /* @__PURE__ */ e("p", { className: "text-[10px] text-white/40 mt-0.5", children: h === "zh" ? n.descZh : n.descEn })
992
991
  ]
993
992
  },
994
993
  "celebration"
995
994
  ) : null;
996
995
  })() }),
997
996
  /* @__PURE__ */ t("div", { children: [
998
- /* @__PURE__ */ e("p", { className: "text-xs text-white/40 uppercase tracking-wider font-medium mb-3", children: z("achievements.allBadges") }),
999
- /* @__PURE__ */ e("div", { className: "grid grid-cols-2 gap-2", children: i.map((n, s) => /* @__PURE__ */ t(
1000
- g.div,
997
+ /* @__PURE__ */ e("p", { className: "text-xs text-white/40 uppercase tracking-wider font-medium mb-3", children: S("achievements.allBadges") }),
998
+ /* @__PURE__ */ e("div", { className: "grid grid-cols-2 gap-2", children: r.map((n, s) => /* @__PURE__ */ t(
999
+ b.div,
1001
1000
  {
1002
1001
  initial: { opacity: 0, y: 10 },
1003
1002
  animate: { opacity: 1, y: 0 },
1004
1003
  transition: { delay: s * 0.05 },
1005
- className: N(
1004
+ className: u(
1006
1005
  "p-3 rounded-xl border transition-all relative",
1007
1006
  n.unlocked ? "bg-gradient-to-br from-white/[0.04] to-white/[0.02] border-yellow-500/15 hover:border-yellow-500/25" : "bg-white/[0.01] border-white/[0.04] opacity-50"
1008
1007
  ),
1009
1008
  children: [
1010
1009
  n.newlyUnlocked && /* @__PURE__ */ e(
1011
- g.div,
1010
+ b.div,
1012
1011
  {
1013
1012
  animate: { scale: [1, 1.2, 1] },
1014
1013
  transition: { duration: 1.5, repeat: 1 / 0 },
@@ -1017,162 +1016,156 @@ const ft = ({
1017
1016
  ),
1018
1017
  /* @__PURE__ */ t("div", { className: "flex items-center gap-2 mb-1.5", children: [
1019
1018
  /* @__PURE__ */ e("span", { className: "text-xl", children: n.unlocked ? n.icon : "🔒" }),
1020
- n.unlocked && /* @__PURE__ */ e("span", { className: "text-[8px] px-1 py-0.5 rounded-full bg-yellow-500/15 text-yellow-300 border border-yellow-500/15 font-medium", children: d === "zh" ? "已解锁" : "Unlocked" })
1019
+ n.unlocked && /* @__PURE__ */ e("span", { className: "text-[8px] px-1 py-0.5 rounded-full bg-yellow-500/15 text-yellow-300 border border-yellow-500/15 font-medium", children: h === "zh" ? "已解锁" : "Unlocked" })
1021
1020
  ] }),
1022
- /* @__PURE__ */ e("p", { className: N("text-xs font-medium", n.unlocked ? "text-white/80" : "text-white/30"), children: d === "zh" ? n.nameZh : n.nameEn }),
1023
- /* @__PURE__ */ e("p", { className: N("text-[10px] mt-0.5 leading-relaxed", n.unlocked ? "text-white/40" : "text-white/15"), children: d === "zh" ? n.descZh : n.descEn })
1021
+ /* @__PURE__ */ e("p", { className: u("text-xs font-medium", n.unlocked ? "text-white/80" : "text-white/30"), children: h === "zh" ? n.nameZh : n.nameEn }),
1022
+ /* @__PURE__ */ e("p", { className: u("text-[10px] mt-0.5 leading-relaxed", n.unlocked ? "text-white/40" : "text-white/15"), children: h === "zh" ? n.descZh : n.descEn })
1024
1023
  ]
1025
1024
  },
1026
1025
  n.id
1027
1026
  )) })
1028
1027
  ] })
1029
1028
  ] }) : /* @__PURE__ */ t("div", { className: "text-center py-16", children: [
1030
- /* @__PURE__ */ e(J, { className: "w-12 h-12 text-white/10 mx-auto mb-3" }),
1031
- /* @__PURE__ */ e("p", { className: "text-white/30 text-sm", children: d === "zh" ? "登录后查看成就" : "Sign in to view achievements" })
1029
+ /* @__PURE__ */ e(U, { className: "w-12 h-12 text-white/10 mx-auto mb-3" }),
1030
+ /* @__PURE__ */ e("p", { className: "text-white/30 text-sm", children: h === "zh" ? "登录后查看成就" : "Sign in to view achievements" })
1032
1031
  ] }) }),
1033
1032
  /* @__PURE__ */ e("div", { className: "p-3 border-t border-white/[0.06] flex-shrink-0 flex items-center justify-center", children: /* @__PURE__ */ t("div", { className: "flex items-center gap-1.5 text-white/15", children: [
1034
- /* @__PURE__ */ e(J, { className: "w-3 h-3" }),
1035
- /* @__PURE__ */ e("span", { className: "text-[10px]", children: z("achievements.subtitle") })
1033
+ /* @__PURE__ */ e(U, { className: "w-3 h-3" }),
1034
+ /* @__PURE__ */ e("span", { className: "text-[10px]", children: S("achievements.subtitle") })
1036
1035
  ] }) })
1037
1036
  ]
1038
1037
  }
1039
1038
  )
1040
1039
  ] }) });
1041
- }, ae = {
1040
+ }, te = {
1042
1041
  happy: "from-yellow-500/20 to-amber-500/20 border-yellow-500/20",
1043
1042
  sad: "from-blue-500/20 to-indigo-500/20 border-blue-500/20",
1044
1043
  energetic: "from-orange-500/20 to-red-500/20 border-orange-500/20",
1045
1044
  calm: "from-cyan-500/20 to-teal-500/20 border-cyan-500/20",
1046
1045
  love: "from-pink-500/20 to-rose-500/20 border-pink-500/20"
1047
- }, it = {
1046
+ }, tt = {
1048
1047
  happy: "😊",
1049
1048
  sad: "😢",
1050
1049
  energetic: "⚡",
1051
1050
  calm: "🌙",
1052
1051
  love: "❤️"
1053
- }, ie = [
1052
+ }, ae = [
1054
1053
  { min: 0, label: "新手创作者", labelEn: "Beginner", icon: "🌱" },
1055
1054
  { min: 3, label: "铜牌创作者", labelEn: "Bronze Creator", icon: "🥉" },
1056
1055
  { min: 8, label: "银牌创作者", labelEn: "Silver Creator", icon: "🥈" },
1057
1056
  { min: 15, label: "金牌创作者", labelEn: "Gold Creator", icon: "🥇" },
1058
1057
  { min: 30, label: "星级创作者", labelEn: "Star Creator", icon: "⭐" }
1059
1058
  ];
1060
- function lt(m) {
1061
- let b = ie[0];
1062
- for (const r of ie)
1063
- m >= r.min && (b = r);
1064
- return b;
1059
+ function at(d) {
1060
+ let p = ae[0];
1061
+ for (const i of ae)
1062
+ d >= i.min && (p = i);
1063
+ return p;
1065
1064
  }
1066
- const wt = ({
1067
- isOpen: m,
1068
- onClose: b,
1069
- user: r,
1070
- profile: f,
1071
- starPower: z,
1072
- onOpenCreationStudio: d
1065
+ const ft = ({
1066
+ isOpen: d,
1067
+ onClose: p,
1068
+ user: i,
1069
+ profile: g,
1070
+ starPower: S,
1071
+ onOpenCreationStudio: h
1073
1072
  }) => {
1074
- var fe;
1075
- const { t: i, lang: x } = Y(), [p, M] = h("profile"), [y, D] = h([]), [L, P] = h(!1), [A, $] = h([]), [T, u] = h(!1), [k, I] = h(null), [R, n] = h([]), [s, v] = h(!1), [l, c] = h(null), [C, O] = h([]), [o, j] = h(null), [_, ce] = h(!1), de = B(async () => {
1076
- u(!0);
1073
+ const { t: r, lang: m } = J(), [x, W] = c("profile"), [N, M] = c([]), [j, P] = c(!1), [T, R] = c([]), [E, w] = c(!1), [v, z] = c(null), [A, n] = c([]), [s, k] = c(!1), [l, f] = c(null), [C, F] = c([]), [o, L] = c(null), [re, ce] = c(!1), de = O(async () => {
1074
+ w(!0);
1077
1075
  try {
1078
- const a = await E("/creators");
1079
- a != null && a.creators && $(a.creators);
1076
+ const a = await I("/creators");
1077
+ a?.creators && R(a.creators);
1080
1078
  } catch (a) {
1081
1079
  console.error("Creators fetch error:", a);
1082
1080
  } finally {
1083
- u(!1);
1081
+ w(!1);
1084
1082
  }
1085
- }, []), le = B(async (a) => {
1086
- v(!0);
1083
+ }, []), le = O(async (a) => {
1084
+ k(!0);
1087
1085
  try {
1088
- const w = await E(`/creators/${encodeURIComponent(a)}/works`);
1089
- w != null && w.works && n(w.works);
1090
- } catch (w) {
1091
- console.error("Creator works error:", w);
1086
+ const y = await I(`/creators/${encodeURIComponent(a)}/works`);
1087
+ y?.works && n(y.works);
1088
+ } catch (y) {
1089
+ console.error("Creator works error:", y);
1092
1090
  } finally {
1093
- v(!1);
1091
+ k(!1);
1094
1092
  }
1095
- }, []), X = B(async () => {
1093
+ }, []), K = O(async () => {
1096
1094
  P(!0);
1097
1095
  try {
1098
- const a = await E("/shared-works");
1099
- if (a != null && a.works) {
1100
- const w = r ? a.works.filter((S) => {
1101
- var F;
1102
- return S.userName === (((F = r.email) == null ? void 0 : F.split("@")[0]) || "") || S.userId === r.id;
1103
- }) : a.works;
1104
- D(w);
1096
+ const a = await I("/shared-works");
1097
+ if (a?.works) {
1098
+ const y = i ? a.works.filter(($) => $.userName === (i.email?.split("@")[0] || "") || $.userId === i.id) : a.works;
1099
+ M(y);
1105
1100
  }
1106
1101
  } catch (a) {
1107
1102
  console.error("IP Matrix fetch error:", a);
1108
1103
  } finally {
1109
1104
  P(!1);
1110
1105
  }
1111
- }, [r]), Le = B(async (a) => {
1112
- var w;
1113
- if (r) {
1114
- c(a.workId);
1106
+ }, [i]), je = O(async (a) => {
1107
+ if (i) {
1108
+ f(a.workId);
1115
1109
  try {
1116
- const S = await E("/works/fork", {
1110
+ (await I("/works/fork", {
1117
1111
  method: "POST",
1118
1112
  headers: { "Content-Type": "application/json" },
1119
1113
  body: JSON.stringify({
1120
1114
  originalWorkId: a.workId,
1121
1115
  originalAuthor: a.userName,
1122
- userId: r.id,
1123
- userName: ((w = r.email) == null ? void 0 : w.split("@")[0]) || "User",
1124
- title: `${a.title} (${x === "zh" ? "改编" : "Remix"})`,
1116
+ userId: i.id,
1117
+ userName: i.email?.split("@")[0] || "User",
1118
+ title: `${a.title} (${m === "zh" ? "改编" : "Remix"})`,
1125
1119
  theme: a.theme,
1126
1120
  lyrics: a.lyrics
1127
1121
  })
1128
- });
1129
- S != null && S.success && (X(), k && le(k), E(`/achievements/${r.id}/track`, {
1122
+ }))?.success && (K(), v && le(v), I(`/achievements/${i.id}/track`, {
1130
1123
  method: "POST",
1131
1124
  headers: { "Content-Type": "application/json" },
1132
1125
  body: JSON.stringify({ action: "create_work" })
1133
1126
  }).catch(() => {
1134
- }), a.userId && E(`/achievements/${a.userId}/track`, {
1127
+ }), a.userId && I(`/achievements/${a.userId}/track`, {
1135
1128
  method: "POST",
1136
1129
  headers: { "Content-Type": "application/json" },
1137
1130
  body: JSON.stringify({ action: "receive_fork" })
1138
1131
  }).catch(() => {
1139
1132
  }));
1140
- } catch (S) {
1141
- console.error("Fork error:", S);
1133
+ } catch (y) {
1134
+ console.error("Fork error:", y);
1142
1135
  } finally {
1143
- c(null);
1136
+ f(null);
1144
1137
  }
1145
1138
  }
1146
- }, [r, X, k, le, x]), Te = B(async (a) => {
1139
+ }, [i, K, v, le, m]), Le = O(async (a) => {
1147
1140
  ce(!0);
1148
1141
  try {
1149
- const w = await E(`/works/${a}/forks`);
1150
- w != null && w.forks && O(w.forks);
1151
- } catch (w) {
1152
- console.error("Fork chain error:", w), O([]);
1142
+ const y = await I(`/works/${a}/forks`);
1143
+ y?.forks && F(y.forks);
1144
+ } catch (y) {
1145
+ console.error("Fork chain error:", y), F([]);
1153
1146
  } finally {
1154
1147
  ce(!1);
1155
1148
  }
1156
1149
  }, []);
1157
- K(() => {
1158
- m && (X(), p === "explore" && de());
1159
- }, [m, p, X, de]);
1160
- const ee = y.reduce((a, w) => a + (w.likes || 0), 0), he = y.reduce((a, w) => a + (w.plays || 0), 0), re = lt(y.length), me = (f == null ? void 0 : f.displayName) || ((fe = r == null ? void 0 : r.email) == null ? void 0 : fe.split("@")[0]) || "Creator", xe = f != null && f.joinedAt ? new Date(f.joinedAt).toLocaleDateString(x === "zh" ? "zh-CN" : "en-US", { year: "numeric", month: "short" }) : "", pe = Math.round(
1161
- y.length * 100 + ee * 50 + he * 10 + z * 0.5
1162
- ), be = y.length > 0 ? Math.round((ee + he) / Math.max(y.length, 1) * 10) / 10 : 0;
1163
- return /* @__PURE__ */ e(W, { children: m && /* @__PURE__ */ t(Z, { children: [
1150
+ H(() => {
1151
+ d && (K(), x === "explore" && de());
1152
+ }, [d, x, K, de]);
1153
+ const Q = N.reduce((a, y) => a + (y.likes || 0), 0), he = N.reduce((a, y) => a + (y.plays || 0), 0), ie = at(N.length), me = g?.displayName || i?.email?.split("@")[0] || "Creator", xe = g?.joinedAt ? new Date(g.joinedAt).toLocaleDateString(m === "zh" ? "zh-CN" : "en-US", { year: "numeric", month: "short" }) : "", pe = Math.round(
1154
+ N.length * 100 + Q * 50 + he * 10 + S * 0.5
1155
+ ), be = N.length > 0 ? Math.round((Q + he) / Math.max(N.length, 1) * 10) / 10 : 0;
1156
+ return /* @__PURE__ */ e(D, { children: d && /* @__PURE__ */ t(B, { children: [
1164
1157
  /* @__PURE__ */ e(
1165
- g.div,
1158
+ b.div,
1166
1159
  {
1167
1160
  initial: { opacity: 0 },
1168
1161
  animate: { opacity: 1 },
1169
1162
  exit: { opacity: 0 },
1170
1163
  className: "fixed inset-0 z-[60] bg-black/50 backdrop-blur-sm",
1171
- onClick: b
1164
+ onClick: p
1172
1165
  }
1173
1166
  ),
1174
1167
  /* @__PURE__ */ t(
1175
- g.div,
1168
+ b.div,
1176
1169
  {
1177
1170
  initial: { x: "100%", opacity: 0 },
1178
1171
  animate: { x: 0, opacity: 1 },
@@ -1182,26 +1175,26 @@ const wt = ({
1182
1175
  children: [
1183
1176
  /* @__PURE__ */ t("div", { className: "flex items-center justify-between p-5 border-b border-white/[0.06] flex-shrink-0", children: [
1184
1177
  /* @__PURE__ */ t("div", { className: "flex items-center gap-3", children: [
1185
- /* @__PURE__ */ e("div", { className: "w-9 h-9 rounded-xl bg-gradient-to-tr from-indigo-500/20 to-pink-500/20 border border-white/10 flex items-center justify-center", children: /* @__PURE__ */ e(G, { className: "w-4.5 h-4.5 text-indigo-400" }) }),
1178
+ /* @__PURE__ */ e("div", { className: "w-9 h-9 rounded-xl bg-gradient-to-tr from-indigo-500/20 to-pink-500/20 border border-white/10 flex items-center justify-center", children: /* @__PURE__ */ e(_, { className: "w-4.5 h-4.5 text-indigo-400" }) }),
1186
1179
  /* @__PURE__ */ t("div", { children: [
1187
- /* @__PURE__ */ e("h3", { className: "text-white font-semibold text-sm leading-tight", children: i("ipmatrix.title") }),
1188
- /* @__PURE__ */ e("p", { className: "text-white/30 text-xs", children: i("ipmatrix.subtitle") })
1180
+ /* @__PURE__ */ e("h3", { className: "text-white font-semibold text-sm leading-tight", children: r("ipmatrix.title") }),
1181
+ /* @__PURE__ */ e("p", { className: "text-white/30 text-xs", children: r("ipmatrix.subtitle") })
1189
1182
  ] })
1190
1183
  ] }),
1191
- /* @__PURE__ */ e("button", { onClick: b, className: "p-2 rounded-lg text-white/40 hover:text-white/70 hover:bg-white/5 transition-colors", children: /* @__PURE__ */ e(Q, { className: "w-4 h-4" }) })
1184
+ /* @__PURE__ */ e("button", { onClick: p, className: "p-2 rounded-lg text-white/40 hover:text-white/70 hover:bg-white/5 transition-colors", children: /* @__PURE__ */ e(V, { className: "w-4 h-4" }) })
1192
1185
  ] }),
1193
1186
  /* @__PURE__ */ e("div", { className: "flex p-2 mx-4 mt-3 bg-white/[0.03] rounded-xl border border-white/[0.06]", children: [
1194
- { id: "profile", label: i("ipmatrix.creatorProfile"), icon: U },
1195
- { id: "portfolio", label: i("ipmatrix.portfolio"), icon: q },
1196
- { id: "explore", label: i("ipmatrix.explore"), icon: ye },
1197
- { id: "analytics", label: i("ipmatrix.analytics"), icon: Ge }
1187
+ { id: "profile", label: r("ipmatrix.creatorProfile"), icon: Z },
1188
+ { id: "portfolio", label: r("ipmatrix.portfolio"), icon: G },
1189
+ { id: "explore", label: r("ipmatrix.explore"), icon: ue },
1190
+ { id: "analytics", label: r("ipmatrix.analytics"), icon: _e }
1198
1191
  ].map((a) => /* @__PURE__ */ t(
1199
1192
  "button",
1200
1193
  {
1201
- onClick: () => M(a.id),
1202
- className: N(
1194
+ onClick: () => W(a.id),
1195
+ className: u(
1203
1196
  "flex-1 py-2 px-2 rounded-lg text-[11px] font-medium transition-all flex items-center justify-center gap-1",
1204
- p === a.id ? "bg-indigo-500/20 text-indigo-300 border border-indigo-500/20" : "text-white/40 hover:text-white/60"
1197
+ x === a.id ? "bg-indigo-500/20 text-indigo-300 border border-indigo-500/20" : "text-white/40 hover:text-white/60"
1205
1198
  ),
1206
1199
  children: [
1207
1200
  /* @__PURE__ */ e(a.icon, { className: "w-3 h-3" }),
@@ -1210,8 +1203,8 @@ const wt = ({
1210
1203
  },
1211
1204
  a.id
1212
1205
  )) }),
1213
- r ? /* @__PURE__ */ t("div", { className: "flex-1 overflow-y-auto p-4", style: { scrollbarWidth: "none" }, children: [
1214
- p === "profile" && /* @__PURE__ */ t(g.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, className: "space-y-4", children: [
1206
+ i ? /* @__PURE__ */ t("div", { className: "flex-1 overflow-y-auto p-4", style: { scrollbarWidth: "none" }, children: [
1207
+ x === "profile" && /* @__PURE__ */ t(b.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, className: "space-y-4", children: [
1215
1208
  /* @__PURE__ */ t("div", { className: "p-5 rounded-2xl bg-gradient-to-br from-indigo-500/10 via-purple-500/5 to-pink-500/10 border border-indigo-500/15 relative overflow-hidden", children: [
1216
1209
  /* @__PURE__ */ e("div", { className: "absolute -top-8 -right-8 w-24 h-24 bg-indigo-500/10 rounded-full blur-2xl" }),
1217
1210
  /* @__PURE__ */ t("div", { className: "relative flex items-center gap-4", children: [
@@ -1219,12 +1212,12 @@ const wt = ({
1219
1212
  /* @__PURE__ */ t("div", { className: "flex-1 min-w-0", children: [
1220
1213
  /* @__PURE__ */ e("h3", { className: "text-lg font-bold text-white truncate", children: me }),
1221
1214
  /* @__PURE__ */ t("div", { className: "flex items-center gap-2 mt-1", children: [
1222
- /* @__PURE__ */ e("span", { className: "text-xs", children: re.icon }),
1223
- /* @__PURE__ */ e("span", { className: "text-xs text-indigo-300/70", children: x === "zh" ? re.label : re.labelEn })
1215
+ /* @__PURE__ */ e("span", { className: "text-xs", children: ie.icon }),
1216
+ /* @__PURE__ */ e("span", { className: "text-xs text-indigo-300/70", children: m === "zh" ? ie.label : ie.labelEn })
1224
1217
  ] }),
1225
1218
  xe && /* @__PURE__ */ t("p", { className: "text-[10px] text-white/20 mt-1 flex items-center gap-1", children: [
1226
- /* @__PURE__ */ e(ze, { className: "w-2.5 h-2.5" }),
1227
- i("ipmatrix.memberSince"),
1219
+ /* @__PURE__ */ e(Ce, { className: "w-2.5 h-2.5" }),
1220
+ r("ipmatrix.memberSince"),
1228
1221
  " ",
1229
1222
  xe
1230
1223
  ] })
@@ -1233,98 +1226,97 @@ const wt = ({
1233
1226
  ] }),
1234
1227
  /* @__PURE__ */ t("div", { className: "grid grid-cols-3 gap-2", children: [
1235
1228
  /* @__PURE__ */ t("div", { className: "p-3 rounded-xl bg-white/[0.02] border border-white/[0.06] text-center", children: [
1236
- /* @__PURE__ */ e(q, { className: "w-4 h-4 text-indigo-400 mx-auto mb-1" }),
1237
- /* @__PURE__ */ e("p", { className: "text-lg font-bold text-white font-mono tabular-nums", children: y.length }),
1238
- /* @__PURE__ */ e("p", { className: "text-[10px] text-white/25", children: i("ipmatrix.totalWorks") })
1229
+ /* @__PURE__ */ e(G, { className: "w-4 h-4 text-indigo-400 mx-auto mb-1" }),
1230
+ /* @__PURE__ */ e("p", { className: "text-lg font-bold text-white font-mono tabular-nums", children: N.length }),
1231
+ /* @__PURE__ */ e("p", { className: "text-[10px] text-white/25", children: r("ipmatrix.totalWorks") })
1239
1232
  ] }),
1240
1233
  /* @__PURE__ */ t("div", { className: "p-3 rounded-xl bg-white/[0.02] border border-white/[0.06] text-center", children: [
1241
- /* @__PURE__ */ e(H, { className: "w-4 h-4 text-pink-400 mx-auto mb-1" }),
1242
- /* @__PURE__ */ e("p", { className: "text-lg font-bold text-white font-mono tabular-nums", children: ee }),
1243
- /* @__PURE__ */ e("p", { className: "text-[10px] text-white/25", children: i("ipmatrix.totalLikes") })
1234
+ /* @__PURE__ */ e(Y, { className: "w-4 h-4 text-pink-400 mx-auto mb-1" }),
1235
+ /* @__PURE__ */ e("p", { className: "text-lg font-bold text-white font-mono tabular-nums", children: Q }),
1236
+ /* @__PURE__ */ e("p", { className: "text-[10px] text-white/25", children: r("ipmatrix.totalLikes") })
1244
1237
  ] }),
1245
1238
  /* @__PURE__ */ t("div", { className: "p-3 rounded-xl bg-white/[0.02] border border-white/[0.06] text-center", children: [
1246
- /* @__PURE__ */ e(U, { className: "w-4 h-4 text-yellow-400 mx-auto mb-1" }),
1247
- /* @__PURE__ */ e("p", { className: "text-lg font-bold text-white font-mono tabular-nums", children: z }),
1239
+ /* @__PURE__ */ e(Z, { className: "w-4 h-4 text-yellow-400 mx-auto mb-1" }),
1240
+ /* @__PURE__ */ e("p", { className: "text-lg font-bold text-white font-mono tabular-nums", children: S }),
1248
1241
  /* @__PURE__ */ e("p", { className: "text-[10px] text-white/25", children: "SP" })
1249
1242
  ] })
1250
1243
  ] }),
1251
1244
  /* @__PURE__ */ e("div", { className: "p-3 rounded-xl bg-gradient-to-r from-purple-500/5 to-indigo-500/5 border border-purple-500/10", children: /* @__PURE__ */ t("div", { className: "flex items-center justify-between", children: [
1252
1245
  /* @__PURE__ */ t("div", { children: [
1253
- /* @__PURE__ */ e("p", { className: "text-xs text-white/40", children: i("ipmatrix.influence") }),
1246
+ /* @__PURE__ */ e("p", { className: "text-xs text-white/40", children: r("ipmatrix.influence") }),
1254
1247
  /* @__PURE__ */ e("p", { className: "text-2xl font-bold text-transparent bg-clip-text bg-gradient-to-r from-purple-300 to-indigo-300 font-mono tabular-nums", children: pe.toLocaleString() })
1255
1248
  ] }),
1256
1249
  /* @__PURE__ */ t("div", { className: "text-right", children: [
1257
- /* @__PURE__ */ e("p", { className: "text-xs text-white/40", children: i("ipmatrix.engagementRate") }),
1250
+ /* @__PURE__ */ e("p", { className: "text-xs text-white/40", children: r("ipmatrix.engagementRate") }),
1258
1251
  /* @__PURE__ */ e("p", { className: "text-lg font-bold text-indigo-300 font-mono tabular-nums", children: be })
1259
1252
  ] })
1260
1253
  ] }) })
1261
1254
  ] }),
1262
- p === "portfolio" && /* @__PURE__ */ t(g.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, className: "space-y-3", children: [
1255
+ x === "portfolio" && /* @__PURE__ */ t(b.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, className: "space-y-3", children: [
1263
1256
  /* @__PURE__ */ t("div", { className: "flex items-center justify-between mb-2", children: [
1264
1257
  /* @__PURE__ */ t("h4", { className: "text-xs font-medium text-white/40 uppercase tracking-wider", children: [
1265
- i("ipmatrix.sharedWorks"),
1258
+ r("ipmatrix.sharedWorks"),
1266
1259
  " (",
1267
- y.length,
1260
+ N.length,
1268
1261
  ")"
1269
1262
  ] }),
1270
1263
  /* @__PURE__ */ t(
1271
1264
  "button",
1272
1265
  {
1273
1266
  onClick: () => {
1274
- b(), d();
1267
+ p(), h();
1275
1268
  },
1276
1269
  className: "flex items-center gap-1 text-[10px] text-indigo-400/60 hover:text-indigo-400 transition-colors",
1277
1270
  children: [
1278
- /* @__PURE__ */ e(Ye, { className: "w-3 h-3" }),
1279
- x === "zh" ? "创作工坊" : "Studio"
1271
+ /* @__PURE__ */ e(Je, { className: "w-3 h-3" }),
1272
+ m === "zh" ? "创作工坊" : "Studio"
1280
1273
  ]
1281
1274
  }
1282
1275
  )
1283
1276
  ] }),
1284
- L ? /* @__PURE__ */ e("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e("div", { className: "w-6 h-6 border-2 border-indigo-500/30 border-t-indigo-500 rounded-full animate-spin" }) }) : y.length === 0 ? /* @__PURE__ */ t("div", { className: "text-center py-12", children: [
1285
- /* @__PURE__ */ e(q, { className: "w-10 h-10 text-white/10 mx-auto mb-3" }),
1286
- /* @__PURE__ */ e("p", { className: "text-white/30 text-sm", children: i("ipmatrix.noWorks") }),
1287
- /* @__PURE__ */ e("p", { className: "text-white/15 text-xs mt-1", children: i("ipmatrix.startCreating") }),
1277
+ j ? /* @__PURE__ */ e("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e("div", { className: "w-6 h-6 border-2 border-indigo-500/30 border-t-indigo-500 rounded-full animate-spin" }) }) : N.length === 0 ? /* @__PURE__ */ t("div", { className: "text-center py-12", children: [
1278
+ /* @__PURE__ */ e(G, { className: "w-10 h-10 text-white/10 mx-auto mb-3" }),
1279
+ /* @__PURE__ */ e("p", { className: "text-white/30 text-sm", children: r("ipmatrix.noWorks") }),
1280
+ /* @__PURE__ */ e("p", { className: "text-white/15 text-xs mt-1", children: r("ipmatrix.startCreating") }),
1288
1281
  /* @__PURE__ */ e(
1289
1282
  "button",
1290
1283
  {
1291
1284
  onClick: () => {
1292
- b(), d();
1285
+ p(), h();
1293
1286
  },
1294
1287
  className: "mt-4 px-4 py-2 rounded-xl bg-indigo-500/20 text-indigo-300 text-xs font-medium border border-indigo-500/20 hover:bg-indigo-500/30 transition-colors",
1295
- children: x === "zh" ? "开始创作" : "Start Creating"
1288
+ children: m === "zh" ? "开始创作" : "Start Creating"
1296
1289
  }
1297
1290
  )
1298
- ] }) : /* @__PURE__ */ e("div", { className: "space-y-2", children: y.map((a) => {
1299
- var F;
1300
- const w = ae[a.theme] || ae.happy, S = it[a.theme] || "🎵";
1291
+ ] }) : /* @__PURE__ */ e("div", { className: "space-y-2", children: N.map((a) => {
1292
+ const y = te[a.theme] || te.happy, $ = tt[a.theme] || "🎵";
1301
1293
  return /* @__PURE__ */ e(
1302
- g.div,
1294
+ b.div,
1303
1295
  {
1304
1296
  initial: { opacity: 0, y: 10 },
1305
1297
  animate: { opacity: 1, y: 0 },
1306
- className: N(
1298
+ className: u(
1307
1299
  "p-3 rounded-xl bg-gradient-to-r border transition-colors hover:brightness-110",
1308
- w
1300
+ y
1309
1301
  ),
1310
1302
  children: /* @__PURE__ */ t("div", { className: "flex items-start gap-3", children: [
1311
- /* @__PURE__ */ e("div", { className: "w-10 h-10 rounded-lg bg-white/10 flex items-center justify-center text-lg flex-shrink-0", children: S }),
1303
+ /* @__PURE__ */ e("div", { className: "w-10 h-10 rounded-lg bg-white/10 flex items-center justify-center text-lg flex-shrink-0", children: $ }),
1312
1304
  /* @__PURE__ */ t("div", { className: "flex-1 min-w-0", children: [
1313
1305
  /* @__PURE__ */ e("p", { className: "text-sm font-medium text-white truncate", children: a.title }),
1314
1306
  /* @__PURE__ */ t("p", { className: "text-[10px] text-white/25 mt-0.5", children: [
1315
- a.mode === "quick" ? x === "zh" ? "极简模式" : "Quick" : a.mode === "master" ? x === "zh" ? "大师模式" : "Master" : a.mode,
1307
+ a.mode === "quick" ? m === "zh" ? "极简模式" : "Quick" : a.mode === "master" ? m === "zh" ? "大师模式" : "Master" : a.mode,
1316
1308
  " · ",
1317
- ((F = a.lyrics) == null ? void 0 : F.length) || 0,
1309
+ a.lyrics?.length || 0,
1318
1310
  " ",
1319
- x === "zh" ? "行歌词" : "lines"
1311
+ m === "zh" ? "行歌词" : "lines"
1320
1312
  ] }),
1321
1313
  /* @__PURE__ */ t("div", { className: "flex items-center gap-3 mt-1.5", children: [
1322
1314
  /* @__PURE__ */ t("span", { className: "flex items-center gap-0.5 text-[10px] text-white/25", children: [
1323
- /* @__PURE__ */ e(H, { className: "w-2.5 h-2.5" }),
1315
+ /* @__PURE__ */ e(Y, { className: "w-2.5 h-2.5" }),
1324
1316
  " ",
1325
1317
  a.likes || 0
1326
1318
  ] }),
1327
- /* @__PURE__ */ e("span", { className: "text-[10px] text-white/15", children: new Date(a.createdAt).toLocaleDateString(x === "zh" ? "zh-CN" : "en-US", { month: "short", day: "numeric" }) })
1319
+ /* @__PURE__ */ e("span", { className: "text-[10px] text-white/15", children: new Date(a.createdAt).toLocaleDateString(m === "zh" ? "zh-CN" : "en-US", { month: "short", day: "numeric" }) })
1328
1320
  ] })
1329
1321
  ] })
1330
1322
  ] })
@@ -1333,92 +1325,91 @@ const wt = ({
1333
1325
  );
1334
1326
  }) })
1335
1327
  ] }),
1336
- p === "analytics" && /* @__PURE__ */ t(g.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, className: "space-y-4", children: [
1328
+ x === "analytics" && /* @__PURE__ */ t(b.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, className: "space-y-4", children: [
1337
1329
  /* @__PURE__ */ t("div", { className: "p-4 rounded-xl bg-white/[0.02] border border-white/[0.06]", children: [
1338
- /* @__PURE__ */ e("h4", { className: "text-xs text-white/40 mb-3", children: i("ipmatrix.creatorLevel") }),
1339
- /* @__PURE__ */ e("div", { className: "space-y-2", children: ie.map((a, w) => {
1340
- var ge;
1341
- const S = y.length >= a.min, F = ((ge = ie[w + 1]) == null ? void 0 : ge.min) || a.min + 10, Ae = S ? Math.min((y.length - a.min) / (F - a.min) * 100, 100) : 0;
1342
- return /* @__PURE__ */ t("div", { className: N("flex items-center gap-2", !S && "opacity-30"), children: [
1330
+ /* @__PURE__ */ e("h4", { className: "text-xs text-white/40 mb-3", children: r("ipmatrix.creatorLevel") }),
1331
+ /* @__PURE__ */ e("div", { className: "space-y-2", children: ae.map((a, y) => {
1332
+ const $ = N.length >= a.min, X = ae[y + 1]?.min || a.min + 10, Ee = $ ? Math.min((N.length - a.min) / (X - a.min) * 100, 100) : 0;
1333
+ return /* @__PURE__ */ t("div", { className: u("flex items-center gap-2", !$ && "opacity-30"), children: [
1343
1334
  /* @__PURE__ */ e("span", { className: "text-sm w-6 text-center", children: a.icon }),
1344
1335
  /* @__PURE__ */ t("div", { className: "flex-1", children: [
1345
1336
  /* @__PURE__ */ t("div", { className: "flex items-center justify-between mb-0.5", children: [
1346
- /* @__PURE__ */ e("span", { className: "text-[11px] text-white/60", children: x === "zh" ? a.label : a.labelEn }),
1337
+ /* @__PURE__ */ e("span", { className: "text-[11px] text-white/60", children: m === "zh" ? a.label : a.labelEn }),
1347
1338
  /* @__PURE__ */ t("span", { className: "text-[9px] text-white/20 font-mono tabular-nums", children: [
1348
1339
  a.min,
1349
1340
  "+"
1350
1341
  ] })
1351
1342
  ] }),
1352
- /* @__PURE__ */ e("div", { className: "h-1 rounded-full bg-white/[0.06] overflow-hidden", children: S && /* @__PURE__ */ e(
1353
- g.div,
1343
+ /* @__PURE__ */ e("div", { className: "h-1 rounded-full bg-white/[0.06] overflow-hidden", children: $ && /* @__PURE__ */ e(
1344
+ b.div,
1354
1345
  {
1355
1346
  initial: { width: 0 },
1356
- animate: { width: `${Ae}%` },
1347
+ animate: { width: `${Ee}%` },
1357
1348
  transition: { duration: 0.6 },
1358
1349
  className: "h-full rounded-full bg-gradient-to-r from-indigo-400 to-purple-500"
1359
1350
  }
1360
1351
  ) })
1361
1352
  ] }),
1362
- S && /* @__PURE__ */ e(Se, { className: "w-3 h-3 text-indigo-400" })
1353
+ $ && /* @__PURE__ */ e(ke, { className: "w-3 h-3 text-indigo-400" })
1363
1354
  ] }, a.min);
1364
1355
  }) })
1365
1356
  ] }),
1366
1357
  /* @__PURE__ */ t("div", { className: "grid grid-cols-2 gap-2", children: [
1367
1358
  /* @__PURE__ */ t("div", { className: "p-3 rounded-xl bg-gradient-to-br from-indigo-500/5 to-purple-500/5 border border-indigo-500/10", children: [
1368
- /* @__PURE__ */ e("p", { className: "text-[10px] text-white/25 mb-1", children: i("ipmatrix.influence") }),
1359
+ /* @__PURE__ */ e("p", { className: "text-[10px] text-white/25 mb-1", children: r("ipmatrix.influence") }),
1369
1360
  /* @__PURE__ */ e("p", { className: "text-xl font-bold text-transparent bg-clip-text bg-gradient-to-r from-indigo-300 to-purple-300 font-mono tabular-nums", children: pe.toLocaleString() })
1370
1361
  ] }),
1371
1362
  /* @__PURE__ */ t("div", { className: "p-3 rounded-xl bg-gradient-to-br from-pink-500/5 to-rose-500/5 border border-pink-500/10", children: [
1372
- /* @__PURE__ */ e("p", { className: "text-[10px] text-white/25 mb-1", children: i("ipmatrix.engagementRate") }),
1363
+ /* @__PURE__ */ e("p", { className: "text-[10px] text-white/25 mb-1", children: r("ipmatrix.engagementRate") }),
1373
1364
  /* @__PURE__ */ e("p", { className: "text-xl font-bold text-transparent bg-clip-text bg-gradient-to-r from-pink-300 to-rose-300 font-mono tabular-nums", children: be })
1374
1365
  ] }),
1375
1366
  /* @__PURE__ */ t("div", { className: "p-3 rounded-xl bg-gradient-to-br from-yellow-500/5 to-amber-500/5 border border-yellow-500/10", children: [
1376
- /* @__PURE__ */ e("p", { className: "text-[10px] text-white/25 mb-1", children: i("ipmatrix.totalLikes") }),
1377
- /* @__PURE__ */ e("p", { className: "text-xl font-bold text-yellow-300 font-mono tabular-nums", children: ee })
1367
+ /* @__PURE__ */ e("p", { className: "text-[10px] text-white/25 mb-1", children: r("ipmatrix.totalLikes") }),
1368
+ /* @__PURE__ */ e("p", { className: "text-xl font-bold text-yellow-300 font-mono tabular-nums", children: Q })
1378
1369
  ] }),
1379
1370
  /* @__PURE__ */ t("div", { className: "p-3 rounded-xl bg-gradient-to-br from-cyan-500/5 to-teal-500/5 border border-cyan-500/10", children: [
1380
- /* @__PURE__ */ e("p", { className: "text-[10px] text-white/25 mb-1", children: i("ipmatrix.totalWorks") }),
1381
- /* @__PURE__ */ e("p", { className: "text-xl font-bold text-cyan-300 font-mono tabular-nums", children: y.length })
1371
+ /* @__PURE__ */ e("p", { className: "text-[10px] text-white/25 mb-1", children: r("ipmatrix.totalWorks") }),
1372
+ /* @__PURE__ */ e("p", { className: "text-xl font-bold text-cyan-300 font-mono tabular-nums", children: N.length })
1382
1373
  ] })
1383
1374
  ] })
1384
1375
  ] }),
1385
- p === "explore" && /* @__PURE__ */ e(g.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, className: "space-y-4", children: k ? /* @__PURE__ */ t(Z, { children: [
1376
+ x === "explore" && /* @__PURE__ */ e(b.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, className: "space-y-4", children: v ? /* @__PURE__ */ t(B, { children: [
1386
1377
  /* @__PURE__ */ t("div", { className: "flex items-center gap-2", children: [
1387
1378
  /* @__PURE__ */ t(
1388
1379
  "button",
1389
1380
  {
1390
1381
  onClick: () => {
1391
- I(null), n([]);
1382
+ z(null), n([]);
1392
1383
  },
1393
1384
  className: "flex items-center gap-1 text-xs text-white/40 hover:text-white/70 transition-colors",
1394
1385
  children: [
1395
- /* @__PURE__ */ e(qe, { className: "w-3.5 h-3.5" }),
1396
- i("ipmatrix.back")
1386
+ /* @__PURE__ */ e(Ge, { className: "w-3.5 h-3.5" }),
1387
+ r("ipmatrix.back")
1397
1388
  ]
1398
1389
  }
1399
1390
  ),
1400
1391
  /* @__PURE__ */ t("span", { className: "text-sm font-semibold text-white/80", children: [
1401
- k,
1402
- i("ipmatrix.creatorPortfolio")
1392
+ v,
1393
+ r("ipmatrix.creatorPortfolio")
1403
1394
  ] })
1404
1395
  ] }),
1405
- s ? /* @__PURE__ */ e("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e("div", { className: "w-6 h-6 border-2 border-indigo-500/30 border-t-indigo-500 rounded-full animate-spin" }) }) : R.length === 0 ? /* @__PURE__ */ t("div", { className: "text-center py-12", children: [
1406
- /* @__PURE__ */ e(q, { className: "w-10 h-10 text-white/10 mx-auto mb-3" }),
1407
- /* @__PURE__ */ e("p", { className: "text-white/30 text-sm", children: i("ipmatrix.noWorks") })
1408
- ] }) : /* @__PURE__ */ e("div", { className: "space-y-2", children: R.map((a) => {
1409
- const w = ae[a.theme] || ae.happy;
1396
+ s ? /* @__PURE__ */ e("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e("div", { className: "w-6 h-6 border-2 border-indigo-500/30 border-t-indigo-500 rounded-full animate-spin" }) }) : A.length === 0 ? /* @__PURE__ */ t("div", { className: "text-center py-12", children: [
1397
+ /* @__PURE__ */ e(G, { className: "w-10 h-10 text-white/10 mx-auto mb-3" }),
1398
+ /* @__PURE__ */ e("p", { className: "text-white/30 text-sm", children: r("ipmatrix.noWorks") })
1399
+ ] }) : /* @__PURE__ */ e("div", { className: "space-y-2", children: A.map((a) => {
1400
+ const y = te[a.theme] || te.happy;
1410
1401
  return /* @__PURE__ */ t("div", { className: "p-3 rounded-xl bg-white/[0.02] border border-white/[0.06] hover:bg-white/[0.04] transition-colors", children: [
1411
1402
  /* @__PURE__ */ t("div", { className: "flex items-start justify-between", children: [
1412
1403
  /* @__PURE__ */ t("div", { className: "min-w-0 flex-1", children: [
1413
1404
  /* @__PURE__ */ e("h4", { className: "text-sm font-medium text-white/80 truncate", children: a.title }),
1414
1405
  /* @__PURE__ */ t("div", { className: "flex items-center gap-2 mt-1", children: [
1415
- /* @__PURE__ */ e("span", { className: N("text-[9px] px-1.5 py-0.5 rounded-full border", w), children: a.theme }),
1416
- /* @__PURE__ */ e("span", { className: "text-[10px] text-white/20", children: new Date(a.createdAt).toLocaleDateString(x === "zh" ? "zh-CN" : "en-US", { month: "short", day: "numeric" }) })
1406
+ /* @__PURE__ */ e("span", { className: u("text-[9px] px-1.5 py-0.5 rounded-full border", y), children: a.theme }),
1407
+ /* @__PURE__ */ e("span", { className: "text-[10px] text-white/20", children: new Date(a.createdAt).toLocaleDateString(m === "zh" ? "zh-CN" : "en-US", { month: "short", day: "numeric" }) })
1417
1408
  ] }),
1418
1409
  a.forkedFrom && /* @__PURE__ */ t("p", { className: "text-[9px] text-purple-400/50 mt-1 flex items-center gap-0.5", children: [
1419
- /* @__PURE__ */ e(ve, { className: "w-2.5 h-2.5" }),
1410
+ /* @__PURE__ */ e(Ne, { className: "w-2.5 h-2.5" }),
1420
1411
  " ",
1421
- i("ipmatrix.forkedFrom"),
1412
+ r("ipmatrix.forkedFrom"),
1422
1413
  " ",
1423
1414
  a.forkedFrom.author
1424
1415
  ] }),
@@ -1427,12 +1418,12 @@ const wt = ({
1427
1418
  /* @__PURE__ */ t("div", { className: "flex flex-col items-end gap-1.5 ml-2 flex-shrink-0", children: [
1428
1419
  /* @__PURE__ */ t("div", { className: "flex items-center gap-2", children: [
1429
1420
  /* @__PURE__ */ t("span", { className: "flex items-center gap-0.5 text-[10px] text-pink-400/50", children: [
1430
- /* @__PURE__ */ e(H, { className: "w-2.5 h-2.5" }),
1421
+ /* @__PURE__ */ e(Y, { className: "w-2.5 h-2.5" }),
1431
1422
  " ",
1432
1423
  a.likes || 0
1433
1424
  ] }),
1434
1425
  /* @__PURE__ */ t("span", { className: "flex items-center gap-0.5 text-[10px] text-white/20", children: [
1435
- /* @__PURE__ */ e(Ie, { className: "w-2.5 h-2.5" }),
1426
+ /* @__PURE__ */ e(Se, { className: "w-2.5 h-2.5" }),
1436
1427
  " ",
1437
1428
  a.plays || 0
1438
1429
  ] })
@@ -1441,13 +1432,13 @@ const wt = ({
1441
1432
  /* @__PURE__ */ t(
1442
1433
  "button",
1443
1434
  {
1444
- onClick: () => Le(a),
1445
- disabled: l === a.workId || !r,
1435
+ onClick: () => je(a),
1436
+ disabled: l === a.workId || !i,
1446
1437
  className: "flex items-center gap-0.5 px-1.5 py-0.5 rounded text-[9px] bg-purple-500/10 border border-purple-500/15 text-purple-300/70 hover:bg-purple-500/20 hover:text-purple-200 transition-all disabled:opacity-30",
1447
- title: i("ipmatrix.forkWork"),
1438
+ title: r("ipmatrix.forkWork"),
1448
1439
  children: [
1449
- /* @__PURE__ */ e(ve, { className: "w-2.5 h-2.5" }),
1450
- l === a.workId ? i("ipmatrix.forking") : i("ipmatrix.forkWork")
1440
+ /* @__PURE__ */ e(Ne, { className: "w-2.5 h-2.5" }),
1441
+ l === a.workId ? r("ipmatrix.forking") : r("ipmatrix.forkWork")
1451
1442
  ]
1452
1443
  }
1453
1444
  ),
@@ -1455,11 +1446,11 @@ const wt = ({
1455
1446
  "button",
1456
1447
  {
1457
1448
  onClick: () => {
1458
- o === a.workId ? (j(null), O([])) : (j(a.workId), Te(a.workId));
1449
+ o === a.workId ? (L(null), F([])) : (L(a.workId), Le(a.workId));
1459
1450
  },
1460
1451
  className: "flex items-center gap-0.5 px-1.5 py-0.5 rounded text-[9px] bg-white/[0.04] border border-white/[0.08] text-white/30 hover:text-white/50 transition-all",
1461
- title: i("ipmatrix.forkTree"),
1462
- children: /* @__PURE__ */ e(ke, { className: "w-2.5 h-2.5" })
1452
+ title: r("ipmatrix.forkTree"),
1453
+ children: /* @__PURE__ */ e(ye, { className: "w-2.5 h-2.5" })
1463
1454
  }
1464
1455
  )
1465
1456
  ] })
@@ -1467,33 +1458,33 @@ const wt = ({
1467
1458
  ] }),
1468
1459
  o === a.workId && /* @__PURE__ */ t("div", { className: "mt-2 pt-2 border-t border-white/[0.06]", children: [
1469
1460
  /* @__PURE__ */ t("p", { className: "text-[9px] text-white/30 mb-1.5 flex items-center gap-1", children: [
1470
- /* @__PURE__ */ e(ke, { className: "w-2.5 h-2.5" }),
1461
+ /* @__PURE__ */ e(ye, { className: "w-2.5 h-2.5" }),
1471
1462
  " ",
1472
- i("ipmatrix.forkTree")
1463
+ r("ipmatrix.forkTree")
1473
1464
  ] }),
1474
- _ ? /* @__PURE__ */ e("div", { className: "flex justify-center py-2", children: /* @__PURE__ */ e("div", { className: "w-4 h-4 border border-purple-500/30 border-t-purple-500 rounded-full animate-spin" }) }) : C.length === 0 ? /* @__PURE__ */ e("p", { className: "text-[9px] text-white/15 text-center py-1", children: x === "zh" ? "暂无改编分支" : "No forks yet" }) : /* @__PURE__ */ e("div", { className: "space-y-1 pl-2", children: C.map((S, F) => /* @__PURE__ */ t("div", { className: "flex items-center gap-1.5 text-[9px]", children: [
1465
+ re ? /* @__PURE__ */ e("div", { className: "flex justify-center py-2", children: /* @__PURE__ */ e("div", { className: "w-4 h-4 border border-purple-500/30 border-t-purple-500 rounded-full animate-spin" }) }) : C.length === 0 ? /* @__PURE__ */ e("p", { className: "text-[9px] text-white/15 text-center py-1", children: m === "zh" ? "暂无改编分支" : "No forks yet" }) : /* @__PURE__ */ e("div", { className: "space-y-1 pl-2", children: C.map(($, X) => /* @__PURE__ */ t("div", { className: "flex items-center gap-1.5 text-[9px]", children: [
1475
1466
  /* @__PURE__ */ t("div", { className: "flex flex-col items-center w-3", children: [
1476
- F < C.length - 1 && /* @__PURE__ */ e("div", { className: "w-px h-3 bg-purple-500/20" }),
1467
+ X < C.length - 1 && /* @__PURE__ */ e("div", { className: "w-px h-3 bg-purple-500/20" }),
1477
1468
  /* @__PURE__ */ e("div", { className: "w-1.5 h-1.5 rounded-full bg-purple-500/40 flex-shrink-0" }),
1478
- F < C.length - 1 && /* @__PURE__ */ e("div", { className: "w-px h-3 bg-purple-500/20" })
1469
+ X < C.length - 1 && /* @__PURE__ */ e("div", { className: "w-px h-3 bg-purple-500/20" })
1479
1470
  ] }),
1480
- /* @__PURE__ */ e("span", { className: "text-white/40", children: S.author }),
1481
- /* @__PURE__ */ e("span", { className: "text-white/15", children: new Date(S.forkedAt).toLocaleDateString(x === "zh" ? "zh-CN" : "en-US", { month: "short", day: "numeric" }) })
1482
- ] }, S.workId)) })
1471
+ /* @__PURE__ */ e("span", { className: "text-white/40", children: $.author }),
1472
+ /* @__PURE__ */ e("span", { className: "text-white/15", children: new Date($.forkedAt).toLocaleDateString(m === "zh" ? "zh-CN" : "en-US", { month: "short", day: "numeric" }) })
1473
+ ] }, $.workId)) })
1483
1474
  ] })
1484
1475
  ] }, a.workId);
1485
1476
  }) })
1486
- ] }) : /* @__PURE__ */ t(Z, { children: [
1487
- /* @__PURE__ */ e("h4", { className: "text-xs font-medium text-white/40 uppercase tracking-wider", children: i("ipmatrix.allCreators") }),
1488
- T ? /* @__PURE__ */ e("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e("div", { className: "w-6 h-6 border-2 border-indigo-500/30 border-t-indigo-500 rounded-full animate-spin" }) }) : A.length === 0 ? /* @__PURE__ */ t("div", { className: "text-center py-12", children: [
1489
- /* @__PURE__ */ e(ye, { className: "w-10 h-10 text-white/10 mx-auto mb-3" }),
1490
- /* @__PURE__ */ e("p", { className: "text-white/30 text-sm", children: x === "zh" ? "暂无其他创作者" : "No creators yet" }),
1491
- /* @__PURE__ */ e("p", { className: "text-white/15 text-xs mt-1", children: x === "zh" ? "分享作品后即可在此展示" : "Share works to appear here" })
1492
- ] }) : /* @__PURE__ */ e("div", { className: "space-y-2", children: A.map((a, w) => /* @__PURE__ */ e(
1477
+ ] }) : /* @__PURE__ */ t(B, { children: [
1478
+ /* @__PURE__ */ e("h4", { className: "text-xs font-medium text-white/40 uppercase tracking-wider", children: r("ipmatrix.allCreators") }),
1479
+ E ? /* @__PURE__ */ e("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e("div", { className: "w-6 h-6 border-2 border-indigo-500/30 border-t-indigo-500 rounded-full animate-spin" }) }) : T.length === 0 ? /* @__PURE__ */ t("div", { className: "text-center py-12", children: [
1480
+ /* @__PURE__ */ e(ue, { className: "w-10 h-10 text-white/10 mx-auto mb-3" }),
1481
+ /* @__PURE__ */ e("p", { className: "text-white/30 text-sm", children: m === "zh" ? "暂无其他创作者" : "No creators yet" }),
1482
+ /* @__PURE__ */ e("p", { className: "text-white/15 text-xs mt-1", children: m === "zh" ? "分享作品后即可在此展示" : "Share works to appear here" })
1483
+ ] }) : /* @__PURE__ */ e("div", { className: "space-y-2", children: T.map((a, y) => /* @__PURE__ */ e(
1493
1484
  "button",
1494
1485
  {
1495
1486
  onClick: () => {
1496
- I(a.userName), le(a.userName);
1487
+ z(a.userName), le(a.userName);
1497
1488
  },
1498
1489
  className: "w-full p-3 rounded-xl bg-white/[0.02] border border-white/[0.06] hover:bg-white/[0.05] hover:border-indigo-500/20 transition-all text-left group",
1499
1490
  children: /* @__PURE__ */ t("div", { className: "flex items-center gap-3", children: [
@@ -1504,10 +1495,10 @@ const wt = ({
1504
1495
  /* @__PURE__ */ t("span", { className: "text-[10px] text-white/25", children: [
1505
1496
  a.works,
1506
1497
  " ",
1507
- i("ipmatrix.works")
1498
+ r("ipmatrix.works")
1508
1499
  ] }),
1509
1500
  /* @__PURE__ */ t("span", { className: "flex items-center gap-0.5 text-[10px] text-pink-400/40", children: [
1510
- /* @__PURE__ */ e(H, { className: "w-2.5 h-2.5" }),
1501
+ /* @__PURE__ */ e(Y, { className: "w-2.5 h-2.5" }),
1511
1502
  " ",
1512
1503
  a.totalLikes
1513
1504
  ] })
@@ -1516,20 +1507,20 @@ const wt = ({
1516
1507
  /* @__PURE__ */ e(se, { className: "w-4 h-4 text-white/15 group-hover:text-indigo-400/50 transition-colors flex-shrink-0" })
1517
1508
  ] })
1518
1509
  },
1519
- a.userName + w
1510
+ a.userName + y
1520
1511
  )) })
1521
1512
  ] }) })
1522
- ] }) : /* @__PURE__ */ e("div", { className: "flex-1 flex items-center justify-center", children: /* @__PURE__ */ e("p", { className: "text-white/30 text-sm", children: i("ipmatrix.signInRequired") }) })
1513
+ ] }) : /* @__PURE__ */ e("div", { className: "flex-1 flex items-center justify-center", children: /* @__PURE__ */ e("p", { className: "text-white/30 text-sm", children: r("ipmatrix.signInRequired") }) })
1523
1514
  ]
1524
1515
  }
1525
1516
  )
1526
1517
  ] }) });
1527
1518
  };
1528
1519
  export {
1529
- gt as AchievementsPanel,
1530
- wt as IPMatrixPanel,
1531
- ft as LeaderboardPanel,
1532
- pt as StarPowerPanel,
1533
- bt as StarPowerShop
1520
+ bt as AchievementsPanel,
1521
+ ft as IPMatrixPanel,
1522
+ pt as LeaderboardPanel,
1523
+ mt as StarPowerPanel,
1524
+ xt as StarPowerShop
1534
1525
  };
1535
1526
  //# sourceMappingURL=index.js.map