@epic-web/workshop-app 5.7.1 → 5.8.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/build/client/assets/{_-CjjFMNGC.js → _-BbjJ9R-5.js} +2 -2
- package/build/client/assets/{_-CjjFMNGC.js.map → _-BbjJ9R-5.js.map} +1 -1
- package/build/client/assets/_exerciseNumber-BdRxxVY9.js +2 -0
- package/build/client/assets/{_exerciseNumber-CqkGzsgV.js.map → _exerciseNumber-BdRxxVY9.js.map} +1 -1
- package/build/client/assets/{_exerciseNumber_._stepNumber-BNWGPi9m.js → _exerciseNumber_._stepNumber-CZKDy98j.js} +2 -2
- package/build/client/assets/{_exerciseNumber_._stepNumber-BNWGPi9m.js.map → _exerciseNumber_._stepNumber-CZKDy98j.js.map} +1 -1
- package/build/client/assets/_exerciseNumber_.finished-zD7Rb_Qp.js +2 -0
- package/build/client/assets/_exerciseNumber_.finished-zD7Rb_Qp.js.map +1 -0
- package/build/client/assets/_layout-BN0qitsj.js +2 -0
- package/build/client/assets/_layout-BN0qitsj.js.map +1 -0
- package/build/client/assets/_layout-DMejPY7I.js +6 -0
- package/build/client/assets/_layout-DMejPY7I.js.map +1 -0
- package/build/client/assets/{accordion-C-sW--in.js → accordion-BL_cX9y6.js} +2 -2
- package/build/client/assets/{accordion-C-sW--in.js.map → accordion-BL_cX9y6.js.map} +1 -1
- package/build/client/assets/{account-Cc968svU.js → account-C4MWGVQU.js} +2 -2
- package/build/client/assets/{account-Cc968svU.js.map → account-C4MWGVQU.js.map} +1 -1
- package/build/client/assets/app-srTG3_Hm.js +2 -0
- package/build/client/assets/{app-BOqXK9hi.js.map → app-srTG3_Hm.js.map} +1 -1
- package/build/client/assets/{button-BS845Tjo.js → button-DhtjxLl5.js} +2 -2
- package/build/client/assets/{button-BS845Tjo.js.map → button-DhtjxLl5.js.map} +1 -1
- package/build/client/assets/diff-CMHaCmku.js +2 -0
- package/build/client/assets/diff-CMHaCmku.js.map +1 -0
- package/build/client/assets/diff-CcVqQ39D.js +2 -0
- package/build/client/assets/{diff-D0e_PrB7.js.map → diff-CcVqQ39D.js.map} +1 -1
- package/build/client/assets/{discord-BfP_Rny5.js → discord-DsGCI_e6.js} +2 -2
- package/build/client/assets/{discord-BfP_Rny5.js.map → discord-DsGCI_e6.js.map} +1 -1
- package/build/client/assets/discord-tUa_uzeh.js +2 -0
- package/build/client/assets/discord-tUa_uzeh.js.map +1 -0
- package/build/client/assets/{epic-video-qHKPWPt1.js → epic-video-DbfbYOk7.js} +121 -121
- package/build/client/assets/{epic-video-qHKPWPt1.js.map → epic-video-DbfbYOk7.js.map} +1 -1
- package/build/client/assets/{error-boundary-Beul7lrT.js → error-boundary-DBVB3BBH.js} +2 -2
- package/build/client/assets/{error-boundary-Beul7lrT.js.map → error-boundary-DBVB3BBH.js.map} +1 -1
- package/build/client/assets/finished-EOAd0vS7.js +2 -0
- package/build/client/assets/finished-EOAd0vS7.js.map +1 -0
- package/build/client/assets/{icons-BtWYk6Ws.svg → icons-BM6r7NHK.svg} +9 -0
- package/build/client/assets/{index-cZQeGrqL.js → index-BH_SsYHe.js} +2 -2
- package/build/client/assets/{index-cZQeGrqL.js.map → index-BH_SsYHe.js.map} +1 -1
- package/build/client/assets/{index-BOQWfIQC.js → index-Ba7zHVvt.js} +3 -3
- package/build/client/assets/{index-BOQWfIQC.js.map → index-Ba7zHVvt.js.map} +1 -1
- package/build/client/assets/index-BoOt6peO.js +2 -0
- package/build/client/assets/index-BoOt6peO.js.map +1 -0
- package/build/client/assets/index-Bqxmi8_-.js +2 -0
- package/build/client/assets/{index-oED4uZLa.js.map → index-Bqxmi8_-.js.map} +1 -1
- package/build/client/assets/{index-BHwOR8R1.js → index-CWadM2q_.js} +2 -2
- package/build/client/assets/{index-BHwOR8R1.js.map → index-CWadM2q_.js.map} +1 -1
- package/build/client/assets/{index-BPegC-d3.js → index-D7-ne3iG.js} +2 -2
- package/build/client/assets/{index-BPegC-d3.js.map → index-D7-ne3iG.js.map} +1 -1
- package/build/client/assets/{loading-C2wPVvQw.js → loading-ZSC9wgHC.js} +2 -2
- package/build/client/assets/{loading-C2wPVvQw.js.map → loading-ZSC9wgHC.js.map} +1 -1
- package/build/client/assets/{login-DoU7gifi.js → login-CJfcLXAB.js} +2 -2
- package/build/client/assets/{login-DoU7gifi.js.map → login-CJfcLXAB.js.map} +1 -1
- package/build/client/assets/manifest-710bbc0c.js +1 -0
- package/build/client/assets/{mdx-CsS30JUo.js → mdx-Nz3dsEsr.js} +2 -2
- package/build/client/assets/{mdx-CsS30JUo.js.map → mdx-Nz3dsEsr.js.map} +1 -1
- package/build/client/assets/{misc-BtjCSy-T.js → misc-D9k1wGip.js} +2 -2
- package/build/client/assets/{misc-BtjCSy-T.js.map → misc-D9k1wGip.js.map} +1 -1
- package/build/client/assets/{nav-chevrons-2hLTwAZb.js → nav-chevrons-CM-frhig.js} +2 -2
- package/build/client/assets/{nav-chevrons-2hLTwAZb.js.map → nav-chevrons-CM-frhig.js.map} +1 -1
- package/build/client/assets/onboarding-DhIDoTnn.js +2 -0
- package/build/client/assets/{onboarding-Cu6eD7KS.js.map → onboarding-DhIDoTnn.js.map} +1 -1
- package/build/client/assets/online-CN5sXlwN.js +2 -0
- package/build/client/assets/online-CN5sXlwN.js.map +1 -0
- package/build/client/assets/{preferences-br0VSK51.js → preferences-DhTuJwew.js} +2 -2
- package/build/client/assets/{preferences-br0VSK51.js.map → preferences-DhTuJwew.js.map} +1 -1
- package/build/client/assets/{presence-CrYBA3ta.js → presence-DcXyg7el.js} +5 -5
- package/build/client/assets/{presence-CrYBA3ta.js.map → presence-DcXyg7el.js.map} +1 -1
- package/build/client/assets/{preview-C2y4Z0qO.js → preview-BhbdVgz0.js} +2 -2
- package/build/client/assets/{preview-C2y4Z0qO.js.map → preview-BhbdVgz0.js.map} +1 -1
- package/build/client/assets/{product-gqq_YQBW.js → product-DD8nUALO.js} +2 -2
- package/build/client/assets/{product-gqq_YQBW.js.map → product-DD8nUALO.js.map} +1 -1
- package/build/client/assets/{progress-D-HsH4j3.js → progress-CpALgZbi.js} +2 -2
- package/build/client/assets/{progress-D-HsH4j3.js.map → progress-CpALgZbi.js.map} +1 -1
- package/build/client/assets/{progress-bar-CTPCfvDi.js → progress-bar-IswLOt8e.js} +2 -2
- package/build/client/assets/{progress-bar-CTPCfvDi.js.map → progress-bar-IswLOt8e.js.map} +1 -1
- package/build/client/assets/{revalidation-ws-DYaJNyw1.js → revalidation-ws-BIizeOeQ.js} +2 -2
- package/build/client/assets/{revalidation-ws-DYaJNyw1.js.map → revalidation-ws-BIizeOeQ.js.map} +1 -1
- package/build/client/assets/{root-C1pLsthM.js → root-B3Ez4TJh.js} +3 -3
- package/build/client/assets/{root-C1pLsthM.js.map → root-B3Ez4TJh.js.map} +1 -1
- package/build/client/assets/{set-playground-DQzAhC0t.js → set-playground-BoPKA2de.js} +2 -2
- package/build/client/assets/{set-playground-DQzAhC0t.js.map → set-playground-BoPKA2de.js.map} +1 -1
- package/build/client/assets/tailwind-4klXLdJc.css +1 -0
- package/build/client/assets/test-B1MpH-AU.js +2 -0
- package/build/client/assets/{test-CDWRwwO-.js.map → test-B1MpH-AU.js.map} +1 -1
- package/build/client/assets/{tests-LWW8wCYZ.js → tests-oMtvdjmo.js} +3 -3
- package/build/client/assets/tests-oMtvdjmo.js.map +1 -0
- package/build/client/assets/{tooltip-Bp9KHnLy.js → tooltip-CzrLrLJU.js} +2 -2
- package/build/client/assets/{tooltip-Bp9KHnLy.js.map → tooltip-CzrLrLJU.js.map} +1 -1
- package/build/server/index.js +178 -55
- package/build/server/index.js.map +1 -1
- package/dist/server/index.js +2 -0
- package/package.json +3 -3
- package/build/client/assets/_exerciseNumber-CqkGzsgV.js +0 -2
- package/build/client/assets/_exerciseNumber_.finished-CdNhLhKg.js +0 -2
- package/build/client/assets/_exerciseNumber_.finished-CdNhLhKg.js.map +0 -1
- package/build/client/assets/_layout-BMa5nZcJ.js +0 -2
- package/build/client/assets/_layout-BMa5nZcJ.js.map +0 -1
- package/build/client/assets/_layout-Muw3ERYT.js +0 -6
- package/build/client/assets/_layout-Muw3ERYT.js.map +0 -1
- package/build/client/assets/app-BOqXK9hi.js +0 -2
- package/build/client/assets/diff-D0e_PrB7.js +0 -2
- package/build/client/assets/diff-DtvfyjPI.js +0 -2
- package/build/client/assets/diff-DtvfyjPI.js.map +0 -1
- package/build/client/assets/discord-DILzAZN8.js +0 -2
- package/build/client/assets/discord-DILzAZN8.js.map +0 -1
- package/build/client/assets/finished-DUKfL220.js +0 -2
- package/build/client/assets/finished-DUKfL220.js.map +0 -1
- package/build/client/assets/index-DbCT6N5p.js +0 -2
- package/build/client/assets/index-DbCT6N5p.js.map +0 -1
- package/build/client/assets/index-oED4uZLa.js +0 -2
- package/build/client/assets/manifest-3096dc61.js +0 -1
- package/build/client/assets/onboarding-Cu6eD7KS.js +0 -2
- package/build/client/assets/tailwind-CRGTilRc.css +0 -1
- package/build/client/assets/test-CDWRwwO-.js +0 -2
- package/build/client/assets/tests-LWW8wCYZ.js.map +0 -1
package/build/server/index.js
CHANGED
|
@@ -14,6 +14,7 @@ import { z } from "zod";
|
|
|
14
14
|
import { getApps, getExercises, getPlaygroundAppName, extractNumbersAndTypeFromAppNameOrPath, getAppFromFile, getAppByName, isProblemApp, isPlaygroundApp, isExerciseStepApp, getExercise, isSolutionApp, isExampleApp, getRelativePath as getRelativePath$1, workshopRoot, modifiedTimes, getForceFreshForDir, setPlayground, requireExerciseApp, requireExercise, getExerciseApp, getAppDisplayName, getNextExerciseApp, getPrevExerciseApp, getAppPageRoute, getWorkshopFinished, getWorkshopInstructions } from "@epic-web/workshop-utils/apps.server";
|
|
15
15
|
import { getEnv } from "@epic-web/workshop-utils/env.server";
|
|
16
16
|
import { makeTimings, getServerTimeHeader, combineServerTimings, time } from "@epic-web/workshop-utils/timing.server";
|
|
17
|
+
import { checkConnectionCached } from "@epic-web/workshop-utils/utils.server";
|
|
17
18
|
import { cssBundleHref } from "@remix-run/css-bundle";
|
|
18
19
|
import { promiseHash } from "remix-utils/promise";
|
|
19
20
|
import { useSpinDelay } from "spin-delay";
|
|
@@ -22,7 +23,7 @@ import { ClientOnly } from "remix-utils/client-only";
|
|
|
22
23
|
import slugify from "@sindresorhus/slugify";
|
|
23
24
|
import clsx$1, { clsx } from "clsx";
|
|
24
25
|
import * as React from "react";
|
|
25
|
-
import React__default, { useRef, useEffect, useMemo, useState, createContext, useContext, useCallback,
|
|
26
|
+
import React__default, { useRef, useEffect, useMemo, useState, useSyncExternalStore, createContext, useContext, useCallback, forwardRef, useImperativeHandle, Suspense, useReducer } from "react";
|
|
26
27
|
import { extendTailwindMerge } from "tailwind-merge";
|
|
27
28
|
import { Toaster, toast } from "sonner";
|
|
28
29
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
@@ -160,6 +161,7 @@ async function getPresentUsers({
|
|
|
160
161
|
request,
|
|
161
162
|
ttl: 1e3 * 2,
|
|
162
163
|
swr: 1e3 * 60 * 60 * 24,
|
|
164
|
+
offlineFallbackValue: { users: [] },
|
|
163
165
|
checkValue: PresenceSchema,
|
|
164
166
|
async getFreshValue(context) {
|
|
165
167
|
try {
|
|
@@ -251,7 +253,7 @@ function Confetti({ id }) {
|
|
|
251
253
|
id
|
|
252
254
|
) });
|
|
253
255
|
}
|
|
254
|
-
const iconsSvg = "/assets/icons-
|
|
256
|
+
const iconsSvg = "/assets/icons-BM6r7NHK.svg";
|
|
255
257
|
function AnimatedBars({
|
|
256
258
|
title,
|
|
257
259
|
size = 16,
|
|
@@ -385,7 +387,7 @@ const extendedTheme = {
|
|
|
385
387
|
background: "hsl(var(--background))",
|
|
386
388
|
highlight: "hsl(var(--highlight))",
|
|
387
389
|
foreground: "hsl(var(--foreground))",
|
|
388
|
-
"foreground-
|
|
390
|
+
"foreground-destructive": "hsl(var(--foreground-destructive))",
|
|
389
391
|
scrollbar: "var(--scrollbar)",
|
|
390
392
|
primary: {
|
|
391
393
|
DEFAULT: "hsl(var(--primary))",
|
|
@@ -807,7 +809,7 @@ function ErrorList({
|
|
|
807
809
|
}) {
|
|
808
810
|
const errorsToRender = errors == null ? void 0 : errors.filter(Boolean);
|
|
809
811
|
if (!(errorsToRender == null ? void 0 : errorsToRender.length)) return null;
|
|
810
|
-
return /* @__PURE__ */ jsx("ul", { id, className: "space-y-1", children: errorsToRender.map((e) => /* @__PURE__ */ jsx("li", { className: "text-
|
|
812
|
+
return /* @__PURE__ */ jsx("ul", { id, className: "space-y-1", children: errorsToRender.map((e) => /* @__PURE__ */ jsx("li", { className: "text-foreground-destructive text-[10px]", children: e }, e)) });
|
|
811
813
|
}
|
|
812
814
|
const PE_REDIRECT_INPUT_NAME = "__PE_redirectTo";
|
|
813
815
|
function usePERedirectInput() {
|
|
@@ -928,7 +930,7 @@ const route45 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
928
930
|
useTheme
|
|
929
931
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
930
932
|
const appStylesheetUrl = "/assets/app-C3e6tFRf.css";
|
|
931
|
-
const tailwindStylesheetUrl = "/assets/tailwind-
|
|
933
|
+
const tailwindStylesheetUrl = "/assets/tailwind-4klXLdJc.css";
|
|
932
934
|
const cookieName = "EpicShop_confetti";
|
|
933
935
|
function getConfetti(request) {
|
|
934
936
|
const cookieHeader = request.headers.get("cookie");
|
|
@@ -946,6 +948,21 @@ function createConfettiHeaders(value = String(Date.now())) {
|
|
|
946
948
|
})
|
|
947
949
|
});
|
|
948
950
|
}
|
|
951
|
+
function getSnapshot() {
|
|
952
|
+
return false;
|
|
953
|
+
}
|
|
954
|
+
function subscribe(callback) {
|
|
955
|
+
window.addEventListener("online", callback);
|
|
956
|
+
window.addEventListener("offline", callback);
|
|
957
|
+
return () => {
|
|
958
|
+
window.removeEventListener("online", callback);
|
|
959
|
+
window.removeEventListener("offline", callback);
|
|
960
|
+
};
|
|
961
|
+
}
|
|
962
|
+
function useIsOnline() {
|
|
963
|
+
const requestInfo = useRequestInfo();
|
|
964
|
+
return useSyncExternalStore(subscribe, getSnapshot, () => requestInfo.online);
|
|
965
|
+
}
|
|
949
966
|
const PresenceContext = createContext(null);
|
|
950
967
|
function usePresencePreferences() {
|
|
951
968
|
var _a;
|
|
@@ -987,14 +1004,33 @@ function useFirstCallDelayedCallback(cb, delay) {
|
|
|
987
1004
|
);
|
|
988
1005
|
return delayedCb;
|
|
989
1006
|
}
|
|
990
|
-
function
|
|
1007
|
+
function useUsersLocation() {
|
|
991
1008
|
const workshopTitle = useOptionalWorkshopTitle();
|
|
992
|
-
const { userHasAccess = false, userId } = useRouteLoaderData("root") ?? {};
|
|
993
1009
|
const requestInfo = useRequestInfo();
|
|
994
1010
|
const rawParams = useParams();
|
|
1011
|
+
const paramsResult = ExerciseAppParamsSchema.safeParse(rawParams);
|
|
1012
|
+
const params = paramsResult.success ? paramsResult.data : null;
|
|
1013
|
+
return {
|
|
1014
|
+
workshopTitle,
|
|
1015
|
+
origin: requestInfo.origin,
|
|
1016
|
+
...params ? {
|
|
1017
|
+
exercise: {
|
|
1018
|
+
type: params.type,
|
|
1019
|
+
exerciseNumber: params.exerciseNumber,
|
|
1020
|
+
stepNumber: params.stepNumber
|
|
1021
|
+
}
|
|
1022
|
+
} : null
|
|
1023
|
+
};
|
|
1024
|
+
}
|
|
1025
|
+
function usePresenceSocket(user) {
|
|
995
1026
|
const prefs = usePresencePreferences();
|
|
996
|
-
const
|
|
997
|
-
|
|
1027
|
+
const {
|
|
1028
|
+
userHasAccess = false,
|
|
1029
|
+
userId,
|
|
1030
|
+
presence
|
|
1031
|
+
} = useRouteLoaderData("root") ?? {};
|
|
1032
|
+
const [users, setUsers] = useState((presence == null ? void 0 : presence.users) ?? []);
|
|
1033
|
+
const usersLocation = useUsersLocation();
|
|
998
1034
|
const handleMessage = useFirstCallDelayedCallback((evt) => {
|
|
999
1035
|
const messageResult = MessageSchema.safeParse(JSON.parse(String(evt.data)));
|
|
1000
1036
|
if (!messageResult.success) return;
|
|
@@ -1007,19 +1043,6 @@ function usePresenceSocket(user) {
|
|
|
1007
1043
|
room: partykitRoom,
|
|
1008
1044
|
onMessage: handleMessage
|
|
1009
1045
|
});
|
|
1010
|
-
const paramsResult = ExerciseAppParamsSchema.safeParse(rawParams);
|
|
1011
|
-
const params = paramsResult.success ? paramsResult.data : null;
|
|
1012
|
-
const location = {
|
|
1013
|
-
workshopTitle,
|
|
1014
|
-
origin: requestInfo.origin,
|
|
1015
|
-
...params ? {
|
|
1016
|
-
exercise: {
|
|
1017
|
-
type: params.type,
|
|
1018
|
-
exerciseNumber: params.exerciseNumber,
|
|
1019
|
-
stepNumber: params.stepNumber
|
|
1020
|
-
}
|
|
1021
|
-
} : null
|
|
1022
|
-
};
|
|
1023
1046
|
let message = null;
|
|
1024
1047
|
if (user) {
|
|
1025
1048
|
if (prefs == null ? void 0 : prefs.optOut) {
|
|
@@ -1033,18 +1056,24 @@ function usePresenceSocket(user) {
|
|
|
1033
1056
|
hasAccess: userHasAccess,
|
|
1034
1057
|
imageUrlSmall: user.imageUrlSmall,
|
|
1035
1058
|
imageUrlLarge: user.imageUrlLarge,
|
|
1036
|
-
location
|
|
1059
|
+
location: usersLocation
|
|
1037
1060
|
}
|
|
1038
1061
|
};
|
|
1039
1062
|
}
|
|
1040
1063
|
} else if (userId == null ? void 0 : userId.id) {
|
|
1041
|
-
message = {
|
|
1064
|
+
message = {
|
|
1065
|
+
type: "add-user",
|
|
1066
|
+
payload: { id: userId.id, location: usersLocation }
|
|
1067
|
+
};
|
|
1042
1068
|
}
|
|
1043
1069
|
const messageJson = message ? JSON.stringify(message) : null;
|
|
1044
1070
|
useEffect(() => {
|
|
1045
1071
|
if (messageJson) socket.send(messageJson);
|
|
1046
1072
|
}, [messageJson, socket]);
|
|
1047
|
-
const scoredUsers = scoreUsers(
|
|
1073
|
+
const scoredUsers = scoreUsers(
|
|
1074
|
+
{ id: userId == null ? void 0 : userId.id, location: usersLocation },
|
|
1075
|
+
users
|
|
1076
|
+
);
|
|
1048
1077
|
return { users: scoredUsers };
|
|
1049
1078
|
}
|
|
1050
1079
|
function scoreUsers(user, users) {
|
|
@@ -1077,12 +1106,42 @@ function scoreUsers(user, users) {
|
|
|
1077
1106
|
return a.score > b.score ? -1 : 1;
|
|
1078
1107
|
});
|
|
1079
1108
|
}
|
|
1080
|
-
function
|
|
1109
|
+
function PresenceOnline({
|
|
1081
1110
|
user,
|
|
1082
1111
|
children
|
|
1083
1112
|
}) {
|
|
1084
1113
|
return /* @__PURE__ */ jsx(PresenceContext.Provider, { value: usePresenceSocket(user), children });
|
|
1085
1114
|
}
|
|
1115
|
+
function PresenceOffline({
|
|
1116
|
+
user,
|
|
1117
|
+
children
|
|
1118
|
+
}) {
|
|
1119
|
+
const usersLocation = useUsersLocation();
|
|
1120
|
+
const { presence } = useRouteLoaderData("root") ?? {};
|
|
1121
|
+
return /* @__PURE__ */ jsx(
|
|
1122
|
+
PresenceContext.Provider,
|
|
1123
|
+
{
|
|
1124
|
+
value: {
|
|
1125
|
+
users: scoreUsers(
|
|
1126
|
+
{ id: user == null ? void 0 : user.id, location: usersLocation },
|
|
1127
|
+
(presence == null ? void 0 : presence.users) ?? []
|
|
1128
|
+
)
|
|
1129
|
+
},
|
|
1130
|
+
children
|
|
1131
|
+
}
|
|
1132
|
+
);
|
|
1133
|
+
}
|
|
1134
|
+
function Presence({
|
|
1135
|
+
user,
|
|
1136
|
+
children
|
|
1137
|
+
}) {
|
|
1138
|
+
const isOnline = useIsOnline();
|
|
1139
|
+
if (isOnline) {
|
|
1140
|
+
return /* @__PURE__ */ jsx(PresenceOnline, { user, children });
|
|
1141
|
+
} else {
|
|
1142
|
+
return /* @__PURE__ */ jsx(PresenceOffline, { user, children });
|
|
1143
|
+
}
|
|
1144
|
+
}
|
|
1086
1145
|
function usePresence() {
|
|
1087
1146
|
const presence = useContext(PresenceContext);
|
|
1088
1147
|
if (!presence) {
|
|
@@ -1214,6 +1273,7 @@ async function loader$y({ request }) {
|
|
|
1214
1273
|
const theme = getTheme(request);
|
|
1215
1274
|
const { confettiId, headers: confettiHeaders } = getConfetti(request);
|
|
1216
1275
|
const { toast: toast2, headers: toastHeaders } = await getToast(request);
|
|
1276
|
+
const isOnlinePromise = checkConnectionCached({ request, timings });
|
|
1217
1277
|
const asyncStuff = await promiseHash({
|
|
1218
1278
|
userId: getUserId({ request }),
|
|
1219
1279
|
preferences: getPreferences(),
|
|
@@ -1252,7 +1312,8 @@ async function loader$y({ request }) {
|
|
|
1252
1312
|
hints: getHints(request),
|
|
1253
1313
|
path: new URL(request.url).pathname,
|
|
1254
1314
|
session: { theme },
|
|
1255
|
-
separator: path.sep
|
|
1315
|
+
separator: path.sep,
|
|
1316
|
+
online: await isOnlinePromise
|
|
1256
1317
|
},
|
|
1257
1318
|
toast: toast2,
|
|
1258
1319
|
confettiId,
|
|
@@ -1385,10 +1446,10 @@ const route1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
|
|
|
1385
1446
|
loader: loader$x
|
|
1386
1447
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
1387
1448
|
function makeMediaQueryStore(mediaQuery, serverSnapshot) {
|
|
1388
|
-
function
|
|
1449
|
+
function getSnapshot2() {
|
|
1389
1450
|
return window.matchMedia(mediaQuery).matches;
|
|
1390
1451
|
}
|
|
1391
|
-
function
|
|
1452
|
+
function subscribe2(callback) {
|
|
1392
1453
|
const mediaQueryList = window.matchMedia(mediaQuery);
|
|
1393
1454
|
mediaQueryList.addEventListener("change", callback);
|
|
1394
1455
|
return () => {
|
|
@@ -1396,7 +1457,7 @@ function makeMediaQueryStore(mediaQuery, serverSnapshot) {
|
|
|
1396
1457
|
};
|
|
1397
1458
|
}
|
|
1398
1459
|
return function useMediaQuery() {
|
|
1399
|
-
return useSyncExternalStore(
|
|
1460
|
+
return useSyncExternalStore(subscribe2, getSnapshot2, () => serverSnapshot);
|
|
1400
1461
|
};
|
|
1401
1462
|
}
|
|
1402
1463
|
function useWorkshopConfig() {
|
|
@@ -2196,7 +2257,7 @@ function NoUserBanner() {
|
|
|
2196
2257
|
` for full experience.`
|
|
2197
2258
|
] }),
|
|
2198
2259
|
" "
|
|
2199
|
-
] }) : /* @__PURE__ */ jsxs("div", { children: [
|
|
2260
|
+
] }) : userHasAccess ? /* @__PURE__ */ jsxs("div", { children: [
|
|
2200
2261
|
/* @__PURE__ */ jsx(Link, { to: "/login", className: "underline", children: "Login" }),
|
|
2201
2262
|
" ",
|
|
2202
2263
|
"or",
|
|
@@ -2204,7 +2265,7 @@ function NoUserBanner() {
|
|
|
2204
2265
|
/* @__PURE__ */ jsx("a", { href: `https://${host}/login`, className: "underline", children: "join for free" }),
|
|
2205
2266
|
" ",
|
|
2206
2267
|
"for the full experience."
|
|
2207
|
-
] }) });
|
|
2268
|
+
] }) : null });
|
|
2208
2269
|
return /* @__PURE__ */ jsx("div", { className: "z-10 flex h-16 items-center justify-between border-b bg-gradient-to-tr from-blue-500 to-indigo-500 pl-4 text-white", children: isWide ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2209
2270
|
/* @__PURE__ */ jsxs("div", { className: "hidden flex-1 flex-wrap items-center gap-4 sm:flex", children: [
|
|
2210
2271
|
/* @__PURE__ */ jsx(Logo, { size: "lg", style: "monochrome" }),
|
|
@@ -2276,7 +2337,7 @@ function NoUserBanner() {
|
|
|
2276
2337
|
] })
|
|
2277
2338
|
] })
|
|
2278
2339
|
] }),
|
|
2279
|
-
/* @__PURE__ */ jsxs("div", { className: "flex h-full items-center", children: [
|
|
2340
|
+
userHasAccess ? null : /* @__PURE__ */ jsxs("div", { className: "flex h-full items-center", children: [
|
|
2280
2341
|
/* @__PURE__ */ jsxs(
|
|
2281
2342
|
Link,
|
|
2282
2343
|
{
|
|
@@ -2351,6 +2412,7 @@ function MobileNavigation({
|
|
|
2351
2412
|
const user = useOptionalUser();
|
|
2352
2413
|
const nextExerciseRoute = useNextExerciseRoute();
|
|
2353
2414
|
const params = useParams();
|
|
2415
|
+
const isOnline = useIsOnline();
|
|
2354
2416
|
const { users } = usePresence();
|
|
2355
2417
|
const listVariants = {
|
|
2356
2418
|
visible: {
|
|
@@ -2541,16 +2603,30 @@ function MobileNavigation({
|
|
|
2541
2603
|
}
|
|
2542
2604
|
),
|
|
2543
2605
|
/* @__PURE__ */ jsx("div", { className: "flex-grow" }),
|
|
2606
|
+
isOnline ? null : /* @__PURE__ */ jsx(SimpleTooltip, { content: isMenuOpened ? null : "You are offline", children: /* @__PURE__ */ jsx(
|
|
2607
|
+
"div",
|
|
2608
|
+
{
|
|
2609
|
+
className: cn(
|
|
2610
|
+
"flex h-14 animate-pulse items-center justify-start p-4",
|
|
2611
|
+
isMenuOpened ? "w-full border-t" : "border-l"
|
|
2612
|
+
),
|
|
2613
|
+
children: /* @__PURE__ */ jsx(
|
|
2614
|
+
Icon,
|
|
2615
|
+
{
|
|
2616
|
+
name: "WifiNoConnection",
|
|
2617
|
+
className: "text-foreground-destructive",
|
|
2618
|
+
children: isMenuOpened ? "You are offline" : null
|
|
2619
|
+
}
|
|
2620
|
+
)
|
|
2621
|
+
}
|
|
2622
|
+
) }),
|
|
2544
2623
|
/* @__PURE__ */ jsx(
|
|
2545
2624
|
"div",
|
|
2546
2625
|
{
|
|
2547
2626
|
className: cn(
|
|
2548
2627
|
"flex items-center justify-start p-4",
|
|
2549
2628
|
isMenuOpened && users.length > 4 ? "min-h-14" : "h-14",
|
|
2550
|
-
|
|
2551
|
-
"w-full border-t": isMenuOpened
|
|
2552
|
-
// left border is covered by the menu
|
|
2553
|
-
}
|
|
2629
|
+
isMenuOpened ? "w-full border-t" : "border-l"
|
|
2554
2630
|
),
|
|
2555
2631
|
children: /* @__PURE__ */ jsx(FacePile, { isMenuOpened })
|
|
2556
2632
|
}
|
|
@@ -2642,6 +2718,7 @@ function Navigation({
|
|
|
2642
2718
|
const user = useOptionalUser();
|
|
2643
2719
|
const nextExerciseRoute = useNextExerciseRoute();
|
|
2644
2720
|
const params = useParams();
|
|
2721
|
+
const isOnline = useIsOnline();
|
|
2645
2722
|
const { users } = usePresence();
|
|
2646
2723
|
const exercise = data2.exercises.find(
|
|
2647
2724
|
(e) => e.exerciseNumber === Number(params.exerciseNumber)
|
|
@@ -2857,6 +2934,23 @@ function Navigation({
|
|
|
2857
2934
|
}
|
|
2858
2935
|
) : null
|
|
2859
2936
|
] }) }),
|
|
2937
|
+
isOnline ? null : /* @__PURE__ */ jsx(SimpleTooltip, { content: isMenuOpened ? null : "You are offline", children: /* @__PURE__ */ jsx(
|
|
2938
|
+
"div",
|
|
2939
|
+
{
|
|
2940
|
+
className: cn(
|
|
2941
|
+
"flex w-full animate-pulse items-center border-t p-4",
|
|
2942
|
+
isMenuOpened ? "justify-start" : "justify-center"
|
|
2943
|
+
),
|
|
2944
|
+
children: /* @__PURE__ */ jsx(
|
|
2945
|
+
Icon,
|
|
2946
|
+
{
|
|
2947
|
+
name: "WifiNoConnection",
|
|
2948
|
+
className: "text-foreground-destructive",
|
|
2949
|
+
children: isMenuOpened ? /* @__PURE__ */ jsx("span", { className: "whitespace-nowrap", children: "You are offline" }) : null
|
|
2950
|
+
}
|
|
2951
|
+
)
|
|
2952
|
+
}
|
|
2953
|
+
) }),
|
|
2860
2954
|
/* @__PURE__ */ jsx(
|
|
2861
2955
|
"div",
|
|
2862
2956
|
{
|
|
@@ -4343,8 +4437,16 @@ function VideoEmbed({
|
|
|
4343
4437
|
] }) })
|
|
4344
4438
|
}) {
|
|
4345
4439
|
const [iframeLoaded, setIframeLoaded] = React.useState(false);
|
|
4346
|
-
|
|
4347
|
-
|
|
4440
|
+
const isOnline = useIsOnline();
|
|
4441
|
+
if (!isOnline) {
|
|
4442
|
+
return /* @__PURE__ */ jsx("div", { className: "relative aspect-video w-full flex-shrink-0 shadow-lg", children: /* @__PURE__ */ jsx("div", { className: "not-prose text-foreground-destructive absolute inset-0 z-10 flex items-center justify-center p-8", children: /* @__PURE__ */ jsx(Icon, { name: "WifiNoConnection", size: "xl", children: /* @__PURE__ */ jsxs("span", { children: [
|
|
4443
|
+
"Unable to load the video ",
|
|
4444
|
+
/* @__PURE__ */ jsx("a", { href: url, className: "underline", children: `"${title ?? url}"` }),
|
|
4445
|
+
" when offline"
|
|
4446
|
+
] }) }) }) });
|
|
4447
|
+
}
|
|
4448
|
+
return /* @__PURE__ */ jsxs("div", { className: "relative aspect-video w-full flex-shrink-0 shadow-lg", children: [
|
|
4449
|
+
iframeLoaded ? null : /* @__PURE__ */ jsx("div", { className: "absolute inset-0 z-10 flex items-center justify-center p-8", children: loadingContent }),
|
|
4348
4450
|
/* @__PURE__ */ jsx(
|
|
4349
4451
|
"iframe",
|
|
4350
4452
|
{
|
|
@@ -4436,7 +4538,7 @@ function DeferredEpicVideo({
|
|
|
4436
4538
|
} else if (info.type === "region-restricted") {
|
|
4437
4539
|
return /* @__PURE__ */ jsxs("div", { children: [
|
|
4438
4540
|
/* @__PURE__ */ jsxs("div", { className: "flex aspect-video min-h-full min-w-full flex-col items-center justify-start gap-2 overflow-y-scroll border-2 p-4 lg:justify-center lg:gap-4 lg:text-xl", children: [
|
|
4439
|
-
/* @__PURE__ */ jsx("div", { className: "!text-foreground-
|
|
4541
|
+
/* @__PURE__ */ jsx("div", { className: "!text-foreground-destructive", children: "Error: Region Restricted" }),
|
|
4440
4542
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
4441
4543
|
"We've detected you're connecting from",
|
|
4442
4544
|
" ",
|
|
@@ -4518,7 +4620,7 @@ function DeferredEpicVideo({
|
|
|
4518
4620
|
/* @__PURE__ */ jsx(EpicVideoEmbed, { url, title }),
|
|
4519
4621
|
/* @__PURE__ */ jsxs("div", { className: "mt-4 flex flex-col gap-2", children: [
|
|
4520
4622
|
linkUI,
|
|
4521
|
-
/* @__PURE__ */ jsx("div", { className: "!text-foreground-
|
|
4623
|
+
/* @__PURE__ */ jsx("div", { className: "!text-foreground-destructive", children: "Unknown error (check console)" })
|
|
4522
4624
|
] })
|
|
4523
4625
|
] });
|
|
4524
4626
|
}
|
|
@@ -4579,7 +4681,7 @@ function EpicVideo({
|
|
|
4579
4681
|
/* @__PURE__ */ jsx("span", { children: transcript.slice(prevIndex + 1, transcript.length) }, transcript.length)
|
|
4580
4682
|
);
|
|
4581
4683
|
return /* @__PURE__ */ jsxs("div", { children: [
|
|
4582
|
-
/* @__PURE__ */ jsx("div", { className: "shadow-lg
|
|
4684
|
+
/* @__PURE__ */ jsx("div", { className: "shadow-lg", children: /* @__PURE__ */ jsx(
|
|
4583
4685
|
MuxPlayer,
|
|
4584
4686
|
{
|
|
4585
4687
|
playbackId: muxPlaybackId,
|
|
@@ -6251,7 +6353,7 @@ function SetAppToPlayground({ appName }) {
|
|
|
6251
6353
|
{
|
|
6252
6354
|
appName,
|
|
6253
6355
|
tooltipText: "Playground is not set to the right app. Click to set Playground.",
|
|
6254
|
-
children: /* @__PURE__ */ jsxs("span", { className: "flex items-center justify-center gap-1
|
|
6356
|
+
children: /* @__PURE__ */ jsxs("span", { className: "text-foreground-destructive flex items-center justify-center gap-1 hover:underline", children: [
|
|
6255
6357
|
/* @__PURE__ */ jsx(Icon, { name: "Unlinked", className: "animate-ping" }),
|
|
6256
6358
|
" ",
|
|
6257
6359
|
/* @__PURE__ */ jsx("span", { className: "uppercase", children: "Set to Playground" })
|
|
@@ -6518,13 +6620,13 @@ function TouchedFiles({
|
|
|
6518
6620
|
Await,
|
|
6519
6621
|
{
|
|
6520
6622
|
resolve: diffFilesPromise,
|
|
6521
|
-
errorElement: /* @__PURE__ */ jsx("div", { className: "text-foreground-
|
|
6623
|
+
errorElement: /* @__PURE__ */ jsx("div", { className: "text-foreground-destructive", children: "Something went wrong." }),
|
|
6522
6624
|
children: (diffFiles) => {
|
|
6523
6625
|
if (!diffFiles) {
|
|
6524
|
-
return /* @__PURE__ */ jsx("p", { className: "text-foreground-
|
|
6626
|
+
return /* @__PURE__ */ jsx("p", { className: "text-foreground-destructive", children: "Unable to determine diff" });
|
|
6525
6627
|
}
|
|
6526
6628
|
if (typeof diffFiles === "string") {
|
|
6527
|
-
return /* @__PURE__ */ jsx("p", { className: "text-foreground-
|
|
6629
|
+
return /* @__PURE__ */ jsx("p", { className: "text-foreground-destructive", children: diffFiles });
|
|
6528
6630
|
}
|
|
6529
6631
|
if (!diffFiles.length) {
|
|
6530
6632
|
return /* @__PURE__ */ jsx("p", { children: "No files changed" });
|
|
@@ -7687,7 +7789,7 @@ function Diff({
|
|
|
7687
7789
|
Await,
|
|
7688
7790
|
{
|
|
7689
7791
|
resolve: diff,
|
|
7690
|
-
errorElement: /* @__PURE__ */ jsx("p", { className: "
|
|
7792
|
+
errorElement: /* @__PURE__ */ jsx("p", { className: "text-foreground-destructive p-6", children: "There was an error calculating the diff. Sorry." }),
|
|
7691
7793
|
children: (diff2) => /* @__PURE__ */ jsxs("div", { className: "flex h-full w-full flex-col", children: [
|
|
7692
7794
|
/* @__PURE__ */ jsxs("div", { className: "flex h-14 min-h-14 w-full overflow-x-hidden border-b", children: [
|
|
7693
7795
|
/* @__PURE__ */ jsx("div", { className: "border-r", children: /* @__PURE__ */ jsx(SimpleTooltip, { content: "Reload diff", children: /* @__PURE__ */ jsx(
|
|
@@ -7783,14 +7885,14 @@ function SelectFileToDiff({
|
|
|
7783
7885
|
align: "start",
|
|
7784
7886
|
className: "z-20 max-h-[50vh] bg-black text-white lg:max-h-[70vh]",
|
|
7785
7887
|
children: [
|
|
7786
|
-
/* @__PURE__ */ jsx(Select.ScrollUpButton, { className: "flex h-5 cursor-default items-center justify-center
|
|
7888
|
+
/* @__PURE__ */ jsx(Select.ScrollUpButton, { className: "flex h-5 cursor-default items-center justify-center", children: /* @__PURE__ */ jsx(Icon, { name: "ChevronUp" }) }),
|
|
7787
7889
|
/* @__PURE__ */ jsx(Select.Viewport, { className: "p-3", children: /* @__PURE__ */ jsxs(Select.Group, { children: [
|
|
7788
7890
|
/* @__PURE__ */ jsx(Select.Label, { className: "px-5 pb-3 font-mono uppercase", children: label }),
|
|
7789
7891
|
allApps.map((app) => {
|
|
7790
7892
|
return /* @__PURE__ */ jsx(SelectItem, { value: app.name, children: app.displayName }, app.name);
|
|
7791
7893
|
})
|
|
7792
7894
|
] }) }),
|
|
7793
|
-
/* @__PURE__ */ jsx(Select.ScrollDownButton, { className: "flex h-5 cursor-default items-center justify-center
|
|
7895
|
+
/* @__PURE__ */ jsx(Select.ScrollDownButton, { className: "flex h-5 cursor-default items-center justify-center", children: /* @__PURE__ */ jsx(Icon, { name: "ChevronDown" }) })
|
|
7794
7896
|
]
|
|
7795
7897
|
}
|
|
7796
7898
|
) })
|
|
@@ -7802,7 +7904,7 @@ const SelectItem = React__default.forwardRef(
|
|
|
7802
7904
|
Select.Item,
|
|
7803
7905
|
{
|
|
7804
7906
|
className: clsx(
|
|
7805
|
-
"relative flex
|
|
7907
|
+
"relative flex cursor-pointer select-none items-center rounded px-10 py-2 leading-none opacity-80 radix-disabled:text-red-500 radix-highlighted:opacity-100 radix-highlighted:outline-none radix-state-checked:opacity-100",
|
|
7806
7908
|
className
|
|
7807
7909
|
),
|
|
7808
7910
|
...props,
|
|
@@ -7896,6 +7998,7 @@ async function fetchDiscordPosts({ request }) {
|
|
|
7896
7998
|
cache: fsCache,
|
|
7897
7999
|
ttl: 1e3 * 60 * 2,
|
|
7898
8000
|
swr: 1e3 * 60 * 60 * 24 * 365 * 100,
|
|
8001
|
+
offlineFallbackValue: [],
|
|
7899
8002
|
checkValue: ThreadDataSchema,
|
|
7900
8003
|
async getFreshValue() {
|
|
7901
8004
|
const result = await fetch(url, {
|
|
@@ -7942,6 +8045,10 @@ function DiscordPosts() {
|
|
|
7942
8045
|
const data = useLoaderData();
|
|
7943
8046
|
const ctaLink = useDiscordCTALink();
|
|
7944
8047
|
const altDown = useAltDown();
|
|
8048
|
+
const isOnline = useIsOnline();
|
|
8049
|
+
if (!isOnline) {
|
|
8050
|
+
return /* @__PURE__ */ jsx("div", { className: "flex h-full flex-col items-center justify-between", children: /* @__PURE__ */ jsx("div", { className: "text-foreground-destructive flex h-full w-full flex-col items-center justify-center", children: /* @__PURE__ */ jsx(Icon, { name: "WifiNoConnection", size: "xl", children: "Unable to load discord messages when offline" }) }) });
|
|
8051
|
+
}
|
|
7945
8052
|
return /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col items-center justify-between", children: [
|
|
7946
8053
|
/* @__PURE__ */ jsx(
|
|
7947
8054
|
React.Suspense,
|
|
@@ -8086,7 +8193,7 @@ function PlaygroundWindow({
|
|
|
8086
8193
|
{
|
|
8087
8194
|
size: "xl",
|
|
8088
8195
|
name: "Unlinked",
|
|
8089
|
-
className: "
|
|
8196
|
+
className: "text-foreground-destructive animate-pulse"
|
|
8090
8197
|
}
|
|
8091
8198
|
);
|
|
8092
8199
|
let setPlaygroundTooltipText = "Click to reset Playground.";
|
|
@@ -8264,7 +8371,7 @@ function InBrowserTestRunner({
|
|
|
8264
8371
|
{
|
|
8265
8372
|
name: "Remove",
|
|
8266
8373
|
"aria-label": "Failed",
|
|
8267
|
-
className: "text-foreground-
|
|
8374
|
+
className: "text-foreground-destructive"
|
|
8268
8375
|
}
|
|
8269
8376
|
),
|
|
8270
8377
|
unknown: /* @__PURE__ */ jsx(Icon, { name: "Question", "aria-label": "Unknown", className: "animate-pulse" })
|
|
@@ -8294,7 +8401,7 @@ function InBrowserTestRunner({
|
|
|
8294
8401
|
/* @__PURE__ */ jsx("pre", { className: "max-h-48 overflow-y-auto p-4 scrollbar-thin scrollbar-thumb-scrollbar", children: testStep.title })
|
|
8295
8402
|
] }) }, testStep.timestamp + testStep.title)
|
|
8296
8403
|
)) }),
|
|
8297
|
-
(message == null ? void 0 : message.status) === "fail" ? /* @__PURE__ */ jsxs("div", { className: "flex items-baseline gap-2
|
|
8404
|
+
(message == null ? void 0 : message.status) === "fail" ? /* @__PURE__ */ jsxs("div", { className: "text-foreground-destructive flex items-baseline gap-2", children: [
|
|
8298
8405
|
/* @__PURE__ */ jsxs("span", { children: [
|
|
8299
8406
|
sortedTestSteps.length + 1,
|
|
8300
8407
|
"."
|
|
@@ -9157,7 +9264,7 @@ const headers$5 = ({ loaderHeaders, parentHeaders }) => {
|
|
|
9157
9264
|
};
|
|
9158
9265
|
function TestsList() {
|
|
9159
9266
|
const { appInfo } = useLoaderData();
|
|
9160
|
-
return /* @__PURE__ */ jsx(TestUI, { playgroundAppInfo: appInfo });
|
|
9267
|
+
return /* @__PURE__ */ jsx(TestUI, { playgroundAppInfo: appInfo }, appInfo.name);
|
|
9161
9268
|
}
|
|
9162
9269
|
const route18 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
9163
9270
|
__proto__: null,
|
|
@@ -9345,6 +9452,14 @@ function Survey$1({
|
|
|
9345
9452
|
exerciseTitle
|
|
9346
9453
|
}) {
|
|
9347
9454
|
const [iframeLoaded, setIframeLoaded] = React.useState(false);
|
|
9455
|
+
const isOnline = useIsOnline();
|
|
9456
|
+
if (!isOnline) {
|
|
9457
|
+
return /* @__PURE__ */ jsx("div", { className: "relative flex-shrink-0", children: /* @__PURE__ */ jsx("div", { className: "text-foreground-destructive absolute inset-0 z-10 flex items-center justify-center text-body-md", children: /* @__PURE__ */ jsx(Icon, { name: "WifiNoConnection", size: "xl", children: /* @__PURE__ */ jsxs("span", { children: [
|
|
9458
|
+
"Unable to load the ",
|
|
9459
|
+
/* @__PURE__ */ jsx("a", { href: exerciseFormEmbedUrl, className: "underline", children: `${exerciseTitle} feedback form` }),
|
|
9460
|
+
" when offline"
|
|
9461
|
+
] }) }) }) });
|
|
9462
|
+
}
|
|
9348
9463
|
return /* @__PURE__ */ jsxs("div", { className: "relative min-h-full sm:min-h-[unset] sm:flex-shrink-0", children: [
|
|
9349
9464
|
!iframeLoaded ? /* @__PURE__ */ jsx("div", { className: "absolute inset-0 z-10 flex items-center justify-center", children: /* @__PURE__ */ jsx(Loading, { children: /* @__PURE__ */ jsxs("span", { children: [
|
|
9350
9465
|
"Loading ",
|
|
@@ -9501,6 +9616,14 @@ function Survey({
|
|
|
9501
9616
|
workshopFormEmbedUrl
|
|
9502
9617
|
}) {
|
|
9503
9618
|
const [iframeLoaded, setIframeLoaded] = React.useState(false);
|
|
9619
|
+
const isOnline = useIsOnline();
|
|
9620
|
+
if (!isOnline) {
|
|
9621
|
+
return /* @__PURE__ */ jsx("div", { className: "relative flex-shrink-0", children: /* @__PURE__ */ jsx("div", { className: "text-foreground-destructive absolute inset-0 z-10 flex items-center justify-center", children: /* @__PURE__ */ jsx(Icon, { name: "WifiNoConnection", size: "xl", children: /* @__PURE__ */ jsxs("span", { children: [
|
|
9622
|
+
"Unable to load the ",
|
|
9623
|
+
/* @__PURE__ */ jsx("a", { href: workshopFormEmbedUrl, className: "underline", children: `${workshopTitle} feedback form` }),
|
|
9624
|
+
" when offline"
|
|
9625
|
+
] }) }) }) });
|
|
9626
|
+
}
|
|
9504
9627
|
return /* @__PURE__ */ jsxs("div", { className: "relative flex-shrink-0", children: [
|
|
9505
9628
|
!iframeLoaded ? /* @__PURE__ */ jsx("div", { className: "absolute inset-0 z-10 flex items-center justify-center", children: /* @__PURE__ */ jsx(Loading, { children: /* @__PURE__ */ jsxs("span", { children: [
|
|
9506
9629
|
"Loading ",
|
|
@@ -11037,7 +11160,7 @@ const route42 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
11037
11160
|
__proto__: null,
|
|
11038
11161
|
loader
|
|
11039
11162
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
11040
|
-
const serverManifest = { "entry": { "module": "/assets/entry.client-CQusg5Iz.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes": { "root": { "id": "root", "parentId": void 0, "path": "", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/root-C1pLsthM.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/components-DrvY4pal.js", "/assets/misc-BtjCSy-T.js", "/assets/pe-DXT2FOp1.js", "/assets/error-boundary-Beul7lrT.js", "/assets/progress-bar-CTPCfvDi.js", "/assets/index-CB8bjE90.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/index-BOQWfIQC.js", "/assets/presence-CrYBA3ta.js", "/assets/seo-pBpFCWsy.js"], "css": [] }, "routes/$": { "id": "routes/$", "parentId": "root", "path": "*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_-CjjFMNGC.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/error-boundary-Beul7lrT.js", "/assets/misc-BtjCSy-T.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/_app+/_layout": { "id": "routes/_app+/_layout", "parentId": "root", "path": void 0, "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-Muw3ERYT.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/misc-BtjCSy-T.js", "/assets/pe-DXT2FOp1.js", "/assets/product-gqq_YQBW.js", "/assets/revalidation-ws-DYaJNyw1.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/index-BHwOR8R1.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/presence-CrYBA3ta.js", "/assets/progress-D-HsH4j3.js", "/assets/index-BOQWfIQC.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/_app+/account": { "id": "routes/_app+/account", "parentId": "routes/_app+/_layout", "path": "account", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/account-Cc968svU.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/button-BS845Tjo.js", "/assets/misc-BtjCSy-T.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/_app+/app.$appName+/$": { "id": "routes/_app+/app.$appName+/$", "parentId": "routes/_app+/_layout", "path": "app/:appName/*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/api.$": { "id": "routes/_app+/app.$appName+/api.$", "parentId": "routes/_app+/_layout", "path": "app/:appName/api/*", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/api._-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/epic_ws[.js]": { "id": "routes/_app+/app.$appName+/epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/index": { "id": "routes/_app+/app.$appName+/index", "parentId": "routes/_app+/_layout", "path": "app/:appName/", "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.$testName": { "id": "routes/_app+/app.$appName+/test.$testName", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/:testName", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test._testName-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.epic_ws[.js]": { "id": "routes/_app+/app.$appName+/test.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.epic_ws[.js]": { "id": "routes/_app+/app.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/app.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/discord": { "id": "routes/_app+/discord", "parentId": "routes/_app+/_layout", "path": "discord", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord-DILzAZN8.js", "imports": ["/assets/discord-BfP_Rny5.js", "/assets/index-CGzylDPY.js", "/assets/misc-BtjCSy-T.js", "/assets/components-DrvY4pal.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js"], "css": [] }, "routes/_app+/exercise+/_layout": { "id": "routes/_app+/exercise+/_layout", "parentId": "routes/_app+/_layout", "path": "exercise", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-CwTidn3v.js", "imports": ["/assets/index-CGzylDPY.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber": { "id": "routes/_app+/exercise+/$exerciseNumber", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber-CqkGzsgV.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/epic-video-qHKPWPt1.js", "/assets/revalidation-ws-DYaJNyw1.js", "/assets/mdx-CsS30JUo.js", "/assets/progress-D-HsH4j3.js", "/assets/misc-BtjCSy-T.js", "/assets/seo-pBpFCWsy.js", "/assets/components-DrvY4pal.js", "/assets/index-BOQWfIQC.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/pe-DXT2FOp1.js", "/assets/loading-C2wPVvQw.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-CTPCfvDi.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/:stepNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber_._stepNumber-BNWGPi9m.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/misc-BtjCSy-T.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": ":type", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_layout-BMa5nZcJ.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/error-boundary-Beul7lrT.js", "/assets/nav-chevrons-2hLTwAZb.js", "/assets/revalidation-ws-DYaJNyw1.js", "/assets/mdx-CsS30JUo.js", "/assets/progress-D-HsH4j3.js", "/assets/set-playground-DQzAhC0t.js", "/assets/seo-pBpFCWsy.js", "/assets/misc-BtjCSy-T.js", "/assets/epic-video-qHKPWPt1.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/index-BOQWfIQC.js", "/assets/components-DrvY4pal.js", "/assets/index-BHwOR8R1.js", "/assets/progress-bar-CTPCfvDi.js", "/assets/pe-DXT2FOp1.js", "/assets/index-BPegC-d3.js", "/assets/loading-C2wPVvQw.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": "app", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/app-BOqXK9hi.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/preview-C2y4Z0qO.js", "/assets/components-DrvY4pal.js", "/assets/misc-BtjCSy-T.js", "/assets/index-BOQWfIQC.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/pe-DXT2FOp1.js", "/assets/button-BS845Tjo.js", "/assets/loading-C2wPVvQw.js", "/assets/progress-bar-CTPCfvDi.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/index-DbCT6N5p.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/index-BPegC-d3.js", "/assets/misc-BtjCSy-T.js", "/assets/diff-DtvfyjPI.js", "/assets/error-boundary-Beul7lrT.js", "/assets/loading-C2wPVvQw.js", "/assets/discord-BfP_Rny5.js", "/assets/components-DrvY4pal.js", "/assets/index-CB8bjE90.js", "/assets/set-playground-DQzAhC0t.js", "/assets/tests-LWW8wCYZ.js", "/assets/preview-C2y4Z0qO.js", "/assets/index-BHwOR8R1.js", "/assets/accordion-C-sW--in.js", "/assets/mdx-CsS30JUo.js", "/assets/epic-video-qHKPWPt1.js", "/assets/index-BOQWfIQC.js", "/assets/pe-DXT2FOp1.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-CTPCfvDi.js", "/assets/revalidation-ws-DYaJNyw1.js", "/assets/use-event-source-AZJtQsFX.js", "/assets/button-BS845Tjo.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test-CDWRwwO-.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/tests-LWW8wCYZ.js", "/assets/components-DrvY4pal.js", "/assets/epic-video-qHKPWPt1.js", "/assets/index-BOQWfIQC.js", "/assets/misc-BtjCSy-T.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/pe-DXT2FOp1.js", "/assets/loading-C2wPVvQw.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/accordion-C-sW--in.js", "/assets/index-BPegC-d3.js", "/assets/index-BHwOR8R1.js", "/assets/use-event-source-AZJtQsFX.js", "/assets/set-playground-DQzAhC0t.js", "/assets/progress-bar-CTPCfvDi.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_._stepNumber.index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.finished": { "id": "routes/_app+/exercise+/$exerciseNumber_.finished", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_.finished-CdNhLhKg.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/epic-video-qHKPWPt1.js", "/assets/loading-C2wPVvQw.js", "/assets/nav-chevrons-2hLTwAZb.js", "/assets/revalidation-ws-DYaJNyw1.js", "/assets/mdx-CsS30JUo.js", "/assets/progress-D-HsH4j3.js", "/assets/misc-BtjCSy-T.js", "/assets/seo-pBpFCWsy.js", "/assets/components-DrvY4pal.js", "/assets/index-BOQWfIQC.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/pe-DXT2FOp1.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-CTPCfvDi.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/finished": { "id": "routes/_app+/finished", "parentId": "routes/_app+/_layout", "path": "finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/finished-DUKfL220.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/epic-video-qHKPWPt1.js", "/assets/loading-C2wPVvQw.js", "/assets/nav-chevrons-2hLTwAZb.js", "/assets/revalidation-ws-DYaJNyw1.js", "/assets/mdx-CsS30JUo.js", "/assets/misc-BtjCSy-T.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-D-HsH4j3.js", "/assets/components-DrvY4pal.js", "/assets/index-BOQWfIQC.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/pe-DXT2FOp1.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-CTPCfvDi.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/index": { "id": "routes/_app+/index", "parentId": "routes/_app+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/index-oED4uZLa.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/epic-video-qHKPWPt1.js", "/assets/error-boundary-Beul7lrT.js", "/assets/mdx-CsS30JUo.js", "/assets/misc-BtjCSy-T.js", "/assets/progress-D-HsH4j3.js", "/assets/components-DrvY4pal.js", "/assets/index-BOQWfIQC.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/pe-DXT2FOp1.js", "/assets/loading-C2wPVvQw.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-CTPCfvDi.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/login": { "id": "routes/_app+/login", "parentId": "routes/_app+/_layout", "path": "login", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/login-DoU7gifi.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/use-event-source-AZJtQsFX.js", "/assets/button-BS845Tjo.js", "/assets/loading-C2wPVvQw.js", "/assets/product-gqq_YQBW.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/index-BOQWfIQC.js", "/assets/components-DrvY4pal.js", "/assets/misc-BtjCSy-T.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/pe-DXT2FOp1.js"], "css": [] }, "routes/_app+/preferences": { "id": "routes/_app+/preferences", "parentId": "routes/_app+/_layout", "path": "preferences", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/preferences-br0VSK51.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/button-BS845Tjo.js", "/assets/misc-BtjCSy-T.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/_app+/support": { "id": "routes/_app+/support", "parentId": "routes/_app+/_layout", "path": "support", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/support-lgEG2piy.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/admin+/_layout": { "id": "routes/admin+/_layout", "parentId": "root", "path": "admin", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-DV29dlKr.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/admin+/apps": { "id": "routes/admin+/apps", "parentId": "routes/admin+/_layout", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/apps-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/admin+/cache": { "id": "routes/admin+/cache", "parentId": "routes/admin+/_layout", "path": "cache", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/cache-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/admin+/index": { "id": "routes/admin+/index", "parentId": "routes/admin+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-cZQeGrqL.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/misc-BtjCSy-T.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/progress-D-HsH4j3.js", "/assets/components-DrvY4pal.js", "/assets/pe-DXT2FOp1.js"], "css": [] }, "routes/admin+/version": { "id": "routes/admin+/version", "parentId": "routes/admin+/_layout", "path": "version", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/version-D61Qvt0X.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/apps": { "id": "routes/apps", "parentId": "root", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/apps-DP2rzg_V.js", "imports": [], "css": [] }, "routes/diff": { "id": "routes/diff", "parentId": "root", "path": "diff", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/diff-D0e_PrB7.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/misc-BtjCSy-T.js", "/assets/diff-DtvfyjPI.js", "/assets/nav-chevrons-2hLTwAZb.js", "/assets/components-DrvY4pal.js", "/assets/accordion-C-sW--in.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/index-BPegC-d3.js", "/assets/index-BHwOR8R1.js", "/assets/mdx-CsS30JUo.js", "/assets/epic-video-qHKPWPt1.js", "/assets/index-BOQWfIQC.js", "/assets/pe-DXT2FOp1.js", "/assets/loading-C2wPVvQw.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-CTPCfvDi.js", "/assets/revalidation-ws-DYaJNyw1.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/exercises": { "id": "routes/exercises", "parentId": "root", "path": "exercises", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/exercises-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/launch-editor": { "id": "routes/launch-editor", "parentId": "root", "path": "launch-editor", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/launch-editor-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/login-sse": { "id": "routes/login-sse", "parentId": "root", "path": "login-sse", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/login-sse-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/og": { "id": "routes/og", "parentId": "root", "path": "og", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/og-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/onboarding": { "id": "routes/onboarding", "parentId": "root", "path": "onboarding", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/onboarding-Cu6eD7KS.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/button-BS845Tjo.js", "/assets/epic-video-qHKPWPt1.js", "/assets/components-DrvY4pal.js", "/assets/misc-BtjCSy-T.js", "/assets/index-BOQWfIQC.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/pe-DXT2FOp1.js", "/assets/loading-C2wPVvQw.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/processes": { "id": "routes/processes", "parentId": "root", "path": "processes", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/processes-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/progress": { "id": "routes/progress", "parentId": "root", "path": "progress", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/progress-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/robots[.]txt": { "id": "routes/robots[.]txt", "parentId": "root", "path": "robots.txt", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/robots_._txt-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/set-playground": { "id": "routes/set-playground", "parentId": "root", "path": "set-playground", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/set-playground-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/sitemap[.]xml": { "id": "routes/sitemap[.]xml", "parentId": "root", "path": "sitemap.xml", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/sitemap_._xml-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/start": { "id": "routes/start", "parentId": "root", "path": "start", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/start-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/test": { "id": "routes/test", "parentId": "root", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/theme/index": { "id": "routes/theme/index", "parentId": "root", "path": "theme", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-DP2rzg_V.js", "imports": [], "css": [] }, "routes/video-player/index": { "id": "routes/video-player/index", "parentId": "root", "path": "video-player", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-K6Dvbx-E.js", "imports": [], "css": [] } }, "url": "/assets/manifest-3096dc61.js", "version": "3096dc61" };
|
|
11163
|
+
const serverManifest = { "entry": { "module": "/assets/entry.client-CQusg5Iz.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes": { "root": { "id": "root", "parentId": void 0, "path": "", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/root-B3Ez4TJh.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/components-DrvY4pal.js", "/assets/misc-D9k1wGip.js", "/assets/pe-DXT2FOp1.js", "/assets/error-boundary-DBVB3BBH.js", "/assets/progress-bar-IswLOt8e.js", "/assets/index-CB8bjE90.js", "/assets/tooltip-CzrLrLJU.js", "/assets/index-Ba7zHVvt.js", "/assets/presence-DcXyg7el.js", "/assets/seo-pBpFCWsy.js", "/assets/online-CN5sXlwN.js"], "css": [] }, "routes/$": { "id": "routes/$", "parentId": "root", "path": "*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_-BbjJ9R-5.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/error-boundary-DBVB3BBH.js", "/assets/misc-D9k1wGip.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/_app+/_layout": { "id": "routes/_app+/_layout", "parentId": "root", "path": void 0, "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-DMejPY7I.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/misc-D9k1wGip.js", "/assets/pe-DXT2FOp1.js", "/assets/product-DD8nUALO.js", "/assets/revalidation-ws-BIizeOeQ.js", "/assets/tooltip-CzrLrLJU.js", "/assets/index-CWadM2q_.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/online-CN5sXlwN.js", "/assets/presence-DcXyg7el.js", "/assets/progress-CpALgZbi.js", "/assets/index-Ba7zHVvt.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/_app+/account": { "id": "routes/_app+/account", "parentId": "routes/_app+/_layout", "path": "account", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/account-C4MWGVQU.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/button-DhtjxLl5.js", "/assets/misc-D9k1wGip.js", "/assets/tooltip-CzrLrLJU.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/_app+/app.$appName+/$": { "id": "routes/_app+/app.$appName+/$", "parentId": "routes/_app+/_layout", "path": "app/:appName/*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/api.$": { "id": "routes/_app+/app.$appName+/api.$", "parentId": "routes/_app+/_layout", "path": "app/:appName/api/*", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/api._-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/epic_ws[.js]": { "id": "routes/_app+/app.$appName+/epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/index": { "id": "routes/_app+/app.$appName+/index", "parentId": "routes/_app+/_layout", "path": "app/:appName/", "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.$testName": { "id": "routes/_app+/app.$appName+/test.$testName", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/:testName", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test._testName-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.epic_ws[.js]": { "id": "routes/_app+/app.$appName+/test.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.epic_ws[.js]": { "id": "routes/_app+/app.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/app.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/discord": { "id": "routes/_app+/discord", "parentId": "routes/_app+/_layout", "path": "discord", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord-tUa_uzeh.js", "imports": ["/assets/discord-DsGCI_e6.js", "/assets/index-CGzylDPY.js", "/assets/misc-D9k1wGip.js", "/assets/components-DrvY4pal.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js"], "css": [] }, "routes/_app+/exercise+/_layout": { "id": "routes/_app+/exercise+/_layout", "parentId": "routes/_app+/_layout", "path": "exercise", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-CwTidn3v.js", "imports": ["/assets/index-CGzylDPY.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber": { "id": "routes/_app+/exercise+/$exerciseNumber", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber-BdRxxVY9.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/epic-video-DbfbYOk7.js", "/assets/revalidation-ws-BIizeOeQ.js", "/assets/mdx-Nz3dsEsr.js", "/assets/progress-CpALgZbi.js", "/assets/misc-D9k1wGip.js", "/assets/seo-pBpFCWsy.js", "/assets/components-DrvY4pal.js", "/assets/index-Ba7zHVvt.js", "/assets/tooltip-CzrLrLJU.js", "/assets/pe-DXT2FOp1.js", "/assets/online-CN5sXlwN.js", "/assets/loading-ZSC9wgHC.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-IswLOt8e.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/:stepNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber_._stepNumber-CZKDy98j.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/misc-D9k1wGip.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": ":type", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_layout-BN0qitsj.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/error-boundary-DBVB3BBH.js", "/assets/nav-chevrons-CM-frhig.js", "/assets/revalidation-ws-BIizeOeQ.js", "/assets/mdx-Nz3dsEsr.js", "/assets/progress-CpALgZbi.js", "/assets/set-playground-BoPKA2de.js", "/assets/seo-pBpFCWsy.js", "/assets/misc-D9k1wGip.js", "/assets/epic-video-DbfbYOk7.js", "/assets/tooltip-CzrLrLJU.js", "/assets/index-Ba7zHVvt.js", "/assets/components-DrvY4pal.js", "/assets/index-CWadM2q_.js", "/assets/progress-bar-IswLOt8e.js", "/assets/pe-DXT2FOp1.js", "/assets/index-D7-ne3iG.js", "/assets/online-CN5sXlwN.js", "/assets/loading-ZSC9wgHC.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": "app", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/app-srTG3_Hm.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/preview-BhbdVgz0.js", "/assets/components-DrvY4pal.js", "/assets/misc-D9k1wGip.js", "/assets/index-Ba7zHVvt.js", "/assets/tooltip-CzrLrLJU.js", "/assets/pe-DXT2FOp1.js", "/assets/button-DhtjxLl5.js", "/assets/loading-ZSC9wgHC.js", "/assets/progress-bar-IswLOt8e.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/index-BoOt6peO.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/tooltip-CzrLrLJU.js", "/assets/index-D7-ne3iG.js", "/assets/misc-D9k1wGip.js", "/assets/diff-CMHaCmku.js", "/assets/error-boundary-DBVB3BBH.js", "/assets/loading-ZSC9wgHC.js", "/assets/discord-DsGCI_e6.js", "/assets/online-CN5sXlwN.js", "/assets/components-DrvY4pal.js", "/assets/index-CB8bjE90.js", "/assets/set-playground-BoPKA2de.js", "/assets/tests-oMtvdjmo.js", "/assets/preview-BhbdVgz0.js", "/assets/index-CWadM2q_.js", "/assets/accordion-BL_cX9y6.js", "/assets/mdx-Nz3dsEsr.js", "/assets/epic-video-DbfbYOk7.js", "/assets/index-Ba7zHVvt.js", "/assets/pe-DXT2FOp1.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-IswLOt8e.js", "/assets/revalidation-ws-BIizeOeQ.js", "/assets/use-event-source-AZJtQsFX.js", "/assets/button-DhtjxLl5.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test-B1MpH-AU.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/tests-oMtvdjmo.js", "/assets/components-DrvY4pal.js", "/assets/epic-video-DbfbYOk7.js", "/assets/index-Ba7zHVvt.js", "/assets/misc-D9k1wGip.js", "/assets/tooltip-CzrLrLJU.js", "/assets/pe-DXT2FOp1.js", "/assets/online-CN5sXlwN.js", "/assets/loading-ZSC9wgHC.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/accordion-BL_cX9y6.js", "/assets/index-D7-ne3iG.js", "/assets/index-CWadM2q_.js", "/assets/use-event-source-AZJtQsFX.js", "/assets/set-playground-BoPKA2de.js", "/assets/progress-bar-IswLOt8e.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_._stepNumber.index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.finished": { "id": "routes/_app+/exercise+/$exerciseNumber_.finished", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_.finished-zD7Rb_Qp.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/epic-video-DbfbYOk7.js", "/assets/misc-D9k1wGip.js", "/assets/loading-ZSC9wgHC.js", "/assets/nav-chevrons-CM-frhig.js", "/assets/revalidation-ws-BIizeOeQ.js", "/assets/mdx-Nz3dsEsr.js", "/assets/progress-CpALgZbi.js", "/assets/online-CN5sXlwN.js", "/assets/seo-pBpFCWsy.js", "/assets/components-DrvY4pal.js", "/assets/index-Ba7zHVvt.js", "/assets/tooltip-CzrLrLJU.js", "/assets/pe-DXT2FOp1.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-IswLOt8e.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/finished": { "id": "routes/_app+/finished", "parentId": "routes/_app+/_layout", "path": "finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/finished-EOAd0vS7.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/epic-video-DbfbYOk7.js", "/assets/misc-D9k1wGip.js", "/assets/loading-ZSC9wgHC.js", "/assets/nav-chevrons-CM-frhig.js", "/assets/revalidation-ws-BIizeOeQ.js", "/assets/mdx-Nz3dsEsr.js", "/assets/online-CN5sXlwN.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-CpALgZbi.js", "/assets/components-DrvY4pal.js", "/assets/index-Ba7zHVvt.js", "/assets/tooltip-CzrLrLJU.js", "/assets/pe-DXT2FOp1.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-IswLOt8e.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/index": { "id": "routes/_app+/index", "parentId": "routes/_app+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/index-Bqxmi8_-.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/epic-video-DbfbYOk7.js", "/assets/error-boundary-DBVB3BBH.js", "/assets/mdx-Nz3dsEsr.js", "/assets/misc-D9k1wGip.js", "/assets/progress-CpALgZbi.js", "/assets/components-DrvY4pal.js", "/assets/index-Ba7zHVvt.js", "/assets/tooltip-CzrLrLJU.js", "/assets/pe-DXT2FOp1.js", "/assets/online-CN5sXlwN.js", "/assets/loading-ZSC9wgHC.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-IswLOt8e.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/login": { "id": "routes/_app+/login", "parentId": "routes/_app+/_layout", "path": "login", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/login-CJfcLXAB.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/use-event-source-AZJtQsFX.js", "/assets/button-DhtjxLl5.js", "/assets/loading-ZSC9wgHC.js", "/assets/product-DD8nUALO.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/index-Ba7zHVvt.js", "/assets/components-DrvY4pal.js", "/assets/misc-D9k1wGip.js", "/assets/tooltip-CzrLrLJU.js", "/assets/pe-DXT2FOp1.js"], "css": [] }, "routes/_app+/preferences": { "id": "routes/_app+/preferences", "parentId": "routes/_app+/_layout", "path": "preferences", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/preferences-DhTuJwew.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/button-DhtjxLl5.js", "/assets/misc-D9k1wGip.js", "/assets/tooltip-CzrLrLJU.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/_app+/support": { "id": "routes/_app+/support", "parentId": "routes/_app+/_layout", "path": "support", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/support-lgEG2piy.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/admin+/_layout": { "id": "routes/admin+/_layout", "parentId": "root", "path": "admin", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-DV29dlKr.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/admin+/apps": { "id": "routes/admin+/apps", "parentId": "routes/admin+/_layout", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/apps-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/admin+/cache": { "id": "routes/admin+/cache", "parentId": "routes/admin+/_layout", "path": "cache", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/cache-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/admin+/index": { "id": "routes/admin+/index", "parentId": "routes/admin+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-BH_SsYHe.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/misc-D9k1wGip.js", "/assets/tooltip-CzrLrLJU.js", "/assets/progress-CpALgZbi.js", "/assets/components-DrvY4pal.js", "/assets/pe-DXT2FOp1.js"], "css": [] }, "routes/admin+/version": { "id": "routes/admin+/version", "parentId": "routes/admin+/_layout", "path": "version", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/version-D61Qvt0X.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/apps": { "id": "routes/apps", "parentId": "root", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/apps-DP2rzg_V.js", "imports": [], "css": [] }, "routes/diff": { "id": "routes/diff", "parentId": "root", "path": "diff", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/diff-CcVqQ39D.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/misc-D9k1wGip.js", "/assets/diff-CMHaCmku.js", "/assets/nav-chevrons-CM-frhig.js", "/assets/components-DrvY4pal.js", "/assets/accordion-BL_cX9y6.js", "/assets/tooltip-CzrLrLJU.js", "/assets/index-D7-ne3iG.js", "/assets/index-CWadM2q_.js", "/assets/mdx-Nz3dsEsr.js", "/assets/epic-video-DbfbYOk7.js", "/assets/index-Ba7zHVvt.js", "/assets/pe-DXT2FOp1.js", "/assets/online-CN5sXlwN.js", "/assets/loading-ZSC9wgHC.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-IswLOt8e.js", "/assets/revalidation-ws-BIizeOeQ.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/exercises": { "id": "routes/exercises", "parentId": "root", "path": "exercises", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/exercises-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/launch-editor": { "id": "routes/launch-editor", "parentId": "root", "path": "launch-editor", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/launch-editor-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/login-sse": { "id": "routes/login-sse", "parentId": "root", "path": "login-sse", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/login-sse-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/og": { "id": "routes/og", "parentId": "root", "path": "og", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/og-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/onboarding": { "id": "routes/onboarding", "parentId": "root", "path": "onboarding", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/onboarding-DhIDoTnn.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/button-DhtjxLl5.js", "/assets/epic-video-DbfbYOk7.js", "/assets/components-DrvY4pal.js", "/assets/misc-D9k1wGip.js", "/assets/index-Ba7zHVvt.js", "/assets/tooltip-CzrLrLJU.js", "/assets/pe-DXT2FOp1.js", "/assets/online-CN5sXlwN.js", "/assets/loading-ZSC9wgHC.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/processes": { "id": "routes/processes", "parentId": "root", "path": "processes", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/processes-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/progress": { "id": "routes/progress", "parentId": "root", "path": "progress", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/progress-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/robots[.]txt": { "id": "routes/robots[.]txt", "parentId": "root", "path": "robots.txt", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/robots_._txt-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/set-playground": { "id": "routes/set-playground", "parentId": "root", "path": "set-playground", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/set-playground-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/sitemap[.]xml": { "id": "routes/sitemap[.]xml", "parentId": "root", "path": "sitemap.xml", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/sitemap_._xml-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/start": { "id": "routes/start", "parentId": "root", "path": "start", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/start-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/test": { "id": "routes/test", "parentId": "root", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/theme/index": { "id": "routes/theme/index", "parentId": "root", "path": "theme", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-DP2rzg_V.js", "imports": [], "css": [] }, "routes/video-player/index": { "id": "routes/video-player/index", "parentId": "root", "path": "video-player", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-K6Dvbx-E.js", "imports": [], "css": [] } }, "url": "/assets/manifest-710bbc0c.js", "version": "710bbc0c" };
|
|
11041
11164
|
const mode = "production";
|
|
11042
11165
|
const assetsBuildDirectory = "build/client";
|
|
11043
11166
|
const basename = "/";
|