@remoteoss/remote-flows 1.4.3 → 1.5.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 +8 -2
- package/dist/ButtonDefault-PG2HCSV4.js +2 -0
- package/dist/ButtonDefault-PG2HCSV4.js.map +1 -0
- package/dist/CheckboxFieldDefault-OBJ4QREK.js +2 -0
- package/dist/CheckboxFieldDefault-OBJ4QREK.js.map +1 -0
- package/dist/CountryFieldDefault-WPXUWTKB.js +2 -0
- package/dist/CountryFieldDefault-WPXUWTKB.js.map +1 -0
- package/dist/DatePickerFieldDefault-GHJWMFG2.js +2 -0
- package/dist/DatePickerFieldDefault-GHJWMFG2.js.map +1 -0
- package/dist/DrawerDefault-FSKTBWTS.js +2 -0
- package/dist/DrawerDefault-FSKTBWTS.js.map +1 -0
- package/dist/EmailFieldDefault-2TN72RV6.js +2 -0
- package/dist/EmailFieldDefault-2TN72RV6.js.map +1 -0
- package/dist/FieldsetToggleButtonDefault-NLE2WGVL.js +2 -0
- package/dist/FieldsetToggleButtonDefault-NLE2WGVL.js.map +1 -0
- package/dist/FileUploadFieldDefault-DDUFS4WG.js +2 -0
- package/dist/FileUploadFieldDefault-DDUFS4WG.js.map +1 -0
- package/dist/MultiSelectFieldDefault-7VSOLYXI.js +2 -0
- package/dist/MultiSelectFieldDefault-7VSOLYXI.js.map +1 -0
- package/dist/NumberFieldDefault-N7VHRJZA.js +2 -0
- package/dist/NumberFieldDefault-N7VHRJZA.js.map +1 -0
- package/dist/RadioGroupFieldDefault-PCQKOUWG.js +2 -0
- package/dist/RadioGroupFieldDefault-PCQKOUWG.js.map +1 -0
- package/dist/SelectFieldDefault-AT2ZVV4P.js +2 -0
- package/dist/SelectFieldDefault-AT2ZVV4P.js.map +1 -0
- package/dist/StatementDefault-J7AMNUZ2.js +2 -0
- package/dist/StatementDefault-J7AMNUZ2.js.map +1 -0
- package/dist/TableFieldDefault-KZXST5VW.js +2 -0
- package/dist/TableFieldDefault-KZXST5VW.js.map +1 -0
- package/dist/TextAreaFieldDefault-LUX3XPMB.js +2 -0
- package/dist/TextAreaFieldDefault-LUX3XPMB.js.map +1 -0
- package/dist/TextFieldDefault-ZGWGWYJ6.js +2 -0
- package/dist/TextFieldDefault-ZGWGWYJ6.js.map +1 -0
- package/dist/WorkScheduleFieldDefault-JEWUBVOO.js +2 -0
- package/dist/WorkScheduleFieldDefault-JEWUBVOO.js.map +1 -0
- package/dist/ZendeskDrawerDefault-L3QJQNRH.js +2 -0
- package/dist/ZendeskDrawerDefault-L3QJQNRH.js.map +1 -0
- package/dist/chunk-252BG35G.js +2 -0
- package/dist/chunk-252BG35G.js.map +1 -0
- package/dist/chunk-2IHUWRL4.js +2 -0
- package/dist/chunk-2IHUWRL4.js.map +1 -0
- package/dist/{chunk-MD2QFLXC.js → chunk-2L5YJSIF.js} +2 -2
- package/dist/{chunk-ARQ2PTEA.js → chunk-2RLH6ZLY.js} +2 -2
- package/dist/chunk-37PL5HK2.js +2 -0
- package/dist/chunk-37PL5HK2.js.map +1 -0
- package/dist/chunk-4LMCHO7V.js +2 -0
- package/dist/chunk-4LMCHO7V.js.map +1 -0
- package/dist/chunk-4N66FNVP.js +2 -0
- package/dist/chunk-4N66FNVP.js.map +1 -0
- package/dist/chunk-4O6M7I7Z.js +2 -0
- package/dist/chunk-4O6M7I7Z.js.map +1 -0
- package/dist/{chunk-2ZCOC6FB.js → chunk-4Z3V5SXU.js} +2 -2
- package/dist/chunk-5CDYMEHW.js +2 -0
- package/dist/chunk-5CDYMEHW.js.map +1 -0
- package/dist/{chunk-K3XVYHGV.js → chunk-5CXPVPOG.js} +2 -2
- package/dist/{chunk-MWMX5KTM.js → chunk-5S5YAMYB.js} +2 -2
- package/dist/chunk-5XAHIRL6.js +2 -0
- package/dist/chunk-5XAHIRL6.js.map +1 -0
- package/dist/{chunk-6YRMHTAZ.js → chunk-6ARN2SX2.js} +2 -2
- package/dist/chunk-75H7ASIK.js +2 -0
- package/dist/chunk-75H7ASIK.js.map +1 -0
- package/dist/chunk-7EHK36JU.js +2 -0
- package/dist/chunk-7EHK36JU.js.map +1 -0
- package/dist/{chunk-Y75E2FOC.js → chunk-AJADTL33.js} +2 -2
- package/dist/{chunk-BNBEIHLD.js → chunk-BAGTZ3NN.js} +2 -2
- package/dist/{chunk-ZJAFMNUN.js → chunk-BIC5GBW4.js} +2 -2
- package/dist/{chunk-3DGBLO6M.js → chunk-CIUPGLOU.js} +2 -2
- package/dist/chunk-D5AR26AI.js +2 -0
- package/dist/chunk-D5AR26AI.js.map +1 -0
- package/dist/chunk-DA6SLHO4.js +2 -0
- package/dist/chunk-DA6SLHO4.js.map +1 -0
- package/dist/{chunk-BF3P3CMA.js → chunk-DN6SGTCI.js} +2 -2
- package/dist/chunk-FDBLCEFN.js +2 -0
- package/dist/chunk-FDBLCEFN.js.map +1 -0
- package/dist/{chunk-A5NDO6CQ.js → chunk-FEGY4ZEW.js} +2 -2
- package/dist/chunk-FM7K64YV.js +2 -0
- package/dist/chunk-FM7K64YV.js.map +1 -0
- package/dist/chunk-FNSD4BSK.js +2 -0
- package/dist/chunk-FNSD4BSK.js.map +1 -0
- package/dist/chunk-GBU46SLB.js +2 -0
- package/dist/chunk-GBU46SLB.js.map +1 -0
- package/dist/chunk-GDEPTDOR.js +2 -0
- package/dist/chunk-GDEPTDOR.js.map +1 -0
- package/dist/chunk-GNPHI7PB.js +2 -0
- package/dist/chunk-GNPHI7PB.js.map +1 -0
- package/dist/chunk-GPRN5IXM.js +2 -0
- package/dist/chunk-GPRN5IXM.js.map +1 -0
- package/dist/chunk-GWA5DDSK.js +2 -0
- package/dist/chunk-GWA5DDSK.js.map +1 -0
- package/dist/chunk-HNUWNTPD.js +2 -0
- package/dist/chunk-HNUWNTPD.js.map +1 -0
- package/dist/{chunk-KABFJTE2.js → chunk-IGLBEWVV.js} +2 -2
- package/dist/{chunk-WO33FKK4.js → chunk-IJUB7Z4E.js} +2 -2
- package/dist/{chunk-25M7VGZT.js → chunk-IOX27DWA.js} +2 -2
- package/dist/chunk-ISSEORVM.js +2 -0
- package/dist/chunk-ISSEORVM.js.map +1 -0
- package/dist/{chunk-CZ7DTX5L.js → chunk-IVHHMIUY.js} +2 -2
- package/dist/{chunk-BZBPPV5B.js → chunk-J2NQBF62.js} +2 -2
- package/dist/{chunk-CVRZA3VP.js → chunk-JCIUCOEM.js} +2 -2
- package/dist/chunk-JHIRXRGV.js +2 -0
- package/dist/chunk-JHIRXRGV.js.map +1 -0
- package/dist/{chunk-QLX4J76Z.js → chunk-K4IKYJ3B.js} +2 -2
- package/dist/{chunk-B3TRTHW4.js → chunk-KKKOMF2R.js} +2 -2
- package/dist/chunk-KRJETP7I.js +2 -0
- package/dist/chunk-KRJETP7I.js.map +1 -0
- package/dist/chunk-L2A6WN6O.js +2 -0
- package/dist/chunk-L2A6WN6O.js.map +1 -0
- package/dist/chunk-L5WJIYHB.js +2 -0
- package/dist/chunk-L5WJIYHB.js.map +1 -0
- package/dist/chunk-LLP55ZDN.js +2 -0
- package/dist/chunk-LLP55ZDN.js.map +1 -0
- package/dist/chunk-LXD6EB3B.js +2 -0
- package/dist/chunk-LXD6EB3B.js.map +1 -0
- package/dist/chunk-M6SSA4VP.js +2 -0
- package/dist/chunk-M6SSA4VP.js.map +1 -0
- package/dist/chunk-MJQUJZCD.js +2 -0
- package/dist/chunk-MJQUJZCD.js.map +1 -0
- package/dist/chunk-N6YAIBJR.js +2 -0
- package/dist/chunk-N6YAIBJR.js.map +1 -0
- package/dist/{chunk-JHSQWGEK.js → chunk-NO6BRWFS.js} +2 -2
- package/dist/{chunk-OF66TZF4.js → chunk-OEBMODP7.js} +2 -2
- package/dist/{chunk-KC6PLCTE.js → chunk-OW7BCYPF.js} +2 -2
- package/dist/{chunk-YXVNCPUI.js → chunk-P5GY5LLV.js} +2 -2
- package/dist/{chunk-ZK27BWOZ.js → chunk-Q2XGTGUQ.js} +2 -2
- package/dist/chunk-Q3LH3SPI.js +2 -0
- package/dist/chunk-Q3LH3SPI.js.map +1 -0
- package/dist/chunk-Q3NPSRTT.js +2 -0
- package/dist/chunk-Q3NPSRTT.js.map +1 -0
- package/dist/{chunk-3OX2LLXL.js → chunk-QCIOQVSK.js} +2 -2
- package/dist/{chunk-X5ZNVQAZ.js → chunk-QT43Z24O.js} +2 -2
- package/dist/{chunk-LEVFKYRL.js → chunk-QTJ6EDEM.js} +2 -2
- package/dist/chunk-R5MQUZSC.js +2 -0
- package/dist/chunk-R5MQUZSC.js.map +1 -0
- package/dist/chunk-RGAHP6NW.js +2 -0
- package/dist/chunk-RGAHP6NW.js.map +1 -0
- package/dist/chunk-RVYQJM63.js +2 -0
- package/dist/chunk-RVYQJM63.js.map +1 -0
- package/dist/{chunk-JDNBIL6Z.js → chunk-RYOXAR7O.js} +2 -2
- package/dist/chunk-SHWM6RJC.js +2 -0
- package/dist/chunk-SHWM6RJC.js.map +1 -0
- package/dist/{chunk-XB4IEQ25.js → chunk-SO2RPIOT.js} +2 -2
- package/dist/chunk-U6LRMWRI.js +2 -0
- package/dist/chunk-U6LRMWRI.js.map +1 -0
- package/dist/{chunk-N3X274GT.js → chunk-U7CW67TM.js} +2 -2
- package/dist/{chunk-TKSW7MGC.js → chunk-V4OZS4QW.js} +2 -2
- package/dist/chunk-VAFD5QUX.js +2 -0
- package/dist/chunk-VAFD5QUX.js.map +1 -0
- package/dist/chunk-VCZDLRTI.js +2 -0
- package/dist/chunk-VCZDLRTI.js.map +1 -0
- package/dist/{chunk-73BVEZJ6.js → chunk-VD2T75BY.js} +2 -2
- package/dist/chunk-VLKGQAEQ.js +2 -0
- package/dist/chunk-VLKGQAEQ.js.map +1 -0
- package/dist/{chunk-AO2DMBDU.js → chunk-W32TDEQ3.js} +2 -2
- package/dist/{chunk-BZAIUY5N.js → chunk-W4G2O5QV.js} +2 -2
- package/dist/chunk-W7YC2IO2.js +2 -0
- package/dist/chunk-W7YC2IO2.js.map +1 -0
- package/dist/{chunk-HLR4BEDV.js → chunk-WAG67DRI.js} +2 -2
- package/dist/chunk-WR5DSTKP.js +2 -0
- package/dist/chunk-WR5DSTKP.js.map +1 -0
- package/dist/chunk-WXZ5B4PT.js +2 -0
- package/dist/chunk-WXZ5B4PT.js.map +1 -0
- package/dist/{chunk-5HXPBCU6.js → chunk-WYIEW4OC.js} +2 -2
- package/dist/{chunk-NFWNYW2E.js → chunk-X3ZIQ7HA.js} +1 -1
- package/dist/{chunk-P5QKSFOE.js → chunk-XXIUJVIY.js} +2 -2
- package/dist/chunk-YIMWF5GR.js +2 -0
- package/dist/chunk-YIMWF5GR.js.map +1 -0
- package/dist/{chunk-J3BK2DEH.js → chunk-YRFNEKBE.js} +2 -2
- package/dist/{chunk-7X3WUOTU.js → chunk-ZBLC4GNZ.js} +2 -2
- package/dist/chunk-ZDTHQRXJ.js +2 -0
- package/dist/chunk-ZDTHQRXJ.js.map +1 -0
- package/dist/chunk-ZJSGU543.js +2 -0
- package/dist/chunk-ZJSGU543.js.map +1 -0
- package/dist/default-components.d.ts +16 -0
- package/dist/default-components.js +2 -0
- package/dist/default-components.js.map +1 -0
- 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 +3 -3
- 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 +3 -3
- package/dist/flows/ContractAmendment/hooks.d.ts +3 -3
- package/dist/flows/ContractAmendment/hooks.js +1 -1
- package/dist/flows/ContractAmendment/index.d.ts +3 -3
- package/dist/flows/ContractAmendment/index.js +1 -1
- package/dist/flows/ContractAmendment/types.d.ts +2 -2
- package/dist/flows/ContractAmendment/utils.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
- package/dist/flows/ContractorOnboarding/api.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/api.js +1 -1
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +4 -4
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
- package/dist/flows/ContractorOnboarding/components/OnboardingBack.js +1 -1
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.d.ts +3 -3
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/ContractorOnboarding/components/OnboardingSubmit.js +1 -1
- package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/ContractorOnboarding/context.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/hooks.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/hooks.js +1 -1
- package/dist/flows/ContractorOnboarding/index.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/index.js +1 -1
- package/dist/flows/ContractorOnboarding/types.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/utils.d.ts +2 -2
- package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +3 -3
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +3 -3
- 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 +2 -2
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +2 -2
- package/dist/flows/CostCalculator/api.d.ts +2 -2
- package/dist/flows/CostCalculator/api.js +1 -1
- package/dist/flows/CostCalculator/components/SalaryField.d.ts +2 -2
- package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
- package/dist/flows/CostCalculator/context.d.ts +3 -3
- package/dist/flows/CostCalculator/hooks.d.ts +3 -3
- package/dist/flows/CostCalculator/hooks.js +1 -1
- package/dist/flows/CostCalculator/index.d.ts +3 -3
- package/dist/flows/CostCalculator/index.js +1 -1
- package/dist/flows/CostCalculator/types.d.ts +2 -2
- package/dist/flows/CostCalculator/utils.d.ts +3 -3
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +4 -4
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/api.d.ts +4 -4
- package/dist/flows/Onboarding/api.js +1 -1
- package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +2 -2
- package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +4 -4
- 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 +4 -4
- package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +3 -3
- 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 +4 -4
- package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +3 -3
- package/dist/flows/Onboarding/components/SaveDraftButton.js +1 -1
- package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/Onboarding/context.d.ts +6 -6
- package/dist/flows/Onboarding/hooks.d.ts +4 -4
- package/dist/flows/Onboarding/hooks.js +1 -1
- package/dist/flows/Onboarding/index.d.ts +4 -4
- package/dist/flows/Onboarding/index.js +1 -1
- package/dist/flows/Onboarding/types.d.ts +4 -4
- package/dist/flows/Onboarding/utils.d.ts +4 -4
- package/dist/flows/Termination/AdditionalDetailsForm.d.ts +4 -4
- package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
- package/dist/flows/Termination/EmployeeComunicationForm.d.ts +4 -4
- package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
- package/dist/flows/Termination/PaidTimeOffForm.d.ts +4 -4
- package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
- package/dist/flows/Termination/TerminationBack.js +1 -1
- package/dist/flows/Termination/TerminationDetailsForm.d.ts +4 -4
- package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
- package/dist/flows/Termination/TerminationFlow.d.ts +4 -4
- package/dist/flows/Termination/TerminationFlow.js +1 -1
- package/dist/flows/Termination/TerminationForm.d.ts +4 -4
- package/dist/flows/Termination/TerminationForm.js +1 -1
- package/dist/flows/Termination/TerminationSubmit.js +1 -1
- package/dist/flows/Termination/api.d.ts +5 -5
- package/dist/flows/Termination/api.js +1 -1
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformationFees.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +6 -6
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +6 -6
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +6 -6
- package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +1 -1
- package/dist/flows/Termination/context.d.ts +4 -4
- package/dist/flows/Termination/hooks.d.ts +4 -4
- package/dist/flows/Termination/hooks.js +1 -1
- package/dist/flows/Termination/index.d.ts +6 -6
- package/dist/flows/Termination/index.js +1 -1
- package/dist/flows/Termination/json-schemas/schema.d.ts +4 -4
- package/dist/flows/Termination/types.d.ts +4 -4
- package/dist/flows/Termination/utils.d.ts +4 -4
- package/dist/flows/types.d.ts +2 -2
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +10 -10
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/internals.d.ts +3 -3
- package/dist/internals.js +1 -1
- package/dist/{mutations-CwV3FSZa.d.ts → mutations-_fbChogH.d.ts} +1 -1
- package/dist/{remoteFlows-DqQyrI2g.d.ts → remoteFlows-EO5mIvOd.d.ts} +20 -5
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/dist/{types-0uSX2WDe.d.ts → types-5HNrr4sn.d.ts} +3 -3
- package/dist/{types-DIabyGgC.d.ts → types-BBqw2IyP.d.ts} +4 -4
- package/dist/{types-LQvj5Mqu.d.ts → types-CWrhMXgL.d.ts} +2 -2
- package/dist/{types-DrSvvUa_.d.ts → types-DDpMBsb_.d.ts} +1 -1
- package/dist/{types.gen-DJv5QUrm.d.ts → types.gen-DNn2UIXs.d.ts} +1 -1
- package/dist/{utils-CS1AeAaj.d.ts → utils-Cl7flwLn.d.ts} +1 -1
- package/package.json +10 -1
- package/dist/chunk-22HZVTR7.js +0 -2
- package/dist/chunk-22HZVTR7.js.map +0 -1
- package/dist/chunk-2XVUZH4T.js +0 -2
- package/dist/chunk-2XVUZH4T.js.map +0 -1
- package/dist/chunk-4OVFMUUJ.js +0 -2
- package/dist/chunk-4OVFMUUJ.js.map +0 -1
- package/dist/chunk-765OB2K5.js +0 -2
- package/dist/chunk-765OB2K5.js.map +0 -1
- package/dist/chunk-7FMFSOJ3.js +0 -2
- package/dist/chunk-7FMFSOJ3.js.map +0 -1
- package/dist/chunk-BPIGB72P.js +0 -2
- package/dist/chunk-BPIGB72P.js.map +0 -1
- package/dist/chunk-EGSUF7OD.js +0 -2
- package/dist/chunk-EGSUF7OD.js.map +0 -1
- package/dist/chunk-FUBLGAPH.js +0 -2
- package/dist/chunk-FUBLGAPH.js.map +0 -1
- package/dist/chunk-GVSAZND2.js +0 -2
- package/dist/chunk-GVSAZND2.js.map +0 -1
- package/dist/chunk-IJ6325YO.js +0 -2
- package/dist/chunk-IJ6325YO.js.map +0 -1
- package/dist/chunk-OKMERBJL.js +0 -2
- package/dist/chunk-OKMERBJL.js.map +0 -1
- package/dist/chunk-PC5JG4TT.js +0 -2
- package/dist/chunk-PC5JG4TT.js.map +0 -1
- package/dist/chunk-RWYXH6CE.js +0 -2
- package/dist/chunk-RWYXH6CE.js.map +0 -1
- package/dist/chunk-SPMEMAK5.js +0 -2
- package/dist/chunk-SPMEMAK5.js.map +0 -1
- package/dist/chunk-TC3CLBCD.js +0 -2
- package/dist/chunk-TC3CLBCD.js.map +0 -1
- package/dist/chunk-U2HWB5HI.js +0 -2
- package/dist/chunk-U2HWB5HI.js.map +0 -1
- package/dist/chunk-WINYXC33.js +0 -2
- package/dist/chunk-WINYXC33.js.map +0 -1
- package/dist/chunk-WMB752CR.js +0 -2
- package/dist/chunk-WMB752CR.js.map +0 -1
- package/dist/chunk-XXPJHT5A.js +0 -2
- package/dist/chunk-XXPJHT5A.js.map +0 -1
- package/dist/chunk-ZFKHCC4Z.js +0 -2
- package/dist/chunk-ZFKHCC4Z.js.map +0 -1
- /package/dist/{chunk-MD2QFLXC.js.map → chunk-2L5YJSIF.js.map} +0 -0
- /package/dist/{chunk-ARQ2PTEA.js.map → chunk-2RLH6ZLY.js.map} +0 -0
- /package/dist/{chunk-2ZCOC6FB.js.map → chunk-4Z3V5SXU.js.map} +0 -0
- /package/dist/{chunk-K3XVYHGV.js.map → chunk-5CXPVPOG.js.map} +0 -0
- /package/dist/{chunk-MWMX5KTM.js.map → chunk-5S5YAMYB.js.map} +0 -0
- /package/dist/{chunk-6YRMHTAZ.js.map → chunk-6ARN2SX2.js.map} +0 -0
- /package/dist/{chunk-Y75E2FOC.js.map → chunk-AJADTL33.js.map} +0 -0
- /package/dist/{chunk-BNBEIHLD.js.map → chunk-BAGTZ3NN.js.map} +0 -0
- /package/dist/{chunk-ZJAFMNUN.js.map → chunk-BIC5GBW4.js.map} +0 -0
- /package/dist/{chunk-3DGBLO6M.js.map → chunk-CIUPGLOU.js.map} +0 -0
- /package/dist/{chunk-BF3P3CMA.js.map → chunk-DN6SGTCI.js.map} +0 -0
- /package/dist/{chunk-A5NDO6CQ.js.map → chunk-FEGY4ZEW.js.map} +0 -0
- /package/dist/{chunk-KABFJTE2.js.map → chunk-IGLBEWVV.js.map} +0 -0
- /package/dist/{chunk-WO33FKK4.js.map → chunk-IJUB7Z4E.js.map} +0 -0
- /package/dist/{chunk-25M7VGZT.js.map → chunk-IOX27DWA.js.map} +0 -0
- /package/dist/{chunk-CZ7DTX5L.js.map → chunk-IVHHMIUY.js.map} +0 -0
- /package/dist/{chunk-BZBPPV5B.js.map → chunk-J2NQBF62.js.map} +0 -0
- /package/dist/{chunk-CVRZA3VP.js.map → chunk-JCIUCOEM.js.map} +0 -0
- /package/dist/{chunk-QLX4J76Z.js.map → chunk-K4IKYJ3B.js.map} +0 -0
- /package/dist/{chunk-B3TRTHW4.js.map → chunk-KKKOMF2R.js.map} +0 -0
- /package/dist/{chunk-JHSQWGEK.js.map → chunk-NO6BRWFS.js.map} +0 -0
- /package/dist/{chunk-OF66TZF4.js.map → chunk-OEBMODP7.js.map} +0 -0
- /package/dist/{chunk-KC6PLCTE.js.map → chunk-OW7BCYPF.js.map} +0 -0
- /package/dist/{chunk-YXVNCPUI.js.map → chunk-P5GY5LLV.js.map} +0 -0
- /package/dist/{chunk-ZK27BWOZ.js.map → chunk-Q2XGTGUQ.js.map} +0 -0
- /package/dist/{chunk-3OX2LLXL.js.map → chunk-QCIOQVSK.js.map} +0 -0
- /package/dist/{chunk-X5ZNVQAZ.js.map → chunk-QT43Z24O.js.map} +0 -0
- /package/dist/{chunk-LEVFKYRL.js.map → chunk-QTJ6EDEM.js.map} +0 -0
- /package/dist/{chunk-JDNBIL6Z.js.map → chunk-RYOXAR7O.js.map} +0 -0
- /package/dist/{chunk-XB4IEQ25.js.map → chunk-SO2RPIOT.js.map} +0 -0
- /package/dist/{chunk-N3X274GT.js.map → chunk-U7CW67TM.js.map} +0 -0
- /package/dist/{chunk-TKSW7MGC.js.map → chunk-V4OZS4QW.js.map} +0 -0
- /package/dist/{chunk-73BVEZJ6.js.map → chunk-VD2T75BY.js.map} +0 -0
- /package/dist/{chunk-AO2DMBDU.js.map → chunk-W32TDEQ3.js.map} +0 -0
- /package/dist/{chunk-BZAIUY5N.js.map → chunk-W4G2O5QV.js.map} +0 -0
- /package/dist/{chunk-HLR4BEDV.js.map → chunk-WAG67DRI.js.map} +0 -0
- /package/dist/{chunk-5HXPBCU6.js.map → chunk-WYIEW4OC.js.map} +0 -0
- /package/dist/{chunk-NFWNYW2E.js.map → chunk-X3ZIQ7HA.js.map} +0 -0
- /package/dist/{chunk-P5QKSFOE.js.map → chunk-XXIUJVIY.js.map} +0 -0
- /package/dist/{chunk-J3BK2DEH.js.map → chunk-YRFNEKBE.js.map} +0 -0
- /package/dist/{chunk-7X3WUOTU.js.map → chunk-ZBLC4GNZ.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/form/fields/FieldSetField.tsx","../src/components/form/fields/DatePickerField.tsx","../src/components/form/fields/FileUploadField.tsx","../src/components/form/fields/NumberField.tsx","../src/components/form/fields/RadioGroupField.tsx","../src/components/form/fields/SelectField.tsx","../src/components/form/fields/CountryField.tsx","../src/components/form/fields/TextAreaField.tsx","../src/components/form/fields/EmailField.tsx","../src/components/form/fields/HiddenField.tsx","../src/components/form/fields/WorkScheduleField.tsx","../src/components/form/fields/MultiSelectField.tsx","../src/components/form/fields/MoneyField.tsx","../src/components/form/fields/baseFields.tsx","../src/components/form/Statement.tsx"],"sourcesContent":["import { useFormContext } from 'react-hook-form';\nimport { Fragment, useEffect, useRef } from 'react';\nimport { baseFields } from '@/src/components/form/fields/baseFields';\nimport { cn, sanitizeHtml } from '@/src/lib/utils';\nimport { $TSFixMe, Components } from '@/src/types/remoteFlows';\nimport { Statement } from '@/src/components/form/Statement';\nimport { useFormFields } from '@/src/context';\nimport { ZendeskTriggerButton } from '@/src/components/shared/zendesk-drawer/ZendeskTriggerButton';\nimport { FieldsetToggleButtonDefault } from '@/src/components/form/fields/default/FieldsetToggleButtonDefault';\nimport { BaseTypes, SupportedTypes } from './types';\nimport { StatementComponentProps } from '@/src/types/fields';\n\ntype FieldBase = {\n label: string;\n name: string;\n description: string;\n Component?: React.ComponentType<$TSFixMe>;\n inputType: SupportedTypes;\n multiple?: boolean;\n};\n\ntype FieldWithOptions = FieldBase & {\n type: 'select' | 'radio';\n options: Array<{ value: string; label: string }>;\n};\n\ntype FieldWithoutOptions = FieldBase & {\n type: Exclude<SupportedTypes, 'select' | 'radio'>;\n options?: never;\n};\n\ntype Field = FieldWithOptions | FieldWithoutOptions;\n\ntype FieldSetFeatures = {\n toggle?: {\n enabled: boolean;\n defaultExpanded?: boolean;\n stateField?: string;\n labels?: {\n expand: string;\n collapse: string;\n };\n className?: string;\n };\n};\n\nexport type FieldSetProps = {\n label: string;\n name: string;\n description: string;\n fields: Field[];\n features?: FieldSetFeatures;\n components: Components;\n statement?: StatementComponentProps['data'];\n isFlatFieldset: boolean;\n extra?: React.ReactNode;\n variant: 'outset' | 'inset';\n meta?: {\n helpCenter?: {\n callToAction: string;\n id: number;\n url: string;\n label: string;\n };\n } & Record<string, $TSFixMe>;\n};\n\nexport function FieldSetField({\n label,\n name,\n fields,\n description,\n components,\n statement,\n isFlatFieldset,\n extra,\n variant = 'outset',\n features,\n meta,\n}: FieldSetProps) {\n const { helpCenter } = meta || {};\n const { watch, setValue, trigger, formState } = useFormContext();\n const { components: formComponents } = useFormFields();\n\n // Get expanded state from form state if stateField is provided\n const stateField = features?.toggle?.stateField;\n const isExpanded = stateField\n ? watch(stateField)\n : (features?.toggle?.defaultExpanded ?? true);\n\n const fieldNames = fields.map(\n ({ name: fieldName }) => `${name}.${fieldName}`,\n );\n const watchedValues = watch(fieldNames);\n const prevValuesRef = useRef<string[]>(watchedValues);\n const triggerTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n const toggleExpanded = () => {\n if (stateField) {\n setValue(stateField, !isExpanded);\n }\n };\n\n useEffect(() => {\n const currentValues = watchedValues;\n const previousValues = prevValuesRef.current;\n const hasBeenSubmitted = formState.isSubmitted || formState.submitCount > 0;\n\n // Check if any value has changed\n let hasChanged = false;\n for (let i = 0; i < currentValues.length; i++) {\n if (\n currentValues[i] !== undefined &&\n previousValues[i] !== currentValues[i]\n ) {\n hasChanged = true;\n // This is to prevent the form from triggering validation too many times\n break;\n }\n }\n // If changes detected and we haven't triggered yet, run trigger\n if (hasChanged && hasBeenSubmitted) {\n // We need to debounce the validation trigger so that tests don't freeze\n if (triggerTimeoutRef.current) {\n clearTimeout(triggerTimeoutRef.current);\n }\n triggerTimeoutRef.current = setTimeout(() => {\n trigger();\n }, 50);\n }\n\n prevValuesRef.current = [...currentValues];\n\n return () => {\n if (triggerTimeoutRef.current) {\n clearTimeout(triggerTimeoutRef.current);\n }\n };\n }, [watchedValues, trigger, formState.isSubmitted, formState.submitCount]);\n\n const ToggleComponent =\n formComponents?.fieldsetToggle || FieldsetToggleButtonDefault;\n const contentId = `${name}-content`;\n const headerId = `${name}-header`;\n\n return (\n <fieldset\n className={cn(\n 'border-1 border-input p-4 rounded-xl',\n `RemoteFlows__FieldSetField`,\n `RemoteFlows__FieldSetField__${name}`,\n )}\n >\n <legend\n className={cn(\n 'text-sm font-semibold px-2',\n variant === 'inset' && 'hidden',\n )}\n >\n {label}\n </legend>\n {helpCenter?.callToAction && helpCenter?.id && variant === 'outset' && (\n <ZendeskTriggerButton\n className='RemoteFlows__FieldSetField__HelpCenterLink mb-3'\n zendeskId={helpCenter.id}\n >\n {helpCenter.callToAction}\n </ZendeskTriggerButton>\n )}\n {variant === 'inset' && (\n <>\n <div\n className='RemoteFlows__FieldSetField__Header'\n id={headerId}\n data-state={isExpanded ? 'expanded' : 'collapsed'}\n aria-expanded={isExpanded}\n >\n <h3 className={cn('RemoteFlows__FieldSetField__Title')}>{label}</h3>\n {features?.toggle?.enabled && (\n <ToggleComponent\n isExpanded={isExpanded}\n onToggle={toggleExpanded}\n aria-expanded={isExpanded}\n aria-controls={contentId}\n aria-label={`${isExpanded ? 'Hide' : 'Show'} ${label}`}\n className={cn(\n 'RemoteFlows__FieldSetField__Toggle',\n features.toggle?.className,\n )}\n >\n {isExpanded\n ? (features.toggle.labels?.collapse ?? 'Remove')\n : (features.toggle.labels?.expand ?? 'Define')}\n </ToggleComponent>\n )}\n </div>\n {helpCenter?.callToAction && helpCenter?.id && (\n <ZendeskTriggerButton\n className='RemoteFlows__FieldSetField__HelpCenterLink mb-3'\n zendeskId={helpCenter.id}\n >\n {helpCenter.callToAction}\n </ZendeskTriggerButton>\n )}\n </>\n )}\n {isExpanded && (\n <div id={contentId} aria-labelledby={headerId} role='region'>\n {description ? (\n <div\n className='mb-5 RemoteFlows__FieldSetField__Description'\n dangerouslySetInnerHTML={{ __html: sanitizeHtml(description) }}\n />\n ) : null}\n <div className='grid gap-4'>\n {fields.map((field: $TSFixMe) => {\n if (field.calculateDynamicProperties) {\n field = {\n ...field,\n ...(field.calculateDynamicProperties(watchedValues, field) ||\n {}),\n };\n }\n\n if (field.isVisible === false || field.deprecated) {\n return null; // Skip hidden or deprecated fields\n }\n\n // Handle nested fieldsets\n if (field.inputType === 'fieldset') {\n return (\n <FieldSetField\n key={`${isFlatFieldset ? field.name : `${name}.${field.name}`}`}\n {...field}\n name={`${isFlatFieldset ? field.name : `${name}.${field.name}`}`}\n components={components}\n />\n );\n }\n\n if (field.inputType === 'fieldset-flat') {\n return (\n <FieldSetField\n key={`${isFlatFieldset ? field.name : `${name}.${field.name}`}`}\n {...field}\n name={`${isFlatFieldset ? field.name : `${name}.${field.name}`}`}\n components={components}\n isFlatFieldset\n />\n );\n }\n // We need to do the check after checking field.inputType === 'fieldset' or field.inputType === 'fieldset-flat'\n // circular dependency most likely\n let FieldComponent = baseFields[field.inputType as BaseTypes];\n\n if (field.Component) {\n const { Component } = field as {\n Component: React.ComponentType<$TSFixMe>;\n };\n return (\n <Fragment\n key={`${isFlatFieldset ? field.name : `${name}.${field.name}`}`}\n >\n <Component\n setValue={(value: unknown) =>\n setValue(\n isFlatFieldset ? field.name : `${name}.${field.name}`,\n value,\n )\n }\n {...field}\n />\n {field.statement ? (\n <Statement\n {...(field.statement as StatementComponentProps['data'])}\n />\n ) : null}\n {field.extra ? field.extra : null}\n </Fragment>\n );\n }\n\n if (!FieldComponent) {\n return (\n <p className='error'>\n Field type {field.inputType as string} not supported\n </p>\n );\n }\n\n if (field.inputType === 'select' && field.multiple) {\n FieldComponent = baseFields['multi-select'];\n }\n\n return (\n <Fragment\n key={`${isFlatFieldset ? field.name : `${name}.${field.name}`}`}\n >\n <FieldComponent\n {...field}\n name={`${isFlatFieldset ? field.name : `${name}.${field.name}`}`}\n component={\n components?.[field.inputType as keyof Components]\n }\n />\n {field.statement ? (\n <Statement\n {...(field.statement as StatementComponentProps['data'])}\n />\n ) : null}\n {field.extra ? field.extra : null}\n </Fragment>\n );\n })}\n {extra ? extra : null}\n {statement ? <Statement {...statement} /> : null}\n </div>\n </div>\n )}\n </fieldset>\n );\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '@/src/components/ui/form';\n\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { getMinStartDate } from '@/src/components/form/utils';\n\nexport type DatePickerFieldProps = JSFField & {\n onChange?: (value: any) => void;\n component?: Components['date'];\n};\n\nexport function DatePickerField({\n description,\n label,\n name,\n minDate,\n maxDate,\n onChange,\n component,\n ...rest\n}: DatePickerFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n\n let minDateValue: Date;\n if (rest.meta?.mot && typeof rest.meta.mot === 'number') {\n minDateValue = getMinStartDate(rest.meta.mot);\n } else if (minDate) {\n minDateValue = new Date(`${minDate}T00:00:00`);\n }\n\n let maxDateValue: Date | undefined;\n if (maxDate) {\n maxDateValue = new Date(`${maxDate}T23:59:59`);\n }\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components?.date;\n\n if (!Component) {\n throw new Error(`Date picker component not found for field ${name}`);\n }\n\n const customDatePickerFieldProps = {\n description,\n label,\n name,\n onChange,\n ...(minDateValue && { minDate: minDateValue.toISOString() }),\n ...(maxDateValue && { maxDate: maxDateValue.toISOString() }),\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customDatePickerFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport {\n ControllerRenderProps,\n FieldValues,\n useFormContext,\n} from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { FieldDataProps } from '@/src/types/fields';\n\nconst validateFileSize = (files: File[], maxSize?: number): string | null => {\n if (!maxSize) return null;\n\n for (const file of files) {\n if (file.size > maxSize) {\n const maxSizeMB = Math.round(maxSize / (1024 * 1024));\n const fileSizeMB = Math.round(file.size / (1024 * 1024));\n return `File \"${file.name}\" exceeds maximum size of ${maxSizeMB}MB (file is ${fileSizeMB}MB)`;\n }\n }\n return null;\n};\n\nexport type FieldFileDataProps = FieldDataProps & {\n accept?: string;\n multiple?: boolean;\n maxFileSize?: number;\n};\n\nexport type FileUploadFieldProps = JSFField & {\n onChange?: (value: File[]) => void;\n multiple?: boolean;\n component?: Components['file'];\n maxSize?: number;\n accept?: string;\n};\n\nexport function FileUploadField({\n name,\n description,\n label,\n multiple,\n onChange,\n component,\n accept,\n maxSize,\n ...rest\n}: FileUploadFieldProps) {\n const { components } = useFormFields();\n const { control, setError, clearErrors } = useFormContext();\n\n const handleOnChange = async (\n files: File[],\n field: ControllerRenderProps<FieldValues, string>,\n ) => {\n const sizeError = validateFileSize(files, maxSize);\n if (sizeError) {\n setError(name, { message: sizeError });\n return;\n }\n\n clearErrors(name);\n field.onChange(files);\n onChange?.(files);\n };\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components.file;\n if (!Component) {\n throw new Error(`File upload component not found for field ${name}`);\n }\n\n const fieldData: FieldFileDataProps = {\n name,\n description,\n label,\n multiple,\n accept,\n maxFileSize: maxSize,\n ...rest,\n };\n\n return (\n <Component\n field={{\n ...field,\n value: field.value,\n onChange: async (value: File[]) => handleOnChange(value, field),\n }}\n fieldState={fieldState}\n fieldData={fieldData}\n />\n );\n }}\n />\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport { useFormFields } from '@/src/context';\nimport { FormField } from '@/src/components/ui/form';\nimport { Components } from '@/src/types/remoteFlows';\nimport { TextFieldProps } from './TextField';\n\nexport type NumberFieldProps = TextFieldProps & {\n component?: Components['number'];\n onChange?: (value: number) => void;\n};\n\nexport function NumberField(props: NumberFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n\n const Component = props.component || components.number;\n if (!Component) {\n throw new Error(`Number component not found for field ${props.name}`);\n }\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n return (\n <Component\n field={{\n ...field,\n onChange: (value: number) => {\n field.onChange(value);\n props.onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={props}\n />\n );\n }}\n />\n );\n}\n","import { FormField } from '@/src/components/ui/form';\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\n\ntype RadioGroupFieldProps = JSFField & {\n onChange?: (value: string) => void;\n component?: Components['radio'];\n};\n\nexport function RadioGroupField({\n name,\n defaultValue,\n description,\n label,\n options,\n onChange,\n component,\n ...rest\n}: RadioGroupFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n return (\n <FormField\n control={control}\n name={name}\n defaultValue={defaultValue}\n render={({ field, fieldState }) => {\n const Component = component || components?.radio;\n if (!Component) {\n throw new Error(`Radio group component not found for field ${name}`);\n }\n const customRadioGroupFieldProps = {\n name,\n defaultValue,\n description,\n label,\n options,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: string) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customRadioGroupFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '@/src/components/ui/form';\n\ntype SelectFieldProps = JSFField & {\n placeholder?: string;\n options: Array<{ value: string | number; label: string }>;\n className?: string;\n onChange?: (value: string | number) => void;\n component?: Components['select'];\n};\n\nexport function SelectField({\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n component,\n ...rest\n}: SelectFieldProps) {\n const { control } = useFormContext();\n const { components } = useFormFields();\n\n return (\n <FormField\n defaultValue={defaultValue}\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components?.select;\n\n if (!Component) {\n throw new Error(`Select component not found for field ${name}`);\n }\n\n const customSelectFieldProps = {\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: string | number) => {\n const maybeCastValue =\n rest.jsonType === 'number' ? Number(value) : value;\n field.onChange(maybeCastValue);\n onChange?.(maybeCastValue);\n },\n }}\n fieldState={fieldState}\n fieldData={customSelectFieldProps}\n />\n );\n }}\n />\n );\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\n\ntype CountryFieldProps = JSFField & {\n options: Array<{ value: string; label: string }>;\n onChange?: (value: any) => void;\n $meta: {\n regions: Record<string, string[]>;\n subregions: Record<string, string[]>;\n };\n component?: Components['countries'];\n};\n\nexport function CountryField({\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n $meta,\n component,\n ...rest\n}: CountryFieldProps) {\n const { control } = useFormContext();\n const { components } = useFormFields();\n\n return (\n <FormField\n defaultValue={defaultValue}\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components.countries;\n if (!Component) {\n throw new Error(`Country component not found for field ${name}`);\n }\n\n const customSelectFieldProps = {\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n $meta,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customSelectFieldProps}\n />\n );\n }}\n />\n );\n}\n","import * as React from 'react';\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '@/src/components/ui/form';\n\nexport type TextAreaFieldProps = JSFField & {\n onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;\n maxLength?: number;\n component?: Components['textarea'];\n};\n\nexport function TextAreaField({\n name,\n description,\n label,\n onChange,\n maxLength,\n component,\n ...rest\n}: TextAreaFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components.textarea;\n if (!Component) {\n throw new Error(`Text area component not found for field ${name}`);\n }\n const customTextAreaFieldProps = {\n name,\n description,\n label,\n maxLength,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (evt: React.ChangeEvent<HTMLTextAreaElement>) => {\n field.onChange(evt);\n onChange?.(evt);\n },\n }}\n fieldState={fieldState}\n fieldData={customTextAreaFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormFields } from '@/src/context';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { TextFieldProps } from './TextField';\nimport { Components } from '@/src/types/remoteFlows';\n\ntype EmailFieldProps = TextFieldProps & {\n component?: Components['email'];\n};\n\nexport function EmailField(props: EmailFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n\n const Component = props.component || components.email;\n\n if (!Component) {\n throw new Error(`Email component not found for field ${props.name}`);\n }\n\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n return (\n <Component\n field={{\n ...field,\n onChange: (value: string) => {\n field.onChange(value);\n props.onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={props}\n />\n );\n }}\n />\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { Field } from '@/src/flows/types';\n\nexport function HiddenField(props: Field) {\n const { control } = useFormContext();\n\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field }) => {\n return <input {...field} type='hidden' />;\n }}\n />\n );\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nimport { JSFField } from '@/src/types/remoteFlows';\nimport { useFormFields } from '@/src/context';\nimport { FormField } from '@/src/components/ui/form';\nimport { Components } from '@/src/types/remoteFlows';\n\nimport {\n buildWorkScheduleSummary,\n calculateTotalWorkHours,\n DailySchedule,\n} from './workScheduleUtils';\n\ntype WorkScheduleFieldProps = JSFField & {\n name: string;\n default: DailySchedule[];\n onChange?: (value: any) => void;\n component?: Components['work-schedule'];\n};\n\ntype WorkScheduleFormData = {\n schedule: DailySchedule[];\n};\n\nexport function WorkScheduleField(props: WorkScheduleFieldProps) {\n const { components } = useFormFields();\n const { setValue, control, watch } = useFormContext();\n const watchedSchedule = watch(props.name);\n const [currentSchedule, setCurrentSchedule] =\n useState<DailySchedule[]>(watchedSchedule);\n\n const { workHoursSummary, breakSummary } =\n buildWorkScheduleSummary(currentSchedule);\n const totalWorkHours = calculateTotalWorkHours(currentSchedule);\n\n useEffect(() => {\n setValue(props.name, currentSchedule);\n }, [currentSchedule, props.name, setValue]);\n\n function onSubmit(data: WorkScheduleFormData['schedule']) {\n setCurrentSchedule(data);\n }\n\n const Component = props.component || components['work-schedule'];\n if (!Component) {\n throw new Error(\n `Work schedule component not found for field ${props.name}`,\n );\n }\n\n const fieldData = {\n ...props,\n onSubmit,\n currentSchedule,\n defaultFormattedValue: {\n workHoursSummary,\n breakSummary,\n totalWorkHours,\n },\n };\n\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n return (\n <Component\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n props.onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={fieldData}\n />\n );\n }}\n />\n );\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\n\ntype MultiSelectFieldProps = JSFField & {\n placeholder?: string;\n options: Array<{ value: string; label: string }>;\n className?: string;\n onChange?: (value: any) => void;\n component?: Components['select'];\n};\n\nexport function MultiSelectField({\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n component,\n ...rest\n}: MultiSelectFieldProps) {\n const { control } = useFormContext();\n const { components } = useFormFields();\n\n return (\n <FormField\n defaultValue={defaultValue}\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components?.['multi-select'];\n if (!Component) {\n throw new Error(`Multi select component not found for field ${name}`);\n }\n\n const customSelectFieldProps = {\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customSelectFieldProps}\n />\n );\n }}\n />\n );\n}\n","import {\n NumberField,\n NumberFieldProps,\n} from '@/src/components/form/fields/NumberField';\n\n// TODO: We use the number field and the the number type is what the partner overrides\n// TODO: this needs to be changed in the future with the changes from https://github.com/remoteoss/remote-flows/pull/128\nexport const MoneyField = (props: NumberFieldProps) => {\n return <NumberField maxLength={15} {...props} />;\n};\n","import { CheckBoxField } from './CheckBoxField';\nimport { DatePickerField } from './DatePickerField';\nimport { FileUploadField } from './FileUploadField';\nimport { NumberField } from './NumberField';\nimport { RadioGroupField } from './RadioGroupField';\nimport { SelectField } from './SelectField';\nimport { CountryField } from './CountryField';\nimport { TextAreaField } from './TextAreaField';\nimport { TextField } from './TextField';\nimport { EmailField } from './EmailField';\nimport { HiddenField } from './HiddenField';\nimport { WorkScheduleField } from './WorkScheduleField';\nimport { MultiSelectField } from './MultiSelectField';\nimport { MoneyField } from './MoneyField';\nimport { SupportedTypes } from './types';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\n\nexport const baseFields: Record<\n Exclude<SupportedTypes, 'fieldset' | 'fieldset-flat'>,\n React.ComponentType<$TSFixMe>\n> = {\n checkbox: CheckBoxField,\n text: TextField,\n email: EmailField,\n money: MoneyField,\n select: SelectField,\n 'multi-select': MultiSelectField,\n radio: RadioGroupField,\n number: NumberField,\n file: FileUploadField,\n date: DatePickerField,\n textarea: TextAreaField,\n countries: CountryField,\n hidden: HiddenField,\n 'work-schedule': WorkScheduleField,\n};\n","import { useFormFields } from '@/src/context';\nimport { sanitizeHtml } from '@/src/lib/utils';\nimport { StatementComponentProps } from '@/src/types/fields';\n\ntype StatementProps = StatementComponentProps['data'];\n\nexport function Statement({ title, description, severity }: StatementProps) {\n const { components } = useFormFields();\n\n const Component = components.statement;\n\n if (!Component) {\n throw new Error(`Statement component not found`);\n }\n\n return (\n <Component\n data={{\n title: title ? sanitizeHtml(title) : undefined,\n description: sanitizeHtml(description),\n severity,\n }}\n />\n );\n}\n"],"mappings":"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","names":["Fragment","useEffect","useRef","jsx","DatePickerField","description","label","name","minDate","maxDate","onChange","component","rest","components","useFormFields","control","useFormContext","minDateValue","getMinStartDate","maxDateValue","FormField","field","fieldState","Component","customDatePickerFieldProps","__name","value","jsx","validateFileSize","__name","files","maxSize","file","maxSizeMB","fileSizeMB","FileUploadField","name","description","label","multiple","onChange","component","accept","rest","components","useFormFields","control","setError","clearErrors","useFormContext","handleOnChange","field","sizeError","FormField","fieldState","Component","fieldData","value","jsx","NumberField","props","components","useFormFields","control","useFormContext","Component","FormField","field","fieldState","__name","value","jsx","RadioGroupField","name","defaultValue","description","label","options","onChange","component","rest","components","useFormFields","control","useFormContext","FormField","field","fieldState","Component","customRadioGroupFieldProps","__name","value","jsx","SelectField","label","name","options","defaultValue","description","onChange","component","rest","control","useFormContext","components","useFormFields","FormField","field","fieldState","Component","customSelectFieldProps","__name","value","maybeCastValue","jsx","CountryField","label","name","options","defaultValue","description","onChange","$meta","component","rest","control","useFormContext","components","useFormFields","FormField","field","fieldState","Component","customSelectFieldProps","__name","value","jsx","TextAreaField","name","description","label","onChange","maxLength","component","rest","components","useFormFields","control","useFormContext","FormField","field","fieldState","Component","customTextAreaFieldProps","__name","evt","jsx","EmailField","props","components","useFormFields","control","useFormContext","Component","FormField","field","fieldState","__name","value","jsx","HiddenField","props","control","useFormContext","FormField","field","__name","useEffect","useState","jsx","WorkScheduleField","props","components","useFormFields","setValue","control","watch","useFormContext","watchedSchedule","currentSchedule","setCurrentSchedule","useState","workHoursSummary","breakSummary","buildWorkScheduleSummary","totalWorkHours","calculateTotalWorkHours","useEffect","onSubmit","data","__name","Component","fieldData","FormField","field","fieldState","value","jsx","MultiSelectField","label","name","options","defaultValue","description","onChange","component","rest","control","useFormContext","components","useFormFields","FormField","field","fieldState","Component","customSelectFieldProps","__name","value","jsx","MoneyField","__name","props","NumberField","baseFields","CheckBoxField","TextField","EmailField","MoneyField","SelectField","MultiSelectField","RadioGroupField","NumberField","FileUploadField","DatePickerField","TextAreaField","CountryField","HiddenField","WorkScheduleField","jsx","Statement","title","description","severity","components","useFormFields","Component","sanitizeHtml","__name","Fragment","jsx","jsxs","FieldSetField","label","name","fields","description","components","statement","isFlatFieldset","extra","variant","features","meta","helpCenter","watch","setValue","trigger","formState","useFormContext","formComponents","useFormFields","stateField","isExpanded","fieldNames","fieldName","watchedValues","prevValuesRef","useRef","triggerTimeoutRef","toggleExpanded","__name","useEffect","currentValues","previousValues","hasBeenSubmitted","hasChanged","i","ToggleComponent","FieldsetToggleButtonDefault","contentId","headerId","cn","ZendeskTriggerButton","sanitizeHtml","field","FieldComponent","baseFields","Component","value","Statement"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as e}from"./chunk-PJN2YJO4.js";import{a as t}from"./chunk-UQCSN47K.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as p}from"react/jsx-runtime";var s=o(({isExpanded:l,onToggle:n,className:m,...i})=>p(e,{type:"button",className:t("RemoteFlows__Button RemoteFlows__FieldSetField__ToggleButton",m),variant:"default",onClick:n,...i,children:l?"Remove":"Define"}),"FieldsetToggleButtonDefault");export{s as a};
|
|
2
|
+
//# sourceMappingURL=chunk-7EHK36JU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/form/fields/default/FieldsetToggleButtonDefault.tsx"],"sourcesContent":["import { Button } from '@/src/components/ui/button';\nimport { cn } from '@/src/lib/utils';\nimport { FieldSetToggleComponentProps } from '@/src/types/remoteFlows';\n\nexport const FieldsetToggleButtonDefault = ({\n isExpanded,\n onToggle,\n className,\n ...props\n}: FieldSetToggleComponentProps) => (\n <Button\n type='button'\n className={cn(\n 'RemoteFlows__Button RemoteFlows__FieldSetField__ToggleButton',\n className,\n )}\n variant='default'\n onClick={onToggle}\n {...props}\n >\n {isExpanded ? 'Remove' : 'Define'}\n </Button>\n);\n"],"mappings":"wHAUE,cAAAA,MAAA,oBANK,IAAMC,EAA8BC,EAAA,CAAC,CAC1C,WAAAC,EACA,SAAAC,EACA,UAAAC,EACA,GAAGC,CACL,IACEN,EAACO,EAAA,CACC,KAAK,SACL,UAAWC,EACT,+DACAH,CACF,EACA,QAAQ,UACR,QAASD,EACR,GAAGE,EAEH,SAAAH,EAAa,SAAW,SAC3B,EAjByC","names":["jsx","FieldsetToggleButtonDefault","__name","isExpanded","onToggle","className","props","Button","cn"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as l}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as l}from"./chunk-KKKOMF2R.js";import{b as s}from"./chunk-PGWKJ6FK.js";import{b as n}from"./chunk-EAV5VOMZ.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as E}from"react/jsx-runtime";function S({onSubmit:d,onError:a,onSuccess:m}){let{onboardingBag:r}=s(),c=t(async i=>{try{let e=await r.parseFormValues(i);await d?.(e);let o=await r.onSubmit(i);if(o?.data){await m?.(o.data),r?.next();return}if(o?.error){let p=n(o?.fieldErrors||[],r.meta?.fields?.contract_details);a?.({error:o.error,rawError:o.rawError,fieldErrors:p})}}catch(e){a?.({error:e,rawError:e,fieldErrors:[]})}},"handleSubmit");return E(l,{defaultValues:r.stepState.values?.contract_details||r.initialValues.contract_details,onSubmit:c})}t(S,"ContractDetailsStep");export{S as a};
|
|
2
|
+
//# sourceMappingURL=chunk-AJADTL33.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as n,b as i}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as n,b as i}from"./chunk-ZDTHQRXJ.js";import{a as e}from"./chunk-UQCSN47K.js";import{a as o}from"./chunk-P37U34EQ.js";import{Fragment as m,jsx as t,jsxs as s}from"react/jsx-runtime";var r=["You submit your termination request.","We review your request along with the employment agreement, local labor laws, and any collective bargaining agreements in place.","A lifecycle specialist contacts you if they need additional details. Sometimes they will request a call.","Depending on the country-specific laws and the terms of the employment agreement, we may need to seek additional legal advice. We\u2019ll let you know if there are additional charges before proceeding.","Terms and conditions for the termination are finalized.","You verbally communicate the termination to the employee.","We share termination documents with the employee.","The employee signs the termination documents if required.","We process the final salary and offboard the employee."],h=o(()=>s(m,{children:[t("h3",{className:e("RemoteFlows__TerminationDialogInfoContent__Title"),children:"Please read carefully before you continue"}),t("p",{className:e("RemoteFlows__TerminationDialogInfoContent__Description"),children:"Please do not inform the employee of the termination. We'll lead communication with them after you submit this form and we finalize the termination terms."}),t("p",{className:e("RemoteFlows__TerminationDialogInfoContent__Description RemoteFlows__TerminationDialogInfoContent__FollowUpDescription"),children:"If you already informed them, that's okay. We'll ask for the details regarding that communication and take it from there."}),t(i,{className:e("RemoteFlows__TerminationDialogInfoContent__ZendeskTriggerButton text-sm"),zendeskId:n.terminationEmployeeCommunication,children:"Learn more about employee communication"}),t("h3",{className:e("RemoteFlows__TerminationDialogInfoContent__ProcessTitle"),children:"The termination process"}),t("ul",{className:e("RemoteFlows__TerminationDialogInfoContent__ProcessList list-disc list-inside"),children:r.map((a,l)=>t("li",{className:e("RemoteFlows__TerminationDialogInfoContent__ProcessListItem"),children:a},l))})]}),"TerminationDialogInfoContent");export{h as a};
|
|
2
|
+
//# sourceMappingURL=chunk-BAGTZ3NN.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as c}from"./chunk-TOA3JILU.js";import{
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as c}from"./chunk-TOA3JILU.js";import{b as d}from"./chunk-LNV36S6D.js";import{a as l}from"./chunk-FDBLCEFN.js";import{f as m,g as s}from"./chunk-CR7AIZKA.js";import{a as e}from"./chunk-P37U34EQ.js";import{useEffect as f}from"react";import{jsx as p}from"react/jsx-runtime";import{createElement as P}from"react";function B({defaultValues:i,onSubmit:F,components:u}){let{formId:y,contractorOnboardingBag:o}=c(),b=d(o.handleValidation),r=m({resolver:b,defaultValues:i,shouldUnregister:!1,mode:"onBlur"});f(()=>{o.employmentId&&o?.checkFieldUpdates(r.getValues())},[]),f(()=>{let n=r?.watch(t=>{Object.keys(t).some(a=>t[a]!==i[a])&&o?.checkFieldUpdates(t)});return()=>n?.unsubscribe()},[]);let g=e(async n=>{await F(n)},"handleSubmit");return P(s,{...r,key:`form-${o.stepState.currentStep.name}`},p("form",{id:y,onSubmit:r.handleSubmit(g),className:"space-y-4 RemoteFlows__OnboardingForm",children:p(l,{components:u,fields:o.fields,fieldsets:o.meta.fieldsets,fieldValues:o.fieldValues})}))}e(B,"ContractorOnboardingForm");export{B as a};
|
|
2
|
+
//# sourceMappingURL=chunk-BIC5GBW4.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as i}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as i}from"./chunk-QCIOQVSK.js";import{b as e}from"./chunk-MRYRNB7Y.js";import{a as m}from"./chunk-P37U34EQ.js";import{jsx as u}from"react/jsx-runtime";function p({onSubmit:n}){let{terminationBag:o}=e(),a=m(async t=>{let r=await o?.parseFormValues(t);await n?.(r),o?.next()},"handleSubmit");return u(i,{defaultValues:o.fieldValues,onSubmit:a})}m(p,"EmployeeCommunicationForm");export{p as a};
|
|
2
|
+
//# sourceMappingURL=chunk-CIUPGLOU.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as e}from"./chunk-TVZAFTPT.js";import{b as r}from"./chunk-KQPDXXG3.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as s}from"react/jsx-runtime";function B({children:m,...t}){let{contractAmendment:{back:u}}=e(),{components:c}=r(),n=c?.button;if(!n)throw new Error("Button component not found");return s(n,{...t,onClick:i=>{u(),t.onClick?.(i)},children:m})}o(B,"ContractAmendmentBack");export{B as a};
|
|
2
|
+
//# sourceMappingURL=chunk-D5AR26AI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/ContractAmendment/ContractAmendmentBack.tsx"],"sourcesContent":["import { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { useContractAmendmentContext } from './context';\nimport { useFormFields } from '@/src/context';\n\nexport function ContractAmendmentBack({\n children,\n ...props\n}: PropsWithChildren<ButtonHTMLAttributes<HTMLButtonElement>> &\n Record<string, unknown>) {\n const {\n contractAmendment: { back },\n } = useContractAmendmentContext();\n\n const { components } = useFormFields();\n\n const CustomButton = components?.button;\n if (!CustomButton) {\n throw new Error(`Button component not found`);\n }\n\n return (\n <CustomButton\n {...props}\n onClick={(evt) => {\n back();\n props.onClick?.(evt);\n }}\n >\n {children}\n </CustomButton>\n );\n}\n"],"mappings":"wHAqBI,cAAAA,MAAA,oBAjBG,SAASC,EAAsB,CACpC,SAAAC,EACA,GAAGC,CACL,EAC2B,CACzB,GAAM,CACJ,kBAAmB,CAAE,KAAAC,CAAK,CAC5B,EAAIC,EAA4B,EAE1B,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAE/BC,EAAeF,GAAY,OACjC,GAAI,CAACE,EACH,MAAM,IAAI,MAAM,4BAA4B,EAG9C,OACER,EAACQ,EAAA,CACE,GAAGL,EACJ,QAAUM,GAAQ,CAChBL,EAAK,EACLD,EAAM,UAAUM,CAAG,CACrB,EAEC,SAAAP,EACH,CAEJ,CA3BgBQ,EAAAT,EAAA","names":["jsx","ContractAmendmentBack","children","props","back","useContractAmendmentContext","components","useFormFields","CustomButton","evt","__name"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as y}from"./chunk-SGE4DLC3.js";import{b as g}from"./chunk-PJN2YJO4.js";import{a as D}from"./chunk-UQCSN47K.js";import{b as u}from"./chunk-KQPDXXG3.js";import{a as l}from"./chunk-P37U34EQ.js";import{jsx as S}from"react/jsx-runtime";var N=l(({open:o,onOpenChange:n,title:a,trigger:s,children:m,className:i="",direction:d="right"})=>{let{components:p}=u(),r=p?.drawer;if(!r)throw new Error("Drawer component not found");return S(r,{open:o,onOpenChange:n,title:a,trigger:s,direction:d,className:i,children:m})},"Drawer");import{forwardRef as B}from"react";import{jsx as C}from"react/jsx-runtime";var b=B(({data:o=[],columns:n,className:a=""},s)=>{let{components:m}=u(),i=m?.table;if(!i)throw new Error("Table component not found");return C(i,{ref:s,data:o,columns:n,className:a})});b.displayName="Table";import{Fragment as w,jsx as e,jsxs as t}from"react/jsx-runtime";var F="RemoteFlows__SummaryRow flex justify-between items-center py-2 text-xs",_="RemoteFlows__SummaryRowBorder border-b border-b-1 border-b-[#E4E4E7]",f=l(({children:o,withBorder:n=!1,className:a=""})=>e("div",{className:D(F,n&&_,a),children:o}),"SummaryRow"),O=l(({usedDays:o,bookedDays:n,approvedDaysBeforeTermination:a,approvedDaysAfterTermination:s,remainingDays:m,proposedTerminationDate:i,isUnlimitedPto:d,currentEntitlementDays:p})=>{let r=new Date(i).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"});return t("div",{children:[t(f,{withBorder:!0,children:[e("label",{children:"Number of days entitled to per year"}),e("p",{"data-testid":"entitled-days",className:"font-bold",children:d?"Unlimited":p})]}),t(f,{children:[e("label",{children:"Total days booked"}),e("p",{"data-testid":"booked-days",className:"font-bold",children:n})]}),t(f,{children:[e("label",{children:"Number of days already used"}),e("p",{"data-testid":"used-days",className:"font-bold",children:o})]}),t(f,{children:[t("label",{children:["Approved for use before ",r]}),e("p",{"data-testid":"approved-days-before-termination",className:"font-bold",children:a})]}),t(f,{withBorder:!0,children:[t("label",{children:["Approved for use after ",r]}),e("p",{"data-testid":"approved-days-after-termination",className:"font-bold",children:s})]}),t(f,{children:[e("label",{children:"Total days remaining unused"}),e("p",{"data-testid":"remaining-days",className:"font-bold",children:m})]}),e(f,{className:"mb-2 py-0",children:t("p",{className:"text-xs text-[#222E39]",children:["Unused days expire on ",r]})})]})},"SummaryTimeOff"),k=[{id:"formattedDate",label:"Dates",className:"w-[250px]",cellClassName:"font-medium"},{id:"duration",label:"Duration",render:l(o=>y({number:o,singular:"day",plural:"days",followCopyGuidelines:!1,showNumber:!0}),"render")},{id:"status",label:"Status"}],E=l(({employeeName:o,timeoffQuery:n,entitledDays:a,countryName:s,currentEntitlementDays:m,formattedProposedTerminationDate:i,onOpenChange:d,open:p})=>{let{data:r,isLoading:c}=n;return e(N,{open:p,onOpenChange:d,title:`${o} paid time off breakdown`,trigger:e(g,{variant:"link",className:"text-xs text-[#3B82F6] font-bold p-0",children:"See detailed time off breakdown \u2197"}),className:"h-full w-[540px] mt-0 ml-auto px-4 RemoteFlows_DrawerTimeOff",children:!c&&e(w,{children:Array.isArray(r?.timeoffs)&&r?.timeoffs?.length>0?t(w,{children:[e("p",{className:"text-[#09090B] font-medium mb-4",children:"This list is for your information only."}),t("p",{className:"text-xs text-[#09090B] mb-1 flex items-center justify-between gap-2",children:[t("span",{children:["Annual entitlement for ",s]}),e("span",{className:"font-bold",children:a})]}),t("p",{className:"text-xs text-[#09090B] mb-6 flex items-center justify-between gap-2",children:[t("span",{children:["Entitlement up to ",i]}),e("span",{className:"font-bold",children:m})]}),e("div",{className:"mb-2",children:e(b,{data:r?.timeoffs,columns:k})}),t("p",{className:"text-xs",children:["Total of"," ",y({number:r?.bookedDays,singular:"day",plural:"days",followCopyGuidelines:!1,showNumber:!0})," ","booked"]})]}):t(w,{children:[e("p",{className:"font-medium mb-1 text-[#09090B]",children:"No recorded time off"}),t("p",{className:"text-sm text-[#09090B]",children:["According to our records, ",o," has not taken any time off this year."]})]})})})},"DrawerTimeOff"),J=l(({employeeName:o,proposedTerminationDate:n,summaryData:a,formattedProposedTerminationDate:s,timeoffQuery:m,employment:i,onOpenChange:d,open:p})=>{let{entitledDays:r,bookedDays:c,usedDays:x,approvedDaysBeforeTermination:R,approvedDaysAfterTermination:P,remainingDays:h,currentEntitlementDays:T,isUnlimitedPto:v}=a.data;return t("div",{className:"RemoteFlows__PaidTimeOff__Container py-3",children:[e("h3",{className:"RemoteFlows__PaidTimeOff__Title mb-2",children:"Paid time off"}),t("p",{className:"RemoteFlows__PaidTimeOff__Description text-sm mb-2",children:["The proposed termination date for ",o," is"," ",s,". You will need to pay them for any unused accrued days. Below is a breakdown of their time off entitlement and usage for the current annual leave period:"]}),t("div",{className:"mb-2",children:[!a?.isLoading&&!a?.isError&&a?.data&&e(O,{usedDays:x,bookedDays:c,currentEntitlementDays:T,approvedDaysBeforeTermination:R,approvedDaysAfterTermination:P,remainingDays:h,proposedTerminationDate:n,isUnlimitedPto:v}),e(E,{employeeName:o,timeoffQuery:m,entitledDays:r,currentEntitlementDays:T,countryName:i?.country?.name??"Unknown",onOpenChange:d,formattedProposedTerminationDate:s,open:p})]})]})},"PaidTimeOff");export{J as a};
|
|
2
|
+
//# sourceMappingURL=chunk-DA6SLHO4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/shared/drawer/Drawer.tsx","../src/components/shared/table/Table.tsx","../src/flows/Termination/components/PaidTimeOff/PaidTimeOff.tsx"],"sourcesContent":["import { useFormFields } from '@/src/context';\nimport { DrawerComponentProps } from '@/src/types/remoteFlows';\n\nexport type DrawerProps = DrawerComponentProps & {\n className?: string;\n direction?: 'left' | 'right';\n};\n\nexport const Drawer = ({\n open,\n onOpenChange,\n title,\n trigger,\n children,\n className = '',\n direction = 'right',\n}: DrawerProps) => {\n const { components } = useFormFields();\n const CustomDrawer = components?.drawer;\n\n if (!CustomDrawer) {\n throw new Error(`Drawer component not found`);\n }\n\n return (\n <CustomDrawer\n open={open}\n onOpenChange={onOpenChange}\n title={title}\n trigger={trigger}\n direction={direction}\n className={className}\n >\n {children}\n </CustomDrawer>\n );\n};\n","import { forwardRef } from 'react';\nimport { useFormFields } from '@/src/context';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\n\nexport type ColumnDef<T = $TSFixMe> = {\n id: keyof T;\n label: React.ReactNode;\n className?: string;\n cellClassName?: string;\n render?: (value: $TSFixMe, row: T, index: number) => React.ReactNode;\n};\n\nexport type TableDataProps<T = $TSFixMe> = {\n data: T[] | undefined;\n columns: ColumnDef<T>[];\n className?: string;\n};\n\nexport type TableComponentProps<T = $TSFixMe> = TableDataProps<T>;\n\nexport const Table = forwardRef<HTMLTableElement, TableDataProps<$TSFixMe>>(\n ({ data = [], columns, className = '' }, ref) => {\n const { components } = useFormFields();\n const CustomTable = components?.table;\n\n if (!CustomTable) {\n throw new Error(`Table component not found`);\n }\n\n // Pass the same structured data to custom components\n return (\n <CustomTable\n ref={ref}\n data={data}\n columns={columns}\n className={className}\n />\n );\n },\n);\n\nTable.displayName = 'Table';\n","import { PaidTimeoffBreakdownResponse } from '@/src/common/api/timeoff';\nimport { Button } from '@/src/components/ui/button';\nimport { cn } from '@/src/lib/utils';\nimport { Drawer } from '@/src/components/shared/drawer/Drawer';\nimport { Table } from '@/src/components/shared/table/Table';\nimport { UseQueryResult } from '@tanstack/react-query';\nimport { PaidTimeOffRenderProps } from '@/src/flows/Termination/components/PaidTimeOff/types';\nimport { getSingularPluralUnit } from '@/src/lib/i18n';\nimport { ColumnDef } from '@/src/components/shared/table/Table';\n\nconst rowBase =\n 'RemoteFlows__SummaryRow flex justify-between items-center py-2 text-xs';\nconst rowBorder =\n 'RemoteFlows__SummaryRowBorder border-b border-b-1 border-b-[#E4E4E7]';\n\nconst SummaryRow = ({\n children,\n withBorder = false,\n className = '',\n}: {\n children: React.ReactNode;\n withBorder?: boolean;\n className?: string;\n}) => {\n return (\n <div className={cn(rowBase, withBorder && rowBorder, className)}>\n {children}\n </div>\n );\n};\n\nconst SummaryTimeOff = ({\n usedDays,\n bookedDays,\n approvedDaysBeforeTermination,\n approvedDaysAfterTermination,\n remainingDays,\n proposedTerminationDate,\n isUnlimitedPto,\n currentEntitlementDays,\n}: {\n usedDays: string;\n bookedDays: string;\n approvedDaysBeforeTermination: string;\n approvedDaysAfterTermination: string;\n remainingDays: string;\n proposedTerminationDate: string;\n isUnlimitedPto: boolean;\n currentEntitlementDays: string;\n}) => {\n const formattedProposedTerminationDate = new Date(\n proposedTerminationDate,\n ).toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n });\n return (\n <div>\n <SummaryRow withBorder>\n <label>Number of days entitled to per year</label>\n <p data-testid='entitled-days' className='font-bold'>\n {isUnlimitedPto ? 'Unlimited' : currentEntitlementDays}\n </p>\n </SummaryRow>\n <SummaryRow>\n <label>Total days booked</label>\n <p data-testid='booked-days' className='font-bold'>\n {bookedDays}\n </p>\n </SummaryRow>\n <SummaryRow>\n <label>Number of days already used</label>\n <p data-testid='used-days' className='font-bold'>\n {usedDays}\n </p>\n </SummaryRow>\n <SummaryRow>\n <label>\n Approved for use before {formattedProposedTerminationDate}\n </label>\n <p data-testid='approved-days-before-termination' className='font-bold'>\n {approvedDaysBeforeTermination}\n </p>\n </SummaryRow>\n <SummaryRow withBorder>\n <label>Approved for use after {formattedProposedTerminationDate}</label>\n <p data-testid='approved-days-after-termination' className='font-bold'>\n {approvedDaysAfterTermination}\n </p>\n </SummaryRow>\n <SummaryRow>\n <label>Total days remaining unused</label>\n <p data-testid='remaining-days' className='font-bold'>\n {remainingDays}\n </p>\n </SummaryRow>\n <SummaryRow className='mb-2 py-0'>\n <p className='text-xs text-[#222E39]'>\n Unused days expire on {formattedProposedTerminationDate}\n </p>\n </SummaryRow>\n </div>\n );\n};\n\ntype TimeoffRow = {\n formattedDate: string;\n duration: number;\n status: string;\n};\n\nconst TIMEOFF_COLUMNS: ColumnDef<TimeoffRow>[] = [\n {\n id: 'formattedDate',\n label: 'Dates',\n className: 'w-[250px]',\n cellClassName: 'font-medium',\n },\n {\n id: 'duration',\n label: 'Duration',\n render: (value: number) =>\n getSingularPluralUnit({\n number: value,\n singular: 'day',\n plural: 'days',\n followCopyGuidelines: false,\n showNumber: true,\n }),\n },\n {\n id: 'status',\n label: 'Status',\n },\n];\n\nconst DrawerTimeOff = ({\n employeeName,\n timeoffQuery,\n entitledDays,\n countryName,\n currentEntitlementDays,\n formattedProposedTerminationDate,\n onOpenChange,\n open,\n}: {\n employeeName: string;\n timeoffQuery: UseQueryResult<PaidTimeoffBreakdownResponse | undefined, Error>;\n entitledDays: string;\n countryName: string;\n currentEntitlementDays: string;\n onOpenChange: () => void;\n open: boolean;\n formattedProposedTerminationDate: string;\n}) => {\n const { data: timeoff, isLoading } = timeoffQuery;\n\n return (\n <Drawer\n open={open}\n onOpenChange={onOpenChange}\n title={`${employeeName} paid time off breakdown`}\n trigger={\n <Button variant='link' className='text-xs text-[#3B82F6] font-bold p-0'>\n See detailed time off breakdown ↗\n </Button>\n }\n className='h-full w-[540px] mt-0 ml-auto px-4 RemoteFlows_DrawerTimeOff'\n >\n {!isLoading && (\n <>\n {Array.isArray(timeoff?.timeoffs) && timeoff?.timeoffs?.length > 0 ? (\n <>\n <p className='text-[#09090B] font-medium mb-4'>\n This list is for your information only.\n </p>\n <p className='text-xs text-[#09090B] mb-1 flex items-center justify-between gap-2'>\n <span>Annual entitlement for {countryName}</span>\n <span className='font-bold'>{entitledDays}</span>\n </p>\n <p className='text-xs text-[#09090B] mb-6 flex items-center justify-between gap-2'>\n <span>\n Entitlement up to {formattedProposedTerminationDate}\n </span>\n <span className='font-bold'>{currentEntitlementDays}</span>\n </p>\n <div className='mb-2'>\n <Table data={timeoff?.timeoffs} columns={TIMEOFF_COLUMNS} />\n </div>\n <p className='text-xs'>\n Total of{' '}\n {getSingularPluralUnit({\n number: timeoff?.bookedDays,\n singular: 'day',\n plural: 'days',\n followCopyGuidelines: false,\n showNumber: true,\n })}{' '}\n booked\n </p>\n </>\n ) : (\n <>\n <p className='font-medium mb-1 text-[#09090B]'>\n No recorded time off\n </p>\n <p className='text-sm text-[#09090B]'>\n According to our records, {employeeName} has not taken any time\n off this year.\n </p>\n </>\n )}\n </>\n )}\n </Drawer>\n );\n};\n\nexport type PaidTimeOffProps = PaidTimeOffRenderProps;\n\n/**\n * PaidTimeOff component\n *\n * This component is used to display the paid time off summary and details.\n * It displays the summary data and a button to open the details drawer.\n * When the details drawer is open, it displays the paid time off breakdown.\n */\nexport const PaidTimeOff = ({\n employeeName,\n proposedTerminationDate,\n summaryData,\n formattedProposedTerminationDate,\n timeoffQuery,\n employment,\n onOpenChange,\n open,\n}: PaidTimeOffProps) => {\n const {\n entitledDays,\n bookedDays,\n usedDays,\n approvedDaysBeforeTermination,\n approvedDaysAfterTermination,\n remainingDays,\n currentEntitlementDays,\n isUnlimitedPto,\n } = summaryData.data;\n return (\n <div className='RemoteFlows__PaidTimeOff__Container py-3'>\n <h3 className='RemoteFlows__PaidTimeOff__Title mb-2'>Paid time off</h3>\n <p className='RemoteFlows__PaidTimeOff__Description text-sm mb-2'>\n The proposed termination date for {employeeName} is{' '}\n {formattedProposedTerminationDate}. You will need to pay them for any\n unused accrued days. Below is a breakdown of their time off entitlement\n and usage for the current annual leave period:\n </p>\n <div className='mb-2'>\n {!summaryData?.isLoading &&\n !summaryData?.isError &&\n summaryData?.data && (\n <SummaryTimeOff\n usedDays={usedDays}\n bookedDays={bookedDays}\n currentEntitlementDays={currentEntitlementDays}\n approvedDaysBeforeTermination={approvedDaysBeforeTermination}\n approvedDaysAfterTermination={approvedDaysAfterTermination}\n remainingDays={remainingDays}\n proposedTerminationDate={proposedTerminationDate}\n isUnlimitedPto={isUnlimitedPto}\n />\n )}\n <DrawerTimeOff\n employeeName={employeeName}\n timeoffQuery={timeoffQuery}\n entitledDays={entitledDays}\n currentEntitlementDays={currentEntitlementDays}\n countryName={employment?.country?.name ?? 'Unknown'}\n onOpenChange={onOpenChange}\n formattedProposedTerminationDate={formattedProposedTerminationDate}\n open={open}\n />\n </div>\n </div>\n );\n};\n"],"mappings":"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","names":["jsx","Drawer","__name","open","onOpenChange","title","trigger","children","className","direction","components","useFormFields","CustomDrawer","forwardRef","jsx","Table","forwardRef","data","columns","className","ref","components","useFormFields","CustomTable","Fragment","jsx","jsxs","rowBase","rowBorder","SummaryRow","__name","children","withBorder","className","cn","SummaryTimeOff","usedDays","bookedDays","approvedDaysBeforeTermination","approvedDaysAfterTermination","remainingDays","proposedTerminationDate","isUnlimitedPto","currentEntitlementDays","formattedProposedTerminationDate","TIMEOFF_COLUMNS","value","getSingularPluralUnit","DrawerTimeOff","employeeName","timeoffQuery","entitledDays","countryName","onOpenChange","open","timeoff","isLoading","Drawer","Button","Table","PaidTimeOff","summaryData","employment"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as C}from"./chunk-KSHK3ZPX.js";import{a as F}from"./chunk-FDBLCEFN.js";import{b as p}from"./chunk-EAV5VOMZ.js";import{g as E}from"./chunk-CR7AIZKA.js";import{g as f}from"./chunk-UQCSN47K.js";import{a as n}from"./chunk-P37U34EQ.js";import{useEffect as R}from"react";import{jsx as u}from"react/jsx-runtime";function T({onSubmit:S,onError:w,onSuccess:y,onErrorWithFields:c,shouldResetForm:d,resetFields:a}){let{form:e,formId:V,costCalculatorBag:o}=C(),{formState:{isSubmitSuccessful:s}}=e;R(()=>{if(s&&d){o?.resetForm(),e.reset();return}if(s&&a){let t={...e.getValues()};a.forEach(r=>{t[r]=""}),o?.resetForm(),e.reset(t)}},[s,e,d,o,a]);let b=n(async i=>{try{let t=await o?.parseFormValues(i);o?.meta?.fields&&(o.meta.fields=f(i,o.fields),o.meta.fields.employer_currency_slug=o.meta.fields.currency);let r=await o?.onSubmit(t);if(await S?.(t),r?.data&&!r.error){let l={data:{...r.data.data,employments:r.data.data.employments?.map(m=>({...m,title:t.estimation_title}))}};await y?.(l)}else throw{data:null,error:r?.error,fieldErrors:r?.fieldErrors,rawError:r?.rawError}}catch(t){let r=t,l=r.fieldErrors;if(c){let m=o?.meta?.fields,h=p(l,m);c({error:r.error,rawError:r.rawError,fieldErrors:h})}else w?.(r.error)}},"handleSubmit");return u(E,{...e,children:u("form",{id:V,onSubmit:e.handleSubmit(b),className:"space-y-4 RemoteFlows__CostCalculatorForm",children:u(F,{fields:o?.fields??[]})})})}n(T,"CostCalculatorForm");export{T as a};
|
|
2
|
+
//# sourceMappingURL=chunk-DN6SGTCI.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as _,b as F,c as g}from"./chunk-75H7ASIK.js";import{f as S}from"./chunk-HRG5MSVG.js";import{b as T}from"./chunk-ZDTHQRXJ.js";import{c}from"./chunk-CR7AIZKA.js";import{e as m}from"./chunk-UQCSN47K.js";import{a as i}from"./chunk-P37U34EQ.js";import{Fragment as x}from"react";var d={..._,fieldset:g,"fieldset-flat":g};import{useEffect as P}from"react";import{Fragment as R,jsx as p,jsxs as h}from"react/jsx-runtime";var C=i(({name:e,description:a,helpCenter:n})=>h("span",{children:[p("span",{className:`text-xs RemoteFlows__ForcedValue__Description__${e}`,dangerouslySetInnerHTML:{__html:m(a)}}),n?.callToAction&&n?.id&&p(T,{className:"RemoteFlows__ForcedValue__HelpCenterLink",zendeskId:n.id,children:n.callToAction})]}),"Description");function k({name:e,value:a,description:n,statement:r,label:u,helpCenter:l}){let{setValue:t}=c(),s=m(r?.description||n);return P(()=>{t(e,a)},[]),p("div",{children:r?h(R,{children:[p("p",{className:`text-sm RemoteFlows__ForcedValue__Title__${e}`,dangerouslySetInnerHTML:{__html:m(r?.title||u)}}),p(C,{name:e,description:m(r?.description||n),helpCenter:l})]}):p(C,{name:e,description:s,helpCenter:l})})}i(k,"ForcedValueField");import{Fragment as M,jsx as o,jsxs as y}from"react/jsx-runtime";function J(e){return e.const!==void 0&&e.const===e.default&&e.inputType!=="checkbox"&&e.inputType!=="hidden"}i(J,"checkFieldHasForcedValue");var G=i(({fields:e,fieldsets:a,fieldValues:n,components:r})=>{let{setValue:u}=c();if(!e||e.length===0)return null;let l=a&&n?S({fields:e,fieldsets:a,values:n}):e;return o(M,{children:l.map(t=>{if(t.calculateDynamicProperties&&(t={...t,...t.calculateDynamicProperties(n,t)||{}}),t.isVisible===!1||t.deprecated||t.hidden)return null;if(J(t))return o(k,{name:t.name,description:t.description,value:t.const,statement:t.statement,label:t.label,helpCenter:t.meta?.helpCenter},t.name);if(t.Component){let{Component:b}=t;return y(x,{children:[o(b,{setValue:V=>u(t.name,V),...t}),t.statement?o(F,{...t.statement}):null,t.extra?t.extra:null]},t.name)}let s=d[t.inputType];return s?t.inputType==="fieldset"?o(s,{...t,components:r},t.name):t.inputType==="fieldset-flat"?o(s,{...t,components:r,isFlatFieldset:!0},t.name):(t.inputType==="select"&&t.multiple&&(s=d["multi-select"]),y(x,{children:[o(s,{...t,component:r&&r[t.inputType]}),t.statement?o(F,{...t.statement}):null,t.extra?t.extra:null]},t.name)):y("p",{className:"error",children:["Field type ",t.inputType," not supported"]})})})},"JSONSchemaFormFields");export{G as a};
|
|
2
|
+
//# sourceMappingURL=chunk-FDBLCEFN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/form/JSONSchemaForm.tsx","../src/components/form/fields/fieldsMapping.tsx","../src/components/form/fields/ForcedValueField.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { JSFFields } from '@/src/types/remoteFlows';\nimport React, { Fragment } from 'react';\n\nimport { fieldsMap } from '@/src/components/form/fields/fieldsMapping';\nimport { Statement } from '@/src/components/form/Statement';\nimport { ForcedValueField } from '@/src/components/form/fields/ForcedValueField';\nimport { Components, JSFFieldset } from '@/src/types/remoteFlows';\nimport { getFieldsWithFlatFieldsets } from './utils';\nimport { StatementComponentProps } from '@/src/types/fields';\nimport { useFormContext } from 'react-hook-form';\n\ntype JSONSchemaFormFieldsProps = {\n fields: JSFFields;\n components?: Components;\n fieldsets?: JSFFieldset | null | undefined;\n fieldValues?: Record<string, unknown>;\n};\n\nfunction checkFieldHasForcedValue(field: any) {\n // A field to be considered \"forced value\" must:\n return (\n field.const !== undefined && // Only accepts a specific value\n field.const === field.default && // It can be prefilled, meaning it's not critical\n field.inputType !== 'checkbox' && // Because checkbox must always be visible\n field.inputType !== 'hidden' // Because hidden inputs shouldn't be visible\n );\n}\n\nexport const JSONSchemaFormFields = ({\n fields,\n fieldsets,\n fieldValues,\n components,\n}: JSONSchemaFormFieldsProps) => {\n const { setValue } = useFormContext();\n\n if (!fields || fields.length === 0) return null;\n\n const maybeFieldWithFlatFieldsets =\n fieldsets && fieldValues\n ? getFieldsWithFlatFieldsets({\n fields: fields,\n fieldsets: fieldsets,\n values: fieldValues,\n })\n : fields;\n\n return (\n <>\n {maybeFieldWithFlatFieldsets.map((field) => {\n if (field.calculateDynamicProperties) {\n field = {\n ...field,\n ...(field.calculateDynamicProperties(fieldValues, field) || {}),\n };\n }\n\n if (field.isVisible === false || field.deprecated || field.hidden) {\n return null; // Skip hidden or deprecated fields\n }\n\n if (checkFieldHasForcedValue(field)) {\n return (\n <ForcedValueField\n key={field.name as string}\n name={field.name as string}\n description={field.description as string}\n value={field.const as string}\n statement={field.statement as any}\n label={field.label as string}\n helpCenter={field.meta?.helpCenter}\n />\n );\n }\n\n if (field.Component) {\n const { Component } = field as {\n Component: React.ComponentType<any>;\n };\n return (\n <Fragment key={field.name as string}>\n <Component\n setValue={(value: unknown) => setValue(field.name, value)}\n {...field}\n />\n {field.statement ? (\n <Statement\n {...(field.statement as StatementComponentProps['data'])}\n />\n ) : null}\n {field.extra ? field.extra : null}\n </Fragment>\n );\n }\n\n let FieldComponent =\n fieldsMap[field.inputType as keyof typeof fieldsMap];\n\n if (!FieldComponent) {\n return (\n <p className='error'>\n Field type {field.inputType as string} not supported\n </p>\n );\n }\n\n if (field.inputType === 'fieldset') {\n return (\n <FieldComponent\n key={field.name}\n {...field}\n components={components}\n />\n );\n }\n\n if (field.inputType === 'fieldset-flat') {\n return (\n <FieldComponent\n key={field.name}\n {...field}\n components={components}\n isFlatFieldset\n />\n );\n }\n\n // TODO: Have doubts about this, it seems we only support checkbox for multiple select\n if (field.inputType === 'select' && field.multiple) {\n FieldComponent = fieldsMap['multi-select'];\n }\n\n return (\n <Fragment key={field.name as string}>\n <FieldComponent\n {...field}\n component={\n components && components[field.inputType as keyof Components]\n }\n />\n {field.statement ? (\n <Statement\n {...(field.statement as StatementComponentProps['data'])}\n />\n ) : null}\n {field.extra ? field.extra : null}\n </Fragment>\n );\n })}\n </>\n );\n};\n","import { $TSFixMe } from '@/src/types/remoteFlows';\nimport { baseFields } from './baseFields';\nimport { FieldSetField } from './FieldSetField';\nimport { SupportedTypes } from './types';\n\nexport const fieldsMap: Record<\n SupportedTypes,\n React.ComponentType<$TSFixMe>\n> = {\n ...baseFields,\n fieldset: FieldSetField,\n 'fieldset-flat': FieldSetField,\n};\n","import { useFormContext } from 'react-hook-form';\nimport { sanitizeHtml } from '@/src/lib/utils';\nimport { useEffect } from 'react';\nimport { ZendeskTriggerButton } from '@/src/components/shared/zendesk-drawer/ZendeskTriggerButton';\n\nconst Description = ({\n name,\n description,\n helpCenter,\n}: {\n name: string;\n description: string;\n helpCenter?: {\n callToAction: string;\n id: number;\n url: string;\n label: string;\n };\n}) => {\n return (\n <span>\n <span\n className={`text-xs RemoteFlows__ForcedValue__Description__${name}`}\n dangerouslySetInnerHTML={{ __html: sanitizeHtml(description) }}\n />\n {helpCenter?.callToAction && helpCenter?.id && (\n <ZendeskTriggerButton\n className='RemoteFlows__ForcedValue__HelpCenterLink'\n zendeskId={helpCenter.id}\n >\n {helpCenter.callToAction}\n </ZendeskTriggerButton>\n )}\n </span>\n );\n};\n\nexport type ForcedValueFieldProps = {\n name: string;\n value: string;\n description: string;\n statement?: {\n title?: string;\n description?: string;\n };\n label: string;\n helpCenter?: {\n callToAction: string;\n id: number;\n url: string;\n label: string;\n };\n};\n\nexport function ForcedValueField({\n name,\n value,\n description,\n statement,\n label,\n helpCenter,\n}: ForcedValueFieldProps) {\n const { setValue } = useFormContext();\n const descriptionSanitized = sanitizeHtml(\n statement?.description || description,\n );\n useEffect(() => {\n setValue(name, value);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <div>\n {statement ? (\n <>\n {/* if statement?.title is undefined which could be for example belgium contract details form, we need to use the label attribute */}\n <p\n className={`text-sm RemoteFlows__ForcedValue__Title__${name}`}\n dangerouslySetInnerHTML={{\n __html: sanitizeHtml(statement?.title || label),\n }}\n />\n <Description\n name={name}\n description={sanitizeHtml(statement?.description || description)}\n helpCenter={helpCenter}\n />\n </>\n ) : (\n <Description\n name={name}\n description={descriptionSanitized}\n helpCenter={helpCenter}\n />\n )}\n </div>\n );\n}\n"],"mappings":"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","names":["Fragment","fieldsMap","baseFields","FieldSetField","useEffect","Fragment","jsx","jsxs","Description","__name","name","description","helpCenter","sanitizeHtml","ZendeskTriggerButton","ForcedValueField","value","statement","label","setValue","useFormContext","descriptionSanitized","useEffect","Fragment","jsx","jsxs","checkFieldHasForcedValue","field","__name","JSONSchemaFormFields","fields","fieldsets","fieldValues","components","setValue","useFormContext","maybeFieldWithFlatFieldsets","getFieldsWithFlatFieldsets","ForcedValueField","Component","value","Statement","FieldComponent","fieldsMap"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as e}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as e}from"./chunk-ZDTHQRXJ.js";import{a as n}from"./chunk-P37U34EQ.js";import{jsx as o,jsxs as t}from"react/jsx-runtime";var a=n(({involuntaryOffboardingServiceChargeZendeskId:r,reconciliationInvoiceZendeskId:i})=>t("p",{className:"RemoteFlows__AcknowledgeInformationFees text-xs text-[#71717A]",children:["You'll receive an"," ",o(e,{zendeskId:r,className:"align-baseline",children:"involuntary offboarding service charge \u2197"})," ","on your"," ",o(e,{zendeskId:i,children:"reconciliation invoice \u2197"})]}),"AcknowledgeInformationFees");export{a};
|
|
2
|
+
//# sourceMappingURL=chunk-FEGY4ZEW.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as e}from"./chunk-UQCSN47K.js";import{a}from"./chunk-P37U34EQ.js";import{cva as n}from"class-variance-authority";import{jsx as i}from"react/jsx-runtime";var o=n("relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",{variants:{variant:{default:"bg-card text-card-foreground",destructive:"text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90",warning:"bg-card bg-warning border-warning-border [&>svg]:text-current"}},defaultVariants:{variant:"default"}});function c({className:t,variant:r,...s}){return i("div",{"data-slot":"alert",role:"alert",className:e(o({variant:r}),t),...s})}a(c,"Alert");function g({className:t,...r}){return i("div",{"data-slot":"alert-title",className:e("col-start-2 min-h-4 font-medium tracking-tight",t),...r})}a(g,"AlertTitle");function p({className:t,...r}){return i("div",{"data-slot":"alert-description",className:e("text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed inline-block",t),...r})}a(p,"AlertDescription");export{c as a,g as b,p as c};
|
|
2
|
+
//# sourceMappingURL=chunk-FM7K64YV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/alert.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { cn } from '@/src/lib/utils';\n\nconst alertVariants = cva(\n 'relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current',\n {\n variants: {\n variant: {\n default: 'bg-card text-card-foreground',\n destructive:\n 'text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90',\n warning:\n 'bg-card bg-warning border-warning-border [&>svg]:text-current',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof alertVariants>) {\n return (\n <div\n data-slot='alert'\n role='alert'\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='alert-title'\n className={cn(\n 'col-start-2 min-h-4 font-medium tracking-tight',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='alert-description'\n className={cn(\n 'text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed inline-block',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Alert, AlertDescription, AlertTitle };\n"],"mappings":"2EAAA,OAAS,OAAAA,MAA8B,2BA6BnC,cAAAC,MAAA,oBAxBJ,IAAMC,EAAgBC,EACpB,oOACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,+BACT,YACE,oGACF,QACE,+DACJ,CACF,EACA,gBAAiB,CACf,QAAS,SACX,CACF,CACF,EAEA,SAASC,EAAM,CACb,UAAAC,EACA,QAAAC,EACA,GAAGC,CACL,EAAqE,CACnE,OACEN,EAAC,OACC,YAAU,QACV,KAAK,QACL,UAAWO,EAAGN,EAAc,CAAE,QAAAI,CAAQ,CAAC,EAAGD,CAAS,EAClD,GAAGE,EACN,CAEJ,CAbSE,EAAAL,EAAA,SAeT,SAASM,EAAW,CAAE,UAAAL,EAAW,GAAGE,CAAM,EAAgC,CACxE,OACEN,EAAC,OACC,YAAU,cACV,UAAWO,EACT,kDACAH,CACF,EACC,GAAGE,EACN,CAEJ,CAXSE,EAAAC,EAAA,cAaT,SAASC,EAAiB,CACxB,UAAAN,EACA,GAAGE,CACL,EAAgC,CAC9B,OACEN,EAAC,OACC,YAAU,oBACV,UAAWO,EACT,8GACAH,CACF,EACC,GAAGE,EACN,CAEJ,CAdSE,EAAAE,EAAA","names":["cva","jsx","alertVariants","cva","Alert","className","variant","props","cn","__name","AlertTitle","AlertDescription"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as $,d as w,e as x,f as B}from"./chunk-RVYQJM63.js";import{a as N}from"./chunk-Q3LH3SPI.js";import{a as g,b as k,d as D,e as R,f as H,g as C}from"./chunk-CR7AIZKA.js";import{a as T,b as E,c as j,d as O,f as V}from"./chunk-VLKGQAEQ.js";import{b as F}from"./chunk-PJN2YJO4.js";import{a as s}from"./chunk-P37U34EQ.js";import*as l from"yup";var P=s((t,a,r)=>{if(t&&"reportValidity"in t){let o=g(r,a);t.setCustomValidity(o&&o.message||""),t.reportValidity()}},"r"),b=s((t,a)=>{for(let r in a.fields){let o=a.fields[r];o&&o.ref&&"reportValidity"in o.ref?P(o.ref,r,t):o&&o.refs&&o.refs.forEach(u=>P(u,r,t))}},"o"),q=s((t,a)=>{a.shouldUseNativeValidation&&b(t,a);let r={};for(let o in t){let u=g(a.fields,o),i=Object.assign(t[o]||{},{ref:u&&u.ref});if(A(a.names||Object.keys(t),o)){let n=Object.assign({},g(r,o));k(n,"root",i),k(r,o,n)}else k(r,o,i)}return r},"s"),A=s((t,a)=>{let r=M(a);return t.some(o=>M(o).match(`^${r}\\.\\d+`))},"i");function M(t){return t.replace(/\]|\[/g,"")}s(M,"n");function L(t,a,r){return a===void 0&&(a={}),r===void 0&&(r={}),function(o,u,i){try{return Promise.resolve((function(n,_){try{var p=(a.context&&process.env.NODE_ENV==="development"&&console.warn("You should not used the yup options context. Please, use the 'useForm' context object instead"),Promise.resolve(t[r.mode==="sync"?"validateSync":"validate"](o,Object.assign({abortEarly:!1},a,{context:u}))).then(function(m){return i.shouldUseNativeValidation&&b({},i),{values:r.raw?Object.assign({},o):m,errors:{}}}))}catch(m){return _(m)}return p&&p.then?p.then(void 0,_):p})(0,function(n){if(!n.inner)throw n;return{values:{},errors:q((_=n,p=!i.shouldUseNativeValidation&&i.criteriaMode==="all",(_.inner||[]).reduce(function(m,c){if(m[c.path]||(m[c.path]={message:c.message,type:c.type}),p){var S=m[c.path].types,y=S&&S[c.type];m[c.path]=D(c.path,p,m,c.type,y?[].concat(y,c.message):c.message)}return m},{})),i)};var _,p}))}catch(n){return Promise.reject(n)}}}s(L,"o");import{Fragment as Y,useState as z}from"react";import{jsx as e,jsxs as d}from"react/jsx-runtime";var K=l.object({day:l.string().required(),checked:l.boolean().required(),start_time:l.string().matches(/^([01]\d|2[0-3]):([0-5]\d)$/,"Invalid time format (HH:mm)").when("checked",{is:!0,then:s(t=>t.required("Required"),"then"),otherwise:s(t=>t.optional().nullable(),"otherwise")}),end_time:l.string().matches(/^([01]\d|2[0-3]):([0-5]\d)$/,"Invalid time format (HH:mm)").when("checked",{is:!0,then:s(t=>t.required("Required"),"then"),otherwise:s(t=>t.optional().nullable(),"otherwise")}),hours:l.number().default(0),break_duration_minutes:l.string().default("0")}),G=l.object({schedule:l.array(K)});function J({defaultSchedule:t,onSubmit:a}){let[r,o]=z(!1),u=$.map(f=>{let h=t.find(v=>v.day.toLowerCase()===x(f).toLowerCase()||v.day.toLowerCase()===f.toLowerCase());return h?{...h,day:x(f),checked:!0}:{...t[0],checked:!1,day:x(f)}}),i=H({defaultValues:{schedule:u},resolver:L(G)}),{handleSubmit:n,watch:_,reset:p,control:m,formState:c}=i,{fields:S}=R({name:"schedule",control:m}),y=_("schedule");function I(f){let h=f.schedule.filter(({checked:v})=>v).map(v=>({...v,hours:w(v)}));a(h),o(!1)}s(I,"handleSubmitWorkingHours");function U(){p(),o(!1)}return s(U,"handleCancel"),e("div",{className:"flex items-center justify-between",children:d(T,{open:r,onOpenChange:o,children:[e(E,{asChild:!0,children:e(F,{variant:"link",className:"flex items-center p-0 RemoteFlows__WorkScheduleSelectionForm__Trigger",children:"Edit Schedule"})}),d(j,{className:"max-w-5xl max-h-[90vh] overflow-y-auto px-8 py-4 RemoteFlows__WorkScheduleSelectionForm__Content",children:[e(O,{children:e(V,{className:"RemoteFlows__WorkScheduleSelectionForm__Title",children:"Edit employee working hours"})}),e(C,{...i,children:d("form",{className:"space-y-4 RemoteFlows__WorkScheduleSelectionForm__Form",children:[d("div",{className:"rounded-lg",children:[e("p",{className:"text-gray-600 text-sm mb-4 RemoteFlows__WorkScheduleSelectionForm__Description",children:"The times displayed are in the employee's time zone in the 24-hour format."}),d("div",{className:"grid grid-cols-12 gap-4 text-sm font-medium text-gray-500 uppercase tracking-wide RemoteFlows__WorkScheduleSelectionForm__Header",children:[e("div",{className:"col-span-2"}),e("div",{className:"col-span-3 text-center",children:"START"}),e("div",{className:"col-span-1 text-center"}),e("div",{className:"col-span-3 text-center",children:"END"}),e("div",{className:"col-span-2 text-center",children:"HOURS"})]}),e("div",{className:"RemoteFlows__WorkScheduleSelectionForm__Rows",children:S.map((f,h)=>{let v=y[h],W=w(v);return d(Y,{children:[d("div",{className:"grid grid-cols-12 gap-4 items-center py-2 RemoteFlows__WorkScheduleSelectionForm__Row-Hours",children:[e("div",{className:"col-span-2 flex items-center gap-3",children:e(B,{label:f.day,name:`schedule.${h}.checked`})}),e("div",{className:"col-span-3",children:e(N,{name:`schedule.${h}.start_time`,includeErrorMessage:!1})}),e("div",{className:"col-span-1 text-center text-gray-500",children:"to"}),e("div",{className:"col-span-3",children:e(N,{name:`schedule.${h}.end_time`,includeErrorMessage:!1})}),e("div",{className:"col-span-2 text-center text-gray-600",children:isNaN(W)?"-":`${W} hours`})]}),d("div",{className:"grid grid-cols-12 gap-4 items-center py-2 RemoteFlows__WorkScheduleSelectionForm__Row-Break",children:[e("div",{className:"col-span-2 text-gray-500",children:"Break"}),e("div",{className:"col-span-2",children:e(N,{name:`schedule.${h}.break_duration_minutes`,includeErrorMessage:!1})}),e("div",{className:"col-span-2 text-gray-500",children:"minutes"}),e("div",{className:"col-span-4"})]})]},f.id)})})]}),Object.keys(c.errors).length>0&&e("p",{className:"text-destructive text-sm mb-0",children:"Invalid time format (HH:mm)"}),d("div",{className:"flex gap-4 pt-4",children:[e(F,{type:"button",className:"reset-button",variant:"outline",onClick:U,children:"Cancel"}),e(F,{type:"button",className:"submit-button",onClick:n(I),children:"Save Schedule"})]})]})})]})]})})}s(J,"WorkScheduleSelectionForm");var he=s(({fieldData:t})=>{let{defaultFormattedValue:a,currentSchedule:r,onSubmit:o}=t,{workHoursSummary:u,breakSummary:i,totalWorkHours:n}=a;return d("div",{className:"flex flex-col gap-3 RemoteFlows__WorkScheduleField",children:[e("p",{className:"text-sm RemoteFlows__WorkScheduleField__Title",children:"Work hours"}),d("div",{className:"flex flex-col gap-1 RemoteFlows__WorkScheduleField__Summary",children:[e("p",{className:"text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__WorkHours",dangerouslySetInnerHTML:{__html:u.join(", ")}}),e("p",{className:"text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__Break",children:i.join()}),d("p",{className:"text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__Total",children:["Total of ",e("span",{children:n})," hours per week"]}),e(J,{defaultSchedule:r,onSubmit:o})]})]})},"WorkScheduleFieldDefault");export{he as a};
|
|
2
|
+
//# sourceMappingURL=chunk-FNSD4BSK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/form/fields/default/WorkScheduleFieldDefault.tsx","../node_modules/@hookform/resolvers/src/validateFieldsNatively.ts","../node_modules/@hookform/resolvers/src/toNestErrors.ts","../node_modules/@hookform/resolvers/yup/src/yup.ts"],"sourcesContent":["import { useFieldArray, useForm } from 'react-hook-form';\nimport * as yup from 'yup';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport { Fragment, useState } from 'react';\nimport { Form } from '@/src/components/ui/form';\nimport {\n calculateHours,\n DailySchedule,\n DAYS_OF_THE_WEEK,\n getShortWeekday,\n} from '@/src/components/form/fields/workScheduleUtils';\nimport { CheckBoxField } from '@/src/components/form/fields/CheckBoxField';\nimport { TextField } from '@/src/components/form/fields/TextField';\nimport { Button } from '@/src/components/ui/button';\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from '@/src/components/ui/dialog';\nimport { WorkScheduleComponentProps } from '@/src/types/fields';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\n\ntype WorkScheduleFormData = {\n schedule: DailySchedule[];\n};\n\ntype WorkScheduleSelectionProps = {\n defaultSchedule: DailySchedule[];\n onSubmit: (data: WorkScheduleFormData['schedule']) => void;\n};\n\nconst fieldSchema = yup.object({\n day: yup.string().required(),\n checked: yup.boolean().required(),\n start_time: yup\n .string()\n .matches(/^([01]\\d|2[0-3]):([0-5]\\d)$/, 'Invalid time format (HH:mm)')\n .when('checked', {\n is: true,\n then: (schema) => schema.required('Required'),\n otherwise: (schema) => schema.optional().nullable(),\n }),\n end_time: yup\n .string()\n .matches(/^([01]\\d|2[0-3]):([0-5]\\d)$/, 'Invalid time format (HH:mm)')\n .when('checked', {\n is: true,\n then: (schema) => schema.required('Required'),\n otherwise: (schema) => schema.optional().nullable(),\n }),\n hours: yup.number().default(0),\n break_duration_minutes: yup.string().default('0'),\n});\n\nconst formSchema = yup.object({\n schedule: yup.array(fieldSchema),\n});\n\nfunction WorkScheduleSelectionForm({\n defaultSchedule,\n onSubmit,\n}: WorkScheduleSelectionProps) {\n const [openDialog, setOpenDialog] = useState(false);\n\n const transformedSchedule = DAYS_OF_THE_WEEK.map((day) => {\n const existingSchedule = defaultSchedule.find(\n (schedule) =>\n schedule.day.toLowerCase() === getShortWeekday(day).toLowerCase() ||\n schedule.day.toLowerCase() === day.toLowerCase(),\n );\n\n if (existingSchedule) {\n return {\n ...existingSchedule,\n day: getShortWeekday(day),\n checked: true,\n };\n }\n\n return {\n // We just need to override the day and checked. The rest of the fields are the same for every day.\n ...defaultSchedule[0],\n checked: false,\n day: getShortWeekday(day),\n };\n });\n\n const form = useForm<WorkScheduleFormData>({\n defaultValues: {\n schedule: transformedSchedule,\n },\n resolver: yupResolver(formSchema) as $TSFixMe,\n });\n\n const { handleSubmit, watch, reset, control, formState } = form;\n\n const { fields } = useFieldArray({\n name: 'schedule',\n control,\n });\n\n const watchedSchedule = watch('schedule');\n\n function handleSubmitWorkingHours(data: WorkScheduleFormData) {\n // We can only send the days that are checked.\n const schedule = data.schedule\n .filter(({ checked }) => checked)\n .map((day) => ({\n ...day,\n hours: calculateHours(day),\n }));\n\n onSubmit(schedule);\n setOpenDialog(false);\n }\n\n function handleCancel() {\n reset();\n setOpenDialog(false);\n }\n\n return (\n <div className='flex items-center justify-between'>\n <Dialog open={openDialog} onOpenChange={setOpenDialog}>\n <DialogTrigger asChild>\n <Button\n variant={'link'}\n className='flex items-center p-0 RemoteFlows__WorkScheduleSelectionForm__Trigger'\n >\n Edit Schedule\n </Button>\n </DialogTrigger>\n <DialogContent className='max-w-5xl max-h-[90vh] overflow-y-auto px-8 py-4 RemoteFlows__WorkScheduleSelectionForm__Content'>\n <DialogHeader>\n <DialogTitle className='RemoteFlows__WorkScheduleSelectionForm__Title'>\n Edit employee working hours\n </DialogTitle>\n </DialogHeader>\n\n <Form {...form}>\n <form className='space-y-4 RemoteFlows__WorkScheduleSelectionForm__Form'>\n <div className='rounded-lg'>\n <p className='text-gray-600 text-sm mb-4 RemoteFlows__WorkScheduleSelectionForm__Description'>\n The times displayed are in the employee's time zone in the\n 24-hour format.\n </p>\n\n <div className='grid grid-cols-12 gap-4 text-sm font-medium text-gray-500 uppercase tracking-wide RemoteFlows__WorkScheduleSelectionForm__Header'>\n <div className='col-span-2'></div>\n <div className='col-span-3 text-center'>START</div>\n <div className='col-span-1 text-center'></div>\n <div className='col-span-3 text-center'>END</div>\n <div className='col-span-2 text-center'>HOURS</div>\n {/* <div className=\"col-span-2 text-center\">ACTIONS</div> */}\n </div>\n\n <div className='RemoteFlows__WorkScheduleSelectionForm__Rows'>\n {fields.map((field, index) => {\n const currentDay = watchedSchedule[index];\n const calculatedHours = calculateHours(currentDay);\n\n return (\n <Fragment key={field.id}>\n <div className='grid grid-cols-12 gap-4 items-center py-2 RemoteFlows__WorkScheduleSelectionForm__Row-Hours'>\n <div className='col-span-2 flex items-center gap-3'>\n <CheckBoxField\n label={field.day}\n name={`schedule.${index}.checked`}\n />\n </div>\n <div className='col-span-3'>\n <TextField\n name={`schedule.${index}.start_time`}\n includeErrorMessage={false}\n />\n </div>\n <div className='col-span-1 text-center text-gray-500'>\n to\n </div>\n <div className='col-span-3'>\n <TextField\n name={`schedule.${index}.end_time`}\n includeErrorMessage={false}\n />\n </div>\n <div className='col-span-2 text-center text-gray-600'>\n {isNaN(calculatedHours)\n ? '-'\n : `${calculatedHours} hours`}\n </div>\n </div>\n\n <div className='grid grid-cols-12 gap-4 items-center py-2 RemoteFlows__WorkScheduleSelectionForm__Row-Break'>\n <div className='col-span-2 text-gray-500'>Break</div>\n <div className='col-span-2'>\n <TextField\n name={`schedule.${index}.break_duration_minutes`}\n includeErrorMessage={false}\n />\n </div>\n <div className='col-span-2 text-gray-500'>\n minutes\n </div>\n <div className='col-span-4'></div>\n </div>\n </Fragment>\n );\n })}\n </div>\n </div>\n\n {Object.keys(formState.errors).length > 0 && (\n <p className='text-destructive text-sm mb-0'>\n Invalid time format (HH:mm)\n </p>\n )}\n\n <div className='flex gap-4 pt-4'>\n <Button\n type='button'\n className='reset-button'\n variant='outline'\n onClick={handleCancel}\n >\n Cancel\n </Button>\n <Button\n type='button'\n className='submit-button'\n onClick={handleSubmit(handleSubmitWorkingHours)}\n >\n Save Schedule\n </Button>\n </div>\n </form>\n </Form>\n </DialogContent>\n </Dialog>\n </div>\n );\n}\n\nexport const WorkScheduleFieldDefault = ({\n fieldData,\n}: WorkScheduleComponentProps) => {\n const { defaultFormattedValue, currentSchedule, onSubmit } = fieldData;\n const { workHoursSummary, breakSummary, totalWorkHours } =\n defaultFormattedValue;\n return (\n <div className={`flex flex-col gap-3 RemoteFlows__WorkScheduleField`}>\n <p className={`text-sm RemoteFlows__WorkScheduleField__Title`}>\n Work hours\n </p>\n <div className='flex flex-col gap-1 RemoteFlows__WorkScheduleField__Summary'>\n <p\n className='text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__WorkHours'\n dangerouslySetInnerHTML={{\n __html: workHoursSummary.join(', '),\n }}\n />\n\n <p className='text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__Break'>\n {breakSummary.join()}\n </p>\n <p className='text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__Total'>\n Total of <span>{totalWorkHours}</span> hours per week\n </p>\n <WorkScheduleSelectionForm\n defaultSchedule={currentSchedule}\n onSubmit={onSubmit}\n />\n </div>\n </div>\n );\n};\n","import {\n FieldError,\n FieldErrors,\n FieldValues,\n Ref,\n ResolverOptions,\n get,\n} from 'react-hook-form';\n\nconst setCustomValidity = (\n ref: Ref,\n fieldPath: string,\n errors: FieldErrors,\n) => {\n if (ref && 'reportValidity' in ref) {\n const error = get(errors, fieldPath) as FieldError | undefined;\n ref.setCustomValidity((error && error.message) || '');\n\n ref.reportValidity();\n }\n};\n\n// Native validation (web only)\nexport const validateFieldsNatively = <TFieldValues extends FieldValues>(\n errors: FieldErrors,\n options: ResolverOptions<TFieldValues>,\n): void => {\n for (const fieldPath in options.fields) {\n const field = options.fields[fieldPath];\n if (field && field.ref && 'reportValidity' in field.ref) {\n setCustomValidity(field.ref, fieldPath, errors);\n } else if (field && field.refs) {\n field.refs.forEach((ref: HTMLInputElement) =>\n setCustomValidity(ref, fieldPath, errors),\n );\n }\n }\n};\n","import {\n Field,\n FieldErrors,\n FieldValues,\n InternalFieldName,\n ResolverOptions,\n get,\n set,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestErrors = <TFieldValues extends FieldValues>(\n errors: FieldErrors,\n options: ResolverOptions<TFieldValues>,\n): FieldErrors<TFieldValues> => {\n options.shouldUseNativeValidation && validateFieldsNatively(errors, options);\n\n const fieldErrors = {} as FieldErrors<TFieldValues>;\n for (const path in errors) {\n const field = get(options.fields, path) as Field['_f'] | undefined;\n const error = Object.assign(errors[path] || {}, {\n ref: field && field.ref,\n });\n\n if (isNameInFieldArray(options.names || Object.keys(errors), path)) {\n const fieldArrayErrors = Object.assign({}, get(fieldErrors, path));\n\n set(fieldArrayErrors, 'root', error);\n set(fieldErrors, path, fieldArrayErrors);\n } else {\n set(fieldErrors, path, error);\n }\n }\n\n return fieldErrors;\n};\n\nconst isNameInFieldArray = (\n names: InternalFieldName[],\n name: InternalFieldName,\n) => {\n const path = escapeBrackets(name);\n return names.some((n) => escapeBrackets(n).match(`^${path}\\\\.\\\\d+`));\n};\n\n/**\n * Escapes special characters in a string to be used in a regex pattern.\n * it removes the brackets from the string to match the `set` method.\n *\n * @param input - The input string to escape.\n * @returns The escaped string.\n */\nfunction escapeBrackets(input: string): string {\n return input.replace(/\\]|\\[/g, '');\n}\n","import { toNestErrors, validateFieldsNatively } from '@hookform/resolvers';\nimport {\n FieldError,\n FieldValues,\n Resolver,\n appendErrors,\n} from 'react-hook-form';\nimport * as Yup from 'yup';\n\n/**\n * Why `path!` ? because it could be `undefined` in some case\n * https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n */\nfunction parseErrorSchema(\n error: Yup.ValidationError,\n validateAllFieldCriteria: boolean,\n) {\n return (error.inner || []).reduce<Record<string, FieldError>>(\n (previous, error) => {\n if (!previous[error.path!]) {\n previous[error.path!] = { message: error.message, type: error.type! };\n }\n\n if (validateAllFieldCriteria) {\n const types = previous[error.path!].types;\n const messages = types && types[error.type!];\n\n previous[error.path!] = appendErrors(\n error.path!,\n validateAllFieldCriteria,\n previous,\n error.type!,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n return previous;\n },\n {},\n );\n}\n\n/**\n * Creates a resolver for react-hook-form using Yup schema validation\n * @param {Yup.ObjectSchema<TFieldValues> | ReturnType<typeof Yup.lazy<Yup.ObjectSchema<TFieldValues>>>} schema - Yup validation schema\n * @param {Parameters<(typeof schema)['validate']>[1]} schemaOptions - Options to pass to Yup's validate/validateSync\n * @param {Object} resolverOptions - Additional resolver configuration\n * @param {('async' | 'sync')} [resolverOptions.mode] - Validation mode\n * @param {boolean} [resolverOptions.raw] - If true, returns raw values instead of validated results\n * @returns {Resolver<Yup.InferType<typeof schema>>} A resolver function compatible with react-hook-form\n * @example\n * const schema = Yup.object({\n * name: Yup.string().required(),\n * age: Yup.number().required(),\n * });\n *\n * useForm({\n * resolver: yupResolver(schema)\n * });\n */\nexport function yupResolver<TFieldValues extends FieldValues>(\n schema:\n | Yup.ObjectSchema<TFieldValues>\n | ReturnType<typeof Yup.lazy<Yup.ObjectSchema<TFieldValues>>>,\n schemaOptions: Parameters<(typeof schema)['validate']>[1] = {},\n resolverOptions: {\n mode?: 'async' | 'sync';\n raw?: boolean;\n } = {},\n): Resolver<Yup.InferType<typeof schema>> {\n return async (values, context, options) => {\n try {\n if (schemaOptions.context && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n \"You should not used the yup options context. Please, use the 'useForm' context object instead\",\n );\n }\n\n const result = await schema[\n resolverOptions.mode === 'sync' ? 'validateSync' : 'validate'\n ](\n values,\n Object.assign({ abortEarly: false }, schemaOptions, { context }),\n );\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n values: resolverOptions.raw ? Object.assign({}, values) : result,\n errors: {},\n };\n } catch (e: any) {\n if (!e.inner) {\n throw e;\n }\n\n return {\n values: {},\n errors: toNestErrors(\n parseErrorSchema(\n e,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n}\n"],"mappings":"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","names":["yup","setCustomValidity","ref","fieldPath","errors","error","get","message","reportValidity","validateFieldsNatively","options","fields","field","refs","forEach","toNestErrors","shouldUseNativeValidation","fieldErrors","path","Object","assign","isNameInFieldArray","names","keys","fieldArrayErrors","set","name","escapeBrackets","some","n","match","input","replace","yupResolver","schema","schemaOptions","resolverOptions","values","context","options","Promise","resolve","process","env","NODE_ENV","console","warn","mode","Object","assign","abortEarly","then","result","shouldUseNativeValidation","validateFieldsNatively","raw","errors","e","r","u","_catch","inner","toNestErrors","error","validateAllFieldCriteria","criteriaMode","reduce","previous","path","message","type","types","messages","appendErrors","concat","reject","Fragment","useState","jsx","jsxs","fieldSchema","__name","schema","formSchema","WorkScheduleSelectionForm","defaultSchedule","onSubmit","openDialog","setOpenDialog","useState","transformedSchedule","DAYS_OF_THE_WEEK","day","existingSchedule","schedule","getShortWeekday","form","useForm","o","handleSubmit","watch","reset","control","formState","fields","useFieldArray","watchedSchedule","handleSubmitWorkingHours","data","checked","calculateHours","handleCancel","Dialog","DialogTrigger","Button","DialogContent","DialogHeader","DialogTitle","Form","field","index","currentDay","calculatedHours","Fragment","CheckBoxField","TextField","WorkScheduleFieldDefault","fieldData","defaultFormattedValue","currentSchedule","workHoursSummary","breakSummary","totalWorkHours"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as u}from"./chunk-TOA3JILU.js";import{d as a}from"./chunk-U7CW67TM.js";import{a as d}from"./chunk-EAV5VOMZ.js";import{b as m}from"./chunk-KQPDXXG3.js";import{a as n}from"./chunk-P37U34EQ.js";import{jsx as v}from"react/jsx-runtime";function R({onSubmit:c,onSuccess:p,onError:e,render:l,...o}){let{components:E}=m(),{contractorOnboardingBag:t}=u(),i=a(),{mutateAsync:f}=d(i),y=n(async()=>{try{if(await c?.(),t.employmentId){let r=await f({employment_id:t.employmentId});if(r.data){await p?.({data:r.data,employmentStatus:"invited"}),t.refetchEmployment();return}r.error&&e?.({error:r.error,rawError:r.rawError,fieldErrors:[]})}}catch(r){e?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit"),s=E?.button;if(!s)throw new Error("Button component not found");return v(s,{...o,disabled:i.isPending||o.disabled,onClick:r=>{y(),o.onClick?.(r)},children:l({employmentStatus:"invited"})})}n(R,"OnboardingInvite");export{R as a};
|
|
2
|
+
//# sourceMappingURL=chunk-GBU46SLB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/ContractorOnboarding/components/OnboardingInvite.tsx"],"sourcesContent":["import { ButtonHTMLAttributes, ReactNode } from 'react';\nimport { useEmploymentInvite } from '@/src/flows/Onboarding/api';\nimport { FieldError, mutationToPromise } from '@/src/lib/mutations';\nimport { SuccessResponse } from '@/src/client';\nimport { useFormFields } from '@/src/context';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\n\nexport type OnboardingInviteProps = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n 'onError'\n> & {\n onSuccess?: ({\n data,\n employmentStatus,\n }: {\n data: SuccessResponse;\n employmentStatus: 'invited';\n }) => void | Promise<void>;\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: FieldError[];\n }) => void;\n onSubmit?: () => void | Promise<void>;\n render: (props: { employmentStatus: 'invited' }) => ReactNode;\n} & Record<string, unknown>;\n\nexport function OnboardingInvite({\n onSubmit,\n onSuccess,\n onError,\n render,\n ...props\n}: OnboardingInviteProps) {\n const { components } = useFormFields();\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n const employmentInviteMutation = useEmploymentInvite();\n\n const { mutateAsync: employmentInviteMutationAsync } = mutationToPromise(\n employmentInviteMutation,\n );\n\n const handleSubmit = async () => {\n try {\n await onSubmit?.();\n if (contractorOnboardingBag.employmentId) {\n const response = await employmentInviteMutationAsync({\n employment_id: contractorOnboardingBag.employmentId,\n });\n if (response.data) {\n await onSuccess?.({\n data: response.data as SuccessResponse,\n employmentStatus: 'invited',\n });\n contractorOnboardingBag.refetchEmployment();\n return;\n }\n if (response.error) {\n onError?.({\n error: response.error,\n rawError: response.rawError,\n fieldErrors: [],\n });\n }\n }\n } catch (error: unknown) {\n onError?.({\n error: error as Error,\n rawError: error as Record<string, unknown>,\n fieldErrors: [],\n });\n }\n };\n\n const CustomButton = components?.button;\n if (!CustomButton) {\n throw new Error(`Button component not found`);\n }\n\n return (\n <CustomButton\n {...props}\n disabled={employmentInviteMutation.isPending || props.disabled}\n onClick={(evt) => {\n handleSubmit();\n props.onClick?.(evt);\n }}\n >\n {render({\n employmentStatus: 'invited',\n })}\n </CustomButton>\n );\n}\n"],"mappings":"wMAoFI,cAAAA,MAAA,oBArDG,SAASC,EAAiB,CAC/B,SAAAC,EACA,UAAAC,EACA,QAAAC,EACA,OAAAC,EACA,GAAGC,CACL,EAA0B,CACxB,GAAM,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAC/B,CAAE,wBAAAC,CAAwB,EAAIC,EAA+B,EAC7DC,EAA2BC,EAAoB,EAE/C,CAAE,YAAaC,CAA8B,EAAIC,EACrDH,CACF,EAEMI,EAAeC,EAAA,SAAY,CAC/B,GAAI,CAEF,GADA,MAAMd,IAAW,EACbO,EAAwB,aAAc,CACxC,IAAMQ,EAAW,MAAMJ,EAA8B,CACnD,cAAeJ,EAAwB,YACzC,CAAC,EACD,GAAIQ,EAAS,KAAM,CACjB,MAAMd,IAAY,CAChB,KAAMc,EAAS,KACf,iBAAkB,SACpB,CAAC,EACDR,EAAwB,kBAAkB,EAC1C,MACF,CACIQ,EAAS,OACXb,IAAU,CACR,MAAOa,EAAS,MAChB,SAAUA,EAAS,SACnB,YAAa,CAAC,CAChB,CAAC,CAEL,CACF,OAASC,EAAgB,CACvBd,IAAU,CACR,MAAOc,EACP,SAAUA,EACV,YAAa,CAAC,CAChB,CAAC,CACH,CACF,EA9BqB,gBAgCfC,EAAeZ,GAAY,OACjC,GAAI,CAACY,EACH,MAAM,IAAI,MAAM,4BAA4B,EAG9C,OACEnB,EAACmB,EAAA,CACE,GAAGb,EACJ,SAAUK,EAAyB,WAAaL,EAAM,SACtD,QAAUc,GAAQ,CAChBL,EAAa,EACbT,EAAM,UAAUc,CAAG,CACrB,EAEC,SAAAf,EAAO,CACN,iBAAkB,SACpB,CAAC,EACH,CAEJ,CAlEgBW,EAAAf,EAAA","names":["jsx","OnboardingInvite","onSubmit","onSuccess","onError","render","props","components","useFormFields","contractorOnboardingBag","useContractorOnboardingContext","employmentInviteMutation","useEmploymentInvite","employmentInviteMutationAsync","mutationToPromise","handleSubmit","__name","response","error","CustomButton","evt"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{i as c,j as i,k as n,l as _,m as F}from"./chunk-CR7AIZKA.js";import{a as d,b as S,c as p,d as u,e as g,f as b}from"./chunk-WXZ5B4PT.js";import{a as s}from"./chunk-P37U34EQ.js";import{jsx as e,jsxs as v}from"react/jsx-runtime";function R({field:t,fieldState:a,fieldData:C}){let{name:r,label:o,description:m,options:N}=C;return v(c,{"data-field":r,className:`RemoteFlows__SelectField__Item__${r}`,children:[e(i,{className:"RemoteFlows__SelectField__Label",children:o}),e(n,{children:e("div",{className:"relative",children:v(d,{value:t.value||"",onValueChange:l=>{t.onChange(l)},children:[e(u,{className:"RemoteFlows__SelectField__Trigger","aria-invalid":!!a.error,"aria-label":o,children:e("span",{className:"absolute",children:e(p,{placeholder:o})})}),e(g,{className:"RemoteFlows__SelectField__Content",children:e(S,{className:"RemoteFlows__SelectField__Group",children:N?.map(l=>e(b,{value:l.value,className:"RemoteFlows__SelectField__SelectItem",disabled:l.disabled,children:l.label},l.value))})})]})})}),m&&e(_,{children:m}),a.error&&e(F,{})]})}s(R,"SelectFieldDefault");export{R as a};
|
|
2
|
+
//# sourceMappingURL=chunk-GDEPTDOR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/form/fields/default/SelectFieldDefault.tsx"],"sourcesContent":["import {\n FormControl,\n FormDescription,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/src/components/ui/form';\nimport { FieldComponentProps } from '@/src/types/fields';\nimport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectItem,\n} from '@/src/components/ui/select';\n\nexport function SelectFieldDefault({\n field,\n fieldState,\n fieldData,\n}: FieldComponentProps) {\n const { name, label, description, options } = fieldData;\n\n return (\n <FormItem\n data-field={name}\n className={`RemoteFlows__SelectField__Item__${name}`}\n >\n <FormLabel className='RemoteFlows__SelectField__Label'>{label}</FormLabel>\n <FormControl>\n <div className='relative'>\n <Select\n value={field.value || ''}\n onValueChange={(value: string) => {\n field.onChange(value);\n }}\n >\n <SelectTrigger\n className='RemoteFlows__SelectField__Trigger'\n aria-invalid={Boolean(fieldState.error)}\n aria-label={label}\n >\n <span className='absolute'>\n <SelectValue placeholder={label} />\n </span>\n </SelectTrigger>\n <SelectContent className='RemoteFlows__SelectField__Content'>\n <SelectGroup className='RemoteFlows__SelectField__Group'>\n {options?.map((option) => (\n <SelectItem\n key={option.value}\n value={option.value}\n className='RemoteFlows__SelectField__SelectItem'\n disabled={option.disabled}\n >\n {option.label}\n </SelectItem>\n ))}\n </SelectGroup>\n </SelectContent>\n </Select>\n </div>\n </FormControl>\n {description && <FormDescription>{description}</FormDescription>}\n {fieldState.error && <FormMessage />}\n </FormItem>\n );\n}\n"],"mappings":"uLA6BM,cAAAA,EAGI,QAAAC,MAHJ,oBAZC,SAASC,EAAmB,CACjC,MAAAC,EACA,WAAAC,EACA,UAAAC,CACF,EAAwB,CACtB,GAAM,CAAE,KAAAC,EAAM,MAAAC,EAAO,YAAAC,EAAa,QAAAC,CAAQ,EAAIJ,EAE9C,OACEJ,EAACS,EAAA,CACC,aAAYJ,EACZ,UAAW,mCAAmCA,CAAI,GAElD,UAAAN,EAACW,EAAA,CAAU,UAAU,kCAAmC,SAAAJ,EAAM,EAC9DP,EAACY,EAAA,CACC,SAAAZ,EAAC,OAAI,UAAU,WACb,SAAAC,EAACY,EAAA,CACC,MAAOV,EAAM,OAAS,GACtB,cAAgBW,GAAkB,CAChCX,EAAM,SAASW,CAAK,CACtB,EAEA,UAAAd,EAACe,EAAA,CACC,UAAU,oCACV,eAAc,EAAQX,EAAW,MACjC,aAAYG,EAEZ,SAAAP,EAAC,QAAK,UAAU,WACd,SAAAA,EAACgB,EAAA,CAAY,YAAaT,EAAO,EACnC,EACF,EACAP,EAACiB,EAAA,CAAc,UAAU,oCACvB,SAAAjB,EAACkB,EAAA,CAAY,UAAU,kCACpB,SAAAT,GAAS,IAAKU,GACbnB,EAACoB,EAAA,CAEC,MAAOD,EAAO,MACd,UAAU,uCACV,SAAUA,EAAO,SAEhB,SAAAA,EAAO,OALHA,EAAO,KAMd,CACD,EACH,EACF,GACF,EACF,EACF,EACCX,GAAeR,EAACqB,EAAA,CAAiB,SAAAb,EAAY,EAC7CJ,EAAW,OAASJ,EAACsB,EAAA,EAAY,GACpC,CAEJ,CAnDgBC,EAAArB,EAAA","names":["jsx","jsxs","SelectFieldDefault","field","fieldState","fieldData","name","label","description","options","FormItem","FormLabel","FormControl","Select","value","SelectTrigger","SelectValue","SelectContent","SelectGroup","option","SelectItem","FormDescription","FormMessage","__name"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as r}from"./chunk-TOA3JILU.js";import{b as n}from"./chunk-KQPDXXG3.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as p}from"react/jsx-runtime";function l({children:e,onClick:i,...s}){let{contractorOnboardingBag:{back:u,isEmploymentReadOnly:c}}=r(),{components:a}=n(),m=o(d=>{c||u(),i?.(d)},"onBackHandler"),t=a?.button;if(!t)throw new Error("Button component not found");return p(t,{...s,onClick:m,children:e})}o(l,"OnboardingBack");export{l as a};
|
|
2
|
+
//# sourceMappingURL=chunk-GNPHI7PB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/ContractorOnboarding/components/OnboardingBack.tsx"],"sourcesContent":["import { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { useFormFields } from '@/src/context';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\n\ntype OnboardingBackProps = ButtonHTMLAttributes<HTMLButtonElement> &\n Record<string, unknown>;\n\nexport function OnboardingBack({\n children,\n onClick,\n ...props\n}: PropsWithChildren<OnboardingBackProps>) {\n const {\n contractorOnboardingBag: { back, isEmploymentReadOnly },\n } = useContractorOnboardingContext();\n\n const { components } = useFormFields();\n\n const onBackHandler = (evt: React.MouseEvent<HTMLButtonElement>) => {\n if (!isEmploymentReadOnly) {\n back();\n }\n onClick?.(evt);\n };\n\n const CustomButton = components?.button;\n if (!CustomButton) {\n throw new Error(`Button component not found`);\n }\n\n return (\n <CustomButton {...props} onClick={onBackHandler}>\n {children}\n </CustomButton>\n );\n}\n"],"mappings":"wHA+BI,cAAAA,MAAA,oBAxBG,SAASC,EAAe,CAC7B,SAAAC,EACA,QAAAC,EACA,GAAGC,CACL,EAA2C,CACzC,GAAM,CACJ,wBAAyB,CAAE,KAAAC,EAAM,qBAAAC,CAAqB,CACxD,EAAIC,EAA+B,EAE7B,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAE/BC,EAAgBC,EAACC,GAA6C,CAC7DN,GACHD,EAAK,EAEPF,IAAUS,CAAG,CACf,EALsB,iBAOhBC,EAAeL,GAAY,OACjC,GAAI,CAACK,EACH,MAAM,IAAI,MAAM,4BAA4B,EAG9C,OACEb,EAACa,EAAA,CAAc,GAAGT,EAAO,QAASM,EAC/B,SAAAR,EACH,CAEJ,CA5BgBS,EAAAV,EAAA","names":["jsx","OnboardingBack","children","onClick","props","back","isEmploymentReadOnly","useContractorOnboardingContext","components","useFormFields","onBackHandler","__name","evt","CustomButton"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as i}from"./chunk-TOA3JILU.js";import{b as r}from"./chunk-KQPDXXG3.js";import{a as n}from"./chunk-P37U34EQ.js";import{jsx as d}from"react/jsx-runtime";function f({children:u,...t}){let{formId:e,contractorOnboardingBag:m}=i(),{components:s}=r(),o=s?.button;if(!o)throw new Error("Button component not found");return d(o,{...t,form:e,disabled:t.disabled||m.isSubmitting,children:u})}n(f,"OnboardingSubmit");export{f as a};
|
|
2
|
+
//# sourceMappingURL=chunk-GPRN5IXM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/ContractorOnboarding/components/OnboardingSubmit.tsx"],"sourcesContent":["import { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { useFormFields } from '@/src/context';\n\nexport function OnboardingSubmit({\n children,\n ...props\n}: PropsWithChildren<\n ButtonHTMLAttributes<HTMLButtonElement> & Record<string, unknown>\n>) {\n const { formId, contractorOnboardingBag } = useContractorOnboardingContext();\n const { components } = useFormFields();\n\n const CustomButton = components?.button;\n if (!CustomButton) {\n throw new Error(`Button component not found`);\n }\n\n return (\n <CustomButton\n {...props}\n form={formId}\n disabled={props.disabled || contractorOnboardingBag.isSubmitting}\n >\n {children}\n </CustomButton>\n );\n}\n"],"mappings":"wHAmBI,cAAAA,MAAA,oBAfG,SAASC,EAAiB,CAC/B,SAAAC,EACA,GAAGC,CACL,EAEG,CACD,GAAM,CAAE,OAAAC,EAAQ,wBAAAC,CAAwB,EAAIC,EAA+B,EACrE,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAE/BC,EAAeF,GAAY,OACjC,GAAI,CAACE,EACH,MAAM,IAAI,MAAM,4BAA4B,EAG9C,OACET,EAACS,EAAA,CACE,GAAGN,EACJ,KAAMC,EACN,SAAUD,EAAM,UAAYE,EAAwB,aAEnD,SAAAH,EACH,CAEJ,CAvBgBQ,EAAAT,EAAA","names":["jsx","OnboardingSubmit","children","props","formId","contractorOnboardingBag","useContractorOnboardingContext","components","useFormFields","CustomButton","__name"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as u}from"./chunk-HNUWNTPD.js";import{i,j as a,k as c,l as p,m as F}from"./chunk-CR7AIZKA.js";import{a as n}from"./chunk-P37U34EQ.js";import{useEffect as O,useState as g}from"react";import{jsx as o,jsxs as D}from"react/jsx-runtime";var N=n(({field:t,fieldState:d,fieldData:_})=>{let[f,r]=g([]),{name:s,label:v,description:m,options:l}=_,C=f||l?.filter(e=>t.value?.includes(e.value));return O(()=>{r(l?.filter(e=>t.value?.includes(e.value))||[])},[t.value,l]),D(i,{"data-field":s,className:`RemoteFlows__SelectField__Item__${s}`,children:[o(a,{className:"RemoteFlows__SelectField__Label",children:v}),o(c,{children:o(u,{options:l||[],selected:C,onChange:e=>{let S=e.map(({value:b})=>b);t.onChange(S),r(e)}})}),m&&o(p,{children:m}),d.error&&o(F,{})]})},"MultiSelectFieldDefault");export{N as a};
|
|
2
|
+
//# sourceMappingURL=chunk-GWA5DDSK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/form/fields/default/MultiSelectFieldDefault.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport {\n FormControl,\n FormDescription,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/src/components/ui/form';\nimport { MultiSelect, Option } from '@/src/components/ui/multi-select';\nimport { FieldComponentProps } from '@/src/types/fields';\n\nexport const MultiSelectFieldDefault = ({\n field,\n fieldState,\n fieldData,\n}: FieldComponentProps) => {\n const [selected, setSelected] = useState<Option[]>([]);\n const { name, label, description, options } = fieldData;\n const selectedOptions =\n selected ||\n options?.filter((option) => field.value?.includes(option.value));\n\n useEffect(() => {\n setSelected(\n options?.filter((option) => field.value?.includes(option.value)) || [],\n );\n }, [field.value, options]);\n return (\n <FormItem\n data-field={name}\n className={`RemoteFlows__SelectField__Item__${name}`}\n >\n <FormLabel className='RemoteFlows__SelectField__Label'>{label}</FormLabel>\n <FormControl>\n <MultiSelect\n options={options || []}\n selected={selectedOptions}\n onChange={(rawValues: Option[]) => {\n const values = rawValues.map(({ value }) => value);\n field.onChange(values); // This triggers the wrapped onChange from MultiSelectField\n setSelected(rawValues);\n }}\n />\n </FormControl>\n {description && <FormDescription>{description}</FormDescription>}\n {fieldState.error && <FormMessage />}\n </FormItem>\n );\n};\n"],"mappings":"+IAAA,OAAS,aAAAA,EAAW,YAAAC,MAAgB,QA4BhC,OAIE,OAAAC,EAJF,QAAAC,MAAA,oBAjBG,IAAMC,EAA0BC,EAAA,CAAC,CACtC,MAAAC,EACA,WAAAC,EACA,UAAAC,CACF,IAA2B,CACzB,GAAM,CAACC,EAAUC,CAAW,EAAIC,EAAmB,CAAC,CAAC,EAC/C,CAAE,KAAAC,EAAM,MAAAC,EAAO,YAAAC,EAAa,QAAAC,CAAQ,EAAIP,EACxCQ,EACJP,GACAM,GAAS,OAAQE,GAAWX,EAAM,OAAO,SAASW,EAAO,KAAK,CAAC,EAEjE,OAAAC,EAAU,IAAM,CACdR,EACEK,GAAS,OAAQE,GAAWX,EAAM,OAAO,SAASW,EAAO,KAAK,CAAC,GAAK,CAAC,CACvE,CACF,EAAG,CAACX,EAAM,MAAOS,CAAO,CAAC,EAEvBZ,EAACgB,EAAA,CACC,aAAYP,EACZ,UAAW,mCAAmCA,CAAI,GAElD,UAAAV,EAACkB,EAAA,CAAU,UAAU,kCAAmC,SAAAP,EAAM,EAC9DX,EAACmB,EAAA,CACC,SAAAnB,EAACoB,EAAA,CACC,QAASP,GAAW,CAAC,EACrB,SAAUC,EACV,SAAWO,GAAwB,CACjC,IAAMC,EAASD,EAAU,IAAI,CAAC,CAAE,MAAAE,CAAM,IAAMA,CAAK,EACjDnB,EAAM,SAASkB,CAAM,EACrBd,EAAYa,CAAS,CACvB,EACF,EACF,EACCT,GAAeZ,EAACwB,EAAA,CAAiB,SAAAZ,EAAY,EAC7CP,EAAW,OAASL,EAACyB,EAAA,EAAY,GACpC,CAEJ,EArCuC","names":["useEffect","useState","jsx","jsxs","MultiSelectFieldDefault","__name","field","fieldState","fieldData","selected","setSelected","useState","name","label","description","options","selectedOptions","option","useEffect","FormItem","FormLabel","FormControl","MultiSelect","rawValues","values","value","FormDescription","FormMessage"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as x,c as y,d as k}from"./chunk-LLP55ZDN.js";import{b as h}from"./chunk-SHWM6RJC.js";import{b as C}from"./chunk-PJN2YJO4.js";import{a as m}from"./chunk-UQCSN47K.js";import{a as r}from"./chunk-P37U34EQ.js";import{Fragment as z,useState as G}from"react";import{Check as L,ChevronDownIcon as B,X as M}from"lucide-react";import{Command as i}from"cmdk";import{SearchIcon as H}from"lucide-react";import{jsx as d,jsxs as X}from"react/jsx-runtime";function b({className:t,...o}){return d(i,{"data-slot":"command",className:m("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",t),...o})}r(b,"Command");function P({className:t,...o}){return d(i.List,{"data-slot":"command-list",className:m("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",t),...o})}r(P,"CommandList");function _({...t}){return d(i.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...t})}r(_,"CommandEmpty");function w({className:t,...o}){return d(i.Group,{"data-slot":"command-group",className:m("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",t),...o})}r(w,"CommandGroup");function N({className:t,...o}){return d(i.Separator,{"data-slot":"command-separator",className:m("bg-border -mx-1 h-px",t),...o})}r(N,"CommandSeparator");function D({className:t,...o}){return d(i.Item,{"data-slot":"command-item",className:m("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...o})}r(D,"CommandItem");import{jsx as a,jsxs as s}from"react/jsx-runtime";function Z({options:t,selected:o,onChange:u,placeholder:S,...I}){let[g,R]=G(!1),f=r(e=>{u(o.filter(n=>n.value!==e.value))},"handleUnselect"),O=t.some(e=>e.category),E=t.reduce((e,n)=>{let p=n.category||"Uncategorized";return e[p]||(e[p]=[]),e[p].push(n),e},{});return s(x,{open:g,onOpenChange:R,...I,children:[a(y,{children:s(C,{variant:"outline",role:"combobox","aria-expanded":g,className:"w-full justify-between font-normal",type:"button",children:[a("div",{className:"flex gap-1 flex-wrap overflow-x-auto max-h-[2.5rem] items-center",children:o.length>0?o.map(e=>s(h,{variant:"secondary",className:"mr-1 mb-1",children:[e.label,a("div",{role:"button",tabIndex:0,"aria-label":`remove ${e.label}`,className:"ml-1 ring-offset-background rounded-full outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 cursor-pointer",onKeyDown:n=>{n.key==="Enter"&&f(e)},onMouseDown:n=>{n.preventDefault(),n.stopPropagation()},onClick:()=>f(e),children:a(M,{className:"h-3 w-3 text-muted-foreground hover:text-foreground"})})]},e.label)):a("span",{className:"text-foreground",children:S})}),a(B,{className:"size-4"})]})}),a(k,{align:"start",className:"w-full p-0",children:a(b,{children:s(P,{children:[a(_,{children:"No item found."}),Object.entries(E).map(([e,n],p)=>s(z,{children:[p>0&&a(N,{}),a(w,{heading:O?e:void 0,children:n.map(l=>{let v=o.some(c=>c.value===l.value);return s(D,{onSelect:()=>{u(v?o.filter(c=>c.value!==l.value):[...o,l])},children:[a(L,{className:m("mr-2 h-4 w-4",v?"opacity-100":"opacity-0")}),l.label]},l.label)})})]},e))]})})})]})}r(Z,"MultiSelect");export{Z as a};
|
|
2
|
+
//# sourceMappingURL=chunk-HNUWNTPD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/multi-select.tsx","../src/components/ui/command.tsx"],"sourcesContent":["import { Fragment, useState } from 'react';\nimport { Check, ChevronDownIcon, X } from 'lucide-react';\n\nimport { Button } from '@/src/components/ui/button';\nimport { Badge } from '@/src/components/ui/badge';\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandList,\n CommandSeparator,\n} from '@/src/components/ui/command';\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from '@/src/components/ui/popover';\nimport { cn } from '@/src/lib/utils';\n\nexport type Option = {\n label: string;\n value: string | string[];\n category?: string;\n};\n\ninterface MultiSelectProps {\n options: Option[];\n selected: Option[];\n onChange: (options: Option[]) => void;\n placeholder?: string;\n}\n\nexport function MultiSelect({\n options,\n selected,\n onChange,\n placeholder,\n ...props\n}: MultiSelectProps) {\n const [open, setOpen] = useState(false);\n const handleUnselect = (option: Option) => {\n onChange(selected.filter((item) => item.value !== option.value));\n };\n\n const hasCategories = options.some((option) => option.category);\n\n const groupedOptions = options.reduce(\n (groups, option) => {\n const category = option.category || 'Uncategorized';\n if (!groups[category]) {\n groups[category] = [];\n }\n groups[category].push(option);\n return groups;\n },\n {} as Record<string, Option[]>,\n );\n\n return (\n <Popover open={open} onOpenChange={setOpen} {...props}>\n <PopoverTrigger>\n <Button\n variant='outline'\n role='combobox'\n aria-expanded={open}\n className='w-full justify-between font-normal'\n type='button'\n >\n <div className='flex gap-1 flex-wrap overflow-x-auto max-h-[2.5rem] items-center'>\n {selected.length > 0 ? (\n selected.map((option) => {\n return (\n <Badge\n key={option.label}\n variant='secondary'\n className='mr-1 mb-1'\n >\n {option.label}\n <div\n role='button'\n tabIndex={0}\n aria-label={`remove ${option.label}`}\n className='ml-1 ring-offset-background rounded-full outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 cursor-pointer'\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n handleUnselect(option);\n }\n }}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onClick={() => handleUnselect(option)}\n >\n <X className='h-3 w-3 text-muted-foreground hover:text-foreground' />\n </div>\n </Badge>\n );\n })\n ) : (\n <span className='text-foreground'>{placeholder}</span>\n )}\n </div>\n <ChevronDownIcon className='size-4' />\n </Button>\n </PopoverTrigger>\n <PopoverContent align='start' className='w-full p-0'>\n <Command>\n <CommandList>\n <CommandEmpty>No item found.</CommandEmpty>\n {Object.entries(groupedOptions).map(\n ([category, categoryOptions], index) => (\n <Fragment key={category}>\n {index > 0 && <CommandSeparator />}\n <CommandGroup heading={hasCategories ? category : undefined}>\n {categoryOptions.map((option) => {\n const isSelected = selected.some(\n (item) => item.value === option.value,\n );\n return (\n <CommandItem\n key={option.label}\n onSelect={() => {\n onChange(\n isSelected\n ? selected.filter(\n (item) => item.value !== option.value,\n )\n : [...selected, option],\n );\n }}\n >\n <Check\n className={cn(\n 'mr-2 h-4 w-4',\n isSelected ? 'opacity-100' : 'opacity-0',\n )}\n />\n {option.label}\n </CommandItem>\n );\n })}\n </CommandGroup>\n </Fragment>\n ),\n )}\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n );\n}\n","import * as React from 'react';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { SearchIcon } from 'lucide-react';\n\nimport { cn } from '@/src/lib/utils';\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from '@/src/components/ui/dialog';\n\nfunction Command({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot='command'\n className={cn(\n 'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CommandDialog({\n title = 'Command Palette',\n description = 'Search for a command to run...',\n children,\n ...props\n}: React.ComponentProps<typeof Dialog> & {\n title?: string;\n description?: string;\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className='sr-only'>\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent className='overflow-hidden p-0'>\n <Command className='[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5'>\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n}\n\nfunction CommandInput({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div\n data-slot='command-input-wrapper'\n className='flex h-9 items-center gap-2 border-b px-3'\n >\n <SearchIcon className='size-4 shrink-0 opacity-50' />\n <CommandPrimitive.Input\n data-slot='command-input'\n className={cn(\n 'placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n </div>\n );\n}\n\nfunction CommandList({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot='command-list'\n className={cn(\n 'max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CommandEmpty({\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n data-slot='command-empty'\n className='py-6 text-center text-sm'\n {...props}\n />\n );\n}\n\nfunction CommandGroup({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n data-slot='command-group'\n className={cn(\n 'text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CommandSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot='command-separator'\n className={cn('bg-border -mx-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction CommandItem({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot='command-item'\n className={cn(\n \"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CommandShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot='command-shortcut'\n className={cn(\n 'text-muted-foreground ml-auto text-xs tracking-widest',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n"],"mappings":"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","names":["Fragment","useState","Check","ChevronDownIcon","X","CommandPrimitive","SearchIcon","jsx","jsxs","Command","className","props","CommandPrimitive","cn","__name","CommandList","className","props","jsx","CommandPrimitive","cn","__name","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","jsx","jsxs","MultiSelect","options","selected","onChange","placeholder","props","open","setOpen","useState","handleUnselect","__name","option","item","hasCategories","groupedOptions","groups","category","Popover","PopoverTrigger","Button","Badge","e","X","ChevronDownIcon","PopoverContent","Command","CommandList","CommandEmpty","categoryOptions","index","Fragment","CommandSeparator","CommandGroup","isSelected","CommandItem","Check","cn"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as m}from"./chunk-5CXPVPOG.js";import{a as r}from"./chunk-YRFNEKBE.js";import{a}from"./chunk-U6LRMWRI.js";import{a as c}from"./chunk-6ARN2SX2.js";import{a as e}from"./chunk-D5AR26AI.js";import{a as o}from"./chunk-TVZAFTPT.js";import{a as n}from"./chunk-P37U34EQ.js";import{useId as f}from"react";import{jsx as s}from"react/jsx-runtime";function k({employmentId:d,countryCode:C,options:p,render:A}){let t=c({employmentId:d,countryCode:C,options:p}),i=f();return s(o.Provider,{value:{formId:i,contractAmendmentBag:t},children:A({contractAmendmentBag:t,components:{Form:r,SubmitButton:a,ConfirmationForm:m,BackButton:e}})})}n(k,"ContractAmendmentFlow");export{k as a};
|
|
2
|
+
//# sourceMappingURL=chunk-IGLBEWVV.js.map
|