@remoteoss/remote-flows 0.9.0 → 0.11.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/README.md +31 -0
- package/dist/{chunk-F6FS5DBQ.js → chunk-3CUVTXRN.js} +2 -2
- package/dist/chunk-3LOVCTCN.js +2 -0
- package/dist/chunk-3LOVCTCN.js.map +1 -0
- package/dist/{chunk-Y6FMG3PD.js → chunk-3Z5ZZUO4.js} +2 -2
- package/dist/{chunk-Y6FMG3PD.js.map → chunk-3Z5ZZUO4.js.map} +1 -1
- package/dist/chunk-47VYBPE2.js +2 -0
- package/dist/chunk-47VYBPE2.js.map +1 -0
- package/dist/{chunk-R6OW77R6.js → chunk-4OEBYZLZ.js} +2 -2
- package/dist/chunk-5E44DBDD.js +2 -0
- package/dist/chunk-5E44DBDD.js.map +1 -0
- package/dist/{chunk-5CCAARDB.js → chunk-5GUK7MEN.js} +2 -2
- package/dist/chunk-5I6VWJSC.js +2 -0
- package/dist/chunk-5I6VWJSC.js.map +1 -0
- package/dist/chunk-5KKDB7Q7.js +2 -0
- package/dist/chunk-5KKDB7Q7.js.map +1 -0
- package/dist/chunk-77AF2QOD.js +2 -0
- package/dist/chunk-77AF2QOD.js.map +1 -0
- package/dist/chunk-7TIIT23F.js +2 -0
- package/dist/chunk-7TIIT23F.js.map +1 -0
- package/dist/chunk-AIB34WOA.js +2 -0
- package/dist/chunk-AIB34WOA.js.map +1 -0
- package/dist/{chunk-D27IFECQ.js → chunk-AJVD3O4D.js} +2 -2
- package/dist/chunk-ANCX2TZH.js +2 -0
- package/dist/{chunk-DEGMU7EO.js.map → chunk-ANCX2TZH.js.map} +1 -1
- package/dist/chunk-AVA4MEFP.js +2 -0
- package/dist/chunk-AVA4MEFP.js.map +1 -0
- package/dist/{chunk-WFET4MKU.js → chunk-BDZEPXIS.js} +2 -2
- package/dist/{chunk-FKV6J4FL.js → chunk-BY5S6EQJ.js} +2 -2
- package/dist/chunk-CHSULXMN.js +2 -0
- package/dist/chunk-CHSULXMN.js.map +1 -0
- package/dist/{chunk-SHFIZENN.js → chunk-CSK44J23.js} +2 -2
- package/dist/{chunk-UPRUP24B.js → chunk-D25W2VVQ.js} +2 -2
- package/dist/chunk-D25W2VVQ.js.map +1 -0
- package/dist/{chunk-2UPDFZ7P.js → chunk-DHT7HDHC.js} +2 -2
- package/dist/chunk-DR7VGNO2.js +2 -0
- package/dist/chunk-DY5CSCPI.js +2 -0
- package/dist/chunk-DY5CSCPI.js.map +1 -0
- package/dist/{chunk-3LGFQNYW.js → chunk-EE54SK65.js} +2 -2
- package/dist/chunk-EGQJ7UBR.js +2 -0
- package/dist/chunk-EGQJ7UBR.js.map +1 -0
- package/dist/chunk-EW24LQRE.js +2 -0
- package/dist/chunk-EW24LQRE.js.map +1 -0
- package/dist/chunk-F6U6WDMP.js +2 -0
- package/dist/chunk-F6U6WDMP.js.map +1 -0
- package/dist/{chunk-GXAX4KMX.js → chunk-FBYLX5NA.js} +2 -2
- package/dist/{chunk-A27ASO7K.js → chunk-G7WJUXZU.js} +2 -2
- package/dist/chunk-GAOBYAJE.js +2 -0
- package/dist/chunk-GAOBYAJE.js.map +1 -0
- package/dist/{chunk-OGAVWGSY.js → chunk-GBD3OCAW.js} +2 -2
- package/dist/chunk-GCVZ4AY2.js +2 -0
- package/dist/chunk-GCVZ4AY2.js.map +1 -0
- package/dist/{chunk-UNTCBVHB.js → chunk-GGBEM452.js} +2 -2
- package/dist/chunk-GJQ33XQ4.js +2 -0
- package/dist/chunk-GJQ33XQ4.js.map +1 -0
- package/dist/{chunk-Q5ZUVH3U.js → chunk-GK3OO5SX.js} +2 -2
- package/dist/chunk-GMA7VTFX.js +2 -0
- package/dist/chunk-GMA7VTFX.js.map +1 -0
- package/dist/{chunk-UIAPHRJJ.js → chunk-H2SFR2GL.js} +2 -2
- package/dist/chunk-ILMVHOL2.js +2 -0
- package/dist/chunk-ILMVHOL2.js.map +1 -0
- package/dist/{chunk-LWJQO625.js → chunk-KG72IMCX.js} +2 -2
- package/dist/{chunk-FBA3PMRV.js → chunk-KHVEYIMF.js} +2 -2
- package/dist/{chunk-6P4XGSZ6.js → chunk-LIGRV2J5.js} +2 -2
- package/dist/chunk-LT4ALDRM.js +2 -0
- package/dist/chunk-LT4ALDRM.js.map +1 -0
- package/dist/{chunk-G4NBJTHB.js → chunk-MDSGLUUB.js} +2 -2
- package/dist/{chunk-T6TIHUBQ.js → chunk-N7PSO5ZD.js} +2 -2
- package/dist/chunk-NBCZF2FO.js +2 -0
- package/dist/chunk-NBCZF2FO.js.map +1 -0
- package/dist/{chunk-YYNQTHEX.js → chunk-NC3VBBHC.js} +2 -2
- package/dist/chunk-NVJYAX22.js +2 -0
- package/dist/chunk-NVJYAX22.js.map +1 -0
- package/dist/chunk-QI6LLU2N.js +2 -0
- package/dist/chunk-QI6LLU2N.js.map +1 -0
- package/dist/{chunk-OTTIURMN.js → chunk-QQ7KPOLK.js} +2 -2
- package/dist/{chunk-5O4S4YZN.js → chunk-QVN32YBL.js} +2 -2
- package/dist/chunk-R2SDR47E.js +2 -0
- package/dist/chunk-R2SDR47E.js.map +1 -0
- package/dist/{chunk-HQMY3X2R.js → chunk-R7L6CI5J.js} +2 -2
- package/dist/{chunk-A4ROBLPX.js → chunk-RMVG6YBI.js} +2 -2
- package/dist/{chunk-D23KLJQM.js → chunk-RUVKAPO5.js} +2 -2
- package/dist/{chunk-76UIUPEL.js → chunk-S7ZMHO5I.js} +2 -2
- package/dist/{chunk-S62STPBT.js → chunk-SQICIS7B.js} +2 -2
- package/dist/{chunk-7CDCXJSI.js → chunk-SZOOX2KY.js} +2 -2
- package/dist/chunk-T3L72MV6.js +2 -0
- package/dist/chunk-T3L72MV6.js.map +1 -0
- package/dist/{chunk-HQKBSMGN.js → chunk-TJK6MTGG.js} +2 -2
- package/dist/chunk-TPSZDGQJ.js +2 -0
- package/dist/chunk-TPSZDGQJ.js.map +1 -0
- package/dist/{chunk-4F4I7F2P.js → chunk-VD65AUOI.js} +2 -2
- package/dist/{chunk-WJA7PQ2J.js → chunk-WYXN7WW6.js} +2 -2
- package/dist/chunk-XI3AQ3RM.js +2 -0
- package/dist/chunk-XI3AQ3RM.js.map +1 -0
- package/dist/chunk-Y4VNFI7K.js +2 -0
- package/dist/chunk-Y4VNFI7K.js.map +1 -0
- package/dist/{chunk-7F3TBWYV.js → chunk-YRLBMLSA.js} +2 -2
- package/dist/chunk-Z3BMF4BO.js +1 -0
- package/dist/chunk-ZHL2SULA.js +2 -0
- package/dist/chunk-ZHL2SULA.js.map +1 -0
- package/dist/{chunk-IXVV7KPW.js → chunk-ZSBWDLBS.js} +2 -2
- package/dist/flows/ContractAmendment/ContractAmendmentBack.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentSubmit.js +1 -1
- package/dist/flows/ContractAmendment/context.d.ts +4 -4
- package/dist/flows/ContractAmendment/hooks.d.ts +3 -3
- package/dist/flows/ContractAmendment/hooks.js +1 -1
- package/dist/flows/ContractAmendment/index.d.ts +1 -1
- package/dist/flows/ContractAmendment/index.js +1 -1
- package/dist/flows/ContractAmendment/utils.d.ts +1 -1
- package/dist/flows/CostCalculator/CostCalculatorDisclaimer.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +6 -8
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +2 -4
- package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorResetButton.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorSubmitButton.js +1 -1
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +42 -0
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +2 -0
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js.map +1 -0
- package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorExtraStatutoryPaymentsBreakdown.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorIndirectTax.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.d.ts +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.js +1 -1
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +9 -0
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.js +2 -0
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.js.map +1 -0
- package/dist/flows/CostCalculator/api.d.ts +1 -1
- package/dist/flows/CostCalculator/api.js +1 -1
- package/dist/flows/CostCalculator/components/SalaryField.d.ts +2 -1
- package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
- package/dist/flows/CostCalculator/context.d.ts +5 -5
- package/dist/flows/CostCalculator/hooks.d.ts +10 -9
- package/dist/flows/CostCalculator/hooks.js +1 -1
- package/dist/flows/CostCalculator/index.d.ts +6 -4
- package/dist/flows/CostCalculator/index.js +1 -1
- package/dist/flows/CostCalculator/jsonSchema.d.ts +8 -0
- package/dist/flows/CostCalculator/jsonSchema.js +1 -1
- package/dist/flows/CostCalculator/types.d.ts +11 -2
- package/dist/flows/CostCalculator/utils.d.ts +2 -2
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +3 -3
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/api.d.ts +5 -3
- package/dist/flows/Onboarding/api.js +1 -1
- package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +1 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.d.ts +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingBack.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingForm.d.ts +1 -1
- package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +1 -1
- package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingSubmit.js +1 -1
- package/dist/flows/Onboarding/components/ReviewStep.d.ts +3 -3
- package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +1 -1
- package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/Onboarding/context.d.ts +5 -5
- package/dist/flows/Onboarding/hooks.d.ts +3 -3
- package/dist/flows/Onboarding/hooks.js +1 -1
- package/dist/flows/Onboarding/index.d.ts +1 -1
- package/dist/flows/Onboarding/index.js +1 -1
- package/dist/flows/Onboarding/types.d.ts +1 -1
- package/dist/flows/Onboarding/utils.d.ts +1 -1
- package/dist/flows/Termination/AdditionalDetailsForm.d.ts +1 -1
- package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
- package/dist/flows/Termination/EmployeeComunicationForm.d.ts +1 -1
- package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
- package/dist/flows/Termination/PaidTimeOffForm.d.ts +1 -1
- package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
- package/dist/flows/Termination/TerminationBack.js +1 -1
- package/dist/flows/Termination/TerminationDetailsForm.d.ts +1 -1
- package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
- package/dist/flows/Termination/TerminationFlow.d.ts +3 -3
- package/dist/flows/Termination/TerminationFlow.js +1 -1
- package/dist/flows/Termination/TerminationForm.d.ts +1 -1
- package/dist/flows/Termination/TerminationForm.js +1 -1
- package/dist/flows/Termination/TerminationSubmit.js +1 -1
- package/dist/flows/Termination/TimeOff.d.ts +4 -4
- package/dist/flows/Termination/TimeOff.js +1 -1
- package/dist/flows/Termination/context.d.ts +3 -3
- package/dist/flows/Termination/hooks.d.ts +1 -1
- package/dist/flows/Termination/hooks.js +1 -1
- package/dist/flows/Termination/index.d.ts +1 -1
- package/dist/flows/Termination/index.js +1 -1
- package/dist/flows/Termination/json-schemas/schema.js +1 -1
- package/dist/flows/Termination/types.d.ts +1 -1
- package/dist/flows/types.d.ts +1 -1
- package/dist/flows/useStepState.d.ts +2 -2
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +17 -22
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internals.d.ts +103 -0
- package/dist/internals.js +2 -0
- package/dist/internals.js.map +1 -0
- package/dist/{types.gen-BqCe1GRY.d.ts → types.gen-CVPKMCVh.d.ts} +34 -17
- package/dist/utils-CjDMg_Yr.d.ts +22 -0
- package/package.json +16 -2
- package/dist/chunk-2Y22JKVE.js +0 -2
- package/dist/chunk-466M4PK7.js +0 -2
- package/dist/chunk-466M4PK7.js.map +0 -1
- package/dist/chunk-5PVQUO5Q.js +0 -2
- package/dist/chunk-5PVQUO5Q.js.map +0 -1
- package/dist/chunk-7LZQJ5CL.js +0 -2
- package/dist/chunk-7LZQJ5CL.js.map +0 -1
- package/dist/chunk-7WDALAC7.js +0 -2
- package/dist/chunk-7WDALAC7.js.map +0 -1
- package/dist/chunk-AEVZ7GEK.js +0 -2
- package/dist/chunk-AEVZ7GEK.js.map +0 -1
- package/dist/chunk-C3KZEPUZ.js +0 -2
- package/dist/chunk-C3KZEPUZ.js.map +0 -1
- package/dist/chunk-COHLMZEO.js +0 -2
- package/dist/chunk-COHLMZEO.js.map +0 -1
- package/dist/chunk-DEGMU7EO.js +0 -2
- package/dist/chunk-DPLXEXMO.js +0 -2
- package/dist/chunk-DPLXEXMO.js.map +0 -1
- package/dist/chunk-DTTK5OBT.js +0 -2
- package/dist/chunk-DTTK5OBT.js.map +0 -1
- package/dist/chunk-E6DC4DXP.js +0 -2
- package/dist/chunk-E6DC4DXP.js.map +0 -1
- package/dist/chunk-FQNVKX3N.js +0 -2
- package/dist/chunk-FQNVKX3N.js.map +0 -1
- package/dist/chunk-HGLI6PUM.js +0 -2
- package/dist/chunk-HGLI6PUM.js.map +0 -1
- package/dist/chunk-IXZAHZ7B.js +0 -2
- package/dist/chunk-IXZAHZ7B.js.map +0 -1
- package/dist/chunk-K5BC2TNP.js +0 -2
- package/dist/chunk-K5BC2TNP.js.map +0 -1
- package/dist/chunk-RX5GTE5Z.js +0 -2
- package/dist/chunk-RX5GTE5Z.js.map +0 -1
- package/dist/chunk-SRZGBJVA.js +0 -2
- package/dist/chunk-SRZGBJVA.js.map +0 -1
- package/dist/chunk-UPRUP24B.js.map +0 -1
- package/dist/chunk-XFY4VAAJ.js +0 -2
- package/dist/chunk-XFY4VAAJ.js.map +0 -1
- package/dist/chunk-YHSNK7WB.js +0 -2
- package/dist/chunk-YHSNK7WB.js.map +0 -1
- package/dist/chunk-YJXRJTOH.js +0 -1
- package/dist/chunk-YKIFMONL.js +0 -2
- package/dist/chunk-YKIFMONL.js.map +0 -1
- package/dist/chunk-ZPUELAQZ.js +0 -2
- package/dist/chunk-ZPUELAQZ.js.map +0 -1
- /package/dist/{chunk-F6FS5DBQ.js.map → chunk-3CUVTXRN.js.map} +0 -0
- /package/dist/{chunk-R6OW77R6.js.map → chunk-4OEBYZLZ.js.map} +0 -0
- /package/dist/{chunk-5CCAARDB.js.map → chunk-5GUK7MEN.js.map} +0 -0
- /package/dist/{chunk-D27IFECQ.js.map → chunk-AJVD3O4D.js.map} +0 -0
- /package/dist/{chunk-WFET4MKU.js.map → chunk-BDZEPXIS.js.map} +0 -0
- /package/dist/{chunk-FKV6J4FL.js.map → chunk-BY5S6EQJ.js.map} +0 -0
- /package/dist/{chunk-SHFIZENN.js.map → chunk-CSK44J23.js.map} +0 -0
- /package/dist/{chunk-2UPDFZ7P.js.map → chunk-DHT7HDHC.js.map} +0 -0
- /package/dist/{chunk-2Y22JKVE.js.map → chunk-DR7VGNO2.js.map} +0 -0
- /package/dist/{chunk-3LGFQNYW.js.map → chunk-EE54SK65.js.map} +0 -0
- /package/dist/{chunk-GXAX4KMX.js.map → chunk-FBYLX5NA.js.map} +0 -0
- /package/dist/{chunk-A27ASO7K.js.map → chunk-G7WJUXZU.js.map} +0 -0
- /package/dist/{chunk-OGAVWGSY.js.map → chunk-GBD3OCAW.js.map} +0 -0
- /package/dist/{chunk-UNTCBVHB.js.map → chunk-GGBEM452.js.map} +0 -0
- /package/dist/{chunk-Q5ZUVH3U.js.map → chunk-GK3OO5SX.js.map} +0 -0
- /package/dist/{chunk-UIAPHRJJ.js.map → chunk-H2SFR2GL.js.map} +0 -0
- /package/dist/{chunk-LWJQO625.js.map → chunk-KG72IMCX.js.map} +0 -0
- /package/dist/{chunk-FBA3PMRV.js.map → chunk-KHVEYIMF.js.map} +0 -0
- /package/dist/{chunk-6P4XGSZ6.js.map → chunk-LIGRV2J5.js.map} +0 -0
- /package/dist/{chunk-G4NBJTHB.js.map → chunk-MDSGLUUB.js.map} +0 -0
- /package/dist/{chunk-T6TIHUBQ.js.map → chunk-N7PSO5ZD.js.map} +0 -0
- /package/dist/{chunk-YYNQTHEX.js.map → chunk-NC3VBBHC.js.map} +0 -0
- /package/dist/{chunk-OTTIURMN.js.map → chunk-QQ7KPOLK.js.map} +0 -0
- /package/dist/{chunk-5O4S4YZN.js.map → chunk-QVN32YBL.js.map} +0 -0
- /package/dist/{chunk-HQMY3X2R.js.map → chunk-R7L6CI5J.js.map} +0 -0
- /package/dist/{chunk-A4ROBLPX.js.map → chunk-RMVG6YBI.js.map} +0 -0
- /package/dist/{chunk-D23KLJQM.js.map → chunk-RUVKAPO5.js.map} +0 -0
- /package/dist/{chunk-76UIUPEL.js.map → chunk-S7ZMHO5I.js.map} +0 -0
- /package/dist/{chunk-S62STPBT.js.map → chunk-SQICIS7B.js.map} +0 -0
- /package/dist/{chunk-7CDCXJSI.js.map → chunk-SZOOX2KY.js.map} +0 -0
- /package/dist/{chunk-HQKBSMGN.js.map → chunk-TJK6MTGG.js.map} +0 -0
- /package/dist/{chunk-4F4I7F2P.js.map → chunk-VD65AUOI.js.map} +0 -0
- /package/dist/{chunk-WJA7PQ2J.js.map → chunk-WYXN7WW6.js.map} +0 -0
- /package/dist/{chunk-7F3TBWYV.js.map → chunk-YRLBMLSA.js.map} +0 -0
- /package/dist/{chunk-YJXRJTOH.js.map → chunk-Z3BMF4BO.js.map} +0 -0
- /package/dist/{chunk-IXVV7KPW.js.map → chunk-ZSBWDLBS.js.map} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as o}from"./chunk-3LOVCTCN.js";import{a as s}from"./chunk-P37U34EQ.js";import*as t from"@radix-ui/react-tabs";import{jsx as n}from"react/jsx-runtime";function r({className:e,...i}){return n(t.Root,{"data-slot":"tabs",className:o("flex flex-col gap-2",e),...i})}s(r,"Tabs");function c({className:e,...i}){return n(t.List,{"data-slot":"tabs-list",className:o("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-1",e),...i})}s(c,"TabsList");function l({className:e,...i}){return n(t.Trigger,{"data-slot":"tabs-trigger",className:o("data-[state=active]:bg-background data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...i})}s(l,"TabsTrigger");function m({className:e,...i}){return n(t.Content,{"data-slot":"tabs-content",className:o("flex-1 outline-none",e),...i})}s(m,"TabsContent");export{r as a,c as b,l as c,m as d};
|
|
2
|
+
//# sourceMappingURL=chunk-GCVZ4AY2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/tabs.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Tabs({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n className={cn('flex flex-col gap-2', className)}\n {...props}\n />\n );\n}\n\nfunction TabsList({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n className={cn(\n 'bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-1',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n \"data-[state=active]:bg-background data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn('flex-1 outline-none', className)}\n {...props}\n />\n );\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n"],"mappings":"gFACA,UAAYA,MAAmB,uBAS3B,cAAAC,MAAA,oBALJ,SAASC,EAAK,CACZ,UAAAC,EACA,GAAGC,CACL,EAAoD,CAClD,OACEH,EAAe,OAAd,CACC,YAAU,OACV,UAAWI,EAAG,sBAAuBF,CAAS,EAC7C,GAAGC,EACN,CAEJ,CAXSE,EAAAJ,EAAA,QAaT,SAASK,EAAS,CAChB,UAAAJ,EACA,GAAGC,CACL,EAAoD,CAClD,OACEH,EAAe,OAAd,CACC,YAAU,YACV,UAAWI,EACT,kGACAF,CACF,EACC,GAAGC,EACN,CAEJ,CAdSE,EAAAC,EAAA,YAgBT,SAASC,EAAY,CACnB,UAAAL,EACA,GAAGC,CACL,EAAuD,CACrD,OACEH,EAAe,UAAd,CACC,YAAU,eACV,UAAWI,EACT,0fACAF,CACF,EACC,GAAGC,EACN,CAEJ,CAdSE,EAAAE,EAAA,eAgBT,SAASC,EAAY,CACnB,UAAAN,EACA,GAAGC,CACL,EAAuD,CACrD,OACEH,EAAe,UAAd,CACC,YAAU,eACV,UAAWI,EAAG,sBAAuBF,CAAS,EAC7C,GAAGC,EACN,CAEJ,CAXSE,EAAAG,EAAA","names":["TabsPrimitive","jsx","Tabs","className","props","cn","__name","TabsList","TabsTrigger","TabsContent"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{A as i,r as o}from"./chunk-EGQJ7UBR.js";import{d as n}from"./chunk-3ZWDIEEM.js";import{a as e}from"./chunk-P37U34EQ.js";import{useQuery as s}from"@tanstack/react-query";var p=e(({employmentId:t})=>{let{client:r}=n();return s({queryKey:["employment",t],retry:!1,queryFn:e(()=>o({client:r,headers:{Authorization:""},path:{employment_id:t}}),"queryFn"),select:e(({data:m})=>m,"select")})},"useEmploymentQuery"),c=e(({employmentId:t,status:r})=>{let{client:m}=n();return s({queryKey:["timeoff",t,r],retry:!1,queryFn:e(()=>i({client:m,headers:{Authorization:""},query:{employment_id:t,status:r}}),"queryFn"),select:e(({data:u})=>u,"select")})},"useTimeOffQuery");export{p as a,c as b};
|
|
2
|
+
//# sourceMappingURL=chunk-GGBEM452.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as S}from"./chunk-BDZEPXIS.js";import{a as v}from"./chunk-QI6LLU2N.js";import{a as B}from"./chunk-7TIIT23F.js";import{a as N}from"./chunk-ZHL2SULA.js";import{a as R}from"./chunk-LT4ALDRM.js";import{a as P}from"./chunk-WYXN7WW6.js";import{a as x,b as k,c as i}from"./chunk-GCVZ4AY2.js";import{a as h,b as p,c as g,d as w,e as T}from"./chunk-5I6VWJSC.js";import{b as f}from"./chunk-G7WJUXZU.js";import{a as b}from"./chunk-3LOVCTCN.js";import{a as _}from"./chunk-P37U34EQ.js";import{lazy as L,useState as V}from"react";import{Fragment as I,jsx as a,jsxs as r}from"react/jsx-runtime";var z=L(()=>import("./flows/CostCalculator/Results/CostCalculatorResultsChart.js"));function Y({employmentData:D,options:e}){let[o,E]=V("monthly"),n=D.employments?.[0];if(!n)return null;let t=n.employer_currency_costs,s=t.currency.symbol,m=o==="monthly"?t.monthly_gross_salary:t.annual_gross_salary,u=o==="monthly"?t.monthly_benefits_total:t.annual_benefits_total,y=o==="monthly"?t.monthly_contributions_total:t.annual_contributions_total,F=o==="monthly"?t.monthly_total:t.annual_total,l=o==="monthly"?null:t.extra_statutory_payments_breakdown,A=o==="monthly"?null:t.extra_statutory_payments_total,d=o==="monthly"?t.monthly_indirect_tax:t.annual_indirect_tax,c=o==="monthly"?t.monthly_benefits_breakdown:t.annual_benefits_breakdown,H=o==="monthly"?t.monthly_contributions_breakdown:t.annual_contributions_breakdown,C=[{name:"Gross Salary",value:m,color:e?.chartColors?.grossSalary??"#3b82f6"},{name:"Contributions",value:y,color:e?.chartColors?.contributions??"#f59e0b"}];return c&&C.push({name:"Benefits",value:u??0,color:e?.chartColors?.benefits??"#10b981"}),r(I,{children:[r("div",{className:"flex flex-col md:flex-row gap-4 md:items-center justify-between mb-6 RemoteFlows__CostCalculatorResults",children:[r("div",{className:"RemoteFlows__CostCalculatorResults__Header",children:[r("h2",{className:"text-xl font-semibold flex items-center gap-2",children:[a("span",{className:"flex items-center gap-1",children:e?.title??"Cost Calculator"}),a(f,{className:"ml-2",children:n.country.name})]}),a("p",{className:"text-primary-foreground font-medium mt-1",children:e?.description??`Total cost of employment in ${n.country.name}`})]}),a(x,{value:o,onValueChange:G=>E(G),className:"w-full md:w-auto RemoteFlows__CostCalculatorResults__Tabs",children:r(k,{className:"grid w-full md:w-[200px] grid-cols-2",children:[a(i,{value:"monthly",children:"Monthly"}),a(i,{value:"annual",children:"Annual"})]})})]}),r("div",{className:b("grid grid-cols-1 gap-6",e?.showChart?"md:grid-cols-3":"","RemoteFlows__CostCalculatorResults_CostBreakdown"),children:[r(h,{className:"md:col-span-2 rounded-lg",children:[r(p,{className:"pb-2",children:[a(g,{children:"Cost Breakdown"}),a(w,{children:"Detailed breakdown of all employer costs"})]}),a(T,{children:r("div",{className:"space-y-6",children:[a(R,{grossSalary:m,currency:s,hasExtraStatutoryPayment:n.has_extra_statutory_payment}),c?a(v,{benefitsBreakdown:c,benefitsTotal:u,currency:s}):null,a(B,{contributionsBreakdown:H,contributionsTotal:y,currency:s}),Array.isArray(l)&&l.length>0?a(N,{extraStatutoryPaymentsBreakdown:l,extraStatutoryPaymentsTotal:A,currency:s}):null,d?a(P,{indirectTax:d,currency:s}):null,a(S,{totalCost:F,currency:s})]})})]}),e?.showChart&&a(z,{chartData:C,currency:s})]})]})}_(Y,"CostCalculatorResults");export{Y as a};
|
|
2
|
+
//# sourceMappingURL=chunk-GJQ33XQ4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/CostCalculator/Results/CostCalculatorResults.tsx"],"sourcesContent":["import { lazy, useState } from 'react';\n\nimport { CostCalculatorEstimateResponse } from '@/src/client';\nimport { Badge } from '@/src/components/ui/badge';\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from '@/src/components/ui/card';\nimport { Tabs, TabsList, TabsTrigger } from '@/src/components/ui/tabs';\nimport { cn } from '@/src/lib/utils';\nimport { CostCalculatorBenefitsBreakdown } from './CostCalculatorBenefitsBreakdown';\nimport { CostCalculatorContributionsBreakdown } from './CostCalculatorContributionsBreakdown';\nimport { CostCalculatorGrossSalary } from './CostCalculatorGrossSalary';\nimport { CostCalculatorTotalCost } from './CostCalculatorTotalCost';\nimport { CostCalculatorExtraStatutoryPaymentsBreakdown } from '@/src/flows/CostCalculator/Results/CostCalculatorExtraStatutoryPaymentsBreakdown';\nimport { CostCalculatorIndirectTax } from '@/src/flows/CostCalculator/Results/CostCalculatorIndirectTax';\n\nconst CostCalculatorResultsChart = lazy(\n () => import('./CostCalculatorResultsChart'),\n);\n\ninterface CostCalculatorResultProps {\n employmentData: CostCalculatorEstimateResponse['data'];\n options?: Partial<{\n title: string;\n description: string;\n showChart: boolean;\n chartColors: {\n grossSalary: string;\n contributions: string;\n benefits: string;\n };\n }>;\n}\n\nexport function CostCalculatorResults({\n employmentData,\n options,\n}: CostCalculatorResultProps) {\n const [view, setView] = useState<'monthly' | 'annual'>('monthly');\n const employment = employmentData.employments?.[0];\n\n if (!employment) {\n return null;\n }\n\n const costs =\n view === 'monthly'\n ? employment.employer_currency_costs\n : employment.employer_currency_costs;\n\n const currency = costs.currency.symbol;\n const grossSalary =\n view === 'monthly' ? costs.monthly_gross_salary : costs.annual_gross_salary;\n const benefitsTotal =\n view === 'monthly'\n ? costs.monthly_benefits_total\n : costs.annual_benefits_total;\n const contributionsTotal =\n view === 'monthly'\n ? costs.monthly_contributions_total\n : costs.annual_contributions_total;\n const totalCost =\n view === 'monthly' ? costs.monthly_total : costs.annual_total;\n\n const extraStatutoryPaymentsBreakdown =\n view === 'monthly' ? null : costs.extra_statutory_payments_breakdown;\n\n const extraStatutoryPaymentsTotal =\n view === 'monthly' ? null : costs.extra_statutory_payments_total;\n\n const indirectTax =\n view === 'monthly' ? costs.monthly_indirect_tax : costs.annual_indirect_tax;\n\n const benefitsBreakdown =\n view === 'monthly'\n ? costs.monthly_benefits_breakdown\n : costs.annual_benefits_breakdown;\n const contributionsBreakdown =\n view === 'monthly'\n ? costs.monthly_contributions_breakdown\n : costs.annual_contributions_breakdown;\n\n const chartData = [\n {\n name: 'Gross Salary',\n value: grossSalary,\n color: options?.chartColors?.grossSalary ?? '#3b82f6',\n },\n {\n name: 'Contributions',\n value: contributionsTotal,\n color: options?.chartColors?.contributions ?? '#f59e0b',\n },\n ];\n\n if (benefitsBreakdown) {\n chartData.push({\n name: 'Benefits',\n value: benefitsTotal ?? 0,\n color: options?.chartColors?.benefits ?? '#10b981',\n });\n }\n\n return (\n <>\n <div className=\"flex flex-col md:flex-row gap-4 md:items-center justify-between mb-6 RemoteFlows__CostCalculatorResults\">\n <div className=\"RemoteFlows__CostCalculatorResults__Header\">\n <h2 className=\"text-xl font-semibold flex items-center gap-2\">\n <span className=\"flex items-center gap-1\">\n {options?.title ?? 'Cost Calculator'}\n </span>\n <Badge className=\"ml-2\">{employment.country.name}</Badge>\n </h2>\n <p className=\"text-primary-foreground font-medium mt-1\">\n {options?.description ??\n `Total cost of employment in ${employment.country.name}`}\n </p>\n </div>\n\n <Tabs\n value={view}\n onValueChange={(v) => setView(v as 'monthly' | 'annual')}\n className=\"w-full md:w-auto RemoteFlows__CostCalculatorResults__Tabs\"\n >\n <TabsList className=\"grid w-full md:w-[200px] grid-cols-2\">\n <TabsTrigger value=\"monthly\">Monthly</TabsTrigger>\n <TabsTrigger value=\"annual\">Annual</TabsTrigger>\n </TabsList>\n </Tabs>\n </div>\n\n <div\n className={cn(\n 'grid grid-cols-1 gap-6',\n options?.showChart ? 'md:grid-cols-3' : '',\n 'RemoteFlows__CostCalculatorResults_CostBreakdown',\n )}\n >\n <Card className=\"md:col-span-2 rounded-lg\">\n <CardHeader className=\"pb-2\">\n <CardTitle>Cost Breakdown</CardTitle>\n <CardDescription>\n Detailed breakdown of all employer costs\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-6\">\n {/* Salary Section */}\n <CostCalculatorGrossSalary\n grossSalary={grossSalary}\n currency={currency}\n hasExtraStatutoryPayment={\n employment.has_extra_statutory_payment\n }\n />\n {/* Benefits Section */}\n {benefitsBreakdown ? (\n <CostCalculatorBenefitsBreakdown\n benefitsBreakdown={benefitsBreakdown}\n benefitsTotal={benefitsTotal}\n currency={currency}\n />\n ) : null}\n {/* Contributions Section */}\n <CostCalculatorContributionsBreakdown\n contributionsBreakdown={contributionsBreakdown}\n contributionsTotal={contributionsTotal}\n currency={currency}\n />\n {/* Extra Statutory Payments Section */}\n {Array.isArray(extraStatutoryPaymentsBreakdown) &&\n extraStatutoryPaymentsBreakdown.length > 0 ? (\n <CostCalculatorExtraStatutoryPaymentsBreakdown\n extraStatutoryPaymentsBreakdown={\n extraStatutoryPaymentsBreakdown\n }\n extraStatutoryPaymentsTotal={extraStatutoryPaymentsTotal}\n currency={currency}\n />\n ) : null}\n {/* Indirect Tax Section */}\n {indirectTax ? (\n <CostCalculatorIndirectTax\n indirectTax={indirectTax}\n currency={currency}\n />\n ) : null}\n {/* Total */}\n <CostCalculatorTotalCost\n totalCost={totalCost}\n currency={currency}\n />\n </div>\n </CardContent>\n </Card>\n\n {options?.showChart && (\n <CostCalculatorResultsChart\n chartData={chartData}\n currency={currency}\n />\n )}\n </div>\n </>\n );\n}\n"],"mappings":"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","names":["lazy","useState","Fragment","jsx","jsxs","CostCalculatorResultsChart","lazy","CostCalculatorResults","employmentData","options","view","setView","useState","employment","costs","currency","grossSalary","benefitsTotal","contributionsTotal","totalCost","extraStatutoryPaymentsBreakdown","extraStatutoryPaymentsTotal","indirectTax","benefitsBreakdown","contributionsBreakdown","chartData","Badge","Tabs","v","TabsList","TabsTrigger","cn","Card","CardHeader","CardTitle","CardDescription","CardContent","CostCalculatorGrossSalary","CostCalculatorBenefitsBreakdown","CostCalculatorContributionsBreakdown","CostCalculatorExtraStatutoryPaymentsBreakdown","CostCalculatorIndirectTax","CostCalculatorTotalCost","__name"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as l}from"./chunk-KSHK3ZPX.js";import{b as
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as l}from"./chunk-KSHK3ZPX.js";import{b as i}from"./chunk-3ZWDIEEM.js";import{b as C}from"./chunk-CSK44J23.js";import{a as c}from"./chunk-3LOVCTCN.js";import{a as u}from"./chunk-P37U34EQ.js";import{jsx as a}from"react/jsx-runtime";function R({children:e,...t}){let{form:r,formId:n,costCalculatorBag:s}=l(),{components:f}=i(),m=f?.button;return m?a(m,{...t,type:"reset",form:n,onClick:o=>{s?.resetForm(),r.reset(),t.onClick?.(o)},children:e}):a(C,{...t,type:"reset",className:c("RemoteFlows__CostCalculatorForm__ResetButton",t.className),form:n,onClick:o=>{s?.resetForm(),r.reset(),t.onClick?.(o)},children:e})}u(R,"CostCalculatorResetButton");export{R as a};
|
|
2
|
+
//# sourceMappingURL=chunk-GK3OO5SX.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as v,b as h,c as A,d as w}from"./chunk-T3L72MV6.js";import{a as E}from"./chunk-ILMVHOL2.js";import{a as N}from"./chunk-NBCZF2FO.js";import{a as C}from"./chunk-5I6VWJSC.js";import{a as x}from"./chunk-Y4VNFI7K.js";import{b as R}from"./chunk-CSK44J23.js";import{a as c,b as r}from"./chunk-3LOVCTCN.js";import{a as u}from"./chunk-P37U34EQ.js";import{MoreHorizontal as D}from"lucide-react";import{useState as H}from"react";import{Fragment as M,jsx as p,jsxs as T}from"react/jsx-runtime";function I({actions:e=[],className:s}){let[a,l]=H(!1);return T("div",{className:c("relative",s),children:[p(R,{variant:"ghost",className:"h-8 w-8 p-0",onClick:()=>l(!a),children:p(D,{className:"h-4 w-4"})}),a&&T(M,{children:[p("div",{className:"fixed inset-0 z-40",onClick:()=>l(!1)}),p("div",{className:"absolute right-0 top-1/2 mt-1 bg-white border border-gray-200 rounded-md shadow-lg z-50 min-w-[120px]",children:e.map((i,d)=>p("button",{className:c("w-full text-left px-2 py-1.5 text-sm hover:bg-gray-100",i.disabled&&"opacity-50 cursor-not-allowed"),onClick:()=>{i.onClick(),l(!1)},disabled:i.disabled,children:i.label},d))})]})]})}u(I,"ActionsDropdown");import{ChevronDown as F,Info as S}from"lucide-react";import L from"react-flagpack";import{useState as z}from"react";import{Fragment as _,jsx as n,jsxs as t}from"react/jsx-runtime";var P=u(({title:e,country:s,region:a,onDelete:l,onExportPdf:i})=>t("div",{className:"RemoteFlows__EstimationResults__Header flex justify-between",children:[t("div",{className:"flex flex-row items-center gap-6",children:[n("div",{className:"flex h-12 w-12 items-center justify-center rounded-lg bg-[#F4F4F5]",children:n(L,{code:s.alpha_2_code})}),t("div",{className:"space-y-1",children:[n("h2",{className:"text-lg font-medium leading-none text-[#181818]",children:e}),t("p",{className:"text-xs text-[#71717A]",children:[s.name," ",a?` (${a.name})`:""]})]})]}),n(I,{className:"RemoteFlows__EstimationResults__ActionsDropdown",actions:[{label:"Edit",onClick:u(()=>{},"onClick"),disabled:!0},{label:"Export",onClick:i},{label:"Delete",onClick:l}]})]}),"EstimationResultsHeader"),U=u(()=>({steps:[{id:"add-employment-details",title:"Add employment details",description:"You add employee employments details."},{id:"invite-employee",title:"Invite employee",description:"Hire receives an email invitation from Remote to start the self-enrollment process."},{id:"verify-information",title:"Verify information",description:"Remote prepares the Employment Agreement and verifies all the information."},{id:"sign-contract",title:"Sign contract",description:"All parties sign the Employment Agreement and are ready to start. \u{1F389}"}],helpText:"For customers who accept our Terms of Service (ToS), the employee onboarding timeline starts once the employee has been invited to the platform and completed self enrolment.",zendeskArticleId:N.employeeOnboardingTimeline}),"getOnboardingTimelineData");function j({minimumOnboardingDays:e,data:s,className:a}){return n(v,{type:"single",collapsible:!0,className:c("RemoteFlows__EstimationResults__OnboardingTimeline w-full",a),children:t(h,{value:"timeline",className:"border-border",children:[n(A,{className:"hover:no-underline px-0 py-4",children:t("div",{className:"flex items-center justify-between w-full",children:[n("span",{className:"text-base font-medium text-[#0F172A]",children:"Onboarding timeline"}),t("span",{className:"text-base text-muted-foreground mr-4",children:[e," days"]})]})}),t(w,{className:"px-0 pb-4",children:[n("ul",{className:"list-disc list-inside space-y-2",children:s.steps.map(l=>t("li",{children:[n("strong",{className:"font-medium text-[#09090B]",children:l.title})," ","- ",l.description]},l.id))}),t("p",{className:"text-xs text-muted-foreground mt-4",children:[s.helpText,s.zendeskArticleId&&n(x,{zendeskId:s.zendeskArticleId,children:"Learn more"})]})]})]})})}u(j,"OnboardingTimeline");function G({className:e,countryBenefitsUrl:s,countryGuideUrl:a,country:l}){return n(v,{type:"single",collapsible:!0,className:c("RemoteFlows__EstimationResults__HiringSection w-full",e),children:t(h,{value:"timeline",className:"border-border",children:[n(A,{className:"hover:no-underline px-0 py-4",children:n("div",{className:"flex items-center justify-between w-full",children:t("span",{className:"text-base font-medium text-[#0F172A]",children:["Hiring in ",l.name]})})}),n(w,{children:t("div",{className:"flex flex-col gap-1",children:[n("a",{href:a,target:"_blank",className:"RemoteFlows__Link",children:"Explore our complete guide \u2197"}),n("a",{href:s,target:"_blank",className:"RemoteFlows__Link",children:"Explore our available benefits \u2197"})]})})]})})}u(G,"HiringSection");function Z({isMultipleCurrency:e,className:s}){return t("div",{className:c("RemoteFlows__EstimationResults__Headers grid grid-cols-3 items-center",s),children:[n("span",{"aria-hidden":!0}),e?t(_,{children:[n("span",{className:"RemoteFlows__EstimationResults__Headers__Label",children:"Employee currency"}),n("span",{className:"RemoteFlows__EstimationResults__Headers__Label",children:"Employer currency"})]}):t(_,{children:[n("span",{}),n("span",{className:"RemoteFlows__EstimationResults__Headers__Label",children:"Amount"})]})]})}u(Z,"EstimationHeaders");function B({label:e,amounts:s,className:a,isHeader:l=!1,isCollapsible:i=!1,children:d}){let[m,b]=z(!0);return t("div",{className:c("RemoteFlows__EstimationResults__Row",a),children:[t("div",{className:"grid grid-cols-3 items-center",children:[t("div",{className:"flex items-center gap-2",children:[n("span",{className:c("min-w-[140px]",l?"font-medium text-[#09090B]":""),children:e}),i&&n("button",{onClick:()=>b(!m),className:"p-1 hover:bg-gray-100 rounded",children:n(F,{className:`h-4 w-4 text-muted-foreground transition-transform ${m?"rotate-180":""}`})})]}),Array.isArray(s)?s.map((g,f)=>n("span",{className:c("text-right",l?"font-medium text-[#09090B]":""),children:g},f)):t(_,{children:[n("span",{}),n("span",{className:c("text-right",l?"font-medium text-[#09090B]":""),children:s})]})]}),i&&m&&d&&n("div",{className:"mt-4",children:d})]})}u(B,"EstimationRow");function $({item:e,isMultipleCurrency:s,level:a=0}){let[l,i]=z(!1),d=e.children&&e.children.length>0,m=a>0;return t("li",{className:c("pb-3",m&&"pb-1"),children:[t("div",{className:c(s?"grid grid-cols-3 items-center justify-between":"grid grid-cols-2 items-center justify-between"),children:[t("div",{className:c("flex items-center gap-2",m&&"pl-3"),children:[!m&&n("span",{className:"w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0","aria-hidden":"true"}),n("span",{className:c(m?"text-xs text-[#71717A]":"text-sm text-[#09090B]"),children:e.label}),e.tooltip&&n(E,{content:t(_,{children:[n("span",{children:e.tooltip})," ",e.zendeskId&&n(x,{zendeskId:Number(e.zendeskId),children:"Learn more"})]}),children:n("button",{className:"p-1 hover:bg-gray-100 rounded",children:n(S,{className:c("text-muted-foreground",m?"h-3 w-3":"h-4 w-4")})})}),(e.isCollapsible||d)&&n("button",{onClick:()=>i(!l),className:"p-1 hover:bg-gray-100 rounded",children:n(F,{className:`h-3 w-3 text-muted-foreground transition-transform ${l?"rotate-180":""}`})})]}),s?t(_,{children:[n("span",{className:c("text-sm text-right",m?"text-[#71717A]":"text-[#09090B]"),children:e.regionalAmount||"\u2014"}),n("span",{className:c("text-sm text-right",m?"text-[#71717A]":"text-[#09090B]"),children:e.employerAmount||"\u2014"})]}):n("span",{className:c("text-sm text-right",m?"text-[#71717A]":"text-[#09090B]"),children:e.regionalAmount||"\u2014"})]}),d&&l&&n("div",{className:"mt-1",children:n(k,{items:e.children,isMultipleCurrency:s,level:a+1})})]})}u($,"BreakdownListItem");function k({items:e,isMultipleCurrency:s,className:a,level:l}){return n("ul",{className:c("list-none",a),children:e.map((i,d)=>n($,{item:i,isMultipleCurrency:s,level:l},d))})}u(k,"BreakdownList");var ie=u(({estimation:e,title:s,components:a,onDelete:l,onExportPdf:i})=>{let d=a?.HiringSection||G,m=a?.OnboardingTimeline||j,b=a?.Header||P,g=a?.Footer,f=U(),y=e.employer_currency_costs.currency.code!==e.regional_currency_costs.currency.code,O=e.region.code!==e.country.code;return t(C,{className:"RemoteFlows__EstimationResults__Card p-10",children:[n("div",{className:"RemoteFlows__Separator",children:n(b,{title:s,region:O?e.region:void 0,country:e.country,onDelete:l,onExportPdf:i})}),t("div",{className:"RemoteFlows__Separator",children:[n(Z,{isMultipleCurrency:y,className:"mb-3"}),n(B,{label:"Monthly total cost",amounts:y?[r(e.regional_currency_costs.monthly_total,e.regional_currency_costs.currency.symbol),r(e.employer_currency_costs.monthly_total,e.employer_currency_costs.currency.symbol)]:r(e.regional_currency_costs.monthly_total,e.regional_currency_costs.currency.symbol),isHeader:!0,isCollapsible:!0,children:n(k,{items:[{label:"Gross monthly salary",regionalAmount:r(e.regional_currency_costs.monthly_gross_salary,e.regional_currency_costs.currency.symbol),employerAmount:r(e.employer_currency_costs.monthly_gross_salary,e.employer_currency_costs.currency.symbol),zendeskId:N.extraPayments.toString(),tooltip:"This country respects extra payments on top of the gross salary."},{label:"Mandatory employer costs",regionalAmount:r(e.regional_currency_costs.monthly_contributions_total,e.regional_currency_costs.currency.symbol),employerAmount:r(e.employer_currency_costs.monthly_contributions_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.monthly_contributions_breakdown?.map(o=>({label:o.name,regionalAmount:r(o.amount,e.regional_currency_costs.currency.symbol),employerAmount:r(o.amount,e.employer_currency_costs.currency.symbol),zendeskId:o.zendesk_article_id||void 0,tooltip:o.description||void 0}))||[]},{label:"Core benefits",regionalAmount:r(e.regional_currency_costs.monthly_benefits_total,e.regional_currency_costs.currency.symbol),employerAmount:r(e.employer_currency_costs.monthly_benefits_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.monthly_benefits_breakdown?.map(o=>({label:o.name,regionalAmount:r(o.amount,e.regional_currency_costs.currency.symbol),employerAmount:r(o.amount,e.employer_currency_costs.currency.symbol),zendeskId:o.zendesk_article_id||void 0,tooltip:o.description||void 0}))||[]}],isMultipleCurrency:y})})]}),n("div",{className:"RemoteFlows__Separator",children:n(B,{label:"Annual total cost",amounts:y?[r(e.regional_currency_costs.annual_total,e.regional_currency_costs.currency.symbol),r(e.employer_currency_costs.annual_total,e.employer_currency_costs.currency.symbol)]:r(e.regional_currency_costs.annual_total,e.regional_currency_costs.currency.symbol),isHeader:!0,isCollapsible:!0,children:n(k,{items:[{label:"Annual gross salary",regionalAmount:r(e.regional_currency_costs.annual_gross_salary,e.regional_currency_costs.currency.symbol),employerAmount:r(e.employer_currency_costs.annual_gross_salary,e.employer_currency_costs.currency.symbol)},{label:"Mandatory employer costs",regionalAmount:r(e.regional_currency_costs.annual_contributions_total,e.regional_currency_costs.currency.symbol),employerAmount:r(e.employer_currency_costs.annual_contributions_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.annual_contributions_breakdown?.map(o=>({label:o.name,regionalAmount:r(o.amount,e.regional_currency_costs.currency.symbol),employerAmount:r(o.amount,e.employer_currency_costs.currency.symbol),zendeskId:o.zendesk_article_id||void 0,tooltip:o.description||void 0}))||[]},{label:"Core benefits",regionalAmount:r(e.regional_currency_costs.annual_benefits_total,e.regional_currency_costs.currency.symbol),employerAmount:r(e.employer_currency_costs.annual_benefits_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.annual_benefits_breakdown?.map(o=>({label:o.name,regionalAmount:r(o.amount,e.regional_currency_costs.currency.symbol),employerAmount:r(o.amount,e.employer_currency_costs.currency.symbol),zendeskId:o.zendesk_article_id||void 0,tooltip:o.description||void 0}))||[]},{label:"Extra statutory payments",regionalAmount:r(e.regional_currency_costs.extra_statutory_payments_total,e.regional_currency_costs.currency.symbol),employerAmount:r(e.employer_currency_costs.extra_statutory_payments_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.extra_statutory_payments_breakdown?.map(o=>({label:o.name,regionalAmount:r(o.amount,e.regional_currency_costs.currency.symbol),employerAmount:r(o.amount,e.employer_currency_costs.currency.symbol),zendeskId:o.zendesk_article_id||void 0,tooltip:o.description||void 0}))||[]}],isMultipleCurrency:y})})}),n("div",{className:"RemoteFlows__Separator",children:n(m,{minimumOnboardingDays:e.minimum_onboarding_time,data:f})}),n(d,{countryBenefitsUrl:e.country_benefits_details_url,countryGuideUrl:e.country_guide_url,country:e.country}),g&&n(g,{})]})},"EstimationResults");export{ie as a};
|
|
2
|
+
//# sourceMappingURL=chunk-GMA7VTFX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/shared/actions-dropdown/ActionsDropdown.tsx","../src/flows/CostCalculator/EstimationResults/EstimationResults.tsx"],"sourcesContent":["import { Button } from '@/src/components/ui/button';\nimport { cn } from '@/src/lib/utils';\nimport { MoreHorizontal } from 'lucide-react';\nimport { useState, type ReactNode } from 'react';\n\nexport interface DropdownAction {\n label: string;\n icon?: ReactNode;\n onClick: () => void;\n separator?: boolean;\n disabled?: boolean;\n}\n\ninterface ActionsDropdownProps {\n actions?: DropdownAction[];\n className?: string;\n}\n\nexport function ActionsDropdown({\n actions = [],\n className,\n}: ActionsDropdownProps) {\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n <div className={cn('relative', className)}>\n <Button\n variant=\"ghost\"\n className=\"h-8 w-8 p-0\"\n onClick={() => setIsOpen(!isOpen)}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n </Button>\n\n {isOpen && (\n <>\n <div\n className=\"fixed inset-0 z-40\"\n onClick={() => setIsOpen(false)}\n />\n <div className=\"absolute right-0 top-1/2 mt-1 bg-white border border-gray-200 rounded-md shadow-lg z-50 min-w-[120px]\">\n {actions.map((action, index) => (\n <button\n key={index}\n className={cn(\n 'w-full text-left px-2 py-1.5 text-sm hover:bg-gray-100',\n action.disabled && 'opacity-50 cursor-not-allowed',\n )}\n onClick={() => {\n action.onClick();\n setIsOpen(false);\n }}\n disabled={action.disabled}\n >\n {action.label}\n </button>\n ))}\n </div>\n </>\n )}\n </div>\n );\n}\n","import {\n CostCalculatorEmployment,\n MinimalCountry,\n MinimalRegion,\n} from '@/src/client';\nimport { ActionsDropdown } from '@/src/components/shared/actions-dropdown/ActionsDropdown';\nimport { Card } from '@/src/components/ui/card';\nimport { ChevronDown, Info } from 'lucide-react';\nimport Flag from 'react-flagpack';\nimport { useState } from 'react';\nimport {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from '@/src/components/ui/accordion';\nimport { cn, formatCurrency } from '@/src/lib/utils';\nimport { ZendeskTriggerButton } from '@/src/components/shared/zendesk-drawer/ZendeskTriggerButton';\nimport { zendeskArticles } from '@/src/components/shared/zendesk-drawer/utils';\nimport { BasicTooltip } from '@/src/components/ui/basic-tooltip';\n\nconst EstimationResultsHeader = ({\n title,\n country,\n region,\n onDelete,\n onExportPdf,\n}: {\n title: string;\n country: MinimalCountry;\n region?: MinimalRegion;\n onDelete: () => void;\n onExportPdf: () => void;\n}) => {\n return (\n <div className=\"RemoteFlows__EstimationResults__Header flex justify-between\">\n <div className=\"flex flex-row items-center gap-6\">\n <div className=\"flex h-12 w-12 items-center justify-center rounded-lg bg-[#F4F4F5]\">\n <Flag code={country.alpha_2_code} />\n </div>\n <div className=\"space-y-1\">\n <h2 className=\"text-lg font-medium leading-none text-[#181818]\">\n {title}\n </h2>\n <p className=\"text-xs text-[#71717A]\">\n {country.name} {region ? ` (${region.name})` : ''}\n </p>\n </div>\n </div>\n <ActionsDropdown\n className=\"RemoteFlows__EstimationResults__ActionsDropdown\"\n actions={[\n {\n label: 'Edit',\n onClick: () => {},\n disabled: true,\n },\n {\n label: 'Export',\n onClick: onExportPdf,\n },\n {\n label: 'Delete',\n onClick: onDelete,\n },\n ]}\n />\n </div>\n );\n};\n\ninterface OnboardingTimelineStep {\n title: string;\n description: string;\n id: string;\n}\n\ninterface OnboardingTimelineData {\n steps: OnboardingTimelineStep[];\n helpText: string;\n zendeskArticleId?: number;\n}\n\nconst getOnboardingTimelineData = (): OnboardingTimelineData => {\n return {\n steps: [\n {\n id: 'add-employment-details',\n title: 'Add employment details',\n description: 'You add employee employments details.',\n },\n {\n id: 'invite-employee',\n title: 'Invite employee',\n description:\n 'Hire receives an email invitation from Remote to start the self-enrollment process.',\n },\n {\n id: 'verify-information',\n title: 'Verify information',\n description:\n 'Remote prepares the Employment Agreement and verifies all the information.',\n },\n {\n id: 'sign-contract',\n title: 'Sign contract',\n description:\n 'All parties sign the Employment Agreement and are ready to start. 🎉',\n },\n ],\n helpText:\n 'For customers who accept our Terms of Service (ToS), the employee onboarding timeline starts once the employee has been invited to the platform and completed self enrolment.',\n zendeskArticleId: zendeskArticles.employeeOnboardingTimeline,\n };\n};\n\nfunction OnboardingTimeline({\n minimumOnboardingDays,\n data,\n className,\n}: {\n minimumOnboardingDays: number | null;\n data: OnboardingTimelineData;\n className?: string;\n}) {\n return (\n <Accordion\n type=\"single\"\n collapsible\n className={cn(\n 'RemoteFlows__EstimationResults__OnboardingTimeline w-full',\n className,\n )}\n >\n <AccordionItem value=\"timeline\" className=\"border-border\">\n <AccordionTrigger className=\"hover:no-underline px-0 py-4\">\n <div className=\"flex items-center justify-between w-full\">\n <span className=\"text-base font-medium text-[#0F172A]\">\n Onboarding timeline\n </span>\n <span className=\"text-base text-muted-foreground mr-4\">\n {minimumOnboardingDays} days\n </span>\n </div>\n </AccordionTrigger>\n <AccordionContent className=\"px-0 pb-4\">\n <ul className=\"list-disc list-inside space-y-2\">\n {data.steps.map((step) => (\n <li key={step.id}>\n <strong className=\"font-medium text-[#09090B]\">\n {step.title}\n </strong>{' '}\n - {step.description}\n </li>\n ))}\n </ul>\n <p className=\"text-xs text-muted-foreground mt-4\">\n {data.helpText}\n {data.zendeskArticleId && (\n <ZendeskTriggerButton zendeskId={data.zendeskArticleId}>\n Learn more\n </ZendeskTriggerButton>\n )}\n </p>\n </AccordionContent>\n </AccordionItem>\n </Accordion>\n );\n}\n\nfunction HiringSection({\n className,\n countryBenefitsUrl,\n countryGuideUrl,\n country,\n}: {\n className?: string;\n countryBenefitsUrl: string;\n countryGuideUrl: string;\n country: MinimalCountry;\n}) {\n return (\n <Accordion\n type=\"single\"\n collapsible\n className={cn(\n 'RemoteFlows__EstimationResults__HiringSection w-full',\n className,\n )}\n >\n <AccordionItem value=\"timeline\" className=\"border-border\">\n <AccordionTrigger className=\"hover:no-underline px-0 py-4\">\n <div className=\"flex items-center justify-between w-full\">\n <span className=\"text-base font-medium text-[#0F172A]\">\n Hiring in {country.name}\n </span>\n </div>\n </AccordionTrigger>\n <AccordionContent>\n <div className=\"flex flex-col gap-1\">\n <a\n href={countryGuideUrl}\n target=\"_blank\"\n className=\"RemoteFlows__Link\"\n >\n Explore our complete guide ↗\n </a>\n <a\n href={countryBenefitsUrl}\n target=\"_blank\"\n className=\"RemoteFlows__Link\"\n >\n Explore our available benefits ↗\n </a>\n </div>\n </AccordionContent>\n </AccordionItem>\n </Accordion>\n );\n}\n\nfunction EstimationHeaders({\n isMultipleCurrency,\n className,\n}: {\n isMultipleCurrency: boolean;\n className?: string;\n}) {\n return (\n <div\n className={cn(\n 'RemoteFlows__EstimationResults__Headers grid grid-cols-3 items-center',\n className,\n )}\n >\n <span aria-hidden />\n {isMultipleCurrency ? (\n <>\n <span className=\"RemoteFlows__EstimationResults__Headers__Label\">\n Employee currency\n </span>\n <span className=\"RemoteFlows__EstimationResults__Headers__Label\">\n Employer currency\n </span>\n </>\n ) : (\n <>\n <span></span>\n <span className=\"RemoteFlows__EstimationResults__Headers__Label\">\n Amount\n </span>\n </>\n )}\n </div>\n );\n}\n\nfunction EstimationRow({\n label,\n amounts,\n className,\n isHeader = false,\n isCollapsible = false,\n children,\n}: {\n label: string | React.ReactNode;\n amounts: string | string[];\n className?: string;\n isHeader?: boolean;\n isCollapsible?: boolean;\n children?: React.ReactNode;\n}) {\n const [isOpen, setIsOpen] = useState(true);\n\n return (\n <div className={cn('RemoteFlows__EstimationResults__Row', className)}>\n <div className=\"grid grid-cols-3 items-center\">\n <div className=\"flex items-center gap-2\">\n <span\n className={cn(\n 'min-w-[140px]',\n isHeader ? 'font-medium text-[#09090B]' : '',\n )}\n >\n {label}\n </span>\n {isCollapsible && (\n <button\n onClick={() => setIsOpen(!isOpen)}\n className=\"p-1 hover:bg-gray-100 rounded\"\n >\n <ChevronDown\n className={`h-4 w-4 text-muted-foreground transition-transform ${\n isOpen ? 'rotate-180' : ''\n }`}\n />\n </button>\n )}\n </div>\n\n {Array.isArray(amounts) ? (\n amounts.map((amount, index) => (\n <span\n key={index}\n className={cn(\n 'text-right',\n isHeader ? 'font-medium text-[#09090B]' : '',\n )}\n >\n {amount}\n </span>\n ))\n ) : (\n <>\n <span></span>\n <span\n className={cn(\n 'text-right',\n isHeader ? 'font-medium text-[#09090B]' : '',\n )}\n >\n {amounts}\n </span>\n </>\n )}\n </div>\n\n {/* Collapsible content */}\n {isCollapsible && isOpen && children && (\n <div className=\"mt-4\">{children}</div>\n )}\n </div>\n );\n}\n\ninterface BreakdownItem {\n label: string;\n tooltip?: string;\n regionalAmount?: string;\n employerAmount?: string;\n description?: string;\n zendeskId?: string;\n isCollapsible?: boolean;\n children?: BreakdownItem[];\n}\n\nfunction BreakdownListItem({\n item,\n isMultipleCurrency,\n level = 0,\n}: {\n item: BreakdownItem;\n isMultipleCurrency: boolean;\n level?: number;\n}) {\n const [isOpen, setIsOpen] = useState(false);\n const hasChildren = item.children && item.children.length > 0;\n const isNested = level > 0;\n\n return (\n <li className={cn('pb-3', isNested && 'pb-1')}>\n <div\n className={cn(\n isMultipleCurrency\n ? 'grid grid-cols-3 items-center justify-between'\n : 'grid grid-cols-2 items-center justify-between',\n )}\n >\n <div className={cn('flex items-center gap-2', isNested && 'pl-3')}>\n {!isNested && (\n <span\n className=\"w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0\"\n aria-hidden=\"true\"\n />\n )}\n\n <span\n className={cn(\n isNested ? 'text-xs text-[#71717A]' : 'text-sm text-[#09090B]', // Different colors\n )}\n >\n {item.label}\n </span>\n\n {item.tooltip && (\n <BasicTooltip\n content={\n <>\n <span>{item.tooltip}</span>{' '}\n {item.zendeskId && (\n <ZendeskTriggerButton zendeskId={Number(item.zendeskId)}>\n Learn more\n </ZendeskTriggerButton>\n )}\n </>\n }\n >\n <button className=\"p-1 hover:bg-gray-100 rounded\">\n <Info\n className={cn(\n 'text-muted-foreground',\n isNested ? 'h-3 w-3' : 'h-4 w-4',\n )}\n />\n </button>\n </BasicTooltip>\n )}\n\n {(item.isCollapsible || hasChildren) && (\n <button\n onClick={() => setIsOpen(!isOpen)}\n className=\"p-1 hover:bg-gray-100 rounded\"\n >\n <ChevronDown\n className={`h-3 w-3 text-muted-foreground transition-transform ${\n isOpen ? 'rotate-180' : ''\n }`}\n />\n </button>\n )}\n </div>\n\n {isMultipleCurrency ? (\n <>\n <span\n className={cn(\n 'text-sm text-right',\n isNested ? 'text-[#71717A]' : 'text-[#09090B]',\n )}\n >\n {item.regionalAmount || '—'}\n </span>\n <span\n className={cn(\n 'text-sm text-right',\n isNested ? 'text-[#71717A]' : 'text-[#09090B]',\n )}\n >\n {item.employerAmount || '—'}\n </span>\n </>\n ) : (\n <span\n className={cn(\n 'text-sm text-right',\n isNested ? 'text-[#71717A]' : 'text-[#09090B]',\n )}\n >\n {item.regionalAmount || '—'}\n </span>\n )}\n </div>\n\n {hasChildren && isOpen && (\n <div className=\"mt-1\">\n <BreakdownList\n items={item.children!}\n isMultipleCurrency={isMultipleCurrency}\n level={level + 1}\n />\n </div>\n )}\n </li>\n );\n}\n\ninterface BreakdownListProps {\n items: BreakdownItem[];\n isMultipleCurrency: boolean;\n className?: string;\n level?: number;\n}\n\nfunction BreakdownList({\n items,\n isMultipleCurrency,\n className,\n level,\n}: BreakdownListProps) {\n return (\n <ul className={cn('list-none', className)}>\n {items.map((item, index) => (\n <BreakdownListItem\n key={index}\n item={item}\n isMultipleCurrency={isMultipleCurrency}\n level={level}\n />\n ))}\n </ul>\n );\n}\n\ntype EstimationResultsComponents = {\n HiringSection?: React.ComponentType<{\n country: MinimalCountry;\n countryBenefitsUrl: string;\n countryGuideUrl: string;\n }>;\n OnboardingTimeline?: React.ComponentType<{\n minimumOnboardingDays: number | null;\n data: OnboardingTimelineData;\n }>;\n Header?: React.ComponentType<{\n title: string;\n region?: MinimalRegion;\n country: MinimalCountry;\n onDelete: () => void;\n onExportPdf: () => void;\n }>;\n Footer?: React.ComponentType;\n};\n\ntype EstimationResultsProps = {\n estimation: CostCalculatorEmployment;\n title: string;\n components?: EstimationResultsComponents;\n onDelete: () => void;\n onExportPdf: () => void;\n};\n\nexport const EstimationResults = ({\n estimation,\n title,\n components,\n onDelete,\n onExportPdf,\n}: EstimationResultsProps) => {\n const CustomHiringSection = components?.HiringSection || HiringSection;\n const CustomOnboardingTimeline =\n components?.OnboardingTimeline || OnboardingTimeline;\n const CustomHeader = components?.Header || EstimationResultsHeader;\n const CustomFooter = components?.Footer;\n\n const onboardingTimelineData = getOnboardingTimelineData();\n\n const isMultipleCurrency =\n estimation.employer_currency_costs.currency.code !==\n estimation.regional_currency_costs.currency.code;\n\n const hasRegion = estimation.region.code !== estimation.country.code;\n\n return (\n <Card className=\"RemoteFlows__EstimationResults__Card p-10\">\n <div className=\"RemoteFlows__Separator\">\n <CustomHeader\n title={title}\n region={hasRegion ? estimation.region : undefined}\n country={estimation.country}\n onDelete={onDelete}\n onExportPdf={onExportPdf}\n />\n </div>\n <div className=\"RemoteFlows__Separator\">\n <EstimationHeaders\n isMultipleCurrency={isMultipleCurrency}\n className=\"mb-3\"\n />\n <EstimationRow\n label=\"Monthly total cost\"\n amounts={\n isMultipleCurrency\n ? [\n formatCurrency(\n estimation.regional_currency_costs.monthly_total,\n estimation.regional_currency_costs.currency.symbol,\n ),\n formatCurrency(\n estimation.employer_currency_costs.monthly_total,\n estimation.employer_currency_costs.currency.symbol,\n ),\n ]\n : formatCurrency(\n estimation.regional_currency_costs.monthly_total,\n estimation.regional_currency_costs.currency.symbol,\n )\n }\n isHeader\n isCollapsible\n >\n <BreakdownList\n items={[\n {\n label: 'Gross monthly salary',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs.monthly_gross_salary,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs.monthly_gross_salary,\n estimation.employer_currency_costs.currency.symbol,\n ),\n zendeskId: zendeskArticles.extraPayments.toString(),\n tooltip:\n 'This country respects extra payments on top of the gross salary.',\n },\n {\n label: 'Mandatory employer costs',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs\n .monthly_contributions_total,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs\n .monthly_contributions_total,\n estimation.employer_currency_costs.currency.symbol,\n ),\n children:\n estimation.employer_currency_costs.monthly_contributions_breakdown?.map(\n (item) => ({\n label: item.name,\n regionalAmount: formatCurrency(\n item.amount,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n item.amount,\n estimation.employer_currency_costs.currency.symbol,\n ),\n zendeskId: item.zendesk_article_id || undefined,\n tooltip: item.description || undefined,\n }),\n ) || [],\n },\n {\n label: 'Core benefits',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs.monthly_benefits_total,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs.monthly_benefits_total,\n estimation.employer_currency_costs.currency.symbol,\n ),\n children:\n estimation.employer_currency_costs.monthly_benefits_breakdown?.map(\n (item) => ({\n label: item.name,\n regionalAmount: formatCurrency(\n item.amount,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n item.amount,\n estimation.employer_currency_costs.currency.symbol,\n ),\n zendeskId: item.zendesk_article_id || undefined,\n tooltip: item.description || undefined,\n }),\n ) || [],\n },\n ]}\n isMultipleCurrency={isMultipleCurrency}\n />\n </EstimationRow>\n </div>\n <div className=\"RemoteFlows__Separator\">\n <EstimationRow\n label=\"Annual total cost\"\n amounts={\n isMultipleCurrency\n ? [\n formatCurrency(\n estimation.regional_currency_costs.annual_total,\n estimation.regional_currency_costs.currency.symbol,\n ),\n formatCurrency(\n estimation.employer_currency_costs.annual_total,\n estimation.employer_currency_costs.currency.symbol,\n ),\n ]\n : formatCurrency(\n estimation.regional_currency_costs.annual_total,\n estimation.regional_currency_costs.currency.symbol,\n )\n }\n isHeader\n isCollapsible\n >\n <BreakdownList\n items={[\n {\n label: 'Annual gross salary',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs.annual_gross_salary,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs.annual_gross_salary,\n estimation.employer_currency_costs.currency.symbol,\n ),\n },\n {\n label: 'Mandatory employer costs',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs.annual_contributions_total,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs.annual_contributions_total,\n estimation.employer_currency_costs.currency.symbol,\n ),\n children:\n estimation.employer_currency_costs.annual_contributions_breakdown?.map(\n (item) => ({\n label: item.name,\n regionalAmount: formatCurrency(\n item.amount,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n item.amount,\n estimation.employer_currency_costs.currency.symbol,\n ),\n zendeskId: item.zendesk_article_id || undefined,\n tooltip: item.description || undefined,\n }),\n ) || [],\n },\n {\n label: 'Core benefits',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs.annual_benefits_total,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs.annual_benefits_total,\n estimation.employer_currency_costs.currency.symbol,\n ),\n children:\n estimation.employer_currency_costs.annual_benefits_breakdown?.map(\n (item) => ({\n label: item.name,\n regionalAmount: formatCurrency(\n item.amount,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n item.amount,\n estimation.employer_currency_costs.currency.symbol,\n ),\n zendeskId: item.zendesk_article_id || undefined,\n tooltip: item.description || undefined,\n }),\n ) || [],\n },\n {\n label: 'Extra statutory payments',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs\n .extra_statutory_payments_total,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs\n .extra_statutory_payments_total,\n estimation.employer_currency_costs.currency.symbol,\n ),\n children:\n estimation.employer_currency_costs.extra_statutory_payments_breakdown?.map(\n (item) => ({\n label: item.name,\n regionalAmount: formatCurrency(\n item.amount,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n item.amount,\n estimation.employer_currency_costs.currency.symbol,\n ),\n zendeskId: item.zendesk_article_id || undefined,\n tooltip: item.description || undefined,\n }),\n ) || [],\n },\n ]}\n isMultipleCurrency={isMultipleCurrency}\n />\n </EstimationRow>\n </div>\n <div className=\"RemoteFlows__Separator\">\n <CustomOnboardingTimeline\n minimumOnboardingDays={estimation.minimum_onboarding_time}\n data={onboardingTimelineData}\n />\n </div>\n\n <CustomHiringSection\n countryBenefitsUrl={estimation.country_benefits_details_url as string}\n countryGuideUrl={estimation.country_guide_url as string}\n country={estimation.country}\n />\n\n {CustomFooter && <CustomFooter />}\n </Card>\n );\n};\n"],"mappings":"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","names":["MoreHorizontal","useState","Fragment","jsx","jsxs","ActionsDropdown","actions","className","isOpen","setIsOpen","useState","cn","Button","MoreHorizontal","action","index","__name","ChevronDown","Info","Flag","useState","Fragment","jsx","jsxs","EstimationResultsHeader","__name","title","country","region","onDelete","onExportPdf","Flag","ActionsDropdown","getOnboardingTimelineData","zendeskArticles","OnboardingTimeline","minimumOnboardingDays","data","className","Accordion","cn","AccordionItem","AccordionTrigger","AccordionContent","step","ZendeskTriggerButton","HiringSection","countryBenefitsUrl","countryGuideUrl","EstimationHeaders","isMultipleCurrency","EstimationRow","label","amounts","isHeader","isCollapsible","children","isOpen","setIsOpen","useState","ChevronDown","amount","index","BreakdownListItem","item","level","hasChildren","isNested","BasicTooltip","Info","BreakdownList","items","EstimationResults","estimation","components","CustomHiringSection","CustomOnboardingTimeline","CustomHeader","CustomFooter","onboardingTimelineData","hasRegion","Card","formatCurrency"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as s}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as s}from"./chunk-SZOOX2KY.js";import{b as t}from"./chunk-PGWKJ6FK.js";import{b as e}from"./chunk-QW4JPW6J.js";import{a as i}from"./chunk-P37U34EQ.js";import{jsx as c}from"react/jsx-runtime";function S({onSubmit:m,onSuccess:d,onError:a}){let{onboardingBag:o}=t(),l=i(async n=>{try{await m?.(o.parseFormValues(n));let r=await o.onSubmit(n);if(r?.data){await d?.(r?.data),o?.next();return}if(r?.error){let p=e(r?.fieldErrors||[],o.meta?.fields?.basic_information);a?.({error:r?.error,rawError:r?.rawError,fieldErrors:p})}}catch(r){a?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit"),f=o.stepState.values?.basic_information||o.initialValues.basic_information;return c(s,{defaultValues:f,onSubmit:l})}i(S,"BasicInformationStep");export{S as a};
|
|
2
|
+
//# sourceMappingURL=chunk-H2SFR2GL.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as e}from"./chunk-P37U34EQ.js";import{jsx as a,jsxs as t}from"react/jsx-runtime";var i=e(({children:o,content:r})=>t("div",{className:"relative inline-block group",children:[o,t("div",{className:"absolute bottom-full right-0 mb-2 px-3 py-2 bg-gray-900 text-white text-xs rounded-md opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 z-50 w-64 whitespace-normal break-words",children:[r,a("div",{className:"absolute top-full right-3 border-4 border-transparent border-t-gray-900"})]})]}),"BasicTooltip");export{i as a};
|
|
2
|
+
//# sourceMappingURL=chunk-ILMVHOL2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/basic-tooltip.tsx"],"sourcesContent":["export const BasicTooltip = ({\n children,\n content,\n}: {\n children: React.ReactNode;\n content: React.ReactNode;\n}) => {\n return (\n <div className=\"relative inline-block group\">\n {children}\n <div className=\"absolute bottom-full right-0 mb-2 px-3 py-2 bg-gray-900 text-white text-xs rounded-md opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 z-50 w-64 whitespace-normal break-words\">\n {content}\n <div className=\"absolute top-full right-3 border-4 border-transparent border-t-gray-900\"></div>\n </div>\n </div>\n );\n};\n"],"mappings":"wCAUM,OAEE,OAAAA,EAFF,QAAAC,MAAA,oBAVC,IAAMC,EAAeC,EAAA,CAAC,CAC3B,SAAAC,EACA,QAAAC,CACF,IAKIJ,EAAC,OAAI,UAAU,8BACZ,UAAAG,EACDH,EAAC,OAAI,UAAU,4NACZ,UAAAI,EACDL,EAAC,OAAI,UAAU,0EAA0E,GAC3F,GACF,EAdwB","names":["jsx","jsxs","BasicTooltip","__name","children","content"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as p}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a}from"./chunk-EE54SK65.js";import{a as p}from"./chunk-BY5S6EQJ.js";import{a as i}from"./chunk-LIGRV2J5.js";import{a as S}from"./chunk-Z7WBY27D.js";import{a as c}from"./chunk-7TOZZQQJ.js";import{a as m}from"./chunk-YRLBMLSA.js";import{a as r}from"./chunk-H2SFR2GL.js";import{a as f}from"./chunk-QVN32YBL.js";import{a as s}from"./chunk-FBYLX5NA.js";import{a as n}from"./chunk-PGWKJ6FK.js";import{a as e}from"./chunk-3CUVTXRN.js";import{a as t}from"./chunk-P37U34EQ.js";import{useId as R,useState as D}from"react";import{jsx as P}from"react/jsx-runtime";var K=t(({employmentId:d,companyId:b,countryCode:u,type:g="employee",externalId:B,skipSteps:l,initialValues:v,render:O,options:y})=>{let I=R(),o=e({companyId:b,countryCode:u,employmentId:d,type:g,options:y,skipSteps:l,externalId:B,initialValues:v}),[w,C]=D({showReserveInvoice:!1,showInviteSuccessful:!1});return P(n.Provider,{value:{formId:I,onboardingBag:o,creditScore:w,setCreditScore:C},children:O({onboardingBag:o,components:{BasicInformationStep:r,ContractDetailsStep:s,BenefitsStep:f,SubmitButton:i,SaveDraftButton:c,BackButton:a,OnboardingInvite:p,SelectCountryStep:m,ReviewStep:S}})})},"OnboardingFlow");export{K as a};
|
|
2
|
+
//# sourceMappingURL=chunk-KG72IMCX.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as r}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as r}from"./chunk-AJVD3O4D.js";import{b as m}from"./chunk-MRYRNB7Y.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as e}from"react/jsx-runtime";function f({onSubmit:n}){let{terminationBag:i}=m();return e(r,{onSubmit:o(async a=>{await n?.(i?.parseFormValues(a)),i?.next()},"handleSubmit")})}o(f,"PaidTimeOffForm");export{f as a};
|
|
2
|
+
//# sourceMappingURL=chunk-KHVEYIMF.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as e}from"./chunk-PGWKJ6FK.js";import{b as
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as e}from"./chunk-PGWKJ6FK.js";import{b as m}from"./chunk-3ZWDIEEM.js";import{b as i}from"./chunk-CSK44J23.js";import{a as u}from"./chunk-P37U34EQ.js";import{jsx as s}from"react/jsx-runtime";function p({children:t,...o}){let{formId:n}=e(),{components:f}=m(),r=f?.button;return r?s(r,{...o,form:n,children:t}):s(i,{...o,form:n,children:t})}u(p,"OnboardingSubmit");export{p as a};
|
|
2
|
+
//# sourceMappingURL=chunk-LIGRV2J5.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as m}from"./chunk-ILMVHOL2.js";import{a as i}from"./chunk-MDSGLUUB.js";import{a as e}from"./chunk-NBCZF2FO.js";import{a}from"./chunk-Y4VNFI7K.js";import{b as n}from"./chunk-CSK44J23.js";import{b as s}from"./chunk-3LOVCTCN.js";import{a as o}from"./chunk-P37U34EQ.js";import{Info as f}from"lucide-react";import{Fragment as y,jsx as r,jsxs as t}from"react/jsx-runtime";function N({grossSalary:l,currency:p,hasExtraStatutoryPayment:c=!1}){return t("div",{children:[t("div",{className:"flex justify-between items-center mb-2",children:[t("div",{className:"flex items-center gap-2",children:[r("h3",{className:"font-medium text-primary-foreground",children:"Gross Salary"}),c&&r(m,{content:t(y,{children:[r("span",{children:"This country respects extra payments on top of the gross salary."})," ",r(a,{zendeskId:e.extraPayments,children:"Learn more"})]}),children:t(n,{variant:"ghost",size:"icon",className:"h-4 w-4 p-0 mt-2",children:[r(f,{className:"h-3 w-3 text-gray-400"}),r("span",{className:"sr-only",children:"Info"})]})})]}),r("span",{className:"font-semibold text-lg",children:s(l,p)})]}),r(i,{})]})}o(N,"CostCalculatorGrossSalary");export{N as a};
|
|
2
|
+
//# sourceMappingURL=chunk-LT4ALDRM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/CostCalculator/Results/CostCalculatorGrossSalary.tsx"],"sourcesContent":["import { Separator } from '@/src/components/ui/separator';\nimport { formatCurrency } from '@/src/lib/utils';\nimport { BasicTooltip } from '@/src/components/ui/basic-tooltip';\nimport { Button } from '@/src/components/ui/button';\nimport { Info } from 'lucide-react';\nimport { zendeskArticles } from '@/src/components/shared/zendesk-drawer/utils';\nimport { ZendeskTriggerButton } from '@/src/components/shared/zendesk-drawer/ZendeskTriggerButton';\n\ntype CostCalculatorGrossSalaryProps = {\n grossSalary: number;\n currency: string;\n hasExtraStatutoryPayment?: boolean;\n};\n\nexport function CostCalculatorGrossSalary({\n grossSalary,\n currency,\n hasExtraStatutoryPayment = false,\n}: CostCalculatorGrossSalaryProps) {\n return (\n <div>\n <div className=\"flex justify-between items-center mb-2\">\n <div className=\"flex items-center gap-2\">\n <h3 className=\"font-medium text-primary-foreground\">Gross Salary</h3>\n {hasExtraStatutoryPayment && (\n <BasicTooltip\n content={\n <>\n <span>\n This country respects extra payments on top of the gross\n salary.\n </span>{' '}\n <ZendeskTriggerButton\n zendeskId={zendeskArticles.extraPayments}\n >\n Learn more\n </ZendeskTriggerButton>\n </>\n }\n >\n <Button variant=\"ghost\" size=\"icon\" className=\"h-4 w-4 p-0 mt-2\">\n <Info className=\"h-3 w-3 text-gray-400\" />\n <span className=\"sr-only\">Info</span>\n </Button>\n </BasicTooltip>\n )}\n </div>\n <span className=\"font-semibold text-lg\">\n {formatCurrency(grossSalary, currency)}\n </span>\n </div>\n <Separator />\n </div>\n );\n}\n"],"mappings":"mRAIA,OAAS,QAAAA,MAAY,eAmBX,OAIM,YAAAC,EAJN,OAAAC,EAIM,QAAAC,MAJN,oBATH,SAASC,EAA0B,CACxC,YAAAC,EACA,SAAAC,EACA,yBAAAC,EAA2B,EAC7B,EAAmC,CACjC,OACEJ,EAAC,OACC,UAAAA,EAAC,OAAI,UAAU,yCACb,UAAAA,EAAC,OAAI,UAAU,0BACb,UAAAD,EAAC,MAAG,UAAU,sCAAsC,wBAAY,EAC/DK,GACCL,EAACM,EAAA,CACC,QACEL,EAAAF,EAAA,CACE,UAAAC,EAAC,QAAK,4EAGN,EAAQ,IACRA,EAACO,EAAA,CACC,UAAWC,EAAgB,cAC5B,sBAED,GACF,EAGF,SAAAP,EAACQ,EAAA,CAAO,QAAQ,QAAQ,KAAK,OAAO,UAAU,mBAC5C,UAAAT,EAACU,EAAA,CAAK,UAAU,wBAAwB,EACxCV,EAAC,QAAK,UAAU,UAAU,gBAAI,GAChC,EACF,GAEJ,EACAA,EAAC,QAAK,UAAU,wBACb,SAAAW,EAAeR,EAAaC,CAAQ,EACvC,GACF,EACAJ,EAACY,EAAA,EAAU,GACb,CAEJ,CAxCgBC,EAAAX,EAAA","names":["Info","Fragment","jsx","jsxs","CostCalculatorGrossSalary","grossSalary","currency","hasExtraStatutoryPayment","BasicTooltip","ZendeskTriggerButton","zendeskArticles","Button","Info","formatCurrency","Separator","__name"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as t}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as t}from"./chunk-3LOVCTCN.js";import{a as o}from"./chunk-P37U34EQ.js";import*as r from"@radix-ui/react-separator";import{jsx as p}from"react/jsx-runtime";function m({className:a,orientation:i="horizontal",decorative:e=!0,...n}){return p(r.Root,{"data-slot":"separator-root",decorative:e,orientation:i,className:t("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",a),...n})}o(m,"Separator");export{m as a};
|
|
2
|
+
//# sourceMappingURL=chunk-MDSGLUUB.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{f as m,g as a}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{f as m,g as a}from"./chunk-GAOBYAJE.js";import{c as n}from"./chunk-MXFDOIUA.js";import{b as i}from"./chunk-TVZAFTPT.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as s}from"react/jsx-runtime";function w({onSubmit:d,onError:c,onSuccess:l}){let{contractAmendment:{stepState:u,isSubmitting:f,onSubmit:C,fields:p},formId:A}=i(),e=m({defaultValues:u.values?.form}),F=o(async r=>{let S=n(r,p,{isPartialValidation:!1});await d?.(S);let t=await C(r);t.error?c?.(t.error):await l?.(t.data)},"handleSubmit");return f?null:s(a,{...e,children:s("form",{id:A,onSubmit:e.handleSubmit(F),className:"RemoteFlows__ContractAmendmentConfirmationForm"})})}o(w,"ContractAmendmentConfirmationForm");export{w as a};
|
|
2
|
+
//# sourceMappingURL=chunk-N7PSO5ZD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/shared/zendesk-drawer/utils.ts"],"sourcesContent":["export const zendeskArticles = {\n disclaimerCostCalculator: 4668194326797,\n employeeOnboardingTimeline: 4411262104589,\n extraPayments: 4466822781709,\n internationalPricing: 4410698586893,\n remoteFxRate: 33271144977421,\n};\n"],"mappings":"AAAO,IAAMA,EAAkB,CAC7B,yBAA0B,cAC1B,2BAA4B,cAC5B,cAAe,cACf,qBAAsB,cACtB,aAAc,cAChB","names":["zendeskArticles"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as F}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as F}from"./chunk-AVA4MEFP.js";import{b as l}from"./chunk-CFIJKJXD.js";import{f,g as p}from"./chunk-GAOBYAJE.js";import{c as u}from"./chunk-MXFDOIUA.js";import{b as _}from"./chunk-TVZAFTPT.js";import{a as r}from"./chunk-P37U34EQ.js";import{useEffect as R}from"react";import{jsx as a}from"react/jsx-runtime";var w=["effective_date","reason_for_change","reason_for_change_description","additional_comments","additional_comments_toggle"];function x({onSubmit:b,onError:m,onSuccess:A}){let{formId:C,contractAmendment:{checkFieldUpdates:h,fields:s,onSubmit:S,stepState:g,initialValues:i,handleValidation:y}}=_(),V=l(y),e=f({resolver:V,defaultValues:g.values?.form||i,shouldUnregister:!0,mode:"onBlur"});R(()=>{let t=e?.watch(o=>{(Object.keys(e.formState.dirtyFields).length>0||e.formState.isDirty)&&h(o)});return()=>t?.unsubscribe()},[]);let v=r(async t=>{let o=!1;for(let[c,P]of Object.entries(t))if(!w.includes(c)&&i[c]!==P){o=!0;break}if(!o)return m?.({message:"no_changes_detected_contract_details"});let d=u(t,s,{isPartialValidation:!1});await b?.(d);let n=await S(t);n.error?m?.(n.error):await A?.(n.data)},"handleSubmit");return a(p,{...e,children:a("form",{id:C,"data-testid":"contract-amendment-form",onSubmit:e.handleSubmit(v),className:"space-y-4 RemoteFlows__ContractAmendmentForm",children:a(F,{fields:s})})})}r(x,"ContractAmendmentForm");export{x as a};
|
|
2
|
+
//# sourceMappingURL=chunk-NC3VBBHC.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as g}from"./chunk-CHSULXMN.js";import{b as _}from"./chunk-3ZWDIEEM.js";import{c,h as d,i as u,j as x,k as C,l as T,m as R}from"./chunk-GAOBYAJE.js";import{a}from"./chunk-P37U34EQ.js";import{jsx as o,jsxs as E}from"react/jsx-runtime";function J({name:t,description:m,label:r,type:f,onChange:s,component:w,includeErrorMessage:I=!0,additionalProps:P={},maxLength:l,...h}){let{components:N}=_(),{control:D}=c();return o(d,{control:D,name:t,render:({field:e,fieldState:F})=>{let i=w||N?.text;if(i){let n={name:t,description:m,label:r,type:f,onChange:s,metadata:P,maxLength:l,...h};return o(i,{field:{...e,onChange:a(p=>{e.onChange(p),s?.(p)},"onChange")},fieldState:F,fieldData:n})}return E(u,{"data-field":t,className:`RemoteFlows__TextField__Item__${t}`,children:[r&&o(x,{className:"RemoteFlows__TextField__Label",children:r}),o(C,{children:o(g,{...e,value:e.value??"",onChange:n=>{e.onChange(n),s?.(n)},className:"RemoteFlows__TextField__Input",placeholder:r,maxLength:l})}),m&&o(T,{className:"RemoteFlows__TextField__Description",children:m}),I&&F.error&&o(R,{className:"RemoteFlows__TextField__Error"})]})}})}a(J,"TextField");export{J as a};
|
|
2
|
+
//# sourceMappingURL=chunk-NVJYAX22.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/form/fields/TextField.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\n\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '../../ui/form';\nimport { Input } from '../../ui/input';\n\nexport type TextFieldProps = React.ComponentProps<'input'> & {\n name: string;\n} & Partial<\n JSFField & {\n onChange?: (value: any) => void;\n component?: Components['text'];\n includeErrorMessage?: boolean;\n additionalProps?: Record<string, unknown>;\n }\n >;\n\nexport function TextField({\n name,\n description,\n label,\n type,\n onChange,\n component,\n includeErrorMessage = true,\n additionalProps = {},\n maxLength,\n ...rest\n}: TextFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const CustomTextField = component || components?.text;\n if (CustomTextField) {\n const customTextFieldProps = {\n name,\n description,\n label,\n type,\n onChange,\n metadata: additionalProps,\n maxLength,\n ...rest,\n };\n return (\n <CustomTextField\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customTextFieldProps}\n />\n );\n }\n\n return (\n <FormItem\n data-field={name}\n className={`RemoteFlows__TextField__Item__${name}`}\n >\n {label && (\n <FormLabel className=\"RemoteFlows__TextField__Label\">\n {label}\n </FormLabel>\n )}\n <FormControl>\n <Input\n {...field}\n value={field.value ?? ''}\n onChange={(event: React.ChangeEvent<HTMLInputElement>) => {\n field.onChange(event);\n onChange?.(event);\n }}\n className=\"RemoteFlows__TextField__Input\"\n placeholder={label}\n maxLength={maxLength}\n />\n </FormControl>\n {description && (\n <FormDescription className=\"RemoteFlows__TextField__Description\">\n {description}\n </FormDescription>\n )}\n {includeErrorMessage && fieldState.error && (\n <FormMessage className=\"RemoteFlows__TextField__Error\" />\n )}\n </FormItem>\n );\n }}\n />\n );\n}\n"],"mappings":"gMA4DY,cAAAA,EAeF,QAAAC,MAfE,oBAjCL,SAASC,EAAU,CACxB,KAAAC,EACA,YAAAC,EACA,MAAAC,EACA,KAAAC,EACA,SAAAC,EACA,UAAAC,EACA,oBAAAC,EAAsB,GACtB,gBAAAC,EAAkB,CAAC,EACnB,UAAAC,EACA,GAAGC,CACL,EAAmB,CACjB,GAAM,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAC/B,CAAE,QAAAC,CAAQ,EAAIC,EAAe,EAEnC,OACEhB,EAACiB,EAAA,CACC,QAASF,EACT,KAAMZ,EACN,OAAQ,CAAC,CAAE,MAAAe,EAAO,WAAAC,CAAW,IAAM,CACjC,IAAMC,EAAkBZ,GAAaK,GAAY,KACjD,GAAIO,EAAiB,CACnB,IAAMC,EAAuB,CAC3B,KAAAlB,EACA,YAAAC,EACA,MAAAC,EACA,KAAAC,EACA,SAAAC,EACA,SAAUG,EACV,UAAAC,EACA,GAAGC,CACL,EACA,OACEZ,EAACoB,EAAA,CACC,MAAO,CACL,GAAGF,EACH,SAAUI,EAACC,GAAe,CACxBL,EAAM,SAASK,CAAK,EACpBhB,IAAWgB,CAAK,CAClB,EAHU,WAIZ,EACA,WAAYJ,EACZ,UAAWE,EACb,CAEJ,CAEA,OACEpB,EAACuB,EAAA,CACC,aAAYrB,EACZ,UAAW,iCAAiCA,CAAI,GAE/C,UAAAE,GACCL,EAACyB,EAAA,CAAU,UAAU,gCAClB,SAAApB,EACH,EAEFL,EAAC0B,EAAA,CACC,SAAA1B,EAAC2B,EAAA,CACE,GAAGT,EACJ,MAAOA,EAAM,OAAS,GACtB,SAAWU,GAA+C,CACxDV,EAAM,SAASU,CAAK,EACpBrB,IAAWqB,CAAK,CAClB,EACA,UAAU,gCACV,YAAavB,EACb,UAAWM,EACb,EACF,EACCP,GACCJ,EAAC6B,EAAA,CAAgB,UAAU,sCACxB,SAAAzB,EACH,EAEDK,GAAuBU,EAAW,OACjCnB,EAAC8B,EAAA,CAAY,UAAU,gCAAgC,GAE3D,CAEJ,EACF,CAEJ,CAnFgBR,EAAApB,EAAA","names":["jsx","jsxs","TextField","name","description","label","type","onChange","component","includeErrorMessage","additionalProps","maxLength","rest","components","useFormFields","control","useFormContext","FormField","field","fieldState","CustomTextField","customTextFieldProps","__name","value","FormItem","FormLabel","FormControl","Input","event","FormDescription","FormMessage"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as m}from"./chunk-ILMVHOL2.js";import{a as l}from"./chunk-MDSGLUUB.js";import{a as o}from"./chunk-Y4VNFI7K.js";import{b as i}from"./chunk-CSK44J23.js";import{b as a}from"./chunk-3LOVCTCN.js";import{a as r}from"./chunk-P37U34EQ.js";import{Info as u}from"lucide-react";import{Fragment as f,jsx as e,jsxs as t}from"react/jsx-runtime";function w({benefitsTotal:d,benefitsBreakdown:p,currency:n}){return t("div",{children:[t("div",{className:"flex justify-between items-center mb-2",children:[e("h3",{className:"font-medium text-primary-foreground-800",children:"Benefits"}),e("span",{className:"font-semibold text-lg",children:a(d,n)})]}),e(l,{className:"mb-3"}),e("div",{className:"space-y-3 pl-2",children:p.map((s,c)=>t("div",{className:"flex justify-between items-start text-sm",children:[t("div",{className:"flex items-start gap-2",children:[e("span",{children:s.name}),s.description&&e(m,{content:t(f,{children:[e("span",{children:s.description})," ",s.zendesk_article_url&&e(o,{zendeskId:Number(s.zendesk_article_id),children:"Learn more"})]}),children:t(i,{variant:"ghost",size:"icon",className:"h-4 w-4 p-0",children:[e(u,{className:"h-3 w-3 text-gray-400"}),e("span",{className:"sr-only",children:"Info"})]})})]}),e("span",{children:a(s.amount,n)})]},c))})]})}r(w,"CostCalculatorBenefitsBreakdown");export{w as a};
|
|
2
|
+
//# sourceMappingURL=chunk-QI6LLU2N.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.tsx"],"sourcesContent":["import { Info } from 'lucide-react';\n\nimport { Button } from '@/src/components/ui/button';\nimport { Separator } from '@/src/components/ui/separator';\nimport { formatCurrency } from '@/src/lib/utils';\nimport { BasicTooltip } from '@/src/components/ui/basic-tooltip';\nimport { ZendeskTriggerButton } from '@/src/components/shared/zendesk-drawer/ZendeskTriggerButton';\n\ntype CostCalculatorBenefitsBreakdownProps = {\n benefitsTotal: number | undefined;\n benefitsBreakdown: {\n name: string;\n description: string | null;\n amount: number;\n zendesk_article_url: string | null;\n zendesk_article_id: string | null;\n }[];\n currency: string;\n};\n\nexport function CostCalculatorBenefitsBreakdown({\n benefitsTotal,\n benefitsBreakdown,\n currency,\n}: CostCalculatorBenefitsBreakdownProps) {\n return (\n <div>\n <div className=\"flex justify-between items-center mb-2\">\n <h3 className=\"font-medium text-primary-foreground-800\">Benefits</h3>\n <span className=\"font-semibold text-lg\">\n {formatCurrency(benefitsTotal, currency)}\n </span>\n </div>\n <Separator className=\"mb-3\" />\n\n <div className=\"space-y-3 pl-2\">\n {benefitsBreakdown.map((benefit, index) => (\n <div key={index} className=\"flex justify-between items-start text-sm\">\n <div className=\"flex items-start gap-2\">\n <span>{benefit.name}</span>\n {benefit.description && (\n <BasicTooltip\n content={\n <>\n <span>{benefit.description}</span>{' '}\n {benefit.zendesk_article_url && (\n <ZendeskTriggerButton\n zendeskId={Number(benefit.zendesk_article_id)}\n >\n Learn more\n </ZendeskTriggerButton>\n )}\n </>\n }\n >\n <Button variant=\"ghost\" size=\"icon\" className=\"h-4 w-4 p-0\">\n <Info className=\"h-3 w-3 text-gray-400\" />\n <span className=\"sr-only\">Info</span>\n </Button>\n </BasicTooltip>\n )}\n </div>\n <span>{formatCurrency(benefit.amount, currency)}</span>\n </div>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":"gPAAA,OAAS,QAAAA,MAAY,eA2Bf,OAgBc,YAAAC,EAfZ,OAAAC,EADF,QAAAC,MAAA,oBAPC,SAASC,EAAgC,CAC9C,cAAAC,EACA,kBAAAC,EACA,SAAAC,CACF,EAAyC,CACvC,OACEJ,EAAC,OACC,UAAAA,EAAC,OAAI,UAAU,yCACb,UAAAD,EAAC,MAAG,UAAU,0CAA0C,oBAAQ,EAChEA,EAAC,QAAK,UAAU,wBACb,SAAAM,EAAeH,EAAeE,CAAQ,EACzC,GACF,EACAL,EAACO,EAAA,CAAU,UAAU,OAAO,EAE5BP,EAAC,OAAI,UAAU,iBACZ,SAAAI,EAAkB,IAAI,CAACI,EAASC,IAC/BR,EAAC,OAAgB,UAAU,2CACzB,UAAAA,EAAC,OAAI,UAAU,yBACb,UAAAD,EAAC,QAAM,SAAAQ,EAAQ,KAAK,EACnBA,EAAQ,aACPR,EAACU,EAAA,CACC,QACET,EAAAF,EAAA,CACE,UAAAC,EAAC,QAAM,SAAAQ,EAAQ,YAAY,EAAQ,IAClCA,EAAQ,qBACPR,EAACW,EAAA,CACC,UAAW,OAAOH,EAAQ,kBAAkB,EAC7C,sBAED,GAEJ,EAGF,SAAAP,EAACW,EAAA,CAAO,QAAQ,QAAQ,KAAK,OAAO,UAAU,cAC5C,UAAAZ,EAACa,EAAA,CAAK,UAAU,wBAAwB,EACxCb,EAAC,QAAK,UAAU,UAAU,gBAAI,GAChC,EACF,GAEJ,EACAA,EAAC,QAAM,SAAAM,EAAeE,EAAQ,OAAQH,CAAQ,EAAE,IAzBxCI,CA0BV,CACD,EACH,GACF,CAEJ,CAhDgBK,EAAAZ,EAAA","names":["Info","Fragment","jsx","jsxs","CostCalculatorBenefitsBreakdown","benefitsTotal","benefitsBreakdown","currency","formatCurrency","Separator","benefit","index","BasicTooltip","ZendeskTriggerButton","Button","Info","__name"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as n}from"./chunk-MRYRNB7Y.js";import{a as t,b as m}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as n}from"./chunk-MRYRNB7Y.js";import{a as t,b as m}from"./chunk-GGBEM452.js";import{a as o}from"./chunk-P37U34EQ.js";var a=o(({render:p})=>{let{terminationBag:e}=n(),{data:s}=t({employmentId:e.employmentId}),{data:f}=m({employmentId:e.employmentId,status:"taken"});return p({employment:s,timeoff:f})},"TimeOff");export{a};
|
|
2
|
+
//# sourceMappingURL=chunk-QQ7KPOLK.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as m}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as m}from"./chunk-SZOOX2KY.js";import{b as a}from"./chunk-PGWKJ6FK.js";import{b as t}from"./chunk-QW4JPW6J.js";import{d as s}from"./chunk-MXFDOIUA.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as E}from"react/jsx-runtime";function P({components:d,onSubmit:l,onError:i,onSuccess:f}){let{onboardingBag:o}=a(),p=o.fields??[],c=s(p,o.initialValues.benefits);return E(m,{defaultValues:c,components:d,onSubmit:e(async n=>{try{await l?.(n);let r=await o.onSubmit(n);if(r?.data){await f?.(r.data),o?.next();return}if(r?.error){let u=t(r?.fieldErrors||[],o.meta?.fields?.benefits);i?.({error:r.error,rawError:r.rawError,fieldErrors:u})}}catch(r){i?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit")})}e(P,"BenefitsStep");export{P as a};
|
|
2
|
+
//# sourceMappingURL=chunk-QVN32YBL.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as S}from"./chunk-XFD3ULUF.js";import{a as g}from"./chunk-WWANHPT7.js";import{a as P}from"./chunk-DR7VGNO2.js";import{a as F}from"./chunk-S4XU4SE7.js";import{a as y}from"./chunk-Z5WMKCRJ.js";import{a as V}from"./chunk-QW4JPW6J.js";import{b as p}from"./chunk-EGQJ7UBR.js";import{a as T}from"./chunk-PJBAQZ6G.js";import{d as _}from"./chunk-3ZWDIEEM.js";import{c as s}from"./chunk-MXFDOIUA.js";import{a as e}from"./chunk-P37U34EQ.js";import{createHeadlessForm as h,modify as x}from"@remoteoss/json-schema-form";import{useMutation as K,useQuery as L}from"@tanstack/react-query";import q from"lodash.omitby";import A from"lodash.isnull";import R from"lodash.omit";function z(o){return{confidential:"",customer_informed_employee:"",customer_informed_employee_date:"",customer_informed_employee_description:"",personal_email:"",termination_reason:void 0,reason_description:"",termination_reason_files:[],will_challenge_termination:"",will_challenge_termination_description:null,agrees_to_pto_amount:"",agrees_to_pto_amount_notes:null,acknowledge_termination_procedure:!1,additional_comments:"",proposed_termination_date:"",risk_assessment_reasons:[],timesheet_file:void 0,...o}}e(z,"buildInitialValues");var B=e(()=>{let{client:o}=_();return K({mutationFn:e(n=>p({client:o,body:n}),"mutationFn")})},"useCreateTermination"),I=e(({formValues:o,jsfModify:n,step:m})=>L({queryKey:["rmt-flows-termination-schema",m],queryFn:e(()=>P[m]??S,"queryFn"),select:e(({data:u})=>{let i=u?.schema||{};if(n){let{schema:d}=x(i,n);i=d}return h(i||{},{initialValues:o||{}})},"select")}),"useTerminationSchema"),ue=e(({employmentId:o,options:n})=>{let{fieldValues:m,setFieldValues:u,stepState:i,previousStep:f,nextStep:d}=T(F),k={...i.values?.[i.currentStep.name],...m},{data:r,isLoading:w}=I({formValues:k,jsfModify:n?.jsfModify,step:i.currentStep.name}),l=h(g.data.schema),c=B(),{mutateAsync:b}=V(c);async function C(a){if(!o)throw new Error("Employment id is missing");if(r){let t=s(a,l.fields,{isPartialValidation:!0}),{customer_informed_employee:j}=t,D=j==="yes"?{employee_awareness:{date:t.customer_informed_employee_date,note:t.customer_informed_employee_description}}:void 0,H=y(t,["agrees_to_pto_amount","confidential","customer_informed_employee","will_challenge_termination"]),J=R(H,"customer_informed_employee_date","customer_informed_employee_description"),O=q({...J,...D},A);return b({employment_id:o,termination_details:O,type:"termination"})}}e(C,"onSubmit");function M(){f()}e(M,"back");function v(){d()}e(v,"next");let E=z({...i.values?.employee_communication,...i.values?.termination_details,...i.values?.paid_time_off,...i.values?.additional_information});return{employmentId:o,stepState:i,fields:r?.fields||[],isLoading:w,isSubmitting:c.isPending,initialValues:E,handleValidation:e(a=>{if(r){let t=s(a,r?.fields);return r?.handleValidation(t)}return null},"handleValidation"),checkFieldUpdates:e(a=>{if(l){let t=s(a,l?.fields,{isPartialValidation:!0});u(t)}},"checkFieldUpdates"),parseFormValues:e(a=>s(a,l.fields,{isPartialValidation:!0}),"parseFormValues"),onSubmit:C,back:M,next:v}},"useTermination");export{ue as a};
|
|
2
|
+
//# sourceMappingURL=chunk-R2SDR47E.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Termination/hooks.ts"],"sourcesContent":["import {\n CreateOffboardingParams,\n postCreateOffboarding,\n TerminationDetailsParams,\n} from '@/src/client';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport { Client } from '@hey-api/client-fetch';\nimport { createHeadlessForm, modify } from '@remoteoss/json-schema-form';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport omitBy from 'lodash.omitby';\nimport isNull from 'lodash.isnull';\nimport { parseJSFToValidate } from '@/src/components/form/utils';\nimport { TerminationFormValues } from '@/src/flows/Termination/types';\nimport { useClient } from '@/src/context';\nimport omit from 'lodash.omit';\nimport { parseFormRadioValues } from '@/src/flows/utils';\nimport { useStepState } from '@/src/flows/useStepState';\nimport { STEPS } from '@/src/flows/Termination/utils';\nimport { defaultSchema } from '@/src/flows/Termination/json-schemas/defaultSchema';\nimport { schema } from '@/src/flows/Termination/json-schemas/schema';\nimport { jsonSchema } from '@/src/flows/Termination/json-schemas/jsonSchema';\nimport { JSFModify } from '@/src/flows/types';\n\nfunction buildInitialValues(\n stepsInitialValues: Partial<TerminationFormValues>,\n): TerminationFormValues {\n const initialValues: TerminationFormValues = {\n confidential: '',\n customer_informed_employee: '',\n customer_informed_employee_date: '',\n customer_informed_employee_description: '',\n personal_email: '',\n termination_reason: undefined,\n reason_description: '',\n termination_reason_files: [],\n will_challenge_termination: '',\n will_challenge_termination_description: null,\n agrees_to_pto_amount: '',\n agrees_to_pto_amount_notes: null,\n acknowledge_termination_procedure: false,\n additional_comments: '',\n proposed_termination_date: '',\n risk_assessment_reasons: [],\n timesheet_file: undefined,\n ...stepsInitialValues,\n };\n\n return initialValues;\n}\n\nconst useCreateTermination = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (payload: CreateOffboardingParams) => {\n return postCreateOffboarding({\n client: client as Client,\n body: payload,\n });\n },\n });\n};\n\nconst useTerminationSchema = ({\n formValues,\n jsfModify,\n step,\n}: {\n formValues?: TerminationFormValues;\n jsfModify?: JSFModify;\n step?: string;\n}) => {\n return useQuery({\n queryKey: ['rmt-flows-termination-schema', step],\n queryFn: () => {\n return schema[step as keyof typeof schema] ?? defaultSchema;\n },\n select: ({ data }) => {\n let jsfSchema = data?.schema || {};\n if (jsfModify) {\n const { schema } = modify(jsfSchema, jsfModify);\n jsfSchema = schema;\n }\n const form = createHeadlessForm(jsfSchema || {}, {\n initialValues: formValues || {},\n });\n return form;\n },\n });\n};\n\ntype TerminationHookProps = {\n employmentId: string;\n options?: {\n jsfModify?: JSFModify;\n };\n};\n\nexport const useTermination = ({\n employmentId,\n options,\n}: TerminationHookProps) => {\n const { fieldValues, setFieldValues, stepState, previousStep, nextStep } =\n useStepState<keyof typeof STEPS, TerminationFormValues>(STEPS);\n\n const formValues = {\n ...stepState.values?.[stepState.currentStep.name as keyof typeof STEPS], // Restore values for the current step\n ...fieldValues,\n };\n\n const { data: terminationHeadlessForm, isLoading: isLoadingTermination } =\n useTerminationSchema({\n formValues: formValues,\n jsfModify: options?.jsfModify,\n step: stepState.currentStep.name,\n });\n\n const entireTerminationSchema = createHeadlessForm(jsonSchema.data.schema);\n\n const createTermination = useCreateTermination();\n const { mutateAsync } = mutationToPromise(createTermination);\n\n async function onSubmit(values: TerminationFormValues) {\n if (!employmentId) {\n throw new Error('Employment id is missing');\n }\n\n if (terminationHeadlessForm) {\n // this is a hack because I need to validate all form values with the entire schema\n const parsedValues = parseJSFToValidate(\n values,\n entireTerminationSchema.fields,\n { isPartialValidation: true },\n );\n\n const { customer_informed_employee: customerInformedEmployee } =\n parsedValues;\n\n const employeeAwareness =\n customerInformedEmployee === 'yes'\n ? {\n employee_awareness: {\n date: parsedValues.customer_informed_employee_date,\n note: parsedValues.customer_informed_employee_description,\n },\n }\n : undefined;\n\n const radioFieldKeys = [\n 'agrees_to_pto_amount',\n 'confidential',\n 'customer_informed_employee',\n 'will_challenge_termination',\n ];\n\n const parsedRadioValues = parseFormRadioValues(\n parsedValues,\n radioFieldKeys,\n );\n\n const normalizedValues = omit(\n parsedRadioValues,\n 'customer_informed_employee_date',\n 'customer_informed_employee_description',\n );\n\n const terminationDetails: TerminationDetailsParams = omitBy(\n {\n ...normalizedValues,\n ...employeeAwareness,\n },\n isNull,\n ) as unknown as TerminationDetailsParams;\n\n const terminationPayload: CreateOffboardingParams = {\n employment_id: employmentId,\n termination_details: terminationDetails,\n type: 'termination',\n };\n\n return mutateAsync(terminationPayload);\n }\n\n return;\n }\n\n function back() {\n previousStep();\n }\n\n function next() {\n nextStep();\n }\n\n const initialValues = buildInitialValues({\n ...stepState.values?.employee_communication,\n ...stepState.values?.termination_details,\n ...stepState.values?.paid_time_off,\n ...stepState.values?.additional_information,\n });\n\n return {\n /**\n * Employment id passed useful to be used between components\n */\n employmentId,\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState,\n /**\n * Array of form fields from the contract amendment schema\n */\n fields: terminationHeadlessForm?.fields || [],\n /**\n * Loading state indicating if the termination schema is being fetched\n */\n isLoading: isLoadingTermination,\n /**\n * Loading state indicating if a contract amendment mutation is in progress\n */\n isSubmitting: createTermination.isPending,\n /**\n * Initial form values\n */\n initialValues: initialValues,\n /**\n * Function to validate form values against the contract amendment schema\n * @param values - Form values to validate\n * @returns Validation result or null if no schema is available\n */\n handleValidation: (values: TerminationFormValues) => {\n if (terminationHeadlessForm) {\n const parsedValues = parseJSFToValidate(\n values,\n terminationHeadlessForm?.fields,\n );\n return terminationHeadlessForm?.handleValidation(parsedValues);\n }\n return null;\n },\n /**\n * Function to update the current form field values\n * @param values - New form values to set\n */\n checkFieldUpdates: (values: Partial<TerminationFormValues>) => {\n if (entireTerminationSchema) {\n const parsedValues = parseJSFToValidate(\n values,\n entireTerminationSchema?.fields,\n { isPartialValidation: true },\n );\n setFieldValues(parsedValues as TerminationFormValues);\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: (values: TerminationFormValues) => {\n return parseJSFToValidate(values, entireTerminationSchema.fields, {\n isPartialValidation: true,\n });\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 * Function to handle going back to the previous step\n * @returns {void}\n */\n back,\n\n /**\n * Function to handle going to the next step\n * @returns {void}\n */\n next,\n };\n};\n"],"mappings":"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","names":["createHeadlessForm","modify","useMutation","useQuery","omitBy","isNull","omit","buildInitialValues","stepsInitialValues","__name","useCreateTermination","client","useClient","useMutation","payload","postCreateOffboarding","useTerminationSchema","formValues","jsfModify","step","useQuery","schema","defaultSchema","data","jsfSchema","modify","createHeadlessForm","useTermination","employmentId","options","fieldValues","setFieldValues","stepState","previousStep","nextStep","useStepState","STEPS","terminationHeadlessForm","isLoadingTermination","entireTerminationSchema","jsonSchema","createTermination","mutateAsync","mutationToPromise","onSubmit","values","parsedValues","parseJSFToValidate","customerInformedEmployee","employeeAwareness","parsedRadioValues","parseFormRadioValues","normalizedValues","omit","terminationDetails","omitBy","isNull","back","next","initialValues"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as u}from"./chunk-3ZWDIEEM.js";import{b as e}from"./chunk-CSK44J23.js";import{b as i}from"./chunk-TVZAFTPT.js";import{a as m}from"./chunk-P37U34EQ.js";import{jsx as s}from"react/jsx-runtime";function d({children:t,...o}){let{formId:n}=i(),{components:f}=u(),r=f?.button;return r?s(r,{...o,form:n,children:t}):s(e,{...o,form:n,children:t})}m(d,"ContractAmendmentSubmit");export{d as a};
|
|
2
|
+
//# sourceMappingURL=chunk-R7L6CI5J.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as m}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as m}from"./chunk-ZSBWDLBS.js";import{a as n}from"./chunk-QQ7KPOLK.js";import{a as e}from"./chunk-R2SDR47E.js";import{a as T}from"./chunk-S7ZMHO5I.js";import{a}from"./chunk-RUVKAPO5.js";import{a as f}from"./chunk-KHVEYIMF.js";import{a as r}from"./chunk-4OEBYZLZ.js";import{a as p}from"./chunk-TJK6MTGG.js";import{a as t}from"./chunk-MRYRNB7Y.js";import{a as i}from"./chunk-P37U34EQ.js";import{useId as c}from"react";import{jsx as u}from"react/jsx-runtime";var A=i(({employmentId:d,render:s,options:l})=>{let y=c(),o=e({employmentId:d,options:l});return u(t.Provider,{value:{formId:y,terminationBag:o},children:s({terminationBag:o,components:{SubmitButton:m,TimeOff:n,Back:r,EmployeeComunicationStep:a,TerminationDetailsStep:p,PaidTimeOffStep:f,AdditionalDetailsStep:T}})})},"TerminationFlow");export{A as a};
|
|
2
|
+
//# sourceMappingURL=chunk-RMVG6YBI.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as n}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as n}from"./chunk-AJVD3O4D.js";import{b as m}from"./chunk-MRYRNB7Y.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as r}from"react/jsx-runtime";function p({onSubmit:e}){let{terminationBag:i}=m();return r(n,{onSubmit:o(async t=>{await e?.(i?.parseFormValues(t)),i?.next()},"handleSubmit")})}o(p,"EmployeeCommunicationForm");export{p as a};
|
|
2
|
+
//# sourceMappingURL=chunk-RUVKAPO5.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as t}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as t}from"./chunk-AJVD3O4D.js";import{b as a}from"./chunk-MRYRNB7Y.js";import{a as i}from"./chunk-P37U34EQ.js";import{jsx as p}from"react/jsx-runtime";function F({requesterName:n,onSubmit:s,onSuccess:m,onError:d}){let{terminationBag:e}=a(),l=i(async o=>{await s?.(e?.parseFormValues(o));let r=await e?.onSubmit(o);r?.error?d?.(r.error):r?.data&&await m?.(r.data)},"handleSubmit"),u=e?.fields.map(o=>o.name==="acknowledge_termination_procedure"?{...o,label:o.label.replace("{{requesterName}}",n)}:o);return p(t,{fields:u,onSubmit:l})}i(F,"AdditionalDetailsForm");export{F as a};
|
|
2
|
+
//# sourceMappingURL=chunk-S7ZMHO5I.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as m}from"./chunk-KSHK3ZPX.js";import{b as
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as m}from"./chunk-KSHK3ZPX.js";import{b as s}from"./chunk-3ZWDIEEM.js";import{b as i}from"./chunk-CSK44J23.js";import{a as e}from"./chunk-3LOVCTCN.js";import{a as u}from"./chunk-P37U34EQ.js";import{jsx as l}from"react/jsx-runtime";function b({children:o,...t}){let{formId:n}=m(),{components:C}=s(),r=C?.button;return r?l(r,{...t,form:n,children:o}):l(i,{...t,type:"submit",className:e("RemoteFlows__CostCalculatorForm__SubmitButton",t.className),form:n,children:o})}u(b,"CostCalculatorSubmitButton");export{b as a};
|
|
2
|
+
//# sourceMappingURL=chunk-SQICIS7B.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b}from"./chunk-PGWKJ6FK.js";import{
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b}from"./chunk-PGWKJ6FK.js";import{a as u}from"./chunk-AVA4MEFP.js";import{b as f}from"./chunk-CFIJKJXD.js";import{b as y}from"./chunk-QW4JPW6J.js";import{f as p,g as F}from"./chunk-GAOBYAJE.js";import{a as m}from"./chunk-P37U34EQ.js";import{useEffect as S}from"react";import{jsx as d}from"react/jsx-runtime";function N({defaultValues:l,onSubmit:g,components:E}){let{formId:w,onboardingBag:o}=b(),h=f(o.handleValidation),r=p({resolver:h,defaultValues:l,shouldUnregister:!1,mode:"onBlur"});S(()=>{o.employmentId&&o?.checkFieldUpdates(r.getValues())},[]),S(()=>{let t=r?.watch(e=>{Object.keys(e).some(i=>e[i]!==l[i])&&o?.checkFieldUpdates(e)});return()=>t?.unsubscribe()},[]);let k=m(async(t,e)=>{let s=e?.nativeEvent;if(s?.isDraftSubmission){let{onSuccess:i,onError:c}=s.draftCallbacks;try{if(!await r.trigger())return;let n=await o.onSubmit(t);if(n?.data)i?.();else if(n?.error){let B=o.stepState.currentStep.name,P=o.meta?.fields?.[B],O=y(n?.fieldErrors||[],P);c?.({error:n.error,rawError:n.rawError,fieldErrors:O})}}catch(a){c?.({error:a,rawError:a,fieldErrors:[]})}}else g(t)},"handleSubmit");return d(F,{...r,children:d("form",{id:w,onSubmit:r.handleSubmit(k),className:"space-y-4 RemoteFlows__OnboardingForm",children:d(u,{components:E,fields:o.fields,fieldsets:o.meta.fieldsets,fieldValues:o.fieldValues})})})}m(N,"OnboardingForm");export{N as a};
|
|
2
|
+
//# sourceMappingURL=chunk-SZOOX2KY.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as n}from"./chunk-3LOVCTCN.js";import{a as r}from"./chunk-P37U34EQ.js";import*as o from"@radix-ui/react-accordion";import{ChevronDownIcon as d}from"lucide-react";import{jsx as t,jsxs as s}from"react/jsx-runtime";function l({...i}){return t(o.Root,{"data-slot":"accordion",...i})}r(l,"Accordion");function f({className:i,...e}){return t(o.Item,{"data-slot":"accordion-item",className:n("border-b last:border-b-0",i),...e})}r(f,"AccordionItem");function v({className:i,iconClassName:e,children:c,...a}){return t(o.Header,{className:"flex items-center",children:s(o.Trigger,{"data-slot":"accordion-trigger",className:n("focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",i),...a,children:[c,t(d,{className:n("text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200 mt-1",e)})]})})}r(v,"AccordionTrigger");function g({className:i,children:e,...c}){return t(o.Content,{"data-slot":"accordion-content",className:"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",...c,children:t("div",{className:n("pt-0 pb-4",i),children:e})})}r(g,"AccordionContent");export{l as a,f as b,v as c,g as d};
|
|
2
|
+
//# sourceMappingURL=chunk-T3L72MV6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/accordion.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as AccordionPrimitive from '@radix-ui/react-accordion';\nimport { ChevronDownIcon } from 'lucide-react';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Accordion({\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn('border-b last:border-b-0', className)}\n {...props}\n />\n );\n}\n\ntype AccordionTriggerProps = React.ComponentProps<\n typeof AccordionPrimitive.Trigger\n> & {\n iconClassName?: string;\n};\n\nfunction AccordionTrigger({\n className,\n iconClassName,\n children,\n ...props\n}: AccordionTriggerProps) {\n return (\n <AccordionPrimitive.Header className=\"flex items-center\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n 'focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180',\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon\n className={cn(\n 'text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200 mt-1',\n iconClassName,\n )}\n />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm\"\n {...props}\n >\n <div className={cn('pt-0 pb-4', className)}>{children}</div>\n </AccordionPrimitive.Content>\n );\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n"],"mappings":"gFACA,UAAYA,MAAwB,4BACpC,OAAS,mBAAAC,MAAuB,eAOvB,cAAAC,EA8BH,QAAAC,MA9BG,oBAHT,SAASC,EAAU,CACjB,GAAGC,CACL,EAAyD,CACvD,OAAOH,EAAoB,OAAnB,CAAwB,YAAU,YAAa,GAAGG,EAAO,CACnE,CAJSC,EAAAF,EAAA,aAMT,SAASG,EAAc,CACrB,UAAAC,EACA,GAAGH,CACL,EAAyD,CACvD,OACEH,EAAoB,OAAnB,CACC,YAAU,iBACV,UAAWO,EAAG,2BAA4BD,CAAS,EAClD,GAAGH,EACN,CAEJ,CAXSC,EAAAC,EAAA,iBAmBT,SAASG,EAAiB,CACxB,UAAAF,EACA,cAAAG,EACA,SAAAC,EACA,GAAGP,CACL,EAA0B,CACxB,OACEH,EAAoB,SAAnB,CAA0B,UAAU,oBACnC,SAAAC,EAAoB,UAAnB,CACC,YAAU,oBACV,UAAWM,EACT,6SACAD,CACF,EACC,GAAGH,EAEH,UAAAO,EACDV,EAACW,EAAA,CACC,UAAWJ,EACT,mHACAE,CACF,EACF,GACF,EACF,CAEJ,CA1BSL,EAAAI,EAAA,oBA4BT,SAASI,EAAiB,CACxB,UAAAN,EACA,SAAAI,EACA,GAAGP,CACL,EAA4D,CAC1D,OACEH,EAAoB,UAAnB,CACC,YAAU,oBACV,UAAU,4GACT,GAAGG,EAEJ,SAAAH,EAAC,OAAI,UAAWO,EAAG,YAAaD,CAAS,EAAI,SAAAI,EAAS,EACxD,CAEJ,CAdSN,EAAAQ,EAAA","names":["AccordionPrimitive","ChevronDownIcon","jsx","jsxs","Accordion","props","__name","AccordionItem","className","cn","AccordionTrigger","iconClassName","children","ChevronDownIcon","AccordionContent"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as r}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as r}from"./chunk-AJVD3O4D.js";import{b as n}from"./chunk-MRYRNB7Y.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as a}from"react/jsx-runtime";function u({onSubmit:m}){let{terminationBag:i}=n();return a(r,{onSubmit:o(async t=>{await m?.(i?.parseFormValues(t)),i?.next()},"handleSubmit")})}o(u,"TerminationDetailsForm");export{u as a};
|
|
2
|
+
//# sourceMappingURL=chunk-TJK6MTGG.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as c}from"./chunk-KSHK3ZPX.js";import{a as C}from"./chunk-AVA4MEFP.js";import{g as n}from"./chunk-GAOBYAJE.js";import{a as l}from"./chunk-P37U34EQ.js";import{useEffect as F}from"react";import{jsx as m}from"react/jsx-runtime";function P({onSubmit:f,onError:d,onSuccess:p,shouldResetForm:i,resetFields:s}){let{form:o,formId:E,costCalculatorBag:t}=c(),{formState:{isSubmitSuccessful:e}}=o;F(()=>{if(e&&i){t?.resetForm(),o.reset();return}if(e&&s){let a={...o.getValues()};s.forEach(r=>{a[r]=""}),t?.resetForm(),o.reset(a)}},[e,o,i,t,s]);let S=l(async u=>{let a=t?.parseFormValues(u),r=await t?.onSubmit(a);await f?.(a),r?.error?d?.(r.error):r?.data&&await p?.(r?.data)},"handleSubmit");return m(n,{...o,children:m("form",{id:E,onSubmit:o.handleSubmit(S),className:"space-y-4 RemoteFlows__CostCalculatorForm",children:m(C,{fields:t?.fields??[]})})})}l(P,"CostCalculatorForm");export{P as a};
|
|
2
|
+
//# sourceMappingURL=chunk-TPSZDGQJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/CostCalculator/CostCalculatorForm.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { CostCalculatorEstimateResponse } from '@/src/client';\nimport { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { Form } from '@/src/components/ui/form';\nimport { useCostCalculatorContext } from '@/src/flows/CostCalculator/context';\nimport {\n CostCalculatorEstimationFormValues,\n CostCalculatorEstimationSubmitValues,\n EstimationError,\n} from '@/src/flows/CostCalculator/types';\n\ntype CostCalculatorFormProps = Partial<{\n /**\n * Callback function that handles form submission. When form is submit, the form values are sent to the consumer app before behind submitted to Remote.\n * @param data - The payload sent to the /cost-calculator/estimation endpoint.\n */\n onSubmit: (\n data: CostCalculatorEstimationSubmitValues,\n ) => Promise<void> | void;\n /**\n * Callback function to handle the success when the estimation succeeds. The CostCalculatorEstimateResponse is sent back to you.\n * @param data - The response data from the /cost-calculator/estimation endpoint.\n */\n onSuccess: (data: CostCalculatorEstimateResponse) => Promise<void> | void;\n /**\n * Callback function to handle the error when the estimation fails.\n * @param error - The error object.\n */\n onError: (error: EstimationError) => void;\n /**\n * Whether to reset the form when the form is successfully submitted.\n */\n shouldResetForm?: boolean;\n\n /**\n * Fields to reset when the form is successfully submitted.\n */\n resetFields?: ('country' | 'currency' | 'salary')[];\n}>;\n\nexport function CostCalculatorForm({\n onSubmit,\n onError,\n onSuccess,\n shouldResetForm,\n resetFields,\n}: CostCalculatorFormProps) {\n const { form, formId, costCalculatorBag } = useCostCalculatorContext();\n\n const {\n formState: { isSubmitSuccessful },\n } = form;\n\n useEffect(() => {\n // resets the entire form if the form is successfully submitted and the shouldResetForm prop is true\n if (isSubmitSuccessful && shouldResetForm) {\n costCalculatorBag?.resetForm();\n form.reset();\n return;\n }\n\n // resets the specified fields if the form is successfully submitted and the resetFields prop is provided\n if (isSubmitSuccessful && resetFields) {\n // Reset only the specified fields\n const currentValues = form.getValues();\n const resetValues = { ...currentValues };\n resetFields.forEach((field) => {\n resetValues[field] = '';\n });\n\n costCalculatorBag?.resetForm();\n form.reset(resetValues);\n }\n }, [\n isSubmitSuccessful,\n form,\n shouldResetForm,\n costCalculatorBag,\n resetFields,\n ]);\n\n const handleSubmit = async (values: CostCalculatorEstimationFormValues) => {\n const parsedValues = costCalculatorBag?.parseFormValues(\n values,\n ) as CostCalculatorEstimationSubmitValues;\n const costCalculatorResults =\n await costCalculatorBag?.onSubmit(parsedValues);\n\n await onSubmit?.(parsedValues);\n\n if (costCalculatorResults?.error) {\n onError?.(costCalculatorResults.error);\n } else if (costCalculatorResults?.data) {\n await onSuccess?.(costCalculatorResults?.data);\n }\n };\n\n return (\n <Form {...form}>\n <form\n id={formId}\n onSubmit={form.handleSubmit(handleSubmit)}\n className=\"space-y-4 RemoteFlows__CostCalculatorForm\"\n >\n <JSONSchemaFormFields fields={costCalculatorBag?.fields ?? []} />\n </form>\n </Form>\n );\n}\n"],"mappings":"gKAAA,OAAS,aAAAA,MAAiB,QAwGlB,cAAAC,MAAA,oBAhED,SAASC,EAAmB,CACjC,SAAAC,EACA,QAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,YAAAC,CACF,EAA4B,CAC1B,GAAM,CAAE,KAAAC,EAAM,OAAAC,EAAQ,kBAAAC,CAAkB,EAAIC,EAAyB,EAE/D,CACJ,UAAW,CAAE,mBAAAC,CAAmB,CAClC,EAAIJ,EAEJK,EAAU,IAAM,CAEd,GAAID,GAAsBN,EAAiB,CACzCI,GAAmB,UAAU,EAC7BF,EAAK,MAAM,EACX,MACF,CAGA,GAAII,GAAsBL,EAAa,CAGrC,IAAMO,EAAc,CAAE,GADAN,EAAK,UAAU,CACE,EACvCD,EAAY,QAASQ,GAAU,CAC7BD,EAAYC,CAAK,EAAI,EACvB,CAAC,EAEDL,GAAmB,UAAU,EAC7BF,EAAK,MAAMM,CAAW,CACxB,CACF,EAAG,CACDF,EACAJ,EACAF,EACAI,EACAH,CACF,CAAC,EAED,IAAMS,EAAeC,EAAA,MAAOC,GAA+C,CACzE,IAAMC,EAAeT,GAAmB,gBACtCQ,CACF,EACME,EACJ,MAAMV,GAAmB,SAASS,CAAY,EAEhD,MAAMhB,IAAWgB,CAAY,EAEzBC,GAAuB,MACzBhB,IAAUgB,EAAsB,KAAK,EAC5BA,GAAuB,MAChC,MAAMf,IAAYe,GAAuB,IAAI,CAEjD,EAdqB,gBAgBrB,OACEnB,EAACoB,EAAA,CAAM,GAAGb,EACR,SAAAP,EAAC,QACC,GAAIQ,EACJ,SAAUD,EAAK,aAAaQ,CAAY,EACxC,UAAU,4CAEV,SAAAf,EAACqB,EAAA,CAAqB,OAAQZ,GAAmB,QAAU,CAAC,EAAG,EACjE,EACF,CAEJ,CApEgBO,EAAAf,EAAA","names":["useEffect","jsx","CostCalculatorForm","onSubmit","onError","onSuccess","shouldResetForm","resetFields","form","formId","costCalculatorBag","useCostCalculatorContext","isSubmitSuccessful","useEffect","resetValues","field","handleSubmit","__name","values","parsedValues","costCalculatorResults","Form","JSONSchemaFormFields"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as u,b as v,c as S,d as w,e as D,f as A,g as h}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as t}from"./chunk-DYB3RWP7.js";import{a as u,b as v,c as S,d as w,e as D,f as A,g as h}from"./chunk-77AF2QOD.js";import{b as m}from"./chunk-CSK44J23.js";import{a as n}from"./chunk-3LOVCTCN.js";import{a as f}from"./chunk-P37U34EQ.js";import*as p from"react";import*as r from"@radix-ui/react-scroll-area";import{jsx as l,jsxs as P}from"react/jsx-runtime";var d=p.forwardRef(({className:o,children:a,...c},s)=>P(r.Root,{ref:s,className:n("relative overflow-hidden",o),...c,children:[l(r.Viewport,{className:"h-full w-full rounded-[inherit]",children:a}),l(b,{}),l(r.Corner,{})]}));d.displayName=r.Root.displayName;var b=p.forwardRef(({className:o,orientation:a="vertical",...c},s)=>l(r.ScrollAreaScrollbar,{ref:s,orientation:a,className:n("flex touch-none select-none transition-colors",a==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",a==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",o),...c,children:l(r.ScrollAreaThumb,{className:"relative flex-1 rounded-full bg-border"})}));b.displayName=r.ScrollAreaScrollbar.displayName;import{X as C}from"lucide-react";import{jsx as e,jsxs as i}from"react/jsx-runtime";var B=f(({label:o="Disclaimer"})=>i(u,{children:[e(v,{asChild:!0,children:e(m,{variant:"link",size:"link",children:o})}),i(w,{children:[i(D,{children:[i(S,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",children:[e(C,{className:"h-4 w-4"}),e("span",{className:"sr-only",children:"Close"})]}),e(A,{children:t?.data.title}),i(h,{children:["For more details read our"," ",e(m,{variant:"link",size:"link",asChild:!0,children:e("a",{href:t?.data.html_url,target:"_blank",rel:"noopener noreferrer",children:"Disclaimer"})})]})]}),e(d,{className:"px-4 pb-4 overflow-y-auto max-h-[calc(80vh-120px)] cost-calculator-disclaimer-drawer-scroll-area",children:e("div",{className:"cost-calculator-disclaimer-drawer-body",dangerouslySetInnerHTML:{__html:t?.data.body??""}})})]})]}),"CostCalculatorDisclaimer");export{B as a};
|
|
2
|
+
//# sourceMappingURL=chunk-VD65AUOI.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a}from"./chunk-MDSGLUUB.js";import{b as e}from"./chunk-3LOVCTCN.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as r,jsxs as o}from"react/jsx-runtime";function m({indirectTax:i,currency:n}){return o("div",{children:[o("div",{className:"flex justify-between items-center mb-2",children:[r("h3",{className:"font-medium text-primary-foreground",children:"Indirect Tax"}),r("span",{className:"font-semibold text-lg",children:e(i,n)})]}),r(a,{})]})}t(m,"CostCalculatorIndirectTax");export{m as a};
|
|
2
|
+
//# sourceMappingURL=chunk-WYXN7WW6.js.map
|