@burdenoff/microfe-cosmicintersection 2026.509.101

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.
Files changed (86) hide show
  1. package/README.md +12 -0
  2. package/dist/cosmicintersection/CosmicIntersectionRoot.d.ts +5 -0
  3. package/dist/cosmicintersection/CosmicIntersectionRoot.d.ts.map +1 -0
  4. package/dist/cosmicintersection/CosmicIntersectionRoot.js +121 -0
  5. package/dist/cosmicintersection/CosmicIntersectionRoot.js.map +1 -0
  6. package/dist/cosmicintersection/CosmicIntersectionRoutes.d.ts +2 -0
  7. package/dist/cosmicintersection/CosmicIntersectionRoutes.d.ts.map +1 -0
  8. package/dist/cosmicintersection/CosmicIntersectionRoutes.js +71 -0
  9. package/dist/cosmicintersection/CosmicIntersectionRoutes.js.map +1 -0
  10. package/dist/cosmicintersection/index.d.ts +5 -0
  11. package/dist/cosmicintersection/index.d.ts.map +1 -0
  12. package/dist/cosmicintersection/index.js +3 -0
  13. package/dist/cosmicintersection/pages/AiDiscoveryPage.d.ts +2 -0
  14. package/dist/cosmicintersection/pages/AiDiscoveryPage.d.ts.map +1 -0
  15. package/dist/cosmicintersection/pages/AiDiscoveryPage.js +363 -0
  16. package/dist/cosmicintersection/pages/AiDiscoveryPage.js.map +1 -0
  17. package/dist/cosmicintersection/pages/DashboardPage.d.ts +2 -0
  18. package/dist/cosmicintersection/pages/DashboardPage.d.ts.map +1 -0
  19. package/dist/cosmicintersection/pages/DashboardPage.js +306 -0
  20. package/dist/cosmicintersection/pages/DashboardPage.js.map +1 -0
  21. package/dist/cosmicintersection/pages/SpaceScienceCitizenPage.d.ts +2 -0
  22. package/dist/cosmicintersection/pages/SpaceScienceCitizenPage.d.ts.map +1 -0
  23. package/dist/cosmicintersection/pages/SpaceScienceCitizenPage.js +287 -0
  24. package/dist/cosmicintersection/pages/SpaceScienceCitizenPage.js.map +1 -0
  25. package/dist/cosmicintersection/pages/SpaceScienceDataPage.d.ts +2 -0
  26. package/dist/cosmicintersection/pages/SpaceScienceDataPage.d.ts.map +1 -0
  27. package/dist/cosmicintersection/pages/SpaceScienceDataPage.js +385 -0
  28. package/dist/cosmicintersection/pages/SpaceScienceDataPage.js.map +1 -0
  29. package/dist/cosmicintersection/pages/SpaceScienceDataPage1.d.ts +2 -0
  30. package/dist/cosmicintersection/pages/SpaceScienceDataPage1.d.ts.map +1 -0
  31. package/dist/cosmicintersection/pages/SpaceScienceDataPage1.js +420 -0
  32. package/dist/cosmicintersection/pages/SpaceScienceDataPage1.js.map +1 -0
  33. package/dist/cosmicintersection/pages/SpaceScienceLearningPage.d.ts +2 -0
  34. package/dist/cosmicintersection/pages/SpaceScienceLearningPage.d.ts.map +1 -0
  35. package/dist/cosmicintersection/pages/SpaceScienceLearningPage.js +309 -0
  36. package/dist/cosmicintersection/pages/SpaceScienceLearningPage.js.map +1 -0
  37. package/dist/cosmicintersection/pages/SpaceScienceLearningPage1.d.ts +2 -0
  38. package/dist/cosmicintersection/pages/SpaceScienceLearningPage1.d.ts.map +1 -0
  39. package/dist/cosmicintersection/pages/SpaceScienceLearningPage1.js +361 -0
  40. package/dist/cosmicintersection/pages/SpaceScienceLearningPage1.js.map +1 -0
  41. package/dist/cosmicintersection/pages/SpaceSciencePage.d.ts +2 -0
  42. package/dist/cosmicintersection/pages/SpaceSciencePage.d.ts.map +1 -0
  43. package/dist/cosmicintersection/pages/SpaceSciencePage.js +194 -0
  44. package/dist/cosmicintersection/pages/SpaceSciencePage.js.map +1 -0
  45. package/dist/cosmicintersection/pages/SpaceScienceResearchPage.d.ts +2 -0
  46. package/dist/cosmicintersection/pages/SpaceScienceResearchPage.d.ts.map +1 -0
  47. package/dist/cosmicintersection/pages/SpaceScienceResearchPage.js +290 -0
  48. package/dist/cosmicintersection/pages/SpaceScienceResearchPage.js.map +1 -0
  49. package/dist/cosmicintersection/pages/SpaceScienceSimulationPage.d.ts +2 -0
  50. package/dist/cosmicintersection/pages/SpaceScienceSimulationPage.d.ts.map +1 -0
  51. package/dist/cosmicintersection/pages/SpaceScienceSimulationPage.js +279 -0
  52. package/dist/cosmicintersection/pages/SpaceScienceSimulationPage.js.map +1 -0
  53. package/dist/cosmicintersection/providers/CosmicIntersectionProvider.d.ts +6 -0
  54. package/dist/cosmicintersection/providers/CosmicIntersectionProvider.d.ts.map +1 -0
  55. package/dist/cosmicintersection/providers/CosmicIntersectionProvider.js +27 -0
  56. package/dist/cosmicintersection/providers/CosmicIntersectionProvider.js.map +1 -0
  57. package/dist/cosmicintersection/store/cosmicintersectionStore.d.ts +18 -0
  58. package/dist/cosmicintersection/store/cosmicintersectionStore.d.ts.map +1 -0
  59. package/dist/cosmicintersection/store/cosmicintersectionStore.js +478 -0
  60. package/dist/cosmicintersection/store/cosmicintersectionStore.js.map +1 -0
  61. package/dist/cosmicintersection/types/index.d.ts +109 -0
  62. package/dist/cosmicintersection/types/index.d.ts.map +1 -0
  63. package/dist/cosmicintersection/utils/cn.d.ts +4 -0
  64. package/dist/cosmicintersection/utils/cn.d.ts.map +1 -0
  65. package/dist/cosmicintersection/utils/i18n.d.ts +6 -0
  66. package/dist/cosmicintersection/utils/i18n.d.ts.map +1 -0
  67. package/dist/cosmicintersection/utils/i18n.js +15 -0
  68. package/dist/cosmicintersection/utils/i18n.js.map +1 -0
  69. package/dist/cosmicintersection/utils/navigation.d.ts +2 -0
  70. package/dist/cosmicintersection/utils/navigation.d.ts.map +1 -0
  71. package/dist/cosmicintersection/utils/navigation.js +8 -0
  72. package/dist/cosmicintersection/utils/navigation.js.map +1 -0
  73. package/dist/dev/main.d.ts +2 -0
  74. package/dist/dev/main.d.ts.map +1 -0
  75. package/dist/generated/global-operations.d.ts +2 -0
  76. package/dist/generated/global-operations.d.ts.map +1 -0
  77. package/dist/generated/global-types.d.ts +18199 -0
  78. package/dist/generated/global-types.d.ts.map +1 -0
  79. package/dist/generated/wspace-operations.d.ts +2 -0
  80. package/dist/generated/wspace-operations.d.ts.map +1 -0
  81. package/dist/generated/wspace-types.d.ts +43046 -0
  82. package/dist/generated/wspace-types.d.ts.map +1 -0
  83. package/dist/index.d.ts +2 -0
  84. package/dist/index.d.ts.map +1 -0
  85. package/dist/index.js +5 -0
  86. package/package.json +107 -0
@@ -0,0 +1,287 @@
1
+ import { useCosmicIntersectionStore as e } from "../store/cosmicintersectionStore.js";
2
+ import { tWithFallback as t } from "../utils/i18n.js";
3
+ import { Activity as n, ArrowRight as r, Award as i, Globe as a, Sparkles as o, Star as s, TrendingUp as c, Users as l, Zap as u } from "lucide-react";
4
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
5
+ import { useI18n as p } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
6
+ import { Badge as m, Button as h, Card as g, CardContent as _, CardDescription as v, CardHeader as y, CardTitle as b, Tabs as x, TabsContent as S, TabsList as C, TabsTrigger as w } from "@burdenoff/fe-libs/ui";
7
+ //#region src/cosmicintersection/pages/SpaceScienceCitizenPage.tsx
8
+ function T() {
9
+ let { t: T } = p(), E = (e, n, r) => t(T, e, n, r), { citizenScienceTasks: D } = e(), O = D.filter((e) => e.category === "galaxies"), k = D.filter((e) => e.category === "planets"), A = D.filter((e) => e.category === "asteroids" || e.category === "transients"), j = [
10
+ {
11
+ name: "StarGazer_47",
12
+ contributions: 12847,
13
+ rank: 1,
14
+ badge: E("cosmicintersection.citizenScience.leaderboard.badges.gold", "Gold")
15
+ },
16
+ {
17
+ name: "CosmicExplorer",
18
+ contributions: 9234,
19
+ rank: 2,
20
+ badge: E("cosmicintersection.citizenScience.leaderboard.badges.silver", "Silver")
21
+ },
22
+ {
23
+ name: "GalacticHunter",
24
+ contributions: 8156,
25
+ rank: 3,
26
+ badge: E("cosmicintersection.citizenScience.leaderboard.badges.bronze", "Bronze")
27
+ },
28
+ {
29
+ name: "NebulaSeeker",
30
+ contributions: 7834,
31
+ rank: 4,
32
+ badge: E("cosmicintersection.citizenScience.leaderboard.badges.diamond", "Diamond")
33
+ },
34
+ {
35
+ name: "AstroNomad",
36
+ contributions: 6923,
37
+ rank: 5,
38
+ badge: E("cosmicintersection.citizenScience.leaderboard.badges.platinum", "Platinum")
39
+ }
40
+ ], M = (e) => e >= 1e3 ? `${String(Math.round(e / 1e3))}K` : String(e), N = (e) => /* @__PURE__ */ f(g, {
41
+ className: "transition-shadow hover:shadow-md",
42
+ children: [/* @__PURE__ */ f(y, { children: [/* @__PURE__ */ f("div", {
43
+ className: "mb-2 flex items-start justify-between gap-3",
44
+ children: [/* @__PURE__ */ d(b, {
45
+ className: "text-lg",
46
+ children: e.title
47
+ }), /* @__PURE__ */ d(m, {
48
+ variant: e.status === "live" ? "default" : "secondary",
49
+ className: "capitalize",
50
+ children: e.status === "live" ? E("cosmicintersection.citizenScience.shared.status.live", "live") : E("cosmicintersection.citizenScience.shared.status.recruiting", "recruiting")
51
+ })]
52
+ }), /* @__PURE__ */ d(v, { children: e.description })] }), /* @__PURE__ */ f(_, {
53
+ className: "space-y-3",
54
+ children: [
55
+ /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ f("div", {
56
+ className: "mb-1 flex items-center justify-between text-xs text-muted-foreground",
57
+ children: [/* @__PURE__ */ d("span", { children: E("cosmicintersection.citizenScience.taskCard.progress", "Progress") }), /* @__PURE__ */ f("span", {
58
+ className: "font-medium",
59
+ children: [e.progress, "%"]
60
+ })]
61
+ }), /* @__PURE__ */ d("div", {
62
+ className: "h-1.5 w-full overflow-hidden rounded-full bg-muted",
63
+ children: /* @__PURE__ */ d("div", {
64
+ className: "h-full rounded-full bg-primary",
65
+ style: { width: `${String(e.progress)}%` }
66
+ })
67
+ })] }),
68
+ /* @__PURE__ */ f("div", {
69
+ className: "grid grid-cols-2 gap-3",
70
+ children: [/* @__PURE__ */ f("div", {
71
+ className: "rounded-md bg-muted p-2 text-center",
72
+ children: [/* @__PURE__ */ d("div", {
73
+ className: "text-sm font-semibold",
74
+ children: M(e.contributors)
75
+ }), /* @__PURE__ */ d("div", {
76
+ className: "text-xs text-muted-foreground",
77
+ children: E("cosmicintersection.citizenScience.taskCard.contributors", "Contributors")
78
+ })]
79
+ }), /* @__PURE__ */ f("div", {
80
+ className: "rounded-md bg-muted p-2 text-center",
81
+ children: [/* @__PURE__ */ d("div", {
82
+ className: "text-sm font-semibold text-green-500",
83
+ children: M(e.classifications)
84
+ }), /* @__PURE__ */ d("div", {
85
+ className: "text-xs text-muted-foreground",
86
+ children: E("cosmicintersection.citizenScience.taskCard.classifications", "Classifications")
87
+ })]
88
+ })]
89
+ }),
90
+ /* @__PURE__ */ f(h, {
91
+ variant: "ghost",
92
+ className: "w-full justify-between",
93
+ size: "sm",
94
+ children: [E("cosmicintersection.citizenScience.taskCard.actions.startClassifying", "Start Classifying"), /* @__PURE__ */ d(r, { className: "h-4 w-4" })]
95
+ })
96
+ ]
97
+ })]
98
+ }, e.id), P = [
99
+ {
100
+ label: E("cosmicintersection.citizenScience.heroStats.contributors", "Contributors"),
101
+ value: "2.4M",
102
+ icon: l,
103
+ color: "text-green-500"
104
+ },
105
+ {
106
+ label: E("cosmicintersection.citizenScience.heroStats.discoveries", "Discoveries"),
107
+ value: "156",
108
+ icon: i,
109
+ color: "text-yellow-500"
110
+ },
111
+ {
112
+ label: E("cosmicintersection.citizenScience.heroStats.classifications", "Classifications"),
113
+ value: "47M",
114
+ icon: c,
115
+ color: "text-blue-500"
116
+ },
117
+ {
118
+ label: E("cosmicintersection.citizenScience.heroStats.activeProjects", "Active Projects"),
119
+ value: "89",
120
+ icon: n,
121
+ color: "text-purple-500"
122
+ }
123
+ ];
124
+ return /* @__PURE__ */ f("div", {
125
+ className: "space-y-10 p-6",
126
+ children: [
127
+ /* @__PURE__ */ f("section", {
128
+ className: "py-6 text-center",
129
+ children: [
130
+ /* @__PURE__ */ f(m, {
131
+ variant: "secondary",
132
+ className: "mb-4",
133
+ children: [/* @__PURE__ */ d(l, { className: "mr-1.5 h-3.5 w-3.5" }), E("cosmicintersection.citizenScience.hero.badge", "Make Real Discoveries")]
134
+ }),
135
+ /* @__PURE__ */ d("h1", {
136
+ className: "text-4xl font-bold tracking-tight",
137
+ children: E("cosmicintersection.citizenScience.hero.title", "Citizen Science")
138
+ }),
139
+ /* @__PURE__ */ d("p", {
140
+ className: "mx-auto mt-4 max-w-2xl text-lg text-muted-foreground",
141
+ children: E("cosmicintersection.citizenScience.hero.description", "Make real scientific discoveries by contributing to cutting-edge research. Classify galaxies, hunt asteroids, and advance space science. No PhD required!")
142
+ }),
143
+ /* @__PURE__ */ f("div", {
144
+ className: "mt-6 flex items-center justify-center gap-3",
145
+ children: [/* @__PURE__ */ f(h, { children: [/* @__PURE__ */ d(l, { className: "mr-2 h-5 w-5" }), E("cosmicintersection.citizenScience.hero.actions.startContributing", "Start Contributing")] }), /* @__PURE__ */ f(h, {
146
+ variant: "outline",
147
+ children: [/* @__PURE__ */ d(n, { className: "mr-2 h-5 w-5" }), E("cosmicintersection.citizenScience.hero.actions.viewProjects", "View Projects")]
148
+ })]
149
+ }),
150
+ /* @__PURE__ */ d("div", {
151
+ className: "mx-auto mt-10 grid max-w-3xl grid-cols-2 gap-4 md:grid-cols-4",
152
+ children: P.map((e) => /* @__PURE__ */ d(g, { children: /* @__PURE__ */ f(_, {
153
+ className: "p-3 text-center",
154
+ children: [
155
+ /* @__PURE__ */ d(e.icon, { className: `mx-auto mb-1.5 h-5 w-5 ${e.color}` }),
156
+ /* @__PURE__ */ d("div", {
157
+ className: "text-xl font-bold",
158
+ children: e.value
159
+ }),
160
+ /* @__PURE__ */ d("div", {
161
+ className: "text-xs text-muted-foreground",
162
+ children: e.label
163
+ })
164
+ ]
165
+ }) }, e.label))
166
+ })
167
+ ]
168
+ }),
169
+ /* @__PURE__ */ f("section", { children: [/* @__PURE__ */ f("div", {
170
+ className: "mb-8 text-center",
171
+ children: [/* @__PURE__ */ d("h2", {
172
+ className: "text-2xl font-bold",
173
+ children: E("cosmicintersection.citizenScience.sections.activeProjects", "Active Citizen Science Projects")
174
+ }), /* @__PURE__ */ d("p", {
175
+ className: "mt-1 text-muted-foreground",
176
+ children: E("cosmicintersection.citizenScience.sections.activeProjectsDescription", "Choose a category and start contributing today")
177
+ })]
178
+ }), /* @__PURE__ */ f(x, {
179
+ defaultValue: "galaxies",
180
+ className: "w-full",
181
+ children: [
182
+ /* @__PURE__ */ f(C, {
183
+ className: "mb-6 grid w-full grid-cols-3",
184
+ children: [
185
+ /* @__PURE__ */ f(w, {
186
+ value: "galaxies",
187
+ children: [/* @__PURE__ */ d(s, { className: "mr-1.5 h-4 w-4" }), E("cosmicintersection.citizenScience.tabs.galaxies", "Galaxies")]
188
+ }),
189
+ /* @__PURE__ */ f(w, {
190
+ value: "planets",
191
+ children: [/* @__PURE__ */ d(a, { className: "mr-1.5 h-4 w-4" }), E("cosmicintersection.citizenScience.tabs.planets", "Planets")]
192
+ }),
193
+ /* @__PURE__ */ f(w, {
194
+ value: "asteroids",
195
+ children: [/* @__PURE__ */ d(u, { className: "mr-1.5 h-4 w-4" }), E("cosmicintersection.citizenScience.tabs.asteroids", "Asteroids & Transients")]
196
+ })
197
+ ]
198
+ }),
199
+ /* @__PURE__ */ d(S, {
200
+ value: "galaxies",
201
+ children: /* @__PURE__ */ d("div", {
202
+ className: "grid gap-4 md:grid-cols-2",
203
+ children: O.map(N)
204
+ })
205
+ }),
206
+ /* @__PURE__ */ d(S, {
207
+ value: "planets",
208
+ children: /* @__PURE__ */ d("div", {
209
+ className: "grid gap-4 md:grid-cols-2",
210
+ children: k.map(N)
211
+ })
212
+ }),
213
+ /* @__PURE__ */ d(S, {
214
+ value: "asteroids",
215
+ children: /* @__PURE__ */ d("div", {
216
+ className: "grid gap-4 md:grid-cols-2",
217
+ children: A.map(N)
218
+ })
219
+ })
220
+ ]
221
+ })] }),
222
+ /* @__PURE__ */ d("section", { children: /* @__PURE__ */ f(g, { children: [/* @__PURE__ */ d(y, { children: /* @__PURE__ */ f("div", {
223
+ className: "flex items-center gap-3",
224
+ children: [/* @__PURE__ */ d("div", {
225
+ className: "flex h-10 w-10 items-center justify-center rounded-lg bg-muted text-yellow-500",
226
+ children: /* @__PURE__ */ d(s, { className: "h-5 w-5" })
227
+ }), /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d(b, { children: E("cosmicintersection.citizenScience.leaderboard.title", "Top Contributors") }), /* @__PURE__ */ d(v, { children: E("cosmicintersection.citizenScience.leaderboard.description", "This month's leaders") })] })]
228
+ }) }), /* @__PURE__ */ d(_, {
229
+ className: "space-y-2",
230
+ children: j.map((e) => /* @__PURE__ */ f("div", {
231
+ className: "flex items-center justify-between rounded-lg border p-3",
232
+ children: [/* @__PURE__ */ f("div", {
233
+ className: "flex items-center gap-3",
234
+ children: [/* @__PURE__ */ d("div", {
235
+ className: "flex h-9 w-9 items-center justify-center rounded-full bg-primary text-sm font-bold text-primary-foreground",
236
+ children: e.rank
237
+ }), /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ f("div", {
238
+ className: "flex items-center gap-2",
239
+ children: [/* @__PURE__ */ d("span", {
240
+ className: "text-sm font-semibold",
241
+ children: e.name
242
+ }), /* @__PURE__ */ d(m, {
243
+ variant: "secondary",
244
+ children: e.badge
245
+ })]
246
+ }), /* @__PURE__ */ d("div", {
247
+ className: "text-xs text-muted-foreground",
248
+ children: E("cosmicintersection.citizenScience.leaderboard.contributions", "{{count}} contributions", { count: e.contributions.toLocaleString() })
249
+ })] })]
250
+ }), /* @__PURE__ */ d(m, { children: E("cosmicintersection.citizenScience.leaderboard.points", "+{{count}} pts", { count: Math.floor(e.contributions * .1) }) })]
251
+ }, e.rank))
252
+ })] }) }),
253
+ /* @__PURE__ */ d("section", { children: /* @__PURE__ */ d(g, {
254
+ className: "bg-muted/50",
255
+ children: /* @__PURE__ */ f(_, {
256
+ className: "py-10 text-center",
257
+ children: [
258
+ /* @__PURE__ */ f(m, {
259
+ variant: "secondary",
260
+ className: "mb-4",
261
+ children: [/* @__PURE__ */ d(o, { className: "mr-1.5 h-3.5 w-3.5" }), E("cosmicintersection.citizenScience.cta.badge", "Join 2.4M+ Scientists")]
262
+ }),
263
+ /* @__PURE__ */ d("h2", {
264
+ className: "text-2xl font-bold",
265
+ children: E("cosmicintersection.citizenScience.cta.title", "Ready to Make Your Mark on Science?")
266
+ }),
267
+ /* @__PURE__ */ d("p", {
268
+ className: "mt-2 text-muted-foreground",
269
+ children: E("cosmicintersection.citizenScience.cta.description", "Make real discoveries and advance our understanding of the universe.")
270
+ }),
271
+ /* @__PURE__ */ f("div", {
272
+ className: "mt-6 flex items-center justify-center gap-3",
273
+ children: [/* @__PURE__ */ d(h, { children: E("cosmicintersection.citizenScience.cta.actions.joinCommunity", "Join the Community") }), /* @__PURE__ */ d(h, {
274
+ variant: "outline",
275
+ children: E("cosmicintersection.citizenScience.cta.actions.backToHub", "Back to Hub")
276
+ })]
277
+ })
278
+ ]
279
+ })
280
+ }) })
281
+ ]
282
+ });
283
+ }
284
+ //#endregion
285
+ export { T as SpaceScienceCitizenPage };
286
+
287
+ //# sourceMappingURL=SpaceScienceCitizenPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpaceScienceCitizenPage.js","names":[],"sources":["../../../src/cosmicintersection/pages/SpaceScienceCitizenPage.tsx"],"sourcesContent":["import { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from '@burdenoff/fe-libs/ui';\nimport {\n Users,\n Star,\n Globe,\n Activity,\n ArrowRight,\n Sparkles,\n Zap,\n Award,\n TrendingUp,\n} from 'lucide-react';\nimport { useCosmicIntersectionStore } from '../store/cosmicintersectionStore';\nimport { tWithFallback } from '../utils/i18n';\n\nexport function SpaceScienceCitizenPage() {\n const { t } = useI18n();\n const tr = (key: string, fallback: string, params?: Record<string, string | number>): string =>\n tWithFallback(t, key, fallback, params);\n const { citizenScienceTasks } = useCosmicIntersectionStore();\n\n const galaxyTasks = citizenScienceTasks.filter((task) => task.category === 'galaxies');\n const planetTasks = citizenScienceTasks.filter((task) => task.category === 'planets');\n const asteroidTasks = citizenScienceTasks.filter(\n (task) => task.category === 'asteroids' || task.category === 'transients'\n );\n\n const topContributors = [\n {\n name: 'StarGazer_47',\n contributions: 12847,\n rank: 1,\n badge: tr('cosmicintersection.citizenScience.leaderboard.badges.gold', 'Gold'),\n },\n {\n name: 'CosmicExplorer',\n contributions: 9234,\n rank: 2,\n badge: tr('cosmicintersection.citizenScience.leaderboard.badges.silver', 'Silver'),\n },\n {\n name: 'GalacticHunter',\n contributions: 8156,\n rank: 3,\n badge: tr('cosmicintersection.citizenScience.leaderboard.badges.bronze', 'Bronze'),\n },\n {\n name: 'NebulaSeeker',\n contributions: 7834,\n rank: 4,\n badge: tr('cosmicintersection.citizenScience.leaderboard.badges.diamond', 'Diamond'),\n },\n {\n name: 'AstroNomad',\n contributions: 6923,\n rank: 5,\n badge: tr('cosmicintersection.citizenScience.leaderboard.badges.platinum', 'Platinum'),\n },\n ];\n\n const formatNum = (value: number) =>\n value >= 1000 ? `${String(Math.round(value / 1000))}K` : String(value);\n\n const renderTaskCard = (task: (typeof citizenScienceTasks)[0]) => (\n <Card key={task.id} className=\"transition-shadow hover:shadow-md\">\n <CardHeader>\n <div className=\"mb-2 flex items-start justify-between gap-3\">\n <CardTitle className=\"text-lg\">{task.title}</CardTitle>\n <Badge variant={task.status === 'live' ? 'default' : 'secondary'} className=\"capitalize\">\n {task.status === 'live'\n ? tr('cosmicintersection.citizenScience.shared.status.live', 'live')\n : tr('cosmicintersection.citizenScience.shared.status.recruiting', 'recruiting')}\n </Badge>\n </div>\n <CardDescription>{task.description}</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <div>\n <div className=\"mb-1 flex items-center justify-between text-xs text-muted-foreground\">\n <span>{tr('cosmicintersection.citizenScience.taskCard.progress', 'Progress')}</span>\n <span className=\"font-medium\">{task.progress}%</span>\n </div>\n <div className=\"h-1.5 w-full overflow-hidden rounded-full bg-muted\">\n <div\n className=\"h-full rounded-full bg-primary\"\n style={{ width: `${String(task.progress)}%` }}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-2 gap-3\">\n <div className=\"rounded-md bg-muted p-2 text-center\">\n <div className=\"text-sm font-semibold\">{formatNum(task.contributors)}</div>\n <div className=\"text-xs text-muted-foreground\">\n {tr('cosmicintersection.citizenScience.taskCard.contributors', 'Contributors')}\n </div>\n </div>\n <div className=\"rounded-md bg-muted p-2 text-center\">\n <div className=\"text-sm font-semibold text-green-500\">\n {formatNum(task.classifications)}\n </div>\n <div className=\"text-xs text-muted-foreground\">\n {tr('cosmicintersection.citizenScience.taskCard.classifications', 'Classifications')}\n </div>\n </div>\n </div>\n <Button variant=\"ghost\" className=\"w-full justify-between\" size=\"sm\">\n {tr(\n 'cosmicintersection.citizenScience.taskCard.actions.startClassifying',\n 'Start Classifying'\n )}\n <ArrowRight className=\"h-4 w-4\" />\n </Button>\n </CardContent>\n </Card>\n );\n\n const heroStats = [\n {\n label: tr('cosmicintersection.citizenScience.heroStats.contributors', 'Contributors'),\n value: '2.4M',\n icon: Users,\n color: 'text-green-500',\n },\n {\n label: tr('cosmicintersection.citizenScience.heroStats.discoveries', 'Discoveries'),\n value: '156',\n icon: Award,\n color: 'text-yellow-500',\n },\n {\n label: tr('cosmicintersection.citizenScience.heroStats.classifications', 'Classifications'),\n value: '47M',\n icon: TrendingUp,\n color: 'text-blue-500',\n },\n {\n label: tr('cosmicintersection.citizenScience.heroStats.activeProjects', 'Active Projects'),\n value: '89',\n icon: Activity,\n color: 'text-purple-500',\n },\n ];\n\n return (\n <div className=\"space-y-10 p-6\">\n <section className=\"py-6 text-center\">\n <Badge variant=\"secondary\" className=\"mb-4\">\n <Users className=\"mr-1.5 h-3.5 w-3.5\" />\n {tr('cosmicintersection.citizenScience.hero.badge', 'Make Real Discoveries')}\n </Badge>\n <h1 className=\"text-4xl font-bold tracking-tight\">\n {tr('cosmicintersection.citizenScience.hero.title', 'Citizen Science')}\n </h1>\n <p className=\"mx-auto mt-4 max-w-2xl text-lg text-muted-foreground\">\n {tr(\n 'cosmicintersection.citizenScience.hero.description',\n 'Make real scientific discoveries by contributing to cutting-edge research. Classify galaxies, hunt asteroids, and advance space science. No PhD required!'\n )}\n </p>\n <div className=\"mt-6 flex items-center justify-center gap-3\">\n <Button>\n <Users className=\"mr-2 h-5 w-5\" />\n {tr(\n 'cosmicintersection.citizenScience.hero.actions.startContributing',\n 'Start Contributing'\n )}\n </Button>\n <Button variant=\"outline\">\n <Activity className=\"mr-2 h-5 w-5\" />\n {tr('cosmicintersection.citizenScience.hero.actions.viewProjects', 'View Projects')}\n </Button>\n </div>\n\n <div className=\"mx-auto mt-10 grid max-w-3xl grid-cols-2 gap-4 md:grid-cols-4\">\n {heroStats.map((stat) => (\n <Card key={stat.label}>\n <CardContent className=\"p-3 text-center\">\n <stat.icon className={`mx-auto mb-1.5 h-5 w-5 ${stat.color}`} />\n <div className=\"text-xl font-bold\">{stat.value}</div>\n <div className=\"text-xs text-muted-foreground\">{stat.label}</div>\n </CardContent>\n </Card>\n ))}\n </div>\n </section>\n\n <section>\n <div className=\"mb-8 text-center\">\n <h2 className=\"text-2xl font-bold\">\n {tr(\n 'cosmicintersection.citizenScience.sections.activeProjects',\n 'Active Citizen Science Projects'\n )}\n </h2>\n <p className=\"mt-1 text-muted-foreground\">\n {tr(\n 'cosmicintersection.citizenScience.sections.activeProjectsDescription',\n 'Choose a category and start contributing today'\n )}\n </p>\n </div>\n\n <Tabs defaultValue=\"galaxies\" className=\"w-full\">\n <TabsList className=\"mb-6 grid w-full grid-cols-3\">\n <TabsTrigger value=\"galaxies\">\n <Star className=\"mr-1.5 h-4 w-4\" />\n {tr('cosmicintersection.citizenScience.tabs.galaxies', 'Galaxies')}\n </TabsTrigger>\n <TabsTrigger value=\"planets\">\n <Globe className=\"mr-1.5 h-4 w-4\" />\n {tr('cosmicintersection.citizenScience.tabs.planets', 'Planets')}\n </TabsTrigger>\n <TabsTrigger value=\"asteroids\">\n <Zap className=\"mr-1.5 h-4 w-4\" />\n {tr('cosmicintersection.citizenScience.tabs.asteroids', 'Asteroids & Transients')}\n </TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"galaxies\">\n <div className=\"grid gap-4 md:grid-cols-2\">{galaxyTasks.map(renderTaskCard)}</div>\n </TabsContent>\n <TabsContent value=\"planets\">\n <div className=\"grid gap-4 md:grid-cols-2\">{planetTasks.map(renderTaskCard)}</div>\n </TabsContent>\n <TabsContent value=\"asteroids\">\n <div className=\"grid gap-4 md:grid-cols-2\">{asteroidTasks.map(renderTaskCard)}</div>\n </TabsContent>\n </Tabs>\n </section>\n\n <section>\n <Card>\n <CardHeader>\n <div className=\"flex items-center gap-3\">\n <div className=\"flex h-10 w-10 items-center justify-center rounded-lg bg-muted text-yellow-500\">\n <Star className=\"h-5 w-5\" />\n </div>\n <div>\n <CardTitle>\n {tr('cosmicintersection.citizenScience.leaderboard.title', 'Top Contributors')}\n </CardTitle>\n <CardDescription>\n {tr(\n 'cosmicintersection.citizenScience.leaderboard.description',\n \"This month's leaders\"\n )}\n </CardDescription>\n </div>\n </div>\n </CardHeader>\n <CardContent className=\"space-y-2\">\n {topContributors.map((user) => (\n <div\n key={user.rank}\n className=\"flex items-center justify-between rounded-lg border p-3\"\n >\n <div className=\"flex items-center gap-3\">\n <div className=\"flex h-9 w-9 items-center justify-center rounded-full bg-primary text-sm font-bold text-primary-foreground\">\n {user.rank}\n </div>\n <div>\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm font-semibold\">{user.name}</span>\n <Badge variant=\"secondary\">{user.badge}</Badge>\n </div>\n <div className=\"text-xs text-muted-foreground\">\n {tr(\n 'cosmicintersection.citizenScience.leaderboard.contributions',\n '{{count}} contributions',\n { count: user.contributions.toLocaleString() }\n )}\n </div>\n </div>\n </div>\n <Badge>\n {tr('cosmicintersection.citizenScience.leaderboard.points', '+{{count}} pts', {\n count: Math.floor(user.contributions * 0.1),\n })}\n </Badge>\n </div>\n ))}\n </CardContent>\n </Card>\n </section>\n\n <section>\n <Card className=\"bg-muted/50\">\n <CardContent className=\"py-10 text-center\">\n <Badge variant=\"secondary\" className=\"mb-4\">\n <Sparkles className=\"mr-1.5 h-3.5 w-3.5\" />\n {tr('cosmicintersection.citizenScience.cta.badge', 'Join 2.4M+ Scientists')}\n </Badge>\n <h2 className=\"text-2xl font-bold\">\n {tr(\n 'cosmicintersection.citizenScience.cta.title',\n 'Ready to Make Your Mark on Science?'\n )}\n </h2>\n <p className=\"mt-2 text-muted-foreground\">\n {tr(\n 'cosmicintersection.citizenScience.cta.description',\n 'Make real discoveries and advance our understanding of the universe.'\n )}\n </p>\n <div className=\"mt-6 flex items-center justify-center gap-3\">\n <Button>\n {tr(\n 'cosmicintersection.citizenScience.cta.actions.joinCommunity',\n 'Join the Community'\n )}\n </Button>\n <Button variant=\"outline\">\n {tr('cosmicintersection.citizenScience.cta.actions.backToHub', 'Back to Hub')}\n </Button>\n </div>\n </CardContent>\n </Card>\n </section>\n </div>\n );\n}\n"],"mappings":";;;;;;;AA4BA,SAAgB,IAA0B;CACxC,IAAM,EAAE,SAAM,GAAS,EACjB,KAAM,GAAa,GAAkB,MACzC,EAAc,GAAG,GAAK,GAAU,EAAO,EACnC,EAAE,2BAAwB,GAA4B,EAEtD,IAAc,EAAoB,QAAQ,MAAS,EAAK,aAAa,WAAW,EAChF,IAAc,EAAoB,QAAQ,MAAS,EAAK,aAAa,UAAU,EAC/E,IAAgB,EAAoB,QACvC,MAAS,EAAK,aAAa,eAAe,EAAK,aAAa,aAC9D,EAEK,IAAkB;EACtB;GACE,MAAM;GACN,eAAe;GACf,MAAM;GACN,OAAO,EAAG,6DAA6D,OAAO;GAC/E;EACD;GACE,MAAM;GACN,eAAe;GACf,MAAM;GACN,OAAO,EAAG,+DAA+D,SAAS;GACnF;EACD;GACE,MAAM;GACN,eAAe;GACf,MAAM;GACN,OAAO,EAAG,+DAA+D,SAAS;GACnF;EACD;GACE,MAAM;GACN,eAAe;GACf,MAAM;GACN,OAAO,EAAG,gEAAgE,UAAU;GACrF;EACD;GACE,MAAM;GACN,eAAe;GACf,MAAM;GACN,OAAO,EAAG,iEAAiE,WAAW;GACvF;EACF,EAEK,KAAa,MACjB,KAAS,MAAO,GAAG,OAAO,KAAK,MAAM,IAAQ,IAAK,CAAC,CAAC,KAAK,OAAO,EAAM,EAElE,KAAkB,MACtB,kBAAC,GAAD;EAAoB,WAAU;YAA9B,CACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,GAAD;IAAW,WAAU;cAAW,EAAK;IAAkB,CAAA,EACvD,kBAAC,GAAD;IAAO,SAAS,EAAK,WAAW,SAAS,YAAY;IAAa,WAAU;cACzE,EAAK,WAAW,SACb,EAAG,wDAAwD,OAAO,GAClE,EAAG,8DAA8D,aAAa;IAC5E,CAAA,CACJ;MACN,kBAAC,GAAD,EAAA,UAAkB,EAAK,aAA8B,CAAA,CAC1C,EAAA,CAAA,EACb,kBAAC,GAAD;GAAa,WAAU;aAAvB;IACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,QAAD,EAAA,UAAO,EAAG,uDAAuD,WAAW,EAAQ,CAAA,EACpF,kBAAC,QAAD;MAAM,WAAU;gBAAhB,CAA+B,EAAK,UAAS,IAAQ;QACjD;QACN,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,OAAD;MACE,WAAU;MACV,OAAO,EAAE,OAAO,GAAG,OAAO,EAAK,SAAS,CAAC,IAAI;MAC7C,CAAA;KACE,CAAA,CACF,EAAA,CAAA;IACN,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,OAAD;OAAK,WAAU;iBAAyB,EAAU,EAAK,aAAa;OAAO,CAAA,EAC3E,kBAAC,OAAD;OAAK,WAAU;iBACZ,EAAG,2DAA2D,eAAe;OAC1E,CAAA,CACF;SACN,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,OAAD;OAAK,WAAU;iBACZ,EAAU,EAAK,gBAAgB;OAC5B,CAAA,EACN,kBAAC,OAAD;OAAK,WAAU;iBACZ,EAAG,8DAA8D,kBAAkB;OAChF,CAAA,CACF;QACF;;IACN,kBAAC,GAAD;KAAQ,SAAQ;KAAQ,WAAU;KAAyB,MAAK;eAAhE,CACG,EACC,uEACA,oBACD,EACD,kBAAC,GAAD,EAAY,WAAU,WAAY,CAAA,CAC3B;;IACG;KACT;IAjDI,EAAK,GAiDT,EAGH,IAAY;EAChB;GACE,OAAO,EAAG,4DAA4D,eAAe;GACrF,OAAO;GACP,MAAM;GACN,OAAO;GACR;EACD;GACE,OAAO,EAAG,2DAA2D,cAAc;GACnF,OAAO;GACP,MAAM;GACN,OAAO;GACR;EACD;GACE,OAAO,EAAG,+DAA+D,kBAAkB;GAC3F,OAAO;GACP,MAAM;GACN,OAAO;GACR;EACD;GACE,OAAO,EAAG,8DAA8D,kBAAkB;GAC1F,OAAO;GACP,MAAM;GACN,OAAO;GACR;EACF;AAED,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,WAAD;IAAS,WAAU;cAAnB;KACE,kBAAC,GAAD;MAAO,SAAQ;MAAY,WAAU;gBAArC,CACE,kBAAC,GAAD,EAAO,WAAU,sBAAuB,CAAA,EACvC,EAAG,gDAAgD,wBAAwB,CACtE;;KACR,kBAAC,MAAD;MAAI,WAAU;gBACX,EAAG,gDAAgD,kBAAkB;MACnE,CAAA;KACL,kBAAC,KAAD;MAAG,WAAU;gBACV,EACC,sDACA,4JACD;MACC,CAAA;KACJ,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAO,WAAU,gBAAiB,CAAA,EACjC,EACC,oEACA,qBACD,CACM,EAAA,CAAA,EACT,kBAAC,GAAD;OAAQ,SAAQ;iBAAhB,CACE,kBAAC,GAAD,EAAU,WAAU,gBAAiB,CAAA,EACpC,EAAG,+DAA+D,gBAAgB,CAC5E;SACL;;KAEN,kBAAC,OAAD;MAAK,WAAU;gBACZ,EAAU,KAAK,MACd,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;OAAa,WAAU;iBAAvB;QACE,kBAAC,EAAK,MAAN,EAAW,WAAW,0BAA0B,EAAK,SAAW,CAAA;QAChE,kBAAC,OAAD;SAAK,WAAU;mBAAqB,EAAK;SAAY,CAAA;QACrD,kBAAC,OAAD;SAAK,WAAU;mBAAiC,EAAK;SAAY,CAAA;QACrD;UACT,EANI,EAAK,MAMT,CACP;MACE,CAAA;KACE;;GAEV,kBAAC,WAAD,EAAA,UAAA,CACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,MAAD;KAAI,WAAU;eACX,EACC,6DACA,kCACD;KACE,CAAA,EACL,kBAAC,KAAD;KAAG,WAAU;eACV,EACC,wEACA,iDACD;KACC,CAAA,CACA;OAEN,kBAAC,GAAD;IAAM,cAAa;IAAW,WAAU;cAAxC;KACE,kBAAC,GAAD;MAAU,WAAU;gBAApB;OACE,kBAAC,GAAD;QAAa,OAAM;kBAAnB,CACE,kBAAC,GAAD,EAAM,WAAU,kBAAmB,CAAA,EAClC,EAAG,mDAAmD,WAAW,CACtD;;OACd,kBAAC,GAAD;QAAa,OAAM;kBAAnB,CACE,kBAAC,GAAD,EAAO,WAAU,kBAAmB,CAAA,EACnC,EAAG,kDAAkD,UAAU,CACpD;;OACd,kBAAC,GAAD;QAAa,OAAM;kBAAnB,CACE,kBAAC,GAAD,EAAK,WAAU,kBAAmB,CAAA,EACjC,EAAG,oDAAoD,yBAAyB,CACrE;;OACL;;KAEX,kBAAC,GAAD;MAAa,OAAM;gBACjB,kBAAC,OAAD;OAAK,WAAU;iBAA6B,EAAY,IAAI,EAAe;OAAO,CAAA;MACtE,CAAA;KACd,kBAAC,GAAD;MAAa,OAAM;gBACjB,kBAAC,OAAD;OAAK,WAAU;iBAA6B,EAAY,IAAI,EAAe;OAAO,CAAA;MACtE,CAAA;KACd,kBAAC,GAAD;MAAa,OAAM;gBACjB,kBAAC,OAAD;OAAK,WAAU;iBAA6B,EAAc,IAAI,EAAe;OAAO,CAAA;MACxE,CAAA;KACT;MACC,EAAA,CAAA;GAEV,kBAAC,WAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,GAAD,EAAM,WAAU,WAAY,CAAA;KACxB,CAAA,EACN,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACG,EAAG,uDAAuD,mBAAmB,EACpE,CAAA,EACZ,kBAAC,GAAD,EAAA,UACG,EACC,6DACA,uBACD,EACe,CAAA,CACd,EAAA,CAAA,CACF;OACK,CAAA,EACb,kBAAC,GAAD;IAAa,WAAU;cACpB,EAAgB,KAAK,MACpB,kBAAC,OAAD;KAEE,WAAU;eAFZ,CAIE,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,OAAD;OAAK,WAAU;iBACZ,EAAK;OACF,CAAA,EACN,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,QAAD;QAAM,WAAU;kBAAyB,EAAK;QAAY,CAAA,EAC1D,kBAAC,GAAD;QAAO,SAAQ;kBAAa,EAAK;QAAc,CAAA,CAC3C;UACN,kBAAC,OAAD;OAAK,WAAU;iBACZ,EACC,+DACA,2BACA,EAAE,OAAO,EAAK,cAAc,gBAAgB,EAAE,CAC/C;OACG,CAAA,CACF,EAAA,CAAA,CACF;SACN,kBAAC,GAAD,EAAA,UACG,EAAG,wDAAwD,kBAAkB,EAC5E,OAAO,KAAK,MAAM,EAAK,gBAAgB,GAAI,EAC5C,CAAC,EACI,CAAA,CACJ;OA1BC,EAAK,KA0BN,CACN;IACU,CAAA,CACT,EAAA,CAAA,EACC,CAAA;GAEV,kBAAC,WAAD,EAAA,UACE,kBAAC,GAAD;IAAM,WAAU;cACd,kBAAC,GAAD;KAAa,WAAU;eAAvB;MACE,kBAAC,GAAD;OAAO,SAAQ;OAAY,WAAU;iBAArC,CACE,kBAAC,GAAD,EAAU,WAAU,sBAAuB,CAAA,EAC1C,EAAG,+CAA+C,wBAAwB,CACrE;;MACR,kBAAC,MAAD;OAAI,WAAU;iBACX,EACC,+CACA,sCACD;OACE,CAAA;MACL,kBAAC,KAAD;OAAG,WAAU;iBACV,EACC,qDACA,uEACD;OACC,CAAA;MACJ,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,GAAD,EAAA,UACG,EACC,+DACA,qBACD,EACM,CAAA,EACT,kBAAC,GAAD;QAAQ,SAAQ;kBACb,EAAG,2DAA2D,cAAc;QACtE,CAAA,CACL;;MACM;;IACT,CAAA,EACC,CAAA;GACN"}
@@ -0,0 +1,2 @@
1
+ export declare function SpaceScienceDataPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=SpaceScienceDataPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpaceScienceDataPage.d.ts","sourceRoot":"","sources":["../../../src/cosmicintersection/pages/SpaceScienceDataPage.tsx"],"names":[],"mappings":"AAMA,wBAAgB,oBAAoB,4CAsXnC"}