@burdenoff/microfe-mybodyshield 2026.511.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.
Files changed (210) hide show
  1. package/README.md +12 -0
  2. package/dist/dev/main.d.ts +2 -0
  3. package/dist/dev/main.d.ts.map +1 -0
  4. package/dist/generated/global-operations.d.ts +2 -0
  5. package/dist/generated/global-operations.d.ts.map +1 -0
  6. package/dist/generated/global-types.d.ts +18199 -0
  7. package/dist/generated/global-types.d.ts.map +1 -0
  8. package/dist/generated/wspace-operations.d.ts +2 -0
  9. package/dist/generated/wspace-operations.d.ts.map +1 -0
  10. package/dist/generated/wspace-types.d.ts +43046 -0
  11. package/dist/generated/wspace-types.d.ts.map +1 -0
  12. package/dist/index.d.ts +2 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +5 -0
  15. package/dist/mybodyshield/MyBodyShieldRoot.d.ts +5 -0
  16. package/dist/mybodyshield/MyBodyShieldRoot.d.ts.map +1 -0
  17. package/dist/mybodyshield/MyBodyShieldRoot.js +364 -0
  18. package/dist/mybodyshield/MyBodyShieldRoot.js.map +1 -0
  19. package/dist/mybodyshield/MyBodyShieldRoutes.d.ts +2 -0
  20. package/dist/mybodyshield/MyBodyShieldRoutes.d.ts.map +1 -0
  21. package/dist/mybodyshield/MyBodyShieldRoutes.js +199 -0
  22. package/dist/mybodyshield/MyBodyShieldRoutes.js.map +1 -0
  23. package/dist/mybodyshield/index.d.ts +5 -0
  24. package/dist/mybodyshield/index.d.ts.map +1 -0
  25. package/dist/mybodyshield/index.js +3 -0
  26. package/dist/mybodyshield/pages/AdminAiinsightsPage.d.ts +2 -0
  27. package/dist/mybodyshield/pages/AdminAiinsightsPage.d.ts.map +1 -0
  28. package/dist/mybodyshield/pages/AdminAiinsightsPage.js +161 -0
  29. package/dist/mybodyshield/pages/AdminAiinsightsPage.js.map +1 -0
  30. package/dist/mybodyshield/pages/AdminAnalyticsPage.d.ts +2 -0
  31. package/dist/mybodyshield/pages/AdminAnalyticsPage.d.ts.map +1 -0
  32. package/dist/mybodyshield/pages/AdminAnalyticsPage.js +193 -0
  33. package/dist/mybodyshield/pages/AdminAnalyticsPage.js.map +1 -0
  34. package/dist/mybodyshield/pages/AdminComplianceReportsPage.d.ts +2 -0
  35. package/dist/mybodyshield/pages/AdminComplianceReportsPage.d.ts.map +1 -0
  36. package/dist/mybodyshield/pages/AdminComplianceReportsPage.js +214 -0
  37. package/dist/mybodyshield/pages/AdminComplianceReportsPage.js.map +1 -0
  38. package/dist/mybodyshield/pages/AdminDashboardPage.d.ts +2 -0
  39. package/dist/mybodyshield/pages/AdminDashboardPage.d.ts.map +1 -0
  40. package/dist/mybodyshield/pages/AdminDashboardPage.js +186 -0
  41. package/dist/mybodyshield/pages/AdminDashboardPage.js.map +1 -0
  42. package/dist/mybodyshield/pages/AdminOrganizationManagementPage.d.ts +2 -0
  43. package/dist/mybodyshield/pages/AdminOrganizationManagementPage.d.ts.map +1 -0
  44. package/dist/mybodyshield/pages/AdminOrganizationManagementPage.js +252 -0
  45. package/dist/mybodyshield/pages/AdminOrganizationManagementPage.js.map +1 -0
  46. package/dist/mybodyshield/pages/AdminSystemSettingsPage.d.ts +2 -0
  47. package/dist/mybodyshield/pages/AdminSystemSettingsPage.d.ts.map +1 -0
  48. package/dist/mybodyshield/pages/AdminSystemSettingsPage.js +159 -0
  49. package/dist/mybodyshield/pages/AdminSystemSettingsPage.js.map +1 -0
  50. package/dist/mybodyshield/pages/AdminUserManagementPage.d.ts +2 -0
  51. package/dist/mybodyshield/pages/AdminUserManagementPage.d.ts.map +1 -0
  52. package/dist/mybodyshield/pages/AdminUserManagementPage.js +208 -0
  53. package/dist/mybodyshield/pages/AdminUserManagementPage.js.map +1 -0
  54. package/dist/mybodyshield/pages/FitnessAssessmentsPage.d.ts +2 -0
  55. package/dist/mybodyshield/pages/FitnessAssessmentsPage.d.ts.map +1 -0
  56. package/dist/mybodyshield/pages/FitnessAssessmentsPage.js +194 -0
  57. package/dist/mybodyshield/pages/FitnessAssessmentsPage.js.map +1 -0
  58. package/dist/mybodyshield/pages/FitnessClientDetailsPage.d.ts +2 -0
  59. package/dist/mybodyshield/pages/FitnessClientDetailsPage.d.ts.map +1 -0
  60. package/dist/mybodyshield/pages/FitnessClientDetailsPage.js +192 -0
  61. package/dist/mybodyshield/pages/FitnessClientDetailsPage.js.map +1 -0
  62. package/dist/mybodyshield/pages/FitnessClientManagementPage.d.ts +2 -0
  63. package/dist/mybodyshield/pages/FitnessClientManagementPage.d.ts.map +1 -0
  64. package/dist/mybodyshield/pages/FitnessClientManagementPage.js +128 -0
  65. package/dist/mybodyshield/pages/FitnessClientManagementPage.js.map +1 -0
  66. package/dist/mybodyshield/pages/FitnessDashboardPage.d.ts +2 -0
  67. package/dist/mybodyshield/pages/FitnessDashboardPage.d.ts.map +1 -0
  68. package/dist/mybodyshield/pages/FitnessDashboardPage.js +156 -0
  69. package/dist/mybodyshield/pages/FitnessDashboardPage.js.map +1 -0
  70. package/dist/mybodyshield/pages/FitnessReportsPage.d.ts +2 -0
  71. package/dist/mybodyshield/pages/FitnessReportsPage.d.ts.map +1 -0
  72. package/dist/mybodyshield/pages/FitnessReportsPage.js +138 -0
  73. package/dist/mybodyshield/pages/FitnessReportsPage.js.map +1 -0
  74. package/dist/mybodyshield/pages/FitnessWorkoutPlansPage.d.ts +2 -0
  75. package/dist/mybodyshield/pages/FitnessWorkoutPlansPage.d.ts.map +1 -0
  76. package/dist/mybodyshield/pages/FitnessWorkoutPlansPage.js +176 -0
  77. package/dist/mybodyshield/pages/FitnessWorkoutPlansPage.js.map +1 -0
  78. package/dist/mybodyshield/pages/PatientAppointmentsPage.d.ts +2 -0
  79. package/dist/mybodyshield/pages/PatientAppointmentsPage.d.ts.map +1 -0
  80. package/dist/mybodyshield/pages/PatientAppointmentsPage.js +132 -0
  81. package/dist/mybodyshield/pages/PatientAppointmentsPage.js.map +1 -0
  82. package/dist/mybodyshield/pages/PatientDashboardPage.d.ts +2 -0
  83. package/dist/mybodyshield/pages/PatientDashboardPage.d.ts.map +1 -0
  84. package/dist/mybodyshield/pages/PatientDashboardPage.js +190 -0
  85. package/dist/mybodyshield/pages/PatientDashboardPage.js.map +1 -0
  86. package/dist/mybodyshield/pages/PatientFitnessTrackingPage.d.ts +2 -0
  87. package/dist/mybodyshield/pages/PatientFitnessTrackingPage.d.ts.map +1 -0
  88. package/dist/mybodyshield/pages/PatientFitnessTrackingPage.js +137 -0
  89. package/dist/mybodyshield/pages/PatientFitnessTrackingPage.js.map +1 -0
  90. package/dist/mybodyshield/pages/PatientHealthGoalsPage.d.ts +2 -0
  91. package/dist/mybodyshield/pages/PatientHealthGoalsPage.d.ts.map +1 -0
  92. package/dist/mybodyshield/pages/PatientHealthGoalsPage.js +131 -0
  93. package/dist/mybodyshield/pages/PatientHealthGoalsPage.js.map +1 -0
  94. package/dist/mybodyshield/pages/PatientHealthOverviewPage.d.ts +2 -0
  95. package/dist/mybodyshield/pages/PatientHealthOverviewPage.d.ts.map +1 -0
  96. package/dist/mybodyshield/pages/PatientHealthOverviewPage.js +273 -0
  97. package/dist/mybodyshield/pages/PatientHealthOverviewPage.js.map +1 -0
  98. package/dist/mybodyshield/pages/PatientLabResultsPage.d.ts +2 -0
  99. package/dist/mybodyshield/pages/PatientLabResultsPage.d.ts.map +1 -0
  100. package/dist/mybodyshield/pages/PatientLabResultsPage.js +133 -0
  101. package/dist/mybodyshield/pages/PatientLabResultsPage.js.map +1 -0
  102. package/dist/mybodyshield/pages/PatientMedicationsPage.d.ts +2 -0
  103. package/dist/mybodyshield/pages/PatientMedicationsPage.d.ts.map +1 -0
  104. package/dist/mybodyshield/pages/PatientMedicationsPage.js +158 -0
  105. package/dist/mybodyshield/pages/PatientMedicationsPage.js.map +1 -0
  106. package/dist/mybodyshield/pages/PatientMentalHealthPage.d.ts +2 -0
  107. package/dist/mybodyshield/pages/PatientMentalHealthPage.d.ts.map +1 -0
  108. package/dist/mybodyshield/pages/PatientMentalHealthPage.js +152 -0
  109. package/dist/mybodyshield/pages/PatientMentalHealthPage.js.map +1 -0
  110. package/dist/mybodyshield/pages/PatientNutritionTrackingPage.d.ts +2 -0
  111. package/dist/mybodyshield/pages/PatientNutritionTrackingPage.d.ts.map +1 -0
  112. package/dist/mybodyshield/pages/PatientNutritionTrackingPage.js +141 -0
  113. package/dist/mybodyshield/pages/PatientNutritionTrackingPage.js.map +1 -0
  114. package/dist/mybodyshield/pages/PatientVitalSignsPage.d.ts +2 -0
  115. package/dist/mybodyshield/pages/PatientVitalSignsPage.d.ts.map +1 -0
  116. package/dist/mybodyshield/pages/PatientVitalSignsPage.js +160 -0
  117. package/dist/mybodyshield/pages/PatientVitalSignsPage.js.map +1 -0
  118. package/dist/mybodyshield/pages/ProviderCalendarPage.d.ts +2 -0
  119. package/dist/mybodyshield/pages/ProviderCalendarPage.d.ts.map +1 -0
  120. package/dist/mybodyshield/pages/ProviderCalendarPage.js +127 -0
  121. package/dist/mybodyshield/pages/ProviderCalendarPage.js.map +1 -0
  122. package/dist/mybodyshield/pages/ProviderCarePlansPage.d.ts +2 -0
  123. package/dist/mybodyshield/pages/ProviderCarePlansPage.d.ts.map +1 -0
  124. package/dist/mybodyshield/pages/ProviderCarePlansPage.js +153 -0
  125. package/dist/mybodyshield/pages/ProviderCarePlansPage.js.map +1 -0
  126. package/dist/mybodyshield/pages/ProviderClinicalToolsPage.d.ts +2 -0
  127. package/dist/mybodyshield/pages/ProviderClinicalToolsPage.d.ts.map +1 -0
  128. package/dist/mybodyshield/pages/ProviderClinicalToolsPage.js +174 -0
  129. package/dist/mybodyshield/pages/ProviderClinicalToolsPage.js.map +1 -0
  130. package/dist/mybodyshield/pages/ProviderDashboardPage.d.ts +2 -0
  131. package/dist/mybodyshield/pages/ProviderDashboardPage.d.ts.map +1 -0
  132. package/dist/mybodyshield/pages/ProviderDashboardPage.js +154 -0
  133. package/dist/mybodyshield/pages/ProviderDashboardPage.js.map +1 -0
  134. package/dist/mybodyshield/pages/ProviderPatientDetailsPage.d.ts +2 -0
  135. package/dist/mybodyshield/pages/ProviderPatientDetailsPage.d.ts.map +1 -0
  136. package/dist/mybodyshield/pages/ProviderPatientDetailsPage.js +295 -0
  137. package/dist/mybodyshield/pages/ProviderPatientDetailsPage.js.map +1 -0
  138. package/dist/mybodyshield/pages/ProviderPatientManagementPage.d.ts +2 -0
  139. package/dist/mybodyshield/pages/ProviderPatientManagementPage.d.ts.map +1 -0
  140. package/dist/mybodyshield/pages/ProviderPatientManagementPage.js +133 -0
  141. package/dist/mybodyshield/pages/ProviderPatientManagementPage.js.map +1 -0
  142. package/dist/mybodyshield/pages/ProviderPrescriptionsPage.d.ts +2 -0
  143. package/dist/mybodyshield/pages/ProviderPrescriptionsPage.d.ts.map +1 -0
  144. package/dist/mybodyshield/pages/ProviderPrescriptionsPage.js +138 -0
  145. package/dist/mybodyshield/pages/ProviderPrescriptionsPage.js.map +1 -0
  146. package/dist/mybodyshield/pages/ProviderReportsPage.d.ts +2 -0
  147. package/dist/mybodyshield/pages/ProviderReportsPage.d.ts.map +1 -0
  148. package/dist/mybodyshield/pages/ProviderReportsPage.js +149 -0
  149. package/dist/mybodyshield/pages/ProviderReportsPage.js.map +1 -0
  150. package/dist/mybodyshield/pages/SharedAppointmentsPage.d.ts +2 -0
  151. package/dist/mybodyshield/pages/SharedAppointmentsPage.d.ts.map +1 -0
  152. package/dist/mybodyshield/pages/SharedAppointmentsPage.js +129 -0
  153. package/dist/mybodyshield/pages/SharedAppointmentsPage.js.map +1 -0
  154. package/dist/mybodyshield/pages/SharedCommunityPage.d.ts +2 -0
  155. package/dist/mybodyshield/pages/SharedCommunityPage.d.ts.map +1 -0
  156. package/dist/mybodyshield/pages/SharedCommunityPage.js +152 -0
  157. package/dist/mybodyshield/pages/SharedCommunityPage.js.map +1 -0
  158. package/dist/mybodyshield/pages/SharedEmergencyAlertsPage.d.ts +2 -0
  159. package/dist/mybodyshield/pages/SharedEmergencyAlertsPage.d.ts.map +1 -0
  160. package/dist/mybodyshield/pages/SharedEmergencyAlertsPage.js +165 -0
  161. package/dist/mybodyshield/pages/SharedEmergencyAlertsPage.js.map +1 -0
  162. package/dist/mybodyshield/pages/SharedEmergencyPage.d.ts +2 -0
  163. package/dist/mybodyshield/pages/SharedEmergencyPage.d.ts.map +1 -0
  164. package/dist/mybodyshield/pages/SharedEmergencyPage.js +183 -0
  165. package/dist/mybodyshield/pages/SharedEmergencyPage.js.map +1 -0
  166. package/dist/mybodyshield/pages/SharedHealthAnalyticsPage.d.ts +2 -0
  167. package/dist/mybodyshield/pages/SharedHealthAnalyticsPage.d.ts.map +1 -0
  168. package/dist/mybodyshield/pages/SharedHealthAnalyticsPage.js +159 -0
  169. package/dist/mybodyshield/pages/SharedHealthAnalyticsPage.js.map +1 -0
  170. package/dist/mybodyshield/pages/SharedMarketplacePage.d.ts +2 -0
  171. package/dist/mybodyshield/pages/SharedMarketplacePage.d.ts.map +1 -0
  172. package/dist/mybodyshield/pages/SharedMarketplacePage.js +193 -0
  173. package/dist/mybodyshield/pages/SharedMarketplacePage.js.map +1 -0
  174. package/dist/mybodyshield/pages/SharedMessagesPage.d.ts +2 -0
  175. package/dist/mybodyshield/pages/SharedMessagesPage.d.ts.map +1 -0
  176. package/dist/mybodyshield/pages/SharedMessagesPage.js +156 -0
  177. package/dist/mybodyshield/pages/SharedMessagesPage.js.map +1 -0
  178. package/dist/mybodyshield/pages/WellnessAssessmentsPage.d.ts +2 -0
  179. package/dist/mybodyshield/pages/WellnessAssessmentsPage.d.ts.map +1 -0
  180. package/dist/mybodyshield/pages/WellnessAssessmentsPage.js +147 -0
  181. package/dist/mybodyshield/pages/WellnessAssessmentsPage.js.map +1 -0
  182. package/dist/mybodyshield/pages/WellnessClientsPage.d.ts +2 -0
  183. package/dist/mybodyshield/pages/WellnessClientsPage.d.ts.map +1 -0
  184. package/dist/mybodyshield/pages/WellnessClientsPage.js +182 -0
  185. package/dist/mybodyshield/pages/WellnessClientsPage.js.map +1 -0
  186. package/dist/mybodyshield/pages/WellnessDashboardPage.d.ts +2 -0
  187. package/dist/mybodyshield/pages/WellnessDashboardPage.d.ts.map +1 -0
  188. package/dist/mybodyshield/pages/WellnessDashboardPage.js +136 -0
  189. package/dist/mybodyshield/pages/WellnessDashboardPage.js.map +1 -0
  190. package/dist/mybodyshield/pages/WellnessProgramsPage.d.ts +2 -0
  191. package/dist/mybodyshield/pages/WellnessProgramsPage.d.ts.map +1 -0
  192. package/dist/mybodyshield/pages/WellnessProgramsPage.js +140 -0
  193. package/dist/mybodyshield/pages/WellnessProgramsPage.js.map +1 -0
  194. package/dist/mybodyshield/providers/MyBodyShieldProvider.d.ts +6 -0
  195. package/dist/mybodyshield/providers/MyBodyShieldProvider.d.ts.map +1 -0
  196. package/dist/mybodyshield/providers/MyBodyShieldProvider.js +27 -0
  197. package/dist/mybodyshield/providers/MyBodyShieldProvider.js.map +1 -0
  198. package/dist/mybodyshield/store/mybodyshieldStore.d.ts +197 -0
  199. package/dist/mybodyshield/store/mybodyshieldStore.d.ts.map +1 -0
  200. package/dist/mybodyshield/store/mybodyshieldStore.js +710 -0
  201. package/dist/mybodyshield/store/mybodyshieldStore.js.map +1 -0
  202. package/dist/mybodyshield/types/index.d.ts +51 -0
  203. package/dist/mybodyshield/types/index.d.ts.map +1 -0
  204. package/dist/mybodyshield/utils/cn.d.ts +4 -0
  205. package/dist/mybodyshield/utils/cn.d.ts.map +1 -0
  206. package/dist/mybodyshield/utils/navigation.d.ts +2 -0
  207. package/dist/mybodyshield/utils/navigation.d.ts.map +1 -0
  208. package/dist/mybodyshield/utils/navigation.js +8 -0
  209. package/dist/mybodyshield/utils/navigation.js.map +1 -0
  210. package/package.json +107 -0
@@ -0,0 +1,153 @@
1
+ import { useMyBodyShieldStore as e } from "../store/mybodyshieldStore.js";
2
+ import { CheckCircle as t, ClipboardList as n, PauseCircle as r, TrendingUp as i } from "lucide-react";
3
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
4
+ import { Card as s, CardContent as c, CardHeader as l, CardTitle as u } from "@burdenoff/fe-libs/ui";
5
+ //#region src/mybodyshield/pages/ProviderCarePlansPage.tsx
6
+ var d = {
7
+ active: "bg-green-100 text-green-700",
8
+ completed: "bg-blue-100 text-blue-700",
9
+ "on-hold": "bg-yellow-100 text-yellow-700"
10
+ };
11
+ function f() {
12
+ let { carePlans: f } = e(), p = f.filter((e) => e.status === "active").length, m = f.filter((e) => e.status === "on-hold").length, h = f.filter((e) => e.status === "completed").length, g = f.length > 0 ? Math.round(f.reduce((e, t) => e + t.progress, 0) / f.length) : 0;
13
+ return /* @__PURE__ */ o("div", {
14
+ className: "space-y-6 p-6",
15
+ children: [
16
+ /* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("h1", {
17
+ className: "text-2xl font-semibold",
18
+ children: "Care Plans"
19
+ }), /* @__PURE__ */ a("p", {
20
+ className: "text-sm text-muted-foreground",
21
+ children: "Manage patient treatment plans, goals, and progress"
22
+ })] }),
23
+ /* @__PURE__ */ o("div", {
24
+ className: "grid gap-4 md:grid-cols-4",
25
+ children: [
26
+ /* @__PURE__ */ o(s, { children: [/* @__PURE__ */ o(l, {
27
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
28
+ children: [/* @__PURE__ */ a(u, {
29
+ className: "text-sm font-medium",
30
+ children: "Active Plans"
31
+ }), /* @__PURE__ */ a(n, { className: "h-4 w-4 text-green-500" })]
32
+ }), /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a("div", {
33
+ className: "text-2xl font-bold",
34
+ children: p
35
+ }), /* @__PURE__ */ a("p", {
36
+ className: "text-xs text-muted-foreground",
37
+ children: "In treatment"
38
+ })] })] }),
39
+ /* @__PURE__ */ o(s, { children: [/* @__PURE__ */ o(l, {
40
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
41
+ children: [/* @__PURE__ */ a(u, {
42
+ className: "text-sm font-medium",
43
+ children: "On Hold"
44
+ }), /* @__PURE__ */ a(r, { className: "h-4 w-4 text-yellow-500" })]
45
+ }), /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a("div", {
46
+ className: "text-2xl font-bold",
47
+ children: m
48
+ }), /* @__PURE__ */ a("p", {
49
+ className: "text-xs text-muted-foreground",
50
+ children: "Paused plans"
51
+ })] })] }),
52
+ /* @__PURE__ */ o(s, { children: [/* @__PURE__ */ o(l, {
53
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
54
+ children: [/* @__PURE__ */ a(u, {
55
+ className: "text-sm font-medium",
56
+ children: "Completed"
57
+ }), /* @__PURE__ */ a(t, { className: "h-4 w-4 text-blue-500" })]
58
+ }), /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a("div", {
59
+ className: "text-2xl font-bold",
60
+ children: h
61
+ }), /* @__PURE__ */ a("p", {
62
+ className: "text-xs text-muted-foreground",
63
+ children: "Successfully closed"
64
+ })] })] }),
65
+ /* @__PURE__ */ o(s, { children: [/* @__PURE__ */ o(l, {
66
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
67
+ children: [/* @__PURE__ */ a(u, {
68
+ className: "text-sm font-medium",
69
+ children: "Avg Progress"
70
+ }), /* @__PURE__ */ a(i, { className: "h-4 w-4 text-purple-500" })]
71
+ }), /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ o("div", {
72
+ className: "text-2xl font-bold",
73
+ children: [g, "%"]
74
+ }), /* @__PURE__ */ a("p", {
75
+ className: "text-xs text-muted-foreground",
76
+ children: "Across all plans"
77
+ })] })] })
78
+ ]
79
+ }),
80
+ /* @__PURE__ */ o(s, { children: [/* @__PURE__ */ a(l, { children: /* @__PURE__ */ a(u, { children: "Care Plan Details" }) }), /* @__PURE__ */ a(c, { children: /* @__PURE__ */ a("div", {
81
+ className: "space-y-4",
82
+ children: f.map((e) => /* @__PURE__ */ o("div", {
83
+ className: "p-4 rounded-lg border",
84
+ children: [
85
+ /* @__PURE__ */ o("div", {
86
+ className: "flex items-center justify-between mb-3",
87
+ children: [/* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("p", {
88
+ className: "text-sm font-medium",
89
+ children: e.patientName
90
+ }), /* @__PURE__ */ o("p", {
91
+ className: "text-xs text-muted-foreground",
92
+ children: [
93
+ e.condition,
94
+ " · ",
95
+ e.providerName
96
+ ]
97
+ })] }), /* @__PURE__ */ a("span", {
98
+ className: `text-xs font-medium px-2 py-0.5 rounded-full ${d[e.status]}`,
99
+ children: e.status
100
+ })]
101
+ }),
102
+ /* @__PURE__ */ o("div", {
103
+ className: "flex items-center gap-3 mb-3",
104
+ children: [/* @__PURE__ */ a("div", {
105
+ className: "flex-1 h-2 bg-muted rounded-full overflow-hidden",
106
+ children: /* @__PURE__ */ a("div", {
107
+ className: "h-2 bg-primary rounded-full",
108
+ style: { width: `${e.progress}%` }
109
+ })
110
+ }), /* @__PURE__ */ o("span", {
111
+ className: "text-xs font-medium",
112
+ children: [e.progress, "%"]
113
+ })]
114
+ }),
115
+ /* @__PURE__ */ o("div", {
116
+ className: "grid gap-2 md:grid-cols-2",
117
+ children: [/* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("p", {
118
+ className: "text-xs font-medium mb-1",
119
+ children: "Goals"
120
+ }), e.goals.map((e) => /* @__PURE__ */ o("div", {
121
+ className: "flex items-center gap-2 text-xs text-muted-foreground",
122
+ children: [
123
+ /* @__PURE__ */ a("div", { className: `h-1.5 w-1.5 rounded-full ${e.status === "completed" ? "bg-green-500" : "bg-yellow-500"}` }),
124
+ e.description,
125
+ " (",
126
+ e.progress,
127
+ "%)"
128
+ ]
129
+ }, e.id))] }), /* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("p", {
130
+ className: "text-xs font-medium mb-1",
131
+ children: "Treatments"
132
+ }), e.treatments.map((e) => /* @__PURE__ */ o("div", {
133
+ className: "text-xs text-muted-foreground",
134
+ children: [
135
+ e.type,
136
+ ": ",
137
+ e.description,
138
+ " (",
139
+ e.frequency,
140
+ ")"
141
+ ]
142
+ }, e.id))] })]
143
+ })
144
+ ]
145
+ }, e.id))
146
+ }) })] })
147
+ ]
148
+ });
149
+ }
150
+ //#endregion
151
+ export { f as ProviderCarePlansPage };
152
+
153
+ //# sourceMappingURL=ProviderCarePlansPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderCarePlansPage.js","names":[],"sources":["../../../src/mybodyshield/pages/ProviderCarePlansPage.tsx"],"sourcesContent":["import { Card, CardContent, CardHeader, CardTitle } from '@burdenoff/fe-libs/ui';\nimport { ClipboardList, CheckCircle, PauseCircle, TrendingUp } from 'lucide-react';\nimport { useMyBodyShieldStore } from '../store/mybodyshieldStore';\n\nconst statusColors: Record<string, string> = {\n active: 'bg-green-100 text-green-700',\n completed: 'bg-blue-100 text-blue-700',\n 'on-hold': 'bg-yellow-100 text-yellow-700',\n};\n\nexport function ProviderCarePlansPage() {\n const { carePlans } = useMyBodyShieldStore();\n const active = carePlans.filter((c) => c.status === 'active').length;\n const onHold = carePlans.filter((c) => c.status === 'on-hold').length;\n const completed = carePlans.filter((c) => c.status === 'completed').length;\n const avgProgress =\n carePlans.length > 0\n ? Math.round(carePlans.reduce((a, c) => a + c.progress, 0) / carePlans.length)\n : 0;\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Care Plans</h1>\n <p className=\"text-sm text-muted-foreground\">\n Manage patient treatment plans, goals, and progress\n </p>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Active Plans</CardTitle>\n <ClipboardList className=\"h-4 w-4 text-green-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{active}</div>\n <p className=\"text-xs text-muted-foreground\">In treatment</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">On Hold</CardTitle>\n <PauseCircle className=\"h-4 w-4 text-yellow-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{onHold}</div>\n <p className=\"text-xs text-muted-foreground\">Paused plans</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Completed</CardTitle>\n <CheckCircle className=\"h-4 w-4 text-blue-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{completed}</div>\n <p className=\"text-xs text-muted-foreground\">Successfully closed</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Avg Progress</CardTitle>\n <TrendingUp className=\"h-4 w-4 text-purple-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{avgProgress}%</div>\n <p className=\"text-xs text-muted-foreground\">Across all plans</p>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Care Plan Details</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-4\">\n {carePlans.map((plan) => (\n <div key={plan.id} className=\"p-4 rounded-lg border\">\n <div className=\"flex items-center justify-between mb-3\">\n <div>\n <p className=\"text-sm font-medium\">{plan.patientName}</p>\n <p className=\"text-xs text-muted-foreground\">\n {plan.condition} &middot; {plan.providerName}\n </p>\n </div>\n <span\n className={`text-xs font-medium px-2 py-0.5 rounded-full ${statusColors[plan.status]}`}\n >\n {plan.status}\n </span>\n </div>\n <div className=\"flex items-center gap-3 mb-3\">\n <div className=\"flex-1 h-2 bg-muted rounded-full overflow-hidden\">\n <div\n className=\"h-2 bg-primary rounded-full\"\n style={{ width: `${plan.progress}%` }}\n />\n </div>\n <span className=\"text-xs font-medium\">{plan.progress}%</span>\n </div>\n <div className=\"grid gap-2 md:grid-cols-2\">\n <div>\n <p className=\"text-xs font-medium mb-1\">Goals</p>\n {plan.goals.map((g) => (\n <div\n key={g.id}\n className=\"flex items-center gap-2 text-xs text-muted-foreground\"\n >\n <div\n className={`h-1.5 w-1.5 rounded-full ${g.status === 'completed' ? 'bg-green-500' : 'bg-yellow-500'}`}\n />\n {g.description} ({g.progress}%)\n </div>\n ))}\n </div>\n <div>\n <p className=\"text-xs font-medium mb-1\">Treatments</p>\n {plan.treatments.map((t) => (\n <div key={t.id} className=\"text-xs text-muted-foreground\">\n {t.type}: {t.description} ({t.frequency})\n </div>\n ))}\n </div>\n </div>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function ProviderClinicalToolsPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=ProviderClinicalToolsPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderClinicalToolsPage.d.ts","sourceRoot":"","sources":["../../../src/mybodyshield/pages/ProviderClinicalToolsPage.tsx"],"names":[],"mappings":"AAmFA,wBAAgB,yBAAyB,4CAoFxC"}
@@ -0,0 +1,174 @@
1
+ import { AlertTriangle as e, BookOpen as t, Brain as n, Calculator as r, ClipboardCheck as i, FileSearch as a, FlaskConical as o, HeartPulse as s, Pill as c, Shield as l, Stethoscope as u, Wrench as d } from "lucide-react";
2
+ import { jsx as f, jsxs as p } from "react/jsx-runtime";
3
+ import { Card as m, CardContent as h, CardHeader as g, CardTitle as _ } from "@burdenoff/fe-libs/ui";
4
+ //#region src/mybodyshield/pages/ProviderClinicalToolsPage.tsx
5
+ var v = [
6
+ {
7
+ id: 1,
8
+ name: "Drug Interaction Checker",
9
+ description: "Check potential interactions between multiple medications",
10
+ icon: c,
11
+ color: "bg-red-100 text-red-600",
12
+ usageCount: 342
13
+ },
14
+ {
15
+ id: 2,
16
+ name: "Dosage Calculator",
17
+ description: "Weight-based and renal-adjusted dosage calculations",
18
+ icon: r,
19
+ color: "bg-blue-100 text-blue-600",
20
+ usageCount: 289
21
+ },
22
+ {
23
+ id: 3,
24
+ name: "Cardiovascular Risk Assessment",
25
+ description: "ASCVD 10-year risk score calculator",
26
+ icon: s,
27
+ color: "bg-pink-100 text-pink-600",
28
+ usageCount: 156
29
+ },
30
+ {
31
+ id: 4,
32
+ name: "Clinical Guidelines Library",
33
+ description: "AHA, ADA, and specialty-specific guidelines",
34
+ icon: t,
35
+ color: "bg-green-100 text-green-600",
36
+ usageCount: 478
37
+ },
38
+ {
39
+ id: 5,
40
+ name: "Lab Result Interpreter",
41
+ description: "AI-assisted interpretation of lab panels",
42
+ icon: o,
43
+ color: "bg-purple-100 text-purple-600",
44
+ usageCount: 234
45
+ },
46
+ {
47
+ id: 6,
48
+ name: "Differential Diagnosis Tool",
49
+ description: "Symptom-based differential diagnosis generator",
50
+ icon: n,
51
+ color: "bg-indigo-100 text-indigo-600",
52
+ usageCount: 198
53
+ },
54
+ {
55
+ id: 7,
56
+ name: "Screening Checklist",
57
+ description: "Age and risk-factor based preventive screenings",
58
+ icon: i,
59
+ color: "bg-emerald-100 text-emerald-600",
60
+ usageCount: 167
61
+ },
62
+ {
63
+ id: 8,
64
+ name: "Clinical Note Templates",
65
+ description: "SOAP notes, H&P, and specialty templates",
66
+ icon: a,
67
+ color: "bg-orange-100 text-orange-600",
68
+ usageCount: 512
69
+ }
70
+ ];
71
+ function y() {
72
+ return /* @__PURE__ */ p("div", {
73
+ className: "space-y-6 p-6",
74
+ children: [
75
+ /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("h1", {
76
+ className: "text-2xl font-semibold",
77
+ children: "Clinical Tools"
78
+ }), /* @__PURE__ */ f("p", {
79
+ className: "text-sm text-muted-foreground",
80
+ children: "Clinical decision support and point-of-care tools"
81
+ })] }),
82
+ /* @__PURE__ */ p("div", {
83
+ className: "grid gap-4 md:grid-cols-4",
84
+ children: [
85
+ /* @__PURE__ */ p(m, { children: [/* @__PURE__ */ p(g, {
86
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
87
+ children: [/* @__PURE__ */ f(_, {
88
+ className: "text-sm font-medium",
89
+ children: "Available Tools"
90
+ }), /* @__PURE__ */ f(d, { className: "h-4 w-4 text-blue-500" })]
91
+ }), /* @__PURE__ */ p(h, { children: [/* @__PURE__ */ f("div", {
92
+ className: "text-2xl font-bold",
93
+ children: "12"
94
+ }), /* @__PURE__ */ f("p", {
95
+ className: "text-xs text-muted-foreground",
96
+ children: "Clinical support tools"
97
+ })] })] }),
98
+ /* @__PURE__ */ p(m, { children: [/* @__PURE__ */ p(g, {
99
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
100
+ children: [/* @__PURE__ */ f(_, {
101
+ className: "text-sm font-medium",
102
+ children: "Assessments Run"
103
+ }), /* @__PURE__ */ f(u, { className: "h-4 w-4 text-green-500" })]
104
+ }), /* @__PURE__ */ p(h, { children: [/* @__PURE__ */ f("div", {
105
+ className: "text-2xl font-bold",
106
+ children: "156"
107
+ }), /* @__PURE__ */ f("p", {
108
+ className: "text-xs text-muted-foreground",
109
+ children: "This month"
110
+ })] })] }),
111
+ /* @__PURE__ */ p(m, { children: [/* @__PURE__ */ p(g, {
112
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
113
+ children: [/* @__PURE__ */ f(_, {
114
+ className: "text-sm font-medium",
115
+ children: "Clinical Alerts"
116
+ }), /* @__PURE__ */ f(e, { className: "h-4 w-4 text-orange-500" })]
117
+ }), /* @__PURE__ */ p(h, { children: [/* @__PURE__ */ f("div", {
118
+ className: "text-2xl font-bold",
119
+ children: "8"
120
+ }), /* @__PURE__ */ f("p", {
121
+ className: "text-xs text-muted-foreground",
122
+ children: "Active alerts"
123
+ })] })] }),
124
+ /* @__PURE__ */ p(m, { children: [/* @__PURE__ */ p(g, {
125
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
126
+ children: [/* @__PURE__ */ f(_, {
127
+ className: "text-sm font-medium",
128
+ children: "Decision Trees"
129
+ }), /* @__PURE__ */ f(l, { className: "h-4 w-4 text-purple-500" })]
130
+ }), /* @__PURE__ */ p(h, { children: [/* @__PURE__ */ f("div", {
131
+ className: "text-2xl font-bold",
132
+ children: "5"
133
+ }), /* @__PURE__ */ f("p", {
134
+ className: "text-xs text-muted-foreground",
135
+ children: "Evidence-based protocols"
136
+ })] })] })
137
+ ]
138
+ }),
139
+ /* @__PURE__ */ p(m, { children: [/* @__PURE__ */ f(g, { children: /* @__PURE__ */ f(_, { children: "Clinical Decision Support Tools" }) }), /* @__PURE__ */ f(h, { children: /* @__PURE__ */ f("div", {
140
+ className: "grid gap-3 md:grid-cols-2",
141
+ children: v.map((e) => {
142
+ let t = e.icon;
143
+ return /* @__PURE__ */ p("div", {
144
+ className: "flex items-start gap-3 p-3 rounded-lg border hover:bg-muted/50 transition-colors cursor-pointer",
145
+ children: [/* @__PURE__ */ f("div", {
146
+ className: `p-2 rounded-lg ${e.color}`,
147
+ children: /* @__PURE__ */ f(t, { className: "h-5 w-5" })
148
+ }), /* @__PURE__ */ p("div", {
149
+ className: "flex-1",
150
+ children: [
151
+ /* @__PURE__ */ f("p", {
152
+ className: "text-sm font-medium",
153
+ children: e.name
154
+ }),
155
+ /* @__PURE__ */ f("p", {
156
+ className: "text-xs text-muted-foreground",
157
+ children: e.description
158
+ }),
159
+ /* @__PURE__ */ p("p", {
160
+ className: "text-xs text-muted-foreground mt-1",
161
+ children: [e.usageCount, " uses this month"]
162
+ })
163
+ ]
164
+ })]
165
+ }, e.id);
166
+ })
167
+ }) })] })
168
+ ]
169
+ });
170
+ }
171
+ //#endregion
172
+ export { y as ProviderClinicalToolsPage };
173
+
174
+ //# sourceMappingURL=ProviderClinicalToolsPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderClinicalToolsPage.js","names":[],"sources":["../../../src/mybodyshield/pages/ProviderClinicalToolsPage.tsx"],"sourcesContent":["import { Card, CardContent, CardHeader, CardTitle } from '@burdenoff/fe-libs/ui';\nimport {\n Wrench,\n FlaskConical,\n Calculator,\n AlertTriangle,\n BookOpen,\n Stethoscope,\n Pill,\n FileSearch,\n HeartPulse,\n ClipboardCheck,\n Brain,\n Shield,\n} from 'lucide-react';\n\nconst clinicalTools = [\n {\n id: 1,\n name: 'Drug Interaction Checker',\n description: 'Check potential interactions between multiple medications',\n icon: Pill,\n color: 'bg-red-100 text-red-600',\n usageCount: 342,\n },\n {\n id: 2,\n name: 'Dosage Calculator',\n description: 'Weight-based and renal-adjusted dosage calculations',\n icon: Calculator,\n color: 'bg-blue-100 text-blue-600',\n usageCount: 289,\n },\n {\n id: 3,\n name: 'Cardiovascular Risk Assessment',\n description: 'ASCVD 10-year risk score calculator',\n icon: HeartPulse,\n color: 'bg-pink-100 text-pink-600',\n usageCount: 156,\n },\n {\n id: 4,\n name: 'Clinical Guidelines Library',\n description: 'AHA, ADA, and specialty-specific guidelines',\n icon: BookOpen,\n color: 'bg-green-100 text-green-600',\n usageCount: 478,\n },\n {\n id: 5,\n name: 'Lab Result Interpreter',\n description: 'AI-assisted interpretation of lab panels',\n icon: FlaskConical,\n color: 'bg-purple-100 text-purple-600',\n usageCount: 234,\n },\n {\n id: 6,\n name: 'Differential Diagnosis Tool',\n description: 'Symptom-based differential diagnosis generator',\n icon: Brain,\n color: 'bg-indigo-100 text-indigo-600',\n usageCount: 198,\n },\n {\n id: 7,\n name: 'Screening Checklist',\n description: 'Age and risk-factor based preventive screenings',\n icon: ClipboardCheck,\n color: 'bg-emerald-100 text-emerald-600',\n usageCount: 167,\n },\n {\n id: 8,\n name: 'Clinical Note Templates',\n description: 'SOAP notes, H&P, and specialty templates',\n icon: FileSearch,\n color: 'bg-orange-100 text-orange-600',\n usageCount: 512,\n },\n];\n\nexport function ProviderClinicalToolsPage() {\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Clinical Tools</h1>\n <p className=\"text-sm text-muted-foreground\">\n Clinical decision support and point-of-care tools\n </p>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Available Tools</CardTitle>\n <Wrench className=\"h-4 w-4 text-blue-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">12</div>\n <p className=\"text-xs text-muted-foreground\">Clinical support tools</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Assessments Run</CardTitle>\n <Stethoscope className=\"h-4 w-4 text-green-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">156</div>\n <p className=\"text-xs text-muted-foreground\">This month</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Clinical Alerts</CardTitle>\n <AlertTriangle className=\"h-4 w-4 text-orange-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">8</div>\n <p className=\"text-xs text-muted-foreground\">Active alerts</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Decision Trees</CardTitle>\n <Shield className=\"h-4 w-4 text-purple-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">5</div>\n <p className=\"text-xs text-muted-foreground\">Evidence-based protocols</p>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Clinical Decision Support Tools</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"grid gap-3 md:grid-cols-2\">\n {clinicalTools.map((tool) => {\n const Icon = tool.icon;\n return (\n <div\n key={tool.id}\n className=\"flex items-start gap-3 p-3 rounded-lg border hover:bg-muted/50 transition-colors cursor-pointer\"\n >\n <div className={`p-2 rounded-lg ${tool.color}`}>\n <Icon className=\"h-5 w-5\" />\n </div>\n <div className=\"flex-1\">\n <p className=\"text-sm font-medium\">{tool.name}</p>\n <p className=\"text-xs text-muted-foreground\">{tool.description}</p>\n <p className=\"text-xs text-muted-foreground mt-1\">\n {tool.usageCount} uses this month\n </p>\n </div>\n </div>\n );\n })}\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function ProviderDashboardPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=ProviderDashboardPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderDashboardPage.d.ts","sourceRoot":"","sources":["../../../src/mybodyshield/pages/ProviderDashboardPage.tsx"],"names":[],"mappings":"AAqBA,wBAAgB,qBAAqB,4CA+JpC"}
@@ -0,0 +1,154 @@
1
+ import { useMyBodyShieldStore as e } from "../store/mybodyshieldStore.js";
2
+ import { useI18n as t } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
3
+ import { AlertCircle as n, ClipboardList as r, Clock as i, FileText as a, Stethoscope as o, Users as s } from "lucide-react";
4
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
5
+ import { Card as u, CardContent as d, CardHeader as f, CardTitle as p } from "@burdenoff/fe-libs/ui";
6
+ //#region src/mybodyshield/pages/ProviderDashboardPage.tsx
7
+ var m = [
8
+ {
9
+ id: 1,
10
+ patient: "Sarah Johnson",
11
+ alert: "A1C trending upward (7.2%)",
12
+ severity: "warning"
13
+ },
14
+ {
15
+ id: 2,
16
+ patient: "Michael Chen",
17
+ alert: "Cholesterol above target (245 mg/dL)",
18
+ severity: "warning"
19
+ },
20
+ {
21
+ id: 3,
22
+ patient: "Robert Wilson",
23
+ alert: "Overdue for rheumatology follow-up",
24
+ severity: "info"
25
+ }
26
+ ];
27
+ function h() {
28
+ let { t: h } = t(), g = (e, t) => {
29
+ let n = h(e);
30
+ return n === e ? t : n;
31
+ }, { appointments: _, carePlans: v, prescriptions: y } = e(), b = _.filter((e) => e.status !== "cancelled"), x = (e) => {
32
+ switch (e) {
33
+ case "telemedicine": return g("mybodyshield.providerDashboard.schedule.types.telemedicine", "telemedicine");
34
+ case "in_person": return g("mybodyshield.providerDashboard.schedule.types.inPerson", "in person");
35
+ default: return e;
36
+ }
37
+ };
38
+ return /* @__PURE__ */ l("div", {
39
+ className: "space-y-6 p-6",
40
+ children: [
41
+ /* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("h1", {
42
+ className: "text-2xl font-semibold",
43
+ children: g("mybodyshield.providerDashboard.title", "Provider Dashboard")
44
+ }), /* @__PURE__ */ c("p", {
45
+ className: "text-sm text-muted-foreground",
46
+ children: g("mybodyshield.providerDashboard.description", "Your clinical overview and today's schedule")
47
+ })] }),
48
+ /* @__PURE__ */ l("div", {
49
+ className: "grid gap-4 md:grid-cols-4",
50
+ children: [
51
+ /* @__PURE__ */ l(u, { children: [/* @__PURE__ */ l(f, {
52
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
53
+ children: [/* @__PURE__ */ c(p, {
54
+ className: "text-sm font-medium",
55
+ children: g("mybodyshield.providerDashboard.stats.todaysPatients", "Today's Patients")
56
+ }), /* @__PURE__ */ c(s, { className: "h-4 w-4 text-blue-500" })]
57
+ }), /* @__PURE__ */ l(d, { children: [/* @__PURE__ */ c("div", {
58
+ className: "text-2xl font-bold",
59
+ children: b.length
60
+ }), /* @__PURE__ */ c("p", {
61
+ className: "text-xs text-muted-foreground",
62
+ children: g("mybodyshield.providerDashboard.stats.todaysPatientsHint", "Scheduled appointments")
63
+ })] })] }),
64
+ /* @__PURE__ */ l(u, { children: [/* @__PURE__ */ l(f, {
65
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
66
+ children: [/* @__PURE__ */ c(p, {
67
+ className: "text-sm font-medium",
68
+ children: g("mybodyshield.providerDashboard.stats.activeCarePlans", "Active Care Plans")
69
+ }), /* @__PURE__ */ c(r, { className: "h-4 w-4 text-green-500" })]
70
+ }), /* @__PURE__ */ l(d, { children: [/* @__PURE__ */ c("div", {
71
+ className: "text-2xl font-bold",
72
+ children: v.filter((e) => e.status === "active").length
73
+ }), /* @__PURE__ */ c("p", {
74
+ className: "text-xs text-muted-foreground",
75
+ children: g("mybodyshield.providerDashboard.stats.activeCarePlansHint", "Under your management")
76
+ })] })] }),
77
+ /* @__PURE__ */ l(u, { children: [/* @__PURE__ */ l(f, {
78
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
79
+ children: [/* @__PURE__ */ c(p, {
80
+ className: "text-sm font-medium",
81
+ children: g("mybodyshield.providerDashboard.stats.prescriptions", "Prescriptions")
82
+ }), /* @__PURE__ */ c(a, { className: "h-4 w-4 text-purple-500" })]
83
+ }), /* @__PURE__ */ l(d, { children: [/* @__PURE__ */ c("div", {
84
+ className: "text-2xl font-bold",
85
+ children: y.length
86
+ }), /* @__PURE__ */ c("p", {
87
+ className: "text-xs text-muted-foreground",
88
+ children: g("mybodyshield.providerDashboard.stats.prescriptionsHint", "Active prescriptions")
89
+ })] })] }),
90
+ /* @__PURE__ */ l(u, { children: [/* @__PURE__ */ l(f, {
91
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
92
+ children: [/* @__PURE__ */ c(p, {
93
+ className: "text-sm font-medium",
94
+ children: g("mybodyshield.providerDashboard.stats.pendingReviews", "Pending Reviews")
95
+ }), /* @__PURE__ */ c(i, { className: "h-4 w-4 text-orange-500" })]
96
+ }), /* @__PURE__ */ l(d, { children: [/* @__PURE__ */ c("div", {
97
+ className: "text-2xl font-bold",
98
+ children: "3"
99
+ }), /* @__PURE__ */ c("p", {
100
+ className: "text-xs text-muted-foreground",
101
+ children: g("mybodyshield.providerDashboard.stats.pendingReviewsHint", "Lab results & referrals")
102
+ })] })] })
103
+ ]
104
+ }),
105
+ /* @__PURE__ */ l("div", {
106
+ className: "grid gap-4 md:grid-cols-2",
107
+ children: [/* @__PURE__ */ l(u, { children: [/* @__PURE__ */ c(f, { children: /* @__PURE__ */ l(p, {
108
+ className: "flex items-center gap-2",
109
+ children: [/* @__PURE__ */ c(o, { className: "h-5 w-5" }), g("mybodyshield.providerDashboard.sections.todaysSchedule", "Today's Schedule")]
110
+ }) }), /* @__PURE__ */ c(d, { children: /* @__PURE__ */ c("div", {
111
+ className: "space-y-3",
112
+ children: b.map((e) => /* @__PURE__ */ l("div", {
113
+ className: "flex items-center justify-between p-3 rounded-lg bg-muted/50",
114
+ children: [/* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("p", {
115
+ className: "text-sm font-medium",
116
+ children: e.patientName
117
+ }), /* @__PURE__ */ c("p", {
118
+ className: "text-xs text-muted-foreground",
119
+ children: e.reason
120
+ })] }), /* @__PURE__ */ l("div", {
121
+ className: "text-right",
122
+ children: [/* @__PURE__ */ c("p", {
123
+ className: "text-sm font-medium",
124
+ children: e.time
125
+ }), /* @__PURE__ */ c("span", {
126
+ className: `text-xs px-2 py-0.5 rounded-full ${e.type === "telemedicine" ? "bg-cyan-100 text-cyan-700" : "bg-blue-100 text-blue-700"}`,
127
+ children: x(e.type)
128
+ })]
129
+ })]
130
+ }, e.id))
131
+ }) })] }), /* @__PURE__ */ l(u, { children: [/* @__PURE__ */ c(f, { children: /* @__PURE__ */ l(p, {
132
+ className: "flex items-center gap-2",
133
+ children: [/* @__PURE__ */ c(n, { className: "h-5 w-5" }), g("mybodyshield.providerDashboard.sections.patientAlerts", "Patient Alerts")]
134
+ }) }), /* @__PURE__ */ c(d, { children: /* @__PURE__ */ c("div", {
135
+ className: "space-y-3",
136
+ children: m.map((e) => /* @__PURE__ */ l("div", {
137
+ className: `p-3 rounded-lg border ${e.severity === "warning" ? "bg-orange-50 border-orange-200" : "bg-blue-50 border-blue-200"}`,
138
+ children: [/* @__PURE__ */ c("p", {
139
+ className: "text-sm font-medium",
140
+ children: e.patient
141
+ }), /* @__PURE__ */ c("p", {
142
+ className: "text-xs text-muted-foreground mt-1",
143
+ children: e.alert
144
+ })]
145
+ }, e.id))
146
+ }) })] })]
147
+ })
148
+ ]
149
+ });
150
+ }
151
+ //#endregion
152
+ export { h as ProviderDashboardPage };
153
+
154
+ //# sourceMappingURL=ProviderDashboardPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderDashboardPage.js","names":[],"sources":["../../../src/mybodyshield/pages/ProviderDashboardPage.tsx"],"sourcesContent":["import { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { Card, CardContent, CardHeader, CardTitle } from '@burdenoff/fe-libs/ui';\nimport { Users, ClipboardList, FileText, Clock, Stethoscope, AlertCircle } from 'lucide-react';\nimport { useMyBodyShieldStore } from '../store/mybodyshieldStore';\n\nconst patientAlerts = [\n { id: 1, patient: 'Sarah Johnson', alert: 'A1C trending upward (7.2%)', severity: 'warning' },\n {\n id: 2,\n patient: 'Michael Chen',\n alert: 'Cholesterol above target (245 mg/dL)',\n severity: 'warning',\n },\n {\n id: 3,\n patient: 'Robert Wilson',\n alert: 'Overdue for rheumatology follow-up',\n severity: 'info',\n },\n];\n\nexport function ProviderDashboardPage() {\n const { t: translate } = useI18n();\n const t = (key: string, fallback: string): string => {\n const value = translate(key);\n return value === key ? fallback : value;\n };\n const { appointments, carePlans, prescriptions } = useMyBodyShieldStore();\n const todayAppts = appointments.filter((a) => a.status !== 'cancelled');\n const appointmentTypeLabel = (type: string): string => {\n switch (type) {\n case 'telemedicine':\n return t('mybodyshield.providerDashboard.schedule.types.telemedicine', 'telemedicine');\n case 'in_person':\n return t('mybodyshield.providerDashboard.schedule.types.inPerson', 'in person');\n default:\n return type;\n }\n };\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n {t('mybodyshield.providerDashboard.title', 'Provider Dashboard')}\n </h1>\n <p className=\"text-sm text-muted-foreground\">\n {t(\n 'mybodyshield.providerDashboard.description',\n \"Your clinical overview and today's schedule\"\n )}\n </p>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">\n {t('mybodyshield.providerDashboard.stats.todaysPatients', \"Today's Patients\")}\n </CardTitle>\n <Users className=\"h-4 w-4 text-blue-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{todayAppts.length}</div>\n <p className=\"text-xs text-muted-foreground\">\n {t(\n 'mybodyshield.providerDashboard.stats.todaysPatientsHint',\n 'Scheduled appointments'\n )}\n </p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">\n {t('mybodyshield.providerDashboard.stats.activeCarePlans', 'Active Care Plans')}\n </CardTitle>\n <ClipboardList className=\"h-4 w-4 text-green-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">\n {carePlans.filter((c) => c.status === 'active').length}\n </div>\n <p className=\"text-xs text-muted-foreground\">\n {t(\n 'mybodyshield.providerDashboard.stats.activeCarePlansHint',\n 'Under your management'\n )}\n </p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">\n {t('mybodyshield.providerDashboard.stats.prescriptions', 'Prescriptions')}\n </CardTitle>\n <FileText className=\"h-4 w-4 text-purple-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{prescriptions.length}</div>\n <p className=\"text-xs text-muted-foreground\">\n {t('mybodyshield.providerDashboard.stats.prescriptionsHint', 'Active prescriptions')}\n </p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">\n {t('mybodyshield.providerDashboard.stats.pendingReviews', 'Pending Reviews')}\n </CardTitle>\n <Clock className=\"h-4 w-4 text-orange-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">3</div>\n <p className=\"text-xs text-muted-foreground\">\n {t(\n 'mybodyshield.providerDashboard.stats.pendingReviewsHint',\n 'Lab results & referrals'\n )}\n </p>\n </CardContent>\n </Card>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Stethoscope className=\"h-5 w-5\" />\n {t('mybodyshield.providerDashboard.sections.todaysSchedule', \"Today's Schedule\")}\n </CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-3\">\n {todayAppts.map((appt) => (\n <div\n key={appt.id}\n className=\"flex items-center justify-between p-3 rounded-lg bg-muted/50\"\n >\n <div>\n <p className=\"text-sm font-medium\">{appt.patientName}</p>\n <p className=\"text-xs text-muted-foreground\">{appt.reason}</p>\n </div>\n <div className=\"text-right\">\n <p className=\"text-sm font-medium\">{appt.time}</p>\n <span\n className={`text-xs px-2 py-0.5 rounded-full ${appt.type === 'telemedicine' ? 'bg-cyan-100 text-cyan-700' : 'bg-blue-100 text-blue-700'}`}\n >\n {appointmentTypeLabel(appt.type)}\n </span>\n </div>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <AlertCircle className=\"h-5 w-5\" />\n {t('mybodyshield.providerDashboard.sections.patientAlerts', 'Patient Alerts')}\n </CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-3\">\n {patientAlerts.map((alert) => (\n <div\n key={alert.id}\n className={`p-3 rounded-lg border ${alert.severity === 'warning' ? 'bg-orange-50 border-orange-200' : 'bg-blue-50 border-blue-200'}`}\n >\n <p className=\"text-sm font-medium\">{alert.patient}</p>\n <p className=\"text-xs text-muted-foreground mt-1\">{alert.alert}</p>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function ProviderPatientDetailsPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=ProviderPatientDetailsPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderPatientDetailsPage.d.ts","sourceRoot":"","sources":["../../../src/mybodyshield/pages/ProviderPatientDetailsPage.tsx"],"names":[],"mappings":"AAaA,wBAAgB,0BAA0B,4CA2MzC"}