@burdenoff/microfe-mybodyshield 2026.827.1 → 2026.830.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/mybodyshield/MyBodyShieldRoot.d.ts.map +1 -1
- package/dist/mybodyshield/MyBodyShieldRoot.js +54 -56
- package/dist/mybodyshield/MyBodyShieldRoot.js.map +1 -1
- package/dist/mybodyshield/MyBodyShieldRoutes.d.ts.map +1 -1
- package/dist/mybodyshield/MyBodyShieldRoutes.js +121 -62
- package/dist/mybodyshield/MyBodyShieldRoutes.js.map +1 -1
- package/dist/mybodyshield/components/EvidenceUpload.d.ts.map +1 -1
- package/dist/mybodyshield/components/EvidenceUpload.js +46 -45
- package/dist/mybodyshield/components/EvidenceUpload.js.map +1 -1
- package/dist/mybodyshield/components/FileLink.d.ts.map +1 -1
- package/dist/mybodyshield/components/FileLink.js +27 -18
- package/dist/mybodyshield/components/FileLink.js.map +1 -1
- package/dist/mybodyshield/components/MybDiscussion.d.ts +1 -1
- package/dist/mybodyshield/components/MybDiscussion.d.ts.map +1 -1
- package/dist/mybodyshield/components/MybDiscussion.js +59 -58
- package/dist/mybodyshield/components/MybDiscussion.js.map +1 -1
- package/dist/mybodyshield/components/MybTags.d.ts +1 -1
- package/dist/mybodyshield/components/MybTags.d.ts.map +1 -1
- package/dist/mybodyshield/components/MybTags.js +83 -74
- package/dist/mybodyshield/components/MybTags.js.map +1 -1
- package/dist/mybodyshield/components/PageDisabled.d.ts.map +1 -1
- package/dist/mybodyshield/components/PageDisabled.js +16 -11
- package/dist/mybodyshield/components/PageDisabled.js.map +1 -1
- package/dist/mybodyshield/components/Pagination.d.ts.map +1 -1
- package/dist/mybodyshield/components/Pagination.js +36 -27
- package/dist/mybodyshield/components/Pagination.js.map +1 -1
- package/dist/mybodyshield/components/StateViews.d.ts.map +1 -1
- package/dist/mybodyshield/components/StateViews.js +42 -34
- package/dist/mybodyshield/components/StateViews.js.map +1 -1
- package/dist/mybodyshield/components/UserSearchSelect.d.ts.map +1 -1
- package/dist/mybodyshield/components/UserSearchSelect.js +66 -68
- package/dist/mybodyshield/components/UserSearchSelect.js.map +1 -1
- package/dist/mybodyshield/hooks/index.d.ts +1 -0
- package/dist/mybodyshield/hooks/index.d.ts.map +1 -1
- package/dist/mybodyshield/hooks/index.js +1 -0
- package/dist/mybodyshield/hooks/useTr.d.ts +5 -0
- package/dist/mybodyshield/hooks/useTr.d.ts.map +1 -0
- package/dist/mybodyshield/hooks/useTr.js +12 -0
- package/dist/mybodyshield/hooks/useTr.js.map +1 -0
- package/dist/mybodyshield/pages/DashboardPage.d.ts.map +1 -1
- package/dist/mybodyshield/pages/DashboardPage.js +157 -136
- package/dist/mybodyshield/pages/DashboardPage.js.map +1 -1
- package/dist/mybodyshield/pages/SettingsPage.d.ts.map +1 -1
- package/dist/mybodyshield/pages/SettingsPage.js +50 -59
- package/dist/mybodyshield/pages/SettingsPage.js.map +1 -1
- package/dist/mybodyshield/pages/_shared/visuals.d.ts +2 -1
- package/dist/mybodyshield/pages/_shared/visuals.d.ts.map +1 -1
- package/dist/mybodyshield/pages/_shared/visuals.js +91 -81
- package/dist/mybodyshield/pages/_shared/visuals.js.map +1 -1
- package/dist/mybodyshield/pages/ai/AiControlsPage.d.ts.map +1 -1
- package/dist/mybodyshield/pages/ai/AiControlsPage.js +255 -266
- package/dist/mybodyshield/pages/ai/AiControlsPage.js.map +1 -1
- package/dist/mybodyshield/pages/coaching/CoachingPage.d.ts.map +1 -1
- package/dist/mybodyshield/pages/coaching/CoachingPage.js +321 -301
- package/dist/mybodyshield/pages/coaching/CoachingPage.js.map +1 -1
- package/dist/mybodyshield/pages/goals/GoalsPage.d.ts.map +1 -1
- package/dist/mybodyshield/pages/goals/GoalsPage.js +247 -251
- package/dist/mybodyshield/pages/goals/GoalsPage.js.map +1 -1
- package/dist/mybodyshield/pages/insights/InsightsCharts.d.ts.map +1 -1
- package/dist/mybodyshield/pages/insights/InsightsCharts.js +216 -213
- package/dist/mybodyshield/pages/insights/InsightsCharts.js.map +1 -1
- package/dist/mybodyshield/pages/insights/InsightsPage.d.ts.map +1 -1
- package/dist/mybodyshield/pages/insights/InsightsPage.js +290 -284
- package/dist/mybodyshield/pages/insights/InsightsPage.js.map +1 -1
- package/dist/mybodyshield/pages/nutrition/NutritionPage.d.ts.map +1 -1
- package/dist/mybodyshield/pages/nutrition/NutritionPage.js +575 -529
- package/dist/mybodyshield/pages/nutrition/NutritionPage.js.map +1 -1
- package/dist/mybodyshield/pages/programs/ProgramDetailPage.d.ts.map +1 -1
- package/dist/mybodyshield/pages/programs/ProgramDetailPage.js +333 -275
- package/dist/mybodyshield/pages/programs/ProgramDetailPage.js.map +1 -1
- package/dist/mybodyshield/pages/programs/ProgramsPage.d.ts.map +1 -1
- package/dist/mybodyshield/pages/programs/ProgramsPage.js +258 -253
- package/dist/mybodyshield/pages/programs/ProgramsPage.js.map +1 -1
- package/dist/mybodyshield/pages/progress/ProgressPage.d.ts.map +1 -1
- package/dist/mybodyshield/pages/progress/ProgressPage.js +271 -254
- package/dist/mybodyshield/pages/progress/ProgressPage.js.map +1 -1
- package/dist/mybodyshield/pages/recovery/RecoveryPage.d.ts.map +1 -1
- package/dist/mybodyshield/pages/recovery/RecoveryPage.js +206 -200
- package/dist/mybodyshield/pages/recovery/RecoveryPage.js.map +1 -1
- package/dist/mybodyshield/pages/train/SessionDetailPage.d.ts.map +1 -1
- package/dist/mybodyshield/pages/train/SessionDetailPage.js +327 -294
- package/dist/mybodyshield/pages/train/SessionDetailPage.js.map +1 -1
- package/dist/mybodyshield/pages/train/SessionsPage.d.ts.map +1 -1
- package/dist/mybodyshield/pages/train/SessionsPage.js +180 -163
- package/dist/mybodyshield/pages/train/SessionsPage.js.map +1 -1
- package/dist/mybodyshield/utils/i18n.d.ts +1 -2
- package/dist/mybodyshield/utils/i18n.d.ts.map +1 -1
- package/dist/mybodyshield/utils/i18n.js +15 -0
- package/dist/mybodyshield/utils/i18n.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MyBodyShieldRoot.d.ts","sourceRoot":"","sources":["../../src/mybodyshield/MyBodyShieldRoot.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAqBhC,OAAO,KAAK,EAAE,qBAAqB,EAAW,MAAM,SAAS,CAAC;AAY9D,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,
|
|
1
|
+
{"version":3,"file":"MyBodyShieldRoot.d.ts","sourceRoot":"","sources":["../../src/mybodyshield/MyBodyShieldRoot.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAqBhC,OAAO,KAAK,EAAE,qBAAqB,EAAW,MAAM,SAAS,CAAC;AAY9D,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CA8HtD,CAAC"}
|
|
@@ -1,139 +1,137 @@
|
|
|
1
1
|
import { joinPath as e } from "./utils/navigation.js";
|
|
2
2
|
import { MyBodyShieldProvider as t } from "./context/MyBodyShieldContext.js";
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
3
|
+
import { useTr as n } from "./hooks/useTr.js";
|
|
4
|
+
import "./hooks/index.js";
|
|
5
|
+
import { MyBodyShieldRoutes as r } from "./MyBodyShieldRoutes.js";
|
|
6
|
+
import { useEffect as i } from "react";
|
|
5
7
|
import { QueryClient as a, QueryClientProvider as o } from "@tanstack/react-query";
|
|
6
8
|
import { FeatureFlagProvider as s } from "@burdenoff/fe-libs/shared/feature-flags";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { jsx as b } from "react/jsx-runtime";
|
|
9
|
+
import { BarChart3 as c, Dumbbell as l, Flame as u, LayoutDashboard as d, Moon as f, Salad as p, Settings as m, Sparkles as h, Target as g, TrendingUp as _, Users as v } from "lucide-react";
|
|
10
|
+
import { jsx as y } from "react/jsx-runtime";
|
|
10
11
|
//#region src/mybodyshield/MyBodyShieldRoot.tsx
|
|
11
|
-
var
|
|
12
|
+
var b = new a({ defaultOptions: { queries: {
|
|
12
13
|
staleTime: 300 * 1e3,
|
|
13
14
|
retry: 1,
|
|
14
15
|
refetchOnWindowFocus: !1
|
|
15
|
-
} } }),
|
|
16
|
-
let { registerNavItems:
|
|
17
|
-
let n = T(e);
|
|
18
|
-
return n === e ? t : n;
|
|
19
|
-
}, [T]);
|
|
16
|
+
} } }), x = (a) => {
|
|
17
|
+
let { registerNavItems: x, registerFooterItems: S, basePath: C = "/" } = a, w = n();
|
|
20
18
|
return i(() => {
|
|
21
|
-
if (
|
|
19
|
+
if (x) return x([
|
|
22
20
|
{
|
|
23
21
|
id: "mybodyshield-dashboard",
|
|
24
|
-
label:
|
|
25
|
-
path: e(
|
|
26
|
-
icon: /* @__PURE__ */
|
|
22
|
+
label: w("mybodyshield.nav.dashboard", "Dashboard"),
|
|
23
|
+
path: e(C, ""),
|
|
24
|
+
icon: /* @__PURE__ */ y(d, { size: 20 }),
|
|
27
25
|
order: 0,
|
|
28
26
|
group: "products"
|
|
29
27
|
},
|
|
30
28
|
{
|
|
31
29
|
id: "mybodyshield-programs",
|
|
32
|
-
label:
|
|
33
|
-
path: e(
|
|
34
|
-
icon: /* @__PURE__ */
|
|
30
|
+
label: w("mybodyshield.nav.programs", "Programs"),
|
|
31
|
+
path: e(C, "programs"),
|
|
32
|
+
icon: /* @__PURE__ */ y(l, { size: 20 }),
|
|
35
33
|
order: 1,
|
|
36
34
|
group: "products"
|
|
37
35
|
},
|
|
38
36
|
{
|
|
39
37
|
id: "mybodyshield-train",
|
|
40
|
-
label:
|
|
41
|
-
path: e(
|
|
42
|
-
icon: /* @__PURE__ */
|
|
38
|
+
label: w("mybodyshield.nav.train", "Train"),
|
|
39
|
+
path: e(C, "train"),
|
|
40
|
+
icon: /* @__PURE__ */ y(u, { size: 20 }),
|
|
43
41
|
order: 2,
|
|
44
42
|
group: "products"
|
|
45
43
|
},
|
|
46
44
|
{
|
|
47
45
|
id: "mybodyshield-nutrition",
|
|
48
|
-
label:
|
|
49
|
-
path: e(
|
|
50
|
-
icon: /* @__PURE__ */
|
|
46
|
+
label: w("mybodyshield.nav.nutrition", "Nutrition"),
|
|
47
|
+
path: e(C, "nutrition"),
|
|
48
|
+
icon: /* @__PURE__ */ y(p, { size: 20 }),
|
|
51
49
|
order: 3,
|
|
52
50
|
group: "products"
|
|
53
51
|
},
|
|
54
52
|
{
|
|
55
53
|
id: "mybodyshield-goals",
|
|
56
|
-
label:
|
|
57
|
-
path: e(
|
|
58
|
-
icon: /* @__PURE__ */
|
|
54
|
+
label: w("mybodyshield.nav.goals", "Goals"),
|
|
55
|
+
path: e(C, "goals"),
|
|
56
|
+
icon: /* @__PURE__ */ y(g, { size: 20 }),
|
|
59
57
|
order: 4,
|
|
60
58
|
group: "products"
|
|
61
59
|
},
|
|
62
60
|
{
|
|
63
61
|
id: "mybodyshield-progress",
|
|
64
|
-
label:
|
|
65
|
-
path: e(
|
|
66
|
-
icon: /* @__PURE__ */
|
|
62
|
+
label: w("mybodyshield.nav.progress", "Progress"),
|
|
63
|
+
path: e(C, "progress"),
|
|
64
|
+
icon: /* @__PURE__ */ y(_, { size: 20 }),
|
|
67
65
|
order: 5,
|
|
68
66
|
group: "products"
|
|
69
67
|
},
|
|
70
68
|
{
|
|
71
69
|
id: "mybodyshield-recovery",
|
|
72
|
-
label:
|
|
73
|
-
path: e(
|
|
74
|
-
icon: /* @__PURE__ */
|
|
70
|
+
label: w("mybodyshield.nav.recovery", "Recovery"),
|
|
71
|
+
path: e(C, "recovery"),
|
|
72
|
+
icon: /* @__PURE__ */ y(f, { size: 20 }),
|
|
75
73
|
order: 6,
|
|
76
74
|
group: "products"
|
|
77
75
|
},
|
|
78
76
|
{
|
|
79
77
|
id: "mybodyshield-insights",
|
|
80
|
-
label:
|
|
81
|
-
path: e(
|
|
82
|
-
icon: /* @__PURE__ */
|
|
78
|
+
label: w("mybodyshield.nav.insights", "Insights"),
|
|
79
|
+
path: e(C, "insights"),
|
|
80
|
+
icon: /* @__PURE__ */ y(c, { size: 20 }),
|
|
83
81
|
order: 7,
|
|
84
82
|
group: "products"
|
|
85
83
|
},
|
|
86
84
|
{
|
|
87
85
|
id: "mybodyshield-ai",
|
|
88
|
-
label:
|
|
89
|
-
path: e(
|
|
90
|
-
icon: /* @__PURE__ */
|
|
86
|
+
label: w("mybodyshield.nav.ai", "AI"),
|
|
87
|
+
path: e(C, "ai"),
|
|
88
|
+
icon: /* @__PURE__ */ y(h, { size: 20 }),
|
|
91
89
|
order: 8,
|
|
92
90
|
group: "products"
|
|
93
91
|
},
|
|
94
92
|
{
|
|
95
93
|
id: "mybodyshield-coaching",
|
|
96
|
-
label:
|
|
97
|
-
path: e(
|
|
98
|
-
icon: /* @__PURE__ */
|
|
94
|
+
label: w("mybodyshield.nav.coaching", "Coaching"),
|
|
95
|
+
path: e(C, "coaching"),
|
|
96
|
+
icon: /* @__PURE__ */ y(v, { size: 20 }),
|
|
99
97
|
order: 9,
|
|
100
98
|
group: "products"
|
|
101
99
|
},
|
|
102
100
|
{
|
|
103
101
|
id: "mybodyshield-settings",
|
|
104
|
-
label:
|
|
105
|
-
path: e(
|
|
106
|
-
icon: /* @__PURE__ */
|
|
102
|
+
label: w("mybodyshield.nav.settings", "Settings"),
|
|
103
|
+
path: e(C, "settings"),
|
|
104
|
+
icon: /* @__PURE__ */ y(m, { size: 20 }),
|
|
107
105
|
order: 10,
|
|
108
106
|
group: "products"
|
|
109
107
|
}
|
|
110
108
|
]);
|
|
111
109
|
}, [
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
110
|
+
x,
|
|
111
|
+
C,
|
|
112
|
+
w
|
|
115
113
|
]), i(() => {
|
|
116
|
-
if (
|
|
114
|
+
if (S) return S([{
|
|
117
115
|
id: "mybodyshield-status",
|
|
118
|
-
label:
|
|
116
|
+
label: w("mybodyshield.footer.ready", "MyBodyShield Ready"),
|
|
119
117
|
type: "status",
|
|
120
118
|
section: "left",
|
|
121
119
|
order: 10
|
|
122
120
|
}]);
|
|
123
|
-
}, [
|
|
124
|
-
client:
|
|
125
|
-
children: /* @__PURE__ */
|
|
121
|
+
}, [S, w]), /* @__PURE__ */ y(o, {
|
|
122
|
+
client: b,
|
|
123
|
+
children: /* @__PURE__ */ y(s, {
|
|
126
124
|
workspaceId: null,
|
|
127
125
|
gateway: "global",
|
|
128
126
|
defaultEnabled: !0,
|
|
129
|
-
children: /* @__PURE__ */
|
|
127
|
+
children: /* @__PURE__ */ y(t, {
|
|
130
128
|
...a,
|
|
131
|
-
children: /* @__PURE__ */
|
|
129
|
+
children: /* @__PURE__ */ y(r, {})
|
|
132
130
|
})
|
|
133
131
|
})
|
|
134
132
|
});
|
|
135
133
|
};
|
|
136
134
|
//#endregion
|
|
137
|
-
export {
|
|
135
|
+
export { x as MyBodyShieldRoot };
|
|
138
136
|
|
|
139
137
|
//# sourceMappingURL=MyBodyShieldRoot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MyBodyShieldRoot.js","names":[],"sources":["../../src/mybodyshield/MyBodyShieldRoot.tsx"],"sourcesContent":["/**\n * MyBodyShield Root Component\n * @module mybodyshield\n *\n * Host-contract entry point. Registers the product's sidebar nav (eight sections\n * that map 1:1 to the wspace-mybodyshield-svc `myb*` backend) and mounts the\n * routed pages inside the shared QueryClient + FeatureFlag providers.\n */\n\nimport type { FC } from 'react';\nimport {
|
|
1
|
+
{"version":3,"file":"MyBodyShieldRoot.js","names":[],"sources":["../../src/mybodyshield/MyBodyShieldRoot.tsx"],"sourcesContent":["/**\n * MyBodyShield Root Component\n * @module mybodyshield\n *\n * Host-contract entry point. Registers the product's sidebar nav (eight sections\n * that map 1:1 to the wspace-mybodyshield-svc `myb*` backend) and mounts the\n * routed pages inside the shared QueryClient + FeatureFlag providers.\n */\n\nimport type { FC } from 'react';\nimport { useEffect } from 'react';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { FeatureFlagProvider } from '@burdenoff/fe-libs/shared/feature-flags';\nimport {\n LayoutDashboard,\n Dumbbell,\n Flame,\n Salad,\n Target,\n TrendingUp,\n Moon,\n Users,\n BarChart3,\n Sparkles,\n Settings,\n} from 'lucide-react';\nimport { MyBodyShieldProvider } from './context/MyBodyShieldContext';\nimport { MyBodyShieldRoutes } from './MyBodyShieldRoutes';\nimport { joinPath } from './utils/navigation';\nimport { useTr } from './hooks';\nimport type { MyBodyShieldRootProps, NavItem } from './types';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 5 * 60 * 1000,\n retry: 1,\n refetchOnWindowFocus: false,\n },\n },\n});\n\nexport const MyBodyShieldRoot: FC<MyBodyShieldRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = '/' } = props;\n const t = useTr();\n\n // Register navigation items with the shell on mount. Ids/paths/orders match\n // the app-shell static NavRegistration block so the two are a single,\n // consistent source of truth.\n useEffect(() => {\n if (!registerNavItems) return;\n\n const navItems: NavItem[] = [\n {\n id: 'mybodyshield-dashboard',\n label: t('mybodyshield.nav.dashboard', 'Dashboard'),\n path: joinPath(basePath, ''),\n icon: <LayoutDashboard size={20} />,\n order: 0,\n group: 'products',\n },\n {\n id: 'mybodyshield-programs',\n label: t('mybodyshield.nav.programs', 'Programs'),\n path: joinPath(basePath, 'programs'),\n icon: <Dumbbell size={20} />,\n order: 1,\n group: 'products',\n },\n {\n id: 'mybodyshield-train',\n label: t('mybodyshield.nav.train', 'Train'),\n path: joinPath(basePath, 'train'),\n icon: <Flame size={20} />,\n order: 2,\n group: 'products',\n },\n {\n id: 'mybodyshield-nutrition',\n label: t('mybodyshield.nav.nutrition', 'Nutrition'),\n path: joinPath(basePath, 'nutrition'),\n icon: <Salad size={20} />,\n order: 3,\n group: 'products',\n },\n {\n id: 'mybodyshield-goals',\n label: t('mybodyshield.nav.goals', 'Goals'),\n path: joinPath(basePath, 'goals'),\n icon: <Target size={20} />,\n order: 4,\n group: 'products',\n },\n {\n id: 'mybodyshield-progress',\n label: t('mybodyshield.nav.progress', 'Progress'),\n path: joinPath(basePath, 'progress'),\n icon: <TrendingUp size={20} />,\n order: 5,\n group: 'products',\n },\n {\n id: 'mybodyshield-recovery',\n label: t('mybodyshield.nav.recovery', 'Recovery'),\n path: joinPath(basePath, 'recovery'),\n icon: <Moon size={20} />,\n order: 6,\n group: 'products',\n },\n {\n id: 'mybodyshield-insights',\n label: t('mybodyshield.nav.insights', 'Insights'),\n path: joinPath(basePath, 'insights'),\n icon: <BarChart3 size={20} />,\n order: 7,\n group: 'products',\n },\n {\n id: 'mybodyshield-ai',\n label: t('mybodyshield.nav.ai', 'AI'),\n path: joinPath(basePath, 'ai'),\n icon: <Sparkles size={20} />,\n order: 8,\n group: 'products',\n },\n {\n id: 'mybodyshield-coaching',\n label: t('mybodyshield.nav.coaching', 'Coaching'),\n path: joinPath(basePath, 'coaching'),\n icon: <Users size={20} />,\n order: 9,\n group: 'products',\n },\n {\n id: 'mybodyshield-settings',\n label: t('mybodyshield.nav.settings', 'Settings'),\n path: joinPath(basePath, 'settings'),\n icon: <Settings size={20} />,\n order: 10,\n group: 'products',\n },\n ];\n\n return registerNavItems(navItems);\n }, [registerNavItems, basePath, t]);\n\n useEffect(() => {\n if (!registerFooterItems) return;\n return registerFooterItems([\n {\n id: 'mybodyshield-status',\n label: t('mybodyshield.footer.ready', 'MyBodyShield Ready'),\n type: 'status',\n section: 'left',\n order: 10,\n },\n ]);\n }, [registerFooterItems, t]);\n\n return (\n <QueryClientProvider client={queryClient}>\n <FeatureFlagProvider workspaceId={null} gateway=\"global\" defaultEnabled={true}>\n <MyBodyShieldProvider {...props}>\n <MyBodyShieldRoutes />\n </MyBodyShieldProvider>\n </FeatureFlagProvider>\n </QueryClientProvider>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MyBodyShieldRoutes.d.ts","sourceRoot":"","sources":["../../src/mybodyshield/MyBodyShieldRoutes.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAkC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MyBodyShieldRoutes.d.ts","sourceRoot":"","sources":["../../src/mybodyshield/MyBodyShieldRoutes.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAkC,MAAM,OAAO,CAAC;AAuGhE,eAAO,MAAM,kBAAkB,EAAE,EA4IhC,CAAC"}
|
|
@@ -1,125 +1,184 @@
|
|
|
1
1
|
import { useMyBodyShield as e } from "./context/MyBodyShieldContext.js";
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
2
|
+
import { useTr as t } from "./hooks/useTr.js";
|
|
3
|
+
import "./hooks/index.js";
|
|
4
|
+
import { FeatureFlagGuard as n } from "./components/FeatureFlagGuard.js";
|
|
5
|
+
import { PageDisabled as r } from "./components/PageDisabled.js";
|
|
4
6
|
import "./components/index.js";
|
|
5
|
-
import { DashboardPage as
|
|
6
|
-
import { Suspense as
|
|
7
|
-
import { Navigate as
|
|
8
|
-
import { jsx as
|
|
9
|
-
import { Spinner as
|
|
7
|
+
import { DashboardPage as i } from "./pages/DashboardPage.js";
|
|
8
|
+
import { Suspense as a, lazy as o } from "react";
|
|
9
|
+
import { Navigate as s, Route as c, Routes as l, useLocation as u } from "react-router";
|
|
10
|
+
import { jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
11
|
+
import { Spinner as p } from "@burdenoff/fe-libs/ui";
|
|
10
12
|
//#region src/mybodyshield/MyBodyShieldRoutes.tsx
|
|
11
|
-
var
|
|
13
|
+
var m = o(() => import("./pages/programs/ProgramsPage.js").then((e) => ({ default: e.ProgramsPage }))), h = o(() => import("./pages/programs/ProgramDetailPage.js").then((e) => ({ default: e.ProgramDetailPage }))), g = o(() => import("./pages/train/SessionsPage.js").then((e) => ({ default: e.SessionsPage }))), _ = o(() => import("./pages/train/SessionDetailPage.js").then((e) => ({ default: e.SessionDetailPage }))), v = o(() => import("./pages/nutrition/NutritionPage.js").then((e) => ({ default: e.NutritionPage }))), y = o(() => import("./pages/goals/GoalsPage.js").then((e) => ({ default: e.GoalsPage }))), b = o(() => import("./pages/progress/ProgressPage.js").then((e) => ({ default: e.ProgressPage }))), x = o(() => import("./pages/recovery/RecoveryPage.js").then((e) => ({ default: e.RecoveryPage }))), S = o(() => import("./pages/insights/InsightsPage.js").then((e) => ({ default: e.InsightsPage }))), C = o(() => import("./pages/coaching/CoachingPage.js").then((e) => ({ default: e.CoachingPage }))), w = o(() => import("./pages/ai/AiControlsPage.js").then((e) => ({ default: e.AiControlsPage }))), T = o(() => import("./pages/SettingsPage.js").then((e) => ({ default: e.SettingsPage }))), E = () => /* @__PURE__ */ d("div", {
|
|
12
14
|
className: "flex min-h-[400px] items-center justify-center",
|
|
13
|
-
children: /* @__PURE__ */
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
children: /* @__PURE__ */ d(p, { size: "lg" })
|
|
16
|
+
}), D = {
|
|
17
|
+
dashboard: {
|
|
18
|
+
key: "mybodyshield.pages.dashboard.title",
|
|
19
|
+
fallback: "Dashboard"
|
|
20
|
+
},
|
|
21
|
+
programs: {
|
|
22
|
+
key: "mybodyshield.pages.programs.title",
|
|
23
|
+
fallback: "Programs"
|
|
24
|
+
},
|
|
25
|
+
program_detail: {
|
|
26
|
+
key: "mybodyshield.pages.programDetail.title",
|
|
27
|
+
fallback: "Program Detail"
|
|
28
|
+
},
|
|
29
|
+
train: {
|
|
30
|
+
key: "mybodyshield.pages.train.title",
|
|
31
|
+
fallback: "Train"
|
|
32
|
+
},
|
|
33
|
+
session_detail: {
|
|
34
|
+
key: "mybodyshield.pages.sessionDetail.title",
|
|
35
|
+
fallback: "Session Detail"
|
|
36
|
+
},
|
|
37
|
+
nutrition: {
|
|
38
|
+
key: "mybodyshield.pages.nutrition.title",
|
|
39
|
+
fallback: "Nutrition"
|
|
40
|
+
},
|
|
41
|
+
goals: {
|
|
42
|
+
key: "mybodyshield.pages.goals.title",
|
|
43
|
+
fallback: "Goals"
|
|
44
|
+
},
|
|
45
|
+
progress: {
|
|
46
|
+
key: "mybodyshield.pages.progress.title",
|
|
47
|
+
fallback: "Progress"
|
|
48
|
+
},
|
|
49
|
+
recovery: {
|
|
50
|
+
key: "mybodyshield.pages.recovery.title",
|
|
51
|
+
fallback: "Recovery"
|
|
52
|
+
},
|
|
53
|
+
insights: {
|
|
54
|
+
key: "mybodyshield.pages.insights.title",
|
|
55
|
+
fallback: "Insights"
|
|
56
|
+
},
|
|
57
|
+
coaching: {
|
|
58
|
+
key: "mybodyshield.pages.coaching.title",
|
|
59
|
+
fallback: "Coaching"
|
|
60
|
+
},
|
|
61
|
+
ai_controls: {
|
|
62
|
+
key: "mybodyshield.pages.aiControls.title",
|
|
63
|
+
fallback: "AI Controls"
|
|
64
|
+
},
|
|
65
|
+
settings: {
|
|
66
|
+
key: "mybodyshield.pages.settings.title",
|
|
67
|
+
fallback: "Settings"
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
function O({ page: e, children: i }) {
|
|
71
|
+
let a = t(), { key: o, fallback: s } = D[e] ?? {
|
|
72
|
+
key: `mybodyshield.pages.${e}.title`,
|
|
73
|
+
fallback: e
|
|
74
|
+
};
|
|
75
|
+
return /* @__PURE__ */ d(n, {
|
|
17
76
|
page: e,
|
|
18
|
-
fallback: /* @__PURE__ */
|
|
19
|
-
children:
|
|
77
|
+
fallback: /* @__PURE__ */ d(r, { title: a(o, s) }),
|
|
78
|
+
children: i
|
|
20
79
|
});
|
|
21
80
|
}
|
|
22
|
-
var
|
|
23
|
-
let { basePath: t, isStandalone: n } = e(),
|
|
24
|
-
return
|
|
81
|
+
var k = () => {
|
|
82
|
+
let { basePath: t, isStandalone: n } = e(), r = u(), o = t === "/" ? "" : (t ?? "").replace(/\/$/, "");
|
|
83
|
+
return o && !n && !(r.pathname === o || r.pathname.startsWith(o + "/")) ? null : /* @__PURE__ */ d("div", {
|
|
25
84
|
className: "flex min-h-full flex-col",
|
|
26
|
-
children: /* @__PURE__ */
|
|
27
|
-
fallback: /* @__PURE__ */
|
|
28
|
-
children: /* @__PURE__ */
|
|
29
|
-
/* @__PURE__ */
|
|
85
|
+
children: /* @__PURE__ */ d(a, {
|
|
86
|
+
fallback: /* @__PURE__ */ d(E, {}),
|
|
87
|
+
children: /* @__PURE__ */ f(l, { children: [
|
|
88
|
+
/* @__PURE__ */ d(c, {
|
|
30
89
|
index: !0,
|
|
31
|
-
element: /* @__PURE__ */
|
|
90
|
+
element: /* @__PURE__ */ d(O, {
|
|
32
91
|
page: "dashboard",
|
|
33
|
-
children: /* @__PURE__ */
|
|
92
|
+
children: /* @__PURE__ */ d(i, {})
|
|
34
93
|
})
|
|
35
94
|
}),
|
|
36
|
-
/* @__PURE__ */
|
|
95
|
+
/* @__PURE__ */ d(c, {
|
|
37
96
|
path: "programs",
|
|
38
|
-
element: /* @__PURE__ */
|
|
97
|
+
element: /* @__PURE__ */ d(O, {
|
|
39
98
|
page: "programs",
|
|
40
|
-
children: /* @__PURE__ */
|
|
99
|
+
children: /* @__PURE__ */ d(m, {})
|
|
41
100
|
})
|
|
42
101
|
}),
|
|
43
|
-
/* @__PURE__ */
|
|
102
|
+
/* @__PURE__ */ d(c, {
|
|
44
103
|
path: "programs/:id",
|
|
45
|
-
element: /* @__PURE__ */
|
|
104
|
+
element: /* @__PURE__ */ d(O, {
|
|
46
105
|
page: "program_detail",
|
|
47
|
-
children: /* @__PURE__ */
|
|
106
|
+
children: /* @__PURE__ */ d(h, {})
|
|
48
107
|
})
|
|
49
108
|
}),
|
|
50
|
-
/* @__PURE__ */
|
|
109
|
+
/* @__PURE__ */ d(c, {
|
|
51
110
|
path: "train",
|
|
52
|
-
element: /* @__PURE__ */
|
|
111
|
+
element: /* @__PURE__ */ d(O, {
|
|
53
112
|
page: "train",
|
|
54
|
-
children: /* @__PURE__ */
|
|
113
|
+
children: /* @__PURE__ */ d(g, {})
|
|
55
114
|
})
|
|
56
115
|
}),
|
|
57
|
-
/* @__PURE__ */
|
|
116
|
+
/* @__PURE__ */ d(c, {
|
|
58
117
|
path: "train/:id",
|
|
59
|
-
element: /* @__PURE__ */
|
|
118
|
+
element: /* @__PURE__ */ d(O, {
|
|
60
119
|
page: "session_detail",
|
|
61
|
-
children: /* @__PURE__ */
|
|
120
|
+
children: /* @__PURE__ */ d(_, {})
|
|
62
121
|
})
|
|
63
122
|
}),
|
|
64
|
-
/* @__PURE__ */
|
|
123
|
+
/* @__PURE__ */ d(c, {
|
|
65
124
|
path: "nutrition",
|
|
66
|
-
element: /* @__PURE__ */
|
|
125
|
+
element: /* @__PURE__ */ d(O, {
|
|
67
126
|
page: "nutrition",
|
|
68
|
-
children: /* @__PURE__ */
|
|
127
|
+
children: /* @__PURE__ */ d(v, {})
|
|
69
128
|
})
|
|
70
129
|
}),
|
|
71
|
-
/* @__PURE__ */
|
|
130
|
+
/* @__PURE__ */ d(c, {
|
|
72
131
|
path: "goals",
|
|
73
|
-
element: /* @__PURE__ */
|
|
132
|
+
element: /* @__PURE__ */ d(O, {
|
|
74
133
|
page: "goals",
|
|
75
|
-
children: /* @__PURE__ */
|
|
134
|
+
children: /* @__PURE__ */ d(y, {})
|
|
76
135
|
})
|
|
77
136
|
}),
|
|
78
|
-
/* @__PURE__ */
|
|
137
|
+
/* @__PURE__ */ d(c, {
|
|
79
138
|
path: "progress",
|
|
80
|
-
element: /* @__PURE__ */
|
|
139
|
+
element: /* @__PURE__ */ d(O, {
|
|
81
140
|
page: "progress",
|
|
82
|
-
children: /* @__PURE__ */
|
|
141
|
+
children: /* @__PURE__ */ d(b, {})
|
|
83
142
|
})
|
|
84
143
|
}),
|
|
85
|
-
/* @__PURE__ */
|
|
144
|
+
/* @__PURE__ */ d(c, {
|
|
86
145
|
path: "recovery",
|
|
87
|
-
element: /* @__PURE__ */
|
|
146
|
+
element: /* @__PURE__ */ d(O, {
|
|
88
147
|
page: "recovery",
|
|
89
|
-
children: /* @__PURE__ */
|
|
148
|
+
children: /* @__PURE__ */ d(x, {})
|
|
90
149
|
})
|
|
91
150
|
}),
|
|
92
|
-
/* @__PURE__ */
|
|
151
|
+
/* @__PURE__ */ d(c, {
|
|
93
152
|
path: "insights",
|
|
94
|
-
element: /* @__PURE__ */
|
|
153
|
+
element: /* @__PURE__ */ d(O, {
|
|
95
154
|
page: "insights",
|
|
96
|
-
children: /* @__PURE__ */
|
|
155
|
+
children: /* @__PURE__ */ d(S, {})
|
|
97
156
|
})
|
|
98
157
|
}),
|
|
99
|
-
/* @__PURE__ */
|
|
158
|
+
/* @__PURE__ */ d(c, {
|
|
100
159
|
path: "coaching",
|
|
101
|
-
element: /* @__PURE__ */
|
|
160
|
+
element: /* @__PURE__ */ d(O, {
|
|
102
161
|
page: "coaching",
|
|
103
|
-
children: /* @__PURE__ */
|
|
162
|
+
children: /* @__PURE__ */ d(C, {})
|
|
104
163
|
})
|
|
105
164
|
}),
|
|
106
|
-
/* @__PURE__ */
|
|
165
|
+
/* @__PURE__ */ d(c, {
|
|
107
166
|
path: "ai",
|
|
108
|
-
element: /* @__PURE__ */
|
|
167
|
+
element: /* @__PURE__ */ d(O, {
|
|
109
168
|
page: "ai_controls",
|
|
110
|
-
children: /* @__PURE__ */
|
|
169
|
+
children: /* @__PURE__ */ d(w, {})
|
|
111
170
|
})
|
|
112
171
|
}),
|
|
113
|
-
/* @__PURE__ */
|
|
172
|
+
/* @__PURE__ */ d(c, {
|
|
114
173
|
path: "settings",
|
|
115
|
-
element: /* @__PURE__ */
|
|
174
|
+
element: /* @__PURE__ */ d(O, {
|
|
116
175
|
page: "settings",
|
|
117
|
-
children: /* @__PURE__ */
|
|
176
|
+
children: /* @__PURE__ */ d(T, {})
|
|
118
177
|
})
|
|
119
178
|
}),
|
|
120
|
-
/* @__PURE__ */
|
|
179
|
+
/* @__PURE__ */ d(c, {
|
|
121
180
|
path: "*",
|
|
122
|
-
element: /* @__PURE__ */
|
|
181
|
+
element: /* @__PURE__ */ d(s, {
|
|
123
182
|
to: "",
|
|
124
183
|
replace: !0
|
|
125
184
|
})
|
|
@@ -129,6 +188,6 @@ var D = () => {
|
|
|
129
188
|
});
|
|
130
189
|
};
|
|
131
190
|
//#endregion
|
|
132
|
-
export {
|
|
191
|
+
export { k as MyBodyShieldRoutes };
|
|
133
192
|
|
|
134
193
|
//# sourceMappingURL=MyBodyShieldRoutes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MyBodyShieldRoutes.js","names":[],"sources":["../../src/mybodyshield/MyBodyShieldRoutes.tsx"],"sourcesContent":["/**\n * MyBodyShield Routes\n * @module mybodyshield\n *\n * Domain routes. The dashboard is eager-loaded (primary landing); all other\n * pages are lazy-loaded. Every route maps to a real `myb*` backend capability.\n */\n\nimport { type FC, lazy, Suspense, type ReactNode } from 'react';\nimport { Routes, Route, Navigate, useLocation } from 'react-router';\nimport { Spinner } from '@burdenoff/fe-libs/ui';\nimport { useMyBodyShield } from './context/MyBodyShieldContext';\nimport { FeatureFlagGuard, PageDisabled } from './components';\n\n// Eager — primary landing\nimport { DashboardPage } from './pages/DashboardPage';\n\n// Programs (Training)\nconst ProgramsPage = lazy(() =>\n import('./pages/programs/ProgramsPage').then((m) => ({ default: m.ProgramsPage }))\n);\nconst ProgramDetailPage = lazy(() =>\n import('./pages/programs/ProgramDetailPage').then((m) => ({ default: m.ProgramDetailPage }))\n);\n\n// Train (live workout sessions & sets)\nconst SessionsPage = lazy(() =>\n import('./pages/train/SessionsPage').then((m) => ({ default: m.SessionsPage }))\n);\nconst SessionDetailPage = lazy(() =>\n import('./pages/train/SessionDetailPage').then((m) => ({ default: m.SessionDetailPage }))\n);\n\n// Nutrition (plans, meals, macros)\nconst NutritionPage = lazy(() =>\n import('./pages/nutrition/NutritionPage').then((m) => ({ default: m.NutritionPage }))\n);\n\n// Goals (Progress)\nconst GoalsPage = lazy(() =>\n import('./pages/goals/GoalsPage').then((m) => ({ default: m.GoalsPage }))\n);\n\n// Progress (body metrics)\nconst ProgressPage = lazy(() =>\n import('./pages/progress/ProgressPage').then((m) => ({ default: m.ProgressPage }))\n);\n\n// Recovery (Wellbeing)\nconst RecoveryPage = lazy(() =>\n import('./pages/recovery/RecoveryPage').then((m) => ({ default: m.RecoveryPage }))\n);\n\n// Insights (unified analytics)\nconst InsightsPage = lazy(() =>\n import('./pages/insights/InsightsPage').then((m) => ({ default: m.InsightsPage }))\n);\n\n// Coaching (Wellbeing)\nconst CoachingPage = lazy(() =>\n import('./pages/coaching/CoachingPage').then((m) => ({ default: m.CoachingPage }))\n);\n\n// AI controls (BOFF-5949)\nconst AiControlsPage = lazy(() =>\n import('./pages/ai/AiControlsPage').then((m) => ({ default: m.AiControlsPage }))\n);\n\n// Settings (AI consent and product preferences)\nconst SettingsPage = lazy(() =>\n import('./pages/SettingsPage').then((m) => ({ default: m.SettingsPage }))\n);\n\nconst PageLoader: FC = () => (\n <div className=\"flex min-h-[400px] items-center justify-center\">\n <Spinner size=\"lg\" />\n </div>\n);\n\n/** Wrap a page element with its feature-flag gate + analytics page-view. */\nfunction PageGate({ page, children }: { page: string; children: ReactNode }): React.ReactElement {\n const title = page\n .split('_')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n return (\n <FeatureFlagGuard page={page} fallback={<PageDisabled title={title} />}>\n {children}\n </FeatureFlagGuard>\n );\n}\n\nexport const MyBodyShieldRoutes: FC = () => {\n const { basePath, isStandalone } = useMyBodyShield();\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\n index\n element={\n <PageGate page=\"dashboard\">\n <DashboardPage />\n </PageGate>\n }\n />\n\n <Route\n path=\"programs\"\n element={\n <PageGate page=\"programs\">\n <ProgramsPage />\n </PageGate>\n }\n />\n <Route\n path=\"programs/:id\"\n element={\n <PageGate page=\"program_detail\">\n <ProgramDetailPage />\n </PageGate>\n }\n />\n\n <Route\n path=\"train\"\n element={\n <PageGate page=\"train\">\n <SessionsPage />\n </PageGate>\n }\n />\n <Route\n path=\"train/:id\"\n element={\n <PageGate page=\"session_detail\">\n <SessionDetailPage />\n </PageGate>\n }\n />\n\n <Route\n path=\"nutrition\"\n element={\n <PageGate page=\"nutrition\">\n <NutritionPage />\n </PageGate>\n }\n />\n\n <Route\n path=\"goals\"\n element={\n <PageGate page=\"goals\">\n <GoalsPage />\n </PageGate>\n }\n />\n\n <Route\n path=\"progress\"\n element={\n <PageGate page=\"progress\">\n <ProgressPage />\n </PageGate>\n }\n />\n\n <Route\n path=\"recovery\"\n element={\n <PageGate page=\"recovery\">\n <RecoveryPage />\n </PageGate>\n }\n />\n\n <Route\n path=\"insights\"\n element={\n <PageGate page=\"insights\">\n <InsightsPage />\n </PageGate>\n }\n />\n\n <Route\n path=\"coaching\"\n element={\n <PageGate page=\"coaching\">\n <CoachingPage />\n </PageGate>\n }\n />\n\n <Route\n path=\"ai\"\n element={\n <PageGate page=\"ai_controls\">\n <AiControlsPage />\n </PageGate>\n }\n />\n\n <Route\n path=\"settings\"\n element={\n <PageGate page=\"settings\">\n <SettingsPage />\n </PageGate>\n }\n />\n\n <Route path=\"*\" element={<Navigate to=\"\" replace />} />\n </Routes>\n </Suspense>\n </div>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MyBodyShieldRoutes.js","names":[],"sources":["../../src/mybodyshield/MyBodyShieldRoutes.tsx"],"sourcesContent":["/**\n * MyBodyShield Routes\n * @module mybodyshield\n *\n * Domain routes. The dashboard is eager-loaded (primary landing); all other\n * pages are lazy-loaded. Every route maps to a real `myb*` backend capability.\n */\n\nimport { type FC, lazy, Suspense, type ReactNode } from 'react';\nimport { Routes, Route, Navigate, useLocation } from 'react-router';\nimport { Spinner } from '@burdenoff/fe-libs/ui';\nimport { useMyBodyShield } from './context/MyBodyShieldContext';\nimport { FeatureFlagGuard, PageDisabled } from './components';\nimport { useTr } from './hooks';\n\n// Eager — primary landing\nimport { DashboardPage } from './pages/DashboardPage';\n\n// Programs (Training)\nconst ProgramsPage = lazy(() =>\n import('./pages/programs/ProgramsPage').then((m) => ({ default: m.ProgramsPage }))\n);\nconst ProgramDetailPage = lazy(() =>\n import('./pages/programs/ProgramDetailPage').then((m) => ({ default: m.ProgramDetailPage }))\n);\n\n// Train (live workout sessions & sets)\nconst SessionsPage = lazy(() =>\n import('./pages/train/SessionsPage').then((m) => ({ default: m.SessionsPage }))\n);\nconst SessionDetailPage = lazy(() =>\n import('./pages/train/SessionDetailPage').then((m) => ({ default: m.SessionDetailPage }))\n);\n\n// Nutrition (plans, meals, macros)\nconst NutritionPage = lazy(() =>\n import('./pages/nutrition/NutritionPage').then((m) => ({ default: m.NutritionPage }))\n);\n\n// Goals (Progress)\nconst GoalsPage = lazy(() =>\n import('./pages/goals/GoalsPage').then((m) => ({ default: m.GoalsPage }))\n);\n\n// Progress (body metrics)\nconst ProgressPage = lazy(() =>\n import('./pages/progress/ProgressPage').then((m) => ({ default: m.ProgressPage }))\n);\n\n// Recovery (Wellbeing)\nconst RecoveryPage = lazy(() =>\n import('./pages/recovery/RecoveryPage').then((m) => ({ default: m.RecoveryPage }))\n);\n\n// Insights (unified analytics)\nconst InsightsPage = lazy(() =>\n import('./pages/insights/InsightsPage').then((m) => ({ default: m.InsightsPage }))\n);\n\n// Coaching (Wellbeing)\nconst CoachingPage = lazy(() =>\n import('./pages/coaching/CoachingPage').then((m) => ({ default: m.CoachingPage }))\n);\n\n// AI controls (BOFF-5949)\nconst AiControlsPage = lazy(() =>\n import('./pages/ai/AiControlsPage').then((m) => ({ default: m.AiControlsPage }))\n);\n\n// Settings (AI consent and product preferences)\nconst SettingsPage = lazy(() =>\n import('./pages/SettingsPage').then((m) => ({ default: m.SettingsPage }))\n);\n\nconst PageLoader: FC = () => (\n <div className=\"flex min-h-[400px] items-center justify-center\">\n <Spinner size=\"lg\" />\n </div>\n);\n\nconst PAGE_TITLE_KEYS: Record<string, { key: string; fallback: string }> = {\n dashboard: { key: 'mybodyshield.pages.dashboard.title', fallback: 'Dashboard' },\n programs: { key: 'mybodyshield.pages.programs.title', fallback: 'Programs' },\n program_detail: { key: 'mybodyshield.pages.programDetail.title', fallback: 'Program Detail' },\n train: { key: 'mybodyshield.pages.train.title', fallback: 'Train' },\n session_detail: { key: 'mybodyshield.pages.sessionDetail.title', fallback: 'Session Detail' },\n nutrition: { key: 'mybodyshield.pages.nutrition.title', fallback: 'Nutrition' },\n goals: { key: 'mybodyshield.pages.goals.title', fallback: 'Goals' },\n progress: { key: 'mybodyshield.pages.progress.title', fallback: 'Progress' },\n recovery: { key: 'mybodyshield.pages.recovery.title', fallback: 'Recovery' },\n insights: { key: 'mybodyshield.pages.insights.title', fallback: 'Insights' },\n coaching: { key: 'mybodyshield.pages.coaching.title', fallback: 'Coaching' },\n ai_controls: { key: 'mybodyshield.pages.aiControls.title', fallback: 'AI Controls' },\n settings: { key: 'mybodyshield.pages.settings.title', fallback: 'Settings' },\n};\n\n/** Wrap a page element with its feature-flag gate + analytics page-view. */\nfunction PageGate({ page, children }: { page: string; children: ReactNode }): React.ReactElement {\n const t = useTr();\n const { key, fallback } = PAGE_TITLE_KEYS[page] ?? {\n key: `mybodyshield.pages.${page}.title`,\n fallback: page,\n };\n const title = t(key, fallback);\n return (\n <FeatureFlagGuard page={page} fallback={<PageDisabled title={title} />}>\n {children}\n </FeatureFlagGuard>\n );\n}\n\nexport const MyBodyShieldRoutes: FC = () => {\n const { basePath, isStandalone } = useMyBodyShield();\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\n index\n element={\n <PageGate page=\"dashboard\">\n <DashboardPage />\n </PageGate>\n }\n />\n\n <Route\n path=\"programs\"\n element={\n <PageGate page=\"programs\">\n <ProgramsPage />\n </PageGate>\n }\n />\n <Route\n path=\"programs/:id\"\n element={\n <PageGate page=\"program_detail\">\n <ProgramDetailPage />\n </PageGate>\n }\n />\n\n <Route\n path=\"train\"\n element={\n <PageGate page=\"train\">\n <SessionsPage />\n </PageGate>\n }\n />\n <Route\n path=\"train/:id\"\n element={\n <PageGate page=\"session_detail\">\n <SessionDetailPage />\n </PageGate>\n }\n />\n\n <Route\n path=\"nutrition\"\n element={\n <PageGate page=\"nutrition\">\n <NutritionPage />\n </PageGate>\n }\n />\n\n <Route\n path=\"goals\"\n element={\n <PageGate page=\"goals\">\n <GoalsPage />\n </PageGate>\n }\n />\n\n <Route\n path=\"progress\"\n element={\n <PageGate page=\"progress\">\n <ProgressPage />\n </PageGate>\n }\n />\n\n <Route\n path=\"recovery\"\n element={\n <PageGate page=\"recovery\">\n <RecoveryPage />\n </PageGate>\n }\n />\n\n <Route\n path=\"insights\"\n element={\n <PageGate page=\"insights\">\n <InsightsPage />\n </PageGate>\n }\n />\n\n <Route\n path=\"coaching\"\n element={\n <PageGate page=\"coaching\">\n <CoachingPage />\n </PageGate>\n }\n />\n\n <Route\n path=\"ai\"\n element={\n <PageGate page=\"ai_controls\">\n <AiControlsPage />\n </PageGate>\n }\n />\n\n <Route\n path=\"settings\"\n element={\n <PageGate page=\"settings\">\n <SettingsPage />\n </PageGate>\n }\n />\n\n <Route path=\"*\" element={<Navigate to=\"\" replace />} />\n </Routes>\n </Suspense>\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EvidenceUpload.d.ts","sourceRoot":"","sources":["../../../src/mybodyshield/components/EvidenceUpload.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,
|
|
1
|
+
{"version":3,"file":"EvidenceUpload.d.ts","sourceRoot":"","sources":["../../../src/mybodyshield/components/EvidenceUpload.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAA2B,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAEzE,UAAU,mBAAmB;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,cAAc,CAAC,EAC7B,EAAE,EACF,KAAK,EACL,KAAK,EACL,QAAQ,EACR,MAA0C,EAC1C,QAAgB,EAChB,IAAI,GACL,EAAE,mBAAmB,+BA2FrB"}
|