@remoteoss/remote-flows 1.46.0 → 1.47.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (449) hide show
  1. package/dist/CheckboxFieldDefault-ASWSMSJD.js +2 -0
  2. package/dist/CountryFieldDefault-JNRZX632.js +2 -0
  3. package/dist/DatePickerFieldDefault-ARSIRGKX.js +2 -0
  4. package/dist/FileUploadFieldDefault-CFK64E3M.js +2 -0
  5. package/dist/ForcedValueFieldDefault-IB7EX73O.js +2 -0
  6. package/dist/MultiSelectFieldDefault-HP5FIBJY.js +2 -0
  7. package/dist/RadioGroupFieldDefault-DRF3H2ZB.js +2 -0
  8. package/dist/SelectFieldDefault-ANJ24D2G.js +2 -0
  9. package/dist/TelFieldDefault-ZKHU4DKH.js +2 -0
  10. package/dist/TextAreaFieldDefault-JICC77TL.js +2 -0
  11. package/dist/TextFieldDefault-RJSD2YDR.js +2 -0
  12. package/dist/TimeFieldDefault-3SO5KXVJ.js +2 -0
  13. package/dist/TimeFieldDefault-3SO5KXVJ.js.map +1 -0
  14. package/dist/{chunk-KF54ACZP.js → chunk-2BYDZSR5.js} +2 -2
  15. package/dist/{chunk-IMCNVNKF.js → chunk-2DRF5M3J.js} +2 -2
  16. package/dist/{chunk-SY7QZIKZ.js → chunk-2EM7DTD6.js} +2 -2
  17. package/dist/{chunk-T3IHAH3B.js → chunk-2NWQ32VQ.js} +2 -2
  18. package/dist/{chunk-GYYQWPA6.js → chunk-2W7O4FMW.js} +2 -2
  19. package/dist/{chunk-VYLSS2C7.js → chunk-37CRJPVL.js} +2 -2
  20. package/dist/{chunk-VMXDQYTT.js → chunk-4AJD5YEN.js} +2 -2
  21. package/dist/{chunk-JJK6BFGN.js → chunk-4EZST3RL.js} +2 -2
  22. package/dist/{chunk-AW436CZP.js → chunk-5EWUWRPW.js} +2 -2
  23. package/dist/{chunk-EOSJHL6M.js → chunk-62VYULBI.js} +2 -2
  24. package/dist/{chunk-AVK2P75W.js → chunk-6FWHB4ET.js} +2 -2
  25. package/dist/{chunk-KZWB4FMM.js → chunk-6PDBJULN.js} +2 -2
  26. package/dist/{chunk-7UFIQ64V.js → chunk-73ALSVRF.js} +2 -2
  27. package/dist/chunk-75HIK6IG.js +2 -0
  28. package/dist/chunk-75HIK6IG.js.map +1 -0
  29. package/dist/{chunk-6JTUAJBZ.js → chunk-75ZSFK7I.js} +2 -2
  30. package/dist/{chunk-74A4TMTF.js → chunk-7FBX3RI4.js} +2 -2
  31. package/dist/{chunk-5N5B5AU2.js → chunk-A75HEHRS.js} +2 -2
  32. package/dist/{chunk-JPVSXGCC.js → chunk-AAOU5HS2.js} +2 -2
  33. package/dist/{chunk-BHKAKCV4.js → chunk-AES7DMIQ.js} +2 -2
  34. package/dist/{chunk-2EGFPBT7.js → chunk-ATRYDXM2.js} +2 -2
  35. package/dist/{chunk-LGSOTN4M.js → chunk-BGEDMAHU.js} +2 -2
  36. package/dist/{chunk-HTVGC4KT.js → chunk-BQDYFFER.js} +2 -2
  37. package/dist/{chunk-ZF3CYWGQ.js → chunk-C6AWXQ67.js} +2 -2
  38. package/dist/{chunk-BZA2XA4Q.js → chunk-C6I7R7ZH.js} +2 -2
  39. package/dist/{chunk-PMIGYQEX.js → chunk-CD2QYFEH.js} +2 -2
  40. package/dist/{chunk-UYTYZVQM.js → chunk-CNXDC3M7.js} +2 -2
  41. package/dist/{chunk-O3Y4DVNY.js → chunk-CT7POXIP.js} +2 -2
  42. package/dist/{chunk-B6YPSCBC.js → chunk-CZU4U3LY.js} +2 -2
  43. package/dist/{chunk-JXH42V2F.js → chunk-DGHXBSBS.js} +2 -2
  44. package/dist/{chunk-Y4X4BMDD.js → chunk-DLCEEROX.js} +2 -2
  45. package/dist/{chunk-QHSIUKH6.js → chunk-DO352QQL.js} +2 -2
  46. package/dist/{chunk-3OJAX7QH.js → chunk-DSUJKXRQ.js} +2 -2
  47. package/dist/{chunk-3OJAX7QH.js.map → chunk-DSUJKXRQ.js.map} +1 -1
  48. package/dist/{chunk-V6I7LW47.js → chunk-DWJGC5YG.js} +2 -2
  49. package/dist/{chunk-AHIJ7DGJ.js → chunk-E5MKB67X.js} +2 -2
  50. package/dist/{chunk-XDRJTAFV.js → chunk-EGIXB43W.js} +2 -2
  51. package/dist/{chunk-RN3WPVBZ.js → chunk-EHAAVSJM.js} +2 -2
  52. package/dist/{chunk-WJAGRH76.js → chunk-ELXRJXQZ.js} +2 -2
  53. package/dist/{chunk-64OGJGKN.js → chunk-FHDMPQNW.js} +2 -2
  54. package/dist/{chunk-4FV6Z3HE.js → chunk-FPV6S2OQ.js} +2 -2
  55. package/dist/{chunk-GJ2AOENT.js → chunk-H3JAWJOE.js} +2 -2
  56. package/dist/chunk-HDOEUCXY.js +2 -0
  57. package/dist/chunk-HDOEUCXY.js.map +1 -0
  58. package/dist/{chunk-BZ4VPC4U.js → chunk-HLLM7OZN.js} +2 -2
  59. package/dist/{chunk-XVZQBTB3.js → chunk-HOEP5XXW.js} +2 -2
  60. package/dist/{chunk-VADVEBNE.js → chunk-I5L5SRSG.js} +2 -2
  61. package/dist/{chunk-BVKOMSHU.js → chunk-IN6QZASY.js} +2 -2
  62. package/dist/{chunk-OUFFAMO5.js → chunk-IQZ63FQX.js} +2 -2
  63. package/dist/{chunk-7EFZVAWU.js → chunk-IUJRGT3T.js} +2 -2
  64. package/dist/chunk-JNXNTCPZ.js +2 -0
  65. package/dist/chunk-JNXNTCPZ.js.map +1 -0
  66. package/dist/{chunk-STFOY2NW.js → chunk-KCE6IU5X.js} +2 -2
  67. package/dist/{chunk-R2S73YZ5.js → chunk-KLBFDP5I.js} +2 -2
  68. package/dist/{chunk-FXVHH75C.js → chunk-KR7PDSUA.js} +2 -2
  69. package/dist/{chunk-DZ3A4POL.js → chunk-KTOVE7ZS.js} +2 -2
  70. package/dist/{chunk-YYWBJW65.js → chunk-KV2B2CRW.js} +2 -2
  71. package/dist/{chunk-FIFM55V3.js → chunk-LT5KIEQH.js} +2 -2
  72. package/dist/{chunk-VDXTVUFY.js → chunk-LUADE5XK.js} +2 -2
  73. package/dist/chunk-LVZ5DNTO.js +2 -0
  74. package/dist/chunk-LVZ5DNTO.js.map +1 -0
  75. package/dist/{chunk-GWQJKZ3M.js → chunk-LZM3BNK3.js} +2 -2
  76. package/dist/{chunk-SUONIYV5.js → chunk-MJ6Z7ARR.js} +2 -2
  77. package/dist/{chunk-A6KORIJF.js → chunk-MJZCTG7C.js} +2 -2
  78. package/dist/{chunk-3O7L6JUX.js → chunk-MREG2JYT.js} +2 -2
  79. package/dist/{chunk-HULIBLYP.js → chunk-MW5JVH3X.js} +2 -2
  80. package/dist/{chunk-3OTZWYVQ.js → chunk-NGV62VYV.js} +2 -2
  81. package/dist/{chunk-CUM2NKZ4.js → chunk-NOQWN76W.js} +2 -2
  82. package/dist/chunk-NRH6RION.js +2 -0
  83. package/dist/{chunk-75N7DFXJ.js.map → chunk-NRH6RION.js.map} +1 -1
  84. package/dist/{chunk-2QQZODFC.js → chunk-O4MWPCG5.js} +2 -2
  85. package/dist/{chunk-TMS5VMVV.js → chunk-OEPT3ASY.js} +2 -2
  86. package/dist/{chunk-UHFNNG5S.js → chunk-OEQXIWJJ.js} +2 -2
  87. package/dist/{chunk-2CGPCBQY.js → chunk-OGRQ3NTD.js} +2 -2
  88. package/dist/{chunk-FFFB5CG2.js → chunk-OHNH7V7X.js} +2 -2
  89. package/dist/{chunk-RBUSLLAQ.js → chunk-ORXD3SB2.js} +2 -2
  90. package/dist/{chunk-6AZKF6RW.js → chunk-P32JWGIE.js} +2 -2
  91. package/dist/{chunk-G2DAXZPD.js → chunk-PXBJVZ6I.js} +2 -2
  92. package/dist/{chunk-R36IOANR.js → chunk-QVULYOKK.js} +2 -2
  93. package/dist/{chunk-J7I4WJ4G.js → chunk-QXXVWOOB.js} +2 -2
  94. package/dist/{chunk-65G3JQ7T.js → chunk-QZZJE6P7.js} +2 -2
  95. package/dist/{chunk-MZN6VY5F.js → chunk-RKXF7Q7V.js} +2 -2
  96. package/dist/{chunk-2FIBHHT7.js → chunk-RT7MYFKW.js} +2 -2
  97. package/dist/{chunk-6SNWSCXH.js → chunk-ULCAT6MG.js} +2 -2
  98. package/dist/chunk-UWSG45OM.js +2 -0
  99. package/dist/chunk-UWSG45OM.js.map +1 -0
  100. package/dist/{chunk-TUAL6X2E.js → chunk-VMRTLZQL.js} +2 -2
  101. package/dist/{chunk-2GAKAYG7.js → chunk-VUKUBHHU.js} +2 -2
  102. package/dist/{chunk-INUCPQVI.js → chunk-WDO7XH6B.js} +2 -2
  103. package/dist/{chunk-TVTJS3PE.js → chunk-WE2AFK6Y.js} +2 -2
  104. package/dist/{chunk-LD633A5N.js → chunk-WI4YITIC.js} +2 -2
  105. package/dist/{chunk-WKT6B3XE.js → chunk-WJ7BE4TU.js} +2 -2
  106. package/dist/{chunk-YLU7JBHT.js → chunk-WOARN6WG.js} +2 -2
  107. package/dist/{chunk-6PP3Y63Z.js → chunk-WQS5JWRA.js} +2 -2
  108. package/dist/{chunk-LBMHLNKS.js → chunk-WXLKMK53.js} +2 -2
  109. package/dist/{chunk-HWBEYYJO.js → chunk-XDPAVB5E.js} +2 -2
  110. package/dist/{chunk-XPITUVQE.js → chunk-XI55YG73.js} +2 -2
  111. package/dist/{chunk-XPITUVQE.js.map → chunk-XI55YG73.js.map} +1 -1
  112. package/dist/{chunk-NI4K773A.js → chunk-XI5G4SGA.js} +2 -2
  113. package/dist/{chunk-U7MAWO3U.js → chunk-Y62UA5CG.js} +2 -2
  114. package/dist/{chunk-NGCNYQSC.js → chunk-Y7PBPPUC.js} +2 -2
  115. package/dist/{chunk-EFIPOWDJ.js → chunk-ZF46HCMZ.js} +2 -2
  116. package/dist/{chunk-C4NBYBED.js → chunk-ZG2AYULT.js} +2 -2
  117. package/dist/default-components.d.ts +1 -1
  118. package/dist/default-components.js +1 -1
  119. package/dist/default-components.js.map +1 -1
  120. package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +2 -2
  121. package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
  122. package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
  123. package/dist/flows/ContractAmendment/context.d.ts +2 -2
  124. package/dist/flows/ContractAmendment/hooks.d.ts +2 -2
  125. package/dist/flows/ContractAmendment/hooks.js +1 -1
  126. package/dist/flows/ContractAmendment/index.d.ts +2 -2
  127. package/dist/flows/ContractAmendment/index.js +1 -1
  128. package/dist/flows/ContractAmendment/types.d.ts +2 -2
  129. package/dist/flows/ContractAmendment/utils.d.ts +1 -1
  130. package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +4 -4
  131. package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
  132. package/dist/flows/ContractorOnboarding/api.d.ts +2 -2
  133. package/dist/flows/ContractorOnboarding/api.js +1 -1
  134. package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +3 -3
  135. package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
  136. package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +4 -4
  137. package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
  138. package/dist/flows/ContractorOnboarding/components/ContractOriginStep.d.ts +2 -2
  139. package/dist/flows/ContractorOnboarding/components/ContractOriginStep.js +1 -1
  140. package/dist/flows/ContractorOnboarding/components/ContractPreviewHeader.d.ts +1 -1
  141. package/dist/flows/ContractorOnboarding/components/ContractPreviewStatement.d.ts +1 -1
  142. package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +4 -4
  143. package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
  144. package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +4 -4
  145. package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
  146. package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.d.ts +4 -4
  147. package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.js +1 -1
  148. package/dist/flows/ContractorOnboarding/components/OnboardingInvite.d.ts +2 -2
  149. package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js +1 -1
  150. package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +4 -4
  151. package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
  152. package/dist/flows/ContractorOnboarding/components/SaveDraftButton.d.ts +2 -2
  153. package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +3 -3
  154. package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
  155. package/dist/flows/ContractorOnboarding/context.d.ts +4 -4
  156. package/dist/flows/ContractorOnboarding/hooks.d.ts +4 -4
  157. package/dist/flows/ContractorOnboarding/hooks.js +1 -1
  158. package/dist/flows/ContractorOnboarding/index.d.ts +4 -4
  159. package/dist/flows/ContractorOnboarding/index.js +1 -1
  160. package/dist/flows/ContractorOnboarding/jsfModify.d.ts +4 -4
  161. package/dist/flows/ContractorOnboarding/jsfModify.js +1 -1
  162. package/dist/flows/ContractorOnboarding/types.d.ts +4 -4
  163. package/dist/flows/ContractorOnboarding/utils.d.ts +3 -3
  164. package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +2 -2
  165. package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
  166. package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +2 -2
  167. package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
  168. package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +2 -2
  169. package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
  170. package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +2 -2
  171. package/dist/flows/CostCalculator/api.d.ts +2 -2
  172. package/dist/flows/CostCalculator/api.js +1 -1
  173. package/dist/flows/CostCalculator/components/SalaryField.d.ts +1 -1
  174. package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
  175. package/dist/flows/CostCalculator/context.d.ts +2 -2
  176. package/dist/flows/CostCalculator/hooks.d.ts +2 -2
  177. package/dist/flows/CostCalculator/hooks.js +1 -1
  178. package/dist/flows/CostCalculator/index.d.ts +2 -2
  179. package/dist/flows/CostCalculator/index.js +1 -1
  180. package/dist/flows/CostCalculator/types.d.ts +2 -2
  181. package/dist/flows/CostCalculator/utils.d.ts +2 -2
  182. package/dist/flows/CostCalculator/utils.js +1 -1
  183. package/dist/flows/CreateCompany/CreateCompany.d.ts +3 -3
  184. package/dist/flows/CreateCompany/CreateCompany.js +1 -1
  185. package/dist/flows/CreateCompany/api.d.ts +2 -2
  186. package/dist/flows/CreateCompany/api.js +1 -1
  187. package/dist/flows/CreateCompany/components/AddressDetailsStep.d.ts +3 -3
  188. package/dist/flows/CreateCompany/components/AddressDetailsStep.js +1 -1
  189. package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.d.ts +3 -3
  190. package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.js +1 -1
  191. package/dist/flows/CreateCompany/components/CreateCompanyForm.d.ts +1 -1
  192. package/dist/flows/CreateCompany/components/CreateCompanyForm.js +1 -1
  193. package/dist/flows/CreateCompany/context.d.ts +3 -3
  194. package/dist/flows/CreateCompany/hooks.d.ts +3 -3
  195. package/dist/flows/CreateCompany/hooks.js +1 -1
  196. package/dist/flows/CreateCompany/index.d.ts +3 -3
  197. package/dist/flows/CreateCompany/index.js +1 -1
  198. package/dist/flows/CreateCompany/types.d.ts +3 -3
  199. package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundFlow.d.ts +2 -2
  200. package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundFlow.js +1 -1
  201. package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundForm.d.ts +1 -1
  202. package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundForm.js +1 -1
  203. package/dist/flows/JsonSchemaPlayground/context.d.ts +2 -2
  204. package/dist/flows/JsonSchemaPlayground/hooks.d.ts +2 -2
  205. package/dist/flows/JsonSchemaPlayground/index.d.ts +2 -2
  206. package/dist/flows/JsonSchemaPlayground/index.js +1 -1
  207. package/dist/flows/JsonSchemaPlayground/types.d.ts +2 -2
  208. package/dist/flows/Onboarding/OnboardingFlow.d.ts +3 -3
  209. package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
  210. package/dist/flows/Onboarding/api.d.ts +3 -3
  211. package/dist/flows/Onboarding/api.js +1 -1
  212. package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +1 -1
  213. package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
  214. package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +3 -3
  215. package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
  216. package/dist/flows/Onboarding/components/BenefitsStep.d.ts +3 -3
  217. package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
  218. package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +3 -3
  219. package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
  220. package/dist/flows/Onboarding/components/EmploymentAgreementInfoContent.js +1 -1
  221. package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.d.ts +3 -3
  222. package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.js +1 -1
  223. package/dist/flows/Onboarding/components/OnboardingForm.d.ts +3 -3
  224. package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
  225. package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +2 -2
  226. package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
  227. package/dist/flows/Onboarding/components/PreOnboardingRequirements.d.ts +3 -3
  228. package/dist/flows/Onboarding/components/PreOnboardingRequirements.js +1 -1
  229. package/dist/flows/Onboarding/components/PreviewEmploymentAgreementStep.js +1 -1
  230. package/dist/flows/Onboarding/components/ReviewStep.d.ts +3 -3
  231. package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +2 -2
  232. package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +3 -3
  233. package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
  234. package/dist/flows/Onboarding/context.d.ts +4 -4
  235. package/dist/flows/Onboarding/hooks.d.ts +3 -3
  236. package/dist/flows/Onboarding/hooks.js +1 -1
  237. package/dist/flows/Onboarding/index.d.ts +3 -3
  238. package/dist/flows/Onboarding/index.js +1 -1
  239. package/dist/flows/Onboarding/types.d.ts +3 -3
  240. package/dist/flows/Onboarding/utils.d.ts +3 -3
  241. package/dist/flows/Onboarding/utils.js +1 -1
  242. package/dist/flows/PayrollAdminOnboarding/PayrollAdminOnboardingFlow.d.ts +3 -3
  243. package/dist/flows/PayrollAdminOnboarding/PayrollAdminOnboardingFlow.js +1 -1
  244. package/dist/flows/PayrollAdminOnboarding/api.d.ts +1 -1
  245. package/dist/flows/PayrollAdminOnboarding/api.js +1 -1
  246. package/dist/flows/PayrollAdminOnboarding/components/AdministrativeDetailsStep.d.ts +2 -2
  247. package/dist/flows/PayrollAdminOnboarding/components/AdministrativeDetailsStep.js +1 -1
  248. package/dist/flows/PayrollAdminOnboarding/components/ContractDetailsStep.d.ts +2 -2
  249. package/dist/flows/PayrollAdminOnboarding/components/ContractDetailsStep.js +1 -1
  250. package/dist/flows/PayrollAdminOnboarding/components/InvitationStep.d.ts +2 -2
  251. package/dist/flows/PayrollAdminOnboarding/components/InvitationStep.js +1 -1
  252. package/dist/flows/PayrollAdminOnboarding/components/PayrollAdminForm.d.ts +1 -1
  253. package/dist/flows/PayrollAdminOnboarding/components/PayrollAdminForm.js +1 -1
  254. package/dist/flows/PayrollAdminOnboarding/components/SelectCountryStep.d.ts +2 -2
  255. package/dist/flows/PayrollAdminOnboarding/components/SelectCountryStep.js +1 -1
  256. package/dist/flows/PayrollAdminOnboarding/components/useStepSubmitHandler.d.ts +2 -2
  257. package/dist/flows/PayrollAdminOnboarding/context.d.ts +3 -3
  258. package/dist/flows/PayrollAdminOnboarding/hooks.d.ts +3 -3
  259. package/dist/flows/PayrollAdminOnboarding/hooks.js +1 -1
  260. package/dist/flows/PayrollAdminOnboarding/index.d.ts +3 -3
  261. package/dist/flows/PayrollAdminOnboarding/index.js +1 -1
  262. package/dist/flows/PayrollAdminOnboarding/types.d.ts +3 -3
  263. package/dist/flows/PayrollEmployeeOnboarding/PayrollEmployeeOnboardingFlow.d.ts +3 -3
  264. package/dist/flows/PayrollEmployeeOnboarding/PayrollEmployeeOnboardingFlow.js +1 -1
  265. package/dist/flows/PayrollEmployeeOnboarding/api.d.ts +2 -2
  266. package/dist/flows/PayrollEmployeeOnboarding/api.js +1 -1
  267. package/dist/flows/PayrollEmployeeOnboarding/components/BankAccountStep.d.ts +2 -2
  268. package/dist/flows/PayrollEmployeeOnboarding/components/BankAccountStep.js +1 -1
  269. package/dist/flows/PayrollEmployeeOnboarding/components/FederalTaxesStep.d.ts +2 -2
  270. package/dist/flows/PayrollEmployeeOnboarding/components/FederalTaxesStep.js +1 -1
  271. package/dist/flows/PayrollEmployeeOnboarding/components/HomeAddressStep.d.ts +2 -2
  272. package/dist/flows/PayrollEmployeeOnboarding/components/HomeAddressStep.js +1 -1
  273. package/dist/flows/PayrollEmployeeOnboarding/components/PayrollEmployeeForm.d.ts +1 -1
  274. package/dist/flows/PayrollEmployeeOnboarding/components/PayrollEmployeeForm.js +1 -1
  275. package/dist/flows/PayrollEmployeeOnboarding/components/PersonalDetailsStep.d.ts +2 -2
  276. package/dist/flows/PayrollEmployeeOnboarding/components/PersonalDetailsStep.js +1 -1
  277. package/dist/flows/PayrollEmployeeOnboarding/components/StateTaxesStep.d.ts +2 -2
  278. package/dist/flows/PayrollEmployeeOnboarding/components/StateTaxesStep.js +1 -1
  279. package/dist/flows/PayrollEmployeeOnboarding/components/useEmployeeStepSubmitHandler.d.ts +2 -2
  280. package/dist/flows/PayrollEmployeeOnboarding/context.d.ts +3 -3
  281. package/dist/flows/PayrollEmployeeOnboarding/hooks.d.ts +3 -3
  282. package/dist/flows/PayrollEmployeeOnboarding/hooks.js +1 -1
  283. package/dist/flows/PayrollEmployeeOnboarding/index.d.ts +3 -3
  284. package/dist/flows/PayrollEmployeeOnboarding/index.js +1 -1
  285. package/dist/flows/PayrollEmployeeOnboarding/types.d.ts +3 -3
  286. package/dist/flows/Termination/AdditionalDetailsForm.d.ts +3 -3
  287. package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
  288. package/dist/flows/Termination/EmployeeComunicationForm.d.ts +3 -3
  289. package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
  290. package/dist/flows/Termination/PaidTimeOffForm.d.ts +3 -3
  291. package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
  292. package/dist/flows/Termination/TerminationDetailsForm.d.ts +3 -3
  293. package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
  294. package/dist/flows/Termination/TerminationFlow.d.ts +3 -3
  295. package/dist/flows/Termination/TerminationFlow.js +1 -1
  296. package/dist/flows/Termination/TerminationForm.d.ts +3 -3
  297. package/dist/flows/Termination/TerminationForm.js +1 -1
  298. package/dist/flows/Termination/api.d.ts +4 -4
  299. package/dist/flows/Termination/api.js +1 -1
  300. package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformationFees.js +1 -1
  301. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +4 -4
  302. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +4 -4
  303. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
  304. package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +4 -4
  305. package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +1 -1
  306. package/dist/flows/Termination/context.d.ts +3 -3
  307. package/dist/flows/Termination/hooks.d.ts +3 -3
  308. package/dist/flows/Termination/hooks.js +1 -1
  309. package/dist/flows/Termination/index.d.ts +4 -4
  310. package/dist/flows/Termination/index.js +1 -1
  311. package/dist/flows/Termination/json-schemas/schema.d.ts +3 -3
  312. package/dist/flows/Termination/types.d.ts +3 -3
  313. package/dist/flows/Termination/utils.d.ts +3 -3
  314. package/dist/flows/types.d.ts +16 -3
  315. package/dist/flows/utils.d.ts +1 -1
  316. package/dist/index.d.ts +11 -11
  317. package/dist/index.js +2 -2
  318. package/dist/index.js.map +1 -1
  319. package/dist/internals.d.ts +3 -3
  320. package/dist/internals.js +1 -1
  321. package/dist/{mutations-DCAaAw5a.d.ts → mutations-CrU9zAmc.d.ts} +1 -1
  322. package/dist/{remoteFlows-dULw8FdP.d.ts → remoteFlows-Bj_CV1Kz.d.ts} +21 -1
  323. package/dist/{types-Cwf67dnV.d.ts → types-BJWaoke6.d.ts} +1 -1
  324. package/dist/{types-D-1MCxhm.d.ts → types-COPUHO0i.d.ts} +2 -2
  325. package/dist/{types-B4GARfFq.d.ts → types-CrefIfI4.d.ts} +1 -1
  326. package/dist/{types-CZ7r6pdq.d.ts → types-DKSx7WoE.d.ts} +23 -4
  327. package/dist/{types-BUvpsq6j.d.ts → types-DoaH0jUN.d.ts} +1 -1
  328. package/dist/{types-BrUW0aeq.d.ts → types-T42SC9k7.d.ts} +3 -3
  329. package/dist/{types-Crw4jMds.d.ts → types-hMyVACN6.d.ts} +1 -1
  330. package/dist/{utils-BVwm5Jyt.d.ts → utils-C02FAkSq.d.ts} +1 -1
  331. package/package.json +10 -10
  332. package/dist/CheckboxFieldDefault-62URAHJV.js +0 -2
  333. package/dist/CountryFieldDefault-24NNZN2C.js +0 -2
  334. package/dist/DatePickerFieldDefault-NMUCZ4U2.js +0 -2
  335. package/dist/FileUploadFieldDefault-4NW5VLF6.js +0 -2
  336. package/dist/MultiSelectFieldDefault-S45Z53ZY.js +0 -2
  337. package/dist/RadioGroupFieldDefault-X44FYUA3.js +0 -2
  338. package/dist/SelectFieldDefault-PLDXHTQY.js +0 -2
  339. package/dist/TelFieldDefault-IYGEEV5V.js +0 -2
  340. package/dist/TextAreaFieldDefault-C6M3PIV2.js +0 -2
  341. package/dist/TextFieldDefault-FTX32V3D.js +0 -2
  342. package/dist/TimeFieldDefault-J6PKL5T4.js +0 -2
  343. package/dist/chunk-75N7DFXJ.js +0 -2
  344. package/dist/chunk-IAR7QW2Y.js +0 -2
  345. package/dist/chunk-IAR7QW2Y.js.map +0 -1
  346. package/dist/chunk-RG67OYQN.js +0 -2
  347. package/dist/chunk-RG67OYQN.js.map +0 -1
  348. package/dist/chunk-UYYITOOO.js +0 -2
  349. package/dist/chunk-UYYITOOO.js.map +0 -1
  350. package/dist/chunk-X3FRANQS.js +0 -2
  351. package/dist/chunk-X3FRANQS.js.map +0 -1
  352. /package/dist/{CheckboxFieldDefault-62URAHJV.js.map → CheckboxFieldDefault-ASWSMSJD.js.map} +0 -0
  353. /package/dist/{CountryFieldDefault-24NNZN2C.js.map → CountryFieldDefault-JNRZX632.js.map} +0 -0
  354. /package/dist/{DatePickerFieldDefault-NMUCZ4U2.js.map → DatePickerFieldDefault-ARSIRGKX.js.map} +0 -0
  355. /package/dist/{FileUploadFieldDefault-4NW5VLF6.js.map → FileUploadFieldDefault-CFK64E3M.js.map} +0 -0
  356. /package/dist/{MultiSelectFieldDefault-S45Z53ZY.js.map → ForcedValueFieldDefault-IB7EX73O.js.map} +0 -0
  357. /package/dist/{RadioGroupFieldDefault-X44FYUA3.js.map → MultiSelectFieldDefault-HP5FIBJY.js.map} +0 -0
  358. /package/dist/{SelectFieldDefault-PLDXHTQY.js.map → RadioGroupFieldDefault-DRF3H2ZB.js.map} +0 -0
  359. /package/dist/{TelFieldDefault-IYGEEV5V.js.map → SelectFieldDefault-ANJ24D2G.js.map} +0 -0
  360. /package/dist/{TextAreaFieldDefault-C6M3PIV2.js.map → TelFieldDefault-ZKHU4DKH.js.map} +0 -0
  361. /package/dist/{TextFieldDefault-FTX32V3D.js.map → TextAreaFieldDefault-JICC77TL.js.map} +0 -0
  362. /package/dist/{TimeFieldDefault-J6PKL5T4.js.map → TextFieldDefault-RJSD2YDR.js.map} +0 -0
  363. /package/dist/{chunk-KF54ACZP.js.map → chunk-2BYDZSR5.js.map} +0 -0
  364. /package/dist/{chunk-IMCNVNKF.js.map → chunk-2DRF5M3J.js.map} +0 -0
  365. /package/dist/{chunk-SY7QZIKZ.js.map → chunk-2EM7DTD6.js.map} +0 -0
  366. /package/dist/{chunk-T3IHAH3B.js.map → chunk-2NWQ32VQ.js.map} +0 -0
  367. /package/dist/{chunk-GYYQWPA6.js.map → chunk-2W7O4FMW.js.map} +0 -0
  368. /package/dist/{chunk-VYLSS2C7.js.map → chunk-37CRJPVL.js.map} +0 -0
  369. /package/dist/{chunk-VMXDQYTT.js.map → chunk-4AJD5YEN.js.map} +0 -0
  370. /package/dist/{chunk-JJK6BFGN.js.map → chunk-4EZST3RL.js.map} +0 -0
  371. /package/dist/{chunk-AW436CZP.js.map → chunk-5EWUWRPW.js.map} +0 -0
  372. /package/dist/{chunk-EOSJHL6M.js.map → chunk-62VYULBI.js.map} +0 -0
  373. /package/dist/{chunk-AVK2P75W.js.map → chunk-6FWHB4ET.js.map} +0 -0
  374. /package/dist/{chunk-KZWB4FMM.js.map → chunk-6PDBJULN.js.map} +0 -0
  375. /package/dist/{chunk-7UFIQ64V.js.map → chunk-73ALSVRF.js.map} +0 -0
  376. /package/dist/{chunk-6JTUAJBZ.js.map → chunk-75ZSFK7I.js.map} +0 -0
  377. /package/dist/{chunk-74A4TMTF.js.map → chunk-7FBX3RI4.js.map} +0 -0
  378. /package/dist/{chunk-5N5B5AU2.js.map → chunk-A75HEHRS.js.map} +0 -0
  379. /package/dist/{chunk-JPVSXGCC.js.map → chunk-AAOU5HS2.js.map} +0 -0
  380. /package/dist/{chunk-BHKAKCV4.js.map → chunk-AES7DMIQ.js.map} +0 -0
  381. /package/dist/{chunk-2EGFPBT7.js.map → chunk-ATRYDXM2.js.map} +0 -0
  382. /package/dist/{chunk-LGSOTN4M.js.map → chunk-BGEDMAHU.js.map} +0 -0
  383. /package/dist/{chunk-HTVGC4KT.js.map → chunk-BQDYFFER.js.map} +0 -0
  384. /package/dist/{chunk-ZF3CYWGQ.js.map → chunk-C6AWXQ67.js.map} +0 -0
  385. /package/dist/{chunk-BZA2XA4Q.js.map → chunk-C6I7R7ZH.js.map} +0 -0
  386. /package/dist/{chunk-PMIGYQEX.js.map → chunk-CD2QYFEH.js.map} +0 -0
  387. /package/dist/{chunk-UYTYZVQM.js.map → chunk-CNXDC3M7.js.map} +0 -0
  388. /package/dist/{chunk-O3Y4DVNY.js.map → chunk-CT7POXIP.js.map} +0 -0
  389. /package/dist/{chunk-B6YPSCBC.js.map → chunk-CZU4U3LY.js.map} +0 -0
  390. /package/dist/{chunk-JXH42V2F.js.map → chunk-DGHXBSBS.js.map} +0 -0
  391. /package/dist/{chunk-Y4X4BMDD.js.map → chunk-DLCEEROX.js.map} +0 -0
  392. /package/dist/{chunk-QHSIUKH6.js.map → chunk-DO352QQL.js.map} +0 -0
  393. /package/dist/{chunk-V6I7LW47.js.map → chunk-DWJGC5YG.js.map} +0 -0
  394. /package/dist/{chunk-AHIJ7DGJ.js.map → chunk-E5MKB67X.js.map} +0 -0
  395. /package/dist/{chunk-XDRJTAFV.js.map → chunk-EGIXB43W.js.map} +0 -0
  396. /package/dist/{chunk-RN3WPVBZ.js.map → chunk-EHAAVSJM.js.map} +0 -0
  397. /package/dist/{chunk-WJAGRH76.js.map → chunk-ELXRJXQZ.js.map} +0 -0
  398. /package/dist/{chunk-64OGJGKN.js.map → chunk-FHDMPQNW.js.map} +0 -0
  399. /package/dist/{chunk-4FV6Z3HE.js.map → chunk-FPV6S2OQ.js.map} +0 -0
  400. /package/dist/{chunk-GJ2AOENT.js.map → chunk-H3JAWJOE.js.map} +0 -0
  401. /package/dist/{chunk-BZ4VPC4U.js.map → chunk-HLLM7OZN.js.map} +0 -0
  402. /package/dist/{chunk-XVZQBTB3.js.map → chunk-HOEP5XXW.js.map} +0 -0
  403. /package/dist/{chunk-VADVEBNE.js.map → chunk-I5L5SRSG.js.map} +0 -0
  404. /package/dist/{chunk-BVKOMSHU.js.map → chunk-IN6QZASY.js.map} +0 -0
  405. /package/dist/{chunk-OUFFAMO5.js.map → chunk-IQZ63FQX.js.map} +0 -0
  406. /package/dist/{chunk-7EFZVAWU.js.map → chunk-IUJRGT3T.js.map} +0 -0
  407. /package/dist/{chunk-STFOY2NW.js.map → chunk-KCE6IU5X.js.map} +0 -0
  408. /package/dist/{chunk-R2S73YZ5.js.map → chunk-KLBFDP5I.js.map} +0 -0
  409. /package/dist/{chunk-FXVHH75C.js.map → chunk-KR7PDSUA.js.map} +0 -0
  410. /package/dist/{chunk-DZ3A4POL.js.map → chunk-KTOVE7ZS.js.map} +0 -0
  411. /package/dist/{chunk-YYWBJW65.js.map → chunk-KV2B2CRW.js.map} +0 -0
  412. /package/dist/{chunk-FIFM55V3.js.map → chunk-LT5KIEQH.js.map} +0 -0
  413. /package/dist/{chunk-VDXTVUFY.js.map → chunk-LUADE5XK.js.map} +0 -0
  414. /package/dist/{chunk-GWQJKZ3M.js.map → chunk-LZM3BNK3.js.map} +0 -0
  415. /package/dist/{chunk-SUONIYV5.js.map → chunk-MJ6Z7ARR.js.map} +0 -0
  416. /package/dist/{chunk-A6KORIJF.js.map → chunk-MJZCTG7C.js.map} +0 -0
  417. /package/dist/{chunk-3O7L6JUX.js.map → chunk-MREG2JYT.js.map} +0 -0
  418. /package/dist/{chunk-HULIBLYP.js.map → chunk-MW5JVH3X.js.map} +0 -0
  419. /package/dist/{chunk-3OTZWYVQ.js.map → chunk-NGV62VYV.js.map} +0 -0
  420. /package/dist/{chunk-CUM2NKZ4.js.map → chunk-NOQWN76W.js.map} +0 -0
  421. /package/dist/{chunk-2QQZODFC.js.map → chunk-O4MWPCG5.js.map} +0 -0
  422. /package/dist/{chunk-TMS5VMVV.js.map → chunk-OEPT3ASY.js.map} +0 -0
  423. /package/dist/{chunk-UHFNNG5S.js.map → chunk-OEQXIWJJ.js.map} +0 -0
  424. /package/dist/{chunk-2CGPCBQY.js.map → chunk-OGRQ3NTD.js.map} +0 -0
  425. /package/dist/{chunk-FFFB5CG2.js.map → chunk-OHNH7V7X.js.map} +0 -0
  426. /package/dist/{chunk-RBUSLLAQ.js.map → chunk-ORXD3SB2.js.map} +0 -0
  427. /package/dist/{chunk-6AZKF6RW.js.map → chunk-P32JWGIE.js.map} +0 -0
  428. /package/dist/{chunk-G2DAXZPD.js.map → chunk-PXBJVZ6I.js.map} +0 -0
  429. /package/dist/{chunk-R36IOANR.js.map → chunk-QVULYOKK.js.map} +0 -0
  430. /package/dist/{chunk-J7I4WJ4G.js.map → chunk-QXXVWOOB.js.map} +0 -0
  431. /package/dist/{chunk-65G3JQ7T.js.map → chunk-QZZJE6P7.js.map} +0 -0
  432. /package/dist/{chunk-MZN6VY5F.js.map → chunk-RKXF7Q7V.js.map} +0 -0
  433. /package/dist/{chunk-2FIBHHT7.js.map → chunk-RT7MYFKW.js.map} +0 -0
  434. /package/dist/{chunk-6SNWSCXH.js.map → chunk-ULCAT6MG.js.map} +0 -0
  435. /package/dist/{chunk-TUAL6X2E.js.map → chunk-VMRTLZQL.js.map} +0 -0
  436. /package/dist/{chunk-2GAKAYG7.js.map → chunk-VUKUBHHU.js.map} +0 -0
  437. /package/dist/{chunk-INUCPQVI.js.map → chunk-WDO7XH6B.js.map} +0 -0
  438. /package/dist/{chunk-TVTJS3PE.js.map → chunk-WE2AFK6Y.js.map} +0 -0
  439. /package/dist/{chunk-LD633A5N.js.map → chunk-WI4YITIC.js.map} +0 -0
  440. /package/dist/{chunk-WKT6B3XE.js.map → chunk-WJ7BE4TU.js.map} +0 -0
  441. /package/dist/{chunk-YLU7JBHT.js.map → chunk-WOARN6WG.js.map} +0 -0
  442. /package/dist/{chunk-6PP3Y63Z.js.map → chunk-WQS5JWRA.js.map} +0 -0
  443. /package/dist/{chunk-LBMHLNKS.js.map → chunk-WXLKMK53.js.map} +0 -0
  444. /package/dist/{chunk-HWBEYYJO.js.map → chunk-XDPAVB5E.js.map} +0 -0
  445. /package/dist/{chunk-NI4K773A.js.map → chunk-XI5G4SGA.js.map} +0 -0
  446. /package/dist/{chunk-U7MAWO3U.js.map → chunk-Y62UA5CG.js.map} +0 -0
  447. /package/dist/{chunk-NGCNYQSC.js.map → chunk-Y7PBPPUC.js.map} +0 -0
  448. /package/dist/{chunk-EFIPOWDJ.js.map → chunk-ZF46HCMZ.js.map} +0 -0
  449. /package/dist/{chunk-C4NBYBED.js.map → chunk-ZG2AYULT.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{a as i}from"./chunk-UYTYZVQM.js";import{a as d}from"./chunk-KGSH67IW.js";import{a}from"./chunk-AHIJ7DGJ.js";import{a as p}from"./chunk-JK4CPPN4.js";import{a as m}from"./chunk-DZ3A4POL.js";import{a as l}from"./chunk-LGSOTN4M.js";import{a as n}from"./chunk-WCJZAOZR.js";import{a as t}from"./chunk-7EFZVAWU.js";import{a as r}from"./chunk-P37U34EQ.js";import{useId as c}from"react";import{jsx as u}from"react/jsx-runtime";var D=r(({companyId:e,legalEntityId:s,countryCode:f,employmentId:P,initialValues:y,options:b,render:g})=>{let A=c(),o=t({companyId:e,legalEntityId:s,countryCode:f,employmentId:P,initialValues:y,options:b});return u(n.Provider,{value:{formId:A,adminBag:o},children:g({adminBag:o,components:{SelectCountryStep:i,ContractDetailsStep:m,AdministrativeDetailsStep:a,InvitationStep:l,SubmitButton:d,BackButton:p}})})},"PayrollAdminOnboardingFlow");export{D as a};
2
- //# sourceMappingURL=chunk-HULIBLYP.js.map
1
+ import{a as i}from"./chunk-CNXDC3M7.js";import{a as d}from"./chunk-KGSH67IW.js";import{a}from"./chunk-E5MKB67X.js";import{a as p}from"./chunk-JK4CPPN4.js";import{a as m}from"./chunk-KTOVE7ZS.js";import{a as l}from"./chunk-BGEDMAHU.js";import{a as n}from"./chunk-WCJZAOZR.js";import{a as t}from"./chunk-IUJRGT3T.js";import{a as r}from"./chunk-P37U34EQ.js";import{useId as c}from"react";import{jsx as u}from"react/jsx-runtime";var D=r(({companyId:e,legalEntityId:s,countryCode:f,employmentId:P,initialValues:y,options:b,render:g})=>{let A=c(),o=t({companyId:e,legalEntityId:s,countryCode:f,employmentId:P,initialValues:y,options:b});return u(n.Provider,{value:{formId:A,adminBag:o},children:g({adminBag:o,components:{SelectCountryStep:i,ContractDetailsStep:m,AdministrativeDetailsStep:a,InvitationStep:l,SubmitButton:d,BackButton:p}})})},"PayrollAdminOnboardingFlow");export{D as a};
2
+ //# sourceMappingURL=chunk-MW5JVH3X.js.map
@@ -1,2 +1,2 @@
1
- import{a as d}from"./chunk-NFLN2YB6.js";import{a as c}from"./chunk-O3Y4DVNY.js";import{b as s}from"./chunk-Q3ALCPJN.js";import{c as l}from"./chunk-XZMPAJRL.js";import{x as n}from"./chunk-NXRWBI36.js";import{a}from"./chunk-P37U34EQ.js";import{jsx as m,jsxs as g}from"react/jsx-runtime";function x({onSubmit:p,onSuccess:u,onError:S}){let{contractorOnboardingBag:r}=s(),f=a(async(e,F)=>{try{let t=await r.parseFormValues(e);await p?.(t);let o=await r.onSubmit(e);if(o?.data){await u?.(o?.data),r?.next();return}}catch(t){let o=n(t,r.meta?.fields?.contract_details,F);S?.(o)}},"handleSubmit"),C=r.stepState.values?.contract_details||r.initialValues.contract_details,i=r.stepState.values?.pricing_plan?.subscription,b=l(i);return g("div",{className:"space-y-4",children:[m(c,{defaultValues:C,onSubmit:f}),b&&m(d,{subscription:i})]})}a(x,"ContractDetailsStep");export{x as a};
2
- //# sourceMappingURL=chunk-3OTZWYVQ.js.map
1
+ import{a as d}from"./chunk-NFLN2YB6.js";import{a as c}from"./chunk-CT7POXIP.js";import{b as s}from"./chunk-Q3ALCPJN.js";import{c as l}from"./chunk-XZMPAJRL.js";import{x as n}from"./chunk-NXRWBI36.js";import{a}from"./chunk-P37U34EQ.js";import{jsx as m,jsxs as g}from"react/jsx-runtime";function x({onSubmit:p,onSuccess:u,onError:S}){let{contractorOnboardingBag:r}=s(),f=a(async(e,F)=>{try{let t=await r.parseFormValues(e);await p?.(t);let o=await r.onSubmit(e);if(o?.data){await u?.(o?.data),r?.next();return}}catch(t){let o=n(t,r.meta?.fields?.contract_details,F);S?.(o)}},"handleSubmit"),C=r.stepState.values?.contract_details||r.initialValues.contract_details,i=r.stepState.values?.pricing_plan?.subscription,b=l(i);return g("div",{className:"space-y-4",children:[m(c,{defaultValues:C,onSubmit:f}),b&&m(d,{subscription:i})]})}a(x,"ContractDetailsStep");export{x as a};
2
+ //# sourceMappingURL=chunk-NGV62VYV.js.map
@@ -1,2 +1,2 @@
1
- import{b as s}from"./chunk-SS2SYDCB.js";import{a as t}from"./chunk-G3QDDD53.js";import{a as l}from"./chunk-TMS5VMVV.js";import{h as m}from"./chunk-4FGKIGKF.js";import{a as r}from"./chunk-P37U34EQ.js";import{jsx as i}from"react/jsx-runtime";import{createElement as p}from"react";function c({onSubmit:a,defaultValues:n}){let{formId:d,employeeBag:e}=s(),o=t({handleValidation:e.handleValidation,defaultValues:n??{},checkFieldUpdates:e.setFieldValues});return p(m,{...o,key:`form-${e.stepState.currentStep.name}`},i("form",{id:d,onSubmit:o.handleSubmit(f=>a(f,o)),className:"space-y-4 RemoteFlows__PayrollEmployeeForm",children:i(l,{fields:e.fields,fieldsets:e.meta["x-jsf-fieldsets"],fieldValues:e.fieldValues})}))}r(c,"PayrollEmployeeForm");export{c as a};
2
- //# sourceMappingURL=chunk-CUM2NKZ4.js.map
1
+ import{b as s}from"./chunk-SS2SYDCB.js";import{a as t}from"./chunk-G3QDDD53.js";import{a as l}from"./chunk-OEPT3ASY.js";import{h as m}from"./chunk-4FGKIGKF.js";import{a as r}from"./chunk-P37U34EQ.js";import{jsx as i}from"react/jsx-runtime";import{createElement as p}from"react";function c({onSubmit:a,defaultValues:n}){let{formId:d,employeeBag:e}=s(),o=t({handleValidation:e.handleValidation,defaultValues:n??{},checkFieldUpdates:e.setFieldValues});return p(m,{...o,key:`form-${e.stepState.currentStep.name}`},i("form",{id:d,onSubmit:o.handleSubmit(f=>a(f,o)),className:"space-y-4 RemoteFlows__PayrollEmployeeForm",children:i(l,{fields:e.fields,fieldsets:e.meta["x-jsf-fieldsets"],fieldValues:e.fieldValues})}))}r(c,"PayrollEmployeeForm");export{c as a};
2
+ //# sourceMappingURL=chunk-NOQWN76W.js.map
@@ -0,0 +1,2 @@
1
+ import{a as B}from"./chunk-CM4UUBU5.js";import{a as oe}from"./chunk-UCBZMQGL.js";import{b as te,c as re,f as ne}from"./chunk-RRERBS7F.js";import{a as ee}from"./chunk-BODQC6OK.js";import{c as O}from"./chunk-WDO7XH6B.js";import{c as g,i as x,m as j}from"./chunk-4FGKIGKF.js";import{l as X,m as Y,n as V,r as z}from"./chunk-NXRWBI36.js";import{b as h,c as T}from"./chunk-H2O4CVKF.js";import{a as n}from"./chunk-P37U34EQ.js";import{Fragment as to,useEffect as ro,useRef as Ve}from"react";import _ from"lodash.omit";import{jsx as ie}from"react/jsx-runtime";function le({description:e,label:o,name:t,minDate:r,maxDate:i,onChange:l,component:a,...m}){let{components:u}=h(),{control:c}=g(),f=T(),s;m.meta?.mot&&typeof m.meta.mot=="number"?s=X(m.meta.mot):typeof r=="string"&&(s=new Date(`${r}T00:00:00`));let F;return i&&(F=new Date(`${i}T23:59:59`)),ie(x,{control:c,name:t,render:({field:C,fieldState:S})=>{let p=a||u?.date;if(!p)throw new Error(`Date picker component not found for field ${t}`);let b={description:e,label:o,name:t,onChange:l,transformHtml:f,...s&&{minDate:s.toISOString()},...F&&{maxDate:F.toISOString()},...m};return ie(p,{field:{...C,onChange:n(y=>{C.onChange(y),l?.(y)},"onChange")},fieldState:S,fieldData:b})}})}n(le,"DatePickerField");import{jsx as se}from"react/jsx-runtime";var Le=n((e,o)=>{if(!o)return null;for(let t of e)if(t.size>o){let r=Math.round(o/1048576),i=Math.round(t.size/(1024*1024));return`File "${t.name}" exceeds maximum size of ${r}MB (file is ${i}MB)`}return null},"validateFileSize");function me({name:e,description:o,label:t,multiple:r,onChange:i,component:l,accept:a,maxSize:m,...u}){let{components:c}=h(),{control:f,setError:s,clearErrors:F}=g(),C=T(),S=n(async(p,b)=>{let y=Le(p,m);if(y){s(e,{message:y});return}F(e),b.onChange(p),i?.(p)},"handleOnChange");return se(x,{control:f,name:e,render:({field:p,fieldState:b})=>{let y=l||c.file;if(!y)throw new Error(`File upload component not found for field ${e}`);let P={name:e,description:o,label:t,multiple:r,accept:a,maxFileSize:m,transformHtml:C,...u};return se(y,{field:{...p,value:p.value,onChange:n(async w=>S(w,p),"onChange")},fieldState:b,fieldData:P})}})}n(me,"FileUploadField");import{jsx as ae}from"react/jsx-runtime";function J({component:e,onChange:o,...t}){let{components:r}=h(),{control:i}=g(),l=T();return ae(x,{control:i,name:t.name,render:({field:a,fieldState:m})=>{let u=e||r.number;if(!u)throw new Error(`Number component not found for field ${t.name}`);let c={onChange:o,transformHtml:l,...t};return ae(u,{field:{...a,onChange:n(f=>{a.onChange(f),o?.(f)},"onChange")},fieldState:m,fieldData:c})}})}n(J,"NumberField");import{jsx as de}from"react/jsx-runtime";function pe({name:e,defaultValue:o,description:t,label:r,options:i,onChange:l,component:a,...m}){let{components:u}=h(),{control:c}=g(),f=T();return de(x,{control:c,name:e,defaultValue:o,render:({field:s,fieldState:F})=>{let C=a||u?.radio;if(!C)throw new Error(`Radio group component not found for field ${e}`);let S={name:e,defaultValue:o,description:t,label:r,options:i,transformHtml:f,...m};return de(C,{field:{...s,onChange:n(p=>{s.onChange(p),l?.(p)},"onChange")},fieldState:F,fieldData:S})}})}n(pe,"RadioGroupField");import{jsx as ce}from"react/jsx-runtime";function ue({label:e,name:o,options:t,defaultValue:r,description:i,onChange:l,component:a,...m}){let{control:u}=g(),{components:c}=h(),f=T();return ce(x,{defaultValue:r,control:u,name:o,render:({field:s,fieldState:F})=>{let C=a||c?.select;if(!C)throw new Error(`Select component not found for field ${o}`);let S={label:e,name:o,options:t,defaultValue:r,description:i,onChange:l,transformHtml:f,...m};return ce(C,{field:{...s,onChange:n(p=>{let y=(Array.isArray(m.jsonType)?m.jsonType.includes("number"):m.jsonType==="number")?Number(p):p;s.onChange(y),l?.(y)},"onChange")},fieldState:F,fieldData:S})}})}n(ue,"SelectField");import{jsx as Fe}from"react/jsx-runtime";function fe({label:e,name:o,options:t,defaultValue:r,description:i,onChange:l,$meta:a,component:m,...u}){let{control:c}=g(),{components:f}=h(),s=T();return Fe(x,{defaultValue:r,control:c,name:o,render:({field:F,fieldState:C})=>{let S=m||f.countries;if(!S)throw new Error(`Country component not found for field ${o}`);let p={label:e,name:o,options:t,defaultValue:r,description:i,onChange:l,$meta:a,transformHtml:s,...u};return Fe(S,{field:{...F,onChange:n(b=>{F.onChange(b),l?.(b)},"onChange")},fieldState:C,fieldData:p})}})}n(fe,"CountryField");import{jsx as Ce}from"react/jsx-runtime";function ge({name:e,description:o,label:t,onChange:r,maxLength:i,component:l,...a}){let{components:m}=h(),{control:u}=g(),c=T();return Ce(x,{control:u,name:e,render:({field:f,fieldState:s})=>{let F=l||m.textarea;if(!F)throw new Error(`Text area component not found for field ${e}`);let C={name:e,description:o,label:t,maxLength:i,transformHtml:c,...a};return Ce(F,{field:{...f,onChange:n(S=>{f.onChange(S),r?.(S)},"onChange")},fieldState:s,fieldData:C})}})}n(ge,"TextAreaField");import{jsx as he}from"react/jsx-runtime";function Se({component:e,onChange:o,...t}){let{components:r}=h(),{control:i}=g(),l=T();return he(x,{control:i,name:t.name,render:({field:a,fieldState:m})=>{let u=e||r.email;if(!u)throw new Error(`Email component not found for field ${t.name}`);let c={onChange:o,transformHtml:l,...t};return he(u,{field:{...a,onChange:n(f=>{a.onChange(f),o?.(f)},"onChange")},fieldState:m,fieldData:c})}})}n(Se,"EmailField");import{useEffect as ze}from"react";import{jsx as Te}from"react/jsx-runtime";function xe(e){let{control:o,setValue:t}=g();return ze(()=>{e.const!==void 0&&e.const===e.default&&e.name&&t(e.name,e.const)},[e.const,e.default,e.name,t]),Te(x,{control:o,name:e.name,render:({field:r})=>Te("input",{...r,type:"hidden"})})}n(xe,"HiddenField");import{useEffect as Oe,useState as Ge}from"react";import{jsx as ye}from"react/jsx-runtime";function Pe(e){let{components:o}=h(),{setValue:t,control:r,watch:i}=g(),l=T(),a=i(e.name),[m,u]=Ge(a),{workHoursSummary:c,breakSummary:f}=re(m),s=te(m);Oe(()=>{t(e.name,m)},[m,e.name,t]);function F(p){u(p)}n(F,"onSubmit");let C=e.component||o["work-schedule"];if(!C)throw new Error(`Work schedule component not found for field ${e.name}`);let S={...e,onSubmit:F,currentSchedule:m,transformHtml:l,defaultFormattedValue:{workHoursSummary:c,breakSummary:f,totalWorkHours:s}};return ye(x,{control:r,name:e.name,render:({field:p,fieldState:b})=>ye(C,{field:{...p,onChange:n(y=>{p.onChange(y),e.onChange?.(y)},"onChange")},fieldState:b,fieldData:S})})}n(Pe,"WorkScheduleField");import{jsx as be}from"react/jsx-runtime";function $e({label:e,name:o,options:t,defaultValue:r,description:i,onChange:l,component:a,...m}){let{control:u}=g(),{components:c}=h(),f=T();return be(x,{defaultValue:r,control:u,name:o,render:({field:s,fieldState:F})=>{let C=a||c?.["multi-select"];if(!C)throw new Error(`Multi select component not found for field ${o}`);let S={label:e,name:o,options:t,defaultValue:r,description:i,onChange:l,transformHtml:f,...m};return be(C,{field:{...s,onChange:n(p=>{s.onChange(p),l?.(p)},"onChange")},fieldState:F,fieldData:S})}})}n($e,"MultiSelectField");import{jsx as Ue}from"react/jsx-runtime";var De=n(e=>Ue(J,{maxLength:15,...e}),"MoneyField");import{useMemo as I,useCallback as Ee,useState as Ze,useEffect as Ke,useRef as qe}from"react";import{jsx as G}from"react/jsx-runtime";function Qe(e){return e.replace(/\s/g,"")}n(Qe,"removeSpaces");function Me(e="",o){let t=new RegExp(`^(\\+|00)(\\d{${o?.dialCode?.length??0}})(.*)$`),r=e?.match(t);if(!r)return{prefix:"",dialCode:"",phoneNumber:e};let[,i,l,a]=r;return{prefix:i,dialCode:l,phoneNumber:a}}n(Me,"getStructuredNumberFromInternationalNumber");function Re({dialCodes:e,dialCodeMaxLength:o},t){let{prefix:r}=Me(t);if(r)for(let i=o+r.length;i>r.length;i--){let l=t.slice(r.length,i);if(e[l])return e[l]}}n(Re,"getCountryFromPhoneNumber");function we(e){let o={},t=0;return e.forEach(r=>{r.areaCodes?r.areaCodes.forEach(i=>{let l=r.dialCode+i;o[l]=r,l.length>t&&(t=l.length)}):(o[r.dialCode]=r,r.dialCode.length>t&&(t=r.dialCode.length))}),{dialCodes:o,dialCodeMaxLength:t}}n(we,"getCountryDataByCountryCode");function Xe(e=""){let o=/\(([^)]+)\)/g,t=e.match(o);if(t?.length===2)return t[1].replace(/\(|\)/g,"").split("|")}n(Xe,"getAreaCodesFromPattern");function Ye(e){return e.map(o=>({name:o.label,dialCode:o.meta.countryCode,pattern:o.pattern,areaCodes:Xe(o.pattern)}))}n(Ye,"transformSchemaToCountries");function je({field:e,fieldState:o,fieldData:t,component:r,onChangeCountryCode:i,onChangePhoneNumber:l}){let{value:a}=e,{options:m}=t,u=I(()=>Ye(m),[m]),c=I(()=>we(u),[u]),f=qe(!1),[s,F]=Ze(()=>Re(we(u),a||""));Ke(()=>{if((!a||a==="+")&&(f.current=!1),f.current)return;let P=Re(c,a||"");F(P)},[a,c]);let{prefix:C,phoneNumber:S}=I(()=>Me(a,s),[a,s]),p=Ee(P=>{if(!P)return;let w=`+${P.dialCode}${S}`;f.current=!0,F(P),e.onChange(w),i&&i(P)},[S,e,i]),b=Ee(P=>{let w=Qe(P.target.value),N;if(s?N=`${C}${s.dialCode}${w}`:N=`${C}${w}`,e.onChange(N),l){let k={target:{value:N,name:e.name}};l(k)}},[s,C,e,l]),y=I(()=>({...t,onChangeCountryCode:p,onChangePhoneNumber:b,currentCountry:s,nationalPhoneNumber:S}),[t,p,b,s,S]);return G(r,{field:e,fieldState:o,fieldData:y})}n(je,"TelFieldRenderer");function ve({name:e,description:o,label:t,onChangeCountryCode:r,onChangePhoneNumber:i,component:l,...a}){let{components:m}=h(),{control:u}=g(),c=T();return G(x,{control:u,name:e,render:({field:f,fieldState:s})=>{let F=l||m.tel;if(!F)throw new Error(`Tel component not found for field ${e}`);let C={name:e,description:o,label:t,transformHtml:c,...a};return G(je,{field:f,fieldState:s,fieldData:C,component:F,onChangeCountryCode:r,onChangePhoneNumber:i})}})}n(ve,"TelField");import{jsx as Ne}from"react/jsx-runtime";function ke({name:e,description:o,label:t,type:r,onChange:i,component:l,maxLength:a,...m}){let{components:u}=h(),{control:c}=g(),f=T();return Ne(x,{control:c,name:e,render:({field:s,fieldState:F})=>{let C=l||u?.time;if(!C)throw new Error(`Time component not found for field ${e}`);let S={name:e,description:o,label:t,type:r,onChange:i,maxLength:a,transformHtml:f,...m};return Ne(C,{field:{...s,onChange:n(p=>{s.onChange(p),i?.(p)},"onChange")},fieldState:F,fieldData:S})}})}n(ke,"TimeField");var U={checkbox:ne,text:ee,email:Se,money:De,select:ue,"multi-select":$e,radio:pe,number:J,file:me,date:le,textarea:ge,countries:fe,hidden:xe,tel:ve,time:ke,"work-schedule":Pe};import{useEffect as eo}from"react";import{jsx as oo}from"react/jsx-runtime";function He({name:e,value:o,description:t,statement:r,label:i,helpCenter:l}){let{setValue:a}=g(),{components:m}=h(),u=T();eo(()=>{a(e,o)},[e,o,a]);let c=r?.description||t,f=r?.title?z(r.title):z(i);if(!c&&!r?.title)return null;let F=m?.forcedValue;if(!F)throw new Error(`Forced value component not found for field ${e}`);return oo(F,{fieldData:{name:e,value:o,title:f,description:c,meta:{helpCenter:l},transformHtml:u}})}n(He,"ForcedValueField");import{Fragment as Z,jsx as $,jsxs as v}from"react/jsx-runtime";function _e({label:e,name:o,fields:t,description:r,components:i,statement:l,isFlatFieldset:a,extra:m,variant:u="outset",features:c,meta:f}){let{helpCenter:s}=f||{},{watch:F,setValue:C,trigger:S,formState:p}=g(),{components:b}=h(),y=c?.toggle?.stateField,P=y?F(y):c?.toggle?.defaultExpanded??!0,w=t.map(({name:d})=>`${o}.${d}`),N=t.some(d=>d.calculateDynamicProperties),k=F(w),We=N?F():k,K=Ve(k),H=Ve(null),Ae=n(()=>{y&&C(y,!P)},"toggleExpanded");ro(()=>{let d=k,M=K.current,E=p.isSubmitted||p.submitCount>0,W=!1;for(let R=0;R<d.length;R++)if(d[R]!==void 0&&M[R]!==d[R]){W=!0;break}return W&&E&&(H.current&&clearTimeout(H.current),H.current=setTimeout(()=>{S()},50)),K.current=[...d],()=>{H.current&&clearTimeout(H.current)}},[k,S,p.isSubmitted,p.submitCount]);let Be=b?.fieldsetToggle||oe,q=`${o}-content`,Q=`${o}-header`;return v("fieldset",{className:V("border-1 border-input p-4 rounded-xl","RemoteFlows__FieldSetField",`RemoteFlows__FieldSetField__${o}`),children:[$("legend",{className:V("text-sm font-semibold px-2",u==="inset"&&"hidden"),children:e}),s?.callToAction&&s?.id&&u==="outset"&&$(O,{className:"RemoteFlows__FieldSetField__HelpCenterLink mb-3",zendeskId:s.id,children:s.callToAction}),u==="inset"&&v(Z,{children:[v("div",{className:"RemoteFlows__FieldSetField__Header",id:Q,"data-state":P?"expanded":"collapsed","aria-expanded":P,children:[$("h3",{className:V("RemoteFlows__FieldSetField__Title"),children:e}),c?.toggle?.enabled&&$(Be,{isExpanded:P,onToggle:Ae,"aria-expanded":P,"aria-controls":q,"aria-label":`${P?"Hide":"Show"} ${e}`,className:V("RemoteFlows__FieldSetField__Toggle",c.toggle?.className),children:P?c.toggle.labels?.collapse??"Remove":c.toggle.labels?.expand??"Define"})]}),s?.callToAction&&s?.id&&$(O,{className:"RemoteFlows__FieldSetField__HelpCenterLink mb-3",zendeskId:s.id,children:s.callToAction})]}),P&&v("div",{id:q,"aria-labelledby":Q,role:"region",children:[r?$(j,{as:"div",className:"mb-5 RemoteFlows__FieldSetField__Description",children:r}):null,v("div",{className:"grid gap-4",children:[t.map(d=>{if(d.calculateDynamicProperties&&(d={...d,...d.calculateDynamicProperties(We,d)||{}}),d.isVisible===!1||d.deprecated)return null;let M=d.type,E=`${a?d.name:`${o}.${d.name}`}`,W=Y(d),R=n((D,A)=>d.WrapperComponent?$(d.WrapperComponent,{children:D},A):$(to,{children:D},A),"wrapWithCustomWrapper");if(W){let D=_(d,"WrapperComponent");return R($(He,{name:E,description:D.description,value:D.const,statement:D.statement,label:D.label,helpCenter:D.meta?.helpCenter}),E)}if(M==="fieldset"){let D=_(d,"WrapperComponent");return R($(_e,{...D,name:E,components:i}),E)}if(M==="fieldset-flat"){let D=_(d,"WrapperComponent");return R($(_e,{...D,name:E,components:i,isFlatFieldset:!0}),E)}let L=U[M];if(d.Component){let{Component:D}=d,A=_(d,"WrapperComponent");return R(v(Z,{children:[$(D,{...A,value:F(E),setValue:Ie=>{C(E,Ie)}}),d.statement?$(B,{...d.statement}):null,d.extra?d.extra:null]}),E)}if(!L)return v("p",{className:"error",children:["Field type ",M," not supported"]});M==="select"&&d.multiple&&(L=U["multi-select"]);let Je=_(d,"WrapperComponent");return R(v(Z,{children:[$(L,{...Je,name:E,component:i?.[M]}),d.statement?$(B,{...d.statement}):null,d.extra?d.extra:null]}),E)}),m||null,l?$(B,{...l}):null]})]})]})}n(_e,"FieldSetField");export{U as a,He as b,_e as c};
2
+ //# sourceMappingURL=chunk-NRH6RION.js.map
@@ -1 +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/TelField.tsx","../src/components/form/fields/TimeField.tsx","../src/components/form/fields/baseFields.tsx","../src/components/form/fields/ForcedValueField.tsx"],"sourcesContent":["import { useFormContext } from 'react-hook-form';\nimport { Fragment, useEffect, useRef } from 'react';\nimport omit from 'lodash.omit';\nimport { baseFields } from '@/src/components/form/fields/baseFields';\nimport { cn } 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';\nimport { checkFieldHasForcedValue } from '@/src/components/form/utils';\nimport { ForcedValueField } from '@/src/components/form/fields/ForcedValueField';\nimport { BaseFormDescription } from '@/src/components/ui/form';\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 fieldsetNeedsAllFormValues = fields.some(\n (field: $TSFixMe) => field.calculateDynamicProperties,\n );\n const watchedValues = watch(fieldNames);\n const allFormValues = fieldsetNeedsAllFormValues ? watch() : watchedValues;\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 <BaseFormDescription\n as='div'\n className='mb-5 RemoteFlows__FieldSetField__Description'\n >\n {description}\n </BaseFormDescription>\n ) : null}\n <div className='grid gap-4'>\n {fields.map((field: $TSFixMe) => {\n if (field.calculateDynamicProperties) {\n field = {\n ...field,\n ...(field.calculateDynamicProperties(allFormValues, field) ||\n {}),\n };\n }\n\n if (field.isVisible === false || field.deprecated) {\n return null; // Skip hidden or deprecated fields\n }\n\n const fieldType = field.type;\n const fieldKey = `${isFlatFieldset ? field.name : `${name}.${field.name}`}`;\n\n const isForcedValue = checkFieldHasForcedValue(field);\n\n // Helper function to wrap content with WrapperComponent if present\n const wrapWithCustomWrapper = (\n content: React.ReactNode,\n key: string,\n ) => {\n if (field.WrapperComponent) {\n return (\n <field.WrapperComponent key={key}>\n {content}\n </field.WrapperComponent>\n );\n }\n return <Fragment key={key}>{content}</Fragment>;\n };\n\n if (isForcedValue) {\n const fieldProps = omit(field, 'WrapperComponent');\n return wrapWithCustomWrapper(\n <ForcedValueField\n name={fieldKey}\n description={fieldProps.description}\n value={fieldProps.const}\n statement={fieldProps.statement}\n label={fieldProps.label}\n helpCenter={fieldProps.meta?.helpCenter}\n />,\n fieldKey,\n );\n }\n\n // Handle nested fieldsets\n if (fieldType === 'fieldset') {\n const fieldProps = omit(field, 'WrapperComponent');\n return wrapWithCustomWrapper(\n <FieldSetField\n {...(fieldProps as $TSFixMe)}\n name={fieldKey}\n components={components}\n />,\n fieldKey,\n );\n }\n\n if (fieldType === 'fieldset-flat') {\n const fieldProps = omit(field, 'WrapperComponent');\n return wrapWithCustomWrapper(\n <FieldSetField\n {...(fieldProps as $TSFixMe)}\n name={fieldKey}\n components={components}\n isFlatFieldset\n />,\n fieldKey,\n );\n }\n // We need to do the check after checking (field.type || field.inputType) === 'fieldset' or (field.type || field.inputType) === 'fieldset-flat'\n // circular dependency most likely\n let FieldComponent = baseFields[fieldType as BaseTypes];\n\n if (field.Component) {\n const { Component } = field as {\n Component: React.ComponentType<$TSFixMe>;\n };\n const fieldProps = omit(field, 'WrapperComponent');\n return wrapWithCustomWrapper(\n <>\n <Component\n {...fieldProps}\n value={watch(fieldKey) as string}\n setValue={(value: unknown) => {\n setValue(fieldKey, value);\n }}\n />\n {field.statement ? (\n <Statement\n {...(field.statement as StatementComponentProps['data'])}\n />\n ) : null}\n {field.extra ? field.extra : null}\n </>,\n fieldKey,\n );\n }\n\n if (!FieldComponent) {\n return (\n <p className='error'>Field type {fieldType} not supported</p>\n );\n }\n\n if (fieldType === 'select' && field.multiple) {\n FieldComponent = baseFields['multi-select'];\n }\n\n const fieldProps = omit(field, 'WrapperComponent');\n return wrapWithCustomWrapper(\n <>\n <FieldComponent\n {...fieldProps}\n name={fieldKey}\n component={components?.[fieldType as keyof Components]}\n />\n {field.statement ? (\n <Statement\n {...(field.statement as StatementComponentProps['data'])}\n />\n ) : null}\n {field.extra ? field.extra : null}\n </>,\n fieldKey,\n );\n })}\n {extra ? extra : null}\n {statement ? <Statement {...statement} /> : null}\n </div>\n </div>\n )}\n </fieldset>\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport { FormField } from '@/src/components/ui/form';\n\nimport { useFormFields, useTransformer } from '@/src/context';\nimport { Components, JSFField, $TSFixMe } from '@/src/types/remoteFlows';\nimport { getMinStartDate } from '@/src/components/form/utils';\n\nexport type DatePickerFieldProps = JSFField & {\n onChange?: (value: $TSFixMe) => 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 const transformHtml = useTransformer();\n\n let minDateValue: Date;\n if (rest.meta?.mot && typeof rest.meta.mot === 'number') {\n minDateValue = getMinStartDate(rest.meta.mot);\n } else if (typeof minDate === 'string') {\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 transformHtml,\n ...(minDateValue && { minDate: minDateValue.toISOString() }),\n ...(maxDateValue && { maxDate: maxDateValue.toISOString() }),\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: $TSFixMe) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customDatePickerFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormFields, useTransformer } 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 const transformHtml = useTransformer();\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 customFileUploadFieldProps: FieldFileDataProps = {\n name,\n description,\n label,\n multiple,\n accept,\n maxFileSize: maxSize,\n transformHtml,\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={customFileUploadFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport { useFormFields, useTransformer } 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({\n component,\n onChange,\n ...props\n}: NumberFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n const transformHtml = useTransformer();\n\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n const Component = component || components.number;\n\n if (!Component) {\n throw new Error(`Number component not found for field ${props.name}`);\n }\n\n const customNumberFieldProps = {\n onChange,\n transformHtml,\n ...props,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: number) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customNumberFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { FormField } from '@/src/components/ui/form';\nimport { useFormFields, useTransformer } 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 const transformHtml = useTransformer();\n\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 transformHtml,\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, useTransformer } 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 const transformHtml = useTransformer();\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 transformHtml,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: string | number) => {\n const isNumberType = Array.isArray(rest.jsonType)\n ? rest.jsonType.includes('number')\n : rest.jsonType === 'number';\n const maybeCastValue = isNumberType ? 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","import { useFormFields, useTransformer } from '@/src/context';\nimport { Components, JSFField, $TSFixMe } 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: $TSFixMe) => 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 const transformHtml = useTransformer();\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 transformHtml,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: $TSFixMe) => {\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, useTransformer } 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 const transformHtml = useTransformer();\n\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 transformHtml,\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, useTransformer } 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({ component, onChange, ...props }: EmailFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n const transformHtml = useTransformer();\n\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n const Component = component || components.email;\n\n if (!Component) {\n throw new Error(`Email component not found for field ${props.name}`);\n }\n\n const customEmailFieldProps = {\n onChange,\n transformHtml,\n ...props,\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={customEmailFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport { useEffect } from 'react';\nimport { FormField } from '../../ui/form';\nimport { Field } from '@/src/flows/types';\n\nexport function HiddenField(props: Field) {\n const { control, setValue } = useFormContext();\n\n // If the field has a forced/computed value (const === default), set it\n // If not it'll get the value from the form state\n useEffect(() => {\n if (\n props.const !== undefined &&\n props.const === props.default &&\n props.name\n ) {\n setValue(props.name, props.const);\n }\n }, [props.const, props.default, props.name, setValue]);\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","import { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nimport { JSFField, $TSFixMe } from '@/src/types/remoteFlows';\nimport { useFormFields, useTransformer } 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: $TSFixMe) => 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 transformHtml = useTransformer();\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 transformHtml,\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: $TSFixMe) => {\n field.onChange(value);\n props.onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={fieldData}\n />\n );\n }}\n />\n );\n}\n","import { useFormFields, useTransformer } from '@/src/context';\nimport { Components, JSFField, $TSFixMe } 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: $TSFixMe) => 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 const transformHtml = useTransformer();\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 transformHtml,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: $TSFixMe) => {\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 { FormField } from '@/src/components/ui/form';\nimport { useFormFields, useTransformer } from '@/src/context';\nimport { Components } from '@/src/types/remoteFlows';\nimport {\n useFormContext,\n ControllerFieldState,\n ControllerRenderProps,\n FieldValues,\n} from 'react-hook-form';\nimport { TelFieldComponentProps, TelFieldDataProps } from '@/src/types/fields';\nimport { useMemo, useCallback, useState, useEffect, useRef } from 'react';\n\nexport type Country = {\n name: string;\n dialCode: string;\n pattern: string;\n areaCodes?: string[];\n};\n\n/**\n * Removes all spaces from input.\n */\nfunction removeSpaces(value: string) {\n return value.replace(/\\s/g, '');\n}\n\nfunction getStructuredNumberFromInternationalNumber(\n internationalPhoneNumber: string = '',\n country?: Country,\n) {\n const baseRegex = new RegExp(\n `^(\\\\+|00)(\\\\d{${country?.dialCode?.length ?? 0}})(.*)$`,\n );\n const baseMatch = internationalPhoneNumber?.match(baseRegex);\n\n if (!baseMatch) {\n return {\n prefix: '',\n dialCode: '',\n phoneNumber: internationalPhoneNumber,\n };\n }\n\n const [, plusOrCallPrefix, dialCode, phoneNumber] = baseMatch;\n\n return {\n prefix: plusOrCallPrefix,\n dialCode,\n phoneNumber,\n };\n}\n\nfunction getCountryFromPhoneNumber(\n {\n dialCodes,\n dialCodeMaxLength,\n }: ReturnType<typeof getCountryDataByCountryCode>,\n internationalPhoneNumber: string,\n) {\n const { prefix } = getStructuredNumberFromInternationalNumber(\n internationalPhoneNumber,\n );\n\n if (!prefix) {\n return undefined;\n }\n\n // Try longest dial codes first - critical for US/Canada\n for (let i = dialCodeMaxLength + prefix.length; i > prefix.length; i--) {\n const dialCode = internationalPhoneNumber.slice(prefix.length, i);\n\n if (dialCodes[dialCode]) {\n return dialCodes[dialCode];\n }\n }\n\n return undefined;\n}\n\n/**\n * Creates a map of dial codes (including area codes) to country objects.\n * Handles countries like US/Canada that share +1 with different area codes.\n */\nexport function getCountryDataByCountryCode(countries: Country[]) {\n const dialCodes: Record<string, Country> = {};\n let dialCodeMaxLength = 0;\n\n countries.forEach((country) => {\n if (country.areaCodes) {\n // For countries with area codes (e.g., +1204, +1226)\n country.areaCodes.forEach((areaCode) => {\n const code = country.dialCode + areaCode;\n dialCodes[code] = country;\n if (code.length > dialCodeMaxLength) {\n dialCodeMaxLength = code.length;\n }\n });\n } else {\n // For countries with simple dial codes (e.g., +44, +351)\n dialCodes[country.dialCode] = country;\n if (country.dialCode.length > dialCodeMaxLength) {\n dialCodeMaxLength = country.dialCode.length;\n }\n }\n });\n\n return { dialCodes, dialCodeMaxLength };\n}\n\nfunction getAreaCodesFromPattern(pattern: string = '') {\n const codeGroupPattern = /\\(([^)]+)\\)/g;\n const groups = pattern.match(codeGroupPattern);\n\n if (groups?.length === 2) {\n return groups[1].replace(/\\(|\\)/g, '').split('|');\n }\n\n return undefined;\n}\n\nfunction transformSchemaToCountries(\n options: Array<{\n value: string;\n label: string;\n meta: { countryCode: string };\n pattern: string;\n }>,\n): Country[] {\n return options.map((option) => ({\n name: option.label,\n dialCode: option.meta.countryCode,\n pattern: option.pattern,\n areaCodes: getAreaCodesFromPattern(option.pattern),\n }));\n}\n\nexport function TelFieldRenderer({\n field,\n fieldState,\n fieldData,\n component: Component,\n onChangeCountryCode,\n onChangePhoneNumber,\n}: {\n field: ControllerRenderProps<FieldValues, string>;\n fieldState: ControllerFieldState;\n fieldData: TelFieldDataProps;\n component: React.ComponentType<TelFieldComponentProps>;\n onChangeCountryCode?: (newCountry: Country) => void;\n onChangePhoneNumber?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n}) {\n const { value: internationalPhoneNumber } = field;\n const { options } = fieldData;\n\n const countries = useMemo(\n () => transformSchemaToCountries(options),\n [options],\n );\n\n const countriesByCountryCode = useMemo(\n () => getCountryDataByCountryCode(countries),\n [countries],\n );\n\n // Track if the country change was due to manual selection\n const isManualSelectionRef = useRef(false);\n\n // Use state to track country, so manual selection is preserved\n const [country, setCountry] = useState<Country | undefined>(() =>\n getCountryFromPhoneNumber(\n getCountryDataByCountryCode(countries),\n internationalPhoneNumber || '',\n ),\n );\n\n // Re-detect country when phone number changes externally (e.g., form reset or area code typed)\n useEffect(() => {\n // Reset manual selection flag if field is cleared\n if (!internationalPhoneNumber || internationalPhoneNumber === '+') {\n isManualSelectionRef.current = false;\n }\n\n if (isManualSelectionRef.current) {\n return;\n }\n\n const detected = getCountryFromPhoneNumber(\n countriesByCountryCode,\n internationalPhoneNumber || '',\n );\n setCountry(detected);\n }, [internationalPhoneNumber, countriesByCountryCode]);\n\n const { prefix, phoneNumber: nationalPhoneNumber } = useMemo(\n () =>\n getStructuredNumberFromInternationalNumber(\n internationalPhoneNumber,\n country,\n ),\n [internationalPhoneNumber, country],\n );\n\n const handleCountryCodeChange = useCallback(\n (newCountry: Country) => {\n if (!newCountry) return;\n const newValue = `+${newCountry.dialCode}${nationalPhoneNumber}`;\n\n // Mark as manual selection to prevent useEffect from overriding\n isManualSelectionRef.current = true;\n\n // Update country state to preserve manual selection\n setCountry(newCountry);\n\n // Update React Hook Form state\n field.onChange(newValue);\n\n // Call optional external onChange\n if (onChangeCountryCode) {\n onChangeCountryCode(newCountry);\n }\n },\n [nationalPhoneNumber, field, onChangeCountryCode],\n );\n\n const handlePhoneNumberChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const valueWithoutSpaces = removeSpaces(event.target.value);\n let newValue: string;\n if (country) {\n newValue = `${prefix}${country.dialCode}${valueWithoutSpaces}`;\n } else {\n newValue = `${prefix}${valueWithoutSpaces}`;\n }\n // Update React Hook Form state\n field.onChange(newValue);\n\n // Call optional external onChange\n if (onChangePhoneNumber) {\n const syntheticEvent = {\n target: { value: newValue, name: field.name },\n } as React.ChangeEvent<HTMLInputElement>;\n onChangePhoneNumber(syntheticEvent);\n }\n },\n [country, prefix, field, onChangePhoneNumber],\n );\n\n const fieldDataWithComputedValues = useMemo(\n () => ({\n ...fieldData,\n onChangeCountryCode: handleCountryCodeChange,\n onChangePhoneNumber: handlePhoneNumberChange,\n currentCountry: country,\n nationalPhoneNumber,\n }),\n [\n fieldData,\n handleCountryCodeChange,\n handlePhoneNumberChange,\n country,\n nationalPhoneNumber,\n ],\n );\n\n return (\n <Component\n field={field}\n fieldState={fieldState}\n fieldData={fieldDataWithComputedValues}\n />\n );\n}\n\nexport type TelFieldProps = TelFieldDataProps & {\n name: string;\n component?: Components['tel'];\n};\n\nexport function TelField({\n name,\n description,\n label,\n onChangeCountryCode,\n onChangePhoneNumber,\n component,\n ...rest\n}: TelFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n const transformHtml = useTransformer();\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components.tel;\n if (!Component) {\n throw new Error(`Tel component not found for field ${name}`);\n }\n\n const customTelFieldProps: TelFieldDataProps = {\n name,\n description,\n label,\n transformHtml,\n ...rest,\n };\n\n return (\n <TelFieldRenderer\n field={field}\n fieldState={fieldState}\n fieldData={customTelFieldProps}\n component={Component}\n onChangeCountryCode={onChangeCountryCode}\n onChangePhoneNumber={onChangePhoneNumber}\n />\n );\n }}\n />\n );\n}\n","import * as React from 'react';\n\nimport { useFormFields, useTransformer } from '@/src/context';\nimport { Components, JSFField, $TSFixMe } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { TimeFieldDataProps } from '@/src/types/fields';\n\nexport type TimeFieldProps = JSFField & {\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n component?: Components['time'];\n};\n\nexport function TimeField({\n name,\n description,\n label,\n type,\n onChange,\n component,\n maxLength,\n ...rest\n}: TimeFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n const transformHtml = useTransformer();\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components?.time;\n\n if (!Component) {\n throw new Error(`Time component not found for field ${name}`);\n }\n\n const customTimeFieldProps: TimeFieldDataProps = {\n name,\n description,\n label,\n type,\n onChange,\n maxLength,\n transformHtml,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: $TSFixMe) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customTimeFieldProps}\n />\n );\n }}\n />\n );\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 { TelField } from './TelField';\nimport { TimeField } from './TimeField';\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 tel: TelField,\n time: TimeField,\n 'work-schedule': WorkScheduleField,\n};\n","import { useFormContext } from 'react-hook-form';\nimport { sanitizeHtml } from '@/src/lib/utils';\nimport { useEffect } from 'react';\nimport { HelpCenterDataProps } from '@/src/types/fields';\nimport { BaseFormDescription as Description } from '@/src/components/ui/form';\nimport { HelpCenter } from '@/src/components/shared/zendesk-drawer/HelpCenter';\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?: HelpCenterDataProps;\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 forcedValueDescription = statement?.description || description;\n\n const forcedValueTitle = statement?.title\n ? sanitizeHtml(statement?.title)\n : sanitizeHtml(label);\n\n const titleId = `forced-value-${name}-title`;\n const descriptionId = `forced-value-${name}-description`;\n\n useEffect(() => {\n setValue(name, value);\n }, [name, value, setValue]);\n\n const isHiddenValue = !forcedValueDescription && !statement?.title;\n\n if (isHiddenValue) {\n return null;\n }\n\n return (\n <div\n role='group'\n aria-labelledby={forcedValueTitle ? titleId : undefined}\n aria-describedby={forcedValueDescription ? descriptionId : undefined}\n >\n {forcedValueTitle && (\n <p\n id={titleId}\n className={`text-sm RemoteFlows__ForcedValue__Title__${name}`}\n dangerouslySetInnerHTML={{\n __html: forcedValueTitle,\n }}\n />\n )}\n <Description\n as='span'\n id={descriptionId}\n className={`text-xs RemoteFlows__ForcedValue__Description__${name}`}\n helpCenter={\n <HelpCenter\n className='RemoteFlows__ForcedValue__HelpCenterLink'\n helpCenter={helpCenter}\n />\n }\n >\n {forcedValueDescription}\n </Description>\n </div>\n );\n}\n"],"mappings":"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","names":["Fragment","useEffect","useRef","omit","jsx","DatePickerField","description","label","name","minDate","maxDate","onChange","component","rest","components","useFormFields","control","useFormContext","transformHtml","useTransformer","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","transformHtml","useTransformer","handleOnChange","field","sizeError","FormField","fieldState","Component","customFileUploadFieldProps","value","jsx","NumberField","component","onChange","props","components","useFormFields","control","useFormContext","transformHtml","useTransformer","FormField","field","fieldState","Component","customNumberFieldProps","__name","value","jsx","RadioGroupField","name","defaultValue","description","label","options","onChange","component","rest","components","useFormFields","control","useFormContext","transformHtml","useTransformer","FormField","field","fieldState","Component","customRadioGroupFieldProps","__name","value","jsx","SelectField","label","name","options","defaultValue","description","onChange","component","rest","control","useFormContext","components","useFormFields","transformHtml","useTransformer","FormField","field","fieldState","Component","customSelectFieldProps","__name","value","maybeCastValue","jsx","CountryField","label","name","options","defaultValue","description","onChange","$meta","component","rest","control","useFormContext","components","useFormFields","transformHtml","useTransformer","FormField","field","fieldState","Component","customSelectFieldProps","__name","value","jsx","TextAreaField","name","description","label","onChange","maxLength","component","rest","components","useFormFields","control","useFormContext","transformHtml","useTransformer","FormField","field","fieldState","Component","customTextAreaFieldProps","__name","evt","jsx","EmailField","component","onChange","props","components","useFormFields","control","useFormContext","transformHtml","useTransformer","FormField","field","fieldState","Component","customEmailFieldProps","__name","value","useEffect","jsx","HiddenField","props","control","setValue","useFormContext","useEffect","FormField","field","__name","useEffect","useState","jsx","WorkScheduleField","props","components","useFormFields","setValue","control","watch","useFormContext","transformHtml","useTransformer","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","transformHtml","useTransformer","FormField","field","fieldState","Component","customSelectFieldProps","__name","value","jsx","MoneyField","__name","props","NumberField","useMemo","useCallback","useState","useEffect","useRef","jsx","removeSpaces","value","__name","getStructuredNumberFromInternationalNumber","internationalPhoneNumber","country","baseRegex","baseMatch","plusOrCallPrefix","dialCode","phoneNumber","getCountryFromPhoneNumber","dialCodes","dialCodeMaxLength","prefix","getCountryDataByCountryCode","countries","areaCode","code","getAreaCodesFromPattern","pattern","codeGroupPattern","groups","transformSchemaToCountries","options","option","TelFieldRenderer","field","fieldState","fieldData","Component","onChangeCountryCode","onChangePhoneNumber","useMemo","countriesByCountryCode","isManualSelectionRef","useRef","setCountry","useState","useEffect","detected","nationalPhoneNumber","handleCountryCodeChange","useCallback","newCountry","newValue","handlePhoneNumberChange","event","valueWithoutSpaces","syntheticEvent","fieldDataWithComputedValues","TelField","name","description","label","component","rest","components","useFormFields","control","useFormContext","transformHtml","useTransformer","FormField","customTelFieldProps","jsx","TimeField","name","description","label","type","onChange","component","maxLength","rest","components","useFormFields","control","useFormContext","transformHtml","useTransformer","FormField","field","fieldState","Component","customTimeFieldProps","__name","value","baseFields","CheckBoxField","TextField","EmailField","MoneyField","SelectField","MultiSelectField","RadioGroupField","NumberField","FileUploadField","DatePickerField","TextAreaField","CountryField","HiddenField","TelField","TimeField","WorkScheduleField","useEffect","jsx","jsxs","ForcedValueField","name","value","description","statement","label","helpCenter","setValue","useFormContext","forcedValueDescription","forcedValueTitle","sanitizeHtml","titleId","descriptionId","useEffect","BaseFormDescription","HelpCenter","__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","fieldsetNeedsAllFormValues","field","watchedValues","allFormValues","prevValuesRef","useRef","triggerTimeoutRef","toggleExpanded","__name","useEffect","currentValues","previousValues","hasBeenSubmitted","hasChanged","i","ToggleComponent","FieldsetToggleButtonDefault","contentId","headerId","cn","ZendeskTriggerButton","BaseFormDescription","fieldType","fieldKey","isForcedValue","checkFieldHasForcedValue","wrapWithCustomWrapper","content","key","fieldProps","omit","ForcedValueField","FieldComponent","baseFields","Component","value","Statement"]}
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/TelField.tsx","../src/components/form/fields/TimeField.tsx","../src/components/form/fields/baseFields.tsx","../src/components/form/fields/ForcedValueField.tsx"],"sourcesContent":["import { useFormContext } from 'react-hook-form';\nimport { Fragment, useEffect, useRef } from 'react';\nimport omit from 'lodash.omit';\nimport { baseFields } from '@/src/components/form/fields/baseFields';\nimport { cn } 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';\nimport { checkFieldHasForcedValue } from '@/src/components/form/utils';\nimport { ForcedValueField } from '@/src/components/form/fields/ForcedValueField';\nimport { BaseFormDescription } from '@/src/components/ui/form';\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 fieldsetNeedsAllFormValues = fields.some(\n (field: $TSFixMe) => field.calculateDynamicProperties,\n );\n const watchedValues = watch(fieldNames);\n const allFormValues = fieldsetNeedsAllFormValues ? watch() : watchedValues;\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 <BaseFormDescription\n as='div'\n className='mb-5 RemoteFlows__FieldSetField__Description'\n >\n {description}\n </BaseFormDescription>\n ) : null}\n <div className='grid gap-4'>\n {fields.map((field: $TSFixMe) => {\n if (field.calculateDynamicProperties) {\n field = {\n ...field,\n ...(field.calculateDynamicProperties(allFormValues, field) ||\n {}),\n };\n }\n\n if (field.isVisible === false || field.deprecated) {\n return null; // Skip hidden or deprecated fields\n }\n\n const fieldType = field.type;\n const fieldKey = `${isFlatFieldset ? field.name : `${name}.${field.name}`}`;\n\n const isForcedValue = checkFieldHasForcedValue(field);\n\n // Helper function to wrap content with WrapperComponent if present\n const wrapWithCustomWrapper = (\n content: React.ReactNode,\n key: string,\n ) => {\n if (field.WrapperComponent) {\n return (\n <field.WrapperComponent key={key}>\n {content}\n </field.WrapperComponent>\n );\n }\n return <Fragment key={key}>{content}</Fragment>;\n };\n\n if (isForcedValue) {\n const fieldProps = omit(field, 'WrapperComponent');\n return wrapWithCustomWrapper(\n <ForcedValueField\n name={fieldKey}\n description={fieldProps.description}\n value={fieldProps.const}\n statement={fieldProps.statement}\n label={fieldProps.label}\n helpCenter={fieldProps.meta?.helpCenter}\n />,\n fieldKey,\n );\n }\n\n // Handle nested fieldsets\n if (fieldType === 'fieldset') {\n const fieldProps = omit(field, 'WrapperComponent');\n return wrapWithCustomWrapper(\n <FieldSetField\n {...(fieldProps as $TSFixMe)}\n name={fieldKey}\n components={components}\n />,\n fieldKey,\n );\n }\n\n if (fieldType === 'fieldset-flat') {\n const fieldProps = omit(field, 'WrapperComponent');\n return wrapWithCustomWrapper(\n <FieldSetField\n {...(fieldProps as $TSFixMe)}\n name={fieldKey}\n components={components}\n isFlatFieldset\n />,\n fieldKey,\n );\n }\n // We need to do the check after checking (field.type || field.inputType) === 'fieldset' or (field.type || field.inputType) === 'fieldset-flat'\n // circular dependency most likely\n let FieldComponent = baseFields[fieldType as BaseTypes];\n\n if (field.Component) {\n const { Component } = field as {\n Component: React.ComponentType<$TSFixMe>;\n };\n const fieldProps = omit(field, 'WrapperComponent');\n return wrapWithCustomWrapper(\n <>\n <Component\n {...fieldProps}\n value={watch(fieldKey) as string}\n setValue={(value: unknown) => {\n setValue(fieldKey, value);\n }}\n />\n {field.statement ? (\n <Statement\n {...(field.statement as StatementComponentProps['data'])}\n />\n ) : null}\n {field.extra ? field.extra : null}\n </>,\n fieldKey,\n );\n }\n\n if (!FieldComponent) {\n return (\n <p className='error'>Field type {fieldType} not supported</p>\n );\n }\n\n if (fieldType === 'select' && field.multiple) {\n FieldComponent = baseFields['multi-select'];\n }\n\n const fieldProps = omit(field, 'WrapperComponent');\n return wrapWithCustomWrapper(\n <>\n <FieldComponent\n {...fieldProps}\n name={fieldKey}\n component={components?.[fieldType as keyof Components]}\n />\n {field.statement ? (\n <Statement\n {...(field.statement as StatementComponentProps['data'])}\n />\n ) : null}\n {field.extra ? field.extra : null}\n </>,\n fieldKey,\n );\n })}\n {extra ? extra : null}\n {statement ? <Statement {...statement} /> : null}\n </div>\n </div>\n )}\n </fieldset>\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport { FormField } from '@/src/components/ui/form';\n\nimport { useFormFields, useTransformer } from '@/src/context';\nimport { Components, JSFField, $TSFixMe } from '@/src/types/remoteFlows';\nimport { getMinStartDate } from '@/src/components/form/utils';\n\nexport type DatePickerFieldProps = JSFField & {\n onChange?: (value: $TSFixMe) => 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 const transformHtml = useTransformer();\n\n let minDateValue: Date;\n if (rest.meta?.mot && typeof rest.meta.mot === 'number') {\n minDateValue = getMinStartDate(rest.meta.mot);\n } else if (typeof minDate === 'string') {\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 transformHtml,\n ...(minDateValue && { minDate: minDateValue.toISOString() }),\n ...(maxDateValue && { maxDate: maxDateValue.toISOString() }),\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: $TSFixMe) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customDatePickerFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormFields, useTransformer } 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 const transformHtml = useTransformer();\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 customFileUploadFieldProps: FieldFileDataProps = {\n name,\n description,\n label,\n multiple,\n accept,\n maxFileSize: maxSize,\n transformHtml,\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={customFileUploadFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport { useFormFields, useTransformer } 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({\n component,\n onChange,\n ...props\n}: NumberFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n const transformHtml = useTransformer();\n\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n const Component = component || components.number;\n\n if (!Component) {\n throw new Error(`Number component not found for field ${props.name}`);\n }\n\n const customNumberFieldProps = {\n onChange,\n transformHtml,\n ...props,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: number) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customNumberFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { FormField } from '@/src/components/ui/form';\nimport { useFormFields, useTransformer } 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 const transformHtml = useTransformer();\n\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 transformHtml,\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, useTransformer } 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 const transformHtml = useTransformer();\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 transformHtml,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: string | number) => {\n const isNumberType = Array.isArray(rest.jsonType)\n ? rest.jsonType.includes('number')\n : rest.jsonType === 'number';\n const maybeCastValue = isNumberType ? 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","import { useFormFields, useTransformer } from '@/src/context';\nimport { Components, JSFField, $TSFixMe } 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: $TSFixMe) => 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 const transformHtml = useTransformer();\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 transformHtml,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: $TSFixMe) => {\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, useTransformer } 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 const transformHtml = useTransformer();\n\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 transformHtml,\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, useTransformer } 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({ component, onChange, ...props }: EmailFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n const transformHtml = useTransformer();\n\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n const Component = component || components.email;\n\n if (!Component) {\n throw new Error(`Email component not found for field ${props.name}`);\n }\n\n const customEmailFieldProps = {\n onChange,\n transformHtml,\n ...props,\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={customEmailFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport { useEffect } from 'react';\nimport { FormField } from '../../ui/form';\nimport { Field } from '@/src/flows/types';\n\nexport function HiddenField(props: Field) {\n const { control, setValue } = useFormContext();\n\n // If the field has a forced/computed value (const === default), set it\n // If not it'll get the value from the form state\n useEffect(() => {\n if (\n props.const !== undefined &&\n props.const === props.default &&\n props.name\n ) {\n setValue(props.name, props.const);\n }\n }, [props.const, props.default, props.name, setValue]);\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","import { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nimport { JSFField, $TSFixMe } from '@/src/types/remoteFlows';\nimport { useFormFields, useTransformer } 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: $TSFixMe) => 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 transformHtml = useTransformer();\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 transformHtml,\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: $TSFixMe) => {\n field.onChange(value);\n props.onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={fieldData}\n />\n );\n }}\n />\n );\n}\n","import { useFormFields, useTransformer } from '@/src/context';\nimport { Components, JSFField, $TSFixMe } 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: $TSFixMe) => 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 const transformHtml = useTransformer();\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 transformHtml,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: $TSFixMe) => {\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 { FormField } from '@/src/components/ui/form';\nimport { useFormFields, useTransformer } from '@/src/context';\nimport { Components } from '@/src/types/remoteFlows';\nimport {\n useFormContext,\n ControllerFieldState,\n ControllerRenderProps,\n FieldValues,\n} from 'react-hook-form';\nimport { TelFieldComponentProps, TelFieldDataProps } from '@/src/types/fields';\nimport { useMemo, useCallback, useState, useEffect, useRef } from 'react';\n\nexport type Country = {\n name: string;\n dialCode: string;\n pattern: string;\n areaCodes?: string[];\n};\n\n/**\n * Removes all spaces from input.\n */\nfunction removeSpaces(value: string) {\n return value.replace(/\\s/g, '');\n}\n\nfunction getStructuredNumberFromInternationalNumber(\n internationalPhoneNumber: string = '',\n country?: Country,\n) {\n const baseRegex = new RegExp(\n `^(\\\\+|00)(\\\\d{${country?.dialCode?.length ?? 0}})(.*)$`,\n );\n const baseMatch = internationalPhoneNumber?.match(baseRegex);\n\n if (!baseMatch) {\n return {\n prefix: '',\n dialCode: '',\n phoneNumber: internationalPhoneNumber,\n };\n }\n\n const [, plusOrCallPrefix, dialCode, phoneNumber] = baseMatch;\n\n return {\n prefix: plusOrCallPrefix,\n dialCode,\n phoneNumber,\n };\n}\n\nfunction getCountryFromPhoneNumber(\n {\n dialCodes,\n dialCodeMaxLength,\n }: ReturnType<typeof getCountryDataByCountryCode>,\n internationalPhoneNumber: string,\n) {\n const { prefix } = getStructuredNumberFromInternationalNumber(\n internationalPhoneNumber,\n );\n\n if (!prefix) {\n return undefined;\n }\n\n // Try longest dial codes first - critical for US/Canada\n for (let i = dialCodeMaxLength + prefix.length; i > prefix.length; i--) {\n const dialCode = internationalPhoneNumber.slice(prefix.length, i);\n\n if (dialCodes[dialCode]) {\n return dialCodes[dialCode];\n }\n }\n\n return undefined;\n}\n\n/**\n * Creates a map of dial codes (including area codes) to country objects.\n * Handles countries like US/Canada that share +1 with different area codes.\n */\nexport function getCountryDataByCountryCode(countries: Country[]) {\n const dialCodes: Record<string, Country> = {};\n let dialCodeMaxLength = 0;\n\n countries.forEach((country) => {\n if (country.areaCodes) {\n // For countries with area codes (e.g., +1204, +1226)\n country.areaCodes.forEach((areaCode) => {\n const code = country.dialCode + areaCode;\n dialCodes[code] = country;\n if (code.length > dialCodeMaxLength) {\n dialCodeMaxLength = code.length;\n }\n });\n } else {\n // For countries with simple dial codes (e.g., +44, +351)\n dialCodes[country.dialCode] = country;\n if (country.dialCode.length > dialCodeMaxLength) {\n dialCodeMaxLength = country.dialCode.length;\n }\n }\n });\n\n return { dialCodes, dialCodeMaxLength };\n}\n\nfunction getAreaCodesFromPattern(pattern: string = '') {\n const codeGroupPattern = /\\(([^)]+)\\)/g;\n const groups = pattern.match(codeGroupPattern);\n\n if (groups?.length === 2) {\n return groups[1].replace(/\\(|\\)/g, '').split('|');\n }\n\n return undefined;\n}\n\nfunction transformSchemaToCountries(\n options: Array<{\n value: string;\n label: string;\n meta: { countryCode: string };\n pattern: string;\n }>,\n): Country[] {\n return options.map((option) => ({\n name: option.label,\n dialCode: option.meta.countryCode,\n pattern: option.pattern,\n areaCodes: getAreaCodesFromPattern(option.pattern),\n }));\n}\n\nexport function TelFieldRenderer({\n field,\n fieldState,\n fieldData,\n component: Component,\n onChangeCountryCode,\n onChangePhoneNumber,\n}: {\n field: ControllerRenderProps<FieldValues, string>;\n fieldState: ControllerFieldState;\n fieldData: TelFieldDataProps;\n component: React.ComponentType<TelFieldComponentProps>;\n onChangeCountryCode?: (newCountry: Country) => void;\n onChangePhoneNumber?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n}) {\n const { value: internationalPhoneNumber } = field;\n const { options } = fieldData;\n\n const countries = useMemo(\n () => transformSchemaToCountries(options),\n [options],\n );\n\n const countriesByCountryCode = useMemo(\n () => getCountryDataByCountryCode(countries),\n [countries],\n );\n\n // Track if the country change was due to manual selection\n const isManualSelectionRef = useRef(false);\n\n // Use state to track country, so manual selection is preserved\n const [country, setCountry] = useState<Country | undefined>(() =>\n getCountryFromPhoneNumber(\n getCountryDataByCountryCode(countries),\n internationalPhoneNumber || '',\n ),\n );\n\n // Re-detect country when phone number changes externally (e.g., form reset or area code typed)\n useEffect(() => {\n // Reset manual selection flag if field is cleared\n if (!internationalPhoneNumber || internationalPhoneNumber === '+') {\n isManualSelectionRef.current = false;\n }\n\n if (isManualSelectionRef.current) {\n return;\n }\n\n const detected = getCountryFromPhoneNumber(\n countriesByCountryCode,\n internationalPhoneNumber || '',\n );\n setCountry(detected);\n }, [internationalPhoneNumber, countriesByCountryCode]);\n\n const { prefix, phoneNumber: nationalPhoneNumber } = useMemo(\n () =>\n getStructuredNumberFromInternationalNumber(\n internationalPhoneNumber,\n country,\n ),\n [internationalPhoneNumber, country],\n );\n\n const handleCountryCodeChange = useCallback(\n (newCountry: Country) => {\n if (!newCountry) return;\n const newValue = `+${newCountry.dialCode}${nationalPhoneNumber}`;\n\n // Mark as manual selection to prevent useEffect from overriding\n isManualSelectionRef.current = true;\n\n // Update country state to preserve manual selection\n setCountry(newCountry);\n\n // Update React Hook Form state\n field.onChange(newValue);\n\n // Call optional external onChange\n if (onChangeCountryCode) {\n onChangeCountryCode(newCountry);\n }\n },\n [nationalPhoneNumber, field, onChangeCountryCode],\n );\n\n const handlePhoneNumberChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const valueWithoutSpaces = removeSpaces(event.target.value);\n let newValue: string;\n if (country) {\n newValue = `${prefix}${country.dialCode}${valueWithoutSpaces}`;\n } else {\n newValue = `${prefix}${valueWithoutSpaces}`;\n }\n // Update React Hook Form state\n field.onChange(newValue);\n\n // Call optional external onChange\n if (onChangePhoneNumber) {\n const syntheticEvent = {\n target: { value: newValue, name: field.name },\n } as React.ChangeEvent<HTMLInputElement>;\n onChangePhoneNumber(syntheticEvent);\n }\n },\n [country, prefix, field, onChangePhoneNumber],\n );\n\n const fieldDataWithComputedValues = useMemo(\n () => ({\n ...fieldData,\n onChangeCountryCode: handleCountryCodeChange,\n onChangePhoneNumber: handlePhoneNumberChange,\n currentCountry: country,\n nationalPhoneNumber,\n }),\n [\n fieldData,\n handleCountryCodeChange,\n handlePhoneNumberChange,\n country,\n nationalPhoneNumber,\n ],\n );\n\n return (\n <Component\n field={field}\n fieldState={fieldState}\n fieldData={fieldDataWithComputedValues}\n />\n );\n}\n\nexport type TelFieldProps = TelFieldDataProps & {\n name: string;\n component?: Components['tel'];\n};\n\nexport function TelField({\n name,\n description,\n label,\n onChangeCountryCode,\n onChangePhoneNumber,\n component,\n ...rest\n}: TelFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n const transformHtml = useTransformer();\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components.tel;\n if (!Component) {\n throw new Error(`Tel component not found for field ${name}`);\n }\n\n const customTelFieldProps: TelFieldDataProps = {\n name,\n description,\n label,\n transformHtml,\n ...rest,\n };\n\n return (\n <TelFieldRenderer\n field={field}\n fieldState={fieldState}\n fieldData={customTelFieldProps}\n component={Component}\n onChangeCountryCode={onChangeCountryCode}\n onChangePhoneNumber={onChangePhoneNumber}\n />\n );\n }}\n />\n );\n}\n","import * as React from 'react';\n\nimport { useFormFields, useTransformer } from '@/src/context';\nimport { Components, JSFField, $TSFixMe } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { TimeFieldDataProps } from '@/src/types/fields';\n\nexport type TimeFieldProps = JSFField & {\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n component?: Components['time'];\n};\n\nexport function TimeField({\n name,\n description,\n label,\n type,\n onChange,\n component,\n maxLength,\n ...rest\n}: TimeFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n const transformHtml = useTransformer();\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components?.time;\n\n if (!Component) {\n throw new Error(`Time component not found for field ${name}`);\n }\n\n const customTimeFieldProps: TimeFieldDataProps = {\n name,\n description,\n label,\n type,\n onChange,\n maxLength,\n transformHtml,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: $TSFixMe) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customTimeFieldProps}\n />\n );\n }}\n />\n );\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 { TelField } from './TelField';\nimport { TimeField } from './TimeField';\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 tel: TelField,\n time: TimeField,\n 'work-schedule': WorkScheduleField,\n};\n","import { useFormContext } from 'react-hook-form';\nimport { useEffect } from 'react';\nimport { useFormFields, useTransformer } from '@/src/context';\nimport { sanitizeHtml } from '@/src/lib/utils';\nimport { HelpCenterDataProps } from '@/src/types/fields';\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?: HelpCenterDataProps;\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 { components } = useFormFields();\n const transformHtml = useTransformer();\n\n useEffect(() => {\n setValue(name, value);\n }, [name, value, setValue]);\n\n const forcedValueDescription = statement?.description || description;\n const forcedValueTitle = statement?.title\n ? sanitizeHtml(statement.title)\n : sanitizeHtml(label);\n\n // A forced value with no title and no description has nothing to show the user, so we\n // skip rendering entirely (the value is still set on the form via the effect above).\n const isHiddenValue = !forcedValueDescription && !statement?.title;\n\n if (isHiddenValue) {\n return null;\n }\n\n const Component = components?.forcedValue;\n\n if (!Component) {\n throw new Error(`Forced value component not found for field ${name}`);\n }\n\n return (\n <Component\n fieldData={{\n name,\n value,\n title: forcedValueTitle,\n description: forcedValueDescription,\n meta: { helpCenter },\n transformHtml,\n }}\n />\n );\n}\n"],"mappings":"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","names":["Fragment","useEffect","useRef","omit","jsx","DatePickerField","description","label","name","minDate","maxDate","onChange","component","rest","components","useFormFields","control","useFormContext","transformHtml","useTransformer","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","transformHtml","useTransformer","handleOnChange","field","sizeError","FormField","fieldState","Component","customFileUploadFieldProps","value","jsx","NumberField","component","onChange","props","components","useFormFields","control","useFormContext","transformHtml","useTransformer","FormField","field","fieldState","Component","customNumberFieldProps","__name","value","jsx","RadioGroupField","name","defaultValue","description","label","options","onChange","component","rest","components","useFormFields","control","useFormContext","transformHtml","useTransformer","FormField","field","fieldState","Component","customRadioGroupFieldProps","__name","value","jsx","SelectField","label","name","options","defaultValue","description","onChange","component","rest","control","useFormContext","components","useFormFields","transformHtml","useTransformer","FormField","field","fieldState","Component","customSelectFieldProps","__name","value","maybeCastValue","jsx","CountryField","label","name","options","defaultValue","description","onChange","$meta","component","rest","control","useFormContext","components","useFormFields","transformHtml","useTransformer","FormField","field","fieldState","Component","customSelectFieldProps","__name","value","jsx","TextAreaField","name","description","label","onChange","maxLength","component","rest","components","useFormFields","control","useFormContext","transformHtml","useTransformer","FormField","field","fieldState","Component","customTextAreaFieldProps","__name","evt","jsx","EmailField","component","onChange","props","components","useFormFields","control","useFormContext","transformHtml","useTransformer","FormField","field","fieldState","Component","customEmailFieldProps","__name","value","useEffect","jsx","HiddenField","props","control","setValue","useFormContext","useEffect","FormField","field","__name","useEffect","useState","jsx","WorkScheduleField","props","components","useFormFields","setValue","control","watch","useFormContext","transformHtml","useTransformer","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","transformHtml","useTransformer","FormField","field","fieldState","Component","customSelectFieldProps","__name","value","jsx","MoneyField","__name","props","NumberField","useMemo","useCallback","useState","useEffect","useRef","jsx","removeSpaces","value","__name","getStructuredNumberFromInternationalNumber","internationalPhoneNumber","country","baseRegex","baseMatch","plusOrCallPrefix","dialCode","phoneNumber","getCountryFromPhoneNumber","dialCodes","dialCodeMaxLength","prefix","getCountryDataByCountryCode","countries","areaCode","code","getAreaCodesFromPattern","pattern","codeGroupPattern","groups","transformSchemaToCountries","options","option","TelFieldRenderer","field","fieldState","fieldData","Component","onChangeCountryCode","onChangePhoneNumber","useMemo","countriesByCountryCode","isManualSelectionRef","useRef","setCountry","useState","useEffect","detected","nationalPhoneNumber","handleCountryCodeChange","useCallback","newCountry","newValue","handlePhoneNumberChange","event","valueWithoutSpaces","syntheticEvent","fieldDataWithComputedValues","TelField","name","description","label","component","rest","components","useFormFields","control","useFormContext","transformHtml","useTransformer","FormField","customTelFieldProps","jsx","TimeField","name","description","label","type","onChange","component","maxLength","rest","components","useFormFields","control","useFormContext","transformHtml","useTransformer","FormField","field","fieldState","Component","customTimeFieldProps","__name","value","baseFields","CheckBoxField","TextField","EmailField","MoneyField","SelectField","MultiSelectField","RadioGroupField","NumberField","FileUploadField","DatePickerField","TextAreaField","CountryField","HiddenField","TelField","TimeField","WorkScheduleField","useEffect","jsx","ForcedValueField","name","value","description","statement","label","helpCenter","setValue","useFormContext","components","useFormFields","transformHtml","useTransformer","useEffect","forcedValueDescription","forcedValueTitle","sanitizeHtml","Component","__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","fieldsetNeedsAllFormValues","field","watchedValues","allFormValues","prevValuesRef","useRef","triggerTimeoutRef","toggleExpanded","__name","useEffect","currentValues","previousValues","hasBeenSubmitted","hasChanged","i","ToggleComponent","FieldsetToggleButtonDefault","contentId","headerId","cn","ZendeskTriggerButton","BaseFormDescription","fieldType","fieldKey","isForcedValue","checkFieldHasForcedValue","wrapWithCustomWrapper","content","key","fieldProps","omit","ForcedValueField","FieldComponent","baseFields","Component","value","Statement"]}
@@ -1,2 +1,2 @@
1
- import{a as s}from"./chunk-O3Y4DVNY.js";import{b as a}from"./chunk-Q3ALCPJN.js";import{x as n}from"./chunk-NXRWBI36.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as E}from"react/jsx-runtime";function S({onSubmit:l,onSuccess:u,onError:m}){let{contractorOnboardingBag:i}=a(),d=e(async(t,b)=>{try{let o=await i.parseFormValues(t);await l?.(o);let r=await i.onSubmit(t);if(r?.data){await u?.(r?.data),r?._skipNextStep||i?.next();return}}catch(o){let r=n(o,i.meta?.fields?.eligibility_questionnaire,b);m?.(r)}},"handleSubmit"),p=i.stepState.values?.eligibility_questionnaire||i.initialValues.eligibility_questionnaire;return E(s,{defaultValues:p,onSubmit:d})}e(S,"EligibilityQuestionnaireStep");export{S as a};
2
- //# sourceMappingURL=chunk-2QQZODFC.js.map
1
+ import{a as s}from"./chunk-CT7POXIP.js";import{b as a}from"./chunk-Q3ALCPJN.js";import{x as n}from"./chunk-NXRWBI36.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as E}from"react/jsx-runtime";function S({onSubmit:l,onSuccess:u,onError:m}){let{contractorOnboardingBag:i}=a(),d=e(async(t,b)=>{try{let o=await i.parseFormValues(t);await l?.(o);let r=await i.onSubmit(t);if(r?.data){await u?.(r?.data),r?._skipNextStep||i?.next();return}}catch(o){let r=n(o,i.meta?.fields?.eligibility_questionnaire,b);m?.(r)}},"handleSubmit"),p=i.stepState.values?.eligibility_questionnaire||i.initialValues.eligibility_questionnaire;return E(s,{defaultValues:p,onSubmit:d})}e(S,"EligibilityQuestionnaireStep");export{S as a};
2
+ //# sourceMappingURL=chunk-O4MWPCG5.js.map
@@ -1,2 +1,2 @@
1
- import{a as P,b as W,c as u}from"./chunk-75N7DFXJ.js";import{a as l}from"./chunk-CM4UUBU5.js";import{c as y}from"./chunk-4FGKIGKF.js";import{j as h,m as x}from"./chunk-NXRWBI36.js";import{a as c}from"./chunk-P37U34EQ.js";import{Fragment as $}from"react";import a from"lodash.omit";var C={...P,fieldset:u,"fieldset-flat":u};import{Fragment as S,jsx as n,jsxs as g}from"react/jsx-runtime";var B=c(({fields:p,fieldsets:d,fieldValues:i,components:m})=>{let{setValue:T,watch:M}=y();if(!p||p.length===0)return null;let J=d&&i?h({fields:p,fieldsets:d,values:i}):p,r=c((e,F,o)=>F.WrapperComponent?n(F.WrapperComponent,{children:e},o):n($,{children:e},o),"wrapWithCustomWrapper");return n(S,{children:J.map(e=>{if(e.calculateDynamicProperties&&(e={...e,...e.calculateDynamicProperties(i,e)||{}}),e.isVisible===!1||e.deprecated||e.hidden)return null;if(x(e)){let t=a(e,"WrapperComponent");return r(n(W,{name:t.name,description:t.description,value:t.const,statement:t.statement,label:t.label,helpCenter:t.meta?.helpCenter}),e,e.name)}if(e.Component){let{Component:t}=e,R=a(e,["Component","WrapperComponent"]);return r(g(S,{children:[n(t,{...R,value:M(e.name),setValue:V=>T(e.name,V)}),e.statement?n(l,{...e.statement}):null,e.extra?e.extra:null]}),e,e.name)}let o=e.type,s=C[o];if(!s)return g("p",{className:"error",children:["Field type ",o," not supported"]});if(o==="fieldset"){let t=a(e,"WrapperComponent");return r(n(s,{...t,components:m}),e,e.name)}if(o==="fieldset-flat"){let t=a(e,"WrapperComponent");return r(n(s,{...t,components:m,isFlatFieldset:!0}),e,e.name)}o==="select"&&e.multiple&&(s=C["multi-select"]);let k=a(e,"WrapperComponent");return r(g(S,{children:[n(s,{...k,component:m&&m[o]}),e.statement?n(l,{...e.statement}):null,e.extra?e.extra:null]}),e,e.name)})})},"JSONSchemaFormFields");export{B as a};
2
- //# sourceMappingURL=chunk-TMS5VMVV.js.map
1
+ import{a as P,b as W,c as u}from"./chunk-NRH6RION.js";import{a as l}from"./chunk-CM4UUBU5.js";import{c as y}from"./chunk-4FGKIGKF.js";import{j as h,m as x}from"./chunk-NXRWBI36.js";import{a as c}from"./chunk-P37U34EQ.js";import{Fragment as $}from"react";import a from"lodash.omit";var C={...P,fieldset:u,"fieldset-flat":u};import{Fragment as S,jsx as n,jsxs as g}from"react/jsx-runtime";var B=c(({fields:p,fieldsets:d,fieldValues:i,components:m})=>{let{setValue:T,watch:M}=y();if(!p||p.length===0)return null;let J=d&&i?h({fields:p,fieldsets:d,values:i}):p,r=c((e,F,o)=>F.WrapperComponent?n(F.WrapperComponent,{children:e},o):n($,{children:e},o),"wrapWithCustomWrapper");return n(S,{children:J.map(e=>{if(e.calculateDynamicProperties&&(e={...e,...e.calculateDynamicProperties(i,e)||{}}),e.isVisible===!1||e.deprecated||e.hidden)return null;if(x(e)){let t=a(e,"WrapperComponent");return r(n(W,{name:t.name,description:t.description,value:t.const,statement:t.statement,label:t.label,helpCenter:t.meta?.helpCenter}),e,e.name)}if(e.Component){let{Component:t}=e,R=a(e,["Component","WrapperComponent"]);return r(g(S,{children:[n(t,{...R,value:M(e.name),setValue:V=>T(e.name,V)}),e.statement?n(l,{...e.statement}):null,e.extra?e.extra:null]}),e,e.name)}let o=e.type,s=C[o];if(!s)return g("p",{className:"error",children:["Field type ",o," not supported"]});if(o==="fieldset"){let t=a(e,"WrapperComponent");return r(n(s,{...t,components:m}),e,e.name)}if(o==="fieldset-flat"){let t=a(e,"WrapperComponent");return r(n(s,{...t,components:m,isFlatFieldset:!0}),e,e.name)}o==="select"&&e.multiple&&(s=C["multi-select"]);let k=a(e,"WrapperComponent");return r(g(S,{children:[n(s,{...k,component:m&&m[o]}),e.statement?n(l,{...e.statement}):null,e.extra?e.extra:null]}),e,e.name)})})},"JSONSchemaFormFields");export{B as a};
2
+ //# sourceMappingURL=chunk-OEPT3ASY.js.map
@@ -1,2 +1,2 @@
1
- import{a as g}from"./chunk-LQFLXXBR.js";import{a as h,b as N,c as T,d as $,e as v,f as S}from"./chunk-HFFQ642D.js";import{a as b}from"./chunk-MZN6VY5F.js";import{j as C,k as p,n as F,o as y}from"./chunk-4FGKIGKF.js";import{a as _}from"./chunk-P37U34EQ.js";import{jsx as e,jsxs as t}from"react/jsx-runtime";function B({field:f,fieldState:r,fieldData:n}){let{name:m,label:s,description:c,options:i,onChangeCountryCode:d,onChangePhoneNumber:w,currentCountry:o,nationalPhoneNumber:I}=n,R=o?`${o.name}-${o.dialCode}`:"";return t(C,{"data-field":m,className:`RemoteFlows__TelField__Item__${m}`,children:[s&&e(p,{className:"RemoteFlows__TelField__Label",children:s}),t("div",{className:"flex gap-2",children:[e("div",{className:"w-[180px]",children:t(h,{value:R,onValueChange:l=>{let a=i?.find(u=>`${u.label}-${u.meta?.countryCode}`===l);a&&d&&d({name:a.label,dialCode:a.meta?.countryCode||"",pattern:a.pattern||""})},children:[e($,{className:"RemoteFlows__TelField__CountrySelect","aria-invalid":!!r.error,"aria-label":"Country code",children:e("span",{className:"absolute",children:e(T,{placeholder:"Country code *",children:o&&`${o.name} +${o.dialCode}`})})}),e(v,{className:"RemoteFlows__TelField__CountryContent",children:e(N,{className:"RemoteFlows__TelField__CountryGroup",children:i?.map((l,a)=>t(S,{value:`${l.label}-${l.meta?.countryCode}`,className:"RemoteFlows__TelField__CountryItem",children:[l.label," +",l.meta?.countryCode]},`${l.label}-${l.meta?.countryCode}-${a}`))})})]})}),e("div",{className:"flex-1",children:e(g,{...f,type:"tel",value:I||"",onChange:w,className:"RemoteFlows__TelField__Input",placeholder:"Employee's phone number *","aria-invalid":!!r.error,"aria-label":"Phone number"})})]}),(c||n.meta?.helpCenter)&&e(F,{className:"RemoteFlows__TelField__Description",helpCenter:e(b,{helpCenter:n.meta?.helpCenter}),children:c}),r.error&&e(y,{})]})}_(B,"TelFieldDefault");export{B as a};
2
- //# sourceMappingURL=chunk-UHFNNG5S.js.map
1
+ import{a as b}from"./chunk-RKXF7Q7V.js";import{a as g}from"./chunk-LQFLXXBR.js";import{a as h,b as N,c as T,d as $,e as v,f as S}from"./chunk-HFFQ642D.js";import{j as C,k as p,n as F,o as y}from"./chunk-4FGKIGKF.js";import{a as _}from"./chunk-P37U34EQ.js";import{jsx as e,jsxs as t}from"react/jsx-runtime";function B({field:f,fieldState:r,fieldData:n}){let{name:m,label:s,description:c,options:i,onChangeCountryCode:d,onChangePhoneNumber:w,currentCountry:o,nationalPhoneNumber:I}=n,R=o?`${o.name}-${o.dialCode}`:"";return t(C,{"data-field":m,className:`RemoteFlows__TelField__Item__${m}`,children:[s&&e(p,{className:"RemoteFlows__TelField__Label",children:s}),t("div",{className:"flex gap-2",children:[e("div",{className:"w-[180px]",children:t(h,{value:R,onValueChange:l=>{let a=i?.find(u=>`${u.label}-${u.meta?.countryCode}`===l);a&&d&&d({name:a.label,dialCode:a.meta?.countryCode||"",pattern:a.pattern||""})},children:[e($,{className:"RemoteFlows__TelField__CountrySelect","aria-invalid":!!r.error,"aria-label":"Country code",children:e("span",{className:"absolute",children:e(T,{placeholder:"Country code *",children:o&&`${o.name} +${o.dialCode}`})})}),e(v,{className:"RemoteFlows__TelField__CountryContent",children:e(N,{className:"RemoteFlows__TelField__CountryGroup",children:i?.map((l,a)=>t(S,{value:`${l.label}-${l.meta?.countryCode}`,className:"RemoteFlows__TelField__CountryItem",children:[l.label," +",l.meta?.countryCode]},`${l.label}-${l.meta?.countryCode}-${a}`))})})]})}),e("div",{className:"flex-1",children:e(g,{...f,type:"tel",value:I||"",onChange:w,className:"RemoteFlows__TelField__Input",placeholder:"Employee's phone number *","aria-invalid":!!r.error,"aria-label":"Phone number"})})]}),(c||n.meta?.helpCenter)&&e(F,{className:"RemoteFlows__TelField__Description",helpCenter:e(b,{helpCenter:n.meta?.helpCenter}),children:c}),r.error&&e(y,{})]})}_(B,"TelFieldDefault");export{B as a};
2
+ //# sourceMappingURL=chunk-OEQXIWJJ.js.map
@@ -1,2 +1,2 @@
1
- import{b as f}from"./chunk-PGWKJ6FK.js";import{a as l}from"./chunk-G3QDDD53.js";import{a as d}from"./chunk-TMS5VMVV.js";import{h as m}from"./chunk-4FGKIGKF.js";import{c as s}from"./chunk-NXRWBI36.js";import{a as t}from"./chunk-P37U34EQ.js";import{useEffect as k}from"react";import{jsx as c}from"react/jsx-runtime";import{createElement as w}from"react";function R({defaultValues:p,onSubmit:F,components:u}){let{formId:S,onboardingBag:e}=f(),r=l({handleValidation:e.handleValidation,defaultValues:p,checkFieldUpdates:e.checkFieldUpdates});k(()=>{e.employmentId&&e?.checkFieldUpdates(r.getValues())},[]);let g=t(async(a,y)=>{let n=y?.nativeEvent;if(n?.isDraftSubmission){let{onSuccess:E,onError:i}=n.draftCallbacks;try{let o=await e.onSubmit(a);if(o?.data)E?.();else if(o?.error){let b=e.stepState.currentStep.name,h=e.meta?.fields?.[b],P=s(o?.fieldErrors||[],h);i?.({error:o.error,rawError:o.rawError,fieldErrors:P})}}catch(o){i?.({error:o,rawError:o,fieldErrors:[]})}}else await F(a)},"handleSubmit");return w(m,{...r,key:`form-${e.stepState.currentStep.name}`},c("form",{id:S,onSubmit:r.handleSubmit(g),className:"space-y-4 RemoteFlows__OnboardingForm",children:c(d,{components:u,fields:e.fields,fieldsets:e.meta.fieldsets,fieldValues:e.fieldValues})}))}t(R,"OnboardingForm");export{R as a};
2
- //# sourceMappingURL=chunk-2CGPCBQY.js.map
1
+ import{b as f}from"./chunk-PGWKJ6FK.js";import{a as l}from"./chunk-G3QDDD53.js";import{a as d}from"./chunk-OEPT3ASY.js";import{h as m}from"./chunk-4FGKIGKF.js";import{c as s}from"./chunk-NXRWBI36.js";import{a as t}from"./chunk-P37U34EQ.js";import{useEffect as k}from"react";import{jsx as c}from"react/jsx-runtime";import{createElement as w}from"react";function R({defaultValues:p,onSubmit:F,components:u}){let{formId:S,onboardingBag:e}=f(),r=l({handleValidation:e.handleValidation,defaultValues:p,checkFieldUpdates:e.checkFieldUpdates});k(()=>{e.employmentId&&e?.checkFieldUpdates(r.getValues())},[]);let g=t(async(a,y)=>{let n=y?.nativeEvent;if(n?.isDraftSubmission){let{onSuccess:E,onError:i}=n.draftCallbacks;try{let o=await e.onSubmit(a);if(o?.data)E?.();else if(o?.error){let b=e.stepState.currentStep.name,h=e.meta?.fields?.[b],P=s(o?.fieldErrors||[],h);i?.({error:o.error,rawError:o.rawError,fieldErrors:P})}}catch(o){i?.({error:o,rawError:o,fieldErrors:[]})}}else await F(a)},"handleSubmit");return w(m,{...r,key:`form-${e.stepState.currentStep.name}`},c("form",{id:S,onSubmit:r.handleSubmit(g),className:"space-y-4 RemoteFlows__OnboardingForm",children:c(d,{components:u,fields:e.fields,fieldsets:e.meta.fieldsets,fieldValues:e.fieldValues})}))}t(R,"OnboardingForm");export{R as a};
2
+ //# sourceMappingURL=chunk-OGRQ3NTD.js.map
@@ -1,2 +1,2 @@
1
- import{a as d,b as w}from"./chunk-Y3G3JGLP.js";import{a as g}from"./chunk-3O7L6JUX.js";import{a as E}from"./chunk-S5BNS2JE.js";import{H as P,ba as F,e as _}from"./chunk-XPITUVQE.js";import{b as h,h as C}from"./chunk-NXRWBI36.js";import{a as j}from"./chunk-XPVYX7LE.js";import{e as c}from"./chunk-H2O4CVKF.js";import{a as e}from"./chunk-P37U34EQ.js";import{useMutation as b,useQuery as I}from"@tanstack/react-query";var B=e(({countryCode:n,employment:r,fieldValues:a,options:t})=>{let{client:u}=c(),m=t?.jsonSchemaVersion?.contract_amendments?{json_schema_version:t.jsonSchemaVersion.contract_amendments}:{};return I({queryKey:["contract-amendment-schema"],retry:!1,queryFn:e(async()=>{let o=await _({client:u,headers:{Authorization:""},query:{employment_id:r?.id,country_code:n,...m}});if(o.error||!o.data)throw new Error("Failed to fetch contract amendment schema");return o},"queryFn"),enabled:!!r,select:e(({data:o})=>{let l=o?.data||{};return E(l,a,t)},"select")})},"useContractAmendmentSchemaQuery"),J=e(n=>{let{client:r}=c(),a=n?.jsonSchemaVersion?.contract_amendments?{json_schema_version:n.jsonSchemaVersion.contract_amendments}:{};return b({mutationFn:e(t=>P({client:r,headers:{Authorization:""},body:t,query:{...a}}),"mutationFn")})},"useCreateContractAmendmentMutation"),K=e(n=>{let{client:r}=c(),a=n?.jsonSchemaVersion?.contract_amendments?{json_schema_version:n.jsonSchemaVersion.contract_amendments}:{};return b({mutationFn:e(t=>F({client:r,headers:{Authorization:""},body:t,query:{...a}}),"mutationFn")})},"useAutomatableContractAmendmentMutation"),te=e(({employmentId:n,countryCode:r,options:a})=>{let{fieldValues:t,setFieldValues:u,stepState:m,nextStep:o,previousStep:l}=j(d),{data:i,isLoading:v,isError:q,error:Q}=g({employmentId:n,queryParams:{exclude_files:!0}}),{data:s,isLoading:L,isError:M,error:T}=B({employment:i,countryCode:r,fieldValues:{...m.values?.[m.currentStep.name],...t},options:a}),k=w(i,s?.fields),S=J(a),A=K(a);async function x(p){let f=await C(p,s?.fields||[],{isPartialValidation:!1}),V={employment_id:i?.id,amendment_contract_id:i?.active_contract_id,contract_amendment:{...f}};switch(m.currentStep.name){case d.form.name:{let{mutateAsync:y}=h(A),H=await y(V);return o(),H}case d.confirmation_form.name:{let{mutateAsync:y}=h(S);return y(V)}default:throw new Error("Invalid step state")}}e(x,"onSubmit");async function z(p){if(s){let f=await C(p,s?.fields);return s?.handleValidation(f)}return null}e(z,"handleValidation");function O(){l()}return e(O,"back"),{stepState:m,fields:s?.fields||[],isLoading:v||L,isError:q||M,error:Q||T,isSubmitting:A.isPending||S.isPending,initialValues:k,values:t,handleValidation:z,checkFieldUpdates:u,onSubmit:x,back:O}},"useContractAmendment");export{te as a};
2
- //# sourceMappingURL=chunk-FFFB5CG2.js.map
1
+ import{a as d,b as w}from"./chunk-Y3G3JGLP.js";import{a as g}from"./chunk-MREG2JYT.js";import{a as E}from"./chunk-S5BNS2JE.js";import{H as P,aa as F,e as _}from"./chunk-XI55YG73.js";import{b as h,h as C}from"./chunk-NXRWBI36.js";import{a as j}from"./chunk-XPVYX7LE.js";import{e as c}from"./chunk-H2O4CVKF.js";import{a as e}from"./chunk-P37U34EQ.js";import{useMutation as b,useQuery as I}from"@tanstack/react-query";var B=e(({countryCode:n,employment:r,fieldValues:a,options:t})=>{let{client:u}=c(),m=t?.jsonSchemaVersion?.contract_amendments?{json_schema_version:t.jsonSchemaVersion.contract_amendments}:{};return I({queryKey:["contract-amendment-schema"],retry:!1,queryFn:e(async()=>{let o=await _({client:u,headers:{Authorization:""},query:{employment_id:r?.id,country_code:n,...m}});if(o.error||!o.data)throw new Error("Failed to fetch contract amendment schema");return o},"queryFn"),enabled:!!r,select:e(({data:o})=>{let l=o?.data||{};return E(l,a,t)},"select")})},"useContractAmendmentSchemaQuery"),J=e(n=>{let{client:r}=c(),a=n?.jsonSchemaVersion?.contract_amendments?{json_schema_version:n.jsonSchemaVersion.contract_amendments}:{};return b({mutationFn:e(t=>P({client:r,headers:{Authorization:""},body:t,query:{...a}}),"mutationFn")})},"useCreateContractAmendmentMutation"),K=e(n=>{let{client:r}=c(),a=n?.jsonSchemaVersion?.contract_amendments?{json_schema_version:n.jsonSchemaVersion.contract_amendments}:{};return b({mutationFn:e(t=>F({client:r,headers:{Authorization:""},body:t,query:{...a}}),"mutationFn")})},"useAutomatableContractAmendmentMutation"),te=e(({employmentId:n,countryCode:r,options:a})=>{let{fieldValues:t,setFieldValues:u,stepState:m,nextStep:o,previousStep:l}=j(d),{data:i,isLoading:v,isError:q,error:Q}=g({employmentId:n,queryParams:{exclude_files:!0}}),{data:s,isLoading:L,isError:M,error:T}=B({employment:i,countryCode:r,fieldValues:{...m.values?.[m.currentStep.name],...t},options:a}),k=w(i,s?.fields),S=J(a),A=K(a);async function x(p){let f=await C(p,s?.fields||[],{isPartialValidation:!1}),V={employment_id:i?.id,amendment_contract_id:i?.active_contract_id,contract_amendment:{...f}};switch(m.currentStep.name){case d.form.name:{let{mutateAsync:y}=h(A),H=await y(V);return o(),H}case d.confirmation_form.name:{let{mutateAsync:y}=h(S);return y(V)}default:throw new Error("Invalid step state")}}e(x,"onSubmit");async function z(p){if(s){let f=await C(p,s?.fields);return s?.handleValidation(f)}return null}e(z,"handleValidation");function O(){l()}return e(O,"back"),{stepState:m,fields:s?.fields||[],isLoading:v||L,isError:q||M,error:Q||T,isSubmitting:A.isPending||S.isPending,initialValues:k,values:t,handleValidation:z,checkFieldUpdates:u,onSubmit:x,back:O}},"useContractAmendment");export{te as a};
2
+ //# sourceMappingURL=chunk-OHNH7V7X.js.map
@@ -1,2 +1,2 @@
1
- import{a as i}from"./chunk-OUFFAMO5.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-RBUSLLAQ.js.map
1
+ import{a as i}from"./chunk-IQZ63FQX.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-ORXD3SB2.js.map
@@ -1,2 +1,2 @@
1
- import{a as m}from"./chunk-2CGPCBQY.js";import{b as a}from"./chunk-PGWKJ6FK.js";import{c as s,i as t}from"./chunk-NXRWBI36.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as E}from"react/jsx-runtime";function P({components:d,onSubmit:l,onError:i,onSuccess:f}){let{onboardingBag:o}=a(),p=o.fields??[],c=t(p,o.initialValues.benefits);return E(m,{defaultValues:c,components:d,onSubmit:e(async n=>{try{await l?.(n);let r=await o.onSubmit(n);if(r?.data){await f?.(r.data),o?.next();return}if(r?.error){let u=s(r?.fieldErrors||[],o.meta?.fields?.benefits);i?.({error:r.error,rawError:r.rawError,fieldErrors:u})}}catch(r){i?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit")})}e(P,"BenefitsStep");export{P as a};
2
- //# sourceMappingURL=chunk-6AZKF6RW.js.map
1
+ import{a as m}from"./chunk-OGRQ3NTD.js";import{b as a}from"./chunk-PGWKJ6FK.js";import{c as s,i as t}from"./chunk-NXRWBI36.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as E}from"react/jsx-runtime";function P({components:d,onSubmit:l,onError:i,onSuccess:f}){let{onboardingBag:o}=a(),p=o.fields??[],c=t(p,o.initialValues.benefits);return E(m,{defaultValues:c,components:d,onSubmit:e(async n=>{try{await l?.(n);let r=await o.onSubmit(n);if(r?.data){await f?.(r.data),o?.next();return}if(r?.error){let u=s(r?.fieldErrors||[],o.meta?.fields?.benefits);i?.({error:r.error,rawError:r.rawError,fieldErrors:u})}}catch(r){i?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit")})}e(P,"BenefitsStep");export{P as a};
2
+ //# sourceMappingURL=chunk-P32JWGIE.js.map
@@ -1,2 +1,2 @@
1
- import{a as ee}from"./chunk-NI4K773A.js";import{a as z}from"./chunk-VFRHMNLJ.js";import{a as W,b as X,c as Y,f as Z}from"./chunk-XVZQBTB3.js";import{a as C}from"./chunk-HN5HLFTB.js";import{a as I}from"./chunk-KFYWUBRS.js";import{c as te}from"./chunk-75N7DFXJ.js";import{a as Q}from"./chunk-S5BNS2JE.js";import{b as G,h as M}from"./chunk-NXRWBI36.js";import{a as o}from"./chunk-P37U34EQ.js";import{number as Te,object as le}from"yup";import{useCallback as we,useEffect as ne,useMemo as Re,useRef as Pe,useState as j}from"react";import{string as re,ValidationError as ie}from"yup";import{jsx as ae}from"react/jsx-runtime";var O={title:"Estimation",includeBenefits:!1,includeCostBreakdowns:!1,includePremiumBenefits:!1,enableCurrencyConversion:!1,includeEstimationTitle:!1,includeManagementFee:!1},xe=o(t=>Q(z.data.schema,void 0,t),"useStaticSchema");function Be(t,i){if(typeof t=="object"&&t!==null&&"title"in t){let l=t.title;if(l)return l}return i==="my_hiring_budget"?"Hiring budget":"Employee's annual salary"}o(Be,"getSalaryTitle");var Qe=o(({defaultRegion:t,defaultCurrency:i,defaultSalary:l,estimationOptions:s,options:n,version:a}={estimationOptions:O})=>{let c=Pe({fields:{}}),[k,h]=j(t),[w,R]=j(),[m,q]=j(),[H,ce]=j(),{data:_,isLoading:ue}=W({includePremiumBenefits:s.includePremiumBenefits}),{data:d,isLoading:me}=X(),de=k||w?.value,{data:P,isLoading:fe}=Z(de,{includePremiumBenefits:s.includePremiumBenefits,options:n}),U=Y(),{mutateAsync:ge}=G(U),b=w?.currency,p=n?.jsfModify?.fields?.salary,F=p&&typeof p=="object"&&"presentation"in p?p.presentation:void 0,L=we(()=>{let e=b&&m?b!==m:!1;return b!==m?{from:m,to:b,shouldSwapOrder:e}:{from:b,to:m,shouldSwapOrder:e}},[b,m]),D=s.showManagementFee,J=s.includeEstimationTitle,$=n?.features?.includes("split_salary_description")??!1,ye=Re(()=>{let{from:e,to:r,shouldSwapOrder:u}=L(),g=Be(p,H);return{fields:{salary:{...p,title:g,presentation:{salary_conversion_properties:{label:F?.salary_conversion_properties?.label,description:F?.salary_conversion_properties?.description},currencies:{from:e,to:r},Component:o(y=>ae(ee,{...y,shouldSwapOrder:u,conversionType:a==="marketing"?"no_spread":"spread",defaultValue:l,splitDescription:$}),"Component")}},hiring_budget:{...n?.jsfModify?.fields?.hiring_budget,presentation:{hidden:a=="marketing"}},management:{...n?.jsfModify?.fields?.management,properties:{...n?.jsfModify?.fields?.management?.properties,management_fee:{...n?.jsfModify?.fields?.management?.properties?.management_fee,"x-jsf-presentation":{inputType:"money",additionalProps:{currency:m||"USD"}}}},presentation:{...typeof n?.jsfModify?.fields?.management=="object"?(n?.jsfModify?.fields?.management)["x-jsf-presentation"]:{},hidden:!D,Component:o(y=>ae(te,{...y,variant:"inset",features:{toggle:{enabled:!0,stateField:"management._expanded",labels:{expand:"Define",collapse:"Remove"}}}}),"Component")}},estimation_title:{...n?.jsfModify?.fields?.estimation_title,"x-jsf-presentation":{hidden:!J}}}}},[L,p,H,F?.salary_conversion_properties?.label,F?.salary_conversion_properties?.description,n?.jsfModify?.fields?.hiring_budget,n?.jsfModify?.fields?.management,n?.jsfModify?.fields?.estimation_title,a,m,D,J,l,$]),f=xe({jsfModify:{fields:{...n?.jsfModify?.fields,...ye?.fields}}});ne(()=>{if(t&&_){let e=_.find(({value:r})=>r===t);e&&R(e)}},[t,_]),ne(()=>{if(i&&d){let e=d.find(({value:r})=>r===i);e&&q(e.label)}},[i,d]);async function pe(e){return ge(se(e,s,a))}o(pe,"onSubmit");function Ce(e){let r=_?.find(({value:u})=>u===e);r&&r.childRegions.length===0&&r.hasAdditionalFields?h(r.regionSlug):h(void 0),R(r)}o(Ce,"onCountryChange");function _e(e){h(e)}o(_e,"onRegionChange");function be(e){ce(e.target.value)}o(be,"onHiringBudgetChange");function Se(e){let r=d?.find(u=>u.value===e)?.label;q(r),n?.onCurrencyChange?.(r||"")}o(Se,"onChangeCurrency");let S=f.fields.find(e=>e.name==="region");if(S){let e=w?.childRegions.map(r=>({value:r.slug,label:r.name}))??[];S.options=e,S.isVisible=e.length>0,S.required=e.length>0,S.onChange=_e,S.schema=e.length>0?re().transform(r=>typeof r=="string"?r:"").required("Region is required"):re()}if(d){let e=f.fields.find(r=>r.name==="currency");e&&(e.options=d,e.onChange=Se)}let v=f.fields.find(e=>e.name==="hiring_budget");if(v&&(v.onChange=be),_){let e=f.fields.find(r=>r.name==="country");e&&(e.options=_,e.onChange=Ce)}let Ee=o(()=>{R(void 0),h(t)},"resetForm"),N=[...f.fields.filter(e=>e.name!=="management"),...P?.fields||[],...f.fields.filter(e=>e.name==="management")],K=oe(f.fields,m||"USD",s.includeEstimationTitle);async function he(e){let r=null;n?.onValidation?.(e);let u=await M(e,N);try{await K.validate(u,{abortEarly:!1}),r={formErrors:{},yupError:new ie([],e)}}catch(E){let B=I(E);r={formErrors:Object.entries(B).reduce((T,[A,V])=>({...T,[A]:V.message}),{}),yupError:E}}let g=P?.handleValidation(u),y=[...r?.yupError.inner||[],...g?.yupError?.inner||[]],x={...r?.yupError?.value||{},...g?.yupError?.value||{}};return{formErrors:{...r?.formErrors||{},...g?.formErrors||{}},yupError:new ie(y,x)}}return o(he,"handleValidation"),{stepState:{current:0,total:1,isLastStep:!0},fields:N,validationSchema:K,parseFormValues:o(async e=>{let{country:r,region:u,currency:g,salary_converted:y,hiring_budget:x,salary_conversion:E,management:B,estimation_title:T,...A}=e,V=e.salary;y==="salary_conversion"&&(V=E);let Fe=await M({country:r,region:u,salary:V,salary_converted:y,salary_conversion:E,hiring_budget:x,currency:g,management:B,estimation_title:T},f.fields),Ve=await M(A,P?.fields||[]),Me={currency_code:d?.find(je=>je.value===g)?.label};return{...Fe,...Ve,...Me}},"parseFormValues"),handleValidation:he,isSubmitting:U.isPending,isLoading:ue&&me&&fe,onSubmit:pe,resetForm:Ee,currencies:d,meta:{fields:c.current?.fields}}},"useCostCalculator");function oe(t,i,l){let s=t.reduce((n,a)=>(a.name==="salary"||a.name==="salary_conversion"?n[a.name]=a.schema.when("salary_converted",{is:o(c=>c===a.name,"is"),then:o(c=>c.required("Required field"),"then"),otherwise:o(c=>c.optional(),"otherwise")}):a.name==="management"?n[a.name]=le({management_fee:Te().transform(c=>isNaN(c)?void 0:c).min(0,"Management fee must be greater than or equal to 0").max(i?C[i]:C.USD,()=>`Management fee cannot exceed ${(i?C[i]:C.USD)/100} ${i}`)}):a.name==="estimation_title"&&l?n[a.name]=a.schema.required("Required field"):n[a.name]=a.schema,n),{});return le(s)}o(oe,"buildValidationSchema");function Ae(t){let i="benefit-";return Object.keys(t).reduce((l,s)=>{let n=t[s];if(n==="none")return l;let c={benefit_group_slug:s.replace(i,""),benefit_tier_slug:n};return[...l,c]},[])}o(Ae,"formatBenefits");function Oe(t,i,l){let s=Number(t.management?.management_fee),n=t.currency_code;return{...{region_slug:t.region||t.country,employment_term:t.contract_duration_type??"fixed",title:t.estimation_title||i.title,age:t.age??void 0,...t.benefits&&{benefits:Ae(t.benefits)},...i.includeManagementFee&&s&&{discount:{quoted_amount:i.showManagementFee?s:C[n]||C.USD,text:""}}},...ke(t,l)}}o(Oe,"mapValueToEmployment");function ke(t,i){let l=i==="marketing"||t.salary_converted==="salary_conversion",s=i==="standard"&&t.salary_converted==="salary",n=t.hiring_budget==="my_hiring_budget";if(l){let a=t.salary_converted==="salary_conversion";return n?{annual_total_cost_in_employer_currency:t.salary}:{[a?"annual_gross_salary_in_employer_currency":"annual_gross_salary"]:t.salary}}return s?n?{annual_total_cost:t.salary}:{annual_gross_salary:t.salary}:{}}o(ke,"getSalaryFields");function se(t,i=O,l="standard"){let s=Array.isArray(t)?t:[t];if(s.length===0)throw new Error("At least one employment value is required");return s.length>1&&new Set(s.map(a=>a.currency)).size>1&&console.warn("Multiple currencies detected in array. Using currency from first employment."),{employer_currency_slug:s[0].currency,include_benefits:i.includeBenefits,include_cost_breakdowns:i.includeCostBreakdowns,include_premium_benefits:i.includePremiumBenefits,include_management_fee:i.includeManagementFee,employments:s.map(n=>Oe(n,i,l))}}o(se,"buildPayload");export{oe as a,se as b,O as c,Qe as d};
2
- //# sourceMappingURL=chunk-G2DAXZPD.js.map
1
+ import{a as ee}from"./chunk-XI5G4SGA.js";import{a as z}from"./chunk-VFRHMNLJ.js";import{a as W,b as X,c as Y,f as Z}from"./chunk-HOEP5XXW.js";import{a as C}from"./chunk-HN5HLFTB.js";import{a as I}from"./chunk-KFYWUBRS.js";import{c as te}from"./chunk-NRH6RION.js";import{a as Q}from"./chunk-S5BNS2JE.js";import{b as G,h as M}from"./chunk-NXRWBI36.js";import{a as o}from"./chunk-P37U34EQ.js";import{number as Te,object as le}from"yup";import{useCallback as we,useEffect as ne,useMemo as Re,useRef as Pe,useState as j}from"react";import{string as re,ValidationError as ie}from"yup";import{jsx as ae}from"react/jsx-runtime";var O={title:"Estimation",includeBenefits:!1,includeCostBreakdowns:!1,includePremiumBenefits:!1,enableCurrencyConversion:!1,includeEstimationTitle:!1,includeManagementFee:!1},xe=o(t=>Q(z.data.schema,void 0,t),"useStaticSchema");function Be(t,i){if(typeof t=="object"&&t!==null&&"title"in t){let l=t.title;if(l)return l}return i==="my_hiring_budget"?"Hiring budget":"Employee's annual salary"}o(Be,"getSalaryTitle");var Qe=o(({defaultRegion:t,defaultCurrency:i,defaultSalary:l,estimationOptions:s,options:n,version:a}={estimationOptions:O})=>{let c=Pe({fields:{}}),[k,h]=j(t),[w,R]=j(),[m,q]=j(),[H,ce]=j(),{data:_,isLoading:ue}=W({includePremiumBenefits:s.includePremiumBenefits}),{data:d,isLoading:me}=X(),de=k||w?.value,{data:P,isLoading:fe}=Z(de,{includePremiumBenefits:s.includePremiumBenefits,options:n}),U=Y(),{mutateAsync:ge}=G(U),b=w?.currency,p=n?.jsfModify?.fields?.salary,F=p&&typeof p=="object"&&"presentation"in p?p.presentation:void 0,L=we(()=>{let e=b&&m?b!==m:!1;return b!==m?{from:m,to:b,shouldSwapOrder:e}:{from:b,to:m,shouldSwapOrder:e}},[b,m]),D=s.showManagementFee,J=s.includeEstimationTitle,$=n?.features?.includes("split_salary_description")??!1,ye=Re(()=>{let{from:e,to:r,shouldSwapOrder:u}=L(),g=Be(p,H);return{fields:{salary:{...p,title:g,presentation:{salary_conversion_properties:{label:F?.salary_conversion_properties?.label,description:F?.salary_conversion_properties?.description},currencies:{from:e,to:r},Component:o(y=>ae(ee,{...y,shouldSwapOrder:u,conversionType:a==="marketing"?"no_spread":"spread",defaultValue:l,splitDescription:$}),"Component")}},hiring_budget:{...n?.jsfModify?.fields?.hiring_budget,presentation:{hidden:a=="marketing"}},management:{...n?.jsfModify?.fields?.management,properties:{...n?.jsfModify?.fields?.management?.properties,management_fee:{...n?.jsfModify?.fields?.management?.properties?.management_fee,"x-jsf-presentation":{inputType:"money",additionalProps:{currency:m||"USD"}}}},presentation:{...typeof n?.jsfModify?.fields?.management=="object"?(n?.jsfModify?.fields?.management)["x-jsf-presentation"]:{},hidden:!D,Component:o(y=>ae(te,{...y,variant:"inset",features:{toggle:{enabled:!0,stateField:"management._expanded",labels:{expand:"Define",collapse:"Remove"}}}}),"Component")}},estimation_title:{...n?.jsfModify?.fields?.estimation_title,"x-jsf-presentation":{hidden:!J}}}}},[L,p,H,F?.salary_conversion_properties?.label,F?.salary_conversion_properties?.description,n?.jsfModify?.fields?.hiring_budget,n?.jsfModify?.fields?.management,n?.jsfModify?.fields?.estimation_title,a,m,D,J,l,$]),f=xe({jsfModify:{fields:{...n?.jsfModify?.fields,...ye?.fields}}});ne(()=>{if(t&&_){let e=_.find(({value:r})=>r===t);e&&R(e)}},[t,_]),ne(()=>{if(i&&d){let e=d.find(({value:r})=>r===i);e&&q(e.label)}},[i,d]);async function pe(e){return ge(se(e,s,a))}o(pe,"onSubmit");function Ce(e){let r=_?.find(({value:u})=>u===e);r&&r.childRegions.length===0&&r.hasAdditionalFields?h(r.regionSlug):h(void 0),R(r)}o(Ce,"onCountryChange");function _e(e){h(e)}o(_e,"onRegionChange");function be(e){ce(e.target.value)}o(be,"onHiringBudgetChange");function Se(e){let r=d?.find(u=>u.value===e)?.label;q(r),n?.onCurrencyChange?.(r||"")}o(Se,"onChangeCurrency");let S=f.fields.find(e=>e.name==="region");if(S){let e=w?.childRegions.map(r=>({value:r.slug,label:r.name}))??[];S.options=e,S.isVisible=e.length>0,S.required=e.length>0,S.onChange=_e,S.schema=e.length>0?re().transform(r=>typeof r=="string"?r:"").required("Region is required"):re()}if(d){let e=f.fields.find(r=>r.name==="currency");e&&(e.options=d,e.onChange=Se)}let v=f.fields.find(e=>e.name==="hiring_budget");if(v&&(v.onChange=be),_){let e=f.fields.find(r=>r.name==="country");e&&(e.options=_,e.onChange=Ce)}let Ee=o(()=>{R(void 0),h(t)},"resetForm"),N=[...f.fields.filter(e=>e.name!=="management"),...P?.fields||[],...f.fields.filter(e=>e.name==="management")],K=oe(f.fields,m||"USD",s.includeEstimationTitle);async function he(e){let r=null;n?.onValidation?.(e);let u=await M(e,N);try{await K.validate(u,{abortEarly:!1}),r={formErrors:{},yupError:new ie([],e)}}catch(E){let B=I(E);r={formErrors:Object.entries(B).reduce((T,[A,V])=>({...T,[A]:V.message}),{}),yupError:E}}let g=P?.handleValidation(u),y=[...r?.yupError.inner||[],...g?.yupError?.inner||[]],x={...r?.yupError?.value||{},...g?.yupError?.value||{}};return{formErrors:{...r?.formErrors||{},...g?.formErrors||{}},yupError:new ie(y,x)}}return o(he,"handleValidation"),{stepState:{current:0,total:1,isLastStep:!0},fields:N,validationSchema:K,parseFormValues:o(async e=>{let{country:r,region:u,currency:g,salary_converted:y,hiring_budget:x,salary_conversion:E,management:B,estimation_title:T,...A}=e,V=e.salary;y==="salary_conversion"&&(V=E);let Fe=await M({country:r,region:u,salary:V,salary_converted:y,salary_conversion:E,hiring_budget:x,currency:g,management:B,estimation_title:T},f.fields),Ve=await M(A,P?.fields||[]),Me={currency_code:d?.find(je=>je.value===g)?.label};return{...Fe,...Ve,...Me}},"parseFormValues"),handleValidation:he,isSubmitting:U.isPending,isLoading:ue&&me&&fe,onSubmit:pe,resetForm:Ee,currencies:d,meta:{fields:c.current?.fields}}},"useCostCalculator");function oe(t,i,l){let s=t.reduce((n,a)=>(a.name==="salary"||a.name==="salary_conversion"?n[a.name]=a.schema.when("salary_converted",{is:o(c=>c===a.name,"is"),then:o(c=>c.required("Required field"),"then"),otherwise:o(c=>c.optional(),"otherwise")}):a.name==="management"?n[a.name]=le({management_fee:Te().transform(c=>isNaN(c)?void 0:c).min(0,"Management fee must be greater than or equal to 0").max(i?C[i]:C.USD,()=>`Management fee cannot exceed ${(i?C[i]:C.USD)/100} ${i}`)}):a.name==="estimation_title"&&l?n[a.name]=a.schema.required("Required field"):n[a.name]=a.schema,n),{});return le(s)}o(oe,"buildValidationSchema");function Ae(t){let i="benefit-";return Object.keys(t).reduce((l,s)=>{let n=t[s];if(n==="none")return l;let c={benefit_group_slug:s.replace(i,""),benefit_tier_slug:n};return[...l,c]},[])}o(Ae,"formatBenefits");function Oe(t,i,l){let s=Number(t.management?.management_fee),n=t.currency_code;return{...{region_slug:t.region||t.country,employment_term:t.contract_duration_type??"fixed",title:t.estimation_title||i.title,age:t.age??void 0,...t.benefits&&{benefits:Ae(t.benefits)},...i.includeManagementFee&&s&&{discount:{quoted_amount:i.showManagementFee?s:C[n]||C.USD,text:""}}},...ke(t,l)}}o(Oe,"mapValueToEmployment");function ke(t,i){let l=i==="marketing"||t.salary_converted==="salary_conversion",s=i==="standard"&&t.salary_converted==="salary",n=t.hiring_budget==="my_hiring_budget";if(l){let a=t.salary_converted==="salary_conversion";return n?{annual_total_cost_in_employer_currency:t.salary}:{[a?"annual_gross_salary_in_employer_currency":"annual_gross_salary"]:t.salary}}return s?n?{annual_total_cost:t.salary}:{annual_gross_salary:t.salary}:{}}o(ke,"getSalaryFields");function se(t,i=O,l="standard"){let s=Array.isArray(t)?t:[t];if(s.length===0)throw new Error("At least one employment value is required");return s.length>1&&new Set(s.map(a=>a.currency)).size>1&&console.warn("Multiple currencies detected in array. Using currency from first employment."),{employer_currency_slug:s[0].currency,include_benefits:i.includeBenefits,include_cost_breakdowns:i.includeCostBreakdowns,include_premium_benefits:i.includePremiumBenefits,include_management_fee:i.includeManagementFee,employments:s.map(n=>Oe(n,i,l))}}o(se,"buildPayload");export{oe as a,se as b,O as c,Qe as d};
2
+ //# sourceMappingURL=chunk-PXBJVZ6I.js.map