formanitor 0.2.1 → 0.2.2

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 (180) hide show
  1. package/dist/{AddInvestigationWidget-RY62UCPM.cjs → AddInvestigationWidget-7FLINCTT.cjs} +7 -7
  2. package/dist/{AddInvestigationWidget-RY62UCPM.cjs.map → AddInvestigationWidget-7FLINCTT.cjs.map} +1 -1
  3. package/dist/{AddInvestigationWidget-7UGZQYI5.mjs → AddInvestigationWidget-FABXZDEZ.mjs} +3 -3
  4. package/dist/{AddInvestigationWidget-7UGZQYI5.mjs.map → AddInvestigationWidget-FABXZDEZ.mjs.map} +1 -1
  5. package/dist/{AddMedicationWidget-WPI32WAP.cjs → AddMedicationWidget-45T4XVEL.cjs} +6 -6
  6. package/dist/{AddMedicationWidget-WPI32WAP.cjs.map → AddMedicationWidget-45T4XVEL.cjs.map} +1 -1
  7. package/dist/{AddMedicationWidget-UG26VMUX.mjs → AddMedicationWidget-B5RXRYBK.mjs} +3 -3
  8. package/dist/{AddMedicationWidget-UG26VMUX.mjs.map → AddMedicationWidget-B5RXRYBK.mjs.map} +1 -1
  9. package/dist/{AddProcedureWidget-SQJUKKMK.mjs → AddProcedureWidget-F74WGSFX.mjs} +3 -3
  10. package/dist/{AddProcedureWidget-SQJUKKMK.mjs.map → AddProcedureWidget-F74WGSFX.mjs.map} +1 -1
  11. package/dist/{AddProcedureWidget-SF6MTRBV.cjs → AddProcedureWidget-HK7UNRXH.cjs} +6 -6
  12. package/dist/{AddProcedureWidget-SF6MTRBV.cjs.map → AddProcedureWidget-HK7UNRXH.cjs.map} +1 -1
  13. package/dist/{BiometryIolWorkupWidget-NL2M7ZAA.mjs → BiometryIolWorkupWidget-5RZP34FF.mjs} +4 -4
  14. package/dist/{BiometryIolWorkupWidget-NL2M7ZAA.mjs.map → BiometryIolWorkupWidget-5RZP34FF.mjs.map} +1 -1
  15. package/dist/{BiometryIolWorkupWidget-I5AJOYB2.cjs → BiometryIolWorkupWidget-FWO3IWTF.cjs} +6 -6
  16. package/dist/{BiometryIolWorkupWidget-I5AJOYB2.cjs.map → BiometryIolWorkupWidget-FWO3IWTF.cjs.map} +1 -1
  17. package/dist/{DateTimeWidget-LFBB6HOP.mjs → DateTimeWidget-3AUBZYYK.mjs} +4 -4
  18. package/dist/{DateTimeWidget-LFBB6HOP.mjs.map → DateTimeWidget-3AUBZYYK.mjs.map} +1 -1
  19. package/dist/{DateTimeWidget-DIDVF2EB.cjs → DateTimeWidget-OS7ER5F6.cjs} +6 -6
  20. package/dist/{DateTimeWidget-DIDVF2EB.cjs.map → DateTimeWidget-OS7ER5F6.cjs.map} +1 -1
  21. package/dist/{DateWidget-4ND5TKP2.mjs → DateWidget-KCTE6N5G.mjs} +4 -4
  22. package/dist/{DateWidget-4ND5TKP2.mjs.map → DateWidget-KCTE6N5G.mjs.map} +1 -1
  23. package/dist/{DateWidget-BCVR5GDK.cjs → DateWidget-UNLX544Z.cjs} +6 -6
  24. package/dist/{DateWidget-BCVR5GDK.cjs.map → DateWidget-UNLX544Z.cjs.map} +1 -1
  25. package/dist/{DiagnosisTextareaWidget-MAOXCXEZ.mjs → DiagnosisTextareaWidget-6UCYCCSB.mjs} +4 -4
  26. package/dist/{DiagnosisTextareaWidget-MAOXCXEZ.mjs.map → DiagnosisTextareaWidget-6UCYCCSB.mjs.map} +1 -1
  27. package/dist/{DiagnosisTextareaWidget-E7OQRUMX.cjs → DiagnosisTextareaWidget-XJ47OZYH.cjs} +7 -7
  28. package/dist/{DiagnosisTextareaWidget-E7OQRUMX.cjs.map → DiagnosisTextareaWidget-XJ47OZYH.cjs.map} +1 -1
  29. package/dist/{DifferentialDiagnosisWidget-LCY2SA2I.mjs → DifferentialDiagnosisWidget-IZEZVW5F.mjs} +3 -3
  30. package/dist/{DifferentialDiagnosisWidget-LCY2SA2I.mjs.map → DifferentialDiagnosisWidget-IZEZVW5F.mjs.map} +1 -1
  31. package/dist/{DifferentialDiagnosisWidget-ANALLNKL.cjs → DifferentialDiagnosisWidget-XESNHNQQ.cjs} +4 -4
  32. package/dist/{DifferentialDiagnosisWidget-ANALLNKL.cjs.map → DifferentialDiagnosisWidget-XESNHNQQ.cjs.map} +1 -1
  33. package/dist/{DischargeMedicationOrdersWidget-GYT35W7J.mjs → DischargeMedicationOrdersWidget-KA3HANHE.mjs} +4 -4
  34. package/dist/{DischargeMedicationOrdersWidget-GYT35W7J.mjs.map → DischargeMedicationOrdersWidget-KA3HANHE.mjs.map} +1 -1
  35. package/dist/{DischargeMedicationOrdersWidget-ILWNZ7VM.cjs → DischargeMedicationOrdersWidget-WRJRYL6F.cjs} +7 -7
  36. package/dist/{DischargeMedicationOrdersWidget-ILWNZ7VM.cjs.map → DischargeMedicationOrdersWidget-WRJRYL6F.cjs.map} +1 -1
  37. package/dist/{EditableTable-VCUNJZEX.cjs → EditableTable-VQ72UEFF.cjs} +4 -4
  38. package/dist/{EditableTable-VCUNJZEX.cjs.map → EditableTable-VQ72UEFF.cjs.map} +1 -1
  39. package/dist/{EditableTable-TGCVUBLO.mjs → EditableTable-XFCPKSUY.mjs} +3 -3
  40. package/dist/{EditableTable-TGCVUBLO.mjs.map → EditableTable-XFCPKSUY.mjs.map} +1 -1
  41. package/dist/{FollowupWidget-F6FRZO4T.mjs → FollowupWidget-BFZ6P2JE.mjs} +3 -3
  42. package/dist/{FollowupWidget-F6FRZO4T.mjs.map → FollowupWidget-BFZ6P2JE.mjs.map} +1 -1
  43. package/dist/{FollowupWidget-NBTOV2ML.cjs → FollowupWidget-MAYTHM2E.cjs} +4 -4
  44. package/dist/{FollowupWidget-NBTOV2ML.cjs.map → FollowupWidget-MAYTHM2E.cjs.map} +1 -1
  45. package/dist/{FunctionalImpairmentScoreWidget-5V5SNLTF.cjs → FunctionalImpairmentScoreWidget-FCA4UKQA.cjs} +6 -6
  46. package/dist/{FunctionalImpairmentScoreWidget-5V5SNLTF.cjs.map → FunctionalImpairmentScoreWidget-FCA4UKQA.cjs.map} +1 -1
  47. package/dist/{FunctionalImpairmentScoreWidget-QKIZE7KT.mjs → FunctionalImpairmentScoreWidget-TKS6KE7K.mjs} +4 -4
  48. package/dist/{FunctionalImpairmentScoreWidget-QKIZE7KT.mjs.map → FunctionalImpairmentScoreWidget-TKS6KE7K.mjs.map} +1 -1
  49. package/dist/{GsExaminationWidget-J4VABGY6.mjs → GsExaminationWidget-ESIEZCP3.mjs} +4 -4
  50. package/dist/{GsExaminationWidget-J4VABGY6.mjs.map → GsExaminationWidget-ESIEZCP3.mjs.map} +1 -1
  51. package/dist/{GsExaminationWidget-57SL4BCI.cjs → GsExaminationWidget-KKE5I5GX.cjs} +10 -10
  52. package/dist/{GsExaminationWidget-57SL4BCI.cjs.map → GsExaminationWidget-KKE5I5GX.cjs.map} +1 -1
  53. package/dist/{GsGradingWidget-3WTLIP33.mjs → GsGradingWidget-HC4MJ4KJ.mjs} +4 -4
  54. package/dist/{GsGradingWidget-3WTLIP33.mjs.map → GsGradingWidget-HC4MJ4KJ.mjs.map} +1 -1
  55. package/dist/{GsGradingWidget-CIXE36HF.cjs → GsGradingWidget-NGCQQVYA.cjs} +12 -12
  56. package/dist/{GsGradingWidget-CIXE36HF.cjs.map → GsGradingWidget-NGCQQVYA.cjs.map} +1 -1
  57. package/dist/{GsSmartHistoryWidget-IOGZ6GNS.mjs → GsSmartHistoryWidget-7HYGDU4O.mjs} +4 -4
  58. package/dist/{GsSmartHistoryWidget-IOGZ6GNS.mjs.map → GsSmartHistoryWidget-7HYGDU4O.mjs.map} +1 -1
  59. package/dist/{GsSmartHistoryWidget-6Q2IIGDG.cjs → GsSmartHistoryWidget-AAB427Q2.cjs} +12 -12
  60. package/dist/{GsSmartHistoryWidget-6Q2IIGDG.cjs.map → GsSmartHistoryWidget-AAB427Q2.cjs.map} +1 -1
  61. package/dist/{HiddenVitalsWidget-HBK7PBPR.cjs → HiddenVitalsWidget-5GFBDDPT.cjs} +6 -6
  62. package/dist/{HiddenVitalsWidget-HBK7PBPR.cjs.map → HiddenVitalsWidget-5GFBDDPT.cjs.map} +1 -1
  63. package/dist/{HiddenVitalsWidget-JH3NRZLM.mjs → HiddenVitalsWidget-CIE3KERT.mjs} +4 -4
  64. package/dist/{HiddenVitalsWidget-JH3NRZLM.mjs.map → HiddenVitalsWidget-CIE3KERT.mjs.map} +1 -1
  65. package/dist/{LensAssessmentWidget-7WMULFS2.mjs → LensAssessmentWidget-B4OMHTOE.mjs} +4 -4
  66. package/dist/{LensAssessmentWidget-7WMULFS2.mjs.map → LensAssessmentWidget-B4OMHTOE.mjs.map} +1 -1
  67. package/dist/{LensAssessmentWidget-GSOOD7BX.cjs → LensAssessmentWidget-SIKJVVAE.cjs} +6 -6
  68. package/dist/{LensAssessmentWidget-GSOOD7BX.cjs.map → LensAssessmentWidget-SIKJVVAE.cjs.map} +1 -1
  69. package/dist/{MarMedicationOrdersWidget-3E6GFOR6.cjs → MarMedicationOrdersWidget-767F65K6.cjs} +7 -7
  70. package/dist/{MarMedicationOrdersWidget-3E6GFOR6.cjs.map → MarMedicationOrdersWidget-767F65K6.cjs.map} +1 -1
  71. package/dist/{MarMedicationOrdersWidget-QZUVSEB5.mjs → MarMedicationOrdersWidget-LG3WOXN7.mjs} +4 -4
  72. package/dist/{MarMedicationOrdersWidget-QZUVSEB5.mjs.map → MarMedicationOrdersWidget-LG3WOXN7.mjs.map} +1 -1
  73. package/dist/{OBGExaminationWidget-POVLALMA.mjs → OBGExaminationWidget-HQKTHSOZ.mjs} +4 -4
  74. package/dist/{OBGExaminationWidget-POVLALMA.mjs.map → OBGExaminationWidget-HQKTHSOZ.mjs.map} +1 -1
  75. package/dist/{OBGExaminationWidget-F2ZNSP2M.cjs → OBGExaminationWidget-MRTGWLXJ.cjs} +11 -11
  76. package/dist/{OBGExaminationWidget-F2ZNSP2M.cjs.map → OBGExaminationWidget-MRTGWLXJ.cjs.map} +1 -1
  77. package/dist/{OBGPathwayWidget-CGT7Q4T2.mjs → OBGPathwayWidget-X67XKRIH.mjs} +5 -5
  78. package/dist/{OBGPathwayWidget-CGT7Q4T2.mjs.map → OBGPathwayWidget-X67XKRIH.mjs.map} +1 -1
  79. package/dist/{OBGPathwayWidget-WCIQENMO.cjs → OBGPathwayWidget-XGN3HEWS.cjs} +17 -17
  80. package/dist/{OBGPathwayWidget-WCIQENMO.cjs.map → OBGPathwayWidget-XGN3HEWS.cjs.map} +1 -1
  81. package/dist/{ObstetricHistoryWidget-XU6R7IPP.cjs → ObstetricHistoryWidget-RP7NY4PV.cjs} +12 -12
  82. package/dist/{ObstetricHistoryWidget-XU6R7IPP.cjs.map → ObstetricHistoryWidget-RP7NY4PV.cjs.map} +1 -1
  83. package/dist/{ObstetricHistoryWidget-EGVLL4X2.mjs → ObstetricHistoryWidget-Z4VAXH3E.mjs} +4 -4
  84. package/dist/{ObstetricHistoryWidget-EGVLL4X2.mjs.map → ObstetricHistoryWidget-Z4VAXH3E.mjs.map} +1 -1
  85. package/dist/{OphthalDiagnosisWidget-G5RCC2QZ.mjs → OphthalDiagnosisWidget-MZYBQTFV.mjs} +3 -3
  86. package/dist/{OphthalDiagnosisWidget-G5RCC2QZ.mjs.map → OphthalDiagnosisWidget-MZYBQTFV.mjs.map} +1 -1
  87. package/dist/{OphthalDiagnosisWidget-OQPTHJ7E.cjs → OphthalDiagnosisWidget-UXXYGKD5.cjs} +4 -4
  88. package/dist/{OphthalDiagnosisWidget-OQPTHJ7E.cjs.map → OphthalDiagnosisWidget-UXXYGKD5.cjs.map} +1 -1
  89. package/dist/{OphthalmologyWidget-RG2AI6WA.mjs → OphthalmologyWidget-27ZN2E3F.mjs} +3 -3
  90. package/dist/{OphthalmologyWidget-RG2AI6WA.mjs.map → OphthalmologyWidget-27ZN2E3F.mjs.map} +1 -1
  91. package/dist/{OphthalmologyWidget-I3BKWOI2.cjs → OphthalmologyWidget-WFSFIHT4.cjs} +4 -4
  92. package/dist/{OphthalmologyWidget-I3BKWOI2.cjs.map → OphthalmologyWidget-WFSFIHT4.cjs.map} +1 -1
  93. package/dist/{OrthopedicExamWidget-M4KKU5RC.cjs → OrthopedicExamWidget-ULZTDFXJ.cjs} +6 -6
  94. package/dist/{OrthopedicExamWidget-M4KKU5RC.cjs.map → OrthopedicExamWidget-ULZTDFXJ.cjs.map} +1 -1
  95. package/dist/{OrthopedicExamWidget-BBZP6NVT.mjs → OrthopedicExamWidget-WM55M3Y4.mjs} +4 -4
  96. package/dist/{OrthopedicExamWidget-BBZP6NVT.mjs.map → OrthopedicExamWidget-WM55M3Y4.mjs.map} +1 -1
  97. package/dist/{PainScaleFlagsWidget-E576R6QB.mjs → PainScaleFlagsWidget-5KN7T4JK.mjs} +4 -4
  98. package/dist/{PainScaleFlagsWidget-E576R6QB.mjs.map → PainScaleFlagsWidget-5KN7T4JK.mjs.map} +1 -1
  99. package/dist/{PainScaleFlagsWidget-QHGESXNE.cjs → PainScaleFlagsWidget-IFA3RCEL.cjs} +8 -8
  100. package/dist/{PainScaleFlagsWidget-QHGESXNE.cjs.map → PainScaleFlagsWidget-IFA3RCEL.cjs.map} +1 -1
  101. package/dist/{ReferralWidget-J2PWYFDT.cjs → ReferralWidget-27VGZCOQ.cjs} +7 -7
  102. package/dist/{ReferralWidget-J2PWYFDT.cjs.map → ReferralWidget-27VGZCOQ.cjs.map} +1 -1
  103. package/dist/{ReferralWidget-UPYWEO5R.mjs → ReferralWidget-GU3JYED2.mjs} +4 -4
  104. package/dist/{ReferralWidget-UPYWEO5R.mjs.map → ReferralWidget-GU3JYED2.mjs.map} +1 -1
  105. package/dist/{RichTextWidget-CRQHNVJR.cjs → RichTextWidget-2KLV65QP.cjs} +7 -7
  106. package/dist/{RichTextWidget-BBCNJPMH.mjs.map → RichTextWidget-2KLV65QP.cjs.map} +1 -1
  107. package/dist/RichTextWidget-ZBX554ZJ.mjs +11 -0
  108. package/dist/{RichTextWidget-CRQHNVJR.cjs.map → RichTextWidget-ZBX554ZJ.mjs.map} +1 -1
  109. package/dist/SmartTextarea-LQDXFCYT.mjs +10 -0
  110. package/dist/{SmartTextarea-DKWV4R6H.cjs.map → SmartTextarea-LQDXFCYT.mjs.map} +1 -1
  111. package/dist/SmartTextarea-WITNRNDU.cjs +19 -0
  112. package/dist/{SmartTextarea-ZTQIW6O2.mjs.map → SmartTextarea-WITNRNDU.cjs.map} +1 -1
  113. package/dist/{SuggestionTextareaWidget-WCTPWW2E.cjs → SuggestionTextareaWidget-DY6M5JPO.cjs} +18 -18
  114. package/dist/{SuggestionTextareaWidget-WCTPWW2E.cjs.map → SuggestionTextareaWidget-DY6M5JPO.cjs.map} +1 -1
  115. package/dist/{SuggestionTextareaWidget-22NR3JWM.mjs → SuggestionTextareaWidget-GQTWCFBG.mjs} +7 -7
  116. package/dist/{SuggestionTextareaWidget-22NR3JWM.mjs.map → SuggestionTextareaWidget-GQTWCFBG.mjs.map} +1 -1
  117. package/dist/{SurgicalRiskFlagsWidget-Q5FTWB3M.cjs → SurgicalRiskFlagsWidget-OJKCZIWJ.cjs} +6 -6
  118. package/dist/{SurgicalRiskFlagsWidget-Q5FTWB3M.cjs.map → SurgicalRiskFlagsWidget-OJKCZIWJ.cjs.map} +1 -1
  119. package/dist/{SurgicalRiskFlagsWidget-WCAHZKKG.mjs → SurgicalRiskFlagsWidget-ZTQJ6CDF.mjs} +4 -4
  120. package/dist/{SurgicalRiskFlagsWidget-WCAHZKKG.mjs.map → SurgicalRiskFlagsWidget-ZTQJ6CDF.mjs.map} +1 -1
  121. package/dist/{UrologyExaminationWidget-JYUGZ5CG.cjs → UrologyExaminationWidget-GQLMV4FB.cjs} +12 -12
  122. package/dist/{UrologyExaminationWidget-JYUGZ5CG.cjs.map → UrologyExaminationWidget-GQLMV4FB.cjs.map} +1 -1
  123. package/dist/{UrologyExaminationWidget-QDTD3FJX.mjs → UrologyExaminationWidget-GRBL2SDG.mjs} +4 -4
  124. package/dist/{UrologyExaminationWidget-QDTD3FJX.mjs.map → UrologyExaminationWidget-GRBL2SDG.mjs.map} +1 -1
  125. package/dist/{UrologyPathwayWidget-TXZQNGP4.cjs → UrologyPathwayWidget-D6EWSOGW.cjs} +7 -7
  126. package/dist/{UrologyPathwayWidget-TXZQNGP4.cjs.map → UrologyPathwayWidget-D6EWSOGW.cjs.map} +1 -1
  127. package/dist/{UrologyPathwayWidget-QTFKUIM7.mjs → UrologyPathwayWidget-PEO5BVQX.mjs} +4 -4
  128. package/dist/{UrologyPathwayWidget-QTFKUIM7.mjs.map → UrologyPathwayWidget-PEO5BVQX.mjs.map} +1 -1
  129. package/dist/{UrologySmartHistoryWidget-PBU4QXQJ.mjs → UrologySmartHistoryWidget-BDKRFBYN.mjs} +4 -4
  130. package/dist/{UrologySmartHistoryWidget-PBU4QXQJ.mjs.map → UrologySmartHistoryWidget-BDKRFBYN.mjs.map} +1 -1
  131. package/dist/{UrologySmartHistoryWidget-53NATEO3.cjs → UrologySmartHistoryWidget-P3KTQE7L.cjs} +15 -15
  132. package/dist/{UrologySmartHistoryWidget-53NATEO3.cjs.map → UrologySmartHistoryWidget-P3KTQE7L.cjs.map} +1 -1
  133. package/dist/{VitalsWidget-BRFUKGNO.mjs → VitalsWidget-63HTXK2M.mjs} +3 -3
  134. package/dist/{VitalsWidget-BRFUKGNO.mjs.map → VitalsWidget-63HTXK2M.mjs.map} +1 -1
  135. package/dist/{VitalsWidget-PDCYXNBM.cjs → VitalsWidget-MS3OOZSW.cjs} +5 -5
  136. package/dist/{VitalsWidget-PDCYXNBM.cjs.map → VitalsWidget-MS3OOZSW.cjs.map} +1 -1
  137. package/dist/{chunk-ZTT5XJR7.mjs → chunk-2BGJZ44Q.mjs} +3 -2
  138. package/dist/chunk-2BGJZ44Q.mjs.map +1 -0
  139. package/dist/{chunk-ULMK3TUI.mjs → chunk-4HDMR2LX.mjs} +3 -3
  140. package/dist/{chunk-ULMK3TUI.mjs.map → chunk-4HDMR2LX.mjs.map} +1 -1
  141. package/dist/{chunk-6YX37XBM.cjs → chunk-7DISRJAB.cjs} +4 -4
  142. package/dist/{chunk-6YX37XBM.cjs.map → chunk-7DISRJAB.cjs.map} +1 -1
  143. package/dist/{chunk-VZT5YNCD.mjs → chunk-MBZRRYJB.mjs} +4 -4
  144. package/dist/{chunk-VZT5YNCD.mjs.map → chunk-MBZRRYJB.mjs.map} +1 -1
  145. package/dist/{chunk-I7TJVWYV.cjs → chunk-ML47UEDU.cjs} +6 -6
  146. package/dist/{chunk-I7TJVWYV.cjs.map → chunk-ML47UEDU.cjs.map} +1 -1
  147. package/dist/{chunk-5I2RC47Y.mjs → chunk-Q3K646K4.mjs} +3 -3
  148. package/dist/{chunk-5I2RC47Y.mjs.map → chunk-Q3K646K4.mjs.map} +1 -1
  149. package/dist/{chunk-GPU5P3FB.cjs → chunk-RZK44P3C.cjs} +7 -7
  150. package/dist/{chunk-GPU5P3FB.cjs.map → chunk-RZK44P3C.cjs.map} +1 -1
  151. package/dist/{chunk-L4CIIT4U.cjs → chunk-T2IKWRV2.cjs} +9 -9
  152. package/dist/{chunk-L4CIIT4U.cjs.map → chunk-T2IKWRV2.cjs.map} +1 -1
  153. package/dist/{chunk-7L2JOWGA.mjs → chunk-T3UHPMFX.mjs} +3 -3
  154. package/dist/{chunk-7L2JOWGA.mjs.map → chunk-T3UHPMFX.mjs.map} +1 -1
  155. package/dist/{chunk-SHQHDSA4.cjs → chunk-TB33A4PD.cjs} +3 -2
  156. package/dist/chunk-TB33A4PD.cjs.map +1 -0
  157. package/dist/{chunk-MQ2JV7HL.cjs → chunk-TVFUWRTE.cjs} +11 -11
  158. package/dist/{chunk-MQ2JV7HL.cjs.map → chunk-TVFUWRTE.cjs.map} +1 -1
  159. package/dist/{chunk-BOBX45NY.cjs → chunk-XIUXYHGG.cjs} +5 -5
  160. package/dist/{chunk-BOBX45NY.cjs.map → chunk-XIUXYHGG.cjs.map} +1 -1
  161. package/dist/{chunk-YHNI5NIX.mjs → chunk-XLCTFYFD.mjs} +5 -5
  162. package/dist/{chunk-YHNI5NIX.mjs.map → chunk-XLCTFYFD.mjs.map} +1 -1
  163. package/dist/{chunk-3KRDT7TX.mjs → chunk-XN2QLBLT.mjs} +5 -5
  164. package/dist/{chunk-3KRDT7TX.mjs.map → chunk-XN2QLBLT.mjs.map} +1 -1
  165. package/dist/index.cjs +109 -107
  166. package/dist/index.cjs.map +1 -1
  167. package/dist/index.d.cts +10 -0
  168. package/dist/index.d.ts +10 -0
  169. package/dist/index.mjs +42 -40
  170. package/dist/index.mjs.map +1 -1
  171. package/dist/rich-text.cjs +5 -5
  172. package/dist/rich-text.mjs +4 -4
  173. package/dist/smart.cjs +5 -5
  174. package/dist/smart.mjs +3 -3
  175. package/package.json +1 -1
  176. package/dist/RichTextWidget-BBCNJPMH.mjs +0 -11
  177. package/dist/SmartTextarea-DKWV4R6H.cjs +0 -19
  178. package/dist/SmartTextarea-ZTQIW6O2.mjs +0 -10
  179. package/dist/chunk-SHQHDSA4.cjs.map +0 -1
  180. package/dist/chunk-ZTT5XJR7.mjs.map +0 -1
@@ -3,9 +3,9 @@
3
3
  var chunkPZBJYPWW_cjs = require('./chunk-PZBJYPWW.cjs');
4
4
  var chunkP62377LB_cjs = require('./chunk-P62377LB.cjs');
5
5
  var chunk5E3APMY6_cjs = require('./chunk-5E3APMY6.cjs');
6
- var chunk6YX37XBM_cjs = require('./chunk-6YX37XBM.cjs');
6
+ var chunk7DISRJAB_cjs = require('./chunk-7DISRJAB.cjs');
7
7
  var chunkTJHG5WHX_cjs = require('./chunk-TJHG5WHX.cjs');
8
- var chunkSHQHDSA4_cjs = require('./chunk-SHQHDSA4.cjs');
8
+ var chunkTB33A4PD_cjs = require('./chunk-TB33A4PD.cjs');
9
9
  var chunkJMGUUFOJ_cjs = require('./chunk-JMGUUFOJ.cjs');
10
10
  var chunkFHHISVCH_cjs = require('./chunk-FHHISVCH.cjs');
11
11
  var react = require('react');
@@ -18,10 +18,10 @@ var RISK_ROWS = [
18
18
  { key: "activeInfection", label: "Active infection" }
19
19
  ];
20
20
  var UrologyPathwayWidget = ({ fieldId }) => {
21
- const { fieldDef, value, setValue, setTouched, error, touched, disabled } = chunkSHQHDSA4_cjs.useField(fieldId);
22
- const { state } = chunk6YX37XBM_cjs.useForm();
21
+ const { fieldDef, value, setValue, setTouched, error, touched, disabled } = chunkTB33A4PD_cjs.useField(fieldId);
22
+ const { state } = chunk7DISRJAB_cjs.useForm();
23
23
  const showError = !!error && (touched || state.submitAttempted);
24
- const safe = react.useMemo(() => chunkSHQHDSA4_cjs.normalizeUrologyPathway(value), [value]);
24
+ const safe = react.useMemo(() => chunkTB33A4PD_cjs.normalizeUrologyPathway(value), [value]);
25
25
  const update = (next) => {
26
26
  setValue(next);
27
27
  setTouched();
@@ -151,5 +151,5 @@ var UrologyPathwayWidget = ({ fieldId }) => {
151
151
  };
152
152
 
153
153
  exports.UrologyPathwayWidget = UrologyPathwayWidget;
154
- //# sourceMappingURL=UrologyPathwayWidget-TXZQNGP4.cjs.map
155
- //# sourceMappingURL=UrologyPathwayWidget-TXZQNGP4.cjs.map
154
+ //# sourceMappingURL=UrologyPathwayWidget-D6EWSOGW.cjs.map
155
+ //# sourceMappingURL=UrologyPathwayWidget-D6EWSOGW.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ui/widgets/UrologyPathwayWidget.tsx"],"names":["useField","useForm","useMemo","normalizeUrologyPathway","getThemeConfig","jsxs","Fragment","jsx","FieldRequiredIndicator","Label","cn","Input","Checkbox"],"mappings":"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","file":"UrologyPathwayWidget-TXZQNGP4.cjs","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 { Checkbox } from '../shadcn/checkbox';\nimport { cn } from '../../core/utils';\nimport { FieldRequiredIndicator } from '../../react/fieldStyle';\nimport { getThemeConfig } from '../themes';\nimport type { UrologyPathwayRisk, UrologyPathwayValue } from '../../core/urologyPathway';\nimport { normalizeUrologyPathway } from '../../core/urologyPathway';\n\nconst RISK_ROWS: { key: keyof UrologyPathwayRisk; label: string }[] = [\n { key: 'ckd', label: 'Chronic kidney disease' },\n { key: 'diabetes', label: 'Diabetes' },\n { key: 'anticoagulants', label: 'Anticoagulants' },\n { key: 'activeInfection', label: 'Active infection' },\n];\n\nexport const UrologyPathwayWidget: React.FC<{ fieldId: string }> = ({ fieldId }) => {\n const { fieldDef, value, setValue, setTouched, error, touched, disabled } = useField(fieldId);\n const { state } = useForm();\n const showError = !!error && (touched || state.submitAttempted);\n\n const safe = useMemo(() => normalizeUrologyPathway(value), [value]);\n\n const update = (next: UrologyPathwayValue) => {\n setValue(next);\n setTouched();\n };\n\n const setNum = (key: keyof Pick<UrologyPathwayValue, 'stoneSizeMm' | 'prostateVolumeCc' | 'psaNgMl' | 'uroflowQmaxMlSec'>, raw: string) => {\n const n = Number(raw);\n const v = Number.isFinite(n) && n >= 0 ? n : 0;\n if (key === 'stoneSizeMm') {\n update({ ...safe, stoneSizeMm: Math.round(v) });\n return;\n }\n update({ ...safe, [key]: v });\n };\n\n const toggleRisk = (key: keyof UrologyPathwayRisk) => {\n update({\n ...safe,\n risk: { ...safe.risk, [key]: !safe.risk[key] },\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 subtitle =\n fieldDef.meta && typeof fieldDef.meta === 'object' && fieldDef.meta !== null\n ? String((fieldDef.meta as { subtitle?: unknown }).subtitle ?? '')\n : '';\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-4 border-t border-[#D0D0D0] bg-white px-3 py-3',\n disabled && 'pointer-events-none opacity-60',\n );\n\n return (\n <div className={cn('w-full min-w-0', wrapperClass)}>\n {labelEl}\n {subtitle ? (\n <p className=\"px-3 pt-2 text-[11px] text-muted-foreground\">{subtitle}</p>\n ) : null}\n\n <div className={bodyClass}>\n {showError ? <p className=\"text-xs text-red-600\">{error}</p> : null}\n\n <div className=\"grid grid-cols-1 gap-3 md:grid-cols-2\">\n <label className=\"block space-y-1 text-xs\">\n <span className=\"font-medium\">Stone size (mm)</span>\n <Input\n type=\"number\"\n min={0}\n className=\"h-8 text-xs\"\n value={safe.stoneSizeMm}\n onChange={(e) => setNum('stoneSizeMm', e.target.value)}\n disabled={disabled}\n />\n </label>\n <label className=\"flex items-center gap-2 pt-6 text-xs\">\n <Checkbox\n checked={safe.hydronephrosis}\n onCheckedChange={(c) => update({ ...safe, hydronephrosis: c === true })}\n disabled={disabled}\n />\n Hydronephrosis on imaging\n </label>\n <label className=\"block space-y-1 text-xs\">\n <span className=\"font-medium\">Prostate volume (cc)</span>\n <Input\n type=\"number\"\n min={0}\n step={0.1}\n className=\"h-8 text-xs\"\n value={safe.prostateVolumeCc}\n onChange={(e) => setNum('prostateVolumeCc', e.target.value)}\n disabled={disabled}\n />\n </label>\n <label className=\"block space-y-1 text-xs\">\n <span className=\"font-medium\">PSA (ng/mL)</span>\n <Input\n type=\"number\"\n min={0}\n step={0.01}\n className=\"h-8 text-xs\"\n value={safe.psaNgMl}\n onChange={(e) => setNum('psaNgMl', e.target.value)}\n disabled={disabled}\n />\n </label>\n <label className=\"block space-y-1 text-xs md:col-span-2\">\n <span className=\"font-medium\">Uroflow Qmax (mL/s)</span>\n <Input\n type=\"number\"\n min={0}\n step={0.1}\n className=\"h-8 text-xs\"\n value={safe.uroflowQmaxMlSec}\n onChange={(e) => setNum('uroflowQmaxMlSec', e.target.value)}\n disabled={disabled}\n />\n </label>\n </div>\n\n <div className=\"space-y-2 border-t border-muted-foreground/20 pt-3\">\n <p className=\"text-xs font-semibold text-slate-800\">Risk stratification</p>\n <div className=\"grid grid-cols-1 gap-2 sm:grid-cols-2\">\n {RISK_ROWS.map((r) => (\n <label key={r.key} className=\"flex items-center gap-2 text-xs\">\n <Checkbox\n checked={safe.risk[r.key]}\n onCheckedChange={() => toggleRisk(r.key)}\n disabled={disabled}\n />\n {r.label}\n </label>\n ))}\n </div>\n </div>\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/ui/widgets/UrologyPathwayWidget.tsx"],"names":["useField","useForm","useMemo","normalizeUrologyPathway","getThemeConfig","jsxs","Fragment","jsx","FieldRequiredIndicator","Label","cn","Input","Checkbox"],"mappings":"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","file":"UrologyPathwayWidget-D6EWSOGW.cjs","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 { Checkbox } from '../shadcn/checkbox';\nimport { cn } from '../../core/utils';\nimport { FieldRequiredIndicator } from '../../react/fieldStyle';\nimport { getThemeConfig } from '../themes';\nimport type { UrologyPathwayRisk, UrologyPathwayValue } from '../../core/urologyPathway';\nimport { normalizeUrologyPathway } from '../../core/urologyPathway';\n\nconst RISK_ROWS: { key: keyof UrologyPathwayRisk; label: string }[] = [\n { key: 'ckd', label: 'Chronic kidney disease' },\n { key: 'diabetes', label: 'Diabetes' },\n { key: 'anticoagulants', label: 'Anticoagulants' },\n { key: 'activeInfection', label: 'Active infection' },\n];\n\nexport const UrologyPathwayWidget: React.FC<{ fieldId: string }> = ({ fieldId }) => {\n const { fieldDef, value, setValue, setTouched, error, touched, disabled } = useField(fieldId);\n const { state } = useForm();\n const showError = !!error && (touched || state.submitAttempted);\n\n const safe = useMemo(() => normalizeUrologyPathway(value), [value]);\n\n const update = (next: UrologyPathwayValue) => {\n setValue(next);\n setTouched();\n };\n\n const setNum = (key: keyof Pick<UrologyPathwayValue, 'stoneSizeMm' | 'prostateVolumeCc' | 'psaNgMl' | 'uroflowQmaxMlSec'>, raw: string) => {\n const n = Number(raw);\n const v = Number.isFinite(n) && n >= 0 ? n : 0;\n if (key === 'stoneSizeMm') {\n update({ ...safe, stoneSizeMm: Math.round(v) });\n return;\n }\n update({ ...safe, [key]: v });\n };\n\n const toggleRisk = (key: keyof UrologyPathwayRisk) => {\n update({\n ...safe,\n risk: { ...safe.risk, [key]: !safe.risk[key] },\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 subtitle =\n fieldDef.meta && typeof fieldDef.meta === 'object' && fieldDef.meta !== null\n ? String((fieldDef.meta as { subtitle?: unknown }).subtitle ?? '')\n : '';\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-4 border-t border-[#D0D0D0] bg-white px-3 py-3',\n disabled && 'pointer-events-none opacity-60',\n );\n\n return (\n <div className={cn('w-full min-w-0', wrapperClass)}>\n {labelEl}\n {subtitle ? (\n <p className=\"px-3 pt-2 text-[11px] text-muted-foreground\">{subtitle}</p>\n ) : null}\n\n <div className={bodyClass}>\n {showError ? <p className=\"text-xs text-red-600\">{error}</p> : null}\n\n <div className=\"grid grid-cols-1 gap-3 md:grid-cols-2\">\n <label className=\"block space-y-1 text-xs\">\n <span className=\"font-medium\">Stone size (mm)</span>\n <Input\n type=\"number\"\n min={0}\n className=\"h-8 text-xs\"\n value={safe.stoneSizeMm}\n onChange={(e) => setNum('stoneSizeMm', e.target.value)}\n disabled={disabled}\n />\n </label>\n <label className=\"flex items-center gap-2 pt-6 text-xs\">\n <Checkbox\n checked={safe.hydronephrosis}\n onCheckedChange={(c) => update({ ...safe, hydronephrosis: c === true })}\n disabled={disabled}\n />\n Hydronephrosis on imaging\n </label>\n <label className=\"block space-y-1 text-xs\">\n <span className=\"font-medium\">Prostate volume (cc)</span>\n <Input\n type=\"number\"\n min={0}\n step={0.1}\n className=\"h-8 text-xs\"\n value={safe.prostateVolumeCc}\n onChange={(e) => setNum('prostateVolumeCc', e.target.value)}\n disabled={disabled}\n />\n </label>\n <label className=\"block space-y-1 text-xs\">\n <span className=\"font-medium\">PSA (ng/mL)</span>\n <Input\n type=\"number\"\n min={0}\n step={0.01}\n className=\"h-8 text-xs\"\n value={safe.psaNgMl}\n onChange={(e) => setNum('psaNgMl', e.target.value)}\n disabled={disabled}\n />\n </label>\n <label className=\"block space-y-1 text-xs md:col-span-2\">\n <span className=\"font-medium\">Uroflow Qmax (mL/s)</span>\n <Input\n type=\"number\"\n min={0}\n step={0.1}\n className=\"h-8 text-xs\"\n value={safe.uroflowQmaxMlSec}\n onChange={(e) => setNum('uroflowQmaxMlSec', e.target.value)}\n disabled={disabled}\n />\n </label>\n </div>\n\n <div className=\"space-y-2 border-t border-muted-foreground/20 pt-3\">\n <p className=\"text-xs font-semibold text-slate-800\">Risk stratification</p>\n <div className=\"grid grid-cols-1 gap-2 sm:grid-cols-2\">\n {RISK_ROWS.map((r) => (\n <label key={r.key} className=\"flex items-center gap-2 text-xs\">\n <Checkbox\n checked={safe.risk[r.key]}\n onCheckedChange={() => toggleRisk(r.key)}\n disabled={disabled}\n />\n {r.label}\n </label>\n ))}\n </div>\n </div>\n </div>\n </div>\n );\n};\n"]}
@@ -1,9 +1,9 @@
1
1
  import { Checkbox } from './chunk-GNZWSVTB.mjs';
2
2
  import { getThemeConfig } from './chunk-Y7TIWH4I.mjs';
3
3
  import { FieldRequiredIndicator } from './chunk-WYVXXEZI.mjs';
4
- import { useForm } from './chunk-7L2JOWGA.mjs';
4
+ import { useForm } from './chunk-T3UHPMFX.mjs';
5
5
  import { Input } from './chunk-VNFBUAZD.mjs';
6
- import { useField, normalizeUrologyPathway } from './chunk-ZTT5XJR7.mjs';
6
+ import { useField, normalizeUrologyPathway } from './chunk-2BGJZ44Q.mjs';
7
7
  import { Label } from './chunk-HEFZA2AH.mjs';
8
8
  import { cn } from './chunk-VPU66PI6.mjs';
9
9
  import { useMemo } from 'react';
@@ -149,5 +149,5 @@ var UrologyPathwayWidget = ({ fieldId }) => {
149
149
  };
150
150
 
151
151
  export { UrologyPathwayWidget };
152
- //# sourceMappingURL=UrologyPathwayWidget-QTFKUIM7.mjs.map
153
- //# sourceMappingURL=UrologyPathwayWidget-QTFKUIM7.mjs.map
152
+ //# sourceMappingURL=UrologyPathwayWidget-PEO5BVQX.mjs.map
153
+ //# sourceMappingURL=UrologyPathwayWidget-PEO5BVQX.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ui/widgets/UrologyPathwayWidget.tsx"],"names":[],"mappings":"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","file":"UrologyPathwayWidget-QTFKUIM7.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 { Checkbox } from '../shadcn/checkbox';\nimport { cn } from '../../core/utils';\nimport { FieldRequiredIndicator } from '../../react/fieldStyle';\nimport { getThemeConfig } from '../themes';\nimport type { UrologyPathwayRisk, UrologyPathwayValue } from '../../core/urologyPathway';\nimport { normalizeUrologyPathway } from '../../core/urologyPathway';\n\nconst RISK_ROWS: { key: keyof UrologyPathwayRisk; label: string }[] = [\n { key: 'ckd', label: 'Chronic kidney disease' },\n { key: 'diabetes', label: 'Diabetes' },\n { key: 'anticoagulants', label: 'Anticoagulants' },\n { key: 'activeInfection', label: 'Active infection' },\n];\n\nexport const UrologyPathwayWidget: React.FC<{ fieldId: string }> = ({ fieldId }) => {\n const { fieldDef, value, setValue, setTouched, error, touched, disabled } = useField(fieldId);\n const { state } = useForm();\n const showError = !!error && (touched || state.submitAttempted);\n\n const safe = useMemo(() => normalizeUrologyPathway(value), [value]);\n\n const update = (next: UrologyPathwayValue) => {\n setValue(next);\n setTouched();\n };\n\n const setNum = (key: keyof Pick<UrologyPathwayValue, 'stoneSizeMm' | 'prostateVolumeCc' | 'psaNgMl' | 'uroflowQmaxMlSec'>, raw: string) => {\n const n = Number(raw);\n const v = Number.isFinite(n) && n >= 0 ? n : 0;\n if (key === 'stoneSizeMm') {\n update({ ...safe, stoneSizeMm: Math.round(v) });\n return;\n }\n update({ ...safe, [key]: v });\n };\n\n const toggleRisk = (key: keyof UrologyPathwayRisk) => {\n update({\n ...safe,\n risk: { ...safe.risk, [key]: !safe.risk[key] },\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 subtitle =\n fieldDef.meta && typeof fieldDef.meta === 'object' && fieldDef.meta !== null\n ? String((fieldDef.meta as { subtitle?: unknown }).subtitle ?? '')\n : '';\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-4 border-t border-[#D0D0D0] bg-white px-3 py-3',\n disabled && 'pointer-events-none opacity-60',\n );\n\n return (\n <div className={cn('w-full min-w-0', wrapperClass)}>\n {labelEl}\n {subtitle ? (\n <p className=\"px-3 pt-2 text-[11px] text-muted-foreground\">{subtitle}</p>\n ) : null}\n\n <div className={bodyClass}>\n {showError ? <p className=\"text-xs text-red-600\">{error}</p> : null}\n\n <div className=\"grid grid-cols-1 gap-3 md:grid-cols-2\">\n <label className=\"block space-y-1 text-xs\">\n <span className=\"font-medium\">Stone size (mm)</span>\n <Input\n type=\"number\"\n min={0}\n className=\"h-8 text-xs\"\n value={safe.stoneSizeMm}\n onChange={(e) => setNum('stoneSizeMm', e.target.value)}\n disabled={disabled}\n />\n </label>\n <label className=\"flex items-center gap-2 pt-6 text-xs\">\n <Checkbox\n checked={safe.hydronephrosis}\n onCheckedChange={(c) => update({ ...safe, hydronephrosis: c === true })}\n disabled={disabled}\n />\n Hydronephrosis on imaging\n </label>\n <label className=\"block space-y-1 text-xs\">\n <span className=\"font-medium\">Prostate volume (cc)</span>\n <Input\n type=\"number\"\n min={0}\n step={0.1}\n className=\"h-8 text-xs\"\n value={safe.prostateVolumeCc}\n onChange={(e) => setNum('prostateVolumeCc', e.target.value)}\n disabled={disabled}\n />\n </label>\n <label className=\"block space-y-1 text-xs\">\n <span className=\"font-medium\">PSA (ng/mL)</span>\n <Input\n type=\"number\"\n min={0}\n step={0.01}\n className=\"h-8 text-xs\"\n value={safe.psaNgMl}\n onChange={(e) => setNum('psaNgMl', e.target.value)}\n disabled={disabled}\n />\n </label>\n <label className=\"block space-y-1 text-xs md:col-span-2\">\n <span className=\"font-medium\">Uroflow Qmax (mL/s)</span>\n <Input\n type=\"number\"\n min={0}\n step={0.1}\n className=\"h-8 text-xs\"\n value={safe.uroflowQmaxMlSec}\n onChange={(e) => setNum('uroflowQmaxMlSec', e.target.value)}\n disabled={disabled}\n />\n </label>\n </div>\n\n <div className=\"space-y-2 border-t border-muted-foreground/20 pt-3\">\n <p className=\"text-xs font-semibold text-slate-800\">Risk stratification</p>\n <div className=\"grid grid-cols-1 gap-2 sm:grid-cols-2\">\n {RISK_ROWS.map((r) => (\n <label key={r.key} className=\"flex items-center gap-2 text-xs\">\n <Checkbox\n checked={safe.risk[r.key]}\n onCheckedChange={() => toggleRisk(r.key)}\n disabled={disabled}\n />\n {r.label}\n </label>\n ))}\n </div>\n </div>\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/ui/widgets/UrologyPathwayWidget.tsx"],"names":[],"mappings":"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","file":"UrologyPathwayWidget-PEO5BVQX.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 { Checkbox } from '../shadcn/checkbox';\nimport { cn } from '../../core/utils';\nimport { FieldRequiredIndicator } from '../../react/fieldStyle';\nimport { getThemeConfig } from '../themes';\nimport type { UrologyPathwayRisk, UrologyPathwayValue } from '../../core/urologyPathway';\nimport { normalizeUrologyPathway } from '../../core/urologyPathway';\n\nconst RISK_ROWS: { key: keyof UrologyPathwayRisk; label: string }[] = [\n { key: 'ckd', label: 'Chronic kidney disease' },\n { key: 'diabetes', label: 'Diabetes' },\n { key: 'anticoagulants', label: 'Anticoagulants' },\n { key: 'activeInfection', label: 'Active infection' },\n];\n\nexport const UrologyPathwayWidget: React.FC<{ fieldId: string }> = ({ fieldId }) => {\n const { fieldDef, value, setValue, setTouched, error, touched, disabled } = useField(fieldId);\n const { state } = useForm();\n const showError = !!error && (touched || state.submitAttempted);\n\n const safe = useMemo(() => normalizeUrologyPathway(value), [value]);\n\n const update = (next: UrologyPathwayValue) => {\n setValue(next);\n setTouched();\n };\n\n const setNum = (key: keyof Pick<UrologyPathwayValue, 'stoneSizeMm' | 'prostateVolumeCc' | 'psaNgMl' | 'uroflowQmaxMlSec'>, raw: string) => {\n const n = Number(raw);\n const v = Number.isFinite(n) && n >= 0 ? n : 0;\n if (key === 'stoneSizeMm') {\n update({ ...safe, stoneSizeMm: Math.round(v) });\n return;\n }\n update({ ...safe, [key]: v });\n };\n\n const toggleRisk = (key: keyof UrologyPathwayRisk) => {\n update({\n ...safe,\n risk: { ...safe.risk, [key]: !safe.risk[key] },\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 subtitle =\n fieldDef.meta && typeof fieldDef.meta === 'object' && fieldDef.meta !== null\n ? String((fieldDef.meta as { subtitle?: unknown }).subtitle ?? '')\n : '';\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-4 border-t border-[#D0D0D0] bg-white px-3 py-3',\n disabled && 'pointer-events-none opacity-60',\n );\n\n return (\n <div className={cn('w-full min-w-0', wrapperClass)}>\n {labelEl}\n {subtitle ? (\n <p className=\"px-3 pt-2 text-[11px] text-muted-foreground\">{subtitle}</p>\n ) : null}\n\n <div className={bodyClass}>\n {showError ? <p className=\"text-xs text-red-600\">{error}</p> : null}\n\n <div className=\"grid grid-cols-1 gap-3 md:grid-cols-2\">\n <label className=\"block space-y-1 text-xs\">\n <span className=\"font-medium\">Stone size (mm)</span>\n <Input\n type=\"number\"\n min={0}\n className=\"h-8 text-xs\"\n value={safe.stoneSizeMm}\n onChange={(e) => setNum('stoneSizeMm', e.target.value)}\n disabled={disabled}\n />\n </label>\n <label className=\"flex items-center gap-2 pt-6 text-xs\">\n <Checkbox\n checked={safe.hydronephrosis}\n onCheckedChange={(c) => update({ ...safe, hydronephrosis: c === true })}\n disabled={disabled}\n />\n Hydronephrosis on imaging\n </label>\n <label className=\"block space-y-1 text-xs\">\n <span className=\"font-medium\">Prostate volume (cc)</span>\n <Input\n type=\"number\"\n min={0}\n step={0.1}\n className=\"h-8 text-xs\"\n value={safe.prostateVolumeCc}\n onChange={(e) => setNum('prostateVolumeCc', e.target.value)}\n disabled={disabled}\n />\n </label>\n <label className=\"block space-y-1 text-xs\">\n <span className=\"font-medium\">PSA (ng/mL)</span>\n <Input\n type=\"number\"\n min={0}\n step={0.01}\n className=\"h-8 text-xs\"\n value={safe.psaNgMl}\n onChange={(e) => setNum('psaNgMl', e.target.value)}\n disabled={disabled}\n />\n </label>\n <label className=\"block space-y-1 text-xs md:col-span-2\">\n <span className=\"font-medium\">Uroflow Qmax (mL/s)</span>\n <Input\n type=\"number\"\n min={0}\n step={0.1}\n className=\"h-8 text-xs\"\n value={safe.uroflowQmaxMlSec}\n onChange={(e) => setNum('uroflowQmaxMlSec', e.target.value)}\n disabled={disabled}\n />\n </label>\n </div>\n\n <div className=\"space-y-2 border-t border-muted-foreground/20 pt-3\">\n <p className=\"text-xs font-semibold text-slate-800\">Risk stratification</p>\n <div className=\"grid grid-cols-1 gap-2 sm:grid-cols-2\">\n {RISK_ROWS.map((r) => (\n <label key={r.key} className=\"flex items-center gap-2 text-xs\">\n <Checkbox\n checked={safe.risk[r.key]}\n onCheckedChange={() => toggleRisk(r.key)}\n disabled={disabled}\n />\n {r.label}\n </label>\n ))}\n </div>\n </div>\n </div>\n </div>\n );\n};\n"]}
@@ -2,11 +2,11 @@ import { Checkbox } from './chunk-GNZWSVTB.mjs';
2
2
  import { Textarea } from './chunk-4BAKQIPJ.mjs';
3
3
  import { getThemeConfig } from './chunk-Y7TIWH4I.mjs';
4
4
  import { FieldRequiredIndicator } from './chunk-WYVXXEZI.mjs';
5
- import { useForm } from './chunk-7L2JOWGA.mjs';
5
+ import { useForm } from './chunk-T3UHPMFX.mjs';
6
6
  import { Input } from './chunk-VNFBUAZD.mjs';
7
7
  import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from './chunk-AZHTIUOL.mjs';
8
8
  import { Button } from './chunk-GXXWMHAA.mjs';
9
- import { useField, useFormStore, normalizeUrologySmartHistory, urologyIpssSevenTotal, urologyIpssBand, formatUrologySmartHistoryToSymptomsNarrative } from './chunk-ZTT5XJR7.mjs';
9
+ import { useField, useFormStore, normalizeUrologySmartHistory, urologyIpssSevenTotal, urologyIpssBand, formatUrologySmartHistoryToSymptomsNarrative } from './chunk-2BGJZ44Q.mjs';
10
10
  import { Label } from './chunk-HEFZA2AH.mjs';
11
11
  import { cn } from './chunk-VPU66PI6.mjs';
12
12
  import { useMemo, useState, useEffect } from 'react';
@@ -465,5 +465,5 @@ var UrologySmartHistoryWidget = ({ fieldId }) => {
465
465
  };
466
466
 
467
467
  export { UrologySmartHistoryWidget };
468
- //# sourceMappingURL=UrologySmartHistoryWidget-PBU4QXQJ.mjs.map
469
- //# sourceMappingURL=UrologySmartHistoryWidget-PBU4QXQJ.mjs.map
468
+ //# sourceMappingURL=UrologySmartHistoryWidget-BDKRFBYN.mjs.map
469
+ //# sourceMappingURL=UrologySmartHistoryWidget-BDKRFBYN.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ui/widgets/UrologySmartHistoryWidget.tsx"],"names":[],"mappings":"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","file":"UrologySmartHistoryWidget-PBU4QXQJ.mjs","sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { useField } from '../../react/useField';\nimport { useForm } from '../../react/useForm';\nimport { useFormStore } from '../../react/FormProvider';\nimport { Label } from '../shadcn/label';\nimport { Input } from '../shadcn/input';\nimport { Textarea } from '../shadcn/textarea';\nimport { Checkbox } from '../shadcn/checkbox';\nimport { Button } from '../shadcn/button';\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 type { UrologySmartHistoryValue } from '../../core/urologyPathway';\nimport {\n formatUrologySmartHistoryToSymptomsNarrative,\n normalizeUrologySmartHistory,\n urologyIpssBand,\n urologyIpssSevenTotal,\n} from '../../core/urologyPathway';\n\nconst CHIEF_CHIPS_FIELD = 'chief_complaints_chips';\nconst ACTIVE_SYNDROME_FIELD = 'uro_active_syndrome';\nconst CHIEF_TEXT_FIELD = 'chief_complaints';\nconst SYMPTOMS_FIELD = 'symptoms';\nconst DIAGNOSIS_FIELD = 'diagnosis';\nconst URO_DURATION_FIELD = 'uro_chief_duration';\nconst URO_ONSET_FIELD = 'uro_chief_onset';\nconst URO_PROGRESSION_FIELD = 'uro_chief_progression';\n\nconst SYNDROME_LABELS: Record<string, string> = {\n luts: 'LUTS / BPH',\n stone: 'Urolithiasis (stone)',\n haematuria: 'Haematuria',\n scrotal: 'Scrotal swelling',\n retention: 'Acute retention',\n ed_infertility: 'ED / Infertility',\n uti: 'UTI / infection',\n};\n\nfunction chipList(state: { values: Record<string, unknown> }): string[] {\n const raw = state.values[CHIEF_CHIPS_FIELD];\n return Array.isArray(raw) ? raw.filter((x): x is string => typeof x === 'string') : [];\n}\n\nfunction str(x: unknown): string {\n return typeof x === 'string' ? x : '';\n}\n\n/** Embedded chief fields often use `value: \"none\"` for \"—\"; do not merge that into `chief_complaints`. */\nfunction chiefOptionalFieldDisplay(x: unknown): string {\n const s = str(x).trim();\n if (!s || s.toLowerCase() === 'none') return '';\n return s;\n}\n\nfunction nonEmptyLines(lines: Array<string | undefined | null>): string[] {\n return lines.map((s) => (s ?? '').trim()).filter(Boolean);\n}\n\nconst IPSS_LABELS: Record<keyof UrologySmartHistoryValue['ipss'], string> = {\n incomplete: 'Incomplete emptying',\n frequency: 'Frequency (<2h)',\n intermittency: 'Intermittency',\n urgency: 'Urgency',\n weakStream: 'Weak stream',\n straining: 'Straining',\n nocturia: 'Nocturia (×/night)',\n};\n\nconst SOCRATES_KEYS = [\n 'site',\n 'onset',\n 'character',\n 'radiation',\n 'associated',\n 'timing',\n 'exacerbating',\n] as const;\n\nfunction Panel({\n title,\n right,\n children,\n}: {\n title: string;\n right?: React.ReactNode;\n children: React.ReactNode;\n}) {\n return (\n <div className=\"overflow-hidden rounded-md border border-[#D0D0D0] bg-white\">\n <div className=\"flex items-center justify-between border-b border-[#D0D0D0] bg-[#FEE8EC]/50 px-3 py-1.5\">\n <span className=\"text-xs font-semibold text-slate-700\">{title}</span>\n {right}\n </div>\n <div className=\"p-3\">{children}</div>\n </div>\n );\n}\n\nexport const UrologySmartHistoryWidget: React.FC<{ fieldId: string }> = ({ fieldId }) => {\n const { fieldDef, value, setValue, setTouched, error, touched, disabled } = useField(fieldId);\n const hopcField = useField(SYMPTOMS_FIELD);\n const syndromeField = useField(ACTIVE_SYNDROME_FIELD);\n const { state } = useForm();\n const store = useFormStore();\n const showError = !!error && (touched || state.submitAttempted);\n\n const safe = useMemo(() => normalizeUrologySmartHistory(value), [value]);\n const chips = useMemo(() => chipList(state), [state]);\n\n const rawSyndrome = syndromeField.value ?? state.values[ACTIVE_SYNDROME_FIELD];\n const syndrome =\n typeof rawSyndrome === 'string' && rawSyndrome !== '' && rawSyndrome !== 'none'\n ? rawSyndrome\n : 'none';\n\n const showPain =\n chips.includes('pain abdomen flank') ||\n chips.includes('scrotal swelling pain') ||\n syndrome === 'stone' ||\n syndrome === 'scrotal';\n\n const showLUTS =\n syndrome === 'luts' ||\n syndrome === 'retention' ||\n chips.includes('frequency urgency') ||\n chips.includes('poor stream') ||\n chips.includes('acute retention');\n\n const showHaem = syndrome === 'haematuria' || chips.includes('haematuria');\n\n const showSex =\n syndrome === 'ed_infertility' ||\n chips.includes('erectile dysfunction') ||\n chips.includes('infertility concern');\n\n const update = (next: UrologySmartHistoryValue) => {\n setValue(next);\n setTouched();\n };\n\n const ipssTotal = urologyIpssSevenTotal(safe.ipss);\n const ipssBandLabel = urologyIpssBand(ipssTotal);\n const bandClass =\n ipssBandLabel === 'Severe'\n ? 'bg-red-500/15 text-red-700'\n : ipssBandLabel === 'Moderate'\n ? 'bg-amber-500/15 text-amber-800'\n : 'bg-emerald-500/15 text-emerald-800';\n\n const setSocrates = (key: (typeof SOCRATES_KEYS)[number] | 'severity', v: string | number) => {\n if (key === 'severity') {\n const n = typeof v === 'number' ? v : Number(v);\n const sev = Number.isFinite(n) ? Math.min(10, Math.max(0, Math.round(n))) : 0;\n update({ ...safe, socrates: { ...safe.socrates, severity: sev } });\n return;\n }\n update({ ...safe, socrates: { ...safe.socrates, [key]: String(v) } });\n };\n\n const setIpss = (key: keyof UrologySmartHistoryValue['ipss'], v: number) => {\n update({ ...safe, ipss: { ...safe.ipss, [key]: v } });\n };\n\n const [hopcNarrativeLocked, setHopcNarrativeLocked] = useState(false);\n\n useEffect(() => {\n if (hopcNarrativeLocked || disabled) return;\n const next = formatUrologySmartHistoryToSymptomsNarrative(normalizeUrologySmartHistory(value), {\n showPain,\n showLUTS,\n showHaem,\n showSex,\n });\n hopcField.setValue(next);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value, hopcNarrativeLocked, showPain, showLUTS, showHaem, showSex, disabled]);\n\n useEffect(() => {\n if (disabled) return;\n const label = syndrome && syndrome !== 'none' ? SYNDROME_LABELS[syndrome] ?? syndrome : '';\n const prev = store.getFieldState(DIAGNOSIS_FIELD)?.value;\n const prevText = typeof prev === 'string' ? prev : '';\n\n const syndromeLabels = new Set(Object.values(SYNDROME_LABELS));\n const keptLines = prevText\n .split('\\n')\n .map((l) => l.trim())\n .filter(Boolean)\n .filter((l) => !syndromeLabels.has(l));\n\n const nextLines = label ? [...keptLines, label] : keptLines;\n const next = nextLines.join('\\n');\n if (prevText.trim() === next.trim()) return;\n store.setValues({ [DIAGNOSIS_FIELD]: next }, { touch: false });\n }, [disabled, store, syndrome]);\n\n useEffect(() => {\n if (disabled) return;\n const duration = chiefOptionalFieldDisplay(state.values[URO_DURATION_FIELD]);\n const onset = chiefOptionalFieldDisplay(state.values[URO_ONSET_FIELD]);\n const progression = chiefOptionalFieldDisplay(state.values[URO_PROGRESSION_FIELD]);\n\n const prev = store.getFieldState(CHIEF_TEXT_FIELD)?.value;\n const prevText = typeof prev === 'string' ? prev : '';\n\n // `chief_complaints` is a chip-driven suggestion textarea (comma-separated tokens).\n // Keep it comma-delimited so chip toggling keeps working.\n const kept = prevText\n .split(',')\n .map((t) => t.trim())\n .filter(Boolean)\n .filter((t) => {\n const lower = t.toLowerCase();\n return (\n !lower.startsWith('duration:') &&\n !lower.startsWith('onset:') &&\n !lower.startsWith('progression:')\n );\n });\n\n const extra = nonEmptyLines([\n duration ? `Duration: ${duration}` : '',\n onset ? `Onset: ${onset}` : '',\n progression ? `Progression: ${progression}` : '',\n ]);\n\n const next = [...kept, ...extra].join(', ').trim();\n if (prevText.trim() === next.trim()) return;\n store.setValues({ [CHIEF_TEXT_FIELD]: next }, { touch: false });\n }, [\n disabled,\n state.values[URO_DURATION_FIELD],\n state.values[URO_ONSET_FIELD],\n state.values[URO_PROGRESSION_FIELD],\n store,\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 return (\n <div className={cn('w-full min-w-0', wrapperClass)}>\n {labelEl}\n\n <div className={bodyClass}>\n <p className=\"text-[11px] text-muted-foreground\">\n Panels follow chief complaint chips and active syndrome (Clearsight SmartHistoryUro).\n </p>\n\n {showPain ? (\n <Panel title=\"SOCRATES — Pain (flank / suprapubic / testicular)\">\n <div className=\"grid grid-cols-2 gap-2 md:grid-cols-4\">\n {SOCRATES_KEYS.map((k) => (\n <div key={k} className=\"space-y-1\">\n <span className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {k}\n </span>\n <Input\n className=\"h-8 text-xs\"\n value={safe.socrates[k]}\n onChange={(e) => setSocrates(k, e.target.value)}\n placeholder={\n k === 'radiation'\n ? 'e.g. groin → ureteric'\n : k === 'character'\n ? 'colicky / dull'\n : ''\n }\n disabled={disabled}\n />\n </div>\n ))}\n <div className=\"space-y-1\">\n <span className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n Severity 0–10\n </span>\n <Input\n type=\"number\"\n min={0}\n max={10}\n className=\"h-8 text-xs\"\n value={safe.socrates.severity}\n onChange={(e) => setSocrates('severity', e.target.value)}\n disabled={disabled}\n />\n </div>\n </div>\n </Panel>\n ) : null}\n\n {showLUTS ? (\n <Panel\n title=\"IPSS — International Prostate Symptom Score\"\n right={\n <span className={`rounded-full px-2 py-0.5 text-[10px] font-medium ${bandClass}`}>\n {ipssTotal}/35 — {ipssBandLabel}\n </span>\n }\n >\n <div className=\"grid grid-cols-2 gap-2 md:grid-cols-4\">\n {(Object.keys(IPSS_LABELS) as Array<keyof UrologySmartHistoryValue['ipss']>).map((k) => (\n <div key={k} className=\"space-y-1\">\n <span className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">\n {IPSS_LABELS[k]}\n </span>\n <Select\n value={String(safe.ipss[k])}\n onValueChange={(val) => setIpss(k, Number(val))}\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {[0, 1, 2, 3, 4, 5].map((n) => (\n <SelectItem key={n} value={String(n)}>\n {n}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n ))}\n <div className=\"space-y-1\">\n <span className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">\n QoL (0–6)\n </span>\n <Select\n value={String(safe.ipssQoL)}\n onValueChange={(val) =>\n update({ ...safe, ipssQoL: Math.min(6, Math.max(0, Number(val))) })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {[0, 1, 2, 3, 4, 5, 6].map((n) => (\n <SelectItem key={n} value={String(n)}>\n {n}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n <p className=\"mt-2 text-[10px] text-muted-foreground\">\n Bands: 0–7 mild · 8–19 moderate · 20–35 severe.{' '}\n <span className=\"font-semibold text-foreground\">IPSS ≥ 20 → consider surgical intervention.</span>\n </p>\n </Panel>\n ) : null}\n\n {showHaem ? (\n <Panel title=\"Haematuria profile\">\n <div className=\"grid grid-cols-2 gap-3 text-xs md:grid-cols-4\">\n <label className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.haematuria.present}\n onCheckedChange={(c) =>\n update({\n ...safe,\n haematuria: { ...safe.haematuria, present: c === true },\n })\n }\n disabled={disabled}\n />\n Present\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Timing</span>\n <Select\n value={safe.haematuria.timing || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n haematuria: { ...safe.haematuria, timing: val === 'none' ? '' : val },\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=\"Initial\">Initial</SelectItem>\n <SelectItem value=\"Terminal\">Terminal</SelectItem>\n <SelectItem value=\"Total\">Total</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.haematuria.painful}\n onCheckedChange={(c) =>\n update({ ...safe, haematuria: { ...safe.haematuria, painful: c === true } })\n }\n disabled={disabled}\n />\n Painful\n </label>\n <label className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.haematuria.clots}\n onCheckedChange={(c) =>\n update({ ...safe, haematuria: { ...safe.haematuria, clots: c === true } })\n }\n disabled={disabled}\n />\n Clots\n </label>\n </div>\n <p className=\"mt-2 text-[10px] text-red-600\">\n Painless haematuria = malignancy until proven otherwise.\n </p>\n </Panel>\n ) : null}\n\n {showSex ? (\n <Panel title=\"Sexual & reproductive history\">\n <div className=\"grid grid-cols-2 gap-3 text-xs md:grid-cols-4\">\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Erectile function</span>\n <Select\n value={safe.sexual.erectile || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n sexual: { ...safe.sexual, erectile: val === 'none' ? '' : val },\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=\"Mild\">Mild</SelectItem>\n <SelectItem value=\"Moderate\">Moderate</SelectItem>\n <SelectItem value=\"Severe\">Severe</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Libido</span>\n <Select\n value={safe.sexual.libido || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n sexual: { ...safe.sexual, libido: val === 'none' ? '' : val },\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=\"Reduced\">Reduced</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Ejaculation</span>\n <Select\n value={safe.sexual.ejaculation || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n sexual: { ...safe.sexual, ejaculation: val === 'none' ? '' : val },\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=\"Premature\">Premature</SelectItem>\n <SelectItem value=\"Retrograde\">Retrograde</SelectItem>\n <SelectItem value=\"Anejaculation\">Anejaculation</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Infertility (months)</span>\n <Input\n type=\"number\"\n min={0}\n className=\"h-8 text-xs\"\n value={safe.sexual.infertilityMonths}\n onChange={(e) =>\n update({\n ...safe,\n sexual: {\n ...safe.sexual,\n infertilityMonths: Math.max(0, Math.round(Number(e.target.value)) || 0),\n },\n })\n }\n disabled={disabled}\n />\n </label>\n </div>\n </Panel>\n ) : null}\n\n <div className=\"space-y-1\">\n <div className=\"flex flex-wrap items-center justify-between gap-2\">\n <Label className=\"text-xs font-semibold text-slate-700\">\n {hopcField.fieldDef?.label ?? 'History of presenting complaint'}\n </Label>\n <div className=\"flex items-center gap-2\">\n {hopcNarrativeLocked ? (\n <span className=\"rounded bg-amber-50 px-1.5 py-0.5 text-[10px] font-medium text-amber-900 ring-1 ring-amber-200/80\">\n You edited this summary. Use{' '}\n <span className=\"italic\">'Regenerate'</span> to update it from the form.\n </span>\n ) : null}\n {hopcNarrativeLocked ? (\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"h-7 shrink-0 px-2 text-xs\"\n disabled={disabled || hopcField.disabled}\n onClick={() => {\n setHopcNarrativeLocked(false);\n hopcField.setValue(\n formatUrologySmartHistoryToSymptomsNarrative(\n normalizeUrologySmartHistory(value),\n { showPain, showLUTS, showHaem, showSex },\n ),\n );\n }}\n >\n Regenerate\n </Button>\n ) : null}\n </div>\n </div>\n {hopcNarrativeLocked ? (\n <p className=\"text-[10px] text-muted-foreground\">\n Edit this box anytime. Use Regenerate to replace with fresh text from the structured fields.\n </p>\n ) : null}\n <Textarea\n className=\"min-h-[88px] rounded-md border border-input bg-white text-sm\"\n placeholder=\"Auto-filled from chief complaints + smart history…\"\n value={\n typeof hopcField.value === 'string'\n ? hopcField.value\n : hopcField.value == null\n ? ''\n : String(hopcField.value)\n }\n onChange={(e) => {\n setHopcNarrativeLocked(true);\n hopcField.setValue(e.target.value);\n hopcField.setTouched();\n }}\n disabled={disabled || hopcField.disabled}\n />\n </div>\n </div>\n\n {showError ? <p className=\"px-3 pb-2 text-xs text-red-500\">{error}</p> : null}\n </div>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/ui/widgets/UrologySmartHistoryWidget.tsx"],"names":[],"mappings":"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","file":"UrologySmartHistoryWidget-BDKRFBYN.mjs","sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { useField } from '../../react/useField';\nimport { useForm } from '../../react/useForm';\nimport { useFormStore } from '../../react/FormProvider';\nimport { Label } from '../shadcn/label';\nimport { Input } from '../shadcn/input';\nimport { Textarea } from '../shadcn/textarea';\nimport { Checkbox } from '../shadcn/checkbox';\nimport { Button } from '../shadcn/button';\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 type { UrologySmartHistoryValue } from '../../core/urologyPathway';\nimport {\n formatUrologySmartHistoryToSymptomsNarrative,\n normalizeUrologySmartHistory,\n urologyIpssBand,\n urologyIpssSevenTotal,\n} from '../../core/urologyPathway';\n\nconst CHIEF_CHIPS_FIELD = 'chief_complaints_chips';\nconst ACTIVE_SYNDROME_FIELD = 'uro_active_syndrome';\nconst CHIEF_TEXT_FIELD = 'chief_complaints';\nconst SYMPTOMS_FIELD = 'symptoms';\nconst DIAGNOSIS_FIELD = 'diagnosis';\nconst URO_DURATION_FIELD = 'uro_chief_duration';\nconst URO_ONSET_FIELD = 'uro_chief_onset';\nconst URO_PROGRESSION_FIELD = 'uro_chief_progression';\n\nconst SYNDROME_LABELS: Record<string, string> = {\n luts: 'LUTS / BPH',\n stone: 'Urolithiasis (stone)',\n haematuria: 'Haematuria',\n scrotal: 'Scrotal swelling',\n retention: 'Acute retention',\n ed_infertility: 'ED / Infertility',\n uti: 'UTI / infection',\n};\n\nfunction chipList(state: { values: Record<string, unknown> }): string[] {\n const raw = state.values[CHIEF_CHIPS_FIELD];\n return Array.isArray(raw) ? raw.filter((x): x is string => typeof x === 'string') : [];\n}\n\nfunction str(x: unknown): string {\n return typeof x === 'string' ? x : '';\n}\n\n/** Embedded chief fields often use `value: \"none\"` for \"—\"; do not merge that into `chief_complaints`. */\nfunction chiefOptionalFieldDisplay(x: unknown): string {\n const s = str(x).trim();\n if (!s || s.toLowerCase() === 'none') return '';\n return s;\n}\n\nfunction nonEmptyLines(lines: Array<string | undefined | null>): string[] {\n return lines.map((s) => (s ?? '').trim()).filter(Boolean);\n}\n\nconst IPSS_LABELS: Record<keyof UrologySmartHistoryValue['ipss'], string> = {\n incomplete: 'Incomplete emptying',\n frequency: 'Frequency (<2h)',\n intermittency: 'Intermittency',\n urgency: 'Urgency',\n weakStream: 'Weak stream',\n straining: 'Straining',\n nocturia: 'Nocturia (×/night)',\n};\n\nconst SOCRATES_KEYS = [\n 'site',\n 'onset',\n 'character',\n 'radiation',\n 'associated',\n 'timing',\n 'exacerbating',\n] as const;\n\nfunction Panel({\n title,\n right,\n children,\n}: {\n title: string;\n right?: React.ReactNode;\n children: React.ReactNode;\n}) {\n return (\n <div className=\"overflow-hidden rounded-md border border-[#D0D0D0] bg-white\">\n <div className=\"flex items-center justify-between border-b border-[#D0D0D0] bg-[#FEE8EC]/50 px-3 py-1.5\">\n <span className=\"text-xs font-semibold text-slate-700\">{title}</span>\n {right}\n </div>\n <div className=\"p-3\">{children}</div>\n </div>\n );\n}\n\nexport const UrologySmartHistoryWidget: React.FC<{ fieldId: string }> = ({ fieldId }) => {\n const { fieldDef, value, setValue, setTouched, error, touched, disabled } = useField(fieldId);\n const hopcField = useField(SYMPTOMS_FIELD);\n const syndromeField = useField(ACTIVE_SYNDROME_FIELD);\n const { state } = useForm();\n const store = useFormStore();\n const showError = !!error && (touched || state.submitAttempted);\n\n const safe = useMemo(() => normalizeUrologySmartHistory(value), [value]);\n const chips = useMemo(() => chipList(state), [state]);\n\n const rawSyndrome = syndromeField.value ?? state.values[ACTIVE_SYNDROME_FIELD];\n const syndrome =\n typeof rawSyndrome === 'string' && rawSyndrome !== '' && rawSyndrome !== 'none'\n ? rawSyndrome\n : 'none';\n\n const showPain =\n chips.includes('pain abdomen flank') ||\n chips.includes('scrotal swelling pain') ||\n syndrome === 'stone' ||\n syndrome === 'scrotal';\n\n const showLUTS =\n syndrome === 'luts' ||\n syndrome === 'retention' ||\n chips.includes('frequency urgency') ||\n chips.includes('poor stream') ||\n chips.includes('acute retention');\n\n const showHaem = syndrome === 'haematuria' || chips.includes('haematuria');\n\n const showSex =\n syndrome === 'ed_infertility' ||\n chips.includes('erectile dysfunction') ||\n chips.includes('infertility concern');\n\n const update = (next: UrologySmartHistoryValue) => {\n setValue(next);\n setTouched();\n };\n\n const ipssTotal = urologyIpssSevenTotal(safe.ipss);\n const ipssBandLabel = urologyIpssBand(ipssTotal);\n const bandClass =\n ipssBandLabel === 'Severe'\n ? 'bg-red-500/15 text-red-700'\n : ipssBandLabel === 'Moderate'\n ? 'bg-amber-500/15 text-amber-800'\n : 'bg-emerald-500/15 text-emerald-800';\n\n const setSocrates = (key: (typeof SOCRATES_KEYS)[number] | 'severity', v: string | number) => {\n if (key === 'severity') {\n const n = typeof v === 'number' ? v : Number(v);\n const sev = Number.isFinite(n) ? Math.min(10, Math.max(0, Math.round(n))) : 0;\n update({ ...safe, socrates: { ...safe.socrates, severity: sev } });\n return;\n }\n update({ ...safe, socrates: { ...safe.socrates, [key]: String(v) } });\n };\n\n const setIpss = (key: keyof UrologySmartHistoryValue['ipss'], v: number) => {\n update({ ...safe, ipss: { ...safe.ipss, [key]: v } });\n };\n\n const [hopcNarrativeLocked, setHopcNarrativeLocked] = useState(false);\n\n useEffect(() => {\n if (hopcNarrativeLocked || disabled) return;\n const next = formatUrologySmartHistoryToSymptomsNarrative(normalizeUrologySmartHistory(value), {\n showPain,\n showLUTS,\n showHaem,\n showSex,\n });\n hopcField.setValue(next);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value, hopcNarrativeLocked, showPain, showLUTS, showHaem, showSex, disabled]);\n\n useEffect(() => {\n if (disabled) return;\n const label = syndrome && syndrome !== 'none' ? SYNDROME_LABELS[syndrome] ?? syndrome : '';\n const prev = store.getFieldState(DIAGNOSIS_FIELD)?.value;\n const prevText = typeof prev === 'string' ? prev : '';\n\n const syndromeLabels = new Set(Object.values(SYNDROME_LABELS));\n const keptLines = prevText\n .split('\\n')\n .map((l) => l.trim())\n .filter(Boolean)\n .filter((l) => !syndromeLabels.has(l));\n\n const nextLines = label ? [...keptLines, label] : keptLines;\n const next = nextLines.join('\\n');\n if (prevText.trim() === next.trim()) return;\n store.setValues({ [DIAGNOSIS_FIELD]: next }, { touch: false });\n }, [disabled, store, syndrome]);\n\n useEffect(() => {\n if (disabled) return;\n const duration = chiefOptionalFieldDisplay(state.values[URO_DURATION_FIELD]);\n const onset = chiefOptionalFieldDisplay(state.values[URO_ONSET_FIELD]);\n const progression = chiefOptionalFieldDisplay(state.values[URO_PROGRESSION_FIELD]);\n\n const prev = store.getFieldState(CHIEF_TEXT_FIELD)?.value;\n const prevText = typeof prev === 'string' ? prev : '';\n\n // `chief_complaints` is a chip-driven suggestion textarea (comma-separated tokens).\n // Keep it comma-delimited so chip toggling keeps working.\n const kept = prevText\n .split(',')\n .map((t) => t.trim())\n .filter(Boolean)\n .filter((t) => {\n const lower = t.toLowerCase();\n return (\n !lower.startsWith('duration:') &&\n !lower.startsWith('onset:') &&\n !lower.startsWith('progression:')\n );\n });\n\n const extra = nonEmptyLines([\n duration ? `Duration: ${duration}` : '',\n onset ? `Onset: ${onset}` : '',\n progression ? `Progression: ${progression}` : '',\n ]);\n\n const next = [...kept, ...extra].join(', ').trim();\n if (prevText.trim() === next.trim()) return;\n store.setValues({ [CHIEF_TEXT_FIELD]: next }, { touch: false });\n }, [\n disabled,\n state.values[URO_DURATION_FIELD],\n state.values[URO_ONSET_FIELD],\n state.values[URO_PROGRESSION_FIELD],\n store,\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 return (\n <div className={cn('w-full min-w-0', wrapperClass)}>\n {labelEl}\n\n <div className={bodyClass}>\n <p className=\"text-[11px] text-muted-foreground\">\n Panels follow chief complaint chips and active syndrome (Clearsight SmartHistoryUro).\n </p>\n\n {showPain ? (\n <Panel title=\"SOCRATES — Pain (flank / suprapubic / testicular)\">\n <div className=\"grid grid-cols-2 gap-2 md:grid-cols-4\">\n {SOCRATES_KEYS.map((k) => (\n <div key={k} className=\"space-y-1\">\n <span className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {k}\n </span>\n <Input\n className=\"h-8 text-xs\"\n value={safe.socrates[k]}\n onChange={(e) => setSocrates(k, e.target.value)}\n placeholder={\n k === 'radiation'\n ? 'e.g. groin → ureteric'\n : k === 'character'\n ? 'colicky / dull'\n : ''\n }\n disabled={disabled}\n />\n </div>\n ))}\n <div className=\"space-y-1\">\n <span className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n Severity 0–10\n </span>\n <Input\n type=\"number\"\n min={0}\n max={10}\n className=\"h-8 text-xs\"\n value={safe.socrates.severity}\n onChange={(e) => setSocrates('severity', e.target.value)}\n disabled={disabled}\n />\n </div>\n </div>\n </Panel>\n ) : null}\n\n {showLUTS ? (\n <Panel\n title=\"IPSS — International Prostate Symptom Score\"\n right={\n <span className={`rounded-full px-2 py-0.5 text-[10px] font-medium ${bandClass}`}>\n {ipssTotal}/35 — {ipssBandLabel}\n </span>\n }\n >\n <div className=\"grid grid-cols-2 gap-2 md:grid-cols-4\">\n {(Object.keys(IPSS_LABELS) as Array<keyof UrologySmartHistoryValue['ipss']>).map((k) => (\n <div key={k} className=\"space-y-1\">\n <span className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">\n {IPSS_LABELS[k]}\n </span>\n <Select\n value={String(safe.ipss[k])}\n onValueChange={(val) => setIpss(k, Number(val))}\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {[0, 1, 2, 3, 4, 5].map((n) => (\n <SelectItem key={n} value={String(n)}>\n {n}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n ))}\n <div className=\"space-y-1\">\n <span className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">\n QoL (0–6)\n </span>\n <Select\n value={String(safe.ipssQoL)}\n onValueChange={(val) =>\n update({ ...safe, ipssQoL: Math.min(6, Math.max(0, Number(val))) })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {[0, 1, 2, 3, 4, 5, 6].map((n) => (\n <SelectItem key={n} value={String(n)}>\n {n}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n <p className=\"mt-2 text-[10px] text-muted-foreground\">\n Bands: 0–7 mild · 8–19 moderate · 20–35 severe.{' '}\n <span className=\"font-semibold text-foreground\">IPSS ≥ 20 → consider surgical intervention.</span>\n </p>\n </Panel>\n ) : null}\n\n {showHaem ? (\n <Panel title=\"Haematuria profile\">\n <div className=\"grid grid-cols-2 gap-3 text-xs md:grid-cols-4\">\n <label className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.haematuria.present}\n onCheckedChange={(c) =>\n update({\n ...safe,\n haematuria: { ...safe.haematuria, present: c === true },\n })\n }\n disabled={disabled}\n />\n Present\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Timing</span>\n <Select\n value={safe.haematuria.timing || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n haematuria: { ...safe.haematuria, timing: val === 'none' ? '' : val },\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=\"Initial\">Initial</SelectItem>\n <SelectItem value=\"Terminal\">Terminal</SelectItem>\n <SelectItem value=\"Total\">Total</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.haematuria.painful}\n onCheckedChange={(c) =>\n update({ ...safe, haematuria: { ...safe.haematuria, painful: c === true } })\n }\n disabled={disabled}\n />\n Painful\n </label>\n <label className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.haematuria.clots}\n onCheckedChange={(c) =>\n update({ ...safe, haematuria: { ...safe.haematuria, clots: c === true } })\n }\n disabled={disabled}\n />\n Clots\n </label>\n </div>\n <p className=\"mt-2 text-[10px] text-red-600\">\n Painless haematuria = malignancy until proven otherwise.\n </p>\n </Panel>\n ) : null}\n\n {showSex ? (\n <Panel title=\"Sexual & reproductive history\">\n <div className=\"grid grid-cols-2 gap-3 text-xs md:grid-cols-4\">\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Erectile function</span>\n <Select\n value={safe.sexual.erectile || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n sexual: { ...safe.sexual, erectile: val === 'none' ? '' : val },\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=\"Mild\">Mild</SelectItem>\n <SelectItem value=\"Moderate\">Moderate</SelectItem>\n <SelectItem value=\"Severe\">Severe</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Libido</span>\n <Select\n value={safe.sexual.libido || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n sexual: { ...safe.sexual, libido: val === 'none' ? '' : val },\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=\"Reduced\">Reduced</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Ejaculation</span>\n <Select\n value={safe.sexual.ejaculation || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n sexual: { ...safe.sexual, ejaculation: val === 'none' ? '' : val },\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=\"Premature\">Premature</SelectItem>\n <SelectItem value=\"Retrograde\">Retrograde</SelectItem>\n <SelectItem value=\"Anejaculation\">Anejaculation</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Infertility (months)</span>\n <Input\n type=\"number\"\n min={0}\n className=\"h-8 text-xs\"\n value={safe.sexual.infertilityMonths}\n onChange={(e) =>\n update({\n ...safe,\n sexual: {\n ...safe.sexual,\n infertilityMonths: Math.max(0, Math.round(Number(e.target.value)) || 0),\n },\n })\n }\n disabled={disabled}\n />\n </label>\n </div>\n </Panel>\n ) : null}\n\n <div className=\"space-y-1\">\n <div className=\"flex flex-wrap items-center justify-between gap-2\">\n <Label className=\"text-xs font-semibold text-slate-700\">\n {hopcField.fieldDef?.label ?? 'History of presenting complaint'}\n </Label>\n <div className=\"flex items-center gap-2\">\n {hopcNarrativeLocked ? (\n <span className=\"rounded bg-amber-50 px-1.5 py-0.5 text-[10px] font-medium text-amber-900 ring-1 ring-amber-200/80\">\n You edited this summary. Use{' '}\n <span className=\"italic\">'Regenerate'</span> to update it from the form.\n </span>\n ) : null}\n {hopcNarrativeLocked ? (\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"h-7 shrink-0 px-2 text-xs\"\n disabled={disabled || hopcField.disabled}\n onClick={() => {\n setHopcNarrativeLocked(false);\n hopcField.setValue(\n formatUrologySmartHistoryToSymptomsNarrative(\n normalizeUrologySmartHistory(value),\n { showPain, showLUTS, showHaem, showSex },\n ),\n );\n }}\n >\n Regenerate\n </Button>\n ) : null}\n </div>\n </div>\n {hopcNarrativeLocked ? (\n <p className=\"text-[10px] text-muted-foreground\">\n Edit this box anytime. Use Regenerate to replace with fresh text from the structured fields.\n </p>\n ) : null}\n <Textarea\n className=\"min-h-[88px] rounded-md border border-input bg-white text-sm\"\n placeholder=\"Auto-filled from chief complaints + smart history…\"\n value={\n typeof hopcField.value === 'string'\n ? hopcField.value\n : hopcField.value == null\n ? ''\n : String(hopcField.value)\n }\n onChange={(e) => {\n setHopcNarrativeLocked(true);\n hopcField.setValue(e.target.value);\n hopcField.setTouched();\n }}\n disabled={disabled || hopcField.disabled}\n />\n </div>\n </div>\n\n {showError ? <p className=\"px-3 pb-2 text-xs text-red-500\">{error}</p> : null}\n </div>\n );\n};\n"]}
@@ -4,11 +4,11 @@ var chunkPZBJYPWW_cjs = require('./chunk-PZBJYPWW.cjs');
4
4
  var chunkPHADAQSH_cjs = require('./chunk-PHADAQSH.cjs');
5
5
  var chunkP62377LB_cjs = require('./chunk-P62377LB.cjs');
6
6
  var chunk5E3APMY6_cjs = require('./chunk-5E3APMY6.cjs');
7
- var chunk6YX37XBM_cjs = require('./chunk-6YX37XBM.cjs');
7
+ var chunk7DISRJAB_cjs = require('./chunk-7DISRJAB.cjs');
8
8
  var chunkTJHG5WHX_cjs = require('./chunk-TJHG5WHX.cjs');
9
9
  var chunk4KSZUIJE_cjs = require('./chunk-4KSZUIJE.cjs');
10
10
  var chunkO3VQBPEW_cjs = require('./chunk-O3VQBPEW.cjs');
11
- var chunkSHQHDSA4_cjs = require('./chunk-SHQHDSA4.cjs');
11
+ var chunkTB33A4PD_cjs = require('./chunk-TB33A4PD.cjs');
12
12
  var chunkJMGUUFOJ_cjs = require('./chunk-JMGUUFOJ.cjs');
13
13
  var chunkFHHISVCH_cjs = require('./chunk-FHHISVCH.cjs');
14
14
  var react = require('react');
@@ -78,13 +78,13 @@ function Panel({
78
78
  ] });
79
79
  }
80
80
  var UrologySmartHistoryWidget = ({ fieldId }) => {
81
- const { fieldDef, value, setValue, setTouched, error, touched, disabled } = chunkSHQHDSA4_cjs.useField(fieldId);
82
- const hopcField = chunkSHQHDSA4_cjs.useField(SYMPTOMS_FIELD);
83
- const syndromeField = chunkSHQHDSA4_cjs.useField(ACTIVE_SYNDROME_FIELD);
84
- const { state } = chunk6YX37XBM_cjs.useForm();
85
- const store = chunkSHQHDSA4_cjs.useFormStore();
81
+ const { fieldDef, value, setValue, setTouched, error, touched, disabled } = chunkTB33A4PD_cjs.useField(fieldId);
82
+ const hopcField = chunkTB33A4PD_cjs.useField(SYMPTOMS_FIELD);
83
+ const syndromeField = chunkTB33A4PD_cjs.useField(ACTIVE_SYNDROME_FIELD);
84
+ const { state } = chunk7DISRJAB_cjs.useForm();
85
+ const store = chunkTB33A4PD_cjs.useFormStore();
86
86
  const showError = !!error && (touched || state.submitAttempted);
87
- const safe = react.useMemo(() => chunkSHQHDSA4_cjs.normalizeUrologySmartHistory(value), [value]);
87
+ const safe = react.useMemo(() => chunkTB33A4PD_cjs.normalizeUrologySmartHistory(value), [value]);
88
88
  const chips = react.useMemo(() => chipList(state), [state]);
89
89
  const rawSyndrome = syndromeField.value ?? state.values[ACTIVE_SYNDROME_FIELD];
90
90
  const syndrome = typeof rawSyndrome === "string" && rawSyndrome !== "" && rawSyndrome !== "none" ? rawSyndrome : "none";
@@ -96,8 +96,8 @@ var UrologySmartHistoryWidget = ({ fieldId }) => {
96
96
  setValue(next);
97
97
  setTouched();
98
98
  };
99
- const ipssTotal = chunkSHQHDSA4_cjs.urologyIpssSevenTotal(safe.ipss);
100
- const ipssBandLabel = chunkSHQHDSA4_cjs.urologyIpssBand(ipssTotal);
99
+ const ipssTotal = chunkTB33A4PD_cjs.urologyIpssSevenTotal(safe.ipss);
100
+ const ipssBandLabel = chunkTB33A4PD_cjs.urologyIpssBand(ipssTotal);
101
101
  const bandClass = ipssBandLabel === "Severe" ? "bg-red-500/15 text-red-700" : ipssBandLabel === "Moderate" ? "bg-amber-500/15 text-amber-800" : "bg-emerald-500/15 text-emerald-800";
102
102
  const setSocrates = (key, v) => {
103
103
  if (key === "severity") {
@@ -114,7 +114,7 @@ var UrologySmartHistoryWidget = ({ fieldId }) => {
114
114
  const [hopcNarrativeLocked, setHopcNarrativeLocked] = react.useState(false);
115
115
  react.useEffect(() => {
116
116
  if (hopcNarrativeLocked || disabled) return;
117
- const next = chunkSHQHDSA4_cjs.formatUrologySmartHistoryToSymptomsNarrative(chunkSHQHDSA4_cjs.normalizeUrologySmartHistory(value), {
117
+ const next = chunkTB33A4PD_cjs.formatUrologySmartHistoryToSymptomsNarrative(chunkTB33A4PD_cjs.normalizeUrologySmartHistory(value), {
118
118
  showPain,
119
119
  showLUTS,
120
120
  showHaem,
@@ -434,8 +434,8 @@ var UrologySmartHistoryWidget = ({ fieldId }) => {
434
434
  onClick: () => {
435
435
  setHopcNarrativeLocked(false);
436
436
  hopcField.setValue(
437
- chunkSHQHDSA4_cjs.formatUrologySmartHistoryToSymptomsNarrative(
438
- chunkSHQHDSA4_cjs.normalizeUrologySmartHistory(value),
437
+ chunkTB33A4PD_cjs.formatUrologySmartHistoryToSymptomsNarrative(
438
+ chunkTB33A4PD_cjs.normalizeUrologySmartHistory(value),
439
439
  { showPain, showLUTS, showHaem, showSex }
440
440
  )
441
441
  );
@@ -467,5 +467,5 @@ var UrologySmartHistoryWidget = ({ fieldId }) => {
467
467
  };
468
468
 
469
469
  exports.UrologySmartHistoryWidget = UrologySmartHistoryWidget;
470
- //# sourceMappingURL=UrologySmartHistoryWidget-53NATEO3.cjs.map
471
- //# sourceMappingURL=UrologySmartHistoryWidget-53NATEO3.cjs.map
470
+ //# sourceMappingURL=UrologySmartHistoryWidget-P3KTQE7L.cjs.map
471
+ //# sourceMappingURL=UrologySmartHistoryWidget-P3KTQE7L.cjs.map