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.
- package/dist/{AddInvestigationWidget-TQUKTGAW.mjs → AddInvestigationWidget-7UGZQYI5.mjs} +3 -3
- package/dist/{AddInvestigationWidget-TQUKTGAW.mjs.map → AddInvestigationWidget-7UGZQYI5.mjs.map} +1 -1
- package/dist/{AddInvestigationWidget-G7NPTSFY.cjs → AddInvestigationWidget-RY62UCPM.cjs} +7 -7
- package/dist/{AddInvestigationWidget-G7NPTSFY.cjs.map → AddInvestigationWidget-RY62UCPM.cjs.map} +1 -1
- package/dist/{AddMedicationWidget-I5UIT3WG.mjs → AddMedicationWidget-UG26VMUX.mjs} +3 -3
- package/dist/{AddMedicationWidget-I5UIT3WG.mjs.map → AddMedicationWidget-UG26VMUX.mjs.map} +1 -1
- package/dist/{AddMedicationWidget-26RHKIA6.cjs → AddMedicationWidget-WPI32WAP.cjs} +6 -6
- package/dist/{AddMedicationWidget-26RHKIA6.cjs.map → AddMedicationWidget-WPI32WAP.cjs.map} +1 -1
- package/dist/{AddProcedureWidget-B6OUF3BM.cjs → AddProcedureWidget-SF6MTRBV.cjs} +6 -6
- package/dist/{AddProcedureWidget-B6OUF3BM.cjs.map → AddProcedureWidget-SF6MTRBV.cjs.map} +1 -1
- package/dist/{AddProcedureWidget-NB46COB6.mjs → AddProcedureWidget-SQJUKKMK.mjs} +3 -3
- package/dist/{AddProcedureWidget-NB46COB6.mjs.map → AddProcedureWidget-SQJUKKMK.mjs.map} +1 -1
- package/dist/{BiometryIolWorkupWidget-TCU4MMVI.cjs → BiometryIolWorkupWidget-I5AJOYB2.cjs} +6 -6
- package/dist/{BiometryIolWorkupWidget-TCU4MMVI.cjs.map → BiometryIolWorkupWidget-I5AJOYB2.cjs.map} +1 -1
- package/dist/{BiometryIolWorkupWidget-F7HRYMOJ.mjs → BiometryIolWorkupWidget-NL2M7ZAA.mjs} +4 -4
- package/dist/{BiometryIolWorkupWidget-F7HRYMOJ.mjs.map → BiometryIolWorkupWidget-NL2M7ZAA.mjs.map} +1 -1
- package/dist/{DateTimeWidget-72YUK7PX.cjs → DateTimeWidget-DIDVF2EB.cjs} +6 -6
- package/dist/{DateTimeWidget-72YUK7PX.cjs.map → DateTimeWidget-DIDVF2EB.cjs.map} +1 -1
- package/dist/{DateTimeWidget-WKQIEQSA.mjs → DateTimeWidget-LFBB6HOP.mjs} +4 -4
- package/dist/{DateTimeWidget-WKQIEQSA.mjs.map → DateTimeWidget-LFBB6HOP.mjs.map} +1 -1
- package/dist/{DateWidget-K2TVTZ7Z.mjs → DateWidget-4ND5TKP2.mjs} +4 -4
- package/dist/{DateWidget-K2TVTZ7Z.mjs.map → DateWidget-4ND5TKP2.mjs.map} +1 -1
- package/dist/{DateWidget-SYDMSGWO.cjs → DateWidget-BCVR5GDK.cjs} +6 -6
- package/dist/{DateWidget-SYDMSGWO.cjs.map → DateWidget-BCVR5GDK.cjs.map} +1 -1
- package/dist/{DiagnosisTextareaWidget-UKWLE2SQ.cjs → DiagnosisTextareaWidget-E7OQRUMX.cjs} +7 -7
- package/dist/{DiagnosisTextareaWidget-UKWLE2SQ.cjs.map → DiagnosisTextareaWidget-E7OQRUMX.cjs.map} +1 -1
- package/dist/{DiagnosisTextareaWidget-RD65PGDY.mjs → DiagnosisTextareaWidget-MAOXCXEZ.mjs} +4 -4
- package/dist/{DiagnosisTextareaWidget-RD65PGDY.mjs.map → DiagnosisTextareaWidget-MAOXCXEZ.mjs.map} +1 -1
- package/dist/{DifferentialDiagnosisWidget-ZGFXP2BH.cjs → DifferentialDiagnosisWidget-ANALLNKL.cjs} +4 -4
- package/dist/{DifferentialDiagnosisWidget-ZGFXP2BH.cjs.map → DifferentialDiagnosisWidget-ANALLNKL.cjs.map} +1 -1
- package/dist/{DifferentialDiagnosisWidget-FENJP245.mjs → DifferentialDiagnosisWidget-LCY2SA2I.mjs} +3 -3
- package/dist/{DifferentialDiagnosisWidget-FENJP245.mjs.map → DifferentialDiagnosisWidget-LCY2SA2I.mjs.map} +1 -1
- package/dist/{DischargeMedicationOrdersWidget-26ALTGJM.mjs → DischargeMedicationOrdersWidget-GYT35W7J.mjs} +4 -4
- package/dist/{DischargeMedicationOrdersWidget-26ALTGJM.mjs.map → DischargeMedicationOrdersWidget-GYT35W7J.mjs.map} +1 -1
- package/dist/{DischargeMedicationOrdersWidget-B4CJQ3QS.cjs → DischargeMedicationOrdersWidget-ILWNZ7VM.cjs} +7 -7
- package/dist/{DischargeMedicationOrdersWidget-B4CJQ3QS.cjs.map → DischargeMedicationOrdersWidget-ILWNZ7VM.cjs.map} +1 -1
- package/dist/{EditableTable-LPAYCK36.mjs → EditableTable-TGCVUBLO.mjs} +3 -3
- package/dist/{EditableTable-LPAYCK36.mjs.map → EditableTable-TGCVUBLO.mjs.map} +1 -1
- package/dist/{EditableTable-YB4IC3ZK.cjs → EditableTable-VCUNJZEX.cjs} +4 -4
- package/dist/{EditableTable-YB4IC3ZK.cjs.map → EditableTable-VCUNJZEX.cjs.map} +1 -1
- package/dist/{FollowupWidget-NJ4QDBOG.mjs → FollowupWidget-F6FRZO4T.mjs} +3 -3
- package/dist/{FollowupWidget-NJ4QDBOG.mjs.map → FollowupWidget-F6FRZO4T.mjs.map} +1 -1
- package/dist/{FollowupWidget-EEKOI2TW.cjs → FollowupWidget-NBTOV2ML.cjs} +4 -4
- package/dist/{FollowupWidget-EEKOI2TW.cjs.map → FollowupWidget-NBTOV2ML.cjs.map} +1 -1
- package/dist/{FunctionalImpairmentScoreWidget-HAAPCMIS.cjs → FunctionalImpairmentScoreWidget-5V5SNLTF.cjs} +6 -6
- package/dist/{FunctionalImpairmentScoreWidget-HAAPCMIS.cjs.map → FunctionalImpairmentScoreWidget-5V5SNLTF.cjs.map} +1 -1
- package/dist/{FunctionalImpairmentScoreWidget-ZNLKKBYN.mjs → FunctionalImpairmentScoreWidget-QKIZE7KT.mjs} +4 -4
- package/dist/{FunctionalImpairmentScoreWidget-ZNLKKBYN.mjs.map → FunctionalImpairmentScoreWidget-QKIZE7KT.mjs.map} +1 -1
- package/dist/{GsExaminationWidget-EX6C3EF5.cjs → GsExaminationWidget-57SL4BCI.cjs} +10 -10
- package/dist/{GsExaminationWidget-EX6C3EF5.cjs.map → GsExaminationWidget-57SL4BCI.cjs.map} +1 -1
- package/dist/{GsExaminationWidget-MEIUHRQQ.mjs → GsExaminationWidget-J4VABGY6.mjs} +4 -4
- package/dist/{GsExaminationWidget-MEIUHRQQ.mjs.map → GsExaminationWidget-J4VABGY6.mjs.map} +1 -1
- package/dist/{GsGradingWidget-4UPOEYNL.mjs → GsGradingWidget-3WTLIP33.mjs} +4 -4
- package/dist/{GsGradingWidget-4UPOEYNL.mjs.map → GsGradingWidget-3WTLIP33.mjs.map} +1 -1
- package/dist/{GsGradingWidget-IV3UF63W.cjs → GsGradingWidget-CIXE36HF.cjs} +12 -12
- package/dist/{GsGradingWidget-IV3UF63W.cjs.map → GsGradingWidget-CIXE36HF.cjs.map} +1 -1
- package/dist/{GsSmartHistoryWidget-7QNJZEI4.cjs → GsSmartHistoryWidget-6Q2IIGDG.cjs} +12 -12
- package/dist/{GsSmartHistoryWidget-7QNJZEI4.cjs.map → GsSmartHistoryWidget-6Q2IIGDG.cjs.map} +1 -1
- package/dist/{GsSmartHistoryWidget-LGN7W2AV.mjs → GsSmartHistoryWidget-IOGZ6GNS.mjs} +4 -4
- package/dist/{GsSmartHistoryWidget-LGN7W2AV.mjs.map → GsSmartHistoryWidget-IOGZ6GNS.mjs.map} +1 -1
- package/dist/{HiddenVitalsWidget-AMH32HT2.cjs → HiddenVitalsWidget-HBK7PBPR.cjs} +6 -6
- package/dist/{HiddenVitalsWidget-AMH32HT2.cjs.map → HiddenVitalsWidget-HBK7PBPR.cjs.map} +1 -1
- package/dist/{HiddenVitalsWidget-W23IFSEF.mjs → HiddenVitalsWidget-JH3NRZLM.mjs} +4 -4
- package/dist/{HiddenVitalsWidget-W23IFSEF.mjs.map → HiddenVitalsWidget-JH3NRZLM.mjs.map} +1 -1
- package/dist/{LensAssessmentWidget-SJ6YUTSN.mjs → LensAssessmentWidget-7WMULFS2.mjs} +4 -4
- package/dist/{LensAssessmentWidget-SJ6YUTSN.mjs.map → LensAssessmentWidget-7WMULFS2.mjs.map} +1 -1
- package/dist/{LensAssessmentWidget-LSHBUTT5.cjs → LensAssessmentWidget-GSOOD7BX.cjs} +6 -6
- package/dist/{LensAssessmentWidget-LSHBUTT5.cjs.map → LensAssessmentWidget-GSOOD7BX.cjs.map} +1 -1
- package/dist/{MarMedicationOrdersWidget-ZKZLSZRN.cjs → MarMedicationOrdersWidget-3E6GFOR6.cjs} +7 -7
- package/dist/{MarMedicationOrdersWidget-ZKZLSZRN.cjs.map → MarMedicationOrdersWidget-3E6GFOR6.cjs.map} +1 -1
- package/dist/{MarMedicationOrdersWidget-IKMAFPRG.mjs → MarMedicationOrdersWidget-QZUVSEB5.mjs} +4 -4
- package/dist/{MarMedicationOrdersWidget-IKMAFPRG.mjs.map → MarMedicationOrdersWidget-QZUVSEB5.mjs.map} +1 -1
- package/dist/{OBGExaminationWidget-SMFZ2WCL.cjs → OBGExaminationWidget-F2ZNSP2M.cjs} +11 -11
- package/dist/{OBGExaminationWidget-SMFZ2WCL.cjs.map → OBGExaminationWidget-F2ZNSP2M.cjs.map} +1 -1
- package/dist/{OBGExaminationWidget-BK4ERETW.mjs → OBGExaminationWidget-POVLALMA.mjs} +4 -4
- package/dist/{OBGExaminationWidget-BK4ERETW.mjs.map → OBGExaminationWidget-POVLALMA.mjs.map} +1 -1
- package/dist/{OBGPathwayWidget-U5BCAESB.mjs → OBGPathwayWidget-CGT7Q4T2.mjs} +5 -5
- package/dist/{OBGPathwayWidget-U5BCAESB.mjs.map → OBGPathwayWidget-CGT7Q4T2.mjs.map} +1 -1
- package/dist/{OBGPathwayWidget-5YTUDBEH.cjs → OBGPathwayWidget-WCIQENMO.cjs} +17 -17
- package/dist/{OBGPathwayWidget-5YTUDBEH.cjs.map → OBGPathwayWidget-WCIQENMO.cjs.map} +1 -1
- package/dist/{ObstetricHistoryWidget-WD572Q7H.mjs → ObstetricHistoryWidget-EGVLL4X2.mjs} +4 -4
- package/dist/{ObstetricHistoryWidget-WD572Q7H.mjs.map → ObstetricHistoryWidget-EGVLL4X2.mjs.map} +1 -1
- package/dist/{ObstetricHistoryWidget-GC63CB3U.cjs → ObstetricHistoryWidget-XU6R7IPP.cjs} +12 -12
- package/dist/{ObstetricHistoryWidget-GC63CB3U.cjs.map → ObstetricHistoryWidget-XU6R7IPP.cjs.map} +1 -1
- package/dist/{OphthalDiagnosisWidget-Y3AHD6AG.mjs → OphthalDiagnosisWidget-G5RCC2QZ.mjs} +3 -3
- package/dist/{OphthalDiagnosisWidget-Y3AHD6AG.mjs.map → OphthalDiagnosisWidget-G5RCC2QZ.mjs.map} +1 -1
- package/dist/{OphthalDiagnosisWidget-QXFK446I.cjs → OphthalDiagnosisWidget-OQPTHJ7E.cjs} +4 -4
- package/dist/{OphthalDiagnosisWidget-QXFK446I.cjs.map → OphthalDiagnosisWidget-OQPTHJ7E.cjs.map} +1 -1
- package/dist/{OphthalmologyWidget-U2HQMZ4J.cjs → OphthalmologyWidget-I3BKWOI2.cjs} +4 -4
- package/dist/{OphthalmologyWidget-U2HQMZ4J.cjs.map → OphthalmologyWidget-I3BKWOI2.cjs.map} +1 -1
- package/dist/{OphthalmologyWidget-CRQMN5QU.mjs → OphthalmologyWidget-RG2AI6WA.mjs} +3 -3
- package/dist/{OphthalmologyWidget-CRQMN5QU.mjs.map → OphthalmologyWidget-RG2AI6WA.mjs.map} +1 -1
- package/dist/{OrthopedicExamWidget-PAOIVU6Z.mjs → OrthopedicExamWidget-BBZP6NVT.mjs} +4 -4
- package/dist/{OrthopedicExamWidget-PAOIVU6Z.mjs.map → OrthopedicExamWidget-BBZP6NVT.mjs.map} +1 -1
- package/dist/{OrthopedicExamWidget-LP7VN3W5.cjs → OrthopedicExamWidget-M4KKU5RC.cjs} +6 -6
- package/dist/{OrthopedicExamWidget-LP7VN3W5.cjs.map → OrthopedicExamWidget-M4KKU5RC.cjs.map} +1 -1
- package/dist/{PainScaleFlagsWidget-MRMQ7HPJ.mjs → PainScaleFlagsWidget-E576R6QB.mjs} +4 -4
- package/dist/{PainScaleFlagsWidget-MRMQ7HPJ.mjs.map → PainScaleFlagsWidget-E576R6QB.mjs.map} +1 -1
- package/dist/{PainScaleFlagsWidget-IBNGVVHD.cjs → PainScaleFlagsWidget-QHGESXNE.cjs} +8 -8
- package/dist/{PainScaleFlagsWidget-IBNGVVHD.cjs.map → PainScaleFlagsWidget-QHGESXNE.cjs.map} +1 -1
- package/dist/{ReferralWidget-PDNEKHFO.cjs → ReferralWidget-J2PWYFDT.cjs} +7 -7
- package/dist/{ReferralWidget-PDNEKHFO.cjs.map → ReferralWidget-J2PWYFDT.cjs.map} +1 -1
- package/dist/{ReferralWidget-IYTS32TS.mjs → ReferralWidget-UPYWEO5R.mjs} +4 -4
- package/dist/{ReferralWidget-IYTS32TS.mjs.map → ReferralWidget-UPYWEO5R.mjs.map} +1 -1
- package/dist/RichTextWidget-BBCNJPMH.mjs +11 -0
- package/dist/{RichTextWidget-5OOJ2LJN.mjs.map → RichTextWidget-BBCNJPMH.mjs.map} +1 -1
- package/dist/{RichTextWidget-XWLOHKLE.cjs → RichTextWidget-CRQHNVJR.cjs} +7 -7
- package/dist/{RichTextWidget-XWLOHKLE.cjs.map → RichTextWidget-CRQHNVJR.cjs.map} +1 -1
- package/dist/SmartTextarea-DKWV4R6H.cjs +19 -0
- package/dist/{SmartTextarea-L7Q4CORK.cjs.map → SmartTextarea-DKWV4R6H.cjs.map} +1 -1
- package/dist/SmartTextarea-ZTQIW6O2.mjs +10 -0
- package/dist/{SmartTextarea-ZCXGMZLG.mjs.map → SmartTextarea-ZTQIW6O2.mjs.map} +1 -1
- package/dist/{SuggestionTextareaWidget-RN5LZYFC.mjs → SuggestionTextareaWidget-22NR3JWM.mjs} +7 -7
- package/dist/{SuggestionTextareaWidget-RN5LZYFC.mjs.map → SuggestionTextareaWidget-22NR3JWM.mjs.map} +1 -1
- package/dist/{SuggestionTextareaWidget-2TEITBPF.cjs → SuggestionTextareaWidget-WCTPWW2E.cjs} +18 -18
- package/dist/{SuggestionTextareaWidget-2TEITBPF.cjs.map → SuggestionTextareaWidget-WCTPWW2E.cjs.map} +1 -1
- package/dist/{SurgicalRiskFlagsWidget-JCSL3GWS.cjs → SurgicalRiskFlagsWidget-Q5FTWB3M.cjs} +6 -6
- package/dist/{SurgicalRiskFlagsWidget-JCSL3GWS.cjs.map → SurgicalRiskFlagsWidget-Q5FTWB3M.cjs.map} +1 -1
- package/dist/{SurgicalRiskFlagsWidget-DBICX4MB.mjs → SurgicalRiskFlagsWidget-WCAHZKKG.mjs} +4 -4
- package/dist/{SurgicalRiskFlagsWidget-DBICX4MB.mjs.map → SurgicalRiskFlagsWidget-WCAHZKKG.mjs.map} +1 -1
- package/dist/{UrologyExaminationWidget-74L3IN2X.cjs → UrologyExaminationWidget-JYUGZ5CG.cjs} +12 -12
- package/dist/{UrologyExaminationWidget-74L3IN2X.cjs.map → UrologyExaminationWidget-JYUGZ5CG.cjs.map} +1 -1
- package/dist/{UrologyExaminationWidget-IQEBP6CI.mjs → UrologyExaminationWidget-QDTD3FJX.mjs} +4 -4
- package/dist/{UrologyExaminationWidget-IQEBP6CI.mjs.map → UrologyExaminationWidget-QDTD3FJX.mjs.map} +1 -1
- package/dist/{UrologyPathwayWidget-S4QY6RD6.mjs → UrologyPathwayWidget-QTFKUIM7.mjs} +4 -4
- package/dist/{UrologyPathwayWidget-S4QY6RD6.mjs.map → UrologyPathwayWidget-QTFKUIM7.mjs.map} +1 -1
- package/dist/{UrologyPathwayWidget-UJY5EW2G.cjs → UrologyPathwayWidget-TXZQNGP4.cjs} +7 -7
- package/dist/{UrologyPathwayWidget-UJY5EW2G.cjs.map → UrologyPathwayWidget-TXZQNGP4.cjs.map} +1 -1
- package/dist/{UrologySmartHistoryWidget-XKZF63BV.cjs → UrologySmartHistoryWidget-53NATEO3.cjs} +15 -15
- package/dist/{UrologySmartHistoryWidget-XKZF63BV.cjs.map → UrologySmartHistoryWidget-53NATEO3.cjs.map} +1 -1
- package/dist/{UrologySmartHistoryWidget-NFTHHK6A.mjs → UrologySmartHistoryWidget-PBU4QXQJ.mjs} +4 -4
- package/dist/{UrologySmartHistoryWidget-NFTHHK6A.mjs.map → UrologySmartHistoryWidget-PBU4QXQJ.mjs.map} +1 -1
- package/dist/{VitalsWidget-MBYDGC7U.mjs → VitalsWidget-BRFUKGNO.mjs} +3 -3
- package/dist/{VitalsWidget-MBYDGC7U.mjs.map → VitalsWidget-BRFUKGNO.mjs.map} +1 -1
- package/dist/{VitalsWidget-44UWQGIF.cjs → VitalsWidget-PDCYXNBM.cjs} +5 -5
- package/dist/{VitalsWidget-44UWQGIF.cjs.map → VitalsWidget-PDCYXNBM.cjs.map} +1 -1
- package/dist/{chunk-AZVJU7NZ.mjs → chunk-3KRDT7TX.mjs} +5 -5
- package/dist/{chunk-AZVJU7NZ.mjs.map → chunk-3KRDT7TX.mjs.map} +1 -1
- package/dist/{chunk-ZSOIQVB3.mjs → chunk-5I2RC47Y.mjs} +3 -3
- package/dist/{chunk-ZSOIQVB3.mjs.map → chunk-5I2RC47Y.mjs.map} +1 -1
- package/dist/{chunk-KPGTPJDH.cjs → chunk-6YX37XBM.cjs} +4 -4
- package/dist/{chunk-KPGTPJDH.cjs.map → chunk-6YX37XBM.cjs.map} +1 -1
- package/dist/{chunk-XR2ZM654.mjs → chunk-7L2JOWGA.mjs} +3 -3
- package/dist/{chunk-XR2ZM654.mjs.map → chunk-7L2JOWGA.mjs.map} +1 -1
- package/dist/{chunk-FZEEWRW3.cjs → chunk-BOBX45NY.cjs} +5 -5
- package/dist/{chunk-FZEEWRW3.cjs.map → chunk-BOBX45NY.cjs.map} +1 -1
- package/dist/{chunk-JNVSA77L.cjs → chunk-GPU5P3FB.cjs} +7 -7
- package/dist/{chunk-JNVSA77L.cjs.map → chunk-GPU5P3FB.cjs.map} +1 -1
- package/dist/{chunk-NJJTIL3U.cjs → chunk-I7TJVWYV.cjs} +6 -6
- package/dist/{chunk-NJJTIL3U.cjs.map → chunk-I7TJVWYV.cjs.map} +1 -1
- package/dist/{chunk-CTW65YW2.cjs → chunk-L4CIIT4U.cjs} +9 -9
- package/dist/{chunk-CTW65YW2.cjs.map → chunk-L4CIIT4U.cjs.map} +1 -1
- package/dist/{chunk-DE7VZVKR.cjs → chunk-MQ2JV7HL.cjs} +11 -11
- package/dist/{chunk-DE7VZVKR.cjs.map → chunk-MQ2JV7HL.cjs.map} +1 -1
- package/dist/{chunk-IDSBJOFY.cjs → chunk-SHQHDSA4.cjs} +76 -2
- package/dist/chunk-SHQHDSA4.cjs.map +1 -0
- package/dist/{chunk-YYPMIUDW.mjs → chunk-ULMK3TUI.mjs} +3 -3
- package/dist/{chunk-YYPMIUDW.mjs.map → chunk-ULMK3TUI.mjs.map} +1 -1
- package/dist/{chunk-GFDE2KZC.mjs → chunk-VZT5YNCD.mjs} +4 -4
- package/dist/{chunk-GFDE2KZC.mjs.map → chunk-VZT5YNCD.mjs.map} +1 -1
- package/dist/{chunk-MIUUO4CI.mjs → chunk-YHNI5NIX.mjs} +5 -5
- package/dist/{chunk-MIUUO4CI.mjs.map → chunk-YHNI5NIX.mjs.map} +1 -1
- package/dist/{chunk-ZGPHTPAN.mjs → chunk-ZTT5XJR7.mjs} +73 -3
- package/dist/chunk-ZTT5XJR7.mjs.map +1 -0
- package/dist/index.cjs +596 -125
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +64 -6
- package/dist/index.d.ts +64 -6
- package/dist/index.mjs +544 -74
- package/dist/index.mjs.map +1 -1
- package/dist/read-only-table.d.cts +1 -1
- package/dist/read-only-table.d.ts +1 -1
- package/dist/rich-text.cjs +5 -5
- package/dist/rich-text.mjs +4 -4
- package/dist/smart.cjs +5 -5
- package/dist/smart.d.cts +1 -1
- package/dist/smart.d.ts +1 -1
- package/dist/smart.mjs +3 -3
- package/dist/{types-D0iYXUOo.d.cts → types-CYtJk8H9.d.cts} +49 -3
- package/dist/{types-D0iYXUOo.d.ts → types-CYtJk8H9.d.ts} +49 -3
- package/package.json +1 -1
- package/dist/RichTextWidget-5OOJ2LJN.mjs +0 -11
- package/dist/SmartTextarea-L7Q4CORK.cjs +0 -19
- package/dist/SmartTextarea-ZCXGMZLG.mjs +0 -10
- package/dist/chunk-IDSBJOFY.cjs.map +0 -1
- 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
|
|
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-
|
|
16
|
+
require('./chunk-BOBX45NY.cjs');
|
|
17
17
|
var chunk5E3APMY6_cjs = require('./chunk-5E3APMY6.cjs');
|
|
18
|
-
var
|
|
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
|
|
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 } =
|
|
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 } =
|
|
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 } =
|
|
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 } =
|
|
230
|
-
const store =
|
|
231
|
-
const { state } =
|
|
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 } =
|
|
411
|
-
const store =
|
|
412
|
-
const { state } =
|
|
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 } =
|
|
610
|
-
const store =
|
|
611
|
-
const { state } =
|
|
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 } =
|
|
1003
|
-
const store =
|
|
1004
|
-
const { state } =
|
|
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 } =
|
|
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 } =
|
|
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 } =
|
|
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 } =
|
|
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 } =
|
|
1337
|
-
const { state } =
|
|
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 } =
|
|
1389
|
-
const { state } =
|
|
1390
|
-
const store =
|
|
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 } =
|
|
1591
|
-
const { state } =
|
|
1592
|
-
const store =
|
|
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 } =
|
|
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-
|
|
1775
|
-
var DateWidget = lazyNamed(() => import('./DateWidget-
|
|
1776
|
-
var DateTimeWidget = lazyNamed(() => import('./DateTimeWidget-
|
|
1777
|
-
var EditableTableWidget = lazyNamed(() => import('./EditableTable-
|
|
1778
|
-
var AddMedicationWidget = lazyNamed(() => import('./AddMedicationWidget-
|
|
1779
|
-
var DischargeMedicationOrdersWidget = lazyNamed(() => import('./DischargeMedicationOrdersWidget-
|
|
1780
|
-
var AddInvestigationWidget = lazyNamed(() => import('./AddInvestigationWidget-
|
|
1781
|
-
var AddProcedureWidget = lazyNamed(() => import('./AddProcedureWidget-
|
|
1782
|
-
var DifferentialDiagnosisWidget = lazyNamed(() => import('./DifferentialDiagnosisWidget-
|
|
1783
|
-
var VitalsWidget = lazyNamed(() => import('./VitalsWidget-
|
|
1784
|
-
var HiddenVitalsWidget = lazyNamed(() => import('./HiddenVitalsWidget-
|
|
1785
|
-
var ReferralWidget = lazyNamed(() => import('./ReferralWidget-
|
|
1786
|
-
var FollowupWidget = lazyNamed(() => import('./FollowupWidget-
|
|
1787
|
-
var SmartTextareaWidget = lazyNamed(() => import('./SmartTextarea-
|
|
1788
|
-
var DiagnosisTextareaWidget = lazyNamed(() => import('./DiagnosisTextareaWidget-
|
|
1789
|
-
var ObstetricHistoryWidget = lazyNamed(() => import('./ObstetricHistoryWidget-
|
|
1790
|
-
var OphthalmologyWidget = lazyNamed(() => import('./OphthalmologyWidget-
|
|
1791
|
-
var OphthalDiagnosisWidget = lazyNamed(() => import('./OphthalDiagnosisWidget-
|
|
1792
|
-
var OrthopedicExamWidget = lazyNamed(() => import('./OrthopedicExamWidget-
|
|
1793
|
-
var MarMedicationOrdersWidget = lazyNamed(() => import('./MarMedicationOrdersWidget-
|
|
1794
|
-
var SuggestionTextareaWidget = lazyNamed(() => import('./SuggestionTextareaWidget-
|
|
1795
|
-
var LensAssessmentWidget = lazyNamed(() => import('./LensAssessmentWidget-
|
|
1796
|
-
var FunctionalImpairmentScoreWidget = lazyNamed(() => import('./FunctionalImpairmentScoreWidget-
|
|
1797
|
-
var BiometryIolWorkupWidget = lazyNamed(() => import('./BiometryIolWorkupWidget-
|
|
1798
|
-
var SurgicalRiskFlagsWidget = lazyNamed(() => import('./SurgicalRiskFlagsWidget-
|
|
1799
|
-
var GsSmartHistoryWidget = lazyNamed(() => import('./GsSmartHistoryWidget-
|
|
1800
|
-
var GsExaminationWidget = lazyNamed(() => import('./GsExaminationWidget-
|
|
1801
|
-
var GsGradingWidget = lazyNamed(() => import('./GsGradingWidget-
|
|
1802
|
-
var PainScaleFlagsWidget = lazyNamed(() => import('./PainScaleFlagsWidget-
|
|
1803
|
-
var UrologySmartHistoryWidget = lazyNamed(() => import('./UrologySmartHistoryWidget-
|
|
1804
|
-
var UrologyExaminationWidget = lazyNamed(() => import('./UrologyExaminationWidget-
|
|
1805
|
-
var UrologyPathwayWidget = lazyNamed(() => import('./UrologyPathwayWidget-
|
|
1806
|
-
var OBGExaminationWidget = lazyNamed(() => import('./OBGExaminationWidget-
|
|
1807
|
-
var OBGPathwayWidget = lazyNamed(() => import('./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 } =
|
|
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(
|
|
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(
|
|
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(
|
|
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 } =
|
|
1910
|
-
const store =
|
|
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 =
|
|
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 =
|
|
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
|
|
2224
|
-
status === "complete" && "border-primary bg-primary
|
|
2225
|
-
status === "active" && "border-primary bg-background
|
|
2226
|
-
status === "locked" && "border-border bg-background
|
|
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" }) :
|
|
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 =
|
|
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(
|
|
2286
|
-
|
|
2287
|
-
|
|
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.
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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(
|
|
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(
|
|
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
|
-
} =
|
|
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
|
|
3958
|
+
get: function () { return chunk6YX37XBM_cjs.useForm; }
|
|
3489
3959
|
});
|
|
3490
3960
|
Object.defineProperty(exports, "EMAIL_REGEX", {
|
|
3491
3961
|
enumerable: true,
|
|
3492
|
-
get: function () { return
|
|
3962
|
+
get: function () { return chunkSHQHDSA4_cjs.EMAIL_REGEX; }
|
|
3493
3963
|
});
|
|
3494
3964
|
Object.defineProperty(exports, "FormProvider", {
|
|
3495
3965
|
enumerable: true,
|
|
3496
|
-
get: function () { return
|
|
3966
|
+
get: function () { return chunkSHQHDSA4_cjs.FormProvider; }
|
|
3497
3967
|
});
|
|
3498
3968
|
Object.defineProperty(exports, "FormStore", {
|
|
3499
3969
|
enumerable: true,
|
|
3500
|
-
get: function () { return
|
|
3970
|
+
get: function () { return chunkSHQHDSA4_cjs.FormStore; }
|
|
3501
3971
|
});
|
|
3502
3972
|
Object.defineProperty(exports, "evaluateRules", {
|
|
3503
3973
|
enumerable: true,
|
|
3504
|
-
get: function () { return
|
|
3974
|
+
get: function () { return chunkSHQHDSA4_cjs.evaluateRules; }
|
|
3505
3975
|
});
|
|
3506
3976
|
Object.defineProperty(exports, "useField", {
|
|
3507
3977
|
enumerable: true,
|
|
3508
|
-
get: function () { return
|
|
3978
|
+
get: function () { return chunkSHQHDSA4_cjs.useField; }
|
|
3509
3979
|
});
|
|
3510
3980
|
Object.defineProperty(exports, "useFieldHandlers", {
|
|
3511
3981
|
enumerable: true,
|
|
3512
|
-
get: function () { return
|
|
3982
|
+
get: function () { return chunkSHQHDSA4_cjs.useFieldHandlers; }
|
|
3513
3983
|
});
|
|
3514
3984
|
Object.defineProperty(exports, "useFormStore", {
|
|
3515
3985
|
enumerable: true,
|
|
3516
|
-
get: function () { return
|
|
3986
|
+
get: function () { return chunkSHQHDSA4_cjs.useFormStore; }
|
|
3517
3987
|
});
|
|
3518
3988
|
Object.defineProperty(exports, "useFrequentItems", {
|
|
3519
3989
|
enumerable: true,
|
|
3520
|
-
get: function () { return
|
|
3990
|
+
get: function () { return chunkSHQHDSA4_cjs.useFrequentItems; }
|
|
3521
3991
|
});
|
|
3522
3992
|
Object.defineProperty(exports, "usePackages", {
|
|
3523
3993
|
enumerable: true,
|
|
3524
|
-
get: function () { return
|
|
3994
|
+
get: function () { return chunkSHQHDSA4_cjs.usePackages; }
|
|
3525
3995
|
});
|
|
3526
3996
|
Object.defineProperty(exports, "validateField", {
|
|
3527
3997
|
enumerable: true,
|
|
3528
|
-
get: function () { return
|
|
3998
|
+
get: function () { return chunkSHQHDSA4_cjs.validateField; }
|
|
3529
3999
|
});
|
|
3530
4000
|
Object.defineProperty(exports, "validateForm", {
|
|
3531
4001
|
enumerable: true,
|
|
3532
|
-
get: function () { return
|
|
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;
|