@burdenoff/microfe-technospam 2026.801.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.
- package/dist/node_modules/recharts/es6/cartesian/Brush.js.map +1 -1
- package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js.map +1 -1
- package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js.map +1 -1
- package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js.map +1 -1
- package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js.map +1 -1
- package/dist/node_modules/recharts/es6/cartesian/XAxis.js.map +1 -1
- package/dist/node_modules/recharts/es6/cartesian/YAxis.js.map +1 -1
- package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js.map +1 -1
- package/dist/node_modules/sonner/dist/index.js.map +1 -1
- package/dist/technospam/api/technospamApi.d.ts +19 -0
- package/dist/technospam/api/technospamApi.d.ts.map +1 -1
- package/dist/technospam/api/technospamApi.js +171 -150
- package/dist/technospam/api/technospamApi.js.map +1 -1
- package/dist/technospam/components/SubmissionViews.d.ts +31 -0
- package/dist/technospam/components/SubmissionViews.d.ts.map +1 -0
- package/dist/technospam/components/SubmissionViews.js +149 -0
- package/dist/technospam/components/SubmissionViews.js.map +1 -0
- package/dist/technospam/components/index.d.ts +1 -0
- package/dist/technospam/components/index.d.ts.map +1 -1
- package/dist/technospam/components/index.js +1 -0
- package/dist/technospam/pages/AdminAdminDashboardPagePage.d.ts.map +1 -1
- package/dist/technospam/pages/AdminAdminDashboardPagePage.js +725 -500
- package/dist/technospam/pages/AdminAdminDashboardPagePage.js.map +1 -1
- package/dist/technospam/pages/AnalyticsAnalyticsPagePage.d.ts.map +1 -1
- package/dist/technospam/pages/AnalyticsAnalyticsPagePage.js +343 -262
- package/dist/technospam/pages/AnalyticsAnalyticsPagePage.js.map +1 -1
- package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.d.ts.map +1 -1
- package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.js +97 -235
- package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.js.map +1 -1
- package/dist/technospam/pages/CoursesCourseDetailsPagePage.d.ts.map +1 -1
- package/dist/technospam/pages/CoursesCourseDetailsPagePage.js +293 -202
- package/dist/technospam/pages/CoursesCourseDetailsPagePage.js.map +1 -1
- package/dist/technospam/pages/CoursesMyLearningPagePage.d.ts.map +1 -1
- package/dist/technospam/pages/CoursesMyLearningPagePage.js +2 -2
- package/dist/technospam/pages/CoursesMyLearningPagePage.js.map +1 -1
- package/dist/technospam/pages/MentorshipMentorProfilePagePage.js +1 -2
- package/dist/technospam/pages/MentorshipMentorProfilePagePage.js.map +1 -1
- package/dist/technospam/pages/StudyPlannerStudyPlannerPagePage.d.ts.map +1 -1
- package/dist/technospam/pages/StudyPlannerStudyPlannerPagePage.js +180 -121
- package/dist/technospam/pages/StudyPlannerStudyPlannerPagePage.js.map +1 -1
- package/package.json +2 -2
|
@@ -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 {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
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
|
|
13
|
-
import { useProblemQuery as
|
|
14
|
-
import { useEffect as
|
|
15
|
-
import {
|
|
16
|
-
import { useSearchParams as
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
35
|
+
/* @__PURE__ */ T(b, { size: 13 }),
|
|
62
36
|
" ",
|
|
63
|
-
|
|
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(
|
|
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:
|
|
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
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
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
|
-
|
|
223
|
-
|
|
224
|
-
|
|
84
|
+
j,
|
|
85
|
+
N,
|
|
86
|
+
F
|
|
225
87
|
]);
|
|
226
88
|
let { data: z, loading: ve, error: B, refetch: V } = ie({
|
|
227
|
-
...
|
|
228
|
-
problemId:
|
|
229
|
-
}), [ye, { loading: H }] = ae(), [be, { loading: U }] =
|
|
230
|
-
|
|
231
|
-
W && !X.current && (q(W.languages[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 =
|
|
234
|
-
if (!
|
|
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
|
-
|
|
98
|
+
m.error("Pick a language", "Choose a language before submitting.");
|
|
237
99
|
return;
|
|
238
100
|
}
|
|
239
101
|
if (!J.trim()) {
|
|
240
|
-
|
|
102
|
+
m.error("Add your solution", "Write some code before submitting.");
|
|
241
103
|
return;
|
|
242
104
|
}
|
|
243
|
-
|
|
244
|
-
workspaceId:
|
|
245
|
-
entityId:
|
|
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:
|
|
112
|
+
problemId: j,
|
|
251
113
|
language: K,
|
|
252
114
|
code: J
|
|
253
115
|
} } });
|
|
254
116
|
if (e.data?.tecSubmitSolution) {
|
|
255
|
-
|
|
256
|
-
workspaceId:
|
|
257
|
-
entityId:
|
|
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" ?
|
|
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" ?
|
|
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
|
|
130
|
+
return _e && !W ? /* @__PURE__ */ E(n, {
|
|
269
131
|
title: "Problem",
|
|
270
132
|
backPath: "/applications/problems-page",
|
|
271
|
-
children: [/* @__PURE__ */ T(
|
|
272
|
-
}) : L || !W ? /* @__PURE__ */ T(
|
|
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(
|
|
137
|
+
children: L ? /* @__PURE__ */ T(c, {
|
|
276
138
|
title: "Couldn't load problem",
|
|
277
139
|
error: L
|
|
278
|
-
}) : /* @__PURE__ */ T(
|
|
140
|
+
}) : /* @__PURE__ */ T(s, {
|
|
279
141
|
title: "Problem not found",
|
|
280
142
|
description: "This problem may have been unpublished."
|
|
281
143
|
})
|
|
282
|
-
}) : /* @__PURE__ */ E(
|
|
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(
|
|
153
|
+
/* @__PURE__ */ T(o, {
|
|
292
154
|
status: W.difficulty,
|
|
293
155
|
kind: "level"
|
|
294
156
|
}),
|
|
295
|
-
/* @__PURE__ */ T(
|
|
296
|
-
W.topic ? /* @__PURE__ */ E(
|
|
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(
|
|
162
|
+
/* @__PURE__ */ T(S, { size: 12 }),
|
|
301
163
|
" ",
|
|
302
164
|
W.topic
|
|
303
165
|
]
|
|
304
166
|
}) : null,
|
|
305
|
-
W.isPremiumOnly ? /* @__PURE__ */ T(
|
|
306
|
-
/* @__PURE__ */ T(
|
|
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(
|
|
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(
|
|
180
|
+
/* @__PURE__ */ T(r, {
|
|
319
181
|
label: "Languages",
|
|
320
182
|
value: G.length,
|
|
321
|
-
icon:
|
|
183
|
+
icon: b,
|
|
322
184
|
tone: "blue"
|
|
323
185
|
}),
|
|
324
|
-
/* @__PURE__ */ T(
|
|
186
|
+
/* @__PURE__ */ T(r, {
|
|
325
187
|
label: "Difficulty",
|
|
326
|
-
value:
|
|
327
|
-
icon:
|
|
188
|
+
value: a(W.difficulty),
|
|
189
|
+
icon: S,
|
|
328
190
|
tone: "purple"
|
|
329
191
|
}),
|
|
330
|
-
/* @__PURE__ */ T(
|
|
192
|
+
/* @__PURE__ */ T(r, {
|
|
331
193
|
label: "My submissions",
|
|
332
194
|
value: Z.length,
|
|
333
|
-
icon:
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
365
|
-
label:
|
|
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(
|
|
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(
|
|
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(
|
|
251
|
+
}), /* @__PURE__ */ T(de, { children: G.map((e) => /* @__PURE__ */ T(fe, {
|
|
390
252
|
value: e,
|
|
391
|
-
children:
|
|
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(
|
|
272
|
+
/* @__PURE__ */ T(b, { size: 13 }),
|
|
411
273
|
" ",
|
|
412
|
-
K ?
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
332
|
+
children: [/* @__PURE__ */ T(p, {
|
|
471
333
|
label: "Input",
|
|
472
334
|
value: e.input
|
|
473
|
-
}), /* @__PURE__ */ T(
|
|
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(
|
|
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(
|
|
488
|
-
}) : $ && $.verdict === "PENDING" ? /* @__PURE__ */ E(
|
|
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(
|
|
361
|
+
/* @__PURE__ */ E(D, {
|
|
500
362
|
variant: "outline",
|
|
501
363
|
onClick: () => void Se($.id),
|
|
502
364
|
disabled: U,
|
|
503
365
|
children: [
|
|
504
|
-
/* @__PURE__ */ T(
|
|
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(
|
|
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(
|
|
381
|
+
}), ve && !Z.length ? /* @__PURE__ */ T(l, {
|
|
520
382
|
count: 3,
|
|
521
383
|
height: "h-12"
|
|
522
|
-
}) : B ? /* @__PURE__ */ T(
|
|
384
|
+
}) : B ? /* @__PURE__ */ T(c, {
|
|
523
385
|
title: "Couldn't load submissions",
|
|
524
386
|
error: B
|
|
525
|
-
}) : Z.length === 0 ? /* @__PURE__ */ T(
|
|
526
|
-
icon: /* @__PURE__ */ T(
|
|
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 {
|
|
402
|
+
export { j as ApplicationsProblemDetailsPagePage };
|
|
541
403
|
|
|
542
404
|
//# sourceMappingURL=ApplicationsProblemDetailsPagePage.js.map
|