@remoteoss/remote-flows 1.55.0 → 1.56.0
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/ButtonDefault-Dr1uPypn.js +2 -0
- package/dist/ButtonDefault-Dr1uPypn.js.map +1 -0
- package/dist/CheckBoxField-DSq9Qf8u.js +2 -0
- package/dist/CheckBoxField-DSq9Qf8u.js.map +1 -0
- package/dist/CheckboxFieldDefault-DjffkXJJ.js +2 -0
- package/dist/CheckboxFieldDefault-DjffkXJJ.js.map +1 -0
- package/dist/ContractAmendment-DxUe6jzs.js +2 -0
- package/dist/ContractAmendment-DxUe6jzs.js.map +1 -0
- package/dist/ContractDocument-isTSjaPh.js +2 -0
- package/dist/ContractDocument-isTSjaPh.js.map +1 -0
- package/dist/ContractorOnboarding-QSgRChZR.js +2 -0
- package/dist/ContractorOnboarding-QSgRChZR.js.map +1 -0
- package/dist/CostCalculator-CoUCw59l.js +2 -0
- package/dist/CostCalculator-CoUCw59l.js.map +1 -0
- package/dist/CountryFieldDefault-CY7EZdM8.js +2 -0
- package/dist/CountryFieldDefault-CY7EZdM8.js.map +1 -0
- package/dist/CreateCompany-BiSCCH_S.js +2 -0
- package/dist/CreateCompany-BiSCCH_S.js.map +1 -0
- package/dist/CurrencyConversionField-DMi3ydBX.js +2 -0
- package/dist/CurrencyConversionField-DMi3ydBX.js.map +1 -0
- package/dist/DatePickerFieldDefault-DirN5nuB.js +2 -0
- package/dist/DatePickerFieldDefault-DirN5nuB.js.map +1 -0
- package/dist/Drawer-BBXMyvwR.js +2 -0
- package/dist/Drawer-BBXMyvwR.js.map +1 -0
- package/dist/DrawerDefault-CadLGBmQ.js +2 -0
- package/dist/DrawerDefault-CadLGBmQ.js.map +1 -0
- package/dist/EmailFieldDefault-B0L_D4D9.js +2 -0
- package/dist/EmailFieldDefault-B0L_D4D9.js.map +1 -0
- package/dist/FileUploadFieldDefault-B0cz44f6.js +2 -0
- package/dist/FileUploadFieldDefault-B0cz44f6.js.map +1 -0
- package/dist/ForcedValueFieldDefault-Bp_ipb0c.js +2 -0
- package/dist/ForcedValueFieldDefault-Bp_ipb0c.js.map +1 -0
- package/dist/HelpCenter-DUyZK5NH.js +2 -0
- package/dist/HelpCenter-DUyZK5NH.js.map +1 -0
- package/dist/InvoiceSchedule-DxWc0xu-.js +2 -0
- package/dist/InvoiceSchedule-DxWc0xu-.js.map +1 -0
- package/dist/JSONSchemaForm-DehMm5lM.js +2 -0
- package/dist/JSONSchemaForm-DehMm5lM.js.map +1 -0
- package/dist/JsonSchemaPlayground-CTwG5Y1Q.js +2 -0
- package/dist/JsonSchemaPlayground-CTwG5Y1Q.js.map +1 -0
- package/dist/MultiSelectFieldDefault-Bt5bdhNg.js +2 -0
- package/dist/MultiSelectFieldDefault-Bt5bdhNg.js.map +1 -0
- package/dist/NumberFieldDefault-BGYFkaSl.js +2 -0
- package/dist/NumberFieldDefault-BGYFkaSl.js.map +1 -0
- package/dist/Onboarding-axVT9XVh.js +2 -0
- package/dist/Onboarding-axVT9XVh.js.map +1 -0
- package/dist/PDFPreviewDefault-DFTUnKAv.js +2 -0
- package/dist/PDFPreviewDefault-DFTUnKAv.js.map +1 -0
- package/dist/PayrollAdminOnboarding-Byn90Nuf.js +2 -0
- package/dist/PayrollAdminOnboarding-Byn90Nuf.js.map +1 -0
- package/dist/PayrollEmployeeOnboarding-BQjn-7oA.js +2 -0
- package/dist/PayrollEmployeeOnboarding-BQjn-7oA.js.map +1 -0
- package/dist/RadioGroupFieldDefault-s-2o9vOe.js +2 -0
- package/dist/RadioGroupFieldDefault-s-2o9vOe.js.map +1 -0
- package/dist/SelectFieldDefault-OYOYuCIs.js +2 -0
- package/dist/SelectFieldDefault-OYOYuCIs.js.map +1 -0
- package/dist/StatementDefault-Bc0RsZ_4.js +2 -0
- package/dist/StatementDefault-Bc0RsZ_4.js.map +1 -0
- package/dist/TableFieldDefault-BOrfv3dp.js +2 -0
- package/dist/TableFieldDefault-BOrfv3dp.js.map +1 -0
- package/dist/TelFieldDefault-Dd2Kf1yP.js +2 -0
- package/dist/TelFieldDefault-Dd2Kf1yP.js.map +1 -0
- package/dist/Termination-sjnHMs8m.js +2 -0
- package/dist/Termination-sjnHMs8m.js.map +1 -0
- package/dist/TextAreaFieldDefault-D5rn1dmT.js +2 -0
- package/dist/TextAreaFieldDefault-D5rn1dmT.js.map +1 -0
- package/dist/TextFieldDefault-BS6xccU-.js +2 -0
- package/dist/TextFieldDefault-BS6xccU-.js.map +1 -0
- package/dist/TimeFieldDefault-Bd0k6ctZ.js +2 -0
- package/dist/TimeFieldDefault-Bd0k6ctZ.js.map +1 -0
- package/dist/WorkScheduleFieldDefault-O5iYdTl0.js +2 -0
- package/dist/WorkScheduleFieldDefault-O5iYdTl0.js.map +1 -0
- package/dist/ZendeskDrawerDefault-Cfb4bGsf.js +2 -0
- package/dist/ZendeskDrawerDefault-Cfb4bGsf.js.map +1 -0
- package/dist/ZendeskTriggerButtonDefault-Cs2NQKyk.js +2 -0
- package/dist/ZendeskTriggerButtonDefault-Cs2NQKyk.js.map +1 -0
- package/dist/alert-CRHuNoGl.js +2 -0
- package/dist/alert-CRHuNoGl.js.map +1 -0
- package/dist/api-C6Xa3W-_.js +2 -0
- package/dist/api-C6Xa3W-_.js.map +1 -0
- package/dist/api-CsVWNT2E.js +2 -0
- package/dist/api-CsVWNT2E.js.map +1 -0
- package/dist/api-D3v21Bid.js +2 -0
- package/dist/api-D3v21Bid.js.map +1 -0
- package/dist/basic-tooltip-Dr-_TRDa.js +2 -0
- package/dist/basic-tooltip-Dr-_TRDa.js.map +1 -0
- package/dist/checkbox-_YWwA7wV.js +2 -0
- package/dist/checkbox-_YWwA7wV.js.map +1 -0
- package/dist/countries-BiKsglKy.js +2 -0
- package/dist/countries-BiKsglKy.js.map +1 -0
- package/dist/dates-CD1yZ0Ni.js +2 -0
- package/dist/dates-CD1yZ0Ni.js.map +1 -0
- package/dist/default-components.d.ts +5 -9
- package/dist/default-components.js +1 -1
- package/dist/default-components.js.map +1 -1
- package/dist/employment-Ddl1RWTS.js +2 -0
- package/dist/employment-Ddl1RWTS.js.map +1 -0
- package/dist/flows/ContractAmendment/index.d.ts +2 -18
- package/dist/flows/ContractAmendment/index.js +1 -2
- package/dist/flows/ContractDocument/index.d.ts +2 -7
- package/dist/flows/ContractDocument/index.js +1 -2
- package/dist/flows/ContractorOnboarding/index.d.ts +3 -32
- package/dist/flows/ContractorOnboarding/index.js +1 -2
- package/dist/flows/CostCalculator/index.d.ts +2 -20
- package/dist/flows/CostCalculator/index.js +1 -2
- package/dist/flows/CreateCompany/index.d.ts +2 -13
- package/dist/flows/CreateCompany/index.js +1 -2
- package/dist/flows/InvoiceSchedule/index.d.ts +2 -16
- package/dist/flows/InvoiceSchedule/index.js +1 -2
- package/dist/flows/JsonSchemaPlayground/index.d.ts +2 -13
- package/dist/flows/JsonSchemaPlayground/index.js +1 -2
- package/dist/flows/Onboarding/index.d.ts +4 -19
- package/dist/flows/Onboarding/index.js +1 -2
- package/dist/flows/PayrollAdminOnboarding/index.d.ts +3 -14
- package/dist/flows/PayrollAdminOnboarding/index.js +1 -2
- package/dist/flows/PayrollEmployeeOnboarding/index.d.ts +3 -14
- package/dist/flows/PayrollEmployeeOnboarding/index.js +1 -2
- package/dist/flows/Termination/index.d.ts +2 -32
- package/dist/flows/Termination/index.js +1 -2
- package/dist/gpOnboarding-BeH-l_v0.js +2 -0
- package/dist/gpOnboarding-BeH-l_v0.js.map +1 -0
- package/dist/index-BZYxe7c7.d.ts +103 -0
- package/dist/index-Bdw5R9SK.d.ts +248 -0
- package/dist/index-Bfp0Dih3.d.ts +416 -0
- package/dist/index-CpUmq5t-.d.ts +408 -0
- package/dist/index-CtaBzbkN.d.ts +9 -0
- package/dist/index-DSNiRSgk.d.ts +111 -0
- package/dist/index-DZOv3Kqg.d.ts +3071 -0
- package/dist/index-DqbaX4JJ.d.ts +210 -0
- package/dist/index-DsnJn9oQ.d.ts +443 -0
- package/dist/index-Zkya1HrW.d.ts +191 -0
- package/dist/index-pnWfqMqx.d.ts +664 -0
- package/dist/index-xjEJT03m.d.ts +51 -0
- package/dist/index.css +1 -2
- package/dist/index.d.ts +17 -267
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/internals-CzDL30xI.js +2 -0
- package/dist/internals-CzDL30xI.js.map +1 -0
- package/dist/internals.d.ts +141 -127
- package/dist/internals.js +1 -2
- package/dist/json-schema-form-AtvQYqTV.d.ts +6 -0
- package/dist/multi-select-DhP6T9xS.js +2 -0
- package/dist/multi-select-DhP6T9xS.js.map +1 -0
- package/dist/mutations-BtF_JHC1.d.ts +26 -0
- package/dist/popover-DwWAD4cG.js +2 -0
- package/dist/popover-DwWAD4cG.js.map +1 -0
- package/dist/remoteFlows-DzjJtmiU.d.ts +558 -0
- package/dist/rolldown-runtime-hePW80VL.js +1 -0
- package/dist/sdk.gen-C7MLoCMc.js +8 -0
- package/dist/sdk.gen-C7MLoCMc.js.map +1 -0
- package/dist/styles.css +1 -2
- package/dist/styles.d.ts +1 -2
- package/dist/styles.js +1 -2
- package/dist/{types-DvsjrBmu.d.ts → types-CAZgciMr.d.ts} +9 -7
- package/dist/types-DM3hjkjw.d.ts +899 -0
- package/dist/types-PZPLLCvV.d.ts +72 -0
- package/dist/types-d7RBqkQv.d.ts +170 -0
- package/dist/uploadConfig-fhh8D6_J.js +2 -0
- package/dist/uploadConfig-fhh8D6_J.js.map +1 -0
- package/dist/useErrorReporting-BC2ObW1s.js +2 -0
- package/dist/useErrorReporting-BC2ObW1s.js.map +1 -0
- package/dist/useJSONSchemaForm-CiLms2z5.js +2 -0
- package/dist/useJSONSchemaForm-CiLms2z5.js.map +1 -0
- package/dist/useStepState-BmZF37pW.js +2 -0
- package/dist/useStepState-BmZF37pW.js.map +1 -0
- package/dist/useStepState-DPuZ-xcq.d.ts +10 -0
- package/package.json +8 -5
- package/dist/ButtonDefault-N32RTG32.js +0 -2
- package/dist/ButtonDefault-N32RTG32.js.map +0 -1
- package/dist/CheckboxFieldDefault-X5SIWA6P.js +0 -2
- package/dist/CheckboxFieldDefault-X5SIWA6P.js.map +0 -1
- package/dist/CountryFieldDefault-AZOQXIVV.js +0 -2
- package/dist/CountryFieldDefault-AZOQXIVV.js.map +0 -1
- package/dist/DatePickerFieldDefault-NZL3TD4C.js +0 -2
- package/dist/DatePickerFieldDefault-NZL3TD4C.js.map +0 -1
- package/dist/DrawerDefault-E67XIROQ.js +0 -2
- package/dist/DrawerDefault-E67XIROQ.js.map +0 -1
- package/dist/EmailFieldDefault-R7LQD4WN.js +0 -2
- package/dist/EmailFieldDefault-R7LQD4WN.js.map +0 -1
- package/dist/FieldsetToggleButtonDefault-SHDKV2VO.js +0 -2
- package/dist/FieldsetToggleButtonDefault-SHDKV2VO.js.map +0 -1
- package/dist/FileUploadFieldDefault-A74OEKR7.js +0 -2
- package/dist/FileUploadFieldDefault-A74OEKR7.js.map +0 -1
- package/dist/ForcedValueFieldDefault-WD6FPQPF.js +0 -2
- package/dist/ForcedValueFieldDefault-WD6FPQPF.js.map +0 -1
- package/dist/MultiSelectFieldDefault-4RDSLVXE.js +0 -2
- package/dist/MultiSelectFieldDefault-4RDSLVXE.js.map +0 -1
- package/dist/NumberFieldDefault-U5SJAHHQ.js +0 -2
- package/dist/NumberFieldDefault-U5SJAHHQ.js.map +0 -1
- package/dist/PDFPreviewDefault-T6YPWXGY.js +0 -2
- package/dist/PDFPreviewDefault-T6YPWXGY.js.map +0 -1
- package/dist/RadioGroupFieldDefault-RMLMHLRP.js +0 -2
- package/dist/RadioGroupFieldDefault-RMLMHLRP.js.map +0 -1
- package/dist/SelectFieldDefault-LMCEGGY5.js +0 -2
- package/dist/SelectFieldDefault-LMCEGGY5.js.map +0 -1
- package/dist/StatementDefault-33EDZARR.js +0 -2
- package/dist/StatementDefault-33EDZARR.js.map +0 -1
- package/dist/TableFieldDefault-BJIHEN3V.js +0 -2
- package/dist/TableFieldDefault-BJIHEN3V.js.map +0 -1
- package/dist/TelFieldDefault-6327HAAP.js +0 -2
- package/dist/TelFieldDefault-6327HAAP.js.map +0 -1
- package/dist/TextAreaFieldDefault-ULWPOPSP.js +0 -2
- package/dist/TextAreaFieldDefault-ULWPOPSP.js.map +0 -1
- package/dist/TextFieldDefault-LEKXVZP4.js +0 -2
- package/dist/TextFieldDefault-LEKXVZP4.js.map +0 -1
- package/dist/TimeFieldDefault-EDFT5XUB.js +0 -2
- package/dist/TimeFieldDefault-EDFT5XUB.js.map +0 -1
- package/dist/WorkScheduleFieldDefault-YFHD6UUW.js +0 -2
- package/dist/WorkScheduleFieldDefault-YFHD6UUW.js.map +0 -1
- package/dist/ZendeskDrawerDefault-DC4SUPEC.js +0 -2
- package/dist/ZendeskDrawerDefault-DC4SUPEC.js.map +0 -1
- package/dist/ZendeskTriggerButtonDefault-L4BVVXHA.js +0 -2
- package/dist/ZendeskTriggerButtonDefault-L4BVVXHA.js.map +0 -1
- package/dist/chunk-2HLKH3BT.js +0 -2
- package/dist/chunk-2HLKH3BT.js.map +0 -1
- package/dist/chunk-2I3BUFQJ.js +0 -2
- package/dist/chunk-2I3BUFQJ.js.map +0 -1
- package/dist/chunk-2QSJKNZO.js +0 -2
- package/dist/chunk-2QSJKNZO.js.map +0 -1
- package/dist/chunk-2QVO3BVI.js +0 -2
- package/dist/chunk-2QVO3BVI.js.map +0 -1
- package/dist/chunk-2UD2ZFSN.js +0 -2
- package/dist/chunk-2UD2ZFSN.js.map +0 -1
- package/dist/chunk-2UEZACSE.js +0 -2
- package/dist/chunk-2UEZACSE.js.map +0 -1
- package/dist/chunk-2W354SK7.js +0 -2
- package/dist/chunk-2W354SK7.js.map +0 -1
- package/dist/chunk-36DZMQHH.js +0 -2
- package/dist/chunk-36DZMQHH.js.map +0 -1
- package/dist/chunk-36JXX3VA.js +0 -2
- package/dist/chunk-36JXX3VA.js.map +0 -1
- package/dist/chunk-3UDRMQNE.js +0 -2
- package/dist/chunk-3UDRMQNE.js.map +0 -1
- package/dist/chunk-4LQUD36G.js +0 -2
- package/dist/chunk-4LQUD36G.js.map +0 -1
- package/dist/chunk-4MI7BMM5.js +0 -2
- package/dist/chunk-4MI7BMM5.js.map +0 -1
- package/dist/chunk-4QEPM5MQ.js +0 -2
- package/dist/chunk-4QEPM5MQ.js.map +0 -1
- package/dist/chunk-54EKTCFE.js +0 -2
- package/dist/chunk-54EKTCFE.js.map +0 -1
- package/dist/chunk-55CB7X5W.js +0 -2
- package/dist/chunk-55CB7X5W.js.map +0 -1
- package/dist/chunk-5DCPSSPR.js +0 -2
- package/dist/chunk-5DCPSSPR.js.map +0 -1
- package/dist/chunk-5FEJD2N7.js +0 -2
- package/dist/chunk-5FEJD2N7.js.map +0 -1
- package/dist/chunk-5HFK7EMV.js +0 -2
- package/dist/chunk-5HFK7EMV.js.map +0 -1
- package/dist/chunk-5HXGF3IA.js +0 -2
- package/dist/chunk-5HXGF3IA.js.map +0 -1
- package/dist/chunk-5IIFCA3F.js +0 -2
- package/dist/chunk-5IIFCA3F.js.map +0 -1
- package/dist/chunk-5JKUOW3P.js +0 -2
- package/dist/chunk-5JKUOW3P.js.map +0 -1
- package/dist/chunk-5KMUUL7U.js +0 -1
- package/dist/chunk-5KMUUL7U.js.map +0 -1
- package/dist/chunk-5WFWHEXV.js +0 -2
- package/dist/chunk-5WFWHEXV.js.map +0 -1
- package/dist/chunk-5X2OXK7T.js +0 -2
- package/dist/chunk-5X2OXK7T.js.map +0 -1
- package/dist/chunk-62EFEBHN.js +0 -2
- package/dist/chunk-62EFEBHN.js.map +0 -1
- package/dist/chunk-64PDV5NF.js +0 -2
- package/dist/chunk-64PDV5NF.js.map +0 -1
- package/dist/chunk-677YKNHH.js +0 -2
- package/dist/chunk-677YKNHH.js.map +0 -1
- package/dist/chunk-6AMPXS3F.js +0 -2
- package/dist/chunk-6AMPXS3F.js.map +0 -1
- package/dist/chunk-6DHV4GT6.js +0 -2
- package/dist/chunk-6DHV4GT6.js.map +0 -1
- package/dist/chunk-6FLU37JM.js +0 -2
- package/dist/chunk-6FLU37JM.js.map +0 -1
- package/dist/chunk-6HBIQAF2.js +0 -2
- package/dist/chunk-6HBIQAF2.js.map +0 -1
- package/dist/chunk-744REBZC.js +0 -2
- package/dist/chunk-744REBZC.js.map +0 -1
- package/dist/chunk-753FEV2S.js +0 -2
- package/dist/chunk-753FEV2S.js.map +0 -1
- package/dist/chunk-76ZDXC2T.js +0 -2
- package/dist/chunk-76ZDXC2T.js.map +0 -1
- package/dist/chunk-7BB24CX5.js +0 -2
- package/dist/chunk-7BB24CX5.js.map +0 -1
- package/dist/chunk-7LP2MXCW.js +0 -2
- package/dist/chunk-7LP2MXCW.js.map +0 -1
- package/dist/chunk-7LQEU3B4.js +0 -2
- package/dist/chunk-7LQEU3B4.js.map +0 -1
- package/dist/chunk-7TCY4ON2.js +0 -2
- package/dist/chunk-7TCY4ON2.js.map +0 -1
- package/dist/chunk-7TRSA2OH.js +0 -2
- package/dist/chunk-7TRSA2OH.js.map +0 -1
- package/dist/chunk-A3LRPGV3.js +0 -2
- package/dist/chunk-A3LRPGV3.js.map +0 -1
- package/dist/chunk-A7ZJQCNU.js +0 -1
- package/dist/chunk-A7ZJQCNU.js.map +0 -1
- package/dist/chunk-AC5CQ6HL.js +0 -2
- package/dist/chunk-AC5CQ6HL.js.map +0 -1
- package/dist/chunk-ADXTCKMJ.js +0 -2
- package/dist/chunk-ADXTCKMJ.js.map +0 -1
- package/dist/chunk-AFTFDGSD.js +0 -2
- package/dist/chunk-AFTFDGSD.js.map +0 -1
- package/dist/chunk-AJ5AKHYP.js +0 -2
- package/dist/chunk-AJ5AKHYP.js.map +0 -1
- package/dist/chunk-AOE6FXVP.js +0 -2
- package/dist/chunk-AOE6FXVP.js.map +0 -1
- package/dist/chunk-AP6FKWKX.js +0 -2
- package/dist/chunk-AP6FKWKX.js.map +0 -1
- package/dist/chunk-APUJLKUM.js +0 -2
- package/dist/chunk-APUJLKUM.js.map +0 -1
- package/dist/chunk-ASKPQZY2.js +0 -2
- package/dist/chunk-ASKPQZY2.js.map +0 -1
- package/dist/chunk-AVBV7L5E.js +0 -2
- package/dist/chunk-AVBV7L5E.js.map +0 -1
- package/dist/chunk-AXZ4IDY7.js +0 -2
- package/dist/chunk-AXZ4IDY7.js.map +0 -1
- package/dist/chunk-B3MEKP45.js +0 -2
- package/dist/chunk-B3MEKP45.js.map +0 -1
- package/dist/chunk-B7BJXPGT.js +0 -2
- package/dist/chunk-B7BJXPGT.js.map +0 -1
- package/dist/chunk-BHHK7QQZ.js +0 -2
- package/dist/chunk-BHHK7QQZ.js.map +0 -1
- package/dist/chunk-BHTFKQJO.js +0 -2
- package/dist/chunk-BHTFKQJO.js.map +0 -1
- package/dist/chunk-BOVUSO4A.js +0 -2
- package/dist/chunk-BOVUSO4A.js.map +0 -1
- package/dist/chunk-BTAKGADS.js +0 -2
- package/dist/chunk-BTAKGADS.js.map +0 -1
- package/dist/chunk-BUR3X6FL.js +0 -2
- package/dist/chunk-BUR3X6FL.js.map +0 -1
- package/dist/chunk-BXR3EF3L.js +0 -2
- package/dist/chunk-BXR3EF3L.js.map +0 -1
- package/dist/chunk-BZ7YOEB6.js +0 -2
- package/dist/chunk-BZ7YOEB6.js.map +0 -1
- package/dist/chunk-C4HFMTSB.js +0 -2
- package/dist/chunk-C4HFMTSB.js.map +0 -1
- package/dist/chunk-CEFPQAKH.js +0 -2
- package/dist/chunk-CEFPQAKH.js.map +0 -1
- package/dist/chunk-CEFR62S6.js +0 -2
- package/dist/chunk-CEFR62S6.js.map +0 -1
- package/dist/chunk-CGILHL4U.js +0 -2
- package/dist/chunk-CGILHL4U.js.map +0 -1
- package/dist/chunk-CW7CHRMN.js +0 -2
- package/dist/chunk-CW7CHRMN.js.map +0 -1
- package/dist/chunk-CX57A6WK.js +0 -2
- package/dist/chunk-CX57A6WK.js.map +0 -1
- package/dist/chunk-CYAISKZB.js +0 -2
- package/dist/chunk-CYAISKZB.js.map +0 -1
- package/dist/chunk-D7F3QKN5.js +0 -2
- package/dist/chunk-D7F3QKN5.js.map +0 -1
- package/dist/chunk-D7MYOH3P.js +0 -2
- package/dist/chunk-D7MYOH3P.js.map +0 -1
- package/dist/chunk-DB4JHJ3Z.js +0 -2
- package/dist/chunk-DB4JHJ3Z.js.map +0 -1
- package/dist/chunk-DC4ZTOZE.js +0 -2
- package/dist/chunk-DC4ZTOZE.js.map +0 -1
- package/dist/chunk-DFJNVGK4.js +0 -2
- package/dist/chunk-DFJNVGK4.js.map +0 -1
- package/dist/chunk-DFTTDXJ5.js +0 -2
- package/dist/chunk-DFTTDXJ5.js.map +0 -1
- package/dist/chunk-DSJXT5ZP.js +0 -2
- package/dist/chunk-DSJXT5ZP.js.map +0 -1
- package/dist/chunk-ECD2RHON.js +0 -2
- package/dist/chunk-ECD2RHON.js.map +0 -1
- package/dist/chunk-EEGKPPQK.js +0 -2
- package/dist/chunk-EEGKPPQK.js.map +0 -1
- package/dist/chunk-EOOCBFPJ.js +0 -1
- package/dist/chunk-EOOCBFPJ.js.map +0 -1
- package/dist/chunk-EUQLCVA5.js +0 -2
- package/dist/chunk-EUQLCVA5.js.map +0 -1
- package/dist/chunk-EW6UABH3.js +0 -2
- package/dist/chunk-EW6UABH3.js.map +0 -1
- package/dist/chunk-EWRSIBE2.js +0 -2
- package/dist/chunk-EWRSIBE2.js.map +0 -1
- package/dist/chunk-F37FQXEZ.js +0 -2
- package/dist/chunk-F37FQXEZ.js.map +0 -1
- package/dist/chunk-F62JZXCH.js +0 -2
- package/dist/chunk-F62JZXCH.js.map +0 -1
- package/dist/chunk-F6NFCJYW.js +0 -2
- package/dist/chunk-F6NFCJYW.js.map +0 -1
- package/dist/chunk-FB3PEQTO.js +0 -2
- package/dist/chunk-FB3PEQTO.js.map +0 -1
- package/dist/chunk-FGBEOUQK.js +0 -1
- package/dist/chunk-FGBEOUQK.js.map +0 -1
- package/dist/chunk-FHYOWPXB.js +0 -2
- package/dist/chunk-FHYOWPXB.js.map +0 -1
- package/dist/chunk-FIOX5JX5.js +0 -2
- package/dist/chunk-FIOX5JX5.js.map +0 -1
- package/dist/chunk-FIPWWOZY.js +0 -2
- package/dist/chunk-FIPWWOZY.js.map +0 -1
- package/dist/chunk-FJD5GFO4.js +0 -2
- package/dist/chunk-FJD5GFO4.js.map +0 -1
- package/dist/chunk-FPCF4TH2.js +0 -8
- package/dist/chunk-FPCF4TH2.js.map +0 -1
- package/dist/chunk-FPP5ZANJ.js +0 -2
- package/dist/chunk-FPP5ZANJ.js.map +0 -1
- package/dist/chunk-FSGFBJJF.js +0 -2
- package/dist/chunk-FSGFBJJF.js.map +0 -1
- package/dist/chunk-FZ7FWFJX.js +0 -1
- package/dist/chunk-FZ7FWFJX.js.map +0 -1
- package/dist/chunk-G6F6ZZES.js +0 -2
- package/dist/chunk-G6F6ZZES.js.map +0 -1
- package/dist/chunk-GA7B6FUD.js +0 -1
- package/dist/chunk-GA7B6FUD.js.map +0 -1
- package/dist/chunk-GIQIO4GI.js +0 -2
- package/dist/chunk-GIQIO4GI.js.map +0 -1
- package/dist/chunk-GMXL2Z5N.js +0 -2
- package/dist/chunk-GMXL2Z5N.js.map +0 -1
- package/dist/chunk-GNW6DGUS.js +0 -2
- package/dist/chunk-GNW6DGUS.js.map +0 -1
- package/dist/chunk-GPWQPJQ7.js +0 -2
- package/dist/chunk-GPWQPJQ7.js.map +0 -1
- package/dist/chunk-GYMFEHNM.js +0 -2
- package/dist/chunk-GYMFEHNM.js.map +0 -1
- package/dist/chunk-H2O4CVKF.js +0 -2
- package/dist/chunk-H2O4CVKF.js.map +0 -1
- package/dist/chunk-H3GKCPVS.js +0 -2
- package/dist/chunk-H3GKCPVS.js.map +0 -1
- package/dist/chunk-H3Y7IISD.js +0 -2
- package/dist/chunk-H3Y7IISD.js.map +0 -1
- package/dist/chunk-H5M3D6CI.js +0 -2
- package/dist/chunk-H5M3D6CI.js.map +0 -1
- package/dist/chunk-H66IKMI4.js +0 -2
- package/dist/chunk-H66IKMI4.js.map +0 -1
- package/dist/chunk-H6XROFQT.js +0 -2
- package/dist/chunk-H6XROFQT.js.map +0 -1
- package/dist/chunk-HBONR7VY.js +0 -2
- package/dist/chunk-HBONR7VY.js.map +0 -1
- package/dist/chunk-HDFNGXCV.js +0 -2
- package/dist/chunk-HDFNGXCV.js.map +0 -1
- package/dist/chunk-HI6GH4J7.js +0 -2
- package/dist/chunk-HI6GH4J7.js.map +0 -1
- package/dist/chunk-HN5HLFTB.js +0 -2
- package/dist/chunk-HN5HLFTB.js.map +0 -1
- package/dist/chunk-I757RN7F.js +0 -2
- package/dist/chunk-I757RN7F.js.map +0 -1
- package/dist/chunk-IBOSDGWK.js +0 -2
- package/dist/chunk-IBOSDGWK.js.map +0 -1
- package/dist/chunk-IBQVGZMF.js +0 -2
- package/dist/chunk-IBQVGZMF.js.map +0 -1
- package/dist/chunk-IFDFCKT4.js +0 -2
- package/dist/chunk-IFDFCKT4.js.map +0 -1
- package/dist/chunk-IFIJ7OVJ.js +0 -2
- package/dist/chunk-IFIJ7OVJ.js.map +0 -1
- package/dist/chunk-IJAV22PE.js +0 -2
- package/dist/chunk-IJAV22PE.js.map +0 -1
- package/dist/chunk-IROMMYZS.js +0 -2
- package/dist/chunk-IROMMYZS.js.map +0 -1
- package/dist/chunk-IZRM26GZ.js +0 -2
- package/dist/chunk-IZRM26GZ.js.map +0 -1
- package/dist/chunk-J23IEAZ2.js +0 -2
- package/dist/chunk-J23IEAZ2.js.map +0 -1
- package/dist/chunk-JCES7EE2.js +0 -2
- package/dist/chunk-JCES7EE2.js.map +0 -1
- package/dist/chunk-JCKH3UYE.js +0 -2
- package/dist/chunk-JCKH3UYE.js.map +0 -1
- package/dist/chunk-JGKYFH4L.js +0 -2
- package/dist/chunk-JGKYFH4L.js.map +0 -1
- package/dist/chunk-JIGRVBQS.js +0 -2
- package/dist/chunk-JIGRVBQS.js.map +0 -1
- package/dist/chunk-JJUOWS3K.js +0 -2
- package/dist/chunk-JJUOWS3K.js.map +0 -1
- package/dist/chunk-JK4CPPN4.js +0 -2
- package/dist/chunk-JK4CPPN4.js.map +0 -1
- package/dist/chunk-JMBQAG6H.js +0 -2
- package/dist/chunk-JMBQAG6H.js.map +0 -1
- package/dist/chunk-JNPESWI7.js +0 -2
- package/dist/chunk-JNPESWI7.js.map +0 -1
- package/dist/chunk-JO5D2522.js +0 -2
- package/dist/chunk-JO5D2522.js.map +0 -1
- package/dist/chunk-JRMI5S74.js +0 -2
- package/dist/chunk-JRMI5S74.js.map +0 -1
- package/dist/chunk-JXPMQMTT.js +0 -2
- package/dist/chunk-JXPMQMTT.js.map +0 -1
- package/dist/chunk-K3QDNFF5.js +0 -2
- package/dist/chunk-K3QDNFF5.js.map +0 -1
- package/dist/chunk-KF52YXGI.js +0 -2
- package/dist/chunk-KF52YXGI.js.map +0 -1
- package/dist/chunk-KFYWUBRS.js +0 -2
- package/dist/chunk-KFYWUBRS.js.map +0 -1
- package/dist/chunk-KGSH67IW.js +0 -2
- package/dist/chunk-KGSH67IW.js.map +0 -1
- package/dist/chunk-KMLI4ISS.js +0 -2
- package/dist/chunk-KMLI4ISS.js.map +0 -1
- package/dist/chunk-KQ2ZXMJF.js +0 -2
- package/dist/chunk-KQ2ZXMJF.js.map +0 -1
- package/dist/chunk-KSHK3ZPX.js +0 -2
- package/dist/chunk-KSHK3ZPX.js.map +0 -1
- package/dist/chunk-KUQJG26N.js +0 -2
- package/dist/chunk-KUQJG26N.js.map +0 -1
- package/dist/chunk-KVUKJU5U.js +0 -2
- package/dist/chunk-KVUKJU5U.js.map +0 -1
- package/dist/chunk-L2GAD6S5.js +0 -2
- package/dist/chunk-L2GAD6S5.js.map +0 -1
- package/dist/chunk-L74V3INS.js +0 -2
- package/dist/chunk-L74V3INS.js.map +0 -1
- package/dist/chunk-LFUMRNDK.js +0 -2
- package/dist/chunk-LFUMRNDK.js.map +0 -1
- package/dist/chunk-LKHRHBFP.js +0 -2
- package/dist/chunk-LKHRHBFP.js.map +0 -1
- package/dist/chunk-LVYZIOOZ.js +0 -2
- package/dist/chunk-LVYZIOOZ.js.map +0 -1
- package/dist/chunk-LWGSXQKI.js +0 -1
- package/dist/chunk-LWGSXQKI.js.map +0 -1
- package/dist/chunk-M3TA5X2H.js +0 -2
- package/dist/chunk-M3TA5X2H.js.map +0 -1
- package/dist/chunk-MAEAZFMR.js +0 -1
- package/dist/chunk-MAEAZFMR.js.map +0 -1
- package/dist/chunk-MBGHSHR6.js +0 -2
- package/dist/chunk-MBGHSHR6.js.map +0 -1
- package/dist/chunk-MRYRNB7Y.js +0 -2
- package/dist/chunk-MRYRNB7Y.js.map +0 -1
- package/dist/chunk-MWBEA2NI.js +0 -2
- package/dist/chunk-MWBEA2NI.js.map +0 -1
- package/dist/chunk-MZM26I3S.js +0 -2
- package/dist/chunk-MZM26I3S.js.map +0 -1
- package/dist/chunk-NEVSZEMH.js +0 -2
- package/dist/chunk-NEVSZEMH.js.map +0 -1
- package/dist/chunk-NILEOD3X.js +0 -2
- package/dist/chunk-NILEOD3X.js.map +0 -1
- package/dist/chunk-NP3RMRKZ.js +0 -2
- package/dist/chunk-NP3RMRKZ.js.map +0 -1
- package/dist/chunk-NW3D7CPK.js +0 -2
- package/dist/chunk-NW3D7CPK.js.map +0 -1
- package/dist/chunk-NXSRNOBC.js +0 -2
- package/dist/chunk-NXSRNOBC.js.map +0 -1
- package/dist/chunk-OCZ5EG5J.js +0 -2
- package/dist/chunk-OCZ5EG5J.js.map +0 -1
- package/dist/chunk-ODRR3US4.js +0 -2
- package/dist/chunk-ODRR3US4.js.map +0 -1
- package/dist/chunk-OGDYY2TK.js +0 -2
- package/dist/chunk-OGDYY2TK.js.map +0 -1
- package/dist/chunk-OHVXJXF4.js +0 -1
- package/dist/chunk-OHVXJXF4.js.map +0 -1
- package/dist/chunk-OL5C4QEH.js +0 -2
- package/dist/chunk-OL5C4QEH.js.map +0 -1
- package/dist/chunk-ONELHWYF.js +0 -2
- package/dist/chunk-ONELHWYF.js.map +0 -1
- package/dist/chunk-OUVSBTOE.js +0 -2
- package/dist/chunk-OUVSBTOE.js.map +0 -1
- package/dist/chunk-OV4ARZIX.js +0 -2
- package/dist/chunk-OV4ARZIX.js.map +0 -1
- package/dist/chunk-P37U34EQ.js +0 -2
- package/dist/chunk-P37U34EQ.js.map +0 -1
- package/dist/chunk-P4LSZLTJ.js +0 -2
- package/dist/chunk-P4LSZLTJ.js.map +0 -1
- package/dist/chunk-PB6UQ4A4.js +0 -2
- package/dist/chunk-PB6UQ4A4.js.map +0 -1
- package/dist/chunk-PE2UM2SW.js +0 -2
- package/dist/chunk-PE2UM2SW.js.map +0 -1
- package/dist/chunk-PGS35CGC.js +0 -2
- package/dist/chunk-PGS35CGC.js.map +0 -1
- package/dist/chunk-PGWKJ6FK.js +0 -2
- package/dist/chunk-PGWKJ6FK.js.map +0 -1
- package/dist/chunk-POA6NSFQ.js +0 -2
- package/dist/chunk-POA6NSFQ.js.map +0 -1
- package/dist/chunk-PUX6FYHV.js +0 -2
- package/dist/chunk-PUX6FYHV.js.map +0 -1
- package/dist/chunk-PVORGGT3.js +0 -2
- package/dist/chunk-PVORGGT3.js.map +0 -1
- package/dist/chunk-Q3ALCPJN.js +0 -2
- package/dist/chunk-Q3ALCPJN.js.map +0 -1
- package/dist/chunk-QATHYZUV.js +0 -2
- package/dist/chunk-QATHYZUV.js.map +0 -1
- package/dist/chunk-QETOBZUA.js +0 -2
- package/dist/chunk-QETOBZUA.js.map +0 -1
- package/dist/chunk-QRSWXKRV.js +0 -2
- package/dist/chunk-QRSWXKRV.js.map +0 -1
- package/dist/chunk-QTEQCA5N.js +0 -2
- package/dist/chunk-QTEQCA5N.js.map +0 -1
- package/dist/chunk-QXW2MAFG.js +0 -2
- package/dist/chunk-QXW2MAFG.js.map +0 -1
- package/dist/chunk-QYA7D7ZQ.js +0 -2
- package/dist/chunk-QYA7D7ZQ.js.map +0 -1
- package/dist/chunk-R4E37FVX.js +0 -2
- package/dist/chunk-R4E37FVX.js.map +0 -1
- package/dist/chunk-R5Y7AZWB.js +0 -2
- package/dist/chunk-R5Y7AZWB.js.map +0 -1
- package/dist/chunk-RADQBXMO.js +0 -2
- package/dist/chunk-RADQBXMO.js.map +0 -1
- package/dist/chunk-RJXFAG4D.js +0 -2
- package/dist/chunk-RJXFAG4D.js.map +0 -1
- package/dist/chunk-RQZ5QNCM.js +0 -2
- package/dist/chunk-RQZ5QNCM.js.map +0 -1
- package/dist/chunk-S64P7IA7.js +0 -2
- package/dist/chunk-S64P7IA7.js.map +0 -1
- package/dist/chunk-SDF4QRJ2.js +0 -2
- package/dist/chunk-SDF4QRJ2.js.map +0 -1
- package/dist/chunk-SGE4DLC3.js +0 -2
- package/dist/chunk-SGE4DLC3.js.map +0 -1
- package/dist/chunk-SIVFXETC.js +0 -2
- package/dist/chunk-SIVFXETC.js.map +0 -1
- package/dist/chunk-SLEK47CR.js +0 -2
- package/dist/chunk-SLEK47CR.js.map +0 -1
- package/dist/chunk-SRLBVFNQ.js +0 -2
- package/dist/chunk-SRLBVFNQ.js.map +0 -1
- package/dist/chunk-SRNXXOUH.js +0 -2
- package/dist/chunk-SRNXXOUH.js.map +0 -1
- package/dist/chunk-SS2SYDCB.js +0 -2
- package/dist/chunk-SS2SYDCB.js.map +0 -1
- package/dist/chunk-SSUL5J5I.js +0 -2
- package/dist/chunk-SSUL5J5I.js.map +0 -1
- package/dist/chunk-SWCZJY6I.js +0 -2
- package/dist/chunk-SWCZJY6I.js.map +0 -1
- package/dist/chunk-SWLNTVAX.js +0 -2
- package/dist/chunk-SWLNTVAX.js.map +0 -1
- package/dist/chunk-SXW4FROO.js +0 -2
- package/dist/chunk-SXW4FROO.js.map +0 -1
- package/dist/chunk-SYZIGZ2F.js +0 -2
- package/dist/chunk-SYZIGZ2F.js.map +0 -1
- package/dist/chunk-TDKKCSKV.js +0 -2
- package/dist/chunk-TDKKCSKV.js.map +0 -1
- package/dist/chunk-TDUPMUA2.js +0 -2
- package/dist/chunk-TDUPMUA2.js.map +0 -1
- package/dist/chunk-TJOQF7N6.js +0 -2
- package/dist/chunk-TJOQF7N6.js.map +0 -1
- package/dist/chunk-TKJQB2O2.js +0 -2
- package/dist/chunk-TKJQB2O2.js.map +0 -1
- package/dist/chunk-TNWH6PVQ.js +0 -2
- package/dist/chunk-TNWH6PVQ.js.map +0 -1
- package/dist/chunk-TSR7O3QD.js +0 -2
- package/dist/chunk-TSR7O3QD.js.map +0 -1
- package/dist/chunk-TVZAFTPT.js +0 -2
- package/dist/chunk-TVZAFTPT.js.map +0 -1
- package/dist/chunk-U7JAGEOV.js +0 -2
- package/dist/chunk-U7JAGEOV.js.map +0 -1
- package/dist/chunk-UDF7IJTE.js +0 -2
- package/dist/chunk-UDF7IJTE.js.map +0 -1
- package/dist/chunk-UGU2ENUA.js +0 -2
- package/dist/chunk-UGU2ENUA.js.map +0 -1
- package/dist/chunk-UKEIM24T.js +0 -2
- package/dist/chunk-UKEIM24T.js.map +0 -1
- package/dist/chunk-UYOKK4QW.js +0 -2
- package/dist/chunk-UYOKK4QW.js.map +0 -1
- package/dist/chunk-UYUPSPOE.js +0 -1
- package/dist/chunk-UYUPSPOE.js.map +0 -1
- package/dist/chunk-UZ4TEF73.js +0 -1
- package/dist/chunk-UZ4TEF73.js.map +0 -1
- package/dist/chunk-VAIBLWOY.js +0 -2
- package/dist/chunk-VAIBLWOY.js.map +0 -1
- package/dist/chunk-VC3W5YDI.js +0 -2
- package/dist/chunk-VC3W5YDI.js.map +0 -1
- package/dist/chunk-VDJJEIOD.js +0 -2
- package/dist/chunk-VDJJEIOD.js.map +0 -1
- package/dist/chunk-VDRNNOVA.js +0 -2
- package/dist/chunk-VDRNNOVA.js.map +0 -1
- package/dist/chunk-VEQWK7QQ.js +0 -2
- package/dist/chunk-VEQWK7QQ.js.map +0 -1
- package/dist/chunk-VPFTBK24.js +0 -2
- package/dist/chunk-VPFTBK24.js.map +0 -1
- package/dist/chunk-VSK4KV55.js +0 -2
- package/dist/chunk-VSK4KV55.js.map +0 -1
- package/dist/chunk-VVMBSA4F.js +0 -2
- package/dist/chunk-VVMBSA4F.js.map +0 -1
- package/dist/chunk-W5WYIDDY.js +0 -2
- package/dist/chunk-W5WYIDDY.js.map +0 -1
- package/dist/chunk-WBKBVV3X.js +0 -2
- package/dist/chunk-WBKBVV3X.js.map +0 -1
- package/dist/chunk-WC7TWLA7.js +0 -2
- package/dist/chunk-WC7TWLA7.js.map +0 -1
- package/dist/chunk-WCJZAOZR.js +0 -2
- package/dist/chunk-WCJZAOZR.js.map +0 -1
- package/dist/chunk-WMKJCDHA.js +0 -2
- package/dist/chunk-WMKJCDHA.js.map +0 -1
- package/dist/chunk-WQFBJPV2.js +0 -2
- package/dist/chunk-WQFBJPV2.js.map +0 -1
- package/dist/chunk-WSRH5UQP.js +0 -2
- package/dist/chunk-WSRH5UQP.js.map +0 -1
- package/dist/chunk-WYP2CB4I.js +0 -2
- package/dist/chunk-WYP2CB4I.js.map +0 -1
- package/dist/chunk-X2CSXDCG.js +0 -2
- package/dist/chunk-X2CSXDCG.js.map +0 -1
- package/dist/chunk-X4IBNXCR.js +0 -2
- package/dist/chunk-X4IBNXCR.js.map +0 -1
- package/dist/chunk-XLAXG4H6.js +0 -2
- package/dist/chunk-XLAXG4H6.js.map +0 -1
- package/dist/chunk-XLBZIIHS.js +0 -2
- package/dist/chunk-XLBZIIHS.js.map +0 -1
- package/dist/chunk-XNV6ZN7J.js +0 -2
- package/dist/chunk-XNV6ZN7J.js.map +0 -1
- package/dist/chunk-XPCQ5QJV.js +0 -2
- package/dist/chunk-XPCQ5QJV.js.map +0 -1
- package/dist/chunk-Y25ROTI4.js +0 -2
- package/dist/chunk-Y25ROTI4.js.map +0 -1
- package/dist/chunk-Y2NCUO3F.js +0 -2
- package/dist/chunk-Y2NCUO3F.js.map +0 -1
- package/dist/chunk-YBHHWAOI.js +0 -2
- package/dist/chunk-YBHHWAOI.js.map +0 -1
- package/dist/chunk-YE6NRJ2L.js +0 -2
- package/dist/chunk-YE6NRJ2L.js.map +0 -1
- package/dist/chunk-YP6UTKJJ.js +0 -2
- package/dist/chunk-YP6UTKJJ.js.map +0 -1
- package/dist/chunk-YPBPOUGX.js +0 -2
- package/dist/chunk-YPBPOUGX.js.map +0 -1
- package/dist/chunk-YTK3CQEH.js +0 -2
- package/dist/chunk-YTK3CQEH.js.map +0 -1
- package/dist/chunk-YUNA3QKT.js +0 -2
- package/dist/chunk-YUNA3QKT.js.map +0 -1
- package/dist/chunk-YZMAY2I6.js +0 -2
- package/dist/chunk-YZMAY2I6.js.map +0 -1
- package/dist/chunk-Z23FQVGN.js +0 -1
- package/dist/chunk-Z23FQVGN.js.map +0 -1
- package/dist/chunk-Z4Q2UO2Y.js +0 -2
- package/dist/chunk-Z4Q2UO2Y.js.map +0 -1
- package/dist/chunk-ZDHGJ3FH.js +0 -2
- package/dist/chunk-ZDHGJ3FH.js.map +0 -1
- package/dist/chunk-ZE3YT3Q6.js +0 -2
- package/dist/chunk-ZE3YT3Q6.js.map +0 -1
- package/dist/chunk-ZI7EPJT7.js +0 -2
- package/dist/chunk-ZI7EPJT7.js.map +0 -1
- package/dist/chunk-ZNHBMI37.js +0 -2
- package/dist/chunk-ZNHBMI37.js.map +0 -1
- package/dist/chunk-ZZXFTUY7.js +0 -2
- package/dist/chunk-ZZXFTUY7.js.map +0 -1
- package/dist/flows/ContractAmendment/ContractAmendmentBack.d.ts +0 -6
- package/dist/flows/ContractAmendment/ContractAmendmentBack.js +0 -2
- package/dist/flows/ContractAmendment/ContractAmendmentBack.js.map +0 -1
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +0 -30
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js +0 -2
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js.map +0 -1
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +0 -46
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +0 -2
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.js.map +0 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +0 -33
- package/dist/flows/ContractAmendment/ContractAmendmentForm.js +0 -2
- package/dist/flows/ContractAmendment/ContractAmendmentForm.js.map +0 -1
- package/dist/flows/ContractAmendment/ContractAmendmentSubmit.d.ts +0 -6
- package/dist/flows/ContractAmendment/ContractAmendmentSubmit.js +0 -2
- package/dist/flows/ContractAmendment/ContractAmendmentSubmit.js.map +0 -1
- package/dist/flows/ContractAmendment/context.d.ts +0 -65
- package/dist/flows/ContractAmendment/context.js +0 -2
- package/dist/flows/ContractAmendment/context.js.map +0 -1
- package/dist/flows/ContractAmendment/hooks.d.ts +0 -99
- package/dist/flows/ContractAmendment/hooks.js +0 -2
- package/dist/flows/ContractAmendment/hooks.js.map +0 -1
- package/dist/flows/ContractAmendment/index.js.map +0 -1
- package/dist/flows/ContractAmendment/types.d.ts +0 -16
- package/dist/flows/ContractAmendment/types.js +0 -1
- package/dist/flows/ContractAmendment/types.js.map +0 -1
- package/dist/flows/ContractAmendment/utils.d.ts +0 -12
- package/dist/flows/ContractAmendment/utils.js +0 -2
- package/dist/flows/ContractAmendment/utils.js.map +0 -1
- package/dist/flows/ContractDocument/ContractDocumentFlow.d.ts +0 -14
- package/dist/flows/ContractDocument/ContractDocumentFlow.js +0 -2
- package/dist/flows/ContractDocument/ContractDocumentFlow.js.map +0 -1
- package/dist/flows/ContractDocument/context.d.ts +0 -45
- package/dist/flows/ContractDocument/context.js +0 -2
- package/dist/flows/ContractDocument/context.js.map +0 -1
- package/dist/flows/ContractDocument/hooks.d.ts +0 -6
- package/dist/flows/ContractDocument/hooks.js +0 -2
- package/dist/flows/ContractDocument/hooks.js.map +0 -1
- package/dist/flows/ContractDocument/index.js.map +0 -1
- package/dist/flows/ContractDocument/types.d.ts +0 -6
- package/dist/flows/ContractDocument/types.js +0 -1
- package/dist/flows/ContractDocument/types.js.map +0 -1
- package/dist/flows/ContractDocument/utils.d.ts +0 -16
- package/dist/flows/ContractDocument/utils.js +0 -2
- package/dist/flows/ContractDocument/utils.js.map +0 -1
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +0 -35
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +0 -2
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.js.map +0 -1
- package/dist/flows/ContractorOnboarding/api.d.ts +0 -1019
- package/dist/flows/ContractorOnboarding/api.js +0 -2
- package/dist/flows/ContractorOnboarding/api.js.map +0 -1
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +0 -30
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +0 -2
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js.map +0 -1
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +0 -31
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +0 -2
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js.map +0 -1
- package/dist/flows/ContractorOnboarding/components/ContractOriginStep.d.ts +0 -27
- package/dist/flows/ContractorOnboarding/components/ContractOriginStep.js +0 -2
- package/dist/flows/ContractorOnboarding/components/ContractOriginStep.js.map +0 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewHeader.d.ts +0 -9
- package/dist/flows/ContractorOnboarding/components/ContractPreviewHeader.js +0 -2
- package/dist/flows/ContractorOnboarding/components/ContractPreviewHeader.js.map +0 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStatement.d.ts +0 -12
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStatement.js +0 -2
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStatement.js.map +0 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +0 -31
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +0 -2
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js.map +0 -1
- package/dist/flows/ContractorOnboarding/components/ContractReviewButton.d.ts +0 -11
- package/dist/flows/ContractorOnboarding/components/ContractReviewButton.js +0 -2
- package/dist/flows/ContractorOnboarding/components/ContractReviewButton.js.map +0 -1
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +0 -41
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +0 -2
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js.map +0 -1
- package/dist/flows/ContractorOnboarding/components/CreateInvoiceScheduleStep.d.ts +0 -23
- package/dist/flows/ContractorOnboarding/components/CreateInvoiceScheduleStep.js +0 -2
- package/dist/flows/ContractorOnboarding/components/CreateInvoiceScheduleStep.js.map +0 -1
- package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.d.ts +0 -31
- package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.js +0 -2
- package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.js.map +0 -1
- package/dist/flows/ContractorOnboarding/components/InvoiceScheduleStep.d.ts +0 -31
- package/dist/flows/ContractorOnboarding/components/InvoiceScheduleStep.js +0 -2
- package/dist/flows/ContractorOnboarding/components/InvoiceScheduleStep.js.map +0 -1
- package/dist/flows/ContractorOnboarding/components/OnboardingBack.d.ts +0 -7
- package/dist/flows/ContractorOnboarding/components/OnboardingBack.js +0 -2
- package/dist/flows/ContractorOnboarding/components/OnboardingBack.js.map +0 -1
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.d.ts +0 -26
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js +0 -2
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js.map +0 -1
- package/dist/flows/ContractorOnboarding/components/OnboardingSubmit.d.ts +0 -6
- package/dist/flows/ContractorOnboarding/components/OnboardingSubmit.js +0 -2
- package/dist/flows/ContractorOnboarding/components/OnboardingSubmit.js.map +0 -1
- package/dist/flows/ContractorOnboarding/components/PreviewInvoiceButton.d.ts +0 -31
- package/dist/flows/ContractorOnboarding/components/PreviewInvoiceButton.js +0 -2
- package/dist/flows/ContractorOnboarding/components/PreviewInvoiceButton.js.map +0 -1
- package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +0 -31
- package/dist/flows/ContractorOnboarding/components/PricingPlan.js +0 -2
- package/dist/flows/ContractorOnboarding/components/PricingPlan.js.map +0 -1
- package/dist/flows/ContractorOnboarding/components/SaveDraftButton.d.ts +0 -19
- package/dist/flows/ContractorOnboarding/components/SaveDraftButton.js +0 -2
- package/dist/flows/ContractorOnboarding/components/SaveDraftButton.js.map +0 -1
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +0 -30
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +0 -2
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js.map +0 -1
- package/dist/flows/ContractorOnboarding/components/SkipInvoiceScheduleButton.d.ts +0 -24
- package/dist/flows/ContractorOnboarding/components/SkipInvoiceScheduleButton.js +0 -2
- package/dist/flows/ContractorOnboarding/components/SkipInvoiceScheduleButton.js.map +0 -1
- package/dist/flows/ContractorOnboarding/components/StatementOfWorkDisclaimer.d.ts +0 -7
- package/dist/flows/ContractorOnboarding/components/StatementOfWorkDisclaimer.js +0 -2
- package/dist/flows/ContractorOnboarding/components/StatementOfWorkDisclaimer.js.map +0 -1
- package/dist/flows/ContractorOnboarding/constants.d.ts +0 -56
- package/dist/flows/ContractorOnboarding/constants.js +0 -2
- package/dist/flows/ContractorOnboarding/constants.js.map +0 -1
- package/dist/flows/ContractorOnboarding/context.d.ts +0 -171
- package/dist/flows/ContractorOnboarding/context.js +0 -2
- package/dist/flows/ContractorOnboarding/context.js.map +0 -1
- package/dist/flows/ContractorOnboarding/hooks.d.ts +0 -31
- package/dist/flows/ContractorOnboarding/hooks.js +0 -2
- package/dist/flows/ContractorOnboarding/hooks.js.map +0 -1
- package/dist/flows/ContractorOnboarding/index.js.map +0 -1
- package/dist/flows/ContractorOnboarding/invoiceScheduleConstants.d.ts +0 -16
- package/dist/flows/ContractorOnboarding/invoiceScheduleConstants.js +0 -2
- package/dist/flows/ContractorOnboarding/invoiceScheduleConstants.js.map +0 -1
- package/dist/flows/ContractorOnboarding/jsfModify.d.ts +0 -55
- package/dist/flows/ContractorOnboarding/jsfModify.js +0 -2
- package/dist/flows/ContractorOnboarding/jsfModify.js.map +0 -1
- package/dist/flows/ContractorOnboarding/json-schemas/contractOrigin.d.ts +0 -25
- package/dist/flows/ContractorOnboarding/json-schemas/contractOrigin.js +0 -2
- package/dist/flows/ContractorOnboarding/json-schemas/contractOrigin.js.map +0 -1
- package/dist/flows/ContractorOnboarding/json-schemas/createInvoiceSchedule.d.ts +0 -177
- package/dist/flows/ContractorOnboarding/json-schemas/createInvoiceSchedule.js +0 -2
- package/dist/flows/ContractorOnboarding/json-schemas/createInvoiceSchedule.js.map +0 -1
- package/dist/flows/ContractorOnboarding/json-schemas/invoiceSchedule.d.ts +0 -31
- package/dist/flows/ContractorOnboarding/json-schemas/invoiceSchedule.js +0 -2
- package/dist/flows/ContractorOnboarding/json-schemas/invoiceSchedule.js.map +0 -1
- package/dist/flows/ContractorOnboarding/json-schemas/selectContractorSubscriptionStep.d.ts +0 -26
- package/dist/flows/ContractorOnboarding/json-schemas/selectContractorSubscriptionStep.js +0 -2
- package/dist/flows/ContractorOnboarding/json-schemas/selectContractorSubscriptionStep.js.map +0 -1
- package/dist/flows/ContractorOnboarding/json-schemas/signature.d.ts +0 -48
- package/dist/flows/ContractorOnboarding/json-schemas/signature.js +0 -2
- package/dist/flows/ContractorOnboarding/json-schemas/signature.js.map +0 -1
- package/dist/flows/ContractorOnboarding/types.d.ts +0 -31
- package/dist/flows/ContractorOnboarding/types.js +0 -1
- package/dist/flows/ContractorOnboarding/types.js.map +0 -1
- package/dist/flows/ContractorOnboarding/utils.d.ts +0 -111
- package/dist/flows/ContractorOnboarding/utils.js +0 -2
- package/dist/flows/ContractorOnboarding/utils.js.map +0 -1
- package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +0 -70
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +0 -2
- package/dist/flows/CostCalculator/CostCalculatorFlow.js.map +0 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +0 -48
- package/dist/flows/CostCalculator/CostCalculatorForm.js +0 -2
- package/dist/flows/CostCalculator/CostCalculatorForm.js.map +0 -1
- package/dist/flows/CostCalculator/CostCalculatorResetButton.d.ts +0 -6
- package/dist/flows/CostCalculator/CostCalculatorResetButton.js +0 -2
- package/dist/flows/CostCalculator/CostCalculatorResetButton.js.map +0 -1
- package/dist/flows/CostCalculator/CostCalculatorSubmitButton.d.ts +0 -6
- package/dist/flows/CostCalculator/CostCalculatorSubmitButton.js +0 -2
- package/dist/flows/CostCalculator/CostCalculatorSubmitButton.js.map +0 -1
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +0 -51
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +0 -2
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js.map +0 -1
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +0 -25
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.js +0 -2
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.js.map +0 -1
- package/dist/flows/CostCalculator/api.d.ts +0 -91
- package/dist/flows/CostCalculator/api.js +0 -2
- package/dist/flows/CostCalculator/api.js.map +0 -1
- package/dist/flows/CostCalculator/components/SalaryField.d.ts +0 -23
- package/dist/flows/CostCalculator/components/SalaryField.js +0 -2
- package/dist/flows/CostCalculator/components/SalaryField.js.map +0 -1
- package/dist/flows/CostCalculator/constants.d.ts +0 -16
- package/dist/flows/CostCalculator/constants.js +0 -2
- package/dist/flows/CostCalculator/constants.js.map +0 -1
- package/dist/flows/CostCalculator/context.d.ts +0 -57
- package/dist/flows/CostCalculator/context.js +0 -2
- package/dist/flows/CostCalculator/context.js.map +0 -1
- package/dist/flows/CostCalculator/hooks.d.ts +0 -110
- package/dist/flows/CostCalculator/hooks.js +0 -2
- package/dist/flows/CostCalculator/hooks.js.map +0 -1
- package/dist/flows/CostCalculator/index.js.map +0 -1
- package/dist/flows/CostCalculator/jsonSchema.d.ts +0 -134
- package/dist/flows/CostCalculator/jsonSchema.js +0 -2
- package/dist/flows/CostCalculator/jsonSchema.js.map +0 -1
- package/dist/flows/CostCalculator/types.d.ts +0 -109
- package/dist/flows/CostCalculator/types.js +0 -1
- package/dist/flows/CostCalculator/types.js.map +0 -1
- package/dist/flows/CostCalculator/utils.d.ts +0 -26
- package/dist/flows/CostCalculator/utils.js +0 -2
- package/dist/flows/CostCalculator/utils.js.map +0 -1
- package/dist/flows/CreateCompany/CreateCompany.d.ts +0 -16
- package/dist/flows/CreateCompany/CreateCompany.js +0 -2
- package/dist/flows/CreateCompany/CreateCompany.js.map +0 -1
- package/dist/flows/CreateCompany/api.d.ts +0 -73
- package/dist/flows/CreateCompany/api.js +0 -2
- package/dist/flows/CreateCompany/api.js.map +0 -1
- package/dist/flows/CreateCompany/components/AddressDetailsStep.d.ts +0 -12
- package/dist/flows/CreateCompany/components/AddressDetailsStep.js +0 -2
- package/dist/flows/CreateCompany/components/AddressDetailsStep.js.map +0 -1
- package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.d.ts +0 -12
- package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.js +0 -2
- package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.js.map +0 -1
- package/dist/flows/CreateCompany/components/CreateCompanyForm.d.ts +0 -15
- package/dist/flows/CreateCompany/components/CreateCompanyForm.js +0 -2
- package/dist/flows/CreateCompany/components/CreateCompanyForm.js.map +0 -1
- package/dist/flows/CreateCompany/components/CreateCompanySubmit.d.ts +0 -6
- package/dist/flows/CreateCompany/components/CreateCompanySubmit.js +0 -2
- package/dist/flows/CreateCompany/components/CreateCompanySubmit.js.map +0 -1
- package/dist/flows/CreateCompany/context.d.ts +0 -81
- package/dist/flows/CreateCompany/context.js +0 -2
- package/dist/flows/CreateCompany/context.js.map +0 -1
- package/dist/flows/CreateCompany/hooks.d.ts +0 -12
- package/dist/flows/CreateCompany/hooks.js +0 -2
- package/dist/flows/CreateCompany/hooks.js.map +0 -1
- package/dist/flows/CreateCompany/index.js.map +0 -1
- package/dist/flows/CreateCompany/json-schemas/companyBasicInformationStep.d.ts +0 -76
- package/dist/flows/CreateCompany/json-schemas/companyBasicInformationStep.js +0 -2
- package/dist/flows/CreateCompany/json-schemas/companyBasicInformationStep.js.map +0 -1
- package/dist/flows/CreateCompany/types.d.ts +0 -12
- package/dist/flows/CreateCompany/types.js +0 -1
- package/dist/flows/CreateCompany/types.js.map +0 -1
- package/dist/flows/CreateCompany/utils.d.ts +0 -8
- package/dist/flows/CreateCompany/utils.js +0 -2
- package/dist/flows/CreateCompany/utils.js.map +0 -1
- package/dist/flows/InvoiceSchedule/InvoiceScheduleFlow.d.ts +0 -36
- package/dist/flows/InvoiceSchedule/InvoiceScheduleFlow.js +0 -2
- package/dist/flows/InvoiceSchedule/InvoiceScheduleFlow.js.map +0 -1
- package/dist/flows/InvoiceSchedule/InvoiceScheduleForm.d.ts +0 -31
- package/dist/flows/InvoiceSchedule/InvoiceScheduleForm.js +0 -2
- package/dist/flows/InvoiceSchedule/InvoiceScheduleForm.js.map +0 -1
- package/dist/flows/InvoiceSchedule/InvoiceSchedulePreviewButton.d.ts +0 -33
- package/dist/flows/InvoiceSchedule/InvoiceSchedulePreviewButton.js +0 -2
- package/dist/flows/InvoiceSchedule/InvoiceSchedulePreviewButton.js.map +0 -1
- package/dist/flows/InvoiceSchedule/InvoiceScheduleSubmitButton.d.ts +0 -6
- package/dist/flows/InvoiceSchedule/InvoiceScheduleSubmitButton.js +0 -2
- package/dist/flows/InvoiceSchedule/InvoiceScheduleSubmitButton.js.map +0 -1
- package/dist/flows/InvoiceSchedule/context.d.ts +0 -51
- package/dist/flows/InvoiceSchedule/context.js +0 -2
- package/dist/flows/InvoiceSchedule/context.js.map +0 -1
- package/dist/flows/InvoiceSchedule/hooks.d.ts +0 -100
- package/dist/flows/InvoiceSchedule/hooks.js +0 -2
- package/dist/flows/InvoiceSchedule/hooks.js.map +0 -1
- package/dist/flows/InvoiceSchedule/index.js.map +0 -1
- package/dist/flows/InvoiceSchedule/types.d.ts +0 -51
- package/dist/flows/InvoiceSchedule/types.js +0 -1
- package/dist/flows/InvoiceSchedule/types.js.map +0 -1
- package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundFlow.d.ts +0 -18
- package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundFlow.js +0 -2
- package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundFlow.js.map +0 -1
- package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundForm.d.ts +0 -15
- package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundForm.js +0 -2
- package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundForm.js.map +0 -1
- package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundResetButton.d.ts +0 -6
- package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundResetButton.js +0 -2
- package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundResetButton.js.map +0 -1
- package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundSubmitButton.d.ts +0 -6
- package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundSubmitButton.js +0 -2
- package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundSubmitButton.js.map +0 -1
- package/dist/flows/JsonSchemaPlayground/context.d.ts +0 -20
- package/dist/flows/JsonSchemaPlayground/context.js +0 -2
- package/dist/flows/JsonSchemaPlayground/context.js.map +0 -1
- package/dist/flows/JsonSchemaPlayground/hooks.d.ts +0 -11
- package/dist/flows/JsonSchemaPlayground/hooks.js +0 -2
- package/dist/flows/JsonSchemaPlayground/hooks.js.map +0 -1
- package/dist/flows/JsonSchemaPlayground/index.js.map +0 -1
- package/dist/flows/JsonSchemaPlayground/types.d.ts +0 -11
- package/dist/flows/JsonSchemaPlayground/types.js +0 -1
- package/dist/flows/JsonSchemaPlayground/types.js.map +0 -1
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +0 -21
- package/dist/flows/Onboarding/OnboardingFlow.js +0 -2
- package/dist/flows/Onboarding/OnboardingFlow.js.map +0 -1
- package/dist/flows/Onboarding/api.d.ts +0 -17
- package/dist/flows/Onboarding/api.js +0 -2
- package/dist/flows/Onboarding/api.js.map +0 -1
- package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +0 -18
- package/dist/flows/Onboarding/components/AnnualGrossSalary.js +0 -2
- package/dist/flows/Onboarding/components/AnnualGrossSalary.js.map +0 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +0 -17
- package/dist/flows/Onboarding/components/BasicInformationStep.js +0 -2
- package/dist/flows/Onboarding/components/BasicInformationStep.js.map +0 -1
- package/dist/flows/Onboarding/components/BenefitsStep.d.ts +0 -17
- package/dist/flows/Onboarding/components/BenefitsStep.js +0 -2
- package/dist/flows/Onboarding/components/BenefitsStep.js.map +0 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +0 -17
- package/dist/flows/Onboarding/components/ContractDetailsStep.js +0 -2
- package/dist/flows/Onboarding/components/ContractDetailsStep.js.map +0 -1
- package/dist/flows/Onboarding/components/DailySchedule/DailySchedule.d.ts +0 -11
- package/dist/flows/Onboarding/components/DailySchedule/DailySchedule.js +0 -2
- package/dist/flows/Onboarding/components/DailySchedule/DailySchedule.js.map +0 -1
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleContainer.d.ts +0 -16
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleContainer.js +0 -2
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleContainer.js.map +0 -1
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleEditForm.d.ts +0 -15
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleEditForm.js +0 -2
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleEditForm.js.map +0 -1
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleHoursErrorBanner.d.ts +0 -12
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleHoursErrorBanner.js +0 -2
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleHoursErrorBanner.js.map +0 -1
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleSummaryBody.d.ts +0 -13
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleSummaryBody.js +0 -2
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleSummaryBody.js.map +0 -1
- package/dist/flows/Onboarding/components/DailySchedule/EditEmployeeWorkingHoursDialog.d.ts +0 -21
- package/dist/flows/Onboarding/components/DailySchedule/EditEmployeeWorkingHoursDialog.js +0 -2
- package/dist/flows/Onboarding/components/DailySchedule/EditEmployeeWorkingHoursDialog.js.map +0 -1
- package/dist/flows/Onboarding/components/DailySchedule/constants.d.ts +0 -10
- package/dist/flows/Onboarding/components/DailySchedule/constants.js +0 -2
- package/dist/flows/Onboarding/components/DailySchedule/constants.js.map +0 -1
- package/dist/flows/Onboarding/components/DailySchedule/types.d.ts +0 -164
- package/dist/flows/Onboarding/components/DailySchedule/types.js +0 -1
- package/dist/flows/Onboarding/components/DailySchedule/types.js.map +0 -1
- package/dist/flows/Onboarding/components/DailySchedule/useDailyScheduleEditForm.d.ts +0 -54
- package/dist/flows/Onboarding/components/DailySchedule/useDailyScheduleEditForm.js +0 -2
- package/dist/flows/Onboarding/components/DailySchedule/useDailyScheduleEditForm.js.map +0 -1
- package/dist/flows/Onboarding/components/DailySchedule/utils.d.ts +0 -69
- package/dist/flows/Onboarding/components/DailySchedule/utils.js +0 -2
- package/dist/flows/Onboarding/components/DailySchedule/utils.js.map +0 -1
- package/dist/flows/Onboarding/components/EmploymentAgreementInfoContent.d.ts +0 -5
- package/dist/flows/Onboarding/components/EmploymentAgreementInfoContent.js +0 -2
- package/dist/flows/Onboarding/components/EmploymentAgreementInfoContent.js.map +0 -1
- package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.d.ts +0 -17
- package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.js +0 -2
- package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.js.map +0 -1
- package/dist/flows/Onboarding/components/EquityPriceDetails.d.ts +0 -17
- package/dist/flows/Onboarding/components/EquityPriceDetails.js +0 -2
- package/dist/flows/Onboarding/components/EquityPriceDetails.js.map +0 -1
- package/dist/flows/Onboarding/components/OnboardingBack.d.ts +0 -7
- package/dist/flows/Onboarding/components/OnboardingBack.js +0 -2
- package/dist/flows/Onboarding/components/OnboardingBack.js.map +0 -1
- package/dist/flows/Onboarding/components/OnboardingForm.d.ts +0 -27
- package/dist/flows/Onboarding/components/OnboardingForm.js +0 -2
- package/dist/flows/Onboarding/components/OnboardingForm.js.map +0 -1
- package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +0 -26
- package/dist/flows/Onboarding/components/OnboardingInvite.js +0 -2
- package/dist/flows/Onboarding/components/OnboardingInvite.js.map +0 -1
- package/dist/flows/Onboarding/components/OnboardingSubmit.d.ts +0 -6
- package/dist/flows/Onboarding/components/OnboardingSubmit.js +0 -2
- package/dist/flows/Onboarding/components/OnboardingSubmit.js.map +0 -1
- package/dist/flows/Onboarding/components/PreOnboardingRequirements.d.ts +0 -17
- package/dist/flows/Onboarding/components/PreOnboardingRequirements.js +0 -2
- package/dist/flows/Onboarding/components/PreOnboardingRequirements.js.map +0 -1
- package/dist/flows/Onboarding/components/PreviewEmploymentAgreementStep.d.ts +0 -5
- package/dist/flows/Onboarding/components/PreviewEmploymentAgreementStep.js +0 -2
- package/dist/flows/Onboarding/components/PreviewEmploymentAgreementStep.js.map +0 -1
- package/dist/flows/Onboarding/components/ReviewStep.d.ts +0 -17
- package/dist/flows/Onboarding/components/ReviewStep.js +0 -2
- package/dist/flows/Onboarding/components/ReviewStep.js.map +0 -1
- package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +0 -19
- package/dist/flows/Onboarding/components/SaveDraftButton.js +0 -2
- package/dist/flows/Onboarding/components/SaveDraftButton.js.map +0 -1
- package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +0 -17
- package/dist/flows/Onboarding/components/SelectCountryStep.js +0 -2
- package/dist/flows/Onboarding/components/SelectCountryStep.js.map +0 -1
- package/dist/flows/Onboarding/context.d.ts +0 -156
- package/dist/flows/Onboarding/context.js +0 -2
- package/dist/flows/Onboarding/context.js.map +0 -1
- package/dist/flows/Onboarding/hooks.d.ts +0 -17
- package/dist/flows/Onboarding/hooks.js +0 -2
- package/dist/flows/Onboarding/hooks.js.map +0 -1
- package/dist/flows/Onboarding/index.js.map +0 -1
- package/dist/flows/Onboarding/types.d.ts +0 -17
- package/dist/flows/Onboarding/types.js +0 -1
- package/dist/flows/Onboarding/types.js.map +0 -1
- package/dist/flows/Onboarding/utils.d.ts +0 -17
- package/dist/flows/Onboarding/utils.js +0 -2
- package/dist/flows/Onboarding/utils.js.map +0 -1
- package/dist/flows/PayrollAdminOnboarding/PayrollAdminOnboardingFlow.d.ts +0 -17
- package/dist/flows/PayrollAdminOnboarding/PayrollAdminOnboardingFlow.js +0 -2
- package/dist/flows/PayrollAdminOnboarding/PayrollAdminOnboardingFlow.js.map +0 -1
- package/dist/flows/PayrollAdminOnboarding/api.d.ts +0 -82
- package/dist/flows/PayrollAdminOnboarding/api.js +0 -2
- package/dist/flows/PayrollAdminOnboarding/api.js.map +0 -1
- package/dist/flows/PayrollAdminOnboarding/components/AdministrativeDetailsStep.d.ts +0 -12
- package/dist/flows/PayrollAdminOnboarding/components/AdministrativeDetailsStep.js +0 -2
- package/dist/flows/PayrollAdminOnboarding/components/AdministrativeDetailsStep.js.map +0 -1
- package/dist/flows/PayrollAdminOnboarding/components/BackButton.d.ts +0 -6
- package/dist/flows/PayrollAdminOnboarding/components/BackButton.js +0 -2
- package/dist/flows/PayrollAdminOnboarding/components/BackButton.js.map +0 -1
- package/dist/flows/PayrollAdminOnboarding/components/ContractDetailsStep.d.ts +0 -12
- package/dist/flows/PayrollAdminOnboarding/components/ContractDetailsStep.js +0 -2
- package/dist/flows/PayrollAdminOnboarding/components/ContractDetailsStep.js.map +0 -1
- package/dist/flows/PayrollAdminOnboarding/components/InvitationStep.d.ts +0 -16
- package/dist/flows/PayrollAdminOnboarding/components/InvitationStep.js +0 -2
- package/dist/flows/PayrollAdminOnboarding/components/InvitationStep.js.map +0 -1
- package/dist/flows/PayrollAdminOnboarding/components/PayrollAdminForm.d.ts +0 -13
- package/dist/flows/PayrollAdminOnboarding/components/PayrollAdminForm.js +0 -2
- package/dist/flows/PayrollAdminOnboarding/components/PayrollAdminForm.js.map +0 -1
- package/dist/flows/PayrollAdminOnboarding/components/SelectCountryStep.d.ts +0 -12
- package/dist/flows/PayrollAdminOnboarding/components/SelectCountryStep.js +0 -2
- package/dist/flows/PayrollAdminOnboarding/components/SelectCountryStep.js.map +0 -1
- package/dist/flows/PayrollAdminOnboarding/components/SubmitButton.d.ts +0 -6
- package/dist/flows/PayrollAdminOnboarding/components/SubmitButton.js +0 -2
- package/dist/flows/PayrollAdminOnboarding/components/SubmitButton.js.map +0 -1
- package/dist/flows/PayrollAdminOnboarding/components/useStepSubmitHandler.d.ts +0 -12
- package/dist/flows/PayrollAdminOnboarding/components/useStepSubmitHandler.js +0 -2
- package/dist/flows/PayrollAdminOnboarding/components/useStepSubmitHandler.js.map +0 -1
- package/dist/flows/PayrollAdminOnboarding/context.d.ts +0 -24
- package/dist/flows/PayrollAdminOnboarding/context.js +0 -2
- package/dist/flows/PayrollAdminOnboarding/context.js.map +0 -1
- package/dist/flows/PayrollAdminOnboarding/hooks.d.ts +0 -13
- package/dist/flows/PayrollAdminOnboarding/hooks.js +0 -2
- package/dist/flows/PayrollAdminOnboarding/hooks.js.map +0 -1
- package/dist/flows/PayrollAdminOnboarding/index.js.map +0 -1
- package/dist/flows/PayrollAdminOnboarding/json-schemas/selectCountryStep.d.ts +0 -25
- package/dist/flows/PayrollAdminOnboarding/json-schemas/selectCountryStep.js +0 -2
- package/dist/flows/PayrollAdminOnboarding/json-schemas/selectCountryStep.js.map +0 -1
- package/dist/flows/PayrollAdminOnboarding/types.d.ts +0 -13
- package/dist/flows/PayrollAdminOnboarding/types.js +0 -1
- package/dist/flows/PayrollAdminOnboarding/types.js.map +0 -1
- package/dist/flows/PayrollEmployeeOnboarding/PayrollEmployeeOnboardingFlow.d.ts +0 -17
- package/dist/flows/PayrollEmployeeOnboarding/PayrollEmployeeOnboardingFlow.js +0 -2
- package/dist/flows/PayrollEmployeeOnboarding/PayrollEmployeeOnboardingFlow.js.map +0 -1
- package/dist/flows/PayrollEmployeeOnboarding/api.d.ts +0 -69
- package/dist/flows/PayrollEmployeeOnboarding/api.js +0 -2
- package/dist/flows/PayrollEmployeeOnboarding/api.js.map +0 -1
- package/dist/flows/PayrollEmployeeOnboarding/components/BackButton.d.ts +0 -6
- package/dist/flows/PayrollEmployeeOnboarding/components/BackButton.js +0 -2
- package/dist/flows/PayrollEmployeeOnboarding/components/BackButton.js.map +0 -1
- package/dist/flows/PayrollEmployeeOnboarding/components/BankAccountStep.d.ts +0 -17
- package/dist/flows/PayrollEmployeeOnboarding/components/BankAccountStep.js +0 -2
- package/dist/flows/PayrollEmployeeOnboarding/components/BankAccountStep.js.map +0 -1
- package/dist/flows/PayrollEmployeeOnboarding/components/FederalTaxesStep.d.ts +0 -18
- package/dist/flows/PayrollEmployeeOnboarding/components/FederalTaxesStep.js +0 -2
- package/dist/flows/PayrollEmployeeOnboarding/components/FederalTaxesStep.js.map +0 -1
- package/dist/flows/PayrollEmployeeOnboarding/components/HomeAddressStep.d.ts +0 -12
- package/dist/flows/PayrollEmployeeOnboarding/components/HomeAddressStep.js +0 -2
- package/dist/flows/PayrollEmployeeOnboarding/components/HomeAddressStep.js.map +0 -1
- package/dist/flows/PayrollEmployeeOnboarding/components/PayrollEmployeeForm.d.ts +0 -13
- package/dist/flows/PayrollEmployeeOnboarding/components/PayrollEmployeeForm.js +0 -2
- package/dist/flows/PayrollEmployeeOnboarding/components/PayrollEmployeeForm.js.map +0 -1
- package/dist/flows/PayrollEmployeeOnboarding/components/PersonalDetailsStep.d.ts +0 -12
- package/dist/flows/PayrollEmployeeOnboarding/components/PersonalDetailsStep.js +0 -2
- package/dist/flows/PayrollEmployeeOnboarding/components/PersonalDetailsStep.js.map +0 -1
- package/dist/flows/PayrollEmployeeOnboarding/components/StateTaxesStep.d.ts +0 -18
- package/dist/flows/PayrollEmployeeOnboarding/components/StateTaxesStep.js +0 -2
- package/dist/flows/PayrollEmployeeOnboarding/components/StateTaxesStep.js.map +0 -1
- package/dist/flows/PayrollEmployeeOnboarding/components/SubmitButton.d.ts +0 -6
- package/dist/flows/PayrollEmployeeOnboarding/components/SubmitButton.js +0 -2
- package/dist/flows/PayrollEmployeeOnboarding/components/SubmitButton.js.map +0 -1
- package/dist/flows/PayrollEmployeeOnboarding/components/useEmployeeStepSubmitHandler.d.ts +0 -12
- package/dist/flows/PayrollEmployeeOnboarding/components/useEmployeeStepSubmitHandler.js +0 -2
- package/dist/flows/PayrollEmployeeOnboarding/components/useEmployeeStepSubmitHandler.js.map +0 -1
- package/dist/flows/PayrollEmployeeOnboarding/context.d.ts +0 -24
- package/dist/flows/PayrollEmployeeOnboarding/context.js +0 -2
- package/dist/flows/PayrollEmployeeOnboarding/context.js.map +0 -1
- package/dist/flows/PayrollEmployeeOnboarding/hooks.d.ts +0 -13
- package/dist/flows/PayrollEmployeeOnboarding/hooks.js +0 -2
- package/dist/flows/PayrollEmployeeOnboarding/hooks.js.map +0 -1
- package/dist/flows/PayrollEmployeeOnboarding/index.js.map +0 -1
- package/dist/flows/PayrollEmployeeOnboarding/taxErrors.d.ts +0 -12
- package/dist/flows/PayrollEmployeeOnboarding/taxErrors.js +0 -2
- package/dist/flows/PayrollEmployeeOnboarding/taxErrors.js.map +0 -1
- package/dist/flows/PayrollEmployeeOnboarding/types.d.ts +0 -13
- package/dist/flows/PayrollEmployeeOnboarding/types.js +0 -1
- package/dist/flows/PayrollEmployeeOnboarding/types.js.map +0 -1
- package/dist/flows/Termination/AdditionalDetailsForm.d.ts +0 -14
- package/dist/flows/Termination/AdditionalDetailsForm.js +0 -2
- package/dist/flows/Termination/AdditionalDetailsForm.js.map +0 -1
- package/dist/flows/Termination/EmployeeComunicationForm.d.ts +0 -14
- package/dist/flows/Termination/EmployeeComunicationForm.js +0 -2
- package/dist/flows/Termination/EmployeeComunicationForm.js.map +0 -1
- package/dist/flows/Termination/PaidTimeOffForm.d.ts +0 -14
- package/dist/flows/Termination/PaidTimeOffForm.js +0 -2
- package/dist/flows/Termination/PaidTimeOffForm.js.map +0 -1
- package/dist/flows/Termination/TerminationBack.d.ts +0 -6
- package/dist/flows/Termination/TerminationBack.js +0 -2
- package/dist/flows/Termination/TerminationBack.js.map +0 -1
- package/dist/flows/Termination/TerminationDetailsForm.d.ts +0 -14
- package/dist/flows/Termination/TerminationDetailsForm.js +0 -2
- package/dist/flows/Termination/TerminationDetailsForm.js.map +0 -1
- package/dist/flows/Termination/TerminationFlow.d.ts +0 -18
- package/dist/flows/Termination/TerminationFlow.js +0 -2
- package/dist/flows/Termination/TerminationFlow.js.map +0 -1
- package/dist/flows/Termination/TerminationForm.d.ts +0 -23
- package/dist/flows/Termination/TerminationForm.js +0 -2
- package/dist/flows/Termination/TerminationForm.js.map +0 -1
- package/dist/flows/Termination/TerminationSubmit.d.ts +0 -6
- package/dist/flows/Termination/TerminationSubmit.js +0 -2
- package/dist/flows/Termination/TerminationSubmit.js.map +0 -1
- package/dist/flows/Termination/api.d.ts +0 -106
- package/dist/flows/Termination/api.js +0 -2
- package/dist/flows/Termination/api.js.map +0 -1
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInfomationContainer.d.ts +0 -10
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInfomationContainer.js +0 -2
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInfomationContainer.js.map +0 -1
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformation.d.ts +0 -11
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformation.js +0 -2
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformation.js.map +0 -1
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformationFees.d.ts +0 -18
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformationFees.js +0 -2
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformationFees.js.map +0 -1
- package/dist/flows/Termination/components/AcknowledgeInformation/constants.d.ts +0 -12
- package/dist/flows/Termination/components/AcknowledgeInformation/constants.js +0 -2
- package/dist/flows/Termination/components/AcknowledgeInformation/constants.js.map +0 -1
- package/dist/flows/Termination/components/AcknowledgeInformation/types.d.ts +0 -11
- package/dist/flows/Termination/components/AcknowledgeInformation/types.js +0 -1
- package/dist/flows/Termination/components/AcknowledgeInformation/types.js.map +0 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +0 -36
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.js +0 -2
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.js.map +0 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +0 -36
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +0 -2
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js.map +0 -1
- package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +0 -24
- package/dist/flows/Termination/components/PaidTimeOff/types.js +0 -1
- package/dist/flows/Termination/components/PaidTimeOff/types.js.map +0 -1
- package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.d.ts +0 -5
- package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +0 -2
- package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js.map +0 -1
- package/dist/flows/Termination/components/TerminationReasonsDetailContent/TerminationReasonsDetailContent.d.ts +0 -5
- package/dist/flows/Termination/components/TerminationReasonsDetailContent/TerminationReasonsDetailContent.js +0 -2
- package/dist/flows/Termination/components/TerminationReasonsDetailContent/TerminationReasonsDetailContent.js.map +0 -1
- package/dist/flows/Termination/context.d.ts +0 -82
- package/dist/flows/Termination/context.js +0 -2
- package/dist/flows/Termination/context.js.map +0 -1
- package/dist/flows/Termination/hooks.d.ts +0 -14
- package/dist/flows/Termination/hooks.js +0 -2
- package/dist/flows/Termination/hooks.js.map +0 -1
- package/dist/flows/Termination/index.js.map +0 -1
- package/dist/flows/Termination/json-schemas/additionalInformation.d.ts +0 -45
- package/dist/flows/Termination/json-schemas/additionalInformation.js +0 -2
- package/dist/flows/Termination/json-schemas/additionalInformation.js.map +0 -1
- package/dist/flows/Termination/json-schemas/defaultSchema.d.ts +0 -18
- package/dist/flows/Termination/json-schemas/defaultSchema.js +0 -2
- package/dist/flows/Termination/json-schemas/defaultSchema.js.map +0 -1
- package/dist/flows/Termination/json-schemas/employeeComunication.d.ts +0 -137
- package/dist/flows/Termination/json-schemas/employeeComunication.js +0 -2
- package/dist/flows/Termination/json-schemas/employeeComunication.js.map +0 -1
- package/dist/flows/Termination/json-schemas/jsonSchema.d.ts +0 -372
- package/dist/flows/Termination/json-schemas/jsonSchema.js +0 -2
- package/dist/flows/Termination/json-schemas/jsonSchema.js.map +0 -1
- package/dist/flows/Termination/json-schemas/paidTimeOff.d.ts +0 -101
- package/dist/flows/Termination/json-schemas/paidTimeOff.js +0 -2
- package/dist/flows/Termination/json-schemas/paidTimeOff.js.map +0 -1
- package/dist/flows/Termination/json-schemas/schema.d.ts +0 -18
- package/dist/flows/Termination/json-schemas/schema.js +0 -2
- package/dist/flows/Termination/json-schemas/schema.js.map +0 -1
- package/dist/flows/Termination/json-schemas/terminationDetails.d.ts +0 -146
- package/dist/flows/Termination/json-schemas/terminationDetails.js +0 -2
- package/dist/flows/Termination/json-schemas/terminationDetails.js.map +0 -1
- package/dist/flows/Termination/types.d.ts +0 -14
- package/dist/flows/Termination/types.js +0 -1
- package/dist/flows/Termination/types.js.map +0 -1
- package/dist/flows/Termination/utils.d.ts +0 -14
- package/dist/flows/Termination/utils.js +0 -2
- package/dist/flows/Termination/utils.js.map +0 -1
- package/dist/flows/types.d.ts +0 -109
- package/dist/flows/types.js +0 -1
- package/dist/flows/types.js.map +0 -1
- package/dist/flows/useStepState.d.ts +0 -63
- package/dist/flows/useStepState.js +0 -2
- package/dist/flows/useStepState.js.map +0 -1
- package/dist/flows/utils.d.ts +0 -28
- package/dist/flows/utils.js +0 -2
- package/dist/flows/utils.js.map +0 -1
- package/dist/index.css.map +0 -1
- package/dist/internals.js.map +0 -1
- package/dist/mutations-CP-6Q1qD.d.ts +0 -24
- package/dist/remoteFlows-XC0Ss0fy.d.ts +0 -554
- package/dist/styles.css.map +0 -1
- package/dist/styles.js.map +0 -1
- package/dist/types-6A_DAOTw.d.ts +0 -91
- package/dist/types-BiZEYxvl.d.ts +0 -224
- package/dist/types-BnNeE0Fd.d.ts +0 -946
- package/dist/types-CASxD27i.d.ts +0 -120
- package/dist/types-Cgl9btOl.d.ts +0 -247
- package/dist/types-DUb6Xtze.d.ts +0 -128
- package/dist/types-DoJBHy3H.d.ts +0 -498
- package/dist/types-UQad9Aui.d.ts +0 -95
- package/dist/types-iOFkkiK3.d.ts +0 -93
- package/dist/types.gen-ClcXnZQX.d.ts +0 -3676
- package/dist/utils-B8OKS73W.d.ts +0 -24
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContractorOnboarding-QSgRChZR.js","names":["useJSONSchemaForm"],"sources":["../src/flows/ContractorOnboarding/context.ts","../src/flows/ContractorOnboarding/components/OnboardingBack.tsx","../src/flows/ContractorOnboarding/components/ContractorOnboardingForm.tsx","../src/flows/ContractorOnboarding/components/SelectCountryStep.tsx","../src/flows/ContractorOnboarding/json-schemas/signature.ts","../src/flows/ContractorOnboarding/json-schemas/contractOrigin.ts","../src/flows/ContractorOnboarding/json-schemas/invoiceSchedule.ts","../src/flows/ContractorOnboarding/json-schemas/selectContractorSubscriptionStep.ts","../src/flows/ContractorOnboarding/constants.ts","../src/common/api/files.ts","../src/flows/ContractorOnboarding/utils.ts","../src/common/api/identity.ts","../src/common/api/companies.ts","../src/flows/ContractorOnboarding/api.ts","../src/flows/ContractorOnboarding/components/ContractPreviewHeader.tsx","../src/flows/ContractorOnboarding/components/ContractPreviewStatement.tsx","../src/flows/ContractorOnboarding/jsfModify.tsx","../src/common/api/legal-entities.ts","../src/flows/ContractorOnboarding/hooks.tsx","../src/flows/ContractorOnboarding/components/BasicInformationStep.tsx","../src/flows/ContractorOnboarding/components/OnboardingSubmit.tsx","../src/flows/ContractorOnboarding/components/PricingPlan.tsx","../src/flows/ContractorOnboarding/components/StatementOfWorkDisclaimer.tsx","../src/flows/ContractorOnboarding/components/ContractDetailsStep.tsx","../src/flows/ContractorOnboarding/components/ContractPreviewStep.tsx","../src/flows/ContractorOnboarding/components/OnboardingInvite.tsx","../src/flows/ContractorOnboarding/components/ContractReviewButton.tsx","../src/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.tsx","../src/flows/ContractorOnboarding/components/SaveDraftButton.tsx","../src/flows/ContractorOnboarding/components/SkipInvoiceScheduleButton.tsx","../src/flows/ContractorOnboarding/components/PreviewInvoiceButton.tsx","../src/flows/ContractorOnboarding/components/ContractOriginStep.tsx","../src/flows/ContractorOnboarding/components/InvoiceScheduleStep.tsx","../src/flows/ContractorOnboarding/components/CreateInvoiceScheduleStep.tsx","../src/flows/ContractorOnboarding/ContractorOnboarding.tsx"],"sourcesContent":["import type { useContractorOnboarding } from '@/src/flows/ContractorOnboarding/hooks';\nimport { createContext, useContext, RefObject } from 'react';\nimport { UseFormSetValue } from 'react-hook-form';\nexport const ContractorOnboardingContext = createContext<{\n formId: string | undefined;\n contractorOnboardingBag: ReturnType<typeof useContractorOnboarding> | null;\n formRef?: {\n setValue: RefObject<UseFormSetValue<Record<string, unknown>> | undefined>;\n };\n}>({\n formId: undefined,\n contractorOnboardingBag: null,\n formRef: undefined,\n});\n\nexport const useContractorOnboardingContext = () => {\n const context = useContext(ContractorOnboardingContext);\n if (!context.formId || !context.contractorOnboardingBag) {\n throw new Error(\n 'useContractorOnboardingContext must be used within a ContractorOnboardingContextProvider',\n );\n }\n\n return {\n formId: context.formId,\n contractorOnboardingBag: context.contractorOnboardingBag,\n formRef: context.formRef,\n } as const;\n};\n","import { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { useFormFields } from '@/src/context';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\n\ntype OnboardingBackProps = ButtonHTMLAttributes<HTMLButtonElement> &\n Record<string, unknown>;\n\nexport function OnboardingBack({\n children,\n onClick,\n ...props\n}: PropsWithChildren<OnboardingBackProps>) {\n const {\n contractorOnboardingBag: { back, isEmploymentReadOnly },\n } = useContractorOnboardingContext();\n\n const { components } = useFormFields();\n\n const onBackHandler = (evt: React.MouseEvent<HTMLButtonElement>) => {\n if (!isEmploymentReadOnly) {\n back();\n }\n onClick?.(evt);\n };\n\n const CustomButton = components?.button;\n if (!CustomButton) {\n throw new Error(`Button component not found`);\n }\n\n return (\n <CustomButton {...props} onClick={onBackHandler}>\n {children}\n </CustomButton>\n );\n}\n","import { useEffect } from 'react';\nimport { $TSFixMe, JSFFields } from '@/src/types/remoteFlows';\nimport { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { Form } from '@/src/components/ui/form';\nimport { BasicInformationFormPayload } from '@/src/flows/Onboarding/types';\nimport { Components } from '@/src/types/remoteFlows';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport {\n EligibilityQuestionnaireFormPayload,\n PricingPlanFormPayload,\n ContractorOnboardingContractDetailsFormPayload,\n} from '@/src/flows/ContractorOnboarding/types';\nimport { normalizeFieldErrors } from '@/src/lib/mutations';\nimport { useJSONSchemaForm } from '@/src/components/form/useJSONSchemaForm';\nimport { UseFormReturn } from 'react-hook-form';\n\ntype ContractorOnboardingFormProps = {\n onSubmit: (\n payload:\n | BasicInformationFormPayload\n | PricingPlanFormPayload\n | ContractorOnboardingContractDetailsFormPayload\n | EligibilityQuestionnaireFormPayload,\n form: UseFormReturn<$TSFixMe>,\n ) => Promise<void>;\n components?: Components;\n fields?: JSFFields;\n defaultValues: Record<string, unknown>;\n};\n\nexport function ContractorOnboardingForm({\n defaultValues,\n onSubmit,\n components,\n}: ContractorOnboardingFormProps) {\n const { formId, contractorOnboardingBag, formRef } =\n useContractorOnboardingContext();\n\n const form = useJSONSchemaForm({\n handleValidation: contractorOnboardingBag.handleValidation,\n defaultValues,\n checkFieldUpdates: contractorOnboardingBag.checkFieldUpdates,\n });\n\n // Register the form's setValue method with the context so other components can access it\n useEffect(() => {\n if (formRef?.setValue) {\n formRef.setValue.current = form.setValue;\n }\n }, [form.setValue, formRef]);\n\n useEffect(() => {\n // When the employmentId is set,\n // we need to run the checkFieldUpdates to update fieldValues in useStepState\n if (contractorOnboardingBag.employmentId) {\n contractorOnboardingBag?.checkFieldUpdates(form.getValues());\n }\n // oxlint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleSubmit = async (\n values: Record<string, unknown>,\n event?: React.BaseSyntheticEvent,\n ) => {\n const nativeEvent = event?.nativeEvent as $TSFixMe;\n\n if (nativeEvent?.isDraftSubmission) {\n const { onSuccess, onError } = nativeEvent.draftCallbacks;\n\n try {\n await contractorOnboardingBag.onSubmit(values);\n onSuccess?.();\n } catch (error: $TSFixMe) {\n const currentStepName =\n contractorOnboardingBag.stepState.currentStep.name;\n const currentStepFields =\n contractorOnboardingBag.meta?.fields?.[\n currentStepName as keyof typeof contractorOnboardingBag.meta.fields\n ];\n\n const normalizedFieldErrors = normalizeFieldErrors(\n error?.fieldErrors || [],\n currentStepFields,\n );\n onError?.({\n error: error?.error || (error as Error),\n rawError: error?.rawError || (error as Record<string, unknown>),\n fieldErrors: normalizedFieldErrors,\n });\n }\n } else {\n await onSubmit(values as $TSFixMe, form);\n }\n };\n\n return (\n <Form\n {...form}\n key={`form-${contractorOnboardingBag.stepState.currentStep.name}`}\n >\n <form\n id={formId}\n onSubmit={form.handleSubmit(handleSubmit)}\n className='space-y-4 RemoteFlows__OnboardingForm'\n >\n <JSONSchemaFormFields\n components={components}\n fields={contractorOnboardingBag.fields}\n fieldsets={contractorOnboardingBag.meta.fieldsets}\n fieldValues={contractorOnboardingBag.fieldValues}\n />\n </form>\n </Form>\n );\n}\n","// TODO: Correct types later\nimport {\n SelectCountryFormPayload,\n SelectCountrySuccess,\n} from '@/src/flows/Onboarding/types';\nimport { NormalizedFieldError } from '@/src/lib/mutations';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { ContractorOnboardingForm } from '@/src/flows/ContractorOnboarding/components/ContractorOnboardingForm';\nimport { handleStepError } from '@/src/lib/utils';\nimport { UseFormReturn } from 'react-hook-form';\n\ntype SelectCountryStepProps = {\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (payload: SelectCountryFormPayload) => void | Promise<void>;\n /*\n * The function is called when the form submission is successful.\n */\n onSuccess?: (data: SelectCountrySuccess) => void | Promise<void>;\n /*\n * The function is called when an error occurs during form submission.\n */\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n }) => void;\n};\n\nexport function SelectCountryStep({\n onSubmit,\n onSuccess,\n onError,\n}: SelectCountryStepProps) {\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n const handleSubmit = async (\n payload: $TSFixMe,\n form: UseFormReturn<$TSFixMe>,\n ) => {\n try {\n await onSubmit?.({ countryCode: payload.country });\n const response = await contractorOnboardingBag.onSubmit(payload);\n if (response?.data) {\n await onSuccess?.(response?.data as SelectCountrySuccess);\n contractorOnboardingBag?.next();\n return;\n }\n } catch (error: unknown) {\n const structuredError = handleStepError(\n error,\n contractorOnboardingBag.meta?.fields?.select_country,\n form,\n );\n onError?.(structuredError);\n }\n };\n\n const initialValues =\n contractorOnboardingBag.stepState.values?.select_country ||\n contractorOnboardingBag.initialValues.select_country;\n\n return (\n <ContractorOnboardingForm\n defaultValues={initialValues}\n onSubmit={handleSubmit}\n />\n );\n}\n","export const signatureSchema = {\n type: 'object',\n properties: {\n contract_preview_header: {\n type: 'null',\n title: 'Sign contractor services agreement',\n description:\n \"Before we can move forward, we'll need you to sign the contractor Service Agreement.\",\n 'x-jsf-presentation': {\n inputType: 'hidden',\n meta: {\n ignoreValue: true,\n },\n },\n },\n contract_preview_statement: {\n type: 'null',\n title: 'Review document here',\n description:\n 'Preview or download the agreement before signing. Once signed, you’ll be able to view the fully signed document under the contractor profile.',\n 'x-jsf-presentation': {\n inputType: 'hidden',\n meta: {\n ignoreValue: true,\n },\n },\n },\n review_completed: {\n type: 'boolean',\n 'x-jsf-presentation': {\n inputType: 'hidden',\n },\n default: false,\n },\n signature: {\n type: 'string',\n 'x-jsf-presentation': {\n inputType: 'text',\n },\n title: 'Enter full name',\n description:\n 'By signing, you agree to this legally binding document and acknowledge the information within is accurate to the best of your knowledge. After you sign, this document will be sent to the recipient to collect their signature.',\n },\n },\n required: ['signature'],\n 'x-rmt-meta': {\n jsfVersion: '1',\n },\n};\n","export const contractOriginSchema = {\n type: 'object',\n properties: {\n contract_origin: {\n description: '',\n oneOf: [\n {\n const: 'provided_by_remote',\n description:\n 'Create a new terms and conditions and statement of work. This should only be used if you do not have an agreement in place with a contractor or want to renegotiate an agreement.',\n title: 'Contractor services agreement',\n },\n {\n const: 'provided_by_customer',\n description: 'Use your own agreement outside Remote.',\n title: 'Without an agreement',\n },\n ],\n title: 'Contract options',\n type: 'string',\n 'x-jsf-presentation': {\n direction: 'column',\n inputType: 'radio',\n },\n },\n },\n required: ['contract_origin'],\n 'x-rmt-meta': {\n jsfVersion: '1',\n },\n};\n","export const invoiceScheduleSchema = {\n type: 'object',\n properties: {\n invoice_schedule_preference: {\n description:\n 'Set up a schedule to automatically create invoices on behalf of this contractor.',\n oneOf: [\n {\n const: 'schedule',\n description:\n 'Set up a schedule to create invoices for this contractor now.',\n title: 'Create invoice schedule now',\n },\n {\n const: 'manual',\n description:\n 'You or your contractor can always set up an invoice schedule later.',\n title: 'Skip for now',\n },\n ],\n title: 'Invoice schedule',\n type: 'string',\n 'x-jsf-presentation': {\n direction: 'column',\n inputType: 'radio',\n meta: {\n helpCenter: {\n id: 13291039232141,\n callToAction: 'Learn about invoice schedules',\n },\n },\n },\n },\n },\n required: ['invoice_schedule_preference'],\n 'x-rmt-meta': {\n jsfVersion: '1',\n },\n};\n","export const selectContractorSubscriptionStepSchema = {\n data: {\n version: 7,\n schema: {\n additionalProperties: false,\n properties: {\n subscription: {\n title: 'Payment terms',\n type: 'string',\n oneOf: [],\n 'x-jsf-presentation': {\n inputType: 'radio',\n },\n },\n },\n required: ['subscription'],\n type: 'object',\n 'x-jsf-order': ['subscription'],\n 'x-rmt-meta': {\n jsfVersion: '1',\n },\n },\n },\n};\n","export const contractorStandardProductIdentifier =\n 'urn:remotecom:resource:product:contractor:standard:monthly';\nexport const contractorPlusProductIdentifier =\n 'urn:remotecom:resource:product:contractor:plus:monthly';\nexport const corProductIdentifier =\n 'urn:remotecom:resource:product:contractor:aor:monthly';\nexport const eorProductIdentifier =\n 'urn:remotecom:resource:product:eor:monthly';\n\nexport type ProductType = 'cm' | 'cm+' | 'cor' | 'eor';\n\nexport const PRODUCT_IDENTIFIER_MAP: Record<ProductType, string> = {\n cm: contractorStandardProductIdentifier,\n 'cm+': contractorPlusProductIdentifier,\n cor: corProductIdentifier,\n eor: eorProductIdentifier,\n};\n\nexport const IR35_FILE_SUBTYPE = 'ir_35';\n\nexport const REMOTE_AI_ERROR_SOURCE = 'REMOTE_AI';\n\nexport const REMOTE_AI_SERVICES_AND_DELIVERABLES_ERROR_MESSAGE =\n \"You cannot control how a contractor completes the Services and Deliverables. This means, for example, that you can't specify their working hours or use of subcontractors. Please make sure this field includes only project names, descriptions, and deliverables. We do not allow hyperlinks.\";\n\nexport const REMOTE_AI_SERVICES_AND_DELIVERABLES_COR_ERROR_MESSAGE =\n 'The content You have entered may not be consistent with the Contractor of Record terms. You are responsible before proceeding for ensuring that the language entered herein accurately reflects those terms and your relationship with Subcontractors.';\n\nconst standardOnboardingWorkflow = [\n {\n title: 'You add a new contractor and their details in Remote.',\n id: 'add-contractor-details',\n },\n {\n title: 'Contractor accepts invite to join Remote.',\n id: 'contractor-accepts-invite',\n },\n {\n title: 'Ask your contractor to sign their agreement with your company.',\n id: 'ask-contractor-to-sign-agreement',\n },\n {\n title: 'Once the agreement is signed, the contractor can begin work.',\n id: 'agreement-signed-begin-work',\n },\n {\n title: 'The contractor will submit invoices on a date specified by you.',\n id: 'contractor-submits-invoices',\n },\n {\n title: 'You will pay the contractor according to the agreed-upon terms.',\n id: 'pay-contractor',\n },\n];\n\nexport const corOnboardingWorkflow = [\n {\n title:\n 'You add a new contractor and their details in Remote, and reconfirm our Terms of Service.',\n description:\n \"Review all details carefully, as we'll use this information to draft the contract.\",\n id: 'add-contractor-details-and-reconfirm-terms',\n },\n {\n title: 'You pay the reserve amount required to add the contractor.',\n id: 'pay-reserve-amount',\n },\n {\n title: 'The contractor is invited to the platform.',\n id: 'contractor-invited-to-platform',\n },\n {\n title: 'The contractor completes onboarding on Remote.',\n id: 'contractor-completes-onboarding',\n },\n {\n title: 'The contractor signs the services agreement with Remote.',\n id: 'contractor-signs-services-agreement',\n },\n {\n title: 'Contractor begins working.',\n id: 'contractor-begins-working',\n },\n {\n title: 'Contractor submits an invoice to Remote.',\n id: 'contractor-submits-invoice',\n },\n {\n title: 'You review and approve the invoice.',\n id: 'review-and-approve-invoice',\n },\n {\n title: 'A COR contractor payment invoice is generated, which you pay.',\n id: 'cor-contractor-payment-invoice-generated',\n },\n {\n title: 'Remote receives payment and pays contractor.',\n id: 'remote-receives-payment-and-pays-contractor',\n },\n {\n title: 'Contractor receives payment.',\n id: 'contractor-receives-payment',\n },\n];\n\n/**\n * Onboarding workflows for each pricing plan\n */\nexport const onboardingWorkflows: Record<\n string,\n { title: string; id: string; description?: string }[]\n> = {\n [contractorStandardProductIdentifier]: standardOnboardingWorkflow,\n // we assign the same workflow as its the same for standard and plus\n [contractorPlusProductIdentifier]: standardOnboardingWorkflow,\n [corProductIdentifier]: corOnboardingWorkflow,\n};\n\nexport const pricingPlanDetails = {\n [contractorStandardProductIdentifier]: {\n title: 'Contractor Management',\n subtitle: 'Engage and pay contractors compliantly',\n listItems: [\n 'Ideal for businesses wanting a straightforward solution to manage and pay contractors directly.',\n 'Helps with everything from contractor onboarding, invoicing, payments, and compliance.',\n 'Full control remains with you.',\n ],\n contractPillText: 'Contract between you and contractor',\n },\n [contractorPlusProductIdentifier]: {\n title: 'Contractor Management Plus',\n subtitle: 'Engage and pay contractors with indemnity coverage',\n listItems: [\n 'Great for businesses concerned about contractor classification risks.',\n 'Helps with everything from contractor onboarding, invoicing, payments, and compliance.',\n \"Offers a warranty on Remote's localized, compliant contracts.\",\n 'Control remains with you.',\n ],\n contractPillText: 'Contract between you and contractor',\n },\n [corProductIdentifier]: {\n title: 'Contractor of Record',\n subtitle: 'Remote reduces liability by directly engaging the contractor',\n listItems: [\n 'Ideal for businesses who want admin relief and have low risk tolerance.',\n 'No need to be experts in local labor laws; Remote manages its compliance with contractors.',\n 'Indemnity protection, Remote backs its compliance in administering and paying contractors.',\n ],\n contractPillText: 'Contract between Remote and contractor',\n },\n [eorProductIdentifier]: {\n title: 'Employer of Record',\n subtitle: 'Remote engages the employee on your behalf',\n listItems: [\n 'Remote manages onboarding, payroll, and compliance.',\n 'Manages taxes, benefits, and time-off tracking.',\n 'Handles contracts, transfers, and terminations.',\n ],\n contractPillText: 'Contract between Remote and employee',\n },\n};\n\nexport const FEATURES_BY_IDENTIFIER: Record<string, string[]> = {\n [contractorStandardProductIdentifier]: [\n 'Contract between you and contractor',\n 'Localized contract templates',\n 'AI-powered features to reduce misclassification risks',\n 'Experts on hand to identify misclassification risks',\n 'Only pay for active contractors',\n 'Work with contractors in 200+ countries and jurisdictions',\n ],\n [contractorPlusProductIdentifier]: [\n 'Contract between you and contractor',\n 'Access to all Contractor Management features',\n '$100K indemnity coverage for penalties',\n '4X monetary coverage than our competitors in case of penalties',\n ],\n [corProductIdentifier]: [\n 'Contract between Remote and the contractor',\n 'Our most comprehensive option for compliance and flexibility',\n 'Locally compliant agreements',\n 'Localized contract templates',\n 'Indemnity coverage for losses related to Remote’s administration and contractor payments',\n ],\n};\n","import { useMutation, useQuery, UseQueryOptions } from '@tanstack/react-query';\nimport { Client } from '@/src/client/client';\nimport {\n getV1EmploymentsEmploymentIdFiles,\n getV1FilesId,\n postV1Documents,\n} from '@/src/client/sdk.gen';\nimport {\n GetV1EmploymentsEmploymentIdFilesData,\n GetV1EmploymentsEmploymentIdFilesErrors,\n File as ApiFile,\n ListFilesResponse,\n PostV1DocumentsData,\n} from '@/src/client/types.gen';\nimport { useClient } from '@/src/context';\n\n/**\n * Hook to upload a file associated with a specified employment.\n * @returns A mutation result for uploading employee files.\n */\nexport const useUploadFile = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (params: PostV1DocumentsData['body']) => {\n return postV1Documents({\n client: client as Client,\n body: params,\n headers: {\n Authorization: ``,\n },\n });\n },\n });\n};\n\n/**\n * Hook to download a file by its ID.\n * @param id - The ID of the file to download.\n * @returns A query result containing the file data.\n */\nexport const useDownloadFile = (id: string) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['download-file', id],\n queryFn: async () => {\n const result = await getV1FilesId({\n client: client as Client,\n path: { id: id },\n });\n\n if (result.error) {\n throw result.error;\n }\n\n return result.data;\n },\n select: ({ data }) => data?.file,\n enabled: !!id,\n });\n};\n\n/**\n * Hook to retrieve files associated with a specific employment.\n * @param employmentId - The ID of the employment to retrieve files for.\n * @param queryParams - The query parameters to filter the files.\n * @param queryOptions - Optional TanStack Query options to customize the query behavior.\n * @returns A query result containing the employment files.\n */\nexport const useEmploymentFiles = (\n employmentId: string,\n queryParams: GetV1EmploymentsEmploymentIdFilesData['query'],\n queryOptions?: Omit<\n UseQueryOptions<\n ListFilesResponse,\n GetV1EmploymentsEmploymentIdFilesErrors,\n ApiFile[] | undefined,\n unknown[]\n >,\n 'queryKey' | 'queryFn'\n >,\n) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['employment-files', employmentId],\n queryFn: async () => {\n const result = await getV1EmploymentsEmploymentIdFiles({\n client: client as Client,\n path: { employment_id: employmentId },\n query: queryParams,\n });\n\n if (result.error) {\n throw result.error;\n }\n\n return result.data;\n },\n ...queryOptions,\n });\n};\n","import { Step } from '@/src/flows/useStepState';\nimport {\n contractorStandardProductIdentifier,\n contractorPlusProductIdentifier,\n ProductType,\n PRODUCT_IDENTIFIER_MAP,\n REMOTE_AI_SERVICES_AND_DELIVERABLES_ERROR_MESSAGE,\n REMOTE_AI_SERVICES_AND_DELIVERABLES_COR_ERROR_MESSAGE,\n} from '@/src/flows/ContractorOnboarding/constants';\nimport { Employment } from '@/src/flows/Onboarding/types';\n\nexport type StepKeys =\n | 'select_country'\n | 'basic_information'\n | 'contract_origin'\n | 'invoice_schedule'\n | 'create_invoice_schedule'\n | 'contract_details'\n | 'eligibility_questionnaire'\n | 'contract_preview'\n | 'pricing_plan'\n | 'review';\n\ntype StepConfig = {\n includeSelectCountry?: boolean;\n includeContractOrigin?: boolean;\n includeInvoiceSchedule?: boolean;\n includeCreateInvoiceSchedule?: boolean;\n includeEligibilityQuestionnaire?: boolean;\n includeContractDetails?: boolean;\n includeContractPreview?: boolean;\n};\n\nexport function buildSteps(config: StepConfig = {}) {\n const stepDefinitions: Array<{\n name: StepKeys;\n label: string;\n visible: boolean;\n }> = [\n {\n name: 'select_country',\n label: 'Select Country',\n visible: Boolean(config?.includeSelectCountry),\n },\n {\n name: 'basic_information',\n label: 'Basic Information',\n visible: true,\n },\n {\n name: 'pricing_plan',\n label: 'Pricing Plan',\n visible: true,\n },\n {\n name: 'eligibility_questionnaire',\n label: 'Eligibility Questionnaire',\n visible: Boolean(config?.includeEligibilityQuestionnaire),\n },\n {\n name: 'contract_origin',\n label: 'Contract Options',\n visible: Boolean(config?.includeContractOrigin ?? true),\n },\n {\n name: 'contract_details',\n label: 'Contract Details',\n visible: Boolean(config?.includeContractDetails ?? true),\n },\n {\n name: 'contract_preview',\n label: 'Contract Preview',\n visible: Boolean(config?.includeContractPreview),\n },\n {\n name: 'invoice_schedule',\n label: 'Invoice schedule',\n visible: Boolean(config?.includeInvoiceSchedule),\n },\n {\n name: 'create_invoice_schedule',\n label: 'Create Invoice Schedule',\n visible: Boolean(config?.includeCreateInvoiceSchedule),\n },\n {\n name: 'review',\n label: 'Review',\n visible: true,\n },\n ];\n\n const stepsArray = stepDefinitions.map((step, index) => ({\n name: step.name,\n index,\n label: step.label,\n visible: step.visible,\n }));\n\n const steps = stepsArray.reduce(\n (acc, step) => {\n acc[step.name] = {\n index: step.index,\n name: step.name,\n visible: step.visible,\n };\n return acc;\n },\n {} as Record<string, Step<StepKeys>>,\n );\n\n return { steps, stepsArray };\n}\n\n/**\n * Calculates the description for the provisional start date field\n * based on whether the dates match between basic information and contract details steps\n */\nexport const calculateProvisionalStartDateDescription = (\n employmentProvisionalStartDate: string | undefined,\n fieldProvisionalStartDate: string | undefined,\n): string | undefined => {\n const datesNotMatching =\n employmentProvisionalStartDate &&\n fieldProvisionalStartDate &&\n employmentProvisionalStartDate !== fieldProvisionalStartDate;\n\n if (datesNotMatching) {\n const datesDontMatchWarning = `This date does not match the date you provided in the Basic Information step - ${\n employmentProvisionalStartDate\n } - and will override it only when both parties have signed the contract.`;\n return `When the contractor will start providing service to your company. ${datesDontMatchWarning}`;\n }\n return undefined;\n};\n\n/**\n * Checks if the selected pricing plan is CM (standard) or CM+ (plus)\n */\nexport const isCMOrCMPlus = (subscription: string | undefined): boolean => {\n return (\n subscription === contractorStandardProductIdentifier ||\n subscription === contractorPlusProductIdentifier\n );\n};\n\nconst NATIONALITY_COUNTRY_CODES = ['SAU', 'KWT', 'OMN', 'QAT', 'BHR'];\n\n/**\n * Checks if the country code is a country code that requires nationality status field\n */\nexport const isNationalityCountryCode = (countryCode: string) => {\n return NATIONALITY_COUNTRY_CODES.includes(countryCode);\n};\n\n/**\n * Checks if a product should be included based on the excludeProducts list\n * @param productIdentifier - The product identifier to check\n * @param excludeProducts - Array of products to exclude\n * @returns true if the product should be included, false otherwise\n */\nexport const shouldIncludeProduct = (\n productIdentifier: string,\n excludeProducts?: ProductType[],\n): boolean => {\n if (!excludeProducts || excludeProducts.length === 0) {\n return true;\n }\n\n return !excludeProducts.some(\n (excluded) => PRODUCT_IDENTIFIER_MAP[excluded] === productIdentifier,\n );\n};\n\n/**\n * Array of employment statuses that are allowed to proceed to the review step.\n * These statuses indicate that the employment is in a final state and the employment cannot be modified further.\n * @type {Employment['status'][]}\n * @constant\n */\nexport const reviewStepAllowedEmploymentStatus: Employment['status'][] = [\n 'initiated',\n 'invited',\n 'created_awaiting_reserve',\n 'created_reserve_paid',\n 'active',\n];\n\nexport const disabledInviteButtonEmploymentStatus: Employment['status'][] = [\n 'initiated',\n 'created_awaiting_reserve',\n 'invited',\n 'active',\n];\n\n/**\n * Transforms AI error messages to use default localized messages\n * @param isContractorOfRecord - Whether the contractor is a Contractor of Record\n * @param errors - Array of error messages from the API\n * @returns Array containing the appropriate default error message\n */\nexport function transformAiErrorResponse(\n isContractorOfRecord: boolean,\n): string {\n const remoteAiErrorMessage = isContractorOfRecord\n ? REMOTE_AI_SERVICES_AND_DELIVERABLES_COR_ERROR_MESSAGE\n : REMOTE_AI_SERVICES_AND_DELIVERABLES_ERROR_MESSAGE;\n return remoteAiErrorMessage;\n}\n\nconst DEFAULT_VERSION = 1;\n\n/**\n * Gets the basic information schema version from options\n * @param options - The flow options containing version configurations\n * @returns The jsonSchemaVersion for basic information or default (1)\n */\nexport const getBasicInformationSchemaVersion = (options?: {\n jsonSchemaVersion?: { employment_basic_information?: number | 'latest' };\n}): number | 'latest' => {\n return (\n options?.jsonSchemaVersion?.employment_basic_information || DEFAULT_VERSION\n );\n};\n\n// Invoice-schedule payload builders are shared with the standalone InvoiceSchedule flow and\n// live in src/common/invoice-schedules. Re-exported here so existing imports keep resolving.\nexport {\n buildInvoiceItems,\n buildInvoicePreviewPayload,\n buildInvoiceSchedulePayload,\n} from '@/src/common/invoice-schedules/utils';\n","import { useQuery } from '@tanstack/react-query';\nimport { getV1IdentityCurrent } from '@/src/client';\nimport { useClient } from '@/src/context';\nimport { Client } from '@/src/client/client';\n\nexport const useIdentity = () => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['identity'],\n queryFn: () =>\n getV1IdentityCurrent({\n client: client as Client,\n headers: { Authorization: `` },\n }),\n select: (data) => data.data?.data,\n });\n};\n","import { useQuery } from '@tanstack/react-query';\nimport { useClient } from '@/src/context';\nimport {\n getV1CompaniesCompanyIdPricingPlans,\n IdentityCurrentResponse,\n} from '@/src/client';\nimport { Client } from '@/src/client/client';\nimport { useIdentity } from '@/src/common/api/identity';\n\nexport function hasCompany(\n identity: IdentityCurrentResponse['data'] | undefined,\n): identity is Extract<\n IdentityCurrentResponse['data'],\n { company: { id: string } }\n> {\n return identity != null && 'company' in identity;\n}\n\nexport const useCompanyPricingPlans = (\n queryOptions: { enabled?: boolean } = { enabled: true },\n) => {\n const { data: identity } = useIdentity();\n const companyId = hasCompany(identity) ? (identity?.company?.id ?? '') : '';\n const { client } = useClient();\n return useQuery({\n queryKey: ['pricing-plans', companyId],\n queryFn: () =>\n getV1CompaniesCompanyIdPricingPlans({\n client: client as Client,\n path: { company_id: companyId },\n }),\n select: (data) => data.data?.data?.pricing_plans,\n enabled: Boolean(queryOptions?.enabled) && !!companyId,\n });\n};\n","import { useMemo } from 'react';\nimport {\n CompanyAction,\n CreateContractDocument,\n getV1CompaniesCompanyIdActions,\n getV1ContractorsEmploymentsEmploymentIdContractDocumentsId,\n getV1ContractorsEmploymentsEmploymentIdContractorSubscriptions,\n ManageContractorPlusSubscriptionOperationsParams,\n postV1ContractorsEmploymentsEmploymentIdContractDocuments,\n postV1ContractorsEmploymentsEmploymentIdContractorPlusSubscription,\n postV1ContractorsEmploymentsEmploymentIdContractDocumentsContractDocumentIdSign,\n SignContractDocument,\n EligibilityQuestionnaireJsonSchemaResponse,\n getV1ContractorsSchemasEligibilityQuestionnaire,\n SubmitEligibilityQuestionnaireRequest,\n postV1ContractorsEligibilityQuestionnaire,\n postV1ContractorsEmploymentsEmploymentIdContractorCorSubscription,\n postV1EmploymentsEmploymentIdContractOrigin,\n deleteV1ContractorsEmploymentsEmploymentIdContractorCorSubscription,\n Country,\n PostV1EmploymentsEmploymentIdContractOriginData,\n} from '@/src/client';\nimport { useClient } from '@/src/context';\nimport { signatureSchema } from '@/src/flows/ContractorOnboarding/json-schemas/signature';\nimport { contractOriginSchema } from '@/src/flows/ContractorOnboarding/json-schemas/contractOrigin';\nimport { invoiceScheduleSchema } from '@/src/flows/ContractorOnboarding/json-schemas/invoiceSchedule';\nimport { selectContractorSubscriptionStepSchema } from '@/src/flows/ContractorOnboarding/json-schemas/selectContractorSubscriptionStep';\nimport {\n JSONSchemaFormResultWithFieldsets,\n FlowOptions,\n JSFModify,\n} from '@/src/flows/types';\nimport { clearBase64Data } from '@/src/lib/utils';\nimport { Client } from '@/src/client/client';\nimport { createHeadlessForm } from '@/src/common/createHeadlessForm';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { FieldValues } from 'react-hook-form';\nimport {\n contractorPlusProductIdentifier,\n contractorStandardProductIdentifier,\n corProductIdentifier,\n eorProductIdentifier,\n FEATURES_BY_IDENTIFIER,\n IR35_FILE_SUBTYPE,\n ProductType,\n} from '@/src/flows/ContractorOnboarding/constants';\nimport { $TSFixMe, JSFField } from '@/src/types/remoteFlows';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport {\n useDownloadFile,\n useEmploymentFiles,\n useUploadFile,\n} from '@/src/common/api/files';\nimport { convertFromCents } from '@/src/components/form/utils';\nimport { countriesOptions } from '@/src/common/api/countries';\nimport {\n buildSelectCountryJsfModify,\n selectCountryStepSchema,\n} from '@/src/common/selectCountryStep';\nimport { shouldIncludeProduct } from '@/src/flows/ContractorOnboarding/utils';\nimport { useCompanyPricingPlans, hasCompany } from '@/src/common/api/companies';\nimport { useIdentity } from '@/src/common/api/identity';\n\n/**\n * Get the contract document signature schema\n * @param fieldValues - The field values\n * @param options - The options\n * @returns The contract document signature schema\n */\nexport const useGetContractDocumentSignatureSchema = ({\n fieldValues,\n options,\n}: {\n fieldValues: FieldValues;\n options?: { queryOptions?: { enabled?: boolean }; jsfModify?: JSFModify };\n}) => {\n return useQuery({\n queryKey: [\n 'contract-document-signature',\n fieldValues.review_completed,\n options?.jsfModify,\n ],\n queryFn: async () => {\n return createHeadlessForm(signatureSchema, fieldValues, {\n jsfModify: options?.jsfModify,\n });\n },\n enabled: options?.queryOptions?.enabled,\n });\n};\n\n/**\n * Signs the contract document\n * @param employmentId - The employment ID\n * @param contractDocumentId - The contract document ID\n * @param payload - The payload\n * @returns The signed contract document\n */\nexport const useSignContractDocument = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({\n employmentId,\n contractDocumentId,\n payload,\n }: {\n employmentId: string;\n contractDocumentId: string;\n payload: SignContractDocument;\n }) => {\n return postV1ContractorsEmploymentsEmploymentIdContractDocumentsContractDocumentIdSign(\n {\n client: client as Client,\n body: payload,\n path: {\n employment_id: employmentId,\n contract_document_id: contractDocumentId,\n },\n },\n );\n },\n });\n};\n\n/**\n * Get the contract document for a given employment and contract document ID\n * @param employmentId - The employment ID\n * @param contractDocumentId - The contract document ID\n * @returns The contract document\n */\nexport const useGetShowContractDocument = ({\n employmentId,\n contractDocumentId,\n options,\n}: {\n employmentId: string;\n contractDocumentId: string;\n options?: { queryOptions?: { enabled?: boolean }; jsfModify?: JSFModify };\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['contract-document', employmentId, contractDocumentId],\n queryFn: async () => {\n return getV1ContractorsEmploymentsEmploymentIdContractDocumentsId({\n client: client as Client,\n path: { employment_id: employmentId, id: contractDocumentId },\n });\n },\n enabled: options?.queryOptions?.enabled,\n select: ({ data }) => {\n return {\n ...data?.data,\n contract_document: {\n ...data?.data?.contract_document,\n content: clearBase64Data(\n data?.data?.contract_document?.content as $TSFixMe,\n ),\n },\n };\n },\n });\n};\n\nexport const useHasCompanySignedContract = ({\n employmentId,\n contractDocumentId,\n options,\n}: {\n employmentId: string;\n contractDocumentId: string;\n options?: { queryOptions?: { enabled?: boolean } };\n}) => {\n const { data: documentPreviewPdf } = useGetShowContractDocument({\n employmentId,\n contractDocumentId,\n options: {\n queryOptions: {\n enabled: options?.queryOptions?.enabled,\n },\n },\n });\n\n const hasCompanySignedContract =\n documentPreviewPdf?.contract_document?.signatories?.some(\n (signatory) =>\n signatory.type === 'company' && signatory.status === 'signed',\n );\n\n return {\n hasCompanySignedContract,\n };\n};\n/**\n * Get the contractor subscriptions for the given employment id\n * @param employmentId - The employment ID\n * @returns The contractor subscriptions available\n */\nexport const useGetContractorSubscriptions = ({\n employmentId,\n options,\n}: {\n employmentId: string;\n options?: { queryOptions?: { enabled?: boolean } };\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['contractor-subscriptions', employmentId],\n queryFn: async () => {\n return getV1ContractorsEmploymentsEmploymentIdContractorSubscriptions({\n client: client as Client,\n path: { employment_id: employmentId },\n });\n },\n enabled: options?.queryOptions?.enabled,\n select: ({ data }) => {\n return data?.data;\n },\n });\n};\n\n/**\n * Upgrade or downgrade contractor subscription\n */\nexport const usePostManageContractorSubscriptions = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({\n employmentId,\n payload,\n }: {\n employmentId: string;\n payload: ManageContractorPlusSubscriptionOperationsParams;\n }) => {\n return postV1ContractorsEmploymentsEmploymentIdContractorPlusSubscription(\n {\n client: client as Client,\n body: payload,\n path: {\n employment_id: employmentId,\n },\n },\n );\n },\n });\n};\n\n/**\n * Saves the contractor details data\n * @param employmentId - The employment ID\n * @param payload - The payload\n * @returns The contractor contract document\n */\nexport const useCreateContractorContractDocument = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({\n employmentId,\n payload,\n }: {\n employmentId: string;\n payload: CreateContractDocument;\n }) => {\n return postV1ContractorsEmploymentsEmploymentIdContractDocuments({\n client: client as Client,\n body: payload,\n path: {\n employment_id: employmentId,\n },\n });\n },\n });\n};\n\nexport const CONTRACT_PRODUCT_TITLES = {\n [contractorStandardProductIdentifier]: 'Contractor Management',\n [contractorPlusProductIdentifier]: 'Contractor Management Plus',\n [corProductIdentifier]: 'Contractor of Record',\n};\n\nconst useEorSubscription = (options?: { enabled?: boolean }) => {\n const { data: pricingPlans, isLoading: isLoadingPricingPlans } =\n useCompanyPricingPlans({\n enabled: options?.enabled,\n });\n\n const eorPricingPlan = pricingPlans?.find(\n (plan) => plan.product.name === 'EOR Monthly',\n );\n\n const eorSubscription = eorPricingPlan\n ? {\n product: {\n identifier: eorProductIdentifier,\n short_name: 'EOR',\n },\n currency: eorPricingPlan.price.currency,\n price: {\n amount: convertFromCents(eorPricingPlan.price.amount),\n },\n features: [\n 'Contract between Remote and employee',\n 'Remote manages onboarding, payroll, and compliance',\n 'Manages taxes, benefits, and time-off tracking',\n 'Handles contracts, transfers, and terminations',\n ],\n description: 'Enables hiring in countries without a local entity',\n label: 'Employer of Record',\n value: eorProductIdentifier,\n }\n : null;\n\n return { eorSubscription, isLoading: isLoadingPricingPlans };\n};\n\ntype SelectedCountry =\n | (Pick<Country, 'eor_onboarding' | 'contractor_products_available'> & {\n label: string;\n })\n | undefined;\n\nconst addEorToFieldOptions = (\n fieldOptions: $TSFixMe[],\n eorSubscription: ReturnType<typeof useEorSubscription>['eorSubscription'],\n excludeProducts?: ProductType[],\n) => {\n if (\n eorSubscription &&\n shouldIncludeProduct(eorProductIdentifier, excludeProducts)\n ) {\n fieldOptions.push({\n label: eorSubscription.label,\n value: eorSubscription.value,\n description: eorSubscription.description,\n meta: {\n features: eorSubscription.features,\n price: {\n amount: eorSubscription.price.amount,\n currencyCode: eorSubscription.currency?.code ?? '',\n },\n },\n disabled: false,\n });\n }\n return fieldOptions;\n};\n\nexport const useContractorSubscriptionSchemaField = (\n employmentId: string,\n selectedCountry: SelectedCountry,\n options?: FlowOptions & {\n queryOptions?: { enabled?: boolean };\n excludeProducts?: ProductType[];\n },\n) => {\n const {\n data: contractorSubscriptions,\n isLoading,\n refetch,\n } = useGetContractorSubscriptions({\n employmentId: employmentId,\n options: {\n queryOptions: options?.queryOptions,\n },\n });\n\n const filteredContractorSubscriptions = useMemo(\n () =>\n contractorSubscriptions?.filter((subscription) =>\n shouldIncludeProduct(\n subscription.product.identifier ?? '',\n options?.excludeProducts,\n ),\n ) ?? [],\n [contractorSubscriptions, options?.excludeProducts],\n );\n\n // maximum number of subscriptions\n const MAXIMUM_CONTRACTOR_SUBSCRIPTIONS_COUNT = 3;\n\n const isMissingSubscriptions = contractorSubscriptions\n ? contractorSubscriptions?.length < MAXIMUM_CONTRACTOR_SUBSCRIPTIONS_COUNT\n : false;\n\n const corSubscription = contractorSubscriptions?.find(\n (subscription) => subscription.product.identifier === corProductIdentifier,\n );\n\n const isEligibilityQuestionnaireBlocked =\n corSubscription?.eligibility_questionnaire?.is_blocking;\n\n const showEorSubscription =\n (isMissingSubscriptions || isEligibilityQuestionnaireBlocked) &&\n selectedCountry?.eor_onboarding &&\n !options?.excludeProducts?.includes('eor');\n\n const { eorSubscription, isLoading: isLoadingEorSubscription } =\n useEorSubscription({\n enabled: showEorSubscription,\n });\n\n const hasAvailableOptions =\n filteredContractorSubscriptions.length > 0 ||\n (showEorSubscription && eorSubscription !== null);\n\n const form = createHeadlessForm(\n selectContractorSubscriptionStepSchema.data.schema,\n {},\n {\n ...options,\n jsfModify: {\n ...options?.jsfModify,\n // If no filtered subscriptions are available, make the subscription field optional\n required: hasAvailableOptions\n ? options?.jsfModify?.required\n : (existingRequired: string[]) =>\n existingRequired.filter(\n (fieldName: string) => fieldName !== 'subscription',\n ),\n },\n },\n );\n\n const field: JSFField | undefined = form.fields.find(\n (field) => field.name === 'subscription',\n ) as JSFField | undefined;\n\n if (field) {\n // Start with contractor management options\n const contractorOptions = filteredContractorSubscriptions.map((opts) => {\n const product = opts.product;\n const price = opts.price.amount;\n const currencyCode = opts.currency.code;\n const title =\n CONTRACT_PRODUCT_TITLES[\n product.identifier as keyof typeof CONTRACT_PRODUCT_TITLES\n ] ?? '';\n const label = title;\n const value = product.identifier ?? '';\n const description = product.description ?? '';\n\n if (!product.description) {\n console.error(\n `[Data Integrity] Missing description for product: ${product.identifier}`,\n { product },\n );\n }\n\n const features =\n product.features ??\n FEATURES_BY_IDENTIFIER[\n product.identifier as keyof typeof FEATURES_BY_IDENTIFIER\n ] ??\n [];\n const meta = {\n features,\n price: {\n amount: convertFromCents(price),\n currencyCode: currencyCode,\n },\n };\n return {\n label,\n value,\n description,\n meta,\n disabled:\n isEligibilityQuestionnaireBlocked &&\n product.identifier !== contractorStandardProductIdentifier,\n };\n });\n\n // Sort contractor options\n contractorOptions.sort((a, b) => a.label.localeCompare(b.label));\n\n // Build otherSubscriptions (EOR) with separator metadata\n const otherOptions: $TSFixMe[] = [];\n if (showEorSubscription) {\n addEorToFieldOptions(\n otherOptions as unknown as $TSFixMe[],\n eorSubscription,\n options?.excludeProducts,\n );\n\n // Add separator metadata to first \"other\" option\n // only the first option to avoid problems when iterating over the options\n if (otherOptions.length > 0) {\n otherOptions[0].meta = {\n ...otherOptions[0].meta,\n groupSeparator: {\n show: true,\n },\n };\n }\n }\n\n // Combine all options into the single field\n field.options = [...contractorOptions, ...otherOptions];\n }\n\n return {\n isLoading: isLoading || isLoadingEorSubscription,\n form,\n contractorSubscriptions,\n filteredContractorSubscriptions,\n refetch,\n isEligibilityQuestionnaireBlocked,\n };\n};\n\nexport const useUpdateUKandSaudiFields = (\n createContractorContractDocumentMutation: ReturnType<\n typeof useCreateContractorContractDocument\n >,\n uploadFileMutation: ReturnType<typeof useUploadFile>,\n parsedValues: FieldValues,\n) => {\n const { mutateAsyncOrThrow: uploadFileMutationAsync } =\n mutationToPromise(uploadFileMutation);\n const { mutateAsyncOrThrow: createContractorContractDocumentMutationAsync } =\n mutationToPromise(createContractorContractDocumentMutation);\n\n return {\n mutateAsync: async ({ employmentId }: { employmentId: string }) => {\n const {\n nationality_status: nationalityStatus,\n ir35: ir35Status,\n ir35_sds_file: ir35SdsFile,\n } = parsedValues;\n const ir35ContractDetailsPayload = {\n contract_document: {\n ir_35: ir35Status,\n },\n };\n const nationalityContractDetailsPayload = {\n contract_document: {\n nationality: nationalityStatus,\n },\n };\n if (ir35Status) {\n await createContractorContractDocumentMutationAsync({\n employmentId: employmentId,\n payload: ir35ContractDetailsPayload,\n });\n\n if (ir35SdsFile) {\n return uploadFileMutationAsync({\n employment_id: employmentId,\n file: ir35SdsFile,\n sub_type: IR35_FILE_SUBTYPE,\n });\n }\n return Promise.resolve();\n }\n // nationality status is sent for the countries SAU, KWT, OMN, QAT, BHR\n if (nationalityStatus) {\n return createContractorContractDocumentMutationAsync({\n employmentId: employmentId,\n payload: nationalityContractDetailsPayload,\n });\n }\n\n return Promise.resolve();\n },\n };\n};\n\nexport const useGetIR35File = (\n employmentId: string,\n options?: { enabled?: boolean },\n) => {\n const { data: ir35Files, isLoading: isLoadingFiles } = useEmploymentFiles(\n employmentId,\n {\n sub_type: IR35_FILE_SUBTYPE,\n },\n {\n ...options,\n select: ({ data }) =>\n data?.files?.filter((file) => file.sub_type === IR35_FILE_SUBTYPE),\n },\n );\n const id = ir35Files?.[0]?.id;\n\n const downloadQuery = useDownloadFile(id as string);\n\n return {\n ...downloadQuery,\n isLoading: isLoadingFiles || downloadQuery.isLoading,\n };\n};\n\nexport const useGetEligibilityQuestionnaire = ({\n options,\n fieldValues,\n}: {\n options?: FlowOptions & { queryOptions?: { enabled?: boolean } };\n fieldValues: FieldValues;\n}) => {\n const { client } = useClient();\n return useQuery<\n EligibilityQuestionnaireJsonSchemaResponse['data'],\n Error,\n JSONSchemaFormResultWithFieldsets\n >({\n queryKey: ['eligibility-questionnaire'],\n queryFn: async (): Promise<\n EligibilityQuestionnaireJsonSchemaResponse['data']\n > => {\n const response = await getV1ContractorsSchemasEligibilityQuestionnaire({\n client: client as Client,\n query: {\n type: 'contractor_of_record',\n json_schema_version: 1,\n },\n });\n\n // Extract the data from the response wrapper\n if (response.error) {\n throw new Error('Failed to fetch eligibility questionnaire');\n }\n\n return response.data\n .data as EligibilityQuestionnaireJsonSchemaResponse['data'];\n },\n select: (data: EligibilityQuestionnaireJsonSchemaResponse['data']) => {\n const schema = data?.schema || {};\n return createHeadlessForm(schema, fieldValues, {\n jsfModify: options?.jsfModify,\n });\n },\n enabled: options?.queryOptions?.enabled,\n });\n};\n\nexport const usePostCreateEligibilityQuestionnaire = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({\n employmentId,\n payload,\n }: {\n employmentId: string;\n payload: SubmitEligibilityQuestionnaireRequest['responses'];\n }) => {\n return postV1ContractorsEligibilityQuestionnaire({\n client: client as Client,\n body: {\n employment_slug: employmentId,\n responses: payload,\n type: 'contractor_of_record',\n },\n query: {\n json_schema_version: 1, // TODO: json_schema_version should be dynamic but fixed for now\n },\n });\n },\n });\n};\n\nexport const usePostManageContractorCorSubscription = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({ employmentId }: { employmentId: string }) => {\n return postV1ContractorsEmploymentsEmploymentIdContractorCorSubscription({\n client: client as Client,\n path: {\n employment_id: employmentId,\n },\n });\n },\n });\n};\n\nexport const useDeleteContractorCorSubscription = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({ employmentId }: { employmentId: string }) => {\n return deleteV1ContractorsEmploymentsEmploymentIdContractorCorSubscription(\n {\n client: client as Client,\n path: { employment_id: employmentId },\n },\n );\n },\n });\n};\n\nexport const useSetContractOrigin = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({\n employmentId,\n contractOrigin,\n templateType,\n }: {\n employmentId: string;\n contractOrigin: PostV1EmploymentsEmploymentIdContractOriginData['body']['contract_origin'];\n templateType: PostV1EmploymentsEmploymentIdContractOriginData['body']['template_type'];\n }) => {\n return postV1EmploymentsEmploymentIdContractOrigin({\n client: client as Client,\n path: {\n employment_id: employmentId,\n },\n body: {\n contract_origin: contractOrigin,\n template_type: templateType,\n },\n });\n },\n });\n};\n\nexport const useGetContractOriginSchema = ({\n fieldValues,\n options,\n}: {\n fieldValues: FieldValues;\n options?: { queryOptions?: { enabled?: boolean }; jsfModify?: JSFModify };\n}) => {\n return useQuery({\n queryKey: ['contract-origin-schema', options?.jsfModify],\n queryFn: async () => {\n return createHeadlessForm(contractOriginSchema, fieldValues, {\n jsfModify: options?.jsfModify,\n });\n },\n enabled: options?.queryOptions?.enabled,\n });\n};\n\n// Invoice-schedule API hooks are shared with the standalone InvoiceSchedule flow and live in\n// src/common/invoice-schedules. Re-exported here so existing imports keep resolving.\nexport {\n invoiceSchedulesOptions,\n useCreateInvoiceSchedule,\n useGetCreateInvoiceScheduleSchema,\n useGetExistingInvoiceSchedule,\n usePreviewContractorInvoice,\n useSkipInvoiceSchedule,\n useUpdateInvoiceSchedule,\n} from '@/src/common/invoice-schedules/api';\n\nexport const useGetInvoiceScheduleSchema = ({\n enabled,\n jsfModify,\n}: {\n enabled?: boolean;\n jsfModify?: JSFModify;\n}) => {\n return useMemo(() => {\n if (!enabled) return null;\n return createHeadlessForm(\n invoiceScheduleSchema,\n {},\n {\n jsfModify,\n },\n );\n }, [enabled, jsfModify]);\n};\n\nexport const useCountriesSchemaField = (\n options?: Omit<FlowOptions, 'jsonSchemaVersion'> & {\n queryOptions?: { enabled?: boolean };\n },\n) => {\n const { client } = useClient();\n const { data: countries, isLoading } = useQuery({\n ...countriesOptions(client as Client, 'contractor-onboarding-countries'),\n select: (response) => {\n return (\n response.data?.data?.map((country) => {\n return {\n label: country.name,\n value: country.code,\n eor_onboarding: country.eor_onboarding,\n contractor_products_available:\n country.contractor_products_available,\n };\n }) || []\n );\n },\n enabled: options?.queryOptions?.enabled,\n });\n\n const selectCountryForm = useMemo(\n () =>\n createHeadlessForm(\n selectCountryStepSchema.data.schema,\n {},\n {\n jsfModify: buildSelectCountryJsfModify(countries, options?.jsfModify),\n },\n ),\n [countries, options?.jsfModify],\n );\n\n return {\n isLoading,\n selectCountryForm,\n countries,\n };\n};\n\nexport const useCompanyOpenTasks = ({\n options,\n}: {\n options?: { queryOptions?: { enabled?: boolean } };\n} = {}) => {\n const { data: identity } = useIdentity();\n const companyId = hasCompany(identity) ? (identity?.company?.id ?? '') : '';\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['company-open-tasks', companyId],\n queryFn: () =>\n getV1CompaniesCompanyIdActions({\n client: client as Client,\n path: { company_id: companyId },\n }),\n select: ({ data }) => data?.data?.actions ?? ([] as CompanyAction[]),\n enabled: (options?.queryOptions?.enabled ?? true) && !!companyId,\n });\n};\n","import { JSFCustomComponentProps } from '@/src/types/remoteFlows';\n\nexport const ContractPreviewHeader = (props: JSFCustomComponentProps) => {\n return (\n <div className='text-center space-y-2 mb-6'>\n <h2 className='text-2xl font-bold'>{props.label}</h2>\n <p className='text-gray-600'>{props.description}</p>\n </div>\n );\n};\n","import { CheckIcon, FileText } from 'lucide-react';\nimport { Alert, AlertDescription, AlertTitle } from '@/src/components/ui/alert';\nimport { JSFCustomComponentProps } from '@/src/types/remoteFlows';\n\nexport type ContractPreviewStatementProps = JSFCustomComponentProps & {\n reviewCompleted: boolean;\n};\n\nexport const ContractPreviewStatement = ({\n reviewCompleted,\n label,\n description,\n}: ContractPreviewStatementProps) => {\n return (\n <Alert variant='default'>\n {reviewCompleted ? (\n <CheckIcon className='h-4 w-4' />\n ) : (\n <FileText className='h-4 w-4' />\n )}\n {label && <AlertTitle dangerouslySetInnerHTML={{ __html: label }} />}\n {description && (\n <AlertDescription dangerouslySetInnerHTML={{ __html: description }} />\n )}\n </Alert>\n );\n};\n","import { addYears, format } from 'date-fns';\nimport { FieldValues } from 'react-hook-form';\nimport { ChangeEvent } from 'react';\n\nimport { parseLocalDate } from '@/src/common/dates';\nimport { createStatementProperty } from '@/src/components/form/jsf-utils/createFields';\nimport { zendeskArticles } from '@/src/components/shared/zendesk-drawer/utils';\nimport { ZendeskTriggerButton } from '@/src/components/shared/zendesk-drawer/ZendeskTriggerButton';\nimport { ContractPreviewHeader } from '@/src/flows/ContractorOnboarding/components/ContractPreviewHeader';\nimport { ContractPreviewStatement } from '@/src/flows/ContractorOnboarding/components/ContractPreviewStatement';\nimport {\n contractorStandardProductIdentifier,\n REMOTE_AI_SERVICES_AND_DELIVERABLES_COR_ERROR_MESSAGE,\n REMOTE_AI_SERVICES_AND_DELIVERABLES_ERROR_MESSAGE,\n} from '@/src/flows/ContractorOnboarding/constants';\nimport {\n ContractorOnboardingFlowProps,\n ContractorOnboardingContractDetailsFormPayload,\n} from '@/src/flows/ContractorOnboarding/types';\nimport { isNationalityCountryCode } from '@/src/flows/ContractorOnboarding/utils';\nimport { JSFModify } from '@/src/flows/types';\nimport { FILE_TYPES, MAX_FILE_SIZE } from '@/src/lib/uploadConfig';\nimport { JSFCustomComponentProps } from '@/src/types/remoteFlows';\n\nconst isStandardPricingPlan = (pricingPlan: string | undefined) => {\n return pricingPlan === contractorStandardProductIdentifier;\n};\n\nconst showBackDateWarning = (\n isStandardPricingPlanSelected: boolean,\n provisionalStartDate: string | undefined,\n) => {\n const isStartDateBackdated =\n provisionalStartDate &&\n // Compare full days omitting time of the day\n provisionalStartDate < format(new Date(), 'yyyy-MM-dd');\n\n if (!isStandardPricingPlanSelected && isStartDateBackdated) {\n return createStatementProperty({\n severity: 'warning',\n description:\n 'Backdating the service start date is not supported in the selected Contractor Management plan.',\n });\n }\n\n return undefined;\n};\n\n/**\n * Handles changes to the services_and_deliverables field to clear AI warning state\n */\nfunction onServicesAndDeliverablesChange(\n _event: ChangeEvent<HTMLTextAreaElement>,\n values: ContractorOnboardingContractDetailsFormPayload & {\n services_and_deliverables_ai_warning: string;\n services_and_deliverables_error_skippable: boolean;\n },\n setValues: (\n formValues: Partial<\n ContractorOnboardingContractDetailsFormPayload & {\n services_and_deliverables_ai_warning: string;\n services_and_deliverables_error_skippable: boolean;\n }\n >,\n ) => void,\n) {\n setValues({\n ...values,\n services_and_deliverables_ai_warning: '',\n services_and_deliverables_error_skippable: false,\n });\n}\n\n/**\n * Merges internal jsfModify modifications with user-provided options for contract_details step\n * This abstracts the logic of applying internal field modifications (like dynamic descriptions)\n * while preserving user customizations\n */\nexport const buildContractDetailsJsfModify = (\n userJsfModify: JSFModify | undefined,\n provisionalStartDateDescription: string | undefined,\n selectedPricingPlan: string | undefined,\n fieldValues: FieldValues,\n isContractorOfRecord: boolean,\n): JSFModify => {\n const isStandardPricingPlanSelected =\n isStandardPricingPlan(selectedPricingPlan);\n const provisionalStartDate =\n fieldValues?.service_duration?.provisional_start_date;\n const statement = showBackDateWarning(\n isStandardPricingPlanSelected,\n provisionalStartDate,\n );\n const AiStatementWarning = createStatementProperty({\n severity: 'warning',\n title: 'Possible misclassification risk',\n description: isContractorOfRecord\n ? REMOTE_AI_SERVICES_AND_DELIVERABLES_COR_ERROR_MESSAGE\n : REMOTE_AI_SERVICES_AND_DELIVERABLES_ERROR_MESSAGE,\n });\n return {\n ...userJsfModify,\n create: {\n ...userJsfModify?.create,\n services_and_deliverables_ai_warning: {\n type: 'string',\n 'x-jsf-presentation': {\n inputType: 'hidden',\n },\n },\n services_and_deliverables_error_skippable: {\n type: 'boolean',\n 'x-jsf-presentation': {\n inputType: 'hidden',\n },\n },\n },\n fields: {\n ...userJsfModify?.fields,\n ...{\n 'service_duration.provisional_start_date': {\n description: provisionalStartDateDescription,\n 'x-jsf-presentation': {\n minDate: !isStandardPricingPlanSelected\n ? format(new Date(), 'yyyy-MM-dd')\n : undefined,\n ...statement,\n },\n },\n 'service_duration.expiration_date': {\n 'x-jsf-presentation': {\n calculateDynamicProperties: (formValues: FieldValues) => {\n const maxDate =\n isContractorOfRecord &&\n formValues.service_duration?.provisional_start_date\n ? addYears(\n parseLocalDate(\n formValues.service_duration.provisional_start_date,\n ),\n 1,\n )\n : undefined;\n return {\n maxDate: maxDate ? format(maxDate, 'yyyy-MM-dd') : undefined,\n };\n },\n },\n },\n services_and_deliverables: {\n onChange: onServicesAndDeliverablesChange,\n 'x-jsf-presentation': {\n calculateDynamicProperties: (formValues: FieldValues) => ({\n statement: formValues.services_and_deliverables_ai_warning\n ? AiStatementWarning.statement\n : undefined,\n }),\n },\n },\n },\n },\n };\n};\n\n/**\n * Builds the basic information jsf modify for the contractor onboarding flow\n * @param countryCode - The country code to use for the onboarding.\n * @param countryName - The name of the country to use for the onboarding.\n * @param options - The options to use for the onboarding.\n * @returns The basic information jsf modify for the contractor onboarding flow\n */\nexport const buildBasicInformationJsfModify = (\n countryCode: string,\n countryName: string | undefined,\n options: ContractorOnboardingFlowProps['options'] | undefined,\n) => {\n const isSaudiArabia = countryCode === 'SAU';\n const isUk = countryCode === 'GBR';\n const hasNationalityStatusField = isNationalityCountryCode(countryCode);\n\n if (!isSaudiArabia && !isUk && !hasNationalityStatusField) {\n return options?.jsfModify?.basic_information;\n }\n\n if (isUk) {\n return {\n ...options?.jsfModify?.basic_information,\n create: {\n ...options?.jsfModify?.basic_information?.create,\n ir35: {\n title: 'IR35 Status',\n description: () => (\n <>\n What's your contractor's employment status?{' '}\n <ZendeskTriggerButton zendeskId={zendeskArticles.ir35Status}>\n Learn more about IR35\n </ZendeskTriggerButton>\n </>\n ),\n oneOf: [\n {\n const: 'inside',\n title: 'Inside IR35 (deemed employee)',\n },\n {\n const: 'outside',\n title: 'Outside IR35',\n },\n {\n const: 'exempt',\n title: 'Exempt from IR35',\n },\n ],\n 'x-jsf-presentation': {\n inputType: 'select',\n },\n },\n ir35_sds_file: {\n title: 'Upload SDS',\n description: 'Status determination statement',\n type: 'string',\n 'x-jsf-presentation': {\n inputType: 'file',\n accept: FILE_TYPES.document,\n multiple: false,\n maxSize: MAX_FILE_SIZE,\n calculateDynamicProperties: (\n fieldValues: Record<string, unknown>,\n ) => {\n const ir35Status = fieldValues.ir35;\n return {\n isVisible: ir35Status === 'inside' || ir35Status === 'outside',\n };\n },\n },\n },\n },\n allOf: [\n {\n if: {\n properties: {\n ir35: {\n enum: ['inside', 'outside'],\n },\n },\n },\n then: {\n required: ['ir35_sds_file'],\n },\n else: {\n properties: {\n ir35_sds_file: false,\n },\n },\n },\n ],\n required: ['ir35'],\n orderRoot: (originalOrder: string[]) => {\n return [...originalOrder, 'ir35', 'ir35_sds_file'];\n },\n };\n }\n\n const label = isSaudiArabia\n ? 'Is your contractor a Saudi Arabia national, or a non-Saudi national contracting via a local business entity or under a Special Privilege Iqama visa?'\n : `Is the contractor a ${countryName ?? 'selected country'} national, or a non-${countryName ?? 'selected country'} national contracting through their local business entity?`;\n\n const descriptionNonNationalRadio = isSaudiArabia\n ? `Please be aware that contracting with non-Saudi Arabia nationals that are not operating as a company or under a Special Privilege Iqama visa can lead to fines for operating without proper work authorization. If you are concerned, please speak with the Contractor and/or local Saudi Arabia counsel to ensure compliance.`\n : `Be aware that the Contractor must be a ${countryName ?? 'selected country'} national, or a non-${countryName ?? 'selected country'} national operating through their company to comply with the legal requirements for performing services and deliverables as a contractor in ${countryName ?? 'selected country'}. If you are concerned, speak with the Contractor and/or local counsel to ensure compliance.`;\n\n return {\n ...options?.jsfModify?.basic_information,\n create: {\n ...options?.jsfModify?.basic_information?.create,\n nationality_status: {\n title: label,\n description: '',\n type: 'string',\n oneOf: [\n {\n const: 'national',\n description: '',\n title: 'Yes',\n },\n {\n const: 'non_national',\n description: descriptionNonNationalRadio,\n title: 'No',\n },\n ],\n 'x-jsf-presentation': {\n inputType: 'radio',\n },\n },\n },\n required: ['nationality_status'],\n orderRoot: (originalOrder: string[]) => {\n return [...originalOrder, 'nationality_status'];\n },\n };\n};\n\nexport const buildContractPreviewJsfModify = (\n options: ContractorOnboardingFlowProps['options'] | undefined,\n fieldValues: FieldValues,\n) => {\n const userFields = options?.jsfModify?.contract_preview?.fields;\n\n return {\n fields: {\n contract_preview_header: {\n ...userFields?.contract_preview_header,\n 'x-jsf-presentation': {\n Component: (props: JSFCustomComponentProps) => {\n const CustomComponent =\n userFields?.contract_preview_header?.['x-jsf-presentation']\n ?.Component || ContractPreviewHeader;\n return <CustomComponent {...props} />;\n },\n },\n },\n contract_preview_statement: {\n ...userFields?.contract_preview_statement,\n 'x-jsf-presentation': {\n Component: (props: JSFCustomComponentProps) => {\n const CustomComponent =\n userFields?.contract_preview_statement?.['x-jsf-presentation']\n ?.Component || ContractPreviewStatement;\n\n return (\n <CustomComponent\n reviewCompleted={Boolean(fieldValues?.review_completed)}\n {...props}\n />\n );\n },\n },\n },\n signature: {\n ...userFields?.signature,\n 'x-jsf-presentation': {\n calculateDynamicProperties: (\n fieldValuesDynamicProperties: Record<string, unknown>,\n ) => {\n return {\n isVisible: Boolean(fieldValuesDynamicProperties.review_completed),\n };\n },\n // Merge any user-provided signature customizations\n ...userFields?.signature?.['x-jsf-presentation'],\n },\n },\n },\n };\n};\n","import { useQuery } from '@tanstack/react-query';\nimport {\n getV1CompaniesCompanyIdLegalEntities,\n CompanyLegalEntity,\n} from '@/src/client';\nimport { Client } from '@/src/client/client';\nimport { useClient } from '@/src/context';\nimport { useIdentity } from '@/src/common/api/identity';\nimport { hasCompany } from '@/src/common/api/companies';\n\n/**\n * Hook to get the legal entities for a company\n * @param companyId - The company ID\n * @returns The legal entities\n */\nexport const useLegalEntities = () => {\n const { client } = useClient();\n const { data: identity } = useIdentity();\n const companyId = hasCompany(identity) ? (identity?.company?.id ?? '') : '';\n\n return useQuery({\n queryKey: ['legal-entities', companyId],\n queryFn: () =>\n getV1CompaniesCompanyIdLegalEntities({\n client: client as Client,\n path: {\n company_id: companyId,\n },\n query: {\n page_size: 100,\n },\n }),\n select: (data) => data.data?.data?.legal_entities,\n enabled: !!companyId,\n });\n};\n\nexport const useDefaultLegalEntity = () => {\n const { data: legalEntities } = useLegalEntities();\n return legalEntities?.find(\n (legalEntity: CompanyLegalEntity) => legalEntity.is_default,\n );\n};\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { FieldValues } from 'react-hook-form';\nimport omit from 'lodash.omit';\nimport { $TSFixMe, JSFFields, NestedMeta } from '@/src/types/remoteFlows';\nimport {\n CreateContractDocument,\n Employment,\n EmploymentCreateParams,\n} from '@/src/client/types.gen';\nimport {\n getInitialValues,\n parseJSFToValidate,\n} from '@/src/components/form/utils';\nimport { ValidationResult } from '@remoteoss/remote-json-schema-form-kit';\nimport {\n useCreateContractorContractDocument,\n useGetContractDocumentSignatureSchema,\n usePostManageContractorSubscriptions,\n useContractorSubscriptionSchemaField,\n useGetShowContractDocument,\n useSignContractDocument,\n useUpdateUKandSaudiFields,\n useGetIR35File,\n useGetEligibilityQuestionnaire,\n usePostCreateEligibilityQuestionnaire,\n usePostManageContractorCorSubscription,\n useDeleteContractorCorSubscription,\n useCountriesSchemaField,\n CONTRACT_PRODUCT_TITLES,\n useHasCompanySignedContract,\n useCompanyOpenTasks,\n useSetContractOrigin,\n useGetContractOriginSchema,\n useGetInvoiceScheduleSchema,\n useGetCreateInvoiceScheduleSchema,\n useCreateInvoiceSchedule,\n useUpdateInvoiceSchedule,\n useSkipInvoiceSchedule,\n usePreviewContractorInvoice,\n useGetExistingInvoiceSchedule,\n} from '@/src/flows/ContractorOnboarding/api';\nimport { useContractorContractDetailsSchema } from '@/src/common/api/contractor-contract-details';\nimport { useGetContractDocuments } from '@/src/common/contract-documents/api';\nimport {\n ContractorOnboardingFlowProps,\n ContractorOnboardingHookOptions,\n} from '@/src/flows/ContractorOnboarding/types';\nimport {\n buildSteps,\n calculateProvisionalStartDateDescription,\n reviewStepAllowedEmploymentStatus,\n disabledInviteButtonEmploymentStatus,\n StepKeys,\n getBasicInformationSchemaVersion,\n} from '@/src/flows/ContractorOnboarding/utils';\nimport {\n useCreateEmployment,\n useJSONSchemaForm,\n useUpdateEmployment,\n} from '@/src/flows/Onboarding/api';\nimport { FlowOptions, JSFModify, JSONSchemaFormType } from '@/src/flows/types';\nimport { useStepState } from '@/src/flows/useStepState';\nimport { mutationToPromise, isMutationError } from '@/src/lib/mutations';\nimport {\n clearBase64Data,\n createStructuredError,\n prettifyFormValues,\n} from '@/src/lib/utils';\nimport { JSFFieldset } from '@/src/types/remoteFlows';\nimport {\n contractorStandardProductIdentifier,\n contractorPlusProductIdentifier,\n corProductIdentifier,\n eorProductIdentifier,\n REMOTE_AI_ERROR_SOURCE,\n} from '@/src/flows/ContractorOnboarding/constants';\nimport {\n buildBasicInformationJsfModify,\n buildContractDetailsJsfModify,\n buildContractPreviewJsfModify,\n} from '@/src/flows/ContractorOnboarding/jsfModify';\nimport { transformAiErrorResponse } from '@/src/flows/ContractorOnboarding/utils';\nimport {\n AiValidationError,\n ContractorInvoicePreview,\n} from '@/src/flows/ContractorOnboarding/types';\nimport { useUploadFile } from '@/src/common/api/files';\nimport { dataURLtoFile } from '@/src/lib/files';\nimport {\n useEmploymentQuery,\n useBasicInformationQuery,\n} from '@/src/common/api/employment';\nimport { useDefaultLegalEntity } from '@/src/common/api/legal-entities';\n\ntype useContractorOnboardingProps = Omit<\n ContractorOnboardingFlowProps,\n 'render' | 'options'\n> & {\n options: ContractorOnboardingHookOptions;\n};\n\nconst stepToFormSchemaMap: Record<StepKeys, JSONSchemaFormType | null> = {\n select_country: null,\n basic_information: 'employment_basic_information',\n contract_origin: null,\n invoice_schedule: null,\n create_invoice_schedule: null,\n contract_details: null,\n eligibility_questionnaire: null,\n pricing_plan: null,\n contract_preview: null,\n review: null,\n};\n\nconst jsonSchemaToEmployment: Partial<\n Record<JSONSchemaFormType, keyof Employment>\n> = {\n employment_basic_information: 'basic_information',\n};\n\nconst contractOriginMapping: Record<string, string> = {\n remote_contract: 'provided_by_remote',\n // Add other mappings as needed\n};\n\n// Inverse mapping: frontend -> backend\nconst contractOriginToBackend: Record<string, string> = {\n provided_by_remote: 'remote_contract',\n // Add other mappings as needed\n};\n\nexport const useContractorOnboarding = ({\n countryCode,\n externalId,\n partnerExternalId,\n employmentId,\n skipSteps,\n options,\n initialValues: onboardingInitialValues,\n}: useContractorOnboardingProps) => {\n const excludeProducts = options?.excludeProducts || [];\n\n const onContractReviewedRef = useRef(options?.onContractReviewed);\n\n useEffect(() => {\n onContractReviewedRef.current = options?.onContractReviewed;\n }, [options?.onContractReviewed]);\n\n const [internalCountryCode, setInternalCountryCode] = useState<string | null>(\n countryCode || null,\n );\n const [internalEmploymentId, setInternalEmploymentId] = useState<\n string | undefined\n >(employmentId);\n const [internalContractDocumentId, setInternalContractDocumentId] = useState<\n string | undefined\n >(undefined);\n const fieldsMetaRef = useRef<{\n select_country: NestedMeta;\n basic_information: NestedMeta;\n contract_origin: NestedMeta;\n invoice_schedule: NestedMeta;\n create_invoice_schedule: NestedMeta;\n contract_details: NestedMeta;\n contract_preview: NestedMeta;\n pricing_plan: NestedMeta;\n eligibility_questionnaire: NestedMeta;\n }>({\n select_country: {},\n basic_information: {},\n contract_origin: {},\n invoice_schedule: {},\n create_invoice_schedule: {},\n contract_details: {},\n contract_preview: {},\n pricing_plan: {},\n eligibility_questionnaire: {},\n });\n\n const [selectedProduct, setSelectedProduct] = useState<string | undefined>(\n undefined,\n );\n\n const [includeEligibilityQuestionnaire, setIncludeEligibilityQuestionnaire] =\n useState<boolean>(false);\n\n const [includeContractPreview, setIncludeContractPreview] =\n useState<boolean>(true);\n\n const [includeContractDetails, setIncludeContractDetails] =\n useState<boolean>(true);\n\n const [includeContractOrigin, setIncludeContractOrigin] =\n useState<boolean>(true);\n\n const [includeInvoiceSchedule, setIncludeInvoiceSchedule] =\n useState<boolean>(false);\n\n const [includeCreateInvoiceSchedule, setIncludeCreateInvoiceSchedule] =\n useState<boolean>(false);\n\n const [pendingNavigationStep, setPendingNavigationStep] =\n useState<StepKeys | null>(null);\n\n const { steps, stepsArray } = useMemo(\n () =>\n buildSteps({\n includeSelectCountry: !skipSteps?.includes('select_country'),\n includeContractOrigin: includeContractOrigin,\n includeInvoiceSchedule: includeInvoiceSchedule,\n includeCreateInvoiceSchedule: includeCreateInvoiceSchedule,\n includeEligibilityQuestionnaire: includeEligibilityQuestionnaire,\n includeContractDetails: includeContractDetails,\n includeContractPreview: includeContractPreview,\n }),\n [\n includeContractOrigin,\n includeInvoiceSchedule,\n includeCreateInvoiceSchedule,\n includeEligibilityQuestionnaire,\n includeContractDetails,\n includeContractPreview,\n skipSteps,\n ],\n );\n\n const {\n fieldValues,\n stepState,\n setFieldValues,\n previousStep,\n nextStep,\n goToStep,\n setStepValues,\n } = useStepState(steps);\n\n useEffect(() => {\n if (pendingNavigationStep) {\n // Now steps have been updated\n goToStep(pendingNavigationStep);\n setPendingNavigationStep(null);\n }\n }, [pendingNavigationStep, goToStep]);\n\n const {\n data: employment,\n isLoading: isLoadingEmployment,\n refetch: refetchEmployment,\n } = useEmploymentQuery({\n employmentId: internalEmploymentId as string,\n queryParams: { exclude_files: true },\n });\n\n const { data: basicInformation, refetch: refetchBasicInformation } =\n useBasicInformationQuery({\n employmentId: internalEmploymentId as string,\n enabled: !!internalEmploymentId,\n });\n\n const defaultLegalEntity = useDefaultLegalEntity();\n\n const { data: openTasks } = useCompanyOpenTasks({\n options: {\n queryOptions: {\n enabled: stepState.currentStep.name === 'review',\n },\n },\n });\n\n const { status: employmentStatus } = employment || {};\n\n const isEmploymentReadOnly =\n employmentStatus &&\n reviewStepAllowedEmploymentStatus.includes(employmentStatus);\n\n const canInvite =\n employmentStatus &&\n !disabledInviteButtonEmploymentStatus.includes(employmentStatus);\n\n const invitedStatus: 'invited' | 'not_invited' = useMemo(() => {\n const invitedStatuses = ['invited', 'initiated'];\n const isInvited =\n employmentStatus && invitedStatuses.includes(employmentStatus);\n\n return isInvited ? 'invited' : 'not_invited';\n }, [employmentStatus]);\n\n const createEmploymentMutation = useCreateEmployment();\n const updateEmploymentMutation = useUpdateEmployment(\n internalCountryCode as string,\n options as $TSFixMe, // TODO: done it as its shared between contractor and onboarding flows\n );\n const createContractorContractDocumentMutation =\n useCreateContractorContractDocument();\n const uploadFileMutation = useUploadFile();\n const { mutateAsync: updateUKandSaudiFieldsMutation } =\n useUpdateUKandSaudiFields(\n createContractorContractDocumentMutation,\n uploadFileMutation,\n fieldValues,\n );\n const createEligibilityQuestionnaireMutation =\n usePostCreateEligibilityQuestionnaire();\n const manageContractorCorSubscriptionMutation =\n usePostManageContractorCorSubscription();\n const setContractOriginMutation = useSetContractOrigin();\n const createInvoiceScheduleMutation = useCreateInvoiceSchedule();\n const updateInvoiceScheduleMutation = useUpdateInvoiceSchedule();\n const skipInvoiceScheduleMutation = useSkipInvoiceSchedule();\n const previewContractorInvoiceMutation = usePreviewContractorInvoice();\n\n const { mutateAsyncOrThrow: updateEmploymentMutationAsync } =\n mutationToPromise(updateEmploymentMutation);\n const signContractDocumentMutation = useSignContractDocument();\n const manageContractorSubscriptionMutation =\n usePostManageContractorSubscriptions();\n const deleteContractorCorSubscriptionMutation =\n useDeleteContractorCorSubscription();\n\n const { mutateAsyncOrThrow: createEmploymentMutationAsync } =\n mutationToPromise(createEmploymentMutation);\n\n const { mutateAsyncOrThrow: createContractorContractDocumentMutationAsync } =\n mutationToPromise(createContractorContractDocumentMutation);\n\n const { mutateAsyncOrThrow: signContractDocumentMutationAsync } =\n mutationToPromise(signContractDocumentMutation);\n\n const { mutateAsyncOrThrow: manageContractorSubscriptionMutationAsync } =\n mutationToPromise(manageContractorSubscriptionMutation);\n\n const { mutateAsyncOrThrow: createEligibilityQuestionnaireMutationAsync } =\n mutationToPromise(createEligibilityQuestionnaireMutation);\n\n const { mutateAsyncOrThrow: manageContractorCorSubscriptionMutationAsync } =\n mutationToPromise(manageContractorCorSubscriptionMutation);\n\n const { mutateAsyncOrThrow: deleteContractorCorSubscriptionMutationAsync } =\n mutationToPromise(deleteContractorCorSubscriptionMutation);\n\n const { mutateAsyncOrThrow: setContractOriginMutationAsync } =\n mutationToPromise(setContractOriginMutation);\n\n const { mutateAsyncOrThrow: createInvoiceScheduleMutationAsync } =\n mutationToPromise(createInvoiceScheduleMutation);\n\n const { mutateAsyncOrThrow: updateInvoiceScheduleMutationAsync } =\n mutationToPromise(updateInvoiceScheduleMutation);\n\n const { mutateAsyncOrThrow: skipInvoiceScheduleMutationAsync } =\n mutationToPromise(skipInvoiceScheduleMutation);\n\n const { mutateAsyncOrThrow: previewContractorInvoiceMutationAsync } =\n mutationToPromise(previewContractorInvoiceMutation);\n\n // if the employment is loaded, country code has not been set yet\n // we set the internal country code with the employment country code\n if (employmentId && employment?.country?.code && !internalCountryCode) {\n setInternalCountryCode(employment.country.code);\n }\n\n const {\n selectCountryForm,\n isLoading: isLoadingCountries,\n countries,\n } = useCountriesSchemaField({\n jsfModify: options?.jsfModify?.select_country,\n });\n\n const selectedCountry = useMemo(() => {\n return countries?.find((country) => country.value === internalCountryCode);\n }, [countries, internalCountryCode]);\n\n const countryName = useMemo(() => {\n return selectedCountry?.label;\n }, [selectedCountry]);\n\n const isPricingPlanEnabled =\n stepState.currentStep.name === 'pricing_plan' ||\n (Boolean(employmentId) && isEmploymentReadOnly);\n\n const {\n form: selectContractorSubscriptionForm,\n isLoading: isLoadingContractorSubscriptions,\n contractorSubscriptions,\n filteredContractorSubscriptions,\n refetch: refetchContractorSubscriptions,\n isEligibilityQuestionnaireBlocked,\n } = useContractorSubscriptionSchemaField(\n internalEmploymentId as string,\n selectedCountry,\n {\n jsonSchemaVersion: options?.jsonSchemaVersion,\n queryOptions: {\n enabled: isPricingPlanEnabled,\n },\n excludeProducts: excludeProducts,\n jsfModify: options?.jsfModify?.pricing_plan,\n },\n );\n\n const hasEligibilityQuestionnaireSubmitted = useMemo(() => {\n return Boolean(\n contractorSubscriptions?.find(\n (subscription) =>\n subscription.product.identifier === corProductIdentifier,\n )?.eligibility_questionnaire?.submitted_at,\n );\n }, [contractorSubscriptions]);\n\n const shouldIncludeEligibilityQuestionnaire = useMemo(() => {\n if (hasEligibilityQuestionnaireSubmitted) return false;\n return selectedProduct === corProductIdentifier;\n }, [hasEligibilityQuestionnaireSubmitted, selectedProduct]);\n\n const shouldIncludeContractPreview = employment?.contractor_type !== 'cor';\n\n const rawContractOrigin =\n (stepState.currentStep.name === 'contract_origin'\n ? fieldValues.contract_origin\n : undefined) ??\n stepState.values?.contract_origin?.contract_origin ??\n basicInformation?.contract_origin;\n\n const selectedContractOrigin =\n contractOriginMapping[rawContractOrigin] ?? rawContractOrigin;\n\n const isContractProvidedByCustomer =\n selectedProduct === contractorStandardProductIdentifier &&\n selectedContractOrigin === 'provided_by_customer';\n\n useEffect(() => {\n setIncludeContractDetails(!isContractProvidedByCustomer);\n }, [isContractProvidedByCustomer]);\n\n useEffect(() => {\n setIncludeEligibilityQuestionnaire(\n !isContractProvidedByCustomer && shouldIncludeEligibilityQuestionnaire,\n );\n }, [isContractProvidedByCustomer, shouldIncludeEligibilityQuestionnaire]);\n\n useEffect(() => {\n setIncludeContractPreview(\n !isContractProvidedByCustomer && shouldIncludeContractPreview,\n );\n }, [isContractProvidedByCustomer, shouldIncludeContractPreview]);\n\n const eligibilityAnswers = useMemo(() => {\n return contractorSubscriptions?.find(\n (subscription) =>\n subscription.product.identifier === corProductIdentifier,\n )?.eligibility_questionnaire?.responses;\n }, [contractorSubscriptions]);\n\n const formType =\n stepToFormSchemaMap[stepState.currentStep.name] ||\n 'contractor_basic_information';\n const employmentKey = jsonSchemaToEmployment[formType] as keyof Employment;\n const serverEmploymentData = (employment?.[employmentKey] || {}) as Record<\n string,\n unknown\n >;\n\n const useJSONSchema = ({\n form,\n options: jsonSchemaOptions = {},\n query = {},\n jsonSchemaVersion,\n }: {\n form: JSONSchemaFormType;\n options?: {\n jsfModify?: JSFModify;\n queryOptions?: { enabled?: boolean };\n jsonSchemaVersion?: FlowOptions['jsonSchemaVersion'];\n };\n query?: Record<string, string>;\n jsonSchemaVersion?: number | 'latest';\n }) => {\n const hasUserEnteredAnyValues = Object.keys(fieldValues).length > 0;\n // when you write on the fields, the values are stored in the fieldValues state\n // when values are stored in the stepState is when the user has navigated to the step\n // and then we have the values from the server and the onboardingInitialValues that the user can inject,\n const mergedFormValues = hasUserEnteredAnyValues\n ? {\n ...onboardingInitialValues,\n ...stepState.values?.[stepState.currentStep.name], // Restore values for the current step\n ...fieldValues,\n }\n : {\n ...onboardingInitialValues,\n ...serverEmploymentData,\n };\n\n return useJSONSchemaForm({\n countryCode: internalCountryCode as string,\n form: form,\n fieldValues: mergedFormValues,\n query,\n options: {\n ...jsonSchemaOptions,\n queryOptions: {\n enabled: jsonSchemaOptions.queryOptions?.enabled ?? true,\n },\n },\n jsonSchemaVersion,\n });\n };\n\n const isBasicInformationDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'basic_information' ||\n Boolean(employmentId)),\n );\n\n const isIR35FileEnabled = Boolean(\n internalCountryCode === 'GBR' &&\n employmentId &&\n stepState.currentStep.name === 'basic_information',\n );\n\n const { data: ir35File, isLoading: isLoadingIR35File } = useGetIR35File(\n employmentId as string,\n {\n enabled: isIR35FileEnabled,\n },\n );\n\n const { data: contractDocuments, isLoading: isLoadingContractDocuments } =\n useGetContractDocuments(internalEmploymentId as string, {\n enabled: Boolean(internalEmploymentId),\n });\n\n useEffect(() => {\n if (\n contractDocuments &&\n contractDocuments.length > 0 &&\n !internalContractDocumentId\n ) {\n setInternalContractDocumentId(contractDocuments[0].id);\n }\n }, [contractDocuments, internalContractDocumentId]);\n\n const {\n data: basicInformationForm,\n isLoading: isLoadingBasicInformationForm,\n } = useJSONSchema({\n form: 'contractor_basic_information',\n options: {\n jsfModify: buildBasicInformationJsfModify(\n internalCountryCode as string,\n countryName,\n options,\n ),\n queryOptions: {\n enabled: isBasicInformationDetailsEnabled,\n },\n },\n jsonSchemaVersion: getBasicInformationSchemaVersion(options),\n });\n\n const descriptionProvisionalStartDate = useMemo(() => {\n return calculateProvisionalStartDateDescription(\n employment?.basic_information?.provisional_start_date as string,\n fieldValues?.service_duration?.provisional_start_date as string,\n );\n }, [\n employment?.basic_information?.provisional_start_date,\n fieldValues?.service_duration?.provisional_start_date,\n ]);\n\n /**\n * When the user selects COR, the data isn't saved yet in the BE\n * We need to use the internalState to know what has happened\n */\n const selectedPricingPlan = useMemo(() => {\n const subscriptions = {\n standard: contractorStandardProductIdentifier,\n plus: contractorPlusProductIdentifier,\n cor: corProductIdentifier,\n };\n\n // HIGHEST PRIORITY: Current form value (user is actively selecting)\n if (fieldValues.subscription) {\n return fieldValues.subscription;\n }\n\n // SECOND: Previously submitted value in this session\n const subscription = stepState.values?.pricing_plan?.subscription;\n if (subscription && !isEligibilityQuestionnaireBlocked) {\n return subscription;\n }\n\n // THIRD: Backend state (eligibility submitted or employment contractor_type)\n if (\n hasEligibilityQuestionnaireSubmitted &&\n !isEligibilityQuestionnaireBlocked\n ) {\n return corProductIdentifier;\n }\n\n // Fourth: If the eligibility questionnaire is blocked and has been submitted, return the standard product\n if (\n isEligibilityQuestionnaireBlocked &&\n hasEligibilityQuestionnaireSubmitted\n ) {\n return contractorStandardProductIdentifier;\n }\n\n // Fifth: If there are no available subscriptions, return undefined\n const hasAvailableSubscriptions =\n filteredContractorSubscriptions &&\n filteredContractorSubscriptions.length > 0;\n\n if (!hasAvailableSubscriptions) {\n return undefined;\n }\n\n // FALLBACK: Employment contractor_type or default\n return (\n subscriptions[\n employment?.contractor_type as keyof typeof subscriptions\n ] || contractorStandardProductIdentifier\n );\n }, [\n fieldValues,\n stepState.values,\n hasEligibilityQuestionnaireSubmitted,\n employment?.contractor_type,\n isEligibilityQuestionnaireBlocked,\n filteredContractorSubscriptions,\n ]);\n\n useEffect(() => {\n if (selectedPricingPlan && selectedPricingPlan !== selectedProduct) {\n setSelectedProduct(selectedPricingPlan);\n }\n }, [selectedPricingPlan, selectedProduct]);\n\n useEffect(() => {\n setIncludeContractOrigin(\n !skipSteps?.includes('contract_origin') &&\n selectedPricingPlan === contractorStandardProductIdentifier,\n );\n }, [skipSteps, selectedPricingPlan]);\n\n useEffect(() => {\n setIncludeInvoiceSchedule(\n options?.features?.includes('create_invoice_schedule') ?? false,\n );\n }, [options?.features]);\n\n const eligibilityFields = useMemo(() => {\n return {\n ...eligibilityAnswers,\n ...onboardingInitialValues,\n ...stepState.values?.eligibility_questionnaire,\n ...fieldValues,\n };\n }, [\n eligibilityAnswers,\n onboardingInitialValues,\n stepState.values?.eligibility_questionnaire,\n fieldValues,\n ]);\n\n const isEligibilityQuestionnaireEnabled = useMemo(() => {\n return (\n (selectedPricingPlan === corProductIdentifier &&\n stepState.currentStep.name === 'eligibility_questionnaire') ||\n (Boolean(employmentId) &&\n isEmploymentReadOnly &&\n selectedPricingPlan === corProductIdentifier)\n );\n }, [\n selectedPricingPlan,\n stepState.currentStep.name,\n employmentId,\n isEmploymentReadOnly,\n ]);\n\n const {\n data: eligibilityQuestionnaireForm,\n isLoading: isLoadingEligibilityQuestionnaire,\n } = useGetEligibilityQuestionnaire({\n options: {\n queryOptions: {\n enabled: isEligibilityQuestionnaireEnabled,\n },\n jsfModify: options?.jsfModify?.eligibility_questionnaire,\n },\n fieldValues: eligibilityFields,\n });\n\n const isContractorOnboardingDetailsEnabled = Boolean(\n (internalCountryCode &&\n stepState.currentStep.name === 'contract_details') ||\n isEmploymentReadOnly,\n );\n\n const {\n data: contractorOnboardingDetailsForm,\n isLoading: isLoadingContractorOnboardingDetailsForm,\n } = useContractorContractDetailsSchema({\n countryCode: internalCountryCode as string,\n fieldValues: fieldValues,\n employmentId: internalEmploymentId as string,\n options: {\n queryOptions: {\n enabled: isContractorOnboardingDetailsEnabled,\n },\n jsfModify: buildContractDetailsJsfModify(\n options?.jsfModify?.contract_details,\n descriptionProvisionalStartDate,\n selectedPricingPlan,\n fieldValues,\n selectedPricingPlan === corProductIdentifier,\n ),\n },\n });\n\n const isSignatureSchemaEnabled = useMemo(() => {\n return (\n stepState.currentStep.name === 'contract_preview' ||\n (Boolean(employmentId) && isEmploymentReadOnly)\n );\n }, [stepState.currentStep.name, employmentId, isEmploymentReadOnly]);\n\n const { data: signatureSchemaForm } = useGetContractDocumentSignatureSchema({\n fieldValues: fieldValues,\n options: {\n queryOptions: {\n enabled: isSignatureSchemaEnabled,\n },\n jsfModify: buildContractPreviewJsfModify(options, fieldValues),\n },\n });\n\n const { data: contractOriginForm } = useGetContractOriginSchema({\n fieldValues: fieldValues,\n options: {\n jsfModify: options?.jsfModify?.contract_origin,\n },\n });\n\n const invoiceScheduleForm = useGetInvoiceScheduleSchema({\n enabled:\n includeInvoiceSchedule &&\n stepState.currentStep.name === 'invoice_schedule',\n jsfModify: options?.jsfModify?.invoice_schedule,\n });\n\n const {\n data: existingInvoiceSchedule,\n isLoading: isLoadingInvoiceSchedules,\n refetch: refetchInvoiceSchedule,\n } = useGetExistingInvoiceSchedule({\n employmentId: internalEmploymentId as string,\n options: {\n queryOptions: {\n enabled:\n includeInvoiceSchedule &&\n Boolean(internalEmploymentId) &&\n stepState.currentStep.name === 'invoice_schedule',\n },\n },\n });\n\n const {\n data: createInvoiceScheduleForm,\n isLoading: isLoadingCreateInvoiceScheduleForm,\n } = useGetCreateInvoiceScheduleSchema({\n enabled:\n includeInvoiceSchedule &&\n stepState.currentStep.name === 'create_invoice_schedule',\n employmentId: internalEmploymentId,\n jsfModify: options?.jsfModify?.create_invoice_schedule,\n // The schema hides item rows 2..10 until the row before them is filled in, and that\n // conditional is evaluated against the values handed to createHeadlessForm. Calling\n // handleValidation on change (see checkFieldUpdates) validates but does not re-derive\n // field visibility, so without the current values here every row past the first stays\n // hidden for good.\n fieldValues,\n });\n\n const {\n data: documentPreviewPdf,\n isLoading: isLoadingDocumentPreviewForm,\n refetch: refetchDocumentPreviewForm,\n } = useGetShowContractDocument({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n options: {\n queryOptions: {\n enabled: Boolean(internalContractDocumentId),\n },\n },\n });\n\n const { hasCompanySignedContract } = useHasCompanySignedContract({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n options: {\n queryOptions: {\n enabled: Boolean(internalContractDocumentId),\n },\n },\n });\n\n const stepFields: Record<StepKeys, JSFFields> = useMemo(\n () => ({\n select_country: selectCountryForm?.fields || [],\n basic_information: basicInformationForm?.fields || [],\n contract_origin: contractOriginForm?.fields || [],\n invoice_schedule: invoiceScheduleForm?.fields || [],\n create_invoice_schedule: createInvoiceScheduleForm?.fields || [],\n pricing_plan: selectContractorSubscriptionForm?.fields || [],\n eligibility_questionnaire: eligibilityQuestionnaireForm?.fields || [],\n contract_details: contractorOnboardingDetailsForm?.fields || [],\n contract_preview: signatureSchemaForm?.fields || [],\n review: [],\n }),\n [\n selectCountryForm?.fields,\n basicInformationForm?.fields,\n contractOriginForm?.fields,\n invoiceScheduleForm?.fields,\n createInvoiceScheduleForm?.fields,\n selectContractorSubscriptionForm?.fields,\n contractorOnboardingDetailsForm?.fields,\n signatureSchemaForm?.fields,\n eligibilityQuestionnaireForm?.fields,\n ],\n );\n\n const stepFieldsWithFlatFieldsets: Record<\n StepKeys,\n JSFFieldset | null | undefined\n > = {\n select_country: null,\n basic_information: basicInformationForm?.meta['x-jsf-fieldsets'],\n contract_origin: null,\n invoice_schedule: null,\n create_invoice_schedule: null,\n pricing_plan: null,\n contract_details: contractorOnboardingDetailsForm?.meta['x-jsf-fieldsets'],\n eligibility_questionnaire: null,\n contract_preview: null,\n review: null,\n };\n\n const stepPresentation: Record<\n StepKeys,\n Record<string, unknown> | null | undefined\n > = {\n select_country: selectCountryForm?.meta?.['x-jsf-presentation'],\n basic_information: basicInformationForm?.meta?.['x-jsf-presentation'],\n contract_origin: contractOriginForm?.meta?.['x-jsf-presentation'],\n invoice_schedule: invoiceScheduleForm?.meta?.['x-jsf-presentation'],\n create_invoice_schedule:\n createInvoiceScheduleForm?.meta?.['x-jsf-presentation'],\n pricing_plan:\n selectContractorSubscriptionForm?.meta?.['x-jsf-presentation'],\n eligibility_questionnaire:\n eligibilityQuestionnaireForm?.meta?.['x-jsf-presentation'],\n contract_details:\n contractorOnboardingDetailsForm?.meta?.['x-jsf-presentation'],\n contract_preview: signatureSchemaForm?.meta?.['x-jsf-presentation'],\n review: null,\n };\n\n const {\n country,\n basic_information: employmentBasicInformation = {},\n contract_details: employmentContractDetails = {},\n } = employment || {};\n\n const employmentCountryCode = country?.code;\n\n const selectCountryInitialValues = useMemo(\n () =>\n getInitialValues(stepFields.select_country, {\n country: internalCountryCode || employmentCountryCode || '',\n }),\n [stepFields.select_country, internalCountryCode, employmentCountryCode],\n );\n\n // memoize file conversion to avoid re-converting the file on every render\n // noticed performance issues when not doing memoizing individually\n const convertedIr35File = useMemo(() => {\n if (!ir35File?.content) return null;\n return dataURLtoFile(ir35File.content as unknown as string, ir35File.name);\n }, [ir35File?.content, ir35File?.name]);\n\n const basicInformationInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...employmentBasicInformation,\n ir35: employment?.contract_details?.ir_35,\n nationality_status: employment?.contract_details?.nationality,\n ...(convertedIr35File && {\n ir35_sds_file: [convertedIr35File],\n }),\n };\n\n return getInitialValues(stepFields.basic_information, initialValues);\n }, [\n onboardingInitialValues,\n employmentBasicInformation,\n employment?.contract_details?.ir_35,\n employment?.contract_details?.nationality,\n convertedIr35File,\n stepFields.basic_information,\n ]);\n\n const contractOriginInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n contract_origin:\n contractOriginMapping[basicInformation?.contract_origin as string] ??\n basicInformation?.contract_origin,\n };\n return getInitialValues(stepFields.contract_origin, initialValues);\n }, [\n stepFields.contract_origin,\n onboardingInitialValues,\n basicInformation?.contract_origin,\n ]);\n\n const invoiceScheduleInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n // If an existing schedule exists, default to 'schedule' preference\n ...(existingInvoiceSchedule && {\n invoice_schedule_preference: 'schedule',\n }),\n };\n return getInitialValues(stepFields.invoice_schedule, initialValues);\n }, [\n stepFields.invoice_schedule,\n onboardingInitialValues,\n existingInvoiceSchedule,\n ]);\n\n const createInvoiceScheduleInitialValues = useMemo(() => {\n // If an existing schedule exists, transform it to form values\n if (existingInvoiceSchedule) {\n const formValues: Record<string, unknown> = {\n currency: existingInvoiceSchedule.currency,\n periodicity: existingInvoiceSchedule.periodicity,\n start_date: existingInvoiceSchedule.start_date,\n number: existingInvoiceSchedule.number,\n note: existingInvoiceSchedule.note,\n nr_occurrences: existingInvoiceSchedule.nr_occurrences,\n };\n\n existingInvoiceSchedule.items?.forEach((item, index: number) => {\n const itemNumber = index + 1;\n formValues[`item_${itemNumber}_description`] = item.description;\n formValues[`item_${itemNumber}_amount`] = item.amount;\n });\n\n return getInitialValues(stepFields.create_invoice_schedule, formValues);\n }\n\n const initialValues = {\n ...onboardingInitialValues,\n };\n return getInitialValues(stepFields.create_invoice_schedule, initialValues);\n }, [\n stepFields.create_invoice_schedule,\n onboardingInitialValues,\n existingInvoiceSchedule,\n ]);\n\n const contractDetailsInitialValues = useMemo(() => {\n const hardcodedValues = {\n service_duration: {\n provisional_start_date:\n employmentBasicInformation.provisional_start_date,\n },\n };\n const initialValues = {\n ...hardcodedValues,\n ...onboardingInitialValues,\n ...employmentContractDetails,\n };\n\n return getInitialValues(stepFields.contract_details, initialValues);\n }, [\n stepFields.contract_details,\n employmentContractDetails,\n onboardingInitialValues,\n employmentBasicInformation,\n ]);\n\n const contractPreviewInitialValues = useMemo(() => {\n const signature = documentPreviewPdf?.contract_document?.signatories?.find(\n (signatory) => signatory.type === 'company',\n );\n const initialValues = {\n ...onboardingInitialValues,\n signature: signature?.signature,\n };\n\n return getInitialValues(stepFields.contract_preview, initialValues);\n }, [\n stepFields.contract_preview,\n onboardingInitialValues,\n documentPreviewPdf,\n ]);\n\n const pricingPlanInitialValues = useMemo(() => {\n const preselectedPricingPlan = {\n subscription: selectedPricingPlan,\n };\n const initialValues = {\n ...preselectedPricingPlan,\n ...onboardingInitialValues,\n };\n\n return getInitialValues(stepFields.pricing_plan, initialValues);\n }, [stepFields.pricing_plan, onboardingInitialValues, selectedPricingPlan]);\n\n const eligibilityQuestionnaireInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...eligibilityAnswers,\n };\n return getInitialValues(\n stepFields.eligibility_questionnaire,\n initialValues,\n );\n }, [\n stepFields.eligibility_questionnaire,\n onboardingInitialValues,\n eligibilityAnswers,\n ]);\n\n const initialValues = useMemo(() => {\n return {\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_origin: contractOriginInitialValues,\n invoice_schedule: invoiceScheduleInitialValues,\n create_invoice_schedule: createInvoiceScheduleInitialValues,\n contract_details: contractDetailsInitialValues,\n contract_preview: contractPreviewInitialValues,\n pricing_plan: pricingPlanInitialValues,\n eligibility_questionnaire: eligibilityQuestionnaireInitialValues,\n };\n }, [\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractOriginInitialValues,\n invoiceScheduleInitialValues,\n createInvoiceScheduleInitialValues,\n contractDetailsInitialValues,\n contractPreviewInitialValues,\n pricingPlanInitialValues,\n eligibilityQuestionnaireInitialValues,\n ]);\n\n const shouldHandleReadOnlyEmployment = Boolean(\n employmentId &&\n isEmploymentReadOnly &&\n stepState.currentStep.name !== 'review',\n );\n\n const initialLoading =\n isLoadingCountries ||\n isLoadingBasicInformationForm ||\n isLoadingEmployment ||\n isLoadingContractorOnboardingDetailsForm ||\n isLoadingContractorSubscriptions ||\n isLoadingDocumentPreviewForm ||\n isLoadingIR35File ||\n isLoadingContractDocuments ||\n isLoadingEligibilityQuestionnaire ||\n isLoadingCreateInvoiceScheduleForm ||\n isLoadingInvoiceSchedules;\n\n const isNavigatingToReview = useMemo(() => {\n const isCor = employment?.contractor_type === 'cor';\n const hasContractPreviewFields =\n isCor || stepFields.contract_preview.length > 0;\n\n return Boolean(\n shouldHandleReadOnlyEmployment &&\n !initialLoading &&\n Boolean(internalContractDocumentId) &&\n stepFields.basic_information.length > 0 &&\n stepFields.contract_details.length > 0 &&\n hasContractPreviewFields,\n );\n }, [\n shouldHandleReadOnlyEmployment,\n initialLoading,\n internalContractDocumentId,\n stepFields.basic_information.length,\n stepFields.contract_details.length,\n stepFields.contract_preview.length,\n employment?.contractor_type,\n ]);\n\n useEffect(() => {\n if (isNavigatingToReview) {\n fieldsMetaRef.current = {\n select_country: prettifyFormValues(\n selectCountryInitialValues,\n stepFields.select_country,\n { skipMoneyConversion: true },\n ),\n basic_information: prettifyFormValues(\n basicInformationInitialValues,\n stepFields.basic_information,\n { skipMoneyConversion: true },\n ),\n contract_origin: {},\n invoice_schedule: {},\n create_invoice_schedule: {},\n contract_details: prettifyFormValues(\n contractDetailsInitialValues,\n stepFields.contract_details,\n { skipMoneyConversion: true },\n ),\n contract_preview: prettifyFormValues(\n contractPreviewInitialValues,\n stepFields.contract_preview,\n { skipMoneyConversion: true },\n ),\n pricing_plan: prettifyFormValues(\n pricingPlanInitialValues,\n stepFields.pricing_plan,\n { skipMoneyConversion: true },\n ),\n eligibility_questionnaire: prettifyFormValues(\n eligibilityQuestionnaireInitialValues,\n stepFields.eligibility_questionnaire,\n { skipMoneyConversion: true },\n ),\n };\n\n setStepValues({\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_origin: {},\n invoice_schedule: {},\n create_invoice_schedule: {},\n contract_details: contractDetailsInitialValues,\n contract_preview: contractPreviewInitialValues,\n pricing_plan: pricingPlanInitialValues,\n eligibility_questionnaire: eligibilityQuestionnaireInitialValues,\n review: {},\n });\n goToStep('review');\n }\n }, [\n isNavigatingToReview,\n goToStep,\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractDetailsInitialValues,\n setStepValues,\n stepFields.select_country,\n stepFields.basic_information,\n stepFields.contract_details,\n stepFields.pricing_plan,\n pricingPlanInitialValues,\n stepFields.contract_preview,\n contractPreviewInitialValues,\n stepFields.eligibility_questionnaire,\n eligibilityQuestionnaireInitialValues,\n ]);\n\n const goTo = (step: StepKeys) => {\n goToStep(step);\n };\n\n const parseFormValues = async (values: FieldValues) => {\n if (selectCountryForm && stepState.currentStep.name === 'select_country') {\n return await parseJSFToValidate(values, selectCountryForm.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n return await parseJSFToValidate(values, basicInformationForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n contractorOnboardingDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n return await parseJSFToValidate(\n values,\n contractorOnboardingDetailsForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n if (\n signatureSchemaForm &&\n stepState.currentStep.name === 'contract_preview'\n ) {\n return await parseJSFToValidate(values, signatureSchemaForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n selectContractorSubscriptionForm &&\n stepState.currentStep.name === 'pricing_plan'\n ) {\n return await parseJSFToValidate(\n values,\n selectContractorSubscriptionForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n if (\n eligibilityQuestionnaireForm &&\n stepState.currentStep.name === 'eligibility_questionnaire'\n ) {\n return await parseJSFToValidate(\n values,\n eligibilityQuestionnaireForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n if (\n contractOriginForm &&\n stepState.currentStep.name === 'contract_origin'\n ) {\n return await parseJSFToValidate(values, contractOriginForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n invoiceScheduleForm &&\n stepState.currentStep.name === 'invoice_schedule'\n ) {\n return await parseJSFToValidate(values, invoiceScheduleForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n createInvoiceScheduleForm &&\n stepState.currentStep.name === 'create_invoice_schedule'\n ) {\n return await parseJSFToValidate(\n values,\n createInvoiceScheduleForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n return {};\n };\n\n /**\n * Extracts AI validation error from the error response\n * @param error - The error object from the API call\n * @returns The AI validation error if found, null otherwise\n */\n const extractAiValidationError = (\n error: unknown,\n ): AiValidationError | null => {\n if (!isMutationError(error)) {\n return null;\n }\n\n const rawError = error.normalizedErrors.services_and_deliverables;\n\n // The backend's normalize_errors wraps non-list values in an array,\n // so the AI validation error object arrives as a single-element array.\n const servicesAndDeliverablesError = (\n Array.isArray(rawError) ? rawError[0] : rawError\n ) as\n | {\n error: string[];\n source: string;\n skippable: boolean;\n }\n | undefined;\n\n if (servicesAndDeliverablesError?.source === REMOTE_AI_ERROR_SOURCE) {\n return {\n error: servicesAndDeliverablesError.error,\n source: servicesAndDeliverablesError.source,\n skippable: servicesAndDeliverablesError.skippable,\n };\n }\n return null;\n };\n\n async function onSubmit(values: FieldValues) {\n const currentStepName = stepState.currentStep.name;\n const parsedValues = await parseFormValues(values);\n\n if (currentStepName in fieldsMetaRef.current) {\n fieldsMetaRef.current[\n currentStepName as keyof typeof fieldsMetaRef.current\n ] = prettifyFormValues(parsedValues, stepFields[currentStepName]);\n }\n switch (stepState.currentStep.name) {\n case 'select_country': {\n setInternalCountryCode(parsedValues.country);\n return Promise.resolve({ data: { countryCode: parsedValues.country } });\n }\n case 'basic_information': {\n const isEmploymentNotLoaded =\n !internalEmploymentId && internalCountryCode;\n const hasChangedCountry =\n internalEmploymentId &&\n internalCountryCode &&\n employment?.country &&\n employment?.country.code !== internalCountryCode;\n\n if (isEmploymentNotLoaded || hasChangedCountry) {\n const basicInformationParsedValues = omit(\n parsedValues,\n 'nationality_status',\n 'ir35',\n 'ir35_sds_file',\n );\n const basicInformationPayload: EmploymentCreateParams = {\n basic_information: basicInformationParsedValues,\n type: 'contractor',\n country_code: internalCountryCode,\n external_id: externalId,\n partner_external_id: partnerExternalId,\n };\n const response = await createEmploymentMutationAsync(\n basicInformationPayload,\n );\n const employmentId = response?.data?.employment?.id;\n if (!employmentId) {\n throw createStructuredError('Employment ID not found');\n }\n\n await updateUKandSaudiFieldsMutation({\n employmentId: employmentId as string,\n });\n\n // Only update state (triggers queries with fully consistent backend state) if not caused a bug\n // if one of the updateUKandSaudiFieldsMutation fails with a 422 for example\n setInternalEmploymentId(employmentId);\n\n return response;\n } else if (internalEmploymentId) {\n const basicInformationParsedValues = omit(\n parsedValues,\n 'nationality_status',\n 'ir35',\n 'ir35_sds_file',\n );\n\n await updateUKandSaudiFieldsMutation({\n employmentId: internalEmploymentId,\n });\n return updateEmploymentMutationAsync({\n employmentId: internalEmploymentId,\n basic_information: basicInformationParsedValues,\n external_id: externalId,\n partner_external_id: partnerExternalId,\n });\n }\n\n return;\n }\n case 'contract_details': {\n const {\n services_and_deliverables_ai_warning:\n _servicesAndDeliverablesAiWarning,\n services_and_deliverables_error_skippable:\n _servicesAndDeliverablesErrorSkippable,\n ...contractDetailsData\n } = parsedValues;\n\n const shouldSkipAiChecks =\n fieldValues.services_and_deliverables_error_skippable === true;\n const payload: CreateContractDocument = {\n contract_document: contractDetailsData,\n skip_ai_checks: shouldSkipAiChecks,\n };\n\n try {\n const response = await createContractorContractDocumentMutationAsync({\n employmentId: internalEmploymentId as string,\n payload,\n });\n const contractDocumentId = response?.data?.contract_document?.id;\n if (!contractDocumentId) {\n throw createStructuredError('Contract document ID not found');\n }\n setInternalContractDocumentId(contractDocumentId);\n\n return response;\n } catch (error) {\n const aiError = extractAiValidationError(error);\n if (aiError) {\n const isContractorOfRecord =\n selectedPricingPlan === corProductIdentifier;\n setFieldValues({\n ...values,\n services_and_deliverables_ai_warning:\n transformAiErrorResponse(isContractorOfRecord),\n services_and_deliverables_error_skippable: aiError.skippable,\n });\n }\n\n throw error;\n }\n }\n\n case 'contract_preview': {\n if (hasCompanySignedContract) {\n return Promise.resolve({\n data: {\n contract_document: {\n id: internalContractDocumentId,\n },\n },\n });\n }\n const response = await signContractDocumentMutationAsync({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n payload: {\n signature: parsedValues.signature,\n },\n });\n await refetchDocumentPreviewForm();\n return response;\n }\n case 'pricing_plan': {\n if (values.subscription === eorProductIdentifier) {\n // EOR selection - no API call needed at this step\n return Promise.resolve({\n data: {\n subscription: values.subscription,\n },\n });\n }\n // If there are no available contractor subscriptions, throw an error\n if (filteredContractorSubscriptions.length === 0) {\n throw createStructuredError('No available subscriptions.');\n }\n\n if (\n !values.subscription &&\n filteredContractorSubscriptions.length > 0\n ) {\n throw createStructuredError('Please select a subscription plan.');\n }\n\n const blockedProductsEligibility = [\n corProductIdentifier,\n contractorPlusProductIdentifier,\n ];\n\n if (\n isEligibilityQuestionnaireBlocked &&\n blockedProductsEligibility.includes(values.subscription)\n ) {\n throw createStructuredError(\n `This individual is not eligible for ${\n CONTRACT_PRODUCT_TITLES[\n values.subscription as keyof typeof CONTRACT_PRODUCT_TITLES\n ]\n }.`,\n );\n }\n\n if (\n hasEligibilityQuestionnaireSubmitted &&\n values.subscription !== corProductIdentifier\n ) {\n try {\n await deleteContractorCorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n });\n await refetchContractorSubscriptions();\n } catch (error) {\n if ((error as $TSFixMe)?.response?.status !== 404) {\n throw error;\n }\n // Still refetch to update the UI state\n await refetchContractorSubscriptions();\n }\n }\n\n if (values.subscription == contractorStandardProductIdentifier) {\n return manageContractorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n payload: {\n operation: 'downgrade',\n },\n });\n } else if (values.subscription == contractorPlusProductIdentifier) {\n return manageContractorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n payload: {\n operation: 'upgrade',\n },\n });\n } else if (values.subscription == corProductIdentifier) {\n if (\n hasEligibilityQuestionnaireSubmitted &&\n employment?.contractor_type !== 'cor'\n ) {\n return manageContractorCorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n });\n } else {\n return Promise.resolve({\n data: { subscription: values.subscription },\n });\n }\n }\n\n throw createStructuredError('invalid selection');\n }\n\n case 'contract_origin': {\n // provided_by_remote -> remote_contract to maintain retrocompatibility with the backend\n // provided_by_remote doesn't exist in the backend, so we need to map it to remote_contract\n const contractOrigin: $TSFixMe =\n contractOriginToBackend[parsedValues.contract_origin] ??\n parsedValues.contract_origin;\n const templateType =\n parsedValues.contract_origin === 'provided_by_customer'\n ? 'contractor_agreement'\n : 'contractor_services_agreement';\n await setContractOriginMutationAsync({\n employmentId: internalEmploymentId as string,\n contractOrigin,\n templateType,\n });\n // Refetch basic information to get the updated contract_origin from server\n await refetchBasicInformation();\n\n return {\n data: { contractOrigin: values.contract_origin },\n };\n }\n\n case 'invoice_schedule': {\n // Show create_invoice_schedule step only when user selects 'schedule'\n const shouldShowCreateStep =\n values.invoice_schedule_preference === 'schedule';\n setIncludeCreateInvoiceSchedule(shouldShowCreateStep);\n\n return {\n data: {\n invoiceSchedulePreference: values.invoice_schedule_preference,\n },\n };\n }\n\n case 'create_invoice_schedule': {\n if (!internalEmploymentId) {\n throw createStructuredError('Employment ID is required');\n }\n\n // Use update if we have an existing schedule, otherwise create\n if (existingInvoiceSchedule?.id) {\n const response = await updateInvoiceScheduleMutationAsync({\n scheduleId: existingInvoiceSchedule.id,\n values: parsedValues,\n });\n await refetchInvoiceSchedule();\n return response;\n }\n\n const response = await createInvoiceScheduleMutationAsync({\n employmentId: internalEmploymentId,\n values: parsedValues,\n });\n\n const failures = response?.data?.failures;\n if (failures && failures.length > 0) {\n throw createStructuredError('Failed to create invoice schedule');\n }\n\n await refetchInvoiceSchedule();\n return response;\n }\n\n case 'eligibility_questionnaire': {\n try {\n const response = await createEligibilityQuestionnaireMutationAsync({\n employmentId: internalEmploymentId as string,\n payload: parsedValues,\n });\n\n const isEligibilityQuestionnaireBlocked = response?.data?.is_blocking;\n\n if (isEligibilityQuestionnaireBlocked) {\n setIncludeEligibilityQuestionnaire(false);\n setPendingNavigationStep('pricing_plan');\n throw createStructuredError(\n 'This individual is not eligible for Contractor of Record.',\n );\n }\n\n return await manageContractorCorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n });\n } finally {\n // Always refetch to keep state in sync, even on error\n await refetchContractorSubscriptions();\n }\n }\n\n default: {\n throw createStructuredError('Invalid step state');\n }\n }\n }\n\n const markContractAsReviewed = () => {\n // Notify parent to sync form state\n onContractReviewedRef.current?.();\n };\n\n const skipInvoiceSchedule = async () => {\n if (!existingInvoiceSchedule?.id) {\n throw createStructuredError('No invoice schedule to skip');\n }\n\n await skipInvoiceScheduleMutationAsync({\n scheduleId: existingInvoiceSchedule.id,\n });\n await refetchInvoiceSchedule();\n setIncludeCreateInvoiceSchedule(false);\n setStepValues({\n ...stepState.values,\n invoice_schedule: {},\n create_invoice_schedule: {},\n } as Record<StepKeys, FieldValues>);\n goToStep('invoice_schedule');\n };\n\n const previewContractorInvoice = async (values: FieldValues) => {\n if (!internalEmploymentId) {\n throw createStructuredError('Employment ID is required');\n }\n\n // fieldValues are the raw, unparsed form values (e.g. money fields still\n // in display units) — run them through the same parsing/type-coercion\n // pipeline a real submit would use before building the preview payload.\n const parsedValues = await parseFormValues(values);\n\n const response = await previewContractorInvoiceMutationAsync({\n employmentId: internalEmploymentId,\n values: parsedValues,\n });\n\n // The API returns `content` as a `data:application/pdf;base64,...` string,\n // not the `Blob | File` the OpenAPI spec's `format: binary` implies.\n const preview = response?.data?.contractor_invoice_preview as\n | ContractorInvoicePreview\n | undefined;\n\n if (!preview) {\n return undefined;\n }\n\n // Same normalization the contract document preview does — the data URI\n // prefix is what makes the content renderable in an iframe / downloadable.\n return { ...preview, content: clearBase64Data(preview.content) };\n };\n\n const handleNextStep = () => {\n if (internalEmploymentId) {\n refetchEmployment();\n }\n nextStep();\n };\n\n const handleValidation = useCallback(\n async (values: FieldValues): Promise<ValidationResult | null> => {\n if (stepState.currentStep.name === 'select_country') {\n const parsedValues = await parseJSFToValidate(\n values,\n selectCountryForm.fields,\n { isPartialValidation: false },\n );\n\n return selectCountryForm.handleValidation(parsedValues);\n }\n\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n basicInformationForm?.fields,\n { isPartialValidation: false },\n );\n return basicInformationForm?.handleValidation(parsedValues);\n }\n\n if (\n contractorOnboardingDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n contractorOnboardingDetailsForm?.fields,\n { isPartialValidation: false },\n );\n return contractorOnboardingDetailsForm?.handleValidation(parsedValues);\n }\n\n if (\n signatureSchemaForm &&\n stepState.currentStep.name === 'contract_preview'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n signatureSchemaForm?.fields,\n { isPartialValidation: true },\n );\n return signatureSchemaForm?.handleValidation(parsedValues);\n }\n\n if (\n selectContractorSubscriptionForm &&\n stepState.currentStep.name === 'pricing_plan'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n selectContractorSubscriptionForm?.fields,\n { isPartialValidation: false },\n );\n return selectContractorSubscriptionForm?.handleValidation(parsedValues);\n }\n\n if (\n eligibilityQuestionnaireForm &&\n stepState.currentStep.name === 'eligibility_questionnaire'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n eligibilityQuestionnaireForm?.fields,\n { isPartialValidation: false },\n );\n return eligibilityQuestionnaireForm?.handleValidation(parsedValues);\n }\n\n if (\n contractOriginForm &&\n stepState.currentStep.name === 'contract_origin'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n contractOriginForm?.fields,\n { isPartialValidation: false },\n );\n return contractOriginForm?.handleValidation(parsedValues);\n }\n\n if (\n invoiceScheduleForm &&\n stepState.currentStep.name === 'invoice_schedule'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n invoiceScheduleForm?.fields,\n { isPartialValidation: false },\n );\n return invoiceScheduleForm?.handleValidation(parsedValues);\n }\n\n if (\n createInvoiceScheduleForm &&\n stepState.currentStep.name === 'create_invoice_schedule'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n createInvoiceScheduleForm?.fields,\n { isPartialValidation: false },\n );\n return createInvoiceScheduleForm?.handleValidation(parsedValues);\n }\n\n return null;\n },\n [\n stepState.currentStep.name,\n selectCountryForm,\n basicInformationForm,\n contractorOnboardingDetailsForm,\n signatureSchemaForm,\n selectContractorSubscriptionForm,\n eligibilityQuestionnaireForm,\n contractOriginForm,\n invoiceScheduleForm,\n createInvoiceScheduleForm,\n ],\n );\n\n const checkFieldUpdates = useCallback(\n async (values: FieldValues) => {\n setFieldValues(values);\n // new steps or refactor ones should rely on json-schema-form-mutability\n // instead of passing fieldValues\n const stepsUsingHandleValidation = [\n 'invoice_schedule',\n 'create_invoice_schedule',\n ];\n\n if (\n includeInvoiceSchedule &&\n stepsUsingHandleValidation.includes(stepState.currentStep.name)\n ) {\n await handleValidation(values);\n }\n },\n [setFieldValues, includeInvoiceSchedule, stepState, handleValidation],\n );\n\n const isLoading = initialLoading || shouldHandleReadOnlyEmployment;\n\n return {\n /**\n * Loading state indicating if the flow is loading data\n */\n isLoading,\n\n /**\n * Current state of the form fields for the current step.\n */\n fieldValues,\n\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState,\n\n /**\n * Function to update the current form field values\n * @param values - New form values to set\n */\n checkFieldUpdates,\n\n /**\n * Function to mark the contract as reviewed\n * @param values - New form values to check\n * @returns {boolean}\n */\n markContractAsReviewed,\n\n /**\n * The existing invoice schedule for the current employment, if any.\n */\n existingInvoiceSchedule,\n\n /**\n * Skips (cancels) the existing invoice schedule and returns to the\n * invoice_schedule step.\n * @returns {Promise<void>}\n */\n skipInvoiceSchedule,\n\n /**\n * Whether a skip-invoice-schedule request is in flight.\n */\n isSkippingInvoiceSchedule: skipInvoiceScheduleMutation.isPending,\n\n /**\n * Previews a contractor invoice as a draft PDF from the given (typically\n * unsaved) form values, without persisting anything.\n * @param values - Form values to build the preview from\n * @returns {Promise<{name: string; content: string} | undefined>}\n */\n previewContractorInvoice,\n\n /**\n * Whether a preview-contractor-invoice request is in flight.\n */\n isPreviewingInvoiceSchedule: previewContractorInvoiceMutation.isPending,\n\n /**\n * Function to handle going back to the previous step\n * @returns {void}\n */\n back: previousStep,\n\n /**\n * Function to handle going to the next step\n * @returns {void}\n */\n next: handleNextStep,\n\n /**\n * Function to handle going to a specific step\n * @param step The step to go to.\n * @returns {void}\n */\n goTo: goTo,\n\n /**\n * Function to handle form submission\n * @param values - Form values to submit\n * @returns Promise resolving to the mutation result\n */\n onSubmit,\n\n /**\n * Array of form fields from the onboarding schema\n */\n fields: stepFields[stepState.currentStep.name],\n\n /**\n * Fields metadata for each step\n */\n meta: {\n fields: fieldsMetaRef.current,\n fieldsets: stepFieldsWithFlatFieldsets[stepState.currentStep.name],\n presentation: stepPresentation[stepState.currentStep.name],\n },\n\n /**\n * Function to parse form values before submission\n * @param values - Form values to parse\n * @returns Parsed form values\n */\n parseFormValues,\n\n /**\n * Indicates whether AI validation errors can be skipped (user can continue at their own risk).\n * True when there's a skippable AI validation error on services_and_deliverables field.\n * @returns {boolean}\n */\n canSkipAiValidation:\n fieldValues.services_and_deliverables_error_skippable === true,\n\n /**\n * Function to validate form values against the onboarding schema\n * @param values - Form values to validate\n * @returns Validation result or null if no schema is available\n */\n handleValidation,\n\n /**\n * Initial form values\n */\n initialValues,\n\n /**\n * Employment id\n */\n employmentId: internalEmploymentId,\n\n /**\n * Function to refetch the employment data\n * @returns {void}\n */\n refetchEmployment: refetchEmployment,\n\n /**\n * Loading state indicating if the onboarding mutation is in progress\n */\n isSubmitting:\n createEmploymentMutation.isPending ||\n updateEmploymentMutation.isPending ||\n createContractorContractDocumentMutation.isPending ||\n signContractDocumentMutation.isPending ||\n manageContractorSubscriptionMutation.isPending ||\n uploadFileMutation.isPending ||\n createEligibilityQuestionnaireMutation.isPending ||\n manageContractorCorSubscriptionMutation.isPending ||\n deleteContractorCorSubscriptionMutation.isPending ||\n setContractOriginMutation.isPending ||\n createInvoiceScheduleMutation.isPending ||\n updateInvoiceScheduleMutation.isPending,\n\n /**\n * Document preview PDF data\n */\n documentPreviewPdf,\n\n /**\n * let's the user know if the company can invite employees\n * @returns {boolean}\n */\n canInvite,\n\n /**\n * let's the user know that the employment cannot be edited, happens when employment.status is invited\n * @returns {boolean}\n */\n isEmploymentReadOnly,\n /**\n * let's the user know if the employment is invited or not\n * @returns {'invited' | 'not_invited'}\n */\n invitedStatus,\n\n /**\n * Employment data\n * @returns {Employment}\n */\n employment,\n\n /**\n * Default legal entity\n * @returns {CompanyLegalEntity}\n */\n defaultLegalEntity,\n\n /**\n * Whether the company needs to complete KYB verification before contractors can be paid.\n * Use this to show a company verification nudge banner on the review step.\n */\n needsCompanyVerification:\n openTasks?.some((a) => a.type === 'verify_company') ?? false,\n\n /**\n * Whether the company needs to set up Remote Payments.\n * Use this to show a Remote Payments setup nudge banner on the review step.\n */\n needsRemotePaymentsSetup:\n openTasks?.some((a) => a.type === 'setup_remote_payments') ?? false,\n\n /**\n * Steps array\n * @returns {Array<{name: string, index: number, visible: boolean, label: string}>}\n */\n steps: stepsArray,\n };\n};\n","import { BasicInformationFormPayload } from '@/src/flows/Onboarding/types';\nimport { EmploymentCreationResponse } from '@/src/client';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport { NormalizedFieldError } from '@/src/lib/mutations';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { ContractorOnboardingForm } from '@/src/flows/ContractorOnboarding/components/ContractorOnboardingForm';\nimport { handleStepError } from '@/src/lib/utils';\nimport { UseFormReturn } from 'react-hook-form';\n\ntype BasicInformationStepProps = {\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (payload: BasicInformationFormPayload) => void | Promise<void>;\n /*\n * The function is called when the form submission is successful.\n */\n onSuccess?: (data: EmploymentCreationResponse) => void | Promise<void>;\n /*\n * The function is called when an error occurs during form submission.\n */\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n }) => void;\n};\n\nexport function BasicInformationStep({\n onSubmit,\n onSuccess,\n onError,\n}: BasicInformationStepProps) {\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n\n const handleSubmit = async (\n payload: $TSFixMe,\n form: UseFormReturn<$TSFixMe>,\n ) => {\n try {\n const parsedValues =\n await contractorOnboardingBag.parseFormValues(payload);\n await onSubmit?.(parsedValues as BasicInformationFormPayload);\n const response = await contractorOnboardingBag.onSubmit(payload);\n if (response?.data) {\n await onSuccess?.(response?.data as EmploymentCreationResponse);\n contractorOnboardingBag?.next();\n return;\n }\n } catch (error: unknown) {\n const structuredError = handleStepError(\n error,\n contractorOnboardingBag.meta?.fields?.basic_information,\n form,\n );\n onError?.(structuredError);\n }\n };\n\n const initialValues =\n contractorOnboardingBag.stepState.values?.basic_information ||\n contractorOnboardingBag.initialValues.basic_information;\n\n return (\n <ContractorOnboardingForm\n defaultValues={initialValues}\n onSubmit={handleSubmit}\n />\n );\n}\n","import { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { useFormFields } from '@/src/context';\n\nexport function OnboardingSubmit({\n children,\n ...props\n}: PropsWithChildren<\n ButtonHTMLAttributes<HTMLButtonElement> & Record<string, unknown>\n>) {\n const { formId, contractorOnboardingBag } = useContractorOnboardingContext();\n const { components } = useFormFields();\n\n const CustomButton = components?.button;\n if (!CustomButton) {\n throw new Error(`Button component not found`);\n }\n\n return (\n <CustomButton\n {...props}\n form={formId}\n disabled={props.disabled || contractorOnboardingBag.isSubmitting}\n >\n {children}\n </CustomButton>\n );\n}\n","import { $TSFixMe, Components } from '@/src/types/remoteFlows';\nimport { NormalizedFieldError } from '@/src/lib/mutations';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { ContractorOnboardingForm } from '@/src/flows/ContractorOnboarding/components/ContractorOnboardingForm';\nimport {\n PricingPlanFormPayload,\n PricingPlanResponse,\n} from '@/src/flows/ContractorOnboarding/types';\nimport { handleStepError } from '@/src/lib/utils';\nimport { UseFormReturn } from 'react-hook-form';\n\ntype PricingPlanStepProps = {\n /**\n * Components to override the default field components used in the form.\n */\n components?: Components;\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (payload: PricingPlanFormPayload) => void | Promise<void>;\n /*\n * The function is called when the form submission is successful.\n */\n onSuccess?: (data: PricingPlanResponse) => void | Promise<void>;\n /*\n * The function is called when an error occurs during form submission.\n */\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n }) => void;\n};\n\nexport function PricingPlanStep({\n components,\n onSubmit,\n onSuccess,\n onError,\n}: PricingPlanStepProps) {\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n\n const handleSubmit = async (\n payload: $TSFixMe,\n form: UseFormReturn<$TSFixMe>,\n ) => {\n try {\n const parsedValues =\n await contractorOnboardingBag.parseFormValues(payload);\n await onSubmit?.(parsedValues as $TSFixMe);\n const response = await contractorOnboardingBag.onSubmit(payload);\n if (response?.data) {\n await onSuccess?.(response?.data as $TSFixMe); // TODO: add type\n contractorOnboardingBag?.next();\n return;\n }\n } catch (error: unknown) {\n const structuredError = handleStepError(\n error,\n contractorOnboardingBag.meta?.fields?.pricing_plan,\n form,\n );\n onError?.(structuredError);\n }\n };\n\n const initialValues =\n contractorOnboardingBag.stepState.values?.pricing_plan ||\n contractorOnboardingBag.initialValues.pricing_plan;\n\n return (\n <ContractorOnboardingForm\n components={components}\n defaultValues={initialValues}\n onSubmit={handleSubmit}\n />\n );\n}\n","import { Statement } from '@/src/components/form/Statement';\nimport {\n contractorPlusProductIdentifier,\n contractorStandardProductIdentifier,\n} from '@/src/flows/ContractorOnboarding/constants';\n\nconst CSA_DISCLAIMER = {\n [contractorStandardProductIdentifier]:\n ' Remote provides its Contractor Services Agreement (CSA) “as is”; it does not constitute legal advice or create an attorney-client relationship with Remote. Remote is not liable for the content You enter herein and You are encouraged to seek independent legal advice tailored to the specific relationship between You and Your Contractor. By use of the CSA, You release Remote from liability for any claim for damages or losses which may arise related to Your use thereof.',\n [contractorPlusProductIdentifier]:\n 'Remote provides its Contractor Services Agreement (CSA) “as is”; it does not constitute legal advice or create an attorney-client relationship with Remote. Remote is not liable for the content You enter herein and You are encouraged to seek independent legal advice tailored to the specific relationship between You and Your Contractor.',\n};\n\nexport const StatementOfWorkDisclaimer = ({\n subscription,\n}: {\n subscription: string;\n}) => {\n return (\n <Statement\n title='Contractor Services Agreement'\n description={CSA_DISCLAIMER[subscription as keyof typeof CSA_DISCLAIMER]}\n severity='info'\n />\n );\n};\n","import { $TSFixMe } from '@/src/types/remoteFlows';\nimport { NormalizedFieldError } from '@/src/lib/mutations';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { ContractorOnboardingForm } from '@/src/flows/ContractorOnboarding/components/ContractorOnboardingForm';\nimport {\n ContractorOnboardingContractDetailsFormPayload,\n ContractorOnboardingContractDetailsResponse,\n} from '@/src/flows/ContractorOnboarding/types';\nimport { StatementOfWorkDisclaimer } from '@/src/flows/ContractorOnboarding/components/StatementOfWorkDisclaimer';\nimport { isCMOrCMPlus } from '@/src/flows/ContractorOnboarding/utils';\nimport { handleStepError } from '@/src/lib/utils';\nimport { UseFormReturn } from 'react-hook-form';\n\ntype ContractDetailsStepProps = {\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (\n payload: ContractorOnboardingContractDetailsFormPayload,\n ) => void | Promise<void>;\n /*\n * The function is called when the form submission is successful.\n */\n onSuccess?: (\n data: ContractorOnboardingContractDetailsResponse,\n ) => void | Promise<void>;\n /*\n * The function is called when an error occurs during form submission.\n */\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n }) => void;\n};\n\nexport function ContractDetailsStep({\n onSubmit,\n onSuccess,\n onError,\n}: ContractDetailsStepProps) {\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n\n const handleSubmit = async (\n payload: $TSFixMe,\n form: UseFormReturn<$TSFixMe>,\n ) => {\n try {\n const parsedValues =\n await contractorOnboardingBag.parseFormValues(payload);\n await onSubmit?.(parsedValues as $TSFixMe);\n const response = await contractorOnboardingBag.onSubmit(payload);\n if (response?.data) {\n await onSuccess?.(response?.data as $TSFixMe); // TODO: add type\n contractorOnboardingBag?.next();\n return;\n }\n } catch (error: unknown) {\n const structuredError = handleStepError(\n error,\n contractorOnboardingBag.meta?.fields?.contract_details,\n form,\n );\n onError?.(structuredError);\n }\n };\n\n const initialValues =\n contractorOnboardingBag.stepState.values?.contract_details ||\n contractorOnboardingBag.initialValues.contract_details;\n\n const subscription =\n contractorOnboardingBag.stepState.values?.pricing_plan?.subscription;\n const shouldShowDisclaimer = isCMOrCMPlus(subscription);\n\n return (\n <div className='space-y-4'>\n <ContractorOnboardingForm\n defaultValues={initialValues}\n onSubmit={handleSubmit}\n />\n {shouldShowDisclaimer && (\n <StatementOfWorkDisclaimer subscription={subscription} />\n )}\n </div>\n );\n}\n","import { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { ContractorOnboardingForm } from '@/src/flows/ContractorOnboarding/components/ContractorOnboardingForm';\nimport { NormalizedFieldError } from '@/src/lib/mutations';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport {\n ContractPreviewFormPayload,\n ContractPreviewResponse,\n} from '@/src/flows/ContractorOnboarding/types';\nimport { handleStepError } from '@/src/lib/utils';\nimport { UseFormReturn } from 'react-hook-form';\n\ntype ContractPreviewStepProps = {\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (payload: ContractPreviewFormPayload) => void | Promise<void>;\n /*\n * The function is called when the form submission is successful.\n */\n onSuccess?: (data: ContractPreviewResponse) => void | Promise<void>;\n /*\n * The function is called when an error occurs during form submission.\n */\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n }) => void;\n};\n\nexport function ContractPreviewStep({\n onSubmit,\n onSuccess,\n onError,\n}: ContractPreviewStepProps) {\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n\n const handleSubmit = async (\n payload: $TSFixMe,\n form: UseFormReturn<$TSFixMe>,\n ) => {\n try {\n const parsedValues =\n await contractorOnboardingBag.parseFormValues(payload);\n await onSubmit?.(parsedValues as $TSFixMe);\n const response = await contractorOnboardingBag.onSubmit(payload);\n if (response?.data) {\n await onSuccess?.(response?.data as $TSFixMe); // TODO: add type\n contractorOnboardingBag?.next();\n return;\n }\n } catch (error: unknown) {\n const structuredError = handleStepError(\n error,\n contractorOnboardingBag.meta?.fields?.contract_preview,\n form,\n );\n onError?.(structuredError);\n }\n };\n\n const initialValues =\n contractorOnboardingBag.stepState.values?.contract_preview ||\n contractorOnboardingBag.initialValues.contract_preview;\n\n return (\n <div className='space-y-4'>\n <ContractorOnboardingForm\n defaultValues={initialValues}\n onSubmit={handleSubmit}\n />\n </div>\n );\n}\n","import { ButtonHTMLAttributes, ReactNode } from 'react';\nimport omit from 'lodash.omit';\nimport {\n useCreateReserveInvoice,\n useEmploymentInvite,\n} from '@/src/flows/Onboarding/api';\nimport { FieldError, mutationToPromise } from '@/src/lib/mutations';\nimport { SuccessResponse } from '@/src/client';\nimport { useFormFields } from '@/src/context';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { isStructuredError } from '@/src/lib/utils';\n\nexport type OnboardingInviteProps = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n 'onError'\n> & {\n onSuccess?: ({\n data,\n employmentStatus,\n }: {\n data: SuccessResponse;\n employmentStatus: 'invited' | 'created_awaiting_reserve';\n }) => void | Promise<void>;\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: FieldError[];\n }) => void;\n onSubmit?: () => void | Promise<void>;\n render: (props: { status: 'invite' | 'create_reserve' }) => ReactNode;\n} & Record<string, unknown>;\n\nexport function OnboardingInvite({\n onSubmit,\n onSuccess,\n onError,\n render,\n ...props\n}: OnboardingInviteProps) {\n const { components } = useFormFields();\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n const employmentInviteMutation = useEmploymentInvite();\n const createReserveInvoiceMutation = useCreateReserveInvoice();\n\n const { mutateAsyncOrThrow: employmentInviteMutationAsync } =\n mutationToPromise(employmentInviteMutation);\n\n const { mutateAsyncOrThrow: createReserveInvoiceMutationAsync } =\n mutationToPromise(createReserveInvoiceMutation);\n\n const isCOR = contractorOnboardingBag.employment?.contractor_type === 'cor';\n\n const isReserveFlow = isCOR && !contractorOnboardingBag.isEmploymentReadOnly;\n\n const handleSubmit = async () => {\n try {\n await onSubmit?.();\n\n if (isReserveFlow && contractorOnboardingBag.employmentId) {\n const response = await createReserveInvoiceMutationAsync({\n employment_slug: contractorOnboardingBag.employmentId as string,\n });\n if (response?.data) {\n await onSuccess?.({\n data: response,\n employmentStatus: 'created_awaiting_reserve',\n });\n\n contractorOnboardingBag.refetchEmployment();\n return;\n }\n } else if (contractorOnboardingBag.employmentId) {\n const data = await employmentInviteMutationAsync({\n employment_id: contractorOnboardingBag.employmentId,\n });\n if (data) {\n await onSuccess?.({\n data: data,\n employmentStatus: 'invited',\n });\n contractorOnboardingBag.refetchEmployment();\n }\n }\n } catch (error: unknown) {\n if (isStructuredError(error)) {\n onError?.(omit(error, 'response'));\n } else {\n onError?.({\n error: error as Error,\n rawError: error as Record<string, unknown>,\n fieldErrors: [],\n });\n }\n }\n };\n\n const CustomButton = components?.button;\n if (!CustomButton) {\n throw new Error(`Button component not found`);\n }\n\n const disabled =\n employmentInviteMutation.isPending ||\n createReserveInvoiceMutation.isPending ||\n !contractorOnboardingBag.canInvite ||\n props.disabled;\n\n return (\n <CustomButton\n {...props}\n disabled={disabled}\n onClick={(evt) => {\n handleSubmit();\n props.onClick?.(evt);\n }}\n >\n {render({\n status: isReserveFlow ? 'create_reserve' : 'invite',\n })}\n </CustomButton>\n );\n}\n","import { ButtonHTMLAttributes, useState } from 'react';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { Drawer } from '@/src/components/shared/drawer/Drawer';\nimport { useFormFields } from '@/src/context';\n\ntype ContractReviewButtonProps = {\n render: (props: { reviewCompleted: boolean }) => React.ReactNode;\n} & ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport function ContractReviewButton({\n render,\n onClick,\n ...props\n}: ContractReviewButtonProps) {\n const [isOpen, setIsOpen] = useState(false);\n const { formId, contractorOnboardingBag, formRef } =\n useContractorOnboardingContext();\n const { components } = useFormFields();\n\n const CustomButton = components?.button;\n if (!CustomButton) {\n throw new Error(`Button component not found`);\n }\n\n const CustomPdfViewer = components?.pdfViewer;\n if (!CustomPdfViewer) {\n throw new Error(`PDFViewer component not found`);\n }\n\n const reviewCompleted = Boolean(\n contractorOnboardingBag.fieldValues?.review_completed,\n );\n const pdfContent = contractorOnboardingBag.documentPreviewPdf\n ?.contract_document.content as unknown as string;\n\n const handleOpen = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (!reviewCompleted) {\n e.preventDefault();\n setIsOpen(true);\n onClick?.(e);\n }\n };\n\n const handleClose = () => {\n setIsOpen(false);\n\n // Sync with the form if it's available\n if (formRef?.setValue?.current) {\n formRef.setValue.current('review_completed', true);\n }\n };\n\n const disabled = props.disabled || contractorOnboardingBag.isSubmitting;\n\n return (\n <Drawer\n open={isOpen}\n onOpenChange={handleClose}\n title='Contract Document'\n // Matches the invoice preview drawers: a side panel rather than the bottom sheet\n // `DrawerContent`'s base classes assume for every direction.\n className='top-0 bottom-0 left-auto right-0 h-full max-h-none w-full max-w-[900px] rounded-t-none flex flex-col'\n trigger={\n <CustomButton\n {...props}\n type={reviewCompleted ? 'submit' : 'button'}\n form={formId}\n onClick={handleOpen}\n disabled={disabled}\n >\n {render({ reviewCompleted })}\n </CustomButton>\n }\n >\n {pdfContent && <CustomPdfViewer base64Data={pdfContent} />}\n </Drawer>\n );\n}\n","import { $TSFixMe } from '@/src/types/remoteFlows';\nimport { NormalizedFieldError } from '@/src/lib/mutations';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { ContractorOnboardingForm } from '@/src/flows/ContractorOnboarding/components/ContractorOnboardingForm';\nimport { handleStepError } from '@/src/lib/utils';\nimport {\n EligibilityQuestionnaireFormPayload,\n EligibilityQuestionnaireResponse,\n} from '@/src/flows/ContractorOnboarding/types';\nimport { UseFormReturn } from 'react-hook-form';\n\ntype EligibilityQuestionnaireStepProps = {\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (\n payload: EligibilityQuestionnaireFormPayload,\n ) => void | Promise<void>;\n /*\n * The function is called when the form submission is successful.\n */\n onSuccess?: (data: EligibilityQuestionnaireResponse) => void | Promise<void>;\n /*\n * The function is called when an error occurs during form submission.\n */\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n }) => void;\n};\n\nexport function EligibilityQuestionnaireStep({\n onSubmit,\n onSuccess,\n onError,\n}: EligibilityQuestionnaireStepProps) {\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n\n const handleSubmit = async (\n payload: $TSFixMe,\n form: UseFormReturn<$TSFixMe>,\n ) => {\n try {\n const parsedValues =\n await contractorOnboardingBag.parseFormValues(payload);\n await onSubmit?.(parsedValues as EligibilityQuestionnaireFormPayload);\n const response = await contractorOnboardingBag.onSubmit(payload);\n\n if (response?.data) {\n await onSuccess?.(response?.data as EligibilityQuestionnaireResponse);\n if (!(response as $TSFixMe)?._skipNextStep) {\n contractorOnboardingBag?.next();\n }\n return;\n }\n } catch (error: unknown) {\n const structuredError = handleStepError(\n error,\n contractorOnboardingBag.meta?.fields?.eligibility_questionnaire,\n form,\n );\n onError?.(structuredError);\n }\n };\n\n const initialValues =\n contractorOnboardingBag.stepState.values?.eligibility_questionnaire ||\n contractorOnboardingBag.initialValues.eligibility_questionnaire;\n\n return (\n <ContractorOnboardingForm\n defaultValues={initialValues}\n onSubmit={handleSubmit}\n />\n );\n}\n","import { useFormFields } from '@/src/context';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { ButtonHTMLAttributes } from 'react';\nimport { NormalizedFieldError } from '@/src/lib/mutations';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\n\ntype SaveDraftButtonProps = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n 'onError'\n> & {\n onSuccess?: () => void | Promise<void>;\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n }) => void;\n};\n\nexport const SaveDraftButton = ({\n onSuccess,\n onError,\n className,\n children,\n disabled = false,\n ...props\n}: SaveDraftButtonProps) => {\n const { contractorOnboardingBag, formId } = useContractorOnboardingContext();\n\n const { components } = useFormFields();\n\n const handleSaveDraft = async () => {\n const form = document.getElementById(formId);\n if (form) {\n const submitEvent = new Event('submit', {\n bubbles: true,\n cancelable: true,\n });\n (submitEvent as $TSFixMe).isDraftSubmission = true;\n (submitEvent as $TSFixMe).draftCallbacks = { onSuccess, onError };\n form.dispatchEvent(submitEvent);\n }\n };\n\n const CustomButton = components?.button;\n if (!CustomButton) {\n throw new Error(`Button component not found`);\n }\n\n return (\n <CustomButton\n {...props}\n onClick={handleSaveDraft}\n disabled={disabled || contractorOnboardingBag.isSubmitting}\n className={className}\n >\n {children}\n </CustomButton>\n );\n};\n","import { useFormFields } from '@/src/context';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { ButtonHTMLAttributes } from 'react';\nimport { NormalizedFieldError } from '@/src/lib/mutations';\nimport { handleStepError } from '@/src/lib/utils';\n\ntype SkipInvoiceScheduleButtonProps = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n 'onError'\n> & {\n onSuccess?: () => void | Promise<void>;\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n }) => void;\n};\n\n/**\n * Cancels the existing scheduled invoice (marks it as `deleted`) and returns\n * the wizard to the invoice_schedule step. Only meaningful once an existing\n * schedule has been loaded on the create_invoice_schedule step.\n */\nexport const SkipInvoiceScheduleButton = ({\n onSuccess,\n onError,\n className,\n children,\n disabled = false,\n ...props\n}: SkipInvoiceScheduleButtonProps) => {\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n\n const { components } = useFormFields();\n\n const handleSkip = async () => {\n try {\n await contractorOnboardingBag.skipInvoiceSchedule();\n await onSuccess?.();\n } catch (error: unknown) {\n const structuredError = handleStepError(\n error,\n contractorOnboardingBag.meta?.fields?.create_invoice_schedule,\n );\n onError?.(structuredError);\n }\n };\n\n const CustomButton = components?.button;\n if (!CustomButton) {\n throw new Error(`Button component not found`);\n }\n\n return (\n <CustomButton\n {...props}\n onClick={handleSkip}\n disabled={\n disabled ||\n !contractorOnboardingBag.existingInvoiceSchedule?.id ||\n contractorOnboardingBag.isSkippingInvoiceSchedule\n }\n className={className}\n >\n {children}\n </CustomButton>\n );\n};\n","import { useFormFields } from '@/src/context';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { ButtonHTMLAttributes, useState } from 'react';\nimport { NormalizedFieldError } from '@/src/lib/mutations';\nimport { handleStepError } from '@/src/lib/utils';\nimport { ContractorInvoicePreview } from '@/src/flows/ContractorOnboarding/types';\nimport { Drawer } from '@/src/components/shared/drawer/Drawer';\n\ntype PreviewInvoiceButtonProps = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n 'onError'\n> & {\n onSuccess?: (data: ContractorInvoicePreview) => void | Promise<void>;\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n }) => void;\n};\n\n/**\n * Generates a draft (non-persisted) PDF preview of a contractor invoice from\n * the current, unsaved create_invoice_schedule form values, and shows it in a\n * drawer through the `pdfViewer` component.\n *\n * `onSuccess` receives the same preview document, for consumers that want to do\n * something else with it as well. Note that `preview.content` is a\n * `data:application/pdf;base64,...` URI: browsers block top-level navigation to\n * the `data:` scheme, so it can be rendered in an `iframe`/`embed` or handed to\n * an `<a download>`, but not passed to `window.open`.\n */\nexport const PreviewInvoiceButton = ({\n onSuccess,\n onError,\n className,\n children,\n disabled = false,\n ...props\n}: PreviewInvoiceButtonProps) => {\n const [preview, setPreview] = useState<ContractorInvoicePreview | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n\n const { components } = useFormFields();\n\n const handlePreview = async () => {\n try {\n const previewDocument =\n await contractorOnboardingBag.previewContractorInvoice(\n contractorOnboardingBag.fieldValues,\n );\n if (previewDocument) {\n setPreview(previewDocument);\n setIsOpen(true);\n await onSuccess?.(previewDocument);\n }\n } catch (error: unknown) {\n const structuredError = handleStepError(\n error,\n contractorOnboardingBag.meta?.fields?.create_invoice_schedule,\n );\n onError?.(structuredError);\n }\n };\n\n const CustomButton = components?.button;\n if (!CustomButton) {\n throw new Error(`Button component not found`);\n }\n\n const CustomPdfViewer = components?.pdfViewer;\n if (!CustomPdfViewer) {\n throw new Error(`PDFViewer component not found`);\n }\n\n return (\n <Drawer\n open={isOpen}\n // The drawer is opened by handlePreview once the PDF is available, so the\n // trigger's own open request is ignored — only close requests are honored.\n onOpenChange={(open) => {\n if (!open) {\n setIsOpen(false);\n }\n }}\n title='Invoice Preview'\n // A side panel, not the bottom sheet `DrawerContent`'s base classes assume: the\n // primitive positions every drawer along the bottom regardless of `direction`, so the\n // inset is overridden here rather than in the shared drawer, which other flows use.\n className='top-0 bottom-0 left-auto right-0 h-full max-h-none w-full max-w-[900px] rounded-t-none flex flex-col'\n trigger={\n <CustomButton\n {...props}\n type='button'\n onClick={handlePreview}\n disabled={\n disabled || contractorOnboardingBag.isPreviewingInvoiceSchedule\n }\n className={className}\n >\n {children}\n </CustomButton>\n }\n >\n {preview && (\n <CustomPdfViewer base64Data={preview.content} fileName={preview.name} />\n )}\n </Drawer>\n );\n};\n","import { $TSFixMe, Components } from '@/src/types/remoteFlows';\nimport { NormalizedFieldError } from '@/src/lib/mutations';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { ContractorOnboardingForm } from '@/src/flows/ContractorOnboarding/components/ContractorOnboardingForm';\nimport { handleStepError } from '@/src/lib/utils';\nimport { UseFormReturn } from 'react-hook-form';\n\ntype ContractOriginStepProps = {\n /**\n * Components to override the default field components used in the form.\n */\n components?: Components;\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (payload: { contract_origin: string }) => void | Promise<void>;\n /*\n * The function is called when the form submission is successful.\n */\n onSuccess?: (data: { contractOrigin: string }) => void | Promise<void>;\n /*\n * The function is called when an error occurs during form submission.\n */\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n }) => void;\n};\n\nexport function ContractOriginStep({\n components,\n onSubmit,\n onSuccess,\n onError,\n}: ContractOriginStepProps) {\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n\n const handleSubmit = async (\n payload: $TSFixMe,\n form: UseFormReturn<$TSFixMe>,\n ) => {\n try {\n const parsedValues =\n await contractorOnboardingBag.parseFormValues(payload);\n await onSubmit?.(parsedValues as { contract_origin: string });\n const response = await contractorOnboardingBag.onSubmit(payload);\n\n if (response?.data) {\n await onSuccess?.(response.data as { contractOrigin: string });\n contractorOnboardingBag?.next();\n return;\n }\n } catch (error: unknown) {\n const structuredError = handleStepError(\n error,\n contractorOnboardingBag.meta?.fields?.contract_origin,\n form,\n );\n onError?.(structuredError);\n }\n };\n\n const initialValues =\n contractorOnboardingBag.stepState.values?.contract_origin ||\n contractorOnboardingBag.initialValues.contract_origin;\n\n return (\n <ContractorOnboardingForm\n components={components}\n defaultValues={initialValues}\n onSubmit={handleSubmit}\n />\n );\n}\n","import { $TSFixMe, Components } from '@/src/types/remoteFlows';\nimport { NormalizedFieldError } from '@/src/lib/mutations';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { ContractorOnboardingForm } from '@/src/flows/ContractorOnboarding/components/ContractorOnboardingForm';\nimport { handleStepError } from '@/src/lib/utils';\nimport { UseFormReturn } from 'react-hook-form';\nimport {\n InvoiceScheduleFormPayload,\n InvoiceScheduleResponse,\n} from '@/src/flows/ContractorOnboarding/types';\n\ntype InvoiceScheduleStepProps = {\n /**\n * Components to override the default field components used in the form.\n */\n components?: Components;\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (payload: InvoiceScheduleFormPayload) => void | Promise<void>;\n /*\n * The function is called when the form submission is successful.\n */\n onSuccess?: (data: InvoiceScheduleResponse) => void | Promise<void>;\n /*\n * The function is called when an error occurs during form submission.\n */\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n }) => void;\n};\n\nexport function InvoiceScheduleStep({\n components,\n onSubmit,\n onSuccess,\n onError,\n}: InvoiceScheduleStepProps) {\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n\n const handleSubmit = async (\n payload: $TSFixMe,\n form: UseFormReturn<$TSFixMe>,\n ) => {\n try {\n const parsedValues =\n await contractorOnboardingBag.parseFormValues(payload);\n await onSubmit?.(parsedValues as InvoiceScheduleFormPayload);\n const response = await contractorOnboardingBag.onSubmit(payload);\n\n if (response?.data) {\n await onSuccess?.(response.data as InvoiceScheduleResponse);\n contractorOnboardingBag?.next();\n return;\n }\n } catch (error: unknown) {\n const structuredError = handleStepError(\n error,\n contractorOnboardingBag.meta?.fields?.invoice_schedule,\n form,\n );\n onError?.(structuredError);\n }\n };\n\n const initialValues =\n contractorOnboardingBag.stepState.values?.invoice_schedule ||\n contractorOnboardingBag.initialValues.invoice_schedule;\n\n return (\n <ContractorOnboardingForm\n components={components}\n defaultValues={initialValues}\n onSubmit={handleSubmit}\n />\n );\n}\n","import { $TSFixMe, Components } from '@/src/types/remoteFlows';\nimport { NormalizedFieldError } from '@/src/lib/mutations';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { ContractorOnboardingForm } from '@/src/flows/ContractorOnboarding/components/ContractorOnboardingForm';\nimport { handleStepError } from '@/src/lib/utils';\nimport { UseFormReturn } from 'react-hook-form';\n\ntype CreateInvoiceScheduleStepProps = {\n /**\n * Components to override the default field components used in the form.\n */\n components?: Components;\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (payload: $TSFixMe) => void | Promise<void>;\n /*\n * The function is called when the form submission is successful.\n */\n onSuccess?: (data: $TSFixMe) => void | Promise<void>;\n /*\n * The function is called when an error occurs during form submission.\n */\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n }) => void;\n};\n\nexport function CreateInvoiceScheduleStep({\n components,\n onSubmit,\n onSuccess,\n onError,\n}: CreateInvoiceScheduleStepProps) {\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n\n const handleSubmit = async (\n payload: $TSFixMe,\n form: UseFormReturn<$TSFixMe>,\n ) => {\n try {\n const parsedValues =\n await contractorOnboardingBag.parseFormValues(payload);\n await onSubmit?.(parsedValues);\n const response = await contractorOnboardingBag.onSubmit(payload);\n\n if (response?.data) {\n await onSuccess?.(response.data);\n contractorOnboardingBag?.next();\n return;\n }\n } catch (error: unknown) {\n const structuredError = handleStepError(\n error,\n contractorOnboardingBag.meta?.fields?.create_invoice_schedule,\n form,\n );\n onError?.(structuredError);\n }\n };\n\n const initialValues =\n contractorOnboardingBag.stepState.values?.create_invoice_schedule ||\n contractorOnboardingBag.initialValues.create_invoice_schedule;\n\n return (\n <ContractorOnboardingForm\n components={components}\n defaultValues={initialValues}\n onSubmit={handleSubmit}\n />\n );\n}\n","import { UseFormSetValue } from 'react-hook-form';\nimport { useId, useRef, useMemo } from 'react';\nimport { OnboardingBack } from '@/src/flows/ContractorOnboarding/components/OnboardingBack';\nimport { SelectCountryStep } from '@/src/flows/ContractorOnboarding/components/SelectCountryStep';\nimport { ContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { useContractorOnboarding } from '@/src/flows/ContractorOnboarding/hooks';\nimport { ContractorOnboardingFlowProps } from '@/src/flows/ContractorOnboarding/types';\nimport { BasicInformationStep } from '@/src/flows/ContractorOnboarding/components/BasicInformationStep';\nimport { OnboardingSubmit } from '@/src/flows/ContractorOnboarding/components/OnboardingSubmit';\nimport { PricingPlanStep } from '@/src/flows/ContractorOnboarding/components/PricingPlan';\nimport { ContractDetailsStep } from '@/src/flows/ContractorOnboarding/components/ContractDetailsStep';\nimport { ContractPreviewStep } from '@/src/flows/ContractorOnboarding/components/ContractPreviewStep';\nimport { OnboardingInvite } from '@/src/flows/ContractorOnboarding/components/OnboardingInvite';\nimport { ContractReviewButton } from '@/src/flows/ContractorOnboarding/components/ContractReviewButton';\nimport { EligibilityQuestionnaireStep } from '@/src/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep';\nimport { SaveDraftButton } from '@/src/flows/ContractorOnboarding/components/SaveDraftButton';\nimport { SkipInvoiceScheduleButton } from '@/src/flows/ContractorOnboarding/components/SkipInvoiceScheduleButton';\nimport { PreviewInvoiceButton } from '@/src/flows/ContractorOnboarding/components/PreviewInvoiceButton';\nimport { ContractOriginStep } from '@/src/flows/ContractorOnboarding/components/ContractOriginStep';\nimport { InvoiceScheduleStep } from '@/src/flows/ContractorOnboarding/components/InvoiceScheduleStep';\nimport { CreateInvoiceScheduleStep } from '@/src/flows/ContractorOnboarding/components/CreateInvoiceScheduleStep';\n\nexport const ContractorOnboardingFlow = ({\n render,\n employmentId,\n externalId,\n partnerExternalId,\n countryCode,\n skipSteps,\n initialValues,\n options,\n}: ContractorOnboardingFlowProps) => {\n const formId = useId();\n // Store form's setValue method in ref to allow sibling components\n // to update form state directly (e.g., ContractReviewButton setting review_completed)\n const setValueRef = useRef<\n UseFormSetValue<Record<string, unknown>> | undefined\n >(undefined);\n const formRef = useMemo(() => ({ setValue: setValueRef }), []);\n\n const contractorOnboardingBag = useContractorOnboarding({\n options: {\n ...options,\n onContractReviewed: () => {\n // Sync with internal form when contract is marked as reviewed\n if (setValueRef.current) {\n setValueRef.current('review_completed', true);\n }\n },\n },\n employmentId,\n externalId,\n partnerExternalId,\n countryCode,\n skipSteps,\n initialValues,\n });\n\n return (\n <ContractorOnboardingContext.Provider\n value={{ contractorOnboardingBag, formId, formRef }}\n >\n {render({\n contractorOnboardingBag,\n components: {\n BasicInformationStep: BasicInformationStep,\n SelectCountryStep: SelectCountryStep,\n BackButton: OnboardingBack,\n SubmitButton: OnboardingSubmit,\n PricingPlanStep: PricingPlanStep,\n EligibilityQuestionnaireStep: EligibilityQuestionnaireStep,\n ContractOriginStep: ContractOriginStep,\n InvoiceScheduleStep: InvoiceScheduleStep,\n CreateInvoiceScheduleStep: CreateInvoiceScheduleStep,\n ContractDetailsStep: ContractDetailsStep,\n ContractPreviewStep: ContractPreviewStep,\n OnboardingInvite: OnboardingInvite,\n ContractReviewButton: ContractReviewButton,\n SaveDraftButton: SaveDraftButton,\n SkipInvoiceScheduleButton: SkipInvoiceScheduleButton,\n PreviewInvoiceButton: PreviewInvoiceButton,\n },\n })}\n </ContractorOnboardingContext.Provider>\n );\n};\n"],"mappings":"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V,gBAAiB,CACf,YAAa,GACb,MAAO,CACL,CACE,MAAO,qBACP,YACE,oLACF,MAAO,+BACT,EACA,CACE,MAAO,uBACP,YAAa,yCACb,MAAO,sBACT,CACF,EACA,MAAO,mBACP,KAAM,SACN,qBAAsB,CACpB,UAAW,SACX,UAAW,OACb,CACF,CACF,EACA,SAAU,CAAC,iBAAiB,EAC5B,aAAc,CACZ,WAAY,GACd,CACF,EC9Ba,GAAwB,CACnC,KAAM,SACN,WAAY,CACV,4BAA6B,CAC3B,YACE,mFACF,MAAO,CACL,CACE,MAAO,WACP,YACE,gEACF,MAAO,6BACT,EACA,CACE,MAAO,SACP,YACE,sEACF,MAAO,cACT,CACF,EACA,MAAO,mBACP,KAAM,SACN,qBAAsB,CACpB,UAAW,SACX,UAAW,QACX,KAAM,CACJ,WAAY,CACV,GAAI,cACJ,aAAc,+BAChB,CACF,CACF,CACF,CACF,EACA,SAAU,CAAC,6BAA6B,EACxC,aAAc,CACZ,WAAY,GACd,CACF,ECtCa,GAAyC,CACpD,KAAM,CACJ,QAAS,EACT,OAAQ,CACN,qBAAsB,GACtB,WAAY,CACV,aAAc,CACZ,MAAO,gBACP,KAAM,SACN,MAAO,CAAC,EACR,qBAAsB,CACpB,UAAW,OACb,CACF,CACF,EACA,SAAU,CAAC,cAAc,EACzB,KAAM,SACN,cAAe,CAAC,cAAc,EAC9B,aAAc,CACZ,WAAY,GACd,CACF,CACF,CACF,ECvBa,EACX,6DACW,EACX,yDACW,EACX,wDACW,GACX,6CAIW,GAAsD,CACjE,GAAI,EACJ,MAAO,EACP,IAAK,EACL,IAAK,EACP,EAEa,GAAoB,QAIpB,GACX,kSAEW,GACX,yPAEI,GAA6B,CACjC,CACE,MAAO,wDACP,GAAI,wBACN,EACA,CACE,MAAO,4CACP,GAAI,2BACN,EACA,CACE,MAAO,iEACP,GAAI,kCACN,EACA,CACE,MAAO,+DACP,GAAI,6BACN,EACA,CACE,MAAO,kEACP,GAAI,6BACN,EACA,CACE,MAAO,kEACP,GAAI,gBACN,CACF,EAEa,GAAwB,CACnC,CACE,MACE,4FACF,YACE,qFACF,GAAI,4CACN,EACA,CACE,MAAO,6DACP,GAAI,oBACN,EACA,CACE,MAAO,6CACP,GAAI,gCACN,EACA,CACE,MAAO,iDACP,GAAI,iCACN,EACA,CACE,MAAO,2DACP,GAAI,qCACN,EACA,CACE,MAAO,6BACP,GAAI,2BACN,EACA,CACE,MAAO,2CACP,GAAI,4BACN,EACA,CACE,MAAO,sCACP,GAAI,4BACN,EACA,CACE,MAAO,gEACP,GAAI,0CACN,EACA,CACE,MAAO,+CACP,GAAI,6CACN,EACA,CACE,MAAO,+BACP,GAAI,6BACN,CACF,EAKa,GAGT,EACD,GAAsC,IAEtC,GAAkC,IAClC,GAAuB,EAC1B,EAEa,GAAqB,EAC/B,GAAsC,CACrC,MAAO,wBACP,SAAU,yCACV,UAAW,CACT,kGACA,yFACA,gCACF,EACA,iBAAkB,qCACpB,GACC,GAAkC,CACjC,MAAO,6BACP,SAAU,qDACV,UAAW,CACT,wEACA,yFACA,gEACA,2BACF,EACA,iBAAkB,qCACpB,GACC,GAAuB,CACtB,MAAO,uBACP,SAAU,+DACV,UAAW,CACT,0EACA,6FACA,4FACF,EACA,iBAAkB,wCACpB,GACC,IAAuB,CACtB,MAAO,qBACP,SAAU,6CACV,UAAW,CACT,sDACA,kDACA,iDACF,EACA,iBAAkB,sCACpB,CACF,EAEa,GAAmD,EAC7D,GAAsC,CACrC,sCACA,+BACA,wDACA,sDACA,kCACA,2DACF,GACC,GAAkC,CACjC,sCACA,+CACA,yCACA,oEACF,GACC,GAAuB,CACtB,6CACA,+DACA,+BACA,+BACA,0FACF,CACF,ECpKa,OAAsB,CACjC,GAAM,CAAE,UAAW,EAAU,EAC7B,OAAO,EAAY,CACjB,WAAa,GACJ,GAAgB,CACb,SACR,KAAM,EACN,QAAS,CACP,cAAe,EACjB,CACF,CAAC,CAEL,CAAC,CACH,EAOa,GAAmB,GAAe,CAC7C,GAAM,CAAE,UAAW,EAAU,EAC7B,OAAO,EAAS,CACd,SAAU,CAAC,gBAAiB,CAAE,EAC9B,QAAS,SAAY,CACnB,IAAM,EAAS,MAAM,EAAa,CACxB,SACR,KAAM,C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"}
|