formanitor 0.1.11 → 0.2.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 (289) hide show
  1. package/dist/AddInvestigationWidget-7UGZQYI5.mjs +30 -0
  2. package/dist/AddInvestigationWidget-7UGZQYI5.mjs.map +1 -0
  3. package/dist/AddInvestigationWidget-RY62UCPM.cjs +32 -0
  4. package/dist/AddInvestigationWidget-RY62UCPM.cjs.map +1 -0
  5. package/dist/AddMedicationWidget-UG26VMUX.mjs +30 -0
  6. package/dist/AddMedicationWidget-UG26VMUX.mjs.map +1 -0
  7. package/dist/AddMedicationWidget-WPI32WAP.cjs +32 -0
  8. package/dist/AddMedicationWidget-WPI32WAP.cjs.map +1 -0
  9. package/dist/AddProcedureWidget-SF6MTRBV.cjs +278 -0
  10. package/dist/AddProcedureWidget-SF6MTRBV.cjs.map +1 -0
  11. package/dist/AddProcedureWidget-SQJUKKMK.mjs +276 -0
  12. package/dist/AddProcedureWidget-SQJUKKMK.mjs.map +1 -0
  13. package/dist/BiometryIolWorkupWidget-I5AJOYB2.cjs +300 -0
  14. package/dist/BiometryIolWorkupWidget-I5AJOYB2.cjs.map +1 -0
  15. package/dist/BiometryIolWorkupWidget-NL2M7ZAA.mjs +298 -0
  16. package/dist/BiometryIolWorkupWidget-NL2M7ZAA.mjs.map +1 -0
  17. package/dist/DateTimeWidget-DIDVF2EB.cjs +61 -0
  18. package/dist/DateTimeWidget-DIDVF2EB.cjs.map +1 -0
  19. package/dist/DateTimeWidget-LFBB6HOP.mjs +59 -0
  20. package/dist/DateTimeWidget-LFBB6HOP.mjs.map +1 -0
  21. package/dist/DateWidget-4ND5TKP2.mjs +72 -0
  22. package/dist/DateWidget-4ND5TKP2.mjs.map +1 -0
  23. package/dist/DateWidget-BCVR5GDK.cjs +74 -0
  24. package/dist/DateWidget-BCVR5GDK.cjs.map +1 -0
  25. package/dist/DiagnosisTextareaWidget-E7OQRUMX.cjs +190 -0
  26. package/dist/DiagnosisTextareaWidget-E7OQRUMX.cjs.map +1 -0
  27. package/dist/DiagnosisTextareaWidget-MAOXCXEZ.mjs +184 -0
  28. package/dist/DiagnosisTextareaWidget-MAOXCXEZ.mjs.map +1 -0
  29. package/dist/DifferentialDiagnosisWidget-ANALLNKL.cjs +17 -0
  30. package/dist/DifferentialDiagnosisWidget-ANALLNKL.cjs.map +1 -0
  31. package/dist/DifferentialDiagnosisWidget-LCY2SA2I.mjs +15 -0
  32. package/dist/DifferentialDiagnosisWidget-LCY2SA2I.mjs.map +1 -0
  33. package/dist/DischargeMedicationOrdersWidget-GYT35W7J.mjs +161 -0
  34. package/dist/DischargeMedicationOrdersWidget-GYT35W7J.mjs.map +1 -0
  35. package/dist/DischargeMedicationOrdersWidget-ILWNZ7VM.cjs +163 -0
  36. package/dist/DischargeMedicationOrdersWidget-ILWNZ7VM.cjs.map +1 -0
  37. package/dist/EditableTable-TGCVUBLO.mjs +279 -0
  38. package/dist/EditableTable-TGCVUBLO.mjs.map +1 -0
  39. package/dist/EditableTable-VCUNJZEX.cjs +281 -0
  40. package/dist/EditableTable-VCUNJZEX.cjs.map +1 -0
  41. package/dist/FollowupWidget-F6FRZO4T.mjs +283 -0
  42. package/dist/FollowupWidget-F6FRZO4T.mjs.map +1 -0
  43. package/dist/FollowupWidget-NBTOV2ML.cjs +285 -0
  44. package/dist/FollowupWidget-NBTOV2ML.cjs.map +1 -0
  45. package/dist/FunctionalImpairmentScoreWidget-5V5SNLTF.cjs +93 -0
  46. package/dist/FunctionalImpairmentScoreWidget-5V5SNLTF.cjs.map +1 -0
  47. package/dist/FunctionalImpairmentScoreWidget-QKIZE7KT.mjs +91 -0
  48. package/dist/FunctionalImpairmentScoreWidget-QKIZE7KT.mjs.map +1 -0
  49. package/dist/GsExaminationWidget-57SL4BCI.cjs +528 -0
  50. package/dist/GsExaminationWidget-57SL4BCI.cjs.map +1 -0
  51. package/dist/GsExaminationWidget-J4VABGY6.mjs +526 -0
  52. package/dist/GsExaminationWidget-J4VABGY6.mjs.map +1 -0
  53. package/dist/GsGradingWidget-3WTLIP33.mjs +90 -0
  54. package/dist/GsGradingWidget-3WTLIP33.mjs.map +1 -0
  55. package/dist/GsGradingWidget-CIXE36HF.cjs +92 -0
  56. package/dist/GsGradingWidget-CIXE36HF.cjs.map +1 -0
  57. package/dist/GsSmartHistoryWidget-6Q2IIGDG.cjs +398 -0
  58. package/dist/GsSmartHistoryWidget-6Q2IIGDG.cjs.map +1 -0
  59. package/dist/GsSmartHistoryWidget-IOGZ6GNS.mjs +396 -0
  60. package/dist/GsSmartHistoryWidget-IOGZ6GNS.mjs.map +1 -0
  61. package/dist/HiddenVitalsWidget-HBK7PBPR.cjs +55 -0
  62. package/dist/HiddenVitalsWidget-HBK7PBPR.cjs.map +1 -0
  63. package/dist/HiddenVitalsWidget-JH3NRZLM.mjs +53 -0
  64. package/dist/HiddenVitalsWidget-JH3NRZLM.mjs.map +1 -0
  65. package/dist/LensAssessmentWidget-7WMULFS2.mjs +232 -0
  66. package/dist/LensAssessmentWidget-7WMULFS2.mjs.map +1 -0
  67. package/dist/LensAssessmentWidget-GSOOD7BX.cjs +234 -0
  68. package/dist/LensAssessmentWidget-GSOOD7BX.cjs.map +1 -0
  69. package/dist/MarMedicationOrdersWidget-3E6GFOR6.cjs +76 -0
  70. package/dist/MarMedicationOrdersWidget-3E6GFOR6.cjs.map +1 -0
  71. package/dist/MarMedicationOrdersWidget-QZUVSEB5.mjs +74 -0
  72. package/dist/MarMedicationOrdersWidget-QZUVSEB5.mjs.map +1 -0
  73. package/dist/OBGExaminationWidget-F2ZNSP2M.cjs +215 -0
  74. package/dist/OBGExaminationWidget-F2ZNSP2M.cjs.map +1 -0
  75. package/dist/OBGExaminationWidget-POVLALMA.mjs +213 -0
  76. package/dist/OBGExaminationWidget-POVLALMA.mjs.map +1 -0
  77. package/dist/OBGPathwayWidget-CGT7Q4T2.mjs +517 -0
  78. package/dist/OBGPathwayWidget-CGT7Q4T2.mjs.map +1 -0
  79. package/dist/OBGPathwayWidget-WCIQENMO.cjs +519 -0
  80. package/dist/OBGPathwayWidget-WCIQENMO.cjs.map +1 -0
  81. package/dist/ObstetricHistoryWidget-EGVLL4X2.mjs +1113 -0
  82. package/dist/ObstetricHistoryWidget-EGVLL4X2.mjs.map +1 -0
  83. package/dist/ObstetricHistoryWidget-XU6R7IPP.cjs +1115 -0
  84. package/dist/ObstetricHistoryWidget-XU6R7IPP.cjs.map +1 -0
  85. package/dist/OphthalDiagnosisWidget-G5RCC2QZ.mjs +89 -0
  86. package/dist/OphthalDiagnosisWidget-G5RCC2QZ.mjs.map +1 -0
  87. package/dist/OphthalDiagnosisWidget-OQPTHJ7E.cjs +91 -0
  88. package/dist/OphthalDiagnosisWidget-OQPTHJ7E.cjs.map +1 -0
  89. package/dist/OphthalmologyWidget-I3BKWOI2.cjs +1331 -0
  90. package/dist/OphthalmologyWidget-I3BKWOI2.cjs.map +1 -0
  91. package/dist/OphthalmologyWidget-RG2AI6WA.mjs +1329 -0
  92. package/dist/OphthalmologyWidget-RG2AI6WA.mjs.map +1 -0
  93. package/dist/OrthopedicExamWidget-BBZP6NVT.mjs +366 -0
  94. package/dist/OrthopedicExamWidget-BBZP6NVT.mjs.map +1 -0
  95. package/dist/OrthopedicExamWidget-M4KKU5RC.cjs +368 -0
  96. package/dist/OrthopedicExamWidget-M4KKU5RC.cjs.map +1 -0
  97. package/dist/PainScaleFlagsWidget-E576R6QB.mjs +151 -0
  98. package/dist/PainScaleFlagsWidget-E576R6QB.mjs.map +1 -0
  99. package/dist/PainScaleFlagsWidget-QHGESXNE.cjs +153 -0
  100. package/dist/PainScaleFlagsWidget-QHGESXNE.cjs.map +1 -0
  101. package/dist/ReadOnlyTable-4Y2XW4MX.mjs +6 -0
  102. package/dist/ReadOnlyTable-4Y2XW4MX.mjs.map +1 -0
  103. package/dist/ReadOnlyTable-L7G6GWEJ.cjs +15 -0
  104. package/dist/ReadOnlyTable-L7G6GWEJ.cjs.map +1 -0
  105. package/dist/ReferralWidget-J2PWYFDT.cjs +171 -0
  106. package/dist/ReferralWidget-J2PWYFDT.cjs.map +1 -0
  107. package/dist/ReferralWidget-UPYWEO5R.mjs +169 -0
  108. package/dist/ReferralWidget-UPYWEO5R.mjs.map +1 -0
  109. package/dist/RichTextWidget-BBCNJPMH.mjs +11 -0
  110. package/dist/RichTextWidget-BBCNJPMH.mjs.map +1 -0
  111. package/dist/RichTextWidget-CRQHNVJR.cjs +24 -0
  112. package/dist/RichTextWidget-CRQHNVJR.cjs.map +1 -0
  113. package/dist/SmartTextarea-DKWV4R6H.cjs +19 -0
  114. package/dist/SmartTextarea-DKWV4R6H.cjs.map +1 -0
  115. package/dist/SmartTextarea-ZTQIW6O2.mjs +10 -0
  116. package/dist/SmartTextarea-ZTQIW6O2.mjs.map +1 -0
  117. package/dist/SuggestionTextareaWidget-22NR3JWM.mjs +215 -0
  118. package/dist/SuggestionTextareaWidget-22NR3JWM.mjs.map +1 -0
  119. package/dist/SuggestionTextareaWidget-WCTPWW2E.cjs +226 -0
  120. package/dist/SuggestionTextareaWidget-WCTPWW2E.cjs.map +1 -0
  121. package/dist/SurgicalRiskFlagsWidget-Q5FTWB3M.cjs +146 -0
  122. package/dist/SurgicalRiskFlagsWidget-Q5FTWB3M.cjs.map +1 -0
  123. package/dist/SurgicalRiskFlagsWidget-WCAHZKKG.mjs +144 -0
  124. package/dist/SurgicalRiskFlagsWidget-WCAHZKKG.mjs.map +1 -0
  125. package/dist/UrologyExaminationWidget-JYUGZ5CG.cjs +273 -0
  126. package/dist/UrologyExaminationWidget-JYUGZ5CG.cjs.map +1 -0
  127. package/dist/UrologyExaminationWidget-QDTD3FJX.mjs +271 -0
  128. package/dist/UrologyExaminationWidget-QDTD3FJX.mjs.map +1 -0
  129. package/dist/UrologyPathwayWidget-QTFKUIM7.mjs +153 -0
  130. package/dist/UrologyPathwayWidget-QTFKUIM7.mjs.map +1 -0
  131. package/dist/UrologyPathwayWidget-TXZQNGP4.cjs +155 -0
  132. package/dist/UrologyPathwayWidget-TXZQNGP4.cjs.map +1 -0
  133. package/dist/UrologySmartHistoryWidget-53NATEO3.cjs +471 -0
  134. package/dist/UrologySmartHistoryWidget-53NATEO3.cjs.map +1 -0
  135. package/dist/UrologySmartHistoryWidget-PBU4QXQJ.mjs +469 -0
  136. package/dist/UrologySmartHistoryWidget-PBU4QXQJ.mjs.map +1 -0
  137. package/dist/VitalsWidget-BRFUKGNO.mjs +187 -0
  138. package/dist/VitalsWidget-BRFUKGNO.mjs.map +1 -0
  139. package/dist/VitalsWidget-PDCYXNBM.cjs +208 -0
  140. package/dist/VitalsWidget-PDCYXNBM.cjs.map +1 -0
  141. package/dist/chunk-3KRDT7TX.mjs +137 -0
  142. package/dist/chunk-3KRDT7TX.mjs.map +1 -0
  143. package/dist/chunk-4BAKQIPJ.mjs +27 -0
  144. package/dist/chunk-4BAKQIPJ.mjs.map +1 -0
  145. package/dist/chunk-4KSZUIJE.cjs +143 -0
  146. package/dist/chunk-4KSZUIJE.cjs.map +1 -0
  147. package/dist/chunk-4PMNVBJD.mjs +121 -0
  148. package/dist/chunk-4PMNVBJD.mjs.map +1 -0
  149. package/dist/chunk-5E3APMY6.cjs +54 -0
  150. package/dist/chunk-5E3APMY6.cjs.map +1 -0
  151. package/dist/chunk-5I2RC47Y.mjs +75 -0
  152. package/dist/chunk-5I2RC47Y.mjs.map +1 -0
  153. package/dist/chunk-6YX37XBM.cjs +32 -0
  154. package/dist/chunk-6YX37XBM.cjs.map +1 -0
  155. package/dist/chunk-7L2JOWGA.mjs +30 -0
  156. package/dist/chunk-7L2JOWGA.mjs.map +1 -0
  157. package/dist/chunk-AIZ3XYEZ.cjs +551 -0
  158. package/dist/chunk-AIZ3XYEZ.cjs.map +1 -0
  159. package/dist/chunk-AZHTIUOL.mjs +116 -0
  160. package/dist/chunk-AZHTIUOL.mjs.map +1 -0
  161. package/dist/chunk-AZSAPO2V.cjs +174 -0
  162. package/dist/chunk-AZSAPO2V.cjs.map +1 -0
  163. package/dist/chunk-B3GBIAHZ.mjs +285 -0
  164. package/dist/chunk-B3GBIAHZ.mjs.map +1 -0
  165. package/dist/chunk-BMNY7F6H.mjs +148 -0
  166. package/dist/chunk-BMNY7F6H.mjs.map +1 -0
  167. package/dist/chunk-BOBX45NY.cjs +77 -0
  168. package/dist/chunk-BOBX45NY.cjs.map +1 -0
  169. package/dist/chunk-BU4ZEAAP.mjs +102 -0
  170. package/dist/chunk-BU4ZEAAP.mjs.map +1 -0
  171. package/dist/chunk-DZYV47QC.mjs +54 -0
  172. package/dist/chunk-DZYV47QC.mjs.map +1 -0
  173. package/dist/chunk-E7WUDHSA.cjs +127 -0
  174. package/dist/chunk-E7WUDHSA.cjs.map +1 -0
  175. package/dist/chunk-FHHISVCH.cjs +13 -0
  176. package/dist/chunk-FHHISVCH.cjs.map +1 -0
  177. package/dist/chunk-GNZWSVTB.mjs +29 -0
  178. package/dist/chunk-GNZWSVTB.mjs.map +1 -0
  179. package/dist/chunk-GPU5P3FB.cjs +236 -0
  180. package/dist/chunk-GPU5P3FB.cjs.map +1 -0
  181. package/dist/chunk-GXXWMHAA.mjs +49 -0
  182. package/dist/chunk-GXXWMHAA.mjs.map +1 -0
  183. package/dist/chunk-GZPCYSJK.mjs +104 -0
  184. package/dist/chunk-GZPCYSJK.mjs.map +1 -0
  185. package/dist/chunk-HEFZA2AH.mjs +22 -0
  186. package/dist/chunk-HEFZA2AH.mjs.map +1 -0
  187. package/dist/chunk-I4AV6BQF.mjs +10 -0
  188. package/dist/chunk-I4AV6BQF.mjs.map +1 -0
  189. package/dist/chunk-I7TJVWYV.cjs +73 -0
  190. package/dist/chunk-I7TJVWYV.cjs.map +1 -0
  191. package/dist/chunk-IFMQKLNW.mjs +39 -0
  192. package/dist/chunk-IFMQKLNW.mjs.map +1 -0
  193. package/dist/chunk-IFSKLIS2.cjs +12 -0
  194. package/dist/chunk-IFSKLIS2.cjs.map +1 -0
  195. package/dist/chunk-IKAKE7TR.mjs +527 -0
  196. package/dist/chunk-IKAKE7TR.mjs.map +1 -0
  197. package/dist/chunk-JE6VXRWW.cjs +86 -0
  198. package/dist/chunk-JE6VXRWW.cjs.map +1 -0
  199. package/dist/chunk-JMGUUFOJ.cjs +45 -0
  200. package/dist/chunk-JMGUUFOJ.cjs.map +1 -0
  201. package/dist/chunk-KJA5BLGX.cjs +31 -0
  202. package/dist/chunk-KJA5BLGX.cjs.map +1 -0
  203. package/dist/chunk-KMJOTMUQ.cjs +109 -0
  204. package/dist/chunk-KMJOTMUQ.cjs.map +1 -0
  205. package/dist/chunk-L4CIIT4U.cjs +388 -0
  206. package/dist/chunk-L4CIIT4U.cjs.map +1 -0
  207. package/dist/chunk-LBWB7MYU.cjs +287 -0
  208. package/dist/chunk-LBWB7MYU.cjs.map +1 -0
  209. package/dist/chunk-LGGOBIEA.mjs +61 -0
  210. package/dist/chunk-LGGOBIEA.mjs.map +1 -0
  211. package/dist/chunk-LQYWMYEC.mjs +28 -0
  212. package/dist/chunk-LQYWMYEC.mjs.map +1 -0
  213. package/dist/chunk-MQ2JV7HL.cjs +140 -0
  214. package/dist/chunk-MQ2JV7HL.cjs.map +1 -0
  215. package/dist/chunk-N4L76SHJ.cjs +65 -0
  216. package/dist/chunk-N4L76SHJ.cjs.map +1 -0
  217. package/dist/chunk-O3VQBPEW.cjs +72 -0
  218. package/dist/chunk-O3VQBPEW.cjs.map +1 -0
  219. package/dist/chunk-P62377LB.cjs +27 -0
  220. package/dist/chunk-P62377LB.cjs.map +1 -0
  221. package/dist/chunk-PHADAQSH.cjs +49 -0
  222. package/dist/chunk-PHADAQSH.cjs.map +1 -0
  223. package/dist/chunk-PZBJYPWW.cjs +52 -0
  224. package/dist/chunk-PZBJYPWW.cjs.map +1 -0
  225. package/dist/chunk-QKJ7BQSR.cjs +538 -0
  226. package/dist/chunk-QKJ7BQSR.cjs.map +1 -0
  227. package/dist/chunk-QS6WG2XJ.cjs +56 -0
  228. package/dist/chunk-QS6WG2XJ.cjs.map +1 -0
  229. package/dist/chunk-S7EMPE2D.cjs +104 -0
  230. package/dist/chunk-S7EMPE2D.cjs.map +1 -0
  231. package/dist/chunk-SCMXLRX5.mjs +42 -0
  232. package/dist/chunk-SCMXLRX5.mjs.map +1 -0
  233. package/dist/chunk-SHQHDSA4.cjs +1959 -0
  234. package/dist/chunk-SHQHDSA4.cjs.map +1 -0
  235. package/dist/chunk-TJHG5WHX.cjs +47 -0
  236. package/dist/chunk-TJHG5WHX.cjs.map +1 -0
  237. package/dist/chunk-UGGUIXUS.cjs +41 -0
  238. package/dist/chunk-UGGUIXUS.cjs.map +1 -0
  239. package/dist/chunk-ULMK3TUI.mjs +69 -0
  240. package/dist/chunk-ULMK3TUI.mjs.map +1 -0
  241. package/dist/chunk-UULLSS4O.mjs +82 -0
  242. package/dist/chunk-UULLSS4O.mjs.map +1 -0
  243. package/dist/chunk-VNFBUAZD.mjs +25 -0
  244. package/dist/chunk-VNFBUAZD.mjs.map +1 -0
  245. package/dist/chunk-VPU66PI6.mjs +11 -0
  246. package/dist/chunk-VPU66PI6.mjs.map +1 -0
  247. package/dist/chunk-VZT5YNCD.mjs +228 -0
  248. package/dist/chunk-VZT5YNCD.mjs.map +1 -0
  249. package/dist/chunk-WYVXXEZI.mjs +46 -0
  250. package/dist/chunk-WYVXXEZI.mjs.map +1 -0
  251. package/dist/chunk-XDUVO3IZ.mjs +547 -0
  252. package/dist/chunk-XDUVO3IZ.mjs.map +1 -0
  253. package/dist/chunk-Y7TIWH4I.mjs +25 -0
  254. package/dist/chunk-Y7TIWH4I.mjs.map +1 -0
  255. package/dist/chunk-YEFM2ERQ.cjs +143 -0
  256. package/dist/chunk-YEFM2ERQ.cjs.map +1 -0
  257. package/dist/chunk-YHNI5NIX.mjs +361 -0
  258. package/dist/chunk-YHNI5NIX.mjs.map +1 -0
  259. package/dist/chunk-ZTT5XJR7.mjs +1921 -0
  260. package/dist/chunk-ZTT5XJR7.mjs.map +1 -0
  261. package/dist/index.cjs +2091 -14564
  262. package/dist/index.cjs.map +1 -1
  263. package/dist/index.d.cts +62 -767
  264. package/dist/index.d.ts +62 -767
  265. package/dist/index.mjs +1873 -14394
  266. package/dist/index.mjs.map +1 -1
  267. package/dist/read-only-table.cjs +15 -0
  268. package/dist/read-only-table.cjs.map +1 -0
  269. package/dist/read-only-table.d.cts +10 -0
  270. package/dist/read-only-table.d.ts +10 -0
  271. package/dist/read-only-table.mjs +6 -0
  272. package/dist/read-only-table.mjs.map +1 -0
  273. package/dist/rich-text.cjs +24 -0
  274. package/dist/rich-text.cjs.map +1 -0
  275. package/dist/rich-text.d.cts +8 -0
  276. package/dist/rich-text.d.ts +8 -0
  277. package/dist/rich-text.mjs +11 -0
  278. package/dist/rich-text.mjs.map +1 -0
  279. package/dist/richTextClassName--8wkuHkW.d.cts +10 -0
  280. package/dist/richTextClassName--8wkuHkW.d.ts +10 -0
  281. package/dist/smart.cjs +23 -0
  282. package/dist/smart.cjs.map +1 -0
  283. package/dist/smart.d.cts +23 -0
  284. package/dist/smart.d.ts +23 -0
  285. package/dist/smart.mjs +10 -0
  286. package/dist/smart.mjs.map +1 -0
  287. package/dist/types-CYtJk8H9.d.cts +782 -0
  288. package/dist/types-CYtJk8H9.d.ts +782 -0
  289. package/package.json +20 -2
@@ -0,0 +1,517 @@
1
+ import { useObgSymptomsSync, Panel, ChipRow } from './chunk-ULMK3TUI.mjs';
2
+ import { normalizeObgPathway, OBG_ZONE_ORDER, obgZoneLabel, OBG_ZONE_ALLOWED_CHIP_LABELS, obgZonesFromChipLabels } from './chunk-IKAKE7TR.mjs';
3
+ import { Checkbox } from './chunk-GNZWSVTB.mjs';
4
+ import { Textarea } from './chunk-4BAKQIPJ.mjs';
5
+ import { getThemeConfig } from './chunk-Y7TIWH4I.mjs';
6
+ import { FieldRequiredIndicator } from './chunk-WYVXXEZI.mjs';
7
+ import { useForm } from './chunk-7L2JOWGA.mjs';
8
+ import { Input } from './chunk-VNFBUAZD.mjs';
9
+ import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from './chunk-AZHTIUOL.mjs';
10
+ import { useField, parseProseAndChipTokens } from './chunk-ZTT5XJR7.mjs';
11
+ import { Label } from './chunk-HEFZA2AH.mjs';
12
+ import { cn } from './chunk-VPU66PI6.mjs';
13
+ import { useMemo } from 'react';
14
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
15
+
16
+ var OBGPathwayWidget = ({ fieldId }) => {
17
+ const { fieldDef, value, setValue, setTouched, error, touched, disabled } = useField(fieldId);
18
+ const { writeSymptoms, symptomsField } = useObgSymptomsSync();
19
+ const { state } = useForm();
20
+ const showError = !!error && (touched || state.submitAttempted);
21
+ const safe = useMemo(() => normalizeObgPathway(value), [value]);
22
+ const update = (next) => {
23
+ const prev = safe;
24
+ setValue(next);
25
+ setTouched();
26
+ writeSymptoms(prev, next);
27
+ };
28
+ const onSymptomsChange = (raw) => {
29
+ symptomsField.setValue(raw);
30
+ symptomsField.setTouched();
31
+ if (disabled) return;
32
+ const { chips } = parseProseAndChipTokens(raw, OBG_ZONE_ALLOWED_CHIP_LABELS);
33
+ const nextZones = obgZonesFromChipLabels(chips);
34
+ const sameZones = nextZones.length === safe.zones.length && nextZones.every((z, i) => safe.zones[i] === z);
35
+ if (!sameZones) {
36
+ const nextValue = { ...safe, zones: nextZones };
37
+ setValue(nextValue);
38
+ setTouched();
39
+ }
40
+ };
41
+ if (!fieldDef) return null;
42
+ const theme = getThemeConfig("textarea", fieldDef.theme);
43
+ const wrapperClass = theme?.wrapperClassName ?? "rounded-md overflow-hidden flex flex-col border border-[#D0D0D0]";
44
+ const labelClass = theme?.labelClassName;
45
+ const labelContent = /* @__PURE__ */ jsxs(Fragment, { children: [
46
+ fieldDef.label,
47
+ /* @__PURE__ */ jsx(FieldRequiredIndicator, { fieldDef })
48
+ ] });
49
+ const labelEl = theme ? /* @__PURE__ */ jsx(Label, { className: labelClass, children: labelContent }) : /* @__PURE__ */ jsx(Label, { className: "text-sm font-medium", children: labelContent });
50
+ const bodyClass = cn(
51
+ "-mt-1 flex min-w-0 flex-col gap-3 border-t border-[#D0D0D0] bg-white px-3 py-3",
52
+ disabled && "pointer-events-none opacity-60"
53
+ );
54
+ const hasZone = (z) => safe.zones.includes(z);
55
+ const toggleZone = (z) => update({
56
+ ...safe,
57
+ zones: hasZone(z) ? safe.zones.filter((x) => x !== z) : OBG_ZONE_ORDER.filter((x) => x === z || hasZone(x))
58
+ });
59
+ const m = safe.menstrual;
60
+ const setMenstrual = (patch) => update({ ...safe, menstrual: { ...m, ...patch } });
61
+ const gSym = safe.gynae.symptoms;
62
+ const toggleGynae = (key) => update({ ...safe, gynae: { symptoms: { ...gSym, [key]: !gSym[key] } } });
63
+ const inf = safe.infertility;
64
+ const setInfertility = (patch) => update({ ...safe, infertility: { ...inf, ...patch } });
65
+ const po = safe.postop;
66
+ const setPostop = (patch) => update({ ...safe, postop: { ...po, ...patch } });
67
+ return /* @__PURE__ */ jsxs("div", { className: cn("w-full min-w-0", wrapperClass), children: [
68
+ labelEl,
69
+ fieldDef.description ? /* @__PURE__ */ jsx("p", { className: "px-3 pt-2 text-[11px] text-muted-foreground", children: fieldDef.description }) : null,
70
+ /* @__PURE__ */ jsxs("div", { className: bodyClass, children: [
71
+ showError ? /* @__PURE__ */ jsx("p", { className: "text-xs text-red-600", children: error }) : null,
72
+ /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
73
+ /* @__PURE__ */ jsx(Label, { className: "text-sm font-medium", children: "Primary concern (Consultant zone \u2014 multi-select)" }),
74
+ /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2", children: OBG_ZONE_ORDER.map((z) => {
75
+ const on = hasZone(z);
76
+ return /* @__PURE__ */ jsx(
77
+ "button",
78
+ {
79
+ type: "button",
80
+ onClick: () => toggleZone(z),
81
+ disabled,
82
+ "aria-pressed": on,
83
+ className: cn(
84
+ "rounded-full border px-3 py-1 text-[11px] transition-colors",
85
+ on ? "border-rose-500 bg-rose-50 text-rose-700" : "border-slate-300 bg-white text-slate-600 hover:bg-slate-50"
86
+ ),
87
+ children: obgZoneLabel(z)
88
+ },
89
+ z
90
+ );
91
+ }) })
92
+ ] }),
93
+ hasZone("menstrual_reproductive") ? /* @__PURE__ */ jsx(Panel, { title: "Menstrual & reproductive history", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-3 md:grid-cols-4", children: [
94
+ /* @__PURE__ */ jsxs("label", { className: "space-y-1", children: [
95
+ /* @__PURE__ */ jsx("span", { className: "block font-medium", children: "Menarche (age)" }),
96
+ /* @__PURE__ */ jsx(
97
+ Input,
98
+ {
99
+ type: "number",
100
+ min: 5,
101
+ max: 25,
102
+ className: "h-8 text-xs",
103
+ value: m.menarcheAge,
104
+ onChange: (e) => setMenstrual({ menarcheAge: Number(e.target.value) || 0 }),
105
+ disabled
106
+ }
107
+ )
108
+ ] }),
109
+ /* @__PURE__ */ jsxs("label", { className: "space-y-1", children: [
110
+ /* @__PURE__ */ jsx("span", { className: "block font-medium", children: "Cycle (days)" }),
111
+ /* @__PURE__ */ jsx(
112
+ Input,
113
+ {
114
+ type: "number",
115
+ min: 0,
116
+ max: 120,
117
+ className: "h-8 text-xs",
118
+ value: m.cycleLength,
119
+ onChange: (e) => setMenstrual({ cycleLength: Number(e.target.value) || 0 }),
120
+ disabled
121
+ }
122
+ )
123
+ ] }),
124
+ /* @__PURE__ */ jsxs("label", { className: "space-y-1", children: [
125
+ /* @__PURE__ */ jsx("span", { className: "block font-medium", children: "Flow (days)" }),
126
+ /* @__PURE__ */ jsx(
127
+ Input,
128
+ {
129
+ type: "number",
130
+ min: 0,
131
+ max: 30,
132
+ className: "h-8 text-xs",
133
+ value: m.flowDays,
134
+ onChange: (e) => setMenstrual({ flowDays: Number(e.target.value) || 0 }),
135
+ disabled
136
+ }
137
+ )
138
+ ] }),
139
+ /* @__PURE__ */ jsxs("label", { className: "flex items-end gap-2 pb-1", children: [
140
+ /* @__PURE__ */ jsx(
141
+ Checkbox,
142
+ {
143
+ checked: m.cycleRegular,
144
+ onCheckedChange: (c) => setMenstrual({ cycleRegular: c === true }),
145
+ disabled
146
+ }
147
+ ),
148
+ /* @__PURE__ */ jsx("span", { children: "Regular cycle" })
149
+ ] }),
150
+ /* @__PURE__ */ jsxs("label", { className: "space-y-1", children: [
151
+ /* @__PURE__ */ jsx("span", { className: "block font-medium", children: "Amount of flow" }),
152
+ /* @__PURE__ */ jsxs(
153
+ Select,
154
+ {
155
+ value: m.amount === "" ? "none" : m.amount,
156
+ onValueChange: (v) => setMenstrual({ amount: v === "none" ? "" : v }),
157
+ disabled,
158
+ children: [
159
+ /* @__PURE__ */ jsx(SelectTrigger, { className: "h-8 text-xs", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "\u2014" }) }),
160
+ /* @__PURE__ */ jsxs(SelectContent, { children: [
161
+ /* @__PURE__ */ jsx(SelectItem, { value: "none", children: "\u2014" }),
162
+ /* @__PURE__ */ jsx(SelectItem, { value: "Scanty", children: "Scanty" }),
163
+ /* @__PURE__ */ jsx(SelectItem, { value: "Normal", children: "Normal" }),
164
+ /* @__PURE__ */ jsx(SelectItem, { value: "Heavy", children: "Heavy" })
165
+ ] })
166
+ ]
167
+ }
168
+ )
169
+ ] }),
170
+ /* @__PURE__ */ jsxs("label", { className: "space-y-1", children: [
171
+ /* @__PURE__ */ jsx("span", { className: "block font-medium", children: "Dysmenorrhea" }),
172
+ /* @__PURE__ */ jsxs(
173
+ Select,
174
+ {
175
+ value: String(m.dysmenorrhea),
176
+ onValueChange: (v) => setMenstrual({ dysmenorrhea: Number(v) ?? 0 }),
177
+ disabled,
178
+ children: [
179
+ /* @__PURE__ */ jsx(SelectTrigger, { className: "h-8 text-xs", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "0" }) }),
180
+ /* @__PURE__ */ jsxs(SelectContent, { children: [
181
+ /* @__PURE__ */ jsx(SelectItem, { value: "0", children: "0 \u2014 none" }),
182
+ /* @__PURE__ */ jsx(SelectItem, { value: "1", children: "1 \u2014 mild" }),
183
+ /* @__PURE__ */ jsx(SelectItem, { value: "2", children: "2 \u2014 moderate" }),
184
+ /* @__PURE__ */ jsx(SelectItem, { value: "3", children: "3 \u2014 severe" })
185
+ ] })
186
+ ]
187
+ }
188
+ )
189
+ ] }),
190
+ /* @__PURE__ */ jsxs("label", { className: "space-y-1", children: [
191
+ /* @__PURE__ */ jsx("span", { className: "block font-medium", children: "LMP" }),
192
+ /* @__PURE__ */ jsx(
193
+ Input,
194
+ {
195
+ type: "date",
196
+ className: "h-8 text-xs",
197
+ value: m.lmp,
198
+ onChange: (e) => setMenstrual({ lmp: e.target.value }),
199
+ disabled
200
+ }
201
+ )
202
+ ] }),
203
+ /* @__PURE__ */ jsxs("label", { className: "space-y-1", children: [
204
+ /* @__PURE__ */ jsx("span", { className: "block font-medium", children: "Menopause status" }),
205
+ /* @__PURE__ */ jsxs(
206
+ Select,
207
+ {
208
+ value: m.menopauseStatus === "" ? "none" : m.menopauseStatus,
209
+ onValueChange: (v) => setMenstrual({
210
+ menopauseStatus: v === "none" ? "" : v
211
+ }),
212
+ disabled,
213
+ children: [
214
+ /* @__PURE__ */ jsx(SelectTrigger, { className: "h-8 text-xs", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "\u2014" }) }),
215
+ /* @__PURE__ */ jsxs(SelectContent, { children: [
216
+ /* @__PURE__ */ jsx(SelectItem, { value: "none", children: "\u2014" }),
217
+ /* @__PURE__ */ jsx(SelectItem, { value: "Pre", children: "Pre" }),
218
+ /* @__PURE__ */ jsx(SelectItem, { value: "Peri", children: "Peri" }),
219
+ /* @__PURE__ */ jsx(SelectItem, { value: "Post", children: "Post" })
220
+ ] })
221
+ ]
222
+ }
223
+ )
224
+ ] })
225
+ ] }) }) : null,
226
+ hasZone("gynaecological") ? /* @__PURE__ */ jsx(Panel, { title: "Gynaecological symptoms", children: /* @__PURE__ */ jsx(
227
+ ChipRow,
228
+ {
229
+ options: [
230
+ { key: "aub", label: "Abnormal uterine bleeding" },
231
+ { key: "whiteDischarge", label: "White discharge" },
232
+ { key: "pelvicPain", label: "Pelvic pain" },
233
+ { key: "dyspareunia", label: "Dyspareunia" },
234
+ { key: "urinaryComplaints", label: "Urinary complaints" },
235
+ { key: "prolapse", label: "Prolapse" }
236
+ ],
237
+ selected: gSym,
238
+ onToggle: (k) => toggleGynae(k),
239
+ disabled
240
+ }
241
+ ) }) : null,
242
+ hasZone("infertility") ? /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
243
+ /* @__PURE__ */ jsx(Panel, { title: "Infertility profile", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-3 md:grid-cols-3", children: [
244
+ /* @__PURE__ */ jsxs("label", { className: "space-y-1", children: [
245
+ /* @__PURE__ */ jsx("span", { className: "block font-medium", children: "Type" }),
246
+ /* @__PURE__ */ jsxs(
247
+ Select,
248
+ {
249
+ value: inf.type === "" ? "none" : inf.type,
250
+ onValueChange: (v) => setInfertility({ type: v === "none" ? "" : v }),
251
+ disabled,
252
+ children: [
253
+ /* @__PURE__ */ jsx(SelectTrigger, { className: "h-8 text-xs", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "\u2014" }) }),
254
+ /* @__PURE__ */ jsxs(SelectContent, { children: [
255
+ /* @__PURE__ */ jsx(SelectItem, { value: "none", children: "\u2014" }),
256
+ /* @__PURE__ */ jsx(SelectItem, { value: "Primary", children: "Primary" }),
257
+ /* @__PURE__ */ jsx(SelectItem, { value: "Secondary", children: "Secondary" })
258
+ ] })
259
+ ]
260
+ }
261
+ )
262
+ ] }),
263
+ /* @__PURE__ */ jsxs("label", { className: "space-y-1", children: [
264
+ /* @__PURE__ */ jsx("span", { className: "block font-medium", children: "Duration (months)" }),
265
+ /* @__PURE__ */ jsx(
266
+ Input,
267
+ {
268
+ type: "number",
269
+ min: 0,
270
+ className: "h-8 text-xs",
271
+ value: inf.durationMonths,
272
+ onChange: (e) => setInfertility({ durationMonths: Number(e.target.value) || 0 }),
273
+ disabled
274
+ }
275
+ )
276
+ ] }),
277
+ /* @__PURE__ */ jsxs("label", { className: "space-y-1 md:col-span-1", children: [
278
+ /* @__PURE__ */ jsx("span", { className: "block font-medium", children: "Previous treatments" }),
279
+ /* @__PURE__ */ jsx(
280
+ Input,
281
+ {
282
+ className: "h-8 text-xs",
283
+ placeholder: "IUI \xD72, OI cycles\u2026",
284
+ value: inf.previousTreatments,
285
+ onChange: (e) => setInfertility({ previousTreatments: e.target.value }),
286
+ disabled
287
+ }
288
+ )
289
+ ] })
290
+ ] }) }),
291
+ /* @__PURE__ */ jsx(Panel, { title: "Female partner evaluation", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-3 md:grid-cols-3", children: [
292
+ /* @__PURE__ */ jsxs("label", { className: "space-y-1", children: [
293
+ /* @__PURE__ */ jsx("span", { className: "block font-medium", children: "Ovulation status" }),
294
+ /* @__PURE__ */ jsxs(
295
+ Select,
296
+ {
297
+ value: inf.female.ovulation === "" ? "none" : inf.female.ovulation,
298
+ onValueChange: (v) => setInfertility({
299
+ female: {
300
+ ...inf.female,
301
+ ovulation: v === "none" ? "" : v
302
+ }
303
+ }),
304
+ disabled,
305
+ children: [
306
+ /* @__PURE__ */ jsx(SelectTrigger, { className: "h-8 text-xs", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "\u2014" }) }),
307
+ /* @__PURE__ */ jsxs(SelectContent, { children: [
308
+ /* @__PURE__ */ jsx(SelectItem, { value: "none", children: "\u2014" }),
309
+ /* @__PURE__ */ jsx(SelectItem, { value: "Ovulatory", children: "Ovulatory" }),
310
+ /* @__PURE__ */ jsx(SelectItem, { value: "Anovulatory", children: "Anovulatory" }),
311
+ /* @__PURE__ */ jsx(SelectItem, { value: "Unknown", children: "Unknown" })
312
+ ] })
313
+ ]
314
+ }
315
+ )
316
+ ] }),
317
+ /* @__PURE__ */ jsxs("label", { className: "flex items-end gap-2 pb-1", children: [
318
+ /* @__PURE__ */ jsx(
319
+ Checkbox,
320
+ {
321
+ checked: inf.female.pcosFeatures,
322
+ onCheckedChange: (c) => setInfertility({
323
+ female: { ...inf.female, pcosFeatures: c === true }
324
+ }),
325
+ disabled
326
+ }
327
+ ),
328
+ /* @__PURE__ */ jsx("span", { children: "PCOS features" })
329
+ ] }),
330
+ /* @__PURE__ */ jsxs("label", { className: "flex items-end gap-2 pb-1", children: [
331
+ /* @__PURE__ */ jsx(
332
+ Checkbox,
333
+ {
334
+ checked: inf.female.endometriosisSuspicion,
335
+ onCheckedChange: (c) => setInfertility({
336
+ female: { ...inf.female, endometriosisSuspicion: c === true }
337
+ }),
338
+ disabled
339
+ }
340
+ ),
341
+ /* @__PURE__ */ jsx("span", { children: "Endometriosis suspicion" })
342
+ ] })
343
+ ] }) }),
344
+ /* @__PURE__ */ jsx(Panel, { title: "Male partner details", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-3 md:grid-cols-3", children: [
345
+ /* @__PURE__ */ jsxs("label", { className: "space-y-1", children: [
346
+ /* @__PURE__ */ jsx("span", { className: "block font-medium", children: "Age" }),
347
+ /* @__PURE__ */ jsx(
348
+ Input,
349
+ {
350
+ type: "number",
351
+ min: 0,
352
+ className: "h-8 text-xs",
353
+ value: inf.male.age,
354
+ onChange: (e) => setInfertility({ male: { ...inf.male, age: Number(e.target.value) || 0 } }),
355
+ disabled
356
+ }
357
+ )
358
+ ] }),
359
+ /* @__PURE__ */ jsxs("label", { className: "space-y-1", children: [
360
+ /* @__PURE__ */ jsx("span", { className: "block font-medium", children: "Semen analysis" }),
361
+ /* @__PURE__ */ jsxs(
362
+ Select,
363
+ {
364
+ value: inf.male.semenAnalysis === "" ? "none" : inf.male.semenAnalysis,
365
+ onValueChange: (v) => setInfertility({
366
+ male: {
367
+ ...inf.male,
368
+ semenAnalysis: v === "none" ? "" : v
369
+ }
370
+ }),
371
+ disabled,
372
+ children: [
373
+ /* @__PURE__ */ jsx(SelectTrigger, { className: "h-8 text-xs", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "\u2014" }) }),
374
+ /* @__PURE__ */ jsxs(SelectContent, { children: [
375
+ /* @__PURE__ */ jsx(SelectItem, { value: "none", children: "\u2014" }),
376
+ /* @__PURE__ */ jsx(SelectItem, { value: "Normal", children: "Normal" }),
377
+ /* @__PURE__ */ jsx(SelectItem, { value: "Abnormal", children: "Abnormal" }),
378
+ /* @__PURE__ */ jsx(SelectItem, { value: "Pending", children: "Pending" })
379
+ ] })
380
+ ]
381
+ }
382
+ )
383
+ ] })
384
+ ] }) }),
385
+ /* @__PURE__ */ jsx(Panel, { title: "Investigations", children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-3 md:grid-cols-3", children: [
386
+ { key: "amh", label: "AMH" },
387
+ { key: "fshLh", label: "FSH / LH" },
388
+ { key: "prolactin", label: "Prolactin" },
389
+ { key: "tsh", label: "TSH" },
390
+ { key: "tvs", label: "TVS findings" },
391
+ { key: "hsg", label: "HSG findings" }
392
+ ].map((row) => /* @__PURE__ */ jsxs("label", { className: "space-y-1", children: [
393
+ /* @__PURE__ */ jsx("span", { className: "block font-medium", children: row.label }),
394
+ /* @__PURE__ */ jsx(
395
+ Input,
396
+ {
397
+ className: "h-8 text-xs",
398
+ value: inf.investigations[row.key],
399
+ onChange: (e) => setInfertility({
400
+ investigations: { ...inf.investigations, [row.key]: e.target.value }
401
+ }),
402
+ disabled
403
+ }
404
+ )
405
+ ] }, row.key)) }) })
406
+ ] }) : null,
407
+ hasZone("postoperative") ? /* @__PURE__ */ jsx(Panel, { title: "Post-operative follow-up", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-3 md:grid-cols-3", children: [
408
+ /* @__PURE__ */ jsxs("label", { className: "space-y-1", children: [
409
+ /* @__PURE__ */ jsx("span", { className: "block font-medium", children: "Date of surgery" }),
410
+ /* @__PURE__ */ jsx(
411
+ Input,
412
+ {
413
+ type: "date",
414
+ className: "h-8 text-xs",
415
+ value: po.surgeryDate,
416
+ onChange: (e) => setPostop({ surgeryDate: e.target.value }),
417
+ disabled
418
+ }
419
+ )
420
+ ] }),
421
+ /* @__PURE__ */ jsxs("label", { className: "space-y-1 md:col-span-2", children: [
422
+ /* @__PURE__ */ jsx("span", { className: "block font-medium", children: "Procedure performed" }),
423
+ /* @__PURE__ */ jsx(
424
+ Input,
425
+ {
426
+ className: "h-8 text-xs",
427
+ value: po.procedure,
428
+ onChange: (e) => setPostop({ procedure: e.target.value }),
429
+ disabled
430
+ }
431
+ )
432
+ ] }),
433
+ /* @__PURE__ */ jsxs("label", { className: "space-y-1 md:col-span-2", children: [
434
+ /* @__PURE__ */ jsx("span", { className: "block font-medium", children: "Histopathology result" }),
435
+ /* @__PURE__ */ jsx(
436
+ Input,
437
+ {
438
+ className: "h-8 text-xs",
439
+ value: po.histopathology,
440
+ onChange: (e) => setPostop({ histopathology: e.target.value }),
441
+ disabled
442
+ }
443
+ )
444
+ ] }),
445
+ /* @__PURE__ */ jsxs("label", { className: "space-y-1", children: [
446
+ /* @__PURE__ */ jsx("span", { className: "block font-medium", children: "Wound status" }),
447
+ /* @__PURE__ */ jsxs(
448
+ Select,
449
+ {
450
+ value: po.woundStatus === "" ? "none" : po.woundStatus,
451
+ onValueChange: (v) => setPostop({
452
+ woundStatus: v === "none" ? "" : v
453
+ }),
454
+ disabled,
455
+ children: [
456
+ /* @__PURE__ */ jsx(SelectTrigger, { className: "h-8 text-xs", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "\u2014" }) }),
457
+ /* @__PURE__ */ jsxs(SelectContent, { children: [
458
+ /* @__PURE__ */ jsx(SelectItem, { value: "none", children: "\u2014" }),
459
+ /* @__PURE__ */ jsx(SelectItem, { value: "Healthy", children: "Healthy" }),
460
+ /* @__PURE__ */ jsx(SelectItem, { value: "Erythema", children: "Erythema" }),
461
+ /* @__PURE__ */ jsx(SelectItem, { value: "Discharge", children: "Discharge" }),
462
+ /* @__PURE__ */ jsx(SelectItem, { value: "Dehisced", children: "Dehisced" })
463
+ ] })
464
+ ]
465
+ }
466
+ )
467
+ ] }),
468
+ /* @__PURE__ */ jsxs("label", { className: "space-y-1", children: [
469
+ /* @__PURE__ */ jsx("span", { className: "block font-medium", children: "Pain score (0-10)" }),
470
+ /* @__PURE__ */ jsx(
471
+ Input,
472
+ {
473
+ type: "number",
474
+ min: 0,
475
+ max: 10,
476
+ className: "h-8 text-xs",
477
+ value: po.painScore,
478
+ onChange: (e) => setPostop({
479
+ painScore: Math.max(0, Math.min(10, Number(e.target.value) || 0))
480
+ }),
481
+ disabled
482
+ }
483
+ )
484
+ ] }),
485
+ /* @__PURE__ */ jsxs("label", { className: "space-y-1 md:col-span-3", children: [
486
+ /* @__PURE__ */ jsx("span", { className: "block font-medium", children: "Complications" }),
487
+ /* @__PURE__ */ jsx(
488
+ Textarea,
489
+ {
490
+ className: "min-h-[60px] text-xs",
491
+ value: po.complications,
492
+ onChange: (e) => setPostop({ complications: e.target.value }),
493
+ disabled
494
+ }
495
+ )
496
+ ] })
497
+ ] }) }) : null,
498
+ /* @__PURE__ */ jsxs("div", { className: "space-y-1 border-t border-[#D0D0D0] pt-3", children: [
499
+ /* @__PURE__ */ jsx(Label, { className: "text-sm font-medium", children: symptomsField.fieldDef?.label ?? "History of Presenting Complaint" }),
500
+ /* @__PURE__ */ jsx(
501
+ Textarea,
502
+ {
503
+ className: "min-h-[70px] text-xs",
504
+ placeholder: safe.zones.length > 0 ? "Free text on top lines; selected zones appear as comma-separated chips on the last line. Removing a chip closes its panel." : "Free-text history, or select pathway zones above to add chips on the last line.",
505
+ value: typeof symptomsField.value === "string" ? symptomsField.value : symptomsField.value == null ? "" : String(symptomsField.value),
506
+ onChange: (e) => onSymptomsChange(e.target.value),
507
+ disabled: disabled || symptomsField.disabled
508
+ }
509
+ )
510
+ ] })
511
+ ] })
512
+ ] });
513
+ };
514
+
515
+ export { OBGPathwayWidget };
516
+ //# sourceMappingURL=OBGPathwayWidget-CGT7Q4T2.mjs.map
517
+ //# sourceMappingURL=OBGPathwayWidget-CGT7Q4T2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ui/widgets/OBGPathwayWidget.tsx"],"names":[],"mappings":"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","file":"OBGPathwayWidget-CGT7Q4T2.mjs","sourcesContent":["import React, { useMemo } from 'react';\nimport { useField } from '../../react/useField';\nimport { useForm } from '../../react/useForm';\nimport { Label } from '../shadcn/label';\nimport { Input } from '../shadcn/input';\nimport { Textarea } from '../shadcn/textarea';\nimport { Checkbox } from '../shadcn/checkbox';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '../shadcn/select';\nimport { cn } from '../../core/utils';\nimport { FieldRequiredIndicator } from '../../react/fieldStyle';\nimport { getThemeConfig } from '../themes';\nimport {\n normalizeObgPathway,\n obgZonesFromChipLabels,\n OBG_ZONE_ALLOWED_CHIP_LABELS,\n OBG_ZONE_ORDER,\n obgZoneLabel,\n type ObgPathwayValue,\n type ObgZone,\n} from '../../core/obgPathway';\nimport { parseProseAndChipTokens } from '../../core/suggestionTokens';\nimport { ChipRow, Panel } from './_obgPanels';\nimport { useObgSymptomsSync } from './_obgSymptomsSync';\n\nexport const OBGPathwayWidget: React.FC<{ fieldId: string }> = ({ fieldId }) => {\n const { fieldDef, value, setValue, setTouched, error, touched, disabled } = useField(fieldId);\n const { writeSymptoms, symptomsField } = useObgSymptomsSync();\n const { state } = useForm();\n const showError = !!error && (touched || state.submitAttempted);\n\n const safe = useMemo(() => normalizeObgPathway(value), [value]);\n\n const update = (next: ObgPathwayValue) => {\n const prev = safe;\n setValue(next);\n setTouched();\n writeSymptoms(prev, next);\n };\n\n const onSymptomsChange = (raw: string) => {\n symptomsField.setValue(raw);\n symptomsField.setTouched();\n if (disabled) return;\n const { chips } = parseProseAndChipTokens(raw, OBG_ZONE_ALLOWED_CHIP_LABELS);\n const nextZones = obgZonesFromChipLabels(chips);\n const sameZones =\n nextZones.length === safe.zones.length &&\n nextZones.every((z, i) => safe.zones[i] === z);\n if (!sameZones) {\n const nextValue: ObgPathwayValue = { ...safe, zones: nextZones };\n setValue(nextValue);\n setTouched();\n }\n };\n\n if (!fieldDef) return null;\n\n const theme = getThemeConfig('textarea', fieldDef.theme);\n const wrapperClass =\n theme?.wrapperClassName ?? 'rounded-md overflow-hidden flex flex-col border border-[#D0D0D0]';\n const labelClass = theme?.labelClassName;\n\n const labelContent = (\n <>\n {fieldDef.label}\n <FieldRequiredIndicator fieldDef={fieldDef} />\n </>\n );\n\n const labelEl = theme ? (\n <Label className={labelClass}>{labelContent}</Label>\n ) : (\n <Label className=\"text-sm font-medium\">{labelContent}</Label>\n );\n\n const bodyClass = cn(\n '-mt-1 flex min-w-0 flex-col gap-3 border-t border-[#D0D0D0] bg-white px-3 py-3',\n disabled && 'pointer-events-none opacity-60',\n );\n\n const hasZone = (z: ObgZone) => safe.zones.includes(z);\n const toggleZone = (z: ObgZone) =>\n update({\n ...safe,\n zones: hasZone(z)\n ? safe.zones.filter((x) => x !== z)\n : OBG_ZONE_ORDER.filter((x) => x === z || hasZone(x)),\n });\n\n // ── Menstrual ──\n const m = safe.menstrual;\n const setMenstrual = (patch: Partial<typeof m>) =>\n update({ ...safe, menstrual: { ...m, ...patch } });\n\n // ── Gynae ──\n const gSym = safe.gynae.symptoms;\n const toggleGynae = (key: keyof typeof gSym) =>\n update({ ...safe, gynae: { symptoms: { ...gSym, [key]: !gSym[key] } } });\n\n // ── Infertility ──\n const inf = safe.infertility;\n const setInfertility = (patch: Partial<typeof inf>) =>\n update({ ...safe, infertility: { ...inf, ...patch } });\n\n // ── Post-op ──\n const po = safe.postop;\n const setPostop = (patch: Partial<typeof po>) =>\n update({ ...safe, postop: { ...po, ...patch } });\n\n return (\n <div className={cn('w-full min-w-0', wrapperClass)}>\n {labelEl}\n {fieldDef.description ? (\n <p className=\"px-3 pt-2 text-[11px] text-muted-foreground\">{fieldDef.description}</p>\n ) : null}\n\n <div className={bodyClass}>\n {showError ? <p className=\"text-xs text-red-600\">{error}</p> : null}\n\n <div className=\"space-y-1\">\n <Label className=\"text-sm font-medium\">\n Primary concern (Consultant zone — multi-select)\n </Label>\n <div className=\"flex flex-wrap gap-2\">\n {OBG_ZONE_ORDER.map((z) => {\n const on = hasZone(z);\n return (\n <button\n key={z}\n type=\"button\"\n onClick={() => toggleZone(z)}\n disabled={disabled}\n aria-pressed={on}\n className={cn(\n 'rounded-full border px-3 py-1 text-[11px] transition-colors',\n on\n ? 'border-rose-500 bg-rose-50 text-rose-700'\n : 'border-slate-300 bg-white text-slate-600 hover:bg-slate-50',\n )}\n >\n {obgZoneLabel(z)}\n </button>\n );\n })}\n </div>\n </div>\n\n {/* MENSTRUAL */}\n {hasZone('menstrual_reproductive') ? (\n <Panel title=\"Menstrual & reproductive history\">\n <div className=\"grid grid-cols-2 gap-3 md:grid-cols-4\">\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Menarche (age)</span>\n <Input\n type=\"number\"\n min={5}\n max={25}\n className=\"h-8 text-xs\"\n value={m.menarcheAge}\n onChange={(e) => setMenstrual({ menarcheAge: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Cycle (days)</span>\n <Input\n type=\"number\"\n min={0}\n max={120}\n className=\"h-8 text-xs\"\n value={m.cycleLength}\n onChange={(e) => setMenstrual({ cycleLength: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Flow (days)</span>\n <Input\n type=\"number\"\n min={0}\n max={30}\n className=\"h-8 text-xs\"\n value={m.flowDays}\n onChange={(e) => setMenstrual({ flowDays: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n </label>\n <label className=\"flex items-end gap-2 pb-1\">\n <Checkbox\n checked={m.cycleRegular}\n onCheckedChange={(c) => setMenstrual({ cycleRegular: c === true })}\n disabled={disabled}\n />\n <span>Regular cycle</span>\n </label>\n\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Amount of flow</span>\n <Select\n value={m.amount === '' ? 'none' : m.amount}\n onValueChange={(v) =>\n setMenstrual({ amount: v === 'none' ? '' : (v as typeof m.amount) })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Scanty\">Scanty</SelectItem>\n <SelectItem value=\"Normal\">Normal</SelectItem>\n <SelectItem value=\"Heavy\">Heavy</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Dysmenorrhea</span>\n <Select\n value={String(m.dysmenorrhea)}\n onValueChange={(v) =>\n setMenstrual({ dysmenorrhea: (Number(v) as 0 | 1 | 2 | 3) ?? 0 })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"0\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"0\">0 — none</SelectItem>\n <SelectItem value=\"1\">1 — mild</SelectItem>\n <SelectItem value=\"2\">2 — moderate</SelectItem>\n <SelectItem value=\"3\">3 — severe</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">LMP</span>\n <Input\n type=\"date\"\n className=\"h-8 text-xs\"\n value={m.lmp}\n onChange={(e) => setMenstrual({ lmp: e.target.value })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Menopause status</span>\n <Select\n value={m.menopauseStatus === '' ? 'none' : m.menopauseStatus}\n onValueChange={(v) =>\n setMenstrual({\n menopauseStatus: v === 'none' ? '' : (v as typeof m.menopauseStatus),\n })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Pre\">Pre</SelectItem>\n <SelectItem value=\"Peri\">Peri</SelectItem>\n <SelectItem value=\"Post\">Post</SelectItem>\n </SelectContent>\n </Select>\n </label>\n </div>\n </Panel>\n ) : null}\n\n {/* GYNAE */}\n {hasZone('gynaecological') ? (\n <Panel title=\"Gynaecological symptoms\">\n <ChipRow\n options={[\n { key: 'aub', label: 'Abnormal uterine bleeding' },\n { key: 'whiteDischarge', label: 'White discharge' },\n { key: 'pelvicPain', label: 'Pelvic pain' },\n { key: 'dyspareunia', label: 'Dyspareunia' },\n { key: 'urinaryComplaints', label: 'Urinary complaints' },\n { key: 'prolapse', label: 'Prolapse' },\n ]}\n selected={gSym as unknown as Record<string, boolean>}\n onToggle={(k) => toggleGynae(k as keyof typeof gSym)}\n disabled={disabled}\n />\n </Panel>\n ) : null}\n\n {/* INFERTILITY */}\n {hasZone('infertility') ? (\n <div className=\"space-y-3\">\n <Panel title=\"Infertility profile\">\n <div className=\"grid grid-cols-2 gap-3 md:grid-cols-3\">\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Type</span>\n <Select\n value={inf.type === '' ? 'none' : inf.type}\n onValueChange={(v) =>\n setInfertility({ type: v === 'none' ? '' : (v as typeof inf.type) })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Primary\">Primary</SelectItem>\n <SelectItem value=\"Secondary\">Secondary</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Duration (months)</span>\n <Input\n type=\"number\"\n min={0}\n className=\"h-8 text-xs\"\n value={inf.durationMonths}\n onChange={(e) =>\n setInfertility({ durationMonths: Number(e.target.value) || 0 })\n }\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1 md:col-span-1\">\n <span className=\"block font-medium\">Previous treatments</span>\n <Input\n className=\"h-8 text-xs\"\n placeholder=\"IUI ×2, OI cycles…\"\n value={inf.previousTreatments}\n onChange={(e) => setInfertility({ previousTreatments: e.target.value })}\n disabled={disabled}\n />\n </label>\n </div>\n </Panel>\n\n <Panel title=\"Female partner evaluation\">\n <div className=\"grid grid-cols-2 gap-3 md:grid-cols-3\">\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Ovulation status</span>\n <Select\n value={inf.female.ovulation === '' ? 'none' : inf.female.ovulation}\n onValueChange={(v) =>\n setInfertility({\n female: {\n ...inf.female,\n ovulation: (v === 'none' ? '' : v) as typeof inf.female.ovulation,\n },\n })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Ovulatory\">Ovulatory</SelectItem>\n <SelectItem value=\"Anovulatory\">Anovulatory</SelectItem>\n <SelectItem value=\"Unknown\">Unknown</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex items-end gap-2 pb-1\">\n <Checkbox\n checked={inf.female.pcosFeatures}\n onCheckedChange={(c) =>\n setInfertility({\n female: { ...inf.female, pcosFeatures: c === true },\n })\n }\n disabled={disabled}\n />\n <span>PCOS features</span>\n </label>\n <label className=\"flex items-end gap-2 pb-1\">\n <Checkbox\n checked={inf.female.endometriosisSuspicion}\n onCheckedChange={(c) =>\n setInfertility({\n female: { ...inf.female, endometriosisSuspicion: c === true },\n })\n }\n disabled={disabled}\n />\n <span>Endometriosis suspicion</span>\n </label>\n </div>\n </Panel>\n\n <Panel title=\"Male partner details\">\n <div className=\"grid grid-cols-2 gap-3 md:grid-cols-3\">\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Age</span>\n <Input\n type=\"number\"\n min={0}\n className=\"h-8 text-xs\"\n value={inf.male.age}\n onChange={(e) =>\n setInfertility({ male: { ...inf.male, age: Number(e.target.value) || 0 } })\n }\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Semen analysis</span>\n <Select\n value={inf.male.semenAnalysis === '' ? 'none' : inf.male.semenAnalysis}\n onValueChange={(v) =>\n setInfertility({\n male: {\n ...inf.male,\n semenAnalysis: (v === 'none' ? '' : v) as typeof inf.male.semenAnalysis,\n },\n })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Normal\">Normal</SelectItem>\n <SelectItem value=\"Abnormal\">Abnormal</SelectItem>\n <SelectItem value=\"Pending\">Pending</SelectItem>\n </SelectContent>\n </Select>\n </label>\n </div>\n </Panel>\n\n <Panel title=\"Investigations\">\n <div className=\"grid grid-cols-2 gap-3 md:grid-cols-3\">\n {(\n [\n { key: 'amh', label: 'AMH' },\n { key: 'fshLh', label: 'FSH / LH' },\n { key: 'prolactin', label: 'Prolactin' },\n { key: 'tsh', label: 'TSH' },\n { key: 'tvs', label: 'TVS findings' },\n { key: 'hsg', label: 'HSG findings' },\n ] as const\n ).map((row) => (\n <label key={row.key} className=\"space-y-1\">\n <span className=\"block font-medium\">{row.label}</span>\n <Input\n className=\"h-8 text-xs\"\n value={inf.investigations[row.key]}\n onChange={(e) =>\n setInfertility({\n investigations: { ...inf.investigations, [row.key]: e.target.value },\n })\n }\n disabled={disabled}\n />\n </label>\n ))}\n </div>\n </Panel>\n </div>\n ) : null}\n\n {/* POST-OP */}\n {hasZone('postoperative') ? (\n <Panel title=\"Post-operative follow-up\">\n <div className=\"grid grid-cols-2 gap-3 md:grid-cols-3\">\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Date of surgery</span>\n <Input\n type=\"date\"\n className=\"h-8 text-xs\"\n value={po.surgeryDate}\n onChange={(e) => setPostop({ surgeryDate: e.target.value })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1 md:col-span-2\">\n <span className=\"block font-medium\">Procedure performed</span>\n <Input\n className=\"h-8 text-xs\"\n value={po.procedure}\n onChange={(e) => setPostop({ procedure: e.target.value })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1 md:col-span-2\">\n <span className=\"block font-medium\">Histopathology result</span>\n <Input\n className=\"h-8 text-xs\"\n value={po.histopathology}\n onChange={(e) => setPostop({ histopathology: e.target.value })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Wound status</span>\n <Select\n value={po.woundStatus === '' ? 'none' : po.woundStatus}\n onValueChange={(v) =>\n setPostop({\n woundStatus: (v === 'none' ? '' : v) as typeof po.woundStatus,\n })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Healthy\">Healthy</SelectItem>\n <SelectItem value=\"Erythema\">Erythema</SelectItem>\n <SelectItem value=\"Discharge\">Discharge</SelectItem>\n <SelectItem value=\"Dehisced\">Dehisced</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Pain score (0-10)</span>\n <Input\n type=\"number\"\n min={0}\n max={10}\n className=\"h-8 text-xs\"\n value={po.painScore}\n onChange={(e) =>\n setPostop({\n painScore: Math.max(0, Math.min(10, Number(e.target.value) || 0)),\n })\n }\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1 md:col-span-3\">\n <span className=\"block font-medium\">Complications</span>\n <Textarea\n className=\"min-h-[60px] text-xs\"\n value={po.complications}\n onChange={(e) => setPostop({ complications: e.target.value })}\n disabled={disabled}\n />\n </label>\n </div>\n </Panel>\n ) : null}\n\n <div className=\"space-y-1 border-t border-[#D0D0D0] pt-3\">\n <Label className=\"text-sm font-medium\">\n {symptomsField.fieldDef?.label ?? 'History of Presenting Complaint'}\n </Label>\n <Textarea\n className=\"min-h-[70px] text-xs\"\n placeholder={\n safe.zones.length > 0\n ? 'Free text on top lines; selected zones appear as comma-separated chips on the last line. Removing a chip closes its panel.'\n : 'Free-text history, or select pathway zones above to add chips on the last line.'\n }\n value={\n typeof symptomsField.value === 'string'\n ? symptomsField.value\n : symptomsField.value == null\n ? ''\n : String(symptomsField.value)\n }\n onChange={(e) => onSymptomsChange(e.target.value)}\n disabled={disabled || symptomsField.disabled}\n />\n </div>\n </div>\n </div>\n );\n};\n"]}