@burdenoff/microfe-ecoimpacthub 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.
- package/README.md +12 -0
- package/dist/dev/main.d.ts +2 -0
- package/dist/dev/main.d.ts.map +1 -0
- package/dist/ecoimpacthub/EcoImpactHubRoot.d.ts +5 -0
- package/dist/ecoimpacthub/EcoImpactHubRoot.d.ts.map +1 -0
- package/dist/ecoimpacthub/EcoImpactHubRoot.js +126 -0
- package/dist/ecoimpacthub/EcoImpactHubRoot.js.map +1 -0
- package/dist/ecoimpacthub/EcoImpactHubRoutes.d.ts +2 -0
- package/dist/ecoimpacthub/EcoImpactHubRoutes.d.ts.map +1 -0
- package/dist/ecoimpacthub/EcoImpactHubRoutes.js +55 -0
- package/dist/ecoimpacthub/EcoImpactHubRoutes.js.map +1 -0
- package/dist/ecoimpacthub/index.d.ts +5 -0
- package/dist/ecoimpacthub/index.d.ts.map +1 -0
- package/dist/ecoimpacthub/index.js +3 -0
- package/dist/ecoimpacthub/pages/ActionTrackerPage.d.ts +2 -0
- package/dist/ecoimpacthub/pages/ActionTrackerPage.d.ts.map +1 -0
- package/dist/ecoimpacthub/pages/ActionTrackerPage.js +449 -0
- package/dist/ecoimpacthub/pages/ActionTrackerPage.js.map +1 -0
- package/dist/ecoimpacthub/pages/ChallengesPage.d.ts +2 -0
- package/dist/ecoimpacthub/pages/ChallengesPage.d.ts.map +1 -0
- package/dist/ecoimpacthub/pages/ChallengesPage.js +242 -0
- package/dist/ecoimpacthub/pages/ChallengesPage.js.map +1 -0
- package/dist/ecoimpacthub/pages/CitizenSciencePage.d.ts +2 -0
- package/dist/ecoimpacthub/pages/CitizenSciencePage.d.ts.map +1 -0
- package/dist/ecoimpacthub/pages/CitizenSciencePage.js +443 -0
- package/dist/ecoimpacthub/pages/CitizenSciencePage.js.map +1 -0
- package/dist/ecoimpacthub/pages/CommunityPage.d.ts +2 -0
- package/dist/ecoimpacthub/pages/CommunityPage.d.ts.map +1 -0
- package/dist/ecoimpacthub/pages/CommunityPage.js +377 -0
- package/dist/ecoimpacthub/pages/CommunityPage.js.map +1 -0
- package/dist/ecoimpacthub/pages/DashboardPage.d.ts +2 -0
- package/dist/ecoimpacthub/pages/DashboardPage.d.ts.map +1 -0
- package/dist/ecoimpacthub/pages/DashboardPage.js +380 -0
- package/dist/ecoimpacthub/pages/DashboardPage.js.map +1 -0
- package/dist/ecoimpacthub/pages/LearningPage.d.ts +2 -0
- package/dist/ecoimpacthub/pages/LearningPage.d.ts.map +1 -0
- package/dist/ecoimpacthub/pages/LearningPage.js +276 -0
- package/dist/ecoimpacthub/pages/LearningPage.js.map +1 -0
- package/dist/ecoimpacthub/providers/EcoImpactHubProvider.d.ts +6 -0
- package/dist/ecoimpacthub/providers/EcoImpactHubProvider.d.ts.map +1 -0
- package/dist/ecoimpacthub/providers/EcoImpactHubProvider.js +27 -0
- package/dist/ecoimpacthub/providers/EcoImpactHubProvider.js.map +1 -0
- package/dist/ecoimpacthub/store/ecoimpacthubStore.d.ts +135 -0
- package/dist/ecoimpacthub/store/ecoimpacthubStore.d.ts.map +1 -0
- package/dist/ecoimpacthub/store/ecoimpacthubStore.js +551 -0
- package/dist/ecoimpacthub/store/ecoimpacthubStore.js.map +1 -0
- package/dist/ecoimpacthub/types/index.d.ts +51 -0
- package/dist/ecoimpacthub/types/index.d.ts.map +1 -0
- package/dist/ecoimpacthub/utils/cn.d.ts +4 -0
- package/dist/ecoimpacthub/utils/cn.d.ts.map +1 -0
- package/dist/ecoimpacthub/utils/i18n.d.ts +6 -0
- package/dist/ecoimpacthub/utils/i18n.d.ts.map +1 -0
- package/dist/ecoimpacthub/utils/i18n.js +15 -0
- package/dist/ecoimpacthub/utils/i18n.js.map +1 -0
- package/dist/ecoimpacthub/utils/navigation.d.ts +2 -0
- package/dist/ecoimpacthub/utils/navigation.d.ts.map +1 -0
- package/dist/ecoimpacthub/utils/navigation.js +8 -0
- package/dist/ecoimpacthub/utils/navigation.js.map +1 -0
- package/dist/generated/global-operations.d.ts +2 -0
- package/dist/generated/global-operations.d.ts.map +1 -0
- package/dist/generated/global-types.d.ts +18199 -0
- package/dist/generated/global-types.d.ts.map +1 -0
- package/dist/generated/wspace-operations.d.ts +2 -0
- package/dist/generated/wspace-operations.d.ts.map +1 -0
- package/dist/generated/wspace-types.d.ts +43046 -0
- package/dist/generated/wspace-types.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/package.json +107 -0
|
@@ -0,0 +1,449 @@
|
|
|
1
|
+
import { useEcoImpactHubStore as e } from "../store/ecoimpacthubStore.js";
|
|
2
|
+
import { useState as t } from "react";
|
|
3
|
+
import { Award as n, Calendar as r, Car as i, Check as a, CheckSquare as o, Clock as s, Droplets as c, Edit3 as l, Home as u, Leaf as d, Plus as f, Recycle as p, Target as m, Trash2 as h, TrendingUp as g, X as _, Zap as v } from "lucide-react";
|
|
4
|
+
import { Badge as y, Button as b, Card as x, CardContent as S } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
import { jsx as C, jsxs as w } from "react/jsx-runtime";
|
|
6
|
+
//#region src/ecoimpacthub/pages/ActionTrackerPage.tsx
|
|
7
|
+
function T() {
|
|
8
|
+
let { actions: T, goals: E } = e(), [D, O] = t("actions"), [k, A] = t("all"), [j, M] = t("all"), N = [
|
|
9
|
+
{
|
|
10
|
+
value: "all",
|
|
11
|
+
label: "All",
|
|
12
|
+
icon: m
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
value: "energy",
|
|
16
|
+
label: "Energy",
|
|
17
|
+
icon: v
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
value: "transportation",
|
|
21
|
+
label: "Transport",
|
|
22
|
+
icon: i
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
value: "waste",
|
|
26
|
+
label: "Waste",
|
|
27
|
+
icon: p
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
value: "water",
|
|
31
|
+
label: "Water",
|
|
32
|
+
icon: c
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
value: "consumption",
|
|
36
|
+
label: "Consumption",
|
|
37
|
+
icon: u
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
value: "advocacy",
|
|
41
|
+
label: "Advocacy",
|
|
42
|
+
icon: n
|
|
43
|
+
}
|
|
44
|
+
], P = [
|
|
45
|
+
"all",
|
|
46
|
+
"planned",
|
|
47
|
+
"in-progress",
|
|
48
|
+
"completed",
|
|
49
|
+
"paused"
|
|
50
|
+
], F = T.filter((e) => (k === "all" || e.category === k) && (j === "all" || e.status === j)), I = (e) => {
|
|
51
|
+
switch (e) {
|
|
52
|
+
case "low": return "bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-300";
|
|
53
|
+
case "medium": return "bg-amber-100 text-amber-800 dark:bg-amber-900/30 dark:text-amber-300";
|
|
54
|
+
case "high": return "bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-300";
|
|
55
|
+
default: return "bg-muted text-muted-foreground";
|
|
56
|
+
}
|
|
57
|
+
}, L = (e) => {
|
|
58
|
+
switch (e) {
|
|
59
|
+
case "completed": return "bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-300";
|
|
60
|
+
case "in-progress": return "bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-300";
|
|
61
|
+
case "planned": return "bg-muted text-muted-foreground";
|
|
62
|
+
case "paused": return "bg-amber-100 text-amber-800 dark:bg-amber-900/30 dark:text-amber-300";
|
|
63
|
+
default: return "bg-muted text-muted-foreground";
|
|
64
|
+
}
|
|
65
|
+
}, R = (e) => /* @__PURE__ */ C(N.find((t) => t.value === e)?.icon ?? m, { className: "h-4 w-4" }), z = (e) => {
|
|
66
|
+
switch (e) {
|
|
67
|
+
case "completed": return /* @__PURE__ */ C(a, { className: "h-4 w-4" });
|
|
68
|
+
case "in-progress": return /* @__PURE__ */ C(s, { className: "h-4 w-4" });
|
|
69
|
+
case "planned": return /* @__PURE__ */ C(r, { className: "h-4 w-4" });
|
|
70
|
+
case "paused": return /* @__PURE__ */ C(_, { className: "h-4 w-4" });
|
|
71
|
+
default: return /* @__PURE__ */ C(s, { className: "h-4 w-4" });
|
|
72
|
+
}
|
|
73
|
+
}, B = T.reduce((e, t) => e + t.carbonSaved, 0), V = T.filter((e) => e.status === "completed").length, H = T.filter((e) => e.streak && e.streak > 0).length;
|
|
74
|
+
return /* @__PURE__ */ C("div", {
|
|
75
|
+
className: "min-h-screen p-4",
|
|
76
|
+
children: /* @__PURE__ */ w("div", {
|
|
77
|
+
className: "mx-auto max-w-7xl space-y-8",
|
|
78
|
+
children: [
|
|
79
|
+
/* @__PURE__ */ w("div", {
|
|
80
|
+
className: "space-y-4 text-center",
|
|
81
|
+
children: [/* @__PURE__ */ C("h1", {
|
|
82
|
+
className: "text-4xl font-bold",
|
|
83
|
+
children: "Action Tracker"
|
|
84
|
+
}), /* @__PURE__ */ C("p", {
|
|
85
|
+
className: "mx-auto max-w-3xl text-xl text-muted-foreground",
|
|
86
|
+
children: "Track your environmental actions, monitor your impact, and achieve your sustainability goals."
|
|
87
|
+
})]
|
|
88
|
+
}),
|
|
89
|
+
/* @__PURE__ */ C("div", {
|
|
90
|
+
className: "grid grid-cols-1 gap-6 md:grid-cols-4",
|
|
91
|
+
children: [
|
|
92
|
+
{
|
|
93
|
+
label: "Carbon Saved",
|
|
94
|
+
value: `${B}`,
|
|
95
|
+
sub: "kg CO2 this year",
|
|
96
|
+
icon: d,
|
|
97
|
+
color: "text-primary"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
label: "Completed",
|
|
101
|
+
value: `${V}`,
|
|
102
|
+
sub: "actions this month",
|
|
103
|
+
icon: o,
|
|
104
|
+
color: "text-green-600"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
label: "Active Streaks",
|
|
108
|
+
value: `${H}`,
|
|
109
|
+
sub: "ongoing habits",
|
|
110
|
+
icon: g,
|
|
111
|
+
color: "text-blue-600"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
label: "Impact Score",
|
|
115
|
+
value: "87",
|
|
116
|
+
sub: "environmental rating",
|
|
117
|
+
icon: n,
|
|
118
|
+
color: "text-purple-600"
|
|
119
|
+
}
|
|
120
|
+
].map((e) => {
|
|
121
|
+
let t = e.icon;
|
|
122
|
+
return /* @__PURE__ */ C(x, { children: /* @__PURE__ */ w(S, {
|
|
123
|
+
className: "space-y-2 p-6",
|
|
124
|
+
children: [
|
|
125
|
+
/* @__PURE__ */ w("div", {
|
|
126
|
+
className: `flex items-center gap-2 ${e.color}`,
|
|
127
|
+
children: [/* @__PURE__ */ C(t, { className: "h-5 w-5" }), /* @__PURE__ */ C("span", {
|
|
128
|
+
className: "font-semibold",
|
|
129
|
+
children: e.label
|
|
130
|
+
})]
|
|
131
|
+
}),
|
|
132
|
+
/* @__PURE__ */ C("div", {
|
|
133
|
+
className: "text-3xl font-bold",
|
|
134
|
+
children: e.value
|
|
135
|
+
}),
|
|
136
|
+
/* @__PURE__ */ C("div", {
|
|
137
|
+
className: "text-sm text-muted-foreground",
|
|
138
|
+
children: e.sub
|
|
139
|
+
})
|
|
140
|
+
]
|
|
141
|
+
}) }, e.label);
|
|
142
|
+
})
|
|
143
|
+
}),
|
|
144
|
+
/* @__PURE__ */ C("div", {
|
|
145
|
+
className: "flex gap-2 border-b",
|
|
146
|
+
children: [
|
|
147
|
+
"actions",
|
|
148
|
+
"goals",
|
|
149
|
+
"progress"
|
|
150
|
+
].map((e) => /* @__PURE__ */ w(b, {
|
|
151
|
+
variant: D === e ? "default" : "ghost",
|
|
152
|
+
onClick: () => O(e),
|
|
153
|
+
className: "capitalize",
|
|
154
|
+
children: [
|
|
155
|
+
e === "actions" && /* @__PURE__ */ C(o, { className: "mr-2 h-4 w-4" }),
|
|
156
|
+
e === "goals" && /* @__PURE__ */ C(m, { className: "mr-2 h-4 w-4" }),
|
|
157
|
+
e === "progress" && /* @__PURE__ */ C(g, { className: "mr-2 h-4 w-4" }),
|
|
158
|
+
e
|
|
159
|
+
]
|
|
160
|
+
}, e))
|
|
161
|
+
}),
|
|
162
|
+
D === "actions" && /* @__PURE__ */ w("div", {
|
|
163
|
+
className: "space-y-6",
|
|
164
|
+
children: [/* @__PURE__ */ w("div", {
|
|
165
|
+
className: "flex flex-col justify-between gap-4 lg:flex-row",
|
|
166
|
+
children: [/* @__PURE__ */ C("div", {
|
|
167
|
+
className: "flex flex-wrap gap-2",
|
|
168
|
+
children: N.map(({ value: e, label: t, icon: n }) => /* @__PURE__ */ w(b, {
|
|
169
|
+
variant: k === e ? "default" : "outline",
|
|
170
|
+
size: "sm",
|
|
171
|
+
onClick: () => A(e),
|
|
172
|
+
className: "flex items-center gap-2",
|
|
173
|
+
children: [/* @__PURE__ */ C(n, { className: "h-4 w-4" }), t]
|
|
174
|
+
}, e))
|
|
175
|
+
}), /* @__PURE__ */ w("div", {
|
|
176
|
+
className: "flex gap-2",
|
|
177
|
+
children: [P.map((e) => /* @__PURE__ */ C(b, {
|
|
178
|
+
variant: j === e ? "default" : "outline",
|
|
179
|
+
size: "sm",
|
|
180
|
+
onClick: () => M(e),
|
|
181
|
+
className: "capitalize",
|
|
182
|
+
children: e.replace("-", " ")
|
|
183
|
+
}, e)), /* @__PURE__ */ w(b, { children: [/* @__PURE__ */ C(f, { className: "mr-2 h-4 w-4" }), "Add Action"] })]
|
|
184
|
+
})]
|
|
185
|
+
}), /* @__PURE__ */ C("div", {
|
|
186
|
+
className: "grid gap-4",
|
|
187
|
+
children: F.map((e) => /* @__PURE__ */ C(x, { children: /* @__PURE__ */ w(S, {
|
|
188
|
+
className: "p-6",
|
|
189
|
+
children: [
|
|
190
|
+
/* @__PURE__ */ w("div", {
|
|
191
|
+
className: "mb-4 flex items-start justify-between",
|
|
192
|
+
children: [/* @__PURE__ */ w("div", {
|
|
193
|
+
className: "flex items-center gap-3",
|
|
194
|
+
children: [/* @__PURE__ */ C("div", {
|
|
195
|
+
className: "flex h-10 w-10 items-center justify-center rounded-lg bg-primary/10",
|
|
196
|
+
children: R(e.category)
|
|
197
|
+
}), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("h3", {
|
|
198
|
+
className: "text-lg font-semibold",
|
|
199
|
+
children: e.title
|
|
200
|
+
}), /* @__PURE__ */ C("p", {
|
|
201
|
+
className: "line-clamp-2 text-sm text-muted-foreground",
|
|
202
|
+
children: e.description
|
|
203
|
+
})] })]
|
|
204
|
+
}), /* @__PURE__ */ w("div", {
|
|
205
|
+
className: "flex items-center gap-2",
|
|
206
|
+
children: [/* @__PURE__ */ w(y, {
|
|
207
|
+
className: I(e.impact),
|
|
208
|
+
children: [e.impact, " impact"]
|
|
209
|
+
}), /* @__PURE__ */ w(y, {
|
|
210
|
+
className: L(e.status),
|
|
211
|
+
children: [z(e.status), /* @__PURE__ */ C("span", {
|
|
212
|
+
className: "ml-1",
|
|
213
|
+
children: e.status.replace("-", " ")
|
|
214
|
+
})]
|
|
215
|
+
})]
|
|
216
|
+
})]
|
|
217
|
+
}),
|
|
218
|
+
/* @__PURE__ */ w("div", {
|
|
219
|
+
className: "mb-4 grid grid-cols-2 gap-4 text-sm md:grid-cols-4",
|
|
220
|
+
children: [
|
|
221
|
+
/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("span", {
|
|
222
|
+
className: "text-muted-foreground",
|
|
223
|
+
children: "Carbon Saved"
|
|
224
|
+
}), /* @__PURE__ */ w("div", {
|
|
225
|
+
className: "font-semibold",
|
|
226
|
+
children: [e.carbonSaved, " kg CO2"]
|
|
227
|
+
})] }),
|
|
228
|
+
/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("span", {
|
|
229
|
+
className: "text-muted-foreground",
|
|
230
|
+
children: "Frequency"
|
|
231
|
+
}), /* @__PURE__ */ C("div", {
|
|
232
|
+
className: "font-semibold capitalize",
|
|
233
|
+
children: e.frequency
|
|
234
|
+
})] }),
|
|
235
|
+
/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("span", {
|
|
236
|
+
className: "text-muted-foreground",
|
|
237
|
+
children: "Points"
|
|
238
|
+
}), /* @__PURE__ */ C("div", {
|
|
239
|
+
className: "font-semibold",
|
|
240
|
+
children: e.points
|
|
241
|
+
})] }),
|
|
242
|
+
e.streak != null && e.streak > 0 && /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("span", {
|
|
243
|
+
className: "text-muted-foreground",
|
|
244
|
+
children: "Streak"
|
|
245
|
+
}), /* @__PURE__ */ w("div", {
|
|
246
|
+
className: "font-semibold",
|
|
247
|
+
children: [e.streak, " days"]
|
|
248
|
+
})] })
|
|
249
|
+
]
|
|
250
|
+
}),
|
|
251
|
+
/* @__PURE__ */ w("div", {
|
|
252
|
+
className: "flex items-center justify-between",
|
|
253
|
+
children: [/* @__PURE__ */ w("div", {
|
|
254
|
+
className: "flex items-center gap-4 text-sm text-muted-foreground",
|
|
255
|
+
children: [/* @__PURE__ */ w("div", {
|
|
256
|
+
className: "flex items-center gap-1",
|
|
257
|
+
children: [/* @__PURE__ */ C(r, { className: "h-4 w-4" }), /* @__PURE__ */ w("span", { children: ["Started ", new Date(e.startDate).toLocaleDateString()] })]
|
|
258
|
+
}), e.targetDate && /* @__PURE__ */ w("div", {
|
|
259
|
+
className: "flex items-center gap-1",
|
|
260
|
+
children: [/* @__PURE__ */ C(m, { className: "h-4 w-4" }), /* @__PURE__ */ w("span", { children: ["Due ", new Date(e.targetDate).toLocaleDateString()] })]
|
|
261
|
+
})]
|
|
262
|
+
}), /* @__PURE__ */ w("div", {
|
|
263
|
+
className: "flex gap-2",
|
|
264
|
+
children: [
|
|
265
|
+
/* @__PURE__ */ C(b, {
|
|
266
|
+
variant: "outline",
|
|
267
|
+
size: "sm",
|
|
268
|
+
children: /* @__PURE__ */ C(l, { className: "h-4 w-4" })
|
|
269
|
+
}),
|
|
270
|
+
/* @__PURE__ */ C(b, {
|
|
271
|
+
variant: "outline",
|
|
272
|
+
size: "sm",
|
|
273
|
+
children: /* @__PURE__ */ C(h, { className: "h-4 w-4" })
|
|
274
|
+
}),
|
|
275
|
+
e.status !== "completed" && /* @__PURE__ */ C(b, {
|
|
276
|
+
size: "sm",
|
|
277
|
+
children: "Mark Complete"
|
|
278
|
+
})
|
|
279
|
+
]
|
|
280
|
+
})]
|
|
281
|
+
})
|
|
282
|
+
]
|
|
283
|
+
}) }, e.id))
|
|
284
|
+
})]
|
|
285
|
+
}),
|
|
286
|
+
D === "goals" && /* @__PURE__ */ w("div", {
|
|
287
|
+
className: "space-y-6",
|
|
288
|
+
children: [/* @__PURE__ */ w("div", {
|
|
289
|
+
className: "flex items-center justify-between",
|
|
290
|
+
children: [/* @__PURE__ */ C("h2", {
|
|
291
|
+
className: "text-2xl font-bold",
|
|
292
|
+
children: "Environmental Goals"
|
|
293
|
+
}), /* @__PURE__ */ w(b, { children: [/* @__PURE__ */ C(f, { className: "mr-2 h-4 w-4" }), "Add Goal"] })]
|
|
294
|
+
}), /* @__PURE__ */ C("div", {
|
|
295
|
+
className: "grid gap-6",
|
|
296
|
+
children: E.map((e) => /* @__PURE__ */ C(x, { children: /* @__PURE__ */ w(S, {
|
|
297
|
+
className: "p-6",
|
|
298
|
+
children: [
|
|
299
|
+
/* @__PURE__ */ w("div", {
|
|
300
|
+
className: "mb-4 flex items-start justify-between",
|
|
301
|
+
children: [/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("h3", {
|
|
302
|
+
className: "text-lg font-semibold",
|
|
303
|
+
children: e.title
|
|
304
|
+
}), /* @__PURE__ */ C("p", {
|
|
305
|
+
className: "text-sm text-muted-foreground",
|
|
306
|
+
children: e.description
|
|
307
|
+
})] }), /* @__PURE__ */ C(y, {
|
|
308
|
+
variant: "outline",
|
|
309
|
+
children: e.category
|
|
310
|
+
})]
|
|
311
|
+
}),
|
|
312
|
+
/* @__PURE__ */ w("div", {
|
|
313
|
+
className: "mb-4 space-y-2",
|
|
314
|
+
children: [/* @__PURE__ */ w("div", {
|
|
315
|
+
className: "flex justify-between text-sm",
|
|
316
|
+
children: [/* @__PURE__ */ C("span", { children: "Progress" }), /* @__PURE__ */ w("span", { children: [
|
|
317
|
+
e.currentValue,
|
|
318
|
+
" / ",
|
|
319
|
+
e.targetValue,
|
|
320
|
+
" ",
|
|
321
|
+
e.unit
|
|
322
|
+
] })]
|
|
323
|
+
}), /* @__PURE__ */ C("div", {
|
|
324
|
+
className: "h-3 w-full rounded-full bg-muted",
|
|
325
|
+
children: /* @__PURE__ */ C("div", {
|
|
326
|
+
className: "h-3 rounded-full bg-primary transition-all",
|
|
327
|
+
style: { width: `${Math.min(e.currentValue / e.targetValue * 100, 100)}%` }
|
|
328
|
+
})
|
|
329
|
+
})]
|
|
330
|
+
}),
|
|
331
|
+
/* @__PURE__ */ w("div", {
|
|
332
|
+
className: "flex items-center justify-between",
|
|
333
|
+
children: [/* @__PURE__ */ w("div", {
|
|
334
|
+
className: "flex items-center gap-1 text-sm text-muted-foreground",
|
|
335
|
+
children: [/* @__PURE__ */ C(r, { className: "h-4 w-4" }), /* @__PURE__ */ w("span", { children: ["Deadline: ", new Date(e.deadline).toLocaleDateString()] })]
|
|
336
|
+
}), /* @__PURE__ */ w("div", {
|
|
337
|
+
className: "flex gap-2",
|
|
338
|
+
children: [/* @__PURE__ */ C(b, {
|
|
339
|
+
variant: "outline",
|
|
340
|
+
size: "sm",
|
|
341
|
+
children: /* @__PURE__ */ C(l, { className: "h-4 w-4" })
|
|
342
|
+
}), /* @__PURE__ */ C(b, {
|
|
343
|
+
size: "sm",
|
|
344
|
+
children: "Update Progress"
|
|
345
|
+
})]
|
|
346
|
+
})]
|
|
347
|
+
})
|
|
348
|
+
]
|
|
349
|
+
}) }, e.id))
|
|
350
|
+
})]
|
|
351
|
+
}),
|
|
352
|
+
D === "progress" && /* @__PURE__ */ w("div", {
|
|
353
|
+
className: "space-y-8",
|
|
354
|
+
children: [
|
|
355
|
+
/* @__PURE__ */ w("div", {
|
|
356
|
+
className: "space-y-4 text-center",
|
|
357
|
+
children: [/* @__PURE__ */ C("h2", {
|
|
358
|
+
className: "text-3xl font-bold",
|
|
359
|
+
children: "Your Environmental Journey"
|
|
360
|
+
}), /* @__PURE__ */ C("p", {
|
|
361
|
+
className: "mx-auto max-w-2xl text-muted-foreground",
|
|
362
|
+
children: "Track your progress over time and see the impact of your environmental actions."
|
|
363
|
+
})]
|
|
364
|
+
}),
|
|
365
|
+
/* @__PURE__ */ w("div", {
|
|
366
|
+
className: "grid grid-cols-1 gap-8 md:grid-cols-2",
|
|
367
|
+
children: [/* @__PURE__ */ C(x, { children: /* @__PURE__ */ w(S, {
|
|
368
|
+
className: "p-8 text-center",
|
|
369
|
+
children: [/* @__PURE__ */ C("h3", {
|
|
370
|
+
className: "mb-4 text-xl font-semibold",
|
|
371
|
+
children: "Carbon Footprint Reduction"
|
|
372
|
+
}), /* @__PURE__ */ C("div", {
|
|
373
|
+
className: "flex h-48 items-center justify-center text-muted-foreground",
|
|
374
|
+
children: "📊 Chart showing monthly carbon savings"
|
|
375
|
+
})]
|
|
376
|
+
}) }), /* @__PURE__ */ C(x, { children: /* @__PURE__ */ w(S, {
|
|
377
|
+
className: "p-8 text-center",
|
|
378
|
+
children: [/* @__PURE__ */ C("h3", {
|
|
379
|
+
className: "mb-4 text-xl font-semibold",
|
|
380
|
+
children: "Action Completion Rate"
|
|
381
|
+
}), /* @__PURE__ */ C("div", {
|
|
382
|
+
className: "flex h-48 items-center justify-center text-muted-foreground",
|
|
383
|
+
children: "📈 Chart showing action completion over time"
|
|
384
|
+
})]
|
|
385
|
+
}) })]
|
|
386
|
+
}),
|
|
387
|
+
/* @__PURE__ */ C(x, { children: /* @__PURE__ */ w(S, {
|
|
388
|
+
className: "p-8",
|
|
389
|
+
children: [/* @__PURE__ */ C("h3", {
|
|
390
|
+
className: "mb-6 text-center text-xl font-semibold",
|
|
391
|
+
children: "Impact Summary"
|
|
392
|
+
}), /* @__PURE__ */ w("div", {
|
|
393
|
+
className: "grid grid-cols-1 gap-6 text-center md:grid-cols-3",
|
|
394
|
+
children: [
|
|
395
|
+
/* @__PURE__ */ w("div", { children: [
|
|
396
|
+
/* @__PURE__ */ C("div", {
|
|
397
|
+
className: "mb-2 text-3xl",
|
|
398
|
+
children: "🌍"
|
|
399
|
+
}),
|
|
400
|
+
/* @__PURE__ */ w("div", {
|
|
401
|
+
className: "text-2xl font-bold text-green-600",
|
|
402
|
+
children: [B, " kg"]
|
|
403
|
+
}),
|
|
404
|
+
/* @__PURE__ */ C("div", {
|
|
405
|
+
className: "text-sm text-muted-foreground",
|
|
406
|
+
children: "CO2 Saved This Year"
|
|
407
|
+
})
|
|
408
|
+
] }),
|
|
409
|
+
/* @__PURE__ */ w("div", { children: [
|
|
410
|
+
/* @__PURE__ */ C("div", {
|
|
411
|
+
className: "mb-2 text-3xl",
|
|
412
|
+
children: "🏆"
|
|
413
|
+
}),
|
|
414
|
+
/* @__PURE__ */ C("div", {
|
|
415
|
+
className: "text-2xl font-bold text-blue-600",
|
|
416
|
+
children: "23"
|
|
417
|
+
}),
|
|
418
|
+
/* @__PURE__ */ C("div", {
|
|
419
|
+
className: "text-sm text-muted-foreground",
|
|
420
|
+
children: "Actions Completed"
|
|
421
|
+
})
|
|
422
|
+
] }),
|
|
423
|
+
/* @__PURE__ */ w("div", { children: [
|
|
424
|
+
/* @__PURE__ */ C("div", {
|
|
425
|
+
className: "mb-2 text-3xl",
|
|
426
|
+
children: "⚡"
|
|
427
|
+
}),
|
|
428
|
+
/* @__PURE__ */ C("div", {
|
|
429
|
+
className: "text-2xl font-bold text-purple-600",
|
|
430
|
+
children: "15%"
|
|
431
|
+
}),
|
|
432
|
+
/* @__PURE__ */ C("div", {
|
|
433
|
+
className: "text-sm text-muted-foreground",
|
|
434
|
+
children: "Energy Reduction"
|
|
435
|
+
})
|
|
436
|
+
] })
|
|
437
|
+
]
|
|
438
|
+
})]
|
|
439
|
+
}) })
|
|
440
|
+
]
|
|
441
|
+
})
|
|
442
|
+
]
|
|
443
|
+
})
|
|
444
|
+
});
|
|
445
|
+
}
|
|
446
|
+
//#endregion
|
|
447
|
+
export { T as ActionTrackerPage };
|
|
448
|
+
|
|
449
|
+
//# sourceMappingURL=ActionTrackerPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionTrackerPage.js","names":[],"sources":["../../../src/ecoimpacthub/pages/ActionTrackerPage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { Badge, Button, Card, CardContent } from '@burdenoff/fe-libs/ui';\nimport {\n CheckSquare,\n Plus,\n Calendar,\n Target,\n TrendingUp,\n Award,\n Leaf,\n Droplets,\n Zap,\n Recycle,\n Car,\n Home,\n Clock,\n Check,\n X,\n Edit3,\n Trash2,\n} from 'lucide-react';\nimport { useEcoImpactHubStore } from '../store/ecoimpacthubStore';\n\ntype ActionCategory =\n | 'all'\n | 'energy'\n | 'transportation'\n | 'waste'\n | 'water'\n | 'consumption'\n | 'advocacy';\ntype ActionStatus = 'all' | 'planned' | 'in-progress' | 'completed' | 'paused';\n\nexport function ActionTrackerPage() {\n const { actions, goals } = useEcoImpactHubStore();\n const [activeTab, setActiveTab] = useState<'actions' | 'goals' | 'progress'>('actions');\n const [selectedCategory, setSelectedCategory] = useState<ActionCategory>('all');\n const [selectedStatus, setSelectedStatus] = useState<ActionStatus>('all');\n\n const categories: { value: ActionCategory; label: string; icon: typeof Target }[] = [\n { value: 'all', label: 'All', icon: Target },\n { value: 'energy', label: 'Energy', icon: Zap },\n { value: 'transportation', label: 'Transport', icon: Car },\n { value: 'waste', label: 'Waste', icon: Recycle },\n { value: 'water', label: 'Water', icon: Droplets },\n { value: 'consumption', label: 'Consumption', icon: Home },\n { value: 'advocacy', label: 'Advocacy', icon: Award },\n ];\n\n const statuses: ActionStatus[] = ['all', 'planned', 'in-progress', 'completed', 'paused'];\n\n const filteredActions = actions.filter(\n (action) =>\n (selectedCategory === 'all' || action.category === selectedCategory) &&\n (selectedStatus === 'all' || action.status === selectedStatus)\n );\n\n const getImpactColor = (impact: string) => {\n switch (impact) {\n case 'low':\n return 'bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-300';\n case 'medium':\n return 'bg-amber-100 text-amber-800 dark:bg-amber-900/30 dark:text-amber-300';\n case 'high':\n return 'bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-300';\n default:\n return 'bg-muted text-muted-foreground';\n }\n };\n\n const getStatusColor = (status: string) => {\n switch (status) {\n case 'completed':\n return 'bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-300';\n case 'in-progress':\n return 'bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-300';\n case 'planned':\n return 'bg-muted text-muted-foreground';\n case 'paused':\n return 'bg-amber-100 text-amber-800 dark:bg-amber-900/30 dark:text-amber-300';\n default:\n return 'bg-muted text-muted-foreground';\n }\n };\n\n const getCategoryIcon = (category: string) => {\n const found = categories.find((cat) => cat.value === category);\n const Icon = found?.icon ?? Target;\n return <Icon className=\"h-4 w-4\" />;\n };\n\n const getStatusIcon = (status: string) => {\n switch (status) {\n case 'completed':\n return <Check className=\"h-4 w-4\" />;\n case 'in-progress':\n return <Clock className=\"h-4 w-4\" />;\n case 'planned':\n return <Calendar className=\"h-4 w-4\" />;\n case 'paused':\n return <X className=\"h-4 w-4\" />;\n default:\n return <Clock className=\"h-4 w-4\" />;\n }\n };\n\n const totalCarbonSaved = actions.reduce((total, action) => total + action.carbonSaved, 0);\n const completedActions = actions.filter((action) => action.status === 'completed').length;\n const activeStreaks = actions.filter((action) => action.streak && action.streak > 0).length;\n\n return (\n <div className=\"min-h-screen p-4\">\n <div className=\"mx-auto max-w-7xl space-y-8\">\n {/* Header */}\n <div className=\"space-y-4 text-center\">\n <h1 className=\"text-4xl font-bold\">Action Tracker</h1>\n <p className=\"mx-auto max-w-3xl text-xl text-muted-foreground\">\n Track your environmental actions, monitor your impact, and achieve your sustainability\n goals.\n </p>\n </div>\n\n {/* Impact Stats */}\n <div className=\"grid grid-cols-1 gap-6 md:grid-cols-4\">\n {[\n {\n label: 'Carbon Saved',\n value: `${totalCarbonSaved}`,\n sub: 'kg CO2 this year',\n icon: Leaf,\n color: 'text-primary',\n },\n {\n label: 'Completed',\n value: `${completedActions}`,\n sub: 'actions this month',\n icon: CheckSquare,\n color: 'text-green-600',\n },\n {\n label: 'Active Streaks',\n value: `${activeStreaks}`,\n sub: 'ongoing habits',\n icon: TrendingUp,\n color: 'text-blue-600',\n },\n {\n label: 'Impact Score',\n value: '87',\n sub: 'environmental rating',\n icon: Award,\n color: 'text-purple-600',\n },\n ].map((stat) => {\n const Icon = stat.icon;\n return (\n <Card key={stat.label}>\n <CardContent className=\"space-y-2 p-6\">\n <div className={`flex items-center gap-2 ${stat.color}`}>\n <Icon className=\"h-5 w-5\" />\n <span className=\"font-semibold\">{stat.label}</span>\n </div>\n <div className=\"text-3xl font-bold\">{stat.value}</div>\n <div className=\"text-sm text-muted-foreground\">{stat.sub}</div>\n </CardContent>\n </Card>\n );\n })}\n </div>\n\n {/* Navigation Tabs */}\n <div className=\"flex gap-2 border-b\">\n {(['actions', 'goals', 'progress'] as const).map((tab) => (\n <Button\n key={tab}\n variant={activeTab === tab ? 'default' : 'ghost'}\n onClick={() => setActiveTab(tab)}\n className=\"capitalize\"\n >\n {tab === 'actions' && <CheckSquare className=\"mr-2 h-4 w-4\" />}\n {tab === 'goals' && <Target className=\"mr-2 h-4 w-4\" />}\n {tab === 'progress' && <TrendingUp className=\"mr-2 h-4 w-4\" />}\n {tab}\n </Button>\n ))}\n </div>\n\n {activeTab === 'actions' && (\n <div className=\"space-y-6\">\n <div className=\"flex flex-col justify-between gap-4 lg:flex-row\">\n <div className=\"flex flex-wrap gap-2\">\n {categories.map(({ value, label, icon: Icon }) => (\n <Button\n key={value}\n variant={selectedCategory === value ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() => setSelectedCategory(value)}\n className=\"flex items-center gap-2\"\n >\n <Icon className=\"h-4 w-4\" />\n {label}\n </Button>\n ))}\n </div>\n <div className=\"flex gap-2\">\n {statuses.map((status) => (\n <Button\n key={status}\n variant={selectedStatus === status ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() => setSelectedStatus(status)}\n className=\"capitalize\"\n >\n {status.replace('-', ' ')}\n </Button>\n ))}\n <Button>\n <Plus className=\"mr-2 h-4 w-4\" />\n Add Action\n </Button>\n </div>\n </div>\n\n <div className=\"grid gap-4\">\n {filteredActions.map((action) => (\n <Card key={action.id}>\n <CardContent className=\"p-6\">\n <div className=\"mb-4 flex items-start justify-between\">\n <div className=\"flex items-center gap-3\">\n <div className=\"flex h-10 w-10 items-center justify-center rounded-lg bg-primary/10\">\n {getCategoryIcon(action.category)}\n </div>\n <div>\n <h3 className=\"text-lg font-semibold\">{action.title}</h3>\n <p className=\"line-clamp-2 text-sm text-muted-foreground\">\n {action.description}\n </p>\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n <Badge className={getImpactColor(action.impact)}>\n {action.impact} impact\n </Badge>\n <Badge className={getStatusColor(action.status)}>\n {getStatusIcon(action.status)}\n <span className=\"ml-1\">{action.status.replace('-', ' ')}</span>\n </Badge>\n </div>\n </div>\n\n <div className=\"mb-4 grid grid-cols-2 gap-4 text-sm md:grid-cols-4\">\n <div>\n <span className=\"text-muted-foreground\">Carbon Saved</span>\n <div className=\"font-semibold\">{action.carbonSaved} kg CO2</div>\n </div>\n <div>\n <span className=\"text-muted-foreground\">Frequency</span>\n <div className=\"font-semibold capitalize\">{action.frequency}</div>\n </div>\n <div>\n <span className=\"text-muted-foreground\">Points</span>\n <div className=\"font-semibold\">{action.points}</div>\n </div>\n {action.streak != null && action.streak > 0 && (\n <div>\n <span className=\"text-muted-foreground\">Streak</span>\n <div className=\"font-semibold\">{action.streak} days</div>\n </div>\n )}\n </div>\n\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-4 text-sm text-muted-foreground\">\n <div className=\"flex items-center gap-1\">\n <Calendar className=\"h-4 w-4\" />\n <span>Started {new Date(action.startDate).toLocaleDateString()}</span>\n </div>\n {action.targetDate && (\n <div className=\"flex items-center gap-1\">\n <Target className=\"h-4 w-4\" />\n <span>Due {new Date(action.targetDate).toLocaleDateString()}</span>\n </div>\n )}\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n <Edit3 className=\"h-4 w-4\" />\n </Button>\n <Button variant=\"outline\" size=\"sm\">\n <Trash2 className=\"h-4 w-4\" />\n </Button>\n {action.status !== 'completed' && <Button size=\"sm\">Mark Complete</Button>}\n </div>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n )}\n\n {activeTab === 'goals' && (\n <div className=\"space-y-6\">\n <div className=\"flex items-center justify-between\">\n <h2 className=\"text-2xl font-bold\">Environmental Goals</h2>\n <Button>\n <Plus className=\"mr-2 h-4 w-4\" />\n Add Goal\n </Button>\n </div>\n\n <div className=\"grid gap-6\">\n {goals.map((goal) => (\n <Card key={goal.id}>\n <CardContent className=\"p-6\">\n <div className=\"mb-4 flex items-start justify-between\">\n <div>\n <h3 className=\"text-lg font-semibold\">{goal.title}</h3>\n <p className=\"text-sm text-muted-foreground\">{goal.description}</p>\n </div>\n <Badge variant=\"outline\">{goal.category}</Badge>\n </div>\n\n <div className=\"mb-4 space-y-2\">\n <div className=\"flex justify-between text-sm\">\n <span>Progress</span>\n <span>\n {goal.currentValue} / {goal.targetValue} {goal.unit}\n </span>\n </div>\n <div className=\"h-3 w-full rounded-full bg-muted\">\n <div\n className=\"h-3 rounded-full bg-primary transition-all\"\n style={{\n width: `${Math.min((goal.currentValue / goal.targetValue) * 100, 100)}%`,\n }}\n />\n </div>\n </div>\n\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-1 text-sm text-muted-foreground\">\n <Calendar className=\"h-4 w-4\" />\n <span>Deadline: {new Date(goal.deadline).toLocaleDateString()}</span>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n <Edit3 className=\"h-4 w-4\" />\n </Button>\n <Button size=\"sm\">Update Progress</Button>\n </div>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n )}\n\n {activeTab === 'progress' && (\n <div className=\"space-y-8\">\n <div className=\"space-y-4 text-center\">\n <h2 className=\"text-3xl font-bold\">Your Environmental Journey</h2>\n <p className=\"mx-auto max-w-2xl text-muted-foreground\">\n Track your progress over time and see the impact of your environmental actions.\n </p>\n </div>\n\n <div className=\"grid grid-cols-1 gap-8 md:grid-cols-2\">\n <Card>\n <CardContent className=\"p-8 text-center\">\n <h3 className=\"mb-4 text-xl font-semibold\">Carbon Footprint Reduction</h3>\n <div className=\"flex h-48 items-center justify-center text-muted-foreground\">\n 📊 Chart showing monthly carbon savings\n </div>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-8 text-center\">\n <h3 className=\"mb-4 text-xl font-semibold\">Action Completion Rate</h3>\n <div className=\"flex h-48 items-center justify-center text-muted-foreground\">\n 📈 Chart showing action completion over time\n </div>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardContent className=\"p-8\">\n <h3 className=\"mb-6 text-center text-xl font-semibold\">Impact Summary</h3>\n <div className=\"grid grid-cols-1 gap-6 text-center md:grid-cols-3\">\n <div>\n <div className=\"mb-2 text-3xl\">🌍</div>\n <div className=\"text-2xl font-bold text-green-600\">{totalCarbonSaved} kg</div>\n <div className=\"text-sm text-muted-foreground\">CO2 Saved This Year</div>\n </div>\n <div>\n <div className=\"mb-2 text-3xl\">🏆</div>\n <div className=\"text-2xl font-bold text-blue-600\">23</div>\n <div className=\"text-sm text-muted-foreground\">Actions Completed</div>\n </div>\n <div>\n <div className=\"mb-2 text-3xl\">⚡</div>\n <div className=\"text-2xl font-bold text-purple-600\">15%</div>\n <div className=\"text-sm text-muted-foreground\">Energy Reduction</div>\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChallengesPage.d.ts","sourceRoot":"","sources":["../../../src/ecoimpacthub/pages/ChallengesPage.tsx"],"names":[],"mappings":"AAOA,wBAAgB,cAAc,4CAmR7B"}
|