formanitor 0.2.7 → 0.2.9

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 (223) hide show
  1. package/dist/{AddInvestigationWidget-MSY4VSQZ.cjs → AddInvestigationWidget-4AZ7HTJY.cjs} +7 -7
  2. package/dist/{AddInvestigationWidget-MSY4VSQZ.cjs.map → AddInvestigationWidget-4AZ7HTJY.cjs.map} +1 -1
  3. package/dist/{AddInvestigationWidget-A2JS2ETO.mjs → AddInvestigationWidget-MSW4FUHR.mjs} +3 -3
  4. package/dist/{AddInvestigationWidget-A2JS2ETO.mjs.map → AddInvestigationWidget-MSW4FUHR.mjs.map} +1 -1
  5. package/dist/AddMedicationWidget-3O7NP6MH.cjs +34 -0
  6. package/dist/AddMedicationWidget-3O7NP6MH.cjs.map +1 -0
  7. package/dist/{AddMedicationWidget-B5RXRYBK.mjs → AddMedicationWidget-PIPANG6Q.mjs} +7 -5
  8. package/dist/AddMedicationWidget-PIPANG6Q.mjs.map +1 -0
  9. package/dist/{AddProcedureWidget-YW4EV66W.mjs → AddProcedureWidget-7IZ7SY7N.mjs} +3 -3
  10. package/dist/{AddProcedureWidget-YW4EV66W.mjs.map → AddProcedureWidget-7IZ7SY7N.mjs.map} +1 -1
  11. package/dist/{AddProcedureWidget-QUNDIZGR.cjs → AddProcedureWidget-NQCN5FBQ.cjs} +6 -6
  12. package/dist/{AddProcedureWidget-QUNDIZGR.cjs.map → AddProcedureWidget-NQCN5FBQ.cjs.map} +1 -1
  13. package/dist/{BiometryIolWorkupWidget-FWO3IWTF.cjs → BiometryIolWorkupWidget-NTYCAGGX.cjs} +6 -6
  14. package/dist/{BiometryIolWorkupWidget-FWO3IWTF.cjs.map → BiometryIolWorkupWidget-NTYCAGGX.cjs.map} +1 -1
  15. package/dist/{BiometryIolWorkupWidget-5RZP34FF.mjs → BiometryIolWorkupWidget-ZJRUTQZK.mjs} +4 -4
  16. package/dist/{BiometryIolWorkupWidget-5RZP34FF.mjs.map → BiometryIolWorkupWidget-ZJRUTQZK.mjs.map} +1 -1
  17. package/dist/BpeChartWidget-OL5WKSQG.mjs +7 -0
  18. package/dist/{BpeChartWidget-HATASHAC.mjs.map → BpeChartWidget-OL5WKSQG.mjs.map} +1 -1
  19. package/dist/BpeChartWidget-WYDP2BVS.cjs +28 -0
  20. package/dist/{BpeChartWidget-VZRH7M7L.cjs.map → BpeChartWidget-WYDP2BVS.cjs.map} +1 -1
  21. package/dist/{DateTimeWidget-RJ7SATVA.cjs → DateTimeWidget-3E6N4NOK.cjs} +6 -6
  22. package/dist/{DateTimeWidget-RJ7SATVA.cjs.map → DateTimeWidget-3E6N4NOK.cjs.map} +1 -1
  23. package/dist/{DateTimeWidget-KRX4O6OD.mjs → DateTimeWidget-TAHCCYCX.mjs} +4 -4
  24. package/dist/{DateTimeWidget-KRX4O6OD.mjs.map → DateTimeWidget-TAHCCYCX.mjs.map} +1 -1
  25. package/dist/{DateWidget-JEKDKPNS.mjs → DateWidget-5LFXAWRK.mjs} +4 -4
  26. package/dist/{DateWidget-JEKDKPNS.mjs.map → DateWidget-5LFXAWRK.mjs.map} +1 -1
  27. package/dist/{DateWidget-T7IQUWEA.cjs → DateWidget-HIYZ3TY7.cjs} +6 -6
  28. package/dist/{DateWidget-T7IQUWEA.cjs.map → DateWidget-HIYZ3TY7.cjs.map} +1 -1
  29. package/dist/{DentalChartWidget-P2YPKAMO.mjs → DentalChartWidget-4ZUVMMRX.mjs} +4 -4
  30. package/dist/{DentalChartWidget-LYLOFWZU.cjs.map → DentalChartWidget-4ZUVMMRX.mjs.map} +1 -1
  31. package/dist/DentalChartWidget-J6CHCPWI.cjs +21 -0
  32. package/dist/{DentalChartWidget-P2YPKAMO.mjs.map → DentalChartWidget-J6CHCPWI.cjs.map} +1 -1
  33. package/dist/{DiagnosisTextareaWidget-XJ47OZYH.cjs → DiagnosisTextareaWidget-2N5DP2CP.cjs} +7 -7
  34. package/dist/{DiagnosisTextareaWidget-XJ47OZYH.cjs.map → DiagnosisTextareaWidget-2N5DP2CP.cjs.map} +1 -1
  35. package/dist/{DiagnosisTextareaWidget-6UCYCCSB.mjs → DiagnosisTextareaWidget-OXOXANMF.mjs} +4 -4
  36. package/dist/{DiagnosisTextareaWidget-6UCYCCSB.mjs.map → DiagnosisTextareaWidget-OXOXANMF.mjs.map} +1 -1
  37. package/dist/{DifferentialDiagnosisWidget-XESNHNQQ.cjs → DifferentialDiagnosisWidget-RLGTZFGB.cjs} +4 -4
  38. package/dist/{DifferentialDiagnosisWidget-XESNHNQQ.cjs.map → DifferentialDiagnosisWidget-RLGTZFGB.cjs.map} +1 -1
  39. package/dist/{DifferentialDiagnosisWidget-IZEZVW5F.mjs → DifferentialDiagnosisWidget-XY7CJ5OG.mjs} +3 -3
  40. package/dist/{DifferentialDiagnosisWidget-IZEZVW5F.mjs.map → DifferentialDiagnosisWidget-XY7CJ5OG.mjs.map} +1 -1
  41. package/dist/{DischargeMedicationOrdersWidget-KA3HANHE.mjs → DischargeMedicationOrdersWidget-JXLQWPCP.mjs} +4 -4
  42. package/dist/{DischargeMedicationOrdersWidget-KA3HANHE.mjs.map → DischargeMedicationOrdersWidget-JXLQWPCP.mjs.map} +1 -1
  43. package/dist/{DischargeMedicationOrdersWidget-WRJRYL6F.cjs → DischargeMedicationOrdersWidget-X3ZVW3FP.cjs} +7 -7
  44. package/dist/{DischargeMedicationOrdersWidget-WRJRYL6F.cjs.map → DischargeMedicationOrdersWidget-X3ZVW3FP.cjs.map} +1 -1
  45. package/dist/{EditableTable-VZ66IXYI.mjs → EditableTable-ECNOISL3.mjs} +3 -3
  46. package/dist/{EditableTable-VZ66IXYI.mjs.map → EditableTable-ECNOISL3.mjs.map} +1 -1
  47. package/dist/{EditableTable-OW5LC6OC.cjs → EditableTable-OFVKAYRA.cjs} +4 -4
  48. package/dist/{EditableTable-OW5LC6OC.cjs.map → EditableTable-OFVKAYRA.cjs.map} +1 -1
  49. package/dist/{ExtraOralExamWidget-JVKJ4ZWC.mjs → ExtraOralExamWidget-74G73HGP.mjs} +3 -3
  50. package/dist/{ExtraOralExamWidget-JVKJ4ZWC.mjs.map → ExtraOralExamWidget-74G73HGP.mjs.map} +1 -1
  51. package/dist/{ExtraOralExamWidget-ZIOSKMIO.cjs → ExtraOralExamWidget-ETQI25NZ.cjs} +4 -4
  52. package/dist/{ExtraOralExamWidget-ZIOSKMIO.cjs.map → ExtraOralExamWidget-ETQI25NZ.cjs.map} +1 -1
  53. package/dist/{FollowupWidget-GCGPWZVY.mjs → FollowupWidget-ENDML2BN.mjs} +3 -3
  54. package/dist/{FollowupWidget-GCGPWZVY.mjs.map → FollowupWidget-ENDML2BN.mjs.map} +1 -1
  55. package/dist/{FollowupWidget-2STSJSDY.cjs → FollowupWidget-XMPHTW2M.cjs} +4 -4
  56. package/dist/{FollowupWidget-2STSJSDY.cjs.map → FollowupWidget-XMPHTW2M.cjs.map} +1 -1
  57. package/dist/{FunctionalImpairmentScoreWidget-FCA4UKQA.cjs → FunctionalImpairmentScoreWidget-7TACV6EV.cjs} +6 -6
  58. package/dist/{FunctionalImpairmentScoreWidget-FCA4UKQA.cjs.map → FunctionalImpairmentScoreWidget-7TACV6EV.cjs.map} +1 -1
  59. package/dist/{FunctionalImpairmentScoreWidget-TKS6KE7K.mjs → FunctionalImpairmentScoreWidget-MGK6K4ZW.mjs} +4 -4
  60. package/dist/{FunctionalImpairmentScoreWidget-TKS6KE7K.mjs.map → FunctionalImpairmentScoreWidget-MGK6K4ZW.mjs.map} +1 -1
  61. package/dist/{GsExaminationWidget-ESIEZCP3.mjs → GsExaminationWidget-LCFURWVZ.mjs} +4 -4
  62. package/dist/{GsExaminationWidget-ESIEZCP3.mjs.map → GsExaminationWidget-LCFURWVZ.mjs.map} +1 -1
  63. package/dist/{GsExaminationWidget-KKE5I5GX.cjs → GsExaminationWidget-PCPCUJWN.cjs} +10 -10
  64. package/dist/{GsExaminationWidget-KKE5I5GX.cjs.map → GsExaminationWidget-PCPCUJWN.cjs.map} +1 -1
  65. package/dist/{GsGradingWidget-HC4MJ4KJ.mjs → GsGradingWidget-2TNN3B3R.mjs} +4 -4
  66. package/dist/{GsGradingWidget-HC4MJ4KJ.mjs.map → GsGradingWidget-2TNN3B3R.mjs.map} +1 -1
  67. package/dist/{GsGradingWidget-NGCQQVYA.cjs → GsGradingWidget-OXS65SQJ.cjs} +12 -12
  68. package/dist/{GsGradingWidget-NGCQQVYA.cjs.map → GsGradingWidget-OXS65SQJ.cjs.map} +1 -1
  69. package/dist/{GsSmartHistoryWidget-AAB427Q2.cjs → GsSmartHistoryWidget-CCIUZHMN.cjs} +12 -12
  70. package/dist/{GsSmartHistoryWidget-AAB427Q2.cjs.map → GsSmartHistoryWidget-CCIUZHMN.cjs.map} +1 -1
  71. package/dist/{GsSmartHistoryWidget-7HYGDU4O.mjs → GsSmartHistoryWidget-G5B3VUHN.mjs} +4 -4
  72. package/dist/{GsSmartHistoryWidget-7HYGDU4O.mjs.map → GsSmartHistoryWidget-G5B3VUHN.mjs.map} +1 -1
  73. package/dist/{HiddenVitalsWidget-5GFBDDPT.cjs → HiddenVitalsWidget-DHZOSOQY.cjs} +6 -6
  74. package/dist/{HiddenVitalsWidget-5GFBDDPT.cjs.map → HiddenVitalsWidget-DHZOSOQY.cjs.map} +1 -1
  75. package/dist/{HiddenVitalsWidget-CIE3KERT.mjs → HiddenVitalsWidget-QWJHUVRJ.mjs} +4 -4
  76. package/dist/{HiddenVitalsWidget-CIE3KERT.mjs.map → HiddenVitalsWidget-QWJHUVRJ.mjs.map} +1 -1
  77. package/dist/{LensAssessmentWidget-SIKJVVAE.cjs → LensAssessmentWidget-6DFZYT5F.cjs} +6 -6
  78. package/dist/{LensAssessmentWidget-SIKJVVAE.cjs.map → LensAssessmentWidget-6DFZYT5F.cjs.map} +1 -1
  79. package/dist/{LensAssessmentWidget-B4OMHTOE.mjs → LensAssessmentWidget-P2KHBHM2.mjs} +4 -4
  80. package/dist/{LensAssessmentWidget-B4OMHTOE.mjs.map → LensAssessmentWidget-P2KHBHM2.mjs.map} +1 -1
  81. package/dist/{MarMedicationOrdersWidget-767F65K6.cjs → MarMedicationOrdersWidget-QSMTNWR3.cjs} +7 -7
  82. package/dist/{MarMedicationOrdersWidget-767F65K6.cjs.map → MarMedicationOrdersWidget-QSMTNWR3.cjs.map} +1 -1
  83. package/dist/{MarMedicationOrdersWidget-LG3WOXN7.mjs → MarMedicationOrdersWidget-XW2YFTTH.mjs} +4 -4
  84. package/dist/{MarMedicationOrdersWidget-LG3WOXN7.mjs.map → MarMedicationOrdersWidget-XW2YFTTH.mjs.map} +1 -1
  85. package/dist/{OBGExaminationWidget-MRTGWLXJ.cjs → OBGExaminationWidget-5THYKJI5.cjs} +11 -11
  86. package/dist/{OBGExaminationWidget-MRTGWLXJ.cjs.map → OBGExaminationWidget-5THYKJI5.cjs.map} +1 -1
  87. package/dist/{OBGExaminationWidget-HQKTHSOZ.mjs → OBGExaminationWidget-Y2BVJB33.mjs} +4 -4
  88. package/dist/{OBGExaminationWidget-HQKTHSOZ.mjs.map → OBGExaminationWidget-Y2BVJB33.mjs.map} +1 -1
  89. package/dist/{OBGPathwayWidget-QJNWUIEM.mjs → OBGPathwayWidget-ALGYLNKZ.mjs} +5 -5
  90. package/dist/{OBGPathwayWidget-QJNWUIEM.mjs.map → OBGPathwayWidget-ALGYLNKZ.mjs.map} +1 -1
  91. package/dist/{OBGPathwayWidget-YRU36UL7.cjs → OBGPathwayWidget-FHBZPBPH.cjs} +9 -9
  92. package/dist/{OBGPathwayWidget-YRU36UL7.cjs.map → OBGPathwayWidget-FHBZPBPH.cjs.map} +1 -1
  93. package/dist/{ObstetricHistoryWidget-EW6JLNQ7.mjs → ObstetricHistoryWidget-5GDUCYS3.mjs} +4 -4
  94. package/dist/{ObstetricHistoryWidget-EW6JLNQ7.mjs.map → ObstetricHistoryWidget-5GDUCYS3.mjs.map} +1 -1
  95. package/dist/{ObstetricHistoryWidget-OOWCVFRB.cjs → ObstetricHistoryWidget-XGZM2HL4.cjs} +7 -7
  96. package/dist/{ObstetricHistoryWidget-OOWCVFRB.cjs.map → ObstetricHistoryWidget-XGZM2HL4.cjs.map} +1 -1
  97. package/dist/{OphthalDiagnosisWidget-UXXYGKD5.cjs → OphthalDiagnosisWidget-7WY633CI.cjs} +4 -4
  98. package/dist/{OphthalDiagnosisWidget-UXXYGKD5.cjs.map → OphthalDiagnosisWidget-7WY633CI.cjs.map} +1 -1
  99. package/dist/{OphthalDiagnosisWidget-MZYBQTFV.mjs → OphthalDiagnosisWidget-YHEDHIX5.mjs} +3 -3
  100. package/dist/{OphthalDiagnosisWidget-MZYBQTFV.mjs.map → OphthalDiagnosisWidget-YHEDHIX5.mjs.map} +1 -1
  101. package/dist/{OphthalmologyWidget-27ZN2E3F.mjs → OphthalmologyWidget-6RWGZHLU.mjs} +3 -3
  102. package/dist/{OphthalmologyWidget-27ZN2E3F.mjs.map → OphthalmologyWidget-6RWGZHLU.mjs.map} +1 -1
  103. package/dist/{OphthalmologyWidget-WFSFIHT4.cjs → OphthalmologyWidget-VLW4CM2Q.cjs} +4 -4
  104. package/dist/{OphthalmologyWidget-WFSFIHT4.cjs.map → OphthalmologyWidget-VLW4CM2Q.cjs.map} +1 -1
  105. package/dist/{OrthopedicExamWidget-ULZTDFXJ.cjs → OrthopedicExamWidget-4ZNOVW54.cjs} +6 -6
  106. package/dist/{OrthopedicExamWidget-ULZTDFXJ.cjs.map → OrthopedicExamWidget-4ZNOVW54.cjs.map} +1 -1
  107. package/dist/{OrthopedicExamWidget-WM55M3Y4.mjs → OrthopedicExamWidget-CWEH3ZY7.mjs} +4 -4
  108. package/dist/{OrthopedicExamWidget-WM55M3Y4.mjs.map → OrthopedicExamWidget-CWEH3ZY7.mjs.map} +1 -1
  109. package/dist/{PainScaleFlagsWidget-IFA3RCEL.cjs → PainScaleFlagsWidget-EYYQBSYL.cjs} +8 -8
  110. package/dist/{PainScaleFlagsWidget-IFA3RCEL.cjs.map → PainScaleFlagsWidget-EYYQBSYL.cjs.map} +1 -1
  111. package/dist/{PainScaleFlagsWidget-5KN7T4JK.mjs → PainScaleFlagsWidget-XC73ND7X.mjs} +4 -4
  112. package/dist/{PainScaleFlagsWidget-5KN7T4JK.mjs.map → PainScaleFlagsWidget-XC73ND7X.mjs.map} +1 -1
  113. package/dist/{PregnancyStatusWidget-U2BEJGBJ.mjs → PregnancyStatusWidget-U6Y3DCDB.mjs} +3 -3
  114. package/dist/{PregnancyStatusWidget-U2BEJGBJ.mjs.map → PregnancyStatusWidget-U6Y3DCDB.mjs.map} +1 -1
  115. package/dist/{PregnancyStatusWidget-QTTVFBOE.cjs → PregnancyStatusWidget-YZRYO2WA.cjs} +4 -4
  116. package/dist/{PregnancyStatusWidget-QTTVFBOE.cjs.map → PregnancyStatusWidget-YZRYO2WA.cjs.map} +1 -1
  117. package/dist/{ReferralWidget-GU3JYED2.mjs → ReferralWidget-FXJC56AF.mjs} +4 -4
  118. package/dist/{ReferralWidget-GU3JYED2.mjs.map → ReferralWidget-FXJC56AF.mjs.map} +1 -1
  119. package/dist/{ReferralWidget-27VGZCOQ.cjs → ReferralWidget-KD36EA74.cjs} +7 -7
  120. package/dist/{ReferralWidget-27VGZCOQ.cjs.map → ReferralWidget-KD36EA74.cjs.map} +1 -1
  121. package/dist/RichTextWidget-JG4Y7X66.mjs +11 -0
  122. package/dist/{RichTextWidget-2KLV65QP.cjs.map → RichTextWidget-JG4Y7X66.mjs.map} +1 -1
  123. package/dist/{RichTextWidget-2KLV65QP.cjs → RichTextWidget-KKC3P5Z3.cjs} +7 -7
  124. package/dist/{RichTextWidget-ZBX554ZJ.mjs.map → RichTextWidget-KKC3P5Z3.cjs.map} +1 -1
  125. package/dist/SmartTextarea-DSM5TP5N.cjs +19 -0
  126. package/dist/{SmartTextarea-LQDXFCYT.mjs.map → SmartTextarea-DSM5TP5N.cjs.map} +1 -1
  127. package/dist/SmartTextarea-HDRABZIN.mjs +10 -0
  128. package/dist/{SmartTextarea-WITNRNDU.cjs.map → SmartTextarea-HDRABZIN.mjs.map} +1 -1
  129. package/dist/{SuggestionTextareaWidget-UNL3FZRI.mjs → SuggestionTextareaWidget-IKL46SCV.mjs} +7 -7
  130. package/dist/{SuggestionTextareaWidget-UNL3FZRI.mjs.map → SuggestionTextareaWidget-IKL46SCV.mjs.map} +1 -1
  131. package/dist/{SuggestionTextareaWidget-FWRZ46MV.cjs → SuggestionTextareaWidget-KABKRNP3.cjs} +18 -18
  132. package/dist/{SuggestionTextareaWidget-FWRZ46MV.cjs.map → SuggestionTextareaWidget-KABKRNP3.cjs.map} +1 -1
  133. package/dist/{SurgicalRiskFlagsWidget-OJKCZIWJ.cjs → SurgicalRiskFlagsWidget-DO66VPQC.cjs} +6 -6
  134. package/dist/{SurgicalRiskFlagsWidget-OJKCZIWJ.cjs.map → SurgicalRiskFlagsWidget-DO66VPQC.cjs.map} +1 -1
  135. package/dist/{SurgicalRiskFlagsWidget-ZTQJ6CDF.mjs → SurgicalRiskFlagsWidget-NPOHFMIZ.mjs} +4 -4
  136. package/dist/{SurgicalRiskFlagsWidget-ZTQJ6CDF.mjs.map → SurgicalRiskFlagsWidget-NPOHFMIZ.mjs.map} +1 -1
  137. package/dist/{TreatmentPlanWidget-665HLKYV.mjs → TreatmentPlanWidget-7XYIVHQO.mjs} +4 -4
  138. package/dist/{TreatmentPlanWidget-665HLKYV.mjs.map → TreatmentPlanWidget-7XYIVHQO.mjs.map} +1 -1
  139. package/dist/{TreatmentPlanWidget-TATWSPLY.cjs → TreatmentPlanWidget-ELTSULQ4.cjs} +6 -6
  140. package/dist/{TreatmentPlanWidget-TATWSPLY.cjs.map → TreatmentPlanWidget-ELTSULQ4.cjs.map} +1 -1
  141. package/dist/{UrologyExaminationWidget-GRBL2SDG.mjs → UrologyExaminationWidget-OQLZPWVR.mjs} +4 -4
  142. package/dist/{UrologyExaminationWidget-GRBL2SDG.mjs.map → UrologyExaminationWidget-OQLZPWVR.mjs.map} +1 -1
  143. package/dist/{UrologyExaminationWidget-GQLMV4FB.cjs → UrologyExaminationWidget-OSNFGBI2.cjs} +12 -12
  144. package/dist/{UrologyExaminationWidget-GQLMV4FB.cjs.map → UrologyExaminationWidget-OSNFGBI2.cjs.map} +1 -1
  145. package/dist/{UrologyPathwayWidget-PEO5BVQX.mjs → UrologyPathwayWidget-KE2LAZTZ.mjs} +4 -4
  146. package/dist/{UrologyPathwayWidget-PEO5BVQX.mjs.map → UrologyPathwayWidget-KE2LAZTZ.mjs.map} +1 -1
  147. package/dist/{UrologyPathwayWidget-D6EWSOGW.cjs → UrologyPathwayWidget-YPYIX43Z.cjs} +7 -7
  148. package/dist/{UrologyPathwayWidget-D6EWSOGW.cjs.map → UrologyPathwayWidget-YPYIX43Z.cjs.map} +1 -1
  149. package/dist/{UrologySmartHistoryWidget-BDKRFBYN.mjs → UrologySmartHistoryWidget-ET6CU36D.mjs} +4 -4
  150. package/dist/{UrologySmartHistoryWidget-BDKRFBYN.mjs.map → UrologySmartHistoryWidget-ET6CU36D.mjs.map} +1 -1
  151. package/dist/{UrologySmartHistoryWidget-P3KTQE7L.cjs → UrologySmartHistoryWidget-SLBJALMO.cjs} +15 -15
  152. package/dist/{UrologySmartHistoryWidget-P3KTQE7L.cjs.map → UrologySmartHistoryWidget-SLBJALMO.cjs.map} +1 -1
  153. package/dist/{VitalsWidget-MS3OOZSW.cjs → VitalsWidget-MGUUJZP4.cjs} +5 -5
  154. package/dist/{VitalsWidget-MS3OOZSW.cjs.map → VitalsWidget-MGUUJZP4.cjs.map} +1 -1
  155. package/dist/{VitalsWidget-63HTXK2M.mjs → VitalsWidget-YI3IXQYN.mjs} +3 -3
  156. package/dist/{VitalsWidget-63HTXK2M.mjs.map → VitalsWidget-YI3IXQYN.mjs.map} +1 -1
  157. package/dist/{chunk-5RT3S67O.cjs → chunk-35I4CBEC.cjs} +6 -6
  158. package/dist/{chunk-5RT3S67O.cjs.map → chunk-35I4CBEC.cjs.map} +1 -1
  159. package/dist/{chunk-BBD3Y37O.cjs → chunk-4KTQ4NEI.cjs} +4 -4
  160. package/dist/{chunk-BBD3Y37O.cjs.map → chunk-4KTQ4NEI.cjs.map} +1 -1
  161. package/dist/{chunk-MBZRRYJB.mjs → chunk-7ZRK7ZWY.mjs} +4 -4
  162. package/dist/{chunk-MBZRRYJB.mjs.map → chunk-7ZRK7ZWY.mjs.map} +1 -1
  163. package/dist/{chunk-T3UHPMFX.mjs → chunk-BKZXISZH.mjs} +3 -3
  164. package/dist/{chunk-T3UHPMFX.mjs.map → chunk-BKZXISZH.mjs.map} +1 -1
  165. package/dist/{chunk-G6Y4UJPN.mjs → chunk-CC54SKAA.mjs} +5 -5
  166. package/dist/{chunk-G6Y4UJPN.mjs.map → chunk-CC54SKAA.mjs.map} +1 -1
  167. package/dist/{chunk-Q66LXMRR.mjs → chunk-FAAMKLBY.mjs} +3 -3
  168. package/dist/{chunk-Q66LXMRR.mjs.map → chunk-FAAMKLBY.mjs.map} +1 -1
  169. package/dist/{chunk-TCQQUJCL.cjs → chunk-GQX2UGHH.cjs} +11 -11
  170. package/dist/{chunk-TCQQUJCL.cjs.map → chunk-GQX2UGHH.cjs.map} +1 -1
  171. package/dist/{chunk-2BGJZ44Q.mjs → chunk-HKEUAERY.mjs} +9 -4
  172. package/dist/{chunk-TB33A4PD.cjs.map → chunk-HKEUAERY.mjs.map} +1 -1
  173. package/dist/{chunk-T2IKWRV2.cjs → chunk-JFZ7XPDM.cjs} +9 -9
  174. package/dist/{chunk-T2IKWRV2.cjs.map → chunk-JFZ7XPDM.cjs.map} +1 -1
  175. package/dist/{chunk-AIZ3XYEZ.cjs → chunk-JKHJPXAI.cjs} +72 -5
  176. package/dist/chunk-JKHJPXAI.cjs.map +1 -0
  177. package/dist/{chunk-TB33A4PD.cjs → chunk-JVIU4OBK.cjs} +9 -3
  178. package/dist/chunk-JVIU4OBK.cjs.map +1 -0
  179. package/dist/{chunk-XIUXYHGG.cjs → chunk-L2H5SOAV.cjs} +5 -5
  180. package/dist/{chunk-XIUXYHGG.cjs.map → chunk-L2H5SOAV.cjs.map} +1 -1
  181. package/dist/{chunk-XDUVO3IZ.mjs → chunk-MPKQKDL6.mjs} +73 -6
  182. package/dist/chunk-MPKQKDL6.mjs.map +1 -0
  183. package/dist/{chunk-XLCTFYFD.mjs → chunk-PNRSJPGV.mjs} +5 -5
  184. package/dist/{chunk-XLCTFYFD.mjs.map → chunk-PNRSJPGV.mjs.map} +1 -1
  185. package/dist/{chunk-X4AJCTON.cjs → chunk-PVKHVVFS.cjs} +4 -4
  186. package/dist/{chunk-X4AJCTON.cjs.map → chunk-PVKHVVFS.cjs.map} +1 -1
  187. package/dist/{chunk-Q3K646K4.mjs → chunk-QM6UMI2M.mjs} +3 -3
  188. package/dist/{chunk-Q3K646K4.mjs.map → chunk-QM6UMI2M.mjs.map} +1 -1
  189. package/dist/{chunk-MQHZ7HD2.mjs → chunk-QQXBHDUF.mjs} +3 -3
  190. package/dist/{chunk-MQHZ7HD2.mjs.map → chunk-QQXBHDUF.mjs.map} +1 -1
  191. package/dist/{chunk-UKSP3B3W.mjs → chunk-VAJR2VBK.mjs} +3 -3
  192. package/dist/{chunk-UKSP3B3W.mjs.map → chunk-VAJR2VBK.mjs.map} +1 -1
  193. package/dist/{chunk-RZK44P3C.cjs → chunk-WM43XTEK.cjs} +7 -7
  194. package/dist/{chunk-RZK44P3C.cjs.map → chunk-WM43XTEK.cjs.map} +1 -1
  195. package/dist/{chunk-7DISRJAB.cjs → chunk-XGO2HG3N.cjs} +4 -4
  196. package/dist/{chunk-7DISRJAB.cjs.map → chunk-XGO2HG3N.cjs.map} +1 -1
  197. package/dist/index.cjs +133 -129
  198. package/dist/index.d.cts +6 -3
  199. package/dist/index.d.ts +6 -3
  200. package/dist/index.mjs +51 -51
  201. package/dist/read-only-table.d.cts +1 -1
  202. package/dist/read-only-table.d.ts +1 -1
  203. package/dist/rich-text.cjs +5 -5
  204. package/dist/rich-text.mjs +4 -4
  205. package/dist/smart.cjs +5 -5
  206. package/dist/smart.d.cts +1 -1
  207. package/dist/smart.d.ts +1 -1
  208. package/dist/smart.mjs +3 -3
  209. package/dist/{types-BbOnd5IN.d.cts → types-BbgFmTKi.d.cts} +20 -1
  210. package/dist/{types-BbOnd5IN.d.ts → types-BbgFmTKi.d.ts} +20 -1
  211. package/package.json +1 -1
  212. package/dist/AddMedicationWidget-45T4XVEL.cjs +0 -32
  213. package/dist/AddMedicationWidget-45T4XVEL.cjs.map +0 -1
  214. package/dist/AddMedicationWidget-B5RXRYBK.mjs.map +0 -1
  215. package/dist/BpeChartWidget-HATASHAC.mjs +0 -7
  216. package/dist/BpeChartWidget-VZRH7M7L.cjs +0 -28
  217. package/dist/DentalChartWidget-LYLOFWZU.cjs +0 -21
  218. package/dist/RichTextWidget-ZBX554ZJ.mjs +0 -11
  219. package/dist/SmartTextarea-LQDXFCYT.mjs +0 -10
  220. package/dist/SmartTextarea-WITNRNDU.cjs +0 -19
  221. package/dist/chunk-2BGJZ44Q.mjs.map +0 -1
  222. package/dist/chunk-AIZ3XYEZ.cjs.map +0 -1
  223. package/dist/chunk-XDUVO3IZ.mjs.map +0 -1
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkXIUXYHGG_cjs = require('./chunk-XIUXYHGG.cjs');
3
+ var chunkL2H5SOAV_cjs = require('./chunk-L2H5SOAV.cjs');
4
4
  var chunk5E3APMY6_cjs = require('./chunk-5E3APMY6.cjs');
5
- var chunk7DISRJAB_cjs = require('./chunk-7DISRJAB.cjs');
5
+ var chunkXGO2HG3N_cjs = require('./chunk-XGO2HG3N.cjs');
6
6
  var chunkO3VQBPEW_cjs = require('./chunk-O3VQBPEW.cjs');
7
- var chunkTB33A4PD_cjs = require('./chunk-TB33A4PD.cjs');
7
+ var chunkJVIU4OBK_cjs = require('./chunk-JVIU4OBK.cjs');
8
8
  var chunkJMGUUFOJ_cjs = require('./chunk-JMGUUFOJ.cjs');
9
9
  var chunkFHHISVCH_cjs = require('./chunk-FHHISVCH.cjs');
10
10
  var React = require('react');
@@ -255,9 +255,9 @@ function RichTextToolbar({
255
255
  );
256
256
  }
257
257
  var RichTextWidget = ({ fieldId }) => {
258
- const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkTB33A4PD_cjs.useField(fieldId);
259
- const { state } = chunk7DISRJAB_cjs.useForm();
260
- const store = chunkTB33A4PD_cjs.useFormStore();
258
+ const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkJVIU4OBK_cjs.useField(fieldId);
259
+ const { state } = chunkXGO2HG3N_cjs.useForm();
260
+ const store = chunkJVIU4OBK_cjs.useFormStore();
261
261
  const hasVoice = !!(fieldDef?.voice && store.getVoice());
262
262
  const showError = !!error && (touched || state.submitAttempted);
263
263
  const def = fieldDef;
@@ -335,7 +335,7 @@ var RichTextWidget = ({ fieldId }) => {
335
335
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk5E3APMY6_cjs.fieldWrapperClass(fieldDef, "space-y-2"), children: [
336
336
  hasVoice ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
337
337
  showLabel ? labelEl : null,
338
- /* @__PURE__ */ jsxRuntime.jsx(chunkXIUXYHGG_cjs.VoiceMicButton, { fieldId, onTranscriptReady: setValue })
338
+ /* @__PURE__ */ jsxRuntime.jsx(chunkL2H5SOAV_cjs.VoiceMicButton, { fieldId, onTranscriptReady: setValue })
339
339
  ] }) : showLabel ? labelEl : null,
340
340
  /* @__PURE__ */ jsxRuntime.jsxs(
341
341
  "div",
@@ -384,5 +384,5 @@ var RichTextWidget = ({ fieldId }) => {
384
384
  };
385
385
 
386
386
  exports.RichTextWidget = RichTextWidget;
387
- //# sourceMappingURL=chunk-T2IKWRV2.cjs.map
388
- //# sourceMappingURL=chunk-T2IKWRV2.cjs.map
387
+ //# sourceMappingURL=chunk-JFZ7XPDM.cjs.map
388
+ //# sourceMappingURL=chunk-JFZ7XPDM.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ui/shadcn/separator.tsx","../src/ui/widgets/RichTextWidget.tsx"],"names":["React","jsx","SeparatorPrimitive","cn","StarterKit","Underline","Placeholder","Table","TableRow","TableHeader","TableCell","useReducer","useEffect","Button","jsxs","Bold","Italic","UnderlineIcon","Strikethrough","List","ListOrdered","Fragment","TableIcon","Rows2","Columns2","TableRowsSplit","TableColumnsSplit","Trash2","Undo","Redo","useField","useForm","useFormStore","useMemo","useEditor","isLabelVisible","FieldRequiredIndicator","Label","fieldLabelClass","fieldWrapperClass","VoiceMicButton","fieldControlClass","EditorContent","fieldErrorClass"],"mappings":"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","file":"chunk-T2IKWRV2.cjs","sourcesContent":["import * as React from \"react\"\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\"\n\nimport { cn } from \"../../core/utils\"\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n)\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport { Separator }\n\n","import React, { useEffect, useMemo, useReducer } from 'react';\nimport { EditorContent, useEditor } from '@tiptap/react';\nimport StarterKit from '@tiptap/starter-kit';\nimport Placeholder from '@tiptap/extension-placeholder';\nimport Underline from '@tiptap/extension-underline';\nimport { Table, TableRow, TableHeader, TableCell } from '@tiptap/extension-table';\nimport type { Extensions } from '@tiptap/core';\nimport {\n Bold,\n Italic,\n Underline as UnderlineIcon,\n Strikethrough,\n List,\n ListOrdered,\n Undo,\n Redo,\n Table as TableIcon,\n Rows2,\n Columns2,\n TableRowsSplit,\n TableColumnsSplit,\n Trash2,\n} from 'lucide-react';\nimport { useField } from '../../react/useField';\nimport { useForm } from '../../react/useForm';\nimport { useFormStore } from '../../react/FormProvider';\nimport { VoiceMicButton } from '../../react/VoiceMicButton';\nimport { Label } from '../shadcn/label';\nimport { Button } from '../shadcn/button';\nimport { Separator } from '../shadcn/separator';\nimport { cn } from '../../core/utils';\nimport type { Editor } from '@tiptap/core';\nimport type { RichTextFieldDef } from '../../core/types';\nimport {\n FieldRequiredIndicator,\n fieldControlClass,\n fieldErrorClass,\n fieldLabelClass,\n fieldWrapperClass,\n isLabelVisible,\n} from '../../react/fieldStyle';\n\nfunction isEmptyHtml(html: string): boolean {\n const t = html.trim();\n return (\n t === '' ||\n t === '<p></p>' ||\n t === '<p><br></p>' ||\n t === '<p><br class=\"ProseMirror-trailingBreak\"></p>'\n );\n}\n\nfunction buildRichTextExtensions(placeholder: string, tables: boolean): Extensions {\n const base: Extensions = [\n StarterKit.configure({\n // Disable headings entirely so the UI/content can't introduce H2/H3.\n heading: false,\n bulletList: {\n HTMLAttributes: {\n class: 'list-disc pl-6 my-2',\n },\n },\n orderedList: {\n HTMLAttributes: {\n class: 'list-decimal pl-6 my-2',\n },\n },\n listItem: {\n HTMLAttributes: {\n class: 'my-1',\n },\n },\n }),\n Underline,\n Placeholder.configure({\n placeholder,\n }),\n ];\n\n if (!tables) return base;\n\n return [\n ...base,\n Table.configure({\n resizable: true,\n /** Wider hit zone along column borders (default 5px). */\n handleWidth: 8,\n cellMinWidth: 50,\n }),\n TableRow,\n TableHeader,\n TableCell,\n ];\n}\n\nfunction RichTextToolbar({\n editor,\n disabled,\n tablesEnabled,\n}: {\n editor: Editor | null;\n disabled: boolean;\n tablesEnabled: boolean;\n}) {\n const [, rerender] = useReducer((n: number) => n + 1, 0);\n\n useEffect(() => {\n if (!editor) return;\n const handler = () => rerender();\n editor.on('selectionUpdate', handler);\n editor.on('transaction', handler);\n return () => {\n editor.off('selectionUpdate', handler);\n editor.off('transaction', handler);\n };\n }, [editor]);\n\n if (!editor) {\n return (\n <div className=\"flex flex-wrap gap-1 border-b border-input bg-muted/30 px-2 py-1.5 min-h-[42px]\" />\n );\n }\n\n const fmtBtn = (active: boolean, onClick: () => void, icon: React.ReactNode, title: string) => (\n <Button\n type=\"button\"\n variant={active ? 'secondary' : 'outline'}\n size=\"icon\"\n className=\"h-8 w-8 shrink-0\"\n disabled={disabled}\n title={title}\n onClick={() => {\n if (!disabled) onClick();\n }}\n >\n {icon}\n </Button>\n );\n\n const inTable = tablesEnabled && editor.isActive('table');\n\n return (\n <div\n className=\"flex flex-wrap items-center gap-1 border-b border-input bg-muted/30 px-2 py-1.5\"\n role=\"toolbar\"\n aria-label=\"Rich text formatting\"\n >\n {fmtBtn(\n editor.isActive('bold'),\n () => editor.chain().focus().toggleBold().run(),\n <Bold className=\"h-4 w-4\" />,\n 'Bold',\n )}\n {fmtBtn(\n editor.isActive('italic'),\n () => editor.chain().focus().toggleItalic().run(),\n <Italic className=\"h-4 w-4\" />,\n 'Italic',\n )}\n {fmtBtn(\n editor.isActive('underline'),\n () => editor.chain().focus().toggleUnderline().run(),\n <UnderlineIcon className=\"h-4 w-4\" />,\n 'Underline',\n )}\n {fmtBtn(\n editor.isActive('strike'),\n () => editor.chain().focus().toggleStrike().run(),\n <Strikethrough className=\"h-4 w-4\" />,\n 'Strikethrough',\n )}\n\n <Separator orientation=\"vertical\" className=\"mx-0.5 h-6\" />\n\n {fmtBtn(\n editor.isActive('bulletList'),\n () => editor.chain().focus().toggleBulletList().run(),\n <List className=\"h-4 w-4\" />,\n 'Bullet list',\n )}\n {fmtBtn(\n editor.isActive('orderedList'),\n () => editor.chain().focus().toggleOrderedList().run(),\n <ListOrdered className=\"h-4 w-4\" />,\n 'Numbered list',\n )}\n\n {tablesEnabled && (\n <>\n <Separator orientation=\"vertical\" className=\"mx-0.5 h-6\" />\n {!inTable ? (\n fmtBtn(\n false,\n () =>\n editor\n .chain()\n .focus()\n .insertTable({ rows: 3, cols: 3, withHeaderRow: true })\n .run(),\n <TableIcon className=\"h-4 w-4\" />,\n 'Insert table',\n )\n ) : (\n <>\n {fmtBtn(\n false,\n () => editor.chain().focus().addRowAfter().run(),\n <Rows2 className=\"h-4 w-4\" />,\n 'Add row below',\n )}\n {fmtBtn(\n false,\n () => editor.chain().focus().addColumnAfter().run(),\n <Columns2 className=\"h-4 w-4\" />,\n 'Add column right',\n )}\n {fmtBtn(\n false,\n () => editor.chain().focus().deleteRow().run(),\n <TableRowsSplit className=\"h-4 w-4\" />,\n 'Delete row',\n )}\n {fmtBtn(\n false,\n () => editor.chain().focus().deleteColumn().run(),\n <TableColumnsSplit className=\"h-4 w-4\" />,\n 'Delete column',\n )}\n {fmtBtn(\n false,\n () => editor.chain().focus().deleteTable().run(),\n <Trash2 className=\"h-4 w-4\" />,\n 'Delete table',\n )}\n </>\n )}\n </>\n )}\n\n <Separator orientation=\"vertical\" className=\"mx-0.5 h-6\" />\n\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"icon\"\n className=\"h-8 w-8 shrink-0\"\n disabled={disabled || !editor.can().undo()}\n title=\"Undo\"\n onClick={() => editor.chain().focus().undo().run()}\n >\n <Undo className=\"h-4 w-4\" />\n </Button>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"icon\"\n className=\"h-8 w-8 shrink-0\"\n disabled={disabled || !editor.can().redo()}\n title=\"Redo\"\n onClick={() => editor.chain().focus().redo().run()}\n >\n <Redo className=\"h-4 w-4\" />\n </Button>\n </div>\n );\n}\n\nexport const RichTextWidget: React.FC<{ fieldId: string }> = ({ fieldId }) => {\n const { fieldDef, value, setValue, setTouched, error, disabled, touched } = useField(fieldId);\n const { state } = useForm();\n const store = useFormStore();\n const hasVoice = !!(fieldDef?.voice && store.getVoice());\n const showError = !!error && (touched || state.submitAttempted);\n\n const def = fieldDef as RichTextFieldDef | undefined;\n const placeholder = def?.placeholder ?? 'Start typing…';\n const minHeight = def?.minHeight ?? 160;\n const tablesEnabled = !!def?.tables;\n\n const extensions = useMemo(\n () => buildRichTextExtensions(placeholder, tablesEnabled),\n [placeholder, tablesEnabled],\n );\n\n const stringValue = typeof value === 'string' ? value : '';\n\n const editor = useEditor(\n {\n extensions,\n content: stringValue || '',\n editable: !disabled,\n immediatelyRender: false,\n onUpdate: ({ editor: ed }) => {\n const html = ed.getHTML();\n setValue(isEmptyHtml(html) ? '' : html);\n },\n onBlur: () => setTouched(),\n editorProps: {\n attributes: {\n id: fieldId,\n class: 'tiptap focus:outline-none',\n style: `min-height: ${minHeight}px`,\n },\n },\n },\n [extensions, fieldId],\n );\n\n useEffect(() => {\n if (!editor || editor.isDestroyed) return;\n editor.setEditable(!disabled);\n }, [editor, disabled]);\n\n useEffect(() => {\n if (!editor || editor.isDestroyed) return;\n const el = editor.view.dom as HTMLElement;\n el.style.minHeight = `${minHeight}px`;\n }, [editor, minHeight]);\n\n // Listen for a custom 'insertTranscript' event dispatched by external hooks\n // (e.g. voice recording) so the widget controls its own insertion logic.\n useEffect(() => {\n if (!editor || editor.isDestroyed) return;\n const el = editor.view.dom as HTMLElement;\n const handler = (e: Event) => {\n const { text } = (e as CustomEvent<{ text: string }>).detail;\n if (!text) return;\n const currentText = editor.getText();\n const prefix = currentText.length > 0 && !/\\s$/.test(currentText) ? ' ' : '';\n editor.chain().focus().insertContent(prefix + text).run();\n };\n el.addEventListener('insertTranscript', handler);\n return () => el.removeEventListener('insertTranscript', handler);\n }, [editor]);\n\n useEffect(() => {\n if (!editor || editor.isDestroyed) return;\n const fromForm = stringValue;\n const fromEditor = editor.getHTML();\n if (isEmptyHtml(fromForm) && isEmptyHtml(fromEditor)) return;\n if (fromForm && fromForm !== fromEditor) {\n editor.commands.setContent(fromForm, { emitUpdate: false });\n }\n if (!fromForm && !isEmptyHtml(fromEditor)) {\n editor.commands.setContent('', { emitUpdate: false });\n }\n }, [stringValue, editor]);\n\n if (!fieldDef) return null;\n\n const showLabel = isLabelVisible(fieldDef);\n\n const labelContent = (\n <>\n {fieldDef.label}{' '}\n <FieldRequiredIndicator fieldDef={fieldDef} />\n </>\n );\n\n const labelEl = (\n <Label htmlFor={fieldId} className={fieldLabelClass(fieldDef)}>\n {labelContent}\n </Label>\n );\n\n return (\n <div className={fieldWrapperClass(fieldDef, 'space-y-2')}>\n {hasVoice ? (\n <div className=\"flex items-center justify-between\">\n {showLabel ? labelEl : null}\n <VoiceMicButton fieldId={fieldId} onTranscriptReady={setValue} />\n </div>\n ) : showLabel ? (\n labelEl\n ) : null}\n <div\n className={fieldControlClass(\n fieldDef,\n cn(\n 'rounded-md border border-input bg-background text-sm ring-offset-background overflow-hidden',\n showError && 'border-red-500',\n disabled && 'opacity-60',\n ),\n )}\n >\n <RichTextToolbar\n editor={editor}\n disabled={disabled}\n tablesEnabled={tablesEnabled}\n />\n <div\n className={cn(\n 'px-3 py-2',\n '[&_.ProseMirror]:outline-none',\n '[&_.ProseMirror_ul]:list-disc [&_.ProseMirror_ul]:pl-6 [&_.ProseMirror_ul]:my-2',\n '[&_.ProseMirror_ol]:list-decimal [&_.ProseMirror_ol]:pl-6 [&_.ProseMirror_ol]:my-2',\n '[&_.ProseMirror_li]:list-item',\n '[&_.ProseMirror_blockquote]:border-l-4 [&_.ProseMirror_blockquote]:border-muted-foreground/40 [&_.ProseMirror_blockquote]:pl-3 [&_.ProseMirror_blockquote]:italic [&_.ProseMirror_blockquote]:my-2',\n '[&_.ProseMirror_p.is-editor-empty:first-child::before]:text-muted-foreground',\n '[&_.ProseMirror_p.is-editor-empty:first-child::before]:content-[attr(data-placeholder)]',\n '[&_.ProseMirror_p.is-editor-empty:first-child::before]:float-left',\n '[&_.ProseMirror_p.is-editor-empty:first-child::before]:pointer-events-none',\n '[&_.ProseMirror_p.is-editor-empty:first-child::before]:h-0',\n )}\n >\n <EditorContent editor={editor} />\n </div>\n </div>\n {showError && (\n <p className={fieldErrorClass(fieldDef, 'text-xs text-red-500')}>{error}</p>\n )}\n </div>\n );\n};\n\n// Re-exported from a lightweight module so read-only consumers can use it\n// without pulling in the TipTap/ProseMirror editor.\nexport { richTextHtmlClassName } from './richTextClassName';\n"]}
1
+ {"version":3,"sources":["../src/ui/shadcn/separator.tsx","../src/ui/widgets/RichTextWidget.tsx"],"names":["React","jsx","SeparatorPrimitive","cn","StarterKit","Underline","Placeholder","Table","TableRow","TableHeader","TableCell","useReducer","useEffect","Button","jsxs","Bold","Italic","UnderlineIcon","Strikethrough","List","ListOrdered","Fragment","TableIcon","Rows2","Columns2","TableRowsSplit","TableColumnsSplit","Trash2","Undo","Redo","useField","useForm","useFormStore","useMemo","useEditor","isLabelVisible","FieldRequiredIndicator","Label","fieldLabelClass","fieldWrapperClass","VoiceMicButton","fieldControlClass","EditorContent","fieldErrorClass"],"mappings":"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","file":"chunk-JFZ7XPDM.cjs","sourcesContent":["import * as React from \"react\"\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\"\n\nimport { cn } from \"../../core/utils\"\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n)\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport { Separator }\n\n","import React, { useEffect, useMemo, useReducer } from 'react';\nimport { EditorContent, useEditor } from '@tiptap/react';\nimport StarterKit from '@tiptap/starter-kit';\nimport Placeholder from '@tiptap/extension-placeholder';\nimport Underline from '@tiptap/extension-underline';\nimport { Table, TableRow, TableHeader, TableCell } from '@tiptap/extension-table';\nimport type { Extensions } from '@tiptap/core';\nimport {\n Bold,\n Italic,\n Underline as UnderlineIcon,\n Strikethrough,\n List,\n ListOrdered,\n Undo,\n Redo,\n Table as TableIcon,\n Rows2,\n Columns2,\n TableRowsSplit,\n TableColumnsSplit,\n Trash2,\n} from 'lucide-react';\nimport { useField } from '../../react/useField';\nimport { useForm } from '../../react/useForm';\nimport { useFormStore } from '../../react/FormProvider';\nimport { VoiceMicButton } from '../../react/VoiceMicButton';\nimport { Label } from '../shadcn/label';\nimport { Button } from '../shadcn/button';\nimport { Separator } from '../shadcn/separator';\nimport { cn } from '../../core/utils';\nimport type { Editor } from '@tiptap/core';\nimport type { RichTextFieldDef } from '../../core/types';\nimport {\n FieldRequiredIndicator,\n fieldControlClass,\n fieldErrorClass,\n fieldLabelClass,\n fieldWrapperClass,\n isLabelVisible,\n} from '../../react/fieldStyle';\n\nfunction isEmptyHtml(html: string): boolean {\n const t = html.trim();\n return (\n t === '' ||\n t === '<p></p>' ||\n t === '<p><br></p>' ||\n t === '<p><br class=\"ProseMirror-trailingBreak\"></p>'\n );\n}\n\nfunction buildRichTextExtensions(placeholder: string, tables: boolean): Extensions {\n const base: Extensions = [\n StarterKit.configure({\n // Disable headings entirely so the UI/content can't introduce H2/H3.\n heading: false,\n bulletList: {\n HTMLAttributes: {\n class: 'list-disc pl-6 my-2',\n },\n },\n orderedList: {\n HTMLAttributes: {\n class: 'list-decimal pl-6 my-2',\n },\n },\n listItem: {\n HTMLAttributes: {\n class: 'my-1',\n },\n },\n }),\n Underline,\n Placeholder.configure({\n placeholder,\n }),\n ];\n\n if (!tables) return base;\n\n return [\n ...base,\n Table.configure({\n resizable: true,\n /** Wider hit zone along column borders (default 5px). */\n handleWidth: 8,\n cellMinWidth: 50,\n }),\n TableRow,\n TableHeader,\n TableCell,\n ];\n}\n\nfunction RichTextToolbar({\n editor,\n disabled,\n tablesEnabled,\n}: {\n editor: Editor | null;\n disabled: boolean;\n tablesEnabled: boolean;\n}) {\n const [, rerender] = useReducer((n: number) => n + 1, 0);\n\n useEffect(() => {\n if (!editor) return;\n const handler = () => rerender();\n editor.on('selectionUpdate', handler);\n editor.on('transaction', handler);\n return () => {\n editor.off('selectionUpdate', handler);\n editor.off('transaction', handler);\n };\n }, [editor]);\n\n if (!editor) {\n return (\n <div className=\"flex flex-wrap gap-1 border-b border-input bg-muted/30 px-2 py-1.5 min-h-[42px]\" />\n );\n }\n\n const fmtBtn = (active: boolean, onClick: () => void, icon: React.ReactNode, title: string) => (\n <Button\n type=\"button\"\n variant={active ? 'secondary' : 'outline'}\n size=\"icon\"\n className=\"h-8 w-8 shrink-0\"\n disabled={disabled}\n title={title}\n onClick={() => {\n if (!disabled) onClick();\n }}\n >\n {icon}\n </Button>\n );\n\n const inTable = tablesEnabled && editor.isActive('table');\n\n return (\n <div\n className=\"flex flex-wrap items-center gap-1 border-b border-input bg-muted/30 px-2 py-1.5\"\n role=\"toolbar\"\n aria-label=\"Rich text formatting\"\n >\n {fmtBtn(\n editor.isActive('bold'),\n () => editor.chain().focus().toggleBold().run(),\n <Bold className=\"h-4 w-4\" />,\n 'Bold',\n )}\n {fmtBtn(\n editor.isActive('italic'),\n () => editor.chain().focus().toggleItalic().run(),\n <Italic className=\"h-4 w-4\" />,\n 'Italic',\n )}\n {fmtBtn(\n editor.isActive('underline'),\n () => editor.chain().focus().toggleUnderline().run(),\n <UnderlineIcon className=\"h-4 w-4\" />,\n 'Underline',\n )}\n {fmtBtn(\n editor.isActive('strike'),\n () => editor.chain().focus().toggleStrike().run(),\n <Strikethrough className=\"h-4 w-4\" />,\n 'Strikethrough',\n )}\n\n <Separator orientation=\"vertical\" className=\"mx-0.5 h-6\" />\n\n {fmtBtn(\n editor.isActive('bulletList'),\n () => editor.chain().focus().toggleBulletList().run(),\n <List className=\"h-4 w-4\" />,\n 'Bullet list',\n )}\n {fmtBtn(\n editor.isActive('orderedList'),\n () => editor.chain().focus().toggleOrderedList().run(),\n <ListOrdered className=\"h-4 w-4\" />,\n 'Numbered list',\n )}\n\n {tablesEnabled && (\n <>\n <Separator orientation=\"vertical\" className=\"mx-0.5 h-6\" />\n {!inTable ? (\n fmtBtn(\n false,\n () =>\n editor\n .chain()\n .focus()\n .insertTable({ rows: 3, cols: 3, withHeaderRow: true })\n .run(),\n <TableIcon className=\"h-4 w-4\" />,\n 'Insert table',\n )\n ) : (\n <>\n {fmtBtn(\n false,\n () => editor.chain().focus().addRowAfter().run(),\n <Rows2 className=\"h-4 w-4\" />,\n 'Add row below',\n )}\n {fmtBtn(\n false,\n () => editor.chain().focus().addColumnAfter().run(),\n <Columns2 className=\"h-4 w-4\" />,\n 'Add column right',\n )}\n {fmtBtn(\n false,\n () => editor.chain().focus().deleteRow().run(),\n <TableRowsSplit className=\"h-4 w-4\" />,\n 'Delete row',\n )}\n {fmtBtn(\n false,\n () => editor.chain().focus().deleteColumn().run(),\n <TableColumnsSplit className=\"h-4 w-4\" />,\n 'Delete column',\n )}\n {fmtBtn(\n false,\n () => editor.chain().focus().deleteTable().run(),\n <Trash2 className=\"h-4 w-4\" />,\n 'Delete table',\n )}\n </>\n )}\n </>\n )}\n\n <Separator orientation=\"vertical\" className=\"mx-0.5 h-6\" />\n\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"icon\"\n className=\"h-8 w-8 shrink-0\"\n disabled={disabled || !editor.can().undo()}\n title=\"Undo\"\n onClick={() => editor.chain().focus().undo().run()}\n >\n <Undo className=\"h-4 w-4\" />\n </Button>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"icon\"\n className=\"h-8 w-8 shrink-0\"\n disabled={disabled || !editor.can().redo()}\n title=\"Redo\"\n onClick={() => editor.chain().focus().redo().run()}\n >\n <Redo className=\"h-4 w-4\" />\n </Button>\n </div>\n );\n}\n\nexport const RichTextWidget: React.FC<{ fieldId: string }> = ({ fieldId }) => {\n const { fieldDef, value, setValue, setTouched, error, disabled, touched } = useField(fieldId);\n const { state } = useForm();\n const store = useFormStore();\n const hasVoice = !!(fieldDef?.voice && store.getVoice());\n const showError = !!error && (touched || state.submitAttempted);\n\n const def = fieldDef as RichTextFieldDef | undefined;\n const placeholder = def?.placeholder ?? 'Start typing…';\n const minHeight = def?.minHeight ?? 160;\n const tablesEnabled = !!def?.tables;\n\n const extensions = useMemo(\n () => buildRichTextExtensions(placeholder, tablesEnabled),\n [placeholder, tablesEnabled],\n );\n\n const stringValue = typeof value === 'string' ? value : '';\n\n const editor = useEditor(\n {\n extensions,\n content: stringValue || '',\n editable: !disabled,\n immediatelyRender: false,\n onUpdate: ({ editor: ed }) => {\n const html = ed.getHTML();\n setValue(isEmptyHtml(html) ? '' : html);\n },\n onBlur: () => setTouched(),\n editorProps: {\n attributes: {\n id: fieldId,\n class: 'tiptap focus:outline-none',\n style: `min-height: ${minHeight}px`,\n },\n },\n },\n [extensions, fieldId],\n );\n\n useEffect(() => {\n if (!editor || editor.isDestroyed) return;\n editor.setEditable(!disabled);\n }, [editor, disabled]);\n\n useEffect(() => {\n if (!editor || editor.isDestroyed) return;\n const el = editor.view.dom as HTMLElement;\n el.style.minHeight = `${minHeight}px`;\n }, [editor, minHeight]);\n\n // Listen for a custom 'insertTranscript' event dispatched by external hooks\n // (e.g. voice recording) so the widget controls its own insertion logic.\n useEffect(() => {\n if (!editor || editor.isDestroyed) return;\n const el = editor.view.dom as HTMLElement;\n const handler = (e: Event) => {\n const { text } = (e as CustomEvent<{ text: string }>).detail;\n if (!text) return;\n const currentText = editor.getText();\n const prefix = currentText.length > 0 && !/\\s$/.test(currentText) ? ' ' : '';\n editor.chain().focus().insertContent(prefix + text).run();\n };\n el.addEventListener('insertTranscript', handler);\n return () => el.removeEventListener('insertTranscript', handler);\n }, [editor]);\n\n useEffect(() => {\n if (!editor || editor.isDestroyed) return;\n const fromForm = stringValue;\n const fromEditor = editor.getHTML();\n if (isEmptyHtml(fromForm) && isEmptyHtml(fromEditor)) return;\n if (fromForm && fromForm !== fromEditor) {\n editor.commands.setContent(fromForm, { emitUpdate: false });\n }\n if (!fromForm && !isEmptyHtml(fromEditor)) {\n editor.commands.setContent('', { emitUpdate: false });\n }\n }, [stringValue, editor]);\n\n if (!fieldDef) return null;\n\n const showLabel = isLabelVisible(fieldDef);\n\n const labelContent = (\n <>\n {fieldDef.label}{' '}\n <FieldRequiredIndicator fieldDef={fieldDef} />\n </>\n );\n\n const labelEl = (\n <Label htmlFor={fieldId} className={fieldLabelClass(fieldDef)}>\n {labelContent}\n </Label>\n );\n\n return (\n <div className={fieldWrapperClass(fieldDef, 'space-y-2')}>\n {hasVoice ? (\n <div className=\"flex items-center justify-between\">\n {showLabel ? labelEl : null}\n <VoiceMicButton fieldId={fieldId} onTranscriptReady={setValue} />\n </div>\n ) : showLabel ? (\n labelEl\n ) : null}\n <div\n className={fieldControlClass(\n fieldDef,\n cn(\n 'rounded-md border border-input bg-background text-sm ring-offset-background overflow-hidden',\n showError && 'border-red-500',\n disabled && 'opacity-60',\n ),\n )}\n >\n <RichTextToolbar\n editor={editor}\n disabled={disabled}\n tablesEnabled={tablesEnabled}\n />\n <div\n className={cn(\n 'px-3 py-2',\n '[&_.ProseMirror]:outline-none',\n '[&_.ProseMirror_ul]:list-disc [&_.ProseMirror_ul]:pl-6 [&_.ProseMirror_ul]:my-2',\n '[&_.ProseMirror_ol]:list-decimal [&_.ProseMirror_ol]:pl-6 [&_.ProseMirror_ol]:my-2',\n '[&_.ProseMirror_li]:list-item',\n '[&_.ProseMirror_blockquote]:border-l-4 [&_.ProseMirror_blockquote]:border-muted-foreground/40 [&_.ProseMirror_blockquote]:pl-3 [&_.ProseMirror_blockquote]:italic [&_.ProseMirror_blockquote]:my-2',\n '[&_.ProseMirror_p.is-editor-empty:first-child::before]:text-muted-foreground',\n '[&_.ProseMirror_p.is-editor-empty:first-child::before]:content-[attr(data-placeholder)]',\n '[&_.ProseMirror_p.is-editor-empty:first-child::before]:float-left',\n '[&_.ProseMirror_p.is-editor-empty:first-child::before]:pointer-events-none',\n '[&_.ProseMirror_p.is-editor-empty:first-child::before]:h-0',\n )}\n >\n <EditorContent editor={editor} />\n </div>\n </div>\n {showError && (\n <p className={fieldErrorClass(fieldDef, 'text-xs text-red-500')}>{error}</p>\n )}\n </div>\n );\n};\n\n// Re-exported from a lightweight module so read-only consumers can use it\n// without pulling in the TipTap/ProseMirror editor.\nexport { richTextHtmlClassName } from './richTextClassName';\n"]}
@@ -58,6 +58,18 @@ function mapToMedication(result) {
58
58
  notes: ""
59
59
  };
60
60
  }
61
+ var DURATION_UNITS = /* @__PURE__ */ new Set(["days", "weeks", "months"]);
62
+ function mapPackageDrugToMedication(drug) {
63
+ const base = mapToMedication(drug);
64
+ const duration_unit = drug.duration_unit && DURATION_UNITS.has(drug.duration_unit) ? drug.duration_unit : base.duration_unit;
65
+ return {
66
+ ...base,
67
+ duration_value: drug.duration_value ?? base.duration_value,
68
+ duration_unit,
69
+ route: drug.route ?? base.route,
70
+ notes: drug.notes ?? base.notes
71
+ };
72
+ }
61
73
  function mapAIMedicationToMedication(ai) {
62
74
  const id = ai.id != null ? String(ai.id) : "";
63
75
  return {
@@ -336,7 +348,8 @@ var AddMedicationField = ({
336
348
  onSearch,
337
349
  recentlyUsed = [],
338
350
  frequentItems = [],
339
- suggestedMedications = []
351
+ suggestedMedications = [],
352
+ packages = []
340
353
  }) => {
341
354
  const [open, setOpen] = react.useState(false);
342
355
  const [query, setQuery] = react.useState("");
@@ -347,6 +360,8 @@ var AddMedicationField = ({
347
360
  const customIdRef = react.useRef(-1);
348
361
  const valueRef = react.useRef([]);
349
362
  const searchInputRef = react.useRef(null);
363
+ const addedByPackage = react.useRef(/* @__PURE__ */ new Map());
364
+ const [selectedPackageIds, setSelectedPackageIds] = react.useState(/* @__PURE__ */ new Set());
350
365
  const safeValue = Array.isArray(value) ? value : [];
351
366
  valueRef.current = safeValue;
352
367
  const addedIds = new Set(safeValue.map((m) => String(m.id)));
@@ -388,6 +403,27 @@ var AddMedicationField = ({
388
403
  onChange([...safeValue, mapFrequentItemToMedication(item)]);
389
404
  }
390
405
  }
406
+ function handlePackageToggle(pkg) {
407
+ const alreadyAdded = addedByPackage.current.has(pkg.id);
408
+ if (alreadyAdded) {
409
+ const idsToRemove = new Set(addedByPackage.current.get(pkg.id) ?? []);
410
+ onChange(valueRef.current.filter((m) => !idsToRemove.has(String(m.id))));
411
+ addedByPackage.current.delete(pkg.id);
412
+ setSelectedPackageIds((prev) => {
413
+ const next = new Set(prev);
414
+ next.delete(pkg.id);
415
+ return next;
416
+ });
417
+ } else {
418
+ const currentIds = new Set(valueRef.current.map((m) => String(m.id)));
419
+ const newMeds = pkg.medications.filter((d) => !currentIds.has(String(d.id))).map((d) => mapPackageDrugToMedication(d));
420
+ if (newMeds.length > 0) {
421
+ onChange([...valueRef.current, ...newMeds]);
422
+ }
423
+ addedByPackage.current.set(pkg.id, newMeds.map((m) => String(m.id)));
424
+ setSelectedPackageIds((prev) => new Set(prev).add(pkg.id));
425
+ }
426
+ }
391
427
  function handleResultClick(result) {
392
428
  if (addedIds.has(String(result.id))) return;
393
429
  setAddingResultId(result.id);
@@ -458,6 +494,38 @@ var AddMedicationField = ({
458
494
  item.id
459
495
  );
460
496
  }) : [];
497
+ const packageChips = packages.map((pkg) => {
498
+ const isAdded = selectedPackageIds.has(pkg.id);
499
+ return /* @__PURE__ */ jsxRuntime.jsxs(
500
+ "button",
501
+ {
502
+ type: "button",
503
+ onClick: () => handlePackageToggle(pkg),
504
+ className: chunkFHHISVCH_cjs.cn(
505
+ "rounded-full border text-xs px-4 py-1.5 transition-colors flex items-center gap-2 cursor-pointer",
506
+ isAdded ? "border-green-300 bg-green-50 text-green-700" : "border-border bg-white hover:bg-gray-50"
507
+ ),
508
+ children: [
509
+ isAdded && /* @__PURE__ */ jsxRuntime.jsx("span", { children: "\u2713" }),
510
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold", children: pkg.name }),
511
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkFHHISVCH_cjs.cn(
512
+ "rounded-full px-1.5 py-0.5 text-[10px] font-medium",
513
+ isAdded ? "bg-green-100 text-green-600" : "bg-purple-100 text-purple-600"
514
+ ), children: pkg.medications.length })
515
+ ]
516
+ },
517
+ pkg.id
518
+ );
519
+ });
520
+ const chipSections = [];
521
+ if (frequentItemChips.length > 0) {
522
+ chipSections.push({ label: "Frequently used", content: /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: frequentItemChips }) });
523
+ } else if (recentlyUsedChips.length > 0) {
524
+ chipSections.push({ label: "Recently Used", content: /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: recentlyUsedChips }) });
525
+ }
526
+ if (packageChips.length > 0) {
527
+ chipSections.push({ label: "Packages", content: /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: packageChips }) });
528
+ }
461
529
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-md overflow-hidden flex flex-col border bg-white border-[#D0D0D0] space-y-3 p-3 h-fit", children: [
462
530
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
463
531
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-semibold", children: label }),
@@ -486,8 +554,7 @@ var AddMedicationField = ({
486
554
  open,
487
555
  onClose: () => setOpen(false),
488
556
  title: "Add Medication",
489
- recentlyUsedSlot: frequentItemChips.length > 0 ? frequentItemChips : recentlyUsedChips.length > 0 ? recentlyUsedChips : void 0,
490
- chipSectionLabel: frequentItemChips.length > 0 ? "Frequently used" : void 0,
557
+ chipSections: chipSections.length > 0 ? chipSections : void 0,
491
558
  actionSlot: /* @__PURE__ */ jsxRuntime.jsx(
492
559
  "button",
493
560
  {
@@ -547,5 +614,5 @@ var AddMedicationField = ({
547
614
  exports.AISuggestionsProvider = AISuggestionsProvider;
548
615
  exports.AddMedicationField = AddMedicationField;
549
616
  exports.useAISuggestions = useAISuggestions;
550
- //# sourceMappingURL=chunk-AIZ3XYEZ.cjs.map
551
- //# sourceMappingURL=chunk-AIZ3XYEZ.cjs.map
617
+ //# sourceMappingURL=chunk-JKHJPXAI.cjs.map
618
+ //# sourceMappingURL=chunk-JKHJPXAI.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/react/AISuggestionsContext.tsx","../src/ui/widgets/AddMedicationField.tsx"],"names":["createContext","useContext","jsxs","jsx","ChevronUp","ChevronDown","useState","Trash2","cn","ChevronRight","Check","useRef","useEffect","Fragment","AddEntityDialog","Input","Plus"],"mappings":";;;;;;;;;AAgBA,IAAM,oBAAA,GAAuBA,mBAAA,CAA6B,EAAE,CAAA;AAErD,SAAS,gBAAA,GAAkC;AAChD,EAAA,OAAOC,iBAAW,oBAAoB,CAAA;AACxC;AAEO,IAAM,wBAAwB,oBAAA,CAAqB;ACZ1D,IAAM,oBAAA,GAAuB;AAAA,EAC3B,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,EAAA,EAAG;AAAA,EAC5B,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,YAAA,EAAa;AAAA,EAC3C,EAAE,KAAA,EAAO,aAAA,EAAe,KAAA,EAAO,aAAA,EAAc;AAAA,EAC7C,EAAE,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,WAAA,EAAY;AAAA,EACzC,EAAE,KAAA,EAAO,aAAA,EAAe,KAAA,EAAO,aAAA,EAAc;AAAA,EAC7C,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,UAAA,EAAW;AAAA,EACvC,EAAE,KAAA,EAAO,eAAA,EAAiB,KAAA,EAAO,eAAA,EAAgB;AAAA,EACjD,EAAE,KAAA,EAAO,mBAAA,EAAqB,KAAA,EAAO,mBAAA,EAAoB;AAAA,EACzD,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAO;AAAA,EAC/B,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,YAAA;AAChC,CAAA;AAIA,IAAM,8BAAA,GAAoE;AAAA,EACxE,EAAA,EAAI,YAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAWA,IAAM,aAAA,GAAgB;AAAA,EACpB,EAAE,KAAA,EAAO,cAAA,EAAgB,KAAA,EAAO,EAAA,EAAG;AAAA,EACnC,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,QAAA,EAAS;AAAA,EACnC,EAAE,KAAA,EAAO,aAAA,EAAe,KAAA,EAAO,aAAA,EAAc;AAAA,EAC7C,EAAE,KAAA,EAAO,eAAA,EAAiB,KAAA,EAAO,eAAA,EAAgB;AAAA,EACjD,EAAE,KAAA,EAAO,cAAA,EAAgB,KAAA,EAAO,cAAA,EAAe;AAAA,EAC/C,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,YAAA,EAAa;AAAA,EAC3C,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,YAAA,EAAa;AAAA,EAC3C,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,EACrC,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,YAAA,EAAa;AAAA,EAC3C,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,YAAA,EAAa;AAAA,EAC3C,EAAE,KAAA,EAAO,gBAAA,EAAkB,KAAA,EAAO,gBAAA;AACpC,CAAA;AAiCA,SAAS,gBAAgB,MAAA,EAA4C;AACnE,EAAA,OAAO;AAAA,IACL,IAAI,MAAA,CAAO,EAAA;AAAA,IACX,YAAY,MAAA,CAAO,IAAA;AAAA,IACnB,YAAA,EAAc,OAAO,YAAA,IAAgB,EAAA;AAAA,IACrC,SAAA,EAAW,QAAA;AAAA,IACX,SAAA,EAAW,KAAA;AAAA,IACX,cAAA,EAAgB,GAAA;AAAA,IAChB,aAAA,EAAe,MAAA;AAAA,IACf,YAAA,EAAc,YAAA;AAAA,IACd,KAAA,EAAO,EAAA;AAAA,IACP,OAAA,EAAS,GAAA;AAAA,IACT,SAAA,EAAW,GAAA;AAAA,IACX,KAAA,EAAO,GAAA;AAAA,IACP,KAAA,EAAO;AAAA,GACT;AACF;AAEA,IAAM,iCAAiB,IAAI,GAAA,CAAiC,CAAC,MAAA,EAAQ,OAAA,EAAS,QAAQ,CAAC,CAAA;AAEvF,SAAS,2BAA2B,IAAA,EAAyC;AAC3E,EAAA,MAAM,IAAA,GAAO,gBAAgB,IAAI,CAAA;AACjC,EAAA,MAAM,aAAA,GACJ,IAAA,CAAK,aAAA,IAAiB,cAAA,CAAe,GAAA,CAAI,KAAK,aAA4C,CAAA,GACrF,IAAA,CAAK,aAAA,GACN,IAAA,CAAK,aAAA;AACX,EAAA,OAAO;AAAA,IACL,GAAG,IAAA;AAAA,IACH,cAAA,EAAgB,IAAA,CAAK,cAAA,IAAkB,IAAA,CAAK,cAAA;AAAA,IAC5C,aAAA;AAAA,IACA,KAAA,EAAO,IAAA,CAAK,KAAA,IAAS,IAAA,CAAK,KAAA;AAAA,IAC1B,KAAA,EAAO,IAAA,CAAK,KAAA,IAAS,IAAA,CAAK;AAAA,GAC5B;AACF;AAEA,SAAS,4BAA4B,EAAA,EAA8B;AACjE,EAAA,MAAM,KAAK,EAAA,CAAG,EAAA,IAAM,OAAO,MAAA,CAAO,EAAA,CAAG,EAAE,CAAA,GAAI,EAAA;AAC3C,EAAA,OAAO;AAAA,IACL,EAAA;AAAA,IACA,UAAA,EAAY,GAAG,UAAA,IAAc,EAAA;AAAA,IAC7B,YAAA,EAAc,GAAG,YAAA,IAAgB,EAAA;AAAA,IACjC,SAAA,EAAW,QAAA;AAAA,IACX,SAAA,EAAW,KAAA;AAAA,IACX,cAAA,EAAgB,GAAA;AAAA,IAChB,aAAA,EAAe,MAAA;AAAA,IACf,YAAA,EAAc,YAAA;AAAA,IACd,KAAA,EAAO,EAAA;AAAA,IACP,OAAA,EAAS,GAAA;AAAA,IACT,SAAA,EAAW,GAAA;AAAA,IACX,KAAA,EAAO,GAAA;AAAA,IACP,KAAA,EAAO,GAAG,MAAA,IAAU;AAAA,GACtB;AACF;AAEA,SAAS,sBAAA,CAAuB,MAAc,QAAA,EAA8B;AAC1E,EAAA,OAAO;AAAA,IACL,EAAA,EAAI,OAAO,QAAQ,CAAA;AAAA,IACnB,UAAA,EAAY,KAAK,IAAA,EAAK;AAAA,IACtB,YAAA,EAAc,EAAA;AAAA,IACd,SAAA,EAAW,QAAA;AAAA,IACX,SAAA,EAAW,KAAA;AAAA,IACX,cAAA,EAAgB,GAAA;AAAA,IAChB,aAAA,EAAe,MAAA;AAAA,IACf,YAAA,EAAc,YAAA;AAAA,IACd,KAAA,EAAO,EAAA;AAAA,IACP,OAAA,EAAS,GAAA;AAAA,IACT,SAAA,EAAW,GAAA;AAAA,IACX,KAAA,EAAO,GAAA;AAAA,IACP,KAAA,EAAO;AAAA,GACT;AACF;AAGA,SAAS,cAAc,QAAA,EAAyE;AAC9F,EAAA,IAAI,CAAC,QAAA,IAAY,CAAC,QAAA,CAAS,IAAA,EAAK,EAAG,OAAO,EAAE,KAAA,EAAO,GAAA,EAAK,IAAA,EAAM,MAAA,EAAO;AACrE,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,IAAA,EAAK,CAAE,WAAA,EAAY;AAC1C,EAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,KAAA,CAAM,+CAA+C,CAAA;AACzE,EAAA,IAAI,CAAC,KAAA,EAAO,OAAO,EAAE,KAAA,EAAO,GAAA,EAAK,MAAM,MAAA,EAAO;AAC9C,EAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,CAAC,CAAA,IAAK,GAAA;AAC1B,EAAA,MAAM,QAAA,GAAW,KAAA,CAAM,CAAC,CAAA,IAAK,MAAA;AAC7B,EAAA,MAAM,IAAA,GACJ,QAAA,CAAS,UAAA,CAAW,OAAO,CAAA,GAAI,WAAW,QAAA,CAAS,UAAA,CAAW,MAAM,CAAA,GAAI,OAAA,GAAU,MAAA;AACpF,EAAA,OAAO,EAAE,OAAO,IAAA,EAAK;AACvB;AAEA,SAAS,4BAA4B,IAAA,EAA0C;AAC7E,EAAA,MAAM,MAAA,GAAS,aAAA,CAAc,IAAA,CAAK,QAAQ,CAAA;AAC1C,EAAA,MAAM,cAAA,GAAiB,IAAA,CAAK,cAAA,IAAkB,MAAA,CAAO,KAAA;AACrD,EAAA,MAAM,aAAA,GACH,IAAA,CAAK,aAAA,IAA6D,MAAA,CAAO,IAAA;AAE5E,EAAA,MAAM,YAAA,GAA2C,oBAAA,CAAqB,IAAA,CAAK,YAAY,CAAA;AAEvF,EAAA,MAAM,YAAY,IAAA,CAAK,KAAA,GAAQ,CAAA,OAAA,EAAU,IAAA,CAAK,KAAK,CAAA,CAAA,GAAK,EAAA;AACxD,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,KAAA,EAAO,IAAA,EAAK,IAAK,EAAA;AACxC,EAAA,MAAM,aAAA,GACJ,CAAC,SAAA,EAAW,SAAA,CAAU,MAAM,CAAA,CAAE,MAAA,CAAO,CAAC,SAAS,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA,CAAE,KAAK,UAAK,CAAA;AAE5E,EAAA,OAAO;AAAA,IACL,IAAI,IAAA,CAAK,EAAA;AAAA,IACT,UAAA,EAAY,IAAA,CAAK,UAAA,IAAc,IAAA,CAAK,IAAA;AAAA,IACpC,YAAA,EAAc,KAAK,UAAA,IAAc,EAAA;AAAA,IACjC,SAAA,EAAW,KAAK,SAAA,IAAa,QAAA;AAAA,IAC7B,SAAA,EAAW,KAAA;AAAA,IACX,cAAA;AAAA,IACA,aAAA;AAAA,IACA,YAAA;AAAA,IACA,KAAA,EAAO,KAAK,KAAA,IAAS,EAAA;AAAA,IACrB,OAAA,EAAS,KAAK,OAAA,IAAW,GAAA;AAAA,IACzB,SAAA,EAAW,KAAK,SAAA,IAAa,GAAA;AAAA,IAC7B,KAAA,EAAO,KAAK,KAAA,IAAS,GAAA;AAAA,IACrB,KAAA,EAAO;AAAA,GACT;AACF;AAEA,SAAS,qBAAqB,KAAA,EAAmC;AAC/D,EAAA,IAAI,KAAA,IAAS,MAAM,OAAO,YAAA;AAC1B,EAAA,MAAM,MAAA,GAAS,+BAA+B,KAAK,CAAA;AACnD,EAAA,IAAI,QAAQ,OAAO,MAAA;AACnB,EAAA,MAAM,cAAc,oBAAA,CAAqB,GAAA,CAAI,CAAC,MAAA,KAAW,OAAO,KAAK,CAAA;AACrE,EAAA,OAAO,WAAA,CAAY,QAAA,CAAS,KAA0B,CAAA,GAAK,KAAA,GAA8B,YAAA;AAC3F;AAEA,SAAS,OAAA,CAAQ;AAAA,EACf,KAAA;AAAA,EACA;AACF,CAAA,EAGG;AACD,EAAA,MAAM,GAAA,GAAM,QAAA,CAAS,KAAA,EAAO,EAAE,CAAA,IAAK,CAAA;AACnC,EAAA,uBACEC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BAAA,EACb,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,SAAA,EAAU,4DAAA;AAAA,QACV,SAAS,MAAM,QAAA,CAAS,MAAA,CAAO,GAAA,GAAM,CAAC,CAAC,CAAA;AAAA,QAEvC,QAAA,kBAAAA,cAAA,CAACC,qBAAA,EAAA,EAAU,SAAA,EAAU,SAAA,EAAU;AAAA;AAAA,KACjC;AAAA,oBACAD,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sCAAA,EAAwC,QAAA,EAAA,GAAA,EAAI,CAAA;AAAA,oBAC5DA,cAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,SAAA,EAAU,4DAAA;AAAA,QACV,OAAA,EAAS,MAAM,QAAA,CAAS,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA,EAAG,GAAA,GAAM,CAAC,CAAC,CAAC,CAAA;AAAA,QAEpD,QAAA,kBAAAA,cAAA,CAACE,uBAAA,EAAA,EAAY,SAAA,EAAU,SAAA,EAAU;AAAA;AAAA;AACnC,GAAA,EACF,CAAA;AAEJ;AAIA,SAAS,cAAA,CAAe;AAAA,EACtB,GAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAIG;AACD,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIC,eAAS,KAAK,CAAA;AAEhD,EAAA,SAAS,GAAA,CAAgC,KAAQ,GAAA,EAAoB;AACnE,IAAA,QAAA,CAAS,EAAE,GAAG,GAAA,EAAK,CAAC,GAAG,GAAG,KAAK,CAAA;AAAA,EACjC;AAEA,EAAA,uBACEJ,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qCAAA,EAEb,QAAA,EAAA;AAAA,oBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,mCAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,+CAAA,EAAiD,QAAA,EAAA,GAAA,CAAI,UAAA,EAAW,CAAA;AAAA,sBAChFD,eAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,kEAAA;AAAA,UACV,OAAO,GAAA,CAAI,SAAA;AAAA,UACX,UAAU,CAAC,CAAA,KAAM,IAAI,WAAA,EAAa,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,UAEhD,QAAA,EAAA;AAAA,4BAAAC,cAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,QAAA,EAAS,QAAA,EAAA,kBAAA,EAAgB,CAAA;AAAA,4BACvCA,cAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,KAAA,EAAM,QAAA,EAAA,qBAAA,EAAmB,CAAA;AAAA,4BACvCA,cAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,eAAA,EAAgB,QAAA,EAAA,eAAA,EAAa,CAAA;AAAA,4BAC3CA,cAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,aAAA,EAAc,QAAA,EAAA,aAAA,EAAW,CAAA;AAAA,4BACvCA,cAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,cAAA,EAAe,QAAA,EAAA,cAAA,EAAY,CAAA;AAAA,4BACzCA,cAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,WAAA,EAAY,QAAA,EAAA,WAAA,EAAS,CAAA;AAAA,4BACnCA,cAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,YAAA,EAAa,QAAA,EAAA,YAAA,EAAU,CAAA;AAAA,4BACrCA,cAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,aAAA,EAAc,QAAA,EAAA,aAAA,EAAW,CAAA;AAAA,4BACvCA,cAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,KAAA,EAAM,QAAA,EAAA,UAAA,EAAQ,CAAA;AAAA,4BAC5BA,cAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,UAAA,EAAW,QAAA,EAAA,UAAA,EAAQ,CAAA;AAAA,4BACjCA,cAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,MAAA,EAAO,QAAA,EAAA,MAAA,EAAI;AAAA;AAAA;AAAA,OAC3B;AAAA,sBACAA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kCAAA,EACX,QAAA,EAAA,CAAC,SAAA,EAAW,WAAA,EAAa,OAAO,CAAA,CAAY,GAAA,CAAI,CAAC,IAAA,qBACjDA,cAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UAEC,SAAA,EAAU,yEAAA;AAAA,UAET,QAAA,EAAA,IAAA,KAAS,WAAA,GAAc,WAAA,GAAc,IAAA,KAAS,YAAY,SAAA,GAAY;AAAA,SAAA;AAAA,QAHlE;AAAA,OAKR,CAAA,EACH,CAAA;AAAA,sBACAA,cAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,OAAA,EAAS,QAAA;AAAA,UACT,SAAA,EAAU,6DAAA;AAAA,UAEV,QAAA,kBAAAA,cAAA,CAACI,kBAAA,EAAA,EAAO,SAAA,EAAU,SAAA,EAAU;AAAA;AAAA;AAC9B,KAAA,EACF,CAAA;AAAA,oBAGAL,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EACb,QAAA,EAAA;AAAA,sBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,kCAAA,EACb,QAAA,EAAA;AAAA,wBAAAC,cAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,MAAA;AAAA,YACL,SAAA,EAAU,SAAA;AAAA,YACV,OAAA,EAAQ,QAAA;AAAA,YACR,SAAA,EAAU,8DAAA;AAAA,YACV,OAAO,GAAA,CAAI,cAAA;AAAA,YACX,QAAA,EAAU,CAAC,CAAA,KAAM;AACf,cAAA,MAAM,IAAI,CAAA,CAAE,MAAA,CAAO,KAAA,CAAM,OAAA,CAAQ,OAAO,EAAE,CAAA;AAC1C,cAAA,GAAA,CAAI,gBAAA,EAAkB,CAAA,KAAM,EAAA,GAAK,EAAA,GAAK,CAAC,CAAA;AAAA,YACzC;AAAA;AAAA,SACF;AAAA,wBACAD,eAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,yDAAA;AAAA,YACV,OAAO,GAAA,CAAI,aAAA;AAAA,YACX,UAAU,CAAC,CAAA,KAAM,IAAI,eAAA,EAAiB,CAAA,CAAE,OAAO,KAAoC,CAAA;AAAA,YAEnF,QAAA,EAAA;AAAA,8BAAAC,cAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,MAAA,EAAO,QAAA,EAAA,MAAA,EAAI,CAAA;AAAA,8BACzBA,cAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,OAAA,EAAQ,QAAA,EAAA,OAAA,EAAK,CAAA;AAAA,8BAC3BA,cAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,QAAA,EAAS,QAAA,EAAA,QAAA,EAAM;AAAA;AAAA;AAAA;AAC/B,OAAA,EACF,CAAA;AAAA,sBACAA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oDAAA,EACX,WAAC,SAAA,EAAW,WAAA,EAAa,OAAO,CAAA,CAAY,GAAA,CAAI,CAAC,IAAA,qBACjDA,cAAA,CAAC,SAAe,SAAA,EAAU,oCAAA,EACxB,QAAA,kBAAAA,cAAA,CAAC,OAAA,EAAA,EAAQ,KAAA,EAAO,GAAA,CAAI,IAAI,CAAA,EAAG,UAAU,CAAC,CAAA,KAAM,GAAA,CAAI,IAAA,EAAM,CAAC,CAAA,EAAG,CAAA,EAAA,EADlD,IAEV,CACD,CAAA,EACH,CAAA;AAAA,sBACAA,cAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,kEAAA;AAAA,UACV,KAAA,EAAO,oBAAA,CAAqB,GAAA,CAAI,YAAY,CAAA;AAAA,UAC5C,UAAU,CAAC,CAAA,KAAM,IAAI,cAAA,EAAgB,CAAA,CAAE,OAAO,KAAmC,CAAA;AAAA,UAEhF,QAAA,EAAA,oBAAA,CAAqB,GAAA,CAAI,CAAC,MAAA,qBACzBA,cAAA,CAAC,QAAA,EAAA,EAA0B,KAAA,EAAO,MAAA,CAAO,KAAA,EACtC,QAAA,EAAA,MAAA,CAAO,KAAA,EAAA,EADG,MAAA,CAAO,KAEpB,CACD;AAAA;AAAA,OACH;AAAA,sBACAA,cAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,kEAAA;AAAA,UACV,KAAA,EAAO,IAAI,KAAA,IAAS,EAAA;AAAA,UACpB,UAAU,CAAC,CAAA,KAAM,IAAI,OAAA,EAAS,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,UAE3C,QAAA,EAAA,aAAA,CAAc,GAAA,CAAI,CAAC,MAAA,qBAClBA,cAAA,CAAC,QAAA,EAAA,EAA0B,KAAA,EAAO,MAAA,CAAO,KAAA,EACtC,QAAA,EAAA,MAAA,CAAO,KAAA,EAAA,EADG,MAAA,CAAO,KAEpB,CACD;AAAA;AAAA;AACH,KAAA,EACF,CAAA;AAAA,oBAGAD,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,QAAA,EAAU,CAAA;AAAA,QACV,SAAS,MAAM,YAAA,CAAa,CAAC,CAAA,KAAM,CAAC,CAAC,CAAA;AAAA,QACrC,SAAA,EAAW,CAAC,CAAA,KAAM;AAChB,UAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAA,CAAE,QAAQ,GAAA,EAAK;AACtC,YAAA,CAAA,CAAE,cAAA,EAAe;AACjB,YAAA,YAAA,CAAa,CAAC,CAAA,KAAM,CAAC,CAAC,CAAA;AAAA,UACxB;AAAA,QACF,CAAA;AAAA,QACA,SAAA,EAAWM,oBAAA;AAAA,UACT,8FAAA;AAAA,UACA;AAAA,SACF;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAAL,cAAA;AAAA,YAACM,wBAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAWD,oBAAA,CAAG,uCAAA,EAAyC,SAAA,IAAa,WAAW;AAAA;AAAA,WACjF;AAAA,0BACAL,cAAA,CAAC,UAAK,QAAA,EAAA,gBAAA,EAAc;AAAA;AAAA;AAAA,KACtB;AAAA,IACC,SAAA,oBACCA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAA,EACb,QAAA,kBAAAA,cAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,0FAAA;AAAA,QACV,IAAA,EAAM,CAAA;AAAA,QACN,WAAA,EAAY,cAAA;AAAA,QACZ,OAAO,GAAA,CAAI,KAAA;AAAA,QACX,UAAU,CAAC,CAAA,KAAM,IAAI,OAAA,EAAS,CAAA,CAAE,OAAO,KAAK;AAAA;AAAA,KAC9C,EACF;AAAA,GAAA,EAEJ,CAAA;AAEJ;AAIA,IAAM,eAAA,GAAkB,GAAA;AAExB,SAAS,gBAAA,CAAiB;AAAA,EACxB,MAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAIG;AACD,EAAA,uBACED,eAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,OAAA,EAAS,QAAA;AAAA,MACT,SAAA,EAAWM,oBAAA;AAAA,QACT,0IAAA;AAAA,QACA,WACI,2CAAA,GACA;AAAA,OACN;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAN,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,0BAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,8CAAA,EAAgD,QAAA,EAAA,MAAA,CAAO,IAAA,EAAK,CAAA;AAAA,UACxE,MAAA,CAAO,YAAA,oBACND,eAAA,CAAC,GAAA,EAAA,EAAE,WAAU,+CAAA,EAAgD,QAAA,EAAA;AAAA,YAAA,WAAA;AAAA,YACjD,MAAA,CAAO;AAAA,WAAA,EACnB;AAAA,SAAA,EAEJ,CAAA;AAAA,QACC,QAAA,oBAAYC,cAAA,CAACO,iBAAA,EAAA,EAAM,SAAA,EAAU,iCAAA,EAAkC;AAAA;AAAA;AAAA,GAClE;AAEJ;AAIO,IAAM,qBAAwD,CAAC;AAAA,EACpE,KAAA,GAAQ,aAAA;AAAA,EACR,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,eAAe,EAAC;AAAA,EAChB,gBAAgB,EAAC;AAAA,EACjB,uBAAuB,EAAC;AAAA,EACxB,WAAW;AACb,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIJ,eAAS,KAAK,CAAA;AACtC,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,eAAS,EAAE,CAAA;AACrC,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,cAAA,CAAmC,EAAE,CAAA;AACnE,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,eAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAIA,eAAwB,IAAI,CAAA;AACxE,EAAA,MAAM,WAAA,GAAcK,aAA6C,IAAI,CAAA;AACrE,EAAA,MAAM,WAAA,GAAcA,aAAO,EAAE,CAAA;AAC7B,EAAA,MAAM,QAAA,GAAWA,YAAA,CAAqB,EAAE,CAAA;AACxC,EAAA,MAAM,cAAA,GAAiBA,aAAyB,IAAI,CAAA;AAEpD,EAAA,MAAM,cAAA,GAAiBA,YAAA,iBAA8B,IAAI,GAAA,EAAK,CAAA;AAE9D,EAAA,MAAM,CAAC,kBAAA,EAAoB,qBAAqB,IAAIL,cAAA,iBAAsB,IAAI,KAAK,CAAA;AAEnF,EAAA,MAAM,YAAY,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,GAAI,QAAQ,EAAC;AAClD,EAAA,QAAA,CAAS,OAAA,GAAU,SAAA;AACnB,EAAA,MAAM,QAAA,GAAW,IAAI,GAAA,CAAI,SAAA,CAAU,GAAA,CAAI,CAAC,CAAA,KAAM,MAAA,CAAO,CAAA,CAAE,EAAE,CAAC,CAAC,CAAA;AAE3D,EAAAM,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA,QAAA,CAAS,EAAE,CAAA;AACX,MAAA,UAAA,CAAW,EAAE,CAAA;AACb,MAAA,iBAAA,CAAkB,IAAI,CAAA;AAAA,IACxB;AAAA,EACF,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,SAAS,kBAAkB,CAAA,EAAW;AACpC,IAAA,QAAA,CAAS,CAAC,CAAA;AACV,IAAA,IAAI,WAAA,CAAY,OAAA,EAAS,YAAA,CAAa,WAAA,CAAY,OAAO,CAAA;AACzD,IAAA,IAAI,CAAC,CAAA,CAAE,IAAA,EAAK,EAAG;AACb,MAAA,UAAA,CAAW,EAAE,CAAA;AACb,MAAA;AAAA,IACF;AACA,IAAA,WAAA,CAAY,OAAA,GAAU,WAAW,YAAY;AAC3C,MAAA,UAAA,CAAW,IAAI,CAAA;AACf,MAAA,IAAI;AACF,QAAA,MAAM,GAAA,GAAM,MAAM,QAAA,CAAS,CAAC,CAAA;AAC5B,QAAA,UAAA,CAAW,GAAG,CAAA;AAAA,MAChB,CAAA,SAAE;AACA,QAAA,UAAA,CAAW,KAAK,CAAA;AAAA,MAClB;AAAA,IACF,GAAG,GAAG,CAAA;AAAA,EACR;AAEA,EAAA,SAAS,yBAAyB,MAAA,EAAgC;AAChE,IAAA,IAAI,SAAS,GAAA,CAAI,MAAA,CAAO,MAAA,CAAO,EAAE,CAAC,CAAA,EAAG;AACnC,MAAA,QAAA,CAAS,SAAA,CAAU,MAAA,CAAO,CAAC,CAAA,KAAM,MAAA,CAAO,CAAA,CAAE,EAAE,CAAA,KAAM,MAAA,CAAO,MAAA,CAAO,EAAE,CAAC,CAAC,CAAA;AAAA,IACtE,CAAA,MAAO;AACL,MAAA,QAAA,CAAS,CAAC,GAAG,SAAA,EAAW,eAAA,CAAgB,MAAM,CAAC,CAAC,CAAA;AAAA,IAClD;AAAA,EACF;AAEA,EAAA,SAAS,yBAAyB,IAAA,EAA8B;AAC9D,IAAA,IAAI,SAAS,GAAA,CAAI,MAAA,CAAO,IAAA,CAAK,EAAE,CAAC,CAAA,EAAG;AACjC,MAAA,QAAA,CAAS,SAAA,CAAU,MAAA,CAAO,CAAC,CAAA,KAAM,MAAA,CAAO,CAAA,CAAE,EAAE,CAAA,KAAM,MAAA,CAAO,IAAA,CAAK,EAAE,CAAC,CAAC,CAAA;AAAA,IACpE,CAAA,MAAO;AACL,MAAA,QAAA,CAAS,CAAC,GAAG,SAAA,EAAW,2BAAA,CAA4B,IAAI,CAAC,CAAC,CAAA;AAAA,IAC5D;AAAA,EACF;AAEA,EAAA,SAAS,oBAAoB,GAAA,EAAwB;AACnD,IAAA,MAAM,YAAA,GAAe,cAAA,CAAe,OAAA,CAAQ,GAAA,CAAI,IAAI,EAAE,CAAA;AACtD,IAAA,IAAI,YAAA,EAAc;AAChB,MAAA,MAAM,WAAA,GAAc,IAAI,GAAA,CAAI,cAAA,CAAe,OAAA,CAAQ,IAAI,GAAA,CAAI,EAAE,CAAA,IAAK,EAAE,CAAA;AACpE,MAAA,QAAA,CAAS,QAAA,CAAS,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,WAAA,CAAY,GAAA,CAAI,MAAA,CAAO,CAAA,CAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AACvE,MAAA,cAAA,CAAe,OAAA,CAAQ,MAAA,CAAO,GAAA,CAAI,EAAE,CAAA;AACpC,MAAA,qBAAA,CAAsB,CAAC,IAAA,KAAS;AAC9B,QAAA,MAAM,IAAA,GAAO,IAAI,GAAA,CAAI,IAAI,CAAA;AACzB,QAAA,IAAA,CAAK,MAAA,CAAO,IAAI,EAAE,CAAA;AAClB,QAAA,OAAO,IAAA;AAAA,MACT,CAAC,CAAA;AAAA,IACH,CAAA,MAAO;AACL,MAAA,MAAM,UAAA,GAAa,IAAI,GAAA,CAAI,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA,KAAM,MAAA,CAAO,CAAA,CAAE,EAAE,CAAC,CAAC,CAAA;AACpE,MAAA,MAAM,OAAA,GAAU,IAAI,WAAA,CACjB,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,WAAW,GAAA,CAAI,MAAA,CAAO,EAAE,EAAE,CAAC,CAAC,CAAA,CAC3C,GAAA,CAAI,CAAC,CAAA,KAAM,0BAAA,CAA2B,CAAC,CAAC,CAAA;AAC3C,MAAA,IAAI,OAAA,CAAQ,SAAS,CAAA,EAAG;AACtB,QAAA,QAAA,CAAS,CAAC,GAAG,QAAA,CAAS,OAAA,EAAS,GAAG,OAAO,CAAC,CAAA;AAAA,MAC5C;AACA,MAAA,cAAA,CAAe,OAAA,CAAQ,GAAA,CAAI,GAAA,CAAI,EAAA,EAAI,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA,KAAM,MAAA,CAAO,CAAA,CAAE,EAAE,CAAC,CAAC,CAAA;AACnE,MAAA,qBAAA,CAAsB,CAAC,SAAS,IAAI,GAAA,CAAI,IAAI,CAAA,CAAE,GAAA,CAAI,GAAA,CAAI,EAAE,CAAC,CAAA;AAAA,IAC3D;AAAA,EACF;AAEA,EAAA,SAAS,kBAAkB,MAAA,EAAgC;AACzD,IAAA,IAAI,SAAS,GAAA,CAAI,MAAA,CAAO,MAAA,CAAO,EAAE,CAAC,CAAA,EAAG;AACrC,IAAA,iBAAA,CAAkB,OAAO,EAAE,CAAA;AAC3B,IAAA,UAAA,CAAW,MAAM;AACf,MAAA,QAAA,CAAS,CAAC,GAAG,QAAA,CAAS,SAAS,eAAA,CAAgB,MAAM,CAAC,CAAC,CAAA;AACvD,MAAA,iBAAA,CAAkB,IAAI,CAAA;AACtB,MAAA,QAAA,CAAS,EAAE,CAAA;AACX,MAAA,UAAA,CAAW,EAAE,CAAA;AACb,MAAA,UAAA,CAAW,MAAM,cAAA,CAAe,OAAA,EAAS,KAAA,IAAS,CAAC,CAAA;AAAA,IACrD,GAAG,eAAe,CAAA;AAAA,EACpB;AAEA,EAAA,SAAS,UAAA,GAAa;AACpB,IAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAC3B,IAAA,IAAI,CAAC,OAAA,EAAS;AACd,IAAA,MAAM,WAAW,WAAA,CAAY,OAAA,EAAA;AAC7B,IAAA,QAAA,CAAS,CAAC,GAAG,SAAA,EAAW,uBAAuB,OAAA,EAAS,QAAQ,CAAC,CAAC,CAAA;AAClE,IAAA,QAAA,CAAS,EAAE,CAAA;AACX,IAAA,UAAA,CAAW,EAAE,CAAA;AAAA,EACf;AAEA,EAAA,SAAS,oBAAoB,EAAA,EAAkB;AAC7C,IAAA,IAAI,SAAS,GAAA,CAAI,MAAA,CAAO,EAAA,CAAG,EAAE,CAAC,CAAA,EAAG;AACjC,IAAA,QAAA,CAAS,CAAC,GAAG,SAAA,EAAW,2BAAA,CAA4B,EAAE,CAAC,CAAC,CAAA;AAAA,EAC1D;AAEA,EAAA,SAAS,SAAA,CAAU,OAAe,OAAA,EAAqB;AACrD,IAAA,MAAM,IAAA,GAAO,CAAC,GAAG,SAAS,CAAA;AAC1B,IAAA,IAAA,CAAK,KAAK,CAAA,GAAI,OAAA;AACd,IAAA,QAAA,CAAS,IAAI,CAAA;AAAA,EACf;AAEA,EAAA,SAAS,UAAU,KAAA,EAAe;AAChC,IAAA,QAAA,CAAS,UAAU,MAAA,CAAO,CAAC,GAAG,CAAA,KAAM,CAAA,KAAM,KAAK,CAAC,CAAA;AAAA,EAClD;AAEA,EAAA,MAAM,iBAAA,GAAoB,YAAA,CAAa,GAAA,CAAI,CAAC,CAAA,KAAM;AAChD,IAAA,MAAM,UAAU,QAAA,CAAS,GAAA,CAAI,MAAA,CAAO,CAAA,CAAE,EAAE,CAAC,CAAA;AACzC,IAAA,uBACEV,eAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QAEC,IAAA,EAAK,QAAA;AAAA,QACL,OAAA,EAAS,MAAM,wBAAA,CAAyB,CAAC,CAAA;AAAA,QACzC,SAAA,EAAWM,oBAAA;AAAA,UACT,wEAAA;AAAA,UACA,UACI,6CAAA,GACA;AAAA,SACN;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,OAAA,oBAAWL,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,MAAA,EAAO,QAAA,EAAA,QAAA,EAAC,CAAA;AAAA,UACnC,CAAA,CAAE;AAAA;AAAA,OAAA;AAAA,MAXE,CAAA,CAAE;AAAA,KAYT;AAAA,EAEJ,CAAC,CAAA;AAED,EAAA,MAAM,oBAAA,GAAuB,aAAA,CAAc,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AAEtD,EAAA,MAAM,oBACJ,oBAAA,CAAqB,MAAA,GAAS,IAC1B,oBAAA,CAAqB,GAAA,CAAI,CAAC,IAAA,KAAS;AACjC,IAAA,MAAM,UAAU,QAAA,CAAS,GAAA,CAAI,MAAA,CAAO,IAAA,CAAK,EAAE,CAAC,CAAA;AAC5C,IAAA,uBACED,eAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QAEC,IAAA,EAAK,QAAA;AAAA,QACL,OAAA,EAAS,MAAM,wBAAA,CAAyB,IAAI,CAAA;AAAA,QAC5C,SAAA,EAAWM,oBAAA;AAAA,UACT,8EAAA;AAAA,UACA,UACI,6CAAA,GACA;AAAA,SACN;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,OAAA,oBAAWL,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,MAAA,EAAO,QAAA,EAAA,QAAA,EAAC,CAAA;AAAA,UACnC,IAAA,CAAK,cAAc,IAAA,CAAK;AAAA;AAAA,OAAA;AAAA,MAXpB,IAAA,CAAK;AAAA,KAYZ;AAAA,EAEJ,CAAC,IACD,EAAC;AAEP,EAAA,MAAM,YAAA,GAAe,QAAA,CAAS,GAAA,CAAI,CAAC,GAAA,KAAQ;AACzC,IAAA,MAAM,OAAA,GAAU,kBAAA,CAAmB,GAAA,CAAI,GAAA,CAAI,EAAE,CAAA;AAC7C,IAAA,uBACED,eAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QAEC,IAAA,EAAK,QAAA;AAAA,QACL,OAAA,EAAS,MAAM,mBAAA,CAAoB,GAAG,CAAA;AAAA,QACtC,SAAA,EAAWM,oBAAA;AAAA,UACT,kGAAA;AAAA,UACA,UACI,6CAAA,GACA;AAAA,SACN;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,OAAA,oBAAWL,cAAA,CAAC,UAAK,QAAA,EAAA,QAAA,EAAC,CAAA;AAAA,0BACnBA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,eAAA,EAAiB,cAAI,IAAA,EAAK,CAAA;AAAA,0BAC1CA,cAAA,CAAC,UAAK,SAAA,EAAWK,oBAAA;AAAA,YACf,oDAAA;AAAA,YACA,UAAU,6BAAA,GAAgC;AAAA,WAC5C,EACG,QAAA,EAAA,GAAA,CAAI,WAAA,CAAY,MAAA,EACnB;AAAA;AAAA,OAAA;AAAA,MAjBK,GAAA,CAAI;AAAA,KAkBX;AAAA,EAEJ,CAAC,CAAA;AAED,EAAA,MAAM,eAAe,EAAC;AACtB,EAAA,IAAI,iBAAA,CAAkB,SAAS,CAAA,EAAG;AAChC,IAAA,YAAA,CAAa,IAAA,CAAK,EAAE,KAAA,EAAO,iBAAA,EAAmB,yBAASL,cAAA,CAAAU,mBAAA,EAAA,EAAG,QAAA,EAAA,iBAAA,EAAkB,GAAK,CAAA;AAAA,EACnF,CAAA,MAAA,IAAW,iBAAA,CAAkB,MAAA,GAAS,CAAA,EAAG;AACvC,IAAA,YAAA,CAAa,IAAA,CAAK,EAAE,KAAA,EAAO,eAAA,EAAiB,yBAASV,cAAA,CAAAU,mBAAA,EAAA,EAAG,QAAA,EAAA,iBAAA,EAAkB,GAAK,CAAA;AAAA,EACjF;AACA,EAAA,IAAI,YAAA,CAAa,SAAS,CAAA,EAAG;AAC3B,IAAA,YAAA,CAAa,IAAA,CAAK,EAAE,KAAA,EAAO,UAAA,EAAY,yBAASV,cAAA,CAAAU,mBAAA,EAAA,EAAG,QAAA,EAAA,YAAA,EAAa,GAAK,CAAA;AAAA,EACvE;AAEA,EAAA,uBACEX,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+FAAA,EAEb,QAAA,EAAA;AAAA,oBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,mCAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAyB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,sBAC/CA,cAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,OAAA,EAAS,MAAM,OAAA,CAAQ,IAAI,CAAA;AAAA,UAC3B,SAAA,EAAU,4EAAA;AAAA,UACX,QAAA,EAAA;AAAA;AAAA;AAED,KAAA,EACF,CAAA;AAAA,oBAGAA,cAAA,CAAC,SAAI,SAAA,EAAU,WAAA,EACZ,oBAAU,GAAA,CAAI,CAAC,KAAK,CAAA,qBACnBA,cAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QAEC,GAAA;AAAA,QACA,QAAA,EAAU,CAAC,CAAA,KAAM,SAAA,CAAU,GAAG,CAAC,CAAA;AAAA,QAC/B,QAAA,EAAU,MAAM,SAAA,CAAU,CAAC;AAAA,OAAA;AAAA,MAHtB,GAAA,CAAI;AAAA,KAKZ,CAAA,EACH,CAAA;AAAA,oBAGAA,cAAA;AAAA,MAACW,iCAAA;AAAA,MAAA;AAAA,QACC,IAAA;AAAA,QACA,OAAA,EAAS,MAAM,OAAA,CAAQ,KAAK,CAAA;AAAA,QAC5B,KAAA,EAAM,gBAAA;AAAA,QACN,YAAA,EAAc,YAAA,CAAa,MAAA,GAAS,CAAA,GAAI,YAAA,GAAe,MAAA;AAAA,QACvD,UAAA,kBACEX,cAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,QAAA,EAAU,CAAC,KAAA,CAAM,IAAA,EAAK;AAAA,YACtB,OAAA,EAAS,UAAA;AAAA,YACT,SAAA,EAAWK,oBAAA;AAAA,cACT,qIAAA;AAAA,cACA,CAAC,KAAA,CAAM,IAAA,EAAK,IAAK;AAAA,aACnB;AAAA,YACD,QAAA,EAAA;AAAA;AAAA,SAED;AAAA,QAGF,QAAA,kBAAAN,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,cAAA;AAAA,YAACY,uBAAA;AAAA,YAAA;AAAA,cACC,GAAA,EAAK,cAAA;AAAA,cACL,KAAA,EAAO,KAAA;AAAA,cACP,UAAU,CAAC,CAAA,KAAM,iBAAA,CAAkB,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,cACjD,WAAA,EAAY,qBAAA;AAAA,cACZ,SAAA,EAAU;AAAA;AAAA,WACZ;AAAA,UAGC,qBAAqB,MAAA,GAAS,CAAA,oBAC7Bb,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qCAAA,EACb,QAAA,EAAA;AAAA,4BAAAC,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oCAAA,EAAqC,QAAA,EAAA,cAAA,EAAY,CAAA;AAAA,YAChE,qBACE,MAAA,CAAO,CAAC,MAAM,CAAC,QAAA,CAAS,IAAI,MAAA,CAAO,CAAA,CAAE,EAAE,CAAC,CAAC,EACzC,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA,CACX,GAAA,CAAI,CAAC,CAAA,qBACJD,eAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBAEC,IAAA,EAAK,QAAA;AAAA,gBACL,OAAA,EAAS,MAAM,mBAAA,CAAoB,CAAC,CAAA;AAAA,gBACpC,SAAA,EAAU,iMAAA;AAAA,gBAEV,QAAA,EAAA;AAAA,kCAAAC,cAAA,CAACa,gBAAA,EAAA,EAAK,WAAU,SAAA,EAAU,CAAA;AAAA,kBACzB,EAAE,UAAA,IAAc,CAAA,CAAE,YAAA,IAAgB,MAAA,CAAO,EAAE,EAAE;AAAA;AAAA,eAAA;AAAA,cANzC,MAAA,CAAO,EAAE,EAAE;AAAA,aAQnB;AAAA,WAAA,EACL,CAAA;AAAA,UAID,OAAA,oBACCb,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kDAAiD,QAAA,EAAA,iBAAA,EAAU,CAAA;AAAA,UAEzE,CAAC,OAAA,IAAW,OAAA,CAAQ,MAAA,GAAS,CAAA,oBAC5BA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iDAAA,EACZ,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA,qBACZA,cAAA;AAAA,YAAC,gBAAA;AAAA,YAAA;AAAA,cAEC,MAAA,EAAQ,CAAA;AAAA,cACR,QAAA,EAAU,mBAAmB,CAAA,CAAE,EAAA;AAAA,cAC/B,QAAA,EAAU,MAAM,iBAAA,CAAkB,CAAC;AAAA,aAAA;AAAA,YAH9B,CAAA,CAAE;AAAA,WAKV,CAAA,EACH;AAAA,SAAA,EAEJ;AAAA;AAAA;AACF,GAAA,EACF,CAAA;AAEJ","file":"chunk-JKHJPXAI.cjs","sourcesContent":["import { createContext, useContext } from 'react';\n\n/** Shape of a medication as returned by AI analysis */\nexport type AIMedication = {\n id: string | number;\n brand_name: string;\n generic_name: string;\n form?: string;\n strength?: string;\n reason?: string;\n};\n\nexport type AISuggestions = {\n medications?: AIMedication[];\n};\n\nconst AISuggestionsContext = createContext<AISuggestions>({});\n\nexport function useAISuggestions(): AISuggestions {\n return useContext(AISuggestionsContext);\n}\n\nexport const AISuggestionsProvider = AISuggestionsContext.Provider;\n","import React, { useState, useRef, useEffect } from 'react';\nimport { Trash2, ChevronUp, ChevronDown, ChevronRight, Plus, Check } from 'lucide-react';\nimport { cn } from '../../core/utils';\nimport { Input } from '../shadcn/input';\nimport { AddEntityDialog } from './AddEntityDialog';\nimport type { AIMedication } from '../../react/AISuggestionsContext';\nimport type { MedicationFrequentItem, MedicationPackage, MedicationPackageDrug } from '../../core/types';\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nconst BEFORE_AFTER_OPTIONS = [\n { label: 'Blank', value: '' },\n { label: 'AFTER FOOD', value: 'AFTER FOOD' },\n { label: 'BEFORE FOOD', value: 'BEFORE FOOD' },\n { label: 'WITH FOOD', value: 'WITH FOOD' },\n { label: 'SINGLE DOSE', value: 'SINGLE DOSE' },\n { label: 'BED TIME', value: 'BED TIME' },\n { label: 'EMPTY STOMACH', value: 'EMPTY STOMACH' },\n { label: 'LOCAL APPLICATION', value: 'LOCAL APPLICATION' },\n { label: 'STAT', value: 'STAT' },\n { label: 'INHALATION', value: 'INHALATION' },\n] as const;\n\ntype BeforeAfterOption = (typeof BEFORE_AFTER_OPTIONS)[number]['value'];\n\nconst BEFORE_AFTER_NORMALIZATION_MAP: Record<string, BeforeAfterOption> = {\n AF: 'AFTER FOOD',\n BF: 'BEFORE FOOD',\n};\n\nexport type MedicationSearchResult = {\n id: string;\n name: string;\n generic_name?: string;\n manufacturer?: string;\n score?: number;\n};\n\n\nconst ROUTE_OPTIONS = [\n { label: 'Select route', value: '' },\n { label: 'Per Os', value: 'Per Os' },\n { label: 'Intravenous', value: 'Intravenous' },\n { label: 'Intramuscular', value: 'Intramuscular' },\n { label: 'Subcutaneous', value: 'Subcutaneous' },\n { label: 'Sublingual', value: 'Sublingual' },\n { label: 'Intranasal', value: 'Intranasal' },\n { label: 'Topical', value: 'Topical' },\n { label: 'Per Rectum', value: 'Per Rectum' },\n { label: 'Inhalation', value: 'Inhalation' },\n { label: 'ID Intradermal', value: 'ID Intradermal' },\n] as const;\n\nexport type Medication = {\n id: string;\n brand_name: string;\n generic_name: string;\n frequency: string;\n is_custom: boolean;\n duration_value: string;\n duration_unit: 'days' | 'weeks' | 'months';\n before_after: BeforeAfterOption;\n route: string;\n morning: string;\n afternoon: string;\n night: string;\n notes: string;\n};\n\nexport type AddMedicationFieldProps = {\n label?: string;\n value: Medication[];\n onChange: (items: Medication[]) => void;\n onSearch: (query: string) => Promise<MedicationSearchResult[]>;\n recentlyUsed?: MedicationSearchResult[];\n /** Doctor-scoped frequently used medications (from FormProvider frequentItems) */\n frequentItems?: MedicationFrequentItem[];\n /** AI-suggested medications shown as badges; clicking adds to value */\n suggestedMedications?: AIMedication[];\n packages?: MedicationPackage[];\n};\n\n// ─── Internal helpers ─────────────────────────────────────────────────────────\n\nfunction mapToMedication(result: MedicationSearchResult): Medication {\n return {\n id: result.id,\n brand_name: result.name,\n generic_name: result.generic_name ?? '',\n frequency: 'custom',\n is_custom: false,\n duration_value: '3',\n duration_unit: 'days',\n before_after: 'AFTER FOOD',\n route: '',\n morning: '0',\n afternoon: '0',\n night: '0',\n notes: '',\n };\n}\n\nconst DURATION_UNITS = new Set<Medication['duration_unit']>(['days', 'weeks', 'months']);\n\nfunction mapPackageDrugToMedication(drug: MedicationPackageDrug): Medication {\n const base = mapToMedication(drug);\n const duration_unit =\n drug.duration_unit && DURATION_UNITS.has(drug.duration_unit as Medication['duration_unit'])\n ? (drug.duration_unit as Medication['duration_unit'])\n : base.duration_unit;\n return {\n ...base,\n duration_value: drug.duration_value ?? base.duration_value,\n duration_unit,\n route: drug.route ?? base.route,\n notes: drug.notes ?? base.notes,\n };\n}\n\nfunction mapAIMedicationToMedication(ai: AIMedication): Medication {\n const id = ai.id != null ? String(ai.id) : '';\n return {\n id,\n brand_name: ai.brand_name ?? '',\n generic_name: ai.generic_name ?? '',\n frequency: 'custom',\n is_custom: false,\n duration_value: '3',\n duration_unit: 'days',\n before_after: 'AFTER FOOD',\n route: '',\n morning: '1',\n afternoon: '0',\n night: '1',\n notes: ai.reason ?? '',\n };\n}\n\nfunction createCustomMedication(name: string, customId: number): Medication {\n return {\n id: String(customId),\n brand_name: name.trim(),\n generic_name: '',\n frequency: 'custom',\n is_custom: false,\n duration_value: '3',\n duration_unit: 'days',\n before_after: 'AFTER FOOD',\n route: '',\n morning: '0',\n afternoon: '0',\n night: '0',\n notes: '',\n };\n}\n\n/** Parse duration string like \"5 days\" or \"2 weeks\" into value + unit */\nfunction parseDuration(duration?: string): { value: string; unit: 'days' | 'weeks' | 'months' } {\n if (!duration || !duration.trim()) return { value: '3', unit: 'days' };\n const lower = duration.trim().toLowerCase();\n const match = lower.match(/^(\\d+)\\s*(day|days|week|weeks|month|months)?$/);\n if (!match) return { value: '3', unit: 'days' };\n const value = match[1] ?? '3';\n const unitWord = match[2] ?? 'days';\n const unit: 'days' | 'weeks' | 'months' =\n unitWord.startsWith('month') ? 'months' : unitWord.startsWith('week') ? 'weeks' : 'days';\n return { value, unit };\n}\n\nfunction mapFrequentItemToMedication(item: MedicationFrequentItem): Medication {\n const parsed = parseDuration(item.duration);\n const duration_value = item.duration_value ?? parsed.value;\n const duration_unit =\n (item.duration_unit as Medication['duration_unit'] | undefined) ?? parsed.unit;\n\n const before_after: Medication['before_after'] = normalizeBeforeAfter(item.before_after);\n\n const routeNote = item.route ? `Route: ${item.route}` : '';\n const baseNotes = item.notes?.trim() || '';\n const combinedNotes =\n [baseNotes, routeNote.trim()].filter((part) => part.length > 0).join(' — ');\n\n return {\n id: item.id,\n brand_name: item.brand_name ?? item.name,\n generic_name: item.short_name ?? '',\n frequency: item.frequency ?? 'custom',\n is_custom: false,\n duration_value,\n duration_unit,\n before_after,\n route: item.route ?? '',\n morning: item.morning ?? '0',\n afternoon: item.afternoon ?? '0',\n night: item.night ?? '0',\n notes: combinedNotes,\n };\n}\n\nfunction normalizeBeforeAfter(value?: string): BeforeAfterOption {\n if (value == null) return 'AFTER FOOD';\n const mapped = BEFORE_AFTER_NORMALIZATION_MAP[value];\n if (mapped) return mapped;\n const validValues = BEFORE_AFTER_OPTIONS.map((option) => option.value);\n return validValues.includes(value as BeforeAfterOption) ? (value as BeforeAfterOption) : 'AFTER FOOD';\n}\n\nfunction Spinner({\n value,\n onChange,\n}: {\n value: string;\n onChange: (v: string) => void;\n}) {\n const num = parseInt(value, 10) || 0;\n return (\n <div className=\"flex flex-col items-center\">\n <button\n type=\"button\"\n className=\"text-muted-foreground hover:text-foreground cursor-pointer\"\n onClick={() => onChange(String(num + 1))}\n >\n <ChevronUp className=\"h-3 w-3\" />\n </button>\n <span className=\"text-sm w-4 text-center leading-none\">{num}</span>\n <button\n type=\"button\"\n className=\"text-muted-foreground hover:text-foreground cursor-pointer\"\n onClick={() => onChange(String(Math.max(0, num - 1)))}\n >\n <ChevronDown className=\"h-3 w-3\" />\n </button>\n </div>\n );\n}\n\n// ─── Medication card (added item) ─────────────────────────────────────────────\n\nfunction MedicationCard({\n med,\n onUpdate,\n onRemove,\n}: {\n med: Medication;\n onUpdate: (updated: Medication) => void;\n onRemove: () => void;\n}) {\n const [notesOpen, setNotesOpen] = useState(false);\n\n function set<K extends keyof Medication>(key: K, val: Medication[K]) {\n onUpdate({ ...med, [key]: val });\n }\n\n return (\n <div className=\"bg-gray-50 rounded-lg p-3 space-y-2\">\n {/* Row 1: drug name, frequency dropdown, morning/afternoon/night labels, delete */}\n <div className=\"flex items-center gap-2 flex-wrap\">\n <span className=\"font-semibold text-sm flex-1 min-w-0 truncate\">{med.brand_name}</span>\n <select\n className=\"text-xs border border-border rounded px-2 py-1 bg-white shrink-0\"\n value={med.frequency}\n onChange={(e) => set('frequency', e.target.value)}\n >\n <option value=\"custom\">select frequency</option>\n <option value=\"qid\">4 times a day (QID)</option>\n <option value=\"alternate_day\">Alternate day</option>\n <option value=\"once_weekly\">Once weekly</option>\n <option value=\"once_monthly\">Once monthly</option>\n <option value=\"as_needed\">As needed</option>\n <option value=\"fort_night\">Fort night</option>\n <option value=\"at_bed_time\">At Bed time</option>\n <option value=\"sos\">SOS only</option>\n <option value=\"biweekly\">Biweekly</option>\n <option value=\"stat\">STAT</option>\n </select>\n <div className=\"flex gap-4 items-center shrink-0\">\n {(['morning', 'afternoon', 'night'] as const).map((slot) => (\n <span\n key={slot}\n className=\"text-[10px] font-semibold uppercase text-muted-foreground tracking-wide\"\n >\n {slot === 'afternoon' ? 'AFTERNOON' : slot === 'morning' ? 'MORNING' : 'NIGHT'}\n </span>\n ))}\n </div>\n <button\n type=\"button\"\n onClick={onRemove}\n className=\"text-red-400 hover:text-red-600 shrink-0 p-1 cursor-pointer\"\n >\n <Trash2 className=\"h-4 w-4\" />\n </button>\n </div>\n\n {/* Row 2: duration (value + unit) on left; 3 dose spinners in middle; AF/BF on right */}\n <div className=\"flex items-center gap-3 flex-wrap\">\n <div className=\"flex items-center gap-1 shrink-0\">\n <input\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n className=\"w-11 text-sm border border-border rounded px-2 py-1 bg-white\"\n value={med.duration_value}\n onChange={(e) => {\n const v = e.target.value.replace(/\\D/g, '');\n set('duration_value', v === '' ? '' : v);\n }}\n />\n <select\n className=\"text-xs border border-border rounded px-2 py-1 bg-white\"\n value={med.duration_unit}\n onChange={(e) => set('duration_unit', e.target.value as Medication['duration_unit'])}\n >\n <option value=\"days\">days</option>\n <option value=\"weeks\">weeks</option>\n <option value=\"months\">months</option>\n </select>\n </div>\n <div className=\"flex gap-2 items-center flex-1 min-w-0 justify-end\">\n {(['morning', 'afternoon', 'night'] as const).map((slot) => (\n <div key={slot} className=\"flex flex-col items-center gap-0.5\">\n <Spinner value={med[slot]} onChange={(v) => set(slot, v)} />\n </div>\n ))}\n </div>\n <select\n className=\"text-xs border border-border rounded px-2 py-1 bg-white shrink-0\"\n value={normalizeBeforeAfter(med.before_after)}\n onChange={(e) => set('before_after', e.target.value as Medication['before_after'])}\n >\n {BEFORE_AFTER_OPTIONS.map((option) => (\n <option key={option.label} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n <select\n className=\"text-xs border border-border rounded px-2 py-1 bg-white shrink-0\"\n value={med.route ?? ''}\n onChange={(e) => set('route', e.target.value)}\n >\n {ROUTE_OPTIONS.map((option) => (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n </div>\n\n {/* Row 3: medicine notes — full-width div as hit area (chevron + text), cursor-pointer */}\n <div\n role=\"button\"\n tabIndex={0}\n onClick={() => setNotesOpen((o) => !o)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n setNotesOpen((o) => !o);\n }\n }}\n className={cn(\n 'flex items-center gap-2 w-full text-left text-xs text-muted-foreground hover:text-foreground',\n 'cursor-pointer py-2 px-2 rounded border border-transparent hover:bg-gray-100/80 transition-colors'\n )}\n >\n <ChevronRight\n className={cn('h-3 w-3 shrink-0 transition-transform', notesOpen && 'rotate-90')}\n />\n <span>Medicine Notes</span>\n </div>\n {notesOpen && (\n <div className=\"relative z-10 mt-0.5\">\n <textarea\n className=\"block w-full text-xs border border-border rounded px-2 py-1 resize-none bg-white min-h-0\"\n rows={2}\n placeholder=\"Add notes...\"\n value={med.notes}\n onChange={(e) => set('notes', e.target.value)}\n />\n </div>\n )}\n </div>\n );\n}\n\n// ─── Search result card ────────────────────────────────────────────────────────\n\nconst ADD_FEEDBACK_MS = 320;\n\nfunction SearchResultCard({\n result,\n isAdding,\n onSelect,\n}: {\n result: MedicationSearchResult;\n isAdding: boolean;\n onSelect: () => void;\n}) {\n return (\n <button\n type=\"button\"\n onClick={onSelect}\n className={cn(\n 'w-full text-left border rounded-lg px-3 py-2 transition-all duration-300 ease-out cursor-pointer flex items-center justify-between gap-2',\n isAdding\n ? 'border-green-400 bg-green-50 scale-[0.98]'\n : 'border-border bg-white hover:bg-gray-50'\n )}\n >\n <div className=\"min-w-0 flex-1 text-left\">\n <p className=\"text-sm font-semibold leading-tight truncate\">{result.name}</p>\n {result.generic_name && (\n <p className=\"text-xs text-muted-foreground mt-0.5 truncate\">\n Generic: {result.generic_name}\n </p>\n )}\n </div>\n {isAdding && <Check className=\"h-4 w-4 shrink-0 text-green-600\" />}\n </button>\n );\n}\n\n// ─── Main component ───────────────────────────────────────────────────────────\n\nexport const AddMedicationField: React.FC<AddMedicationFieldProps> = ({\n label = 'Medications',\n value,\n onChange,\n onSearch,\n recentlyUsed = [],\n frequentItems = [],\n suggestedMedications = [],\n packages = [],\n}) => {\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useState('');\n const [results, setResults] = useState<MedicationSearchResult[]>([]);\n const [loading, setLoading] = useState(false);\n const [addingResultId, setAddingResultId] = useState<string | null>(null);\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const customIdRef = useRef(-1);\n const valueRef = useRef<Medication[]>([]);\n const searchInputRef = useRef<HTMLInputElement>(null);\n // tracks which medication IDs were added by each package: packageId → medicationId[]\n const addedByPackage = useRef<Map<string, string[]>>(new Map());\n // drives re-renders for package chip selected state\n const [selectedPackageIds, setSelectedPackageIds] = useState<Set<string>>(new Set());\n\n const safeValue = Array.isArray(value) ? value : [];\n valueRef.current = safeValue;\n const addedIds = new Set(safeValue.map((m) => String(m.id)));\n\n useEffect(() => {\n if (!open) {\n setQuery('');\n setResults([]);\n setAddingResultId(null);\n }\n }, [open]);\n\n function handleQueryChange(q: string) {\n setQuery(q);\n if (debounceRef.current) clearTimeout(debounceRef.current);\n if (!q.trim()) {\n setResults([]);\n return;\n }\n debounceRef.current = setTimeout(async () => {\n setLoading(true);\n try {\n const res = await onSearch(q);\n setResults(res);\n } finally {\n setLoading(false);\n }\n }, 500);\n }\n\n function handleRecentlyUsedToggle(result: MedicationSearchResult) {\n if (addedIds.has(String(result.id))) {\n onChange(safeValue.filter((m) => String(m.id) !== String(result.id)));\n } else {\n onChange([...safeValue, mapToMedication(result)]);\n }\n }\n\n function handleFrequentItemToggle(item: MedicationFrequentItem) {\n if (addedIds.has(String(item.id))) {\n onChange(safeValue.filter((m) => String(m.id) !== String(item.id)));\n } else {\n onChange([...safeValue, mapFrequentItemToMedication(item)]);\n }\n }\n\n function handlePackageToggle(pkg: MedicationPackage) {\n const alreadyAdded = addedByPackage.current.has(pkg.id);\n if (alreadyAdded) {\n const idsToRemove = new Set(addedByPackage.current.get(pkg.id) ?? []);\n onChange(valueRef.current.filter((m) => !idsToRemove.has(String(m.id))));\n addedByPackage.current.delete(pkg.id);\n setSelectedPackageIds((prev) => {\n const next = new Set(prev);\n next.delete(pkg.id);\n return next;\n });\n } else {\n const currentIds = new Set(valueRef.current.map((m) => String(m.id)));\n const newMeds = pkg.medications\n .filter((d) => !currentIds.has(String(d.id)))\n .map((d) => mapPackageDrugToMedication(d));\n if (newMeds.length > 0) {\n onChange([...valueRef.current, ...newMeds]);\n }\n addedByPackage.current.set(pkg.id, newMeds.map((m) => String(m.id)));\n setSelectedPackageIds((prev) => new Set(prev).add(pkg.id));\n }\n }\n\n function handleResultClick(result: MedicationSearchResult) {\n if (addedIds.has(String(result.id))) return;\n setAddingResultId(result.id);\n setTimeout(() => {\n onChange([...valueRef.current, mapToMedication(result)]);\n setAddingResultId(null);\n setQuery('');\n setResults([]);\n setTimeout(() => searchInputRef.current?.focus(), 0);\n }, ADD_FEEDBACK_MS);\n }\n\n function handleSave() {\n const trimmed = query.trim();\n if (!trimmed) return;\n const customId = customIdRef.current--;\n onChange([...safeValue, createCustomMedication(trimmed, customId)]);\n setQuery('');\n setResults([]);\n }\n\n function handleAddSuggestion(ai: AIMedication) {\n if (addedIds.has(String(ai.id))) return;\n onChange([...safeValue, mapAIMedicationToMedication(ai)]);\n }\n\n function updateMed(index: number, updated: Medication) {\n const next = [...safeValue];\n next[index] = updated;\n onChange(next);\n }\n\n function removeMed(index: number) {\n onChange(safeValue.filter((_, i) => i !== index));\n }\n\n const recentlyUsedChips = recentlyUsed.map((r) => {\n const isAdded = addedIds.has(String(r.id));\n return (\n <button\n key={r.id}\n type=\"button\"\n onClick={() => handleRecentlyUsedToggle(r)}\n className={cn(\n 'rounded-full border text-xs px-3 py-1 transition-colors cursor-pointer',\n isAdded\n ? 'border-green-300 bg-green-50 text-green-700'\n : 'border-border bg-white hover:bg-gray-50'\n )}\n >\n {isAdded && <span className=\"mr-1\">✓</span>}\n {r.name}\n </button>\n );\n });\n\n const limitedFrequentItems = frequentItems.slice(0, 25);\n\n const frequentItemChips =\n limitedFrequentItems.length > 0\n ? limitedFrequentItems.map((item) => {\n const isAdded = addedIds.has(String(item.id));\n return (\n <button\n key={item.id}\n type=\"button\"\n onClick={() => handleFrequentItemToggle(item)}\n className={cn(\n 'rounded-full border text-[11px] px-2 py-0.5 transition-colors cursor-pointer',\n isAdded\n ? 'border-green-300 bg-green-50 text-green-700'\n : 'border-border bg-white hover:bg-gray-50'\n )}\n >\n {isAdded && <span className=\"mr-1\">✓</span>}\n {item.brand_name ?? item.name}\n </button>\n );\n })\n : [];\n\n const packageChips = packages.map((pkg) => {\n const isAdded = selectedPackageIds.has(pkg.id);\n return (\n <button\n key={pkg.id}\n type=\"button\"\n onClick={() => handlePackageToggle(pkg)}\n className={cn(\n 'rounded-full border text-xs px-4 py-1.5 transition-colors flex items-center gap-2 cursor-pointer',\n isAdded\n ? 'border-green-300 bg-green-50 text-green-700'\n : 'border-border bg-white hover:bg-gray-50'\n )}\n >\n {isAdded && <span>✓</span>}\n <span className=\"font-semibold\">{pkg.name}</span>\n <span className={cn(\n 'rounded-full px-1.5 py-0.5 text-[10px] font-medium',\n isAdded ? 'bg-green-100 text-green-600' : 'bg-purple-100 text-purple-600'\n )}>\n {pkg.medications.length}\n </span>\n </button>\n );\n });\n\n const chipSections = [];\n if (frequentItemChips.length > 0) {\n chipSections.push({ label: 'Frequently used', content: <>{frequentItemChips}</> });\n } else if (recentlyUsedChips.length > 0) {\n chipSections.push({ label: 'Recently Used', content: <>{recentlyUsedChips}</> });\n }\n if (packageChips.length > 0) {\n chipSections.push({ label: 'Packages', content: <>{packageChips}</> });\n }\n\n return (\n <div className=\"rounded-md overflow-hidden flex flex-col border bg-white border-[#D0D0D0] space-y-3 p-3 h-fit\">\n {/* Header */}\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm font-semibold\">{label}</span>\n <button\n type=\"button\"\n onClick={() => setOpen(true)}\n className=\"text-sm font-semibold text-purple-600 hover:text-purple-800 cursor-pointer\"\n >\n ADD\n </button>\n </div>\n\n {/* Added medications */}\n <div className=\"space-y-2\">\n {safeValue.map((med, i) => (\n <MedicationCard\n key={med.id}\n med={med}\n onUpdate={(u) => updateMed(i, u)}\n onRemove={() => removeMed(i)}\n />\n ))}\n </div>\n\n {/* Dialog */}\n <AddEntityDialog\n open={open}\n onClose={() => setOpen(false)}\n title=\"Add Medication\"\n chipSections={chipSections.length > 0 ? chipSections : undefined}\n actionSlot={\n <button\n type=\"button\"\n disabled={!query.trim()}\n onClick={handleSave}\n className={cn(\n 'rounded-md px-5 py-2 text-sm font-semibold bg-primary text-primary-foreground hover:bg-primary/90 transition-opacity cursor-pointer',\n !query.trim() && 'opacity-40 cursor-not-allowed'\n )}\n >\n Save Medicine\n </button>\n }\n >\n <div className=\"space-y-3\">\n <Input\n ref={searchInputRef}\n value={query}\n onChange={(e) => handleQueryChange(e.target.value)}\n placeholder=\"Search medicines...\"\n className=\"border border-border rounded-md focus-visible:ring-0\"\n />\n\n {/* AI-suggested medications as clickable badges (inside dialog) */}\n {suggestedMedications.length > 0 && (\n <div className=\"flex flex-wrap gap-1.5 items-center\">\n <span className=\"text-xs text-muted-foreground mr-1\">Suggestions:</span>\n {suggestedMedications\n .filter((s) => !addedIds.has(String(s.id)))\n .slice(0, 25)\n .map((s) => (\n <button\n key={String(s.id)}\n type=\"button\"\n onClick={() => handleAddSuggestion(s)}\n className=\"inline-flex items-center gap-1 rounded-full border border-dashed border-purple-300 bg-purple-50/80 text-purple-800 text-[11px] px-2 py-0.5 hover:bg-purple-100 transition-colors cursor-pointer\"\n >\n <Plus className=\"h-3 w-3\" />\n {s.brand_name || s.generic_name || String(s.id)}\n </button>\n ))}\n </div>\n )}\n\n {/* Results grid */}\n {loading && (\n <p className=\"text-xs text-muted-foreground text-center py-2\">Searching…</p>\n )}\n {!loading && results.length > 0 && (\n <div className=\"grid grid-cols-2 gap-2 max-h-64 overflow-y-auto\">\n {results.map((r) => (\n <SearchResultCard\n key={r.id}\n result={r}\n isAdding={addingResultId === r.id}\n onSelect={() => handleResultClick(r)}\n />\n ))}\n </div>\n )}\n </div>\n </AddEntityDialog>\n </div>\n );\n};\n"]}
@@ -1852,6 +1852,7 @@ var emptyFrequentItems = {
1852
1852
  };
1853
1853
  var FrequentItemsContext = react.createContext(emptyFrequentItems);
1854
1854
  var PackagesContext = react.createContext([]);
1855
+ var MedicationPackagesContext = react.createContext([]);
1855
1856
  var FieldHandlersContext = react.createContext({});
1856
1857
  function useFieldHandlers(fieldId) {
1857
1858
  const map = react.useContext(FieldHandlersContext);
@@ -1863,12 +1864,16 @@ function useFrequentItems() {
1863
1864
  function usePackages() {
1864
1865
  return react.useContext(PackagesContext);
1865
1866
  }
1867
+ function useMedicationPackages() {
1868
+ return react.useContext(MedicationPackagesContext);
1869
+ }
1866
1870
  var FormProvider = ({
1867
1871
  schema,
1868
1872
  config,
1869
1873
  fieldHandlers,
1870
1874
  frequentItems,
1871
1875
  packages,
1876
+ medicationPackages,
1872
1877
  children
1873
1878
  }) => {
1874
1879
  const storeRef = react.useRef(null);
@@ -1884,7 +1889,7 @@ var FormProvider = ({
1884
1889
  storeRef.current?.load();
1885
1890
  }, []);
1886
1891
  const frequentItemsValue = frequentItems ?? emptyFrequentItems;
1887
- return /* @__PURE__ */ jsxRuntime.jsx(FormContext.Provider, { value: storeRef.current, children: /* @__PURE__ */ jsxRuntime.jsx(FieldHandlersContext.Provider, { value: fieldHandlers ?? {}, children: /* @__PURE__ */ jsxRuntime.jsx(FrequentItemsContext.Provider, { value: frequentItemsValue, children: /* @__PURE__ */ jsxRuntime.jsx(PackagesContext.Provider, { value: packages ?? [], children: /* @__PURE__ */ jsxRuntime.jsx(VoiceContextProvider, { children }) }) }) }) });
1892
+ return /* @__PURE__ */ jsxRuntime.jsx(FormContext.Provider, { value: storeRef.current, children: /* @__PURE__ */ jsxRuntime.jsx(FieldHandlersContext.Provider, { value: fieldHandlers ?? {}, children: /* @__PURE__ */ jsxRuntime.jsx(FrequentItemsContext.Provider, { value: frequentItemsValue, children: /* @__PURE__ */ jsxRuntime.jsx(PackagesContext.Provider, { value: packages ?? [], children: /* @__PURE__ */ jsxRuntime.jsx(MedicationPackagesContext.Provider, { value: medicationPackages ?? [], children: /* @__PURE__ */ jsxRuntime.jsx(VoiceContextProvider, { children }) }) }) }) }) });
1888
1893
  };
1889
1894
  function useFormStore() {
1890
1895
  const context = react.useContext(FormContext);
@@ -1952,9 +1957,10 @@ exports.useField = useField;
1952
1957
  exports.useFieldHandlers = useFieldHandlers;
1953
1958
  exports.useFormStore = useFormStore;
1954
1959
  exports.useFrequentItems = useFrequentItems;
1960
+ exports.useMedicationPackages = useMedicationPackages;
1955
1961
  exports.usePackages = usePackages;
1956
1962
  exports.useVoiceContext = useVoiceContext;
1957
1963
  exports.validateField = validateField;
1958
1964
  exports.validateForm = validateForm;
1959
- //# sourceMappingURL=chunk-TB33A4PD.cjs.map
1960
- //# sourceMappingURL=chunk-TB33A4PD.cjs.map
1965
+ //# sourceMappingURL=chunk-JVIU4OBK.cjs.map
1966
+ //# sourceMappingURL=chunk-JVIU4OBK.cjs.map