@burdenoff/microfe-technospam 2026.731.1 → 2026.827.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 (47) hide show
  1. package/dist/node_modules/recharts/es6/cartesian/Brush.js.map +1 -1
  2. package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js.map +1 -1
  3. package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js.map +1 -1
  4. package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js.map +1 -1
  5. package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js.map +1 -1
  6. package/dist/node_modules/recharts/es6/cartesian/XAxis.js.map +1 -1
  7. package/dist/node_modules/recharts/es6/cartesian/YAxis.js.map +1 -1
  8. package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js.map +1 -1
  9. package/dist/node_modules/sonner/dist/index.js.map +1 -1
  10. package/dist/technospam/TechnoSpamRoutes.js +1 -1
  11. package/dist/technospam/TechnoSpamRoutes.js.map +1 -1
  12. package/dist/technospam/api/technospamApi.d.ts +19 -0
  13. package/dist/technospam/api/technospamApi.d.ts.map +1 -1
  14. package/dist/technospam/api/technospamApi.js +171 -150
  15. package/dist/technospam/api/technospamApi.js.map +1 -1
  16. package/dist/technospam/components/SubmissionViews.d.ts +31 -0
  17. package/dist/technospam/components/SubmissionViews.d.ts.map +1 -0
  18. package/dist/technospam/components/SubmissionViews.js +149 -0
  19. package/dist/technospam/components/SubmissionViews.js.map +1 -0
  20. package/dist/technospam/components/index.d.ts +1 -0
  21. package/dist/technospam/components/index.d.ts.map +1 -1
  22. package/dist/technospam/components/index.js +1 -0
  23. package/dist/technospam/pages/AdminAdminDashboardPagePage.d.ts.map +1 -1
  24. package/dist/technospam/pages/AdminAdminDashboardPagePage.js +725 -500
  25. package/dist/technospam/pages/AdminAdminDashboardPagePage.js.map +1 -1
  26. package/dist/technospam/pages/AnalyticsAnalyticsPagePage.d.ts.map +1 -1
  27. package/dist/technospam/pages/AnalyticsAnalyticsPagePage.js +343 -262
  28. package/dist/technospam/pages/AnalyticsAnalyticsPagePage.js.map +1 -1
  29. package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.d.ts.map +1 -1
  30. package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.js +97 -235
  31. package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.js.map +1 -1
  32. package/dist/technospam/pages/CoursesCourseDetailsPagePage.d.ts.map +1 -1
  33. package/dist/technospam/pages/CoursesCourseDetailsPagePage.js +294 -203
  34. package/dist/technospam/pages/CoursesCourseDetailsPagePage.js.map +1 -1
  35. package/dist/technospam/pages/CoursesMyLearningPagePage.d.ts.map +1 -1
  36. package/dist/technospam/pages/CoursesMyLearningPagePage.js +2 -2
  37. package/dist/technospam/pages/CoursesMyLearningPagePage.js.map +1 -1
  38. package/dist/technospam/pages/HackathonsHackathonDetailsPagePage.js +1 -1
  39. package/dist/technospam/pages/HackathonsHackathonDetailsPagePage.js.map +1 -1
  40. package/dist/technospam/pages/MentorshipMentorProfilePagePage.js +2 -3
  41. package/dist/technospam/pages/MentorshipMentorProfilePagePage.js.map +1 -1
  42. package/dist/technospam/pages/StudyPlannerStudyPlannerPagePage.d.ts.map +1 -1
  43. package/dist/technospam/pages/StudyPlannerStudyPlannerPagePage.js +180 -121
  44. package/dist/technospam/pages/StudyPlannerStudyPlannerPagePage.js.map +1 -1
  45. package/dist/technospam/providers/TechnoSpamProvider.js +1 -1
  46. package/dist/technospam/providers/TechnoSpamProvider.js.map +1 -1
  47. package/package.json +5 -5
@@ -1,72 +1,46 @@
1
1
  import { useTechnoSpam as e } from "../providers/TechnoSpamProvider.js";
2
2
  import { useTechnoSpamAnalytics as t } from "../hooks/useTechnoSpamAnalytics.js";
3
- import { cn as n } from "../utils/cn.js";
4
- import { PageLayout as r } from "../components/PageLayout.js";
5
- import { StatCard as i } from "../components/StatCard.js";
6
- import { formatDateTime as a, humanizeEnum as o } from "../utils/format.js";
7
- import { StatusBadge as s } from "../components/StatusBadge.js";
8
- import { EmptyView as c, ErrorView as l, LoadingRows as ee } from "../components/StateViews.js";
9
- import { TagStrip as te } from "../components/TagStrip.js";
10
- import { PremiumBadge as ne, UpgradeGate as u } from "../components/UpgradeGate.js";
3
+ import { PageLayout as n } from "../components/PageLayout.js";
4
+ import { StatCard as r } from "../components/StatCard.js";
5
+ import { formatDateTime as i, humanizeEnum as a } from "../utils/format.js";
6
+ import { StatusBadge as o } from "../components/StatusBadge.js";
7
+ import { EmptyView as s, ErrorView as c, LoadingRows as l } from "../components/StateViews.js";
8
+ import { TagStrip as u } from "../components/TagStrip.js";
9
+ import { PremiumBadge as ee, UpgradeGate as d } from "../components/UpgradeGate.js";
10
+ import { CodePanel as f, IoBlock as p, TestResultsPanel as te } from "../components/SubmissionViews.js";
11
11
  import "../components/index.js";
12
- import { notify as d } from "../lib/toast.js";
13
- import { useProblemQuery as re, useRegradeSubmission as f, useSubmissionsQuery as ie, useSubmitSolution as ae } from "../api/technospamApi.js";
14
- import { useEffect as p, useMemo as m, useRef as oe, useState as h } from "react";
15
- import { CheckCircle2 as g, Clock as _, Code2 as v, EyeOff as y, FileText as b, FlaskConical as se, Layers as x, MinusCircle as S, RefreshCw as ce, Send as le, Trophy as C, XCircle as w } from "lucide-react";
16
- import { useSearchParams as ue } from "react-router-dom";
12
+ import { notify as m } from "../lib/toast.js";
13
+ import { useProblemQuery as ne, useRegradeSubmission as re, useSubmissionsQuery as ie, useSubmitSolution as ae } from "../api/technospamApi.js";
14
+ import { useEffect as h, useMemo as g, useRef as _, useState as v } from "react";
15
+ import { Clock as y, Code2 as b, FileText as x, FlaskConical as oe, Layers as S, RefreshCw as se, Send as ce, Trophy as C } from "lucide-react";
16
+ import { useSearchParams as w } from "react-router";
17
17
  import { jsx as T, jsxs as E } from "react/jsx-runtime";
18
- import { Badge as D, Button as O, GlassCard as k, Select as de, SelectContent as fe, SelectItem as A, SelectTrigger as pe, SelectValue as me, Skeleton as j, Textarea as he } from "@burdenoff/fe-libs/ui";
18
+ import { Badge as le, Button as D, GlassCard as O, Select as ue, SelectContent as de, SelectItem as fe, SelectTrigger as pe, SelectValue as me, Skeleton as k, Textarea as he } from "@burdenoff/fe-libs/ui";
19
19
  //#region src/technospam/pages/ApplicationsProblemDetailsPagePage.tsx
20
- var M = [
20
+ var A = [
21
21
  "javascript",
22
22
  "python",
23
23
  "typescript"
24
24
  ];
25
- function N({ label: e, children: t, bodyClassName: r }) {
26
- return /* @__PURE__ */ E("div", {
27
- className: "overflow-hidden rounded-xl border border-border-strong bg-bg-sunken shadow-sm",
28
- children: [/* @__PURE__ */ E("div", {
29
- className: "flex items-center justify-between gap-2 border-b border-border-seam bg-bg-canvas/40 px-4 py-2",
30
- children: [/* @__PURE__ */ E("div", {
31
- className: "flex items-center gap-1.5",
32
- children: [
33
- /* @__PURE__ */ T("span", { className: "h-2.5 w-2.5 rounded-full bg-status-error-border" }),
34
- /* @__PURE__ */ T("span", { className: "h-2.5 w-2.5 rounded-full bg-status-warning-border" }),
35
- /* @__PURE__ */ T("span", { className: "h-2.5 w-2.5 rounded-full bg-status-success-border" })
36
- ]
37
- }), /* @__PURE__ */ E("span", {
38
- className: "inline-flex items-center gap-1.5 font-mono text-xs text-text-muted",
39
- children: [
40
- /* @__PURE__ */ T(v, { size: 13 }),
41
- " ",
42
- e
43
- ]
44
- })]
45
- }), /* @__PURE__ */ T("pre", {
46
- className: n("overflow-auto p-4 font-mono text-xs leading-relaxed text-text-primary", r),
47
- children: t
48
- })]
49
- });
50
- }
51
25
  function ge({ s: e }) {
52
26
  return /* @__PURE__ */ E("div", {
53
27
  className: "rounded-lg border border-transparent px-2 py-3 transition-colors hover:border-border-seam hover:bg-bg-sunken",
54
28
  children: [/* @__PURE__ */ E("div", {
55
29
  className: "flex flex-wrap items-center gap-x-4 gap-y-1",
56
30
  children: [
57
- /* @__PURE__ */ T(s, { status: e.verdict }),
31
+ /* @__PURE__ */ T(o, { status: e.verdict }),
58
32
  /* @__PURE__ */ E("span", {
59
33
  className: "inline-flex items-center gap-1 text-sm font-medium text-text-primary",
60
34
  children: [
61
- /* @__PURE__ */ T(v, { size: 13 }),
35
+ /* @__PURE__ */ T(b, { size: 13 }),
62
36
  " ",
63
- o(e.language)
37
+ a(e.language)
64
38
  ]
65
39
  }),
66
40
  /* @__PURE__ */ E("span", {
67
41
  className: "inline-flex items-center gap-1 text-xs text-text-muted",
68
42
  children: [
69
- /* @__PURE__ */ T(_, { size: 12 }),
43
+ /* @__PURE__ */ T(y, { size: 12 }),
70
44
  " ",
71
45
  e.runtimeMs,
72
46
  " ms"
@@ -83,7 +57,7 @@ function ge({ s: e }) {
83
57
  }),
84
58
  /* @__PURE__ */ T("span", {
85
59
  className: "ml-auto text-xs text-text-muted",
86
- children: a(e.createdAt)
60
+ children: i(e.createdAt)
87
61
  })
88
62
  ]
89
63
  }), e.totalCount > 0 ? /* @__PURE__ */ E("p", {
@@ -98,188 +72,76 @@ function ge({ s: e }) {
98
72
  }) : null]
99
73
  });
100
74
  }
101
- function P(e) {
102
- return e === "PASSED" ? {
103
- icon: /* @__PURE__ */ T(g, { size: 14 }),
104
- className: "text-status-success-fg"
105
- } : e === "SKIPPED" ? {
106
- icon: /* @__PURE__ */ T(S, { size: 14 }),
107
- className: "text-text-muted"
108
- } : {
109
- icon: /* @__PURE__ */ T(w, { size: 14 }),
110
- className: "text-status-error-fg"
111
- };
112
- }
113
- function _e({ submission: e }) {
114
- let t = e.testResults ?? [];
115
- return t.length === 0 ? null : /* @__PURE__ */ E("div", {
116
- className: "space-y-3",
117
- children: [
118
- /* @__PURE__ */ E("div", {
119
- className: "flex flex-wrap items-center gap-x-3 gap-y-1",
120
- children: [
121
- /* @__PURE__ */ T(s, { status: e.verdict }),
122
- /* @__PURE__ */ E("span", {
123
- className: "text-sm text-text-secondary",
124
- children: [
125
- "Passed ",
126
- e.passedCount,
127
- " of ",
128
- e.totalCount,
129
- " test cases"
130
- ]
131
- }),
132
- /* @__PURE__ */ E("span", {
133
- className: "inline-flex items-center gap-1 text-xs text-text-muted",
134
- children: [
135
- /* @__PURE__ */ T(_, { size: 12 }),
136
- " ",
137
- e.runtimeMs,
138
- " ms"
139
- ]
140
- })
141
- ]
142
- }),
143
- /* @__PURE__ */ T("div", {
144
- className: "divide-y divide-border-seam overflow-hidden rounded-xl border border-border-seam",
145
- children: t.map((e) => {
146
- let t = P(e.status);
147
- return /* @__PURE__ */ E("div", {
148
- className: "space-y-2 bg-bg-surface px-4 py-3",
149
- children: [/* @__PURE__ */ E("div", {
150
- className: "flex flex-wrap items-center gap-x-3 gap-y-1",
151
- children: [
152
- /* @__PURE__ */ E("span", {
153
- className: n("inline-flex items-center gap-1.5 text-sm font-medium", t.className),
154
- children: [
155
- t.icon,
156
- " ",
157
- e.name
158
- ]
159
- }),
160
- /* @__PURE__ */ T(D, {
161
- variant: "outline",
162
- children: o(e.status)
163
- }),
164
- e.visibility === "HIDDEN" ? /* @__PURE__ */ E("span", {
165
- className: "inline-flex items-center gap-1 text-xs text-text-muted",
166
- children: [/* @__PURE__ */ T(y, { size: 12 }), " hidden test"]
167
- }) : null,
168
- /* @__PURE__ */ E("span", {
169
- className: "ml-auto text-xs text-text-muted",
170
- children: [e.durationMs, " ms"]
171
- })
172
- ]
173
- }), e.visibility === "PUBLIC" && e.status !== "SKIPPED" ? /* @__PURE__ */ E("div", {
174
- className: "grid grid-cols-1 gap-2 sm:grid-cols-3",
175
- children: [
176
- /* @__PURE__ */ T(F, {
177
- label: "Input",
178
- value: e.input
179
- }),
180
- /* @__PURE__ */ T(F, {
181
- label: "Expected",
182
- value: e.expectedOutput
183
- }),
184
- /* @__PURE__ */ T(F, {
185
- label: "Your output",
186
- value: e.actualOutput
187
- })
188
- ]
189
- }) : null]
190
- }, e.testCaseId);
191
- })
192
- }),
193
- e.stderr ? /* @__PURE__ */ T(N, {
194
- label: "stderr",
195
- bodyClassName: "max-h-48",
196
- children: e.stderr
197
- }) : null
198
- ]
199
- });
200
- }
201
- function F({ label: e, value: t }) {
202
- return /* @__PURE__ */ E("div", {
203
- className: "min-w-0",
204
- children: [/* @__PURE__ */ T("p", {
205
- className: "mb-1 text-xs font-medium uppercase tracking-wide text-text-muted",
206
- children: e
207
- }), /* @__PURE__ */ T("pre", {
208
- className: "overflow-auto rounded-lg bg-bg-sunken px-3 py-2 font-mono text-xs leading-relaxed text-text-primary",
209
- children: t?.length ? t : "—"
210
- })]
211
- });
212
- }
213
- function I() {
214
- let [n] = ue(), a = n.get("id") ?? "", { currentUser: g, workspaceId: y } = e(), S = g?.id, { emit: w } = t(), { data: P, loading: I, error: L, refetch: R } = re(a);
215
- p(() => {
216
- a && w("technospam.problem.viewed", {
217
- workspaceId: y,
218
- entityId: a,
75
+ function j() {
76
+ let [i] = w(), j = i.get("id") ?? "", { currentUser: M, workspaceId: N } = e(), P = M?.id, { emit: F } = t(), { data: I, loading: _e, error: L, refetch: R } = ne(j);
77
+ h(() => {
78
+ j && F("technospam.problem.viewed", {
79
+ workspaceId: N,
80
+ entityId: j,
219
81
  entityType: "TEC_PROBLEM"
220
82
  });
221
83
  }, [
222
- a,
223
- y,
224
- w
84
+ j,
85
+ N,
86
+ F
225
87
  ]);
226
88
  let { data: z, loading: ve, error: B, refetch: V } = ie({
227
- ...S ? { learnerId: S } : {},
228
- problemId: a
229
- }), [ye, { loading: H }] = ae(), [be, { loading: U }] = f(), W = P?.tecProblem ?? null, G = m(() => W?.languages?.length ? W.languages : M, [W]), [K, q] = h(""), [J, Y] = h(""), X = oe(!1);
230
- p(() => {
231
- W && !X.current && (q(W.languages[0] ?? M[0]), Y(W.starterCode ?? ""), X.current = !0);
89
+ ...P ? { learnerId: P } : {},
90
+ problemId: j
91
+ }), [ye, { loading: H }] = ae(), [be, { loading: U }] = re(), W = I?.tecProblem ?? null, G = g(() => W?.languages?.length ? W.languages : A, [W]), [K, q] = v(""), [J, Y] = v(""), X = _(!1);
92
+ h(() => {
93
+ W && !X.current && (q(W.languages[0] ?? A[0]), Y(W.starterCode ?? ""), X.current = !0);
232
94
  }, [W]);
233
- let Z = m(() => [...z?.tecListSubmissions.items ?? []].sort((e, t) => new Date(t.createdAt).getTime() - new Date(e.createdAt).getTime()), [z]), xe = async () => {
234
- if (!a) return;
95
+ let Z = g(() => [...z?.tecListSubmissions.items ?? []].sort((e, t) => new Date(t.createdAt).getTime() - new Date(e.createdAt).getTime()), [z]), xe = async () => {
96
+ if (!j) return;
235
97
  if (!K) {
236
- d.error("Pick a language", "Choose a language before submitting.");
98
+ m.error("Pick a language", "Choose a language before submitting.");
237
99
  return;
238
100
  }
239
101
  if (!J.trim()) {
240
- d.error("Add your solution", "Write some code before submitting.");
102
+ m.error("Add your solution", "Write some code before submitting.");
241
103
  return;
242
104
  }
243
- w("technospam.problem.submit_clicked", {
244
- workspaceId: y,
245
- entityId: a,
105
+ F("technospam.problem.submit_clicked", {
106
+ workspaceId: N,
107
+ entityId: j,
246
108
  entityType: "TEC_PROBLEM",
247
109
  language: K
248
110
  });
249
111
  let e = await ye({ variables: { input: {
250
- problemId: a,
112
+ problemId: j,
251
113
  language: K,
252
114
  code: J
253
115
  } } });
254
116
  if (e.data?.tecSubmitSolution) {
255
- w("technospam.problem.submitted", {
256
- workspaceId: y,
257
- entityId: a,
117
+ F("technospam.problem.submitted", {
118
+ workspaceId: N,
119
+ entityId: j,
258
120
  entityType: "TEC_PROBLEM",
259
121
  submissionId: e.data.tecSubmitSolution.id
260
122
  });
261
123
  let t = e.data.tecSubmitSolution;
262
- t.verdict === "PENDING" ? d.info("Solution submitted", "The grader is not available right now — your submission was saved and can be re-run.") : t.verdict === "ACCEPTED" ? d.success("Accepted", `Passed all ${t.totalCount} test cases.`) : d.error(o(t.verdict), `Passed ${t.passedCount} of ${t.totalCount} test cases.`), await Promise.all([R(), V()]);
124
+ t.verdict === "PENDING" ? m.info("Solution submitted", "The grader is not available right now — your submission was saved and can be re-run.") : t.verdict === "ACCEPTED" ? m.success("Accepted", `Passed all ${t.totalCount} test cases.`) : m.error(a(t.verdict), `Passed ${t.passedCount} of ${t.totalCount} test cases.`), await Promise.all([R(), V()]);
263
125
  }
264
126
  }, Se = async (e) => {
265
127
  let t = (await be({ variables: { id: e } })).data?.tecRegradeSubmission;
266
- t && (t.verdict === "PENDING" ? d.error("Still pending", "The grader is not available yet. Please try again shortly.") : d.success("Grading complete", `Verdict: ${o(t.verdict)}.`), await Promise.all([R(), V()]));
128
+ t && (t.verdict === "PENDING" ? m.error("Still pending", "The grader is not available yet. Please try again shortly.") : m.success("Grading complete", `Verdict: ${a(t.verdict)}.`), await Promise.all([R(), V()]));
267
129
  }, Q = Z.find((e) => (e.testResults?.length ?? 0) > 0) ?? null, $ = Z[0] ?? null;
268
- return I && !W ? /* @__PURE__ */ E(r, {
130
+ return _e && !W ? /* @__PURE__ */ E(n, {
269
131
  title: "Problem",
270
132
  backPath: "/applications/problems-page",
271
- children: [/* @__PURE__ */ T(j, { className: "mb-4 h-28 w-full rounded-xl" }), /* @__PURE__ */ T(j, { className: "h-72 w-full rounded-xl" })]
272
- }) : L || !W ? /* @__PURE__ */ T(r, {
133
+ children: [/* @__PURE__ */ T(k, { className: "mb-4 h-28 w-full rounded-xl" }), /* @__PURE__ */ T(k, { className: "h-72 w-full rounded-xl" })]
134
+ }) : L || !W ? /* @__PURE__ */ T(n, {
273
135
  title: "Problem",
274
136
  backPath: "/applications/problems-page",
275
- children: L ? /* @__PURE__ */ T(l, {
137
+ children: L ? /* @__PURE__ */ T(c, {
276
138
  title: "Couldn't load problem",
277
139
  error: L
278
- }) : /* @__PURE__ */ T(c, {
140
+ }) : /* @__PURE__ */ T(s, {
279
141
  title: "Problem not found",
280
142
  description: "This problem may have been unpublished."
281
143
  })
282
- }) : /* @__PURE__ */ E(r, {
144
+ }) : /* @__PURE__ */ E(n, {
283
145
  hero: !0,
284
146
  backPath: "/applications/problems-page",
285
147
  title: W.title,
@@ -288,49 +150,49 @@ function I() {
288
150
  /* @__PURE__ */ E("div", {
289
151
  className: "mb-5 flex flex-wrap items-center gap-2",
290
152
  children: [
291
- /* @__PURE__ */ T(s, {
153
+ /* @__PURE__ */ T(o, {
292
154
  status: W.difficulty,
293
155
  kind: "level"
294
156
  }),
295
- /* @__PURE__ */ T(s, { status: W.status }),
296
- W.topic ? /* @__PURE__ */ E(D, {
157
+ /* @__PURE__ */ T(o, { status: W.status }),
158
+ W.topic ? /* @__PURE__ */ E(le, {
297
159
  variant: "outline",
298
160
  className: "gap-1",
299
161
  children: [
300
- /* @__PURE__ */ T(x, { size: 12 }),
162
+ /* @__PURE__ */ T(S, { size: 12 }),
301
163
  " ",
302
164
  W.topic
303
165
  ]
304
166
  }) : null,
305
- W.isPremiumOnly ? /* @__PURE__ */ T(ne, { locked: W.isLocked }) : null,
306
- /* @__PURE__ */ T(te, { tags: W.tags })
167
+ W.isPremiumOnly ? /* @__PURE__ */ T(ee, { locked: W.isLocked }) : null,
168
+ /* @__PURE__ */ T(u, { tags: W.tags })
307
169
  ]
308
170
  }),
309
171
  /* @__PURE__ */ E("div", {
310
172
  className: "mb-6 grid grid-cols-2 gap-3 sm:grid-cols-4",
311
173
  children: [
312
- /* @__PURE__ */ T(i, {
174
+ /* @__PURE__ */ T(r, {
313
175
  label: "Points",
314
176
  value: W.points,
315
177
  icon: C,
316
178
  tone: "amber"
317
179
  }),
318
- /* @__PURE__ */ T(i, {
180
+ /* @__PURE__ */ T(r, {
319
181
  label: "Languages",
320
182
  value: G.length,
321
- icon: v,
183
+ icon: b,
322
184
  tone: "blue"
323
185
  }),
324
- /* @__PURE__ */ T(i, {
186
+ /* @__PURE__ */ T(r, {
325
187
  label: "Difficulty",
326
- value: o(W.difficulty),
327
- icon: x,
188
+ value: a(W.difficulty),
189
+ icon: S,
328
190
  tone: "purple"
329
191
  }),
330
- /* @__PURE__ */ T(i, {
192
+ /* @__PURE__ */ T(r, {
331
193
  label: "My submissions",
332
194
  value: Z.length,
333
- icon: b,
195
+ icon: x,
334
196
  tone: "teal"
335
197
  })
336
198
  ]
@@ -340,12 +202,12 @@ function I() {
340
202
  children: [/* @__PURE__ */ E("div", {
341
203
  className: "space-y-5 lg:col-span-2",
342
204
  children: [
343
- /* @__PURE__ */ E(k, {
205
+ /* @__PURE__ */ E(O, {
344
206
  className: "p-5",
345
207
  children: [/* @__PURE__ */ T("h2", {
346
208
  className: "mb-2 text-base font-semibold text-text-primary",
347
209
  children: "Problem statement"
348
- }), W.isLocked ? /* @__PURE__ */ T(u, { description: "This problem's statement is part of a paid TechnoSpam plan. Ask a workspace admin to upgrade to unlock it." }) : W.statement ? /* @__PURE__ */ T("p", {
210
+ }), W.isLocked ? /* @__PURE__ */ T(d, { description: "This problem's statement is part of a paid TechnoSpam plan. Ask a workspace admin to upgrade to unlock it." }) : W.statement ? /* @__PURE__ */ T("p", {
349
211
  className: "whitespace-pre-wrap text-sm leading-relaxed text-text-secondary",
350
212
  children: W.statement
351
213
  }) : /* @__PURE__ */ T("p", {
@@ -353,21 +215,21 @@ function I() {
353
215
  children: "The statement for this problem is being prepared."
354
216
  })]
355
217
  }),
356
- W.isLocked ? /* @__PURE__ */ T(u, {
218
+ W.isLocked ? /* @__PURE__ */ T(d, {
357
219
  compact: !0,
358
220
  description: "Starter code and sample test cases unlock with a paid TechnoSpam plan."
359
- }) : W.starterCode ? /* @__PURE__ */ E(k, {
221
+ }) : W.starterCode ? /* @__PURE__ */ E(O, {
360
222
  className: "p-5",
361
223
  children: [/* @__PURE__ */ T("h2", {
362
224
  className: "mb-3 text-base font-semibold text-text-primary",
363
225
  children: "Starter code"
364
- }), /* @__PURE__ */ T(N, {
365
- label: o(G[0] ?? "code"),
226
+ }), /* @__PURE__ */ T(f, {
227
+ label: a(G[0] ?? "code"),
366
228
  bodyClassName: "max-h-72",
367
229
  children: W.starterCode
368
230
  })]
369
231
  }) : null,
370
- /* @__PURE__ */ E(k, {
232
+ /* @__PURE__ */ E(O, {
371
233
  className: "p-5",
372
234
  children: [
373
235
  /* @__PURE__ */ E("div", {
@@ -380,15 +242,15 @@ function I() {
380
242
  children: [/* @__PURE__ */ T("span", {
381
243
  className: "text-sm text-text-secondary",
382
244
  children: "Language"
383
- }), /* @__PURE__ */ E(de, {
245
+ }), /* @__PURE__ */ E(ue, {
384
246
  value: K,
385
247
  onValueChange: q,
386
248
  children: [/* @__PURE__ */ T(pe, {
387
249
  className: "w-full sm:w-48",
388
250
  children: /* @__PURE__ */ T(me, { placeholder: "Choose a language" })
389
- }), /* @__PURE__ */ T(fe, { children: G.map((e) => /* @__PURE__ */ T(A, {
251
+ }), /* @__PURE__ */ T(de, { children: G.map((e) => /* @__PURE__ */ T(fe, {
390
252
  value: e,
391
- children: o(e)
253
+ children: a(e)
392
254
  }, e)) })]
393
255
  })]
394
256
  })]
@@ -407,9 +269,9 @@ function I() {
407
269
  }), /* @__PURE__ */ E("span", {
408
270
  className: "inline-flex items-center gap-1.5 font-mono text-xs text-text-muted",
409
271
  children: [
410
- /* @__PURE__ */ T(v, { size: 13 }),
272
+ /* @__PURE__ */ T(b, { size: 13 }),
411
273
  " ",
412
- K ? o(K) : "solution"
274
+ K ? a(K) : "solution"
413
275
  ]
414
276
  })]
415
277
  }), /* @__PURE__ */ T(he, {
@@ -420,12 +282,12 @@ function I() {
420
282
  spellCheck: !1
421
283
  })]
422
284
  }),
423
- /* @__PURE__ */ E(O, {
285
+ /* @__PURE__ */ E(D, {
424
286
  className: "mt-4 w-full",
425
287
  onClick: xe,
426
288
  disabled: H || !J.trim(),
427
289
  children: [
428
- /* @__PURE__ */ T(le, { size: 16 }),
290
+ /* @__PURE__ */ T(ce, { size: 16 }),
429
291
  " ",
430
292
  H ? "Running test cases…" : "Run & submit"
431
293
  ]
@@ -436,12 +298,12 @@ function I() {
436
298
  })
437
299
  ]
438
300
  }),
439
- W.publicTestCases?.length ? /* @__PURE__ */ E(k, {
301
+ W.publicTestCases?.length ? /* @__PURE__ */ E(O, {
440
302
  className: "p-5",
441
303
  children: [
442
304
  /* @__PURE__ */ E("h2", {
443
305
  className: "mb-1 flex items-center gap-2 text-base font-semibold text-text-primary",
444
- children: [/* @__PURE__ */ T(se, { size: 16 }), " Sample test cases"]
306
+ children: [/* @__PURE__ */ T(oe, { size: 16 }), " Sample test cases"]
445
307
  }),
446
308
  /* @__PURE__ */ T("p", {
447
309
  className: "mb-3 text-sm text-text-secondary",
@@ -459,7 +321,7 @@ function I() {
459
321
  }), /* @__PURE__ */ E("span", {
460
322
  className: "inline-flex items-center gap-1 text-xs text-text-muted",
461
323
  children: [
462
- /* @__PURE__ */ T(_, { size: 12 }),
324
+ /* @__PURE__ */ T(y, { size: 12 }),
463
325
  " ",
464
326
  e.timeLimitMs,
465
327
  " ms limit"
@@ -467,10 +329,10 @@ function I() {
467
329
  })]
468
330
  }), /* @__PURE__ */ E("div", {
469
331
  className: "grid grid-cols-1 gap-2 sm:grid-cols-2",
470
- children: [/* @__PURE__ */ T(F, {
332
+ children: [/* @__PURE__ */ T(p, {
471
333
  label: "Input",
472
334
  value: e.input
473
- }), /* @__PURE__ */ T(F, {
335
+ }), /* @__PURE__ */ T(p, {
474
336
  label: "Expected output",
475
337
  value: e.expectedOutput
476
338
  })]
@@ -479,13 +341,13 @@ function I() {
479
341
  })
480
342
  ]
481
343
  }) : null,
482
- Q ? /* @__PURE__ */ E(k, {
344
+ Q ? /* @__PURE__ */ E(O, {
483
345
  className: "p-5",
484
346
  children: [/* @__PURE__ */ T("h2", {
485
347
  className: "mb-3 text-base font-semibold text-text-primary",
486
348
  children: "Latest run"
487
- }), /* @__PURE__ */ T(_e, { submission: Q })]
488
- }) : $ && $.verdict === "PENDING" ? /* @__PURE__ */ E(k, {
349
+ }), /* @__PURE__ */ T(te, { submission: Q })]
350
+ }) : $ && $.verdict === "PENDING" ? /* @__PURE__ */ E(O, {
489
351
  className: "p-5",
490
352
  children: [
491
353
  /* @__PURE__ */ T("h2", {
@@ -496,12 +358,12 @@ function I() {
496
358
  className: "mb-3 text-sm text-text-secondary",
497
359
  children: "Your most recent submission has not been graded yet — the grader was unavailable when you submitted. You can re-run it without resubmitting your code."
498
360
  }),
499
- /* @__PURE__ */ E(O, {
361
+ /* @__PURE__ */ E(D, {
500
362
  variant: "outline",
501
363
  onClick: () => void Se($.id),
502
364
  disabled: U,
503
365
  children: [
504
- /* @__PURE__ */ T(ce, { size: 16 }),
366
+ /* @__PURE__ */ T(se, { size: 16 }),
505
367
  " ",
506
368
  U ? "Re-running…" : "Re-run grader"
507
369
  ]
@@ -511,19 +373,19 @@ function I() {
511
373
  ]
512
374
  }), /* @__PURE__ */ T("div", {
513
375
  className: "lg:col-span-1",
514
- children: /* @__PURE__ */ E(k, {
376
+ children: /* @__PURE__ */ E(O, {
515
377
  className: "p-5",
516
378
  children: [/* @__PURE__ */ T("h2", {
517
379
  className: "mb-3 text-base font-semibold text-text-primary",
518
380
  children: "My submissions"
519
- }), ve && !Z.length ? /* @__PURE__ */ T(ee, {
381
+ }), ve && !Z.length ? /* @__PURE__ */ T(l, {
520
382
  count: 3,
521
383
  height: "h-12"
522
- }) : B ? /* @__PURE__ */ T(l, {
384
+ }) : B ? /* @__PURE__ */ T(c, {
523
385
  title: "Couldn't load submissions",
524
386
  error: B
525
- }) : Z.length === 0 ? /* @__PURE__ */ T(c, {
526
- icon: /* @__PURE__ */ T(b, { size: 24 }),
387
+ }) : Z.length === 0 ? /* @__PURE__ */ T(s, {
388
+ icon: /* @__PURE__ */ T(x, { size: 24 }),
527
389
  title: "No submissions yet",
528
390
  description: "Submit a solution above to see your verdicts and points here."
529
391
  }) : /* @__PURE__ */ T("div", {
@@ -537,6 +399,6 @@ function I() {
537
399
  });
538
400
  }
539
401
  //#endregion
540
- export { I as ApplicationsProblemDetailsPagePage };
402
+ export { j as ApplicationsProblemDetailsPagePage };
541
403
 
542
404
  //# sourceMappingURL=ApplicationsProblemDetailsPagePage.js.map