@burdenoff/microfe-technospam 2026.709.3 → 2026.709.4

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 (46) hide show
  1. package/dist/index.js +4 -4
  2. package/dist/technospam/TechnoSpamRoutes.d.ts.map +1 -1
  3. package/dist/technospam/TechnoSpamRoutes.js +100 -74
  4. package/dist/technospam/TechnoSpamRoutes.js.map +1 -1
  5. package/dist/technospam/components/PageLayout.d.ts.map +1 -1
  6. package/dist/technospam/components/PageLayout.js +26 -23
  7. package/dist/technospam/components/PageLayout.js.map +1 -1
  8. package/dist/technospam/components/TagInput.d.ts +18 -0
  9. package/dist/technospam/components/TagInput.d.ts.map +1 -0
  10. package/dist/technospam/components/TagInput.js +58 -0
  11. package/dist/technospam/components/TagInput.js.map +1 -0
  12. package/dist/technospam/components/TagStrip.d.ts +12 -0
  13. package/dist/technospam/components/TagStrip.d.ts.map +1 -0
  14. package/dist/technospam/components/TagStrip.js +20 -0
  15. package/dist/technospam/components/TagStrip.js.map +1 -0
  16. package/dist/technospam/components/index.d.ts +2 -0
  17. package/dist/technospam/components/index.d.ts.map +1 -1
  18. package/dist/technospam/components/index.js +2 -0
  19. package/dist/technospam/hooks/useNativeControls.d.ts +27 -0
  20. package/dist/technospam/hooks/useNativeControls.d.ts.map +1 -0
  21. package/dist/technospam/hooks/useNativeControls.js +18 -0
  22. package/dist/technospam/hooks/useNativeControls.js.map +1 -0
  23. package/dist/technospam/hooks/useTechnoSpamAnalytics.d.ts +1 -1
  24. package/dist/technospam/hooks/useTechnoSpamAnalytics.d.ts.map +1 -1
  25. package/dist/technospam/hooks/useTechnoSpamAnalytics.js.map +1 -1
  26. package/dist/technospam/hooks/useTechnoSpamPageView.d.ts +14 -0
  27. package/dist/technospam/hooks/useTechnoSpamPageView.d.ts.map +1 -0
  28. package/dist/technospam/hooks/useTechnoSpamPageView.js +26 -0
  29. package/dist/technospam/hooks/useTechnoSpamPageView.js.map +1 -0
  30. package/dist/technospam/index.js +1 -1
  31. package/dist/technospam/pages/AdminAdminDashboardPagePage.d.ts.map +1 -1
  32. package/dist/technospam/pages/AdminAdminDashboardPagePage.js +408 -399
  33. package/dist/technospam/pages/AdminAdminDashboardPagePage.js.map +1 -1
  34. package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.d.ts.map +1 -1
  35. package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.js +50 -55
  36. package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.js.map +1 -1
  37. package/dist/technospam/pages/ApplicationsProblemsPagePage.js +25 -25
  38. package/dist/technospam/pages/CoursesCourseDetailsPagePage.d.ts.map +1 -1
  39. package/dist/technospam/pages/CoursesCourseDetailsPagePage.js +142 -144
  40. package/dist/technospam/pages/CoursesCourseDetailsPagePage.js.map +1 -1
  41. package/dist/technospam/pages/CoursesCoursesPagePage.js +30 -30
  42. package/dist/technospam/pages/HackathonsHackathonsPagePage.js +29 -29
  43. package/dist/technospam/pages/MentorshipMentorProfilePagePage.js +54 -54
  44. package/dist/technospam/pages/MentorshipMentorsPagePage.js +61 -61
  45. package/dist/technospam/pages/MentorshipSessionsPagePage.js +42 -42
  46. package/package.json +2 -2
@@ -1,15 +1,15 @@
1
1
  import { useTechnoSpam as e, useTechnoSpamNavigate as t } from "../providers/TechnoSpamProvider.js";
2
- import { cn as n } from "../utils/cn.js";
3
- import { PageLayout as r } from "../components/PageLayout.js";
4
- import { StatCard as i } from "../components/StatCard.js";
5
- import { coverGradient as a, topicIcon as o } from "../components/MediaCover.js";
6
- import { formatMoney as s } from "../utils/format.js";
7
- import { LoadMore as c } from "../components/LoadMore.js";
8
- import { EmptyView as l, ErrorView as u, LoadingGrid as d } from "../components/StateViews.js";
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 { formatMoney 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";
9
10
  import "../components/index.js";
10
- import { notify as f } from "../lib/toast.js";
11
- import { pageArg as p, useBecomeMentor as m, useMentorsQuery as h, usePageLimit as g } from "../api/technospamApi.js";
12
- import { useTechnoSpamAnalytics as _ } from "../hooks/useTechnoSpamAnalytics.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
13
  import { createElement as v, useMemo as y, useState as b } from "react";
14
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
15
  import { jsx as k, jsxs as A } from "react/jsx-runtime";
@@ -19,8 +19,8 @@ function I({ mentor: e, size: t = "md" }) {
19
19
  return /* @__PURE__ */ A("div", {
20
20
  className: "relative shrink-0",
21
21
  children: [/* @__PURE__ */ k("span", {
22
- className: n("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", a(e.headline)),
23
- children: v(o(e.expertise.join(" ") || e.headline), {
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), {
24
24
  size: t === "lg" ? 32 : 26,
25
25
  strokeWidth: 1.7
26
26
  })
@@ -95,7 +95,7 @@ function L({ mentor: e, onOpen: t }) {
95
95
  className: "px-2 py-2.5",
96
96
  children: [/* @__PURE__ */ k("div", {
97
97
  className: "text-sm font-semibold text-text-primary",
98
- children: s(e.hourlyRate, e.currency)
98
+ children: c(e.hourlyRate, e.currency)
99
99
  }), /* @__PURE__ */ k("div", {
100
100
  className: "text-[11px] text-text-muted",
101
101
  children: "/ hr"
@@ -113,8 +113,8 @@ function L({ mentor: e, onOpen: t }) {
113
113
  ]
114
114
  });
115
115
  }
116
- function R({ onClose: e, onDone: t, workspaceId: n }) {
117
- let [r, i] = b(""), [a, o] = b(""), [s, c] = b(""), [l, u] = b(""), [d, p] = b("USD"), [h, { loading: g }] = m(), { emit: v } = _(), y = r.trim().length > 0 && !g;
116
+ function R({ onClose: e, onDone: t, workspaceId: r }) {
117
+ let [i, a] = b(""), [o, s] = b(""), [c, l] = b(""), [u, d] = b(""), [f, m] = b("USD"), [g, { loading: _ }] = h(), { emit: v } = n(), y = i.trim().length > 0 && !_;
118
118
  return /* @__PURE__ */ A(N, {
119
119
  className: "mb-6 p-5",
120
120
  children: [/* @__PURE__ */ A("div", {
@@ -149,8 +149,8 @@ function R({ onClose: e, onDone: t, workspaceId: n }) {
149
149
  })]
150
150
  }), /* @__PURE__ */ k(P, {
151
151
  placeholder: "e.g. Staff Engineer · Distributed systems & career growth",
152
- value: r,
153
- onChange: (e) => i(e.target.value)
152
+ value: i,
153
+ onChange: (e) => a(e.target.value)
154
154
  })] }),
155
155
  /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("label", {
156
156
  className: "mb-1.5 block text-sm font-medium text-text-primary",
@@ -158,8 +158,8 @@ function R({ onClose: e, onDone: t, workspaceId: n }) {
158
158
  }), /* @__PURE__ */ k(F, {
159
159
  rows: 3,
160
160
  placeholder: "Tell mentees about your experience and how you can help.",
161
- value: a,
162
- onChange: (e) => o(e.target.value)
161
+ value: o,
162
+ onChange: (e) => s(e.target.value)
163
163
  })] }),
164
164
  /* @__PURE__ */ A("div", { children: [
165
165
  /* @__PURE__ */ k("label", {
@@ -168,8 +168,8 @@ function R({ onClose: e, onDone: t, workspaceId: n }) {
168
168
  }),
169
169
  /* @__PURE__ */ k(P, {
170
170
  placeholder: "React, System design, Career coaching",
171
- value: s,
172
- onChange: (e) => c(e.target.value)
171
+ value: c,
172
+ onChange: (e) => l(e.target.value)
173
173
  }),
174
174
  /* @__PURE__ */ k("p", {
175
175
  className: "mt-1 text-xs text-text-muted",
@@ -187,8 +187,8 @@ function R({ onClose: e, onDone: t, workspaceId: n }) {
187
187
  type: "number",
188
188
  min: 0,
189
189
  placeholder: "0",
190
- value: l,
191
- onChange: (e) => u(e.target.value)
190
+ value: u,
191
+ onChange: (e) => d(e.target.value)
192
192
  }),
193
193
  /* @__PURE__ */ k("p", {
194
194
  className: "mt-1 text-xs text-text-muted",
@@ -199,8 +199,8 @@ function R({ onClose: e, onDone: t, workspaceId: n }) {
199
199
  children: "Currency"
200
200
  }), /* @__PURE__ */ k(P, {
201
201
  placeholder: "USD",
202
- value: d,
203
- onChange: (e) => p(e.target.value)
202
+ value: f,
203
+ onChange: (e) => m(e.target.value)
204
204
  })] })]
205
205
  }),
206
206
  /* @__PURE__ */ A("div", {
@@ -208,29 +208,29 @@ function R({ onClose: e, onDone: t, workspaceId: n }) {
208
208
  children: [/* @__PURE__ */ A(M, {
209
209
  onClick: async () => {
210
210
  if (!y) return;
211
- let e = { headline: r.trim() };
212
- a.trim() && (e.bio = a.trim());
213
- let i = s.split(",").map((e) => e.trim()).filter(Boolean);
214
- i.length && (e.expertise = i);
215
- let o = Number.parseInt(l, 10);
216
- !Number.isNaN(o) && o >= 0 && (e.hourlyRate = o), d.trim() && (e.currency = d.trim().toUpperCase()), v("technospam.mentor.become_mentor_clicked", { workspaceId: n });
217
- let c = await h({ variables: { input: e } });
218
- c.data?.tecBecomeMentor && (v("technospam.mentor.became_mentor", {
219
- workspaceId: n,
220
- entityId: c.data.tecBecomeMentor.id,
211
+ let e = { headline: i.trim() };
212
+ o.trim() && (e.bio = o.trim());
213
+ let n = c.split(",").map((e) => e.trim()).filter(Boolean);
214
+ n.length && (e.expertise = n);
215
+ let a = Number.parseInt(u, 10);
216
+ !Number.isNaN(a) && a >= 0 && (e.hourlyRate = a), f.trim() && (e.currency = f.trim().toUpperCase()), v("technospam.mentor.become_mentor_clicked", { workspaceId: r });
217
+ let s = await g({ variables: { input: e } });
218
+ s.data?.tecBecomeMentor && (v("technospam.mentor.became_mentor", {
219
+ workspaceId: r,
220
+ entityId: s.data.tecBecomeMentor.id,
221
221
  entityType: "TEC_MENTOR"
222
- }), f.success("Mentor profile created", "Your profile is pending review."), t());
222
+ }), p.success("Mentor profile created", "Your profile is pending review."), t());
223
223
  },
224
224
  disabled: !y,
225
225
  children: [
226
226
  /* @__PURE__ */ k(E, { size: 16 }),
227
227
  " ",
228
- g ? "Submitting…" : "Submit profile"
228
+ _ ? "Submitting…" : "Submit profile"
229
229
  ]
230
230
  }), /* @__PURE__ */ k(M, {
231
231
  variant: "outline",
232
232
  onClick: e,
233
- disabled: g,
233
+ disabled: _,
234
234
  children: "Cancel"
235
235
  })]
236
236
  })
@@ -239,20 +239,20 @@ function R({ onClose: e, onDone: t, workspaceId: n }) {
239
239
  });
240
240
  }
241
241
  function z() {
242
- let n = t(), { currentUser: a, workspaceId: o } = e(), { emit: s } = _(), [f, m] = b(""), [v, O] = b(!1), { limit: j, more: F } = g(), { data: I, loading: z, error: B, refetch: V } = h({
242
+ 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({
243
243
  status: "ACTIVE",
244
- pagination: p(j)
245
- }), H = I?.tecListMentors.items ?? [], U = I?.tecListMentors.pageInfo.hasMore ?? !1, W = a?.id, G = !!(W && H.some((e) => e.userId === W)), K = y(() => {
246
- let e = f.trim().toLowerCase();
244
+ pagination: m(j)
245
+ }), H = I?.tecListMentors.items ?? [], U = I?.tecListMentors.pageInfo.hasMore ?? !1, W = o?.id, G = !!(W && H.some((e) => e.userId === W)), K = y(() => {
246
+ let e = p.trim().toLowerCase();
247
247
  return e ? H.filter((t) => t.headline.toLowerCase().includes(e) || t.expertise.some((t) => t.toLowerCase().includes(e))) : H;
248
- }, [H, f]), 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) : "—";
249
- return /* @__PURE__ */ A(r, {
248
+ }, [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) : "—";
249
+ return /* @__PURE__ */ A(i, {
250
250
  hero: !0,
251
251
  title: "Find a Mentor",
252
252
  description: "Connect with experienced builders for 1:1 guidance, code review, and career coaching.",
253
253
  actions: /* @__PURE__ */ A(M, {
254
254
  variant: "outline",
255
- onClick: () => n("/mentorship/sessions-page"),
255
+ onClick: () => r("/mentorship/sessions-page"),
256
256
  children: [/* @__PURE__ */ k(S, { size: 16 }), " My sessions"]
257
257
  }),
258
258
  children: [
@@ -273,30 +273,30 @@ function z() {
273
273
  onDone: () => {
274
274
  O(!1), V();
275
275
  },
276
- workspaceId: o
276
+ workspaceId: s
277
277
  }) : null,
278
278
  /* @__PURE__ */ A("div", {
279
279
  className: "mb-5 grid grid-cols-2 gap-3 sm:grid-cols-4",
280
280
  children: [
281
- /* @__PURE__ */ k(i, {
281
+ /* @__PURE__ */ k(a, {
282
282
  label: "Mentors",
283
283
  value: H.length,
284
284
  icon: D,
285
285
  tone: "blue"
286
286
  }),
287
- /* @__PURE__ */ k(i, {
287
+ /* @__PURE__ */ k(a, {
288
288
  label: "Accepting mentees",
289
289
  value: q,
290
290
  icon: w,
291
291
  tone: "green"
292
292
  }),
293
- /* @__PURE__ */ k(i, {
293
+ /* @__PURE__ */ k(a, {
294
294
  label: "Avg rating",
295
295
  value: X,
296
296
  icon: T,
297
297
  tone: "amber"
298
298
  }),
299
- /* @__PURE__ */ k(i, {
299
+ /* @__PURE__ */ k(a, {
300
300
  label: "Total sessions",
301
301
  value: J,
302
302
  icon: S,
@@ -314,22 +314,22 @@ function z() {
314
314
  }), /* @__PURE__ */ k(P, {
315
315
  className: "pl-9",
316
316
  placeholder: "Search by headline or expertise…",
317
- value: f,
318
- onChange: (e) => m(e.target.value)
317
+ value: p,
318
+ onChange: (e) => h(e.target.value)
319
319
  })]
320
320
  }), !G && !v ? /* @__PURE__ */ A(M, {
321
321
  onClick: () => O(!0),
322
322
  children: [/* @__PURE__ */ k(E, { size: 16 }), " Become a mentor"]
323
323
  }) : null]
324
324
  }),
325
- z && !H.length ? /* @__PURE__ */ k(d, {}) : B ? /* @__PURE__ */ k(u, {
325
+ z && !H.length ? /* @__PURE__ */ k(f, {}) : B ? /* @__PURE__ */ k(d, {
326
326
  title: "Couldn't load mentors",
327
327
  error: B
328
- }) : K.length === 0 ? /* @__PURE__ */ k(l, {
328
+ }) : K.length === 0 ? /* @__PURE__ */ k(u, {
329
329
  icon: /* @__PURE__ */ k(D, { size: 26 }),
330
- title: f ? "No matching mentors" : "No mentors yet",
331
- description: f ? "Try a different search term." : "Active mentors will appear here. TechnoSpam is pre-launch — be one of the first to sign up.",
332
- action: !f && !G ? /* @__PURE__ */ k(M, {
330
+ title: p ? "No matching mentors" : "No mentors yet",
331
+ description: p ? "Try a different search term." : "Active mentors will appear here. TechnoSpam is pre-launch — be one of the first to sign up.",
332
+ action: !p && !G ? /* @__PURE__ */ k(M, {
333
333
  onClick: () => O(!0),
334
334
  children: "Become a mentor"
335
335
  }) : void 0
@@ -338,15 +338,15 @@ function z() {
338
338
  children: K.map((e) => /* @__PURE__ */ k(L, {
339
339
  mentor: e,
340
340
  onOpen: () => {
341
- s("technospam.mentor.viewed", {
342
- workspaceId: o,
341
+ c("technospam.mentor.viewed", {
342
+ workspaceId: s,
343
343
  entityId: e.id,
344
344
  entityType: "TEC_MENTOR"
345
- }), n(`/mentorship/mentor-profile-page?id=${e.id}`);
345
+ }), r(`/mentorship/mentor-profile-page?id=${e.id}`);
346
346
  }
347
347
  }, e.id))
348
348
  }),
349
- /* @__PURE__ */ k(c, {
349
+ /* @__PURE__ */ k(l, {
350
350
  hasMore: U,
351
351
  loading: z,
352
352
  onClick: F
@@ -1,20 +1,20 @@
1
1
  import { useTechnoSpam as e, useTechnoSpamNavigate as t } from "../providers/TechnoSpamProvider.js";
2
- import { PageLayout as n } from "../components/PageLayout.js";
3
- import { StatCard as r } from "../components/StatCard.js";
4
- import { formatDateTime as i, formatDuration as a } from "../utils/format.js";
5
- import { StatusBadge as o } from "../components/StatusBadge.js";
6
- import { EmptyView as s, ErrorView as c, LoadingRows as l } from "../components/StateViews.js";
2
+ import { useTechnoSpamAnalytics as n } from "../hooks/useTechnoSpamAnalytics.js";
3
+ import { PageLayout as r } from "../components/PageLayout.js";
4
+ import { StatCard as i } from "../components/StatCard.js";
5
+ import { formatDateTime as a, formatDuration as o } from "../utils/format.js";
6
+ import { StatusBadge as s } from "../components/StatusBadge.js";
7
+ import { EmptyView as c, ErrorView as l, LoadingRows as u } from "../components/StateViews.js";
7
8
  import "../components/index.js";
8
- import { notify as u } from "../lib/toast.js";
9
- import { useCancelSession as d, useCompleteSession as f, useConfirmSession as p, useMentorsQuery as m, useSessionsQuery as h } from "../api/technospamApi.js";
10
- import { useTechnoSpamAnalytics as g } from "../hooks/useTechnoSpamAnalytics.js";
9
+ import { notify as d } from "../lib/toast.js";
10
+ import { useCancelSession as f, useCompleteSession as p, useConfirmSession as m, useMentorsQuery as h, useSessionsQuery as g } from "../api/technospamApi.js";
11
11
  import { useState as _ } from "react";
12
12
  import { CalendarClock as v, Check as y, CheckCircle2 as b, Clock as x, MessageSquare as S, Users as C, Video as w, X as T } from "lucide-react";
13
13
  import { jsx as E, jsxs as D } from "react/jsx-runtime";
14
14
  import { Button as O, GlassCard as k, Input as A, Tabs as j, TabsList as M, TabsTrigger as N } from "@burdenoff/fe-libs/ui";
15
15
  //#region src/technospam/pages/MentorshipSessionsPagePage.tsx
16
16
  var P = new Set(["REQUESTED", "CONFIRMED"]);
17
- function F({ session: e, showMentor: t, isMentor: n, onCancel: r, onConfirm: s, onComplete: c, busy: l }) {
17
+ function F({ session: e, showMentor: t, isMentor: n, onCancel: r, onConfirm: i, onComplete: c, busy: l }) {
18
18
  let u = P.has(e.status), [d, f] = _("none"), [p, m] = _(""), [h, g] = _("5"), [S, C] = _("");
19
19
  return /* @__PURE__ */ D(k, {
20
20
  className: "flex flex-col gap-3 p-4 transition-all duration-200 hover:-translate-y-0.5 hover:shadow-md",
@@ -36,7 +36,7 @@ function F({ session: e, showMentor: t, isMentor: n, onCancel: r, onConfirm: s,
36
36
  className: "truncate text-sm font-semibold text-text-primary",
37
37
  children: e.topic
38
38
  }),
39
- /* @__PURE__ */ E(o, { status: e.status }),
39
+ /* @__PURE__ */ E(s, { status: e.status }),
40
40
  e.rating ? /* @__PURE__ */ D("span", {
41
41
  className: "text-xs text-text-muted",
42
42
  children: [
@@ -58,14 +58,14 @@ function F({ session: e, showMentor: t, isMentor: n, onCancel: r, onConfirm: s,
58
58
  children: [
59
59
  /* @__PURE__ */ E(v, { size: 13 }),
60
60
  " ",
61
- i(e.scheduledAt)
61
+ a(e.scheduledAt)
62
62
  ]
63
63
  }), /* @__PURE__ */ D("span", {
64
64
  className: "inline-flex items-center gap-1",
65
65
  children: [
66
66
  /* @__PURE__ */ E(x, { size: 13 }),
67
67
  " ",
68
- a(e.durationMinutes)
68
+ o(e.durationMinutes)
69
69
  ]
70
70
  })]
71
71
  }),
@@ -115,7 +115,7 @@ function F({ session: e, showMentor: t, isMentor: n, onCancel: r, onConfirm: s,
115
115
  }), /* @__PURE__ */ E(O, {
116
116
  size: "sm",
117
117
  onClick: async () => {
118
- await s(e.id, p.trim()), f("none"), m("");
118
+ await i(e.id, p.trim()), f("none"), m("");
119
119
  },
120
120
  disabled: l,
121
121
  children: "Confirm session"
@@ -156,14 +156,14 @@ function F({ session: e, showMentor: t, isMentor: n, onCancel: r, onConfirm: s,
156
156
  ]
157
157
  });
158
158
  }
159
- function I({ loading: e, error: t, sessions: n, showMentor: r, emptyTitle: i, emptyDescription: a, emptyAction: o, isMentor: u, onCancel: d, onConfirm: f, onComplete: p, busyId: m }) {
160
- return e && n.length === 0 ? /* @__PURE__ */ E(l, {
159
+ function I({ loading: e, error: t, sessions: n, showMentor: r, emptyTitle: i, emptyDescription: a, emptyAction: o, isMentor: s, onCancel: d, onConfirm: f, onComplete: p, busyId: m }) {
160
+ return e && n.length === 0 ? /* @__PURE__ */ E(u, {
161
161
  count: 3,
162
162
  height: "h-24"
163
- }) : t ? /* @__PURE__ */ E(c, {
163
+ }) : t ? /* @__PURE__ */ E(l, {
164
164
  title: "Couldn't load sessions",
165
165
  error: t
166
- }) : n.length === 0 ? /* @__PURE__ */ E(s, {
166
+ }) : n.length === 0 ? /* @__PURE__ */ E(c, {
167
167
  icon: /* @__PURE__ */ E(S, { size: 26 }),
168
168
  title: i,
169
169
  description: a,
@@ -173,7 +173,7 @@ function I({ loading: e, error: t, sessions: n, showMentor: r, emptyTitle: i, em
173
173
  children: [...n].sort((e, t) => new Date(t.scheduledAt).getTime() - new Date(e.scheduledAt).getTime()).map((e) => /* @__PURE__ */ E(F, {
174
174
  session: e,
175
175
  showMentor: r,
176
- isMentor: u,
176
+ isMentor: s,
177
177
  onCancel: d,
178
178
  onConfirm: f,
179
179
  onComplete: p,
@@ -182,18 +182,18 @@ function I({ loading: e, error: t, sessions: n, showMentor: r, emptyTitle: i, em
182
182
  });
183
183
  }
184
184
  function L() {
185
- let i = t(), { currentUser: a, workspaceId: o } = e(), { emit: c } = g(), [y, x] = _("mentee"), [w, T] = _(null), k = a?.id, A = h(k ? { menteeId: k } : {}), P = m({}), F = P.data?.tecListMentors.items.find((e) => e.userId === a?.id), L = F?.id, R = h(L ? { mentorId: L } : {}), [z] = d(), [B] = p(), [V] = f(), H = k ? A.data?.tecListSessions ?? [] : [], U = L ? R.data?.tecListSessions ?? [] : [], W = [...H, ...U], G = W.filter((e) => e.status === "REQUESTED" || e.status === "CONFIRMED").length, K = W.filter((e) => e.status === "COMPLETED").length, q = async (e) => {
186
- T(e), c("technospam.session.cancel_clicked", {
187
- workspaceId: o,
185
+ let a = t(), { currentUser: o, workspaceId: s } = e(), { emit: l } = n(), [y, x] = _("mentee"), [w, T] = _(null), k = o?.id, A = g(k ? { menteeId: k } : {}), P = h({}), F = P.data?.tecListMentors.items.find((e) => e.userId === o?.id), L = F?.id, R = g(L ? { mentorId: L } : {}), [z] = f(), [B] = m(), [V] = p(), H = k ? A.data?.tecListSessions ?? [] : [], U = L ? R.data?.tecListSessions ?? [] : [], W = [...H, ...U], G = W.filter((e) => e.status === "REQUESTED" || e.status === "CONFIRMED").length, K = W.filter((e) => e.status === "COMPLETED").length, q = async (e) => {
186
+ T(e), l("technospam.session.cancel_clicked", {
187
+ workspaceId: s,
188
188
  entityId: e,
189
189
  entityType: "TEC_MENTOR_SESSION"
190
190
  });
191
191
  try {
192
- (await z({ variables: { id: e } })).data?.tecCancelSession && (c("technospam.session.cancelled", {
193
- workspaceId: o,
192
+ (await z({ variables: { id: e } })).data?.tecCancelSession && (l("technospam.session.cancelled", {
193
+ workspaceId: s,
194
194
  entityId: e,
195
195
  entityType: "TEC_MENTOR_SESSION"
196
- }), u.success("Session cancelled", "The session has been cancelled."));
196
+ }), d.success("Session cancelled", "The session has been cancelled."));
197
197
  } finally {
198
198
  T(null);
199
199
  }
@@ -203,13 +203,13 @@ function L() {
203
203
  (await B({ variables: {
204
204
  id: e,
205
205
  meetingUrl: t || void 0
206
- } })).data?.tecConfirmSession && (u.success("Session confirmed", "The mentee has been notified."), await R.refetch());
206
+ } })).data?.tecConfirmSession && (d.success("Session confirmed", "The mentee has been notified."), await R.refetch());
207
207
  } finally {
208
208
  T(null);
209
209
  }
210
210
  }, Y = async (e, t, n) => {
211
- T(e), c("technospam.session.complete_clicked", {
212
- workspaceId: o,
211
+ T(e), l("technospam.session.complete_clicked", {
212
+ workspaceId: s,
213
213
  entityId: e,
214
214
  entityType: "TEC_MENTOR_SESSION"
215
215
  });
@@ -218,47 +218,47 @@ function L() {
218
218
  id: e,
219
219
  rating: t,
220
220
  feedback: n || void 0
221
- } })).data?.tecCompleteSession && (c("technospam.session.completed", {
222
- workspaceId: o,
221
+ } })).data?.tecCompleteSession && (l("technospam.session.completed", {
222
+ workspaceId: s,
223
223
  entityId: e,
224
224
  entityType: "TEC_MENTOR_SESSION"
225
- }), u.success("Session completed", "Nice work — the session is wrapped up."), await R.refetch());
225
+ }), d.success("Session completed", "Nice work — the session is wrapped up."), await R.refetch());
226
226
  } finally {
227
227
  T(null);
228
228
  }
229
229
  };
230
- return a?.id ? /* @__PURE__ */ D(n, {
230
+ return o?.id ? /* @__PURE__ */ D(r, {
231
231
  hero: !0,
232
232
  title: "My Sessions",
233
233
  description: "Manage the mentorship sessions you've booked and the ones you host.",
234
234
  actions: /* @__PURE__ */ D(O, {
235
235
  variant: "outline",
236
- onClick: () => i("/mentorship/mentors-page"),
236
+ onClick: () => a("/mentorship/mentors-page"),
237
237
  children: [/* @__PURE__ */ E(C, { size: 16 }), " Find a mentor"]
238
238
  }),
239
239
  children: [
240
240
  /* @__PURE__ */ D("div", {
241
241
  className: "mb-5 grid grid-cols-2 gap-3 sm:grid-cols-4",
242
242
  children: [
243
- /* @__PURE__ */ E(r, {
243
+ /* @__PURE__ */ E(i, {
244
244
  label: "As mentee",
245
245
  value: H.length,
246
246
  icon: S,
247
247
  tone: "blue"
248
248
  }),
249
- /* @__PURE__ */ E(r, {
249
+ /* @__PURE__ */ E(i, {
250
250
  label: "As mentor",
251
251
  value: L ? U.length : 0,
252
252
  icon: C,
253
253
  tone: "purple"
254
254
  }),
255
- /* @__PURE__ */ E(r, {
255
+ /* @__PURE__ */ E(i, {
256
256
  label: "Upcoming",
257
257
  value: G,
258
258
  icon: v,
259
259
  tone: "teal"
260
260
  }),
261
- /* @__PURE__ */ E(r, {
261
+ /* @__PURE__ */ E(i, {
262
262
  label: "Completed",
263
263
  value: K,
264
264
  icon: b,
@@ -286,7 +286,7 @@ function L() {
286
286
  emptyTitle: "No sessions booked yet",
287
287
  emptyDescription: "Find a mentor and request a session to get personalized guidance.",
288
288
  emptyAction: /* @__PURE__ */ E(O, {
289
- onClick: () => i("/mentorship/mentors-page"),
289
+ onClick: () => a("/mentorship/mentors-page"),
290
290
  children: "Find a mentor"
291
291
  }),
292
292
  isMentor: !1,
@@ -294,7 +294,7 @@ function L() {
294
294
  onConfirm: J,
295
295
  onComplete: Y,
296
296
  busyId: w
297
- }) : P.loading && !F ? /* @__PURE__ */ E(l, {
297
+ }) : P.loading && !F ? /* @__PURE__ */ E(u, {
298
298
  count: 3,
299
299
  height: "h-24"
300
300
  }) : L ? /* @__PURE__ */ E(I, {
@@ -309,21 +309,21 @@ function L() {
309
309
  onConfirm: J,
310
310
  onComplete: Y,
311
311
  busyId: w
312
- }) : /* @__PURE__ */ E(s, {
312
+ }) : /* @__PURE__ */ E(c, {
313
313
  icon: /* @__PURE__ */ E(C, { size: 26 }),
314
314
  title: "You're not a mentor yet",
315
315
  description: "Create a mentor profile to start hosting sessions and helping others build.",
316
316
  action: /* @__PURE__ */ E(O, {
317
- onClick: () => i("/mentorship/mentors-page"),
317
+ onClick: () => a("/mentorship/mentors-page"),
318
318
  children: "Become a mentor"
319
319
  })
320
320
  })
321
321
  ]
322
- }) : /* @__PURE__ */ E(n, {
322
+ }) : /* @__PURE__ */ E(r, {
323
323
  hero: !0,
324
324
  title: "My Sessions",
325
325
  description: "Track your mentorship sessions.",
326
- children: /* @__PURE__ */ E(s, {
326
+ children: /* @__PURE__ */ E(c, {
327
327
  icon: /* @__PURE__ */ E(S, { size: 26 }),
328
328
  title: "Sign in to view your sessions",
329
329
  description: "Your booked and hosted mentorship sessions will appear here once you're signed in."
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/microfe-technospam",
3
- "version": "2026.709.3",
3
+ "version": "2026.709.4",
4
4
  "description": "Burdenoff TechnoSpam Microfrontend",
5
5
  "type": "module",
6
6
  "files": [
@@ -26,7 +26,7 @@
26
26
  "types": "./dist/index.d.ts",
27
27
  "scripts": {
28
28
  "dev": "vite",
29
- "build": "tsc && vite build",
29
+ "build": "MFE_DTS=1 tsc -p tsconfig.build.json && MFE_DTS=1 vite build",
30
30
  "lint": "eslint .",
31
31
  "format": "prettier --write \"src/**/*.{ts,tsx}\"",
32
32
  "type:check": "tsc --noEmit",