@burdenoff/microfe-technospam 2026.828.1 → 2026.830.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.
Files changed (44) hide show
  1. package/dist/index.js +4 -3
  2. package/dist/technospam/TechnoSpamRoot.js +4 -4
  3. package/dist/technospam/components/PageLayout.d.ts.map +1 -1
  4. package/dist/technospam/components/PageLayout.js +24 -23
  5. package/dist/technospam/components/PageLayout.js.map +1 -1
  6. package/dist/technospam/components/StateViews.d.ts +1 -1
  7. package/dist/technospam/components/StateViews.d.ts.map +1 -1
  8. package/dist/technospam/components/StateViews.js +28 -26
  9. package/dist/technospam/components/StateViews.js.map +1 -1
  10. package/dist/technospam/components/TagInput.d.ts +1 -1
  11. package/dist/technospam/components/TagInput.d.ts.map +1 -1
  12. package/dist/technospam/components/TagInput.js +39 -34
  13. package/dist/technospam/components/TagInput.js.map +1 -1
  14. package/dist/technospam/hooks/useTr.d.ts +17 -0
  15. package/dist/technospam/hooks/useTr.d.ts.map +1 -0
  16. package/dist/technospam/hooks/useTr.js +12 -0
  17. package/dist/technospam/hooks/useTr.js.map +1 -0
  18. package/dist/technospam/index.d.ts +1 -0
  19. package/dist/technospam/index.d.ts.map +1 -1
  20. package/dist/technospam/index.js +1 -0
  21. package/dist/technospam/pages/AnalyticsAnalyticsPagePage.d.ts.map +1 -1
  22. package/dist/technospam/pages/AnalyticsAnalyticsPagePage.js +198 -189
  23. package/dist/technospam/pages/AnalyticsAnalyticsPagePage.js.map +1 -1
  24. package/dist/technospam/pages/ApplicationsProblemsPagePage.d.ts.map +1 -1
  25. package/dist/technospam/pages/ApplicationsProblemsPagePage.js +165 -163
  26. package/dist/technospam/pages/ApplicationsProblemsPagePage.js.map +1 -1
  27. package/dist/technospam/pages/CoursesCoursesPagePage.d.ts.map +1 -1
  28. package/dist/technospam/pages/CoursesCoursesPagePage.js +117 -113
  29. package/dist/technospam/pages/CoursesCoursesPagePage.js.map +1 -1
  30. package/dist/technospam/pages/DashboardDashboardPagePage.d.ts.map +1 -1
  31. package/dist/technospam/pages/DashboardDashboardPagePage.js +211 -193
  32. package/dist/technospam/pages/DashboardDashboardPagePage.js.map +1 -1
  33. package/dist/technospam/pages/HackathonsHackathonsPagePage.d.ts.map +1 -1
  34. package/dist/technospam/pages/HackathonsHackathonsPagePage.js +110 -110
  35. package/dist/technospam/pages/HackathonsHackathonsPagePage.js.map +1 -1
  36. package/dist/technospam/pages/MentorshipMentorsPagePage.d.ts.map +1 -1
  37. package/dist/technospam/pages/MentorshipMentorsPagePage.js +174 -160
  38. package/dist/technospam/pages/MentorshipMentorsPagePage.js.map +1 -1
  39. package/dist/technospam/pages/MentorshipSessionsPagePage.d.ts.map +1 -1
  40. package/dist/technospam/pages/MentorshipSessionsPagePage.js +156 -151
  41. package/dist/technospam/pages/MentorshipSessionsPagePage.js.map +1 -1
  42. package/dist/technospam/utils/i18n.js +1 -1
  43. package/dist/technospam/utils/i18n.js.map +1 -1
  44. package/package.json +1 -1
@@ -1,234 +1,240 @@
1
1
  import { useTechnoSpam as e, useTechnoSpamNavigate as t } from "../providers/TechnoSpamProvider.js";
2
2
  import { useTechnoSpamAnalytics as n } from "../hooks/useTechnoSpamAnalytics.js";
3
- import { cn as r } from "../utils/cn.js";
4
- import { PageLayout as i } from "../components/PageLayout.js";
5
- import { StatCard as a } from "../components/StatCard.js";
6
- import { coverGradient as o, topicIcon as s } from "../components/MediaCover.js";
7
- import { formatMoneyFromMinorUnits as c } from "../utils/format.js";
8
- import { LoadMore as l } from "../components/LoadMore.js";
9
- import { EmptyView as u, ErrorView as d, LoadingGrid as f } from "../components/StateViews.js";
3
+ import { useTr as r } from "../hooks/useTr.js";
4
+ import { cn as i } from "../utils/cn.js";
5
+ import { PageLayout as a } from "../components/PageLayout.js";
6
+ import { StatCard as o } from "../components/StatCard.js";
7
+ import { coverGradient as s, topicIcon as c } from "../components/MediaCover.js";
8
+ import { formatMoneyFromMinorUnits as l } from "../utils/format.js";
9
+ import { LoadMore as u } from "../components/LoadMore.js";
10
+ import { EmptyView as d, ErrorView as f, LoadingGrid as p } from "../components/StateViews.js";
10
11
  import "../components/index.js";
11
- import { notify as p } from "../lib/toast.js";
12
- import { pageArg as m, useBecomeMentor as h, useMentorsQuery as g, usePageLimit as _ } from "../api/technospamApi.js";
13
- import { createElement as v, useMemo as y, useState as b } from "react";
14
- import { Award as x, MessageSquare as S, Search as C, Sparkles as w, Star as T, UserPlus as E, Users as D, X as O } from "lucide-react";
15
- import { jsx as k, jsxs as A } from "react/jsx-runtime";
16
- import { Badge as j, Button as M, GlassCard as N, Input as P, Textarea as F } from "@burdenoff/fe-libs/ui";
12
+ import { notify as m } from "../lib/toast.js";
13
+ import { pageArg as h, useBecomeMentor as g, useMentorsQuery as _, usePageLimit as v } from "../api/technospamApi.js";
14
+ import { createElement as y, useMemo as b, useState as x } from "react";
15
+ import { Award as S, MessageSquare as C, Search as w, Sparkles as T, Star as E, UserPlus as D, Users as O, X as k } from "lucide-react";
16
+ import { jsx as A, jsxs as j } from "react/jsx-runtime";
17
+ import { Badge as M, Button as N, GlassCard as P, Input as F, Textarea as I } from "@burdenoff/fe-libs/ui";
17
18
  //#region src/technospam/pages/MentorshipMentorsPagePage.tsx
18
- function I({ mentor: e, size: t = "md" }) {
19
- return /* @__PURE__ */ A("div", {
19
+ function L({ mentor: e, size: t = "md" }) {
20
+ return /* @__PURE__ */ j("div", {
20
21
  className: "relative shrink-0",
21
- children: [/* @__PURE__ */ k("span", {
22
- className: r("flex items-center justify-center rounded-full bg-gradient-to-br text-white shadow-md ring-1 ring-white/15", t === "lg" ? "h-20 w-20" : "h-16 w-16", o(e.headline)),
23
- children: v(s(e.expertise.join(" ") || e.headline), {
22
+ children: [/* @__PURE__ */ A("span", {
23
+ className: i("flex items-center justify-center rounded-full bg-gradient-to-br text-white shadow-md ring-1 ring-white/15", t === "lg" ? "h-20 w-20" : "h-16 w-16", s(e.headline)),
24
+ children: y(c(e.expertise.join(" ") || e.headline), {
24
25
  size: t === "lg" ? 32 : 26,
25
26
  strokeWidth: 1.7
26
27
  })
27
- }), e.isAcceptingMentees ? /* @__PURE__ */ k("span", { className: "absolute -bottom-0.5 -right-0.5 h-4 w-4 rounded-full border-2 border-bg-surface bg-status-success-text" }) : null]
28
+ }), e.isAcceptingMentees ? /* @__PURE__ */ A("span", { className: "absolute -bottom-0.5 -right-0.5 h-4 w-4 rounded-full border-2 border-bg-surface bg-status-success-text" }) : null]
28
29
  });
29
30
  }
30
- function L({ mentor: e, onOpen: t }) {
31
- return /* @__PURE__ */ A(N, {
31
+ function R({ mentor: e, onOpen: t }) {
32
+ let n = r();
33
+ return /* @__PURE__ */ j(P, {
32
34
  className: "group flex cursor-pointer flex-col gap-4 p-5 transition-all duration-200 hover:-translate-y-1 hover:shadow-lg",
33
35
  onClick: t,
34
36
  children: [
35
- /* @__PURE__ */ A("div", {
37
+ /* @__PURE__ */ j("div", {
36
38
  className: "flex items-start gap-4",
37
- children: [/* @__PURE__ */ k(I, { mentor: e }), /* @__PURE__ */ A("div", {
39
+ children: [/* @__PURE__ */ A(L, { mentor: e }), /* @__PURE__ */ j("div", {
38
40
  className: "min-w-0 flex-1",
39
41
  children: [
40
- /* @__PURE__ */ k("h3", {
42
+ /* @__PURE__ */ A("h3", {
41
43
  className: "truncate text-base font-semibold text-text-primary group-hover:text-accent-primary",
42
44
  children: e.headline
43
45
  }),
44
- e.role ? /* @__PURE__ */ k("p", {
46
+ e.role ? /* @__PURE__ */ A("p", {
45
47
  className: "mt-0.5 truncate text-xs font-medium text-text-secondary",
46
48
  children: e.role
47
49
  }) : null,
48
- e.isAcceptingMentees ? /* @__PURE__ */ A(j, {
50
+ e.isAcceptingMentees ? /* @__PURE__ */ j(M, {
49
51
  variant: "outline",
50
52
  className: "mt-1.5 inline-flex items-center gap-1.5 border-status-success-border bg-status-success-bg-subtle text-status-success-text",
51
- children: [/* @__PURE__ */ k("span", { className: "h-1.5 w-1.5 rounded-full bg-status-success-text" }), " Accepting mentees"]
52
- }) : /* @__PURE__ */ k(j, {
53
+ children: [
54
+ /* @__PURE__ */ A("span", { className: "h-1.5 w-1.5 rounded-full bg-status-success-text" }),
55
+ " ",
56
+ n("technospam.common.acceptingMentees", "Accepting mentees")
57
+ ]
58
+ }) : /* @__PURE__ */ A(M, {
53
59
  variant: "outline",
54
60
  className: "mt-1.5 border-border-seam bg-bg-sunken text-text-secondary",
55
- children: "Not accepting"
61
+ children: n("technospam.common.notAcceptingMentees", "Not accepting")
56
62
  })
57
63
  ]
58
64
  })]
59
65
  }),
60
- e.bio ? /* @__PURE__ */ k("p", {
66
+ e.bio ? /* @__PURE__ */ A("p", {
61
67
  className: "line-clamp-2 text-sm text-text-secondary",
62
68
  children: e.bio
63
69
  }) : null,
64
- e.expertise.length ? /* @__PURE__ */ A("div", {
70
+ e.expertise.length ? /* @__PURE__ */ j("div", {
65
71
  className: "flex flex-wrap gap-1.5",
66
- children: [e.expertise.slice(0, 4).map((e) => /* @__PURE__ */ k(j, {
72
+ children: [e.expertise.slice(0, 4).map((e) => /* @__PURE__ */ A(M, {
67
73
  variant: "secondary",
68
74
  className: "text-[11px]",
69
75
  children: e
70
- }, e)), e.expertise.length > 4 ? /* @__PURE__ */ A("span", {
76
+ }, e)), e.expertise.length > 4 ? /* @__PURE__ */ j("span", {
71
77
  className: "self-center text-xs text-text-muted",
72
78
  children: ["+", e.expertise.length - 4]
73
79
  }) : null]
74
80
  }) : null,
75
- /* @__PURE__ */ A("div", {
81
+ /* @__PURE__ */ j("div", {
76
82
  className: "mt-auto grid grid-cols-3 divide-x divide-border-seam rounded-xl border border-border-seam bg-bg-sunken text-center",
77
83
  children: [
78
- /* @__PURE__ */ A("div", {
84
+ /* @__PURE__ */ j("div", {
79
85
  className: "px-2 py-2.5",
80
- children: [/* @__PURE__ */ A("div", {
86
+ children: [/* @__PURE__ */ j("div", {
81
87
  className: "flex items-center justify-center gap-1 text-sm font-semibold text-text-primary",
82
- children: [/* @__PURE__ */ k(T, {
88
+ children: [/* @__PURE__ */ A(E, {
83
89
  size: 13,
84
90
  className: "text-accent-teal"
85
91
  }), e.ratingAvg > 0 ? e.ratingAvg.toFixed(1) : "New"]
86
- }), /* @__PURE__ */ k("div", {
92
+ }), /* @__PURE__ */ A("div", {
87
93
  className: "text-[11px] text-text-muted",
88
- children: "rating"
94
+ children: n("technospam.common.rating", "rating")
89
95
  })]
90
96
  }),
91
- /* @__PURE__ */ A("div", {
97
+ /* @__PURE__ */ j("div", {
92
98
  className: "px-2 py-2.5",
93
- children: [/* @__PURE__ */ k("div", {
99
+ children: [/* @__PURE__ */ A("div", {
94
100
  className: "text-sm font-semibold text-text-primary",
95
101
  children: e.sessionsCount
96
- }), /* @__PURE__ */ k("div", {
102
+ }), /* @__PURE__ */ A("div", {
97
103
  className: "text-[11px] text-text-muted",
98
- children: "sessions"
104
+ children: n("technospam.common.sessions", "sessions")
99
105
  })]
100
106
  }),
101
- /* @__PURE__ */ A("div", {
107
+ /* @__PURE__ */ j("div", {
102
108
  className: "px-2 py-2.5",
103
- children: [/* @__PURE__ */ k("div", {
109
+ children: [/* @__PURE__ */ A("div", {
104
110
  className: "text-sm font-semibold text-text-primary",
105
- children: c(e.hourlyRate, e.currency)
106
- }), /* @__PURE__ */ k("div", {
111
+ children: l(e.hourlyRate, e.currency)
112
+ }), /* @__PURE__ */ A("div", {
107
113
  className: "text-[11px] text-text-muted",
108
- children: "/ hr"
114
+ children: n("technospam.common.perHour", "/ hr")
109
115
  })]
110
116
  })
111
117
  ]
112
118
  }),
113
- /* @__PURE__ */ k(M, {
119
+ /* @__PURE__ */ A(N, {
114
120
  className: "w-full",
115
121
  onClick: (e) => {
116
122
  e.stopPropagation(), t();
117
123
  },
118
- children: "View profile"
124
+ children: n("technospam.common.viewProfile", "View profile")
119
125
  })
120
126
  ]
121
127
  });
122
128
  }
123
- function R({ onClose: e, onDone: t, workspaceId: r }) {
124
- let [i, a] = b(""), [o, s] = b(""), [c, l] = b(""), [u, d] = b(""), [f, m] = b(""), [g, _] = b("USD"), [v, { loading: y }] = h(), { emit: x } = n(), S = i.trim().length > 0 && !y;
125
- return /* @__PURE__ */ A(N, {
129
+ function z({ onClose: e, onDone: t, workspaceId: r }) {
130
+ let [i, a] = x(""), [o, s] = x(""), [c, l] = x(""), [u, d] = x(""), [f, p] = x(""), [h, _] = x("USD"), [v, { loading: y }] = g(), { emit: b } = n(), S = i.trim().length > 0 && !y;
131
+ return /* @__PURE__ */ j(P, {
126
132
  className: "mb-6 p-5",
127
- children: [/* @__PURE__ */ A("div", {
133
+ children: [/* @__PURE__ */ j("div", {
128
134
  className: "mb-4 flex items-start justify-between gap-3",
129
- children: [/* @__PURE__ */ A("div", {
135
+ children: [/* @__PURE__ */ j("div", {
130
136
  className: "flex items-center gap-3",
131
- children: [/* @__PURE__ */ k("span", {
137
+ children: [/* @__PURE__ */ A("span", {
132
138
  className: "flex h-11 w-11 shrink-0 items-center justify-center rounded-xl bg-gradient-to-br from-accent-primary to-accent-indigo text-white shadow-sm",
133
- children: /* @__PURE__ */ k(E, { size: 20 })
134
- }), /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("h2", {
139
+ children: /* @__PURE__ */ A(D, { size: 20 })
140
+ }), /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("h2", {
135
141
  className: "text-base font-semibold text-text-primary",
136
142
  children: "Become a mentor"
137
- }), /* @__PURE__ */ k("p", {
143
+ }), /* @__PURE__ */ A("p", {
138
144
  className: "text-sm text-text-secondary",
139
145
  children: "Share your expertise and start mentoring builders in the community."
140
146
  })] })]
141
- }), /* @__PURE__ */ k(M, {
147
+ }), /* @__PURE__ */ A(N, {
142
148
  variant: "ghost",
143
149
  size: "sm",
144
150
  onClick: e,
145
151
  "aria-label": "Close",
146
- children: /* @__PURE__ */ k(O, { size: 16 })
152
+ children: /* @__PURE__ */ A(k, { size: 16 })
147
153
  })]
148
- }), /* @__PURE__ */ A("div", {
154
+ }), /* @__PURE__ */ j("div", {
149
155
  className: "grid grid-cols-1 gap-4",
150
156
  children: [
151
- /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ A("label", {
157
+ /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ j("label", {
152
158
  className: "mb-1.5 block text-sm font-medium text-text-primary",
153
- children: ["Headline ", /* @__PURE__ */ k("span", {
159
+ children: ["Headline ", /* @__PURE__ */ A("span", {
154
160
  className: "text-status-error-text",
155
161
  children: "*"
156
162
  })]
157
- }), /* @__PURE__ */ k(P, {
163
+ }), /* @__PURE__ */ A(F, {
158
164
  placeholder: "e.g. Staff Engineer · Distributed systems & career growth",
159
165
  value: i,
160
166
  onChange: (e) => a(e.target.value)
161
167
  })] }),
162
- /* @__PURE__ */ A("div", { children: [
163
- /* @__PURE__ */ k("label", {
168
+ /* @__PURE__ */ j("div", { children: [
169
+ /* @__PURE__ */ A("label", {
164
170
  className: "mb-1.5 block text-sm font-medium text-text-primary",
165
171
  children: "Role & company"
166
172
  }),
167
- /* @__PURE__ */ k(P, {
173
+ /* @__PURE__ */ A(F, {
168
174
  placeholder: "e.g. Staff Engineer @ Acme",
169
175
  value: o,
170
176
  onChange: (e) => s(e.target.value)
171
177
  }),
172
- /* @__PURE__ */ k("p", {
178
+ /* @__PURE__ */ A("p", {
173
179
  className: "mt-1 text-xs text-text-muted",
174
180
  children: "Shown as a subtitle under your headline. Optional."
175
181
  })
176
182
  ] }),
177
- /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("label", {
183
+ /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("label", {
178
184
  className: "mb-1.5 block text-sm font-medium text-text-primary",
179
185
  children: "Bio"
180
- }), /* @__PURE__ */ k(F, {
186
+ }), /* @__PURE__ */ A(I, {
181
187
  rows: 3,
182
188
  placeholder: "Tell mentees about your experience and how you can help.",
183
189
  value: c,
184
190
  onChange: (e) => l(e.target.value)
185
191
  })] }),
186
- /* @__PURE__ */ A("div", { children: [
187
- /* @__PURE__ */ k("label", {
192
+ /* @__PURE__ */ j("div", { children: [
193
+ /* @__PURE__ */ A("label", {
188
194
  className: "mb-1.5 block text-sm font-medium text-text-primary",
189
195
  children: "Expertise"
190
196
  }),
191
- /* @__PURE__ */ k(P, {
197
+ /* @__PURE__ */ A(F, {
192
198
  placeholder: "React, System design, Career coaching",
193
199
  value: u,
194
200
  onChange: (e) => d(e.target.value)
195
201
  }),
196
- /* @__PURE__ */ k("p", {
202
+ /* @__PURE__ */ A("p", {
197
203
  className: "mt-1 text-xs text-text-muted",
198
204
  children: "Comma-separated topics."
199
205
  })
200
206
  ] }),
201
- /* @__PURE__ */ A("div", {
207
+ /* @__PURE__ */ j("div", {
202
208
  className: "grid grid-cols-1 gap-4 sm:grid-cols-2",
203
- children: [/* @__PURE__ */ A("div", { children: [
204
- /* @__PURE__ */ k("label", {
209
+ children: [/* @__PURE__ */ j("div", { children: [
210
+ /* @__PURE__ */ A("label", {
205
211
  className: "mb-1.5 block text-sm font-medium text-text-primary",
206
212
  children: "Hourly rate"
207
213
  }),
208
- /* @__PURE__ */ k(P, {
214
+ /* @__PURE__ */ A(F, {
209
215
  type: "number",
210
216
  min: 0,
211
217
  step: .01,
212
218
  placeholder: "0.00",
213
219
  value: f,
214
- onChange: (e) => m(e.target.value)
220
+ onChange: (e) => p(e.target.value)
215
221
  }),
216
- /* @__PURE__ */ k("p", {
222
+ /* @__PURE__ */ A("p", {
217
223
  className: "mt-1 text-xs text-text-muted",
218
224
  children: "Dollars per hour (e.g. 50 or 49.99). Leave 0 for free."
219
225
  })
220
- ] }), /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("label", {
226
+ ] }), /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("label", {
221
227
  className: "mb-1.5 block text-sm font-medium text-text-primary",
222
228
  children: "Currency"
223
- }), /* @__PURE__ */ k(P, {
229
+ }), /* @__PURE__ */ A(F, {
224
230
  placeholder: "USD",
225
- value: g,
231
+ value: h,
226
232
  onChange: (e) => _(e.target.value)
227
233
  })] })]
228
234
  }),
229
- /* @__PURE__ */ A("div", {
235
+ /* @__PURE__ */ j("div", {
230
236
  className: "flex flex-wrap items-center gap-2",
231
- children: [/* @__PURE__ */ A(M, {
237
+ children: [/* @__PURE__ */ j(N, {
232
238
  onClick: async () => {
233
239
  if (!S) return;
234
240
  let e = { headline: i.trim() };
@@ -236,21 +242,21 @@ function R({ onClose: e, onDone: t, workspaceId: r }) {
236
242
  let n = u.split(",").map((e) => e.trim()).filter(Boolean);
237
243
  n.length && (e.expertise = n);
238
244
  let a = Number.parseFloat(f);
239
- !Number.isNaN(a) && a >= 0 && (e.hourlyRate = Math.round(a * 100)), g.trim() && (e.currency = g.trim().toUpperCase()), x("technospam.mentor.become_mentor_clicked", { workspaceId: r });
245
+ !Number.isNaN(a) && a >= 0 && (e.hourlyRate = Math.round(a * 100)), h.trim() && (e.currency = h.trim().toUpperCase()), b("technospam.mentor.become_mentor_clicked", { workspaceId: r });
240
246
  let s = await v({ variables: { input: e } });
241
- s.data?.tecBecomeMentor && (x("technospam.mentor.became_mentor", {
247
+ s.data?.tecBecomeMentor && (b("technospam.mentor.became_mentor", {
242
248
  workspaceId: r,
243
249
  entityId: s.data.tecBecomeMentor.id,
244
250
  entityType: "TEC_MENTOR"
245
- }), p.success("Mentor profile created", "Your profile is pending review."), t());
251
+ }), m.success("Mentor profile created", "Your profile is pending review."), t());
246
252
  },
247
253
  disabled: !S,
248
254
  children: [
249
- /* @__PURE__ */ k(E, { size: 16 }),
255
+ /* @__PURE__ */ A(D, { size: 16 }),
250
256
  " ",
251
257
  y ? "Submitting…" : "Submit profile"
252
258
  ]
253
- }), /* @__PURE__ */ k(M, {
259
+ }), /* @__PURE__ */ A(N, {
254
260
  variant: "outline",
255
261
  onClick: e,
256
262
  disabled: y,
@@ -261,123 +267,131 @@ function R({ onClose: e, onDone: t, workspaceId: r }) {
261
267
  })]
262
268
  });
263
269
  }
264
- function z() {
265
- let r = t(), { currentUser: o, workspaceId: s } = e(), { emit: c } = n(), [p, h] = b(""), [v, O] = b(!1), { limit: j, more: F } = _(), { data: I, loading: z, error: B, refetch: V } = g({
270
+ function B() {
271
+ let i = t(), { currentUser: s, workspaceId: c } = e(), { emit: l } = n(), m = r(), [g, y] = x(""), [k, M] = x(!1), { limit: I, more: L } = v(), { data: B, loading: V, error: H, refetch: U } = _({
266
272
  status: "ACTIVE",
267
- pagination: m(j)
268
- }), H = I?.tecListMentors?.items ?? [], U = I?.tecListMentors?.pageInfo?.hasMore ?? !1, W = o?.id, G = !!(W && H.some((e) => e.userId === W)), K = y(() => {
269
- let e = p.trim().toLowerCase();
270
- return e ? H.filter((t) => t.headline.toLowerCase().includes(e) || t.expertise.some((t) => t.toLowerCase().includes(e))) : H;
271
- }, [H, p]), q = H.filter((e) => e.isAcceptingMentees).length, J = H.reduce((e, t) => e + t.sessionsCount, 0), Y = H.filter((e) => e.ratingAvg > 0), X = Y.length ? (Y.reduce((e, t) => e + t.ratingAvg, 0) / Y.length).toFixed(1) : "—";
272
- return /* @__PURE__ */ A(i, {
273
+ pagination: h(I)
274
+ }), W = B?.tecListMentors?.items ?? [], G = B?.tecListMentors?.pageInfo?.hasMore ?? !1, K = s?.id, q = !!(K && W.some((e) => e.userId === K)), J = b(() => {
275
+ let e = g.trim().toLowerCase();
276
+ return e ? W.filter((t) => t.headline.toLowerCase().includes(e) || t.expertise.some((t) => t.toLowerCase().includes(e))) : W;
277
+ }, [W, g]), Y = W.filter((e) => e.isAcceptingMentees).length, X = W.reduce((e, t) => e + t.sessionsCount, 0), Z = W.filter((e) => e.ratingAvg > 0), Q = Z.length ? (Z.reduce((e, t) => e + t.ratingAvg, 0) / Z.length).toFixed(1) : "—";
278
+ return /* @__PURE__ */ j(a, {
273
279
  hero: !0,
274
- title: "Find a Mentor",
275
- description: "Connect with experienced builders for 1:1 guidance, code review, and career coaching.",
276
- actions: /* @__PURE__ */ A(M, {
280
+ title: m("technospam.mentorship.findAMentorTitle", "Find a Mentor"),
281
+ description: m("technospam.mentorship.description", "Connect with experienced builders for 1:1 guidance, code review, and career coaching."),
282
+ actions: /* @__PURE__ */ j(N, {
277
283
  variant: "outline",
278
- onClick: () => r("/mentorship/sessions-page"),
279
- children: [/* @__PURE__ */ k(S, { size: 16 }), " My sessions"]
284
+ onClick: () => i("/mentorship/sessions-page"),
285
+ children: [
286
+ /* @__PURE__ */ A(C, { size: 16 }),
287
+ " ",
288
+ m("technospam.common.mySessions", "My sessions")
289
+ ]
280
290
  }),
281
291
  children: [
282
- G ? /* @__PURE__ */ A(N, {
292
+ q ? /* @__PURE__ */ j(P, {
283
293
  className: "mb-6 flex items-center gap-3 p-4",
284
- children: [/* @__PURE__ */ k("span", {
294
+ children: [/* @__PURE__ */ A("span", {
285
295
  className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-xl bg-status-success-bg-subtle text-status-success-text",
286
- children: /* @__PURE__ */ k(x, { size: 20 })
287
- }), /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("div", {
296
+ children: /* @__PURE__ */ A(S, { size: 20 })
297
+ }), /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("div", {
288
298
  className: "text-sm font-semibold text-text-primary",
289
299
  children: "You're a mentor"
290
- }), /* @__PURE__ */ k("div", {
300
+ }), /* @__PURE__ */ A("div", {
291
301
  className: "text-xs text-text-secondary",
292
302
  children: "Your mentor profile is live. Mentees can request sessions with you."
293
303
  })] })]
294
- }) : v ? /* @__PURE__ */ k(R, {
295
- onClose: () => O(!1),
304
+ }) : k ? /* @__PURE__ */ A(z, {
305
+ onClose: () => M(!1),
296
306
  onDone: () => {
297
- O(!1), V();
307
+ M(!1), U();
298
308
  },
299
- workspaceId: s
309
+ workspaceId: c
300
310
  }) : null,
301
- /* @__PURE__ */ A("div", {
311
+ /* @__PURE__ */ j("div", {
302
312
  className: "mb-5 grid grid-cols-2 gap-3 sm:grid-cols-4",
303
313
  children: [
304
- /* @__PURE__ */ k(a, {
305
- label: "Mentors",
306
- value: H.length,
307
- icon: D,
314
+ /* @__PURE__ */ A(o, {
315
+ label: m("technospam.mentorship.statMentors", "Mentors"),
316
+ value: W.length,
317
+ icon: O,
308
318
  tone: "blue"
309
319
  }),
310
- /* @__PURE__ */ k(a, {
311
- label: "Accepting mentees",
312
- value: q,
313
- icon: w,
320
+ /* @__PURE__ */ A(o, {
321
+ label: m("technospam.mentorship.statAcceptingMentees", "Accepting mentees"),
322
+ value: Y,
323
+ icon: T,
314
324
  tone: "green"
315
325
  }),
316
- /* @__PURE__ */ k(a, {
317
- label: "Avg rating",
318
- value: X,
319
- icon: T,
326
+ /* @__PURE__ */ A(o, {
327
+ label: m("technospam.mentorship.statAvgRating", "Avg rating"),
328
+ value: Q,
329
+ icon: E,
320
330
  tone: "amber"
321
331
  }),
322
- /* @__PURE__ */ k(a, {
323
- label: "Total sessions",
324
- value: J,
325
- icon: S,
332
+ /* @__PURE__ */ A(o, {
333
+ label: m("technospam.mentorship.statTotalSessions", "Total sessions"),
334
+ value: X,
335
+ icon: C,
326
336
  tone: "purple"
327
337
  })
328
338
  ]
329
339
  }),
330
- /* @__PURE__ */ A("div", {
340
+ /* @__PURE__ */ j("div", {
331
341
  className: "mb-4 flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",
332
- children: [/* @__PURE__ */ A("div", {
342
+ children: [/* @__PURE__ */ j("div", {
333
343
  className: "relative w-full sm:w-80",
334
- children: [/* @__PURE__ */ k(C, {
344
+ children: [/* @__PURE__ */ A(w, {
335
345
  className: "pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-text-muted",
336
346
  size: 16
337
- }), /* @__PURE__ */ k(P, {
347
+ }), /* @__PURE__ */ A(F, {
338
348
  className: "pl-9",
339
- placeholder: "Search by headline or expertise…",
340
- value: p,
341
- onChange: (e) => h(e.target.value)
349
+ placeholder: m("technospam.mentorship.searchPlaceholder", "Search by headline or expertise…"),
350
+ value: g,
351
+ onChange: (e) => y(e.target.value)
342
352
  })]
343
- }), !G && !v ? /* @__PURE__ */ A(M, {
344
- onClick: () => O(!0),
345
- children: [/* @__PURE__ */ k(E, { size: 16 }), " Become a mentor"]
353
+ }), !q && !k ? /* @__PURE__ */ j(N, {
354
+ onClick: () => M(!0),
355
+ children: [
356
+ /* @__PURE__ */ A(D, { size: 16 }),
357
+ " ",
358
+ m("technospam.common.becomeAMentor", "Become a mentor")
359
+ ]
346
360
  }) : null]
347
361
  }),
348
- z && !H.length ? /* @__PURE__ */ k(f, {}) : B ? /* @__PURE__ */ k(d, {
349
- title: "Couldn't load mentors",
350
- error: B
351
- }) : K.length === 0 ? /* @__PURE__ */ k(u, {
352
- icon: /* @__PURE__ */ k(D, { size: 26 }),
353
- title: p ? "No matching mentors" : "No mentors yet",
354
- description: p ? "Try a different search term." : "Active mentors will appear here. TechnoSpam is pre-launch — be one of the first to sign up.",
355
- action: !p && !G ? /* @__PURE__ */ k(M, {
356
- onClick: () => O(!0),
357
- children: "Become a mentor"
362
+ V && !W.length ? /* @__PURE__ */ A(p, {}) : H ? /* @__PURE__ */ A(f, {
363
+ title: m("technospam.common.errorLoadMentors", "Couldn't load mentors"),
364
+ error: H
365
+ }) : J.length === 0 ? /* @__PURE__ */ A(d, {
366
+ icon: /* @__PURE__ */ A(O, { size: 26 }),
367
+ title: g ? m("technospam.mentorship.emptySearchTitle", "No matching mentors") : m("technospam.mentorship.emptyDefaultTitle", "No mentors yet"),
368
+ description: g ? m("technospam.mentorship.emptySearchDesc", "Try a different search term.") : m("technospam.mentorship.emptyDefaultDesc", "Active mentors will appear here. TechnoSpam is pre-launch — be one of the first to sign up."),
369
+ action: !g && !q ? /* @__PURE__ */ A(N, {
370
+ onClick: () => M(!0),
371
+ children: m("technospam.common.becomeAMentor", "Become a mentor")
358
372
  }) : void 0
359
- }) : /* @__PURE__ */ k("div", {
373
+ }) : /* @__PURE__ */ A("div", {
360
374
  className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",
361
- children: K.map((e) => /* @__PURE__ */ k(L, {
375
+ children: J.map((e) => /* @__PURE__ */ A(R, {
362
376
  mentor: e,
363
377
  onOpen: () => {
364
- c("technospam.mentor.viewed", {
365
- workspaceId: s,
378
+ l("technospam.mentor.viewed", {
379
+ workspaceId: c,
366
380
  entityId: e.id,
367
381
  entityType: "TEC_MENTOR"
368
- }), r(`/mentorship/mentor-profile-page?id=${e.id}`);
382
+ }), i(`/mentorship/mentor-profile-page?id=${e.id}`);
369
383
  }
370
384
  }, e.id))
371
385
  }),
372
- /* @__PURE__ */ k(l, {
373
- hasMore: U,
374
- loading: z,
375
- onClick: F
386
+ /* @__PURE__ */ A(u, {
387
+ hasMore: G,
388
+ loading: V,
389
+ onClick: L
376
390
  })
377
391
  ]
378
392
  });
379
393
  }
380
394
  //#endregion
381
- export { z as MentorshipMentorsPagePage };
395
+ export { B as MentorshipMentorsPagePage };
382
396
 
383
397
  //# sourceMappingURL=MentorshipMentorsPagePage.js.map