@burdenoff/microfe-mybodyshield 2026.706.2 → 2026.713.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/dev/main.d.ts +2 -0
- package/dist/dev/main.d.ts.map +1 -0
- package/dist/generated/global-operations.d.ts +2 -0
- package/dist/generated/global-operations.d.ts.map +1 -0
- package/dist/generated/global-types.d.ts +18199 -0
- package/dist/generated/global-types.d.ts.map +1 -0
- package/dist/generated/wspace-operations.d.ts +2 -0
- package/dist/generated/wspace-operations.d.ts.map +1 -0
- package/dist/generated/wspace-types.d.ts +43046 -0
- package/dist/generated/wspace-types.d.ts.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -1
- package/dist/mybodyshield/MyBodyShieldRoot.d.ts +5 -0
- package/dist/mybodyshield/MyBodyShieldRoot.d.ts.map +1 -0
- package/dist/mybodyshield/MyBodyShieldRoutes.d.ts +4 -0
- package/dist/mybodyshield/MyBodyShieldRoutes.d.ts.map +1 -0
- package/dist/mybodyshield/MyBodyShieldRoutes.js +77 -36
- package/dist/mybodyshield/MyBodyShieldRoutes.js.map +1 -1
- package/dist/mybodyshield/components/DataTable.d.ts +28 -0
- package/dist/mybodyshield/components/DataTable.d.ts.map +1 -0
- package/dist/mybodyshield/components/EmptyState.d.ts +18 -0
- package/dist/mybodyshield/components/EmptyState.d.ts.map +1 -0
- package/dist/mybodyshield/components/EvidenceUpload.d.ts +14 -0
- package/dist/mybodyshield/components/EvidenceUpload.d.ts.map +1 -0
- package/dist/mybodyshield/components/FeatureFlagGuard.d.ts +11 -0
- package/dist/mybodyshield/components/FeatureFlagGuard.d.ts.map +1 -0
- package/dist/mybodyshield/components/FeatureFlagGuard.js +27 -0
- package/dist/mybodyshield/components/FeatureFlagGuard.js.map +1 -0
- package/dist/mybodyshield/components/FileLink.d.ts +15 -0
- package/dist/mybodyshield/components/FileLink.d.ts.map +1 -0
- package/dist/mybodyshield/components/FilterTabs.d.ts +18 -0
- package/dist/mybodyshield/components/FilterTabs.d.ts.map +1 -0
- package/dist/mybodyshield/components/MetricsCard.d.ts +23 -0
- package/dist/mybodyshield/components/MetricsCard.d.ts.map +1 -0
- package/dist/mybodyshield/components/MiniBar.d.ts +16 -0
- package/dist/mybodyshield/components/MiniBar.d.ts.map +1 -0
- package/dist/mybodyshield/components/MybDiscussion.d.ts +18 -0
- package/dist/mybodyshield/components/MybDiscussion.d.ts.map +1 -0
- package/dist/mybodyshield/components/MybDiscussion.js +5 -5
- package/dist/mybodyshield/components/MybTags.d.ts +17 -0
- package/dist/mybodyshield/components/MybTags.d.ts.map +1 -0
- package/dist/mybodyshield/components/PageDisabled.d.ts +9 -0
- package/dist/mybodyshield/components/PageDisabled.d.ts.map +1 -0
- package/dist/mybodyshield/components/PageDisabled.js +17 -0
- package/dist/mybodyshield/components/PageDisabled.js.map +1 -0
- package/dist/mybodyshield/components/PageLayout.d.ts +16 -0
- package/dist/mybodyshield/components/PageLayout.d.ts.map +1 -0
- package/dist/mybodyshield/components/Pagination.d.ts +22 -0
- package/dist/mybodyshield/components/Pagination.d.ts.map +1 -0
- package/dist/mybodyshield/components/StateViews.d.ts +25 -0
- package/dist/mybodyshield/components/StateViews.d.ts.map +1 -0
- package/dist/mybodyshield/components/StateViews.js +2 -1
- package/dist/mybodyshield/components/StateViews.js.map +1 -1
- package/dist/mybodyshield/components/StatusBadge.d.ts +9 -0
- package/dist/mybodyshield/components/StatusBadge.d.ts.map +1 -0
- package/dist/mybodyshield/components/Tabs.d.ts +17 -0
- package/dist/mybodyshield/components/Tabs.d.ts.map +1 -0
- package/dist/mybodyshield/components/UserSearchSelect.d.ts +28 -0
- package/dist/mybodyshield/components/UserSearchSelect.d.ts.map +1 -0
- package/dist/mybodyshield/components/index.d.ts +22 -0
- package/dist/mybodyshield/components/index.d.ts.map +1 -0
- package/dist/mybodyshield/components/index.js +4 -2
- package/dist/mybodyshield/context/MyBodyShieldContext.d.ts +16 -0
- package/dist/mybodyshield/context/MyBodyShieldContext.d.ts.map +1 -0
- package/dist/mybodyshield/context/index.d.ts +6 -0
- package/dist/mybodyshield/context/index.d.ts.map +1 -0
- package/dist/mybodyshield/hooks/index.d.ts +12 -0
- package/dist/mybodyshield/hooks/index.d.ts.map +1 -0
- package/dist/mybodyshield/hooks/index.js +1 -0
- package/dist/mybodyshield/hooks/useMyBodyShieldAnalytics.d.ts +21 -0
- package/dist/mybodyshield/hooks/useMyBodyShieldAnalytics.d.ts.map +1 -0
- package/dist/mybodyshield/hooks/useMyBodyShieldAnalytics.js +35 -0
- package/dist/mybodyshield/hooks/useMyBodyShieldAnalytics.js.map +1 -0
- package/dist/mybodyshield/hooks/useMyBodyShieldApi.d.ts +83 -0
- package/dist/mybodyshield/hooks/useMyBodyShieldApi.d.ts.map +1 -0
- package/dist/mybodyshield/hooks/useMybComments.d.ts +36 -0
- package/dist/mybodyshield/hooks/useMybComments.d.ts.map +1 -0
- package/dist/mybodyshield/hooks/useMybFiles.d.ts +47 -0
- package/dist/mybodyshield/hooks/useMybFiles.d.ts.map +1 -0
- package/dist/mybodyshield/hooks/useMybTags.d.ts +44 -0
- package/dist/mybodyshield/hooks/useMybTags.d.ts.map +1 -0
- package/dist/mybodyshield/hooks/useMybUsers.d.ts +27 -0
- package/dist/mybodyshield/hooks/useMybUsers.d.ts.map +1 -0
- package/dist/mybodyshield/hooks/usePager.d.ts +29 -0
- package/dist/mybodyshield/hooks/usePager.d.ts.map +1 -0
- package/dist/mybodyshield/index.d.ts +9 -0
- package/dist/mybodyshield/index.d.ts.map +1 -0
- package/dist/mybodyshield/pages/DashboardPage.d.ts +10 -0
- package/dist/mybodyshield/pages/DashboardPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/DashboardPage.js +91 -86
- package/dist/mybodyshield/pages/DashboardPage.js.map +1 -1
- package/dist/mybodyshield/pages/_shared/visuals.d.ts +77 -0
- package/dist/mybodyshield/pages/_shared/visuals.d.ts.map +1 -0
- package/dist/mybodyshield/pages/coaching/CoachingPage.d.ts +11 -0
- package/dist/mybodyshield/pages/coaching/CoachingPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/coaching/CoachingPage.js +60 -60
- package/dist/mybodyshield/pages/goals/GoalsPage.d.ts +11 -0
- package/dist/mybodyshield/pages/goals/GoalsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/goals/GoalsPage.js +125 -125
- package/dist/mybodyshield/pages/goals/GoalsPage.js.map +1 -1
- package/dist/mybodyshield/pages/nutrition/NutritionPage.d.ts +13 -0
- package/dist/mybodyshield/pages/nutrition/NutritionPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/nutrition/NutritionPage.js +129 -129
- package/dist/mybodyshield/pages/nutrition/NutritionPage.js.map +1 -1
- package/dist/mybodyshield/pages/programs/ProgramDetailPage.d.ts +10 -0
- package/dist/mybodyshield/pages/programs/ProgramDetailPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/programs/ProgramDetailPage.js +218 -191
- package/dist/mybodyshield/pages/programs/ProgramDetailPage.js.map +1 -1
- package/dist/mybodyshield/pages/programs/ProgramsPage.d.ts +11 -0
- package/dist/mybodyshield/pages/programs/ProgramsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/programs/ProgramsPage.js +197 -193
- package/dist/mybodyshield/pages/programs/ProgramsPage.js.map +1 -1
- package/dist/mybodyshield/pages/progress/ProgressPage.d.ts +13 -0
- package/dist/mybodyshield/pages/progress/ProgressPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/progress/ProgressPage.js +143 -143
- package/dist/mybodyshield/pages/progress/ProgressPage.js.map +1 -1
- package/dist/mybodyshield/pages/recovery/RecoveryPage.d.ts +11 -0
- package/dist/mybodyshield/pages/recovery/RecoveryPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/recovery/RecoveryPage.js +60 -60
- package/dist/mybodyshield/pages/recovery/RecoveryPage.js.map +1 -1
- package/dist/mybodyshield/pages/train/SessionDetailPage.d.ts +11 -0
- package/dist/mybodyshield/pages/train/SessionDetailPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/train/SessionDetailPage.js +184 -181
- package/dist/mybodyshield/pages/train/SessionDetailPage.js.map +1 -1
- package/dist/mybodyshield/pages/train/SessionsPage.d.ts +11 -0
- package/dist/mybodyshield/pages/train/SessionsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/train/SessionsPage.js +119 -115
- package/dist/mybodyshield/pages/train/SessionsPage.js.map +1 -1
- package/dist/mybodyshield/services/createSandboxAssistantTransport.d.ts +24 -0
- package/dist/mybodyshield/services/createSandboxAssistantTransport.d.ts.map +1 -0
- package/dist/mybodyshield/services/createSandboxAssistantTransport.js +14 -0
- package/dist/mybodyshield/services/createSandboxAssistantTransport.js.map +1 -0
- package/dist/mybodyshield/types/assistant.d.ts +55 -0
- package/dist/mybodyshield/types/assistant.d.ts.map +1 -0
- package/dist/mybodyshield/types/index.d.ts +419 -0
- package/dist/mybodyshield/types/index.d.ts.map +1 -0
- package/dist/mybodyshield/utils/cn.d.ts +4 -0
- package/dist/mybodyshield/utils/cn.d.ts.map +1 -0
- package/dist/mybodyshield/utils/formatters.d.ts +32 -0
- package/dist/mybodyshield/utils/formatters.d.ts.map +1 -0
- package/dist/mybodyshield/utils/i18n.d.ts +6 -0
- package/dist/mybodyshield/utils/i18n.d.ts.map +1 -0
- package/dist/mybodyshield/utils/index.d.ts +9 -0
- package/dist/mybodyshield/utils/index.d.ts.map +1 -0
- package/dist/mybodyshield/utils/navigation.d.ts +14 -0
- package/dist/mybodyshield/utils/navigation.d.ts.map +1 -0
- package/dist/mybodyshield/utils/pageContext.d.ts +28 -0
- package/dist/mybodyshield/utils/pageContext.d.ts.map +1 -0
- package/dist/mybodyshield/utils/pageContext.js +62 -0
- package/dist/mybodyshield/utils/pageContext.js.map +1 -0
- package/package.json +8 -2
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
import { useMyBodyShield as e } from "../../context/MyBodyShieldContext.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { ErrorView as te, LoadingView as ne } from "../../components/StateViews.js";
|
|
9
|
-
import { EmptyState as re } from "../../components/EmptyState.js";
|
|
10
|
-
import { IconChip as ie } from "../_shared/visuals.js";
|
|
2
|
+
import { PageLayout as t } from "../../components/PageLayout.js";
|
|
3
|
+
import { MetricsCard as n } from "../../components/MetricsCard.js";
|
|
4
|
+
import { formatDateTime as r, formatDuration as i, formatKcal as a, formatNumber as o, formatRelativeTime as s, formatWeight as ee } from "../../utils/formatters.js";
|
|
5
|
+
import { StatusBadge as te } from "../../components/StatusBadge.js";
|
|
6
|
+
import { EmptyState as ne } from "../../components/EmptyState.js";
|
|
7
|
+
import { ErrorView as re, LoadingView as ie } from "../../components/StateViews.js";
|
|
11
8
|
import "../../context/index.js";
|
|
12
9
|
import { useMybCompleteSession as ae, useMybLogSet as oe, useMybSession as se } from "../../hooks/useMyBodyShieldApi.js";
|
|
10
|
+
import { useMyBodyShieldAnalytics as ce } from "../../hooks/useMyBodyShieldAnalytics.js";
|
|
13
11
|
import "../../hooks/index.js";
|
|
14
|
-
import { MybDiscussion as
|
|
12
|
+
import { MybDiscussion as le } from "../../components/MybDiscussion.js";
|
|
15
13
|
import "../../components/index.js";
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
14
|
+
import { motion as c } from "../../../node_modules/framer-motion/dist/es/render/components/motion/proxy.js";
|
|
15
|
+
import { useReducedMotion as ue } from "../../../node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.js";
|
|
16
|
+
import { IconChip as de } from "../_shared/visuals.js";
|
|
17
|
+
import { useMemo as l, useState as u } from "react";
|
|
18
|
+
import { AlertTriangle as fe, ArrowLeft as pe, CheckCircle2 as me, Dumbbell as d, Flame as f, Gauge as he, Plus as p, Ruler as ge, Timer as m, Weight as _e } from "lucide-react";
|
|
19
|
+
import { useParams as ve } from "react-router-dom";
|
|
20
|
+
import { Fragment as ye, jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
21
|
+
import { Button as _, GlassCard as be, Input as v, Label as y, ResponsiveDialog as b, ResponsiveDialogContent as x, ResponsiveDialogDescription as S, ResponsiveDialogFooter as C, ResponsiveDialogHeader as w, ResponsiveDialogTitle as T, Switch as xe, Textarea as Se } from "@burdenoff/fe-libs/ui";
|
|
21
22
|
//#region src/mybodyshield/pages/train/SessionDetailPage.tsx
|
|
22
23
|
var E = [
|
|
23
24
|
.16,
|
|
@@ -61,9 +62,11 @@ var A = {
|
|
|
61
62
|
notes: ""
|
|
62
63
|
};
|
|
63
64
|
function M() {
|
|
64
|
-
let { navigateTo: M } = e(), N =
|
|
65
|
+
let { navigateTo: M, workspaceId: Ce } = e(), N = ue(), { id: P } = ve();
|
|
66
|
+
ce();
|
|
67
|
+
let F = se(P), I = oe(), L = ae(), [we, R] = u(!1), [z, B] = u(A), [V, H] = u(null), [Te, U] = u(!1), [W, G] = u(j), [K, q] = u(null), J = F.data, Y = l(() => J?.sets ?? [], [J?.sets]), Ee = l(() => {
|
|
65
68
|
let e = /* @__PURE__ */ new Map();
|
|
66
|
-
for (let t of
|
|
69
|
+
for (let t of Y) {
|
|
67
70
|
let n = e.get(t.exerciseName) ?? [];
|
|
68
71
|
n.push(t), e.set(t.exerciseName, n);
|
|
69
72
|
}
|
|
@@ -71,54 +74,54 @@ function M() {
|
|
|
71
74
|
name: e,
|
|
72
75
|
sets: t.slice().sort((e, t) => e.setNumber - t.setNumber)
|
|
73
76
|
}));
|
|
74
|
-
}, [
|
|
77
|
+
}, [Y]), De = l(() => Y.reduce((e, t) => e + t.reps * t.weight, 0), [Y]), X = J?.startedAt, Z = J?.completedAt, Oe = l(() => {
|
|
75
78
|
if (!X || !Z) return;
|
|
76
79
|
let e = new Date(X).getTime(), t = new Date(Z).getTime();
|
|
77
80
|
if (!(!Number.isFinite(e) || !Number.isFinite(t) || t < e)) return (t - e) / 1e3;
|
|
78
81
|
}, [X, Z]);
|
|
79
|
-
if (!P) return /* @__PURE__ */
|
|
82
|
+
if (!P) return /* @__PURE__ */ h(t, {
|
|
80
83
|
title: "Workout session",
|
|
81
|
-
children: /* @__PURE__ */
|
|
84
|
+
children: /* @__PURE__ */ h(re, {
|
|
82
85
|
message: "No session was specified.",
|
|
83
86
|
onRetry: () => M("train")
|
|
84
87
|
})
|
|
85
88
|
});
|
|
86
|
-
if (F.isLoading) return /* @__PURE__ */
|
|
89
|
+
if (F.isLoading) return /* @__PURE__ */ h(t, {
|
|
87
90
|
title: "Workout session",
|
|
88
|
-
children: /* @__PURE__ */
|
|
91
|
+
children: /* @__PURE__ */ h(ie, { label: "Loading session…" })
|
|
89
92
|
});
|
|
90
|
-
if (F.isError || !
|
|
93
|
+
if (F.isError || !J) return /* @__PURE__ */ h(t, {
|
|
91
94
|
title: "Workout session",
|
|
92
|
-
children: /* @__PURE__ */
|
|
95
|
+
children: /* @__PURE__ */ h(re, {
|
|
93
96
|
title: "Session not found",
|
|
94
97
|
message: "This workout session may have been removed, or you don't have access to it.",
|
|
95
98
|
onRetry: () => F.refetch()
|
|
96
99
|
})
|
|
97
100
|
});
|
|
98
|
-
let Q =
|
|
101
|
+
let Q = J.status === "IN_PROGRESS", ke = J.completedAt ? `Completed ${s(J.completedAt)}` : J.startedAt ? `Started ${s(J.startedAt)}` : J.scheduledFor ? `Scheduled ${s(J.scheduledFor)}` : `Created ${s(J.createdAt)}`, $ = () => {
|
|
99
102
|
B(A), H(null), R(!0);
|
|
100
103
|
};
|
|
101
|
-
return /* @__PURE__ */
|
|
104
|
+
return /* @__PURE__ */ g(t, {
|
|
102
105
|
title: "Workout session",
|
|
103
|
-
description:
|
|
104
|
-
actions: Q ? /* @__PURE__ */
|
|
106
|
+
description: ke,
|
|
107
|
+
actions: Q ? /* @__PURE__ */ g(ye, { children: [/* @__PURE__ */ g(_, {
|
|
105
108
|
variant: "outline",
|
|
106
109
|
onClick: $,
|
|
107
|
-
children: [/* @__PURE__ */
|
|
108
|
-
}), /* @__PURE__ */ _
|
|
110
|
+
children: [/* @__PURE__ */ h(p, { className: "h-4 w-4" }), " Log set"]
|
|
111
|
+
}), /* @__PURE__ */ g(_, {
|
|
109
112
|
onClick: () => {
|
|
110
|
-
G(j),
|
|
113
|
+
G(j), q(null), U(!0);
|
|
111
114
|
},
|
|
112
|
-
children: [/* @__PURE__ */
|
|
115
|
+
children: [/* @__PURE__ */ h(me, { className: "h-4 w-4" }), " Complete"]
|
|
113
116
|
})] }) : void 0,
|
|
114
117
|
children: [
|
|
115
|
-
/* @__PURE__ */
|
|
118
|
+
/* @__PURE__ */ g("button", {
|
|
116
119
|
type: "button",
|
|
117
120
|
onClick: () => M("train"),
|
|
118
121
|
className: "mb-4 inline-flex items-center gap-1.5 text-sm font-medium text-text-secondary hover:text-text-primary",
|
|
119
|
-
children: [/* @__PURE__ */
|
|
122
|
+
children: [/* @__PURE__ */ h(pe, { className: "h-4 w-4" }), " Back to sessions"]
|
|
120
123
|
}),
|
|
121
|
-
/* @__PURE__ */
|
|
124
|
+
/* @__PURE__ */ h(c.div, {
|
|
122
125
|
initial: N ? !1 : {
|
|
123
126
|
opacity: 0,
|
|
124
127
|
y: 10
|
|
@@ -131,230 +134,230 @@ function M() {
|
|
|
131
134
|
duration: .35,
|
|
132
135
|
ease: E
|
|
133
136
|
},
|
|
134
|
-
children: /* @__PURE__ */
|
|
137
|
+
children: /* @__PURE__ */ g(be, {
|
|
135
138
|
treatment: "glass",
|
|
136
139
|
glow: Q,
|
|
137
140
|
className: "p-6",
|
|
138
141
|
children: [
|
|
139
|
-
/* @__PURE__ */
|
|
142
|
+
/* @__PURE__ */ h("div", {
|
|
140
143
|
className: "flex flex-wrap items-start justify-between gap-3",
|
|
141
|
-
children: /* @__PURE__ */
|
|
144
|
+
children: /* @__PURE__ */ g("div", {
|
|
142
145
|
className: "flex items-center gap-3",
|
|
143
|
-
children: [/* @__PURE__ */
|
|
144
|
-
icon:
|
|
146
|
+
children: [/* @__PURE__ */ h(de, {
|
|
147
|
+
icon: h(Q ? f : d, { className: "h-5 w-5" }),
|
|
145
148
|
tint: Q ? "var(--color-accent-teal)" : "var(--color-accent-primary)"
|
|
146
|
-
}), /* @__PURE__ */
|
|
149
|
+
}), /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("div", {
|
|
147
150
|
className: "flex items-center gap-2",
|
|
148
|
-
children: /* @__PURE__ */
|
|
149
|
-
}), /* @__PURE__ */
|
|
151
|
+
children: /* @__PURE__ */ h(te, { status: J.status })
|
|
152
|
+
}), /* @__PURE__ */ h("p", {
|
|
150
153
|
className: "mt-1 text-sm text-text-secondary",
|
|
151
|
-
children:
|
|
154
|
+
children: ke
|
|
152
155
|
})] })]
|
|
153
156
|
})
|
|
154
157
|
}),
|
|
155
|
-
/* @__PURE__ */
|
|
158
|
+
/* @__PURE__ */ g("div", {
|
|
156
159
|
className: "mt-5 grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",
|
|
157
160
|
children: [
|
|
158
|
-
|
|
161
|
+
J.scheduledFor && /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("p", {
|
|
159
162
|
className: "text-xs text-text-tertiary",
|
|
160
163
|
children: "Scheduled for"
|
|
161
|
-
}), /* @__PURE__ */
|
|
164
|
+
}), /* @__PURE__ */ h("p", {
|
|
162
165
|
className: "mt-0.5 text-sm font-medium text-text-primary",
|
|
163
|
-
children:
|
|
166
|
+
children: r(J.scheduledFor)
|
|
164
167
|
})] }),
|
|
165
|
-
|
|
168
|
+
J.startedAt && /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("p", {
|
|
166
169
|
className: "text-xs text-text-tertiary",
|
|
167
170
|
children: "Started"
|
|
168
|
-
}), /* @__PURE__ */
|
|
171
|
+
}), /* @__PURE__ */ h("p", {
|
|
169
172
|
className: "mt-0.5 text-sm font-medium text-text-primary",
|
|
170
|
-
children:
|
|
173
|
+
children: r(J.startedAt)
|
|
171
174
|
})] }),
|
|
172
|
-
|
|
175
|
+
J.completedAt && /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("p", {
|
|
173
176
|
className: "text-xs text-text-tertiary",
|
|
174
177
|
children: "Completed"
|
|
175
|
-
}), /* @__PURE__ */
|
|
178
|
+
}), /* @__PURE__ */ h("p", {
|
|
176
179
|
className: "mt-0.5 text-sm font-medium text-text-primary",
|
|
177
|
-
children:
|
|
180
|
+
children: r(J.completedAt)
|
|
178
181
|
})] }),
|
|
179
|
-
|
|
182
|
+
J.perceivedExertion != null && /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("p", {
|
|
180
183
|
className: "text-xs text-text-tertiary",
|
|
181
184
|
children: "Perceived exertion"
|
|
182
|
-
}), /* @__PURE__ */
|
|
185
|
+
}), /* @__PURE__ */ g("p", {
|
|
183
186
|
className: "mt-0.5 text-sm font-medium tabular-nums text-text-primary",
|
|
184
|
-
children: [
|
|
187
|
+
children: [J.perceivedExertion, "/10 RPE"]
|
|
185
188
|
})] }),
|
|
186
|
-
|
|
189
|
+
J.caloriesBurned > 0 && /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("p", {
|
|
187
190
|
className: "text-xs text-text-tertiary",
|
|
188
191
|
children: "Calories burned"
|
|
189
|
-
}), /* @__PURE__ */
|
|
192
|
+
}), /* @__PURE__ */ h("p", {
|
|
190
193
|
className: "mt-0.5 text-sm font-medium tabular-nums text-text-primary",
|
|
191
|
-
children:
|
|
194
|
+
children: a(J.caloriesBurned)
|
|
192
195
|
})] })
|
|
193
196
|
]
|
|
194
197
|
}),
|
|
195
|
-
|
|
198
|
+
J.notes && /* @__PURE__ */ g("div", {
|
|
196
199
|
className: "mt-5 rounded-xl bg-bg-sunken/60 p-4",
|
|
197
|
-
children: [/* @__PURE__ */
|
|
200
|
+
children: [/* @__PURE__ */ h("p", {
|
|
198
201
|
className: "text-xs text-text-tertiary",
|
|
199
202
|
children: "Notes"
|
|
200
|
-
}), /* @__PURE__ */
|
|
203
|
+
}), /* @__PURE__ */ h("p", {
|
|
201
204
|
className: "mt-1 whitespace-pre-wrap text-sm text-text-secondary",
|
|
202
|
-
children:
|
|
205
|
+
children: J.notes
|
|
203
206
|
})]
|
|
204
207
|
})
|
|
205
208
|
]
|
|
206
209
|
})
|
|
207
210
|
}),
|
|
208
|
-
/* @__PURE__ */
|
|
211
|
+
/* @__PURE__ */ g(c.div, {
|
|
209
212
|
className: "mt-6 grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",
|
|
210
213
|
variants: N ? void 0 : D,
|
|
211
214
|
initial: N ? !1 : "hidden",
|
|
212
215
|
animate: "show",
|
|
213
216
|
children: [
|
|
214
|
-
/* @__PURE__ */
|
|
217
|
+
/* @__PURE__ */ h(c.div, {
|
|
215
218
|
variants: N ? void 0 : O,
|
|
216
|
-
children: /* @__PURE__ */
|
|
217
|
-
icon: /* @__PURE__ */
|
|
219
|
+
children: /* @__PURE__ */ h(n, {
|
|
220
|
+
icon: /* @__PURE__ */ h("span", {
|
|
218
221
|
className: "text-action-primary-bg",
|
|
219
|
-
children: /* @__PURE__ */
|
|
222
|
+
children: /* @__PURE__ */ h(d, { className: "h-5 w-5" })
|
|
220
223
|
}),
|
|
221
|
-
value:
|
|
224
|
+
value: o(Y.length),
|
|
222
225
|
label: "Total sets"
|
|
223
226
|
})
|
|
224
227
|
}),
|
|
225
|
-
/* @__PURE__ */
|
|
228
|
+
/* @__PURE__ */ h(c.div, {
|
|
226
229
|
variants: N ? void 0 : O,
|
|
227
|
-
children: /* @__PURE__ */
|
|
228
|
-
icon: /* @__PURE__ */
|
|
230
|
+
children: /* @__PURE__ */ h(n, {
|
|
231
|
+
icon: /* @__PURE__ */ h("span", {
|
|
229
232
|
className: "text-action-primary-bg",
|
|
230
|
-
children: /* @__PURE__ */
|
|
233
|
+
children: /* @__PURE__ */ h(_e, { className: "h-5 w-5" })
|
|
231
234
|
}),
|
|
232
|
-
value: `${
|
|
235
|
+
value: `${o(De)} kg`,
|
|
233
236
|
label: "Total volume"
|
|
234
237
|
})
|
|
235
238
|
}),
|
|
236
|
-
/* @__PURE__ */
|
|
239
|
+
/* @__PURE__ */ h(c.div, {
|
|
237
240
|
variants: N ? void 0 : O,
|
|
238
|
-
children: /* @__PURE__ */
|
|
239
|
-
icon: /* @__PURE__ */
|
|
241
|
+
children: /* @__PURE__ */ h(n, {
|
|
242
|
+
icon: /* @__PURE__ */ h("span", {
|
|
240
243
|
className: "text-action-primary-bg",
|
|
241
|
-
children: /* @__PURE__ */
|
|
244
|
+
children: /* @__PURE__ */ h(m, { className: "h-5 w-5" })
|
|
242
245
|
}),
|
|
243
|
-
value:
|
|
246
|
+
value: Oe == null ? "—" : i(Oe),
|
|
244
247
|
label: "Duration"
|
|
245
248
|
})
|
|
246
249
|
}),
|
|
247
|
-
/* @__PURE__ */
|
|
250
|
+
/* @__PURE__ */ h(c.div, {
|
|
248
251
|
variants: N ? void 0 : O,
|
|
249
|
-
children: /* @__PURE__ */
|
|
250
|
-
icon: /* @__PURE__ */
|
|
252
|
+
children: /* @__PURE__ */ h(n, {
|
|
253
|
+
icon: /* @__PURE__ */ h("span", {
|
|
251
254
|
className: "text-action-primary-bg",
|
|
252
|
-
children: /* @__PURE__ */
|
|
255
|
+
children: /* @__PURE__ */ h(f, { className: "h-5 w-5" })
|
|
253
256
|
}),
|
|
254
|
-
value:
|
|
257
|
+
value: J.caloriesBurned > 0 ? a(J.caloriesBurned) : "—",
|
|
255
258
|
label: "Calories burned"
|
|
256
259
|
})
|
|
257
260
|
})
|
|
258
261
|
]
|
|
259
262
|
}),
|
|
260
|
-
/* @__PURE__ */
|
|
263
|
+
/* @__PURE__ */ g("div", {
|
|
261
264
|
className: "mt-8",
|
|
262
|
-
children: [/* @__PURE__ */
|
|
265
|
+
children: [/* @__PURE__ */ g("div", {
|
|
263
266
|
className: "mb-3 flex items-end justify-between gap-3",
|
|
264
|
-
children: [/* @__PURE__ */
|
|
267
|
+
children: [/* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("h2", {
|
|
265
268
|
className: "text-base font-semibold text-text-primary",
|
|
266
269
|
children: "Logged sets"
|
|
267
|
-
}), /* @__PURE__ */
|
|
270
|
+
}), /* @__PURE__ */ h("p", {
|
|
268
271
|
className: "mt-0.5 text-sm text-text-secondary",
|
|
269
272
|
children: "Every set recorded during this session, grouped by exercise."
|
|
270
|
-
})] }), Q && /* @__PURE__ */ _
|
|
273
|
+
})] }), Q && /* @__PURE__ */ g(_, {
|
|
271
274
|
variant: "outline",
|
|
272
275
|
size: "sm",
|
|
273
276
|
onClick: $,
|
|
274
277
|
className: "shrink-0",
|
|
275
|
-
children: [/* @__PURE__ */
|
|
278
|
+
children: [/* @__PURE__ */ h(p, { className: "h-4 w-4" }), " Log set"]
|
|
276
279
|
})]
|
|
277
|
-
}),
|
|
280
|
+
}), Ee.length === 0 ? /* @__PURE__ */ h(ne, {
|
|
278
281
|
illustration: "empty-data",
|
|
279
|
-
icon: /* @__PURE__ */
|
|
282
|
+
icon: /* @__PURE__ */ h(d, { className: "h-10 w-10" }),
|
|
280
283
|
title: "No sets logged yet",
|
|
281
284
|
description: Q ? "Log your first set to start tracking this workout." : "No sets were recorded for this session.",
|
|
282
|
-
action: Q ? /* @__PURE__ */ _
|
|
285
|
+
action: Q ? /* @__PURE__ */ g(_, {
|
|
283
286
|
onClick: $,
|
|
284
|
-
children: [/* @__PURE__ */
|
|
287
|
+
children: [/* @__PURE__ */ h(p, { className: "h-4 w-4" }), " Log set"]
|
|
285
288
|
}) : void 0
|
|
286
|
-
}) : /* @__PURE__ */
|
|
289
|
+
}) : /* @__PURE__ */ h(c.div, {
|
|
287
290
|
className: "space-y-4",
|
|
288
291
|
variants: N ? void 0 : D,
|
|
289
292
|
initial: N ? !1 : "hidden",
|
|
290
293
|
animate: "show",
|
|
291
|
-
children:
|
|
292
|
-
let
|
|
293
|
-
return /* @__PURE__ */
|
|
294
|
+
children: Ee.map((e) => {
|
|
295
|
+
let t = e.sets.filter((e) => e.isPersonalRecord).length;
|
|
296
|
+
return /* @__PURE__ */ h(c.div, {
|
|
294
297
|
variants: N ? void 0 : O,
|
|
295
|
-
children: /* @__PURE__ */
|
|
298
|
+
children: /* @__PURE__ */ g(be, {
|
|
296
299
|
treatment: "plain",
|
|
297
300
|
className: "p-4 transition-shadow hover:shadow-float",
|
|
298
|
-
children: [/* @__PURE__ */
|
|
301
|
+
children: [/* @__PURE__ */ g("div", {
|
|
299
302
|
className: "mb-3 flex items-center justify-between gap-2",
|
|
300
|
-
children: [/* @__PURE__ */
|
|
303
|
+
children: [/* @__PURE__ */ g("div", {
|
|
301
304
|
className: "flex min-w-0 items-center gap-2.5",
|
|
302
305
|
children: [
|
|
303
|
-
/* @__PURE__ */
|
|
304
|
-
/* @__PURE__ */
|
|
306
|
+
/* @__PURE__ */ h(de, { icon: /* @__PURE__ */ h(d, { className: "h-4 w-4" }) }),
|
|
307
|
+
/* @__PURE__ */ h("h3", {
|
|
305
308
|
className: "truncate text-sm font-semibold text-text-primary",
|
|
306
309
|
children: e.name
|
|
307
310
|
}),
|
|
308
|
-
|
|
311
|
+
t > 0 && /* @__PURE__ */ g("span", {
|
|
309
312
|
className: "inline-flex items-center rounded-full bg-status-success-bg-subtle px-2 py-0.5 text-[11px] font-semibold text-status-success-text shadow-[0_0_0_3px_color-mix(in_oklab,var(--color-status-success-text)_14%,transparent)]",
|
|
310
313
|
children: [
|
|
311
|
-
|
|
314
|
+
t,
|
|
312
315
|
" PR",
|
|
313
|
-
|
|
316
|
+
t === 1 ? "" : "s"
|
|
314
317
|
]
|
|
315
318
|
})
|
|
316
319
|
]
|
|
317
|
-
}), /* @__PURE__ */
|
|
320
|
+
}), /* @__PURE__ */ g("span", {
|
|
318
321
|
className: "shrink-0 text-xs tabular-nums text-text-tertiary",
|
|
319
322
|
children: [
|
|
320
|
-
|
|
323
|
+
o(e.sets.length),
|
|
321
324
|
" ",
|
|
322
325
|
e.sets.length === 1 ? "set" : "sets"
|
|
323
326
|
]
|
|
324
327
|
})]
|
|
325
|
-
}), /* @__PURE__ */
|
|
328
|
+
}), /* @__PURE__ */ h("ul", {
|
|
326
329
|
className: "divide-y divide-border-seam",
|
|
327
330
|
children: e.sets.map((e) => {
|
|
328
331
|
let t = e.durationSec > 0 || e.distanceM > 0;
|
|
329
|
-
return /* @__PURE__ */
|
|
332
|
+
return /* @__PURE__ */ g("li", {
|
|
330
333
|
className: "flex flex-wrap items-center justify-between gap-2 rounded-lg px-2 py-2 transition-colors" + (e.isPersonalRecord ? " bg-[color-mix(in_oklab,var(--color-status-success-text)_9%,transparent)]" : " hover:bg-bg-sunken/40"),
|
|
331
|
-
children: [/* @__PURE__ */
|
|
334
|
+
children: [/* @__PURE__ */ g("div", {
|
|
332
335
|
className: "flex items-center gap-2",
|
|
333
|
-
children: [/* @__PURE__ */
|
|
336
|
+
children: [/* @__PURE__ */ g("span", {
|
|
334
337
|
className: "text-sm font-medium text-text-primary tabular-nums",
|
|
335
338
|
children: [
|
|
336
339
|
"Set ",
|
|
337
340
|
e.setNumber,
|
|
338
341
|
": ",
|
|
339
|
-
|
|
342
|
+
o(e.reps),
|
|
340
343
|
" ×",
|
|
341
344
|
" ",
|
|
342
345
|
ee(e.weight)
|
|
343
346
|
]
|
|
344
|
-
}), e.isPersonalRecord && /* @__PURE__ */
|
|
347
|
+
}), e.isPersonalRecord && /* @__PURE__ */ h("span", {
|
|
345
348
|
className: "inline-flex rounded-full shadow-[0_0_0_3px_color-mix(in_oklab,var(--color-status-success-text)_16%,transparent)]",
|
|
346
|
-
children: /* @__PURE__ */
|
|
349
|
+
children: /* @__PURE__ */ h(te, { status: "PR" })
|
|
347
350
|
})]
|
|
348
|
-
}), /* @__PURE__ */
|
|
351
|
+
}), /* @__PURE__ */ g("div", {
|
|
349
352
|
className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-text-secondary",
|
|
350
|
-
children: [t && e.durationSec > 0 && /* @__PURE__ */
|
|
353
|
+
children: [t && e.durationSec > 0 && /* @__PURE__ */ g("span", {
|
|
351
354
|
className: "inline-flex items-center gap-1 tabular-nums",
|
|
352
|
-
children: [/* @__PURE__ */
|
|
353
|
-
}), t && e.distanceM > 0 && /* @__PURE__ */
|
|
355
|
+
children: [/* @__PURE__ */ h(m, { className: "h-3.5 w-3.5 text-accent" }), i(e.durationSec)]
|
|
356
|
+
}), t && e.distanceM > 0 && /* @__PURE__ */ g("span", {
|
|
354
357
|
className: "inline-flex items-center gap-1 tabular-nums",
|
|
355
358
|
children: [
|
|
356
|
-
/* @__PURE__ */
|
|
357
|
-
|
|
359
|
+
/* @__PURE__ */ h(ge, { className: "h-3.5 w-3.5 text-accent" }),
|
|
360
|
+
o(e.distanceM),
|
|
358
361
|
" m"
|
|
359
362
|
]
|
|
360
363
|
})]
|
|
@@ -367,29 +370,29 @@ function M() {
|
|
|
367
370
|
})
|
|
368
371
|
})]
|
|
369
372
|
}),
|
|
370
|
-
/* @__PURE__ */
|
|
373
|
+
/* @__PURE__ */ h("div", {
|
|
371
374
|
className: "mt-8",
|
|
372
|
-
children: /* @__PURE__ */
|
|
375
|
+
children: /* @__PURE__ */ h(le, {
|
|
373
376
|
entityType: "mybodyshield-session",
|
|
374
|
-
entityId:
|
|
377
|
+
entityId: J.id,
|
|
375
378
|
title: "Coach feedback",
|
|
376
379
|
description: "Discuss form, cues and this session's results with your coach and team."
|
|
377
380
|
})
|
|
378
381
|
}),
|
|
379
|
-
/* @__PURE__ */
|
|
380
|
-
open:
|
|
382
|
+
/* @__PURE__ */ h(b, {
|
|
383
|
+
open: we,
|
|
381
384
|
onOpenChange: R,
|
|
382
|
-
children: /* @__PURE__ */
|
|
383
|
-
/* @__PURE__ */
|
|
384
|
-
/* @__PURE__ */
|
|
385
|
+
children: /* @__PURE__ */ g(x, { children: [
|
|
386
|
+
/* @__PURE__ */ g(w, { children: [/* @__PURE__ */ h(T, { children: "Log a set" }), /* @__PURE__ */ h(S, { children: "Record reps and load for strength work, or duration and distance for cardio. The dialog stays open so you can log sets back-to-back." })] }),
|
|
387
|
+
/* @__PURE__ */ g("div", {
|
|
385
388
|
className: "space-y-4 px-1",
|
|
386
389
|
children: [
|
|
387
|
-
/* @__PURE__ */
|
|
390
|
+
/* @__PURE__ */ g("div", {
|
|
388
391
|
className: "space-y-1.5",
|
|
389
|
-
children: [/* @__PURE__ */
|
|
392
|
+
children: [/* @__PURE__ */ h(y, {
|
|
390
393
|
htmlFor: "myb-set-exercise",
|
|
391
394
|
children: "Exercise"
|
|
392
|
-
}), /* @__PURE__ */
|
|
395
|
+
}), /* @__PURE__ */ h(v, {
|
|
393
396
|
id: "myb-set-exercise",
|
|
394
397
|
value: z.exerciseName,
|
|
395
398
|
onChange: (e) => B((t) => ({
|
|
@@ -399,15 +402,15 @@ function M() {
|
|
|
399
402
|
placeholder: "e.g. Back Squat"
|
|
400
403
|
})]
|
|
401
404
|
}),
|
|
402
|
-
/* @__PURE__ */
|
|
405
|
+
/* @__PURE__ */ g("div", {
|
|
403
406
|
className: "grid grid-cols-2 gap-3",
|
|
404
407
|
children: [
|
|
405
|
-
/* @__PURE__ */
|
|
408
|
+
/* @__PURE__ */ g("div", {
|
|
406
409
|
className: "space-y-1.5",
|
|
407
|
-
children: [/* @__PURE__ */
|
|
410
|
+
children: [/* @__PURE__ */ h(y, {
|
|
408
411
|
htmlFor: "myb-set-number",
|
|
409
412
|
children: "Set number"
|
|
410
|
-
}), /* @__PURE__ */
|
|
413
|
+
}), /* @__PURE__ */ h(v, {
|
|
411
414
|
id: "myb-set-number",
|
|
412
415
|
type: "number",
|
|
413
416
|
inputMode: "numeric",
|
|
@@ -420,12 +423,12 @@ function M() {
|
|
|
420
423
|
placeholder: "1"
|
|
421
424
|
})]
|
|
422
425
|
}),
|
|
423
|
-
/* @__PURE__ */
|
|
426
|
+
/* @__PURE__ */ g("div", {
|
|
424
427
|
className: "space-y-1.5",
|
|
425
|
-
children: [/* @__PURE__ */
|
|
428
|
+
children: [/* @__PURE__ */ h(y, {
|
|
426
429
|
htmlFor: "myb-set-reps",
|
|
427
430
|
children: "Reps"
|
|
428
|
-
}), /* @__PURE__ */
|
|
431
|
+
}), /* @__PURE__ */ h(v, {
|
|
429
432
|
id: "myb-set-reps",
|
|
430
433
|
type: "number",
|
|
431
434
|
inputMode: "numeric",
|
|
@@ -438,12 +441,12 @@ function M() {
|
|
|
438
441
|
placeholder: "8"
|
|
439
442
|
})]
|
|
440
443
|
}),
|
|
441
|
-
/* @__PURE__ */
|
|
444
|
+
/* @__PURE__ */ g("div", {
|
|
442
445
|
className: "space-y-1.5",
|
|
443
|
-
children: [/* @__PURE__ */
|
|
446
|
+
children: [/* @__PURE__ */ h(y, {
|
|
444
447
|
htmlFor: "myb-set-weight",
|
|
445
448
|
children: "Weight (kg)"
|
|
446
|
-
}), /* @__PURE__ */
|
|
449
|
+
}), /* @__PURE__ */ h(v, {
|
|
447
450
|
id: "myb-set-weight",
|
|
448
451
|
type: "number",
|
|
449
452
|
inputMode: "decimal",
|
|
@@ -457,12 +460,12 @@ function M() {
|
|
|
457
460
|
placeholder: "60"
|
|
458
461
|
})]
|
|
459
462
|
}),
|
|
460
|
-
/* @__PURE__ */
|
|
463
|
+
/* @__PURE__ */ g("div", {
|
|
461
464
|
className: "space-y-1.5",
|
|
462
|
-
children: [/* @__PURE__ */
|
|
465
|
+
children: [/* @__PURE__ */ h(y, {
|
|
463
466
|
htmlFor: "myb-set-distance",
|
|
464
467
|
children: "Distance (m)"
|
|
465
|
-
}), /* @__PURE__ */
|
|
468
|
+
}), /* @__PURE__ */ h(v, {
|
|
466
469
|
id: "myb-set-distance",
|
|
467
470
|
type: "number",
|
|
468
471
|
inputMode: "numeric",
|
|
@@ -475,12 +478,12 @@ function M() {
|
|
|
475
478
|
placeholder: "Optional"
|
|
476
479
|
})]
|
|
477
480
|
}),
|
|
478
|
-
/* @__PURE__ */
|
|
481
|
+
/* @__PURE__ */ g("div", {
|
|
479
482
|
className: "space-y-1.5",
|
|
480
|
-
children: [/* @__PURE__ */
|
|
483
|
+
children: [/* @__PURE__ */ h(y, {
|
|
481
484
|
htmlFor: "myb-set-duration",
|
|
482
485
|
children: "Duration (sec)"
|
|
483
|
-
}), /* @__PURE__ */
|
|
486
|
+
}), /* @__PURE__ */ h(v, {
|
|
484
487
|
id: "myb-set-duration",
|
|
485
488
|
type: "number",
|
|
486
489
|
inputMode: "numeric",
|
|
@@ -495,19 +498,19 @@ function M() {
|
|
|
495
498
|
})
|
|
496
499
|
]
|
|
497
500
|
}),
|
|
498
|
-
/* @__PURE__ */
|
|
501
|
+
/* @__PURE__ */ g("div", {
|
|
499
502
|
className: "flex items-center justify-between gap-3 rounded-xl bg-bg-sunken/60 p-3",
|
|
500
|
-
children: [/* @__PURE__ */
|
|
503
|
+
children: [/* @__PURE__ */ g("div", {
|
|
501
504
|
className: "flex items-center gap-2",
|
|
502
|
-
children: [/* @__PURE__ */
|
|
505
|
+
children: [/* @__PURE__ */ h(he, { className: "h-4 w-4 text-accent" }), /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h(y, {
|
|
503
506
|
htmlFor: "myb-set-pr",
|
|
504
507
|
className: "cursor-pointer",
|
|
505
508
|
children: "Personal record"
|
|
506
|
-
}), /* @__PURE__ */
|
|
509
|
+
}), /* @__PURE__ */ h("p", {
|
|
507
510
|
className: "text-xs text-text-tertiary",
|
|
508
511
|
children: "Flag this set as a new PR."
|
|
509
512
|
})] })]
|
|
510
|
-
}), /* @__PURE__ */
|
|
513
|
+
}), /* @__PURE__ */ h(xe, {
|
|
511
514
|
id: "myb-set-pr",
|
|
512
515
|
checked: z.isPersonalRecord,
|
|
513
516
|
onCheckedChange: (e) => B((t) => ({
|
|
@@ -516,17 +519,17 @@ function M() {
|
|
|
516
519
|
}))
|
|
517
520
|
})]
|
|
518
521
|
}),
|
|
519
|
-
V && /* @__PURE__ */
|
|
522
|
+
V && /* @__PURE__ */ h("p", {
|
|
520
523
|
className: "text-sm text-status-error-text",
|
|
521
524
|
children: V
|
|
522
525
|
})
|
|
523
526
|
]
|
|
524
527
|
}),
|
|
525
|
-
/* @__PURE__ */
|
|
528
|
+
/* @__PURE__ */ g(C, { children: [/* @__PURE__ */ h(_, {
|
|
526
529
|
variant: "outline",
|
|
527
530
|
onClick: () => R(!1),
|
|
528
531
|
children: "Done"
|
|
529
|
-
}), /* @__PURE__ */
|
|
532
|
+
}), /* @__PURE__ */ h(_, {
|
|
530
533
|
onClick: async () => {
|
|
531
534
|
H(null);
|
|
532
535
|
let e = z.exerciseName.trim();
|
|
@@ -559,32 +562,32 @@ function M() {
|
|
|
559
562
|
})] })
|
|
560
563
|
] })
|
|
561
564
|
}),
|
|
562
|
-
/* @__PURE__ */
|
|
563
|
-
open:
|
|
565
|
+
/* @__PURE__ */ h(b, {
|
|
566
|
+
open: Te,
|
|
564
567
|
onOpenChange: U,
|
|
565
|
-
children: /* @__PURE__ */
|
|
566
|
-
/* @__PURE__ */
|
|
567
|
-
/* @__PURE__ */
|
|
568
|
+
children: /* @__PURE__ */ g(x, { children: [
|
|
569
|
+
/* @__PURE__ */ g(w, { children: [/* @__PURE__ */ h(T, { children: "Complete session" }), /* @__PURE__ */ h(S, { children: "Wrap up this workout and record how it went." })] }),
|
|
570
|
+
/* @__PURE__ */ g("div", {
|
|
568
571
|
className: "space-y-4 px-1",
|
|
569
572
|
children: [
|
|
570
|
-
|
|
573
|
+
Y.length === 0 && /* @__PURE__ */ g("div", {
|
|
571
574
|
className: "flex items-start gap-2.5 rounded-xl border border-status-warning-text/40 bg-status-warning-bg-subtle p-3",
|
|
572
|
-
children: [/* @__PURE__ */
|
|
575
|
+
children: [/* @__PURE__ */ h(fe, { className: "mt-0.5 h-4 w-4 shrink-0 text-status-warning-text" }), /* @__PURE__ */ g("p", {
|
|
573
576
|
className: "text-sm text-text-secondary",
|
|
574
|
-
children: [/* @__PURE__ */
|
|
577
|
+
children: [/* @__PURE__ */ h("span", {
|
|
575
578
|
className: "font-medium text-text-primary",
|
|
576
579
|
children: "No sets logged."
|
|
577
580
|
}), " You can still complete this session, but nothing was recorded for it."]
|
|
578
581
|
})]
|
|
579
582
|
}),
|
|
580
|
-
/* @__PURE__ */
|
|
583
|
+
/* @__PURE__ */ g("div", {
|
|
581
584
|
className: "grid grid-cols-2 gap-3",
|
|
582
|
-
children: [/* @__PURE__ */
|
|
585
|
+
children: [/* @__PURE__ */ g("div", {
|
|
583
586
|
className: "space-y-1.5",
|
|
584
|
-
children: [/* @__PURE__ */
|
|
587
|
+
children: [/* @__PURE__ */ h(y, {
|
|
585
588
|
htmlFor: "myb-complete-calories",
|
|
586
589
|
children: "Calories burned"
|
|
587
|
-
}), /* @__PURE__ */
|
|
590
|
+
}), /* @__PURE__ */ h(v, {
|
|
588
591
|
id: "myb-complete-calories",
|
|
589
592
|
type: "number",
|
|
590
593
|
inputMode: "numeric",
|
|
@@ -596,12 +599,12 @@ function M() {
|
|
|
596
599
|
})),
|
|
597
600
|
placeholder: "Optional"
|
|
598
601
|
})]
|
|
599
|
-
}), /* @__PURE__ */
|
|
602
|
+
}), /* @__PURE__ */ g("div", {
|
|
600
603
|
className: "space-y-1.5",
|
|
601
|
-
children: [/* @__PURE__ */
|
|
604
|
+
children: [/* @__PURE__ */ h(y, {
|
|
602
605
|
htmlFor: "myb-complete-rpe",
|
|
603
606
|
children: "Perceived exertion (1–10)"
|
|
604
|
-
}), /* @__PURE__ */
|
|
607
|
+
}), /* @__PURE__ */ h(v, {
|
|
605
608
|
id: "myb-complete-rpe",
|
|
606
609
|
type: "number",
|
|
607
610
|
inputMode: "numeric",
|
|
@@ -616,12 +619,12 @@ function M() {
|
|
|
616
619
|
})]
|
|
617
620
|
})]
|
|
618
621
|
}),
|
|
619
|
-
/* @__PURE__ */
|
|
622
|
+
/* @__PURE__ */ g("div", {
|
|
620
623
|
className: "space-y-1.5",
|
|
621
|
-
children: [/* @__PURE__ */
|
|
624
|
+
children: [/* @__PURE__ */ h(y, {
|
|
622
625
|
htmlFor: "myb-complete-notes",
|
|
623
626
|
children: "Notes"
|
|
624
|
-
}), /* @__PURE__ */
|
|
627
|
+
}), /* @__PURE__ */ h(Se, {
|
|
625
628
|
id: "myb-complete-notes",
|
|
626
629
|
rows: 3,
|
|
627
630
|
value: W.notes,
|
|
@@ -632,19 +635,19 @@ function M() {
|
|
|
632
635
|
placeholder: "How did the session feel?"
|
|
633
636
|
})]
|
|
634
637
|
}),
|
|
635
|
-
|
|
638
|
+
K && /* @__PURE__ */ h("p", {
|
|
636
639
|
className: "text-sm text-status-error-text",
|
|
637
|
-
children:
|
|
640
|
+
children: K
|
|
638
641
|
})
|
|
639
642
|
]
|
|
640
643
|
}),
|
|
641
|
-
/* @__PURE__ */
|
|
644
|
+
/* @__PURE__ */ g(C, { children: [/* @__PURE__ */ h(_, {
|
|
642
645
|
variant: "outline",
|
|
643
646
|
onClick: () => U(!1),
|
|
644
647
|
children: "Cancel"
|
|
645
|
-
}), /* @__PURE__ */
|
|
648
|
+
}), /* @__PURE__ */ h(_, {
|
|
646
649
|
onClick: async () => {
|
|
647
|
-
|
|
650
|
+
q(null);
|
|
648
651
|
try {
|
|
649
652
|
await L.mutateAsync({
|
|
650
653
|
id: P,
|
|
@@ -655,7 +658,7 @@ function M() {
|
|
|
655
658
|
}
|
|
656
659
|
}), U(!1);
|
|
657
660
|
} catch (e) {
|
|
658
|
-
|
|
661
|
+
q(e instanceof Error ? e.message : "Failed to complete the session.");
|
|
659
662
|
}
|
|
660
663
|
},
|
|
661
664
|
disabled: L.isPending,
|