@remoteoss/remote-flows 1.1.3 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/dist/chunk-26DGUFCY.js +2 -0
  2. package/dist/chunk-26DGUFCY.js.map +1 -0
  3. package/dist/{chunk-SWI3KDSQ.js → chunk-4P5BLP5U.js} +2 -2
  4. package/dist/{chunk-4Y3PH3Z7.js → chunk-5VPMZXGU.js} +2 -2
  5. package/dist/{chunk-SGTUQ7OX.js → chunk-7WTIUK53.js} +2 -2
  6. package/dist/{chunk-LPAKW2MR.js → chunk-7YY7DH4I.js} +2 -2
  7. package/dist/{chunk-R36C4F5D.js → chunk-ALRODBM2.js} +2 -2
  8. package/dist/{chunk-GTP4CHJD.js → chunk-ASSO5FYG.js} +2 -2
  9. package/dist/{chunk-U2PJLKXO.js → chunk-BGWVXKFX.js} +2 -2
  10. package/dist/{chunk-WDH34P74.js → chunk-BP4PHE44.js} +2 -2
  11. package/dist/chunk-BZUYUGQF.js +2 -0
  12. package/dist/chunk-BZUYUGQF.js.map +1 -0
  13. package/dist/{chunk-UIBYZKGO.js → chunk-COKMRJQ7.js} +2 -2
  14. package/dist/{chunk-S5PJSCJF.js → chunk-D3YUACHO.js} +2 -2
  15. package/dist/{chunk-PA7PBUX6.js → chunk-DS5MV4BA.js} +2 -2
  16. package/dist/{chunk-4C7Y76IS.js → chunk-F53TRJ4K.js} +2 -2
  17. package/dist/chunk-FLNGPYQ2.js +2 -0
  18. package/dist/chunk-FLNGPYQ2.js.map +1 -0
  19. package/dist/chunk-FXRIYGSV.js +2 -0
  20. package/dist/{chunk-QP5V46OP.js.map → chunk-FXRIYGSV.js.map} +1 -1
  21. package/dist/{chunk-U2DDV6SE.js → chunk-GT6DVQEB.js} +2 -2
  22. package/dist/{chunk-J667C5G4.js → chunk-KDMBZNAE.js} +2 -2
  23. package/dist/chunk-KGKDSOER.js +2 -0
  24. package/dist/chunk-KGKDSOER.js.map +1 -0
  25. package/dist/{chunk-VC66HET6.js → chunk-LD2UDBK4.js} +2 -2
  26. package/dist/chunk-LD2UDBK4.js.map +1 -0
  27. package/dist/chunk-M2EKZ2FC.js +2 -0
  28. package/dist/{chunk-BGNCB335.js.map → chunk-M2EKZ2FC.js.map} +1 -1
  29. package/dist/{chunk-2D5I4RIF.js → chunk-MUILMUKC.js} +2 -2
  30. package/dist/{chunk-3TVKDZSP.js → chunk-NCWPOV3B.js} +2 -2
  31. package/dist/chunk-NIGMIGF6.js +2 -0
  32. package/dist/chunk-NIGMIGF6.js.map +1 -0
  33. package/dist/{chunk-PHWZOEDE.js → chunk-O6YXA5AM.js} +2 -2
  34. package/dist/chunk-OA7477F5.js +2 -0
  35. package/dist/chunk-OA7477F5.js.map +1 -0
  36. package/dist/{chunk-LXLQKYFW.js → chunk-OL7SFTJV.js} +2 -2
  37. package/dist/{chunk-WK5QE22Y.js → chunk-PTHW7GI4.js} +2 -2
  38. package/dist/{chunk-7NCYKLRU.js → chunk-QIZEGFKJ.js} +2 -2
  39. package/dist/{chunk-3XOY4F3D.js → chunk-RNULWNWR.js} +2 -2
  40. package/dist/chunk-SGFXAOTZ.js +2 -0
  41. package/dist/chunk-SGFXAOTZ.js.map +1 -0
  42. package/dist/{chunk-ITIZBBRW.js → chunk-T4KJKYPC.js} +2 -2
  43. package/dist/{chunk-2LR4VZUK.js → chunk-TVPY6KPQ.js} +2 -2
  44. package/dist/{chunk-S7X4AB7C.js → chunk-UVA4PFNM.js} +2 -2
  45. package/dist/chunk-V2L3UV7M.js +2 -0
  46. package/dist/chunk-V2L3UV7M.js.map +1 -0
  47. package/dist/{chunk-AW7XS7Z5.js → chunk-VUY7ZZAD.js} +2 -2
  48. package/dist/{chunk-XDYSADZN.js → chunk-WUZ5OZ42.js} +2 -2
  49. package/dist/{chunk-I4S5X7NU.js → chunk-XEUZL7O2.js} +2 -2
  50. package/dist/{chunk-2DYRPCHC.js → chunk-Z47XN6ZT.js} +2 -2
  51. package/dist/{chunk-EOV62SUU.js → chunk-ZSX2O4ZJ.js} +2 -2
  52. package/dist/flows/ContractAmendment/ContractAmendmentBack.js +1 -1
  53. package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +1 -1
  54. package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +3 -3
  55. package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
  56. package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +1 -1
  57. package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
  58. package/dist/flows/ContractAmendment/ContractAmendmentSubmit.js +1 -1
  59. package/dist/flows/ContractAmendment/context.d.ts +3 -3
  60. package/dist/flows/ContractAmendment/hooks.d.ts +3 -3
  61. package/dist/flows/ContractAmendment/index.d.ts +3 -3
  62. package/dist/flows/ContractAmendment/index.js +1 -1
  63. package/dist/flows/ContractAmendment/types.d.ts +2 -2
  64. package/dist/flows/ContractAmendment/utils.d.ts +1 -1
  65. package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +5 -5
  66. package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
  67. package/dist/flows/ContractorOnboarding/api.d.ts +2 -2
  68. package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +4 -4
  69. package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
  70. package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +5 -5
  71. package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
  72. package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +5 -5
  73. package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
  74. package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +5 -5
  75. package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
  76. package/dist/flows/ContractorOnboarding/components/OnboardingBack.js +1 -1
  77. package/dist/flows/ContractorOnboarding/components/OnboardingInvite.d.ts +3 -3
  78. package/dist/flows/ContractorOnboarding/components/OnboardingSubmit.js +1 -1
  79. package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +5 -5
  80. package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
  81. package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +4 -4
  82. package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
  83. package/dist/flows/ContractorOnboarding/context.d.ts +5 -5
  84. package/dist/flows/ContractorOnboarding/hooks.d.ts +5 -5
  85. package/dist/flows/ContractorOnboarding/hooks.js +1 -1
  86. package/dist/flows/ContractorOnboarding/index.d.ts +5 -5
  87. package/dist/flows/ContractorOnboarding/index.js +1 -1
  88. package/dist/flows/ContractorOnboarding/types.d.ts +5 -5
  89. package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +3 -3
  90. package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
  91. package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +3 -3
  92. package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
  93. package/dist/flows/CostCalculator/CostCalculatorResetButton.js +1 -1
  94. package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +2 -2
  95. package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +2 -2
  96. package/dist/flows/CostCalculator/api.d.ts +2 -2
  97. package/dist/flows/CostCalculator/components/SalaryField.d.ts +2 -2
  98. package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
  99. package/dist/flows/CostCalculator/context.d.ts +3 -3
  100. package/dist/flows/CostCalculator/hooks.d.ts +3 -3
  101. package/dist/flows/CostCalculator/hooks.js +1 -1
  102. package/dist/flows/CostCalculator/index.d.ts +3 -3
  103. package/dist/flows/CostCalculator/index.js +1 -1
  104. package/dist/flows/CostCalculator/types.d.ts +2 -2
  105. package/dist/flows/CostCalculator/utils.d.ts +3 -3
  106. package/dist/flows/CostCalculator/utils.js +1 -1
  107. package/dist/flows/Onboarding/OnboardingFlow.d.ts +4 -4
  108. package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
  109. package/dist/flows/Onboarding/api.d.ts +4 -4
  110. package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +2 -2
  111. package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
  112. package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +4 -4
  113. package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
  114. package/dist/flows/Onboarding/components/BenefitsStep.d.ts +4 -4
  115. package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
  116. package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +4 -4
  117. package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
  118. package/dist/flows/Onboarding/components/OnboardingForm.d.ts +4 -4
  119. package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
  120. package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +3 -3
  121. package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
  122. package/dist/flows/Onboarding/components/OnboardingSubmit.js +1 -1
  123. package/dist/flows/Onboarding/components/ReviewStep.d.ts +4 -4
  124. package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +3 -3
  125. package/dist/flows/Onboarding/components/SaveDraftButton.js +1 -1
  126. package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +4 -4
  127. package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
  128. package/dist/flows/Onboarding/context.d.ts +4 -4
  129. package/dist/flows/Onboarding/hooks.d.ts +4 -4
  130. package/dist/flows/Onboarding/hooks.js +1 -1
  131. package/dist/flows/Onboarding/index.d.ts +4 -4
  132. package/dist/flows/Onboarding/index.js +1 -1
  133. package/dist/flows/Onboarding/types.d.ts +4 -4
  134. package/dist/flows/Onboarding/utils.d.ts +4 -4
  135. package/dist/flows/Termination/AdditionalDetailsForm.d.ts +4 -4
  136. package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
  137. package/dist/flows/Termination/EmployeeComunicationForm.d.ts +4 -4
  138. package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
  139. package/dist/flows/Termination/PaidTimeOffForm.d.ts +4 -4
  140. package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
  141. package/dist/flows/Termination/TerminationDetailsForm.d.ts +4 -4
  142. package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
  143. package/dist/flows/Termination/TerminationFlow.d.ts +4 -4
  144. package/dist/flows/Termination/TerminationFlow.js +1 -1
  145. package/dist/flows/Termination/TerminationForm.d.ts +4 -4
  146. package/dist/flows/Termination/TerminationForm.js +1 -1
  147. package/dist/flows/Termination/api.d.ts +5 -5
  148. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +6 -6
  149. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +6 -6
  150. package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +6 -6
  151. package/dist/flows/Termination/context.d.ts +4 -4
  152. package/dist/flows/Termination/hooks.d.ts +4 -4
  153. package/dist/flows/Termination/index.d.ts +6 -6
  154. package/dist/flows/Termination/index.js +1 -1
  155. package/dist/flows/Termination/json-schemas/schema.d.ts +4 -4
  156. package/dist/flows/Termination/types.d.ts +4 -4
  157. package/dist/flows/Termination/utils.d.ts +4 -4
  158. package/dist/flows/types.d.ts +2 -2
  159. package/dist/index.d.ts +8 -8
  160. package/dist/index.js +1 -1
  161. package/dist/{mutations-_Z53Nfn7.d.ts → mutations-9qiDR92y.d.ts} +1 -1
  162. package/dist/{remoteFlows-DnerqDfR.d.ts → remoteFlows-MePlSSWv.d.ts} +30 -4
  163. package/dist/{types-B8fU-HTM.d.ts → types-BFDVSvVP.d.ts} +3 -3
  164. package/dist/{types-D_HXGY21.d.ts → types-BTxMhXje.d.ts} +4 -4
  165. package/dist/{types-BkENRs0g.d.ts → types-DDcdRWu_.d.ts} +1 -1
  166. package/dist/{types-BZAPCDYn.d.ts → types-VZNnRHGB.d.ts} +2 -2
  167. package/dist/{types.gen-CSWntXSp.d.ts → types.gen-UyEyxhzQ.d.ts} +1 -1
  168. package/package.json +4 -4
  169. package/dist/chunk-BFMUZP2O.js +0 -2
  170. package/dist/chunk-BFMUZP2O.js.map +0 -1
  171. package/dist/chunk-BGNCB335.js +0 -2
  172. package/dist/chunk-K3PHODKN.js +0 -2
  173. package/dist/chunk-K3PHODKN.js.map +0 -1
  174. package/dist/chunk-ND4FAALX.js +0 -2
  175. package/dist/chunk-ND4FAALX.js.map +0 -1
  176. package/dist/chunk-QH4EGUER.js +0 -2
  177. package/dist/chunk-QH4EGUER.js.map +0 -1
  178. package/dist/chunk-QP5V46OP.js +0 -2
  179. package/dist/chunk-RPTB2HUM.js +0 -2
  180. package/dist/chunk-RPTB2HUM.js.map +0 -1
  181. package/dist/chunk-U2AUFXNA.js +0 -2
  182. package/dist/chunk-U2AUFXNA.js.map +0 -1
  183. package/dist/chunk-VC66HET6.js.map +0 -1
  184. package/dist/chunk-YWZI5KJN.js +0 -2
  185. package/dist/chunk-YWZI5KJN.js.map +0 -1
  186. package/dist/chunk-ZKINPHYU.js +0 -2
  187. package/dist/chunk-ZKINPHYU.js.map +0 -1
  188. /package/dist/{chunk-SWI3KDSQ.js.map → chunk-4P5BLP5U.js.map} +0 -0
  189. /package/dist/{chunk-4Y3PH3Z7.js.map → chunk-5VPMZXGU.js.map} +0 -0
  190. /package/dist/{chunk-SGTUQ7OX.js.map → chunk-7WTIUK53.js.map} +0 -0
  191. /package/dist/{chunk-LPAKW2MR.js.map → chunk-7YY7DH4I.js.map} +0 -0
  192. /package/dist/{chunk-R36C4F5D.js.map → chunk-ALRODBM2.js.map} +0 -0
  193. /package/dist/{chunk-GTP4CHJD.js.map → chunk-ASSO5FYG.js.map} +0 -0
  194. /package/dist/{chunk-U2PJLKXO.js.map → chunk-BGWVXKFX.js.map} +0 -0
  195. /package/dist/{chunk-WDH34P74.js.map → chunk-BP4PHE44.js.map} +0 -0
  196. /package/dist/{chunk-UIBYZKGO.js.map → chunk-COKMRJQ7.js.map} +0 -0
  197. /package/dist/{chunk-S5PJSCJF.js.map → chunk-D3YUACHO.js.map} +0 -0
  198. /package/dist/{chunk-PA7PBUX6.js.map → chunk-DS5MV4BA.js.map} +0 -0
  199. /package/dist/{chunk-4C7Y76IS.js.map → chunk-F53TRJ4K.js.map} +0 -0
  200. /package/dist/{chunk-U2DDV6SE.js.map → chunk-GT6DVQEB.js.map} +0 -0
  201. /package/dist/{chunk-J667C5G4.js.map → chunk-KDMBZNAE.js.map} +0 -0
  202. /package/dist/{chunk-2D5I4RIF.js.map → chunk-MUILMUKC.js.map} +0 -0
  203. /package/dist/{chunk-3TVKDZSP.js.map → chunk-NCWPOV3B.js.map} +0 -0
  204. /package/dist/{chunk-PHWZOEDE.js.map → chunk-O6YXA5AM.js.map} +0 -0
  205. /package/dist/{chunk-LXLQKYFW.js.map → chunk-OL7SFTJV.js.map} +0 -0
  206. /package/dist/{chunk-WK5QE22Y.js.map → chunk-PTHW7GI4.js.map} +0 -0
  207. /package/dist/{chunk-7NCYKLRU.js.map → chunk-QIZEGFKJ.js.map} +0 -0
  208. /package/dist/{chunk-3XOY4F3D.js.map → chunk-RNULWNWR.js.map} +0 -0
  209. /package/dist/{chunk-ITIZBBRW.js.map → chunk-T4KJKYPC.js.map} +0 -0
  210. /package/dist/{chunk-2LR4VZUK.js.map → chunk-TVPY6KPQ.js.map} +0 -0
  211. /package/dist/{chunk-S7X4AB7C.js.map → chunk-UVA4PFNM.js.map} +0 -0
  212. /package/dist/{chunk-AW7XS7Z5.js.map → chunk-VUY7ZZAD.js.map} +0 -0
  213. /package/dist/{chunk-XDYSADZN.js.map → chunk-WUZ5OZ42.js.map} +0 -0
  214. /package/dist/{chunk-I4S5X7NU.js.map → chunk-XEUZL7O2.js.map} +0 -0
  215. /package/dist/{chunk-2DYRPCHC.js.map → chunk-Z47XN6ZT.js.map} +0 -0
  216. /package/dist/{chunk-EOV62SUU.js.map → chunk-ZSX2O4ZJ.js.map} +0 -0
@@ -0,0 +1,2 @@
1
+ import{b as Q}from"./chunk-7FMR3EIX.js";import{a as H}from"./chunk-KGKDSOER.js";import{a as ye,b as Ve,c as ze,d as Ge,e as Ue,f as Je,g as qe,h as Ze,i as Ke,j as Ye,l as Xe,m as ve,n as Qe,o as xe,p as Se,r as be,t as je,u as eo,v as oo}from"./chunk-ZIN2OWTH.js";import{b as x}from"./chunk-KQPDXXG3.js";import{a as Ce,b as B}from"./chunk-LJGCFFAT.js";import{a as re,b as ne,c as v,d as Le,e as He,f as Be,g as Oe,h as b,i as P,j as k,k as N,l as D,m as w}from"./chunk-66N57DKF.js";import{g as Ae}from"./chunk-2SO4LW7V.js";import{a as y,e as ae}from"./chunk-L3Z2G32A.js";import{a as t}from"./chunk-P37U34EQ.js";import{Fragment as Gt,useEffect as Ut,useRef as tt}from"react";import{Fragment as it,jsx as A,jsxs as ie}from"react/jsx-runtime";function le({name:e,defaultValue:o,description:r,label:n,onChange:s,multiple:i,options:m,component:a,...d}){let{components:u}=x(),{control:l}=v(),f=t((p,h,g)=>{if(i&&g){let c=p.value?[...p.value]:[];h?c.includes(g)||p.onChange([...c,g]):p.onChange(c.filter(_=>_!==g))}else p.onChange(h)},"handleCheckboxChange");return A(b,{control:l,name:e,defaultValue:o,render:({field:p,fieldState:h})=>{let g=a||u?.checkbox;if(g){let c={name:e,description:r,label:n,defaultValue:o,multiple:i,options:m,...d};return A(g,{field:{...p,onChange:t((_,S)=>{f(p,_.target.checked,S),s?.(_.target.checked===!0,S)},"onChange")},fieldState:h,fieldData:c})}return ie(P,{"data-field":e,className:y(`RemoteFlows__CheckBoxField__Item__${e}`),children:[A(N,{children:ie(it,{children:[m&&i?A(k,{children:n}):null,m&&i?m.map(c=>ie("div",{className:"flex space-x-2",children:[A(ye,{id:c.value,onCheckedChange:_=>{f(p,_===!0,c.value),s?.(_===!0,c.value)},checked:p.value?.includes(c.value),className:"RemoteFlows__CheckBox__Input"}),A(k,{htmlFor:c.value,className:"mb-0 RemoteFlows__CheckBox__Label",children:c.label})]},c.value)):ie("div",{className:"flex space-x-2",children:[A(ye,{id:e,onCheckedChange:c=>{f(p,c===!0,e),s?.(c===!0,e)},checked:p.value,className:"RemoteFlows__CheckBox__Input"}),A(k,{htmlFor:e,className:"mb-0 RemoteFlows__CheckBox__Label",children:n})]})]})}),r&&A(D,{children:r}),h.error&&A(w,{})]})}})}t(le,"CheckBoxField");import{CalendarIcon as ct}from"lucide-react";import{format as no}from"date-fns";import*as O from"@radix-ui/react-popover";import{PopoverClose as to}from"@radix-ui/react-popover";import{jsx as se}from"react/jsx-runtime";function me({...e}){return se(O.Root,{"data-slot":"popover",...e})}t(me,"Popover");function de({...e}){return se(O.Trigger,{"data-slot":"popover-trigger",...e})}t(de,"PopoverTrigger");function ce({className:e,align:o="center",sideOffset:r=4,...n}){return se(O.Portal,{children:se(O.Content,{"data-slot":"popover-content",align:o,sideOffset:r,className:y("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),...n})})}t(ce,"PopoverContent");import{ChevronLeft as lt,ChevronRight as st}from"lucide-react";import{DayPicker as mt}from"react-day-picker";import{jsx as ke}from"react/jsx-runtime";function ro({className:e,classNames:o,showOutsideDays:r=!0,...n}){return ke(mt,{showOutsideDays:r,className:y("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:y(Ce({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:y("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.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:y(Ce({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",...o},components:{IconLeft:t(({className:s,...i})=>ke(lt,{className:y("size-4",s),...i}),"IconLeft"),IconRight:t(({className:s,...i})=>ke(st,{className:y("size-4",s),...i}),"IconRight")},...n})}t(ro,"Calendar");import{jsx as dt}from"react/jsx-runtime";function pe({helpCenter:e}){return e?dt(Q,{zendeskId:e.id,children:e.callToAction}):null}t(pe,"HelpCenter");import{Fragment as pt,jsx as E,jsxs as ue}from"react/jsx-runtime";function ao({field:e,fieldData:o,fieldState:r}){let{name:n,label:s,description:i,minDate:m,maxDate:a}=o,d=m?new Date(m):void 0,u=a?new Date(a):void 0;return ue(P,{"data-field":n,className:`flex flex-col RemoteFlows__DatePickerField__Item__${n}`,children:[E(k,{className:"RemoteFlows__DatePickerField__Label",children:s}),ue(me,{children:[E(de,{asChild:!0,children:E(N,{children:E("div",{children:ue(B,{type:"button",variant:"outline",className:y("w-full pl-3 text-left font-normal",!e.value&&"text-muted-foreground"),"data-testid":`date-picker-button-${n}`,children:[e.value&&E(pt,{children:no(e.value,"yyyy-MM-dd")}),E(ct,{className:"ml-auto h-4 w-4 opacity-50"})]})})})}),E(ce,{className:"w-auto p-0 RemoteFlows__DatepickerField__PopoverContent",align:"start",children:E(ro,{mode:"single",className:"RemoteFlows__DatepickerField__Calendar",selected:e.value?new Date(e.value):void 0,onSelect:l=>{e.onChange(l?no(l,"yyyy-MM-dd"):null)},defaultMonth:d,components:{DayContent:t(l=>E(to,{children:l.date.getDate()}),"DayContent")},disabled:l=>!!(d&&l<d||u&&l>u)})})]}),i?ue(D,{children:[i," ",E(pe,{helpCenter:o.meta?.helpCenter})]}):null,r.error&&E(w,{className:"RemoteFlows__DatePickerField__Error"})]})}t(ao,"DatePickerFieldDefault");import{jsx as io}from"react/jsx-runtime";function lo({description:e,label:o,name:r,minDate:n,maxDate:s,onChange:i,component:m,...a}){let{components:d}=x(),{control:u}=v(),l;a.meta?.mot&&typeof a.meta.mot=="number"?l=Ae(a.meta.mot):n&&(l=new Date(`${n}T00:00:00`));let f;return s&&(f=new Date(`${s}T23:59:59`)),io(b,{control:u,name:r,render:({field:p,fieldState:h})=>{let c=m||d?.date||ao,_={description:e,label:o,name:r,onChange:i,...l&&{minDate:l.toISOString()},...f&&{maxDate:f.toISOString()},...a};return io(c,{field:{...p,onChange:t(S=>{p.onChange(S),i?.(S)},"onChange")},fieldState:h,fieldData:_})}})}t(lo,"DatePickerField");import{jsx as G,jsxs as ut}from"react/jsx-runtime";function so({field:e,fieldState:o,fieldData:r}){let{name:n,label:s,description:i,multiple:m,accept:a}=r;return ut(P,{"data-field":n,className:`RemoteFlows__FileUpload__Item__${n}`,children:[G(k,{className:"RemoteFlows__FileUpload__Label",children:s}),G(N,{children:G(Ve,{onChange:e.onChange,multiple:m,className:y("RemoteFlows__FileUpload__Input"),accept:a,files:e.value})}),i&&G("div",{className:"flex items-center justify-between",children:G(D,{className:"RemoteFlows__FileUpload__Description",children:i})}),o.error&&G(w,{className:"RemoteFlows__FileUpload__Error"})]})}t(so,"FileUploadFieldDefault");import{jsx as mo}from"react/jsx-runtime";var ft=t((e,o)=>{if(!o)return null;for(let r of e)if(r.size>o){let n=Math.round(o/1048576),s=Math.round(r.size/(1024*1024));return`File "${r.name}" exceeds maximum size of ${n}MB (file is ${s}MB)`}return null},"validateFileSize");function co({name:e,description:o,label:r,multiple:n,onChange:s,component:i,accept:m,maxSize:a,...d}){let{components:u}=x(),{control:l,setError:f,clearErrors:p}=v(),h=t(async(g,c)=>{let _=ft(g,a);if(_){f(e,{message:_});return}p(e),c.onChange(g),s?.(g)},"handleOnChange");return mo(b,{control:l,name:e,render:({field:g,fieldState:c})=>{let S=i||u?.file||so,R={name:e,description:o,label:r,multiple:n,accept:m,maxFileSize:a,...d};return mo(S,{field:{...g,value:g.value,onChange:t(async z=>h(z,g),"onChange")},fieldState:c,fieldData:R})}})}t(co,"FileUploadField");import{jsx as Ft}from"react/jsx-runtime";function po({field:e,fieldData:o}){return Ft(H,{type:"text",inputMode:"decimal",pattern:"^[0-9.]*$",...e,...o})}t(po,"NumberFieldDefault");import{jsx as uo}from"react/jsx-runtime";function fe(e){let{components:o}=x(),{control:r}=v(),s=e.component||o?.number||po;return uo(b,{control:r,name:e.name,render:({field:i,fieldState:m})=>uo(s,{field:{...i,onChange:t(a=>{i.onChange(a),e.onChange?.(a)},"onChange")},fieldState:m,fieldData:e})})}t(fe,"NumberField");import{Fragment as gt}from"react";import{jsx as W,jsxs as Pe}from"react/jsx-runtime";var fo=t(({field:e,fieldData:o,fieldState:r})=>{let{name:n,label:s,description:i,options:m}=o;return W("fieldset",{className:y("space-y-3",`RemoteFlows__RadioGroupField__Item__${n}`),"data-field":n,children:Pe(P,{className:y("space-y-3",`RemoteFlows__RadioGroupField__Item__${n}`),"data-field":n,children:[W("legend",{children:s}),W(N,{children:W(ze,{"aria-label":s||n,onValueChange:a=>{e.onChange(a)},value:e.value,className:"flex flex-col space-y-3",children:m?.map(a=>W(gt,{children:Pe(P,{"data-field":n,className:"flex items-start space-x-3 space-y-0 gap-0 RemoteFlows__RadioField__Item",children:[W(N,{children:W(Ge,{value:a.value,className:"RemoteFlows__RadioField__Input",disabled:a.disabled})}),Pe("div",{children:[W(k,{className:"font-normal mb-0 RemoteFlows__RadioField__Label",children:a.label}),a.description&&W(D,{className:"mt-2",children:a.description})]})]})},a.value))})}),i&&W(D,{children:i}),r.error&&W(w,{})]})})},"RadioGroupFieldDefault");import{jsx as Fo}from"react/jsx-runtime";function go({name:e,defaultValue:o,description:r,label:n,options:s,onChange:i,component:m,...a}){let{components:d}=x(),{control:u}=v();return Fo(b,{control:u,name:e,defaultValue:o,render:({field:l,fieldState:f})=>{let h=m||d?.radio||fo,g={name:e,defaultValue:o,description:r,label:n,options:s,...a};return Fo(h,{field:{...l,onChange:t(c=>{l.onChange(c),i?.(c)},"onChange")},fieldState:f,fieldData:g})}})}t(go,"RadioGroupField");import{jsx as L,jsxs as ho}from"react/jsx-runtime";function _o({field:e,fieldState:o,fieldData:r}){let{name:n,label:s,description:i,options:m}=r;return ho(P,{"data-field":n,className:`RemoteFlows__SelectField__Item__${n}`,children:[L(k,{className:"RemoteFlows__SelectField__Label",children:s}),L(N,{children:L("div",{className:"relative",children:ho(Ue,{value:e.value||"",onValueChange:a=>{e.onChange(a)},children:[L(Ze,{className:"RemoteFlows__SelectField__Trigger","aria-invalid":!!o.error,"aria-label":s,children:L("span",{className:"absolute",children:L(qe,{placeholder:s})})}),L(Ke,{className:"RemoteFlows__SelectField__Content",children:L(Je,{className:"RemoteFlows__SelectField__Group",children:m?.map(a=>L(Ye,{value:a.value,className:"RemoteFlows__SelectField__SelectItem",disabled:a.disabled,children:a.label},a.value))})})]})})}),i&&L(D,{children:i}),o.error&&L(w,{})]})}t(_o,"SelectFieldDefault");import{jsx as yo}from"react/jsx-runtime";function Co({label:e,name:o,options:r,defaultValue:n,description:s,onChange:i,component:m,...a}){let{control:d}=v(),{components:u}=x();return yo(b,{defaultValue:n,control:d,name:o,render:({field:l,fieldState:f})=>{let h=m||u?.select||_o,g={label:e,name:o,options:r,defaultValue:n,description:s,onChange:i,...a};return yo(h,{field:{...l,onChange:t(c=>{let _=a.jsonType==="number"?Number(c):c;l.onChange(_),i?.(_)},"onChange")},fieldState:f,fieldData:g})}})}t(Co,"SelectField");import{useEffect as xt,useState as St}from"react";import{Fragment as ht,useState as _t}from"react";import{Check as yt,ChevronDownIcon as Ct,X as vt}from"lucide-react";import{Command as U}from"cmdk";import{SearchIcon as On}from"lucide-react";import{jsx as J,jsxs as Un}from"react/jsx-runtime";function vo({className:e,...o}){return J(U,{"data-slot":"command",className:y("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",e),...o})}t(vo,"Command");function xo({className:e,...o}){return J(U.List,{"data-slot":"command-list",className:y("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",e),...o})}t(xo,"CommandList");function So({...e}){return J(U.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...e})}t(So,"CommandEmpty");function bo({className:e,...o}){return J(U.Group,{"data-slot":"command-group",className:y("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),...o})}t(bo,"CommandGroup");function ko({className:e,...o}){return J(U.Separator,{"data-slot":"command-separator",className:y("bg-border -mx-1 h-px",e),...o})}t(ko,"CommandSeparator");function Po({className:e,...o}){return J(U.Item,{"data-slot":"command-item",className:y("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),...o})}t(Po,"CommandItem");import{jsx as $,jsxs as q}from"react/jsx-runtime";function Fe({options:e,selected:o,onChange:r,placeholder:n,...s}){let[i,m]=_t(!1),a=t(l=>{r(o.filter(f=>f.value!==l.value))},"handleUnselect"),d=e.some(l=>l.category),u=e.reduce((l,f)=>{let p=f.category||"Uncategorized";return l[p]||(l[p]=[]),l[p].push(f),l},{});return q(me,{open:i,onOpenChange:m,...s,children:[$(de,{children:q(B,{variant:"outline",role:"combobox","aria-expanded":i,className:"w-full justify-between font-normal",type:"button",children:[$("div",{className:"flex gap-1 flex-wrap overflow-x-auto max-h-[2.5rem] items-center",children:o.length>0?o.map(l=>q(Xe,{variant:"secondary",className:"mr-1 mb-1",children:[l.label,$("div",{role:"button",tabIndex:0,"aria-label":`remove ${l.label}`,className:"ml-1 ring-offset-background rounded-full outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 cursor-pointer",onKeyDown:f=>{f.key==="Enter"&&a(l)},onMouseDown:f=>{f.preventDefault(),f.stopPropagation()},onClick:()=>a(l),children:$(vt,{className:"h-3 w-3 text-muted-foreground hover:text-foreground"})})]},l.label)):$("span",{className:"text-foreground",children:n})}),$(Ct,{className:"size-4"})]})}),$(ce,{align:"start",className:"w-full p-0",children:$(vo,{children:q(xo,{children:[$(So,{children:"No item found."}),Object.entries(u).map(([l,f],p)=>q(ht,{children:[p>0&&$(ko,{}),$(bo,{heading:d?l:void 0,children:f.map(h=>{let g=o.some(c=>c.value===h.value);return q(Po,{onSelect:()=>{r(g?o.filter(c=>c.value!==h.value):[...o,h])},children:[$(yt,{className:y("mr-2 h-4 w-4",g?"opacity-100":"opacity-0")}),h.label]},h.label)})})]},l))]})})})]})}t(Fe,"MultiSelect");import{jsx as j,jsxs as No}from"react/jsx-runtime";function Do({field:e,fieldState:o,fieldData:r}){let[n,s]=St([]),i=t(a=>{let d=a.map(({value:u})=>u);e.onChange(d),s(a)},"handleChange");xt(()=>{e.value&&r.options&&s(e.value.map(a=>r?.options?.find(d=>d.value===a)))},[e.value,r.options]);let m=[...Object.entries(r.$meta?.regions||{}).map(([a,d])=>({value:d,label:a,category:"Regions"})),...Object.entries(r.$meta?.subregions||{}).map(([a,d])=>({value:d,label:a,category:"Subregions"})),...r.options?.map(a=>({...a,value:a.value,label:a.label,category:"Countries"}))||[]];return No(P,{"data-field":e.name,className:`RemoteFlows__CountryField__Item__${e.name}`,children:[j(k,{className:"RemoteFlows__CountryField__Label",children:r.label}),j(N,{children:j(Fe,{options:m,selected:n,onChange:i})}),r.description&&No(D,{children:[r.description," ",j(pe,{helpCenter:r.meta?.helpCenter})]}),o.error&&j(w,{})]})}t(Do,"CountryFieldDefault");import{jsx as wo}from"react/jsx-runtime";function Ro({label:e,name:o,options:r,defaultValue:n,description:s,onChange:i,$meta:m,component:a,...d}){let{control:u}=v(),{components:l}=x();return wo(b,{defaultValue:n,control:u,name:o,render:({field:f,fieldState:p})=>{let g=a||l?.countries||Do,c={label:e,name:o,options:r,defaultValue:n,description:s,onChange:i,$meta:m,...d};return wo(g,{field:{...f,onChange:t(_=>{f.onChange(_),i?.(_)},"onChange")},fieldState:p,fieldData:c})}})}t(Ro,"CountryField");import*as To from"react";import{jsx as bt}from"react/jsx-runtime";var Ne=To.forwardRef(({className:e,...o},r)=>bt("textarea",{className:y("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:r,...o}));Ne.displayName="Textarea";import{jsx as ee,jsxs as De}from"react/jsx-runtime";function $o({field:e,fieldState:o,fieldData:r}){let{name:n,label:s,description:i,maxLength:m}=r,a=e.value?.length??0;return De(P,{"data-field":n,className:`RemoteFlows__TextArea__Item__${n}`,children:[ee(k,{className:"RemoteFlows__TextArea__Label",children:s}),ee(N,{children:ee(Ne,{...e,value:e.value??"",onChange:d=>{e.onChange(d)},className:y(o.error&&"border-red-500 focus-visible:ring-red-500","RemoteFlows__TextArea__Input"),placeholder:s})}),(i||m)&&De("div",{className:"flex items-center justify-between",children:[i&&ee(D,{className:"RemoteFlows__TextArea__Description",children:i}),m&&De("span",{className:"text-sm ml-auto RemoteFlows__TextArea__MaxLength",children:[a,"/",m]})]}),o.error&&ee(w,{className:"RemoteFlows__TextArea__Error"})]})}t($o,"TextAreaFieldDefault");import{jsx as Mo}from"react/jsx-runtime";function Io({name:e,description:o,label:r,onChange:n,maxLength:s,component:i,...m}){let{components:a}=x(),{control:d}=v();return Mo(b,{control:d,name:e,render:({field:u,fieldState:l})=>{let p=i||a?.textarea||$o,h={name:e,description:o,label:r,maxLength:s,...m};return Mo(p,{field:{...u,onChange:t(g=>{u.onChange(g),n?.(g)},"onChange")},fieldState:l,fieldData:h})}})}t(Io,"TextAreaField");import{jsx as kt}from"react/jsx-runtime";function Eo({field:e,fieldData:o}){return kt(H,{name:e.name,...o,type:"email"})}t(Eo,"EmailFieldDefault");import{jsx as Wo}from"react/jsx-runtime";function Lo(e){let{components:o}=x(),{control:r}=v(),s=e.component||o?.email||Eo;return Wo(b,{control:r,name:e.name,render:({field:i,fieldState:m})=>Wo(s,{field:{...i,onChange:t(a=>{i.onChange(a),e.onChange?.(a)},"onChange")},fieldState:m,fieldData:e})})}t(Lo,"EmailField");import{jsx as Ho}from"react/jsx-runtime";function Bo(e){let{control:o}=v();return Ho(b,{control:o,name:e.name,render:({field:r})=>Ho("input",{...r,type:"hidden"})})}t(Bo,"HiddenField");import $t,{useEffect as Mt,useState as Zo}from"react";var Ao=t((e,o,r)=>{if(e&&"reportValidity"in e){let n=re(r,o);e.setCustomValidity(n&&n.message||""),e.reportValidity()}},"r"),we=t((e,o)=>{for(let r in o.fields){let n=o.fields[r];n&&n.ref&&"reportValidity"in n.ref?Ao(n.ref,r,e):n&&n.refs&&n.refs.forEach(s=>Ao(s,r,e))}},"o"),Vo=t((e,o)=>{o.shouldUseNativeValidation&&we(e,o);let r={};for(let n in e){let s=re(o.fields,n),i=Object.assign(e[n]||{},{ref:s&&s.ref});if(Pt(o.names||Object.keys(e),n)){let m=Object.assign({},re(r,n));ne(m,"root",i),ne(r,n,m)}else ne(r,n,i)}return r},"s"),Pt=t((e,o)=>{let r=Oo(o);return e.some(n=>Oo(n).match(`^${r}\\.\\d+`))},"i");function Oo(e){return e.replace(/\]|\[/g,"")}t(Oo,"n");function zo(e,o,r){return o===void 0&&(o={}),r===void 0&&(r={}),function(n,s,i){try{return Promise.resolve((function(m,a){try{var d=(o.context&&process.env.NODE_ENV==="development"&&console.warn("You should not used the yup options context. Please, use the 'useForm' context object instead"),Promise.resolve(e[r.mode==="sync"?"validateSync":"validate"](n,Object.assign({abortEarly:!1},o,{context:s}))).then(function(u){return i.shouldUseNativeValidation&&we({},i),{values:r.raw?Object.assign({},n):u,errors:{}}}))}catch(u){return a(u)}return d&&d.then?d.then(void 0,a):d})(0,function(m){if(!m.inner)throw m;return{values:{},errors:Vo((a=m,d=!i.shouldUseNativeValidation&&i.criteriaMode==="all",(a.inner||[]).reduce(function(u,l){if(u[l.path]||(u[l.path]={message:l.message,type:l.type}),d){var f=u[l.path].types,p=f&&f[l.type];u[l.path]=Le(l.path,d,u,l.type,p?[].concat(p,l.message):l.message)}return u},{})),i)};var a,d}))}catch(m){return Promise.reject(m)}}}t(zo,"o");import*as T from"yup";import Go from"lodash.groupby";import Z from"lodash.capitalize";var Uo=60,ge=["monday","tuesday","wednesday","thursday","friday","saturday","sunday"];function Nt(e){if(e<60)return`${e}m`;let o=Math.floor(e/Uo),r=e%Uo;return r>0?`${o}h${r}m`:`${o}h`}t(Nt,"convertBreakDurationToHours");function Jo(e){let o=e.reduce((r,n)=>n.hours+r,0);return Number(o.toFixed(2))}t(Jo,"calculateTotalWorkHours");function Dt(e,o){let r=o.map(({day:i})=>i.toLowerCase()),n=r.indexOf(e),s=null;for(;n<r.length&&!s;){let i=r[n],m=r[n+1],a=ge.indexOf(i)+1;ge[a]===m||(s=i),n+=1}return s}t(Dt,"findLastConsecutiveDay");function wt(e){return e.start_time&&e.end_time&&(typeof e.hours=="number"?e.hours:Number.parseInt(e.hours))>0}t(wt,"shouldSummarizeSchedule");function Rt(e){return Number.parseInt(e.break_duration_minutes)>0}t(Rt,"shouldSummarizeBreaks");function qo(e){let o=e.filter(wt),r=Go(o,a=>`${a.start_time}|${a.end_time}`),n=e.filter(Rt),s=Go(n,"break_duration_minutes"),i=Object.keys(r).map(a=>{let d=r[a],u=d[0].day,[l,f]=a.split("|"),p=`from <span>${l.replace(":","h")}</span> to <span>${f.replace(":","h")}</span>`,h=Dt(u,d),c=(h?d.findIndex(_=>_.day===h):-1)===d.length-1;return d.length===1?`${Z(u)}, ${p}`:!c||!h?d.reduce((_,S,R)=>{let z=Z(S.day);return R===d.length-1?`${_}and ${z}, ${p}`:`${_}<span>${z}</span>, `},""):`<span>${Z(u)}</span> to <span>${Z(h)}</span>, ${p}`}),m=Object.keys(s).reverse().map((a,d)=>{let u=d===0,l=s[a],f=Nt(parseInt(a,10));if(Object.keys(s).length===1)return`With ${f} daily breaks`;if(l.length===1){let p=`${f} break on ${Z(l[0].day)}.`;return u?`With ${p}`:p}return l.reduce((p,h,g)=>{let c=Z(h.day);return g===0?`${p} ${c}`:g===l.length-1?`${p}, and ${c}.`:`${p}, ${c}`},u?`With ${f} break on`:`${f} break on`)});return{workHoursSummary:i,breakSummary:m}}t(qo,"buildWorkScheduleSummary");function Re(e){let{checked:o,start_time:r,end_time:n,break_duration_minutes:s}=e;if(!o)return 0;let[i,m]=r.split(":").map(Number),[a,d]=n.split(":").map(Number),u=i*60+m,p=(a*60+d-u-Number.parseInt(s||"0"))/60;return p===Math.floor(p)?p:Number(p.toFixed(2))}t(Re,"calculateHours");var Tt={monday:"Mon",tuesday:"Tue",wednesday:"Wed",thursday:"Thu",friday:"Fri",saturday:"Sat",sunday:"Sun"};function he(e){return Tt[e]}t(he,"getShortWeekday");import{jsx as C,jsxs as M}from"react/jsx-runtime";var It=T.object({day:T.string().required(),checked:T.boolean().required(),start_time:T.string().matches(/^([01]\d|2[0-3]):([0-5]\d)$/,"Invalid time format (HH:mm)").when("checked",{is:!0,then:t(e=>e.required("Required"),"then"),otherwise:t(e=>e.optional().nullable(),"otherwise")}),end_time:T.string().matches(/^([01]\d|2[0-3]):([0-5]\d)$/,"Invalid time format (HH:mm)").when("checked",{is:!0,then:t(e=>e.required("Required"),"then"),otherwise:t(e=>e.optional().nullable(),"otherwise")}),hours:T.number().default(0),break_duration_minutes:T.string().default("0")}),Et=T.object({schedule:T.array(It)});function Wt({defaultSchedule:e,onSubmit:o}){let[r,n]=Zo(!1),s=ge.map(c=>{let _=e.find(S=>S.day.toLowerCase()===he(c).toLowerCase()||S.day.toLowerCase()===c.toLowerCase());return _?{..._,day:he(c),checked:!0}:{...e[0],checked:!1,day:he(c)}}),i=Be({defaultValues:{schedule:s},resolver:zo(Et)}),{handleSubmit:m,watch:a,reset:d,control:u,formState:l}=i,{fields:f}=He({name:"schedule",control:u}),p=a("schedule");function h(c){let _=c.schedule.filter(({checked:S})=>S).map(S=>({...S,hours:Re(S)}));o(_),n(!1)}t(h,"handleSubmitWorkingHours");function g(){d(),n(!1)}return t(g,"handleCancel"),C("div",{className:"flex items-center justify-between",children:M(ve,{open:r,onOpenChange:n,children:[C(Qe,{asChild:!0,children:C(B,{variant:"link",className:"flex items-center p-0 RemoteFlows__WorkScheduleSelectionForm__Trigger",children:"Edit Schedule"})}),M(xe,{className:"max-w-5xl max-h-[90vh] overflow-y-auto px-8 py-4 RemoteFlows__WorkScheduleSelectionForm__Content",children:[C(Se,{children:C(be,{className:"RemoteFlows__WorkScheduleSelectionForm__Title",children:"Edit employee working hours"})}),C(Oe,{...i,children:M("form",{className:"space-y-4 RemoteFlows__WorkScheduleSelectionForm__Form",children:[M("div",{className:"rounded-lg",children:[C("p",{className:"text-gray-600 text-sm mb-4 RemoteFlows__WorkScheduleSelectionForm__Description",children:"The times displayed are in the employee's time zone in the 24-hour format."}),M("div",{className:"grid grid-cols-12 gap-4 text-sm font-medium text-gray-500 uppercase tracking-wide RemoteFlows__WorkScheduleSelectionForm__Header",children:[C("div",{className:"col-span-2"}),C("div",{className:"col-span-3 text-center",children:"START"}),C("div",{className:"col-span-1 text-center"}),C("div",{className:"col-span-3 text-center",children:"END"}),C("div",{className:"col-span-2 text-center",children:"HOURS"})]}),C("div",{className:"RemoteFlows__WorkScheduleSelectionForm__Rows",children:f.map((c,_)=>{let S=p[_],R=Re(S);return M($t.Fragment,{children:[M("div",{className:"grid grid-cols-12 gap-4 items-center py-2 RemoteFlows__WorkScheduleSelectionForm__Row-Hours",children:[C("div",{className:"col-span-2 flex items-center gap-3",children:C(le,{label:c.day,name:`schedule.${_}.checked`})}),C("div",{className:"col-span-3",children:C(H,{name:`schedule.${_}.start_time`,includeErrorMessage:!1})}),C("div",{className:"col-span-1 text-center text-gray-500",children:"to"}),C("div",{className:"col-span-3",children:C(H,{name:`schedule.${_}.end_time`,includeErrorMessage:!1})}),C("div",{className:"col-span-2 text-center text-gray-600",children:isNaN(R)?"-":`${R} hours`})]}),M("div",{className:"grid grid-cols-12 gap-4 items-center py-2 RemoteFlows__WorkScheduleSelectionForm__Row-Break",children:[C("div",{className:"col-span-2 text-gray-500",children:"Break"}),C("div",{className:"col-span-2",children:C(H,{name:`schedule.${_}.break_duration_minutes`,includeErrorMessage:!1})}),C("div",{className:"col-span-2 text-gray-500",children:"minutes"}),C("div",{className:"col-span-4"})]})]},c.id)})})]}),Object.keys(l.errors).length>0&&C("p",{className:"text-destructive text-sm mb-0",children:"Invalid time format (HH:mm)"}),M("div",{className:"flex gap-4 pt-4",children:[C(B,{type:"button",className:"reset-button",variant:"outline",onClick:g,children:"Cancel"}),C(B,{type:"button",className:"submit-button",onClick:m(h),children:"Save Schedule"})]})]})})]})]})})}t(Wt,"WorkScheduleSelectionForm");function Ko(e){let{components:o}=x(),{setValue:r,control:n,watch:s}=v(),i=s(e.name),[m,a]=Zo(i),{workHoursSummary:d,breakSummary:u}=qo(m),l=Jo(m);Mt(()=>{r(e.name,m)},[m,e.name,r]);function f(h){a(h)}t(f,"onSubmit");let p=e.component||o?.["work-schedule"];return p?C(b,{control:n,name:e.name,render:({field:h,fieldState:g})=>C(p,{field:{...h,onChange:t(c=>{h.onChange(c),e.onChange?.(c)},"onChange")},fieldState:g,fieldData:{...e,defaultFormattedValue:{workHoursSummary:d,breakSummary:u,totalWorkHours:l}}})}):M("div",{className:"flex flex-col gap-3 RemoteFlows__WorkScheduleField",children:[C("p",{className:"text-sm RemoteFlows__WorkScheduleField__Title",children:"Work hours"}),M("div",{className:"flex flex-col gap-1 RemoteFlows__WorkScheduleField__Summary",children:[C("p",{className:"text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__WorkHours",dangerouslySetInnerHTML:{__html:d.join(", ")}}),C("p",{className:"text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__Break",children:u.join()}),M("p",{className:"text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__Total",children:["Total of ",C("span",{children:l})," hours per week"]}),C(Wt,{defaultSchedule:m,onSubmit:f})]})]})}t(Ko,"WorkScheduleField");import{useEffect as Lt,useState as Ht}from"react";import{jsx as oe,jsxs as Bt}from"react/jsx-runtime";var Yo=t(({field:e,fieldState:o,fieldData:r})=>{let[n,s]=Ht([]),{name:i,label:m,description:a,options:d}=r,u=n||d?.filter(l=>e.value?.includes(l.value));return Lt(()=>{s(d?.filter(l=>e.value?.includes(l.value))||[])},[e.value,d]),Bt(P,{"data-field":i,className:`RemoteFlows__SelectField__Item__${i}`,children:[oe(k,{className:"RemoteFlows__SelectField__Label",children:m}),oe(N,{children:oe(Fe,{options:d||[],selected:u,onChange:l=>{let f=l.map(({value:p})=>p);e.onChange(f),s(l)}})}),a&&oe(D,{children:a}),o.error&&oe(w,{})]})},"MultiSelectFieldDefault");import{jsx as Xo}from"react/jsx-runtime";function Qo({label:e,name:o,options:r,defaultValue:n,description:s,onChange:i,component:m,...a}){let{control:d}=v(),{components:u}=x();return Xo(b,{defaultValue:n,control:d,name:o,render:({field:l,fieldState:f})=>{let h=m||u?.["multi-select"]||Yo,g={label:e,name:o,options:r,defaultValue:n,description:s,onChange:i,...a};return Xo(h,{field:{...l,onChange:t(c=>{l.onChange(c),i?.(c)},"onChange")},fieldState:f,fieldData:g})}})}t(Qo,"MultiSelectField");import{jsx as At}from"react/jsx-runtime";var jo=t(e=>At(fe,{maxLength:15,...e}),"MoneyField");var Te={checkbox:le,text:H,email:Lo,money:jo,select:Co,"multi-select":Qo,radio:go,number:fe,file:co,date:lo,textarea:Io,countries:Ro,hidden:Bo,"work-schedule":Ko};import{AlertCircle as Ot}from"lucide-react";import{jsx as $e,jsxs as Vt}from"react/jsx-runtime";function et({data:e}){let{title:o,description:r,severity:n}=e,i={warning:"warning",error:"destructive",info:"default",success:"warning"}[n]??"warning";return Vt(je,{variant:i,children:[$e(Ot,{className:"h-4 w-4"}),o&&$e(eo,{children:o}),r&&$e(oo,{dangerouslySetInnerHTML:{__html:r}})]})}t(et,"StatementDefault");import{jsx as zt}from"react/jsx-runtime";function ot({title:e,description:o,severity:r}){let{components:n}=x(),s=n?.statement??et;return zt(s,{data:{title:e,description:ae(o),severity:r}})}t(ot,"Statement");import{Fragment as qt,jsx as I,jsxs as V}from"react/jsx-runtime";var Jt=t(({isExpanded:e,onToggle:o,className:r,...n})=>I(B,{type:"button",className:y("RemoteFlows__Button RemoteFlows__FieldSetField__ToggleButton",r),variant:"default",onClick:o,...n,children:e?"Remove":"Define"}),"DefaultToggleButton");function rt({label:e,name:o,fields:r,description:n,components:s,statement:i,isFlatFieldset:m,extra:a,variant:d="outset",features:u,meta:l}){let{helpCenter:f}=l||{},{watch:p,setValue:h,trigger:g,formState:c}=v(),{components:_}=x(),S=u?.toggle?.stateField,R=S?p(S):u?.toggle?.defaultExpanded??!0,z=r.map(({name:F})=>`${o}.${F}`),te=p(z),Me=tt(te),K=tt(null),nt=t(()=>{S&&h(S,!R)},"toggleExpanded");Ut(()=>{let F=te,Y=Me.current,_e=c.isSubmitted||c.submitCount>0,We=!1;for(let X=0;X<F.length;X++)if(F[X]!==void 0&&Y[X]!==F[X]){We=!0;break}return We&&_e&&(K.current&&clearTimeout(K.current),K.current=setTimeout(()=>{g()},50)),Me.current=[...F],()=>{K.current&&clearTimeout(K.current)}},[te,g,c.isSubmitted,c.submitCount]);let at=_?.fieldsetToggle||Jt,Ie=`${o}-content`,Ee=`${o}-header`;return V("fieldset",{className:y("border-1 border-input p-4 rounded-xl","RemoteFlows__FieldSetField",`RemoteFlows__FieldSetField__${o}`),children:[I("legend",{className:y("text-sm font-semibold px-2",d==="inset"&&"hidden"),children:e}),f?.callToAction&&f?.id&&d==="outset"&&I(Q,{className:"RemoteFlows__FieldSetField__HelpCenterLink mb-3",zendeskId:f.id,children:f.callToAction}),d==="inset"&&V(qt,{children:[V("div",{className:"RemoteFlows__FieldSetField__Header",id:Ee,"data-state":R?"expanded":"collapsed","aria-expanded":R,children:[I("h3",{className:y("RemoteFlows__FieldSetField__Title"),children:e}),u?.toggle?.enabled&&I(at,{isExpanded:R,onToggle:nt,"aria-expanded":R,"aria-controls":Ie,"aria-label":`${R?"Hide":"Show"} ${e}`,className:y("RemoteFlows__FieldSetField__Toggle",u.toggle?.className),children:R?u.toggle.labels?.collapse??"Remove":u.toggle.labels?.expand??"Define"})]}),f?.callToAction&&f?.id&&I(Q,{className:"RemoteFlows__FieldSetField__HelpCenterLink mb-3",zendeskId:f.id,children:f.callToAction})]}),R&&V("div",{id:Ie,"aria-labelledby":Ee,role:"region",children:[n?I("div",{className:"mb-5 RemoteFlows__FieldSetField__Description",dangerouslySetInnerHTML:{__html:ae(n)}}):null,V("div",{className:"grid gap-4",children:[r.map(F=>{if(F.calculateDynamicProperties&&(F={...F,...F.calculateDynamicProperties(te,F)||{}}),F.isVisible===!1||F.deprecated)return null;if(F.inputType==="fieldset")return I(rt,{...F,name:`${m?F.name:`${o}.${F.name}`}`,components:s},`${m?F.name:`${o}.${F.name}`}`);if(F.inputType==="fieldset-flat")return I(rt,{...F,name:`${m?F.name:`${o}.${F.name}`}`,components:s,isFlatFieldset:!0},`${m?F.name:`${o}.${F.name}`}`);let Y=Te[F.inputType];if(F.Component){let{Component:_e}=F;return I(_e,{...F},F.name)}return Y?(F.inputType==="select"&&F.multiple&&(Y=Te["multi-select"]),V(Gt,{children:[I(Y,{...F,name:`${m?F.name:`${o}.${F.name}`}`,component:s?.[F.inputType]}),F.extra?F.extra:null]},`${m?F.name:`${o}.${F.name}`}`)):V("p",{className:"error",children:["Field type ",F.inputType," not supported"]})}),a||null,i?I(ot,{...i}):null]})]})]})}t(rt,"FieldSetField");export{Te as a,ot as b,rt as c};
2
+ //# sourceMappingURL=chunk-26DGUFCY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/form/fields/FieldSetField.tsx","../src/components/form/fields/CheckBoxField.tsx","../src/components/form/fields/default/DatePickerFieldDefault.tsx","../src/components/ui/popover.tsx","../src/components/ui/calendar.tsx","../src/components/shared/zendesk-drawer/HelpCenter.tsx","../src/components/form/fields/DatePickerField.tsx","../src/components/form/fields/default/FileUploadFieldDefault.tsx","../src/components/form/fields/FileUploadField.tsx","../src/components/form/fields/default/NumberFieldDefault.tsx","../src/components/form/fields/NumberField.tsx","../src/components/form/fields/default/RadioGroupFieldDefault.tsx","../src/components/form/fields/RadioGroupField.tsx","../src/components/form/fields/default/SelectFieldDefault.tsx","../src/components/form/fields/SelectField.tsx","../src/components/form/fields/default/CountryFieldDefault.tsx","../src/components/ui/multi-select.tsx","../src/components/ui/command.tsx","../src/components/form/fields/CountryField.tsx","../src/components/ui/textarea.tsx","../src/components/form/fields/default/TextAreaFieldDefault.tsx","../src/components/form/fields/TextAreaField.tsx","../src/components/form/fields/default/EmailFieldDefault.tsx","../src/components/form/fields/EmailField.tsx","../src/components/form/fields/HiddenField.tsx","../src/components/form/fields/WorkScheduleField.tsx","../node_modules/@hookform/resolvers/src/validateFieldsNatively.ts","../node_modules/@hookform/resolvers/src/toNestErrors.ts","../node_modules/@hookform/resolvers/yup/src/yup.ts","../src/components/form/fields/workScheduleUtils.ts","../src/components/form/fields/default/MultiSelectFieldDefault.tsx","../src/components/form/fields/MultiSelectField.tsx","../src/components/form/fields/MoneyField.tsx","../src/components/form/fields/baseFields.tsx","../src/components/form/fields/default/StatementDefault.tsx","../src/components/form/Statement.tsx"],"sourcesContent":["import { useFormContext } from 'react-hook-form';\nimport { Fragment, useEffect, useRef } from 'react';\nimport { baseFields } from '@/src/components/form/fields/baseFields';\nimport { cn, sanitizeHtml } from '@/src/lib/utils';\nimport {\n $TSFixMe,\n Components,\n FieldSetToggleComponentProps,\n} from '@/src/types/remoteFlows';\nimport { Statement } from '@/src/components/form/Statement';\nimport { useFormFields } from '@/src/context';\nimport { Button } from '@/src/components/ui/button';\nimport { ZendeskTriggerButton } from '@/src/components/shared/zendesk-drawer/ZendeskTriggerButton';\nimport { SupportedTypes } from './types';\nimport { StatementComponentProps } from '@/src/types/fields';\n\ntype FieldBase = {\n label: string;\n name: string;\n description: string;\n Component?: React.ComponentType<$TSFixMe>;\n inputType: SupportedTypes;\n multiple?: boolean;\n};\n\ntype FieldWithOptions = FieldBase & {\n type: 'select' | 'radio';\n options: Array<{ value: string; label: string }>;\n};\n\ntype FieldWithoutOptions = FieldBase & {\n type: Exclude<SupportedTypes, 'select' | 'radio'>;\n options?: never;\n};\n\ntype Field = FieldWithOptions | FieldWithoutOptions;\n\ntype FieldSetFeatures = {\n toggle?: {\n enabled: boolean;\n defaultExpanded?: boolean;\n stateField?: string;\n labels?: {\n expand: string;\n collapse: string;\n };\n className?: string;\n };\n};\n\nexport type FieldSetProps = {\n label: string;\n name: string;\n description: string;\n fields: Field[];\n features?: FieldSetFeatures;\n components: Components;\n statement?: StatementComponentProps['data'];\n isFlatFieldset: boolean;\n extra?: React.ReactNode;\n variant: 'outset' | 'inset';\n meta?: {\n helpCenter?: {\n callToAction: string;\n id: number;\n url: string;\n label: string;\n };\n } & Record<string, $TSFixMe>;\n};\n\nconst DefaultToggleButton = ({\n isExpanded,\n onToggle,\n className,\n ...props\n}: FieldSetToggleComponentProps) => (\n <Button\n type='button'\n className={cn(\n 'RemoteFlows__Button RemoteFlows__FieldSetField__ToggleButton',\n className,\n )}\n variant='default'\n onClick={onToggle}\n {...props}\n >\n {isExpanded ? 'Remove' : 'Define'}\n </Button>\n);\n\nexport function FieldSetField({\n label,\n name,\n fields,\n description,\n components,\n statement,\n isFlatFieldset,\n extra,\n variant = 'outset',\n features,\n meta,\n}: FieldSetProps) {\n const { helpCenter } = meta || {};\n const { watch, setValue, trigger, formState } = useFormContext();\n const { components: formComponents } = useFormFields();\n\n // Get expanded state from form state if stateField is provided\n const stateField = features?.toggle?.stateField;\n const isExpanded = stateField\n ? watch(stateField)\n : (features?.toggle?.defaultExpanded ?? true);\n\n const fieldNames = fields.map(\n ({ name: fieldName }) => `${name}.${fieldName}`,\n );\n const watchedValues = watch(fieldNames);\n const prevValuesRef = useRef<string[]>(watchedValues);\n const triggerTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n const toggleExpanded = () => {\n if (stateField) {\n setValue(stateField, !isExpanded);\n }\n };\n\n useEffect(() => {\n const currentValues = watchedValues;\n const previousValues = prevValuesRef.current;\n const hasBeenSubmitted = formState.isSubmitted || formState.submitCount > 0;\n\n // Check if any value has changed\n let hasChanged = false;\n for (let i = 0; i < currentValues.length; i++) {\n if (\n currentValues[i] !== undefined &&\n previousValues[i] !== currentValues[i]\n ) {\n hasChanged = true;\n // This is to prevent the form from triggering validation too many times\n break;\n }\n }\n // If changes detected and we haven't triggered yet, run trigger\n if (hasChanged && hasBeenSubmitted) {\n // We need to debounce the validation trigger so that tests don't freeze\n if (triggerTimeoutRef.current) {\n clearTimeout(triggerTimeoutRef.current);\n }\n triggerTimeoutRef.current = setTimeout(() => {\n trigger();\n }, 50);\n }\n\n prevValuesRef.current = [...currentValues];\n\n return () => {\n if (triggerTimeoutRef.current) {\n clearTimeout(triggerTimeoutRef.current);\n }\n };\n }, [watchedValues, trigger, formState.isSubmitted, formState.submitCount]);\n\n const ToggleComponent = formComponents?.fieldsetToggle || DefaultToggleButton;\n const contentId = `${name}-content`;\n const headerId = `${name}-header`;\n\n return (\n <fieldset\n className={cn(\n 'border-1 border-input p-4 rounded-xl',\n `RemoteFlows__FieldSetField`,\n `RemoteFlows__FieldSetField__${name}`,\n )}\n >\n <legend\n className={cn(\n 'text-sm font-semibold px-2',\n variant === 'inset' && 'hidden',\n )}\n >\n {label}\n </legend>\n {helpCenter?.callToAction && helpCenter?.id && variant === 'outset' && (\n <ZendeskTriggerButton\n className='RemoteFlows__FieldSetField__HelpCenterLink mb-3'\n zendeskId={helpCenter.id}\n >\n {helpCenter.callToAction}\n </ZendeskTriggerButton>\n )}\n {variant === 'inset' && (\n <>\n <div\n className='RemoteFlows__FieldSetField__Header'\n id={headerId}\n data-state={isExpanded ? 'expanded' : 'collapsed'}\n aria-expanded={isExpanded}\n >\n <h3 className={cn('RemoteFlows__FieldSetField__Title')}>{label}</h3>\n {features?.toggle?.enabled && (\n <ToggleComponent\n isExpanded={isExpanded}\n onToggle={toggleExpanded}\n aria-expanded={isExpanded}\n aria-controls={contentId}\n aria-label={`${isExpanded ? 'Hide' : 'Show'} ${label}`}\n className={cn(\n 'RemoteFlows__FieldSetField__Toggle',\n features.toggle?.className,\n )}\n >\n {isExpanded\n ? (features.toggle.labels?.collapse ?? 'Remove')\n : (features.toggle.labels?.expand ?? 'Define')}\n </ToggleComponent>\n )}\n </div>\n {helpCenter?.callToAction && helpCenter?.id && (\n <ZendeskTriggerButton\n className='RemoteFlows__FieldSetField__HelpCenterLink mb-3'\n zendeskId={helpCenter.id}\n >\n {helpCenter.callToAction}\n </ZendeskTriggerButton>\n )}\n </>\n )}\n {isExpanded && (\n <div id={contentId} aria-labelledby={headerId} role='region'>\n {description ? (\n <div\n className='mb-5 RemoteFlows__FieldSetField__Description'\n dangerouslySetInnerHTML={{ __html: sanitizeHtml(description) }}\n />\n ) : null}\n <div className='grid gap-4'>\n {fields.map((field: $TSFixMe) => {\n if (field.calculateDynamicProperties) {\n field = {\n ...field,\n ...(field.calculateDynamicProperties(watchedValues, field) ||\n {}),\n };\n }\n\n if (field.isVisible === false || field.deprecated) {\n return null; // Skip hidden or deprecated fields\n }\n\n // Handle nested fieldsets\n if (field.inputType === 'fieldset') {\n return (\n <FieldSetField\n key={`${isFlatFieldset ? field.name : `${name}.${field.name}`}`}\n {...field}\n name={`${isFlatFieldset ? field.name : `${name}.${field.name}`}`}\n components={components}\n />\n );\n }\n\n if (field.inputType === 'fieldset-flat') {\n return (\n <FieldSetField\n key={`${isFlatFieldset ? field.name : `${name}.${field.name}`}`}\n {...field}\n name={`${isFlatFieldset ? field.name : `${name}.${field.name}`}`}\n components={components}\n isFlatFieldset\n />\n );\n }\n // We need to do the check after checking field.inputType === 'fieldset' or field.inputType === 'fieldset-flat'\n // circular dependency most likely\n let FieldComponent =\n baseFields[\n field.inputType as Exclude<\n SupportedTypes,\n 'fieldset' | 'fieldset-flat'\n >\n ];\n\n if (field.Component) {\n const { Component } = field as {\n Component: React.ComponentType<$TSFixMe>;\n };\n return <Component key={field.name} {...field} />;\n }\n\n if (!FieldComponent) {\n return (\n <p className='error'>\n Field type {field.inputType as string} not supported\n </p>\n );\n }\n\n if (field.inputType === 'select' && field.multiple) {\n FieldComponent = baseFields['multi-select'];\n }\n\n return (\n <Fragment\n key={`${isFlatFieldset ? field.name : `${name}.${field.name}`}`}\n >\n <FieldComponent\n {...field}\n name={`${isFlatFieldset ? field.name : `${name}.${field.name}`}`}\n component={components?.[field.inputType as SupportedTypes]}\n />\n {field.extra ? field.extra : null}\n </Fragment>\n );\n })}\n {extra ? extra : null}\n {statement ? <Statement {...statement} /> : null}\n </div>\n </div>\n )}\n </fieldset>\n );\n}\n","import { 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 {\n ControllerRenderProps,\n FieldValues,\n useFormContext,\n} from 'react-hook-form';\n\nexport type CheckBoxFieldProps = {\n name: string;\n} & Partial<\n JSFField & {\n onChange?: (checked: boolean, optionId?: string) => void;\n component?: Components['checkbox'];\n }\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 field: ControllerRenderProps<FieldValues, string>,\n checked: boolean,\n optionId?: string,\n ) => {\n if (multiple && optionId) {\n // Multiple checkboxes: manage as array\n const currentValues = field.value ? [...field.value] : [];\n if (checked) {\n if (!currentValues.includes(optionId)) {\n field.onChange([...currentValues, optionId]);\n }\n } else {\n field.onChange(currentValues.filter((value) => value !== optionId));\n }\n } else {\n // Single checkbox: simple boolean toggle\n field.onChange(checked);\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: (\n evt: React.ChangeEvent<HTMLInputElement>,\n optionId?: string,\n ) => {\n handleCheckboxChange(field, evt.target.checked, optionId);\n onChange?.(evt.target.checked === true, optionId);\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 field,\n checked === true,\n option.value,\n );\n onChange?.(checked === true, 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 handleCheckboxChange(field, event === true, name);\n onChange?.(event === true, name);\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","import { Button } from '@/src/components/ui/button';\nimport {\n FormControl,\n FormDescription,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/src/components/ui/form';\nimport { DatePickerComponentProps } from '@/src/types/fields';\nimport { CalendarIcon } from 'lucide-react';\nimport { format } from 'date-fns';\nimport {\n Popover,\n PopoverClose,\n PopoverContent,\n PopoverTrigger,\n} from '@/src/components/ui/popover';\nimport { cn } from '@/src/lib/utils';\nimport { Calendar } from '@/src/components/ui/calendar';\nimport { HelpCenter } from '@/src/components/shared/zendesk-drawer/HelpCenter';\n\nexport function DatePickerFieldDefault({\n field,\n fieldData,\n fieldState,\n}: DatePickerComponentProps) {\n const { name, label, description, minDate, maxDate } = fieldData;\n const minDateValue = minDate ? new Date(minDate) : undefined;\n const maxDateValue = maxDate ? new Date(maxDate) : undefined;\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 }}\n defaultMonth={minDateValue}\n components={{\n DayContent: (props) => {\n return <PopoverClose>{props.date.getDate()}</PopoverClose>;\n },\n }}\n disabled={(date: Date) => {\n if (minDateValue && date < minDateValue) return true;\n if (maxDateValue && date > maxDateValue) return true;\n return false;\n }}\n />\n </PopoverContent>\n </Popover>\n {description ? (\n <FormDescription>\n {description} <HelpCenter helpCenter={fieldData.meta?.helpCenter} />\n </FormDescription>\n ) : null}\n {fieldState.error && (\n <FormMessage className='RemoteFlows__DatePickerField__Error' />\n )}\n </FormItem>\n );\n}\n","import * as React from 'react';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\n\nimport { cn } from '@/src/lib/utils';\nimport { PopoverClose } from '@radix-ui/react-popover';\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, PopoverClose };\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 { ZendeskTriggerButton } from './ZendeskTriggerButton';\n\ntype HelpCenterProps = {\n helpCenter?: { callToAction: string; id: number };\n};\n\nexport function HelpCenter({ helpCenter }: HelpCenterProps) {\n if (!helpCenter) {\n return null;\n }\n return (\n <ZendeskTriggerButton zendeskId={helpCenter.id}>\n {helpCenter.callToAction}\n </ZendeskTriggerButton>\n );\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '@/src/components/ui/form';\n\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { getMinStartDate } from '@/src/components/form/utils';\nimport { DatePickerFieldDefault } from '@/src/components/form/fields/default/DatePickerFieldDefault';\n\nexport type DatePickerFieldProps = JSFField & {\n onChange?: (value: any) => void;\n component?: Components['date'];\n};\n\nexport function DatePickerField({\n description,\n label,\n name,\n minDate,\n maxDate,\n onChange,\n component,\n ...rest\n}: DatePickerFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n\n let minDateValue: Date;\n if (rest.meta?.mot && typeof rest.meta.mot === 'number') {\n minDateValue = getMinStartDate(rest.meta.mot);\n } else if (minDate) {\n minDateValue = new Date(`${minDate}T00:00:00`);\n }\n\n let maxDateValue: Date | undefined;\n if (maxDate) {\n maxDateValue = new Date(`${maxDate}T23:59:59`);\n }\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const CustomDatePickerField = component || components?.date;\n const Component = CustomDatePickerField || DatePickerFieldDefault;\n\n const customDatePickerFieldProps = {\n description,\n label,\n name,\n onChange,\n ...(minDateValue && { minDate: minDateValue.toISOString() }),\n ...(maxDateValue && { maxDate: maxDateValue.toISOString() }),\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customDatePickerFieldProps}\n />\n );\n }}\n />\n );\n}\n","import {\n FormControl,\n FormDescription,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/src/components/ui/form';\nimport { FileUploader } from '@/src/components/ui/file-uploader';\nimport { cn } from '@/src/lib/utils';\nimport { FileComponentProps } from '@/src/types/fields';\n\nexport function FileUploadFieldDefault({\n field,\n fieldState,\n fieldData,\n}: FileComponentProps) {\n const { name, label, description, multiple, accept } = fieldData;\n\n return (\n <FormItem\n data-field={name}\n className={`RemoteFlows__FileUpload__Item__${name}`}\n >\n <FormLabel className='RemoteFlows__FileUpload__Label'>{label}</FormLabel>\n <FormControl>\n <FileUploader\n onChange={field.onChange}\n multiple={multiple}\n className={cn('RemoteFlows__FileUpload__Input')}\n accept={accept}\n files={field.value}\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","import { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport {\n ControllerRenderProps,\n FieldValues,\n useFormContext,\n} from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { FieldDataProps } from '@/src/types/fields';\nimport { FileUploadFieldDefault } from './default/FileUploadFieldDefault';\n\nconst validateFileSize = (files: File[], maxSize?: number): string | null => {\n if (!maxSize) return null;\n\n for (const file of files) {\n if (file.size > maxSize) {\n const maxSizeMB = Math.round(maxSize / (1024 * 1024));\n const fileSizeMB = Math.round(file.size / (1024 * 1024));\n return `File \"${file.name}\" exceeds maximum size of ${maxSizeMB}MB (file is ${fileSizeMB}MB)`;\n }\n }\n return null;\n};\n\nexport type FieldFileDataProps = FieldDataProps & {\n accept?: string;\n multiple?: boolean;\n maxFileSize?: number;\n};\n\nexport type FileUploadFieldProps = JSFField & {\n onChange?: (value: File[]) => void;\n multiple?: boolean;\n component?: Components['file'];\n maxSize?: number;\n accept?: string;\n};\n\nexport function FileUploadField({\n name,\n description,\n label,\n multiple,\n onChange,\n component,\n accept,\n maxSize,\n ...rest\n}: FileUploadFieldProps) {\n const { components } = useFormFields();\n const { control, setError, clearErrors } = useFormContext();\n\n const handleOnChange = async (\n files: File[],\n field: ControllerRenderProps<FieldValues, string>,\n ) => {\n const sizeError = validateFileSize(files, maxSize);\n if (sizeError) {\n setError(name, { message: sizeError });\n return;\n }\n\n clearErrors(name);\n field.onChange(files);\n onChange?.(files);\n };\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const CustomFileUploadField = component || components?.file;\n const Component = CustomFileUploadField || FileUploadFieldDefault;\n\n const fieldData: FieldFileDataProps = {\n name,\n description,\n label,\n multiple,\n accept,\n maxFileSize: maxSize,\n ...rest,\n };\n\n return (\n <Component\n field={{\n ...field,\n value: field.value,\n onChange: async (value: File[]) => handleOnChange(value, field),\n }}\n fieldState={fieldState}\n fieldData={fieldData}\n />\n );\n }}\n />\n );\n}\n","import { TextField } from '@/src/components/form/fields/TextField';\nimport { FieldComponentProps } from '@/src/types/fields';\n\nexport function NumberFieldDefault({ field, fieldData }: FieldComponentProps) {\n return (\n <TextField\n type='text'\n inputMode='decimal'\n pattern='^[0-9.]*$'\n {...field}\n {...fieldData}\n />\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport { useFormFields } from '@/src/context';\nimport { FormField } from '@/src/components/ui/form';\nimport { Components } from '@/src/types/remoteFlows';\nimport { NumberFieldDefault } from '@/src/components/form/fields/default/NumberFieldDefault';\nimport { TextFieldProps } from './TextField';\n\nexport type NumberFieldProps = TextFieldProps & {\n component?: Components['number'];\n onChange?: (value: number) => void;\n};\n\nexport function NumberField(props: NumberFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n\n const CustomNumberField = props.component || components?.number;\n const Component = CustomNumberField || NumberFieldDefault;\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n return (\n <Component\n field={{\n ...field,\n onChange: (value: number) => {\n field.onChange(value);\n props.onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={props}\n />\n );\n }}\n />\n );\n}\n","import { Fragment } from 'react';\nimport {\n FormControl,\n FormDescription,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/src/components/ui/form';\nimport { RadioGroup, RadioGroupItem } from '@/src/components/ui/radio-group';\nimport { cn } from '@/src/lib/utils';\nimport { FieldComponentProps } from '@/src/types/fields';\n\nexport const RadioGroupFieldDefault = ({\n field,\n fieldData,\n fieldState,\n}: FieldComponentProps) => {\n const { name, label, description, options } = fieldData;\n return (\n <fieldset\n className={cn('space-y-3', `RemoteFlows__RadioGroupField__Item__${name}`)}\n data-field={name}\n >\n <FormItem\n className={cn(\n 'space-y-3',\n `RemoteFlows__RadioGroupField__Item__${name}`,\n )}\n data-field={name}\n >\n <legend>{label}</legend>\n <FormControl>\n <RadioGroup\n aria-label={label || name}\n onValueChange={(value: string) => {\n field.onChange(value);\n }}\n value={field.value}\n className='flex flex-col space-y-3'\n >\n {options?.map((option) => (\n <Fragment key={option.value}>\n <FormItem\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 disabled={option.disabled}\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 </Fragment>\n ))}\n </RadioGroup>\n </FormControl>\n {description && <FormDescription>{description}</FormDescription>}\n {fieldState.error && <FormMessage />}\n </FormItem>\n </fieldset>\n );\n};\n","import { FormField } from '@/src/components/ui/form';\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { RadioGroupFieldDefault } from '@/src/components/form/fields/default/RadioGroupFieldDefault';\n\ntype RadioGroupFieldProps = JSFField & {\n onChange?: (value: string) => void;\n component?: Components['radio'];\n};\n\nexport function RadioGroupField({\n name,\n defaultValue,\n description,\n label,\n options,\n onChange,\n component,\n ...rest\n}: RadioGroupFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n return (\n <FormField\n control={control}\n name={name}\n defaultValue={defaultValue}\n render={({ field, fieldState }) => {\n const CustomRadioGroupField = component || components?.radio;\n const Component = CustomRadioGroupField || RadioGroupFieldDefault;\n const customRadioGroupFieldProps = {\n name,\n defaultValue,\n description,\n label,\n options,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: string) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customRadioGroupFieldProps}\n />\n );\n }}\n />\n );\n}\n","import {\n FormControl,\n FormDescription,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/src/components/ui/form';\nimport { FieldComponentProps } from '@/src/types/fields';\nimport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectItem,\n} from '@/src/components/ui/select';\n\nexport function SelectFieldDefault({\n field,\n fieldState,\n fieldData,\n}: FieldComponentProps) {\n const { name, label, description, options } = fieldData;\n\n return (\n <FormItem\n data-field={name}\n className={`RemoteFlows__SelectField__Item__${name}`}\n >\n <FormLabel className='RemoteFlows__SelectField__Label'>{label}</FormLabel>\n <FormControl>\n <div className='relative'>\n <Select\n value={field.value || ''}\n onValueChange={(value: string) => {\n field.onChange(value);\n }}\n >\n <SelectTrigger\n className='RemoteFlows__SelectField__Trigger'\n aria-invalid={Boolean(fieldState.error)}\n aria-label={label}\n >\n <span className='absolute'>\n <SelectValue placeholder={label} />\n </span>\n </SelectTrigger>\n <SelectContent className='RemoteFlows__SelectField__Content'>\n <SelectGroup className='RemoteFlows__SelectField__Group'>\n {options?.map((option) => (\n <SelectItem\n key={option.value}\n value={option.value}\n className='RemoteFlows__SelectField__SelectItem'\n disabled={option.disabled}\n >\n {option.label}\n </SelectItem>\n ))}\n </SelectGroup>\n </SelectContent>\n </Select>\n </div>\n </FormControl>\n {description && <FormDescription>{description}</FormDescription>}\n {fieldState.error && <FormMessage />}\n </FormItem>\n );\n}\n","import { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '@/src/components/ui/form';\nimport { SelectFieldDefault } from '@/src/components/form/fields/default/SelectFieldDefault';\n\ntype SelectFieldProps = JSFField & {\n placeholder?: string;\n options: Array<{ value: string | number; label: string }>;\n className?: string;\n onChange?: (value: string | number) => void;\n component?: Components['select'];\n};\n\nexport function SelectField({\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n component,\n ...rest\n}: SelectFieldProps) {\n const { control } = useFormContext();\n const { components } = useFormFields();\n\n return (\n <FormField\n defaultValue={defaultValue}\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const CustomSelectField = component || components?.select;\n const Component = CustomSelectField || SelectFieldDefault;\n const customSelectFieldProps = {\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: string | number) => {\n const maybeCastValue =\n rest.jsonType === 'number' ? Number(value) : value;\n field.onChange(maybeCastValue);\n onChange?.(maybeCastValue);\n },\n }}\n fieldState={fieldState}\n fieldData={customSelectFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useEffect, useState } from 'react';\nimport {\n FormControl,\n FormDescription,\n FormLabel,\n FormMessage,\n} from '@/src/components/ui/form';\n\nimport { FormItem } from '@/src/components/ui/form';\nimport { MultiSelect } from '@/src/components/ui/multi-select';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport { CountryComponentProps } from '@/src/types/fields';\nimport { HelpCenter } from '@/src/components/shared/zendesk-drawer/HelpCenter';\n\nexport function CountryFieldDefault({\n field,\n fieldState,\n fieldData,\n}: CountryComponentProps) {\n const [selected, setSelected] = useState<$TSFixMe[]>([]);\n const handleChange = (rawValues: $TSFixMe[]) => {\n const values = rawValues.map(({ value }) => value);\n field.onChange(values);\n setSelected(rawValues);\n };\n\n useEffect(() => {\n if (field.value && fieldData.options) {\n setSelected(\n field.value.map(\n (value: $TSFixMe) =>\n fieldData?.options?.find(\n (option) => option.value === value,\n ) as $TSFixMe,\n ),\n );\n }\n }, [field.value, fieldData.options]);\n\n const countryOptions = [\n ...Object.entries(fieldData.$meta?.regions || {}).map(([key, value]) => ({\n value,\n label: key,\n category: 'Regions',\n })),\n ...Object.entries(fieldData.$meta?.subregions || {}).map(\n ([key, value]) => ({\n value,\n label: key,\n category: 'Subregions',\n }),\n ),\n ...(fieldData.options?.map((option) => ({\n ...option,\n value: option.value,\n label: option.label,\n category: 'Countries',\n })) || []),\n ];\n return (\n <FormItem\n data-field={field.name}\n className={`RemoteFlows__CountryField__Item__${field.name}`}\n >\n <FormLabel className='RemoteFlows__CountryField__Label'>\n {fieldData.label}\n </FormLabel>\n <FormControl>\n <MultiSelect\n options={countryOptions}\n selected={selected}\n onChange={handleChange}\n />\n </FormControl>\n {fieldData.description && (\n <FormDescription>\n {fieldData.description}{' '}\n <HelpCenter helpCenter={fieldData.meta?.helpCenter} />\n </FormDescription>\n )}\n {fieldState.error && <FormMessage />}\n </FormItem>\n );\n}\n","import { Fragment, useState } from 'react';\nimport { Check, ChevronDownIcon, X } from 'lucide-react';\n\nimport { Button } from '@/src/components/ui/button';\nimport { Badge } from '@/src/components/ui/badge';\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandList,\n CommandSeparator,\n} from '@/src/components/ui/command';\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from '@/src/components/ui/popover';\nimport { cn } from '@/src/lib/utils';\n\nexport type Option = {\n label: string;\n value: string | string[];\n category?: string;\n};\n\ninterface MultiSelectProps {\n options: Option[];\n selected: Option[];\n onChange: (options: Option[]) => void;\n placeholder?: string;\n}\n\nexport function MultiSelect({\n options,\n selected,\n onChange,\n placeholder,\n ...props\n}: MultiSelectProps) {\n const [open, setOpen] = useState(false);\n const handleUnselect = (option: Option) => {\n onChange(selected.filter((item) => item.value !== option.value));\n };\n\n const hasCategories = options.some((option) => option.category);\n\n const groupedOptions = options.reduce(\n (groups, option) => {\n const category = option.category || 'Uncategorized';\n if (!groups[category]) {\n groups[category] = [];\n }\n groups[category].push(option);\n return groups;\n },\n {} as Record<string, Option[]>,\n );\n\n return (\n <Popover open={open} onOpenChange={setOpen} {...props}>\n <PopoverTrigger>\n <Button\n variant='outline'\n role='combobox'\n aria-expanded={open}\n className='w-full justify-between font-normal'\n type='button'\n >\n <div className='flex gap-1 flex-wrap overflow-x-auto max-h-[2.5rem] items-center'>\n {selected.length > 0 ? (\n selected.map((option) => {\n return (\n <Badge\n key={option.label}\n variant='secondary'\n className='mr-1 mb-1'\n >\n {option.label}\n <div\n role='button'\n tabIndex={0}\n aria-label={`remove ${option.label}`}\n className='ml-1 ring-offset-background rounded-full outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 cursor-pointer'\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n handleUnselect(option);\n }\n }}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onClick={() => handleUnselect(option)}\n >\n <X className='h-3 w-3 text-muted-foreground hover:text-foreground' />\n </div>\n </Badge>\n );\n })\n ) : (\n <span className='text-foreground'>{placeholder}</span>\n )}\n </div>\n <ChevronDownIcon className='size-4' />\n </Button>\n </PopoverTrigger>\n <PopoverContent align='start' className='w-full p-0'>\n <Command>\n <CommandList>\n <CommandEmpty>No item found.</CommandEmpty>\n {Object.entries(groupedOptions).map(\n ([category, categoryOptions], index) => (\n <Fragment key={category}>\n {index > 0 && <CommandSeparator />}\n <CommandGroup heading={hasCategories ? category : undefined}>\n {categoryOptions.map((option) => {\n const isSelected = selected.some(\n (item) => item.value === option.value,\n );\n return (\n <CommandItem\n key={option.label}\n onSelect={() => {\n onChange(\n isSelected\n ? selected.filter(\n (item) => item.value !== option.value,\n )\n : [...selected, option],\n );\n }}\n >\n <Check\n className={cn(\n 'mr-2 h-4 w-4',\n isSelected ? 'opacity-100' : 'opacity-0',\n )}\n />\n {option.label}\n </CommandItem>\n );\n })}\n </CommandGroup>\n </Fragment>\n ),\n )}\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n );\n}\n","import * as React from 'react';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { SearchIcon } from 'lucide-react';\n\nimport { cn } from '@/src/lib/utils';\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from '@/src/components/ui/dialog';\n\nfunction Command({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot='command'\n className={cn(\n 'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CommandDialog({\n title = 'Command Palette',\n description = 'Search for a command to run...',\n children,\n ...props\n}: React.ComponentProps<typeof Dialog> & {\n title?: string;\n description?: string;\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className='sr-only'>\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent className='overflow-hidden p-0'>\n <Command className='[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5'>\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n}\n\nfunction CommandInput({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div\n data-slot='command-input-wrapper'\n className='flex h-9 items-center gap-2 border-b px-3'\n >\n <SearchIcon className='size-4 shrink-0 opacity-50' />\n <CommandPrimitive.Input\n data-slot='command-input'\n className={cn(\n 'placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n </div>\n );\n}\n\nfunction CommandList({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot='command-list'\n className={cn(\n 'max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CommandEmpty({\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n data-slot='command-empty'\n className='py-6 text-center text-sm'\n {...props}\n />\n );\n}\n\nfunction CommandGroup({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n data-slot='command-group'\n className={cn(\n 'text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CommandSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot='command-separator'\n className={cn('bg-border -mx-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction CommandItem({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot='command-item'\n className={cn(\n \"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CommandShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot='command-shortcut'\n className={cn(\n 'text-muted-foreground ml-auto text-xs tracking-widest',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { CountryFieldDefault } from '@/src/components/form/fields/default/CountryFieldDefault';\n\ntype CountryFieldProps = JSFField & {\n options: Array<{ value: string; label: string }>;\n onChange?: (value: any) => void;\n $meta: {\n regions: Record<string, string[]>;\n subregions: Record<string, string[]>;\n };\n component?: Components['countries'];\n};\n\nexport function CountryField({\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n $meta,\n component,\n ...rest\n}: CountryFieldProps) {\n const { control } = useFormContext();\n const { components } = useFormFields();\n\n return (\n <FormField\n defaultValue={defaultValue}\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const CustomSelectField = component || components?.countries;\n const Component = CustomSelectField || CountryFieldDefault;\n\n const customSelectFieldProps = {\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n $meta,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customSelectFieldProps}\n />\n );\n }}\n />\n );\n}\n","import * as React from 'react';\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","import {\n FormControl,\n FormDescription,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/src/components/ui/form';\nimport { Textarea } from '@/src/components/ui/textarea';\nimport { cn } from '@/src/lib/utils';\nimport { FieldComponentProps } from '@/src/types/fields';\n\nexport function TextAreaFieldDefault({\n field,\n fieldState,\n fieldData,\n}: FieldComponentProps) {\n const { name, label, description, maxLength } = fieldData;\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'>{label}</FormLabel>\n <FormControl>\n <Textarea\n {...field}\n value={field.value ?? ''}\n onChange={(event: React.ChangeEvent<HTMLTextAreaElement>) => {\n field.onChange(event);\n }}\n className={cn(\n fieldState.error && '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","import * as React from 'react';\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '@/src/components/ui/form';\nimport { TextAreaFieldDefault } from '@/src/components/form/fields/default/TextAreaFieldDefault';\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 const Component = CustomTextAreaField || TextAreaFieldDefault;\n const customTextAreaFieldProps = {\n name,\n description,\n label,\n maxLength,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (evt: React.ChangeEvent<HTMLTextAreaElement>) => {\n field.onChange(evt);\n onChange?.(evt);\n },\n }}\n fieldState={fieldState}\n fieldData={customTextAreaFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { TextField } from '@/src/components/form/fields/TextField';\nimport { FieldComponentProps } from '@/src/types/fields';\n\nexport function EmailFieldDefault({ field, fieldData }: FieldComponentProps) {\n return <TextField name={field.name} {...fieldData} type='email' />;\n}\n","import { useFormFields } from '@/src/context';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { TextFieldProps } from './TextField';\nimport { Components } from '@/src/types/remoteFlows';\nimport { EmailFieldDefault } from '@/src/components/form/fields/default/EmailFieldDefault';\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 const Component = CustomEmailField || EmailFieldDefault;\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n return (\n <Component\n field={{\n ...field,\n onChange: (value: string) => {\n field.onChange(value);\n props.onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={props}\n />\n );\n }}\n />\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { Field } from '@/src/flows/types';\n\nexport function HiddenField(props: Field) {\n const { control } = useFormContext();\n\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field }) => {\n return <input {...field} type='hidden' />;\n }}\n />\n );\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useState } from 'react';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport { useForm, useFormContext, useFieldArray } from 'react-hook-form';\nimport * as yup from 'yup';\n\nimport { JSFField } from '@/src/types/remoteFlows';\nimport { useFormFields } from '@/src/context';\nimport { Form, FormField } from '@/src/components/ui/form';\nimport { Components } from '@/src/types/remoteFlows';\nimport { Button } from '@/src/components/ui/button';\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from '@/src/components/ui/dialog';\n\nimport {\n buildWorkScheduleSummary,\n calculateHours,\n calculateTotalWorkHours,\n DailySchedule,\n DAYS_OF_THE_WEEK,\n getShortWeekday,\n} from './workScheduleUtils';\nimport { CheckBoxField } from './CheckBoxField';\nimport { TextField } from './TextField';\n\ntype WorkScheduleFieldProps = JSFField & {\n name: string;\n default: DailySchedule[];\n onChange?: (value: any) => void;\n component?: Components['work-schedule'];\n};\n\ntype WorkScheduleFormData = {\n schedule: DailySchedule[];\n};\n\ntype WorkScheduleSelectionProps = {\n defaultSchedule: DailySchedule[];\n onSubmit: (data: WorkScheduleFormData['schedule']) => void;\n};\n\nconst fieldSchema = yup.object({\n day: yup.string().required(),\n checked: yup.boolean().required(),\n start_time: yup\n .string()\n .matches(/^([01]\\d|2[0-3]):([0-5]\\d)$/, 'Invalid time format (HH:mm)')\n .when('checked', {\n is: true,\n then: (schema) => schema.required('Required'),\n otherwise: (schema) => schema.optional().nullable(),\n }),\n end_time: yup\n .string()\n .matches(/^([01]\\d|2[0-3]):([0-5]\\d)$/, 'Invalid time format (HH:mm)')\n .when('checked', {\n is: true,\n then: (schema) => schema.required('Required'),\n otherwise: (schema) => schema.optional().nullable(),\n }),\n hours: yup.number().default(0),\n break_duration_minutes: yup.string().default('0'),\n});\n\nconst formSchema = yup.object({\n schedule: yup.array(fieldSchema),\n});\n\nfunction WorkScheduleSelectionForm({\n defaultSchedule,\n onSubmit,\n}: WorkScheduleSelectionProps) {\n const [openDialog, setOpenDialog] = useState(false);\n\n const transformedSchedule = DAYS_OF_THE_WEEK.map((day) => {\n const existingSchedule = defaultSchedule.find(\n (schedule) =>\n schedule.day.toLowerCase() === getShortWeekday(day).toLowerCase() ||\n schedule.day.toLowerCase() === day.toLowerCase(),\n );\n\n if (existingSchedule) {\n return {\n ...existingSchedule,\n day: getShortWeekday(day),\n checked: true,\n };\n }\n\n return {\n // We just need to override the day and checked. The rest of the fields are the same for every day.\n ...defaultSchedule[0],\n checked: false,\n day: getShortWeekday(day),\n };\n });\n\n const form = useForm<WorkScheduleFormData>({\n defaultValues: {\n schedule: transformedSchedule,\n },\n resolver: yupResolver(formSchema) as any,\n });\n\n const { handleSubmit, watch, reset, control, formState } = form;\n\n const { fields } = useFieldArray({\n name: 'schedule',\n control,\n });\n\n const watchedSchedule = watch('schedule');\n\n function handleSubmitWorkingHours(data: WorkScheduleFormData) {\n // We can only send the days that are checked.\n const schedule = data.schedule\n .filter(({ checked }) => checked)\n .map((day) => ({\n ...day,\n hours: calculateHours(day),\n }));\n\n onSubmit(schedule);\n setOpenDialog(false);\n }\n\n function handleCancel() {\n reset();\n setOpenDialog(false);\n }\n\n return (\n <div className='flex items-center justify-between'>\n <Dialog open={openDialog} onOpenChange={setOpenDialog}>\n <DialogTrigger asChild>\n <Button\n variant={'link'}\n className='flex items-center p-0 RemoteFlows__WorkScheduleSelectionForm__Trigger'\n >\n Edit Schedule\n </Button>\n </DialogTrigger>\n <DialogContent className='max-w-5xl max-h-[90vh] overflow-y-auto px-8 py-4 RemoteFlows__WorkScheduleSelectionForm__Content'>\n <DialogHeader>\n <DialogTitle className='RemoteFlows__WorkScheduleSelectionForm__Title'>\n Edit employee working hours\n </DialogTitle>\n </DialogHeader>\n\n <Form {...form}>\n <form className='space-y-4 RemoteFlows__WorkScheduleSelectionForm__Form'>\n <div className='rounded-lg'>\n <p className='text-gray-600 text-sm mb-4 RemoteFlows__WorkScheduleSelectionForm__Description'>\n The times displayed are in the employee's time zone in the\n 24-hour format.\n </p>\n\n <div className='grid grid-cols-12 gap-4 text-sm font-medium text-gray-500 uppercase tracking-wide RemoteFlows__WorkScheduleSelectionForm__Header'>\n <div className='col-span-2'></div>\n <div className='col-span-3 text-center'>START</div>\n <div className='col-span-1 text-center'></div>\n <div className='col-span-3 text-center'>END</div>\n <div className='col-span-2 text-center'>HOURS</div>\n {/* <div className=\"col-span-2 text-center\">ACTIONS</div> */}\n </div>\n\n <div className='RemoteFlows__WorkScheduleSelectionForm__Rows'>\n {fields.map((field, index) => {\n const currentDay = watchedSchedule[index];\n const calculatedHours = calculateHours(currentDay);\n\n return (\n <React.Fragment key={field.id}>\n <div className='grid grid-cols-12 gap-4 items-center py-2 RemoteFlows__WorkScheduleSelectionForm__Row-Hours'>\n <div className='col-span-2 flex items-center gap-3'>\n <CheckBoxField\n label={field.day}\n name={`schedule.${index}.checked`}\n />\n </div>\n <div className='col-span-3'>\n <TextField\n name={`schedule.${index}.start_time`}\n includeErrorMessage={false}\n />\n </div>\n <div className='col-span-1 text-center text-gray-500'>\n to\n </div>\n <div className='col-span-3'>\n <TextField\n name={`schedule.${index}.end_time`}\n includeErrorMessage={false}\n />\n </div>\n <div className='col-span-2 text-center text-gray-600'>\n {isNaN(calculatedHours)\n ? '-'\n : `${calculatedHours} hours`}\n </div>\n </div>\n\n <div className='grid grid-cols-12 gap-4 items-center py-2 RemoteFlows__WorkScheduleSelectionForm__Row-Break'>\n <div className='col-span-2 text-gray-500'>Break</div>\n <div className='col-span-2'>\n <TextField\n name={`schedule.${index}.break_duration_minutes`}\n includeErrorMessage={false}\n />\n </div>\n <div className='col-span-2 text-gray-500'>\n minutes\n </div>\n <div className='col-span-4'></div>\n </div>\n </React.Fragment>\n );\n })}\n </div>\n </div>\n\n {Object.keys(formState.errors).length > 0 && (\n <p className='text-destructive text-sm mb-0'>\n Invalid time format (HH:mm)\n </p>\n )}\n\n <div className='flex gap-4 pt-4'>\n <Button\n type='button'\n className='reset-button'\n variant='outline'\n onClick={handleCancel}\n >\n Cancel\n </Button>\n <Button\n type='button'\n className='submit-button'\n onClick={handleSubmit(handleSubmitWorkingHours)}\n >\n Save Schedule\n </Button>\n </div>\n </form>\n </Form>\n </DialogContent>\n </Dialog>\n </div>\n );\n}\n\nexport function WorkScheduleField(props: WorkScheduleFieldProps) {\n const { components } = useFormFields();\n const { setValue, control, watch } = useFormContext();\n const watchedSchedule = watch(props.name);\n const [currentSchedule, setCurrentSchedule] =\n useState<DailySchedule[]>(watchedSchedule);\n\n const { workHoursSummary, breakSummary } =\n buildWorkScheduleSummary(currentSchedule);\n const totalWorkHours = calculateTotalWorkHours(currentSchedule);\n\n useEffect(() => {\n setValue(props.name, currentSchedule);\n }, [currentSchedule, props.name, setValue]);\n\n function onSubmit(data: WorkScheduleFormData['schedule']) {\n setCurrentSchedule(data);\n }\n\n const CustomWorkScheduleField =\n props.component || components?.['work-schedule'];\n\n if (CustomWorkScheduleField) {\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n return (\n <CustomWorkScheduleField\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n props.onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={{\n ...props,\n // @ts-expect-error - defaultFormattedValue is not part of fieldData. It's generated in this component.\n defaultFormattedValue: {\n workHoursSummary,\n breakSummary,\n totalWorkHours,\n },\n }}\n />\n );\n }}\n />\n );\n }\n\n return (\n <div className={`flex flex-col gap-3 RemoteFlows__WorkScheduleField`}>\n <p className={`text-sm RemoteFlows__WorkScheduleField__Title`}>\n Work hours\n </p>\n <div className='flex flex-col gap-1 RemoteFlows__WorkScheduleField__Summary'>\n <p\n className='text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__WorkHours'\n dangerouslySetInnerHTML={{\n __html: workHoursSummary.join(', '),\n }}\n />\n\n <p className='text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__Break'>\n {breakSummary.join()}\n </p>\n <p className='text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__Total'>\n Total of <span>{totalWorkHours}</span> hours per week\n </p>\n <WorkScheduleSelectionForm\n defaultSchedule={currentSchedule}\n onSubmit={onSubmit}\n />\n </div>\n </div>\n );\n}\n","import {\n FieldError,\n FieldErrors,\n FieldValues,\n Ref,\n ResolverOptions,\n get,\n} from 'react-hook-form';\n\nconst setCustomValidity = (\n ref: Ref,\n fieldPath: string,\n errors: FieldErrors,\n) => {\n if (ref && 'reportValidity' in ref) {\n const error = get(errors, fieldPath) as FieldError | undefined;\n ref.setCustomValidity((error && error.message) || '');\n\n ref.reportValidity();\n }\n};\n\n// Native validation (web only)\nexport const validateFieldsNatively = <TFieldValues extends FieldValues>(\n errors: FieldErrors,\n options: ResolverOptions<TFieldValues>,\n): void => {\n for (const fieldPath in options.fields) {\n const field = options.fields[fieldPath];\n if (field && field.ref && 'reportValidity' in field.ref) {\n setCustomValidity(field.ref, fieldPath, errors);\n } else if (field && field.refs) {\n field.refs.forEach((ref: HTMLInputElement) =>\n setCustomValidity(ref, fieldPath, errors),\n );\n }\n }\n};\n","import {\n Field,\n FieldErrors,\n FieldValues,\n InternalFieldName,\n ResolverOptions,\n get,\n set,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestErrors = <TFieldValues extends FieldValues>(\n errors: FieldErrors,\n options: ResolverOptions<TFieldValues>,\n): FieldErrors<TFieldValues> => {\n options.shouldUseNativeValidation && validateFieldsNatively(errors, options);\n\n const fieldErrors = {} as FieldErrors<TFieldValues>;\n for (const path in errors) {\n const field = get(options.fields, path) as Field['_f'] | undefined;\n const error = Object.assign(errors[path] || {}, {\n ref: field && field.ref,\n });\n\n if (isNameInFieldArray(options.names || Object.keys(errors), path)) {\n const fieldArrayErrors = Object.assign({}, get(fieldErrors, path));\n\n set(fieldArrayErrors, 'root', error);\n set(fieldErrors, path, fieldArrayErrors);\n } else {\n set(fieldErrors, path, error);\n }\n }\n\n return fieldErrors;\n};\n\nconst isNameInFieldArray = (\n names: InternalFieldName[],\n name: InternalFieldName,\n) => {\n const path = escapeBrackets(name);\n return names.some((n) => escapeBrackets(n).match(`^${path}\\\\.\\\\d+`));\n};\n\n/**\n * Escapes special characters in a string to be used in a regex pattern.\n * it removes the brackets from the string to match the `set` method.\n *\n * @param input - The input string to escape.\n * @returns The escaped string.\n */\nfunction escapeBrackets(input: string): string {\n return input.replace(/\\]|\\[/g, '');\n}\n","import { toNestErrors, validateFieldsNatively } from '@hookform/resolvers';\nimport {\n FieldError,\n FieldValues,\n Resolver,\n appendErrors,\n} from 'react-hook-form';\nimport * as Yup from 'yup';\n\n/**\n * Why `path!` ? because it could be `undefined` in some case\n * https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n */\nfunction parseErrorSchema(\n error: Yup.ValidationError,\n validateAllFieldCriteria: boolean,\n) {\n return (error.inner || []).reduce<Record<string, FieldError>>(\n (previous, error) => {\n if (!previous[error.path!]) {\n previous[error.path!] = { message: error.message, type: error.type! };\n }\n\n if (validateAllFieldCriteria) {\n const types = previous[error.path!].types;\n const messages = types && types[error.type!];\n\n previous[error.path!] = appendErrors(\n error.path!,\n validateAllFieldCriteria,\n previous,\n error.type!,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n return previous;\n },\n {},\n );\n}\n\n/**\n * Creates a resolver for react-hook-form using Yup schema validation\n * @param {Yup.ObjectSchema<TFieldValues> | ReturnType<typeof Yup.lazy<Yup.ObjectSchema<TFieldValues>>>} schema - Yup validation schema\n * @param {Parameters<(typeof schema)['validate']>[1]} schemaOptions - Options to pass to Yup's validate/validateSync\n * @param {Object} resolverOptions - Additional resolver configuration\n * @param {('async' | 'sync')} [resolverOptions.mode] - Validation mode\n * @param {boolean} [resolverOptions.raw] - If true, returns raw values instead of validated results\n * @returns {Resolver<Yup.InferType<typeof schema>>} A resolver function compatible with react-hook-form\n * @example\n * const schema = Yup.object({\n * name: Yup.string().required(),\n * age: Yup.number().required(),\n * });\n *\n * useForm({\n * resolver: yupResolver(schema)\n * });\n */\nexport function yupResolver<TFieldValues extends FieldValues>(\n schema:\n | Yup.ObjectSchema<TFieldValues>\n | ReturnType<typeof Yup.lazy<Yup.ObjectSchema<TFieldValues>>>,\n schemaOptions: Parameters<(typeof schema)['validate']>[1] = {},\n resolverOptions: {\n mode?: 'async' | 'sync';\n raw?: boolean;\n } = {},\n): Resolver<Yup.InferType<typeof schema>> {\n return async (values, context, options) => {\n try {\n if (schemaOptions.context && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n \"You should not used the yup options context. Please, use the 'useForm' context object instead\",\n );\n }\n\n const result = await schema[\n resolverOptions.mode === 'sync' ? 'validateSync' : 'validate'\n ](\n values,\n Object.assign({ abortEarly: false }, schemaOptions, { context }),\n );\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n values: resolverOptions.raw ? Object.assign({}, values) : result,\n errors: {},\n };\n } catch (e: any) {\n if (!e.inner) {\n throw e;\n }\n\n return {\n values: {},\n errors: toNestErrors(\n parseErrorSchema(\n e,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n}\n","import groupBy from 'lodash.groupby';\nimport capitalize from 'lodash.capitalize';\n\nconst MINUTES_IN_HOUR = 60;\n\nexport const DAYS_OF_THE_WEEK = [\n 'monday',\n 'tuesday',\n 'wednesday',\n 'thursday',\n 'friday',\n 'saturday',\n 'sunday',\n] as const;\n\nexport type DailySchedule = {\n day: string;\n start_time: string;\n end_time: string;\n hours: number;\n break_duration_minutes: string;\n checked: boolean;\n};\n\n/**\n * Convert break duration in minutes to hours and minutes\n * @param breakDuration - Break duration in minutes\n * @returns Break duration in hours and minutes\n */\nfunction convertBreakDurationToHours(breakDuration: number) {\n if (breakDuration < 60) {\n return `${breakDuration}m`;\n }\n\n const hours = Math.floor(breakDuration / MINUTES_IN_HOUR);\n const minutes = breakDuration % MINUTES_IN_HOUR;\n\n if (minutes > 0) {\n return `${hours}h${minutes}m`;\n }\n\n return `${hours}h`;\n}\n\n/**\n * Calculate total work hours from daily schedules\n * @param dailySchedules - Daily schedules\n * @returns Total work hours\n */\nexport function calculateTotalWorkHours(dailySchedules: DailySchedule[]) {\n const totalWorkHours = dailySchedules.reduce((total, daySchedule) => {\n const sum = daySchedule.hours + total;\n return sum;\n }, 0);\n\n return Number(totalWorkHours.toFixed(2));\n}\n\n/**\n * Find the last consecutive day in a schedule (used to summarize work hours)\n * @param startDay - The starting day\n * @param dailySchedule - The daily schedule\n * @returns The last consecutive day\n */\nfunction findLastConsecutiveDay(\n startDay: string,\n dailySchedule: DailySchedule[],\n): Weekday | null {\n const daysScheduled = dailySchedule.map(\n ({ day }: DailySchedule) => day.toLowerCase() as Weekday,\n );\n\n let idx = daysScheduled.indexOf(startDay as Weekday);\n let day: Weekday | null = null;\n\n while (idx < daysScheduled.length && !day) {\n const currentDay = daysScheduled[idx];\n const nextDay = daysScheduled[idx + 1];\n\n const nextDayIdx = DAYS_OF_THE_WEEK.indexOf(currentDay) + 1;\n const isNextDay = DAYS_OF_THE_WEEK[nextDayIdx] === nextDay;\n\n if (!isNextDay) {\n day = currentDay;\n }\n\n idx += 1;\n }\n\n return day;\n}\n\n/**\n * Check if a day schedule should be summarized\n * @param daySchedule - The day schedule\n * @returns True if the day schedule should be summarized\n */\nfunction shouldSummarizeSchedule(daySchedule: DailySchedule) {\n return (\n daySchedule.start_time &&\n daySchedule.end_time &&\n (typeof daySchedule.hours === 'number'\n ? daySchedule.hours\n : Number.parseInt(daySchedule.hours)) > 0\n );\n}\n\n/**\n * Check if break duration should be summarized\n * @param daySchedule - The day schedule\n * @returns True if the break duration should be summarized\n */\nfunction shouldSummarizeBreaks(daySchedule: DailySchedule) {\n return Number.parseInt(daySchedule.break_duration_minutes) > 0;\n}\n\n/**\n * Build the work schedule summary\n * @param dailySchedules - The daily schedules\n * @returns The work schedule summary\n */\nexport function buildWorkScheduleSummary(dailySchedules: DailySchedule[]) {\n const activeScheduleDays = dailySchedules.filter(shouldSummarizeSchedule);\n\n const groupedWorkHours = groupBy(activeScheduleDays, (dailySchedule) => {\n return `${dailySchedule.start_time}|${dailySchedule.end_time}`;\n });\n\n const activeBreakDays = dailySchedules.filter(shouldSummarizeBreaks);\n const groupedBreaks = groupBy(activeBreakDays, 'break_duration_minutes');\n\n const workHoursSummary = Object.keys(groupedWorkHours).map(\n (scheduleTimes) => {\n const sameDailySchedule = groupedWorkHours[scheduleTimes];\n const startDay = sameDailySchedule[0].day;\n const [start_time, end_time] = scheduleTimes.split('|');\n const timeSummary = `from <span>${start_time.replace(':', 'h')}</span> to <span>${end_time.replace(':', 'h')}</span>`;\n\n const lastConsecutiveDay = findLastConsecutiveDay(\n startDay,\n sameDailySchedule,\n );\n const lastConsecutiveDayIdx = lastConsecutiveDay\n ? sameDailySchedule.findIndex(\n (dailySchedule) => dailySchedule.day === lastConsecutiveDay,\n )\n : -1;\n const allDaysAreConsecutive =\n lastConsecutiveDayIdx === sameDailySchedule.length - 1;\n\n if (sameDailySchedule.length === 1) {\n return `${capitalize(startDay)}, ${timeSummary}`;\n }\n\n if (!allDaysAreConsecutive || !lastConsecutiveDay) {\n return sameDailySchedule.reduce((summary, dailySchedule, idx) => {\n const day = capitalize(dailySchedule.day);\n if (idx === sameDailySchedule.length - 1) {\n return `${summary}and ${day}, ${timeSummary}`;\n }\n\n return `${summary}<span>${day}</span>, `;\n }, '');\n }\n\n return `<span>${capitalize(startDay)}</span> to <span>${capitalize(lastConsecutiveDay)}</span>, ${timeSummary}`;\n },\n );\n\n const breakSummary = Object.keys(groupedBreaks)\n .reverse()\n .map((breakDuration, idx) => {\n const isFirstGroup = idx === 0;\n const sameDailyBreaks = groupedBreaks[breakDuration];\n const breakString = convertBreakDurationToHours(\n parseInt(breakDuration, 10),\n );\n\n if (Object.keys(groupedBreaks).length === 1) {\n return `With ${breakString} daily breaks`;\n }\n\n if (sameDailyBreaks.length === 1) {\n const breakText = `${breakString} break on ${capitalize(sameDailyBreaks[0].day)}.`;\n return isFirstGroup ? `With ${breakText}` : breakText;\n }\n\n return sameDailyBreaks.reduce(\n (summary, dailySchedule, breakIdx) => {\n const day = capitalize(dailySchedule.day);\n\n if (breakIdx === 0) {\n return `${summary} ${day}`;\n }\n\n if (breakIdx === sameDailyBreaks.length - 1) {\n return `${summary}, and ${day}.`;\n }\n\n return `${summary}, ${day}`;\n },\n isFirstGroup\n ? `With ${breakString} break on`\n : `${breakString} break on`,\n );\n });\n\n return { workHoursSummary, breakSummary };\n}\n\n// Calculate hours for each day\nexport function calculateHours(day: DailySchedule) {\n const { checked, start_time, end_time, break_duration_minutes } = day;\n if (!checked) return 0;\n\n const [startHour, startMin] = start_time.split(':').map(Number);\n const [endHour, endMin] = end_time.split(':').map(Number);\n\n const startTotalMin = startHour * 60 + startMin;\n const endTotalMin = endHour * 60 + endMin;\n const workMinutes =\n endTotalMin -\n startTotalMin -\n Number.parseInt(break_duration_minutes || '0');\n\n const hours = workMinutes / 60;\n return hours === Math.floor(hours) ? hours : Number(hours.toFixed(2));\n}\n\ntype Weekday = (typeof DAYS_OF_THE_WEEK)[number];\n\nconst dayMap: Record<Weekday, string> = {\n monday: 'Mon',\n tuesday: 'Tue',\n wednesday: 'Wed',\n thursday: 'Thu',\n friday: 'Fri',\n saturday: 'Sat',\n sunday: 'Sun',\n};\n\nexport function getShortWeekday(fullName: Weekday): string {\n return dayMap[fullName];\n}\n","import { useEffect, useState } from 'react';\nimport {\n FormControl,\n FormDescription,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/src/components/ui/form';\nimport { MultiSelect, Option } from '@/src/components/ui/multi-select';\nimport { FieldComponentProps } from '@/src/types/fields';\n\nexport const MultiSelectFieldDefault = ({\n field,\n fieldState,\n fieldData,\n}: FieldComponentProps) => {\n const [selected, setSelected] = useState<Option[]>([]);\n const { name, label, description, options } = fieldData;\n const selectedOptions =\n selected ||\n options?.filter((option) => field.value?.includes(option.value));\n\n useEffect(() => {\n setSelected(\n options?.filter((option) => field.value?.includes(option.value)) || [],\n );\n }, [field.value, options]);\n return (\n <FormItem\n data-field={name}\n className={`RemoteFlows__SelectField__Item__${name}`}\n >\n <FormLabel className='RemoteFlows__SelectField__Label'>{label}</FormLabel>\n <FormControl>\n <MultiSelect\n options={options || []}\n selected={selectedOptions}\n onChange={(rawValues: Option[]) => {\n const values = rawValues.map(({ value }) => value);\n field.onChange(values); // This triggers the wrapped onChange from MultiSelectField\n setSelected(rawValues);\n }}\n />\n </FormControl>\n {description && <FormDescription>{description}</FormDescription>}\n {fieldState.error && <FormMessage />}\n </FormItem>\n );\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { MultiSelectFieldDefault } from '@/src/components/form/fields/default/MultiSelectFieldDefault';\n\ntype MultiSelectFieldProps = JSFField & {\n placeholder?: string;\n options: Array<{ value: string; label: string }>;\n className?: string;\n onChange?: (value: any) => void;\n component?: Components['select'];\n};\n\nexport function MultiSelectField({\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n component,\n ...rest\n}: MultiSelectFieldProps) {\n const { control } = useFormContext();\n const { components } = useFormFields();\n\n return (\n <FormField\n defaultValue={defaultValue}\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const CustomSelectField = component || components?.['multi-select'];\n const Component = CustomSelectField || MultiSelectFieldDefault;\n const customSelectFieldProps = {\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customSelectFieldProps}\n />\n );\n }}\n />\n );\n}\n","import {\n NumberField,\n NumberFieldProps,\n} from '@/src/components/form/fields/NumberField';\n\n// TODO: We use the number field and the the number type is what the partner overrides\n// TODO: this needs to be changed in the future with the changes from https://github.com/remoteoss/remote-flows/pull/128\nexport const MoneyField = (props: NumberFieldProps) => {\n return <NumberField maxLength={15} {...props} />;\n};\n","import { CheckBoxField } from './CheckBoxField';\nimport { DatePickerField } from './DatePickerField';\nimport { FileUploadField } from './FileUploadField';\nimport { NumberField } from './NumberField';\nimport { RadioGroupField } from './RadioGroupField';\nimport { SelectField } from './SelectField';\nimport { CountryField } from './CountryField';\nimport { TextAreaField } from './TextAreaField';\nimport { TextField } from './TextField';\nimport { EmailField } from './EmailField';\nimport { HiddenField } from './HiddenField';\nimport { WorkScheduleField } from './WorkScheduleField';\nimport { MultiSelectField } from './MultiSelectField';\nimport { MoneyField } from './MoneyField';\nimport { SupportedTypes } from './types';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\n\nexport const baseFields: Record<\n Exclude<SupportedTypes, 'fieldset' | 'fieldset-flat'>,\n React.ComponentType<$TSFixMe>\n> = {\n checkbox: CheckBoxField,\n text: TextField,\n email: EmailField,\n money: MoneyField,\n select: SelectField,\n 'multi-select': MultiSelectField,\n radio: RadioGroupField,\n number: NumberField,\n file: FileUploadField,\n date: DatePickerField,\n textarea: TextAreaField,\n countries: CountryField,\n hidden: HiddenField,\n 'work-schedule': WorkScheduleField,\n};\n","import { Alert, AlertDescription, AlertTitle } from '@/src/components/ui/alert';\nimport { StatementComponentProps } from '@/src/types/fields';\nimport { AlertCircle } from 'lucide-react';\n\nexport function StatementDefault({ data }: StatementComponentProps) {\n const { title, description, severity } = data;\n\n const mapSeverityToVariant: Record<\n string,\n 'warning' | 'destructive' | 'default'\n > = {\n warning: 'warning',\n error: 'destructive',\n info: 'default',\n success: 'warning',\n };\n\n const variant =\n mapSeverityToVariant[severity as keyof typeof mapSeverityToVariant] ??\n 'warning';\n\n return (\n <Alert variant={variant}>\n <AlertCircle className='h-4 w-4' />\n {title && <AlertTitle>{title}</AlertTitle>}\n {description && (\n <AlertDescription dangerouslySetInnerHTML={{ __html: description }} />\n )}\n </Alert>\n );\n}\n","import { StatementDefault } from '@/src/components/form/fields/default/StatementDefault';\nimport { useFormFields } from '@/src/context';\nimport { sanitizeHtml } from '@/src/lib/utils';\nimport { StatementComponentProps } from '@/src/types/fields';\n\ntype StatementProps = StatementComponentProps['data'];\n\nexport function Statement({ title, description, severity }: StatementProps) {\n const { components } = useFormFields();\n\n const Component = components?.statement ?? StatementDefault;\n\n return (\n <Component\n data={{\n title,\n description: sanitizeHtml(description),\n severity,\n }}\n />\n );\n}\n"],"mappings":"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","names":["Fragment","useEffect","useRef","Fragment","jsx","jsxs","CheckBoxField","name","defaultValue","description","label","onChange","multiple","options","component","rest","components","useFormFields","control","useFormContext","handleCheckboxChange","__name","field","checked","optionId","currentValues","value","FormField","fieldState","CustomCheckboxField","customCheckboxFieldProps","evt","FormItem","cn","FormControl","FormLabel","option","Checkbox","event","FormDescription","FormMessage","CalendarIcon","format","PopoverPrimitive","PopoverClose","jsx","Popover","props","__name","PopoverTrigger","PopoverContent","className","align","sideOffset","cn","ChevronLeft","ChevronRight","DayPicker","jsx","Calendar","className","classNames","showOutsideDays","props","DayPicker","cn","buttonVariants","__name","ChevronLeft","ChevronRight","jsx","HelpCenter","helpCenter","ZendeskTriggerButton","__name","Fragment","jsx","jsxs","DatePickerFieldDefault","field","fieldData","fieldState","name","label","description","minDate","maxDate","minDateValue","maxDateValue","FormItem","FormLabel","Popover","PopoverTrigger","FormControl","Button","cn","format","CalendarIcon","PopoverContent","Calendar","date","__name","props","PopoverClose","FormDescription","HelpCenter","FormMessage","jsx","DatePickerField","description","label","name","minDate","maxDate","onChange","component","rest","components","useFormFields","control","useFormContext","minDateValue","getMinStartDate","maxDateValue","FormField","field","fieldState","Component","DatePickerFieldDefault","customDatePickerFieldProps","__name","value","jsx","jsxs","FileUploadFieldDefault","field","fieldState","fieldData","name","label","description","multiple","accept","FormItem","FormLabel","FormControl","FileUploader","cn","FormDescription","FormMessage","__name","jsx","validateFileSize","__name","files","maxSize","file","maxSizeMB","fileSizeMB","FileUploadField","name","description","label","multiple","onChange","component","accept","rest","components","useFormFields","control","setError","clearErrors","useFormContext","handleOnChange","field","sizeError","FormField","fieldState","Component","FileUploadFieldDefault","fieldData","value","jsx","NumberFieldDefault","field","fieldData","TextField","__name","jsx","NumberField","props","components","useFormFields","control","useFormContext","Component","NumberFieldDefault","FormField","field","fieldState","__name","value","Fragment","jsx","jsxs","RadioGroupFieldDefault","__name","field","fieldData","fieldState","name","label","description","options","cn","FormItem","FormControl","RadioGroup","value","option","Fragment","RadioGroupItem","FormLabel","FormDescription","FormMessage","jsx","RadioGroupField","name","defaultValue","description","label","options","onChange","component","rest","components","useFormFields","control","useFormContext","FormField","field","fieldState","Component","RadioGroupFieldDefault","customRadioGroupFieldProps","__name","value","jsx","jsxs","SelectFieldDefault","field","fieldState","fieldData","name","label","description","options","FormItem","FormLabel","FormControl","Select","value","SelectTrigger","SelectValue","SelectContent","SelectGroup","option","SelectItem","FormDescription","FormMessage","__name","jsx","SelectField","label","name","options","defaultValue","description","onChange","component","rest","control","useFormContext","components","useFormFields","FormField","field","fieldState","Component","SelectFieldDefault","customSelectFieldProps","__name","value","maybeCastValue","useEffect","useState","Fragment","useState","Check","ChevronDownIcon","X","CommandPrimitive","SearchIcon","jsx","jsxs","Command","className","props","CommandPrimitive","cn","__name","CommandList","className","props","jsx","CommandPrimitive","cn","__name","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","jsx","jsxs","MultiSelect","options","selected","onChange","placeholder","props","open","setOpen","useState","handleUnselect","__name","option","item","hasCategories","groupedOptions","groups","category","Popover","PopoverTrigger","Button","Badge","e","X","ChevronDownIcon","PopoverContent","Command","CommandList","CommandEmpty","categoryOptions","index","Fragment","CommandSeparator","CommandGroup","isSelected","CommandItem","Check","cn","jsx","jsxs","CountryFieldDefault","field","fieldState","fieldData","selected","setSelected","useState","handleChange","__name","rawValues","values","value","useEffect","option","countryOptions","key","FormItem","FormLabel","FormControl","MultiSelect","FormDescription","HelpCenter","FormMessage","jsx","CountryField","label","name","options","defaultValue","description","onChange","$meta","component","rest","control","useFormContext","components","useFormFields","FormField","field","fieldState","Component","CountryFieldDefault","customSelectFieldProps","__name","value","React","jsx","Textarea","className","props","ref","cn","jsx","jsxs","TextAreaFieldDefault","field","fieldState","fieldData","name","label","description","maxLength","valueLength","FormItem","FormLabel","FormControl","Textarea","event","cn","FormDescription","FormMessage","__name","jsx","TextAreaField","name","description","label","onChange","maxLength","component","rest","components","useFormFields","control","useFormContext","FormField","field","fieldState","Component","TextAreaFieldDefault","customTextAreaFieldProps","__name","evt","jsx","EmailFieldDefault","field","fieldData","TextField","__name","jsx","EmailField","props","components","useFormFields","control","useFormContext","Component","EmailFieldDefault","FormField","field","fieldState","__name","value","jsx","HiddenField","props","control","useFormContext","FormField","field","__name","React","useEffect","useState","setCustomValidity","ref","fieldPath","errors","error","get","message","reportValidity","validateFieldsNatively","options","fields","field","refs","forEach","toNestErrors","shouldUseNativeValidation","fieldErrors","path","Object","assign","isNameInFieldArray","names","keys","fieldArrayErrors","set","name","escapeBrackets","some","n","match","input","replace","yupResolver","schema","schemaOptions","resolverOptions","values","context","options","Promise","resolve","process","env","NODE_ENV","console","warn","mode","Object","assign","abortEarly","then","result","shouldUseNativeValidation","validateFieldsNatively","raw","errors","e","r","u","_catch","inner","toNestErrors","error","validateAllFieldCriteria","criteriaMode","reduce","previous","path","message","type","types","messages","appendErrors","concat","reject","yup","groupBy","capitalize","MINUTES_IN_HOUR","DAYS_OF_THE_WEEK","convertBreakDurationToHours","breakDuration","hours","minutes","__name","calculateTotalWorkHours","dailySchedules","totalWorkHours","total","daySchedule","findLastConsecutiveDay","startDay","dailySchedule","daysScheduled","day","idx","currentDay","nextDay","nextDayIdx","shouldSummarizeSchedule","shouldSummarizeBreaks","buildWorkScheduleSummary","activeScheduleDays","groupedWorkHours","groupBy","activeBreakDays","groupedBreaks","workHoursSummary","scheduleTimes","sameDailySchedule","start_time","end_time","timeSummary","lastConsecutiveDay","allDaysAreConsecutive","capitalize","summary","breakSummary","isFirstGroup","sameDailyBreaks","breakString","breakText","breakIdx","calculateHours","checked","break_duration_minutes","startHour","startMin","endHour","endMin","startTotalMin","dayMap","getShortWeekday","fullName","jsx","jsxs","fieldSchema","__name","schema","formSchema","WorkScheduleSelectionForm","defaultSchedule","onSubmit","openDialog","setOpenDialog","useState","transformedSchedule","DAYS_OF_THE_WEEK","day","existingSchedule","schedule","getShortWeekday","form","useForm","o","handleSubmit","watch","reset","control","formState","fields","useFieldArray","watchedSchedule","handleSubmitWorkingHours","data","checked","calculateHours","handleCancel","Dialog","DialogTrigger","Button","DialogContent","DialogHeader","DialogTitle","Form","field","index","currentDay","calculatedHours","React","CheckBoxField","TextField","WorkScheduleField","props","components","useFormFields","setValue","useFormContext","currentSchedule","setCurrentSchedule","workHoursSummary","breakSummary","buildWorkScheduleSummary","totalWorkHours","calculateTotalWorkHours","useEffect","CustomWorkScheduleField","FormField","fieldState","value","useEffect","useState","jsx","jsxs","MultiSelectFieldDefault","__name","field","fieldState","fieldData","selected","setSelected","useState","name","label","description","options","selectedOptions","option","useEffect","FormItem","FormLabel","FormControl","MultiSelect","rawValues","values","value","FormDescription","FormMessage","jsx","MultiSelectField","label","name","options","defaultValue","description","onChange","component","rest","control","useFormContext","components","useFormFields","FormField","field","fieldState","Component","MultiSelectFieldDefault","customSelectFieldProps","__name","value","jsx","MoneyField","__name","props","NumberField","baseFields","CheckBoxField","TextField","EmailField","MoneyField","SelectField","MultiSelectField","RadioGroupField","NumberField","FileUploadField","DatePickerField","TextAreaField","CountryField","HiddenField","WorkScheduleField","AlertCircle","jsx","jsxs","StatementDefault","data","title","description","severity","variant","Alert","AlertCircle","AlertTitle","AlertDescription","__name","jsx","Statement","title","description","severity","components","useFormFields","Component","StatementDefault","sanitizeHtml","__name","Fragment","jsx","jsxs","DefaultToggleButton","__name","isExpanded","onToggle","className","props","Button","cn","FieldSetField","label","name","fields","description","components","statement","isFlatFieldset","extra","variant","features","meta","helpCenter","watch","setValue","trigger","formState","useFormContext","formComponents","useFormFields","stateField","fieldNames","fieldName","watchedValues","prevValuesRef","useRef","triggerTimeoutRef","toggleExpanded","useEffect","currentValues","previousValues","hasBeenSubmitted","hasChanged","i","ToggleComponent","contentId","headerId","ZendeskTriggerButton","sanitizeHtml","field","FieldComponent","baseFields","Component","Statement"]}
@@ -1,2 +1,2 @@
1
- import{a as dt,b as pt}from"./chunk-ZOTFS35J.js";import{c as et,d as nt}from"./chunk-ELXVVBRD.js";import{a as at,b as it,c as ct,e as st,f as lt,g as mt,h as ut}from"./chunk-OAPK6TR7.js";import{a as ot,b as rt}from"./chunk-3UDG4IJO.js";import{a as z,f as Q,h as X,k as Z}from"./chunk-3JVRFY6F.js";import{a as v}from"./chunk-2YTBWEC7.js";import{a as tt}from"./chunk-PJBAQZ6G.js";import{c as f,d as C}from"./chunk-2SO4LW7V.js";import{g as P}from"./chunk-L3Z2G32A.js";import{a as p}from"./chunk-P37U34EQ.js";import{useEffect as Kt,useMemo as c,useRef as Yt,useState as k}from"react";var zt={select_country:null,basic_information:"employment_basic_information",contract_details:null,pricing_plan:null,contract_preview:null,review:null},Qt={employment_basic_information:"basic_information"},me=p(({countryCode:ft,externalId:yt,employmentId:y,skipSteps:_t,options:u,initialValues:i})=>{let[a,A]=k(ft||null),[o,St]=k(y),[T,gt]=k(void 0),O=Yt({select_country:{},basic_information:{},contract_details:{},contract_preview:{},pricing_plan:{}}),bt=_t?.includes("select_country")?pt:dt,{fieldValues:w,stepState:e,setFieldValues:Ct,previousStep:wt,nextStep:ht,goToStep:D,setStepValues:B}=tt(bt),{data:s,isLoading:I,refetch:Ft}=z(o),{status:_}=s||{},j=_&&et.includes(_),Vt=_&&!nt.includes(_),Et=c(()=>_==="invited"?"invited":"not_invited",[_]),J=X(u),q=lt(),N=it(),Pt=st(),{mutateAsync:vt}=v(J),{mutateAsync:Ot}=v(q),{mutateAsync:Mt}=v(N),{mutateAsync:x}=v(Pt);y&&s?.country?.code&&!a&&A(s.country.code);let{selectCountryForm:M,isLoading:Tt}=Z({jsfModify:u?.jsfModify?.select_country,queryOptions:{enabled:e.currentStep.name==="select_country"}}),{form:U,isLoading:Dt}=ut(o,{jsonSchemaVersion:u?.jsonSchemaVersion,queryOptions:{enabled:e.currentStep.name==="pricing_plan"}}),It=zt[e.currentStep.name]||"contractor_basic_information",jt=Qt[It],Rt=s?.[jt]||{},Lt=p(({form:t,options:r={},query:g={}})=>{let b=Object.keys(w).length>0?{...i,...e.values?.[e.currentStep.name],...w}:{...i,...Rt};return Q({countryCode:a,form:t,fieldValues:b,query:g,options:{...r,queryOptions:{enabled:r.queryOptions?.enabled??!0}}})},"useJSONSchema"),kt=!!(a&&(e.currentStep.name==="basic_information"||y)),At=!!(a&&(e.currentStep.name==="contract_details"||y)),{data:l,isLoading:Bt}=Lt({form:"contractor_basic_information",options:{jsfModify:u?.jsfModify?.basic_information,queryOptions:{enabled:kt},jsonSchemaVersion:u?.jsonSchemaVersion}}),{data:m,isLoading:Jt}=mt({countryCode:a,fieldValues:w,options:{queryOptions:{enabled:At},jsfModify:u?.jsfModify?.contract_details,jsonSchemaVersion:u?.jsonSchemaVersion}}),{data:d}=at({fieldValues:w,options:{queryOptions:{enabled:e.currentStep.name==="contract_preview"}}}),{data:qt,isLoading:Nt}=ct({employmentId:o,contractDocumentId:T,options:{queryOptions:{enabled:!!T}}}),n=c(()=>({select_country:M?.fields||[],basic_information:l?.fields||[],pricing_plan:U?.fields||[],contract_details:m?.fields||[],contract_preview:d?.fields||[],review:[]}),[M?.fields,l?.fields,U?.fields,m?.fields,d?.fields]),xt={select_country:null,basic_information:l?.meta["x-jsf-fieldsets"],pricing_plan:null,contract_details:m?.meta["x-jsf-fieldsets"],contract_preview:null,review:null},{country:Ut,basic_information:H={},contract_details:S={}}=s||{},G=Ut?.code,h=c(()=>C(n.select_country,{country:a||G||""}),[n.select_country,a,G]),F=c(()=>{let t={...i,...H};return C(n.basic_information,t)},[n.basic_information,H,i]),V=c(()=>{let t={...i,...S};return C(n.contract_details,t)},[n.contract_details,S,i]),W=c(()=>{let t={...i,...S};return C(n.contract_preview,t)},[n.contract_preview,S,i]),$=c(()=>{let t={...i,...S};return C(n.pricing_plan,t?.pricing_plan??{})},[n.pricing_plan,S,i]),Ht=c(()=>({select_country:h,basic_information:F,contract_details:V,contract_preview:W,pricing_plan:$}),[h,F,V,W,$]),K=c(()=>!!(!!(y&&j&&e.currentStep.name!=="review")&&!I&&n.basic_information.length>0&&n.contract_details.length>0),[y,j,I,n.basic_information.length,n.contract_details.length,e.currentStep.name]);Kt(()=>{K&&(O.current={select_country:P(h,n.select_country),basic_information:P(F,n.basic_information),contract_details:P(V,n.contract_details),contract_preview:{},pricing_plan:{}},B({select_country:h,basic_information:F,contract_details:V,contract_preview:{},pricing_plan:{},review:{}}),D("review"))},[K,D,h,F,V,B,n.select_country,n.basic_information,n.contract_details]);let Gt=p(t=>{D(t)},"goTo"),Y=p(async t=>M&&e.currentStep.name==="select_country"?t:l&&e.currentStep.name==="basic_information"?await f(t,l?.fields,{isPartialValidation:!1}):m&&e.currentStep.name==="contract_details"?await f(t,m?.fields,{isPartialValidation:!1}):d&&e.currentStep.name==="contract_preview"?await f(t,d?.fields,{isPartialValidation:!1}):e.currentStep.name==="pricing_plan"?t:{},"parseFormValues");async function Wt(t){let r=e.currentStep.name;r in O.current&&(O.current[r]=P(t,n[r]));let g=await Y(t);switch(e.currentStep.name){case"select_country":return A(g.country),Promise.resolve({data:{countryCode:g.country}});case"basic_information":{let R=!o&&a,b=o&&a&&s?.country&&s?.country.code!==a;if(R||b){let L={basic_information:g,type:"contractor",country_code:a,external_id:yt};try{let E=await vt(L),$t=E.data?.data?.employment?.id;return St($t),E}catch(E){throw console.error("Error creating onboarding:",E),E}}else if(o)return Promise.resolve({data:{employmentId:o}});return}case"contract_details":{let b=await Ot({employmentId:o,payload:{contract_document:g}}),L=b.data?.data?.contract_document?.id;return gt(L),b}case"contract_preview":return Mt({employmentId:o,contractDocumentId:T,payload:{signature:t.signature}});case"pricing_plan":return t.subscription==ot?x({employmentId:o,payload:{operation:"downgrade"}}):t.subscription==rt?x({employmentId:o,payload:{operation:"upgrade"}}):Promise.reject({error:"invalid selection"});default:throw new Error("Invalid step state")}}return p(Wt,"onSubmit"),{isLoading:Tt||Bt||I||Jt||Dt||Nt,fieldValues:w,stepState:e,checkFieldUpdates:Ct,back:wt,next:ht,goTo:Gt,onSubmit:Wt,fields:n[e.currentStep.name],meta:{fields:O.current,fieldsets:xt[e.currentStep.name]},parseFormValues:Y,handleValidation:p(async t=>{if(e.currentStep.name==="select_country")return M.handleValidation(t);if(l&&e.currentStep.name==="basic_information"){let r=await f(t,l?.fields,{isPartialValidation:!1});return l?.handleValidation(r)}if(m&&e.currentStep.name==="contract_details"){let r=await f(t,m?.fields,{isPartialValidation:!1});return m?.handleValidation(r)}if(d&&e.currentStep.name==="contract_preview"){let r=await f(t,d?.fields,{isPartialValidation:!1});return d?.handleValidation(r)}return e.currentStep.name==="pricing_plan"?{formErrors:{}}:null},"handleValidation"),initialValues:Ht,employmentId:o,refetchEmployment:Ft,isSubmitting:J.isPending||q.isPending||N.isPending,documentPreviewPdf:qt,canInvite:Vt,isEmploymentReadOnly:j,invitedStatus:Et,employment:s}},"useContractorOnboarding");export{me as a};
2
- //# sourceMappingURL=chunk-SWI3KDSQ.js.map
1
+ import{c as et,d as nt}from"./chunk-ELXVVBRD.js";import{a as at,b as it,c as ct,e as st,f as lt,g as mt,h as ut}from"./chunk-OAPK6TR7.js";import{a as ot,b as rt}from"./chunk-3UDG4IJO.js";import{a as dt,b as pt}from"./chunk-ZOTFS35J.js";import{a as z,f as Q,h as X,k as Z}from"./chunk-3JVRFY6F.js";import{a as v}from"./chunk-2YTBWEC7.js";import{a as tt}from"./chunk-PJBAQZ6G.js";import{c as f,d as C}from"./chunk-2SO4LW7V.js";import{g as P}from"./chunk-L3Z2G32A.js";import{a as p}from"./chunk-P37U34EQ.js";import{useEffect as Kt,useMemo as c,useRef as Yt,useState as k}from"react";var zt={select_country:null,basic_information:"employment_basic_information",contract_details:null,pricing_plan:null,contract_preview:null,review:null},Qt={employment_basic_information:"basic_information"},me=p(({countryCode:ft,externalId:yt,employmentId:y,skipSteps:_t,options:u,initialValues:i})=>{let[a,A]=k(ft||null),[o,St]=k(y),[T,gt]=k(void 0),O=Yt({select_country:{},basic_information:{},contract_details:{},contract_preview:{},pricing_plan:{}}),bt=_t?.includes("select_country")?pt:dt,{fieldValues:w,stepState:e,setFieldValues:Ct,previousStep:wt,nextStep:ht,goToStep:D,setStepValues:B}=tt(bt),{data:s,isLoading:I,refetch:Ft}=z(o),{status:_}=s||{},j=_&&et.includes(_),Vt=_&&!nt.includes(_),Et=c(()=>_==="invited"?"invited":"not_invited",[_]),J=X(u),q=lt(),N=it(),Pt=st(),{mutateAsync:vt}=v(J),{mutateAsync:Ot}=v(q),{mutateAsync:Mt}=v(N),{mutateAsync:x}=v(Pt);y&&s?.country?.code&&!a&&A(s.country.code);let{selectCountryForm:M,isLoading:Tt}=Z({jsfModify:u?.jsfModify?.select_country,queryOptions:{enabled:e.currentStep.name==="select_country"}}),{form:U,isLoading:Dt}=ut(o,{jsonSchemaVersion:u?.jsonSchemaVersion,queryOptions:{enabled:e.currentStep.name==="pricing_plan"}}),It=zt[e.currentStep.name]||"contractor_basic_information",jt=Qt[It],Rt=s?.[jt]||{},Lt=p(({form:t,options:r={},query:g={}})=>{let b=Object.keys(w).length>0?{...i,...e.values?.[e.currentStep.name],...w}:{...i,...Rt};return Q({countryCode:a,form:t,fieldValues:b,query:g,options:{...r,queryOptions:{enabled:r.queryOptions?.enabled??!0}}})},"useJSONSchema"),kt=!!(a&&(e.currentStep.name==="basic_information"||y)),At=!!(a&&(e.currentStep.name==="contract_details"||y)),{data:l,isLoading:Bt}=Lt({form:"contractor_basic_information",options:{jsfModify:u?.jsfModify?.basic_information,queryOptions:{enabled:kt},jsonSchemaVersion:u?.jsonSchemaVersion}}),{data:m,isLoading:Jt}=mt({countryCode:a,fieldValues:w,options:{queryOptions:{enabled:At},jsfModify:u?.jsfModify?.contract_details,jsonSchemaVersion:u?.jsonSchemaVersion}}),{data:d}=at({fieldValues:w,options:{queryOptions:{enabled:e.currentStep.name==="contract_preview"}}}),{data:qt,isLoading:Nt}=ct({employmentId:o,contractDocumentId:T,options:{queryOptions:{enabled:!!T}}}),n=c(()=>({select_country:M?.fields||[],basic_information:l?.fields||[],pricing_plan:U?.fields||[],contract_details:m?.fields||[],contract_preview:d?.fields||[],review:[]}),[M?.fields,l?.fields,U?.fields,m?.fields,d?.fields]),xt={select_country:null,basic_information:l?.meta["x-jsf-fieldsets"],pricing_plan:null,contract_details:m?.meta["x-jsf-fieldsets"],contract_preview:null,review:null},{country:Ut,basic_information:H={},contract_details:S={}}=s||{},G=Ut?.code,h=c(()=>C(n.select_country,{country:a||G||""}),[n.select_country,a,G]),F=c(()=>{let t={...i,...H};return C(n.basic_information,t)},[n.basic_information,H,i]),V=c(()=>{let t={...i,...S};return C(n.contract_details,t)},[n.contract_details,S,i]),W=c(()=>{let t={...i,...S};return C(n.contract_preview,t)},[n.contract_preview,S,i]),$=c(()=>{let t={...i,...S};return C(n.pricing_plan,t?.pricing_plan??{})},[n.pricing_plan,S,i]),Ht=c(()=>({select_country:h,basic_information:F,contract_details:V,contract_preview:W,pricing_plan:$}),[h,F,V,W,$]),K=c(()=>!!(!!(y&&j&&e.currentStep.name!=="review")&&!I&&n.basic_information.length>0&&n.contract_details.length>0),[y,j,I,n.basic_information.length,n.contract_details.length,e.currentStep.name]);Kt(()=>{K&&(O.current={select_country:P(h,n.select_country),basic_information:P(F,n.basic_information),contract_details:P(V,n.contract_details),contract_preview:{},pricing_plan:{}},B({select_country:h,basic_information:F,contract_details:V,contract_preview:{},pricing_plan:{},review:{}}),D("review"))},[K,D,h,F,V,B,n.select_country,n.basic_information,n.contract_details]);let Gt=p(t=>{D(t)},"goTo"),Y=p(async t=>M&&e.currentStep.name==="select_country"?t:l&&e.currentStep.name==="basic_information"?await f(t,l?.fields,{isPartialValidation:!1}):m&&e.currentStep.name==="contract_details"?await f(t,m?.fields,{isPartialValidation:!1}):d&&e.currentStep.name==="contract_preview"?await f(t,d?.fields,{isPartialValidation:!1}):e.currentStep.name==="pricing_plan"?t:{},"parseFormValues");async function Wt(t){let r=e.currentStep.name;r in O.current&&(O.current[r]=P(t,n[r]));let g=await Y(t);switch(e.currentStep.name){case"select_country":return A(g.country),Promise.resolve({data:{countryCode:g.country}});case"basic_information":{let R=!o&&a,b=o&&a&&s?.country&&s?.country.code!==a;if(R||b){let L={basic_information:g,type:"contractor",country_code:a,external_id:yt};try{let E=await vt(L),$t=E.data?.data?.employment?.id;return St($t),E}catch(E){throw console.error("Error creating onboarding:",E),E}}else if(o)return Promise.resolve({data:{employmentId:o}});return}case"contract_details":{let b=await Ot({employmentId:o,payload:{contract_document:g}}),L=b.data?.data?.contract_document?.id;return gt(L),b}case"contract_preview":return Mt({employmentId:o,contractDocumentId:T,payload:{signature:t.signature}});case"pricing_plan":return t.subscription==ot?x({employmentId:o,payload:{operation:"downgrade"}}):t.subscription==rt?x({employmentId:o,payload:{operation:"upgrade"}}):Promise.reject({error:"invalid selection"});default:throw new Error("Invalid step state")}}return p(Wt,"onSubmit"),{isLoading:Tt||Bt||I||Jt||Dt||Nt,fieldValues:w,stepState:e,checkFieldUpdates:Ct,back:wt,next:ht,goTo:Gt,onSubmit:Wt,fields:n[e.currentStep.name],meta:{fields:O.current,fieldsets:xt[e.currentStep.name]},parseFormValues:Y,handleValidation:p(async t=>{if(e.currentStep.name==="select_country")return M.handleValidation(t);if(l&&e.currentStep.name==="basic_information"){let r=await f(t,l?.fields,{isPartialValidation:!1});return l?.handleValidation(r)}if(m&&e.currentStep.name==="contract_details"){let r=await f(t,m?.fields,{isPartialValidation:!1});return m?.handleValidation(r)}if(d&&e.currentStep.name==="contract_preview"){let r=await f(t,d?.fields,{isPartialValidation:!1});return d?.handleValidation(r)}return e.currentStep.name==="pricing_plan"?{formErrors:{}}:null},"handleValidation"),initialValues:Ht,employmentId:o,refetchEmployment:Ft,isSubmitting:J.isPending||q.isPending||N.isPending,documentPreviewPdf:qt,canInvite:Vt,isEmploymentReadOnly:j,invitedStatus:Et,employment:s}},"useContractorOnboarding");export{me as a};
2
+ //# sourceMappingURL=chunk-4P5BLP5U.js.map
@@ -1,2 +1,2 @@
1
- import{a as F}from"./chunk-VC66HET6.js";import{b as u}from"./chunk-LNV36S6D.js";import{f as l,g as p}from"./chunk-66N57DKF.js";import{c as f}from"./chunk-2SO4LW7V.js";import{b as _}from"./chunk-TVZAFTPT.js";import{a}from"./chunk-P37U34EQ.js";import{useEffect as w}from"react";import{jsx as r}from"react/jsx-runtime";var R=["effective_date","reason_for_change","reason_for_change_description","additional_comments","additional_comments_toggle"];function x({onSubmit:b,onError:m,onSuccess:A}){let{formId:C,contractAmendment:{checkFieldUpdates:h,fields:s,onSubmit:y,stepState:S,initialValues:i,handleValidation:g}}=_(),V=u(g),e=l({resolver:V,defaultValues:S.values?.form||i,shouldUnregister:!0,mode:"onBlur"});w(()=>{let t=e?.watch(o=>{(Object.keys(e.formState.dirtyFields).length>0||e.formState.isDirty)&&h(o)});return()=>t?.unsubscribe()},[]);let v=a(async t=>{let o=!1;for(let[c,P]of Object.entries(t))if(!R.includes(c)&&i[c]!==P){o=!0;break}if(!o)return m?.({message:"no_changes_detected_contract_details"});let d=await f(t,s,{isPartialValidation:!1});await b?.(d);let n=await y(t);n.error?m?.(n.error):await A?.(n.data)},"handleSubmit");return r(p,{...e,children:r("form",{id:C,"data-testid":"contract-amendment-form",onSubmit:e.handleSubmit(v),className:"space-y-4 RemoteFlows__ContractAmendmentForm",children:r(F,{fields:s})})})}a(x,"ContractAmendmentForm");export{x as a};
2
- //# sourceMappingURL=chunk-4Y3PH3Z7.js.map
1
+ import{a as F}from"./chunk-LD2UDBK4.js";import{b as u}from"./chunk-LNV36S6D.js";import{f as l,g as p}from"./chunk-66N57DKF.js";import{c as f}from"./chunk-2SO4LW7V.js";import{b as _}from"./chunk-TVZAFTPT.js";import{a}from"./chunk-P37U34EQ.js";import{useEffect as w}from"react";import{jsx as r}from"react/jsx-runtime";var R=["effective_date","reason_for_change","reason_for_change_description","additional_comments","additional_comments_toggle"];function x({onSubmit:b,onError:m,onSuccess:A}){let{formId:C,contractAmendment:{checkFieldUpdates:h,fields:s,onSubmit:y,stepState:S,initialValues:i,handleValidation:g}}=_(),V=u(g),e=l({resolver:V,defaultValues:S.values?.form||i,shouldUnregister:!0,mode:"onBlur"});w(()=>{let t=e?.watch(o=>{(Object.keys(e.formState.dirtyFields).length>0||e.formState.isDirty)&&h(o)});return()=>t?.unsubscribe()},[]);let v=a(async t=>{let o=!1;for(let[c,P]of Object.entries(t))if(!R.includes(c)&&i[c]!==P){o=!0;break}if(!o)return m?.({message:"no_changes_detected_contract_details"});let d=await f(t,s,{isPartialValidation:!1});await b?.(d);let n=await y(t);n.error?m?.(n.error):await A?.(n.data)},"handleSubmit");return r(p,{...e,children:r("form",{id:C,"data-testid":"contract-amendment-form",onSubmit:e.handleSubmit(v),className:"space-y-4 RemoteFlows__ContractAmendmentForm",children:r(F,{fields:s})})})}a(x,"ContractAmendmentForm");export{x as a};
2
+ //# sourceMappingURL=chunk-5VPMZXGU.js.map
@@ -1,2 +1,2 @@
1
- import{a as ke}from"./chunk-VAIBLWOY.js";import{a as Be}from"./chunk-4C7Y76IS.js";import{a as Oe,b as Me,c as Pe,d as Te,f as Le,g as we}from"./chunk-ELXVVBRD.js";import{a as ye,b as pe,c as _e,f as Se,g as be,h as ge,i as Fe,j as Ee,k as he,m as Ve}from"./chunk-3JVRFY6F.js";import{a as v}from"./chunk-2YTBWEC7.js";import{a as Ce}from"./chunk-PJBAQZ6G.js";import{c as V,d as L,f as W}from"./chunk-2SO4LW7V.js";import{g as C}from"./chunk-L3Z2G32A.js";import{a as l}from"./chunk-P37U34EQ.js";import{useEffect as st,useMemo as d,useRef as rt,useState as Re}from"react";import ct from"lodash.mergewith";import{jsx as qe}from"react/jsx-runtime";var lt={employment_basic_information:"basic_information",contract_details:"contract_details"},mt={select_country:null,basic_information:"employment_basic_information",contract_details:"contract_details",benefits:null,review:null},dt=l(({isLoadingBasicInformationForm:f,isLoadingContractDetailsForm:I,isLoadingEmployment:j,isLoadingBenefitsOffersSchema:A,isLoadingBenefitOffers:i,isLoadingCompany:D,isLoadingCountries:O,employmentStatus:a,employmentId:_,currentStepName:s,basicInformationFields:J,contractDetailsFields:r})=>{let M=f||I||j||A||i||D||O,c=a&&Pe.includes(a),w=a&&!Te.includes(a),B=!!(_&&c&&s!=="review"),k=M||B,R=!!(B&&!M&&J.length>0&&r.length>0);return{isLoading:k,isNavigatingToReview:R,isEmploymentReadOnly:c,canInvite:w}},"getLoadingStates"),Vt=l(({employmentId:f,companyId:I,countryCode:j,type:A,options:i,skipSteps:D,externalId:O,initialValues:a})=>{let _=rt({select_country:{},basic_information:{},contract_details:{},benefits:{}}),[s,J]=Re(f),[r,M]=Re(j||null),{data:c,isLoading:w,refetch:B}=ye(s);f&&c?.country?.code&&!r&&M(c.country.code);let{data:k,isLoading:R}=_e(s),{data:q,isLoading:G,refetch:Ne}=pe(I),ve=D?.includes("select_country")?Me:Oe,{fieldValues:S,stepState:n,setFieldValues:Ie,previousStep:je,nextStep:Ae,goToStep:x,setStepValues:$}=Ce(ve),{selectCountryForm:N,isLoading:z}=he({jsfModify:i?.jsfModify?.select_country,queryOptions:{enabled:n.currentStep.name==="select_country"}}),K=ge(i),Y=Fe(i),Q=Ee(i),De=Ve(),{mutateAsync:Je}=v(K),{mutateAsync:X}=v(Y),{mutateAsync:xe}=v(Q),Ue=mt[n.currentStep.name]||"employment_basic_information",He=lt[Ue],We=c?.[He]||{},Z=l(({form:e,options:o={},query:m={},jsonSchemaVersion:h})=>{let H=Object.keys(S).length>0?{...a,...n.values?.[n.currentStep.name],...S}:{...a,...We};return Se({countryCode:r,form:e,fieldValues:H,query:m,options:{...o,queryOptions:{enabled:o.queryOptions?.enabled??!0}},jsonSchemaVersion:h})},"useJSONSchema"),Ge=!!(r&&(n.currentStep.name==="basic_information"||f)),$e=!!(r&&(n.currentStep.name==="contract_details"||f)),{data:u,isLoading:ee}=Z({form:"employment_basic_information",options:{jsfModify:i?.jsfModify?.basic_information,queryOptions:{enabled:Ge}},jsonSchemaVersion:Le}),b=i?.jsfModify?.contract_details?.fields?.annual_gross_salary,U=b&&typeof b=="object"&&"presentation"in b?b.presentation:void 0,te=i?.jsfModify?.contract_details?.fields?.equity_compensation,ze=d(()=>({fields:{annual_gross_salary:{...b,presentation:{annual_gross_salary_conversion_properties:{label:U?.annual_gross_salary_conversion_properties?.label,description:U?.annual_gross_salary_conversion_properties?.description},desiredCurrency:q?.desired_currency,Component:l(e=>qe(Be,{desiredCurrency:q?.desired_currency||"",...e}),"Component")}},equity_compensation:{...te,presentation:{calculateDynamicProperties:l((e,o)=>{let m=e.equity_compensation?.offer_equity_compensation,h=o?.meta?.cost;return{extra:qe(ke,{offerEquity:m,equityCost:h})}},"calculateDynamicProperties")}}}}),[b,U,q?.desired_currency,te]),Ke=we(i,r),{data:y,isLoading:ne}=Z({form:"contract_details",query:{employment_id:s},options:{jsfModify:{...i?.jsfModify?.contract_details,fields:{...i?.jsfModify?.contract_details?.fields,...ze.fields}},queryOptions:{enabled:$e}},jsonSchemaVersion:Ke}),{data:P,isLoading:oe}=be(s,S,i),ie=d(()=>{if(n.currentStep.name==="benefits"){let e={...n.values?.[n.currentStep.name],...S};return ct({},k,e)}return{}},[n.currentStep.name,k,n.values,S]),t=d(()=>({select_country:N?.fields||[],basic_information:u?.fields||[],contract_details:y?.fields||[],benefits:P?.fields||[],review:[]}),[N?.fields,u?.fields,y?.fields,P?.fields]),Ye={select_country:null,basic_information:u?.meta["x-jsf-fieldsets"],contract_details:y?.meta["x-jsf-fieldsets"],benefits:null,review:null},{country:Qe,basic_information:ae={},contract_details:se={},status:re}=c||{},ce=Qe?.code,le=n.currentStep.name,g=d(()=>L(t.select_country,{country:r||ce||""}),[t.select_country,r,ce]),F=d(()=>{let e={...a,...ae};return L(t.basic_information,e)},[t.basic_information,ae,a]),p=d(()=>{let e={...a,...se};return L(t.contract_details,e)},[t.contract_details,se,a]),E=d(()=>{let e={...a,...ie};return L(t.benefits,e)},[t.benefits,ie,a]),Xe=d(()=>c?{select_country:g,basic_information:W(t.basic_information,F),contract_details:c?.contract_details!==null?W(t.contract_details,p):p,benefits:E}:{select_country:g,basic_information:F,contract_details:p,benefits:E},[g,F,p,E,c,t]),{isLoading:Ze,isNavigatingToReview:me,isEmploymentReadOnly:et,canInvite:tt}=d(()=>dt({isLoadingBasicInformationForm:ee,isLoadingContractDetailsForm:ne,isLoadingEmployment:w,isLoadingBenefitsOffersSchema:oe,isLoadingBenefitOffers:R,isLoadingCompany:G,isLoadingCountries:z,employmentId:f,employmentStatus:re,basicInformationFields:t.basic_information,contractDetailsFields:t.contract_details,currentStepName:le}),[ee,ne,w,oe,R,G,z,f,re,t.basic_information,t.contract_details,le]);st(()=>{me&&(_.current={select_country:C(g,t.select_country),basic_information:C(F,t.basic_information),contract_details:C(p,t.contract_details),benefits:C(E,t.benefits)},$({select_country:g,basic_information:F,contract_details:p,benefits:E,review:{}}),x("review"))},[F,E,p,x,me,g,$,t.basic_information,t.benefits,t.contract_details,t.select_country]);let de=l(async e=>N&&n.currentStep.name==="select_country"?e:u&&n.currentStep.name==="basic_information"?await V(e,u?.fields,{isPartialValidation:!1}):y&&n.currentStep.name==="contract_details"?await V(e,y?.fields,{isPartialValidation:!1}):{},"parseFormValues");async function nt(e){let o=n.currentStep.name;o in _.current&&(_.current[o]=C(e,t[o]));let m=await de(e);switch(Ne(),n.currentStep.name){case"select_country":return M(m.country),Promise.resolve({data:{countryCode:m.country}});case"basic_information":{let h=!s&&r,fe=s&&r&&c?.country&&c?.country.code!==r;if(h||fe){let H={basic_information:m,type:A,country_code:r,external_id:O};try{let T=await Je(H),ue=T.data?.data?.employment?.id;return J(ue),await De.mutateAsync({employmentId:ue,eligible_to_work_in_residing_country:"citizen",employer_or_work_restrictions:!1}),T}catch(T){throw console.error("Error creating onboarding:",T),T}}else if(s)return X({employmentId:s,basic_information:m,pricing_plan_details:{frequency:"monthly"},external_id:O});return}case"contract_details":return X({employmentId:s,external_id:O,...{contract_details:m,pricing_plan_details:{frequency:"monthly"}}});case"benefits":return xe({employmentId:s,...e})}}l(nt,"onSubmit");function ot(){je()}l(ot,"back");function it(){Ae()}l(it,"next");function at(e){x(e)}return l(at,"goTo"),{employmentId:s,creditRiskStatus:q?.default_legal_entity_credit_risk_status,fieldValues:S,stepState:n,fields:t[n.currentStep.name],isLoading:Ze,isSubmitting:K.isPending||Y.isPending||Q.isPending,initialValues:Xe,handleValidation:l(async e=>{if(n.currentStep.name==="select_country")return N.handleValidation(e);if(n.currentStep.name==="benefits"&&P){let o=await V(e,P?.fields,{isPartialValidation:!1});return P?.handleValidation(o)}if(u&&n.currentStep.name==="basic_information"){let o=await V(e,u?.fields,{isPartialValidation:!1});return u?.handleValidation(o)}if(y&&n.currentStep.name==="contract_details"){let o=await V(e,y?.fields,{isPartialValidation:!1});return y?.handleValidation(o)}return null},"handleValidation"),checkFieldUpdates:Ie,parseFormValues:de,onSubmit:nt,back:ot,next:it,goTo:at,meta:{fields:_.current,fieldsets:Ye[n.currentStep.name]},refetchEmployment:B,employment:c,isEmploymentReadOnly:et,canInvite:tt}},"useOnboarding");export{Vt as a};
2
- //# sourceMappingURL=chunk-SGTUQ7OX.js.map
1
+ import{a as ke}from"./chunk-VAIBLWOY.js";import{a as Be}from"./chunk-F53TRJ4K.js";import{a as Oe,b as Me,c as Pe,d as Te,f as Le,g as we}from"./chunk-ELXVVBRD.js";import{a as ye,b as pe,c as _e,f as Se,g as be,h as ge,i as Fe,j as Ee,k as he,m as Ve}from"./chunk-3JVRFY6F.js";import{a as v}from"./chunk-2YTBWEC7.js";import{a as Ce}from"./chunk-PJBAQZ6G.js";import{c as V,d as L,f as W}from"./chunk-2SO4LW7V.js";import{g as C}from"./chunk-L3Z2G32A.js";import{a as l}from"./chunk-P37U34EQ.js";import{useEffect as st,useMemo as d,useRef as rt,useState as Re}from"react";import ct from"lodash.mergewith";import{jsx as qe}from"react/jsx-runtime";var lt={employment_basic_information:"basic_information",contract_details:"contract_details"},mt={select_country:null,basic_information:"employment_basic_information",contract_details:"contract_details",benefits:null,review:null},dt=l(({isLoadingBasicInformationForm:f,isLoadingContractDetailsForm:I,isLoadingEmployment:j,isLoadingBenefitsOffersSchema:A,isLoadingBenefitOffers:i,isLoadingCompany:D,isLoadingCountries:O,employmentStatus:a,employmentId:_,currentStepName:s,basicInformationFields:J,contractDetailsFields:r})=>{let M=f||I||j||A||i||D||O,c=a&&Pe.includes(a),w=a&&!Te.includes(a),B=!!(_&&c&&s!=="review"),k=M||B,R=!!(B&&!M&&J.length>0&&r.length>0);return{isLoading:k,isNavigatingToReview:R,isEmploymentReadOnly:c,canInvite:w}},"getLoadingStates"),Vt=l(({employmentId:f,companyId:I,countryCode:j,type:A,options:i,skipSteps:D,externalId:O,initialValues:a})=>{let _=rt({select_country:{},basic_information:{},contract_details:{},benefits:{}}),[s,J]=Re(f),[r,M]=Re(j||null),{data:c,isLoading:w,refetch:B}=ye(s);f&&c?.country?.code&&!r&&M(c.country.code);let{data:k,isLoading:R}=_e(s),{data:q,isLoading:G,refetch:Ne}=pe(I),ve=D?.includes("select_country")?Me:Oe,{fieldValues:S,stepState:n,setFieldValues:Ie,previousStep:je,nextStep:Ae,goToStep:x,setStepValues:$}=Ce(ve),{selectCountryForm:N,isLoading:z}=he({jsfModify:i?.jsfModify?.select_country,queryOptions:{enabled:n.currentStep.name==="select_country"}}),K=ge(i),Y=Fe(i),Q=Ee(i),De=Ve(),{mutateAsync:Je}=v(K),{mutateAsync:X}=v(Y),{mutateAsync:xe}=v(Q),Ue=mt[n.currentStep.name]||"employment_basic_information",He=lt[Ue],We=c?.[He]||{},Z=l(({form:e,options:o={},query:m={},jsonSchemaVersion:h})=>{let H=Object.keys(S).length>0?{...a,...n.values?.[n.currentStep.name],...S}:{...a,...We};return Se({countryCode:r,form:e,fieldValues:H,query:m,options:{...o,queryOptions:{enabled:o.queryOptions?.enabled??!0}},jsonSchemaVersion:h})},"useJSONSchema"),Ge=!!(r&&(n.currentStep.name==="basic_information"||f)),$e=!!(r&&(n.currentStep.name==="contract_details"||f)),{data:u,isLoading:ee}=Z({form:"employment_basic_information",options:{jsfModify:i?.jsfModify?.basic_information,queryOptions:{enabled:Ge}},jsonSchemaVersion:Le}),b=i?.jsfModify?.contract_details?.fields?.annual_gross_salary,U=b&&typeof b=="object"&&"presentation"in b?b.presentation:void 0,te=i?.jsfModify?.contract_details?.fields?.equity_compensation,ze=d(()=>({fields:{annual_gross_salary:{...b,presentation:{annual_gross_salary_conversion_properties:{label:U?.annual_gross_salary_conversion_properties?.label,description:U?.annual_gross_salary_conversion_properties?.description},desiredCurrency:q?.desired_currency,Component:l(e=>qe(Be,{desiredCurrency:q?.desired_currency||"",...e}),"Component")}},equity_compensation:{...te,presentation:{calculateDynamicProperties:l((e,o)=>{let m=e.equity_compensation?.offer_equity_compensation,h=o?.meta?.cost;return{extra:qe(ke,{offerEquity:m,equityCost:h})}},"calculateDynamicProperties")}}}}),[b,U,q?.desired_currency,te]),Ke=we(i,r),{data:y,isLoading:ne}=Z({form:"contract_details",query:{employment_id:s},options:{jsfModify:{...i?.jsfModify?.contract_details,fields:{...i?.jsfModify?.contract_details?.fields,...ze.fields}},queryOptions:{enabled:$e}},jsonSchemaVersion:Ke}),{data:P,isLoading:oe}=be(s,S,i),ie=d(()=>{if(n.currentStep.name==="benefits"){let e={...n.values?.[n.currentStep.name],...S};return ct({},k,e)}return{}},[n.currentStep.name,k,n.values,S]),t=d(()=>({select_country:N?.fields||[],basic_information:u?.fields||[],contract_details:y?.fields||[],benefits:P?.fields||[],review:[]}),[N?.fields,u?.fields,y?.fields,P?.fields]),Ye={select_country:null,basic_information:u?.meta["x-jsf-fieldsets"],contract_details:y?.meta["x-jsf-fieldsets"],benefits:null,review:null},{country:Qe,basic_information:ae={},contract_details:se={},status:re}=c||{},ce=Qe?.code,le=n.currentStep.name,g=d(()=>L(t.select_country,{country:r||ce||""}),[t.select_country,r,ce]),F=d(()=>{let e={...a,...ae};return L(t.basic_information,e)},[t.basic_information,ae,a]),p=d(()=>{let e={...a,...se};return L(t.contract_details,e)},[t.contract_details,se,a]),E=d(()=>{let e={...a,...ie};return L(t.benefits,e)},[t.benefits,ie,a]),Xe=d(()=>c?{select_country:g,basic_information:W(t.basic_information,F),contract_details:c?.contract_details!==null?W(t.contract_details,p):p,benefits:E}:{select_country:g,basic_information:F,contract_details:p,benefits:E},[g,F,p,E,c,t]),{isLoading:Ze,isNavigatingToReview:me,isEmploymentReadOnly:et,canInvite:tt}=d(()=>dt({isLoadingBasicInformationForm:ee,isLoadingContractDetailsForm:ne,isLoadingEmployment:w,isLoadingBenefitsOffersSchema:oe,isLoadingBenefitOffers:R,isLoadingCompany:G,isLoadingCountries:z,employmentId:f,employmentStatus:re,basicInformationFields:t.basic_information,contractDetailsFields:t.contract_details,currentStepName:le}),[ee,ne,w,oe,R,G,z,f,re,t.basic_information,t.contract_details,le]);st(()=>{me&&(_.current={select_country:C(g,t.select_country),basic_information:C(F,t.basic_information),contract_details:C(p,t.contract_details),benefits:C(E,t.benefits)},$({select_country:g,basic_information:F,contract_details:p,benefits:E,review:{}}),x("review"))},[F,E,p,x,me,g,$,t.basic_information,t.benefits,t.contract_details,t.select_country]);let de=l(async e=>N&&n.currentStep.name==="select_country"?e:u&&n.currentStep.name==="basic_information"?await V(e,u?.fields,{isPartialValidation:!1}):y&&n.currentStep.name==="contract_details"?await V(e,y?.fields,{isPartialValidation:!1}):{},"parseFormValues");async function nt(e){let o=n.currentStep.name;o in _.current&&(_.current[o]=C(e,t[o]));let m=await de(e);switch(Ne(),n.currentStep.name){case"select_country":return M(m.country),Promise.resolve({data:{countryCode:m.country}});case"basic_information":{let h=!s&&r,fe=s&&r&&c?.country&&c?.country.code!==r;if(h||fe){let H={basic_information:m,type:A,country_code:r,external_id:O};try{let T=await Je(H),ue=T.data?.data?.employment?.id;return J(ue),await De.mutateAsync({employmentId:ue,eligible_to_work_in_residing_country:"citizen",employer_or_work_restrictions:!1}),T}catch(T){throw console.error("Error creating onboarding:",T),T}}else if(s)return X({employmentId:s,basic_information:m,pricing_plan_details:{frequency:"monthly"},external_id:O});return}case"contract_details":return X({employmentId:s,external_id:O,...{contract_details:m,pricing_plan_details:{frequency:"monthly"}}});case"benefits":return xe({employmentId:s,...e})}}l(nt,"onSubmit");function ot(){je()}l(ot,"back");function it(){Ae()}l(it,"next");function at(e){x(e)}return l(at,"goTo"),{employmentId:s,creditRiskStatus:q?.default_legal_entity_credit_risk_status,fieldValues:S,stepState:n,fields:t[n.currentStep.name],isLoading:Ze,isSubmitting:K.isPending||Y.isPending||Q.isPending,initialValues:Xe,handleValidation:l(async e=>{if(n.currentStep.name==="select_country")return N.handleValidation(e);if(n.currentStep.name==="benefits"&&P){let o=await V(e,P?.fields,{isPartialValidation:!1});return P?.handleValidation(o)}if(u&&n.currentStep.name==="basic_information"){let o=await V(e,u?.fields,{isPartialValidation:!1});return u?.handleValidation(o)}if(y&&n.currentStep.name==="contract_details"){let o=await V(e,y?.fields,{isPartialValidation:!1});return y?.handleValidation(o)}return null},"handleValidation"),checkFieldUpdates:Ie,parseFormValues:de,onSubmit:nt,back:ot,next:it,goTo:at,meta:{fields:_.current,fieldsets:Ye[n.currentStep.name]},refetchEmployment:B,employment:c,isEmploymentReadOnly:et,canInvite:tt}},"useOnboarding");export{Vt as a};
2
+ //# sourceMappingURL=chunk-7WTIUK53.js.map
@@ -1,2 +1,2 @@
1
- import{a as m}from"./chunk-I4S5X7NU.js";import{b as s}from"./chunk-PGWKJ6FK.js";import{b as t}from"./chunk-2YTBWEC7.js";import{a}from"./chunk-P37U34EQ.js";import{jsx as E}from"react/jsx-runtime";function b({onSubmit:d,onSuccess:l,onError:n}){let{onboardingBag:r}=s(),f=a(async e=>{try{let i=await r.parseFormValues(e);await d?.(i);let o=await r.onSubmit(e);if(o?.data){await l?.(o?.data),r?.next();return}if(o?.error){let c=t(o?.fieldErrors||[],r.meta?.fields?.basic_information);n?.({error:o?.error,rawError:o?.rawError,fieldErrors:c})}}catch(i){n?.({error:i,rawError:i,fieldErrors:[]})}},"handleSubmit"),p=r.stepState.values?.basic_information||r.initialValues.basic_information;return E(m,{defaultValues:p,onSubmit:f})}a(b,"BasicInformationStep");export{b as a};
2
- //# sourceMappingURL=chunk-LPAKW2MR.js.map
1
+ import{a as m}from"./chunk-XEUZL7O2.js";import{b as s}from"./chunk-PGWKJ6FK.js";import{b as t}from"./chunk-2YTBWEC7.js";import{a}from"./chunk-P37U34EQ.js";import{jsx as E}from"react/jsx-runtime";function b({onSubmit:d,onSuccess:l,onError:n}){let{onboardingBag:r}=s(),f=a(async e=>{try{let i=await r.parseFormValues(e);await d?.(i);let o=await r.onSubmit(e);if(o?.data){await l?.(o?.data),r?.next();return}if(o?.error){let c=t(o?.fieldErrors||[],r.meta?.fields?.basic_information);n?.({error:o?.error,rawError:o?.rawError,fieldErrors:c})}}catch(i){n?.({error:i,rawError:i,fieldErrors:[]})}},"handleSubmit"),p=r.stepState.values?.basic_information||r.initialValues.basic_information;return E(m,{defaultValues:p,onSubmit:f})}a(b,"BasicInformationStep");export{b as a};
2
+ //# sourceMappingURL=chunk-7YY7DH4I.js.map
@@ -1,2 +1,2 @@
1
- import{a as S}from"./chunk-RPTB2HUM.js";import{a as f}from"./chunk-EOV62SUU.js";import{a as p}from"./chunk-2LR4VZUK.js";import{a as s}from"./chunk-2DYRPCHC.js";import{a as m}from"./chunk-MDDI5GLL.js";import{a}from"./chunk-BGNCB335.js";import{a as i}from"./chunk-YWZI5KJN.js";import{a as c}from"./chunk-Z7WBY27D.js";import{a as n}from"./chunk-LPAKW2MR.js";import{a as r}from"./chunk-PGWKJ6FK.js";import{a as e}from"./chunk-SGTUQ7OX.js";import{a as t}from"./chunk-P37U34EQ.js";import{useId as D,useState as P}from"react";import{jsx as R}from"react/jsx-runtime";var L=t(({employmentId:d,companyId:u,countryCode:b,type:l="employee",externalId:v,skipSteps:g,initialValues:B,render:I,options:O})=>{let w=D(),o=e({companyId:u,countryCode:b,employmentId:d,type:l,options:O,skipSteps:g,externalId:v,initialValues:B}),[C,h]=P({showReserveInvoice:!1,showInviteSuccessful:!1});return R(r.Provider,{value:{formId:w,onboardingBag:o,creditScore:C,setCreditScore:h},children:I({onboardingBag:o,components:{BasicInformationStep:n,ContractDetailsStep:s,BenefitsStep:p,SubmitButton:i,SaveDraftButton:S,BackButton:m,OnboardingInvite:a,SelectCountryStep:f,ReviewStep:c}})})},"OnboardingFlow");export{L as a};
2
- //# sourceMappingURL=chunk-R36C4F5D.js.map
1
+ import{a as S}from"./chunk-SGFXAOTZ.js";import{a as f}from"./chunk-ZSX2O4ZJ.js";import{a as p}from"./chunk-TVPY6KPQ.js";import{a as s}from"./chunk-Z47XN6ZT.js";import{a as m}from"./chunk-MDDI5GLL.js";import{a}from"./chunk-M2EKZ2FC.js";import{a as i}from"./chunk-NIGMIGF6.js";import{a as c}from"./chunk-Z7WBY27D.js";import{a as n}from"./chunk-7YY7DH4I.js";import{a as r}from"./chunk-PGWKJ6FK.js";import{a as e}from"./chunk-7WTIUK53.js";import{a as t}from"./chunk-P37U34EQ.js";import{useId as D,useState as P}from"react";import{jsx as R}from"react/jsx-runtime";var L=t(({employmentId:d,companyId:u,countryCode:b,type:l="employee",externalId:v,skipSteps:g,initialValues:B,render:I,options:O})=>{let w=D(),o=e({companyId:u,countryCode:b,employmentId:d,type:l,options:O,skipSteps:g,externalId:v,initialValues:B}),[C,h]=P({showReserveInvoice:!1,showInviteSuccessful:!1});return R(r.Provider,{value:{formId:w,onboardingBag:o,creditScore:C,setCreditScore:h},children:I({onboardingBag:o,components:{BasicInformationStep:n,ContractDetailsStep:s,BenefitsStep:p,SubmitButton:i,SaveDraftButton:S,BackButton:m,OnboardingInvite:a,SelectCountryStep:f,ReviewStep:c}})})},"OnboardingFlow");export{L as a};
2
+ //# sourceMappingURL=chunk-ALRODBM2.js.map