formanitor 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/dist/{AddInvestigationWidget-TQUKTGAW.mjs → AddInvestigationWidget-7UGZQYI5.mjs} +3 -3
  2. package/dist/{AddInvestigationWidget-TQUKTGAW.mjs.map → AddInvestigationWidget-7UGZQYI5.mjs.map} +1 -1
  3. package/dist/{AddInvestigationWidget-G7NPTSFY.cjs → AddInvestigationWidget-RY62UCPM.cjs} +7 -7
  4. package/dist/{AddInvestigationWidget-G7NPTSFY.cjs.map → AddInvestigationWidget-RY62UCPM.cjs.map} +1 -1
  5. package/dist/{AddMedicationWidget-I5UIT3WG.mjs → AddMedicationWidget-UG26VMUX.mjs} +3 -3
  6. package/dist/{AddMedicationWidget-I5UIT3WG.mjs.map → AddMedicationWidget-UG26VMUX.mjs.map} +1 -1
  7. package/dist/{AddMedicationWidget-26RHKIA6.cjs → AddMedicationWidget-WPI32WAP.cjs} +6 -6
  8. package/dist/{AddMedicationWidget-26RHKIA6.cjs.map → AddMedicationWidget-WPI32WAP.cjs.map} +1 -1
  9. package/dist/{AddProcedureWidget-B6OUF3BM.cjs → AddProcedureWidget-SF6MTRBV.cjs} +6 -6
  10. package/dist/{AddProcedureWidget-B6OUF3BM.cjs.map → AddProcedureWidget-SF6MTRBV.cjs.map} +1 -1
  11. package/dist/{AddProcedureWidget-NB46COB6.mjs → AddProcedureWidget-SQJUKKMK.mjs} +3 -3
  12. package/dist/{AddProcedureWidget-NB46COB6.mjs.map → AddProcedureWidget-SQJUKKMK.mjs.map} +1 -1
  13. package/dist/{BiometryIolWorkupWidget-TCU4MMVI.cjs → BiometryIolWorkupWidget-I5AJOYB2.cjs} +6 -6
  14. package/dist/{BiometryIolWorkupWidget-TCU4MMVI.cjs.map → BiometryIolWorkupWidget-I5AJOYB2.cjs.map} +1 -1
  15. package/dist/{BiometryIolWorkupWidget-F7HRYMOJ.mjs → BiometryIolWorkupWidget-NL2M7ZAA.mjs} +4 -4
  16. package/dist/{BiometryIolWorkupWidget-F7HRYMOJ.mjs.map → BiometryIolWorkupWidget-NL2M7ZAA.mjs.map} +1 -1
  17. package/dist/{DateTimeWidget-72YUK7PX.cjs → DateTimeWidget-DIDVF2EB.cjs} +6 -6
  18. package/dist/{DateTimeWidget-72YUK7PX.cjs.map → DateTimeWidget-DIDVF2EB.cjs.map} +1 -1
  19. package/dist/{DateTimeWidget-WKQIEQSA.mjs → DateTimeWidget-LFBB6HOP.mjs} +4 -4
  20. package/dist/{DateTimeWidget-WKQIEQSA.mjs.map → DateTimeWidget-LFBB6HOP.mjs.map} +1 -1
  21. package/dist/{DateWidget-K2TVTZ7Z.mjs → DateWidget-4ND5TKP2.mjs} +4 -4
  22. package/dist/{DateWidget-K2TVTZ7Z.mjs.map → DateWidget-4ND5TKP2.mjs.map} +1 -1
  23. package/dist/{DateWidget-SYDMSGWO.cjs → DateWidget-BCVR5GDK.cjs} +6 -6
  24. package/dist/{DateWidget-SYDMSGWO.cjs.map → DateWidget-BCVR5GDK.cjs.map} +1 -1
  25. package/dist/{DiagnosisTextareaWidget-UKWLE2SQ.cjs → DiagnosisTextareaWidget-E7OQRUMX.cjs} +7 -7
  26. package/dist/{DiagnosisTextareaWidget-UKWLE2SQ.cjs.map → DiagnosisTextareaWidget-E7OQRUMX.cjs.map} +1 -1
  27. package/dist/{DiagnosisTextareaWidget-RD65PGDY.mjs → DiagnosisTextareaWidget-MAOXCXEZ.mjs} +4 -4
  28. package/dist/{DiagnosisTextareaWidget-RD65PGDY.mjs.map → DiagnosisTextareaWidget-MAOXCXEZ.mjs.map} +1 -1
  29. package/dist/{DifferentialDiagnosisWidget-ZGFXP2BH.cjs → DifferentialDiagnosisWidget-ANALLNKL.cjs} +4 -4
  30. package/dist/{DifferentialDiagnosisWidget-ZGFXP2BH.cjs.map → DifferentialDiagnosisWidget-ANALLNKL.cjs.map} +1 -1
  31. package/dist/{DifferentialDiagnosisWidget-FENJP245.mjs → DifferentialDiagnosisWidget-LCY2SA2I.mjs} +3 -3
  32. package/dist/{DifferentialDiagnosisWidget-FENJP245.mjs.map → DifferentialDiagnosisWidget-LCY2SA2I.mjs.map} +1 -1
  33. package/dist/{DischargeMedicationOrdersWidget-26ALTGJM.mjs → DischargeMedicationOrdersWidget-GYT35W7J.mjs} +4 -4
  34. package/dist/{DischargeMedicationOrdersWidget-26ALTGJM.mjs.map → DischargeMedicationOrdersWidget-GYT35W7J.mjs.map} +1 -1
  35. package/dist/{DischargeMedicationOrdersWidget-B4CJQ3QS.cjs → DischargeMedicationOrdersWidget-ILWNZ7VM.cjs} +7 -7
  36. package/dist/{DischargeMedicationOrdersWidget-B4CJQ3QS.cjs.map → DischargeMedicationOrdersWidget-ILWNZ7VM.cjs.map} +1 -1
  37. package/dist/{EditableTable-LPAYCK36.mjs → EditableTable-TGCVUBLO.mjs} +3 -3
  38. package/dist/{EditableTable-LPAYCK36.mjs.map → EditableTable-TGCVUBLO.mjs.map} +1 -1
  39. package/dist/{EditableTable-YB4IC3ZK.cjs → EditableTable-VCUNJZEX.cjs} +4 -4
  40. package/dist/{EditableTable-YB4IC3ZK.cjs.map → EditableTable-VCUNJZEX.cjs.map} +1 -1
  41. package/dist/{FollowupWidget-NJ4QDBOG.mjs → FollowupWidget-F6FRZO4T.mjs} +3 -3
  42. package/dist/{FollowupWidget-NJ4QDBOG.mjs.map → FollowupWidget-F6FRZO4T.mjs.map} +1 -1
  43. package/dist/{FollowupWidget-EEKOI2TW.cjs → FollowupWidget-NBTOV2ML.cjs} +4 -4
  44. package/dist/{FollowupWidget-EEKOI2TW.cjs.map → FollowupWidget-NBTOV2ML.cjs.map} +1 -1
  45. package/dist/{FunctionalImpairmentScoreWidget-HAAPCMIS.cjs → FunctionalImpairmentScoreWidget-5V5SNLTF.cjs} +6 -6
  46. package/dist/{FunctionalImpairmentScoreWidget-HAAPCMIS.cjs.map → FunctionalImpairmentScoreWidget-5V5SNLTF.cjs.map} +1 -1
  47. package/dist/{FunctionalImpairmentScoreWidget-ZNLKKBYN.mjs → FunctionalImpairmentScoreWidget-QKIZE7KT.mjs} +4 -4
  48. package/dist/{FunctionalImpairmentScoreWidget-ZNLKKBYN.mjs.map → FunctionalImpairmentScoreWidget-QKIZE7KT.mjs.map} +1 -1
  49. package/dist/{GsExaminationWidget-EX6C3EF5.cjs → GsExaminationWidget-57SL4BCI.cjs} +10 -10
  50. package/dist/{GsExaminationWidget-EX6C3EF5.cjs.map → GsExaminationWidget-57SL4BCI.cjs.map} +1 -1
  51. package/dist/{GsExaminationWidget-MEIUHRQQ.mjs → GsExaminationWidget-J4VABGY6.mjs} +4 -4
  52. package/dist/{GsExaminationWidget-MEIUHRQQ.mjs.map → GsExaminationWidget-J4VABGY6.mjs.map} +1 -1
  53. package/dist/{GsGradingWidget-4UPOEYNL.mjs → GsGradingWidget-3WTLIP33.mjs} +4 -4
  54. package/dist/{GsGradingWidget-4UPOEYNL.mjs.map → GsGradingWidget-3WTLIP33.mjs.map} +1 -1
  55. package/dist/{GsGradingWidget-IV3UF63W.cjs → GsGradingWidget-CIXE36HF.cjs} +12 -12
  56. package/dist/{GsGradingWidget-IV3UF63W.cjs.map → GsGradingWidget-CIXE36HF.cjs.map} +1 -1
  57. package/dist/{GsSmartHistoryWidget-7QNJZEI4.cjs → GsSmartHistoryWidget-6Q2IIGDG.cjs} +12 -12
  58. package/dist/{GsSmartHistoryWidget-7QNJZEI4.cjs.map → GsSmartHistoryWidget-6Q2IIGDG.cjs.map} +1 -1
  59. package/dist/{GsSmartHistoryWidget-LGN7W2AV.mjs → GsSmartHistoryWidget-IOGZ6GNS.mjs} +4 -4
  60. package/dist/{GsSmartHistoryWidget-LGN7W2AV.mjs.map → GsSmartHistoryWidget-IOGZ6GNS.mjs.map} +1 -1
  61. package/dist/{HiddenVitalsWidget-AMH32HT2.cjs → HiddenVitalsWidget-HBK7PBPR.cjs} +6 -6
  62. package/dist/{HiddenVitalsWidget-AMH32HT2.cjs.map → HiddenVitalsWidget-HBK7PBPR.cjs.map} +1 -1
  63. package/dist/{HiddenVitalsWidget-W23IFSEF.mjs → HiddenVitalsWidget-JH3NRZLM.mjs} +4 -4
  64. package/dist/{HiddenVitalsWidget-W23IFSEF.mjs.map → HiddenVitalsWidget-JH3NRZLM.mjs.map} +1 -1
  65. package/dist/{LensAssessmentWidget-SJ6YUTSN.mjs → LensAssessmentWidget-7WMULFS2.mjs} +4 -4
  66. package/dist/{LensAssessmentWidget-SJ6YUTSN.mjs.map → LensAssessmentWidget-7WMULFS2.mjs.map} +1 -1
  67. package/dist/{LensAssessmentWidget-LSHBUTT5.cjs → LensAssessmentWidget-GSOOD7BX.cjs} +6 -6
  68. package/dist/{LensAssessmentWidget-LSHBUTT5.cjs.map → LensAssessmentWidget-GSOOD7BX.cjs.map} +1 -1
  69. package/dist/{MarMedicationOrdersWidget-ZKZLSZRN.cjs → MarMedicationOrdersWidget-3E6GFOR6.cjs} +7 -7
  70. package/dist/{MarMedicationOrdersWidget-ZKZLSZRN.cjs.map → MarMedicationOrdersWidget-3E6GFOR6.cjs.map} +1 -1
  71. package/dist/{MarMedicationOrdersWidget-IKMAFPRG.mjs → MarMedicationOrdersWidget-QZUVSEB5.mjs} +4 -4
  72. package/dist/{MarMedicationOrdersWidget-IKMAFPRG.mjs.map → MarMedicationOrdersWidget-QZUVSEB5.mjs.map} +1 -1
  73. package/dist/{OBGExaminationWidget-SMFZ2WCL.cjs → OBGExaminationWidget-F2ZNSP2M.cjs} +11 -11
  74. package/dist/{OBGExaminationWidget-SMFZ2WCL.cjs.map → OBGExaminationWidget-F2ZNSP2M.cjs.map} +1 -1
  75. package/dist/{OBGExaminationWidget-BK4ERETW.mjs → OBGExaminationWidget-POVLALMA.mjs} +4 -4
  76. package/dist/{OBGExaminationWidget-BK4ERETW.mjs.map → OBGExaminationWidget-POVLALMA.mjs.map} +1 -1
  77. package/dist/{OBGPathwayWidget-U5BCAESB.mjs → OBGPathwayWidget-CGT7Q4T2.mjs} +5 -5
  78. package/dist/{OBGPathwayWidget-U5BCAESB.mjs.map → OBGPathwayWidget-CGT7Q4T2.mjs.map} +1 -1
  79. package/dist/{OBGPathwayWidget-5YTUDBEH.cjs → OBGPathwayWidget-WCIQENMO.cjs} +17 -17
  80. package/dist/{OBGPathwayWidget-5YTUDBEH.cjs.map → OBGPathwayWidget-WCIQENMO.cjs.map} +1 -1
  81. package/dist/{ObstetricHistoryWidget-WD572Q7H.mjs → ObstetricHistoryWidget-EGVLL4X2.mjs} +4 -4
  82. package/dist/{ObstetricHistoryWidget-WD572Q7H.mjs.map → ObstetricHistoryWidget-EGVLL4X2.mjs.map} +1 -1
  83. package/dist/{ObstetricHistoryWidget-GC63CB3U.cjs → ObstetricHistoryWidget-XU6R7IPP.cjs} +12 -12
  84. package/dist/{ObstetricHistoryWidget-GC63CB3U.cjs.map → ObstetricHistoryWidget-XU6R7IPP.cjs.map} +1 -1
  85. package/dist/{OphthalDiagnosisWidget-Y3AHD6AG.mjs → OphthalDiagnosisWidget-G5RCC2QZ.mjs} +3 -3
  86. package/dist/{OphthalDiagnosisWidget-Y3AHD6AG.mjs.map → OphthalDiagnosisWidget-G5RCC2QZ.mjs.map} +1 -1
  87. package/dist/{OphthalDiagnosisWidget-QXFK446I.cjs → OphthalDiagnosisWidget-OQPTHJ7E.cjs} +4 -4
  88. package/dist/{OphthalDiagnosisWidget-QXFK446I.cjs.map → OphthalDiagnosisWidget-OQPTHJ7E.cjs.map} +1 -1
  89. package/dist/{OphthalmologyWidget-U2HQMZ4J.cjs → OphthalmologyWidget-I3BKWOI2.cjs} +4 -4
  90. package/dist/{OphthalmologyWidget-U2HQMZ4J.cjs.map → OphthalmologyWidget-I3BKWOI2.cjs.map} +1 -1
  91. package/dist/{OphthalmologyWidget-CRQMN5QU.mjs → OphthalmologyWidget-RG2AI6WA.mjs} +3 -3
  92. package/dist/{OphthalmologyWidget-CRQMN5QU.mjs.map → OphthalmologyWidget-RG2AI6WA.mjs.map} +1 -1
  93. package/dist/{OrthopedicExamWidget-PAOIVU6Z.mjs → OrthopedicExamWidget-BBZP6NVT.mjs} +4 -4
  94. package/dist/{OrthopedicExamWidget-PAOIVU6Z.mjs.map → OrthopedicExamWidget-BBZP6NVT.mjs.map} +1 -1
  95. package/dist/{OrthopedicExamWidget-LP7VN3W5.cjs → OrthopedicExamWidget-M4KKU5RC.cjs} +6 -6
  96. package/dist/{OrthopedicExamWidget-LP7VN3W5.cjs.map → OrthopedicExamWidget-M4KKU5RC.cjs.map} +1 -1
  97. package/dist/{PainScaleFlagsWidget-MRMQ7HPJ.mjs → PainScaleFlagsWidget-E576R6QB.mjs} +4 -4
  98. package/dist/{PainScaleFlagsWidget-MRMQ7HPJ.mjs.map → PainScaleFlagsWidget-E576R6QB.mjs.map} +1 -1
  99. package/dist/{PainScaleFlagsWidget-IBNGVVHD.cjs → PainScaleFlagsWidget-QHGESXNE.cjs} +8 -8
  100. package/dist/{PainScaleFlagsWidget-IBNGVVHD.cjs.map → PainScaleFlagsWidget-QHGESXNE.cjs.map} +1 -1
  101. package/dist/{ReferralWidget-PDNEKHFO.cjs → ReferralWidget-J2PWYFDT.cjs} +7 -7
  102. package/dist/{ReferralWidget-PDNEKHFO.cjs.map → ReferralWidget-J2PWYFDT.cjs.map} +1 -1
  103. package/dist/{ReferralWidget-IYTS32TS.mjs → ReferralWidget-UPYWEO5R.mjs} +4 -4
  104. package/dist/{ReferralWidget-IYTS32TS.mjs.map → ReferralWidget-UPYWEO5R.mjs.map} +1 -1
  105. package/dist/RichTextWidget-BBCNJPMH.mjs +11 -0
  106. package/dist/{RichTextWidget-5OOJ2LJN.mjs.map → RichTextWidget-BBCNJPMH.mjs.map} +1 -1
  107. package/dist/{RichTextWidget-XWLOHKLE.cjs → RichTextWidget-CRQHNVJR.cjs} +7 -7
  108. package/dist/{RichTextWidget-XWLOHKLE.cjs.map → RichTextWidget-CRQHNVJR.cjs.map} +1 -1
  109. package/dist/SmartTextarea-DKWV4R6H.cjs +19 -0
  110. package/dist/{SmartTextarea-L7Q4CORK.cjs.map → SmartTextarea-DKWV4R6H.cjs.map} +1 -1
  111. package/dist/SmartTextarea-ZTQIW6O2.mjs +10 -0
  112. package/dist/{SmartTextarea-ZCXGMZLG.mjs.map → SmartTextarea-ZTQIW6O2.mjs.map} +1 -1
  113. package/dist/{SuggestionTextareaWidget-RN5LZYFC.mjs → SuggestionTextareaWidget-22NR3JWM.mjs} +7 -7
  114. package/dist/{SuggestionTextareaWidget-RN5LZYFC.mjs.map → SuggestionTextareaWidget-22NR3JWM.mjs.map} +1 -1
  115. package/dist/{SuggestionTextareaWidget-2TEITBPF.cjs → SuggestionTextareaWidget-WCTPWW2E.cjs} +18 -18
  116. package/dist/{SuggestionTextareaWidget-2TEITBPF.cjs.map → SuggestionTextareaWidget-WCTPWW2E.cjs.map} +1 -1
  117. package/dist/{SurgicalRiskFlagsWidget-JCSL3GWS.cjs → SurgicalRiskFlagsWidget-Q5FTWB3M.cjs} +6 -6
  118. package/dist/{SurgicalRiskFlagsWidget-JCSL3GWS.cjs.map → SurgicalRiskFlagsWidget-Q5FTWB3M.cjs.map} +1 -1
  119. package/dist/{SurgicalRiskFlagsWidget-DBICX4MB.mjs → SurgicalRiskFlagsWidget-WCAHZKKG.mjs} +4 -4
  120. package/dist/{SurgicalRiskFlagsWidget-DBICX4MB.mjs.map → SurgicalRiskFlagsWidget-WCAHZKKG.mjs.map} +1 -1
  121. package/dist/{UrologyExaminationWidget-74L3IN2X.cjs → UrologyExaminationWidget-JYUGZ5CG.cjs} +12 -12
  122. package/dist/{UrologyExaminationWidget-74L3IN2X.cjs.map → UrologyExaminationWidget-JYUGZ5CG.cjs.map} +1 -1
  123. package/dist/{UrologyExaminationWidget-IQEBP6CI.mjs → UrologyExaminationWidget-QDTD3FJX.mjs} +4 -4
  124. package/dist/{UrologyExaminationWidget-IQEBP6CI.mjs.map → UrologyExaminationWidget-QDTD3FJX.mjs.map} +1 -1
  125. package/dist/{UrologyPathwayWidget-S4QY6RD6.mjs → UrologyPathwayWidget-QTFKUIM7.mjs} +4 -4
  126. package/dist/{UrologyPathwayWidget-S4QY6RD6.mjs.map → UrologyPathwayWidget-QTFKUIM7.mjs.map} +1 -1
  127. package/dist/{UrologyPathwayWidget-UJY5EW2G.cjs → UrologyPathwayWidget-TXZQNGP4.cjs} +7 -7
  128. package/dist/{UrologyPathwayWidget-UJY5EW2G.cjs.map → UrologyPathwayWidget-TXZQNGP4.cjs.map} +1 -1
  129. package/dist/{UrologySmartHistoryWidget-XKZF63BV.cjs → UrologySmartHistoryWidget-53NATEO3.cjs} +15 -15
  130. package/dist/{UrologySmartHistoryWidget-XKZF63BV.cjs.map → UrologySmartHistoryWidget-53NATEO3.cjs.map} +1 -1
  131. package/dist/{UrologySmartHistoryWidget-NFTHHK6A.mjs → UrologySmartHistoryWidget-PBU4QXQJ.mjs} +4 -4
  132. package/dist/{UrologySmartHistoryWidget-NFTHHK6A.mjs.map → UrologySmartHistoryWidget-PBU4QXQJ.mjs.map} +1 -1
  133. package/dist/{VitalsWidget-MBYDGC7U.mjs → VitalsWidget-BRFUKGNO.mjs} +3 -3
  134. package/dist/{VitalsWidget-MBYDGC7U.mjs.map → VitalsWidget-BRFUKGNO.mjs.map} +1 -1
  135. package/dist/{VitalsWidget-44UWQGIF.cjs → VitalsWidget-PDCYXNBM.cjs} +5 -5
  136. package/dist/{VitalsWidget-44UWQGIF.cjs.map → VitalsWidget-PDCYXNBM.cjs.map} +1 -1
  137. package/dist/{chunk-AZVJU7NZ.mjs → chunk-3KRDT7TX.mjs} +5 -5
  138. package/dist/{chunk-AZVJU7NZ.mjs.map → chunk-3KRDT7TX.mjs.map} +1 -1
  139. package/dist/{chunk-ZSOIQVB3.mjs → chunk-5I2RC47Y.mjs} +3 -3
  140. package/dist/{chunk-ZSOIQVB3.mjs.map → chunk-5I2RC47Y.mjs.map} +1 -1
  141. package/dist/{chunk-KPGTPJDH.cjs → chunk-6YX37XBM.cjs} +4 -4
  142. package/dist/{chunk-KPGTPJDH.cjs.map → chunk-6YX37XBM.cjs.map} +1 -1
  143. package/dist/{chunk-XR2ZM654.mjs → chunk-7L2JOWGA.mjs} +3 -3
  144. package/dist/{chunk-XR2ZM654.mjs.map → chunk-7L2JOWGA.mjs.map} +1 -1
  145. package/dist/{chunk-FZEEWRW3.cjs → chunk-BOBX45NY.cjs} +5 -5
  146. package/dist/{chunk-FZEEWRW3.cjs.map → chunk-BOBX45NY.cjs.map} +1 -1
  147. package/dist/{chunk-JNVSA77L.cjs → chunk-GPU5P3FB.cjs} +7 -7
  148. package/dist/{chunk-JNVSA77L.cjs.map → chunk-GPU5P3FB.cjs.map} +1 -1
  149. package/dist/{chunk-NJJTIL3U.cjs → chunk-I7TJVWYV.cjs} +6 -6
  150. package/dist/{chunk-NJJTIL3U.cjs.map → chunk-I7TJVWYV.cjs.map} +1 -1
  151. package/dist/{chunk-CTW65YW2.cjs → chunk-L4CIIT4U.cjs} +9 -9
  152. package/dist/{chunk-CTW65YW2.cjs.map → chunk-L4CIIT4U.cjs.map} +1 -1
  153. package/dist/{chunk-DE7VZVKR.cjs → chunk-MQ2JV7HL.cjs} +11 -11
  154. package/dist/{chunk-DE7VZVKR.cjs.map → chunk-MQ2JV7HL.cjs.map} +1 -1
  155. package/dist/{chunk-IDSBJOFY.cjs → chunk-SHQHDSA4.cjs} +76 -2
  156. package/dist/chunk-SHQHDSA4.cjs.map +1 -0
  157. package/dist/{chunk-YYPMIUDW.mjs → chunk-ULMK3TUI.mjs} +3 -3
  158. package/dist/{chunk-YYPMIUDW.mjs.map → chunk-ULMK3TUI.mjs.map} +1 -1
  159. package/dist/{chunk-GFDE2KZC.mjs → chunk-VZT5YNCD.mjs} +4 -4
  160. package/dist/{chunk-GFDE2KZC.mjs.map → chunk-VZT5YNCD.mjs.map} +1 -1
  161. package/dist/{chunk-MIUUO4CI.mjs → chunk-YHNI5NIX.mjs} +5 -5
  162. package/dist/{chunk-MIUUO4CI.mjs.map → chunk-YHNI5NIX.mjs.map} +1 -1
  163. package/dist/{chunk-ZGPHTPAN.mjs → chunk-ZTT5XJR7.mjs} +73 -3
  164. package/dist/chunk-ZTT5XJR7.mjs.map +1 -0
  165. package/dist/index.cjs +596 -125
  166. package/dist/index.cjs.map +1 -1
  167. package/dist/index.d.cts +64 -6
  168. package/dist/index.d.ts +64 -6
  169. package/dist/index.mjs +544 -74
  170. package/dist/index.mjs.map +1 -1
  171. package/dist/read-only-table.d.cts +1 -1
  172. package/dist/read-only-table.d.ts +1 -1
  173. package/dist/rich-text.cjs +5 -5
  174. package/dist/rich-text.mjs +4 -4
  175. package/dist/smart.cjs +5 -5
  176. package/dist/smart.d.cts +1 -1
  177. package/dist/smart.d.ts +1 -1
  178. package/dist/smart.mjs +3 -3
  179. package/dist/{types-D0iYXUOo.d.cts → types-CYtJk8H9.d.cts} +49 -3
  180. package/dist/{types-D0iYXUOo.d.ts → types-CYtJk8H9.d.ts} +49 -3
  181. package/package.json +1 -1
  182. package/dist/RichTextWidget-5OOJ2LJN.mjs +0 -11
  183. package/dist/SmartTextarea-L7Q4CORK.cjs +0 -19
  184. package/dist/SmartTextarea-ZCXGMZLG.mjs +0 -10
  185. package/dist/chunk-IDSBJOFY.cjs.map +0 -1
  186. package/dist/chunk-ZGPHTPAN.mjs.map +0 -1
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkDE7VZVKR_cjs = require('./chunk-DE7VZVKR.cjs');
3
+ var chunkMQ2JV7HL_cjs = require('./chunk-MQ2JV7HL.cjs');
4
4
  var chunkKJA5BLGX_cjs = require('./chunk-KJA5BLGX.cjs');
5
5
  var chunkQKJ7BQSR_cjs = require('./chunk-QKJ7BQSR.cjs');
6
6
  var chunkPZBJYPWW_cjs = require('./chunk-PZBJYPWW.cjs');
@@ -13,20 +13,21 @@ var chunkUGGUIXUS_cjs = require('./chunk-UGGUIXUS.cjs');
13
13
  require('./chunk-PHADAQSH.cjs');
14
14
  var chunkP62377LB_cjs = require('./chunk-P62377LB.cjs');
15
15
  var chunkIFSKLIS2_cjs = require('./chunk-IFSKLIS2.cjs');
16
- require('./chunk-FZEEWRW3.cjs');
16
+ require('./chunk-BOBX45NY.cjs');
17
17
  var chunk5E3APMY6_cjs = require('./chunk-5E3APMY6.cjs');
18
- var chunkKPGTPJDH_cjs = require('./chunk-KPGTPJDH.cjs');
18
+ var chunk6YX37XBM_cjs = require('./chunk-6YX37XBM.cjs');
19
19
  var chunkKMJOTMUQ_cjs = require('./chunk-KMJOTMUQ.cjs');
20
20
  var chunkTJHG5WHX_cjs = require('./chunk-TJHG5WHX.cjs');
21
21
  require('./chunk-4KSZUIJE.cjs');
22
22
  var chunkO3VQBPEW_cjs = require('./chunk-O3VQBPEW.cjs');
23
- var chunkIDSBJOFY_cjs = require('./chunk-IDSBJOFY.cjs');
23
+ var chunkSHQHDSA4_cjs = require('./chunk-SHQHDSA4.cjs');
24
24
  var chunkJMGUUFOJ_cjs = require('./chunk-JMGUUFOJ.cjs');
25
25
  var chunkFHHISVCH_cjs = require('./chunk-FHHISVCH.cjs');
26
26
  var React6 = require('react');
27
27
  var jsxRuntime = require('react/jsx-runtime');
28
28
  var lucideReact = require('lucide-react');
29
29
  var RadioGroupPrimitive = require('@radix-ui/react-radio-group');
30
+ var dateFns = require('date-fns');
30
31
 
31
32
  function _interopNamespace(e) {
32
33
  if (e && e.__esModule) return e;
@@ -49,6 +50,66 @@ function _interopNamespace(e) {
49
50
  var React6__namespace = /*#__PURE__*/_interopNamespace(React6);
50
51
  var RadioGroupPrimitive__namespace = /*#__PURE__*/_interopNamespace(RadioGroupPrimitive);
51
52
 
53
+ // src/core/persistence/campBooking.ts
54
+ var CampBookingPersistenceProvider = class {
55
+ config;
56
+ constructor(config) {
57
+ this.config = config;
58
+ }
59
+ async save(_formId, state) {
60
+ const {
61
+ baseUrl,
62
+ authToken,
63
+ patientId,
64
+ campDateFieldId = "camp_date",
65
+ slotFieldId = "camp_time_slot",
66
+ bookingFormDataFields
67
+ } = this.config;
68
+ const campDateValue = state.values[campDateFieldId];
69
+ const instanceId = campDateValue && typeof campDateValue === "object" && !Array.isArray(campDateValue) ? campDateValue.id : null;
70
+ if (!instanceId || typeof instanceId !== "string") {
71
+ throw new Error("Camp booking: no instance selected (camp_date field is empty or invalid).");
72
+ }
73
+ const primarySlotId = state.values[slotFieldId];
74
+ if (!primarySlotId || typeof primarySlotId !== "string") {
75
+ throw new Error("Camp booking: no time slot selected.");
76
+ }
77
+ const excludeKeys = /* @__PURE__ */ new Set([campDateFieldId, slotFieldId]);
78
+ const bookingFormData = {};
79
+ const fieldKeys = bookingFormDataFields ?? Object.keys(state.values);
80
+ for (const key of fieldKeys) {
81
+ if (!excludeKeys.has(key)) {
82
+ bookingFormData[key] = state.values[key];
83
+ }
84
+ }
85
+ const idempotencyKey = typeof crypto !== "undefined" && typeof crypto.randomUUID === "function" ? crypto.randomUUID() : `${Date.now()}-${Math.random().toString(36).slice(2)}`;
86
+ const payload = {
87
+ primary_slot_id: primarySlotId,
88
+ patient_id: patientId,
89
+ booking_form_data: bookingFormData,
90
+ idempotency_key: idempotencyKey
91
+ };
92
+ const headers = { "Content-Type": "application/json" };
93
+ if (authToken) headers["Authorization"] = `Bearer ${authToken}`;
94
+ const response = await fetch(`${baseUrl}/api/camps/instances/${instanceId}/book/`, {
95
+ method: "POST",
96
+ headers,
97
+ body: JSON.stringify(payload)
98
+ });
99
+ if (!response.ok) {
100
+ const errorText = await response.text().catch(() => "");
101
+ throw new Error(
102
+ `Camp booking failed: ${response.status} ${response.statusText}${errorText ? ` \u2013 ${errorText}` : ""}`
103
+ );
104
+ }
105
+ }
106
+ async load(_formId) {
107
+ return null;
108
+ }
109
+ async clear(_formId) {
110
+ }
111
+ };
112
+
52
113
  // src/core/marMedicationOrdersMeta.ts
53
114
  var MAR_MEDICATION_ORDERS_META_KEY = "mar_medication_orders";
54
115
  function fieldMetaRequestsMarMedicationOrdersButton(meta) {
@@ -56,10 +117,10 @@ function fieldMetaRequestsMarMedicationOrdersButton(meta) {
56
117
  return meta[MAR_MEDICATION_ORDERS_META_KEY] === true;
57
118
  }
58
119
  var MultiSelectWidget = ({ fieldId }) => {
59
- const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkIDSBJOFY_cjs.useField(fieldId);
120
+ const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkSHQHDSA4_cjs.useField(fieldId);
60
121
  const [options, setOptions] = React6.useState([]);
61
122
  const [loading, setLoading] = React6.useState(false);
62
- const { state } = chunkKPGTPJDH_cjs.useForm();
123
+ const { state } = chunk6YX37XBM_cjs.useForm();
63
124
  const showError = !!error && (touched || state.submitAttempted);
64
125
  const currentValues = Array.isArray(value) ? value : [];
65
126
  React6.useEffect(() => {
@@ -123,7 +184,7 @@ var MultiSelectWidget = ({ fieldId }) => {
123
184
  var RepeatableWidget = ({
124
185
  fieldId
125
186
  }) => {
126
- const { fieldDef, value, setValue, error, disabled, touched } = chunkIDSBJOFY_cjs.useField(fieldId);
187
+ const { fieldDef, value, setValue, error, disabled, touched } = chunkSHQHDSA4_cjs.useField(fieldId);
127
188
  if (!fieldDef || fieldDef.type !== "repeatable") return null;
128
189
  const def = fieldDef;
129
190
  const rows = Array.isArray(value) ? value : [];
@@ -226,9 +287,9 @@ function extractImageDisplayUrl(value) {
226
287
  return null;
227
288
  }
228
289
  var ImageUploadWidget = ({ fieldId }) => {
229
- const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkIDSBJOFY_cjs.useField(fieldId);
230
- const store = chunkIDSBJOFY_cjs.useFormStore();
231
- const { state } = chunkKPGTPJDH_cjs.useForm();
290
+ const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkSHQHDSA4_cjs.useField(fieldId);
291
+ const store = chunkSHQHDSA4_cjs.useFormStore();
292
+ const { state } = chunk6YX37XBM_cjs.useForm();
232
293
  const [isUploading, setIsUploading] = React6.useState(false);
233
294
  const [preview, setPreview] = React6.useState(null);
234
295
  const fileInputRef = React6.useRef(null);
@@ -407,9 +468,9 @@ function extractMediaDisplayUrl(value) {
407
468
  return null;
408
469
  }
409
470
  var MediaUploadWidget = ({ fieldId }) => {
410
- const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkIDSBJOFY_cjs.useField(fieldId);
411
- const store = chunkIDSBJOFY_cjs.useFormStore();
412
- const { state } = chunkKPGTPJDH_cjs.useForm();
471
+ const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkSHQHDSA4_cjs.useField(fieldId);
472
+ const store = chunkSHQHDSA4_cjs.useFormStore();
473
+ const { state } = chunk6YX37XBM_cjs.useForm();
413
474
  const [isUploading, setIsUploading] = React6.useState(false);
414
475
  const [preview, setPreview] = React6.useState(null);
415
476
  const [previewIsPdf, setPreviewIsPdf] = React6.useState(false);
@@ -606,9 +667,9 @@ function extractDisplayUrl(value) {
606
667
  return null;
607
668
  }
608
669
  var SignatureUploadWidget = ({ fieldId }) => {
609
- const { fieldDef, setValue, setTouched, error, disabled, touched, value } = chunkIDSBJOFY_cjs.useField(fieldId);
610
- const store = chunkIDSBJOFY_cjs.useFormStore();
611
- const { state } = chunkKPGTPJDH_cjs.useForm();
670
+ const { fieldDef, setValue, setTouched, error, disabled, touched, value } = chunkSHQHDSA4_cjs.useField(fieldId);
671
+ const store = chunkSHQHDSA4_cjs.useFormStore();
672
+ const { state } = chunk6YX37XBM_cjs.useForm();
612
673
  const canvasRef = React6.useRef(null);
613
674
  const pathRef = React6.useRef("");
614
675
  const lastPointRef = React6.useRef(null);
@@ -999,9 +1060,9 @@ function fileRows(listLayout, localFiles, value) {
999
1060
  var FormFileUploadWidget = ({
1000
1061
  fieldId
1001
1062
  }) => {
1002
- const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkIDSBJOFY_cjs.useField(fieldId);
1003
- const store = chunkIDSBJOFY_cjs.useFormStore();
1004
- const { state } = chunkKPGTPJDH_cjs.useForm();
1063
+ const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkSHQHDSA4_cjs.useField(fieldId);
1064
+ const store = chunkSHQHDSA4_cjs.useFormStore();
1065
+ const { state } = chunk6YX37XBM_cjs.useForm();
1005
1066
  const [localFiles, setLocalFiles] = React6.useState(null);
1006
1067
  const [isUploading, setIsUploading] = React6.useState(false);
1007
1068
  const showError = !!error && (touched || state.submitAttempted);
@@ -1185,10 +1246,10 @@ var RadioGroupItem = React6__namespace.forwardRef(({ className, ...props }, ref)
1185
1246
  });
1186
1247
  RadioGroupItem.displayName = RadioGroupPrimitive__namespace.Item.displayName;
1187
1248
  var RadioWidget = ({ fieldId }) => {
1188
- const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkIDSBJOFY_cjs.useField(fieldId);
1249
+ const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkSHQHDSA4_cjs.useField(fieldId);
1189
1250
  const [options, setOptions] = React6.useState([]);
1190
1251
  const [loading, setLoading] = React6.useState(false);
1191
- const { state } = chunkKPGTPJDH_cjs.useForm();
1252
+ const { state } = chunk6YX37XBM_cjs.useForm();
1192
1253
  const showError = !!error && (touched || state.submitAttempted);
1193
1254
  React6.useEffect(() => {
1194
1255
  if (!fieldDef) return;
@@ -1258,10 +1319,10 @@ function isOptionSelected(selected, optValue) {
1258
1319
  );
1259
1320
  }
1260
1321
  var CheckboxWidget = ({ fieldId }) => {
1261
- const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkIDSBJOFY_cjs.useField(fieldId);
1322
+ const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkSHQHDSA4_cjs.useField(fieldId);
1262
1323
  const [options, setOptions] = React6.useState([]);
1263
1324
  const [loading, setLoading] = React6.useState(false);
1264
- const { state } = chunkKPGTPJDH_cjs.useForm();
1325
+ const { state } = chunk6YX37XBM_cjs.useForm();
1265
1326
  const showError = !!error && (touched || state.submitAttempted);
1266
1327
  const selectedValues = Array.isArray(value) ? value : [];
1267
1328
  React6.useEffect(() => {
@@ -1333,8 +1394,8 @@ var CheckboxWidget = ({ fieldId }) => {
1333
1394
  ] });
1334
1395
  };
1335
1396
  var SliderWidget = ({ fieldId }) => {
1336
- const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkIDSBJOFY_cjs.useField(fieldId);
1337
- const { state } = chunkKPGTPJDH_cjs.useForm();
1397
+ const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkSHQHDSA4_cjs.useField(fieldId);
1398
+ const { state } = chunk6YX37XBM_cjs.useForm();
1338
1399
  const showError = !!error && (touched || state.submitAttempted);
1339
1400
  if (!fieldDef || fieldDef.type !== "slider") return null;
1340
1401
  const def = fieldDef;
@@ -1385,9 +1446,9 @@ var SliderWidget = ({ fieldId }) => {
1385
1446
  };
1386
1447
  var RESEND_COOLDOWN_SECONDS = 30;
1387
1448
  var PhoneInputWidget = ({ fieldId }) => {
1388
- const { fieldDef, error, touched, disabled, value: fieldValue } = chunkIDSBJOFY_cjs.useField(fieldId);
1389
- const { state } = chunkKPGTPJDH_cjs.useForm();
1390
- const store = chunkIDSBJOFY_cjs.useFormStore();
1449
+ const { fieldDef, error, touched, disabled, value: fieldValue } = chunkSHQHDSA4_cjs.useField(fieldId);
1450
+ const { state } = chunk6YX37XBM_cjs.useForm();
1451
+ const store = chunkSHQHDSA4_cjs.useFormStore();
1391
1452
  const rawPhone = fieldValue ?? "";
1392
1453
  const wasAlreadySent = rawPhone.length === 10 && !error;
1393
1454
  const [status, setStatus] = React6.useState(wasAlreadySent ? "sent" : "idle");
@@ -1587,11 +1648,11 @@ var PhoneInputWidget = ({ fieldId }) => {
1587
1648
  ] });
1588
1649
  };
1589
1650
  var OtpInputWidget = ({ fieldId }) => {
1590
- const { fieldDef, error, touched, disabled } = chunkIDSBJOFY_cjs.useField(fieldId);
1591
- const { state } = chunkKPGTPJDH_cjs.useForm();
1592
- const store = chunkIDSBJOFY_cjs.useFormStore();
1651
+ const { fieldDef, error, touched, disabled } = chunkSHQHDSA4_cjs.useField(fieldId);
1652
+ const { state } = chunk6YX37XBM_cjs.useForm();
1653
+ const store = chunkSHQHDSA4_cjs.useFormStore();
1593
1654
  const phoneFieldId = fieldDef?.meta?.phoneFieldId ?? "phone";
1594
- const { value: phoneValue } = chunkIDSBJOFY_cjs.useField(phoneFieldId);
1655
+ const { value: phoneValue } = chunkSHQHDSA4_cjs.useField(phoneFieldId);
1595
1656
  const phone = phoneValue ?? "";
1596
1657
  const e164Phone = phone.startsWith("+") ? phone : `+91${phone}`;
1597
1658
  const [otp, setOtp] = React6.useState("");
@@ -1734,6 +1795,387 @@ var OtpInputWidget = ({ fieldId }) => {
1734
1795
  showError && /* @__PURE__ */ jsxRuntime.jsx("p", { className: chunk5E3APMY6_cjs.fieldErrorClass(fieldDef, "text-xs text-red-500"), children: error })
1735
1796
  ] });
1736
1797
  };
1798
+ function formatCampDatePill(date) {
1799
+ const parsed = dateFns.parseISO(date);
1800
+ return {
1801
+ day: dateFns.format(parsed, "d"),
1802
+ weekday: dateFns.format(parsed, "EEE"),
1803
+ label: dateFns.format(parsed, "EEE, MMM d, yyyy")
1804
+ };
1805
+ }
1806
+ async function fetchBookableInstances(base, campId, token) {
1807
+ const today = dateFns.format(/* @__PURE__ */ new Date(), "yyyy-MM-dd");
1808
+ const end = dateFns.format(dateFns.addDays(/* @__PURE__ */ new Date(), 30), "yyyy-MM-dd");
1809
+ const headers = token ? { Authorization: `Bearer ${token}` } : {};
1810
+ const res = await fetch(
1811
+ `${base}/api/camps/${campId}/instances/?start_date=${today}&end_date=${end}`,
1812
+ { headers }
1813
+ );
1814
+ if (!res.ok) throw new Error(`Instances fetch failed: ${res.status}`);
1815
+ const data = await res.json();
1816
+ const results = data.results ?? [];
1817
+ const withAvailability = await Promise.all(
1818
+ results.map(async (inst) => {
1819
+ const avRes = await fetch(`${base}/api/camps/instances/${inst.id}/availability/`, {
1820
+ headers
1821
+ });
1822
+ const avData = avRes.ok ? await avRes.json() : { windows: [] };
1823
+ const windows = avData.windows ?? [];
1824
+ return { inst, windows };
1825
+ })
1826
+ );
1827
+ return withAvailability.filter(
1828
+ ({ windows }) => windows.some((w) => w.is_bookable && w.primary_available_capacity > 0)
1829
+ ).map(({ inst, windows }) => ({
1830
+ id: inst.id,
1831
+ date: inst.date,
1832
+ location: inst.notes || "",
1833
+ spotsLeft: windows.reduce(
1834
+ (sum, w) => sum + (w.is_bookable ? w.primary_available_capacity ?? 0 : 0),
1835
+ 0
1836
+ )
1837
+ }));
1838
+ }
1839
+ var datesScrollClass = "flex gap-2.5 overflow-x-auto overflow-y-visible pb-4 pt-2 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden";
1840
+ var CAMP_DATE_PRIMARY_GRADIENT = "linear-gradient(328deg, #1F30A0 19.08%, #914BFA 80.92%)";
1841
+ var campDatePillShadow = {
1842
+ unselected: "rgba(0, 0, 0, 0.12) 0px 6px 14px",
1843
+ selected: "rgba(99, 99, 99, 0.2) 0px 2px 8px 0px"
1844
+ };
1845
+ var CampDatesWidget = ({ fieldId }) => {
1846
+ const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkSHQHDSA4_cjs.useField(fieldId);
1847
+ const { state } = chunk6YX37XBM_cjs.useForm();
1848
+ const store = chunkSHQHDSA4_cjs.useFormStore();
1849
+ const showError = !!error && (touched || state.submitAttempted);
1850
+ const [fetchedOptions, setFetchedOptions] = React6.useState([]);
1851
+ const [isLoading, setIsLoading] = React6.useState(false);
1852
+ const [fetchError, setFetchError] = React6.useState(null);
1853
+ const [monthIndex, setMonthIndex] = React6.useState(0);
1854
+ const def = fieldDef;
1855
+ const campId = def?.meta?.campId;
1856
+ const hasStaticOptions = (def?.options?.length ?? 0) > 0;
1857
+ React6.useEffect(() => {
1858
+ if (!campId || hasStaticOptions) return;
1859
+ const cfg = store.getConfig();
1860
+ const base = cfg.auth?.baseUrl ?? (typeof process !== "undefined" ? process.env?.NEXT_PUBLIC_API_URL ?? "" : "");
1861
+ const token = cfg.camps?.authToken ?? "";
1862
+ setIsLoading(true);
1863
+ setFetchError(null);
1864
+ fetchBookableInstances(base, campId, token).then(setFetchedOptions).catch(() => setFetchError("Failed to load available dates. Please try again.")).finally(() => setIsLoading(false));
1865
+ }, [campId, hasStaticOptions]);
1866
+ const camps = hasStaticOptions ? def?.options ?? [] : fetchedOptions;
1867
+ const selected = chunkSHQHDSA4_cjs.parseCampDateValue(value, camps);
1868
+ const sortedCamps = React6.useMemo(
1869
+ () => [...camps].sort((a, b) => a.date.localeCompare(b.date)),
1870
+ [camps]
1871
+ );
1872
+ const months = React6.useMemo(() => {
1873
+ const seen = /* @__PURE__ */ new Set();
1874
+ const result = [];
1875
+ for (const camp of sortedCamps) {
1876
+ const monthStart = dateFns.startOfMonth(dateFns.parseISO(camp.date));
1877
+ const key = dateFns.format(monthStart, "yyyy-MM");
1878
+ if (!seen.has(key)) {
1879
+ seen.add(key);
1880
+ result.push(monthStart);
1881
+ }
1882
+ }
1883
+ return result;
1884
+ }, [sortedCamps]);
1885
+ React6.useEffect(() => {
1886
+ if (months.length === 0) return;
1887
+ if (selected?.date) {
1888
+ const idx = months.findIndex((m) => dateFns.isSameMonth(m, dateFns.parseISO(selected.date)));
1889
+ if (idx >= 0) {
1890
+ setMonthIndex(idx);
1891
+ return;
1892
+ }
1893
+ }
1894
+ setMonthIndex(0);
1895
+ }, [months, selected?.date]);
1896
+ if (!fieldDef || !def) return null;
1897
+ const showLabel = chunk5E3APMY6_cjs.isLabelVisible(fieldDef);
1898
+ const currentMonth = months[monthIndex] ?? null;
1899
+ const visibleCamps = currentMonth ? sortedCamps.filter((camp) => dateFns.isSameMonth(dateFns.parseISO(camp.date), currentMonth)) : sortedCamps;
1900
+ const canGoPrev = monthIndex > 0;
1901
+ const canGoNext = monthIndex < months.length - 1;
1902
+ const handleSelect = (campOptId) => {
1903
+ if (disabled) return;
1904
+ const camp = camps.find((c) => c.id === campOptId);
1905
+ if (!camp) return;
1906
+ const nextSelection = chunkSHQHDSA4_cjs.campDateSelectionFromOption(camp);
1907
+ const prevId = selected?.id ?? null;
1908
+ setValue(nextSelection);
1909
+ setTouched();
1910
+ store.setExternalError(fieldId, null);
1911
+ const timeSlotFieldId = def.meta?.timeSlotFieldId;
1912
+ if (timeSlotFieldId && prevId !== campOptId) {
1913
+ store.setValue(timeSlotFieldId, null);
1914
+ }
1915
+ };
1916
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk5E3APMY6_cjs.fieldWrapperClass(fieldDef, "space-y-3"), children: [
1917
+ showLabel || months.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-3", children: [
1918
+ showLabel ? /* @__PURE__ */ jsxRuntime.jsxs("h3", { className: "text-sm font-normal text-[#727272]", children: [
1919
+ fieldDef.label,
1920
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5E3APMY6_cjs.FieldRequiredIndicator, { fieldDef })
1921
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, className: "shrink-0" }),
1922
+ months.length > 0 && currentMonth ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-1 text-[#191919]", children: [
1923
+ /* @__PURE__ */ jsxRuntime.jsx(
1924
+ "button",
1925
+ {
1926
+ type: "button",
1927
+ "aria-label": "Previous month",
1928
+ disabled: !canGoPrev || disabled,
1929
+ onClick: () => setMonthIndex((i) => Math.max(0, i - 1)),
1930
+ className: chunkFHHISVCH_cjs.cn(
1931
+ "rounded p-0.5 transition-opacity",
1932
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
1933
+ (!canGoPrev || disabled) && "cursor-not-allowed opacity-30"
1934
+ ),
1935
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, { className: "h-4 w-4", "aria-hidden": true })
1936
+ }
1937
+ ),
1938
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-[3.5rem] text-center text-sm font-medium", children: dateFns.format(currentMonth, "MMMM") }),
1939
+ /* @__PURE__ */ jsxRuntime.jsx(
1940
+ "button",
1941
+ {
1942
+ type: "button",
1943
+ "aria-label": "Next month",
1944
+ disabled: !canGoNext || disabled,
1945
+ onClick: () => setMonthIndex((i) => Math.min(months.length - 1, i + 1)),
1946
+ className: chunkFHHISVCH_cjs.cn(
1947
+ "rounded p-0.5 transition-opacity",
1948
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
1949
+ (!canGoNext || disabled) && "cursor-not-allowed opacity-30"
1950
+ ),
1951
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "h-4 w-4", "aria-hidden": true })
1952
+ }
1953
+ )
1954
+ ] }) : null
1955
+ ] }) : null,
1956
+ fieldDef.description ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: chunk5E3APMY6_cjs.fieldDescriptionClass(fieldDef, "text-sm text-muted-foreground"), children: fieldDef.description }) : null,
1957
+ isLoading ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: datesScrollClass, children: [0, 1, 2, 3, 4].map((i) => /* @__PURE__ */ jsxRuntime.jsx(
1958
+ "div",
1959
+ {
1960
+ className: "h-[76px] w-12 shrink-0 animate-pulse rounded-full bg-[#D9D9D9]"
1961
+ },
1962
+ i
1963
+ )) }) : fetchError ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-red-500", children: fetchError }) : camps.length === 0 && campId ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: "No available dates in the next 30 days." }) : /* @__PURE__ */ jsxRuntime.jsx("div", { role: "radiogroup", "aria-label": fieldDef.label, className: datesScrollClass, children: visibleCamps.map((camp) => {
1964
+ const { day, weekday, label } = formatCampDatePill(camp.date);
1965
+ const isSelected = selected?.id === camp.id;
1966
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1967
+ "button",
1968
+ {
1969
+ type: "button",
1970
+ role: "radio",
1971
+ "aria-checked": isSelected,
1972
+ "aria-label": label,
1973
+ disabled,
1974
+ onClick: () => handleSelect(camp.id),
1975
+ className: chunkFHHISVCH_cjs.cn(
1976
+ "relative flex h-[76px] w-12 shrink-0 flex-col items-center justify-between gap-2.5 rounded-full p-1.5",
1977
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
1978
+ !isSelected && "bg-white",
1979
+ disabled && "cursor-not-allowed opacity-60"
1980
+ ),
1981
+ style: {
1982
+ boxShadow: isSelected ? "none" : campDatePillShadow.unselected
1983
+ },
1984
+ children: [
1985
+ /* @__PURE__ */ jsxRuntime.jsx(
1986
+ "div",
1987
+ {
1988
+ "aria-hidden": true,
1989
+ className: chunkFHHISVCH_cjs.cn(
1990
+ "absolute inset-0 rounded-full bg-[#2F2F2F] transition-opacity duration-400",
1991
+ isSelected ? "opacity-100" : "opacity-0"
1992
+ ),
1993
+ style: { boxShadow: campDatePillShadow.selected }
1994
+ }
1995
+ ),
1996
+ /* @__PURE__ */ jsxRuntime.jsx(
1997
+ "div",
1998
+ {
1999
+ className: chunkFHHISVCH_cjs.cn(
2000
+ "relative z-10 flex h-9 w-9 items-center justify-center rounded-full text-[12px] font-medium transition-colors duration-200",
2001
+ isSelected ? "text-white" : "bg-[#D9D9D9] text-[#1E1E1E]"
2002
+ ),
2003
+ style: isSelected ? { backgroundImage: CAMP_DATE_PRIMARY_GRADIENT } : void 0,
2004
+ children: day
2005
+ }
2006
+ ),
2007
+ /* @__PURE__ */ jsxRuntime.jsx(
2008
+ "span",
2009
+ {
2010
+ className: chunkFHHISVCH_cjs.cn(
2011
+ "relative z-10 mb-1.5 text-center text-[10px] font-normal transition-colors duration-400",
2012
+ isSelected ? "text-white" : "text-[#1E1E1E]"
2013
+ ),
2014
+ children: weekday
2015
+ }
2016
+ )
2017
+ ]
2018
+ },
2019
+ camp.id
2020
+ );
2021
+ }) }),
2022
+ showError ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: chunk5E3APMY6_cjs.fieldErrorClass(fieldDef, "text-xs text-red-500"), children: error }) : null
2023
+ ] });
2024
+ };
2025
+ function formatSlotTime(time) {
2026
+ try {
2027
+ return dateFns.format(dateFns.parse(time, "HH:mm:ss", /* @__PURE__ */ new Date()), "hh:mm a");
2028
+ } catch {
2029
+ return time;
2030
+ }
2031
+ }
2032
+ function mapWindowsToSlots(windows) {
2033
+ return windows.map((w) => ({
2034
+ id: w.primary_slot_id,
2035
+ time: formatSlotTime(w.start_time),
2036
+ spotsLeft: w.is_bookable ? w.primary_available_capacity ?? 0 : 0,
2037
+ capacity: w.primary_available_capacity ?? 0
2038
+ }));
2039
+ }
2040
+ var slotsScrollClass = "w-full overflow-x-auto pb-1 [scrollbar-width:thin] [&::-webkit-scrollbar]:h-1 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-border/70";
2041
+ var slotPillShadow = "0 2.596px 5.193px 0 rgba(0, 0, 0, 0.10)";
2042
+ var CampTimeSlotsWidget = ({ fieldId }) => {
2043
+ const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkSHQHDSA4_cjs.useField(fieldId);
2044
+ const { state } = chunk6YX37XBM_cjs.useForm();
2045
+ const store = chunkSHQHDSA4_cjs.useFormStore();
2046
+ const campDateFieldId = fieldDef?.meta?.campDateFieldId ?? "camp_date";
2047
+ const { value: campDateValue, fieldDef: campDateFieldDef } = chunkSHQHDSA4_cjs.useField(campDateFieldId);
2048
+ const showError = !!error && (touched || state.submitAttempted);
2049
+ const def = fieldDef;
2050
+ const campDateOptions = campDateFieldDef?.options;
2051
+ const selectedCamp = chunkSHQHDSA4_cjs.parseCampDateValue(campDateValue, campDateOptions);
2052
+ const prevCampIdRef = React6.useRef(selectedCamp?.id ?? null);
2053
+ const [fetchedSlots, setFetchedSlots] = React6.useState([]);
2054
+ const [isLoading, setIsLoading] = React6.useState(false);
2055
+ const [fetchError, setFetchError] = React6.useState(null);
2056
+ const hasStaticOptions = (def?.options?.length ?? 0) > 0;
2057
+ const slots = hasStaticOptions ? def?.options ?? [] : fetchedSlots;
2058
+ const selectedSlotId = value != null ? String(value) : null;
2059
+ React6.useEffect(() => {
2060
+ if (hasStaticOptions || !selectedCamp?.id) {
2061
+ if (!selectedCamp?.id) {
2062
+ setFetchedSlots([]);
2063
+ setFetchError(null);
2064
+ }
2065
+ return;
2066
+ }
2067
+ const instanceId = selectedCamp.id;
2068
+ const cfg = store.getConfig();
2069
+ const base = cfg.auth?.baseUrl ?? (typeof process !== "undefined" ? process.env?.NEXT_PUBLIC_API_URL ?? "" : "");
2070
+ const token = cfg.camps?.authToken ?? "";
2071
+ const headers = token ? { Authorization: `Bearer ${token}` } : {};
2072
+ setIsLoading(true);
2073
+ setFetchError(null);
2074
+ fetch(`${base}/api/camps/instances/${instanceId}/availability/`, { headers }).then((r) => {
2075
+ if (!r.ok) throw new Error(`Availability fetch failed: ${r.status}`);
2076
+ return r.json();
2077
+ }).then((data) => {
2078
+ setFetchedSlots(mapWindowsToSlots(data.windows ?? []));
2079
+ }).catch(() => setFetchError("Failed to load time slots. Please try again.")).finally(() => setIsLoading(false));
2080
+ }, [selectedCamp?.id, hasStaticOptions]);
2081
+ React6.useEffect(() => {
2082
+ const campId = selectedCamp?.id ?? null;
2083
+ if (prevCampIdRef.current !== null && prevCampIdRef.current !== campId && selectedSlotId) {
2084
+ setValue(null);
2085
+ }
2086
+ prevCampIdRef.current = campId;
2087
+ }, [selectedCamp?.id, selectedSlotId, setValue]);
2088
+ React6.useEffect(() => {
2089
+ if (!selectedSlotId) return;
2090
+ const slotStillValid = slots.some((slot) => slot.id === selectedSlotId && slot.spotsLeft > 0);
2091
+ if (!slotStillValid) {
2092
+ setValue(null);
2093
+ }
2094
+ }, [selectedSlotId, setValue, slots]);
2095
+ if (!fieldDef || !def) return null;
2096
+ const showLabel = chunk5E3APMY6_cjs.isLabelVisible(fieldDef);
2097
+ const handleSelect = (slotId, button) => {
2098
+ if (disabled) return;
2099
+ setValue(slotId);
2100
+ setTouched();
2101
+ button?.scrollIntoView({ behavior: "smooth", block: "nearest", inline: "center" });
2102
+ };
2103
+ const dateLabel = selectedCamp?.date ? dateFns.format(dateFns.parseISO(selectedCamp.date), "EEE, MMM d, yyyy") : null;
2104
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk5E3APMY6_cjs.fieldWrapperClass(fieldDef, "space-y-3"), children: [
2105
+ showLabel ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-0.5", children: [
2106
+ /* @__PURE__ */ jsxRuntime.jsxs(
2107
+ "h3",
2108
+ {
2109
+ className: chunk5E3APMY6_cjs.fieldLabelClass(
2110
+ fieldDef,
2111
+ "text-lg font-semibold leading-tight text-foreground"
2112
+ ),
2113
+ children: [
2114
+ fieldDef.label,
2115
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5E3APMY6_cjs.FieldRequiredIndicator, { fieldDef })
2116
+ ]
2117
+ }
2118
+ ),
2119
+ dateLabel ? /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
2120
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Calendar, { className: "h-3.5 w-3.5 shrink-0", "aria-hidden": true }),
2121
+ dateLabel
2122
+ ] }) : null
2123
+ ] }) : null,
2124
+ isLoading ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: slotsScrollClass, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", style: { minWidth: "max-content" }, children: [
2125
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute left-0 right-0 top-0 h-0.5 w-full bg-[#DCDCDC]" }),
2126
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-4 pt-3", children: [0, 1, 2, 3].map((i) => /* @__PURE__ */ jsxRuntime.jsx(
2127
+ "div",
2128
+ {
2129
+ className: "mb-2 h-[34px] w-[86px] shrink-0 animate-pulse rounded-full bg-[#DCDCDC]"
2130
+ },
2131
+ i
2132
+ )) })
2133
+ ] }) }) : fetchError ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-red-500", children: fetchError }) : !selectedCamp?.id ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: "Select a date to see available time slots." }) : slots.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: "No time slots available for this date." }) : /* @__PURE__ */ jsxRuntime.jsx(
2134
+ "div",
2135
+ {
2136
+ role: "radiogroup",
2137
+ "aria-label": fieldDef.label,
2138
+ className: slotsScrollClass,
2139
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", style: { minWidth: "max-content" }, children: [
2140
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute left-0 right-0 top-0 h-0.5 w-full bg-[#DCDCDC]" }),
2141
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-4 pt-3", children: slots.map((slot) => {
2142
+ const isFull = slot.spotsLeft <= 0;
2143
+ const selected = selectedSlotId === slot.id;
2144
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2145
+ "button",
2146
+ {
2147
+ type: "button",
2148
+ role: "radio",
2149
+ "aria-checked": selected,
2150
+ disabled: disabled || isFull,
2151
+ onClick: (e) => handleSelect(slot.id, e.currentTarget),
2152
+ className: chunkFHHISVCH_cjs.cn(
2153
+ "relative mb-2 w-[86px] shrink-0 rounded-full px-3 py-2 text-xs font-medium transition-colors",
2154
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
2155
+ isFull ? "cursor-not-allowed bg-[#DCDCDC]/60 text-black/40" : selected ? "bg-[#2F2F2F] text-white" : "bg-[#DCDCDC] text-black",
2156
+ disabled && !isFull && "cursor-not-allowed opacity-60"
2157
+ ),
2158
+ style: isFull ? void 0 : { boxShadow: slotPillShadow },
2159
+ children: [
2160
+ selected && !isFull ? /* @__PURE__ */ jsxRuntime.jsx(
2161
+ "span",
2162
+ {
2163
+ className: "absolute -top-3 left-0 right-0 h-0.5 bg-[#6641D8]",
2164
+ "aria-hidden": true
2165
+ }
2166
+ ) : null,
2167
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "whitespace-nowrap", children: slot.time })
2168
+ ]
2169
+ },
2170
+ slot.id
2171
+ );
2172
+ }) })
2173
+ ] })
2174
+ }
2175
+ ),
2176
+ showError ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: chunk5E3APMY6_cjs.fieldErrorClass(fieldDef, "text-xs text-red-500"), children: error }) : null
2177
+ ] });
2178
+ };
1737
2179
  var Switch = React6__namespace.forwardRef(
1738
2180
  ({ className, checked, onCheckedChange, disabled, ...props }, ref) => {
1739
2181
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -1771,45 +2213,45 @@ Switch.displayName = "Switch";
1771
2213
  function lazyNamed(loader, name) {
1772
2214
  return React6__namespace.default.lazy(async () => ({ default: (await loader())[name] }));
1773
2215
  }
1774
- var RichTextWidget = lazyNamed(() => import('./RichTextWidget-XWLOHKLE.cjs'), "RichTextWidget");
1775
- var DateWidget = lazyNamed(() => import('./DateWidget-SYDMSGWO.cjs'), "DateWidget");
1776
- var DateTimeWidget = lazyNamed(() => import('./DateTimeWidget-72YUK7PX.cjs'), "DateTimeWidget");
1777
- var EditableTableWidget = lazyNamed(() => import('./EditableTable-YB4IC3ZK.cjs'), "EditableTableWidget");
1778
- var AddMedicationWidget = lazyNamed(() => import('./AddMedicationWidget-26RHKIA6.cjs'), "AddMedicationWidget");
1779
- var DischargeMedicationOrdersWidget = lazyNamed(() => import('./DischargeMedicationOrdersWidget-B4CJQ3QS.cjs'), "DischargeMedicationOrdersWidget");
1780
- var AddInvestigationWidget = lazyNamed(() => import('./AddInvestigationWidget-G7NPTSFY.cjs'), "AddInvestigationWidget");
1781
- var AddProcedureWidget = lazyNamed(() => import('./AddProcedureWidget-B6OUF3BM.cjs'), "AddProcedureWidget");
1782
- var DifferentialDiagnosisWidget = lazyNamed(() => import('./DifferentialDiagnosisWidget-ZGFXP2BH.cjs'), "DifferentialDiagnosisWidget");
1783
- var VitalsWidget = lazyNamed(() => import('./VitalsWidget-44UWQGIF.cjs'), "VitalsWidget");
1784
- var HiddenVitalsWidget = lazyNamed(() => import('./HiddenVitalsWidget-AMH32HT2.cjs'), "HiddenVitalsWidget");
1785
- var ReferralWidget = lazyNamed(() => import('./ReferralWidget-PDNEKHFO.cjs'), "ReferralWidget");
1786
- var FollowupWidget = lazyNamed(() => import('./FollowupWidget-EEKOI2TW.cjs'), "FollowupWidget");
1787
- var SmartTextareaWidget = lazyNamed(() => import('./SmartTextarea-L7Q4CORK.cjs'), "SmartTextareaWidget");
1788
- var DiagnosisTextareaWidget = lazyNamed(() => import('./DiagnosisTextareaWidget-UKWLE2SQ.cjs'), "DiagnosisTextareaWidget");
1789
- var ObstetricHistoryWidget = lazyNamed(() => import('./ObstetricHistoryWidget-GC63CB3U.cjs'), "ObstetricHistoryWidget");
1790
- var OphthalmologyWidget = lazyNamed(() => import('./OphthalmologyWidget-U2HQMZ4J.cjs'), "OphthalmologyWidget");
1791
- var OphthalDiagnosisWidget = lazyNamed(() => import('./OphthalDiagnosisWidget-QXFK446I.cjs'), "OphthalDiagnosisWidget");
1792
- var OrthopedicExamWidget = lazyNamed(() => import('./OrthopedicExamWidget-LP7VN3W5.cjs'), "OrthopedicExamWidget");
1793
- var MarMedicationOrdersWidget = lazyNamed(() => import('./MarMedicationOrdersWidget-ZKZLSZRN.cjs'), "MarMedicationOrdersWidget");
1794
- var SuggestionTextareaWidget = lazyNamed(() => import('./SuggestionTextareaWidget-2TEITBPF.cjs'), "SuggestionTextareaWidget");
1795
- var LensAssessmentWidget = lazyNamed(() => import('./LensAssessmentWidget-LSHBUTT5.cjs'), "LensAssessmentWidget");
1796
- var FunctionalImpairmentScoreWidget = lazyNamed(() => import('./FunctionalImpairmentScoreWidget-HAAPCMIS.cjs'), "FunctionalImpairmentScoreWidget");
1797
- var BiometryIolWorkupWidget = lazyNamed(() => import('./BiometryIolWorkupWidget-TCU4MMVI.cjs'), "BiometryIolWorkupWidget");
1798
- var SurgicalRiskFlagsWidget = lazyNamed(() => import('./SurgicalRiskFlagsWidget-JCSL3GWS.cjs'), "SurgicalRiskFlagsWidget");
1799
- var GsSmartHistoryWidget = lazyNamed(() => import('./GsSmartHistoryWidget-7QNJZEI4.cjs'), "GsSmartHistoryWidget");
1800
- var GsExaminationWidget = lazyNamed(() => import('./GsExaminationWidget-EX6C3EF5.cjs'), "GsExaminationWidget");
1801
- var GsGradingWidget = lazyNamed(() => import('./GsGradingWidget-IV3UF63W.cjs'), "GsGradingWidget");
1802
- var PainScaleFlagsWidget = lazyNamed(() => import('./PainScaleFlagsWidget-IBNGVVHD.cjs'), "PainScaleFlagsWidget");
1803
- var UrologySmartHistoryWidget = lazyNamed(() => import('./UrologySmartHistoryWidget-XKZF63BV.cjs'), "UrologySmartHistoryWidget");
1804
- var UrologyExaminationWidget = lazyNamed(() => import('./UrologyExaminationWidget-74L3IN2X.cjs'), "UrologyExaminationWidget");
1805
- var UrologyPathwayWidget = lazyNamed(() => import('./UrologyPathwayWidget-UJY5EW2G.cjs'), "UrologyPathwayWidget");
1806
- var OBGExaminationWidget = lazyNamed(() => import('./OBGExaminationWidget-SMFZ2WCL.cjs'), "OBGExaminationWidget");
1807
- var OBGPathwayWidget = lazyNamed(() => import('./OBGPathwayWidget-5YTUDBEH.cjs'), "OBGPathwayWidget");
2216
+ var RichTextWidget = lazyNamed(() => import('./RichTextWidget-CRQHNVJR.cjs'), "RichTextWidget");
2217
+ var DateWidget = lazyNamed(() => import('./DateWidget-BCVR5GDK.cjs'), "DateWidget");
2218
+ var DateTimeWidget = lazyNamed(() => import('./DateTimeWidget-DIDVF2EB.cjs'), "DateTimeWidget");
2219
+ var EditableTableWidget = lazyNamed(() => import('./EditableTable-VCUNJZEX.cjs'), "EditableTableWidget");
2220
+ var AddMedicationWidget = lazyNamed(() => import('./AddMedicationWidget-WPI32WAP.cjs'), "AddMedicationWidget");
2221
+ var DischargeMedicationOrdersWidget = lazyNamed(() => import('./DischargeMedicationOrdersWidget-ILWNZ7VM.cjs'), "DischargeMedicationOrdersWidget");
2222
+ var AddInvestigationWidget = lazyNamed(() => import('./AddInvestigationWidget-RY62UCPM.cjs'), "AddInvestigationWidget");
2223
+ var AddProcedureWidget = lazyNamed(() => import('./AddProcedureWidget-SF6MTRBV.cjs'), "AddProcedureWidget");
2224
+ var DifferentialDiagnosisWidget = lazyNamed(() => import('./DifferentialDiagnosisWidget-ANALLNKL.cjs'), "DifferentialDiagnosisWidget");
2225
+ var VitalsWidget = lazyNamed(() => import('./VitalsWidget-PDCYXNBM.cjs'), "VitalsWidget");
2226
+ var HiddenVitalsWidget = lazyNamed(() => import('./HiddenVitalsWidget-HBK7PBPR.cjs'), "HiddenVitalsWidget");
2227
+ var ReferralWidget = lazyNamed(() => import('./ReferralWidget-J2PWYFDT.cjs'), "ReferralWidget");
2228
+ var FollowupWidget = lazyNamed(() => import('./FollowupWidget-NBTOV2ML.cjs'), "FollowupWidget");
2229
+ var SmartTextareaWidget = lazyNamed(() => import('./SmartTextarea-DKWV4R6H.cjs'), "SmartTextareaWidget");
2230
+ var DiagnosisTextareaWidget = lazyNamed(() => import('./DiagnosisTextareaWidget-E7OQRUMX.cjs'), "DiagnosisTextareaWidget");
2231
+ var ObstetricHistoryWidget = lazyNamed(() => import('./ObstetricHistoryWidget-XU6R7IPP.cjs'), "ObstetricHistoryWidget");
2232
+ var OphthalmologyWidget = lazyNamed(() => import('./OphthalmologyWidget-I3BKWOI2.cjs'), "OphthalmologyWidget");
2233
+ var OphthalDiagnosisWidget = lazyNamed(() => import('./OphthalDiagnosisWidget-OQPTHJ7E.cjs'), "OphthalDiagnosisWidget");
2234
+ var OrthopedicExamWidget = lazyNamed(() => import('./OrthopedicExamWidget-M4KKU5RC.cjs'), "OrthopedicExamWidget");
2235
+ var MarMedicationOrdersWidget = lazyNamed(() => import('./MarMedicationOrdersWidget-3E6GFOR6.cjs'), "MarMedicationOrdersWidget");
2236
+ var SuggestionTextareaWidget = lazyNamed(() => import('./SuggestionTextareaWidget-WCTPWW2E.cjs'), "SuggestionTextareaWidget");
2237
+ var LensAssessmentWidget = lazyNamed(() => import('./LensAssessmentWidget-GSOOD7BX.cjs'), "LensAssessmentWidget");
2238
+ var FunctionalImpairmentScoreWidget = lazyNamed(() => import('./FunctionalImpairmentScoreWidget-5V5SNLTF.cjs'), "FunctionalImpairmentScoreWidget");
2239
+ var BiometryIolWorkupWidget = lazyNamed(() => import('./BiometryIolWorkupWidget-I5AJOYB2.cjs'), "BiometryIolWorkupWidget");
2240
+ var SurgicalRiskFlagsWidget = lazyNamed(() => import('./SurgicalRiskFlagsWidget-Q5FTWB3M.cjs'), "SurgicalRiskFlagsWidget");
2241
+ var GsSmartHistoryWidget = lazyNamed(() => import('./GsSmartHistoryWidget-6Q2IIGDG.cjs'), "GsSmartHistoryWidget");
2242
+ var GsExaminationWidget = lazyNamed(() => import('./GsExaminationWidget-57SL4BCI.cjs'), "GsExaminationWidget");
2243
+ var GsGradingWidget = lazyNamed(() => import('./GsGradingWidget-CIXE36HF.cjs'), "GsGradingWidget");
2244
+ var PainScaleFlagsWidget = lazyNamed(() => import('./PainScaleFlagsWidget-QHGESXNE.cjs'), "PainScaleFlagsWidget");
2245
+ var UrologySmartHistoryWidget = lazyNamed(() => import('./UrologySmartHistoryWidget-53NATEO3.cjs'), "UrologySmartHistoryWidget");
2246
+ var UrologyExaminationWidget = lazyNamed(() => import('./UrologyExaminationWidget-JYUGZ5CG.cjs'), "UrologyExaminationWidget");
2247
+ var UrologyPathwayWidget = lazyNamed(() => import('./UrologyPathwayWidget-TXZQNGP4.cjs'), "UrologyPathwayWidget");
2248
+ var OBGExaminationWidget = lazyNamed(() => import('./OBGExaminationWidget-F2ZNSP2M.cjs'), "OBGExaminationWidget");
2249
+ var OBGPathwayWidget = lazyNamed(() => import('./OBGPathwayWidget-WCIQENMO.cjs'), "OBGPathwayWidget");
1808
2250
  function lazyWidget(node) {
1809
2251
  return /* @__PURE__ */ jsxRuntime.jsx(React6__namespace.default.Suspense, { fallback: null, children: node });
1810
2252
  }
1811
2253
  var FieldRenderer = ({ fieldId }) => {
1812
- const { fieldDef, visible } = chunkIDSBJOFY_cjs.useField(fieldId);
2254
+ const { fieldDef, visible } = chunkSHQHDSA4_cjs.useField(fieldId);
1813
2255
  if (!visible || !fieldDef) {
1814
2256
  return null;
1815
2257
  }
@@ -1819,14 +2261,14 @@ function renderWidget(fieldId, fieldDef) {
1819
2261
  switch (fieldDef.type) {
1820
2262
  case "text":
1821
2263
  case "number":
1822
- return /* @__PURE__ */ jsxRuntime.jsx(chunkDE7VZVKR_cjs.TextWidget, { fieldId });
2264
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkMQ2JV7HL_cjs.TextWidget, { fieldId });
1823
2265
  case "slider":
1824
2266
  return /* @__PURE__ */ jsxRuntime.jsx(SliderWidget, { fieldId });
1825
2267
  case "textarea":
1826
2268
  if (fieldMetaRequestsMarMedicationOrdersButton(fieldDef.meta)) {
1827
2269
  return lazyWidget(/* @__PURE__ */ jsxRuntime.jsx(MarMedicationOrdersWidget, { fieldId }));
1828
2270
  }
1829
- return /* @__PURE__ */ jsxRuntime.jsx(chunkDE7VZVKR_cjs.TextWidget, { fieldId });
2271
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkMQ2JV7HL_cjs.TextWidget, { fieldId });
1830
2272
  case "richtext":
1831
2273
  return lazyWidget(/* @__PURE__ */ jsxRuntime.jsx(RichTextWidget, { fieldId }));
1832
2274
  case "date":
@@ -1834,7 +2276,7 @@ function renderWidget(fieldId, fieldDef) {
1834
2276
  case "datetime":
1835
2277
  return lazyWidget(/* @__PURE__ */ jsxRuntime.jsx(DateTimeWidget, { fieldId }));
1836
2278
  case "select":
1837
- return /* @__PURE__ */ jsxRuntime.jsx(chunkDE7VZVKR_cjs.SelectWidget, { fieldId });
2279
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkMQ2JV7HL_cjs.SelectWidget, { fieldId });
1838
2280
  case "radio":
1839
2281
  return /* @__PURE__ */ jsxRuntime.jsx(RadioWidget, { fieldId });
1840
2282
  case "checkbox":
@@ -1905,9 +2347,13 @@ function renderWidget(fieldId, fieldDef) {
1905
2347
  return /* @__PURE__ */ jsxRuntime.jsx(PhoneInputWidget, { fieldId });
1906
2348
  case "otp_input":
1907
2349
  return /* @__PURE__ */ jsxRuntime.jsx(OtpInputWidget, { fieldId });
2350
+ case "camp_dates":
2351
+ return /* @__PURE__ */ jsxRuntime.jsx(CampDatesWidget, { fieldId });
2352
+ case "camp_time_slots":
2353
+ return /* @__PURE__ */ jsxRuntime.jsx(CampTimeSlotsWidget, { fieldId });
1908
2354
  case "toggle": {
1909
- const { value, setValue, setTouched, disabled } = chunkIDSBJOFY_cjs.useField(fieldId);
1910
- const store = chunkIDSBJOFY_cjs.useFormStore();
2355
+ const { value, setValue, setTouched, disabled } = chunkSHQHDSA4_cjs.useField(fieldId);
2356
+ const store = chunkSHQHDSA4_cjs.useFormStore();
1911
2357
  const excludes = fieldDef.excludes ?? [];
1912
2358
  const showLabel = chunk5E3APMY6_cjs.isLabelVisible(fieldDef);
1913
2359
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk5E3APMY6_cjs.fieldWrapperClass(fieldDef, "flex items-center gap-3"), children: [
@@ -2015,7 +2461,7 @@ var ColumnLayout = ({
2015
2461
  ] });
2016
2462
  };
2017
2463
  var DynamicForm = () => {
2018
- const store = chunkIDSBJOFY_cjs.useFormStore();
2464
+ const store = chunkSHQHDSA4_cjs.useFormStore();
2019
2465
  const schema = store.getSchema();
2020
2466
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
2021
2467
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4", children: /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-2xl font-bold", children: schema.title }) }),
@@ -2083,7 +2529,7 @@ var DynamicFormV2 = ({
2083
2529
  showSectionTitles = true,
2084
2530
  className
2085
2531
  }) => {
2086
- const store = chunkIDSBJOFY_cjs.useFormStore();
2532
+ const store = chunkSHQHDSA4_cjs.useFormStore();
2087
2533
  const schema = store.getSchema();
2088
2534
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkFHHISVCH_cjs.cn("space-y-6", className), children: [
2089
2535
  showTitle ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4", children: /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-2xl font-bold", children: schema.title }) }) : null,
@@ -2136,6 +2582,14 @@ function isFieldComplete(id, state, fieldMap) {
2136
2582
  const v = state.values[id];
2137
2583
  if (v === null || v === void 0 || v === "") return false;
2138
2584
  if (Array.isArray(v) && v.length === 0) return false;
2585
+ if (def.type === "camp_dates") {
2586
+ if (!chunkSHQHDSA4_cjs.parseCampDateValue(v, def.options)?.id) return false;
2587
+ }
2588
+ if (def.type === "otp_input") {
2589
+ if (!v || typeof v !== "object" || v.verified !== true) {
2590
+ return false;
2591
+ }
2592
+ }
2139
2593
  }
2140
2594
  return true;
2141
2595
  }
@@ -2215,17 +2669,27 @@ var Stepper = ({ steps, statuses, variant }) => {
2215
2669
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-0 mb-6", children: steps.map((step, i) => {
2216
2670
  const status = statuses[i];
2217
2671
  return /* @__PURE__ */ jsxRuntime.jsxs(React6__namespace.default.Fragment, { children: [
2218
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
2672
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [
2219
2673
  /* @__PURE__ */ jsxRuntime.jsx(
2220
2674
  "div",
2221
2675
  {
2222
2676
  className: chunkFHHISVCH_cjs.cn(
2223
- "flex h-7 w-7 items-center justify-center rounded-full text-xs font-semibold border-2 transition-colors",
2224
- status === "complete" && "border-primary bg-primary text-primary-foreground",
2225
- status === "active" && "border-primary bg-background text-primary",
2226
- status === "locked" && "border-border bg-background text-muted-foreground"
2677
+ "inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full border-2 text-xs font-semibold leading-none transition-colors",
2678
+ status === "complete" && "border-primary bg-primary",
2679
+ status === "active" && "border-primary bg-background",
2680
+ status === "locked" && "border-border bg-background"
2227
2681
  ),
2228
- children: status === "complete" ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-3.5 w-3.5" }) : i + 1
2682
+ children: status === "complete" ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-3.5 w-3.5 shrink-0 text-primary-foreground" }) : /* @__PURE__ */ jsxRuntime.jsx(
2683
+ "span",
2684
+ {
2685
+ className: chunkFHHISVCH_cjs.cn(
2686
+ "tabular-nums",
2687
+ status === "active" && "text-primary",
2688
+ status === "locked" && "text-muted-foreground"
2689
+ ),
2690
+ children: i + 1
2691
+ }
2692
+ )
2229
2693
  }
2230
2694
  ),
2231
2695
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -2259,17 +2723,12 @@ var ActiveStep = ({
2259
2723
  children
2260
2724
  ] });
2261
2725
  var Wizard = ({ node }) => {
2262
- const store = chunkIDSBJOFY_cjs.useFormStore();
2726
+ const store = chunkSHQHDSA4_cjs.useFormStore();
2263
2727
  const [formState, setFormState] = React6.useState(() => ({
2264
2728
  ...store.getState()
2265
2729
  }));
2266
2730
  React6.useEffect(() => {
2267
2731
  return store.subscribe((state) => {
2268
- console.log("[MultiStepForm] store update \u2192", {
2269
- values: state.values,
2270
- errors: state.errors,
2271
- visibility: state.visibility
2272
- });
2273
2732
  setFormState({ ...state });
2274
2733
  });
2275
2734
  }, [store]);
@@ -2282,17 +2741,10 @@ var Wizard = ({ node }) => {
2282
2741
  const showStepper = meta?.showStepper !== false;
2283
2742
  const variant = meta?.stepperVariant ?? "numbered";
2284
2743
  const collapseCompleted = meta?.collapseCompleted !== false;
2285
- const stepComplete = steps.map((s) => {
2286
- const fieldIds = flattenStepFieldIds(s);
2287
- const complete = isStepComplete(s, formState, fieldMap);
2288
- console.log(`[MultiStepForm] step "${s.id}" fieldIds=${JSON.stringify(fieldIds)} complete=${complete}`, {
2289
- errors: fieldIds.map((id) => ({ id, error: formState.errors[id] })),
2290
- values: fieldIds.map((id) => ({ id, value: formState.values[id] }))
2291
- });
2292
- return complete;
2293
- });
2744
+ const stepComplete = steps.map(
2745
+ (s) => isStepComplete(s, formState, fieldMap)
2746
+ );
2294
2747
  const activeIndex = stepComplete.findIndex((c) => !c) === -1 ? steps.length : stepComplete.findIndex((c) => !c);
2295
- console.log(`[MultiStepForm] activeIndex=${activeIndex} stepComplete=${JSON.stringify(stepComplete)}`);
2296
2748
  const statuses = steps.map((_, i) => {
2297
2749
  if (i < activeIndex) return "complete";
2298
2750
  if (i === activeIndex) return "active";
@@ -2309,17 +2761,7 @@ var Wizard = ({ node }) => {
2309
2761
  if (collapseCompleted) {
2310
2762
  return /* @__PURE__ */ jsxRuntime.jsx(Section, { title: step.title, children }, step.id);
2311
2763
  }
2312
- return /* @__PURE__ */ jsxRuntime.jsxs(
2313
- "div",
2314
- {
2315
- className: "mb-4 opacity-60 pointer-events-none select-none space-y-4",
2316
- children: [
2317
- /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-base font-medium text-foreground", children: step.title }),
2318
- children
2319
- ]
2320
- },
2321
- step.id
2322
- );
2764
+ return /* @__PURE__ */ jsxRuntime.jsx(ActiveStep, { title: step.title, children }, step.id);
2323
2765
  }
2324
2766
  return /* @__PURE__ */ jsxRuntime.jsx(ActiveStep, { title: step.title, children }, step.id);
2325
2767
  }) })
@@ -2329,7 +2771,7 @@ var MultiStepForm = ({
2329
2771
  showTitle = true,
2330
2772
  className
2331
2773
  }) => {
2332
- const store = chunkIDSBJOFY_cjs.useFormStore();
2774
+ const store = chunkSHQHDSA4_cjs.useFormStore();
2333
2775
  const schema = store.getSchema();
2334
2776
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkFHHISVCH_cjs.cn("space-y-6", className), children: [
2335
2777
  showTitle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4", children: /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-2xl font-bold", children: schema.title }) }),
@@ -2426,7 +2868,7 @@ function normalizeDifferentialDiagnosis(val) {
2426
2868
  var SmartForm = ({
2427
2869
  aiAnalysisResult
2428
2870
  }) => {
2429
- const store = chunkIDSBJOFY_cjs.useFormStore();
2871
+ const store = chunkSHQHDSA4_cjs.useFormStore();
2430
2872
  const schema = store.getSchema();
2431
2873
  const prevAiResultRef = React6.useRef(void 0);
2432
2874
  const aiSuggestions = React6.useMemo(() => {
@@ -2897,6 +3339,30 @@ var ReadOnlyDischargeMedicationOrders = ({ fieldDef, value }) => {
2897
3339
  }) })
2898
3340
  ] });
2899
3341
  };
3342
+ var ReadOnlyCampDates = ({ fieldDef, value }) => {
3343
+ const camps = fieldDef.options?.length ? fieldDef.options : chunkSHQHDSA4_cjs.MOCK_CAMP_DATES;
3344
+ const selected = chunkSHQHDSA4_cjs.parseCampDateValue(value, camps);
3345
+ const isEmpty = !selected;
3346
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
3347
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJMGUUFOJ_cjs.Label, { className: "text-sm font-medium text-gray-700", children: fieldDef.label }),
3348
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-md border border-gray-200 bg-gray-50 p-3 min-h-[2.5rem]", children: isEmpty ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-400 italic", children: "No value" }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
3349
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-gray-900", children: dateFns.format(dateFns.parseISO(selected.date), "EEE, MMM d, yyyy") }),
3350
+ selected.location ? /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "flex items-center gap-1 text-sm text-gray-600", children: [
3351
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MapPin, { className: "h-3.5 w-3.5 shrink-0", "aria-hidden": true }),
3352
+ selected.location
3353
+ ] }) : null
3354
+ ] }) })
3355
+ ] });
3356
+ };
3357
+ var ReadOnlyCampTimeSlots = ({ fieldDef, value }) => {
3358
+ const slots = fieldDef.options?.length ? fieldDef.options : chunkSHQHDSA4_cjs.MOCK_CAMP_TIME_SLOTS;
3359
+ const selected = slots.find((slot) => String(slot.id) === String(value));
3360
+ const isEmpty = value == null || value === "";
3361
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
3362
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJMGUUFOJ_cjs.Label, { className: "text-sm font-medium text-gray-700", children: fieldDef.label }),
3363
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[2.5rem] rounded-md border border-gray-200 bg-gray-50 p-3", children: isEmpty || !selected ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-400 italic", children: "No value" }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium text-gray-900", children: selected.time }) })
3364
+ ] });
3365
+ };
2900
3366
  var ReadOnlyTable = React6__namespace.default.lazy(
2901
3367
  () => import('./ReadOnlyTable-L7G6GWEJ.cjs').then((m) => ({ default: m.ReadOnlyTable }))
2902
3368
  );
@@ -2942,6 +3408,10 @@ var ReadOnlyFieldRenderer = ({
2942
3408
  return /* @__PURE__ */ jsxRuntime.jsx(ReadOnlyReferral, { fieldDef, value });
2943
3409
  case "discharge_medication_orders":
2944
3410
  return /* @__PURE__ */ jsxRuntime.jsx(ReadOnlyDischargeMedicationOrders, { fieldDef, value });
3411
+ case "camp_dates":
3412
+ return /* @__PURE__ */ jsxRuntime.jsx(ReadOnlyCampDates, { fieldDef, value });
3413
+ case "camp_time_slots":
3414
+ return /* @__PURE__ */ jsxRuntime.jsx(ReadOnlyCampTimeSlots, { fieldDef, value });
2945
3415
  case "toggle": {
2946
3416
  const isOn = value === true;
2947
3417
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
@@ -3053,7 +3523,7 @@ var ReadOnlyFieldRenderer = ({
3053
3523
  const def = fieldDef;
3054
3524
  const min = def.min ?? 0;
3055
3525
  const max = def.max ?? 10;
3056
- const safe = chunkIDSBJOFY_cjs.normalizePainScaleFlags(value, { min, max });
3526
+ const safe = chunkSHQHDSA4_cjs.normalizePainScaleFlags(value, { min, max });
3057
3527
  const opts = def.options ?? [];
3058
3528
  const flagLabels = safe.flags.map((fv) => {
3059
3529
  const o = opts.find((x) => x.value === fv || String(x.value) === String(fv));
@@ -3066,7 +3536,7 @@ var ReadOnlyFieldRenderer = ({
3066
3536
  return /* @__PURE__ */ jsxRuntime.jsx(ReadOnlyText, { fieldDef, value: lines });
3067
3537
  }
3068
3538
  case "urology_smart_history": {
3069
- const structuredDisplay = value && typeof value === "object" ? JSON.stringify(chunkIDSBJOFY_cjs.normalizeUrologySmartHistory(value), null, 2) : value == null || value === "" ? "\u2014" : String(value);
3539
+ const structuredDisplay = value && typeof value === "object" ? JSON.stringify(chunkSHQHDSA4_cjs.normalizeUrologySmartHistory(value), null, 2) : value == null || value === "" ? "\u2014" : String(value);
3070
3540
  const hopcDef = resolveFieldDef?.("symptoms");
3071
3541
  const hopcRaw = allValues?.["symptoms"];
3072
3542
  const hopcStr = typeof hopcRaw === "string" ? hopcRaw : hopcRaw != null && hopcRaw !== "" ? String(hopcRaw) : "";
@@ -3100,7 +3570,7 @@ var ReadOnlyFieldRenderer = ({
3100
3570
  }
3101
3571
  );
3102
3572
  case "general_surgery_smart_history": {
3103
- const structuredDisplay = value && typeof value === "object" ? JSON.stringify(chunkIDSBJOFY_cjs.normalizeGeneralSurgerySmartHistory(value), null, 2) : value == null || value === "" ? "\u2014" : String(value);
3573
+ const structuredDisplay = value && typeof value === "object" ? JSON.stringify(chunkSHQHDSA4_cjs.normalizeGeneralSurgerySmartHistory(value), null, 2) : value == null || value === "" ? "\u2014" : String(value);
3104
3574
  const hopcDef = resolveFieldDef?.("symptoms");
3105
3575
  const hopcRaw = allValues?.["symptoms"];
3106
3576
  const hopcStr = typeof hopcRaw === "string" ? hopcRaw : hopcRaw != null && hopcRaw !== "" ? String(hopcRaw) : "";
@@ -3294,7 +3764,7 @@ var FormControls = ({
3294
3764
  transition,
3295
3765
  hasPersistence,
3296
3766
  markSubmitAttempted
3297
- } = chunkKPGTPJDH_cjs.useForm();
3767
+ } = chunk6YX37XBM_cjs.useForm();
3298
3768
  const hasUploadsInFlight = (state.pendingUploads ?? 0) > 0;
3299
3769
  const draftAvailable = onSaveDraft || hasPersistence && submit;
3300
3770
  const submitAvailable = onSubmit || availableTransitions.length > 0 && transition;
@@ -3485,52 +3955,53 @@ Object.defineProperty(exports, "isLabelVisible", {
3485
3955
  });
3486
3956
  Object.defineProperty(exports, "useForm", {
3487
3957
  enumerable: true,
3488
- get: function () { return chunkKPGTPJDH_cjs.useForm; }
3958
+ get: function () { return chunk6YX37XBM_cjs.useForm; }
3489
3959
  });
3490
3960
  Object.defineProperty(exports, "EMAIL_REGEX", {
3491
3961
  enumerable: true,
3492
- get: function () { return chunkIDSBJOFY_cjs.EMAIL_REGEX; }
3962
+ get: function () { return chunkSHQHDSA4_cjs.EMAIL_REGEX; }
3493
3963
  });
3494
3964
  Object.defineProperty(exports, "FormProvider", {
3495
3965
  enumerable: true,
3496
- get: function () { return chunkIDSBJOFY_cjs.FormProvider; }
3966
+ get: function () { return chunkSHQHDSA4_cjs.FormProvider; }
3497
3967
  });
3498
3968
  Object.defineProperty(exports, "FormStore", {
3499
3969
  enumerable: true,
3500
- get: function () { return chunkIDSBJOFY_cjs.FormStore; }
3970
+ get: function () { return chunkSHQHDSA4_cjs.FormStore; }
3501
3971
  });
3502
3972
  Object.defineProperty(exports, "evaluateRules", {
3503
3973
  enumerable: true,
3504
- get: function () { return chunkIDSBJOFY_cjs.evaluateRules; }
3974
+ get: function () { return chunkSHQHDSA4_cjs.evaluateRules; }
3505
3975
  });
3506
3976
  Object.defineProperty(exports, "useField", {
3507
3977
  enumerable: true,
3508
- get: function () { return chunkIDSBJOFY_cjs.useField; }
3978
+ get: function () { return chunkSHQHDSA4_cjs.useField; }
3509
3979
  });
3510
3980
  Object.defineProperty(exports, "useFieldHandlers", {
3511
3981
  enumerable: true,
3512
- get: function () { return chunkIDSBJOFY_cjs.useFieldHandlers; }
3982
+ get: function () { return chunkSHQHDSA4_cjs.useFieldHandlers; }
3513
3983
  });
3514
3984
  Object.defineProperty(exports, "useFormStore", {
3515
3985
  enumerable: true,
3516
- get: function () { return chunkIDSBJOFY_cjs.useFormStore; }
3986
+ get: function () { return chunkSHQHDSA4_cjs.useFormStore; }
3517
3987
  });
3518
3988
  Object.defineProperty(exports, "useFrequentItems", {
3519
3989
  enumerable: true,
3520
- get: function () { return chunkIDSBJOFY_cjs.useFrequentItems; }
3990
+ get: function () { return chunkSHQHDSA4_cjs.useFrequentItems; }
3521
3991
  });
3522
3992
  Object.defineProperty(exports, "usePackages", {
3523
3993
  enumerable: true,
3524
- get: function () { return chunkIDSBJOFY_cjs.usePackages; }
3994
+ get: function () { return chunkSHQHDSA4_cjs.usePackages; }
3525
3995
  });
3526
3996
  Object.defineProperty(exports, "validateField", {
3527
3997
  enumerable: true,
3528
- get: function () { return chunkIDSBJOFY_cjs.validateField; }
3998
+ get: function () { return chunkSHQHDSA4_cjs.validateField; }
3529
3999
  });
3530
4000
  Object.defineProperty(exports, "validateForm", {
3531
4001
  enumerable: true,
3532
- get: function () { return chunkIDSBJOFY_cjs.validateForm; }
4002
+ get: function () { return chunkSHQHDSA4_cjs.validateForm; }
3533
4003
  });
4004
+ exports.CampBookingPersistenceProvider = CampBookingPersistenceProvider;
3534
4005
  exports.DynamicForm = DynamicForm;
3535
4006
  exports.DynamicFormV2 = DynamicFormV2;
3536
4007
  exports.FieldRenderer = FieldRenderer;