@remoteoss/remote-flows 0.4.0-alpha.2 → 0.4.0-alpha.20

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 (412) hide show
  1. package/README.md +82 -8
  2. package/dist/chunk-26PHG6H2.js +2 -0
  3. package/dist/chunk-26PHG6H2.js.map +1 -0
  4. package/dist/chunk-2NLOH7NZ.js +2 -0
  5. package/dist/chunk-2NLOH7NZ.js.map +1 -0
  6. package/dist/chunk-32RYPLZK.js +2 -0
  7. package/dist/chunk-32RYPLZK.js.map +1 -0
  8. package/dist/chunk-3HPG2L62.js +2 -0
  9. package/dist/chunk-3HPG2L62.js.map +1 -0
  10. package/dist/chunk-3NZ6PO4D.js +2 -0
  11. package/dist/chunk-3NZ6PO4D.js.map +1 -0
  12. package/dist/{chunk-WRDKLT4N.js → chunk-3ZWDIEEM.js} +2 -2
  13. package/dist/{chunk-KQ6TGZJS.js → chunk-5SMMQQXP.js} +2 -2
  14. package/dist/chunk-5SMMQQXP.js.map +1 -0
  15. package/dist/chunk-6SWZH7KI.js +2 -0
  16. package/dist/chunk-6SWZH7KI.js.map +1 -0
  17. package/dist/chunk-76CE6Z77.js +2 -0
  18. package/dist/chunk-76CE6Z77.js.map +1 -0
  19. package/dist/chunk-7TOZZQQJ.js +2 -0
  20. package/dist/chunk-7TOZZQQJ.js.map +1 -0
  21. package/dist/chunk-7ZH23EMZ.js +2 -0
  22. package/dist/chunk-7ZH23EMZ.js.map +1 -0
  23. package/dist/chunk-AIEAUPO6.js +2 -0
  24. package/dist/chunk-AIEAUPO6.js.map +1 -0
  25. package/dist/chunk-BF7QENCN.js +2 -0
  26. package/dist/chunk-BF7QENCN.js.map +1 -0
  27. package/dist/{chunk-A4RX3KRZ.js → chunk-CFIJKJXD.js} +2 -2
  28. package/dist/chunk-CSU6IQX3.js +2 -0
  29. package/dist/chunk-CSU6IQX3.js.map +1 -0
  30. package/dist/chunk-CTTXXEWI.js +2 -0
  31. package/dist/chunk-CTTXXEWI.js.map +1 -0
  32. package/dist/chunk-CU75S5F2.js +2 -0
  33. package/dist/chunk-CU75S5F2.js.map +1 -0
  34. package/dist/chunk-DKJZB2TO.js +2 -0
  35. package/dist/chunk-DKJZB2TO.js.map +1 -0
  36. package/dist/chunk-EAORGT7Z.js +2 -0
  37. package/dist/chunk-EAORGT7Z.js.map +1 -0
  38. package/dist/chunk-EEAMZPP6.js +2 -0
  39. package/dist/{chunk-GMGKIQLI.js.map → chunk-EEAMZPP6.js.map} +1 -1
  40. package/dist/chunk-EV5YPN4F.js +2 -0
  41. package/dist/chunk-EV5YPN4F.js.map +1 -0
  42. package/dist/chunk-FB5J7SRP.js +2 -0
  43. package/dist/chunk-FB5J7SRP.js.map +1 -0
  44. package/dist/chunk-FF6SE4JF.js +2 -0
  45. package/dist/chunk-FF6SE4JF.js.map +1 -0
  46. package/dist/chunk-FJ2XPRKU.js +2 -0
  47. package/dist/chunk-FJ2XPRKU.js.map +1 -0
  48. package/dist/chunk-FUIQ7D6L.js +2 -0
  49. package/dist/chunk-FUIQ7D6L.js.map +1 -0
  50. package/dist/chunk-G3OSPYB5.js +2 -0
  51. package/dist/chunk-G3OSPYB5.js.map +1 -0
  52. package/dist/chunk-GEYFQVQI.js +2 -0
  53. package/dist/{chunk-56BNVYTD.js.map → chunk-GEYFQVQI.js.map} +1 -1
  54. package/dist/chunk-IXINXLDO.js +2 -0
  55. package/dist/chunk-IXINXLDO.js.map +1 -0
  56. package/dist/{chunk-D3SD6MMV.js → chunk-JXCJLQRA.js} +2 -2
  57. package/dist/chunk-JXCJLQRA.js.map +1 -0
  58. package/dist/chunk-KFVOK5X5.js +2 -0
  59. package/dist/chunk-KFVOK5X5.js.map +1 -0
  60. package/dist/chunk-KM4XVL2X.js +2 -0
  61. package/dist/chunk-KM4XVL2X.js.map +1 -0
  62. package/dist/{chunk-5ETXP2QF.js → chunk-KPHSEIR3.js} +2 -2
  63. package/dist/{chunk-OLJ2S6A6.js → chunk-KSHK3ZPX.js} +2 -2
  64. package/dist/chunk-KSHK3ZPX.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-LZ3R4ZK2.js +2 -0
  70. package/dist/chunk-LZ3R4ZK2.js.map +1 -0
  71. package/dist/chunk-MA4IML3T.js +2 -0
  72. package/dist/chunk-MA4IML3T.js.map +1 -0
  73. package/dist/{chunk-N25EBX6R.js → chunk-MH6KKP6K.js} +2 -2
  74. package/dist/{chunk-N25EBX6R.js.map → chunk-MH6KKP6K.js.map} +1 -1
  75. package/dist/chunk-MNO47WC2.js +2 -0
  76. package/dist/chunk-MNO47WC2.js.map +1 -0
  77. package/dist/{chunk-DZYFSFZ7.js → chunk-MRYRNB7Y.js} +2 -2
  78. package/dist/chunk-MSBG52WO.js +2 -0
  79. package/dist/chunk-MSBG52WO.js.map +1 -0
  80. package/dist/chunk-MYGO6KUI.js +2 -0
  81. package/dist/chunk-MYGO6KUI.js.map +1 -0
  82. package/dist/chunk-P37U34EQ.js +2 -0
  83. package/dist/chunk-PGWKJ6FK.js +2 -0
  84. package/dist/chunk-PGWKJ6FK.js.map +1 -0
  85. package/dist/chunk-PJBAQZ6G.js +2 -0
  86. package/dist/chunk-PJBAQZ6G.js.map +1 -0
  87. package/dist/chunk-PJCUSCO4.js +2 -0
  88. package/dist/{chunk-MESREYTZ.js.map → chunk-PJCUSCO4.js.map} +1 -1
  89. package/dist/chunk-PWUYHFON.js +2 -0
  90. package/dist/chunk-PWUYHFON.js.map +1 -0
  91. package/dist/chunk-Q23DM4O3.js +2 -0
  92. package/dist/chunk-Q23DM4O3.js.map +1 -0
  93. package/dist/chunk-QW4JPW6J.js +2 -0
  94. package/dist/chunk-QW4JPW6J.js.map +1 -0
  95. package/dist/chunk-QXMSFJVB.js +2 -0
  96. package/dist/chunk-QXMSFJVB.js.map +1 -0
  97. package/dist/chunk-RDLTU3FE.js +2 -0
  98. package/dist/chunk-RDLTU3FE.js.map +1 -0
  99. package/dist/chunk-RLETCEUU.js +2 -0
  100. package/dist/chunk-RLETCEUU.js.map +1 -0
  101. package/dist/chunk-RXK4RLF6.js +2 -0
  102. package/dist/chunk-RXK4RLF6.js.map +1 -0
  103. package/dist/{chunk-FZ2HS6G7.js → chunk-S4XU4SE7.js} +1 -1
  104. package/dist/chunk-S4XU4SE7.js.map +1 -0
  105. package/dist/chunk-T6LHPVKN.js +2 -0
  106. package/dist/chunk-T6LHPVKN.js.map +1 -0
  107. package/dist/{chunk-6HGUGIYJ.js → chunk-TVZAFTPT.js} +2 -2
  108. package/dist/chunk-U6PYTUGP.js +2 -0
  109. package/dist/chunk-U6PYTUGP.js.map +1 -0
  110. package/dist/chunk-VNSF5IOL.js +2 -0
  111. package/dist/chunk-VNSF5IOL.js.map +1 -0
  112. package/dist/{chunk-UIAP5KT2.js → chunk-WASEFJAE.js} +2 -2
  113. package/dist/chunk-WASEFJAE.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-X3YONWNH.js +2 -0
  121. package/dist/chunk-X3YONWNH.js.map +1 -0
  122. package/dist/chunk-XIPPSRO6.js +2 -0
  123. package/dist/chunk-XIPPSRO6.js.map +1 -0
  124. package/dist/chunk-XKSOWDLS.js +2 -0
  125. package/dist/chunk-XKSOWDLS.js.map +1 -0
  126. package/dist/chunk-XO3JWN33.js +2 -0
  127. package/dist/{chunk-GFBF55NR.js.map → chunk-XO3JWN33.js.map} +1 -1
  128. package/dist/chunk-Y56L3QKM.js +2 -0
  129. package/dist/chunk-Y56L3QKM.js.map +1 -0
  130. package/dist/chunk-YJXRJTOH.js +1 -0
  131. package/dist/chunk-YO4OQIFP.js +2 -0
  132. package/dist/{chunk-3FVI5JIC.js.map → chunk-YO4OQIFP.js.map} +1 -1
  133. package/dist/chunk-ZEUIOZB6.js +2 -0
  134. package/dist/chunk-ZEUIOZB6.js.map +1 -0
  135. package/dist/chunk-ZUNKCQBT.js +2 -0
  136. package/dist/chunk-ZUNKCQBT.js.map +1 -0
  137. package/dist/flows/ContractAmendment/ContractAmendmentBack.d.ts +3 -2
  138. package/dist/flows/ContractAmendment/ContractAmendmentBack.js +1 -1
  139. package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +3 -3
  140. package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js +1 -1
  141. package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +6 -6
  142. package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
  143. package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +3 -3
  144. package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
  145. package/dist/flows/ContractAmendment/ContractAmendmentSubmit.d.ts +3 -2
  146. package/dist/flows/ContractAmendment/ContractAmendmentSubmit.js +1 -1
  147. package/dist/flows/ContractAmendment/context.d.ts +6 -7
  148. package/dist/flows/ContractAmendment/context.js +1 -1
  149. package/dist/flows/ContractAmendment/hooks.d.ts +5 -6
  150. package/dist/flows/ContractAmendment/hooks.js +1 -1
  151. package/dist/flows/ContractAmendment/index.d.ts +4 -4
  152. package/dist/flows/ContractAmendment/index.js +1 -1
  153. package/dist/flows/ContractAmendment/types.d.ts +0 -2
  154. package/dist/flows/ContractAmendment/utils.d.ts +2 -2
  155. package/dist/flows/ContractAmendment/utils.js +1 -1
  156. package/dist/flows/CostCalculator/CostCalculatorDisclaimer.d.ts +2 -2
  157. package/dist/flows/CostCalculator/CostCalculatorDisclaimer.js +1 -1
  158. package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +7 -7
  159. package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
  160. package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +9 -6
  161. package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
  162. package/dist/flows/CostCalculator/CostCalculatorResetButton.d.ts +3 -2
  163. package/dist/flows/CostCalculator/CostCalculatorResetButton.js +1 -1
  164. package/dist/flows/CostCalculator/CostCalculatorSubmitButton.d.ts +3 -2
  165. package/dist/flows/CostCalculator/CostCalculatorSubmitButton.js +1 -1
  166. package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.d.ts +2 -2
  167. package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.js +1 -1
  168. package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.d.ts +2 -2
  169. package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.js +1 -1
  170. package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.d.ts +2 -2
  171. package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.js +1 -1
  172. package/dist/flows/CostCalculator/Results/CostCalculatorResults.d.ts +3 -3
  173. package/dist/flows/CostCalculator/Results/CostCalculatorResults.js +1 -1
  174. package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.d.ts +2 -2
  175. package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.js +1 -1
  176. package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.js.map +1 -1
  177. package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.d.ts +2 -2
  178. package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.js +1 -1
  179. package/dist/flows/CostCalculator/api.d.ts +70 -0
  180. package/dist/flows/CostCalculator/api.js +2 -0
  181. package/dist/flows/CostCalculator/components/SalaryField.d.ts +20 -0
  182. package/dist/flows/CostCalculator/components/SalaryField.js +2 -0
  183. package/dist/flows/CostCalculator/context.d.ts +9 -7
  184. package/dist/flows/CostCalculator/context.js +1 -1
  185. package/dist/flows/CostCalculator/disclaimerUtils.js +1 -1
  186. package/dist/flows/CostCalculator/hooks.d.ts +6 -21
  187. package/dist/flows/CostCalculator/hooks.js +1 -1
  188. package/dist/flows/CostCalculator/index.d.ts +8 -3
  189. package/dist/flows/CostCalculator/index.js +1 -1
  190. package/dist/flows/CostCalculator/jsonSchema.js +1 -1
  191. package/dist/flows/CostCalculator/types.d.ts +16 -4
  192. package/dist/flows/CostCalculator/utils.d.ts +7 -4
  193. package/dist/flows/CostCalculator/utils.js +1 -1
  194. package/dist/flows/Onboarding/OnboardingFlow.d.ts +27 -14
  195. package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
  196. package/dist/flows/Onboarding/api.d.ts +126 -0
  197. package/dist/flows/Onboarding/api.js +2 -0
  198. package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +18 -0
  199. package/dist/flows/Onboarding/components/AnnualGrossSalary.js +2 -0
  200. package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +19 -0
  201. package/dist/flows/Onboarding/components/BasicInformationStep.js +2 -0
  202. package/dist/flows/Onboarding/{BenefitsStep.d.ts → components/BenefitsStep.d.ts} +14 -8
  203. package/dist/flows/Onboarding/components/BenefitsStep.js +2 -0
  204. package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +19 -0
  205. package/dist/flows/Onboarding/components/ContractDetailsStep.js +2 -0
  206. package/dist/flows/Onboarding/components/OnboardingBack.d.ts +7 -0
  207. package/dist/flows/Onboarding/components/OnboardingBack.js +2 -0
  208. package/dist/flows/Onboarding/components/OnboardingBack.js.map +1 -0
  209. package/dist/flows/Onboarding/{OnboardingForm.d.ts → components/OnboardingForm.d.ts} +8 -7
  210. package/dist/flows/Onboarding/components/OnboardingForm.js +2 -0
  211. package/dist/flows/Onboarding/components/OnboardingForm.js.map +1 -0
  212. package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +23 -0
  213. package/dist/flows/Onboarding/components/OnboardingInvite.js +2 -0
  214. package/dist/flows/Onboarding/components/OnboardingInvite.js.map +1 -0
  215. package/dist/flows/Onboarding/components/OnboardingSubmit.d.ts +6 -0
  216. package/dist/flows/Onboarding/components/OnboardingSubmit.js +2 -0
  217. package/dist/flows/Onboarding/components/OnboardingSubmit.js.map +1 -0
  218. package/dist/flows/Onboarding/components/ReviewStep.d.ts +37 -0
  219. package/dist/flows/Onboarding/components/ReviewStep.js +2 -0
  220. package/dist/flows/Onboarding/components/ReviewStep.js.map +1 -0
  221. package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +15 -0
  222. package/dist/flows/Onboarding/components/SaveDraftButton.js +2 -0
  223. package/dist/flows/Onboarding/components/SaveDraftButton.js.map +1 -0
  224. package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +19 -0
  225. package/dist/flows/Onboarding/components/SelectCountryStep.js +2 -0
  226. package/dist/flows/Onboarding/components/SelectCountryStep.js.map +1 -0
  227. package/dist/flows/Onboarding/context.d.ts +52 -12
  228. package/dist/flows/Onboarding/context.js +1 -1
  229. package/dist/flows/Onboarding/hooks.d.ts +70 -29
  230. package/dist/flows/Onboarding/hooks.js +1 -1
  231. package/dist/flows/Onboarding/index.d.ts +17 -12
  232. package/dist/flows/Onboarding/index.js +1 -1
  233. package/dist/flows/Onboarding/json-schemas/selectCountryStep.d.ts +24 -0
  234. package/dist/flows/Onboarding/json-schemas/selectCountryStep.js +2 -0
  235. package/dist/flows/Onboarding/json-schemas/selectCountryStep.js.map +1 -0
  236. package/dist/flows/Onboarding/types.d.ts +53 -6
  237. package/dist/flows/Onboarding/utils.d.ts +22 -3
  238. package/dist/flows/Onboarding/utils.js +1 -1
  239. package/dist/flows/Termination/AdditionalDetailsForm.d.ts +3 -3
  240. package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
  241. package/dist/flows/Termination/EmployeeComunicationForm.d.ts +3 -3
  242. package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
  243. package/dist/flows/Termination/PaidTimeOffForm.d.ts +3 -3
  244. package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
  245. package/dist/flows/Termination/TerminationBack.d.ts +3 -2
  246. package/dist/flows/Termination/TerminationBack.js +1 -1
  247. package/dist/flows/Termination/TerminationDetailsForm.d.ts +3 -3
  248. package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
  249. package/dist/flows/Termination/TerminationFlow.d.ts +8 -6
  250. package/dist/flows/Termination/TerminationFlow.js +1 -1
  251. package/dist/flows/Termination/TerminationForm.d.ts +3 -3
  252. package/dist/flows/Termination/TerminationForm.js +1 -1
  253. package/dist/flows/Termination/TerminationSubmit.d.ts +3 -2
  254. package/dist/flows/Termination/TerminationSubmit.js +1 -1
  255. package/dist/flows/Termination/TimeOff.d.ts +4 -4
  256. package/dist/flows/Termination/TimeOff.js +1 -1
  257. package/dist/flows/Termination/context.d.ts +7 -6
  258. package/dist/flows/Termination/context.js +1 -1
  259. package/dist/flows/Termination/hooks.d.ts +5 -4
  260. package/dist/flows/Termination/hooks.js +1 -1
  261. package/dist/flows/Termination/index.d.ts +5 -3
  262. package/dist/flows/Termination/index.js +1 -1
  263. package/dist/flows/Termination/json-schemas/additionalInformation.js +1 -1
  264. package/dist/flows/Termination/json-schemas/defaultSchema.js +1 -1
  265. package/dist/flows/Termination/json-schemas/employeeComunication.js +1 -1
  266. package/dist/flows/Termination/json-schemas/jsonSchema.js +1 -1
  267. package/dist/flows/Termination/json-schemas/paidTimeOff.js +1 -1
  268. package/dist/flows/Termination/json-schemas/schema.js +1 -1
  269. package/dist/flows/Termination/json-schemas/terminationDetails.js +1 -1
  270. package/dist/flows/Termination/types.d.ts +1 -1
  271. package/dist/flows/Termination/utils.d.ts +1 -1
  272. package/dist/flows/Termination/utils.js +1 -1
  273. package/dist/flows/types.d.ts +3 -4
  274. package/dist/flows/useStepState.d.ts +19 -6
  275. package/dist/flows/useStepState.js +1 -1
  276. package/dist/flows/utils.d.ts +3 -11
  277. package/dist/flows/utils.js +1 -1
  278. package/dist/index.css +1 -1
  279. package/dist/index.css.map +1 -1
  280. package/dist/index.d.ts +26 -17
  281. package/dist/index.js +1 -1
  282. package/dist/index.js.map +1 -1
  283. package/dist/mutations-B6HWH-rZ.d.ts +22 -0
  284. package/dist/remoteFlows--lO1UtNJ.d.ts +147 -0
  285. package/dist/types-CxSFjQw5.d.ts +3 -0
  286. package/dist/{types.gen-D5alruJJ.d.ts → types.gen-DL1ycXOS.d.ts} +335 -2
  287. package/package.json +18 -3
  288. package/dist/chunk-2PXGLWCY.js +0 -2
  289. package/dist/chunk-2PXGLWCY.js.map +0 -1
  290. package/dist/chunk-2YWRQJ7P.js +0 -2
  291. package/dist/chunk-2YWRQJ7P.js.map +0 -1
  292. package/dist/chunk-36UPHOJS.js +0 -2
  293. package/dist/chunk-36UPHOJS.js.map +0 -1
  294. package/dist/chunk-3FVI5JIC.js +0 -2
  295. package/dist/chunk-56BNVYTD.js +0 -2
  296. package/dist/chunk-5CJPGBXJ.js +0 -2
  297. package/dist/chunk-5CJPGBXJ.js.map +0 -1
  298. package/dist/chunk-5OXN2O6C.js +0 -2
  299. package/dist/chunk-5OXN2O6C.js.map +0 -1
  300. package/dist/chunk-6A3F6JG6.js +0 -2
  301. package/dist/chunk-6A3F6JG6.js.map +0 -1
  302. package/dist/chunk-7CYG2RHP.js +0 -2
  303. package/dist/chunk-7CYG2RHP.js.map +0 -1
  304. package/dist/chunk-7OMSCFTM.js +0 -2
  305. package/dist/chunk-7OMSCFTM.js.map +0 -1
  306. package/dist/chunk-AYDF3IFZ.js +0 -2
  307. package/dist/chunk-BLPOQIGB.js +0 -2
  308. package/dist/chunk-BLPOQIGB.js.map +0 -1
  309. package/dist/chunk-CRHTUOZT.js +0 -2
  310. package/dist/chunk-CRHTUOZT.js.map +0 -1
  311. package/dist/chunk-D3SD6MMV.js.map +0 -1
  312. package/dist/chunk-DGPRFQYK.js +0 -2
  313. package/dist/chunk-DGPRFQYK.js.map +0 -1
  314. package/dist/chunk-DHRIURRT.js +0 -2
  315. package/dist/chunk-DHRIURRT.js.map +0 -1
  316. package/dist/chunk-EAAIAMTY.js +0 -2
  317. package/dist/chunk-EAAIAMTY.js.map +0 -1
  318. package/dist/chunk-EDNELJVE.js +0 -2
  319. package/dist/chunk-EDNELJVE.js.map +0 -1
  320. package/dist/chunk-FGBEOUQK.js +0 -1
  321. package/dist/chunk-FMT2OTOL.js +0 -2
  322. package/dist/chunk-FMT2OTOL.js.map +0 -1
  323. package/dist/chunk-FZ2HS6G7.js.map +0 -1
  324. package/dist/chunk-GFBF55NR.js +0 -2
  325. package/dist/chunk-GMGKIQLI.js +0 -2
  326. package/dist/chunk-GQD6NNYO.js +0 -2
  327. package/dist/chunk-GQD6NNYO.js.map +0 -1
  328. package/dist/chunk-GR6EY46K.js +0 -2
  329. package/dist/chunk-GR6EY46K.js.map +0 -1
  330. package/dist/chunk-HDQGO453.js +0 -2
  331. package/dist/chunk-HDQGO453.js.map +0 -1
  332. package/dist/chunk-I6NVZI7W.js +0 -2
  333. package/dist/chunk-I6NVZI7W.js.map +0 -1
  334. package/dist/chunk-IDSJI7KQ.js +0 -2
  335. package/dist/chunk-IDSJI7KQ.js.map +0 -1
  336. package/dist/chunk-J55S4SEH.js +0 -2
  337. package/dist/chunk-J55S4SEH.js.map +0 -1
  338. package/dist/chunk-JFOOILST.js +0 -2
  339. package/dist/chunk-JFOOILST.js.map +0 -1
  340. package/dist/chunk-JRQSZHUU.js +0 -2
  341. package/dist/chunk-JRQSZHUU.js.map +0 -1
  342. package/dist/chunk-KH6QS5OU.js +0 -2
  343. package/dist/chunk-KH6QS5OU.js.map +0 -1
  344. package/dist/chunk-KQ6TGZJS.js.map +0 -1
  345. package/dist/chunk-KSGPQCSG.js +0 -2
  346. package/dist/chunk-KSGPQCSG.js.map +0 -1
  347. package/dist/chunk-LCZQVL4U.js +0 -2
  348. package/dist/chunk-LCZQVL4U.js.map +0 -1
  349. package/dist/chunk-LM5GAAUB.js +0 -2
  350. package/dist/chunk-LM5GAAUB.js.map +0 -1
  351. package/dist/chunk-LMDX5IAX.js +0 -2
  352. package/dist/chunk-LMDX5IAX.js.map +0 -1
  353. package/dist/chunk-M7WCW7WD.js +0 -2
  354. package/dist/chunk-M7WCW7WD.js.map +0 -1
  355. package/dist/chunk-MESREYTZ.js +0 -2
  356. package/dist/chunk-MHKNAQLP.js +0 -2
  357. package/dist/chunk-MHKNAQLP.js.map +0 -1
  358. package/dist/chunk-OLJ2S6A6.js.map +0 -1
  359. package/dist/chunk-P2COURSU.js +0 -2
  360. package/dist/chunk-P2COURSU.js.map +0 -1
  361. package/dist/chunk-PKX5K2UY.js +0 -2
  362. package/dist/chunk-PKX5K2UY.js.map +0 -1
  363. package/dist/chunk-QOMUXX6W.js.map +0 -1
  364. package/dist/chunk-S4FKLPBB.js +0 -2
  365. package/dist/chunk-S4FKLPBB.js.map +0 -1
  366. package/dist/chunk-S56EWAS4.js +0 -2
  367. package/dist/chunk-S56EWAS4.js.map +0 -1
  368. package/dist/chunk-SMHHCUP4.js +0 -2
  369. package/dist/chunk-SMHHCUP4.js.map +0 -1
  370. package/dist/chunk-TPPGI73P.js +0 -2
  371. package/dist/chunk-TPPGI73P.js.map +0 -1
  372. package/dist/chunk-U25ZZ3LM.js +0 -2
  373. package/dist/chunk-U25ZZ3LM.js.map +0 -1
  374. package/dist/chunk-UIAP5KT2.js.map +0 -1
  375. package/dist/chunk-WQHKB5T7.js +0 -2
  376. package/dist/chunk-WQHKB5T7.js.map +0 -1
  377. package/dist/chunk-WS3C3WIJ.js +0 -2
  378. package/dist/chunk-WS3C3WIJ.js.map +0 -1
  379. package/dist/chunk-XLFHHYVS.js +0 -2
  380. package/dist/chunk-XLFHHYVS.js.map +0 -1
  381. package/dist/chunk-Y477IGTZ.js +0 -2
  382. package/dist/chunk-Y477IGTZ.js.map +0 -1
  383. package/dist/chunk-YOC3VDC7.js +0 -2
  384. package/dist/chunk-YOC3VDC7.js.map +0 -1
  385. package/dist/flows/Onboarding/BasicInformationStep.d.ts +0 -15
  386. package/dist/flows/Onboarding/BasicInformationStep.js +0 -2
  387. package/dist/flows/Onboarding/BenefitsStep.js +0 -2
  388. package/dist/flows/Onboarding/ContractDetailsStep.d.ts +0 -15
  389. package/dist/flows/Onboarding/ContractDetailsStep.js +0 -2
  390. package/dist/flows/Onboarding/OnboardingBack.d.ts +0 -5
  391. package/dist/flows/Onboarding/OnboardingBack.js +0 -2
  392. package/dist/flows/Onboarding/OnboardingForm.js +0 -2
  393. package/dist/flows/Onboarding/OnboardingInvite.d.ts +0 -11
  394. package/dist/flows/Onboarding/OnboardingInvite.js +0 -2
  395. package/dist/flows/Onboarding/OnboardingSubmit.d.ts +0 -5
  396. package/dist/flows/Onboarding/OnboardingSubmit.js +0 -2
  397. package/dist/mutations-v9H353tz.d.ts +0 -10
  398. package/dist/remoteFlows-CswYencu.d.ts +0 -116
  399. /package/dist/{chunk-WRDKLT4N.js.map → chunk-3ZWDIEEM.js.map} +0 -0
  400. /package/dist/{chunk-A4RX3KRZ.js.map → chunk-CFIJKJXD.js.map} +0 -0
  401. /package/dist/{chunk-5ETXP2QF.js.map → chunk-KPHSEIR3.js.map} +0 -0
  402. /package/dist/{chunk-DZYFSFZ7.js.map → chunk-MRYRNB7Y.js.map} +0 -0
  403. /package/dist/{chunk-AYDF3IFZ.js.map → chunk-P37U34EQ.js.map} +0 -0
  404. /package/dist/{chunk-6HGUGIYJ.js.map → chunk-TVZAFTPT.js.map} +0 -0
  405. /package/dist/{chunk-FGBEOUQK.js.map → chunk-YJXRJTOH.js.map} +0 -0
  406. /package/dist/flows/{Onboarding/BasicInformationStep.js.map → CostCalculator/api.js.map} +0 -0
  407. /package/dist/flows/{Onboarding/BenefitsStep.js.map → CostCalculator/components/SalaryField.js.map} +0 -0
  408. /package/dist/flows/Onboarding/{ContractDetailsStep.js.map → api.js.map} +0 -0
  409. /package/dist/flows/Onboarding/{OnboardingBack.js.map → components/AnnualGrossSalary.js.map} +0 -0
  410. /package/dist/flows/Onboarding/{OnboardingForm.js.map → components/BasicInformationStep.js.map} +0 -0
  411. /package/dist/flows/Onboarding/{OnboardingInvite.js.map → components/BenefitsStep.js.map} +0 -0
  412. /package/dist/flows/Onboarding/{OnboardingSubmit.js.map → components/ContractDetailsStep.js.map} +0 -0
@@ -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||e,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-HDQGO453.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/JSONSchemaForm.tsx","../src/components/ui/checkbox.tsx","../src/components/form/fields/CheckBoxField.tsx","../src/components/form/fields/DatePickerField.tsx","../src/components/ui/calendar.tsx","../src/components/ui/popover.tsx","../src/components/form/fields/FieldSetField.tsx","../src/components/form/fields/FileUploadField.tsx","../src/components/ui/file-uploader.tsx","../src/components/form/fields/NumberField.tsx","../src/components/form/fields/TextField.tsx","../src/components/ui/input.tsx","../src/components/ui/radio-group.tsx","../src/components/form/fields/RadioGroupField.tsx","../src/components/form/fields/SelectField.tsx","../src/components/ui/select.tsx","../src/components/form/fields/CountryField.tsx","../src/components/ui/multi-select.tsx","../src/components/ui/command.tsx","../src/components/ui/dialog.tsx","../src/components/form/fields/TextAreaField.tsx","../src/components/ui/textarea.tsx","../src/components/form/fields/EmailField.tsx","../src/components/form/fields/fieldsMapping.tsx","../src/components/ui/alert.tsx","../src/components/form/Statement.tsx","../src/components/form/fields/ForcedValueField.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Fields } from '@remoteoss/json-schema-form';\nimport React, { Fragment } from 'react';\n\nimport { fieldsMap } from '@/src/components/form/fields/fieldsMapping';\nimport { SupportedTypes } from '@/src/components/form/fields/types';\nimport { Statement, StatementProps } from '@/src/components/form/Statement';\nimport { ForcedValueField } from '@/src/components/form/fields/ForcedValueField';\nimport { Components } from '@/src/types/remoteFlows';\n\ntype JSONSchemaFormFieldsProps = {\n fields: Fields;\n components?: Components;\n};\n\nfunction checkFieldHasForcedValue(field: any) {\n // A field to be considered \"forced value\" must:\n return (\n field.const !== undefined && // Only accepts a specific value\n field.const === field.default && // It can be prefilled, meaning it's not critical\n field.inputType !== 'checkbox' && // Because checkbox must always be visible\n field.inputType !== 'hidden' // Because hidden inputs shouldn't be visible\n );\n}\n\nexport const JSONSchemaFormFields = ({\n fields,\n components,\n}: JSONSchemaFormFieldsProps) => {\n if (!fields || fields.length === 0) return null;\n\n return (\n <>\n {fields.map((field) => {\n if (field.isVisible === false || field.deprecated) {\n return null; // Skip hidden or deprecated fields\n }\n\n if (checkFieldHasForcedValue(field)) {\n return (\n <ForcedValueField\n key={field.name as string}\n name={field.name as string}\n description={field.description as string}\n value={field.const as string}\n statement={field.statement as any}\n />\n );\n }\n\n const FieldComponent = fieldsMap[field.inputType as SupportedTypes];\n\n if (field.inputType === 'fieldset') {\n return <FieldComponent {...field} components={components} />;\n }\n\n return FieldComponent ? (\n <Fragment key={field.name as string}>\n <FieldComponent\n {...field}\n component={\n components && components[field.inputType as SupportedTypes]\n }\n />\n {field.statement ? (\n <Statement {...(field.statement as StatementProps)} />\n ) : null}\n </Fragment>\n ) : (\n <p className=\"error\">\n Field type {field.inputType as string} not supported\n </p>\n );\n })}\n </>\n );\n};\n","'use client';\n\nimport * as React from 'react';\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox';\nimport { Check } from 'lucide-react';\n\nimport { cn } from '@/src/lib/utils';\n\nconst Checkbox = React.forwardRef<\n React.ComponentRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n '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',\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn('flex items-center justify-center text-current')}\n >\n <Check className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Checkbox } from '@/src/components/ui/checkbox';\nimport {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/src/components/ui/form';\nimport { useFormFields } from '@/src/context';\nimport { cn } from '@/src/lib/utils';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { CheckedState } from '@radix-ui/react-checkbox';\nimport * as React from 'react';\nimport {\n ControllerRenderProps,\n FieldValues,\n useFormContext,\n} from 'react-hook-form';\n\nexport type CheckBoxFieldProps = JSFField & {\n onChange?: (checked: any, optionId?: string) => void;\n component?: Components['checkbox'];\n};\n\nexport function CheckBoxField({\n name,\n defaultValue,\n description,\n label,\n onChange,\n multiple,\n options,\n component,\n ...rest\n}: CheckBoxFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n\n const handleCheckboxChange = (\n optionId: string,\n checked: boolean,\n field: ControllerRenderProps<FieldValues, string>,\n ) => {\n const currentValues = field.value ? [...field.value] : [];\n\n if (checked) {\n // Add the value if it's not already in the array\n if (!currentValues.includes(optionId)) {\n field.onChange([...currentValues, optionId]);\n }\n } else {\n // Remove the value from the array\n field.onChange(currentValues.filter((value) => value !== optionId));\n }\n };\n\n return (\n <FormField\n control={control}\n name={name}\n defaultValue={defaultValue}\n render={({ field, fieldState }) => {\n const CustomCheckboxField = component || components?.checkbox;\n if (CustomCheckboxField) {\n const customCheckboxFieldProps = {\n name,\n description,\n label,\n defaultValue,\n multiple,\n options,\n ...rest,\n };\n return (\n <CustomCheckboxField\n field={{\n ...field,\n onChange: (evt: any) => {\n if (multiple) {\n const { checked, value } = evt.target;\n handleCheckboxChange(value, checked, field);\n onChange?.(checked);\n return;\n }\n field.onChange(evt);\n onChange?.(evt);\n },\n }}\n fieldState={fieldState}\n fieldData={customCheckboxFieldProps}\n />\n );\n }\n return (\n <FormItem\n data-field={name}\n className={cn(`RemoteFlows__CheckBoxField__Item__${name}`)}\n >\n <FormControl>\n <>\n {options && multiple ? <FormLabel>{label}</FormLabel> : null}\n\n {options && multiple ? (\n options.map((option) => (\n <div key={option.value} className=\"flex space-x-2\">\n <Checkbox\n id={option.value}\n onCheckedChange={(checked: CheckedState) => {\n handleCheckboxChange(\n option.value,\n checked === true,\n field,\n );\n onChange?.(checked, option.value);\n }}\n checked={field.value?.includes(option.value)}\n className=\"RemoteFlows__CheckBox__Input\"\n />\n <FormLabel\n htmlFor={option.value}\n className=\"mb-0 RemoteFlows__CheckBox__Label\"\n >\n {option.label}\n </FormLabel>\n </div>\n ))\n ) : (\n <div className=\"flex space-x-2\">\n <Checkbox\n id={name}\n onCheckedChange={(event: CheckedState) => {\n field.onChange(event);\n onChange?.(event);\n }}\n checked={field.value}\n className=\"RemoteFlows__CheckBox__Input\"\n />\n <FormLabel\n htmlFor={name}\n className=\"mb-0 RemoteFlows__CheckBox__Label\"\n >\n {label}\n </FormLabel>\n </div>\n )}\n </>\n </FormControl>\n {description && <FormDescription>{description}</FormDescription>}\n {fieldState.error && <FormMessage />}\n </FormItem>\n );\n }}\n />\n );\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { CalendarIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nimport { Button } from '@/src/components/ui/button';\nimport { Calendar } from '@/src/components/ui/calendar';\nimport {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/src/components/ui/form';\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from '@/src/components/ui/popover';\nimport { useFormFields } from '@/src/context';\nimport { cn } from '@/src/lib/utils';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { PopoverClose } from '@radix-ui/react-popover';\nimport { format } from 'date-fns';\n\nexport type DatePickerFieldProps = JSFField & {\n onChange?: (value: any) => void;\n component?: Components['date'];\n};\n\nexport function DatePickerField({\n description,\n label,\n name,\n minDate,\n onChange,\n component,\n ...rest\n}: DatePickerFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const CustomDatePickerField = component || components?.date;\n\n if (CustomDatePickerField) {\n const customDatePickerFieldProps = {\n description,\n label,\n name,\n minDate,\n onChange,\n ...rest,\n };\n return (\n <CustomDatePickerField\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customDatePickerFieldProps}\n />\n );\n }\n return (\n <FormItem\n data-field={name}\n className={`flex flex-col RemoteFlows__DatePickerField__Item__${name}`}\n >\n <FormLabel className=\"RemoteFlows__DatePickerField__Label\">\n {label}\n </FormLabel>\n <Popover>\n <PopoverTrigger asChild>\n <FormControl>\n <div>\n <Button\n type=\"button\"\n variant={'outline'}\n className={cn(\n 'w-full pl-3 text-left font-normal',\n !field.value && 'text-muted-foreground',\n )}\n data-testid={`date-picker-button-${name}`}\n >\n {field.value && <>{format(field.value, 'yyyy-MM-dd')}</>}\n <CalendarIcon className=\"ml-auto h-4 w-4 opacity-50\" />\n </Button>\n </div>\n </FormControl>\n </PopoverTrigger>\n <PopoverContent\n className={`w-auto p-0 RemoteFlows__DatepickerField__PopoverContent`}\n align=\"start\"\n >\n <Calendar\n mode=\"single\"\n className=\"RemoteFlows__DatepickerField__Calendar\"\n selected={field.value ? new Date(field.value) : undefined}\n onSelect={(date) => {\n field.onChange(date ? format(date, 'yyyy-MM-dd') : null);\n onChange?.(date);\n }}\n defaultMonth={minDate ? new Date(minDate) : undefined}\n components={{\n DayContent: (props) => {\n return (\n <PopoverClose>{props.date.getDate()}</PopoverClose>\n );\n },\n }}\n {...(minDate && {\n disabled: (date: Date) => date < new Date(minDate),\n })}\n />\n </PopoverContent>\n </Popover>\n {description ? (\n <FormDescription>{description}</FormDescription>\n ) : null}\n {fieldState.error && (\n <FormMessage className=\"RemoteFlows__DatePickerField__Error\" />\n )}\n </FormItem>\n );\n }}\n />\n );\n}\n","import * as React from 'react';\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\nimport { DayPicker } from 'react-day-picker';\n\nimport { cn } from '@/src/lib/utils';\nimport { buttonVariants } from '@/src/components/ui/button';\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n ...props\n}: React.ComponentProps<typeof DayPicker>) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn('p-3', className)}\n classNames={{\n months: 'flex flex-col sm:flex-row gap-2',\n month: 'flex flex-col gap-4',\n caption: 'flex justify-center pt-1 relative items-center w-full',\n caption_label: 'text-sm font-medium',\n nav: 'flex items-center gap-1',\n nav_button: cn(\n buttonVariants({ variant: 'outline' }),\n 'size-7 bg-transparent p-0 opacity-50 hover:opacity-100',\n ),\n nav_button_previous: 'absolute left-1',\n nav_button_next: 'absolute right-1',\n table: 'w-full border-collapse space-x-1',\n head_row: 'flex',\n head_cell:\n 'text-muted-foreground rounded-md w-8 font-normal text-[0.8rem]',\n row: 'flex w-full mt-2',\n cell: cn(\n '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',\n props.mode === 'range'\n ? '[&: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'\n : '[&:has([aria-selected])]:rounded-md',\n ),\n day: cn(\n buttonVariants({ variant: 'ghost' }),\n 'size-8 p-0 font-normal aria-selected:opacity-100',\n ),\n day_range_start:\n 'day-range-start aria-selected:bg-primary aria-selected:text-primary-foreground',\n day_range_end:\n 'day-range-end aria-selected:bg-primary aria-selected:text-primary-foreground',\n day_selected:\n 'bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground',\n day_today: 'bg-accent text-accent-foreground',\n day_outside:\n 'day-outside text-muted-foreground aria-selected:text-muted-foreground',\n day_disabled: 'text-muted-foreground opacity-50',\n day_range_middle:\n 'aria-selected:bg-accent aria-selected:text-accent-foreground',\n day_hidden: 'invisible',\n ...classNames,\n }}\n components={{\n IconLeft: ({ className, ...props }) => (\n <ChevronLeft className={cn('size-4', className)} {...props} />\n ),\n IconRight: ({ className, ...props }) => (\n <ChevronRight className={cn('size-4', className)} {...props} />\n ),\n }}\n {...props}\n />\n );\n}\n\nexport { Calendar };\n","import * as React from 'react';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = 'center',\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n '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',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };\n","import { fieldsMap } from '@/src/components/form/fields/fieldsMapping';\nimport { cn } from '@/src/lib/utils';\nimport * as React from 'react';\nimport { SupportedTypes } from './types';\nimport { Components } from '@/src/types/remoteFlows';\n\ntype FieldBase = {\n label: string;\n name: string;\n description: string;\n};\n\ntype FieldWithOptions = FieldBase & {\n type: 'select' | 'radio';\n options: Array<{ value: string; label: string }>;\n};\n\ntype FieldWithoutOptions = FieldBase & {\n type: Exclude<SupportedTypes, 'select' | 'radio'>;\n options?: never;\n};\n\ntype Field = FieldWithOptions | FieldWithoutOptions;\n\ntype FieldSetProps = {\n label: string;\n name: string;\n description: string;\n fields: Field[];\n components: Components;\n};\n\nexport function FieldSetField({\n label,\n name,\n fields,\n description,\n components,\n}: FieldSetProps) {\n return (\n <fieldset\n className={cn(\n 'border-1 border-input p-4 rounded-xl',\n `RemoteFlows__FieldSetField__${name}`,\n )}\n >\n <legend className=\"text-sm font-semibold px-2\">{label}</legend>\n {description ? (\n <div\n className=\"mb-5 RemoteFlows__FieldSetField__Description\"\n dangerouslySetInnerHTML={{ __html: description }}\n />\n ) : null}\n <div className=\"grid gap-4\">\n {fields.map((field) => {\n const FieldComponent = fieldsMap[field.type];\n\n // @ts-expect-error - TODO: use types from json-schema-form v1\n if (field.isVisible === false || field.deprecated) {\n return null; // Skip hidden or deprecated fields\n }\n\n return (\n <FieldComponent\n {...field}\n key={field.name}\n name={`${name}.${field.name}`}\n component={components?.[field.type]}\n />\n );\n })}\n </div>\n </fieldset>\n );\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\n\nimport { useFormFields } from '@/src/context';\nimport { cn } from '@/src/lib/utils';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FileUploader } from '../../ui/file-uploader';\nimport {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '../../ui/form';\n\nconst toBase64 = (file: File): Promise<string> => {\n return new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result as string);\n reader.onerror = (error) => reject(error);\n });\n};\n\nconst convertFilesToBase64 = async (\n event: React.ChangeEvent<HTMLInputElement>,\n) => {\n const files = event.target.files ? Array.from(event.target.files) : [];\n\n const base64Files = await Promise.all(\n files.map(async (file) => {\n const base64 = await toBase64(file);\n return {\n name: file.name,\n content: base64.split(',')[1],\n };\n }),\n );\n return base64Files;\n};\n\nexport type FileUploadFieldProps = JSFField & {\n onChange?: (value: any) => void;\n multiple?: boolean;\n component?: Components['file'];\n};\n\nexport function FileUploadField({\n name,\n description,\n label,\n multiple,\n onChange,\n component,\n ...rest\n}: FileUploadFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const CustomFileUploadField = component || components?.file;\n if (CustomFileUploadField) {\n const customFileUploadFieldProps = {\n name,\n description,\n label,\n multiple,\n ...rest,\n };\n return (\n <CustomFileUploadField\n field={{\n ...field,\n value: null,\n onChange: async (value: any) => {\n const files = await convertFilesToBase64(value);\n field.onChange(files);\n onChange?.(files);\n },\n }}\n fieldState={fieldState}\n fieldData={customFileUploadFieldProps}\n />\n );\n }\n return (\n <FormItem\n data-field={name}\n className={`RemoteFlows__FileUpload__Item__${name}`}\n >\n <FormLabel className=\"RemoteFlows__FileUpload__Label\">\n {label}\n </FormLabel>\n <FormControl>\n <FileUploader\n onChange={async (\n event: React.ChangeEvent<HTMLInputElement>,\n ) => {\n const files = await convertFilesToBase64(event);\n field.onChange(files);\n onChange?.(files);\n }}\n multiple={multiple}\n className={cn('RemoteFlows__FileUpload__Input')}\n />\n </FormControl>\n {description && (\n <div className=\"flex items-center justify-between\">\n <FormDescription className=\"RemoteFlows__FileUpload__Description\">\n {description}\n </FormDescription>\n </div>\n )}\n {fieldState.error && (\n <FormMessage className=\"RemoteFlows__FileUpload__Error\" />\n )}\n </FormItem>\n );\n }}\n />\n );\n}\n","import React, { useState, useRef } from 'react';\nimport { Button } from '@/src/components/ui/button';\nimport { Upload, X } from 'lucide-react';\nimport { cn } from '@/src/lib/utils';\n\ntype FileUploaderProps = {\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n className?: string;\n multiple?: boolean;\n};\n\nexport function FileUploader({\n onChange,\n className,\n multiple,\n}: FileUploaderProps) {\n const [files, setFiles] = useState<File[]>([]);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n inputRef.current?.click();\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.files && e.target.files.length > 0) {\n const newFiles = Array.from(e.target.files);\n\n setFiles(newFiles);\n onChange(e);\n }\n };\n\n const onRemoveFile = (file: File) => {\n setFiles((prevFiles) => prevFiles.filter((f) => f !== file));\n };\n\n return (\n <div className={cn('flex flex-col items-start gap-4', className)}>\n <input\n type=\"file\"\n ref={inputRef}\n onChange={handleChange}\n className=\"hidden\"\n aria-label=\"File upload\"\n multiple={multiple}\n />\n <Button type=\"button\" onClick={handleClick} className=\"gap-2\">\n <Upload className=\"h-4 w-4\" />\n Choose File\n </Button>\n {files.length === 0 && (\n <div className=\"text-sm\">\n {!multiple ? (\n <span className=\"font-medium\">No file selected.</span>\n ) : (\n <span className=\"font-medium\">\n No files selected. You can select multiple files\n </span>\n )}\n </div>\n )}\n {files.length > 0 &&\n files.map((file, index) => (\n <div key={index} className=\"text-sm flex items-center gap-2\">\n Selected file: <span className=\"font-medium\">{file.name}</span> (\n {Math.round(file.size / 1024)} KB)\n <Button variant=\"ghost\" onClick={() => onRemoveFile(file)}>\n <X />\n </Button>\n </div>\n ))}\n </div>\n );\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useFormFields } from '@/src/context';\nimport React from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { TextField, TextFieldProps } from './TextField';\nimport { Components } from '@/src/types/remoteFlows';\n\ntype NumberFieldProps = TextFieldProps & {\n component?: Components['number'];\n};\n\nexport function NumberField(props: NumberFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n\n const CustomNumberField = props.component || components?.number;\n\n if (CustomNumberField) {\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n return (\n <CustomNumberField\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n props.onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={props}\n />\n );\n }}\n />\n );\n }\n\n return (\n <TextField {...props} type=\"text\" inputMode=\"decimal\" pattern=\"^[0-9.]*$\" />\n );\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\n\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '../../ui/form';\nimport { Input } from '../../ui/input';\n\nexport type TextFieldProps = React.ComponentProps<'input'> &\n JSFField & {\n onChange?: (value: any) => void;\n component?: Components['text'];\n };\n\nexport function TextField({\n name,\n description,\n label,\n type,\n onChange,\n component,\n ...rest\n}: TextFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const CustomTextField = component || components?.text;\n if (CustomTextField) {\n const customTextFieldProps = {\n name,\n description,\n label,\n type,\n onChange,\n ...rest,\n };\n return (\n <CustomTextField\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customTextFieldProps}\n />\n );\n }\n\n return (\n <FormItem\n data-field={name}\n className={`RemoteFlows__TextField__Item__${name}`}\n >\n <FormLabel className=\"RemoteFlows__TextField__Label\">\n {label}\n </FormLabel>\n <FormControl>\n <Input\n {...field}\n value={field.value ?? ''}\n onChange={(event: React.ChangeEvent<HTMLInputElement>) => {\n field.onChange(event);\n onChange?.(event);\n }}\n className=\"RemoteFlows__TextField__Input\"\n placeholder={label}\n />\n </FormControl>\n {description && (\n <FormDescription className=\"RemoteFlows__TextField__Description\">\n {description}\n </FormDescription>\n )}\n {fieldState.error && (\n <FormMessage className=\"RemoteFlows__TextField__Error\" />\n )}\n </FormItem>\n );\n }}\n />\n );\n}\n","import * as React from 'react';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n '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',\n 'focus-visible:border-focused',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';\nimport { CircleIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn('grid gap-3', className)}\n {...props}\n />\n );\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n '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',\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <CircleIcon className=\"fill-radio absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n}\n\nexport { RadioGroup, RadioGroupItem };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/src/components/ui/form';\nimport { RadioGroup, RadioGroupItem } from '@/src/components/ui/radio-group';\nimport { useFormFields } from '@/src/context';\nimport { cn } from '@/src/lib/utils';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport * as React from 'react';\nimport { useFormContext } from 'react-hook-form';\n\ntype RadioGroupFieldProps = JSFField & {\n onChange?: (value: any) => void;\n component?: Components['radio'];\n};\n\nexport function RadioGroupField({\n name,\n defaultValue,\n description,\n label,\n options,\n onChange,\n component,\n ...rest\n}: RadioGroupFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n return (\n <FormField\n control={control}\n name={name}\n defaultValue={defaultValue}\n render={({ field, fieldState }) => {\n const CustomRadioGroupField = component || components?.radio;\n if (CustomRadioGroupField) {\n const customRadioGroupFieldProps = {\n name,\n defaultValue,\n description,\n label,\n options,\n ...rest,\n };\n return (\n <CustomRadioGroupField\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customRadioGroupFieldProps}\n />\n );\n }\n\n return (\n <FormItem\n className={cn(\n 'space-y-3',\n `RemoteFlows__RadioGroupField__Item__${name}`,\n )}\n data-field={name}\n >\n <FormLabel>{label}</FormLabel>\n <FormControl>\n <RadioGroup\n aria-label={label || name}\n onValueChange={(value: string) => {\n field.onChange(value);\n onChange?.(value);\n }}\n value={field.value}\n className=\"flex flex-col space-y-3\"\n >\n {options?.map((option) => (\n <>\n <FormItem\n key={option.value}\n data-field={name}\n className=\"flex items-start space-x-3 space-y-0 gap-0 RemoteFlows__RadioField__Item\"\n >\n <FormControl>\n <RadioGroupItem\n value={option.value}\n className=\"RemoteFlows__RadioField__Input\"\n />\n </FormControl>\n <div>\n <FormLabel className=\"font-normal mb-0 RemoteFlows__RadioField__Label\">\n {option.label}\n </FormLabel>\n {option.description && (\n <FormDescription className=\"mt-2\">\n {option.description}\n </FormDescription>\n )}\n </div>\n </FormItem>\n </>\n ))}\n </RadioGroup>\n </FormControl>\n {description && <FormDescription>{description}</FormDescription>}\n {fieldState.error && <FormMessage />}\n </FormItem>\n );\n }}\n />\n );\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\n\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@/src/components/ui/select';\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '../../ui/form';\n\ntype SelectFieldProps = JSFField & {\n placeholder?: string;\n options: Array<{ value: string; label: string }>;\n className?: string;\n onChange?: (value: any) => void;\n component?: Components['select'];\n};\n\nexport function SelectField({\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n component,\n ...rest\n}: SelectFieldProps) {\n const { control } = useFormContext();\n const { components } = useFormFields();\n\n return (\n <FormField\n defaultValue={defaultValue}\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const CustomSelectField = component || components?.select;\n if (CustomSelectField) {\n const customSelectFieldProps = {\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n ...rest,\n };\n return (\n <CustomSelectField\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customSelectFieldProps}\n />\n );\n }\n\n return (\n <FormItem\n data-field={name}\n className={`RemoteFlows__SelectField__Item__${name}`}\n >\n <FormLabel className=\"RemoteFlows__SelectField__Label\">\n {label}\n </FormLabel>\n <FormControl>\n <div className=\"relative\">\n <Select\n value={field.value || ''}\n onValueChange={(value: string) => {\n field.onChange(value);\n onChange?.(value);\n }}\n >\n <SelectTrigger\n className=\"RemoteFlows__SelectField__Trigger\"\n aria-invalid={Boolean(fieldState.error)}\n aria-label={label}\n >\n <span className=\"absolute\">\n <SelectValue placeholder={label} />\n </span>\n </SelectTrigger>\n <SelectContent className=\"RemoteFlows__SelectField__Content\">\n <SelectGroup className=\"RemoteFlows__SelectField__Group\">\n {options.map((option) => (\n <SelectItem\n key={option.value}\n value={option.value}\n className=\"RemoteFlows__SelectField__SelectItem\"\n >\n {option.label}\n </SelectItem>\n ))}\n </SelectGroup>\n </SelectContent>\n </Select>\n </div>\n </FormControl>\n {description && <FormDescription>{description}</FormDescription>}\n {fieldState.error && <FormMessage />}\n </FormItem>\n );\n }}\n />\n );\n}\n","import * as React from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Select({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger>) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n className={cn(\n \"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\",\n 'focus-visible:border-focused',\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild className=\"absolute right-4\">\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'popper',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n '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',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n position === 'popper' &&\n 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1',\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn('px-2 py-1.5 text-sm font-medium', className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"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\",\n className,\n )}\n {...props}\n >\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n <span className=\"flex size-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn('bg-border pointer-events-none -mx-1 my-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n 'flex cursor-default items-center justify-center py-1',\n className,\n )}\n {...props}\n >\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n 'flex cursor-default items-center justify-center py-1',\n className,\n )}\n {...props}\n >\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useState } from 'react';\n\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '../../ui/form';\nimport { MultiSelect } from '../../ui/multi-select';\n\ntype CountryFieldProps = JSFField & {\n options: Array<{ value: string; label: string }>;\n onChange?: (value: any) => void;\n $meta: {\n regions: Record<string, string[]>;\n subregions: Record<string, string[]>;\n };\n component?: Components['countries'];\n};\n\nexport function CountryField({\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n $meta,\n component,\n ...rest\n}: CountryFieldProps) {\n const { control } = useFormContext();\n const { components } = useFormFields();\n const [selected, setSelected] = useState<any[]>([]);\n\n return (\n <FormField\n defaultValue={defaultValue}\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const CustomSelectField = component || components?.countries;\n\n if (CustomSelectField) {\n const customSelectFieldProps = {\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n $meta,\n ...rest,\n };\n return (\n <CustomSelectField\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customSelectFieldProps}\n />\n );\n }\n\n const countryOptions = [\n ...Object.entries($meta?.regions || {}).map(([key, value]) => ({\n value,\n label: key,\n category: 'Regions',\n })),\n ...Object.entries($meta?.subregions || {}).map(([key, value]) => ({\n value,\n label: key,\n category: 'Subregions',\n })),\n ...options.map((option) => ({\n ...option,\n value: option.value,\n label: option.label,\n category: 'Countries',\n })),\n ];\n\n const handleChange = (rawValues: any[]) => {\n const values = rawValues.map(({ value }) => value);\n field.onChange(values);\n onChange?.(values);\n setSelected(rawValues);\n };\n\n return (\n <FormItem\n data-field={name}\n className={`RemoteFlows__CountryField__Item__${name}`}\n >\n <FormLabel className=\"RemoteFlows__CountryField__Label\">\n {label}\n </FormLabel>\n <FormControl>\n <MultiSelect\n options={countryOptions}\n selected={selected}\n onChange={handleChange}\n {...rest}\n />\n </FormControl>\n {description && <FormDescription>{description}</FormDescription>}\n {fieldState.error && <FormMessage />}\n </FormItem>\n );\n }}\n />\n );\n}\n","import React, { Fragment, useState } from 'react';\nimport { Check, ChevronDownIcon, X } from 'lucide-react';\n\nimport { Button } from '@/src/components/ui/button';\nimport { Badge } from '@/src/components/ui/badge';\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandList,\n CommandSeparator,\n} from '@/src/components/ui/command';\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from '@/src/components/ui/popover';\nimport { cn } from '@/src/lib/utils';\n\nexport type Option = {\n label: string;\n value: string | string[];\n category?: string;\n};\n\ninterface MultiSelectProps {\n options: Option[];\n selected: Option[];\n onChange: (options: Option[]) => void;\n placeholder?: string;\n}\n\nexport function MultiSelect({\n options,\n selected,\n onChange,\n placeholder,\n ...props\n}: MultiSelectProps) {\n const [open, setOpen] = useState(false);\n const handleUnselect = (option: Option) => {\n onChange(selected.filter((item) => item.value !== option.value));\n };\n\n const groupedOptions = options.reduce(\n (groups, option) => {\n const category = option.category || 'Uncategorized';\n if (!groups[category]) {\n groups[category] = [];\n }\n groups[category].push(option);\n return groups;\n },\n {} as Record<string, Option[]>,\n );\n\n return (\n <Popover open={open} onOpenChange={setOpen} {...props}>\n <PopoverTrigger>\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n className=\"w-full justify-between font-normal\"\n type=\"button\"\n >\n <div className=\"flex gap-1 flex-wrap overflow-x-auto max-h-[2.5rem] items-center\">\n {selected.length > 0 ? (\n selected.map((option) => {\n return (\n <Badge\n key={option.label}\n variant=\"secondary\"\n className=\"mr-1 mb-1\"\n >\n {option.label}\n <div\n role=\"button\"\n tabIndex={0}\n aria-label={`remove ${option.label}`}\n className=\"ml-1 ring-offset-background rounded-full outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 cursor-pointer\"\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n handleUnselect(option);\n }\n }}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onClick={() => handleUnselect(option)}\n >\n <X className=\"h-3 w-3 text-muted-foreground hover:text-foreground\" />\n </div>\n </Badge>\n );\n })\n ) : (\n <span className=\"text-foreground\">{placeholder}</span>\n )}\n </div>\n <ChevronDownIcon className=\"size-4\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent align=\"start\" className=\"w-full p-0\">\n <Command>\n <CommandList>\n <CommandEmpty>No item found.</CommandEmpty>\n {Object.entries(groupedOptions).map(\n ([category, categoryOptions], index) => (\n <Fragment key={category}>\n {index > 0 && <CommandSeparator />}\n <CommandGroup heading={category}>\n {categoryOptions.map((option) => {\n const isSelected = selected.some(\n (item) => item.value === option.value,\n );\n return (\n <CommandItem\n key={option.label}\n onSelect={() => {\n onChange(\n isSelected\n ? selected.filter(\n (item) => item.value !== option.value,\n )\n : [...selected, option],\n );\n }}\n >\n <Check\n className={cn(\n 'mr-2 h-4 w-4',\n isSelected ? 'opacity-100' : 'opacity-0',\n )}\n />\n {option.label}\n </CommandItem>\n );\n })}\n </CommandGroup>\n </Fragment>\n ),\n )}\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n );\n}\n","import * as React from 'react';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { SearchIcon } from 'lucide-react';\n\nimport { cn } from '@/src/lib/utils';\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from '@/src/components/ui/dialog';\n\nfunction Command({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(\n 'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CommandDialog({\n title = 'Command Palette',\n description = 'Search for a command to run...',\n children,\n ...props\n}: React.ComponentProps<typeof Dialog> & {\n title?: string;\n description?: string;\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent className=\"overflow-hidden p-0\">\n <Command className=\"[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n}\n\nfunction CommandInput({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div\n data-slot=\"command-input-wrapper\"\n className=\"flex h-9 items-center gap-2 border-b px-3\"\n >\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn(\n 'placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n </div>\n );\n}\n\nfunction CommandList({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn(\n 'max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CommandEmpty({\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n );\n}\n\nfunction CommandGroup({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\n className={cn(\n 'text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CommandSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn('bg-border -mx-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction CommandItem({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(\n \"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CommandShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n 'text-muted-foreground ml-auto text-xs tracking-widest',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n","'use client';\n\nimport * as React from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { XIcon } from 'lucide-react';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content>) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg',\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\">\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn('flex flex-col gap-2 text-center sm:text-left', className)}\n {...props}\n />\n );\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n 'flex flex-col-reverse gap-2 sm:flex-row sm:justify-end',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn('text-lg leading-none font-semibold', className)}\n {...props}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\n\nimport { useFormFields } from '@/src/context';\nimport { cn } from '@/src/lib/utils';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '../../ui/form';\nimport { Textarea } from '../../ui/textarea';\n\nexport type TextAreaFieldProps = JSFField & {\n onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;\n maxLength?: number;\n component?: Components['textarea'];\n};\n\nexport function TextAreaField({\n name,\n description,\n label,\n onChange,\n maxLength,\n component,\n ...rest\n}: TextAreaFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const CustomTextAreaField = component || components?.textarea;\n if (CustomTextAreaField) {\n const customTextAreaFieldProps = {\n name,\n description,\n label,\n maxLength,\n ...rest,\n };\n return (\n <CustomTextAreaField\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customTextAreaFieldProps}\n />\n );\n }\n\n const valueLength = field.value?.length ?? 0;\n return (\n <FormItem\n data-field={name}\n className={`RemoteFlows__TextArea__Item__${name}`}\n >\n <FormLabel className=\"RemoteFlows__TextArea__Label\">\n {label}\n </FormLabel>\n <FormControl>\n <Textarea\n {...field}\n value={field.value ?? ''}\n onChange={(event: React.ChangeEvent<HTMLTextAreaElement>) => {\n field.onChange(event);\n onChange?.(event);\n }}\n className={cn(\n fieldState.error &&\n 'border-red-500 focus-visible:ring-red-500',\n 'RemoteFlows__TextArea__Input',\n )}\n placeholder={label}\n />\n </FormControl>\n {(description || maxLength) && (\n <div className=\"flex items-center justify-between\">\n {description && (\n <FormDescription className=\"RemoteFlows__TextArea__Description\">\n {description}\n </FormDescription>\n )}\n {maxLength && (\n <span className=\"text-sm ml-auto RemoteFlows__TextArea__MaxLength\">\n {valueLength}/{maxLength}\n </span>\n )}\n </div>\n )}\n {fieldState.error && (\n <FormMessage className=\"RemoteFlows__TextArea__Error\" />\n )}\n </FormItem>\n );\n }}\n />\n );\n}\n","import * as React from 'react';\n\nimport { cn } from '@/src/lib/utils';\n\nconst Textarea = React.forwardRef<\n HTMLTextAreaElement,\n React.ComponentProps<'textarea'>\n>(({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n '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',\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n});\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useFormFields } from '@/src/context';\nimport React from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { TextField, TextFieldProps } from './TextField';\nimport { Components } from '@/src/types/remoteFlows';\n\ntype EmailFieldProps = TextFieldProps & {\n component?: Components['email'];\n};\n\nexport function EmailField(props: EmailFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n\n const CustomEmailField = props.component || components?.email;\n\n if (CustomEmailField) {\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n return (\n <CustomEmailField\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n props.onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={props}\n />\n );\n }}\n />\n );\n }\n\n return <TextField {...props} type=\"email\" />;\n}\n","import { CheckBoxField } from '@/src/components/form/fields/CheckBoxField';\nimport { DatePickerField } from '@/src/components/form/fields/DatePickerField';\nimport { FieldSetField } from '@/src/components/form/fields/FieldSetField';\nimport { FileUploadField } from '@/src/components/form/fields/FileUploadField';\nimport { NumberField } from '@/src/components/form/fields/NumberField';\nimport { RadioGroupField } from '@/src/components/form/fields/RadioGroupField';\nimport { SelectField } from '@/src/components/form/fields/SelectField';\nimport { CountryField } from '@/src/components/form/fields/CountryField';\nimport { TextAreaField } from '@/src/components/form/fields/TextAreaField';\nimport { TextField } from '@/src/components/form/fields/TextField';\nimport { EmailField } from '@/src/components/form/fields/EmailField';\nimport { SupportedTypes } from '@/src/components/form/fields/types';\nimport React from 'react';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const fieldsMap: Record<SupportedTypes, React.ComponentType<any>> = {\n checkbox: CheckBoxField,\n text: TextField,\n email: EmailField,\n money: NumberField,\n select: SelectField,\n radio: RadioGroupField,\n number: NumberField,\n file: FileUploadField,\n fieldset: FieldSetField,\n date: DatePickerField,\n textarea: TextAreaField,\n countries: CountryField,\n};\n","import { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { cn } from '@/src/lib/utils';\n\nconst alertVariants = cva(\n 'relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current',\n {\n variants: {\n variant: {\n default: 'bg-card text-card-foreground',\n destructive:\n 'text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90',\n warning:\n 'bg-card bg-warning border-warning-border [&>svg]:text-current',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof alertVariants>) {\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\n 'col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n 'text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Alert, AlertDescription, AlertTitle };\n","import { Alert, AlertDescription, AlertTitle } from '@/src/components/ui/alert';\nimport { useFormFields } from '@/src/context';\nimport { AlertCircle } from 'lucide-react';\nimport React from 'react';\n\nexport type StatementProps = {\n title?: string;\n description: string;\n severity: 'warning' | 'error' | 'success' | 'info' | 'neutral' | 'time';\n};\n\nexport function Statement({ title, description, severity }: StatementProps) {\n const { components } = useFormFields();\n\n if (components?.statement) {\n const CustomStatement = components?.statement;\n return (\n <CustomStatement\n data={{\n title,\n description,\n severity,\n }}\n />\n );\n }\n\n return (\n <Alert variant=\"warning\">\n <AlertCircle className=\"h-4 w-4\" />\n {title && <AlertTitle>{title}</AlertTitle>}\n <AlertDescription>{description}</AlertDescription>\n </Alert>\n );\n}\n","import React, { useEffect } from 'react';\nimport { useFormContext } from 'react-hook-form';\n\ntype ForcedValueFieldProps = {\n name: string;\n value: string;\n description: string;\n statement: {\n title: string;\n description: string;\n };\n};\n\nexport function ForcedValueField({\n name,\n value,\n description,\n statement,\n}: ForcedValueFieldProps) {\n const { setValue } = useFormContext();\n\n useEffect(() => {\n setValue(name, value);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <div>\n <p\n className={`text-sm RemoteFlows__ForcedValue__Title__${name}`}\n dangerouslySetInnerHTML={{ __html: statement.title }}\n />\n <p\n className={`text-xs RemoteFlows__ForcedValue__Description__${name}`}\n dangerouslySetInnerHTML={{\n __html: statement.description || description,\n }}\n />\n </div>\n );\n}\n"],"mappings":"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","names":["React","Fragment","React","CheckboxPrimitive","Check","Checkbox","className","props","ref","cn","Check","React","useFormContext","CheckBoxField","name","defaultValue","description","label","onChange","multiple","options","component","rest","components","useFormFields","control","useFormContext","handleCheckboxChange","__name","optionId","checked","field","currentValues","value","FormField","fieldState","CustomCheckboxField","customCheckboxFieldProps","evt","FormItem","cn","FormControl","FormLabel","option","Checkbox","event","FormDescription","FormMessage","CalendarIcon","React","useFormContext","React","ChevronLeft","ChevronRight","DayPicker","Calendar","className","classNames","showOutsideDays","props","DayPicker","cn","buttonVariants","__name","ChevronLeft","ChevronRight","React","PopoverPrimitive","Popover","props","__name","PopoverTrigger","PopoverContent","className","align","sideOffset","cn","PopoverClose","format","DatePickerField","description","label","name","minDate","onChange","component","rest","components","useFormFields","control","useFormContext","FormField","field","fieldState","CustomDatePickerField","customDatePickerFieldProps","__name","value","FormItem","FormLabel","Popover","PopoverTrigger","FormControl","Button","cn","format","CalendarIcon","PopoverContent","Calendar","date","props","PopoverClose","FormDescription","FormMessage","React","FieldSetField","label","name","fields","description","components","cn","field","FieldComponent","fieldsMap","__name","React","useFormContext","React","useState","useRef","Upload","X","FileUploader","onChange","className","multiple","files","setFiles","useState","inputRef","useRef","handleClick","__name","e","handleChange","newFiles","onRemoveFile","file","prevFiles","f","React","cn","Button","Upload","index","X","toBase64","__name","file","resolve","reject","reader","error","convertFilesToBase64","event","files","base64","FileUploadField","name","description","label","multiple","onChange","component","rest","components","useFormFields","control","useFormContext","FormField","field","fieldState","CustomFileUploadField","customFileUploadFieldProps","value","FormItem","FormLabel","FormControl","FileUploader","cn","FormDescription","FormMessage","React","useFormContext","React","useFormContext","React","Input","className","type","props","cn","__name","TextField","name","description","label","type","onChange","component","rest","components","useFormFields","control","useFormContext","FormField","field","fieldState","CustomTextField","customTextFieldProps","__name","value","FormItem","FormLabel","FormControl","Input","event","FormDescription","FormMessage","NumberField","props","components","useFormFields","control","useFormContext","CustomNumberField","React","FormField","field","fieldState","__name","value","TextField","RadioGroupPrimitive","CircleIcon","React","RadioGroup","className","props","cn","__name","RadioGroupItem","CircleIcon","React","useFormContext","RadioGroupField","name","defaultValue","description","label","options","onChange","component","rest","components","useFormFields","control","useFormContext","FormField","field","fieldState","CustomRadioGroupField","customRadioGroupFieldProps","__name","value","FormItem","cn","FormLabel","FormControl","RadioGroup","option","RadioGroupItem","FormDescription","FormMessage","React","React","SelectPrimitive","CheckIcon","ChevronDownIcon","ChevronUpIcon","Select","props","__name","SelectGroup","SelectValue","SelectTrigger","className","children","cn","ChevronDownIcon","SelectContent","position","SelectScrollUpButton","SelectScrollDownButton","SelectItem","className","children","props","cn","CheckIcon","__name","SelectScrollUpButton","className","props","cn","ChevronUpIcon","__name","SelectScrollDownButton","ChevronDownIcon","useFormContext","SelectField","label","name","options","defaultValue","description","onChange","component","rest","control","useFormContext","components","useFormFields","FormField","field","fieldState","CustomSelectField","customSelectFieldProps","__name","value","FormItem","FormLabel","FormControl","Select","SelectTrigger","SelectValue","SelectContent","SelectGroup","option","SelectItem","FormDescription","FormMessage","React","useState","useFormContext","React","Fragment","useState","Check","ChevronDownIcon","X","React","CommandPrimitive","SearchIcon","React","DialogPrimitive","XIcon","Command","className","props","CommandPrimitive","cn","__name","CommandList","className","props","CommandPrimitive","cn","__name","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","MultiSelect","options","selected","onChange","placeholder","props","open","setOpen","useState","handleUnselect","__name","option","item","groupedOptions","groups","category","React","Popover","PopoverTrigger","Button","Badge","e","X","ChevronDownIcon","PopoverContent","Command","CommandList","CommandEmpty","categoryOptions","index","Fragment","CommandSeparator","CommandGroup","isSelected","CommandItem","Check","cn","CountryField","label","name","options","defaultValue","description","onChange","$meta","component","rest","control","useFormContext","components","useFormFields","selected","setSelected","useState","React","FormField","field","fieldState","CustomSelectField","customSelectFieldProps","__name","value","countryOptions","key","option","handleChange","rawValues","values","FormItem","FormLabel","FormControl","MultiSelect","FormDescription","FormMessage","React","useFormContext","React","Textarea","className","props","ref","cn","TextAreaField","name","description","label","onChange","maxLength","component","rest","components","useFormFields","control","useFormContext","FormField","field","fieldState","CustomTextAreaField","customTextAreaFieldProps","__name","value","valueLength","FormItem","FormLabel","FormControl","Textarea","event","cn","FormDescription","FormMessage","React","useFormContext","EmailField","props","components","useFormFields","control","useFormContext","CustomEmailField","React","FormField","field","fieldState","__name","value","TextField","fieldsMap","CheckBoxField","TextField","EmailField","NumberField","SelectField","RadioGroupField","FileUploadField","FieldSetField","DatePickerField","TextAreaField","CountryField","cva","React","alertVariants","cva","Alert","className","variant","props","cn","__name","AlertTitle","AlertDescription","AlertCircle","React","Statement","title","description","severity","components","useFormFields","CustomStatement","React","Alert","AlertCircle","AlertTitle","AlertDescription","__name","React","useEffect","useFormContext","ForcedValueField","name","value","description","statement","setValue","useFormContext","useEffect","React","__name","checkFieldHasForcedValue","field","__name","JSONSchemaFormFields","fields","components","React","ForcedValueField","FieldComponent","fieldsMap","Fragment","Statement"]}
@@ -1,2 +0,0 @@
1
- import{b as d}from"./chunk-WS3C3WIJ.js";import{a}from"./chunk-HDQGO453.js";import{b as t}from"./chunk-A4RX3KRZ.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-I6NVZI7W.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{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 n}from"./chunk-5OXN2O6C.js";import{b as i}from"./chunk-DZYFSFZ7.js";import{a as o}from"./chunk-AYDF3IFZ.js";import e from"react";function l({onSubmit:r}){let{terminationBag:m}=i();return e.createElement(n,{onSubmit:o(async t=>{await r?.(m?.parseFormValues(t)),m?.next()},"handleSubmit")})}o(l,"EmployeeCommunicationForm");export{l as a};
2
- //# sourceMappingURL=chunk-JFOOILST.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/Termination/EmployeeComunicationForm.tsx"],"sourcesContent":["import React from 'react';\nimport { useTerminationContext } from './context';\nimport { TerminationFormValues } from '@/src/flows/Termination/types';\nimport { TerminationForm } from '@/src/flows/Termination/TerminationForm';\n\ntype EmployeeComunicationProps = {\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\nexport function EmployeeCommunicationForm({\n onSubmit,\n}: EmployeeComunicationProps) {\n const { terminationBag } = useTerminationContext();\n const handleSubmit = async (values: TerminationFormValues) => {\n await onSubmit?.(\n terminationBag?.parseFormValues(values) as TerminationFormValues,\n );\n terminationBag?.next();\n };\n\n return <TerminationForm onSubmit={handleSubmit} />;\n}\n"],"mappings":"wHAAA,OAAOA,MAAW,QAYX,SAASC,EAA0B,CACxC,SAAAC,CACF,EAA8B,CAC5B,GAAM,CAAE,eAAAC,CAAe,EAAIC,EAAsB,EAQjD,OAAOC,EAAA,cAACC,EAAA,CAAgB,SAPHC,EAAA,MAAOC,GAAkC,CAC5D,MAAMN,IACJC,GAAgB,gBAAgBK,CAAM,CACxC,EACAL,GAAgB,KAAK,CACvB,EALqB,gBAO2B,CAClD,CAZgBI,EAAAN,EAAA","names":["React","EmployeeCommunicationForm","onSubmit","terminationBag","useTerminationContext","React","TerminationForm","__name","values"]}
@@ -1,2 +0,0 @@
1
- import{a as e}from"./chunk-AYDF3IFZ.js";function s(a){return{mutateAsync:e(n=>new Promise((t,o)=>{a.mutate(n,{onSuccess:e(r=>{r.data?t({data:r.data,error:null}):t({data:null,error:new Error("Something went wrong. Please try again later.")})},"onSuccess"),onError:e(r=>{o({data:null,error:r})},"onError")})}),"mutateAsync")}}e(s,"mutationToPromise");export{s as a};
2
- //# sourceMappingURL=chunk-JRQSZHUU.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/mutations.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { UseMutationResult } from '@tanstack/react-query';\n\ntype MutationData<T> =\n T extends UseMutationResult<infer R, any, any, any> ? R : never;\ntype MutationVariables<T> =\n T extends UseMutationResult<any, any, infer V, any> ? V : never;\ntype MutationError<T> =\n T extends UseMutationResult<any, infer E, any, any> ? E : never;\n\nexport interface SuccessResponse<D> {\n data: D;\n error: null;\n}\n\nexport interface ErrorResponse<E> {\n data: null;\n error: E;\n}\n\ntype PromiseResult<D, E> = SuccessResponse<D> | ErrorResponse<E>;\n\n/**\n * Converts a mutation to a promise-based API. We avoid using the\n * `mutateAsync` method from react-query for 2 reasons:\n * 1. We lose the isPending state of the mutation\n * 2. We want to return the data and error in a consistent way\n * (either data or error is null)\n * @param mutation\n * @returns\n */\nexport function mutationToPromise<\n T extends UseMutationResult<any, any, any, any>,\n>(mutation: T) {\n type Data = MutationData<T>;\n type Variables = MutationVariables<T>;\n type Error = MutationError<T>;\n\n return {\n mutateAsync: (values: Variables): Promise<PromiseResult<Data, Error>> => {\n return new Promise((resolve, reject) => {\n mutation.mutate(values, {\n onSuccess: (response) => {\n if (response.data) {\n resolve({\n data: response.data as 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 ) as unknown as Error,\n });\n }\n },\n onError: (error) => {\n reject({\n data: null,\n error: error as Error,\n });\n },\n });\n });\n },\n };\n}\n"],"mappings":"wCA+BO,SAASA,EAEdC,EAAa,CAKb,MAAO,CACL,YAAaC,EAACC,GACL,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtCJ,EAAS,OAAOE,EAAQ,CACtB,UAAWD,EAACI,GAAa,CACnBA,EAAS,KACXF,EAAQ,CACN,KAAME,EAAS,KACf,MAAO,IACT,CAAC,EAEDF,EAAQ,CACN,KAAM,KACN,MAAO,IAAI,MACT,+CACF,CACF,CAAC,CAEL,EAdW,aAeX,QAASF,EAACK,GAAU,CAClBF,EAAO,CACL,KAAM,KACN,MAAOE,CACT,CAAC,CACH,EALS,UAMX,CAAC,CACH,CAAC,EAzBU,cA2Bf,CACF,CApCgBL,EAAAF,EAAA","names":["mutationToPromise","mutation","__name","values","resolve","reject","response","error"]}
@@ -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 +0,0 @@
1
- {"version":3,"sources":["../src/flows/ContractAmendment/utils.ts"],"sourcesContent":["import { EmploymentShowResponse } from '@/src/client';\nimport { convertFromCents } from '@/src/components/form/utils';\nimport { Fields } from '@remoteoss/json-schema-form';\nimport { Step } from '../useStepState';\n\ntype StepKeys = 'form' | 'confirmation_form';\n\nexport const STEPS: Record<StepKeys, Step> = {\n form: { index: 0, name: 'form' },\n confirmation_form: { index: 1, name: 'confirmation_form' },\n} as const;\n\nexport function buildInitialValues(\n employment: EmploymentShowResponse | undefined,\n fields?: Fields | undefined,\n) {\n if (!employment) {\n return {};\n }\n\n if (!fields) {\n return {\n ...employment.data.employment?.contract_details,\n effective_date: '',\n reason_for_change: '',\n job_title: employment.data.employment?.job_title,\n additional_comments: '',\n annual_gross_salary: convertFromCents(\n employment.data.employment?.contract_details\n ?.annual_gross_salary as string,\n ),\n };\n }\n\n const allFields = fields.map((field) => field.name);\n const employmentFields = Object.keys(\n employment?.data?.employment?.contract_details || {},\n );\n const initialValues = allFields.reduce<Record<string, unknown>>(\n (initialValuesAcc, field) => {\n // @ts-expect-error error\n if (employmentFields.includes(field)) {\n const contractDetails = employment?.data?.employment\n ?.contract_details as Record<string, unknown>;\n // @ts-expect-error error\n initialValuesAcc[field] = contractDetails[field];\n }\n return initialValuesAcc;\n },\n {} as Record<string, unknown>,\n );\n\n return {\n ...initialValues,\n effective_date: '',\n reason_for_change: '',\n job_title: employment.data.employment?.job_title,\n additional_comments: '',\n annual_gross_salary: convertFromCents(\n employment.data.employment?.contract_details\n ?.annual_gross_salary as string,\n ),\n additional_comments_toggle: false,\n };\n}\n"],"mappings":"gFAOO,IAAMA,EAAgC,CAC3C,KAAM,CAAE,MAAO,EAAG,KAAM,MAAO,EAC/B,kBAAmB,CAAE,MAAO,EAAG,KAAM,mBAAoB,CAC3D,EAEO,SAASC,EACdC,EACAC,EACA,CACA,GAAI,CAACD,EACH,MAAO,CAAC,EAGV,GAAI,CAACC,EACH,MAAO,CACL,GAAGD,EAAW,KAAK,YAAY,iBAC/B,eAAgB,GAChB,kBAAmB,GACnB,UAAWA,EAAW,KAAK,YAAY,UACvC,oBAAqB,GACrB,oBAAqBE,EACnBF,EAAW,KAAK,YAAY,kBACxB,mBACN,CACF,EAGF,IAAMG,EAAYF,EAAO,IAAKG,GAAUA,EAAM,IAAI,EAC5CC,EAAmB,OAAO,KAC9BL,GAAY,MAAM,YAAY,kBAAoB,CAAC,CACrD,EAeA,MAAO,CACL,GAfoBG,EAAU,OAC9B,CAACG,EAAkBF,IAAU,CAE3B,GAAIC,EAAiB,SAASD,CAAK,EAAG,CACpC,IAAMG,EAAkBP,GAAY,MAAM,YACtC,iBAEJM,EAAiBF,CAAK,EAAIG,EAAgBH,CAAK,CACjD,CACA,OAAOE,CACT,EACA,CAAC,CACH,EAIE,eAAgB,GAChB,kBAAmB,GACnB,UAAWN,EAAW,KAAK,YAAY,UACvC,oBAAqB,GACrB,oBAAqBE,EACnBF,EAAW,KAAK,YAAY,kBACxB,mBACN,EACA,2BAA4B,EAC9B,CACF,CApDgBQ,EAAAT,EAAA","names":["STEPS","buildInitialValues","employment","fields","convertFromCents","allFields","field","employmentFields","initialValuesAcc","contractDetails","__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{a as J}from"./chunk-2PXGLWCY.js";import{a as _}from"./chunk-JRQSZHUU.js";import{d as A,f as T,g as B,j as M,l as I,m as L,n as U,r as z}from"./chunk-DHRIURRT.js";import{a as R}from"./chunk-S56EWAS4.js";import{d as c}from"./chunk-WRDKLT4N.js";import{c as g,d as O}from"./chunk-N25EBX6R.js";import{a as t}from"./chunk-AYDF3IFZ.js";import{createHeadlessForm as x,modify as H}from"@remoteoss/json-schema-form";import{useMutation as F,useQuery as E}from"@tanstack/react-query";import{useState as ae}from"react";import oe from"lodash/mergeWith";var re={employment_basic_information:"basic_information",contract_details:"contract_details"},se=t(e=>{let{client:a}=c();return E({queryKey:["employment",e],retry:!1,enabled:!!e,queryFn:t(async()=>{let n=await L({client:a,headers:{Authorization:""},path:{employment_id:e}});if(n.error||!n.data)throw new Error("Failed to fetch employment data");return n},"queryFn")})},"useEmployment"),ie=t(e=>{let{client:a}=c();return E({queryKey:["benefit-offers",e],retry:!1,enabled:!!e,queryFn:t(async()=>T({client:a,headers:{Authorization:""},path:{employment_id:e}}).then(n=>{if(n.error||!n.data)throw new Error("Failed to fetch benefit offers data");return n}),"queryFn"),select:t(({data:n})=>n?.data?.reduce((s,r)=>({...s,[r.benefit_group.slug]:{value:r.benefit_tier?.slug??""}}),{}),"select")})},"useBenefitOffers"),Ce=t(()=>{let{client:e}=c();return F({mutationFn:t(a=>z({client:e,headers:{Authorization:""},path:a}),"mutationFn")})},"useEmploymentInvite"),me=t(({countryCode:e,form:a,fieldValues:n,options:s,employment:r})=>{let{client:i}=c(),m=s?.jsonSchemaVersion?.form_schema?.[a]?{json_schema_version:s.jsonSchemaVersion.form_schema[a]}:{};return E({queryKey:["onboarding-json-schema-form",e,a],retry:!1,queryFn:t(async()=>{let l=await M({client:i,headers:{Authorization:""},path:{country_code:e,form:a},query:{skip_benefits:!0,...m}});if(l.error||!l.data)throw new Error("Failed to fetch onboarding schema");return l},"queryFn"),select:t(({data:l})=>{let p=l?.data||{};if(s&&s.jsfModify){let{schema:V}=H(p,s.jsfModify);p=V}let y=Object.keys(n).length>0,h=re[a],o=r?.[h]||{};return x(p,{initialValues:y?n:o})},"select")})},"useJSONSchemaForm"),le=t((e,a,n)=>{let s=n?.jsonSchemaVersion?.benefit_offers_form_schema?{json_schema_version:n.jsonSchemaVersion.benefit_offers_form_schema}:{},{client:r}=c();return E({queryKey:["benefit-offers-schema",e],retry:!1,enabled:!!e,queryFn:t(async()=>{let i=await I({client:r,headers:{Authorization:""},path:{employment_id:e},query:s});if(i.error||!i.data)throw new Error("Failed to fetch benefit offers schema");return i},"queryFn"),select:t(({data:i})=>{let m=i?.data?.schema||{};if(n&&n.jsfModify){let{schema:y}=H(m,n.jsfModify);m=y}let l=Object.keys(a).length>0;return x(m,{initialValues:l?a:{}})},"select")})},"useBenefitOffersSchema"),ce=t(()=>{let{client:e}=c();return F({mutationFn:t(a=>A({client:e,headers:{Authorization:""},body:a}),"mutationFn")})},"useCreateEmployment"),fe=t(()=>{let{client:e}=c();return F({mutationFn:t(({employmentId:a,...n})=>U({client:e,headers:{Authorization:""},body:n,path:{employment_id:a},query:{skip_benefits:!0}}),"mutationFn")})},"useUpdateEmployment"),ue=t(()=>{let{client:e}=c();return F({mutationFn:t(({employmentId:a,...n})=>B({client:e,headers:{Authorization:""},body:n,path:{employment_id:a}}),"mutationFn")})},"useUpdateBenefitsOffers"),qe=t(({employmentId:e,countryCode:a,type:n,options:s})=>{let[r,i]=ae(e),{data:m,isLoading:l}=se(e),{data:p,isLoading:y}=ie(r),{fieldValues:h,stepState:o,setFieldValues:V,previousStep:N,nextStep:K}=R(J),k=ce(),w=fe(),j=ue(),{mutateAsync:D}=_(k),{mutateAsync:C}=_(w),{mutateAsync:Q}=_(j),W={basic_information:"employment_basic_information",contract_details:"contract_details",benefits:null,review:null},{data:f,isLoading:G}=me({countryCode:a,form:W[o.currentStep.name]||"employment_basic_information",fieldValues:{...o.values?.[o.currentStep.name],...h},options:s,employment:m?.data?.data?.employment}),X={...o.values?.[o.currentStep.name],...h},Y=o.currentStep.name==="benefits"?oe({},p,X):{},{data:b,isLoading:Z}=le(r,h,s),P={basic_information:f?.fields||[],contract_details:f?.fields||[],benefits:b?.fields||[],review:[]},$={basic_information:O(P[o.currentStep.name],m?.data?.data.employment?.basic_information||{}),contract_details:O(P[o.currentStep.name],m?.data?.data.employment?.contract_details||{}),benefits:Y||{}};function q(u){return f?g(u,f?.fields,{isPartialValidation:!0}):{}}t(q,"parseFormValues");async function ee(u){let d=q(u);switch(o.currentStep.name){case"basic_information":{if(r)return C({employmentId:r,basic_information:d,pricing_plan_details:{frequency:"monthly"}});{let v={basic_information:d,type:n,country_code:a};try{let S=await D(v);return i(S.data?.data?.employment?.id),S}catch(S){throw console.error("Error creating onboarding:",S),S}}}case"contract_details":return C({employmentId:r,...{contract_details:d}});case"benefits":return Q({employmentId:r,...u})}}t(ee,"onSubmit");function te(){N()}t(te,"back");function ne(){K()}return t(ne,"next"),{employmentId:e,stepState:o,fields:P[o.currentStep.name],isLoading:G||l||Z||y,isSubmitting:k.isPending||w.isPending||j.isPending,initialValues:$,handleValidation:t(u=>{if(o.currentStep.name==="benefits"&&b){let d=g(u,b?.fields);return b?.handleValidation(d)}if(f){let d=g(u,f?.fields);return f?.handleValidation(d)}return null},"handleValidation"),checkFieldUpdates:V,parseFormValues:q,onSubmit:ee,back:te,next:ne}},"useOnboarding");export{Ce as a,qe as b};
2
- //# sourceMappingURL=chunk-LCZQVL4U.js.map