formanitor 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AddInvestigationWidget-G7NPTSFY.cjs → AddInvestigationWidget-7FLINCTT.cjs} +7 -7
- package/dist/{AddInvestigationWidget-G7NPTSFY.cjs.map → AddInvestigationWidget-7FLINCTT.cjs.map} +1 -1
- package/dist/{AddInvestigationWidget-TQUKTGAW.mjs → AddInvestigationWidget-FABXZDEZ.mjs} +3 -3
- package/dist/{AddInvestigationWidget-TQUKTGAW.mjs.map → AddInvestigationWidget-FABXZDEZ.mjs.map} +1 -1
- package/dist/{AddMedicationWidget-26RHKIA6.cjs → AddMedicationWidget-45T4XVEL.cjs} +6 -6
- package/dist/{AddMedicationWidget-26RHKIA6.cjs.map → AddMedicationWidget-45T4XVEL.cjs.map} +1 -1
- package/dist/{AddMedicationWidget-I5UIT3WG.mjs → AddMedicationWidget-B5RXRYBK.mjs} +3 -3
- package/dist/{AddMedicationWidget-I5UIT3WG.mjs.map → AddMedicationWidget-B5RXRYBK.mjs.map} +1 -1
- package/dist/{AddProcedureWidget-NB46COB6.mjs → AddProcedureWidget-F74WGSFX.mjs} +3 -3
- package/dist/{AddProcedureWidget-NB46COB6.mjs.map → AddProcedureWidget-F74WGSFX.mjs.map} +1 -1
- package/dist/{AddProcedureWidget-B6OUF3BM.cjs → AddProcedureWidget-HK7UNRXH.cjs} +6 -6
- package/dist/{AddProcedureWidget-B6OUF3BM.cjs.map → AddProcedureWidget-HK7UNRXH.cjs.map} +1 -1
- package/dist/{BiometryIolWorkupWidget-F7HRYMOJ.mjs → BiometryIolWorkupWidget-5RZP34FF.mjs} +4 -4
- package/dist/{BiometryIolWorkupWidget-F7HRYMOJ.mjs.map → BiometryIolWorkupWidget-5RZP34FF.mjs.map} +1 -1
- package/dist/{BiometryIolWorkupWidget-TCU4MMVI.cjs → BiometryIolWorkupWidget-FWO3IWTF.cjs} +6 -6
- package/dist/{BiometryIolWorkupWidget-TCU4MMVI.cjs.map → BiometryIolWorkupWidget-FWO3IWTF.cjs.map} +1 -1
- package/dist/{DateTimeWidget-WKQIEQSA.mjs → DateTimeWidget-3AUBZYYK.mjs} +4 -4
- package/dist/{DateTimeWidget-WKQIEQSA.mjs.map → DateTimeWidget-3AUBZYYK.mjs.map} +1 -1
- package/dist/{DateTimeWidget-72YUK7PX.cjs → DateTimeWidget-OS7ER5F6.cjs} +6 -6
- package/dist/{DateTimeWidget-72YUK7PX.cjs.map → DateTimeWidget-OS7ER5F6.cjs.map} +1 -1
- package/dist/{DateWidget-K2TVTZ7Z.mjs → DateWidget-KCTE6N5G.mjs} +4 -4
- package/dist/{DateWidget-K2TVTZ7Z.mjs.map → DateWidget-KCTE6N5G.mjs.map} +1 -1
- package/dist/{DateWidget-SYDMSGWO.cjs → DateWidget-UNLX544Z.cjs} +6 -6
- package/dist/{DateWidget-SYDMSGWO.cjs.map → DateWidget-UNLX544Z.cjs.map} +1 -1
- package/dist/{DiagnosisTextareaWidget-RD65PGDY.mjs → DiagnosisTextareaWidget-6UCYCCSB.mjs} +4 -4
- package/dist/{DiagnosisTextareaWidget-RD65PGDY.mjs.map → DiagnosisTextareaWidget-6UCYCCSB.mjs.map} +1 -1
- package/dist/{DiagnosisTextareaWidget-UKWLE2SQ.cjs → DiagnosisTextareaWidget-XJ47OZYH.cjs} +7 -7
- package/dist/{DiagnosisTextareaWidget-UKWLE2SQ.cjs.map → DiagnosisTextareaWidget-XJ47OZYH.cjs.map} +1 -1
- package/dist/{DifferentialDiagnosisWidget-FENJP245.mjs → DifferentialDiagnosisWidget-IZEZVW5F.mjs} +3 -3
- package/dist/{DifferentialDiagnosisWidget-FENJP245.mjs.map → DifferentialDiagnosisWidget-IZEZVW5F.mjs.map} +1 -1
- package/dist/{DifferentialDiagnosisWidget-ZGFXP2BH.cjs → DifferentialDiagnosisWidget-XESNHNQQ.cjs} +4 -4
- package/dist/{DifferentialDiagnosisWidget-ZGFXP2BH.cjs.map → DifferentialDiagnosisWidget-XESNHNQQ.cjs.map} +1 -1
- package/dist/{DischargeMedicationOrdersWidget-26ALTGJM.mjs → DischargeMedicationOrdersWidget-KA3HANHE.mjs} +4 -4
- package/dist/{DischargeMedicationOrdersWidget-26ALTGJM.mjs.map → DischargeMedicationOrdersWidget-KA3HANHE.mjs.map} +1 -1
- package/dist/{DischargeMedicationOrdersWidget-B4CJQ3QS.cjs → DischargeMedicationOrdersWidget-WRJRYL6F.cjs} +7 -7
- package/dist/{DischargeMedicationOrdersWidget-B4CJQ3QS.cjs.map → DischargeMedicationOrdersWidget-WRJRYL6F.cjs.map} +1 -1
- package/dist/{EditableTable-YB4IC3ZK.cjs → EditableTable-VQ72UEFF.cjs} +4 -4
- package/dist/{EditableTable-YB4IC3ZK.cjs.map → EditableTable-VQ72UEFF.cjs.map} +1 -1
- package/dist/{EditableTable-LPAYCK36.mjs → EditableTable-XFCPKSUY.mjs} +3 -3
- package/dist/{EditableTable-LPAYCK36.mjs.map → EditableTable-XFCPKSUY.mjs.map} +1 -1
- package/dist/{FollowupWidget-NJ4QDBOG.mjs → FollowupWidget-BFZ6P2JE.mjs} +3 -3
- package/dist/{FollowupWidget-NJ4QDBOG.mjs.map → FollowupWidget-BFZ6P2JE.mjs.map} +1 -1
- package/dist/{FollowupWidget-EEKOI2TW.cjs → FollowupWidget-MAYTHM2E.cjs} +4 -4
- package/dist/{FollowupWidget-EEKOI2TW.cjs.map → FollowupWidget-MAYTHM2E.cjs.map} +1 -1
- package/dist/{FunctionalImpairmentScoreWidget-HAAPCMIS.cjs → FunctionalImpairmentScoreWidget-FCA4UKQA.cjs} +6 -6
- package/dist/{FunctionalImpairmentScoreWidget-HAAPCMIS.cjs.map → FunctionalImpairmentScoreWidget-FCA4UKQA.cjs.map} +1 -1
- package/dist/{FunctionalImpairmentScoreWidget-ZNLKKBYN.mjs → FunctionalImpairmentScoreWidget-TKS6KE7K.mjs} +4 -4
- package/dist/{FunctionalImpairmentScoreWidget-ZNLKKBYN.mjs.map → FunctionalImpairmentScoreWidget-TKS6KE7K.mjs.map} +1 -1
- package/dist/{GsExaminationWidget-MEIUHRQQ.mjs → GsExaminationWidget-ESIEZCP3.mjs} +4 -4
- package/dist/{GsExaminationWidget-MEIUHRQQ.mjs.map → GsExaminationWidget-ESIEZCP3.mjs.map} +1 -1
- package/dist/{GsExaminationWidget-EX6C3EF5.cjs → GsExaminationWidget-KKE5I5GX.cjs} +10 -10
- package/dist/{GsExaminationWidget-EX6C3EF5.cjs.map → GsExaminationWidget-KKE5I5GX.cjs.map} +1 -1
- package/dist/{GsGradingWidget-4UPOEYNL.mjs → GsGradingWidget-HC4MJ4KJ.mjs} +4 -4
- package/dist/{GsGradingWidget-4UPOEYNL.mjs.map → GsGradingWidget-HC4MJ4KJ.mjs.map} +1 -1
- package/dist/{GsGradingWidget-IV3UF63W.cjs → GsGradingWidget-NGCQQVYA.cjs} +12 -12
- package/dist/{GsGradingWidget-IV3UF63W.cjs.map → GsGradingWidget-NGCQQVYA.cjs.map} +1 -1
- package/dist/{GsSmartHistoryWidget-LGN7W2AV.mjs → GsSmartHistoryWidget-7HYGDU4O.mjs} +4 -4
- package/dist/{GsSmartHistoryWidget-LGN7W2AV.mjs.map → GsSmartHistoryWidget-7HYGDU4O.mjs.map} +1 -1
- package/dist/{GsSmartHistoryWidget-7QNJZEI4.cjs → GsSmartHistoryWidget-AAB427Q2.cjs} +12 -12
- package/dist/{GsSmartHistoryWidget-7QNJZEI4.cjs.map → GsSmartHistoryWidget-AAB427Q2.cjs.map} +1 -1
- package/dist/{HiddenVitalsWidget-AMH32HT2.cjs → HiddenVitalsWidget-5GFBDDPT.cjs} +6 -6
- package/dist/{HiddenVitalsWidget-AMH32HT2.cjs.map → HiddenVitalsWidget-5GFBDDPT.cjs.map} +1 -1
- package/dist/{HiddenVitalsWidget-W23IFSEF.mjs → HiddenVitalsWidget-CIE3KERT.mjs} +4 -4
- package/dist/{HiddenVitalsWidget-W23IFSEF.mjs.map → HiddenVitalsWidget-CIE3KERT.mjs.map} +1 -1
- package/dist/{LensAssessmentWidget-SJ6YUTSN.mjs → LensAssessmentWidget-B4OMHTOE.mjs} +4 -4
- package/dist/{LensAssessmentWidget-SJ6YUTSN.mjs.map → LensAssessmentWidget-B4OMHTOE.mjs.map} +1 -1
- package/dist/{LensAssessmentWidget-LSHBUTT5.cjs → LensAssessmentWidget-SIKJVVAE.cjs} +6 -6
- package/dist/{LensAssessmentWidget-LSHBUTT5.cjs.map → LensAssessmentWidget-SIKJVVAE.cjs.map} +1 -1
- package/dist/{MarMedicationOrdersWidget-ZKZLSZRN.cjs → MarMedicationOrdersWidget-767F65K6.cjs} +7 -7
- package/dist/{MarMedicationOrdersWidget-ZKZLSZRN.cjs.map → MarMedicationOrdersWidget-767F65K6.cjs.map} +1 -1
- package/dist/{MarMedicationOrdersWidget-IKMAFPRG.mjs → MarMedicationOrdersWidget-LG3WOXN7.mjs} +4 -4
- package/dist/{MarMedicationOrdersWidget-IKMAFPRG.mjs.map → MarMedicationOrdersWidget-LG3WOXN7.mjs.map} +1 -1
- package/dist/{OBGExaminationWidget-BK4ERETW.mjs → OBGExaminationWidget-HQKTHSOZ.mjs} +4 -4
- package/dist/{OBGExaminationWidget-BK4ERETW.mjs.map → OBGExaminationWidget-HQKTHSOZ.mjs.map} +1 -1
- package/dist/{OBGExaminationWidget-SMFZ2WCL.cjs → OBGExaminationWidget-MRTGWLXJ.cjs} +11 -11
- package/dist/{OBGExaminationWidget-SMFZ2WCL.cjs.map → OBGExaminationWidget-MRTGWLXJ.cjs.map} +1 -1
- package/dist/{OBGPathwayWidget-U5BCAESB.mjs → OBGPathwayWidget-X67XKRIH.mjs} +5 -5
- package/dist/{OBGPathwayWidget-U5BCAESB.mjs.map → OBGPathwayWidget-X67XKRIH.mjs.map} +1 -1
- package/dist/{OBGPathwayWidget-5YTUDBEH.cjs → OBGPathwayWidget-XGN3HEWS.cjs} +17 -17
- package/dist/{OBGPathwayWidget-5YTUDBEH.cjs.map → OBGPathwayWidget-XGN3HEWS.cjs.map} +1 -1
- package/dist/{ObstetricHistoryWidget-GC63CB3U.cjs → ObstetricHistoryWidget-RP7NY4PV.cjs} +12 -12
- package/dist/{ObstetricHistoryWidget-GC63CB3U.cjs.map → ObstetricHistoryWidget-RP7NY4PV.cjs.map} +1 -1
- package/dist/{ObstetricHistoryWidget-WD572Q7H.mjs → ObstetricHistoryWidget-Z4VAXH3E.mjs} +4 -4
- package/dist/{ObstetricHistoryWidget-WD572Q7H.mjs.map → ObstetricHistoryWidget-Z4VAXH3E.mjs.map} +1 -1
- package/dist/{OphthalDiagnosisWidget-Y3AHD6AG.mjs → OphthalDiagnosisWidget-MZYBQTFV.mjs} +3 -3
- package/dist/{OphthalDiagnosisWidget-Y3AHD6AG.mjs.map → OphthalDiagnosisWidget-MZYBQTFV.mjs.map} +1 -1
- package/dist/{OphthalDiagnosisWidget-QXFK446I.cjs → OphthalDiagnosisWidget-UXXYGKD5.cjs} +4 -4
- package/dist/{OphthalDiagnosisWidget-QXFK446I.cjs.map → OphthalDiagnosisWidget-UXXYGKD5.cjs.map} +1 -1
- package/dist/{OphthalmologyWidget-CRQMN5QU.mjs → OphthalmologyWidget-27ZN2E3F.mjs} +3 -3
- package/dist/{OphthalmologyWidget-CRQMN5QU.mjs.map → OphthalmologyWidget-27ZN2E3F.mjs.map} +1 -1
- package/dist/{OphthalmologyWidget-U2HQMZ4J.cjs → OphthalmologyWidget-WFSFIHT4.cjs} +4 -4
- package/dist/{OphthalmologyWidget-U2HQMZ4J.cjs.map → OphthalmologyWidget-WFSFIHT4.cjs.map} +1 -1
- package/dist/{OrthopedicExamWidget-LP7VN3W5.cjs → OrthopedicExamWidget-ULZTDFXJ.cjs} +6 -6
- package/dist/{OrthopedicExamWidget-LP7VN3W5.cjs.map → OrthopedicExamWidget-ULZTDFXJ.cjs.map} +1 -1
- package/dist/{OrthopedicExamWidget-PAOIVU6Z.mjs → OrthopedicExamWidget-WM55M3Y4.mjs} +4 -4
- package/dist/{OrthopedicExamWidget-PAOIVU6Z.mjs.map → OrthopedicExamWidget-WM55M3Y4.mjs.map} +1 -1
- package/dist/{PainScaleFlagsWidget-MRMQ7HPJ.mjs → PainScaleFlagsWidget-5KN7T4JK.mjs} +4 -4
- package/dist/{PainScaleFlagsWidget-MRMQ7HPJ.mjs.map → PainScaleFlagsWidget-5KN7T4JK.mjs.map} +1 -1
- package/dist/{PainScaleFlagsWidget-IBNGVVHD.cjs → PainScaleFlagsWidget-IFA3RCEL.cjs} +8 -8
- package/dist/{PainScaleFlagsWidget-IBNGVVHD.cjs.map → PainScaleFlagsWidget-IFA3RCEL.cjs.map} +1 -1
- package/dist/{ReferralWidget-PDNEKHFO.cjs → ReferralWidget-27VGZCOQ.cjs} +7 -7
- package/dist/{ReferralWidget-PDNEKHFO.cjs.map → ReferralWidget-27VGZCOQ.cjs.map} +1 -1
- package/dist/{ReferralWidget-IYTS32TS.mjs → ReferralWidget-GU3JYED2.mjs} +4 -4
- package/dist/{ReferralWidget-IYTS32TS.mjs.map → ReferralWidget-GU3JYED2.mjs.map} +1 -1
- package/dist/{RichTextWidget-XWLOHKLE.cjs → RichTextWidget-2KLV65QP.cjs} +7 -7
- package/dist/{RichTextWidget-5OOJ2LJN.mjs.map → RichTextWidget-2KLV65QP.cjs.map} +1 -1
- package/dist/RichTextWidget-ZBX554ZJ.mjs +11 -0
- package/dist/{RichTextWidget-XWLOHKLE.cjs.map → RichTextWidget-ZBX554ZJ.mjs.map} +1 -1
- package/dist/SmartTextarea-LQDXFCYT.mjs +10 -0
- package/dist/{SmartTextarea-L7Q4CORK.cjs.map → SmartTextarea-LQDXFCYT.mjs.map} +1 -1
- package/dist/SmartTextarea-WITNRNDU.cjs +19 -0
- package/dist/{SmartTextarea-ZCXGMZLG.mjs.map → SmartTextarea-WITNRNDU.cjs.map} +1 -1
- package/dist/{SuggestionTextareaWidget-2TEITBPF.cjs → SuggestionTextareaWidget-DY6M5JPO.cjs} +18 -18
- package/dist/{SuggestionTextareaWidget-2TEITBPF.cjs.map → SuggestionTextareaWidget-DY6M5JPO.cjs.map} +1 -1
- package/dist/{SuggestionTextareaWidget-RN5LZYFC.mjs → SuggestionTextareaWidget-GQTWCFBG.mjs} +7 -7
- package/dist/{SuggestionTextareaWidget-RN5LZYFC.mjs.map → SuggestionTextareaWidget-GQTWCFBG.mjs.map} +1 -1
- package/dist/{SurgicalRiskFlagsWidget-JCSL3GWS.cjs → SurgicalRiskFlagsWidget-OJKCZIWJ.cjs} +6 -6
- package/dist/{SurgicalRiskFlagsWidget-JCSL3GWS.cjs.map → SurgicalRiskFlagsWidget-OJKCZIWJ.cjs.map} +1 -1
- package/dist/{SurgicalRiskFlagsWidget-DBICX4MB.mjs → SurgicalRiskFlagsWidget-ZTQJ6CDF.mjs} +4 -4
- package/dist/{SurgicalRiskFlagsWidget-DBICX4MB.mjs.map → SurgicalRiskFlagsWidget-ZTQJ6CDF.mjs.map} +1 -1
- package/dist/{UrologyExaminationWidget-74L3IN2X.cjs → UrologyExaminationWidget-GQLMV4FB.cjs} +12 -12
- package/dist/{UrologyExaminationWidget-74L3IN2X.cjs.map → UrologyExaminationWidget-GQLMV4FB.cjs.map} +1 -1
- package/dist/{UrologyExaminationWidget-IQEBP6CI.mjs → UrologyExaminationWidget-GRBL2SDG.mjs} +4 -4
- package/dist/{UrologyExaminationWidget-IQEBP6CI.mjs.map → UrologyExaminationWidget-GRBL2SDG.mjs.map} +1 -1
- package/dist/{UrologyPathwayWidget-UJY5EW2G.cjs → UrologyPathwayWidget-D6EWSOGW.cjs} +7 -7
- package/dist/{UrologyPathwayWidget-UJY5EW2G.cjs.map → UrologyPathwayWidget-D6EWSOGW.cjs.map} +1 -1
- package/dist/{UrologyPathwayWidget-S4QY6RD6.mjs → UrologyPathwayWidget-PEO5BVQX.mjs} +4 -4
- package/dist/{UrologyPathwayWidget-S4QY6RD6.mjs.map → UrologyPathwayWidget-PEO5BVQX.mjs.map} +1 -1
- package/dist/{UrologySmartHistoryWidget-NFTHHK6A.mjs → UrologySmartHistoryWidget-BDKRFBYN.mjs} +4 -4
- package/dist/{UrologySmartHistoryWidget-NFTHHK6A.mjs.map → UrologySmartHistoryWidget-BDKRFBYN.mjs.map} +1 -1
- package/dist/{UrologySmartHistoryWidget-XKZF63BV.cjs → UrologySmartHistoryWidget-P3KTQE7L.cjs} +15 -15
- package/dist/{UrologySmartHistoryWidget-XKZF63BV.cjs.map → UrologySmartHistoryWidget-P3KTQE7L.cjs.map} +1 -1
- package/dist/{VitalsWidget-MBYDGC7U.mjs → VitalsWidget-63HTXK2M.mjs} +3 -3
- package/dist/{VitalsWidget-MBYDGC7U.mjs.map → VitalsWidget-63HTXK2M.mjs.map} +1 -1
- package/dist/{VitalsWidget-44UWQGIF.cjs → VitalsWidget-MS3OOZSW.cjs} +5 -5
- package/dist/{VitalsWidget-44UWQGIF.cjs.map → VitalsWidget-MS3OOZSW.cjs.map} +1 -1
- package/dist/{chunk-ZGPHTPAN.mjs → chunk-2BGJZ44Q.mjs} +74 -3
- package/dist/chunk-2BGJZ44Q.mjs.map +1 -0
- package/dist/{chunk-YYPMIUDW.mjs → chunk-4HDMR2LX.mjs} +3 -3
- package/dist/{chunk-YYPMIUDW.mjs.map → chunk-4HDMR2LX.mjs.map} +1 -1
- package/dist/{chunk-KPGTPJDH.cjs → chunk-7DISRJAB.cjs} +4 -4
- package/dist/{chunk-KPGTPJDH.cjs.map → chunk-7DISRJAB.cjs.map} +1 -1
- package/dist/{chunk-GFDE2KZC.mjs → chunk-MBZRRYJB.mjs} +4 -4
- package/dist/{chunk-GFDE2KZC.mjs.map → chunk-MBZRRYJB.mjs.map} +1 -1
- package/dist/{chunk-NJJTIL3U.cjs → chunk-ML47UEDU.cjs} +6 -6
- package/dist/{chunk-NJJTIL3U.cjs.map → chunk-ML47UEDU.cjs.map} +1 -1
- package/dist/{chunk-ZSOIQVB3.mjs → chunk-Q3K646K4.mjs} +3 -3
- package/dist/{chunk-ZSOIQVB3.mjs.map → chunk-Q3K646K4.mjs.map} +1 -1
- package/dist/{chunk-JNVSA77L.cjs → chunk-RZK44P3C.cjs} +7 -7
- package/dist/{chunk-JNVSA77L.cjs.map → chunk-RZK44P3C.cjs.map} +1 -1
- package/dist/{chunk-CTW65YW2.cjs → chunk-T2IKWRV2.cjs} +9 -9
- package/dist/{chunk-CTW65YW2.cjs.map → chunk-T2IKWRV2.cjs.map} +1 -1
- package/dist/{chunk-XR2ZM654.mjs → chunk-T3UHPMFX.mjs} +3 -3
- package/dist/{chunk-XR2ZM654.mjs.map → chunk-T3UHPMFX.mjs.map} +1 -1
- package/dist/{chunk-IDSBJOFY.cjs → chunk-TB33A4PD.cjs} +77 -2
- package/dist/chunk-TB33A4PD.cjs.map +1 -0
- package/dist/{chunk-DE7VZVKR.cjs → chunk-TVFUWRTE.cjs} +11 -11
- package/dist/{chunk-DE7VZVKR.cjs.map → chunk-TVFUWRTE.cjs.map} +1 -1
- package/dist/{chunk-FZEEWRW3.cjs → chunk-XIUXYHGG.cjs} +5 -5
- package/dist/{chunk-FZEEWRW3.cjs.map → chunk-XIUXYHGG.cjs.map} +1 -1
- package/dist/{chunk-MIUUO4CI.mjs → chunk-XLCTFYFD.mjs} +5 -5
- package/dist/{chunk-MIUUO4CI.mjs.map → chunk-XLCTFYFD.mjs.map} +1 -1
- package/dist/{chunk-AZVJU7NZ.mjs → chunk-XN2QLBLT.mjs} +5 -5
- package/dist/{chunk-AZVJU7NZ.mjs.map → chunk-XN2QLBLT.mjs.map} +1 -1
- package/dist/index.cjs +598 -125
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +74 -6
- package/dist/index.d.ts +74 -6
- package/dist/index.mjs +546 -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 chunkTVFUWRTE_cjs = require('./chunk-TVFUWRTE.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-XIUXYHGG.cjs');
|
|
17
17
|
var chunk5E3APMY6_cjs = require('./chunk-5E3APMY6.cjs');
|
|
18
|
-
var
|
|
18
|
+
var chunk7DISRJAB_cjs = require('./chunk-7DISRJAB.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 chunkTB33A4PD_cjs = require('./chunk-TB33A4PD.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,68 @@ 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
|
+
/** Camp booking is submit-only; field changes must not POST /book/. */
|
|
56
|
+
autoSave = false;
|
|
57
|
+
config;
|
|
58
|
+
constructor(config) {
|
|
59
|
+
this.config = config;
|
|
60
|
+
}
|
|
61
|
+
async save(_formId, state) {
|
|
62
|
+
const {
|
|
63
|
+
baseUrl,
|
|
64
|
+
authToken,
|
|
65
|
+
patientId,
|
|
66
|
+
campDateFieldId = "camp_date",
|
|
67
|
+
slotFieldId = "camp_time_slot",
|
|
68
|
+
bookingFormDataFields
|
|
69
|
+
} = this.config;
|
|
70
|
+
const campDateValue = state.values[campDateFieldId];
|
|
71
|
+
const instanceId = campDateValue && typeof campDateValue === "object" && !Array.isArray(campDateValue) ? campDateValue.id : null;
|
|
72
|
+
if (!instanceId || typeof instanceId !== "string") {
|
|
73
|
+
throw new Error("Camp booking: no instance selected (camp_date field is empty or invalid).");
|
|
74
|
+
}
|
|
75
|
+
const primarySlotId = state.values[slotFieldId];
|
|
76
|
+
if (!primarySlotId || typeof primarySlotId !== "string") {
|
|
77
|
+
throw new Error("Camp booking: no time slot selected.");
|
|
78
|
+
}
|
|
79
|
+
const excludeKeys = /* @__PURE__ */ new Set([campDateFieldId, slotFieldId]);
|
|
80
|
+
const bookingFormData = {};
|
|
81
|
+
const fieldKeys = bookingFormDataFields ?? Object.keys(state.values);
|
|
82
|
+
for (const key of fieldKeys) {
|
|
83
|
+
if (!excludeKeys.has(key)) {
|
|
84
|
+
bookingFormData[key] = state.values[key];
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
const idempotencyKey = typeof crypto !== "undefined" && typeof crypto.randomUUID === "function" ? crypto.randomUUID() : `${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
88
|
+
const payload = {
|
|
89
|
+
primary_slot_id: primarySlotId,
|
|
90
|
+
patient_id: patientId,
|
|
91
|
+
booking_form_data: bookingFormData,
|
|
92
|
+
idempotency_key: idempotencyKey
|
|
93
|
+
};
|
|
94
|
+
const headers = { "Content-Type": "application/json" };
|
|
95
|
+
if (authToken) headers["Authorization"] = `Bearer ${authToken}`;
|
|
96
|
+
const response = await fetch(`${baseUrl}/api/camps/instances/${instanceId}/book/`, {
|
|
97
|
+
method: "POST",
|
|
98
|
+
headers,
|
|
99
|
+
body: JSON.stringify(payload)
|
|
100
|
+
});
|
|
101
|
+
if (!response.ok) {
|
|
102
|
+
const errorText = await response.text().catch(() => "");
|
|
103
|
+
throw new Error(
|
|
104
|
+
`Camp booking failed: ${response.status} ${response.statusText}${errorText ? ` \u2013 ${errorText}` : ""}`
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async load(_formId) {
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
async clear(_formId) {
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
|
|
52
115
|
// src/core/marMedicationOrdersMeta.ts
|
|
53
116
|
var MAR_MEDICATION_ORDERS_META_KEY = "mar_medication_orders";
|
|
54
117
|
function fieldMetaRequestsMarMedicationOrdersButton(meta) {
|
|
@@ -56,10 +119,10 @@ function fieldMetaRequestsMarMedicationOrdersButton(meta) {
|
|
|
56
119
|
return meta[MAR_MEDICATION_ORDERS_META_KEY] === true;
|
|
57
120
|
}
|
|
58
121
|
var MultiSelectWidget = ({ fieldId }) => {
|
|
59
|
-
const { fieldDef, value, setValue, setTouched, error, disabled, touched } =
|
|
122
|
+
const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkTB33A4PD_cjs.useField(fieldId);
|
|
60
123
|
const [options, setOptions] = React6.useState([]);
|
|
61
124
|
const [loading, setLoading] = React6.useState(false);
|
|
62
|
-
const { state } =
|
|
125
|
+
const { state } = chunk7DISRJAB_cjs.useForm();
|
|
63
126
|
const showError = !!error && (touched || state.submitAttempted);
|
|
64
127
|
const currentValues = Array.isArray(value) ? value : [];
|
|
65
128
|
React6.useEffect(() => {
|
|
@@ -123,7 +186,7 @@ var MultiSelectWidget = ({ fieldId }) => {
|
|
|
123
186
|
var RepeatableWidget = ({
|
|
124
187
|
fieldId
|
|
125
188
|
}) => {
|
|
126
|
-
const { fieldDef, value, setValue, error, disabled, touched } =
|
|
189
|
+
const { fieldDef, value, setValue, error, disabled, touched } = chunkTB33A4PD_cjs.useField(fieldId);
|
|
127
190
|
if (!fieldDef || fieldDef.type !== "repeatable") return null;
|
|
128
191
|
const def = fieldDef;
|
|
129
192
|
const rows = Array.isArray(value) ? value : [];
|
|
@@ -226,9 +289,9 @@ function extractImageDisplayUrl(value) {
|
|
|
226
289
|
return null;
|
|
227
290
|
}
|
|
228
291
|
var ImageUploadWidget = ({ fieldId }) => {
|
|
229
|
-
const { fieldDef, value, setValue, setTouched, error, disabled, touched } =
|
|
230
|
-
const store =
|
|
231
|
-
const { state } =
|
|
292
|
+
const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkTB33A4PD_cjs.useField(fieldId);
|
|
293
|
+
const store = chunkTB33A4PD_cjs.useFormStore();
|
|
294
|
+
const { state } = chunk7DISRJAB_cjs.useForm();
|
|
232
295
|
const [isUploading, setIsUploading] = React6.useState(false);
|
|
233
296
|
const [preview, setPreview] = React6.useState(null);
|
|
234
297
|
const fileInputRef = React6.useRef(null);
|
|
@@ -407,9 +470,9 @@ function extractMediaDisplayUrl(value) {
|
|
|
407
470
|
return null;
|
|
408
471
|
}
|
|
409
472
|
var MediaUploadWidget = ({ fieldId }) => {
|
|
410
|
-
const { fieldDef, value, setValue, setTouched, error, disabled, touched } =
|
|
411
|
-
const store =
|
|
412
|
-
const { state } =
|
|
473
|
+
const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkTB33A4PD_cjs.useField(fieldId);
|
|
474
|
+
const store = chunkTB33A4PD_cjs.useFormStore();
|
|
475
|
+
const { state } = chunk7DISRJAB_cjs.useForm();
|
|
413
476
|
const [isUploading, setIsUploading] = React6.useState(false);
|
|
414
477
|
const [preview, setPreview] = React6.useState(null);
|
|
415
478
|
const [previewIsPdf, setPreviewIsPdf] = React6.useState(false);
|
|
@@ -606,9 +669,9 @@ function extractDisplayUrl(value) {
|
|
|
606
669
|
return null;
|
|
607
670
|
}
|
|
608
671
|
var SignatureUploadWidget = ({ fieldId }) => {
|
|
609
|
-
const { fieldDef, setValue, setTouched, error, disabled, touched, value } =
|
|
610
|
-
const store =
|
|
611
|
-
const { state } =
|
|
672
|
+
const { fieldDef, setValue, setTouched, error, disabled, touched, value } = chunkTB33A4PD_cjs.useField(fieldId);
|
|
673
|
+
const store = chunkTB33A4PD_cjs.useFormStore();
|
|
674
|
+
const { state } = chunk7DISRJAB_cjs.useForm();
|
|
612
675
|
const canvasRef = React6.useRef(null);
|
|
613
676
|
const pathRef = React6.useRef("");
|
|
614
677
|
const lastPointRef = React6.useRef(null);
|
|
@@ -999,9 +1062,9 @@ function fileRows(listLayout, localFiles, value) {
|
|
|
999
1062
|
var FormFileUploadWidget = ({
|
|
1000
1063
|
fieldId
|
|
1001
1064
|
}) => {
|
|
1002
|
-
const { fieldDef, value, setValue, setTouched, error, disabled, touched } =
|
|
1003
|
-
const store =
|
|
1004
|
-
const { state } =
|
|
1065
|
+
const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkTB33A4PD_cjs.useField(fieldId);
|
|
1066
|
+
const store = chunkTB33A4PD_cjs.useFormStore();
|
|
1067
|
+
const { state } = chunk7DISRJAB_cjs.useForm();
|
|
1005
1068
|
const [localFiles, setLocalFiles] = React6.useState(null);
|
|
1006
1069
|
const [isUploading, setIsUploading] = React6.useState(false);
|
|
1007
1070
|
const showError = !!error && (touched || state.submitAttempted);
|
|
@@ -1185,10 +1248,10 @@ var RadioGroupItem = React6__namespace.forwardRef(({ className, ...props }, ref)
|
|
|
1185
1248
|
});
|
|
1186
1249
|
RadioGroupItem.displayName = RadioGroupPrimitive__namespace.Item.displayName;
|
|
1187
1250
|
var RadioWidget = ({ fieldId }) => {
|
|
1188
|
-
const { fieldDef, value, setValue, setTouched, error, disabled, touched } =
|
|
1251
|
+
const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkTB33A4PD_cjs.useField(fieldId);
|
|
1189
1252
|
const [options, setOptions] = React6.useState([]);
|
|
1190
1253
|
const [loading, setLoading] = React6.useState(false);
|
|
1191
|
-
const { state } =
|
|
1254
|
+
const { state } = chunk7DISRJAB_cjs.useForm();
|
|
1192
1255
|
const showError = !!error && (touched || state.submitAttempted);
|
|
1193
1256
|
React6.useEffect(() => {
|
|
1194
1257
|
if (!fieldDef) return;
|
|
@@ -1258,10 +1321,10 @@ function isOptionSelected(selected, optValue) {
|
|
|
1258
1321
|
);
|
|
1259
1322
|
}
|
|
1260
1323
|
var CheckboxWidget = ({ fieldId }) => {
|
|
1261
|
-
const { fieldDef, value, setValue, setTouched, error, disabled, touched } =
|
|
1324
|
+
const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkTB33A4PD_cjs.useField(fieldId);
|
|
1262
1325
|
const [options, setOptions] = React6.useState([]);
|
|
1263
1326
|
const [loading, setLoading] = React6.useState(false);
|
|
1264
|
-
const { state } =
|
|
1327
|
+
const { state } = chunk7DISRJAB_cjs.useForm();
|
|
1265
1328
|
const showError = !!error && (touched || state.submitAttempted);
|
|
1266
1329
|
const selectedValues = Array.isArray(value) ? value : [];
|
|
1267
1330
|
React6.useEffect(() => {
|
|
@@ -1333,8 +1396,8 @@ var CheckboxWidget = ({ fieldId }) => {
|
|
|
1333
1396
|
] });
|
|
1334
1397
|
};
|
|
1335
1398
|
var SliderWidget = ({ fieldId }) => {
|
|
1336
|
-
const { fieldDef, value, setValue, setTouched, error, disabled, touched } =
|
|
1337
|
-
const { state } =
|
|
1399
|
+
const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkTB33A4PD_cjs.useField(fieldId);
|
|
1400
|
+
const { state } = chunk7DISRJAB_cjs.useForm();
|
|
1338
1401
|
const showError = !!error && (touched || state.submitAttempted);
|
|
1339
1402
|
if (!fieldDef || fieldDef.type !== "slider") return null;
|
|
1340
1403
|
const def = fieldDef;
|
|
@@ -1385,9 +1448,9 @@ var SliderWidget = ({ fieldId }) => {
|
|
|
1385
1448
|
};
|
|
1386
1449
|
var RESEND_COOLDOWN_SECONDS = 30;
|
|
1387
1450
|
var PhoneInputWidget = ({ fieldId }) => {
|
|
1388
|
-
const { fieldDef, error, touched, disabled, value: fieldValue } =
|
|
1389
|
-
const { state } =
|
|
1390
|
-
const store =
|
|
1451
|
+
const { fieldDef, error, touched, disabled, value: fieldValue } = chunkTB33A4PD_cjs.useField(fieldId);
|
|
1452
|
+
const { state } = chunk7DISRJAB_cjs.useForm();
|
|
1453
|
+
const store = chunkTB33A4PD_cjs.useFormStore();
|
|
1391
1454
|
const rawPhone = fieldValue ?? "";
|
|
1392
1455
|
const wasAlreadySent = rawPhone.length === 10 && !error;
|
|
1393
1456
|
const [status, setStatus] = React6.useState(wasAlreadySent ? "sent" : "idle");
|
|
@@ -1587,11 +1650,11 @@ var PhoneInputWidget = ({ fieldId }) => {
|
|
|
1587
1650
|
] });
|
|
1588
1651
|
};
|
|
1589
1652
|
var OtpInputWidget = ({ fieldId }) => {
|
|
1590
|
-
const { fieldDef, error, touched, disabled } =
|
|
1591
|
-
const { state } =
|
|
1592
|
-
const store =
|
|
1653
|
+
const { fieldDef, error, touched, disabled } = chunkTB33A4PD_cjs.useField(fieldId);
|
|
1654
|
+
const { state } = chunk7DISRJAB_cjs.useForm();
|
|
1655
|
+
const store = chunkTB33A4PD_cjs.useFormStore();
|
|
1593
1656
|
const phoneFieldId = fieldDef?.meta?.phoneFieldId ?? "phone";
|
|
1594
|
-
const { value: phoneValue } =
|
|
1657
|
+
const { value: phoneValue } = chunkTB33A4PD_cjs.useField(phoneFieldId);
|
|
1595
1658
|
const phone = phoneValue ?? "";
|
|
1596
1659
|
const e164Phone = phone.startsWith("+") ? phone : `+91${phone}`;
|
|
1597
1660
|
const [otp, setOtp] = React6.useState("");
|
|
@@ -1734,6 +1797,387 @@ var OtpInputWidget = ({ fieldId }) => {
|
|
|
1734
1797
|
showError && /* @__PURE__ */ jsxRuntime.jsx("p", { className: chunk5E3APMY6_cjs.fieldErrorClass(fieldDef, "text-xs text-red-500"), children: error })
|
|
1735
1798
|
] });
|
|
1736
1799
|
};
|
|
1800
|
+
function formatCampDatePill(date) {
|
|
1801
|
+
const parsed = dateFns.parseISO(date);
|
|
1802
|
+
return {
|
|
1803
|
+
day: dateFns.format(parsed, "d"),
|
|
1804
|
+
weekday: dateFns.format(parsed, "EEE"),
|
|
1805
|
+
label: dateFns.format(parsed, "EEE, MMM d, yyyy")
|
|
1806
|
+
};
|
|
1807
|
+
}
|
|
1808
|
+
async function fetchBookableInstances(base, campId, token) {
|
|
1809
|
+
const today = dateFns.format(/* @__PURE__ */ new Date(), "yyyy-MM-dd");
|
|
1810
|
+
const end = dateFns.format(dateFns.addDays(/* @__PURE__ */ new Date(), 30), "yyyy-MM-dd");
|
|
1811
|
+
const headers = token ? { Authorization: `Bearer ${token}` } : {};
|
|
1812
|
+
const res = await fetch(
|
|
1813
|
+
`${base}/api/camps/${campId}/instances/?start_date=${today}&end_date=${end}`,
|
|
1814
|
+
{ headers }
|
|
1815
|
+
);
|
|
1816
|
+
if (!res.ok) throw new Error(`Instances fetch failed: ${res.status}`);
|
|
1817
|
+
const data = await res.json();
|
|
1818
|
+
const results = data.results ?? [];
|
|
1819
|
+
const withAvailability = await Promise.all(
|
|
1820
|
+
results.map(async (inst) => {
|
|
1821
|
+
const avRes = await fetch(`${base}/api/camps/instances/${inst.id}/availability/`, {
|
|
1822
|
+
headers
|
|
1823
|
+
});
|
|
1824
|
+
const avData = avRes.ok ? await avRes.json() : { windows: [] };
|
|
1825
|
+
const windows = avData.windows ?? [];
|
|
1826
|
+
return { inst, windows };
|
|
1827
|
+
})
|
|
1828
|
+
);
|
|
1829
|
+
return withAvailability.filter(
|
|
1830
|
+
({ windows }) => windows.some((w) => w.is_bookable && w.primary_available_capacity > 0)
|
|
1831
|
+
).map(({ inst, windows }) => ({
|
|
1832
|
+
id: inst.id,
|
|
1833
|
+
date: inst.date,
|
|
1834
|
+
location: inst.notes || "",
|
|
1835
|
+
spotsLeft: windows.reduce(
|
|
1836
|
+
(sum, w) => sum + (w.is_bookable ? w.primary_available_capacity ?? 0 : 0),
|
|
1837
|
+
0
|
|
1838
|
+
)
|
|
1839
|
+
}));
|
|
1840
|
+
}
|
|
1841
|
+
var datesScrollClass = "flex gap-2.5 overflow-x-auto overflow-y-visible pb-4 pt-2 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden";
|
|
1842
|
+
var CAMP_DATE_PRIMARY_GRADIENT = "linear-gradient(328deg, #1F30A0 19.08%, #914BFA 80.92%)";
|
|
1843
|
+
var campDatePillShadow = {
|
|
1844
|
+
unselected: "rgba(0, 0, 0, 0.12) 0px 6px 14px",
|
|
1845
|
+
selected: "rgba(99, 99, 99, 0.2) 0px 2px 8px 0px"
|
|
1846
|
+
};
|
|
1847
|
+
var CampDatesWidget = ({ fieldId }) => {
|
|
1848
|
+
const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkTB33A4PD_cjs.useField(fieldId);
|
|
1849
|
+
const { state } = chunk7DISRJAB_cjs.useForm();
|
|
1850
|
+
const store = chunkTB33A4PD_cjs.useFormStore();
|
|
1851
|
+
const showError = !!error && (touched || state.submitAttempted);
|
|
1852
|
+
const [fetchedOptions, setFetchedOptions] = React6.useState([]);
|
|
1853
|
+
const [isLoading, setIsLoading] = React6.useState(false);
|
|
1854
|
+
const [fetchError, setFetchError] = React6.useState(null);
|
|
1855
|
+
const [monthIndex, setMonthIndex] = React6.useState(0);
|
|
1856
|
+
const def = fieldDef;
|
|
1857
|
+
const campId = def?.meta?.campId;
|
|
1858
|
+
const hasStaticOptions = (def?.options?.length ?? 0) > 0;
|
|
1859
|
+
React6.useEffect(() => {
|
|
1860
|
+
if (!campId || hasStaticOptions) return;
|
|
1861
|
+
const cfg = store.getConfig();
|
|
1862
|
+
const base = cfg.auth?.baseUrl ?? (typeof process !== "undefined" ? process.env?.NEXT_PUBLIC_API_URL ?? "" : "");
|
|
1863
|
+
const token = cfg.camps?.authToken ?? "";
|
|
1864
|
+
setIsLoading(true);
|
|
1865
|
+
setFetchError(null);
|
|
1866
|
+
fetchBookableInstances(base, campId, token).then(setFetchedOptions).catch(() => setFetchError("Failed to load available dates. Please try again.")).finally(() => setIsLoading(false));
|
|
1867
|
+
}, [campId, hasStaticOptions]);
|
|
1868
|
+
const camps = hasStaticOptions ? def?.options ?? [] : fetchedOptions;
|
|
1869
|
+
const selected = chunkTB33A4PD_cjs.parseCampDateValue(value, camps);
|
|
1870
|
+
const sortedCamps = React6.useMemo(
|
|
1871
|
+
() => [...camps].sort((a, b) => a.date.localeCompare(b.date)),
|
|
1872
|
+
[camps]
|
|
1873
|
+
);
|
|
1874
|
+
const months = React6.useMemo(() => {
|
|
1875
|
+
const seen = /* @__PURE__ */ new Set();
|
|
1876
|
+
const result = [];
|
|
1877
|
+
for (const camp of sortedCamps) {
|
|
1878
|
+
const monthStart = dateFns.startOfMonth(dateFns.parseISO(camp.date));
|
|
1879
|
+
const key = dateFns.format(monthStart, "yyyy-MM");
|
|
1880
|
+
if (!seen.has(key)) {
|
|
1881
|
+
seen.add(key);
|
|
1882
|
+
result.push(monthStart);
|
|
1883
|
+
}
|
|
1884
|
+
}
|
|
1885
|
+
return result;
|
|
1886
|
+
}, [sortedCamps]);
|
|
1887
|
+
React6.useEffect(() => {
|
|
1888
|
+
if (months.length === 0) return;
|
|
1889
|
+
if (selected?.date) {
|
|
1890
|
+
const idx = months.findIndex((m) => dateFns.isSameMonth(m, dateFns.parseISO(selected.date)));
|
|
1891
|
+
if (idx >= 0) {
|
|
1892
|
+
setMonthIndex(idx);
|
|
1893
|
+
return;
|
|
1894
|
+
}
|
|
1895
|
+
}
|
|
1896
|
+
setMonthIndex(0);
|
|
1897
|
+
}, [months, selected?.date]);
|
|
1898
|
+
if (!fieldDef || !def) return null;
|
|
1899
|
+
const showLabel = chunk5E3APMY6_cjs.isLabelVisible(fieldDef);
|
|
1900
|
+
const currentMonth = months[monthIndex] ?? null;
|
|
1901
|
+
const visibleCamps = currentMonth ? sortedCamps.filter((camp) => dateFns.isSameMonth(dateFns.parseISO(camp.date), currentMonth)) : sortedCamps;
|
|
1902
|
+
const canGoPrev = monthIndex > 0;
|
|
1903
|
+
const canGoNext = monthIndex < months.length - 1;
|
|
1904
|
+
const handleSelect = (campOptId) => {
|
|
1905
|
+
if (disabled) return;
|
|
1906
|
+
const camp = camps.find((c) => c.id === campOptId);
|
|
1907
|
+
if (!camp) return;
|
|
1908
|
+
const nextSelection = chunkTB33A4PD_cjs.campDateSelectionFromOption(camp);
|
|
1909
|
+
const prevId = selected?.id ?? null;
|
|
1910
|
+
setValue(nextSelection);
|
|
1911
|
+
setTouched();
|
|
1912
|
+
store.setExternalError(fieldId, null);
|
|
1913
|
+
const timeSlotFieldId = def.meta?.timeSlotFieldId;
|
|
1914
|
+
if (timeSlotFieldId && prevId !== campOptId) {
|
|
1915
|
+
store.setValue(timeSlotFieldId, null);
|
|
1916
|
+
}
|
|
1917
|
+
};
|
|
1918
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk5E3APMY6_cjs.fieldWrapperClass(fieldDef, "space-y-3"), children: [
|
|
1919
|
+
showLabel || months.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-3", children: [
|
|
1920
|
+
showLabel ? /* @__PURE__ */ jsxRuntime.jsxs("h3", { className: "text-sm font-normal text-[#727272]", children: [
|
|
1921
|
+
fieldDef.label,
|
|
1922
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk5E3APMY6_cjs.FieldRequiredIndicator, { fieldDef })
|
|
1923
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, className: "shrink-0" }),
|
|
1924
|
+
months.length > 0 && currentMonth ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-1 text-[#191919]", children: [
|
|
1925
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1926
|
+
"button",
|
|
1927
|
+
{
|
|
1928
|
+
type: "button",
|
|
1929
|
+
"aria-label": "Previous month",
|
|
1930
|
+
disabled: !canGoPrev || disabled,
|
|
1931
|
+
onClick: () => setMonthIndex((i) => Math.max(0, i - 1)),
|
|
1932
|
+
className: chunkFHHISVCH_cjs.cn(
|
|
1933
|
+
"rounded p-0.5 transition-opacity",
|
|
1934
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
1935
|
+
(!canGoPrev || disabled) && "cursor-not-allowed opacity-30"
|
|
1936
|
+
),
|
|
1937
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, { className: "h-4 w-4", "aria-hidden": true })
|
|
1938
|
+
}
|
|
1939
|
+
),
|
|
1940
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-[3.5rem] text-center text-sm font-medium", children: dateFns.format(currentMonth, "MMMM") }),
|
|
1941
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1942
|
+
"button",
|
|
1943
|
+
{
|
|
1944
|
+
type: "button",
|
|
1945
|
+
"aria-label": "Next month",
|
|
1946
|
+
disabled: !canGoNext || disabled,
|
|
1947
|
+
onClick: () => setMonthIndex((i) => Math.min(months.length - 1, i + 1)),
|
|
1948
|
+
className: chunkFHHISVCH_cjs.cn(
|
|
1949
|
+
"rounded p-0.5 transition-opacity",
|
|
1950
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
1951
|
+
(!canGoNext || disabled) && "cursor-not-allowed opacity-30"
|
|
1952
|
+
),
|
|
1953
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "h-4 w-4", "aria-hidden": true })
|
|
1954
|
+
}
|
|
1955
|
+
)
|
|
1956
|
+
] }) : null
|
|
1957
|
+
] }) : null,
|
|
1958
|
+
fieldDef.description ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: chunk5E3APMY6_cjs.fieldDescriptionClass(fieldDef, "text-sm text-muted-foreground"), children: fieldDef.description }) : null,
|
|
1959
|
+
isLoading ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: datesScrollClass, children: [0, 1, 2, 3, 4].map((i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1960
|
+
"div",
|
|
1961
|
+
{
|
|
1962
|
+
className: "h-[76px] w-12 shrink-0 animate-pulse rounded-full bg-[#D9D9D9]"
|
|
1963
|
+
},
|
|
1964
|
+
i
|
|
1965
|
+
)) }) : 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) => {
|
|
1966
|
+
const { day, weekday, label } = formatCampDatePill(camp.date);
|
|
1967
|
+
const isSelected = selected?.id === camp.id;
|
|
1968
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1969
|
+
"button",
|
|
1970
|
+
{
|
|
1971
|
+
type: "button",
|
|
1972
|
+
role: "radio",
|
|
1973
|
+
"aria-checked": isSelected,
|
|
1974
|
+
"aria-label": label,
|
|
1975
|
+
disabled,
|
|
1976
|
+
onClick: () => handleSelect(camp.id),
|
|
1977
|
+
className: chunkFHHISVCH_cjs.cn(
|
|
1978
|
+
"relative flex h-[76px] w-12 shrink-0 flex-col items-center justify-between gap-2.5 rounded-full p-1.5",
|
|
1979
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
1980
|
+
!isSelected && "bg-white",
|
|
1981
|
+
disabled && "cursor-not-allowed opacity-60"
|
|
1982
|
+
),
|
|
1983
|
+
style: {
|
|
1984
|
+
boxShadow: isSelected ? "none" : campDatePillShadow.unselected
|
|
1985
|
+
},
|
|
1986
|
+
children: [
|
|
1987
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1988
|
+
"div",
|
|
1989
|
+
{
|
|
1990
|
+
"aria-hidden": true,
|
|
1991
|
+
className: chunkFHHISVCH_cjs.cn(
|
|
1992
|
+
"absolute inset-0 rounded-full bg-[#2F2F2F] transition-opacity duration-400",
|
|
1993
|
+
isSelected ? "opacity-100" : "opacity-0"
|
|
1994
|
+
),
|
|
1995
|
+
style: { boxShadow: campDatePillShadow.selected }
|
|
1996
|
+
}
|
|
1997
|
+
),
|
|
1998
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1999
|
+
"div",
|
|
2000
|
+
{
|
|
2001
|
+
className: chunkFHHISVCH_cjs.cn(
|
|
2002
|
+
"relative z-10 flex h-9 w-9 items-center justify-center rounded-full text-[12px] font-medium transition-colors duration-200",
|
|
2003
|
+
isSelected ? "text-white" : "bg-[#D9D9D9] text-[#1E1E1E]"
|
|
2004
|
+
),
|
|
2005
|
+
style: isSelected ? { backgroundImage: CAMP_DATE_PRIMARY_GRADIENT } : void 0,
|
|
2006
|
+
children: day
|
|
2007
|
+
}
|
|
2008
|
+
),
|
|
2009
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2010
|
+
"span",
|
|
2011
|
+
{
|
|
2012
|
+
className: chunkFHHISVCH_cjs.cn(
|
|
2013
|
+
"relative z-10 mb-1.5 text-center text-[10px] font-normal transition-colors duration-400",
|
|
2014
|
+
isSelected ? "text-white" : "text-[#1E1E1E]"
|
|
2015
|
+
),
|
|
2016
|
+
children: weekday
|
|
2017
|
+
}
|
|
2018
|
+
)
|
|
2019
|
+
]
|
|
2020
|
+
},
|
|
2021
|
+
camp.id
|
|
2022
|
+
);
|
|
2023
|
+
}) }),
|
|
2024
|
+
showError ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: chunk5E3APMY6_cjs.fieldErrorClass(fieldDef, "text-xs text-red-500"), children: error }) : null
|
|
2025
|
+
] });
|
|
2026
|
+
};
|
|
2027
|
+
function formatSlotTime(time) {
|
|
2028
|
+
try {
|
|
2029
|
+
return dateFns.format(dateFns.parse(time, "HH:mm:ss", /* @__PURE__ */ new Date()), "hh:mm a");
|
|
2030
|
+
} catch {
|
|
2031
|
+
return time;
|
|
2032
|
+
}
|
|
2033
|
+
}
|
|
2034
|
+
function mapWindowsToSlots(windows) {
|
|
2035
|
+
return windows.map((w) => ({
|
|
2036
|
+
id: w.primary_slot_id,
|
|
2037
|
+
time: formatSlotTime(w.start_time),
|
|
2038
|
+
spotsLeft: w.is_bookable ? w.primary_available_capacity ?? 0 : 0,
|
|
2039
|
+
capacity: w.primary_available_capacity ?? 0
|
|
2040
|
+
}));
|
|
2041
|
+
}
|
|
2042
|
+
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";
|
|
2043
|
+
var slotPillShadow = "0 2.596px 5.193px 0 rgba(0, 0, 0, 0.10)";
|
|
2044
|
+
var CampTimeSlotsWidget = ({ fieldId }) => {
|
|
2045
|
+
const { fieldDef, value, setValue, setTouched, error, disabled, touched } = chunkTB33A4PD_cjs.useField(fieldId);
|
|
2046
|
+
const { state } = chunk7DISRJAB_cjs.useForm();
|
|
2047
|
+
const store = chunkTB33A4PD_cjs.useFormStore();
|
|
2048
|
+
const campDateFieldId = fieldDef?.meta?.campDateFieldId ?? "camp_date";
|
|
2049
|
+
const { value: campDateValue, fieldDef: campDateFieldDef } = chunkTB33A4PD_cjs.useField(campDateFieldId);
|
|
2050
|
+
const showError = !!error && (touched || state.submitAttempted);
|
|
2051
|
+
const def = fieldDef;
|
|
2052
|
+
const campDateOptions = campDateFieldDef?.options;
|
|
2053
|
+
const selectedCamp = chunkTB33A4PD_cjs.parseCampDateValue(campDateValue, campDateOptions);
|
|
2054
|
+
const prevCampIdRef = React6.useRef(selectedCamp?.id ?? null);
|
|
2055
|
+
const [fetchedSlots, setFetchedSlots] = React6.useState([]);
|
|
2056
|
+
const [isLoading, setIsLoading] = React6.useState(false);
|
|
2057
|
+
const [fetchError, setFetchError] = React6.useState(null);
|
|
2058
|
+
const hasStaticOptions = (def?.options?.length ?? 0) > 0;
|
|
2059
|
+
const slots = hasStaticOptions ? def?.options ?? [] : fetchedSlots;
|
|
2060
|
+
const selectedSlotId = value != null ? String(value) : null;
|
|
2061
|
+
React6.useEffect(() => {
|
|
2062
|
+
if (hasStaticOptions || !selectedCamp?.id) {
|
|
2063
|
+
if (!selectedCamp?.id) {
|
|
2064
|
+
setFetchedSlots([]);
|
|
2065
|
+
setFetchError(null);
|
|
2066
|
+
}
|
|
2067
|
+
return;
|
|
2068
|
+
}
|
|
2069
|
+
const instanceId = selectedCamp.id;
|
|
2070
|
+
const cfg = store.getConfig();
|
|
2071
|
+
const base = cfg.auth?.baseUrl ?? (typeof process !== "undefined" ? process.env?.NEXT_PUBLIC_API_URL ?? "" : "");
|
|
2072
|
+
const token = cfg.camps?.authToken ?? "";
|
|
2073
|
+
const headers = token ? { Authorization: `Bearer ${token}` } : {};
|
|
2074
|
+
setIsLoading(true);
|
|
2075
|
+
setFetchError(null);
|
|
2076
|
+
fetch(`${base}/api/camps/instances/${instanceId}/availability/`, { headers }).then((r) => {
|
|
2077
|
+
if (!r.ok) throw new Error(`Availability fetch failed: ${r.status}`);
|
|
2078
|
+
return r.json();
|
|
2079
|
+
}).then((data) => {
|
|
2080
|
+
setFetchedSlots(mapWindowsToSlots(data.windows ?? []));
|
|
2081
|
+
}).catch(() => setFetchError("Failed to load time slots. Please try again.")).finally(() => setIsLoading(false));
|
|
2082
|
+
}, [selectedCamp?.id, hasStaticOptions]);
|
|
2083
|
+
React6.useEffect(() => {
|
|
2084
|
+
const campId = selectedCamp?.id ?? null;
|
|
2085
|
+
if (prevCampIdRef.current !== null && prevCampIdRef.current !== campId && selectedSlotId) {
|
|
2086
|
+
setValue(null);
|
|
2087
|
+
}
|
|
2088
|
+
prevCampIdRef.current = campId;
|
|
2089
|
+
}, [selectedCamp?.id, selectedSlotId, setValue]);
|
|
2090
|
+
React6.useEffect(() => {
|
|
2091
|
+
if (!selectedSlotId) return;
|
|
2092
|
+
const slotStillValid = slots.some((slot) => slot.id === selectedSlotId && slot.spotsLeft > 0);
|
|
2093
|
+
if (!slotStillValid) {
|
|
2094
|
+
setValue(null);
|
|
2095
|
+
}
|
|
2096
|
+
}, [selectedSlotId, setValue, slots]);
|
|
2097
|
+
if (!fieldDef || !def) return null;
|
|
2098
|
+
const showLabel = chunk5E3APMY6_cjs.isLabelVisible(fieldDef);
|
|
2099
|
+
const handleSelect = (slotId, button) => {
|
|
2100
|
+
if (disabled) return;
|
|
2101
|
+
setValue(slotId);
|
|
2102
|
+
setTouched();
|
|
2103
|
+
button?.scrollIntoView({ behavior: "smooth", block: "nearest", inline: "center" });
|
|
2104
|
+
};
|
|
2105
|
+
const dateLabel = selectedCamp?.date ? dateFns.format(dateFns.parseISO(selectedCamp.date), "EEE, MMM d, yyyy") : null;
|
|
2106
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk5E3APMY6_cjs.fieldWrapperClass(fieldDef, "space-y-3"), children: [
|
|
2107
|
+
showLabel ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-0.5", children: [
|
|
2108
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2109
|
+
"h3",
|
|
2110
|
+
{
|
|
2111
|
+
className: chunk5E3APMY6_cjs.fieldLabelClass(
|
|
2112
|
+
fieldDef,
|
|
2113
|
+
"text-lg font-semibold leading-tight text-foreground"
|
|
2114
|
+
),
|
|
2115
|
+
children: [
|
|
2116
|
+
fieldDef.label,
|
|
2117
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk5E3APMY6_cjs.FieldRequiredIndicator, { fieldDef })
|
|
2118
|
+
]
|
|
2119
|
+
}
|
|
2120
|
+
),
|
|
2121
|
+
dateLabel ? /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
|
|
2122
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Calendar, { className: "h-3.5 w-3.5 shrink-0", "aria-hidden": true }),
|
|
2123
|
+
dateLabel
|
|
2124
|
+
] }) : null
|
|
2125
|
+
] }) : null,
|
|
2126
|
+
isLoading ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: slotsScrollClass, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", style: { minWidth: "max-content" }, children: [
|
|
2127
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute left-0 right-0 top-0 h-0.5 w-full bg-[#DCDCDC]" }),
|
|
2128
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-4 pt-3", children: [0, 1, 2, 3].map((i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2129
|
+
"div",
|
|
2130
|
+
{
|
|
2131
|
+
className: "mb-2 h-[34px] w-[86px] shrink-0 animate-pulse rounded-full bg-[#DCDCDC]"
|
|
2132
|
+
},
|
|
2133
|
+
i
|
|
2134
|
+
)) })
|
|
2135
|
+
] }) }) : 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(
|
|
2136
|
+
"div",
|
|
2137
|
+
{
|
|
2138
|
+
role: "radiogroup",
|
|
2139
|
+
"aria-label": fieldDef.label,
|
|
2140
|
+
className: slotsScrollClass,
|
|
2141
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", style: { minWidth: "max-content" }, children: [
|
|
2142
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute left-0 right-0 top-0 h-0.5 w-full bg-[#DCDCDC]" }),
|
|
2143
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-4 pt-3", children: slots.map((slot) => {
|
|
2144
|
+
const isFull = slot.spotsLeft <= 0;
|
|
2145
|
+
const selected = selectedSlotId === slot.id;
|
|
2146
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2147
|
+
"button",
|
|
2148
|
+
{
|
|
2149
|
+
type: "button",
|
|
2150
|
+
role: "radio",
|
|
2151
|
+
"aria-checked": selected,
|
|
2152
|
+
disabled: disabled || isFull,
|
|
2153
|
+
onClick: (e) => handleSelect(slot.id, e.currentTarget),
|
|
2154
|
+
className: chunkFHHISVCH_cjs.cn(
|
|
2155
|
+
"relative mb-2 w-[86px] shrink-0 rounded-full px-3 py-2 text-xs font-medium transition-colors",
|
|
2156
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
2157
|
+
isFull ? "cursor-not-allowed bg-[#DCDCDC]/60 text-black/40" : selected ? "bg-[#2F2F2F] text-white" : "bg-[#DCDCDC] text-black",
|
|
2158
|
+
disabled && !isFull && "cursor-not-allowed opacity-60"
|
|
2159
|
+
),
|
|
2160
|
+
style: isFull ? void 0 : { boxShadow: slotPillShadow },
|
|
2161
|
+
children: [
|
|
2162
|
+
selected && !isFull ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2163
|
+
"span",
|
|
2164
|
+
{
|
|
2165
|
+
className: "absolute -top-3 left-0 right-0 h-0.5 bg-[#6641D8]",
|
|
2166
|
+
"aria-hidden": true
|
|
2167
|
+
}
|
|
2168
|
+
) : null,
|
|
2169
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "whitespace-nowrap", children: slot.time })
|
|
2170
|
+
]
|
|
2171
|
+
},
|
|
2172
|
+
slot.id
|
|
2173
|
+
);
|
|
2174
|
+
}) })
|
|
2175
|
+
] })
|
|
2176
|
+
}
|
|
2177
|
+
),
|
|
2178
|
+
showError ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: chunk5E3APMY6_cjs.fieldErrorClass(fieldDef, "text-xs text-red-500"), children: error }) : null
|
|
2179
|
+
] });
|
|
2180
|
+
};
|
|
1737
2181
|
var Switch = React6__namespace.forwardRef(
|
|
1738
2182
|
({ className, checked, onCheckedChange, disabled, ...props }, ref) => {
|
|
1739
2183
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1771,45 +2215,45 @@ Switch.displayName = "Switch";
|
|
|
1771
2215
|
function lazyNamed(loader, name) {
|
|
1772
2216
|
return React6__namespace.default.lazy(async () => ({ default: (await loader())[name] }));
|
|
1773
2217
|
}
|
|
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-
|
|
2218
|
+
var RichTextWidget = lazyNamed(() => import('./RichTextWidget-2KLV65QP.cjs'), "RichTextWidget");
|
|
2219
|
+
var DateWidget = lazyNamed(() => import('./DateWidget-UNLX544Z.cjs'), "DateWidget");
|
|
2220
|
+
var DateTimeWidget = lazyNamed(() => import('./DateTimeWidget-OS7ER5F6.cjs'), "DateTimeWidget");
|
|
2221
|
+
var EditableTableWidget = lazyNamed(() => import('./EditableTable-VQ72UEFF.cjs'), "EditableTableWidget");
|
|
2222
|
+
var AddMedicationWidget = lazyNamed(() => import('./AddMedicationWidget-45T4XVEL.cjs'), "AddMedicationWidget");
|
|
2223
|
+
var DischargeMedicationOrdersWidget = lazyNamed(() => import('./DischargeMedicationOrdersWidget-WRJRYL6F.cjs'), "DischargeMedicationOrdersWidget");
|
|
2224
|
+
var AddInvestigationWidget = lazyNamed(() => import('./AddInvestigationWidget-7FLINCTT.cjs'), "AddInvestigationWidget");
|
|
2225
|
+
var AddProcedureWidget = lazyNamed(() => import('./AddProcedureWidget-HK7UNRXH.cjs'), "AddProcedureWidget");
|
|
2226
|
+
var DifferentialDiagnosisWidget = lazyNamed(() => import('./DifferentialDiagnosisWidget-XESNHNQQ.cjs'), "DifferentialDiagnosisWidget");
|
|
2227
|
+
var VitalsWidget = lazyNamed(() => import('./VitalsWidget-MS3OOZSW.cjs'), "VitalsWidget");
|
|
2228
|
+
var HiddenVitalsWidget = lazyNamed(() => import('./HiddenVitalsWidget-5GFBDDPT.cjs'), "HiddenVitalsWidget");
|
|
2229
|
+
var ReferralWidget = lazyNamed(() => import('./ReferralWidget-27VGZCOQ.cjs'), "ReferralWidget");
|
|
2230
|
+
var FollowupWidget = lazyNamed(() => import('./FollowupWidget-MAYTHM2E.cjs'), "FollowupWidget");
|
|
2231
|
+
var SmartTextareaWidget = lazyNamed(() => import('./SmartTextarea-WITNRNDU.cjs'), "SmartTextareaWidget");
|
|
2232
|
+
var DiagnosisTextareaWidget = lazyNamed(() => import('./DiagnosisTextareaWidget-XJ47OZYH.cjs'), "DiagnosisTextareaWidget");
|
|
2233
|
+
var ObstetricHistoryWidget = lazyNamed(() => import('./ObstetricHistoryWidget-RP7NY4PV.cjs'), "ObstetricHistoryWidget");
|
|
2234
|
+
var OphthalmologyWidget = lazyNamed(() => import('./OphthalmologyWidget-WFSFIHT4.cjs'), "OphthalmologyWidget");
|
|
2235
|
+
var OphthalDiagnosisWidget = lazyNamed(() => import('./OphthalDiagnosisWidget-UXXYGKD5.cjs'), "OphthalDiagnosisWidget");
|
|
2236
|
+
var OrthopedicExamWidget = lazyNamed(() => import('./OrthopedicExamWidget-ULZTDFXJ.cjs'), "OrthopedicExamWidget");
|
|
2237
|
+
var MarMedicationOrdersWidget = lazyNamed(() => import('./MarMedicationOrdersWidget-767F65K6.cjs'), "MarMedicationOrdersWidget");
|
|
2238
|
+
var SuggestionTextareaWidget = lazyNamed(() => import('./SuggestionTextareaWidget-DY6M5JPO.cjs'), "SuggestionTextareaWidget");
|
|
2239
|
+
var LensAssessmentWidget = lazyNamed(() => import('./LensAssessmentWidget-SIKJVVAE.cjs'), "LensAssessmentWidget");
|
|
2240
|
+
var FunctionalImpairmentScoreWidget = lazyNamed(() => import('./FunctionalImpairmentScoreWidget-FCA4UKQA.cjs'), "FunctionalImpairmentScoreWidget");
|
|
2241
|
+
var BiometryIolWorkupWidget = lazyNamed(() => import('./BiometryIolWorkupWidget-FWO3IWTF.cjs'), "BiometryIolWorkupWidget");
|
|
2242
|
+
var SurgicalRiskFlagsWidget = lazyNamed(() => import('./SurgicalRiskFlagsWidget-OJKCZIWJ.cjs'), "SurgicalRiskFlagsWidget");
|
|
2243
|
+
var GsSmartHistoryWidget = lazyNamed(() => import('./GsSmartHistoryWidget-AAB427Q2.cjs'), "GsSmartHistoryWidget");
|
|
2244
|
+
var GsExaminationWidget = lazyNamed(() => import('./GsExaminationWidget-KKE5I5GX.cjs'), "GsExaminationWidget");
|
|
2245
|
+
var GsGradingWidget = lazyNamed(() => import('./GsGradingWidget-NGCQQVYA.cjs'), "GsGradingWidget");
|
|
2246
|
+
var PainScaleFlagsWidget = lazyNamed(() => import('./PainScaleFlagsWidget-IFA3RCEL.cjs'), "PainScaleFlagsWidget");
|
|
2247
|
+
var UrologySmartHistoryWidget = lazyNamed(() => import('./UrologySmartHistoryWidget-P3KTQE7L.cjs'), "UrologySmartHistoryWidget");
|
|
2248
|
+
var UrologyExaminationWidget = lazyNamed(() => import('./UrologyExaminationWidget-GQLMV4FB.cjs'), "UrologyExaminationWidget");
|
|
2249
|
+
var UrologyPathwayWidget = lazyNamed(() => import('./UrologyPathwayWidget-D6EWSOGW.cjs'), "UrologyPathwayWidget");
|
|
2250
|
+
var OBGExaminationWidget = lazyNamed(() => import('./OBGExaminationWidget-MRTGWLXJ.cjs'), "OBGExaminationWidget");
|
|
2251
|
+
var OBGPathwayWidget = lazyNamed(() => import('./OBGPathwayWidget-XGN3HEWS.cjs'), "OBGPathwayWidget");
|
|
1808
2252
|
function lazyWidget(node) {
|
|
1809
2253
|
return /* @__PURE__ */ jsxRuntime.jsx(React6__namespace.default.Suspense, { fallback: null, children: node });
|
|
1810
2254
|
}
|
|
1811
2255
|
var FieldRenderer = ({ fieldId }) => {
|
|
1812
|
-
const { fieldDef, visible } =
|
|
2256
|
+
const { fieldDef, visible } = chunkTB33A4PD_cjs.useField(fieldId);
|
|
1813
2257
|
if (!visible || !fieldDef) {
|
|
1814
2258
|
return null;
|
|
1815
2259
|
}
|
|
@@ -1819,14 +2263,14 @@ function renderWidget(fieldId, fieldDef) {
|
|
|
1819
2263
|
switch (fieldDef.type) {
|
|
1820
2264
|
case "text":
|
|
1821
2265
|
case "number":
|
|
1822
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2266
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkTVFUWRTE_cjs.TextWidget, { fieldId });
|
|
1823
2267
|
case "slider":
|
|
1824
2268
|
return /* @__PURE__ */ jsxRuntime.jsx(SliderWidget, { fieldId });
|
|
1825
2269
|
case "textarea":
|
|
1826
2270
|
if (fieldMetaRequestsMarMedicationOrdersButton(fieldDef.meta)) {
|
|
1827
2271
|
return lazyWidget(/* @__PURE__ */ jsxRuntime.jsx(MarMedicationOrdersWidget, { fieldId }));
|
|
1828
2272
|
}
|
|
1829
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2273
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkTVFUWRTE_cjs.TextWidget, { fieldId });
|
|
1830
2274
|
case "richtext":
|
|
1831
2275
|
return lazyWidget(/* @__PURE__ */ jsxRuntime.jsx(RichTextWidget, { fieldId }));
|
|
1832
2276
|
case "date":
|
|
@@ -1834,7 +2278,7 @@ function renderWidget(fieldId, fieldDef) {
|
|
|
1834
2278
|
case "datetime":
|
|
1835
2279
|
return lazyWidget(/* @__PURE__ */ jsxRuntime.jsx(DateTimeWidget, { fieldId }));
|
|
1836
2280
|
case "select":
|
|
1837
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2281
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkTVFUWRTE_cjs.SelectWidget, { fieldId });
|
|
1838
2282
|
case "radio":
|
|
1839
2283
|
return /* @__PURE__ */ jsxRuntime.jsx(RadioWidget, { fieldId });
|
|
1840
2284
|
case "checkbox":
|
|
@@ -1905,9 +2349,13 @@ function renderWidget(fieldId, fieldDef) {
|
|
|
1905
2349
|
return /* @__PURE__ */ jsxRuntime.jsx(PhoneInputWidget, { fieldId });
|
|
1906
2350
|
case "otp_input":
|
|
1907
2351
|
return /* @__PURE__ */ jsxRuntime.jsx(OtpInputWidget, { fieldId });
|
|
2352
|
+
case "camp_dates":
|
|
2353
|
+
return /* @__PURE__ */ jsxRuntime.jsx(CampDatesWidget, { fieldId });
|
|
2354
|
+
case "camp_time_slots":
|
|
2355
|
+
return /* @__PURE__ */ jsxRuntime.jsx(CampTimeSlotsWidget, { fieldId });
|
|
1908
2356
|
case "toggle": {
|
|
1909
|
-
const { value, setValue, setTouched, disabled } =
|
|
1910
|
-
const store =
|
|
2357
|
+
const { value, setValue, setTouched, disabled } = chunkTB33A4PD_cjs.useField(fieldId);
|
|
2358
|
+
const store = chunkTB33A4PD_cjs.useFormStore();
|
|
1911
2359
|
const excludes = fieldDef.excludes ?? [];
|
|
1912
2360
|
const showLabel = chunk5E3APMY6_cjs.isLabelVisible(fieldDef);
|
|
1913
2361
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk5E3APMY6_cjs.fieldWrapperClass(fieldDef, "flex items-center gap-3"), children: [
|
|
@@ -2015,7 +2463,7 @@ var ColumnLayout = ({
|
|
|
2015
2463
|
] });
|
|
2016
2464
|
};
|
|
2017
2465
|
var DynamicForm = () => {
|
|
2018
|
-
const store =
|
|
2466
|
+
const store = chunkTB33A4PD_cjs.useFormStore();
|
|
2019
2467
|
const schema = store.getSchema();
|
|
2020
2468
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
|
|
2021
2469
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4", children: /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-2xl font-bold", children: schema.title }) }),
|
|
@@ -2083,7 +2531,7 @@ var DynamicFormV2 = ({
|
|
|
2083
2531
|
showSectionTitles = true,
|
|
2084
2532
|
className
|
|
2085
2533
|
}) => {
|
|
2086
|
-
const store =
|
|
2534
|
+
const store = chunkTB33A4PD_cjs.useFormStore();
|
|
2087
2535
|
const schema = store.getSchema();
|
|
2088
2536
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkFHHISVCH_cjs.cn("space-y-6", className), children: [
|
|
2089
2537
|
showTitle ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4", children: /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-2xl font-bold", children: schema.title }) }) : null,
|
|
@@ -2136,6 +2584,14 @@ function isFieldComplete(id, state, fieldMap) {
|
|
|
2136
2584
|
const v = state.values[id];
|
|
2137
2585
|
if (v === null || v === void 0 || v === "") return false;
|
|
2138
2586
|
if (Array.isArray(v) && v.length === 0) return false;
|
|
2587
|
+
if (def.type === "camp_dates") {
|
|
2588
|
+
if (!chunkTB33A4PD_cjs.parseCampDateValue(v, def.options)?.id) return false;
|
|
2589
|
+
}
|
|
2590
|
+
if (def.type === "otp_input") {
|
|
2591
|
+
if (!v || typeof v !== "object" || v.verified !== true) {
|
|
2592
|
+
return false;
|
|
2593
|
+
}
|
|
2594
|
+
}
|
|
2139
2595
|
}
|
|
2140
2596
|
return true;
|
|
2141
2597
|
}
|
|
@@ -2215,17 +2671,27 @@ var Stepper = ({ steps, statuses, variant }) => {
|
|
|
2215
2671
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-0 mb-6", children: steps.map((step, i) => {
|
|
2216
2672
|
const status = statuses[i];
|
|
2217
2673
|
return /* @__PURE__ */ jsxRuntime.jsxs(React6__namespace.default.Fragment, { children: [
|
|
2218
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
2674
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [
|
|
2219
2675
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2220
2676
|
"div",
|
|
2221
2677
|
{
|
|
2222
2678
|
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
|
|
2679
|
+
"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full border-2 text-xs font-semibold leading-none transition-colors",
|
|
2680
|
+
status === "complete" && "border-primary bg-primary",
|
|
2681
|
+
status === "active" && "border-primary bg-background",
|
|
2682
|
+
status === "locked" && "border-border bg-background"
|
|
2227
2683
|
),
|
|
2228
|
-
children: status === "complete" ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-3.5 w-3.5" }) :
|
|
2684
|
+
children: status === "complete" ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-3.5 w-3.5 shrink-0 text-primary-foreground" }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
2685
|
+
"span",
|
|
2686
|
+
{
|
|
2687
|
+
className: chunkFHHISVCH_cjs.cn(
|
|
2688
|
+
"tabular-nums",
|
|
2689
|
+
status === "active" && "text-primary",
|
|
2690
|
+
status === "locked" && "text-muted-foreground"
|
|
2691
|
+
),
|
|
2692
|
+
children: i + 1
|
|
2693
|
+
}
|
|
2694
|
+
)
|
|
2229
2695
|
}
|
|
2230
2696
|
),
|
|
2231
2697
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2259,17 +2725,12 @@ var ActiveStep = ({
|
|
|
2259
2725
|
children
|
|
2260
2726
|
] });
|
|
2261
2727
|
var Wizard = ({ node }) => {
|
|
2262
|
-
const store =
|
|
2728
|
+
const store = chunkTB33A4PD_cjs.useFormStore();
|
|
2263
2729
|
const [formState, setFormState] = React6.useState(() => ({
|
|
2264
2730
|
...store.getState()
|
|
2265
2731
|
}));
|
|
2266
2732
|
React6.useEffect(() => {
|
|
2267
2733
|
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
2734
|
setFormState({ ...state });
|
|
2274
2735
|
});
|
|
2275
2736
|
}, [store]);
|
|
@@ -2282,17 +2743,10 @@ var Wizard = ({ node }) => {
|
|
|
2282
2743
|
const showStepper = meta?.showStepper !== false;
|
|
2283
2744
|
const variant = meta?.stepperVariant ?? "numbered";
|
|
2284
2745
|
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
|
-
});
|
|
2746
|
+
const stepComplete = steps.map(
|
|
2747
|
+
(s) => isStepComplete(s, formState, fieldMap)
|
|
2748
|
+
);
|
|
2294
2749
|
const activeIndex = stepComplete.findIndex((c) => !c) === -1 ? steps.length : stepComplete.findIndex((c) => !c);
|
|
2295
|
-
console.log(`[MultiStepForm] activeIndex=${activeIndex} stepComplete=${JSON.stringify(stepComplete)}`);
|
|
2296
2750
|
const statuses = steps.map((_, i) => {
|
|
2297
2751
|
if (i < activeIndex) return "complete";
|
|
2298
2752
|
if (i === activeIndex) return "active";
|
|
@@ -2309,17 +2763,7 @@ var Wizard = ({ node }) => {
|
|
|
2309
2763
|
if (collapseCompleted) {
|
|
2310
2764
|
return /* @__PURE__ */ jsxRuntime.jsx(Section, { title: step.title, children }, step.id);
|
|
2311
2765
|
}
|
|
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
|
-
);
|
|
2766
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ActiveStep, { title: step.title, children }, step.id);
|
|
2323
2767
|
}
|
|
2324
2768
|
return /* @__PURE__ */ jsxRuntime.jsx(ActiveStep, { title: step.title, children }, step.id);
|
|
2325
2769
|
}) })
|
|
@@ -2329,7 +2773,7 @@ var MultiStepForm = ({
|
|
|
2329
2773
|
showTitle = true,
|
|
2330
2774
|
className
|
|
2331
2775
|
}) => {
|
|
2332
|
-
const store =
|
|
2776
|
+
const store = chunkTB33A4PD_cjs.useFormStore();
|
|
2333
2777
|
const schema = store.getSchema();
|
|
2334
2778
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkFHHISVCH_cjs.cn("space-y-6", className), children: [
|
|
2335
2779
|
showTitle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4", children: /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-2xl font-bold", children: schema.title }) }),
|
|
@@ -2426,7 +2870,7 @@ function normalizeDifferentialDiagnosis(val) {
|
|
|
2426
2870
|
var SmartForm = ({
|
|
2427
2871
|
aiAnalysisResult
|
|
2428
2872
|
}) => {
|
|
2429
|
-
const store =
|
|
2873
|
+
const store = chunkTB33A4PD_cjs.useFormStore();
|
|
2430
2874
|
const schema = store.getSchema();
|
|
2431
2875
|
const prevAiResultRef = React6.useRef(void 0);
|
|
2432
2876
|
const aiSuggestions = React6.useMemo(() => {
|
|
@@ -2897,6 +3341,30 @@ var ReadOnlyDischargeMedicationOrders = ({ fieldDef, value }) => {
|
|
|
2897
3341
|
}) })
|
|
2898
3342
|
] });
|
|
2899
3343
|
};
|
|
3344
|
+
var ReadOnlyCampDates = ({ fieldDef, value }) => {
|
|
3345
|
+
const camps = fieldDef.options?.length ? fieldDef.options : chunkTB33A4PD_cjs.MOCK_CAMP_DATES;
|
|
3346
|
+
const selected = chunkTB33A4PD_cjs.parseCampDateValue(value, camps);
|
|
3347
|
+
const isEmpty = !selected;
|
|
3348
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
3349
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkJMGUUFOJ_cjs.Label, { className: "text-sm font-medium text-gray-700", children: fieldDef.label }),
|
|
3350
|
+
/* @__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: [
|
|
3351
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-gray-900", children: dateFns.format(dateFns.parseISO(selected.date), "EEE, MMM d, yyyy") }),
|
|
3352
|
+
selected.location ? /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "flex items-center gap-1 text-sm text-gray-600", children: [
|
|
3353
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.MapPin, { className: "h-3.5 w-3.5 shrink-0", "aria-hidden": true }),
|
|
3354
|
+
selected.location
|
|
3355
|
+
] }) : null
|
|
3356
|
+
] }) })
|
|
3357
|
+
] });
|
|
3358
|
+
};
|
|
3359
|
+
var ReadOnlyCampTimeSlots = ({ fieldDef, value }) => {
|
|
3360
|
+
const slots = fieldDef.options?.length ? fieldDef.options : chunkTB33A4PD_cjs.MOCK_CAMP_TIME_SLOTS;
|
|
3361
|
+
const selected = slots.find((slot) => String(slot.id) === String(value));
|
|
3362
|
+
const isEmpty = value == null || value === "";
|
|
3363
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
3364
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkJMGUUFOJ_cjs.Label, { className: "text-sm font-medium text-gray-700", children: fieldDef.label }),
|
|
3365
|
+
/* @__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 }) })
|
|
3366
|
+
] });
|
|
3367
|
+
};
|
|
2900
3368
|
var ReadOnlyTable = React6__namespace.default.lazy(
|
|
2901
3369
|
() => import('./ReadOnlyTable-L7G6GWEJ.cjs').then((m) => ({ default: m.ReadOnlyTable }))
|
|
2902
3370
|
);
|
|
@@ -2942,6 +3410,10 @@ var ReadOnlyFieldRenderer = ({
|
|
|
2942
3410
|
return /* @__PURE__ */ jsxRuntime.jsx(ReadOnlyReferral, { fieldDef, value });
|
|
2943
3411
|
case "discharge_medication_orders":
|
|
2944
3412
|
return /* @__PURE__ */ jsxRuntime.jsx(ReadOnlyDischargeMedicationOrders, { fieldDef, value });
|
|
3413
|
+
case "camp_dates":
|
|
3414
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ReadOnlyCampDates, { fieldDef, value });
|
|
3415
|
+
case "camp_time_slots":
|
|
3416
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ReadOnlyCampTimeSlots, { fieldDef, value });
|
|
2945
3417
|
case "toggle": {
|
|
2946
3418
|
const isOn = value === true;
|
|
2947
3419
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
|
|
@@ -3053,7 +3525,7 @@ var ReadOnlyFieldRenderer = ({
|
|
|
3053
3525
|
const def = fieldDef;
|
|
3054
3526
|
const min = def.min ?? 0;
|
|
3055
3527
|
const max = def.max ?? 10;
|
|
3056
|
-
const safe =
|
|
3528
|
+
const safe = chunkTB33A4PD_cjs.normalizePainScaleFlags(value, { min, max });
|
|
3057
3529
|
const opts = def.options ?? [];
|
|
3058
3530
|
const flagLabels = safe.flags.map((fv) => {
|
|
3059
3531
|
const o = opts.find((x) => x.value === fv || String(x.value) === String(fv));
|
|
@@ -3066,7 +3538,7 @@ var ReadOnlyFieldRenderer = ({
|
|
|
3066
3538
|
return /* @__PURE__ */ jsxRuntime.jsx(ReadOnlyText, { fieldDef, value: lines });
|
|
3067
3539
|
}
|
|
3068
3540
|
case "urology_smart_history": {
|
|
3069
|
-
const structuredDisplay = value && typeof value === "object" ? JSON.stringify(
|
|
3541
|
+
const structuredDisplay = value && typeof value === "object" ? JSON.stringify(chunkTB33A4PD_cjs.normalizeUrologySmartHistory(value), null, 2) : value == null || value === "" ? "\u2014" : String(value);
|
|
3070
3542
|
const hopcDef = resolveFieldDef?.("symptoms");
|
|
3071
3543
|
const hopcRaw = allValues?.["symptoms"];
|
|
3072
3544
|
const hopcStr = typeof hopcRaw === "string" ? hopcRaw : hopcRaw != null && hopcRaw !== "" ? String(hopcRaw) : "";
|
|
@@ -3100,7 +3572,7 @@ var ReadOnlyFieldRenderer = ({
|
|
|
3100
3572
|
}
|
|
3101
3573
|
);
|
|
3102
3574
|
case "general_surgery_smart_history": {
|
|
3103
|
-
const structuredDisplay = value && typeof value === "object" ? JSON.stringify(
|
|
3575
|
+
const structuredDisplay = value && typeof value === "object" ? JSON.stringify(chunkTB33A4PD_cjs.normalizeGeneralSurgerySmartHistory(value), null, 2) : value == null || value === "" ? "\u2014" : String(value);
|
|
3104
3576
|
const hopcDef = resolveFieldDef?.("symptoms");
|
|
3105
3577
|
const hopcRaw = allValues?.["symptoms"];
|
|
3106
3578
|
const hopcStr = typeof hopcRaw === "string" ? hopcRaw : hopcRaw != null && hopcRaw !== "" ? String(hopcRaw) : "";
|
|
@@ -3294,7 +3766,7 @@ var FormControls = ({
|
|
|
3294
3766
|
transition,
|
|
3295
3767
|
hasPersistence,
|
|
3296
3768
|
markSubmitAttempted
|
|
3297
|
-
} =
|
|
3769
|
+
} = chunk7DISRJAB_cjs.useForm();
|
|
3298
3770
|
const hasUploadsInFlight = (state.pendingUploads ?? 0) > 0;
|
|
3299
3771
|
const draftAvailable = onSaveDraft || hasPersistence && submit;
|
|
3300
3772
|
const submitAvailable = onSubmit || availableTransitions.length > 0 && transition;
|
|
@@ -3485,52 +3957,53 @@ Object.defineProperty(exports, "isLabelVisible", {
|
|
|
3485
3957
|
});
|
|
3486
3958
|
Object.defineProperty(exports, "useForm", {
|
|
3487
3959
|
enumerable: true,
|
|
3488
|
-
get: function () { return
|
|
3960
|
+
get: function () { return chunk7DISRJAB_cjs.useForm; }
|
|
3489
3961
|
});
|
|
3490
3962
|
Object.defineProperty(exports, "EMAIL_REGEX", {
|
|
3491
3963
|
enumerable: true,
|
|
3492
|
-
get: function () { return
|
|
3964
|
+
get: function () { return chunkTB33A4PD_cjs.EMAIL_REGEX; }
|
|
3493
3965
|
});
|
|
3494
3966
|
Object.defineProperty(exports, "FormProvider", {
|
|
3495
3967
|
enumerable: true,
|
|
3496
|
-
get: function () { return
|
|
3968
|
+
get: function () { return chunkTB33A4PD_cjs.FormProvider; }
|
|
3497
3969
|
});
|
|
3498
3970
|
Object.defineProperty(exports, "FormStore", {
|
|
3499
3971
|
enumerable: true,
|
|
3500
|
-
get: function () { return
|
|
3972
|
+
get: function () { return chunkTB33A4PD_cjs.FormStore; }
|
|
3501
3973
|
});
|
|
3502
3974
|
Object.defineProperty(exports, "evaluateRules", {
|
|
3503
3975
|
enumerable: true,
|
|
3504
|
-
get: function () { return
|
|
3976
|
+
get: function () { return chunkTB33A4PD_cjs.evaluateRules; }
|
|
3505
3977
|
});
|
|
3506
3978
|
Object.defineProperty(exports, "useField", {
|
|
3507
3979
|
enumerable: true,
|
|
3508
|
-
get: function () { return
|
|
3980
|
+
get: function () { return chunkTB33A4PD_cjs.useField; }
|
|
3509
3981
|
});
|
|
3510
3982
|
Object.defineProperty(exports, "useFieldHandlers", {
|
|
3511
3983
|
enumerable: true,
|
|
3512
|
-
get: function () { return
|
|
3984
|
+
get: function () { return chunkTB33A4PD_cjs.useFieldHandlers; }
|
|
3513
3985
|
});
|
|
3514
3986
|
Object.defineProperty(exports, "useFormStore", {
|
|
3515
3987
|
enumerable: true,
|
|
3516
|
-
get: function () { return
|
|
3988
|
+
get: function () { return chunkTB33A4PD_cjs.useFormStore; }
|
|
3517
3989
|
});
|
|
3518
3990
|
Object.defineProperty(exports, "useFrequentItems", {
|
|
3519
3991
|
enumerable: true,
|
|
3520
|
-
get: function () { return
|
|
3992
|
+
get: function () { return chunkTB33A4PD_cjs.useFrequentItems; }
|
|
3521
3993
|
});
|
|
3522
3994
|
Object.defineProperty(exports, "usePackages", {
|
|
3523
3995
|
enumerable: true,
|
|
3524
|
-
get: function () { return
|
|
3996
|
+
get: function () { return chunkTB33A4PD_cjs.usePackages; }
|
|
3525
3997
|
});
|
|
3526
3998
|
Object.defineProperty(exports, "validateField", {
|
|
3527
3999
|
enumerable: true,
|
|
3528
|
-
get: function () { return
|
|
4000
|
+
get: function () { return chunkTB33A4PD_cjs.validateField; }
|
|
3529
4001
|
});
|
|
3530
4002
|
Object.defineProperty(exports, "validateForm", {
|
|
3531
4003
|
enumerable: true,
|
|
3532
|
-
get: function () { return
|
|
4004
|
+
get: function () { return chunkTB33A4PD_cjs.validateForm; }
|
|
3533
4005
|
});
|
|
4006
|
+
exports.CampBookingPersistenceProvider = CampBookingPersistenceProvider;
|
|
3534
4007
|
exports.DynamicForm = DynamicForm;
|
|
3535
4008
|
exports.DynamicFormV2 = DynamicFormV2;
|
|
3536
4009
|
exports.FieldRenderer = FieldRenderer;
|