@remoteoss/remote-flows 0.4.0-alpha.1 → 0.4.0-alpha.11

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 (374) hide show
  1. package/README.md +63 -1
  2. package/dist/chunk-32RYPLZK.js +2 -0
  3. package/dist/chunk-32RYPLZK.js.map +1 -0
  4. package/dist/chunk-3HPG2L62.js +2 -0
  5. package/dist/chunk-3HPG2L62.js.map +1 -0
  6. package/dist/chunk-3NZ6PO4D.js +2 -0
  7. package/dist/chunk-3NZ6PO4D.js.map +1 -0
  8. package/dist/chunk-3QTURBOX.js +2 -0
  9. package/dist/chunk-3QTURBOX.js.map +1 -0
  10. package/dist/{chunk-WRDKLT4N.js → chunk-3ZWDIEEM.js} +2 -2
  11. package/dist/chunk-4BOE6EEO.js +2 -0
  12. package/dist/chunk-4BOE6EEO.js.map +1 -0
  13. package/dist/{chunk-UECSVYQ5.js → chunk-5SMMQQXP.js} +2 -2
  14. package/dist/chunk-5SMMQQXP.js.map +1 -0
  15. package/dist/chunk-7JHIPWS7.js +2 -0
  16. package/dist/chunk-7JHIPWS7.js.map +1 -0
  17. package/dist/chunk-BF7QENCN.js +2 -0
  18. package/dist/chunk-BF7QENCN.js.map +1 -0
  19. package/dist/chunk-C3HJSV4T.js +2 -0
  20. package/dist/chunk-C3HJSV4T.js.map +1 -0
  21. package/dist/{chunk-A4RX3KRZ.js → chunk-CFIJKJXD.js} +2 -2
  22. package/dist/chunk-CSU6IQX3.js +2 -0
  23. package/dist/chunk-CSU6IQX3.js.map +1 -0
  24. package/dist/chunk-CTTXXEWI.js +2 -0
  25. package/dist/chunk-CTTXXEWI.js.map +1 -0
  26. package/dist/chunk-DKIWM2PT.js +2 -0
  27. package/dist/chunk-DKIWM2PT.js.map +1 -0
  28. package/dist/chunk-DR7VGNO2.js +2 -0
  29. package/dist/chunk-EEAMZPP6.js +2 -0
  30. package/dist/{chunk-GMGKIQLI.js.map → chunk-EEAMZPP6.js.map} +1 -1
  31. package/dist/chunk-EV5YPN4F.js +2 -0
  32. package/dist/chunk-EV5YPN4F.js.map +1 -0
  33. package/dist/chunk-FB5J7SRP.js +2 -0
  34. package/dist/chunk-FB5J7SRP.js.map +1 -0
  35. package/dist/chunk-GAXGAK4P.js +2 -0
  36. package/dist/chunk-GAXGAK4P.js.map +1 -0
  37. package/dist/chunk-GEYFQVQI.js +2 -0
  38. package/dist/{chunk-56BNVYTD.js.map → chunk-GEYFQVQI.js.map} +1 -1
  39. package/dist/chunk-GFMFGU7A.js +2 -0
  40. package/dist/chunk-GFMFGU7A.js.map +1 -0
  41. package/dist/chunk-GPAE53HO.js +2 -0
  42. package/dist/chunk-GPAE53HO.js.map +1 -0
  43. package/dist/chunk-H4BI3LJD.js +2 -0
  44. package/dist/chunk-H4BI3LJD.js.map +1 -0
  45. package/dist/chunk-HGHKZF7M.js +2 -0
  46. package/dist/chunk-HGHKZF7M.js.map +1 -0
  47. package/dist/chunk-IG3FJLDR.js +2 -0
  48. package/dist/chunk-IG3FJLDR.js.map +1 -0
  49. package/dist/chunk-INW2EQZR.js +2 -0
  50. package/dist/chunk-INW2EQZR.js.map +1 -0
  51. package/dist/chunk-JTP3LZ77.js +2 -0
  52. package/dist/chunk-JTP3LZ77.js.map +1 -0
  53. package/dist/{chunk-D3SD6MMV.js → chunk-JXCJLQRA.js} +2 -2
  54. package/dist/chunk-JXCJLQRA.js.map +1 -0
  55. package/dist/chunk-KGSIUWBI.js +2 -0
  56. package/dist/chunk-KGSIUWBI.js.map +1 -0
  57. package/dist/{chunk-JRQSZHUU.js → chunk-KHZ2ITFO.js} +2 -2
  58. package/dist/chunk-KM4XVL2X.js +2 -0
  59. package/dist/chunk-KM4XVL2X.js.map +1 -0
  60. package/dist/{chunk-5ETXP2QF.js → chunk-KPHSEIR3.js} +2 -2
  61. package/dist/{chunk-OLJ2S6A6.js → chunk-KSHK3ZPX.js} +2 -2
  62. package/dist/chunk-KSHK3ZPX.js.map +1 -0
  63. package/dist/chunk-L6LGRALQ.js +2 -0
  64. package/dist/chunk-L6LGRALQ.js.map +1 -0
  65. package/dist/chunk-LLIGZSYY.js +2 -0
  66. package/dist/chunk-LLIGZSYY.js.map +1 -0
  67. package/dist/{chunk-QOMUXX6W.js → chunk-LX7QBDSF.js} +2 -2
  68. package/dist/chunk-LX7QBDSF.js.map +1 -0
  69. package/dist/chunk-MH6KKP6K.js +2 -0
  70. package/dist/chunk-MH6KKP6K.js.map +1 -0
  71. package/dist/{chunk-DZYFSFZ7.js → chunk-MRYRNB7Y.js} +2 -2
  72. package/dist/chunk-O4PJ6GWS.js +2 -0
  73. package/dist/chunk-O4PJ6GWS.js.map +1 -0
  74. package/dist/chunk-OP4QGFLS.js +2 -0
  75. package/dist/chunk-OP4QGFLS.js.map +1 -0
  76. package/dist/chunk-P37U34EQ.js +2 -0
  77. package/dist/chunk-PGWKJ6FK.js +2 -0
  78. package/dist/chunk-PGWKJ6FK.js.map +1 -0
  79. package/dist/chunk-PJBAQZ6G.js +2 -0
  80. package/dist/chunk-PJBAQZ6G.js.map +1 -0
  81. package/dist/chunk-PJCUSCO4.js +2 -0
  82. package/dist/{chunk-MESREYTZ.js.map → chunk-PJCUSCO4.js.map} +1 -1
  83. package/dist/chunk-PWUYHFON.js +2 -0
  84. package/dist/chunk-PWUYHFON.js.map +1 -0
  85. package/dist/chunk-QKTDO33H.js +2 -0
  86. package/dist/chunk-QKTDO33H.js.map +1 -0
  87. package/dist/chunk-RC2UQDK7.js +2 -0
  88. package/dist/chunk-RC2UQDK7.js.map +1 -0
  89. package/dist/chunk-RFYJGH2X.js +2 -0
  90. package/dist/chunk-RFYJGH2X.js.map +1 -0
  91. package/dist/chunk-RIWPSA6V.js +2 -0
  92. package/dist/chunk-RIWPSA6V.js.map +1 -0
  93. package/dist/chunk-RWYOUDM5.js +2 -0
  94. package/dist/chunk-RWYOUDM5.js.map +1 -0
  95. package/dist/chunk-RXK4RLF6.js +2 -0
  96. package/dist/chunk-RXK4RLF6.js.map +1 -0
  97. package/dist/{chunk-FZ2HS6G7.js → chunk-S4XU4SE7.js} +1 -1
  98. package/dist/chunk-S4XU4SE7.js.map +1 -0
  99. package/dist/chunk-SUS7UBI5.js +2 -0
  100. package/dist/chunk-SUS7UBI5.js.map +1 -0
  101. package/dist/{chunk-6HGUGIYJ.js → chunk-TVZAFTPT.js} +2 -2
  102. package/dist/chunk-U6OPL6WG.js +2 -0
  103. package/dist/chunk-U6OPL6WG.js.map +1 -0
  104. package/dist/chunk-VEOGRXYK.js +2 -0
  105. package/dist/chunk-VEOGRXYK.js.map +1 -0
  106. package/dist/chunk-VJEJUUY2.js +2 -0
  107. package/dist/chunk-VJEJUUY2.js.map +1 -0
  108. package/dist/chunk-VJEL5MZJ.js +2 -0
  109. package/dist/chunk-VJEL5MZJ.js.map +1 -0
  110. package/dist/chunk-VN4HDCRB.js +2 -0
  111. package/dist/chunk-VN4HDCRB.js.map +1 -0
  112. package/dist/chunk-VNSF5IOL.js +2 -0
  113. package/dist/chunk-VNSF5IOL.js.map +1 -0
  114. package/dist/chunk-WIRFNWEU.js +2 -0
  115. package/dist/chunk-WIRFNWEU.js.map +1 -0
  116. package/dist/chunk-WKK63LAY.js +2 -0
  117. package/dist/chunk-WKK63LAY.js.map +1 -0
  118. package/dist/chunk-WVJDCDGZ.js +2 -0
  119. package/dist/chunk-WVJDCDGZ.js.map +1 -0
  120. package/dist/chunk-XO3JWN33.js +2 -0
  121. package/dist/{chunk-GFBF55NR.js.map → chunk-XO3JWN33.js.map} +1 -1
  122. package/dist/chunk-YO4OQIFP.js +2 -0
  123. package/dist/{chunk-3FVI5JIC.js.map → chunk-YO4OQIFP.js.map} +1 -1
  124. package/dist/chunk-Z3HWTDRE.js +2 -0
  125. package/dist/chunk-Z3HWTDRE.js.map +1 -0
  126. package/dist/chunk-ZOG52VVG.js +2 -0
  127. package/dist/chunk-ZOG52VVG.js.map +1 -0
  128. package/dist/flows/ContractAmendment/ContractAmendmentBack.d.ts +3 -2
  129. package/dist/flows/ContractAmendment/ContractAmendmentBack.js +1 -1
  130. package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +5 -5
  131. package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js +1 -1
  132. package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +5 -5
  133. package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
  134. package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +5 -5
  135. package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
  136. package/dist/flows/ContractAmendment/ContractAmendmentSubmit.d.ts +3 -2
  137. package/dist/flows/ContractAmendment/ContractAmendmentSubmit.js +1 -1
  138. package/dist/flows/ContractAmendment/context.d.ts +5 -6
  139. package/dist/flows/ContractAmendment/context.js +1 -1
  140. package/dist/flows/ContractAmendment/hooks.d.ts +4 -5
  141. package/dist/flows/ContractAmendment/hooks.js +1 -1
  142. package/dist/flows/ContractAmendment/index.d.ts +3 -3
  143. package/dist/flows/ContractAmendment/index.js +1 -1
  144. package/dist/flows/ContractAmendment/types.d.ts +0 -2
  145. package/dist/flows/ContractAmendment/utils.d.ts +2 -2
  146. package/dist/flows/ContractAmendment/utils.js +1 -1
  147. package/dist/flows/CostCalculator/CostCalculatorDisclaimer.d.ts +2 -2
  148. package/dist/flows/CostCalculator/CostCalculatorDisclaimer.js +1 -1
  149. package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +7 -6
  150. package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
  151. package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +9 -5
  152. package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
  153. package/dist/flows/CostCalculator/CostCalculatorResetButton.d.ts +3 -2
  154. package/dist/flows/CostCalculator/CostCalculatorResetButton.js +1 -1
  155. package/dist/flows/CostCalculator/CostCalculatorSubmitButton.d.ts +3 -2
  156. package/dist/flows/CostCalculator/CostCalculatorSubmitButton.js +1 -1
  157. package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.d.ts +2 -2
  158. package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.js +1 -1
  159. package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.d.ts +2 -2
  160. package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.js +1 -1
  161. package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.d.ts +2 -2
  162. package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.js +1 -1
  163. package/dist/flows/CostCalculator/Results/CostCalculatorResults.d.ts +3 -3
  164. package/dist/flows/CostCalculator/Results/CostCalculatorResults.js +1 -1
  165. package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.d.ts +2 -2
  166. package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.js +1 -1
  167. package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.js.map +1 -1
  168. package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.d.ts +2 -2
  169. package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.js +1 -1
  170. package/dist/flows/CostCalculator/context.d.ts +9 -6
  171. package/dist/flows/CostCalculator/context.js +1 -1
  172. package/dist/flows/CostCalculator/disclaimerUtils.js +1 -1
  173. package/dist/flows/CostCalculator/hooks.d.ts +5 -4
  174. package/dist/flows/CostCalculator/hooks.js +1 -1
  175. package/dist/flows/CostCalculator/index.d.ts +6 -2
  176. package/dist/flows/CostCalculator/index.js +1 -1
  177. package/dist/flows/CostCalculator/jsonSchema.js +1 -1
  178. package/dist/flows/CostCalculator/types.d.ts +12 -4
  179. package/dist/flows/CostCalculator/utils.d.ts +7 -4
  180. package/dist/flows/CostCalculator/utils.js +1 -1
  181. package/dist/flows/Onboarding/AnnualGrossSalary.d.ts +18 -0
  182. package/dist/flows/Onboarding/AnnualGrossSalary.js +2 -0
  183. package/dist/flows/Onboarding/AnnualGrossSalary.js.map +1 -0
  184. package/dist/flows/Onboarding/BasicInformationStep.d.ts +4 -5
  185. package/dist/flows/Onboarding/BasicInformationStep.js +1 -1
  186. package/dist/flows/Onboarding/BenefitsStep.d.ts +8 -7
  187. package/dist/flows/Onboarding/BenefitsStep.js +1 -1
  188. package/dist/flows/Onboarding/ContractDetailsStep.d.ts +3 -4
  189. package/dist/flows/Onboarding/ContractDetailsStep.js +1 -1
  190. package/dist/flows/Onboarding/OnboardingBack.d.ts +4 -2
  191. package/dist/flows/Onboarding/OnboardingBack.js +1 -1
  192. package/dist/flows/Onboarding/OnboardingFlow.d.ts +17 -7
  193. package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
  194. package/dist/flows/Onboarding/OnboardingForm.d.ts +6 -5
  195. package/dist/flows/Onboarding/OnboardingForm.js +1 -1
  196. package/dist/flows/Onboarding/OnboardingInvite.d.ts +15 -8
  197. package/dist/flows/Onboarding/OnboardingInvite.js +1 -1
  198. package/dist/flows/Onboarding/OnboardingSubmit.d.ts +3 -2
  199. package/dist/flows/Onboarding/OnboardingSubmit.js +1 -1
  200. package/dist/flows/Onboarding/ReviewStep.d.ts +37 -0
  201. package/dist/flows/Onboarding/ReviewStep.js +2 -0
  202. package/dist/flows/Onboarding/ReviewStep.js.map +1 -0
  203. package/dist/flows/Onboarding/SelectCountryStep.d.ts +14 -0
  204. package/dist/flows/Onboarding/SelectCountryStep.js +2 -0
  205. package/dist/flows/Onboarding/SelectCountryStep.js.map +1 -0
  206. package/dist/flows/Onboarding/api.d.ts +122 -0
  207. package/dist/flows/Onboarding/api.js +2 -0
  208. package/dist/flows/Onboarding/api.js.map +1 -0
  209. package/dist/flows/Onboarding/context.d.ts +44 -9
  210. package/dist/flows/Onboarding/context.js +1 -1
  211. package/dist/flows/Onboarding/hooks.d.ts +59 -26
  212. package/dist/flows/Onboarding/hooks.js +1 -1
  213. package/dist/flows/Onboarding/index.d.ts +10 -6
  214. package/dist/flows/Onboarding/index.js +1 -1
  215. package/dist/flows/Onboarding/json-schemas/selectCountryStep.d.ts +24 -0
  216. package/dist/flows/Onboarding/json-schemas/selectCountryStep.js +2 -0
  217. package/dist/flows/Onboarding/json-schemas/selectCountryStep.js.map +1 -0
  218. package/dist/flows/Onboarding/types.d.ts +27 -6
  219. package/dist/flows/Onboarding/utils.d.ts +22 -3
  220. package/dist/flows/Onboarding/utils.js +1 -1
  221. package/dist/flows/Termination/AdditionalDetailsForm.d.ts +4 -4
  222. package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
  223. package/dist/flows/Termination/EmployeeComunicationForm.d.ts +3 -3
  224. package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
  225. package/dist/flows/Termination/PaidTimeOffForm.d.ts +3 -3
  226. package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
  227. package/dist/flows/Termination/TerminationBack.d.ts +3 -2
  228. package/dist/flows/Termination/TerminationBack.js +1 -1
  229. package/dist/flows/Termination/TerminationDetailsForm.d.ts +3 -3
  230. package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
  231. package/dist/flows/Termination/TerminationFlow.d.ts +7 -5
  232. package/dist/flows/Termination/TerminationFlow.js +1 -1
  233. package/dist/flows/Termination/TerminationForm.d.ts +3 -3
  234. package/dist/flows/Termination/TerminationForm.js +1 -1
  235. package/dist/flows/Termination/TerminationSubmit.d.ts +3 -2
  236. package/dist/flows/Termination/TerminationSubmit.js +1 -1
  237. package/dist/flows/Termination/TimeOff.d.ts +4 -4
  238. package/dist/flows/Termination/TimeOff.js +1 -1
  239. package/dist/flows/Termination/context.d.ts +6 -5
  240. package/dist/flows/Termination/context.js +1 -1
  241. package/dist/flows/Termination/hooks.d.ts +4 -3
  242. package/dist/flows/Termination/hooks.js +1 -1
  243. package/dist/flows/Termination/index.d.ts +4 -2
  244. package/dist/flows/Termination/index.js +1 -1
  245. package/dist/flows/Termination/json-schemas/additionalInformation.js +1 -1
  246. package/dist/flows/Termination/json-schemas/defaultSchema.js +1 -1
  247. package/dist/flows/Termination/json-schemas/employeeComunication.js +1 -1
  248. package/dist/flows/Termination/json-schemas/jsonSchema.js +1 -1
  249. package/dist/flows/Termination/json-schemas/paidTimeOff.js +1 -1
  250. package/dist/flows/Termination/json-schemas/schema.js +1 -1
  251. package/dist/flows/Termination/json-schemas/terminationDetails.js +1 -1
  252. package/dist/flows/Termination/types.d.ts +1 -1
  253. package/dist/flows/Termination/utils.d.ts +1 -1
  254. package/dist/flows/Termination/utils.js +1 -1
  255. package/dist/flows/types.d.ts +3 -4
  256. package/dist/flows/useStepState.d.ts +19 -6
  257. package/dist/flows/useStepState.js +1 -1
  258. package/dist/flows/utils.d.ts +3 -11
  259. package/dist/flows/utils.js +1 -1
  260. package/dist/index.css +1 -1
  261. package/dist/index.css.map +1 -1
  262. package/dist/index.d.ts +16 -8
  263. package/dist/index.js +1 -1
  264. package/dist/index.js.map +1 -1
  265. package/dist/{remoteFlows-CswYencu.d.ts → remoteFlows-lYAFzyXi.d.ts} +51 -27
  266. package/dist/types-CxSFjQw5.d.ts +3 -0
  267. package/dist/{types.gen-CsMdyQkb.d.ts → types.gen-D_v539E_.d.ts} +335 -2
  268. package/package.json +18 -3
  269. package/dist/chunk-2PXGLWCY.js +0 -2
  270. package/dist/chunk-2PXGLWCY.js.map +0 -1
  271. package/dist/chunk-36UPHOJS.js +0 -2
  272. package/dist/chunk-36UPHOJS.js.map +0 -1
  273. package/dist/chunk-3FVI5JIC.js +0 -2
  274. package/dist/chunk-56BNVYTD.js +0 -2
  275. package/dist/chunk-6A3F6JG6.js +0 -2
  276. package/dist/chunk-6A3F6JG6.js.map +0 -1
  277. package/dist/chunk-6TYJC6YS.js +0 -2
  278. package/dist/chunk-6TYJC6YS.js.map +0 -1
  279. package/dist/chunk-7CYG2RHP.js +0 -2
  280. package/dist/chunk-7CYG2RHP.js.map +0 -1
  281. package/dist/chunk-ABR3B66K.js +0 -2
  282. package/dist/chunk-ABR3B66K.js.map +0 -1
  283. package/dist/chunk-ALRU77S5.js +0 -2
  284. package/dist/chunk-ALRU77S5.js.map +0 -1
  285. package/dist/chunk-AYDF3IFZ.js +0 -2
  286. package/dist/chunk-CFRYIKSR.js +0 -2
  287. package/dist/chunk-CFRYIKSR.js.map +0 -1
  288. package/dist/chunk-CKEVRQRG.js +0 -2
  289. package/dist/chunk-CKEVRQRG.js.map +0 -1
  290. package/dist/chunk-D3SD6MMV.js.map +0 -1
  291. package/dist/chunk-DE5FSFYL.js +0 -2
  292. package/dist/chunk-DE5FSFYL.js.map +0 -1
  293. package/dist/chunk-DGPRFQYK.js +0 -2
  294. package/dist/chunk-DGPRFQYK.js.map +0 -1
  295. package/dist/chunk-DHRIURRT.js +0 -2
  296. package/dist/chunk-DHRIURRT.js.map +0 -1
  297. package/dist/chunk-DZSZOC2G.js +0 -2
  298. package/dist/chunk-DZSZOC2G.js.map +0 -1
  299. package/dist/chunk-EAAIAMTY.js +0 -2
  300. package/dist/chunk-EAAIAMTY.js.map +0 -1
  301. package/dist/chunk-ED3CBUQL.js +0 -2
  302. package/dist/chunk-ED3CBUQL.js.map +0 -1
  303. package/dist/chunk-FMT2OTOL.js +0 -2
  304. package/dist/chunk-FMT2OTOL.js.map +0 -1
  305. package/dist/chunk-FZ2HS6G7.js.map +0 -1
  306. package/dist/chunk-GFBF55NR.js +0 -2
  307. package/dist/chunk-GGAS4ZNQ.js +0 -2
  308. package/dist/chunk-GGAS4ZNQ.js.map +0 -1
  309. package/dist/chunk-GMGKIQLI.js +0 -2
  310. package/dist/chunk-GOLOL2V6.js +0 -2
  311. package/dist/chunk-GOLOL2V6.js.map +0 -1
  312. package/dist/chunk-GRYAM4FZ.js +0 -2
  313. package/dist/chunk-GRYAM4FZ.js.map +0 -1
  314. package/dist/chunk-HEPL5WDF.js +0 -2
  315. package/dist/chunk-HEPL5WDF.js.map +0 -1
  316. package/dist/chunk-HSW5HMHH.js +0 -2
  317. package/dist/chunk-IDSJI7KQ.js +0 -2
  318. package/dist/chunk-IDSJI7KQ.js.map +0 -1
  319. package/dist/chunk-J55S4SEH.js +0 -2
  320. package/dist/chunk-J55S4SEH.js.map +0 -1
  321. package/dist/chunk-JBG4RVXQ.js +0 -2
  322. package/dist/chunk-JBG4RVXQ.js.map +0 -1
  323. package/dist/chunk-KH6QS5OU.js +0 -2
  324. package/dist/chunk-KH6QS5OU.js.map +0 -1
  325. package/dist/chunk-KQH5HLN5.js +0 -2
  326. package/dist/chunk-KQH5HLN5.js.map +0 -1
  327. package/dist/chunk-KSGPQCSG.js +0 -2
  328. package/dist/chunk-KSGPQCSG.js.map +0 -1
  329. package/dist/chunk-LNKYOAKF.js +0 -2
  330. package/dist/chunk-LNKYOAKF.js.map +0 -1
  331. package/dist/chunk-M7WCW7WD.js +0 -2
  332. package/dist/chunk-M7WCW7WD.js.map +0 -1
  333. package/dist/chunk-MESREYTZ.js +0 -2
  334. package/dist/chunk-MHKNAQLP.js +0 -2
  335. package/dist/chunk-MHKNAQLP.js.map +0 -1
  336. package/dist/chunk-MIHU6CEZ.js +0 -2
  337. package/dist/chunk-MIHU6CEZ.js.map +0 -1
  338. package/dist/chunk-NE547PW4.js +0 -2
  339. package/dist/chunk-NE547PW4.js.map +0 -1
  340. package/dist/chunk-OLJ2S6A6.js.map +0 -1
  341. package/dist/chunk-PNXZHV6W.js +0 -2
  342. package/dist/chunk-PNXZHV6W.js.map +0 -1
  343. package/dist/chunk-PWKM2R6V.js +0 -2
  344. package/dist/chunk-PWKM2R6V.js.map +0 -1
  345. package/dist/chunk-Q64URAIN.js +0 -2
  346. package/dist/chunk-Q64URAIN.js.map +0 -1
  347. package/dist/chunk-QOMUXX6W.js.map +0 -1
  348. package/dist/chunk-QSHYMFMY.js +0 -2
  349. package/dist/chunk-QSHYMFMY.js.map +0 -1
  350. package/dist/chunk-S4FKLPBB.js +0 -2
  351. package/dist/chunk-S4FKLPBB.js.map +0 -1
  352. package/dist/chunk-S56EWAS4.js +0 -2
  353. package/dist/chunk-S56EWAS4.js.map +0 -1
  354. package/dist/chunk-SLD7DFLW.js +0 -2
  355. package/dist/chunk-SLD7DFLW.js.map +0 -1
  356. package/dist/chunk-UECSVYQ5.js.map +0 -1
  357. package/dist/chunk-VRQXHCFR.js +0 -2
  358. package/dist/chunk-VRQXHCFR.js.map +0 -1
  359. package/dist/chunk-WQHKB5T7.js +0 -2
  360. package/dist/chunk-WQHKB5T7.js.map +0 -1
  361. package/dist/chunk-WS3C3WIJ.js +0 -2
  362. package/dist/chunk-WS3C3WIJ.js.map +0 -1
  363. package/dist/chunk-XLFHHYVS.js +0 -2
  364. package/dist/chunk-XLFHHYVS.js.map +0 -1
  365. package/dist/chunk-YOC3VDC7.js +0 -2
  366. package/dist/chunk-YOC3VDC7.js.map +0 -1
  367. /package/dist/{chunk-WRDKLT4N.js.map → chunk-3ZWDIEEM.js.map} +0 -0
  368. /package/dist/{chunk-A4RX3KRZ.js.map → chunk-CFIJKJXD.js.map} +0 -0
  369. /package/dist/{chunk-HSW5HMHH.js.map → chunk-DR7VGNO2.js.map} +0 -0
  370. /package/dist/{chunk-JRQSZHUU.js.map → chunk-KHZ2ITFO.js.map} +0 -0
  371. /package/dist/{chunk-5ETXP2QF.js.map → chunk-KPHSEIR3.js.map} +0 -0
  372. /package/dist/{chunk-DZYFSFZ7.js.map → chunk-MRYRNB7Y.js.map} +0 -0
  373. /package/dist/{chunk-AYDF3IFZ.js.map → chunk-P37U34EQ.js.map} +0 -0
  374. /package/dist/{chunk-6HGUGIYJ.js.map → chunk-TVZAFTPT.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/CostCalculator/utils.ts","../src/flows/CostCalculator/hooks.ts"],"sourcesContent":["import type { CostCalculatorEstimateParams } from '@/src/client';\n\nimport { convertToCents } from '@/src/components/form/utils';\nimport { $TSFixMe } from '@remoteoss/json-schema-form';\nimport { AnyObjectSchema, object } from 'yup';\nimport { defaultEstimationOptions } from './hooks';\nimport type {\n CostCalculatorEstimationFormValues,\n CostCalculatorEstimationOptions,\n} from './types';\n\n/**\n * Build the validation schema for the form.\n * @returns\n */\nexport function buildValidationSchema(fields: $TSFixMe[]) {\n const fieldsSchema = fields.reduce<Record<string, AnyObjectSchema>>(\n (fieldsSchemaAcc, field) => {\n fieldsSchemaAcc[field.name] = field.schema as AnyObjectSchema;\n return fieldsSchemaAcc;\n },\n {},\n );\n return object(fieldsSchema) as AnyObjectSchema;\n}\n\n/**\n * Format the benefits to the expected format by the API.\n * @param benefits\n * @returns\n */\nfunction formatBenefits(benefits: Record<string, string>) {\n const needle = 'benefit-';\n return Object.keys(benefits).reduce<\n Array<{ benefit_group_slug: string; benefit_tier_slug: string }>\n >((acc, key) => {\n const benefitGroupSlug = key.replace(needle, '');\n const benefitEntry = {\n benefit_group_slug: benefitGroupSlug,\n benefit_tier_slug: benefits[key],\n };\n return [...acc, benefitEntry];\n }, []);\n}\n\n/**\n * Build the payload for the cost calculator estimation.\n * @param values\n * @param estimationOptions\n * @returns\n */\nexport function buildPayload(\n values: CostCalculatorEstimationFormValues,\n estimationOptions: CostCalculatorEstimationOptions = defaultEstimationOptions,\n): CostCalculatorEstimateParams {\n return {\n employer_currency_slug: values.currency,\n include_benefits: estimationOptions.includeBenefits,\n include_cost_breakdowns: estimationOptions.includeCostBreakdowns,\n include_premium_benefits: estimationOptions.includePremiumBenefits,\n employments: [\n {\n region_slug: values.region || values.country,\n annual_gross_salary: convertToCents(values.salary) as number,\n annual_gross_salary_in_employer_currency: convertToCents(\n values.salary,\n ) as number,\n employment_term: values.contract_duration_type ?? 'fixed',\n title: estimationOptions.title,\n regional_to_employer_exchange_rate: '1',\n age: values.age ?? undefined,\n ...(values.benefits && { benefits: formatBenefits(values.benefits) }),\n },\n ],\n };\n}\n","import {\n CostCalculatorEstimateParams,\n CostCalculatorEstimateResponse,\n getIndexCompanyCurrency,\n getIndexCountry,\n getShowRegionField,\n MinimalRegion,\n postCreateEstimation,\n PostCreateEstimationError,\n postCreateEstimationPdf,\n} from '@/src/client';\nimport { jsonSchema } from '@/src/flows/CostCalculator/jsonSchema';\nimport type {\n CostCalculatorEstimationFormValues,\n CostCalculatorEstimationOptions,\n JSFModify,\n} from '@/src/flows/CostCalculator/types';\nimport type { Result } from '@/src/flows/types';\n\nimport { parseJSFToValidate } from '@/src/components/form/utils';\nimport { iterateErrors } from '@/src/components/form/yupValidationResolver';\nimport { useClient } from '@/src/context';\nimport { Client } from '@hey-api/client-fetch';\nimport { createHeadlessForm, modify } from '@remoteoss/json-schema-form';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { useState } from 'react';\nimport { string, ValidationError } from 'yup';\nimport { buildPayload, buildValidationSchema } from './utils';\n\ntype CostCalculatorCountry = {\n value: string;\n label: string;\n childRegions: MinimalRegion[];\n hasAdditionalFields: boolean | undefined;\n regionSlug: string;\n};\n\ntype JSFValidationError = {\n formErrors: Record<\n string,\n {\n type: string;\n message: string;\n }\n >;\n yupError: ValidationError;\n};\n\n/**\n * Hook to fetch the countries for the cost calculator.\n * @returns\n */\nconst useCostCalculatorCountries = ({\n includePremiumBenefits,\n}: {\n includePremiumBenefits: CostCalculatorEstimationOptions['includePremiumBenefits'];\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['cost-calculator-countries', includePremiumBenefits],\n queryFn: () => {\n return getIndexCountry({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n query: {\n include_premium_benefits: includePremiumBenefits,\n },\n });\n },\n select: (data) =>\n data.data?.data.map((country) => ({\n value: country.region_slug,\n label: country.name,\n childRegions: country.child_regions,\n hasAdditionalFields: country.has_additional_fields,\n regionSlug: country.region_slug,\n })),\n });\n};\n\n/**\n * Hook to fetch the company currencies.\n * @returns\n */\nconst useCompanyCurrencies = () => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['company-currencies'],\n queryFn: () => {\n return getIndexCompanyCurrency({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n });\n },\n select: (data) =>\n data.data?.data?.company_currencies.map((currency) => ({\n value: currency.slug,\n label: currency.code,\n })),\n });\n};\n\n/**\n * Hook to create an estimation.\n * @returns\n */\nconst useCostCalculatorEstimation = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: (payload: CostCalculatorEstimateParams) => {\n return postCreateEstimation({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n });\n },\n });\n};\n\n/**\n * Custom hook to create a PDF estimation.\n *\n * @returns\n */\nexport const useCostCalculatorEstimationPdf = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: (payload: CostCalculatorEstimateParams) => {\n return postCreateEstimationPdf({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n });\n },\n });\n};\n\n/**\n * Hook to fetch the region fields.\n * @param region\n * @returns\n */\nconst useRegionFields = (\n region: string | undefined,\n {\n includePremiumBenefits,\n options,\n }: {\n includePremiumBenefits: CostCalculatorEstimationOptions['includePremiumBenefits'];\n options?: {\n jsfModify?: JSFModify;\n };\n },\n) => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['cost-calculator-region-fields', region, includePremiumBenefits],\n queryFn: () => {\n return getShowRegionField({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: { slug: region as string },\n query: {\n include_premium_benefits: includePremiumBenefits,\n },\n });\n },\n enabled: !!region,\n select: ({ data }) => {\n let jsfSchema = data?.data?.schema || {};\n if (options && options.jsfModify) {\n const { schema } = modify(jsfSchema, options.jsfModify);\n jsfSchema = schema;\n }\n return createHeadlessForm(jsfSchema);\n },\n });\n};\n\nexport const defaultEstimationOptions: CostCalculatorEstimationOptions = {\n title: 'Estimation',\n includeBenefits: false,\n includeCostBreakdowns: false,\n includePremiumBenefits: false,\n};\n\ntype UseCostCalculatorParams = {\n /**\n * The default region slug to preselect a country and a region.\n */\n defaultRegion?: string;\n /**\n * The estimation options.\n */\n estimationOptions: CostCalculatorEstimationOptions;\n options?: {\n jsfModify?: JSFModify;\n };\n};\n\nexport type EstimationError = PostCreateEstimationError | ValidationError;\n\n/**\n * Hook to use the cost calculator.\n */\nexport const useCostCalculator = (\n { defaultRegion, estimationOptions, options }: UseCostCalculatorParams = {\n estimationOptions: defaultEstimationOptions,\n },\n) => {\n const { schema: jsonSchemaModified } = modify(\n jsonSchema.data.schema,\n options?.jsfModify || {},\n );\n\n const fieldsJSONSchema = createHeadlessForm(jsonSchemaModified);\n\n const [selectedRegion, setSelectedRegion] = useState<string | undefined>(\n defaultRegion,\n );\n const [selectedCountry, setSelectedCountry] =\n useState<CostCalculatorCountry>();\n const { data: countries, isLoading: isLoadingCountries } =\n useCostCalculatorCountries({\n includePremiumBenefits: estimationOptions.includePremiumBenefits,\n });\n const { data: currencies, isLoading: isLoadingCurrencies } =\n useCompanyCurrencies();\n\n const jsonSchemaRegionSlug = selectedRegion || selectedCountry?.value;\n\n const { data: jsonSchemaRegionFields, isLoading: isLoadingRegionFields } =\n useRegionFields(jsonSchemaRegionSlug, {\n includePremiumBenefits: estimationOptions.includePremiumBenefits,\n options,\n });\n const costCalculatorEstimationMutation = useCostCalculatorEstimation();\n\n /**\n * Submit the estimation form with the given values.\n * @param values\n */\n async function onSubmit(\n values: CostCalculatorEstimationFormValues,\n ): Promise<Result<CostCalculatorEstimateResponse, EstimationError>> {\n try {\n await validationSchema.validate(values, { abortEarly: false });\n } catch (err) {\n return {\n data: null,\n error: err as ValidationError,\n };\n }\n\n return new Promise((resolve, reject) => {\n costCalculatorEstimationMutation.mutate(\n buildPayload(values, estimationOptions),\n {\n onSuccess: (response) => {\n if (response.data) {\n resolve({\n data: response.data,\n error: null,\n });\n } else {\n resolve({\n data: null,\n error: new Error(\n 'Something went wrong. Please try again later.',\n ),\n });\n }\n },\n onError: (error) => {\n reject({\n data: null,\n error: error as PostCreateEstimationError,\n });\n },\n },\n );\n });\n }\n\n /**\n * If the selected country has no child regions and has additional fields,\n * set the current region to the country's region slug and fetch the region fields.\n * @param country\n */\n function onCountryChange(country: string) {\n const currentCountry = countries?.find(({ value }) => value === country);\n\n if (\n currentCountry &&\n currentCountry.childRegions.length === 0 &&\n currentCountry.hasAdditionalFields\n ) {\n setSelectedRegion(currentCountry.regionSlug);\n } else {\n setSelectedRegion(undefined);\n }\n setSelectedCountry(currentCountry);\n }\n\n /**\n * Update the selected region and fetch the region fields.\n * @param region\n */\n function onRegionChange(region: string) {\n setSelectedRegion(region);\n }\n\n const regionField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'region',\n );\n\n if (regionField) {\n const regions =\n selectedCountry?.childRegions.map((region) => ({\n value: region.slug,\n label: region.name,\n })) ?? [];\n regionField.options = regions;\n regionField.isVisible = regions.length > 0;\n regionField.required = regions.length > 0;\n regionField.onChange = onRegionChange;\n regionField.schema =\n regions.length > 0\n ? string()\n .transform((value) => (typeof value === 'string' ? value : ''))\n .required('Region is required')\n : string();\n }\n\n if (currencies) {\n const currencyField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'currency',\n );\n if (currencyField) {\n currencyField.options = currencies;\n }\n }\n\n if (countries) {\n const countryField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'country',\n );\n if (countryField) {\n countryField.options = countries;\n countryField.onChange = onCountryChange;\n }\n }\n\n const resetForm = () => {\n setSelectedCountry(undefined);\n setSelectedRegion(defaultRegion);\n };\n\n const allFields = [\n ...fieldsJSONSchema.fields,\n ...(jsonSchemaRegionFields?.fields || []),\n ];\n\n const validationSchema = buildValidationSchema(fieldsJSONSchema.fields);\n\n async function handleValidation(values: CostCalculatorEstimationFormValues) {\n let errors: JSFValidationError | null = null;\n\n const parsedValues = parseJSFToValidate(values, allFields);\n\n // 1. validate static fields first using Yup validate function\n try {\n await validationSchema.validate(parsedValues, {\n abortEarly: false,\n });\n errors = {\n formErrors: {},\n yupError: new ValidationError([], values),\n };\n } catch (error) {\n const iterateResult = iterateErrors(error as ValidationError);\n\n errors = {\n // convert the errors to a format that can be used in the form\n formErrors: Object.entries(iterateResult).reduce(\n (acc, [key, value]) => ({ ...acc, [key]: value.message }),\n {},\n ),\n yupError: error as ValidationError,\n };\n }\n\n // 2. validate json schema fields using the handleValidation (from json-schema-form)\n const handleValidationResult =\n jsonSchemaRegionFields?.handleValidation(parsedValues);\n\n // 3. combine the errors from both validations\n const combinedInnerErrors = [\n ...(errors?.yupError.inner || []),\n ...(handleValidationResult?.yupError?.inner || []),\n ];\n const combinedValues = {\n ...(errors?.yupError?.value || {}),\n ...(handleValidationResult?.yupError?.value || {}),\n };\n\n return {\n formErrors: {\n ...(errors?.formErrors || {}),\n ...(handleValidationResult?.formErrors || {}),\n },\n yupError: new ValidationError(combinedInnerErrors, combinedValues),\n };\n }\n\n return {\n stepState: {\n current: 0,\n total: 1,\n isLastStep: true,\n },\n fields: allFields,\n validationSchema,\n handleValidation,\n isSubmitting: costCalculatorEstimationMutation.isPending,\n isLoading:\n isLoadingCountries && isLoadingCurrencies && isLoadingRegionFields,\n onSubmit,\n resetForm,\n };\n};\n"],"mappings":"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","names":["object","createHeadlessForm","modify","useMutation","useQuery","useState","string","ValidationError","useCostCalculatorCountries","__name","includePremiumBenefits","client","useClient","useQuery","getIndexCountry","data","country","useCompanyCurrencies","getIndexCompanyCurrency","currency","useCostCalculatorEstimation","useMutation","payload","postCreateEstimation","useCostCalculatorEstimationPdf","postCreateEstimationPdf","useRegionFields","region","options","getShowRegionField","jsfSchema","schema","modify","createHeadlessForm","defaultEstimationOptions","useCostCalculator","defaultRegion","estimationOptions","jsonSchemaModified","jsonSchema","fieldsJSONSchema","selectedRegion","setSelectedRegion","useState","selectedCountry","setSelectedCountry","countries","isLoadingCountries","currencies","isLoadingCurrencies","jsonSchemaRegionSlug","jsonSchemaRegionFields","isLoadingRegionFields","costCalculatorEstimationMutation","onSubmit","values","validationSchema","err","resolve","reject","buildPayload","response","error","onCountryChange","currentCountry","value","onRegionChange","regionField","field","regions","string","currencyField","countryField","resetForm","allFields","buildValidationSchema","handleValidation","errors","parsedValues","parseJSFToValidate","ValidationError","iterateResult","iterateErrors","acc","key","handleValidationResult","combinedInnerErrors","combinedValues","buildValidationSchema","fields","fieldsSchema","fieldsSchemaAcc","field","object","__name","formatBenefits","benefits","needle","acc","key","benefitEntry","buildPayload","values","estimationOptions","defaultEstimationOptions","convertToCents"]}
@@ -1,2 +0,0 @@
1
- import{b as l}from"./chunk-A4RX3KRZ.js";import{a as p}from"./chunk-MIHU6CEZ.js";import{c as u}from"./chunk-VRQXHCFR.js";import{a as f}from"./chunk-IDSJI7KQ.js";import{b as F}from"./chunk-6HGUGIYJ.js";import{a as r}from"./chunk-AYDF3IFZ.js";import a,{useEffect as P}from"react";import{useForm as k}from"react-hook-form";var w=["effective_date","reason_for_change","reason_for_change_description","additional_comments","additional_comments_toggle"];function U({onSubmit:_,onError:m,onSuccess:b}){let{formId:A,contractAmendment:{checkFieldUpdates:C,fields:s,onSubmit:h,stepState:S,initialValues:i,handleValidation:g}}=F(),y=l(g),e=k({resolver:y,defaultValues:S.values?.form||i,shouldUnregister:!0,mode:"onBlur"});P(()=>{let t=e?.watch(o=>{(Object.keys(e.formState.dirtyFields).length>0||e.formState.isDirty)&&C(o)});return()=>t?.unsubscribe()},[]);let V=r(async t=>{let o=!1;for(let[c,v]of Object.entries(t))if(!w.includes(c)&&i[c]!==v){o=!0;break}if(!o)return m?.({message:"no_changes_detected_contract_details"});let d=u(t,s,{isPartialValidation:!1});await _?.(d);let n=await h(t);n.error?m?.(n.error):b?.(n.data)},"handleSubmit");return a.createElement(f,{...e},a.createElement("form",{id:A,"data-testid":"contract-amendment-form",onSubmit:e.handleSubmit(V),className:"space-y-4 RemoteFlows__ContractAmendmentForm"},a.createElement(p,{fields:s})))}r(U,"ContractAmendmentForm");export{U as a};
2
- //# sourceMappingURL=chunk-HEPL5WDF.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/ContractAmendment/ContractAmendmentForm.tsx"],"sourcesContent":["import {\n ContractAmendmentAutomatableResponse,\n PostAutomatableContractAmendmentError,\n} from '@/src/client';\nimport { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { parseJSFToValidate } from '@/src/components/form/utils';\nimport { useJsonSchemasValidationFormResolver } from '@/src/components/form/yupValidationResolver';\nimport { Form } from '@/src/components/ui/form';\nimport React, { useEffect } from 'react';\nimport { FieldValues, useForm } from 'react-hook-form';\nimport { useContractAmendmentContext } from './context';\n\ntype ContractAmendmentFormProps = {\n /**\n * Callback function to be called when the contract amendment form is submitted.\n * This function is called before the contract amendment is submitted.\n * It can be used to perform any additional validation or processing before\n * the contract amendment is submitted.\n * @param values\n * @returns\n */\n onSubmit?: (values: FieldValues) => Promise<void>;\n /**\n * Callback function to be called when the contract amendment fails.\n * @param error\n * @returns\n */\n onError?: (\n error:\n | PostAutomatableContractAmendmentError\n | { message: 'no_changes_detected_contract_details' },\n ) => void;\n /**\n * Callback function to be called when the contract amendment is successfully submitted.\n * This function is called after the contract amendment is submitted.\n * @param data\n * @returns\n */\n onSuccess?: (data: ContractAmendmentAutomatableResponse) => void;\n};\n\nconst commonFields = [\n 'effective_date',\n 'reason_for_change',\n 'reason_for_change_description',\n 'additional_comments',\n 'additional_comments_toggle',\n] as const;\n\ntype CommonFields = (typeof commonFields)[number];\n\nexport function ContractAmendmentForm({\n onSubmit,\n onError,\n onSuccess,\n}: ContractAmendmentFormProps) {\n const {\n formId,\n contractAmendment: {\n checkFieldUpdates,\n fields,\n onSubmit: submitContractAmendment,\n stepState,\n initialValues,\n handleValidation,\n },\n } = useContractAmendmentContext();\n\n const resolver = useJsonSchemasValidationFormResolver(\n // @ts-expect-error no matching type\n handleValidation,\n );\n\n const form = useForm({\n resolver,\n defaultValues:\n // stepState.values is used as defaultValues for the form when the form is\n // rendered when clicking on the back button after the user has submitted the form\n // and the confirmation form is displayed.\n // This is because the form is unmounted when the user submits the form.\n stepState.values?.form || initialValues,\n shouldUnregister: true,\n mode: 'onBlur',\n });\n\n useEffect(() => {\n const subscription = form?.watch((values) => {\n const isFormDirty =\n Object.keys(form.formState.dirtyFields).length > 0 ||\n form.formState.isDirty;\n if (isFormDirty) {\n checkFieldUpdates(values);\n }\n });\n return () => subscription?.unsubscribe();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleSubmit = async (values: FieldValues) => {\n let hasContractDetailsChanges = false;\n for (const [key, value] of Object.entries(values)) {\n if (\n !commonFields.includes(key as CommonFields) &&\n // @ts-expect-error error\n initialValues[key] !== value\n ) {\n hasContractDetailsChanges = true;\n break;\n }\n }\n\n if (!hasContractDetailsChanges) {\n return onError?.({\n message: 'no_changes_detected_contract_details',\n });\n }\n\n const parsedValues = parseJSFToValidate(values, fields, {\n isPartialValidation: false,\n });\n\n await onSubmit?.(parsedValues);\n\n const contractAmendmentResult = await submitContractAmendment(values);\n\n if (contractAmendmentResult.error) {\n onError?.(contractAmendmentResult.error);\n } else {\n onSuccess?.(\n contractAmendmentResult.data as ContractAmendmentAutomatableResponse,\n );\n }\n };\n\n return (\n <Form {...form}>\n <form\n id={formId}\n data-testid=\"contract-amendment-form\"\n onSubmit={form.handleSubmit(handleSubmit)}\n className=\"space-y-4 RemoteFlows__ContractAmendmentForm\"\n >\n <JSONSchemaFormFields fields={fields} />\n </form>\n </Form>\n );\n}\n"],"mappings":"gPAQA,OAAOA,GAAS,aAAAC,MAAiB,QACjC,OAAsB,WAAAC,MAAe,kBAgCrC,IAAMC,EAAe,CACnB,iBACA,oBACA,gCACA,sBACA,4BACF,EAIO,SAASC,EAAsB,CACpC,SAAAC,EACA,QAAAC,EACA,UAAAC,CACF,EAA+B,CAC7B,GAAM,CACJ,OAAAC,EACA,kBAAmB,CACjB,kBAAAC,EACA,OAAAC,EACA,SAAUC,EACV,UAAAC,EACA,cAAAC,EACA,iBAAAC,CACF,CACF,EAAIC,EAA4B,EAE1BC,EAAWC,EAEfH,CACF,EAEMI,EAAOC,EAAQ,CACnB,SAAAH,EACA,cAKEJ,EAAU,QAAQ,MAAQC,EAC5B,iBAAkB,GAClB,KAAM,QACR,CAAC,EAEDO,EAAU,IAAM,CACd,IAAMC,EAAeH,GAAM,MAAOI,GAAW,EAEzC,OAAO,KAAKJ,EAAK,UAAU,WAAW,EAAE,OAAS,GACjDA,EAAK,UAAU,UAEfT,EAAkBa,CAAM,CAE5B,CAAC,EACD,MAAO,IAAMD,GAAc,YAAY,CAEzC,EAAG,CAAC,CAAC,EAEL,IAAME,EAAeC,EAAA,MAAOF,GAAwB,CAClD,IAAIG,EAA4B,GAChC,OAAW,CAACC,EAAKC,CAAK,IAAK,OAAO,QAAQL,CAAM,EAC9C,GACE,CAACnB,EAAa,SAASuB,CAAmB,GAE1Cb,EAAca,CAAG,IAAMC,EACvB,CACAF,EAA4B,GAC5B,KACF,CAGF,GAAI,CAACA,EACH,OAAOnB,IAAU,CACf,QAAS,sCACX,CAAC,EAGH,IAAMsB,EAAeC,EAAmBP,EAAQZ,EAAQ,CACtD,oBAAqB,EACvB,CAAC,EAED,MAAML,IAAWuB,CAAY,EAE7B,IAAME,EAA0B,MAAMnB,EAAwBW,CAAM,EAEhEQ,EAAwB,MAC1BxB,IAAUwB,EAAwB,KAAK,EAEvCvB,IACEuB,EAAwB,IAC1B,CAEJ,EAlCqB,gBAoCrB,OACEC,EAAA,cAACC,EAAA,CAAM,GAAGd,GACRa,EAAA,cAAC,QACC,GAAIvB,EACJ,cAAY,0BACZ,SAAUU,EAAK,aAAaK,CAAY,EACxC,UAAU,gDAEVQ,EAAA,cAACE,EAAA,CAAqB,OAAQvB,EAAQ,CACxC,CACF,CAEJ,CA/FgBc,EAAApB,EAAA","names":["React","useEffect","useForm","commonFields","ContractAmendmentForm","onSubmit","onError","onSuccess","formId","checkFieldUpdates","fields","submitContractAmendment","stepState","initialValues","handleValidation","useContractAmendmentContext","resolver","useJsonSchemasValidationFormResolver","form","useForm","useEffect","subscription","values","handleSubmit","__name","hasContractDetailsChanges","key","value","parsedValues","parseJSFToValidate","contractAmendmentResult","React","Form","JSONSchemaFormFields"]}
@@ -1,2 +0,0 @@
1
- import{a as e}from"./chunk-VX2UC3HG.js";import{a as i}from"./chunk-XSHHMBMT.js";import{a as o}from"./chunk-JODJFARP.js";import{a as m}from"./chunk-W5DG5WWJ.js";var p={employee_communication:o,termination_details:e,paid_time_off:m,additional_information:i};export{p as a};
2
- //# sourceMappingURL=chunk-HSW5HMHH.js.map
@@ -1,2 +0,0 @@
1
- import{a as s}from"./chunk-5ETXP2QF.js";import{a}from"./chunk-AYDF3IFZ.js";import{Slot as x}from"@radix-ui/react-slot";import*as o from"react";import d from"dompurify";import{Controller as C,FormProvider as g,useFormContext as R,useFormState as b}from"react-hook-form";import*as c from"react";import*as u from"@radix-ui/react-label";function f({className:e,...t}){return c.createElement(u.Root,{"data-slot":"label",className:s("flex items-center gap-2 text-sm leading-none select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50",e),...t})}a(f,"Label");var M=g,p=o.createContext({}),$=a(({...e})=>o.createElement(p.Provider,{value:{name:e.name}},o.createElement(C,{...e})),"FormField"),l=a(()=>{let e=o.useContext(p),t=o.useContext(F),{getFieldState:r}=R(),n=b({name:e.name}),i=r(e.name,n);if(!e)throw new Error("useFormField should be used within <FormField>");let{id:m}=t;return{id:m,name:e.name,formItemId:`${m}-form-item`,formDescriptionId:`${m}-form-item-description`,formMessageId:`${m}-form-item-message`,...i}},"useFormField"),F=o.createContext({});function _({className:e,...t}){let r=o.useId();return o.createElement(F.Provider,{value:{id:r}},o.createElement("div",{"data-slot":"form-item",...t,className:s("grid gap-2",e)}))}a(_,"FormItem");function H({className:e,...t}){let{error:r,formItemId:n}=l();return o.createElement(f,{"data-slot":"form-label","data-error":!!r,className:s("text-base-color mb-1 data-[error=true]:text-destructive",e),htmlFor:n,...t})}a(H,"FormLabel");var P=o.forwardRef(({...e},t)=>{let{error:r,formItemId:n,formDescriptionId:i,formMessageId:m}=l();return o.createElement(x,{"data-slot":"form-control",ref:t,id:n,"aria-describedby":r?`${i} ${m}`:`${i}`,"aria-invalid":!!r,...e})});P.displayName="FormControl";var I=a(e=>{let t=new Set(e?e.toLowerCase().split(" "):[]);return t.add("noopener"),t.add("noreferrer"),Array.from(t).join(" ")},"appendSecureRelValue");d.isSupported&&d.addHook("afterSanitizeAttributes",e=>{let t=e.getAttribute("target");if(e.tagName==="A"&&(!t||t!=="_self")){e.setAttribute("target","_blank");let r=e.getAttribute("rel");e.setAttribute("rel",I(r))}});function k({className:e,children:t,...r}){let{formDescriptionId:n}=l();return o.createElement("p",{"data-slot":"form-description",id:n,className:s("text-base-color text-xs",e),...typeof t=="string"?{dangerouslySetInnerHTML:{__html:d.sanitize(t,{ADD_ATTR:["target"]})}}:{},...r},typeof t=="function"?t():null)}a(k,"FormDescription");function z({className:e,...t}){let{error:r,formMessageId:n}=l(),i=r?String(r?.message??""):t.children;return i?o.createElement("p",{"data-slot":"form-message",id:n,className:s("text-destructive text-sm",e),...t},i):null}a(z,"FormMessage");export{M as a,$ as b,_ as c,H as d,P as e,k as f,z as g};
2
- //# sourceMappingURL=chunk-IDSJI7KQ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/ui/form.tsx","../src/components/ui/label.tsx"],"sourcesContent":["import * as LabelPrimitive from '@radix-ui/react-label';\nimport { Slot } from '@radix-ui/react-slot';\nimport * as React from 'react';\nimport DOMPurify from 'dompurify';\nimport {\n Controller,\n ControllerProps,\n FieldPath,\n FieldValues,\n FormProvider,\n useFormContext,\n useFormState,\n} from 'react-hook-form';\n\nimport { Label } from '@/src/components/ui/label';\nimport { cn } from '@/src/lib/utils';\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue,\n);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue,\n);\n\nfunction FormItem({ className, ...props }: React.ComponentProps<'div'>) {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div\n data-slot=\"form-item\"\n {...props}\n className={cn('grid gap-2', className)}\n />\n </FormItemContext.Provider>\n );\n}\n\nfunction FormLabel({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn(\n 'text-base-color mb-1 data-[error=true]:text-destructive',\n className,\n )}\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\nconst FormControl = React.forwardRef<\n React.ComponentRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n data-slot=\"form-control\"\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n});\n\nFormControl.displayName = 'FormControl';\n\n// Deduplicates rel values if necessary and appends noopener and noreferrer\nconst appendSecureRelValue = (rel: string | null) => {\n const attributes = new Set(rel ? rel.toLowerCase().split(' ') : []);\n\n attributes.add('noopener');\n attributes.add('noreferrer');\n\n return Array.from(attributes).join(' ');\n};\n\nif (DOMPurify.isSupported) {\n DOMPurify.addHook('afterSanitizeAttributes', (node) => {\n const target = node.getAttribute('target');\n\n // set value of target to be _blank with rel, or keep as _self if already set\n if (node.tagName === 'A' && (!target || target !== '_self')) {\n node.setAttribute('target', '_blank');\n const rel = node.getAttribute('rel');\n node.setAttribute('rel', appendSecureRelValue(rel));\n }\n });\n}\n\nfunction FormDescription({\n className,\n children,\n ...props\n}: React.ComponentProps<'p'> & {\n children?: React.ReactNode | (() => React.ReactNode);\n}) {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn('text-base-color text-xs', className)}\n {...(typeof children === 'string'\n ? {\n dangerouslySetInnerHTML: {\n __html: DOMPurify.sanitize(children, { ADD_ATTR: ['target'] }),\n },\n }\n : {})} // Only add dangerouslySetInnerHTML when children is a string\n {...props}\n >\n {typeof children === 'function' ? children() : null}\n </p>\n );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<'p'>) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? '') : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n data-slot=\"form-message\"\n id={formMessageId}\n className={cn('text-destructive text-sm', className)}\n {...props}\n >\n {body}\n </p>\n );\n}\n\nexport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n useFormField,\n};\n","'use client';\n\nimport * as React from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"mappings":"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","names":["Slot","React","DOMPurify","Controller","FormProvider","useFormContext","useFormState","React","LabelPrimitive","Label","className","props","cn","__name","Form","FormProvider","FormFieldContext","FormField","__name","props","Controller","useFormField","fieldContext","itemContext","FormItemContext","getFieldState","useFormContext","formState","useFormState","fieldState","id","FormItem","className","cn","FormLabel","error","formItemId","Label","FormControl","ref","formDescriptionId","formMessageId","Slot","appendSecureRelValue","rel","attributes","DOMPurify","node","target","FormDescription","children","FormMessage","body"]}
@@ -1,2 +0,0 @@
1
- import{a,b as m,c as p,d}from"./chunk-3FVI5JIC.js";import{a as l}from"./chunk-MESREYTZ.js";import{b as i}from"./chunk-56BNVYTD.js";import{b as s}from"./chunk-5ETXP2QF.js";import{a as t}from"./chunk-AYDF3IFZ.js";import{Info as g}from"lucide-react";import o from"react";function y({contributionsTotal:u,currency:e,contributionsBreakdown:n}){return o.createElement("div",null,o.createElement("div",{className:"flex justify-between items-center mb-2"},o.createElement("h3",{className:"font-medium text-primary-foreground"},"Employer Contributions"),o.createElement("span",{className:"font-semibold text-lg"},s(u,e))),n?o.createElement(o.Fragment,null,o.createElement(l,{className:"mb-3"}),o.createElement("div",{className:"space-y-3 pl-2"},n.map((r,f)=>o.createElement("div",{key:f,className:"flex justify-between items-start text-sm"},o.createElement("div",{className:"flex items-start gap-2"},o.createElement("span",null,r.name),o.createElement(a,null,o.createElement(m,null,o.createElement(p,{asChild:!0},o.createElement(i,{variant:"ghost",size:"icon",className:"h-4 w-4 p-0"},o.createElement(g,{className:"h-3 w-3 text-gray-400"}),o.createElement("span",{className:"sr-only"},"Info"))),o.createElement(d,null,o.createElement("p",{className:"max-w-xs"},r.description),r.zendesk_article_url&&o.createElement("a",{href:r.zendesk_article_url,target:"_blank",rel:"noopener noreferrer",className:"text-blue-500 hover:underline block mt-1 text-xs"},"Learn more"))))),o.createElement("span",null,s(r.amount,e)))))):null)}t(y,"CostCalculatorContributionsBreakdown");export{y as a};
2
- //# sourceMappingURL=chunk-J55S4SEH.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.tsx"],"sourcesContent":["import { Info } from 'lucide-react';\nimport React from 'react';\n\nimport {\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n Tooltip as UITooltip,\n} from '@/src/components/ui/tooltip';\n\nimport { Button } from '@/src/components/ui/button';\nimport { Separator } from '@/src/components/ui/separator';\nimport { formatCurrency } from '@/src/lib/utils';\n\ntype CostCalculatorContributionsBreakdownProps = {\n contributionsTotal: number;\n currency: string;\n contributionsBreakdown:\n | {\n name: string;\n description: string | null;\n amount: number;\n zendesk_article_url: string | null;\n }[]\n | undefined;\n};\n\nexport function CostCalculatorContributionsBreakdown({\n contributionsTotal,\n currency,\n contributionsBreakdown,\n}: CostCalculatorContributionsBreakdownProps) {\n return (\n <div>\n <div className=\"flex justify-between items-center mb-2\">\n <h3 className=\"font-medium text-primary-foreground\">\n Employer Contributions\n </h3>\n <span className=\"font-semibold text-lg\">\n {formatCurrency(contributionsTotal, currency)}\n </span>\n </div>\n {contributionsBreakdown ? (\n <>\n <Separator className=\"mb-3\" />\n <div className=\"space-y-3 pl-2\">\n {contributionsBreakdown.map((contribution, index) => (\n <div\n key={index}\n className=\"flex justify-between items-start text-sm\"\n >\n <div className=\"flex items-start gap-2\">\n <span>{contribution.name}</span>\n <TooltipProvider>\n <UITooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-4 w-4 p-0\"\n >\n <Info className=\"h-3 w-3 text-gray-400\" />\n <span className=\"sr-only\">Info</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n <p className=\"max-w-xs\">{contribution.description}</p>\n {contribution.zendesk_article_url && (\n <a\n href={contribution.zendesk_article_url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-blue-500 hover:underline block mt-1 text-xs\"\n >\n Learn more\n </a>\n )}\n </TooltipContent>\n </UITooltip>\n </TooltipProvider>\n </div>\n <span>{formatCurrency(contribution.amount, currency)}</span>\n </div>\n ))}\n </div>\n </>\n ) : null}\n </div>\n );\n}\n"],"mappings":"mNAAA,OAAS,QAAAA,MAAY,eACrB,OAAOC,MAAW,QA0BX,SAASC,EAAqC,CACnD,mBAAAC,EACA,SAAAC,EACA,uBAAAC,CACF,EAA8C,CAC5C,OACEC,EAAA,cAAC,WACCA,EAAA,cAAC,OAAI,UAAU,0CACbA,EAAA,cAAC,MAAG,UAAU,uCAAsC,wBAEpD,EACAA,EAAA,cAAC,QAAK,UAAU,yBACbC,EAAeJ,EAAoBC,CAAQ,CAC9C,CACF,EACCC,EACCC,EAAA,cAAAA,EAAA,cACEA,EAAA,cAACE,EAAA,CAAU,UAAU,OAAO,EAC5BF,EAAA,cAAC,OAAI,UAAU,kBACZD,EAAuB,IAAI,CAACI,EAAcC,IACzCJ,EAAA,cAAC,OACC,IAAKI,EACL,UAAU,4CAEVJ,EAAA,cAAC,OAAI,UAAU,0BACbA,EAAA,cAAC,YAAMG,EAAa,IAAK,EACzBH,EAAA,cAACK,EAAA,KACCL,EAAA,cAACM,EAAA,KACCN,EAAA,cAACO,EAAA,CAAe,QAAO,IACrBP,EAAA,cAACQ,EAAA,CACC,QAAQ,QACR,KAAK,OACL,UAAU,eAEVR,EAAA,cAACS,EAAA,CAAK,UAAU,wBAAwB,EACxCT,EAAA,cAAC,QAAK,UAAU,WAAU,MAAI,CAChC,CACF,EACAA,EAAA,cAACU,EAAA,KACCV,EAAA,cAAC,KAAE,UAAU,YAAYG,EAAa,WAAY,EACjDA,EAAa,qBACZH,EAAA,cAAC,KACC,KAAMG,EAAa,oBACnB,OAAO,SACP,IAAI,sBACJ,UAAU,oDACX,YAED,CAEJ,CACF,CACF,CACF,EACAH,EAAA,cAAC,YAAMC,EAAeE,EAAa,OAAQL,CAAQ,CAAE,CACvD,CACD,CACH,CACF,EACE,IACN,CAEJ,CA9DgBa,EAAAf,EAAA","names":["Info","React","CostCalculatorContributionsBreakdown","contributionsTotal","currency","contributionsBreakdown","React","formatCurrency","Separator","contribution","index","TooltipProvider","Tooltip","TooltipTrigger","Button","Info","TooltipContent","__name"]}
@@ -1,2 +0,0 @@
1
- import{a as t}from"./chunk-Q64URAIN.js";import{b as a}from"./chunk-DZYFSFZ7.js";import{a as i}from"./chunk-AYDF3IFZ.js";import p from"react";function b({requesterName:n,onSubmit:m,onSuccess:s,onError:d}){let{terminationBag:e}=a(),l=i(async r=>{await m?.(e?.parseFormValues(r));let o=await e?.onSubmit(r);o?.error?d?.(o.error):o?.data&&s?.(o.data)},"handleSubmit"),u=e?.fields.map(r=>r.name==="acknowledge_termination_procedure"?{...r,label:r.label.replace("{{requesterName}}",n)}:r);return p.createElement(t,{fields:u,onSubmit:l})}i(b,"AdditionalDetailsForm");export{b as a};
2
- //# sourceMappingURL=chunk-JBG4RVXQ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/Termination/AdditionalDetailsForm.tsx"],"sourcesContent":["import React from 'react';\nimport { useTerminationContext } from './context';\nimport { TerminationFormValues } from '@/src/flows/Termination/types';\nimport { OffboardingResponse } from '@/src/client';\nimport { TerminationForm } from '@/src/flows/Termination/TerminationForm';\n\ntype AdditionalDetailsFormProps = {\n /*\n * The name of the person who initiates the termination, used to personalize the label of the\n * acknowledge_termination_procedure field.\n */\n requesterName: string;\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (payload: TerminationFormValues) => void | Promise<void>;\n /*\n * The function is called when the form submission has failed.\n */\n onError?: (error: Error) => void;\n /*\n * The function is called when the form submission is successful. It receives the response data as\n * an argument.\n */\n onSuccess?: (data: OffboardingResponse) => void;\n};\n\nexport function AdditionalDetailsForm({\n requesterName,\n onSubmit,\n onSuccess,\n onError,\n}: AdditionalDetailsFormProps) {\n const { terminationBag } = useTerminationContext();\n\n const handleSubmit = async (values: TerminationFormValues) => {\n await onSubmit?.(\n terminationBag?.parseFormValues(values) as TerminationFormValues,\n );\n const terminationResult = await terminationBag?.onSubmit(values);\n\n if (terminationResult?.error) {\n onError?.(terminationResult.error);\n } else {\n if (terminationResult?.data) {\n onSuccess?.(terminationResult.data as OffboardingResponse);\n }\n }\n };\n\n const updatedFields = terminationBag?.fields.map((field) => {\n if (field.name === 'acknowledge_termination_procedure') {\n return {\n ...field,\n label: (field.label as string).replace(\n '{{requesterName}}',\n requesterName,\n ),\n };\n }\n return field;\n });\n\n return <TerminationForm fields={updatedFields} onSubmit={handleSubmit} />;\n}\n"],"mappings":"wHAAA,OAAOA,MAAW,QA2BX,SAASC,EAAsB,CACpC,cAAAC,EACA,SAAAC,EACA,UAAAC,EACA,QAAAC,CACF,EAA+B,CAC7B,GAAM,CAAE,eAAAC,CAAe,EAAIC,EAAsB,EAE3CC,EAAeC,EAAA,MAAOC,GAAkC,CAC5D,MAAMP,IACJG,GAAgB,gBAAgBI,CAAM,CACxC,EACA,IAAMC,EAAoB,MAAML,GAAgB,SAASI,CAAM,EAE3DC,GAAmB,MACrBN,IAAUM,EAAkB,KAAK,EAE7BA,GAAmB,MACrBP,IAAYO,EAAkB,IAA2B,CAG/D,EAbqB,gBAefC,EAAgBN,GAAgB,OAAO,IAAKO,GAC5CA,EAAM,OAAS,oCACV,CACL,GAAGA,EACH,MAAQA,EAAM,MAAiB,QAC7B,oBACAX,CACF,CACF,EAEKW,CACR,EAED,OAAOC,EAAA,cAACC,EAAA,CAAgB,OAAQH,EAAe,SAAUJ,EAAc,CACzE,CArCgBC,EAAAR,EAAA","names":["React","AdditionalDetailsForm","requesterName","onSubmit","onSuccess","onError","terminationBag","useTerminationContext","handleSubmit","__name","values","terminationResult","updatedFields","field","React","TerminationForm"]}
@@ -1,2 +0,0 @@
1
- import{a,b as m,c as p,d as l}from"./chunk-3FVI5JIC.js";import{a as e}from"./chunk-MESREYTZ.js";import{b as n}from"./chunk-56BNVYTD.js";import{b as i}from"./chunk-5ETXP2QF.js";import{a as t}from"./chunk-AYDF3IFZ.js";import{Info as v}from"lucide-react";import o from"react";function w({benefitsTotal:d,benefitsBreakdown:f,currency:r}){return o.createElement("div",null,o.createElement("div",{className:"flex justify-between items-center mb-2"},o.createElement("h3",{className:"font-medium text-primary-foreground-800"},"Benefits"),o.createElement("span",{className:"font-semibold text-lg"},i(d,r))),o.createElement(e,{className:"mb-3"}),o.createElement("div",{className:"space-y-3 pl-2"},f.map((s,u)=>o.createElement("div",{key:u,className:"flex justify-between items-start text-sm"},o.createElement("div",{className:"flex items-start gap-2"},o.createElement("span",null,s.name),o.createElement(a,null,o.createElement(m,null,o.createElement(p,{asChild:!0},o.createElement(n,{variant:"ghost",size:"icon",className:"h-4 w-4 p-0"},o.createElement(v,{className:"h-3 w-3 text-gray-400"}),o.createElement("span",{className:"sr-only"},"Info"))),o.createElement(l,null,o.createElement("p",{className:"max-w-xs"},s.description))))),o.createElement("span",null,i(s.amount,r))))))}t(w,"CostCalculatorBenefitsBreakdown");export{w as a};
2
- //# sourceMappingURL=chunk-KH6QS5OU.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.tsx"],"sourcesContent":["import { Info } from 'lucide-react';\nimport React from 'react';\n\nimport { Button } from '@/src/components/ui/button';\nimport { Separator } from '@/src/components/ui/separator';\nimport {\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n Tooltip as UITooltip,\n} from '@/src/components/ui/tooltip';\nimport { formatCurrency } from '@/src/lib/utils';\n\ntype CostCalculatorBenefitsBreakdownProps = {\n benefitsTotal: number | undefined;\n benefitsBreakdown: {\n name: string;\n description: string | null;\n amount: number;\n }[];\n currency: string;\n};\n\nexport function CostCalculatorBenefitsBreakdown({\n benefitsTotal,\n benefitsBreakdown,\n currency,\n}: CostCalculatorBenefitsBreakdownProps) {\n return (\n <div>\n <div className=\"flex justify-between items-center mb-2\">\n <h3 className=\"font-medium text-primary-foreground-800\">Benefits</h3>\n <span className=\"font-semibold text-lg\">\n {formatCurrency(benefitsTotal, currency)}\n </span>\n </div>\n <Separator className=\"mb-3\" />\n\n <div className=\"space-y-3 pl-2\">\n {benefitsBreakdown.map((benefit, index) => (\n <div key={index} className=\"flex justify-between items-start text-sm\">\n <div className=\"flex items-start gap-2\">\n <span>{benefit.name}</span>\n <TooltipProvider>\n <UITooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"h-4 w-4 p-0\">\n <Info className=\"h-3 w-3 text-gray-400\" />\n <span className=\"sr-only\">Info</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n <p className=\"max-w-xs\">{benefit.description}</p>\n </TooltipContent>\n </UITooltip>\n </TooltipProvider>\n </div>\n <span>{formatCurrency(benefit.amount, currency)}</span>\n </div>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":"wNAAA,OAAS,QAAAA,MAAY,eACrB,OAAOC,MAAW,QAsBX,SAASC,EAAgC,CAC9C,cAAAC,EACA,kBAAAC,EACA,SAAAC,CACF,EAAyC,CACvC,OACEC,EAAA,cAAC,WACCA,EAAA,cAAC,OAAI,UAAU,0CACbA,EAAA,cAAC,MAAG,UAAU,2CAA0C,UAAQ,EAChEA,EAAA,cAAC,QAAK,UAAU,yBACbC,EAAeJ,EAAeE,CAAQ,CACzC,CACF,EACAC,EAAA,cAACE,EAAA,CAAU,UAAU,OAAO,EAE5BF,EAAA,cAAC,OAAI,UAAU,kBACZF,EAAkB,IAAI,CAACK,EAASC,IAC/BJ,EAAA,cAAC,OAAI,IAAKI,EAAO,UAAU,4CACzBJ,EAAA,cAAC,OAAI,UAAU,0BACbA,EAAA,cAAC,YAAMG,EAAQ,IAAK,EACpBH,EAAA,cAACK,EAAA,KACCL,EAAA,cAACM,EAAA,KACCN,EAAA,cAACO,EAAA,CAAe,QAAO,IACrBP,EAAA,cAACQ,EAAA,CAAO,QAAQ,QAAQ,KAAK,OAAO,UAAU,eAC5CR,EAAA,cAACS,EAAA,CAAK,UAAU,wBAAwB,EACxCT,EAAA,cAAC,QAAK,UAAU,WAAU,MAAI,CAChC,CACF,EACAA,EAAA,cAACU,EAAA,KACCV,EAAA,cAAC,KAAE,UAAU,YAAYG,EAAQ,WAAY,CAC/C,CACF,CACF,CACF,EACAH,EAAA,cAAC,YAAMC,EAAeE,EAAQ,OAAQJ,CAAQ,CAAE,CAClD,CACD,CACH,CACF,CAEJ,CAxCgBY,EAAAf,EAAA","names":["Info","React","CostCalculatorBenefitsBreakdown","benefitsTotal","benefitsBreakdown","currency","React","formatCurrency","Separator","benefit","index","TooltipProvider","Tooltip","TooltipTrigger","Button","Info","TooltipContent","__name"]}
@@ -1,2 +0,0 @@
1
- import{a}from"./chunk-XLFHHYVS.js";import{a as c}from"./chunk-GOLOL2V6.js";import{a as e}from"./chunk-FMT2OTOL.js";import{a as m}from"./chunk-ABR3B66K.js";import{a as r}from"./chunk-HEPL5WDF.js";import{a as o}from"./chunk-6HGUGIYJ.js";import{a as n}from"./chunk-AYDF3IFZ.js";import f,{useId as s}from"react";function k({employmentId:d,countryCode:C,options:p,render:A}){let t=c({employmentId:d,countryCode:C,options:p}),i=s();return f.createElement(o.Provider,{value:{formId:i,contractAmendmentBag:t}},A({contractAmendmentBag:t,components:{Form:r,SubmitButton:a,ConfirmationForm:m,BackButton:e}}))}n(k,"ContractAmendmentFlow");export{k as a};
2
- //# sourceMappingURL=chunk-KQH5HLN5.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/ContractAmendment/ContractAmendmentFlow.tsx"],"sourcesContent":["import React, { useId } from 'react';\nimport { ContractAmendmentContext } from './context';\nimport { ContractAmendmentBack } from './ContractAmendmentBack';\nimport { ContractAmendmentConfirmationForm } from './ContractAmendmentConfirmationForm';\nimport { ContractAmendmentForm } from './ContractAmendmentForm';\nimport { ContractAmendmentSubmit } from './ContractAmendmentSubmit';\nimport { useContractAmendment } from './hooks';\nimport { ContractAmendmentParams } from './types';\n\ntype TUseContractAmendment = ReturnType<typeof useContractAmendment>;\n\nexport type ContractAmendmentRenderProps = {\n /**\n * The contract amendment bag returned by the useContractAmendment hook.\n * This bag contains all the methods and properties needed to handle the contract amendment flow.\n * @see {@link useContractAmendment}\n */\n contractAmendmentBag: TUseContractAmendment;\n /**\n * The components used in the contract amendment flow.\n * This includes the form, submit button, and confirmation form.\n * @see {@link ContractAmendmentForm}\n * @see {@link ContractAmendmentSubmit}\n * @see {@link ContractAmendmentConfirmationForm}\n */\n components: {\n Form: typeof ContractAmendmentForm;\n SubmitButton: typeof ContractAmendmentSubmit;\n ConfirmationForm: typeof ContractAmendmentConfirmationForm;\n BackButton: typeof ContractAmendmentBack;\n };\n};\n\ntype ContractAmendmentFlowProps = ContractAmendmentParams & {\n render: ({\n contractAmendmentBag,\n components,\n }: ContractAmendmentRenderProps) => React.ReactNode;\n};\n\nexport function ContractAmendmentFlow({\n employmentId,\n countryCode,\n options,\n render,\n}: ContractAmendmentFlowProps) {\n const contractAmendmentBag = useContractAmendment({\n employmentId,\n countryCode,\n options,\n });\n const formId = useId();\n\n return (\n <ContractAmendmentContext.Provider\n value={{\n formId: formId,\n contractAmendmentBag,\n }}\n >\n {render({\n contractAmendmentBag,\n components: {\n Form: ContractAmendmentForm,\n SubmitButton: ContractAmendmentSubmit,\n ConfirmationForm: ContractAmendmentConfirmationForm,\n BackButton: ContractAmendmentBack,\n },\n })}\n </ContractAmendmentContext.Provider>\n );\n}\n"],"mappings":"mRAAA,OAAOA,GAAS,SAAAC,MAAa,QAwCtB,SAASC,EAAsB,CACpC,aAAAC,EACA,YAAAC,EACA,QAAAC,EACA,OAAAC,CACF,EAA+B,CAC7B,IAAMC,EAAuBC,EAAqB,CAChD,aAAAL,EACA,YAAAC,EACA,QAAAC,CACF,CAAC,EACKI,EAASC,EAAM,EAErB,OACEC,EAAA,cAACC,EAAyB,SAAzB,CACC,MAAO,CACL,OAAQH,EACR,qBAAAF,CACF,GAECD,EAAO,CACN,qBAAAC,EACA,WAAY,CACV,KAAMM,EACN,aAAcC,EACd,iBAAkBC,EAClB,WAAYC,CACd,CACF,CAAC,CACH,CAEJ,CA/BgBC,EAAAf,EAAA","names":["React","useId","ContractAmendmentFlow","employmentId","countryCode","options","render","contractAmendmentBag","useContractAmendment","formId","useId","React","ContractAmendmentContext","ContractAmendmentForm","ContractAmendmentSubmit","ContractAmendmentConfirmationForm","ContractAmendmentBack","__name"]}
@@ -1,2 +0,0 @@
1
- import{b as n}from"./chunk-DZYFSFZ7.js";import{b as r}from"./chunk-56BNVYTD.js";import{a as o}from"./chunk-AYDF3IFZ.js";import e from"react";function B(t){let{formId:i}=n();return e.createElement(r,{...t,form:i},t.children)}o(B,"TerminationSubmit");export{B as a};
2
- //# sourceMappingURL=chunk-KSGPQCSG.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/Termination/TerminationSubmit.tsx"],"sourcesContent":["import { Button } from '@/src/components/ui/button';\nimport React, { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { useTerminationContext } from './context';\n\nexport function TerminationSubmit(\n props: PropsWithChildren<ButtonHTMLAttributes<HTMLButtonElement>>,\n) {\n const { formId } = useTerminationContext();\n\n return (\n <Button {...props} form={formId}>\n {props.children}\n </Button>\n );\n}\n"],"mappings":"wHACA,OAAOA,MAAwD,QAGxD,SAASC,EACdC,EACA,CACA,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAsB,EAEzC,OACEC,EAAA,cAACC,EAAA,CAAQ,GAAGJ,EAAO,KAAMC,GACtBD,EAAM,QACT,CAEJ,CAVgBK,EAAAN,EAAA","names":["React","TerminationSubmit","props","formId","useTerminationContext","React","Button","__name"]}
@@ -1,2 +0,0 @@
1
- import{b as d}from"./chunk-WS3C3WIJ.js";import{b as t}from"./chunk-A4RX3KRZ.js";import{a}from"./chunk-MIHU6CEZ.js";import{a as s}from"./chunk-IDSJI7KQ.js";import{a as m}from"./chunk-AYDF3IFZ.js";import e,{useEffect as l}from"react";import{useForm as b}from"react-hook-form";function w({defaultValues:f,onSubmit:c,components:p}){let{formId:F,onboardingBag:o}=d(),u=t(o.handleValidation),r=b({resolver:u,defaultValues:f,shouldUnregister:!1,mode:"onBlur"});return l(()=>{o.employmentId&&o?.checkFieldUpdates(r.getValues())},[]),l(()=>{let y=r?.watch(n=>{Object.keys(n).some(i=>n[i]!==o?.initialValues?.[i])&&o?.checkFieldUpdates(n)});return()=>y?.unsubscribe()},[]),e.createElement(s,{...r},e.createElement("form",{id:F,onSubmit:r.handleSubmit(c),className:"space-y-4 RemoteFlows__OnboardingForm"},e.createElement(a,{components:p,fields:o.fields})))}m(w,"OnboardingForm");export{w as a};
2
- //# sourceMappingURL=chunk-LNKYOAKF.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/Onboarding/OnboardingForm.tsx"],"sourcesContent":["import { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { Form } from '@/src/components/ui/form';\nimport React, { useEffect } from 'react';\nimport { useOnboardingContext } from './context';\nimport { useForm } from 'react-hook-form';\nimport { useJsonSchemasValidationFormResolver } from '@/src/components/form/yupValidationResolver';\nimport { Fields } from '@remoteoss/json-schema-form';\nimport {\n BasicInformationFormPayload,\n BenefitsFormPayload,\n ContractDetailsFormPayload,\n} from '@/src/flows/Onboarding/types';\nimport { Components } from '@/src/types/remoteFlows';\n\ntype OnboardingFormProps = {\n onSubmit: (\n payload:\n | BasicInformationFormPayload\n | BenefitsFormPayload\n | ContractDetailsFormPayload,\n ) => void;\n components?: Components;\n fields?: Fields;\n defaultValues: Record<string, unknown>;\n};\n\nexport function OnboardingForm({\n defaultValues,\n onSubmit,\n components,\n}: OnboardingFormProps) {\n const { formId, onboardingBag } = useOnboardingContext();\n\n const resolver = useJsonSchemasValidationFormResolver(\n // @ts-expect-error no matching type\n onboardingBag.handleValidation,\n );\n\n const form = useForm({\n resolver,\n defaultValues,\n shouldUnregister: false,\n mode: 'onBlur',\n });\n\n useEffect(() => {\n // When the employmentId is set,\n // we need to run the checkFieldUpdates to update fieldValues in useStepState\n if (onboardingBag.employmentId) {\n onboardingBag?.checkFieldUpdates(form.getValues());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const subscription = form?.watch((values) => {\n const isAnyFieldDirty = Object.keys(values).some(\n (key) =>\n values[key as keyof unknown] !==\n onboardingBag?.initialValues?.[key as keyof unknown],\n );\n if (isAnyFieldDirty) {\n onboardingBag?.checkFieldUpdates(values);\n }\n });\n return () => subscription?.unsubscribe();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <Form {...form}>\n <form\n id={formId}\n onSubmit={form.handleSubmit(onSubmit)}\n className=\"space-y-4 RemoteFlows__OnboardingForm\"\n >\n <JSONSchemaFormFields\n components={components}\n fields={onboardingBag.fields}\n />\n </form>\n </Form>\n );\n}\n"],"mappings":"mMAEA,OAAOA,GAAS,aAAAC,MAAiB,QAEjC,OAAS,WAAAC,MAAe,kBAsBjB,SAASC,EAAe,CAC7B,cAAAC,EACA,SAAAC,EACA,WAAAC,CACF,EAAwB,CACtB,GAAM,CAAE,OAAAC,EAAQ,cAAAC,CAAc,EAAIC,EAAqB,EAEjDC,EAAWC,EAEfH,EAAc,gBAChB,EAEMI,EAAOC,EAAQ,CACnB,SAAAH,EACA,cAAAN,EACA,iBAAkB,GAClB,KAAM,QACR,CAAC,EAED,OAAAU,EAAU,IAAM,CAGVN,EAAc,cAChBA,GAAe,kBAAkBI,EAAK,UAAU,CAAC,CAGrD,EAAG,CAAC,CAAC,EAELE,EAAU,IAAM,CACd,IAAMC,EAAeH,GAAM,MAAOI,GAAW,CACnB,OAAO,KAAKA,CAAM,EAAE,KACzCC,GACCD,EAAOC,CAAoB,IAC3BT,GAAe,gBAAgBS,CAAoB,CACvD,GAEET,GAAe,kBAAkBQ,CAAM,CAE3C,CAAC,EACD,MAAO,IAAMD,GAAc,YAAY,CAEzC,EAAG,CAAC,CAAC,EAGHG,EAAA,cAACC,EAAA,CAAM,GAAGP,GACRM,EAAA,cAAC,QACC,GAAIX,EACJ,SAAUK,EAAK,aAAaP,CAAQ,EACpC,UAAU,yCAEVa,EAAA,cAACE,EAAA,CACC,WAAYd,EACZ,OAAQE,EAAc,OACxB,CACF,CACF,CAEJ,CAzDgBa,EAAAlB,EAAA","names":["React","useEffect","useForm","OnboardingForm","defaultValues","onSubmit","components","formId","onboardingBag","useOnboardingContext","resolver","useJsonSchemasValidationFormResolver","form","useForm","useEffect","subscription","values","key","React","Form","JSONSchemaFormFields","__name"]}
@@ -1,2 +0,0 @@
1
- import{b as n}from"./chunk-WS3C3WIJ.js";import{b as o}from"./chunk-56BNVYTD.js";import{a as t}from"./chunk-AYDF3IFZ.js";import u from"react";function s({children:r,...i}){let{onboardingBag:{back:e}}=n();return u.createElement(o,{...i,onClick:()=>{e()}},r)}t(s,"OnboardingBack");export{s as a};
2
- //# sourceMappingURL=chunk-M7WCW7WD.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/Onboarding/OnboardingBack.tsx"],"sourcesContent":["import { Button } from '@/src/components/ui/button';\nimport React, { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { useOnboardingContext } from '@/src/flows/Onboarding/context';\n\nexport function OnboardingBack({\n children,\n ...props\n}: PropsWithChildren<ButtonHTMLAttributes<HTMLButtonElement>>) {\n const {\n onboardingBag: { back },\n } = useOnboardingContext();\n\n return (\n <Button\n {...props}\n onClick={() => {\n back();\n }}\n >\n {children}\n </Button>\n );\n}\n"],"mappings":"wHACA,OAAOA,MAAwD,QAGxD,SAASC,EAAe,CAC7B,SAAAC,EACA,GAAGC,CACL,EAA+D,CAC7D,GAAM,CACJ,cAAe,CAAE,KAAAC,CAAK,CACxB,EAAIC,EAAqB,EAEzB,OACEC,EAAA,cAACC,EAAA,CACE,GAAGJ,EACJ,QAAS,IAAM,CACbC,EAAK,CACP,GAECF,CACH,CAEJ,CAlBgBM,EAAAP,EAAA","names":["React","OnboardingBack","children","props","back","useOnboardingContext","React","Button","__name"]}
@@ -1,2 +0,0 @@
1
- import{a as o}from"./chunk-5ETXP2QF.js";import{a as t}from"./chunk-AYDF3IFZ.js";import*as r from"react";import*as a from"@radix-ui/react-separator";function m({className:i,orientation:e="horizontal",decorative:n=!0,...p}){return r.createElement(a.Root,{"data-slot":"separator-root",decorative:n,orientation:e,className:o("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",i),...p})}t(m,"Separator");export{m as a};
2
- //# sourceMappingURL=chunk-MESREYTZ.js.map
@@ -1,2 +0,0 @@
1
- import{b as r}from"./chunk-WS3C3WIJ.js";import{b as o}from"./chunk-56BNVYTD.js";import{a as t}from"./chunk-AYDF3IFZ.js";import e from"react";function d({children:n,...i}){let{formId:u}=r();return e.createElement(o,{...i,form:u},n)}t(d,"OnboardingSubmit");export{d as a};
2
- //# sourceMappingURL=chunk-MHKNAQLP.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/Onboarding/OnboardingSubmit.tsx"],"sourcesContent":["import React, { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { Button } from '@/src/components/ui/button';\nimport { useOnboardingContext } from '@/src/flows/Onboarding/context';\n\nexport function OnboardingSubmit({\n children,\n ...props\n}: PropsWithChildren<ButtonHTMLAttributes<HTMLButtonElement>>) {\n const { formId } = useOnboardingContext();\n\n return (\n <Button {...props} form={formId}>\n {children}\n </Button>\n );\n}\n"],"mappings":"wHAAA,OAAOA,MAAwD,QAIxD,SAASC,EAAiB,CAC/B,SAAAC,EACA,GAAGC,CACL,EAA+D,CAC7D,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAqB,EAExC,OACEC,EAAA,cAACC,EAAA,CAAQ,GAAGJ,EAAO,KAAMC,GACtBF,CACH,CAEJ,CAXgBM,EAAAP,EAAA","names":["React","OnboardingSubmit","children","props","formId","useOnboardingContext","React","Button","__name"]}
@@ -1,2 +0,0 @@
1
- import{a as ge}from"./chunk-GFBF55NR.js";import{b as F}from"./chunk-WRDKLT4N.js";import{a as me,b as J}from"./chunk-56BNVYTD.js";import{b as y,c as N,d as h,e as w,f as R,g as k}from"./chunk-IDSJI7KQ.js";import{a as s}from"./chunk-5ETXP2QF.js";import{a as r}from"./chunk-AYDF3IFZ.js";import U,{Fragment as At}from"react";import*as j from"react";import*as q from"@radix-ui/react-checkbox";import{Check as Ze}from"lucide-react";var te=j.forwardRef(({className:e,...t},o)=>j.createElement(q.Root,{ref:o,className:s("peer h-4 w-4 shrink-0 rounded-sm border border-input ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-checkbox data-[state=checked]:text-primary",e),...t},j.createElement(q.Indicator,{className:s("flex items-center justify-center text-current")},j.createElement(Ze,{className:"h-4 w-4"}))));te.displayName=q.Root.displayName;import*as D from"react";import{useFormContext as et}from"react-hook-form";function Fe({name:e,defaultValue:t,description:o,label:a,onChange:i,multiple:d,options:p,component:x,...C}){let{components:n}=F(),{control:c}=et(),u=r((m,l,g)=>{let _=g.value?[...g.value]:[];l?_.includes(m)||g.onChange([..._,m]):g.onChange(_.filter(z=>z!==m))},"handleCheckboxChange");return D.createElement(y,{control:c,name:e,defaultValue:t,render:({field:m,fieldState:l})=>{let g=x||n?.checkbox;if(g){let _={name:e,description:o,label:a,defaultValue:t,multiple:d,options:p,...C};return D.createElement(g,{field:{...m,onChange:r(z=>{if(d){let{checked:ee,value:I}=z.target;u(I,ee,m),i?.(ee);return}m.onChange(z),i?.(z)},"onChange")},fieldState:l,fieldData:_})}return D.createElement(N,{"data-field":e,className:s(`RemoteFlows__CheckBoxField__Item__${e}`)},D.createElement(w,null,D.createElement(D.Fragment,null,p&&d?D.createElement(h,null,a):null,p&&d?p.map(_=>D.createElement("div",{key:_.value,className:"flex space-x-2"},D.createElement(te,{id:_.value,onCheckedChange:z=>{u(_.value,z===!0,m),i?.(z,_.value)},checked:m.value?.includes(_.value),className:"RemoteFlows__CheckBox__Input"}),D.createElement(h,{htmlFor:_.value,className:"mb-0 RemoteFlows__CheckBox__Label"},_.label))):D.createElement("div",{className:"flex space-x-2"},D.createElement(te,{id:e,onCheckedChange:_=>{m.onChange(_),i?.(_)},checked:m.value,className:"RemoteFlows__CheckBox__Input"}),D.createElement(h,{htmlFor:e,className:"mb-0 RemoteFlows__CheckBox__Label"},a)))),o&&D.createElement(R,null,o),l.error&&D.createElement(k,null))}})}r(Fe,"CheckBoxField");import{CalendarIcon as at}from"lucide-react";import*as P from"react";import{useFormContext as nt}from"react-hook-form";import*as oe from"react";import{ChevronLeft as tt,ChevronRight as ot}from"lucide-react";import{DayPicker as rt}from"react-day-picker";function ve({className:e,classNames:t,showOutsideDays:o=!0,...a}){return oe.createElement(rt,{showOutsideDays:o,className:s("p-3",e),classNames:{months:"flex flex-col sm:flex-row gap-2",month:"flex flex-col gap-4",caption:"flex justify-center pt-1 relative items-center w-full",caption_label:"text-sm font-medium",nav:"flex items-center gap-1",nav_button:s(me({variant:"outline"}),"size-7 bg-transparent p-0 opacity-50 hover:opacity-100"),nav_button_previous:"absolute left-1",nav_button_next:"absolute right-1",table:"w-full border-collapse space-x-1",head_row:"flex",head_cell:"text-muted-foreground rounded-md w-8 font-normal text-[0.8rem]",row:"flex w-full mt-2",cell:s("relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-range-end)]:rounded-r-md",a.mode==="range"?"[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md":"[&:has([aria-selected])]:rounded-md"),day:s(me({variant:"ghost"}),"size-8 p-0 font-normal aria-selected:opacity-100"),day_range_start:"day-range-start aria-selected:bg-primary aria-selected:text-primary-foreground",day_range_end:"day-range-end aria-selected:bg-primary aria-selected:text-primary-foreground",day_selected:"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",day_today:"bg-accent text-accent-foreground",day_outside:"day-outside text-muted-foreground aria-selected:text-muted-foreground",day_disabled:"text-muted-foreground opacity-50",day_range_middle:"aria-selected:bg-accent aria-selected:text-accent-foreground",day_hidden:"invisible",...t},components:{IconLeft:r(({className:i,...d})=>oe.createElement(tt,{className:s("size-4",i),...d}),"IconLeft"),IconRight:r(({className:i,...d})=>oe.createElement(ot,{className:s("size-4",i),...d}),"IconRight")},...a})}r(ve,"Calendar");import*as Y from"react";import*as B from"@radix-ui/react-popover";function re({...e}){return Y.createElement(B.Root,{"data-slot":"popover",...e})}r(re,"Popover");function ae({...e}){return Y.createElement(B.Trigger,{"data-slot":"popover-trigger",...e})}r(ae,"PopoverTrigger");function ne({className:e,align:t="center",sideOffset:o=4,...a}){return Y.createElement(B.Portal,null,Y.createElement(B.Content,{"data-slot":"popover-content",align:t,sideOffset:o,className:s("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",e),...a}))}r(ne,"PopoverContent");import{PopoverClose as it}from"@radix-ui/react-popover";import{format as xe}from"date-fns";function Ce({description:e,label:t,name:o,minDate:a,onChange:i,component:d,...p}){let{components:x}=F(),{control:C}=nt();return P.createElement(y,{control:C,name:o,render:({field:n,fieldState:c})=>{let u=d||x?.date;if(u){let m={description:e,label:t,name:o,minDate:a,onChange:i,...p};return P.createElement(u,{field:{...n,onChange:r(l=>{n.onChange(l),i?.(l)},"onChange")},fieldState:c,fieldData:m})}return P.createElement(N,{"data-field":o,className:`flex flex-col RemoteFlows__DatePickerField__Item__${o}`},P.createElement(h,{className:"RemoteFlows__DatePickerField__Label"},t),P.createElement(re,null,P.createElement(ae,{asChild:!0},P.createElement(w,null,P.createElement("div",null,P.createElement(J,{type:"button",variant:"outline",className:s("w-full pl-3 text-left font-normal",!n.value&&"text-muted-foreground"),"data-testid":`date-picker-button-${o}`},n.value&&P.createElement(P.Fragment,null,xe(n.value,"yyyy-MM-dd")),P.createElement(at,{className:"ml-auto h-4 w-4 opacity-50"}))))),P.createElement(ne,{className:"w-auto p-0 RemoteFlows__DatepickerField__PopoverContent",align:"start"},P.createElement(ve,{mode:"single",className:"RemoteFlows__DatepickerField__Calendar",selected:n.value?new Date(n.value):void 0,onSelect:m=>{n.onChange(m?xe(m,"yyyy-MM-dd"):null),i?.(m)},defaultMonth:a?new Date(a):void 0,components:{DayContent:r(m=>P.createElement(it,null,m.date.getDate()),"DayContent")},...a&&{disabled:r(m=>m<new Date(a),"disabled")}}))),e?P.createElement(R,null,e):null,c.error&&P.createElement(k,{className:"RemoteFlows__DatePickerField__Error"}))}})}r(Ce,"DatePickerField");import*as $ from"react";function ye({label:e,name:t,fields:o,description:a,components:i}){return $.createElement("fieldset",{className:s("border-1 border-input p-4 rounded-xl",`RemoteFlows__FieldSetField__${t}`)},$.createElement("legend",{className:"text-sm font-semibold px-2"},e),a?$.createElement("div",{className:"mb-5 RemoteFlows__FieldSetField__Description",dangerouslySetInnerHTML:{__html:a}}):null,$.createElement("div",{className:"grid gap-4"},o.map(d=>{let p=ie[d.type];return d.isVisible===!1||d.deprecated?null:$.createElement(p,{...d,key:d.name,name:`${t}.${d.name}`,component:i?.[d.type]})})))}r(ye,"FieldSetField");import*as E from"react";import{useFormContext as ct}from"react-hook-form";import L,{useState as st,useRef as lt}from"react";import{Upload as mt,X as dt}from"lucide-react";function _e({onChange:e,className:t,multiple:o}){let[a,i]=st([]),d=lt(null),p=r(n=>{n.preventDefault(),d.current?.click()},"handleClick"),x=r(n=>{if(n.target.files&&n.target.files.length>0){let c=Array.from(n.target.files);i(c),e(n)}},"handleChange"),C=r(n=>{i(c=>c.filter(u=>u!==n))},"onRemoveFile");return L.createElement("div",{className:s("flex flex-col items-start gap-4",t)},L.createElement("input",{type:"file",ref:d,onChange:x,className:"hidden","aria-label":"File upload",multiple:o}),L.createElement(J,{type:"button",onClick:p,className:"gap-2"},L.createElement(mt,{className:"h-4 w-4"}),"Choose File"),a.length===0&&L.createElement("div",{className:"text-sm"},o?L.createElement("span",{className:"font-medium"},"No files selected. You can select multiple files"):L.createElement("span",{className:"font-medium"},"No file selected.")),a.length>0&&a.map((n,c)=>L.createElement("div",{key:c,className:"text-sm flex items-center gap-2"},"Selected file: ",L.createElement("span",{className:"font-medium"},n.name)," (",Math.round(n.size/1024)," KB)",L.createElement(J,{variant:"ghost",onClick:()=>C(n)},L.createElement(dt,null)))))}r(_e,"FileUploader");var pt=r(e=>new Promise((t,o)=>{let a=new FileReader;a.readAsDataURL(e),a.onload=()=>t(a.result),a.onerror=i=>o(i)}),"toBase64"),he=r(async e=>{let t=e.target.files?Array.from(e.target.files):[];return await Promise.all(t.map(async a=>{let i=await pt(a);return{name:a.name,content:i.split(",")[1]}}))},"convertFilesToBase64");function Pe({name:e,description:t,label:o,multiple:a,onChange:i,component:d,...p}){let{components:x}=F(),{control:C}=ct();return E.createElement(y,{control:C,name:e,render:({field:n,fieldState:c})=>{let u=d||x?.file;if(u){let m={name:e,description:t,label:o,multiple:a,...p};return E.createElement(u,{field:{...n,value:null,onChange:r(async l=>{let g=await he(l);n.onChange(g),i?.(g)},"onChange")},fieldState:c,fieldData:m})}return E.createElement(N,{"data-field":e,className:`RemoteFlows__FileUpload__Item__${e}`},E.createElement(h,{className:"RemoteFlows__FileUpload__Label"},o),E.createElement(w,null,E.createElement(_e,{onChange:async m=>{let l=await he(m);n.onChange(l),i?.(l)},multiple:a,className:s("RemoteFlows__FileUpload__Input")})),t&&E.createElement("div",{className:"flex items-center justify-between"},E.createElement(R,{className:"RemoteFlows__FileUpload__Description"},t)),c.error&&E.createElement(k,{className:"RemoteFlows__FileUpload__Error"}))}})}r(Pe,"FileUploadField");import de from"react";import{useFormContext as ft}from"react-hook-form";import*as G from"react";import{useFormContext as ut}from"react-hook-form";import*as be from"react";function Se({className:e,type:t,...o}){return be.createElement("input",{type:t,"data-slot":"input",className:s("shadow-xs border-input file:text-foreground placeholder:text-muted-foreground flex h-9 w-full min-w-0 rounded-xl border bg-transparent px-4 py-7 text-sm transition-[color] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-focused","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...o})}r(Se,"Input");function W({name:e,description:t,label:o,type:a,onChange:i,component:d,...p}){let{components:x}=F(),{control:C}=ut();return G.createElement(y,{control:C,name:e,render:({field:n,fieldState:c})=>{let u=d||x?.text;if(u){let m={name:e,description:t,label:o,type:a,onChange:i,...p};return G.createElement(u,{field:{...n,onChange:r(l=>{n.onChange(l),i?.(l)},"onChange")},fieldState:c,fieldData:m})}return G.createElement(N,{"data-field":e,className:`RemoteFlows__TextField__Item__${e}`},G.createElement(h,{className:"RemoteFlows__TextField__Label"},o),G.createElement(w,null,G.createElement(Se,{...n,value:n.value??"",onChange:m=>{n.onChange(m),i?.(m)},className:"RemoteFlows__TextField__Input",placeholder:o})),t&&G.createElement(R,{className:"RemoteFlows__TextField__Description"},t),c.error&&G.createElement(k,{className:"RemoteFlows__TextField__Error"}))}})}r(W,"TextField");function ce(e){let{components:t}=F(),{control:o}=ft(),a=e.component||t?.number;return a?de.createElement(y,{control:o,name:e.name,render:({field:i,fieldState:d})=>de.createElement(a,{field:{...i,onChange:r(p=>{i.onChange(p),e.onChange?.(p)},"onChange")},fieldState:d,fieldData:e})}):de.createElement(W,{...e,type:"text",inputMode:"decimal",pattern:"^[0-9.]*$"})}r(ce,"NumberField");import*as X from"@radix-ui/react-radio-group";import{CircleIcon as gt}from"lucide-react";import*as Q from"react";function Ne({className:e,...t}){return Q.createElement(X.Root,{"data-slot":"radio-group",className:s("grid gap-3",e),...t})}r(Ne,"RadioGroup");function we({className:e,...t}){return Q.createElement(X.Item,{"data-slot":"radio-group-item",className:s("border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",e),...t},Q.createElement(X.Indicator,{"data-slot":"radio-group-indicator",className:"relative flex items-center justify-center"},Q.createElement(gt,{className:"fill-radio absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2"})))}r(we,"RadioGroupItem");import*as b from"react";import{useFormContext as Ft}from"react-hook-form";function Re({name:e,defaultValue:t,description:o,label:a,options:i,onChange:d,component:p,...x}){let{components:C}=F(),{control:n}=Ft();return b.createElement(y,{control:n,name:e,defaultValue:t,render:({field:c,fieldState:u})=>{let m=p||C?.radio;if(m){let l={name:e,defaultValue:t,description:o,label:a,options:i,...x};return b.createElement(m,{field:{...c,onChange:r(g=>{c.onChange(g),d?.(g)},"onChange")},fieldState:u,fieldData:l})}return b.createElement(N,{className:s("space-y-3",`RemoteFlows__RadioGroupField__Item__${e}`),"data-field":e},b.createElement(h,null,a),b.createElement(w,null,b.createElement(Ne,{"aria-label":a,onValueChange:l=>{c.onChange(l),d?.(l)},value:c.value,className:"flex flex-col space-y-3"},i?.map(l=>b.createElement(b.Fragment,null,b.createElement(N,{key:l.value,"data-field":e,className:"flex items-start space-x-3 space-y-0 gap-0 RemoteFlows__RadioField__Item"},b.createElement(w,null,b.createElement(we,{value:l.value,className:"RemoteFlows__RadioField__Input"})),b.createElement("div",null,b.createElement(h,{className:"font-normal mb-0 RemoteFlows__RadioField__Label"},l.label),l.description&&b.createElement(R,{className:"mt-2"},l.description))))))),o&&b.createElement(R,null,o),u.error&&b.createElement(k,null))}})}r(Re,"RadioGroupField");import*as T from"react";import*as v from"react";import*as f from"@radix-ui/react-select";import{CheckIcon as vt,ChevronDownIcon as De,ChevronUpIcon as xt}from"lucide-react";function ke({...e}){return v.createElement(f.Root,{"data-slot":"select",...e})}r(ke,"Select");function Te({...e}){return v.createElement(f.Group,{"data-slot":"select-group",...e})}r(Te,"SelectGroup");function Ie({...e}){return v.createElement(f.Value,{"data-slot":"select-value",...e})}r(Ie,"SelectValue");function Le({className:e,children:t,...o}){return v.createElement(f.Trigger,{"data-slot":"select-trigger",className:s("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive flex w-full items-center justify-between rounded-xl border bg-transparent px-4 py-7 text-sm whitespace-nowrap transition-[color] outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","focus-visible:border-focused",e),...o},t,v.createElement(f.Icon,{asChild:!0,className:"absolute right-4"},v.createElement(De,{className:"size-4"})))}r(Le,"SelectTrigger");function Me({className:e,children:t,position:o="popper",...a}){return v.createElement(f.Portal,null,v.createElement(f.Content,{"data-slot":"select-content",className:s("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-xl border",o==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:o,...a},v.createElement(Ct,null),v.createElement(f.Viewport,{className:s(o==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1")},t),v.createElement(yt,null)))}r(Me,"SelectContent");function ze({className:e,children:t,...o}){return v.createElement(f.Item,{"data-slot":"select-item",className:s("focus:bg-accent focus:text-accent-foreground min-h-11 justify-between [&_svg:not([class*='text-'])]:text-muted-foreground flex w-full cursor-default items-center gap-2 py-2 px-4 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",e),...o},v.createElement(f.ItemText,null,t),v.createElement("span",{className:"flex size-3.5 items-center justify-center"},v.createElement(f.ItemIndicator,null,v.createElement(vt,{className:"size-4"}))))}r(ze,"SelectItem");function Ct({className:e,...t}){return v.createElement(f.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:s("flex cursor-default items-center justify-center py-1",e),...t},v.createElement(xt,{className:"size-4"}))}r(Ct,"SelectScrollUpButton");function yt({className:e,...t}){return v.createElement(f.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:s("flex cursor-default items-center justify-center py-1",e),...t},v.createElement(De,{className:"size-4"}))}r(yt,"SelectScrollDownButton");import{useFormContext as _t}from"react-hook-form";function Ee({label:e,name:t,options:o,defaultValue:a,description:i,onChange:d,component:p,...x}){let{control:C}=_t(),{components:n}=F();return T.createElement(y,{defaultValue:a,control:C,name:t,render:({field:c,fieldState:u})=>{let m=p||n?.select;if(m){let l={label:e,name:t,options:o,defaultValue:a,description:i,onChange:d,...x};return T.createElement(m,{field:{...c,onChange:r(g=>{c.onChange(g),d?.(g)},"onChange")},fieldState:u,fieldData:l})}return T.createElement(N,{"data-field":t,className:`RemoteFlows__SelectField__Item__${t}`},T.createElement(h,{className:"RemoteFlows__SelectField__Label"},e),T.createElement(w,null,T.createElement("div",{className:"relative"},T.createElement(ke,{value:c.value||"",onValueChange:l=>{c.onChange(l),d?.(l)}},T.createElement(Le,{className:"RemoteFlows__SelectField__Trigger","aria-invalid":!!u.error,"aria-label":e},T.createElement("span",{className:"absolute"},T.createElement(Ie,{placeholder:e}))),T.createElement(Me,{className:"RemoteFlows__SelectField__Content"},T.createElement(Te,{className:"RemoteFlows__SelectField__Group"},o.map(l=>T.createElement(ze,{key:l.value,value:l.value,className:"RemoteFlows__SelectField__SelectItem"},l.label))))))),i&&T.createElement(R,null,i),u.error&&T.createElement(k,null))}})}r(Ee,"SelectField");import O,{useState as Rt}from"react";import{useFormContext as Dt}from"react-hook-form";import S,{Fragment as Pt,useState as bt}from"react";import{Check as St,ChevronDownIcon as Nt,X as wt}from"lucide-react";import*as H from"react";import{Command as K}from"cmdk";import{SearchIcon as Ir}from"lucide-react";import*as ht from"react";import*as V from"@radix-ui/react-dialog";import{XIcon as _r}from"lucide-react";function Ae({className:e,...t}){return H.createElement(K,{"data-slot":"command",className:s("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",e),...t})}r(Ae,"Command");function Be({className:e,...t}){return H.createElement(K.List,{"data-slot":"command-list",className:s("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",e),...t})}r(Be,"CommandList");function Ge({...e}){return H.createElement(K.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...e})}r(Ge,"CommandEmpty");function Ve({className:e,...t}){return H.createElement(K.Group,{"data-slot":"command-group",className:s("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",e),...t})}r(Ve,"CommandGroup");function Oe({className:e,...t}){return H.createElement(K.Separator,{"data-slot":"command-separator",className:s("bg-border -mx-1 h-px",e),...t})}r(Oe,"CommandSeparator");function Ue({className:e,...t}){return H.createElement(K.Item,{"data-slot":"command-item",className:s("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...t})}r(Ue,"CommandItem");function Je({options:e,selected:t,onChange:o,placeholder:a,...i}){let[d,p]=bt(!1),x=r(n=>{o(t.filter(c=>c.value!==n.value))},"handleUnselect"),C=e.reduce((n,c)=>{let u=c.category||"Uncategorized";return n[u]||(n[u]=[]),n[u].push(c),n},{});return S.createElement(re,{open:d,onOpenChange:p,...i},S.createElement(ae,null,S.createElement(J,{variant:"outline",role:"combobox","aria-expanded":d,className:"w-full justify-between font-normal",type:"button"},S.createElement("div",{className:"flex gap-1 flex-wrap overflow-x-auto max-h-[2.5rem] items-center"},t.length>0?t.map(n=>S.createElement(ge,{key:n.label,variant:"secondary",className:"mr-1 mb-1"},n.label,S.createElement("div",{role:"button",tabIndex:0,"aria-label":`remove ${n.label}`,className:"ml-1 ring-offset-background rounded-full outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 cursor-pointer",onKeyDown:c=>{c.key==="Enter"&&x(n)},onMouseDown:c=>{c.preventDefault(),c.stopPropagation()},onClick:()=>x(n)},S.createElement(wt,{className:"h-3 w-3 text-muted-foreground hover:text-foreground"})))):S.createElement("span",{className:"text-foreground"},a)),S.createElement(Nt,{className:"size-4"}))),S.createElement(ne,{align:"start",className:"w-full p-0"},S.createElement(Ae,null,S.createElement(Be,null,S.createElement(Ge,null,"No item found."),Object.entries(C).map(([n,c],u)=>S.createElement(Pt,{key:n},u>0&&S.createElement(Oe,null),S.createElement(Ve,{heading:n},c.map(m=>{let l=t.some(g=>g.value===m.value);return S.createElement(Ue,{key:m.label,onSelect:()=>{o(l?t.filter(g=>g.value!==m.value):[...t,m])}},S.createElement(St,{className:s("mr-2 h-4 w-4",l?"opacity-100":"opacity-0")}),m.label)}))))))))}r(Je,"MultiSelect");function He({label:e,name:t,options:o,defaultValue:a,description:i,onChange:d,$meta:p,component:x,...C}){let{control:n}=Dt(),{components:c}=F(),[u,m]=Rt([]);return O.createElement(y,{defaultValue:a,control:n,name:t,render:({field:l,fieldState:g})=>{let _=x||c?.countries;if(_){let I={label:e,name:t,options:o,defaultValue:a,description:i,onChange:d,$meta:p,...C};return O.createElement(_,{field:{...l,onChange:r(A=>{l.onChange(A),d?.(A)},"onChange")},fieldState:g,fieldData:I})}let z=[...Object.entries(p?.regions||{}).map(([I,A])=>({value:A,label:I,category:"Regions"})),...Object.entries(p?.subregions||{}).map(([I,A])=>({value:A,label:I,category:"Subregions"})),...o.map(I=>({...I,value:I.value,label:I.label,category:"Countries"}))],ee=r(I=>{let A=I.map(({value:Qe})=>Qe);l.onChange(A),d?.(A),m(I)},"handleChange");return O.createElement(N,{"data-field":t,className:`RemoteFlows__CountryField__Item__${t}`},O.createElement(h,{className:"RemoteFlows__CountryField__Label"},e),O.createElement(w,null,O.createElement(Je,{options:z,selected:u,onChange:ee,...C})),i&&O.createElement(R,null,i),g.error&&O.createElement(k,null))}})}r(He,"CountryField");import*as M from"react";import{useFormContext as kt}from"react-hook-form";import*as se from"react";var pe=se.forwardRef(({className:e,...t},o)=>se.createElement("textarea",{className:s("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:o,...t}));pe.displayName="Textarea";function je({name:e,description:t,label:o,onChange:a,maxLength:i,component:d,...p}){let{components:x}=F(),{control:C}=kt();return M.createElement(y,{control:C,name:e,render:({field:n,fieldState:c})=>{let u=d||x?.textarea;if(u){let l={name:e,description:t,label:o,maxLength:i,...p};return M.createElement(u,{field:{...n,onChange:r(g=>{n.onChange(g),a?.(g)},"onChange")},fieldState:c,fieldData:l})}let m=n.value?.length??0;return M.createElement(N,{"data-field":e,className:`RemoteFlows__TextArea__Item__${e}`},M.createElement(h,{className:"RemoteFlows__TextArea__Label"},o),M.createElement(w,null,M.createElement(pe,{...n,value:n.value??"",onChange:l=>{n.onChange(l),a?.(l)},className:s(c.error&&"border-red-500 focus-visible:ring-red-500","RemoteFlows__TextArea__Input"),placeholder:o})),(t||i)&&M.createElement("div",{className:"flex items-center justify-between"},t&&M.createElement(R,{className:"RemoteFlows__TextArea__Description"},t),i&&M.createElement("span",{className:"text-sm ml-auto RemoteFlows__TextArea__MaxLength"},m,"/",i)),c.error&&M.createElement(k,{className:"RemoteFlows__TextArea__Error"}))}})}r(je,"TextAreaField");import ue from"react";import{useFormContext as Tt}from"react-hook-form";function $e(e){let{components:t}=F(),{control:o}=Tt(),a=e.component||t?.email;return a?ue.createElement(y,{control:o,name:e.name,render:({field:i,fieldState:d})=>ue.createElement(a,{field:{...i,onChange:r(p=>{i.onChange(p),e.onChange?.(p)},"onChange")},fieldState:d,fieldData:e})}):ue.createElement(W,{...e,type:"email"})}r($e,"EmailField");var ie={checkbox:Fe,text:W,email:$e,money:ce,select:Ee,radio:Re,number:ce,file:Pe,fieldset:ye,date:Ce,textarea:je,countries:He};import{cva as It}from"class-variance-authority";import*as le from"react";var Lt=It("relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",{variants:{variant:{default:"bg-card text-card-foreground",destructive:"text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90",warning:"bg-card bg-warning border-warning-border [&>svg]:text-current"}},defaultVariants:{variant:"default"}});function We({className:e,variant:t,...o}){return le.createElement("div",{"data-slot":"alert",role:"alert",className:s(Lt({variant:t}),e),...o})}r(We,"Alert");function Xe({className:e,...t}){return le.createElement("div",{"data-slot":"alert-title",className:s("col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",e),...t})}r(Xe,"AlertTitle");function Ke({className:e,...t}){return le.createElement("div",{"data-slot":"alert-description",className:s("text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",e),...t})}r(Ke,"AlertDescription");import{AlertCircle as Mt}from"lucide-react";import Z from"react";function qe({title:e,description:t,severity:o}){let{components:a}=F();if(a?.statement){let i=a?.statement;return Z.createElement(i,{data:{title:e,description:t,severity:o}})}return Z.createElement(We,{variant:"warning"},Z.createElement(Mt,{className:"h-4 w-4"}),e&&Z.createElement(Xe,null,e),Z.createElement(Ke,null,t))}r(qe,"Statement");import fe,{useEffect as zt}from"react";import{useFormContext as Et}from"react-hook-form";function Ye({name:e,value:t,description:o,statement:a}){let{setValue:i}=Et();return zt(()=>{i(e,t)},[]),fe.createElement("div",null,fe.createElement("p",{className:`text-sm RemoteFlows__ForcedValue__Title__${e}`,dangerouslySetInnerHTML:{__html:a.title}}),fe.createElement("p",{className:`text-xs RemoteFlows__ForcedValue__Description__${e}`,dangerouslySetInnerHTML:{__html:a.description||o}}))}r(Ye,"ForcedValueField");function Bt(e){return e.const!==void 0&&e.const===e.default&&e.inputType!=="checkbox"&&e.inputType!=="hidden"}r(Bt,"checkFieldHasForcedValue");var Wa=r(({fields:e,components:t})=>!e||e.length===0?null:U.createElement(U.Fragment,null,e.map(o=>{if(o.isVisible===!1||o.deprecated)return null;if(Bt(o))return U.createElement(Ye,{key:o.name,name:o.name,description:o.description,value:o.const,statement:o.statement});let a=ie[o.inputType];return o.inputType==="fieldset"?U.createElement(a,{...o,components:t}):a?U.createElement(At,{key:o.name},U.createElement(a,{...o,component:t&&t[o.inputType]}),o.statement?U.createElement(qe,{...o.statement}):null):U.createElement("p",{className:"error"},"Field type ",o.inputType," not supported")})),"JSONSchemaFormFields");export{Wa as a};
2
- //# sourceMappingURL=chunk-MIHU6CEZ.js.map