@burdenoff/microfe-buildmyiq 2026.706.10 → 2026.709.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/buildmyiq/BuildmyiqRoutes.js +67 -49
- package/dist/buildmyiq/BuildmyiqRoutes.js.map +1 -1
- package/dist/buildmyiq/components/BuiDiscussion.js +1 -1
- package/dist/buildmyiq/index.js +1 -1
- package/dist/buildmyiq/pages/DashboardPage.js +159 -122
- package/dist/buildmyiq/pages/DashboardPage.js.map +1 -1
- package/dist/buildmyiq/pages/assessments/AssessmentDetailPage.js +1 -1
- package/dist/buildmyiq/pages/assessments/AssessmentsPage.js +1 -1
- package/dist/buildmyiq/pages/assessments/TakeAssessmentPage.js +1 -1
- package/dist/buildmyiq/pages/authoring/AuthoringPage.js +1 -1
- package/dist/buildmyiq/pages/authoring/CourseBuilderPage.js +1 -1
- package/dist/buildmyiq/pages/catalog/CatalogPage.js +1 -1
- package/dist/buildmyiq/pages/catalog/CourseDetailPage.js +1 -1
- package/dist/buildmyiq/pages/certificates/CertificatesPage.js +1 -1
- package/dist/buildmyiq/pages/cohorts/CohortsPage.js +1 -1
- package/dist/buildmyiq/pages/learning/LessonPlayerPage.js +1 -1
- package/dist/buildmyiq/pages/learning/MyLearningPage.js +1 -1
- package/dist/buildmyiq/pages/paths/PathsPage.js +1 -1
- package/dist/buildmyiq/pages/submissions/SubmissionsPage.js +1 -1
- package/dist/buildmyiq/shared/hooks/useTr.js +14 -0
- package/dist/buildmyiq/shared/hooks/useTr.js.map +1 -0
- package/dist/buildmyiq/utils/cn.js +2 -2
- package/dist/node_modules/{.bun/clsx@2.1.1/node_modules/clsx → clsx}/dist/clsx.js +1 -1
- package/dist/node_modules/clsx/dist/clsx.js.map +1 -0
- package/dist/node_modules/{.bun/tailwind-merge@3.5.0/node_modules/tailwind-merge → tailwind-merge}/dist/bundle-mjs.js +212 -170
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
- package/package.json +1 -1
- package/dist/buildmyiq/BuildmyiqRoot.d.ts +0 -5
- package/dist/buildmyiq/BuildmyiqRoot.d.ts.map +0 -1
- package/dist/buildmyiq/BuildmyiqRoutes.d.ts +0 -4
- package/dist/buildmyiq/BuildmyiqRoutes.d.ts.map +0 -1
- package/dist/buildmyiq/components/Avatar.d.ts +0 -15
- package/dist/buildmyiq/components/Avatar.d.ts.map +0 -1
- package/dist/buildmyiq/components/BuiDiscussion.d.ts +0 -18
- package/dist/buildmyiq/components/BuiDiscussion.d.ts.map +0 -1
- package/dist/buildmyiq/components/BuiTags.d.ts +0 -17
- package/dist/buildmyiq/components/BuiTags.d.ts.map +0 -1
- package/dist/buildmyiq/components/DataTable.d.ts +0 -28
- package/dist/buildmyiq/components/DataTable.d.ts.map +0 -1
- package/dist/buildmyiq/components/EmptyState.d.ts +0 -18
- package/dist/buildmyiq/components/EmptyState.d.ts.map +0 -1
- package/dist/buildmyiq/components/EvidenceUpload.d.ts +0 -14
- package/dist/buildmyiq/components/EvidenceUpload.d.ts.map +0 -1
- package/dist/buildmyiq/components/FileLink.d.ts +0 -15
- package/dist/buildmyiq/components/FileLink.d.ts.map +0 -1
- package/dist/buildmyiq/components/FilterTabs.d.ts +0 -18
- package/dist/buildmyiq/components/FilterTabs.d.ts.map +0 -1
- package/dist/buildmyiq/components/MetricsCard.d.ts +0 -23
- package/dist/buildmyiq/components/MetricsCard.d.ts.map +0 -1
- package/dist/buildmyiq/components/MiniBar.d.ts +0 -16
- package/dist/buildmyiq/components/MiniBar.d.ts.map +0 -1
- package/dist/buildmyiq/components/PageLayout.d.ts +0 -16
- package/dist/buildmyiq/components/PageLayout.d.ts.map +0 -1
- package/dist/buildmyiq/components/Pagination.d.ts +0 -22
- package/dist/buildmyiq/components/Pagination.d.ts.map +0 -1
- package/dist/buildmyiq/components/StateViews.d.ts +0 -24
- package/dist/buildmyiq/components/StateViews.d.ts.map +0 -1
- package/dist/buildmyiq/components/StatusBadge.d.ts +0 -9
- package/dist/buildmyiq/components/StatusBadge.d.ts.map +0 -1
- package/dist/buildmyiq/components/Tabs.d.ts +0 -17
- package/dist/buildmyiq/components/Tabs.d.ts.map +0 -1
- package/dist/buildmyiq/components/Viz.d.ts +0 -25
- package/dist/buildmyiq/components/Viz.d.ts.map +0 -1
- package/dist/buildmyiq/components/index.d.ts +0 -21
- package/dist/buildmyiq/components/index.d.ts.map +0 -1
- package/dist/buildmyiq/context/BuildmyiqContext.d.ts +0 -16
- package/dist/buildmyiq/context/BuildmyiqContext.d.ts.map +0 -1
- package/dist/buildmyiq/context/index.d.ts +0 -6
- package/dist/buildmyiq/context/index.d.ts.map +0 -1
- package/dist/buildmyiq/hooks/index.d.ts +0 -10
- package/dist/buildmyiq/hooks/index.d.ts.map +0 -1
- package/dist/buildmyiq/hooks/useBuiComments.d.ts +0 -36
- package/dist/buildmyiq/hooks/useBuiComments.d.ts.map +0 -1
- package/dist/buildmyiq/hooks/useBuiFiles.d.ts +0 -47
- package/dist/buildmyiq/hooks/useBuiFiles.d.ts.map +0 -1
- package/dist/buildmyiq/hooks/useBuiTags.d.ts +0 -44
- package/dist/buildmyiq/hooks/useBuiTags.d.ts.map +0 -1
- package/dist/buildmyiq/hooks/useBuildmyiqApi.d.ts +0 -65
- package/dist/buildmyiq/hooks/useBuildmyiqApi.d.ts.map +0 -1
- package/dist/buildmyiq/hooks/useCursorPager.d.ts +0 -33
- package/dist/buildmyiq/hooks/useCursorPager.d.ts.map +0 -1
- package/dist/buildmyiq/index.d.ts +0 -9
- package/dist/buildmyiq/index.d.ts.map +0 -1
- package/dist/buildmyiq/pages/DashboardPage.d.ts +0 -4
- package/dist/buildmyiq/pages/DashboardPage.d.ts.map +0 -1
- package/dist/buildmyiq/pages/_shared/CourseCard.d.ts +0 -13
- package/dist/buildmyiq/pages/_shared/CourseCard.d.ts.map +0 -1
- package/dist/buildmyiq/pages/_shared/index.d.ts +0 -6
- package/dist/buildmyiq/pages/_shared/index.d.ts.map +0 -1
- package/dist/buildmyiq/pages/assessments/AssessmentDetailPage.d.ts +0 -4
- package/dist/buildmyiq/pages/assessments/AssessmentDetailPage.d.ts.map +0 -1
- package/dist/buildmyiq/pages/assessments/AssessmentsPage.d.ts +0 -4
- package/dist/buildmyiq/pages/assessments/AssessmentsPage.d.ts.map +0 -1
- package/dist/buildmyiq/pages/assessments/TakeAssessmentPage.d.ts +0 -4
- package/dist/buildmyiq/pages/assessments/TakeAssessmentPage.d.ts.map +0 -1
- package/dist/buildmyiq/pages/authoring/AuthoringPage.d.ts +0 -4
- package/dist/buildmyiq/pages/authoring/AuthoringPage.d.ts.map +0 -1
- package/dist/buildmyiq/pages/authoring/CourseBuilderPage.d.ts +0 -4
- package/dist/buildmyiq/pages/authoring/CourseBuilderPage.d.ts.map +0 -1
- package/dist/buildmyiq/pages/authoring/_forms.d.ts +0 -44
- package/dist/buildmyiq/pages/authoring/_forms.d.ts.map +0 -1
- package/dist/buildmyiq/pages/catalog/CatalogPage.d.ts +0 -4
- package/dist/buildmyiq/pages/catalog/CatalogPage.d.ts.map +0 -1
- package/dist/buildmyiq/pages/catalog/CourseDetailPage.d.ts +0 -4
- package/dist/buildmyiq/pages/catalog/CourseDetailPage.d.ts.map +0 -1
- package/dist/buildmyiq/pages/certificates/CertificatesPage.d.ts +0 -4
- package/dist/buildmyiq/pages/certificates/CertificatesPage.d.ts.map +0 -1
- package/dist/buildmyiq/pages/cohorts/CohortsPage.d.ts +0 -4
- package/dist/buildmyiq/pages/cohorts/CohortsPage.d.ts.map +0 -1
- package/dist/buildmyiq/pages/insights/InsightsPage.d.ts +0 -4
- package/dist/buildmyiq/pages/insights/InsightsPage.d.ts.map +0 -1
- package/dist/buildmyiq/pages/learning/LessonPlayerPage.d.ts +0 -4
- package/dist/buildmyiq/pages/learning/LessonPlayerPage.d.ts.map +0 -1
- package/dist/buildmyiq/pages/learning/MyLearningPage.d.ts +0 -4
- package/dist/buildmyiq/pages/learning/MyLearningPage.d.ts.map +0 -1
- package/dist/buildmyiq/pages/paths/PathsPage.d.ts +0 -4
- package/dist/buildmyiq/pages/paths/PathsPage.d.ts.map +0 -1
- package/dist/buildmyiq/pages/skills/SkillsPage.d.ts +0 -4
- package/dist/buildmyiq/pages/skills/SkillsPage.d.ts.map +0 -1
- package/dist/buildmyiq/pages/submissions/SubmissionsPage.d.ts +0 -4
- package/dist/buildmyiq/pages/submissions/SubmissionsPage.d.ts.map +0 -1
- package/dist/buildmyiq/types/index.d.ts +0 -382
- package/dist/buildmyiq/types/index.d.ts.map +0 -1
- package/dist/buildmyiq/utils/cn.d.ts +0 -4
- package/dist/buildmyiq/utils/cn.d.ts.map +0 -1
- package/dist/buildmyiq/utils/formatters.d.ts +0 -33
- package/dist/buildmyiq/utils/formatters.d.ts.map +0 -1
- package/dist/buildmyiq/utils/i18n.d.ts +0 -6
- package/dist/buildmyiq/utils/i18n.d.ts.map +0 -1
- package/dist/buildmyiq/utils/index.d.ts +0 -9
- package/dist/buildmyiq/utils/index.d.ts.map +0 -1
- package/dist/buildmyiq/utils/navigation.d.ts +0 -14
- package/dist/buildmyiq/utils/navigation.d.ts.map +0 -1
- package/dist/dev/main.d.ts +0 -2
- package/dist/dev/main.d.ts.map +0 -1
- package/dist/generated/global-operations.d.ts +0 -2
- package/dist/generated/global-operations.d.ts.map +0 -1
- package/dist/generated/global-types.d.ts +0 -18199
- package/dist/generated/global-types.d.ts.map +0 -1
- package/dist/generated/wspace-operations.d.ts +0 -2
- package/dist/generated/wspace-operations.d.ts.map +0 -1
- package/dist/generated/wspace-types.d.ts +0 -43046
- package/dist/generated/wspace-types.d.ts.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +0 -1
- package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js.map +0 -1
- package/dist/node_modules/.bun/tailwind-merge@3.5.0/node_modules/tailwind-merge/dist/bundle-mjs.js.map +0 -1
|
@@ -1,88 +1,106 @@
|
|
|
1
1
|
import { useBuildmyiq as e } from "./context/BuildmyiqContext.js";
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
2
|
+
import "./context/index.js";
|
|
3
|
+
import { useTr as t } from "./shared/hooks/useTr.js";
|
|
4
|
+
import { DashboardPage as n } from "./pages/DashboardPage.js";
|
|
5
|
+
import { Suspense as r, lazy as i } from "react";
|
|
6
|
+
import { FeatureGate as a } from "@burdenoff/fe-libs/shared/feature-flags";
|
|
7
|
+
import { Navigate as o, Route as s, Routes as c, useLocation as l } from "react-router-dom";
|
|
8
|
+
import { jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
9
|
+
import { Spinner as f } from "@burdenoff/fe-libs/ui";
|
|
7
10
|
//#region src/buildmyiq/BuildmyiqRoutes.tsx
|
|
8
|
-
var
|
|
11
|
+
var p = i(() => import("./pages/catalog/CatalogPage.js").then((e) => ({ default: e.CatalogPage }))), m = i(() => import("./pages/catalog/CourseDetailPage.js").then((e) => ({ default: e.CourseDetailPage }))), h = i(() => import("./pages/learning/MyLearningPage.js").then((e) => ({ default: e.MyLearningPage }))), g = i(() => import("./pages/learning/LessonPlayerPage.js").then((e) => ({ default: e.LessonPlayerPage }))), _ = i(() => import("./pages/authoring/AuthoringPage.js").then((e) => ({ default: e.AuthoringPage }))), v = i(() => import("./pages/authoring/CourseBuilderPage.js").then((e) => ({ default: e.CourseBuilderPage }))), y = i(() => import("./pages/assessments/AssessmentsPage.js").then((e) => ({ default: e.AssessmentsPage }))), b = i(() => import("./pages/assessments/AssessmentDetailPage.js").then((e) => ({ default: e.AssessmentDetailPage }))), x = i(() => import("./pages/assessments/TakeAssessmentPage.js").then((e) => ({ default: e.TakeAssessmentPage }))), S = i(() => import("./pages/insights/InsightsPage.js").then((e) => ({ default: e.InsightsPage }))), C = i(() => import("./pages/paths/PathsPage.js").then((e) => ({ default: e.PathsPage }))), w = i(() => import("./pages/submissions/SubmissionsPage.js").then((e) => ({ default: e.SubmissionsPage }))), T = i(() => import("./pages/cohorts/CohortsPage.js").then((e) => ({ default: e.CohortsPage }))), E = i(() => import("./pages/skills/SkillsPage.js").then((e) => ({ default: e.SkillsPage }))), D = i(() => import("./pages/certificates/CertificatesPage.js").then((e) => ({ default: e.CertificatesPage }))), O = () => /* @__PURE__ */ u("div", {
|
|
9
12
|
className: "flex min-h-[400px] items-center justify-center",
|
|
10
|
-
children: /* @__PURE__ */
|
|
11
|
-
})
|
|
12
|
-
|
|
13
|
-
return
|
|
13
|
+
children: /* @__PURE__ */ u(f, { size: "lg" })
|
|
14
|
+
});
|
|
15
|
+
function k() {
|
|
16
|
+
return /* @__PURE__ */ u("div", {
|
|
17
|
+
className: "flex h-full min-h-[200px] items-center justify-center text-sm text-text-secondary",
|
|
18
|
+
children: t()("buildmyiq.pages.featureDisabled", "This feature is currently disabled. You can enable it from Feature Previews.")
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
function A(e, t, n = !0) {
|
|
22
|
+
return /* @__PURE__ */ u(a, {
|
|
23
|
+
flag: e,
|
|
24
|
+
defaultValue: n,
|
|
25
|
+
fallback: /* @__PURE__ */ u(k, {}),
|
|
26
|
+
children: t
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
var j = () => {
|
|
30
|
+
let { basePath: t, isStandalone: i } = e(), a = l(), f = t === "/" ? "" : (t ?? "").replace(/\/$/, "");
|
|
31
|
+
return f && !i && !(a.pathname === f || a.pathname.startsWith(f + "/")) ? null : /* @__PURE__ */ u("div", {
|
|
14
32
|
className: "flex min-h-full flex-col",
|
|
15
|
-
children: /* @__PURE__ */
|
|
16
|
-
fallback: /* @__PURE__ */
|
|
17
|
-
children: /* @__PURE__ */
|
|
18
|
-
/* @__PURE__ */
|
|
33
|
+
children: /* @__PURE__ */ u(r, {
|
|
34
|
+
fallback: /* @__PURE__ */ u(O, {}),
|
|
35
|
+
children: /* @__PURE__ */ d(c, { children: [
|
|
36
|
+
/* @__PURE__ */ u(s, {
|
|
19
37
|
index: !0,
|
|
20
|
-
element: /* @__PURE__ */
|
|
38
|
+
element: A("buildmyiq.overview", /* @__PURE__ */ u(n, {}))
|
|
21
39
|
}),
|
|
22
|
-
/* @__PURE__ */
|
|
40
|
+
/* @__PURE__ */ u(s, {
|
|
23
41
|
path: "catalog",
|
|
24
|
-
element: /* @__PURE__ */
|
|
42
|
+
element: A("buildmyiq.catalog", /* @__PURE__ */ u(p, {}))
|
|
25
43
|
}),
|
|
26
|
-
/* @__PURE__ */
|
|
44
|
+
/* @__PURE__ */ u(s, {
|
|
27
45
|
path: "catalog/:courseId",
|
|
28
|
-
element: /* @__PURE__ */
|
|
46
|
+
element: A("buildmyiq.catalog", /* @__PURE__ */ u(m, {}))
|
|
29
47
|
}),
|
|
30
|
-
/* @__PURE__ */
|
|
48
|
+
/* @__PURE__ */ u(s, {
|
|
31
49
|
path: "learning",
|
|
32
|
-
element: /* @__PURE__ */
|
|
50
|
+
element: A("buildmyiq.learning", /* @__PURE__ */ u(h, {}))
|
|
33
51
|
}),
|
|
34
|
-
/* @__PURE__ */
|
|
52
|
+
/* @__PURE__ */ u(s, {
|
|
35
53
|
path: "learning/:enrollmentId",
|
|
36
|
-
element: /* @__PURE__ */
|
|
54
|
+
element: A("buildmyiq.learning", /* @__PURE__ */ u(g, {}))
|
|
37
55
|
}),
|
|
38
|
-
/* @__PURE__ */
|
|
56
|
+
/* @__PURE__ */ u(s, {
|
|
39
57
|
path: "paths",
|
|
40
|
-
element: /* @__PURE__ */
|
|
58
|
+
element: A("buildmyiq.paths", /* @__PURE__ */ u(C, {}))
|
|
41
59
|
}),
|
|
42
|
-
/* @__PURE__ */
|
|
60
|
+
/* @__PURE__ */ u(s, {
|
|
43
61
|
path: "authoring",
|
|
44
|
-
element: /* @__PURE__ */
|
|
62
|
+
element: A("buildmyiq.authoring", /* @__PURE__ */ u(_, {}))
|
|
45
63
|
}),
|
|
46
|
-
/* @__PURE__ */
|
|
64
|
+
/* @__PURE__ */ u(s, {
|
|
47
65
|
path: "authoring/:courseId",
|
|
48
|
-
element: /* @__PURE__ */
|
|
66
|
+
element: A("buildmyiq.authoring", /* @__PURE__ */ u(v, {}))
|
|
49
67
|
}),
|
|
50
|
-
/* @__PURE__ */
|
|
68
|
+
/* @__PURE__ */ u(s, {
|
|
51
69
|
path: "assessments",
|
|
52
|
-
element: /* @__PURE__ */
|
|
70
|
+
element: A("buildmyiq.assessments", /* @__PURE__ */ u(y, {}))
|
|
53
71
|
}),
|
|
54
|
-
/* @__PURE__ */
|
|
72
|
+
/* @__PURE__ */ u(s, {
|
|
55
73
|
path: "assessments/:assessmentId",
|
|
56
|
-
element: /* @__PURE__ */
|
|
74
|
+
element: A("buildmyiq.assessments", /* @__PURE__ */ u(b, {}))
|
|
57
75
|
}),
|
|
58
|
-
/* @__PURE__ */
|
|
76
|
+
/* @__PURE__ */ u(s, {
|
|
59
77
|
path: "assessments/:assessmentId/take",
|
|
60
|
-
element: /* @__PURE__ */
|
|
78
|
+
element: A("buildmyiq.assessments", /* @__PURE__ */ u(x, {}))
|
|
61
79
|
}),
|
|
62
|
-
/* @__PURE__ */
|
|
80
|
+
/* @__PURE__ */ u(s, {
|
|
63
81
|
path: "insights",
|
|
64
|
-
element: /* @__PURE__ */
|
|
82
|
+
element: A("buildmyiq.insights", /* @__PURE__ */ u(S, {}))
|
|
65
83
|
}),
|
|
66
|
-
/* @__PURE__ */
|
|
84
|
+
/* @__PURE__ */ u(s, {
|
|
67
85
|
path: "submissions",
|
|
68
|
-
element: /* @__PURE__ */
|
|
86
|
+
element: A("buildmyiq.submissions", /* @__PURE__ */ u(w, {}))
|
|
69
87
|
}),
|
|
70
|
-
/* @__PURE__ */
|
|
88
|
+
/* @__PURE__ */ u(s, {
|
|
71
89
|
path: "cohorts",
|
|
72
|
-
element: /* @__PURE__ */
|
|
90
|
+
element: A("buildmyiq.cohorts", /* @__PURE__ */ u(T, {}))
|
|
73
91
|
}),
|
|
74
|
-
/* @__PURE__ */
|
|
92
|
+
/* @__PURE__ */ u(s, {
|
|
75
93
|
path: "skills",
|
|
76
|
-
element: /* @__PURE__ */
|
|
94
|
+
element: A("buildmyiq.skills", /* @__PURE__ */ u(E, {}))
|
|
77
95
|
}),
|
|
78
|
-
/* @__PURE__ */
|
|
96
|
+
/* @__PURE__ */ u(s, {
|
|
79
97
|
path: "certificates",
|
|
80
|
-
element: /* @__PURE__ */
|
|
98
|
+
element: A("buildmyiq.certificates", /* @__PURE__ */ u(D, {}))
|
|
81
99
|
}),
|
|
82
|
-
/* @__PURE__ */
|
|
100
|
+
/* @__PURE__ */ u(s, {
|
|
83
101
|
path: "*",
|
|
84
|
-
element: /* @__PURE__ */
|
|
85
|
-
to:
|
|
102
|
+
element: /* @__PURE__ */ u(o, {
|
|
103
|
+
to: f || "/",
|
|
86
104
|
replace: !0
|
|
87
105
|
})
|
|
88
106
|
})
|
|
@@ -91,6 +109,6 @@ var d = r(() => import("./pages/catalog/CatalogPage.js").then((e) => ({ default:
|
|
|
91
109
|
});
|
|
92
110
|
};
|
|
93
111
|
//#endregion
|
|
94
|
-
export {
|
|
112
|
+
export { j as BuildmyiqRoutes };
|
|
95
113
|
|
|
96
114
|
//# sourceMappingURL=BuildmyiqRoutes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuildmyiqRoutes.js","names":[],"sources":["../../src/buildmyiq/BuildmyiqRoutes.tsx"],"sourcesContent":["/**\n * Buildmyiq Routes\n * @module buildmyiq\n *\n * Domain routes. The dashboard is eager-loaded (primary landing); all other\n * pages are lazy-loaded. Every route maps to a real `bui*` backend capability.\n */\n\nimport { type FC, lazy, Suspense } from 'react';\nimport { Routes, Route, Navigate, useLocation } from 'react-router-dom';\nimport { Spinner } from '@burdenoff/fe-libs/ui';\nimport { useBuildmyiq } from './context/
|
|
1
|
+
{"version":3,"file":"BuildmyiqRoutes.js","names":[],"sources":["../../src/buildmyiq/BuildmyiqRoutes.tsx"],"sourcesContent":["/**\n * Buildmyiq Routes\n * @module buildmyiq\n *\n * Domain routes. The dashboard is eager-loaded (primary landing); all other\n * pages are lazy-loaded. Every route maps to a real `bui*` backend capability.\n * All product routes are gated by feature flags that default to enabled.\n */\n\nimport React, { type FC, lazy, Suspense } from 'react';\nimport { Routes, Route, Navigate, useLocation } from 'react-router-dom';\nimport { FeatureGate } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { Spinner } from '@burdenoff/fe-libs/ui';\nimport { useBuildmyiq } from './context';\nimport { useTr } from './shared/hooks/useTr';\n\n// Eager — primary landing\nimport { DashboardPage } from './pages/DashboardPage';\n\n// Catalog (learner-facing course discovery + detail + enrol)\nconst CatalogPage = lazy(() =>\n import('./pages/catalog/CatalogPage').then((m) => ({ default: m.CatalogPage }))\n);\nconst CourseDetailPage = lazy(() =>\n import('./pages/catalog/CourseDetailPage').then((m) => ({ default: m.CourseDetailPage }))\n);\n\n// My Learning (enrollments + progress + lesson player)\nconst MyLearningPage = lazy(() =>\n import('./pages/learning/MyLearningPage').then((m) => ({ default: m.MyLearningPage }))\n);\nconst LessonPlayerPage = lazy(() =>\n import('./pages/learning/LessonPlayerPage').then((m) => ({ default: m.LessonPlayerPage }))\n);\n\n// Authoring (instructor course management + builder)\nconst AuthoringPage = lazy(() =>\n import('./pages/authoring/AuthoringPage').then((m) => ({ default: m.AuthoringPage }))\n);\nconst CourseBuilderPage = lazy(() =>\n import('./pages/authoring/CourseBuilderPage').then((m) => ({ default: m.CourseBuilderPage }))\n);\n\n// Assessments (list + builder/questions/detail)\nconst AssessmentsPage = lazy(() =>\n import('./pages/assessments/AssessmentsPage').then((m) => ({ default: m.AssessmentsPage }))\n);\nconst AssessmentDetailPage = lazy(() =>\n import('./pages/assessments/AssessmentDetailPage').then((m) => ({\n default: m.AssessmentDetailPage,\n }))\n);\n// Learner-facing: take a published assessment (answer + submit)\nconst TakeAssessmentPage = lazy(() =>\n import('./pages/assessments/TakeAssessmentPage').then((m) => ({ default: m.TakeAssessmentPage }))\n);\n\n// Insights (educator analytics, derived from real data)\nconst InsightsPage = lazy(() =>\n import('./pages/insights/InsightsPage').then((m) => ({ default: m.InsightsPage }))\n);\n\n// Skill Journeys (derived guided paths)\nconst PathsPage = lazy(() =>\n import('./pages/paths/PathsPage').then((m) => ({ default: m.PathsPage }))\n);\n\n// Grading (submissions queue)\nconst SubmissionsPage = lazy(() =>\n import('./pages/submissions/SubmissionsPage').then((m) => ({ default: m.SubmissionsPage }))\n);\n\n// Cohorts\nconst CohortsPage = lazy(() =>\n import('./pages/cohorts/CohortsPage').then((m) => ({ default: m.CohortsPage }))\n);\n\n// Skills taxonomy\nconst SkillsPage = lazy(() =>\n import('./pages/skills/SkillsPage').then((m) => ({ default: m.SkillsPage }))\n);\n\n// Certificates\nconst CertificatesPage = lazy(() =>\n import('./pages/certificates/CertificatesPage').then((m) => ({ default: m.CertificatesPage }))\n);\n\nconst PageLoader: FC = () => (\n <div className=\"flex min-h-[400px] items-center justify-center\">\n <Spinner size=\"lg\" />\n </div>\n);\n\nfunction FeatureDisabledFallback() {\n const tr = useTr();\n return (\n <div className=\"flex h-full min-h-[200px] items-center justify-center text-sm text-text-secondary\">\n {tr(\n 'buildmyiq.pages.featureDisabled',\n 'This feature is currently disabled. You can enable it from Feature Previews.'\n )}\n </div>\n );\n}\n\nfunction gated(flag: string, element: React.ReactNode, defaultValue = true): React.ReactElement {\n return (\n <FeatureGate flag={flag} defaultValue={defaultValue} fallback={<FeatureDisabledFallback />}>\n {element}\n </FeatureGate>\n );\n}\n\nexport const BuildmyiqRoutes: FC = () => {\n const { basePath, isStandalone } = useBuildmyiq();\n const location = useLocation();\n\n const normalizedBasePath = basePath === '/' ? '' : (basePath ?? '').replace(/\\/$/, '');\n\n // Guard: only render if the current path matches basePath (integrated mode).\n if (normalizedBasePath && !isStandalone) {\n const pathMatches =\n location.pathname === normalizedBasePath ||\n location.pathname.startsWith(normalizedBasePath + '/');\n if (!pathMatches) {\n return null;\n }\n }\n\n return (\n <div className=\"flex min-h-full flex-col\">\n <Suspense fallback={<PageLoader />}>\n <Routes>\n <Route index element={gated('buildmyiq.overview', <DashboardPage />)} />\n\n <Route path=\"catalog\" element={gated('buildmyiq.catalog', <CatalogPage />)} />\n <Route\n path=\"catalog/:courseId\"\n element={gated('buildmyiq.catalog', <CourseDetailPage />)}\n />\n\n <Route path=\"learning\" element={gated('buildmyiq.learning', <MyLearningPage />)} />\n <Route\n path=\"learning/:enrollmentId\"\n element={gated('buildmyiq.learning', <LessonPlayerPage />)}\n />\n\n <Route path=\"paths\" element={gated('buildmyiq.paths', <PathsPage />)} />\n\n <Route path=\"authoring\" element={gated('buildmyiq.authoring', <AuthoringPage />)} />\n <Route\n path=\"authoring/:courseId\"\n element={gated('buildmyiq.authoring', <CourseBuilderPage />)}\n />\n\n <Route path=\"assessments\" element={gated('buildmyiq.assessments', <AssessmentsPage />)} />\n <Route\n path=\"assessments/:assessmentId\"\n element={gated('buildmyiq.assessments', <AssessmentDetailPage />)}\n />\n <Route\n path=\"assessments/:assessmentId/take\"\n element={gated('buildmyiq.assessments', <TakeAssessmentPage />)}\n />\n\n <Route path=\"insights\" element={gated('buildmyiq.insights', <InsightsPage />)} />\n\n <Route path=\"submissions\" element={gated('buildmyiq.submissions', <SubmissionsPage />)} />\n <Route path=\"cohorts\" element={gated('buildmyiq.cohorts', <CohortsPage />)} />\n <Route path=\"skills\" element={gated('buildmyiq.skills', <SkillsPage />)} />\n <Route\n path=\"certificates\"\n element={gated('buildmyiq.certificates', <CertificatesPage />)}\n />\n\n <Route path=\"*\" element={<Navigate to={normalizedBasePath || '/'} replace />} />\n </Routes>\n </Suspense>\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useBuildmyiq as e } from "../context/BuildmyiqContext.js";
|
|
2
|
+
import "../context/index.js";
|
|
2
3
|
import { formatDateTime as t } from "../utils/formatters.js";
|
|
3
4
|
import { EmptyState as n } from "./EmptyState.js";
|
|
4
5
|
import { ErrorView as r, LoadingView as i, Section as a } from "./StateViews.js";
|
|
5
|
-
import "../context/index.js";
|
|
6
6
|
import { useBuiComments as o, useEcoCreateComment as s } from "../hooks/useBuiComments.js";
|
|
7
7
|
import "../hooks/index.js";
|
|
8
8
|
import { useState as c } from "react";
|