@gusto/embedded-react-sdk 0.51.0 → 0.51.2

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 (530) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/components/Base/useBaseSubmit.js +4 -4
  3. package/dist/components/Base/useBaseSubmit.js.map +1 -1
  4. package/dist/components/Common/DocumentList/DocumentList.d.ts +8 -1
  5. package/dist/components/Common/DocumentList/DocumentList.js +24 -21
  6. package/dist/components/Common/DocumentList/DocumentList.js.map +1 -1
  7. package/dist/components/Common/OnboardingStatusBadge/index.d.ts +2 -2
  8. package/dist/components/Common/OnboardingStatusBadge/index.js.map +1 -1
  9. package/dist/components/Common/TaxInputs/TaxInputs.d.ts +2 -2
  10. package/dist/components/Common/TaxInputs/TaxInputs.js.map +1 -1
  11. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +5 -5
  12. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
  13. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.d.ts +1 -1
  14. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +9 -8
  15. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  16. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +3 -3
  17. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js.map +1 -1
  18. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.d.ts +1 -1
  19. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +9 -8
  20. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  21. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +11 -10
  22. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  23. package/dist/components/Company/BankAccount/BankAccount.js +1 -1
  24. package/dist/components/Company/BankAccount/BankAccount.js.map +1 -1
  25. package/dist/components/Company/BankAccount/BankAccountComponents.d.ts +1 -1
  26. package/dist/components/Company/BankAccount/BankAccountComponents.js.map +1 -1
  27. package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js +1 -1
  28. package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js.map +1 -1
  29. package/dist/components/Company/BankAccount/BankAccountForm/context.js +9 -8
  30. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  31. package/dist/components/Company/BankAccount/BankAccountList/BankAccountList.js +1 -1
  32. package/dist/components/Company/BankAccount/BankAccountList/BankAccountList.js.map +1 -1
  33. package/dist/components/Company/BankAccount/BankAccountList/context.d.ts +1 -1
  34. package/dist/components/Company/BankAccount/BankAccountList/context.js.map +1 -1
  35. package/dist/components/Company/BankAccount/BankAccountVerify/BankAccountVerify.js +1 -1
  36. package/dist/components/Company/BankAccount/BankAccountVerify/BankAccountVerify.js.map +1 -1
  37. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +2 -2
  38. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  39. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.d.ts +2 -2
  40. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +9 -8
  41. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  42. package/dist/components/Company/DocumentSigner/DocumentSigner.js +1 -1
  43. package/dist/components/Company/DocumentSigner/DocumentSigner.js.map +1 -1
  44. package/dist/components/Company/DocumentSigner/documentSignerStateMachine.d.ts +2 -2
  45. package/dist/components/Company/DocumentSigner/documentSignerStateMachine.js.map +1 -1
  46. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/useSignCompanyForm.d.ts +1 -1
  47. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/useSignCompanyForm.js +3 -3
  48. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/useSignCompanyForm.js.map +1 -1
  49. package/dist/components/Company/FederalTaxes/FederalTaxes.js +2 -2
  50. package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
  51. package/dist/components/Company/FederalTaxes/Form.js +1 -1
  52. package/dist/components/Company/FederalTaxes/Form.js.map +1 -1
  53. package/dist/components/Company/FederalTaxes/useFederalTaxes.d.ts +1 -1
  54. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +12 -11
  55. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  56. package/dist/components/Company/Industry/Context.js +12 -11
  57. package/dist/components/Company/Industry/Context.js.map +1 -1
  58. package/dist/components/Company/Industry/Industry.js +2 -2
  59. package/dist/components/Company/Industry/Industry.js.map +1 -1
  60. package/dist/components/Company/Locations/LocationForm/Actions.js +7 -7
  61. package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
  62. package/dist/components/Company/Locations/LocationForm/LocationForm.js +46 -45
  63. package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
  64. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +9 -8
  65. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  66. package/dist/components/Company/Locations/LocationsList/LocationsList.js +1 -1
  67. package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
  68. package/dist/components/Company/Locations/LocationsList/useLocationsList.d.ts +1 -1
  69. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +9 -8
  70. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  71. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +1 -1
  72. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js.map +1 -1
  73. package/dist/components/Company/OnboardingOverview/context.d.ts +1 -1
  74. package/dist/components/Company/OnboardingOverview/context.js +9 -8
  75. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  76. package/dist/components/Company/PaySchedule/PaySchedule.js +1 -1
  77. package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
  78. package/dist/components/Company/PaySchedule/PayScheduleList.js +1 -1
  79. package/dist/components/Company/PaySchedule/PayScheduleList.js.map +1 -1
  80. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.d.ts +2 -2
  81. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js +6 -6
  82. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js.map +1 -1
  83. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +3 -3
  84. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
  85. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js +2 -2
  86. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js.map +1 -1
  87. package/dist/components/Company/StateTaxes/StateTaxesForm/applicableIf.d.ts +1 -1
  88. package/dist/components/Company/StateTaxes/StateTaxesForm/applicableIf.js.map +1 -1
  89. package/dist/components/Company/StateTaxes/StateTaxesForm/context.d.ts +1 -1
  90. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +9 -8
  91. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  92. package/dist/components/Company/StateTaxes/StateTaxesList/List.js +1 -1
  93. package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
  94. package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js +1 -1
  95. package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js.map +1 -1
  96. package/dist/components/Company/StateTaxes/StateTaxesList/context.d.ts +1 -1
  97. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +9 -8
  98. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  99. package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.d.ts +2 -2
  100. package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.js +3 -3
  101. package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.js.map +1 -1
  102. package/dist/components/Contractor/ContractorList/index.js +1 -1
  103. package/dist/components/Contractor/ContractorList/index.js.map +1 -1
  104. package/dist/components/Contractor/ContractorList/useContractorList.d.ts +1 -1
  105. package/dist/components/Contractor/ContractorList/useContractorList.js +1 -1
  106. package/dist/components/Contractor/ContractorList/useContractorList.js.map +1 -1
  107. package/dist/components/Contractor/Documents/DocumentSigner/documentSignerStateMachine.d.ts +1 -1
  108. package/dist/components/Contractor/Documents/DocumentSigner/documentSignerStateMachine.js.map +1 -1
  109. package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.d.ts +3 -1
  110. package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.js +64 -51
  111. package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.js.map +1 -1
  112. package/dist/components/Contractor/Documents/DocumentsList/useContractorDocumentsList/useContractorDocumentsList.d.ts +1 -1
  113. package/dist/components/Contractor/Documents/DocumentsList/useContractorDocumentsList/useContractorDocumentsList.js +1 -1
  114. package/dist/components/Contractor/Documents/DocumentsList/useContractorDocumentsList/useContractorDocumentsList.js.map +1 -1
  115. package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.js +201 -161
  116. package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.js.map +1 -1
  117. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.d.ts +2 -2
  118. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.js +3 -3
  119. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.js.map +1 -1
  120. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.d.ts +1 -1
  121. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.js +55 -54
  122. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.js.map +1 -1
  123. package/dist/components/Contractor/Landing/Landing.js +2 -2
  124. package/dist/components/Contractor/Landing/Landing.js.map +1 -1
  125. package/dist/components/Contractor/NewHireReport/NewHireReport.js +2 -2
  126. package/dist/components/Contractor/NewHireReport/NewHireReport.js.map +1 -1
  127. package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/useContractorBankAccountForm.d.ts +1 -1
  128. package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/useContractorBankAccountForm.js +2 -2
  129. package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/useContractorBankAccountForm.js.map +1 -1
  130. package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodForm/useContractorPaymentMethodForm.d.ts +1 -1
  131. package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodForm/useContractorPaymentMethodForm.js +2 -2
  132. package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodForm/useContractorPaymentMethodForm.js.map +1 -1
  133. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +5 -5
  134. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
  135. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.d.ts +2 -2
  136. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js.map +1 -1
  137. package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.d.ts +2 -2
  138. package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js.map +1 -1
  139. package/dist/components/Contractor/Payments/CreatePayment/GenericBlocker.d.ts +1 -1
  140. package/dist/components/Contractor/Payments/CreatePayment/GenericBlocker.js.map +1 -1
  141. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.d.ts +4 -4
  142. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js.map +1 -1
  143. package/dist/components/Contractor/Payments/CreatePayment/helpers.d.ts +1 -1
  144. package/dist/components/Contractor/Payments/CreatePayment/helpers.js.map +1 -1
  145. package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.js.map +1 -1
  146. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js +3 -3
  147. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js.map +1 -1
  148. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.d.ts +2 -2
  149. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js.map +1 -1
  150. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js +4 -4
  151. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js.map +1 -1
  152. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.d.ts +3 -3
  153. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js.map +1 -1
  154. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js +3 -3
  155. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js.map +1 -1
  156. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.d.ts +3 -3
  157. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.js.map +1 -1
  158. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js +3 -3
  159. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js.map +1 -1
  160. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.d.ts +1 -1
  161. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
  162. package/dist/components/Contractor/Profile/SelfOnboardingContractorProfile.js +1 -1
  163. package/dist/components/Contractor/Profile/SelfOnboardingContractorProfile.js.map +1 -1
  164. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.js +1 -1
  165. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.js.map +1 -1
  166. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.d.ts +1 -1
  167. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js +3 -3
  168. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js.map +1 -1
  169. package/dist/components/Contractor/Submit/Submit.js +3 -3
  170. package/dist/components/Contractor/Submit/Submit.js.map +1 -1
  171. package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.js +1 -1
  172. package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.js.map +1 -1
  173. package/dist/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.js +1 -1
  174. package/dist/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.js.map +1 -1
  175. package/dist/components/Employee/Compensation/management/CompensationEditJobForm/CompensationEditJobForm.js +1 -1
  176. package/dist/components/Employee/Compensation/management/CompensationEditJobForm/CompensationEditJobForm.js.map +1 -1
  177. package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js.map +1 -1
  178. package/dist/components/Employee/Compensation/onboarding/Compensation.d.ts +2 -2
  179. package/dist/components/Employee/Compensation/onboarding/Compensation.js +1 -1
  180. package/dist/components/Employee/Compensation/onboarding/Compensation.js.map +1 -1
  181. package/dist/components/Employee/Compensation/onboarding/CompensationFlowComponents.d.ts +2 -2
  182. package/dist/components/Employee/Compensation/onboarding/CompensationFlowComponents.js.map +1 -1
  183. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsList.js +2 -2
  184. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsList.js.map +1 -1
  185. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.d.ts +1 -1
  186. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.js.map +1 -1
  187. package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js.map +1 -1
  188. package/dist/components/Employee/Compensation/shared/derivePrimaryFlsaStatus.d.ts +1 -1
  189. package/dist/components/Employee/Compensation/shared/derivePrimaryFlsaStatus.js.map +1 -1
  190. package/dist/components/Employee/Compensation/shared/getPendingCompensationChanges.d.ts +2 -2
  191. package/dist/components/Employee/Compensation/shared/getPendingCompensationChanges.js.map +1 -1
  192. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.d.ts +3 -3
  193. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.js.map +1 -1
  194. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.d.ts +4 -4
  195. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js +7 -7
  196. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js.map +1 -1
  197. package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.d.ts +1 -1
  198. package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.js +4 -4
  199. package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.js.map +1 -1
  200. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.d.ts +3 -3
  201. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js +7 -7
  202. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js.map +1 -1
  203. package/dist/components/Employee/Dashboard/Dashboard.js +1 -1
  204. package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
  205. package/dist/components/Employee/Dashboard/dashboardStateMachine.js.map +1 -1
  206. package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js.map +1 -1
  207. package/dist/components/Employee/Deductions/management/deductionsStateMachine.js.map +1 -1
  208. package/dist/components/Employee/Deductions/onboarding/DeductionsList/DeductionsList.d.ts +1 -1
  209. package/dist/components/Employee/Deductions/onboarding/DeductionsList/DeductionsList.js.map +1 -1
  210. package/dist/components/Employee/Deductions/onboarding/deductionsContextualComponents.d.ts +1 -1
  211. package/dist/components/Employee/Deductions/onboarding/deductionsContextualComponents.js.map +1 -1
  212. package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.d.ts +1 -1
  213. package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.js.map +1 -1
  214. package/dist/components/Employee/Deductions/shared/DeductionsForm/DeductionsForm.d.ts +1 -1
  215. package/dist/components/Employee/Deductions/shared/DeductionsForm/DeductionsForm.js.map +1 -1
  216. package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.d.ts +1 -1
  217. package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.js.map +1 -1
  218. package/dist/components/Employee/Deductions/shared/DeleteDeductionDialog.d.ts +1 -1
  219. package/dist/components/Employee/Deductions/shared/DeleteDeductionDialog.js.map +1 -1
  220. package/dist/components/Employee/Deductions/shared/formatDeductionAmount.d.ts +1 -1
  221. package/dist/components/Employee/Deductions/shared/formatDeductionAmount.js.map +1 -1
  222. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.d.ts +1 -1
  223. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.js +1 -1
  224. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.js.map +1 -1
  225. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.d.ts +1 -1
  226. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.js.map +1 -1
  227. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.d.ts +2 -2
  228. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.js +5 -5
  229. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.js.map +1 -1
  230. package/dist/components/Employee/Deductions/shared/useDeductionForm/deductionFormSchema.js +1 -1
  231. package/dist/components/Employee/Deductions/shared/useDeductionForm/deductionFormSchema.js.map +1 -1
  232. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.d.ts +1 -1
  233. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js.map +1 -1
  234. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.d.ts +1 -1
  235. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.js +3 -3
  236. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.js.map +1 -1
  237. package/dist/components/Employee/Deductions/shared/useDeductionsList.d.ts +1 -1
  238. package/dist/components/Employee/Deductions/shared/useDeductionsList.js +2 -2
  239. package/dist/components/Employee/Deductions/shared/useDeductionsList.js.map +1 -1
  240. package/dist/components/Employee/Deductions/shared/useDeleteDeduction.d.ts +1 -1
  241. package/dist/components/Employee/Deductions/shared/useDeleteDeduction.js.map +1 -1
  242. package/dist/components/Employee/Documents/management/DocumentManager.js +2 -2
  243. package/dist/components/Employee/Documents/management/DocumentManager.js.map +1 -1
  244. package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
  245. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js +1 -1
  246. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  247. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.d.ts +1 -1
  248. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +9 -8
  249. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  250. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js +2 -2
  251. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js.map +1 -1
  252. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js +3 -3
  253. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js.map +1 -1
  254. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js +1 -1
  255. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js.map +1 -1
  256. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js +1 -1
  257. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js.map +1 -1
  258. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js +1 -1
  259. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js.map +1 -1
  260. package/dist/components/Employee/Documents/onboarding/DocumentSigner/documentSignerStateMachine.d.ts +1 -1
  261. package/dist/components/Employee/Documents/onboarding/DocumentSigner/documentSignerStateMachine.js.map +1 -1
  262. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js +2 -2
  263. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js.map +1 -1
  264. package/dist/components/Employee/Documents/shared/useDocumentsList/useDocumentsList.d.ts +1 -1
  265. package/dist/components/Employee/Documents/shared/useDocumentsList/useDocumentsList.js +1 -1
  266. package/dist/components/Employee/Documents/shared/useDocumentsList/useDocumentsList.js.map +1 -1
  267. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/useSignEmployeeForm.d.ts +1 -1
  268. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/useSignEmployeeForm.js +3 -3
  269. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/useSignEmployeeForm.js.map +1 -1
  270. package/dist/components/Employee/EmployeeList/onboarding/EmployeeList.js.map +1 -1
  271. package/dist/components/Employee/EmployeeList/onboarding/EmployeeListView.d.ts +1 -1
  272. package/dist/components/Employee/EmployeeList/onboarding/EmployeeListView.js.map +1 -1
  273. package/dist/components/Employee/EmployeeList/shared/useEmployeeList.d.ts +3 -3
  274. package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js +3 -3
  275. package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js.map +1 -1
  276. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/federalTaxesSchema.js +1 -1
  277. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/federalTaxesSchema.js.map +1 -1
  278. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/useFederalTaxesForm.d.ts +1 -1
  279. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/useFederalTaxesForm.js +2 -2
  280. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/useFederalTaxesForm.js.map +1 -1
  281. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesSummary/useFederalTaxesSummary.d.ts +1 -1
  282. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesSummary/useFederalTaxesSummary.js +1 -1
  283. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesSummary/useFederalTaxesSummary.js.map +1 -1
  284. package/dist/components/Employee/HomeAddress/management/HomeAddressEditForm.js.map +1 -1
  285. package/dist/components/Employee/HomeAddress/management/HomeAddressView.d.ts +1 -1
  286. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js.map +1 -1
  287. package/dist/components/Employee/HomeAddress/management/getPendingFutureHomeAddress.d.ts +1 -1
  288. package/dist/components/Employee/HomeAddress/management/getPendingFutureHomeAddress.js.map +1 -1
  289. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.d.ts +1 -1
  290. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js +3 -3
  291. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js.map +1 -1
  292. package/dist/components/Employee/HomeAddress/shared/useHomeAddressSummary/useHomeAddressSummary.d.ts +1 -1
  293. package/dist/components/Employee/HomeAddress/shared/useHomeAddressSummary/useHomeAddressSummary.js +1 -1
  294. package/dist/components/Employee/HomeAddress/shared/useHomeAddressSummary/useHomeAddressSummary.js.map +1 -1
  295. package/dist/components/Employee/Landing/Landing.js +2 -2
  296. package/dist/components/Employee/Landing/Landing.js.map +1 -1
  297. package/dist/components/Employee/OnboardingExecutionFlow/OnboardingExecutionFlowComponents.d.ts +1 -1
  298. package/dist/components/Employee/OnboardingExecutionFlow/OnboardingExecutionFlowComponents.js.map +1 -1
  299. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +2 -2
  300. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js.map +1 -1
  301. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.d.ts +1 -1
  302. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js.map +1 -1
  303. package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.d.ts +1 -1
  304. package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.js.map +1 -1
  305. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankForm.d.ts +1 -1
  306. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankForm.js +1 -1
  307. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankForm.js.map +1 -1
  308. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodForm.d.ts +1 -1
  309. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodForm.js +2 -2
  310. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodForm.js.map +1 -1
  311. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodList.d.ts +2 -2
  312. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodList.js +4 -4
  313. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodList.js.map +1 -1
  314. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsForm.d.ts +2 -2
  315. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsForm.js +3 -3
  316. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsForm.js.map +1 -1
  317. package/dist/components/Employee/Paystubs/shared/usePaystubsList/usePaystubsList.d.ts +1 -1
  318. package/dist/components/Employee/Paystubs/shared/usePaystubsList/usePaystubsList.js +3 -3
  319. package/dist/components/Employee/Paystubs/shared/usePaystubsList/usePaystubsList.js.map +1 -1
  320. package/dist/components/Employee/Profile/onboarding/AdminProfile.js.map +1 -1
  321. package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js +1 -1
  322. package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js.map +1 -1
  323. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.d.ts +1 -1
  324. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js +5 -5
  325. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js.map +1 -1
  326. package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.d.ts +1 -1
  327. package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.js +1 -1
  328. package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.js.map +1 -1
  329. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.js +1 -1
  330. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.js.map +1 -1
  331. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.d.ts +1 -1
  332. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.js +4 -4
  333. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.js.map +1 -1
  334. package/dist/components/Employee/Profile/shared/useWorkAddressForm/fields.d.ts +1 -1
  335. package/dist/components/Employee/Profile/shared/useWorkAddressForm/fields.js.map +1 -1
  336. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.js +1 -1
  337. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.js.map +1 -1
  338. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.d.ts +2 -2
  339. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js +5 -5
  340. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js.map +1 -1
  341. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.d.ts +1 -1
  342. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
  343. package/dist/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.js.map +1 -1
  344. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/__fixtures__/stateTaxesFixtures.d.ts +1 -1
  345. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/__fixtures__/toWireFormat.d.ts +1 -1
  346. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/employeeStateTaxesSchema.d.ts +1 -1
  347. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/employeeStateTaxesSchema.js.map +1 -1
  348. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldMapping.d.ts +1 -1
  349. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldMapping.js.map +1 -1
  350. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fields.d.ts +1 -1
  351. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fields.js.map +1 -1
  352. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.d.ts +1 -1
  353. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.js +2 -2
  354. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.js.map +1 -1
  355. package/dist/components/Employee/StateTaxes/shared/useStateTaxesSummary/useStateTaxesSummary.d.ts +1 -1
  356. package/dist/components/Employee/StateTaxes/shared/useStateTaxesSummary/useStateTaxesSummary.js +1 -1
  357. package/dist/components/Employee/StateTaxes/shared/useStateTaxesSummary/useStateTaxesSummary.js.map +1 -1
  358. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js +9 -9
  359. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js.map +1 -1
  360. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.d.ts +1 -1
  361. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js.map +1 -1
  362. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js +4 -4
  363. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js.map +1 -1
  364. package/dist/components/Employee/WorkAddress/management/WorkAddressEditForm.js.map +1 -1
  365. package/dist/components/Employee/WorkAddress/management/WorkAddressView.d.ts +1 -1
  366. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js.map +1 -1
  367. package/dist/components/Employee/WorkAddress/management/getPendingFutureWorkAddress.d.ts +2 -2
  368. package/dist/components/Employee/WorkAddress/management/getPendingFutureWorkAddress.js.map +1 -1
  369. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.d.ts +1 -1
  370. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js +3 -3
  371. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js.map +1 -1
  372. package/dist/components/Employee/WorkAddress/shared/useEmployeeWorkAddressSummary/useEmployeeWorkAddressSummary.d.ts +1 -1
  373. package/dist/components/Employee/WorkAddress/shared/useEmployeeWorkAddressSummary/useEmployeeWorkAddressSummary.js +1 -1
  374. package/dist/components/Employee/WorkAddress/shared/useEmployeeWorkAddressSummary/useEmployeeWorkAddressSummary.js.map +1 -1
  375. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js +4 -4
  376. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js.map +1 -1
  377. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js +2 -2
  378. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js.map +1 -1
  379. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js +1 -1
  380. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js.map +1 -1
  381. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js +2 -2
  382. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js.map +1 -1
  383. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +3 -3
  384. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js.map +1 -1
  385. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.js +2 -2
  386. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.js.map +1 -1
  387. package/dist/components/Payroll/Dismissal/DismissalFlowComponents.js +1 -1
  388. package/dist/components/Payroll/Dismissal/DismissalFlowComponents.js.map +1 -1
  389. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js +4 -4
  390. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js.map +1 -1
  391. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +8 -7
  392. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  393. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js +1 -1
  394. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js.map +1 -1
  395. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +4 -4
  396. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
  397. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js +1 -1
  398. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js.map +1 -1
  399. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.d.ts +1 -1
  400. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.js +1 -1
  401. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.js.map +1 -1
  402. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js +4 -4
  403. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js.map +1 -1
  404. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js +2 -2
  405. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js.map +1 -1
  406. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +7 -7
  407. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  408. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +5 -5
  409. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  410. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.d.ts +4 -4
  411. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js +5 -5
  412. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
  413. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +3 -3
  414. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
  415. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.d.ts +4 -4
  416. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +1 -1
  417. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  418. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.d.ts +2 -2
  419. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
  420. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.d.ts +1 -1
  421. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js.map +1 -1
  422. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js.map +1 -1
  423. package/dist/components/Payroll/PayrollFlow/PayrollExecutionFlowContextual.js +1 -1
  424. package/dist/components/Payroll/PayrollFlow/PayrollExecutionFlowContextual.js.map +1 -1
  425. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.d.ts +1 -1
  426. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js.map +1 -1
  427. package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js +2 -2
  428. package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js.map +1 -1
  429. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js.map +1 -1
  430. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js +4 -4
  431. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
  432. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.d.ts +2 -2
  433. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  434. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js +2 -2
  435. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -1
  436. package/dist/components/Payroll/PayrollList/PayrollList.js +8 -8
  437. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  438. package/dist/components/Payroll/PayrollList/PayrollListPresentation.d.ts +3 -3
  439. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +1 -1
  440. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  441. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +7 -7
  442. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  443. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +4 -4
  444. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  445. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.d.ts +2 -2
  446. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js.map +1 -1
  447. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/GenericBlocker.d.ts +1 -1
  448. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/GenericBlocker.js.map +1 -1
  449. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js +1 -1
  450. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js.map +1 -1
  451. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.d.ts +1 -1
  452. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  453. package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.d.ts +1 -1
  454. package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.js +2 -2
  455. package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.js.map +1 -1
  456. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js +1 -1
  457. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js.map +1 -1
  458. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js +2 -2
  459. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js.map +1 -1
  460. package/dist/components/Payroll/Transition/TransitionFlowComponents.js +1 -1
  461. package/dist/components/Payroll/Transition/TransitionFlowComponents.js.map +1 -1
  462. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js +4 -4
  463. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js.map +1 -1
  464. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js +3 -3
  465. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js.map +1 -1
  466. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.d.ts +1 -1
  467. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.js.map +1 -1
  468. package/dist/components/Payroll/helpers.d.ts +6 -6
  469. package/dist/components/Payroll/helpers.js +1 -1
  470. package/dist/components/Payroll/helpers.js.map +1 -1
  471. package/dist/components/Payroll/payrollTypes.js +1 -1
  472. package/dist/components/Payroll/payrollTypes.js.map +1 -1
  473. package/dist/components/Payroll/usePreparedPayrollData.d.ts +2 -2
  474. package/dist/components/Payroll/usePreparedPayrollData.js +16 -15
  475. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  476. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.d.ts +1 -1
  477. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js +3 -3
  478. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js.map +1 -1
  479. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js +3 -3
  480. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js.map +1 -1
  481. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.js +3 -3
  482. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.js.map +1 -1
  483. package/dist/components/TimeOff/PolicyList/PolicyList.js +6 -6
  484. package/dist/components/TimeOff/PolicyList/PolicyList.js.map +1 -1
  485. package/dist/components/TimeOff/PolicySettings/PolicySettings.js +30 -29
  486. package/dist/components/TimeOff/PolicySettings/PolicySettings.js.map +1 -1
  487. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.js +1 -1
  488. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.js.map +1 -1
  489. package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.d.ts +1 -1
  490. package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.js.map +1 -1
  491. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js +27 -26
  492. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js.map +1 -1
  493. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js +2 -2
  494. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js.map +1 -1
  495. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentationTypes.d.ts +1 -1
  496. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js +69 -68
  497. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js.map +1 -1
  498. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js +3 -3
  499. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js.map +1 -1
  500. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js +67 -66
  501. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js.map +1 -1
  502. package/dist/contexts/ApiProvider/ApiProvider.js +3 -3
  503. package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
  504. package/dist/contexts/ApiProvider/apiVersion.d.ts +23 -0
  505. package/dist/contexts/ApiProvider/apiVersion.js +6 -0
  506. package/dist/contexts/ApiProvider/apiVersion.js.map +1 -0
  507. package/dist/contexts/ApiProvider/apiVersionHook.js +3 -2
  508. package/dist/contexts/ApiProvider/apiVersionHook.js.map +1 -1
  509. package/dist/contexts/ApiProvider/createSdkQueryClient.d.ts +1 -1
  510. package/dist/contexts/ApiProvider/createSdkQueryClient.js +7 -6
  511. package/dist/contexts/ApiProvider/createSdkQueryClient.js.map +1 -1
  512. package/dist/helpers/apiErrorToList.d.ts +1 -1
  513. package/dist/helpers/apiErrorToList.js.map +1 -1
  514. package/dist/helpers/formattedStrings.d.ts +2 -2
  515. package/dist/helpers/formattedStrings.js.map +1 -1
  516. package/dist/hooks/useCompanyPaymentSpeed.d.ts +1 -1
  517. package/dist/hooks/useCompanyPaymentSpeed.js +1 -1
  518. package/dist/hooks/useCompanyPaymentSpeed.js.map +1 -1
  519. package/dist/i18n/en/Contractor.DocumentsList.json.js +20 -16
  520. package/dist/i18n/en/Contractor.DocumentsList.json.js.map +1 -1
  521. package/dist/i18n/types.d.ts +4 -0
  522. package/dist/models/external.d.ts +204 -204
  523. package/dist/shared/constants.d.ts +1 -1
  524. package/dist/shared/constants.js +2 -2
  525. package/dist/shared/constants.js.map +1 -1
  526. package/dist/types/hooks.d.ts +1 -1
  527. package/dist/types/sdkError.js +3 -3
  528. package/dist/types/sdkError.js.map +1 -1
  529. package/docs/guides/endpoint-inventory.json +1201 -297
  530. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"AdminProfile.js","sources":["../../../../../src/components/Employee/Profile/onboarding/AdminProfile.tsx"],"sourcesContent":["import { useState, useMemo, useEffect } from 'react'\nimport { FormProvider, useForm, useWatch } from 'react-hook-form'\nimport { Trans, useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport { type Employee } from '@gusto/embedded-api-v-2026-02-01/models/components/employee'\nimport { useEmployeeDetailsForm } from '../shared/useEmployeeDetailsForm'\nimport type { EmployeeDetailsOptionalFieldsToRequire } from '../shared/useEmployeeDetailsForm'\nimport { useCurrentHomeAddressForm } from '../shared/useHomeAddressForm'\nimport { useCurrentWorkAddressForm } from '../shared/useWorkAddressForm'\nimport type { UseEmployeeDetailsFormReady } from '../shared/useEmployeeDetailsForm'\nimport type { UseHomeAddressFormReady } from '../shared/useHomeAddressForm'\nimport type { UseWorkAddressFormReady } from '../shared/useWorkAddressForm'\nimport styles from './AdminProfile.module.scss'\nimport type { ProfileProps } from './Profile'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { composeSubmitHandler } from '@/partner-hook-utils/form/composeSubmitHandler'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { Grid } from '@/components/Common/Grid/Grid'\nimport { ActionsLayout, DatePickerField, Flex } from '@/components/Common'\nimport { Form } from '@/components/Common/Form'\nimport { BaseLayout } from '@/components/Base'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, EmployeeOnboardingStatus, type EventType } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary } from '@/i18n/I18n'\n\nconst checkHasCompletedSelfOnboarding = (employee?: Employee) => {\n return (\n employee?.onboarded === true ||\n employee?.onboardingStatus === EmployeeOnboardingStatus.ONBOARDING_COMPLETED ||\n employee?.onboardingStatus === EmployeeOnboardingStatus.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW ||\n employee?.onboardingStatus === EmployeeOnboardingStatus.SELF_ONBOARDING_COMPLETED_BY_EMPLOYEE\n )\n}\n\nfunction computeOptionalFieldsToRequire(\n selfOnboardingActive: boolean,\n): EmployeeDetailsOptionalFieldsToRequire {\n if (selfOnboardingActive) {\n return {\n create: ['email'],\n update: ['firstName', 'lastName', 'email'],\n }\n }\n return {\n create: ['email', 'dateOfBirth', 'ssn'],\n update: ['firstName', 'lastName', 'email', 'dateOfBirth', 'ssn'],\n }\n}\n\n/** @internal */\nexport function AdminProfile({\n companyId,\n employeeId,\n defaultValues,\n isSelfOnboardingEnabled = true,\n className = '',\n dictionary,\n onEvent,\n}: ProfileProps) {\n useI18n('Employee.Profile')\n useI18n('Employee.HomeAddress')\n useComponentDictionary('Employee.Profile', dictionary)\n\n const [resolvedEmployeeId, setResolvedEmployeeId] = useState(employeeId)\n const isCreateMode = !resolvedEmployeeId\n\n const createModeSelfOnboarding =\n isCreateMode && isSelfOnboardingEnabled && (defaultValues?.inviteEmployeeDefault ?? false)\n\n const [selfOnboardingActive, setSelfOnboardingActive] = useState(createModeSelfOnboarding)\n\n const optionalFieldsToRequire = useMemo(\n () => computeOptionalFieldsToRequire(selfOnboardingActive),\n [selfOnboardingActive],\n )\n\n const employeeDetailsDefaults = useMemo(\n () => ({\n ...defaultValues?.employee,\n ...(isCreateMode && { selfOnboarding: createModeSelfOnboarding }),\n }),\n [defaultValues, isCreateMode, createModeSelfOnboarding],\n )\n\n const employeeDetails = useEmployeeDetailsForm({\n companyId,\n employeeId: resolvedEmployeeId,\n withSelfOnboardingField: true,\n optionalFieldsToRequire,\n defaultValues: employeeDetailsDefaults,\n shouldFocusError: false,\n })\n\n const homeAddress = useCurrentHomeAddressForm({\n employeeId: resolvedEmployeeId ?? '',\n withEffectiveDateField: false,\n defaultValues: {\n street1: defaultValues?.homeAddress?.street1,\n street2: defaultValues?.homeAddress?.street2,\n city: defaultValues?.homeAddress?.city,\n state: defaultValues?.homeAddress?.state,\n zip: defaultValues?.homeAddress?.zip,\n },\n shouldFocusError: false,\n })\n\n const workAddress = useCurrentWorkAddressForm({\n companyId,\n employeeId: resolvedEmployeeId ?? '',\n withEffectiveDateField: false,\n shouldFocusError: false,\n })\n\n if (employeeDetails.isLoading || homeAddress.isLoading || workAddress.isLoading) {\n const loadingErrorHandling = composeErrorHandler([employeeDetails, homeAddress, workAddress])\n return <BaseLayout isLoading error={loadingErrorHandling.errors} />\n }\n\n return (\n <AdminProfileReady\n employeeDetails={employeeDetails}\n homeAddress={homeAddress}\n workAddress={workAddress}\n isSelfOnboardingEnabled={isSelfOnboardingEnabled}\n isCreateMode={isCreateMode}\n employeeId={employeeId}\n setResolvedEmployeeId={setResolvedEmployeeId}\n setSelfOnboardingActive={setSelfOnboardingActive}\n onEvent={onEvent}\n className={className}\n />\n )\n}\n\ninterface AdminProfileReadyProps {\n employeeDetails: UseEmployeeDetailsFormReady\n homeAddress: UseHomeAddressFormReady\n workAddress: UseWorkAddressFormReady\n isSelfOnboardingEnabled: boolean\n isCreateMode: boolean\n employeeId?: string\n setResolvedEmployeeId: (id: string) => void\n setSelfOnboardingActive: (active: boolean) => void\n onEvent: (event: EventType, data?: unknown) => void\n className: string\n}\n\nfunction AdminProfileReady({\n employeeDetails,\n homeAddress,\n workAddress,\n isSelfOnboardingEnabled,\n isCreateMode,\n employeeId,\n setResolvedEmployeeId,\n setSelfOnboardingActive,\n onEvent,\n className,\n}: AdminProfileReadyProps) {\n const { t } = useTranslation('Employee.Profile')\n const { t: tHome } = useTranslation('Employee.HomeAddress')\n const { t: tCommon } = useTranslation('common')\n const Components = useComponentContext()\n\n const employee = employeeDetails.data.employee ?? undefined\n const completedSelfOnboarding = checkHasCompletedSelfOnboarding(employee)\n\n const startDateForm = useForm<{ startDate: string }>({\n defaultValues: { startDate: employee?.jobs?.[0]?.hireDate ?? '' },\n mode: 'onSubmit',\n shouldFocusError: false,\n })\n\n const EmployeeFields = employeeDetails.form.Fields\n const HomeAddressFields = homeAddress.form.Fields\n const WorkAddressFields = workAddress.form.Fields\n\n const watchedSelfOnboarding = useWatch({\n control: employeeDetails.form.hookFormInternals.formMethods.control,\n name: 'selfOnboarding',\n })\n\n useEffect(() => {\n setSelfOnboardingActive(watchedSelfOnboarding)\n }, [watchedSelfOnboarding, setSelfOnboardingActive])\n\n const shouldShowHomeAddress = !watchedSelfOnboarding || completedSelfOnboarding\n const shouldShowSsnDob = !watchedSelfOnboarding || completedSelfOnboarding\n\n const activeForms = [\n employeeDetails,\n ...(shouldShowHomeAddress ? [homeAddress] : []),\n workAddress,\n startDateForm,\n ]\n\n const { handleSubmit, errorHandling } = composeSubmitHandler(activeForms, async () => {\n const employeeResult = await employeeDetails.actions.onSubmit({\n onEmployeeCreated: emp => {\n onEvent(componentEvents.EMPLOYEE_CREATED, emp)\n },\n onEmployeeUpdated: emp => {\n onEvent(componentEvents.EMPLOYEE_UPDATED, emp)\n },\n onOnboardingStatusUpdated: status => {\n onEvent(componentEvents.EMPLOYEE_ONBOARDING_STATUS_UPDATED, status)\n },\n })\n if (!employeeResult) return\n\n const newEmployeeId = employeeResult.data.uuid\n const enteredStartDate = startDateForm.getValues('startDate')\n\n if (shouldShowHomeAddress) {\n const homeResult = await homeAddress.actions.onSubmit({\n employeeId: newEmployeeId,\n })\n if (!homeResult) {\n if (!employeeId) setResolvedEmployeeId(newEmployeeId)\n return\n }\n if (homeResult.mode === 'create') {\n onEvent(componentEvents.EMPLOYEE_HOME_ADDRESS_CREATED, homeResult.data)\n } else {\n onEvent(componentEvents.EMPLOYEE_HOME_ADDRESS_UPDATED, homeResult.data)\n }\n }\n\n const workResult = await workAddress.actions.onSubmit(\n {\n onWorkAddressCreated: wa => {\n onEvent(componentEvents.EMPLOYEE_WORK_ADDRESS_CREATED, wa)\n },\n onWorkAddressUpdated: wa => {\n onEvent(componentEvents.EMPLOYEE_WORK_ADDRESS_UPDATED, wa)\n },\n },\n {\n employeeId: newEmployeeId,\n effectiveDate: isCreateMode ? enteredStartDate || undefined : undefined,\n },\n )\n if (!workResult) {\n if (!employeeId) setResolvedEmployeeId(newEmployeeId)\n return\n }\n\n onEvent(componentEvents.EMPLOYEE_PROFILE_DONE, {\n ...employeeResult.data,\n startDate: enteredStartDate,\n })\n })\n\n const isPending =\n employeeDetails.status.isPending || homeAddress.status.isPending || workAddress.status.isPending\n\n const watchedCourtesyWithholding =\n homeAddress.form.hookFormInternals.formMethods.watch('courtesyWithholding')\n\n return (\n <section className={classNames(styles.container, className)}>\n <BaseLayout error={errorHandling.errors}>\n <Form onSubmit={handleSubmit}>\n <Grid gridTemplateColumns=\"1fr\" gap={24}>\n <Flex flexDirection=\"column\" gap={4}>\n <Components.Heading as=\"h2\">{t('title')}</Components.Heading>\n <Components.Text variant=\"supporting\">{t('description')}</Components.Text>\n </Flex>\n\n {isSelfOnboardingEnabled && EmployeeFields.SelfOnboarding && (\n <Components.Box>\n <EmployeeFields.SelfOnboarding\n label={t('selfOnboardingLabel')}\n description={t('selfOnboardingDescription')}\n formHookResult={employeeDetails}\n />\n </Components.Box>\n )}\n <Grid\n gap={{ base: 20, small: 8 }}\n gridTemplateColumns={{ base: '1fr', small: ['1fr', 200] }}\n >\n <EmployeeFields.FirstName\n label={t('firstName')}\n formHookResult={employeeDetails}\n validationMessages={{\n REQUIRED: t('validations.firstName'),\n INVALID_NAME: t('validations.firstName'),\n }}\n />\n <EmployeeFields.MiddleInitial\n label={t('middleInitial')}\n formHookResult={employeeDetails}\n />\n </Grid>\n <EmployeeFields.LastName\n label={t('lastName')}\n formHookResult={employeeDetails}\n validationMessages={{\n REQUIRED: t('validations.lastName'),\n INVALID_NAME: t('validations.lastName'),\n }}\n />\n\n <SDKFormProvider formHookResult={workAddress}>\n <WorkAddressFields.Location\n label={t('workAddress')}\n description={t('workAddressDescription')}\n placeholder={t('workAddressPlaceholder')}\n validationMessages={{ REQUIRED: t('validations.location', { ns: 'common' }) }}\n />\n </SDKFormProvider>\n\n <FormProvider {...startDateForm}>\n <DatePickerField\n name=\"startDate\"\n label={t('startDateLabel')}\n description={t('startDateDescription')}\n isRequired\n errorMessage={t('validations.startDate')}\n />\n </FormProvider>\n\n <EmployeeFields.Email\n label={t('email')}\n description={t('emailDescription')}\n formHookResult={employeeDetails}\n validationMessages={{\n REQUIRED: t('validations.email'),\n INVALID_EMAIL: t('validations.email'),\n }}\n />\n\n {shouldShowSsnDob && (\n <>\n <EmployeeFields.Ssn\n label={t('ssnLabel')}\n formHookResult={employeeDetails}\n validationMessages={{\n INVALID_SSN: t('validations.ssn', { ns: 'common' }),\n REQUIRED: t('validations.ssnRequired', { ns: 'common' }),\n }}\n />\n <EmployeeFields.DateOfBirth\n label={t('dobLabel')}\n formHookResult={employeeDetails}\n validationMessages={{ REQUIRED: t('validations.dob', { ns: 'common' }) }}\n />\n </>\n )}\n\n {shouldShowHomeAddress && (\n <SDKFormProvider formHookResult={homeAddress}>\n <Flex flexDirection=\"column\" gap={4}>\n <Components.Heading as=\"h2\">{tHome('formTitle')}</Components.Heading>\n <Components.Text variant=\"supporting\">{tHome('desc')}</Components.Text>\n </Flex>\n\n <Grid\n gridTemplateColumns={{\n base: '1fr',\n small: ['1fr', '1fr'],\n }}\n gap={20}\n >\n <HomeAddressFields.Street1\n label={tHome('street1')}\n validationMessages={{ REQUIRED: tHome('validations.street1') }}\n />\n <HomeAddressFields.Street2 label={tHome('street2')} />\n <HomeAddressFields.City\n label={tHome('city')}\n validationMessages={{ REQUIRED: tHome('validations.city') }}\n />\n <HomeAddressFields.State\n label={tHome('state')}\n placeholder={tHome('statePlaceholder')}\n validationMessages={{ REQUIRED: tHome('validations.state') }}\n getOptionLabel={(abbr: string) =>\n tCommon(`statesHash.${abbr}`, { defaultValue: abbr })\n }\n />\n <HomeAddressFields.Zip\n label={tHome('zip')}\n validationMessages={{\n REQUIRED: tHome('validations.zip'),\n INVALID_ZIP: tHome('validations.zip'),\n }}\n />\n </Grid>\n <HomeAddressFields.CourtesyWithholding\n label={tHome('courtesyWithholdingLabel')}\n description={\n <>\n {tHome('courtesyWithholdingDescription')}\n <Trans\n t={tHome}\n i18nKey=\"learnMoreCta\"\n components={{\n LearnMoreLink: <Components.Link />,\n }}\n />\n </>\n }\n />\n {watchedCourtesyWithholding && (\n <Components.Alert label={tHome('withholdingTitle')} status=\"warning\">\n <Trans t={tHome} i18nKey=\"withholdingNote\" />\n </Components.Alert>\n )}\n </SDKFormProvider>\n )}\n </Grid>\n <ActionsLayout>\n <Components.Button type=\"submit\" isLoading={isPending}>\n {t('submitCta')}\n </Components.Button>\n </ActionsLayout>\n </Form>\n </BaseLayout>\n </section>\n )\n}\n"],"names":["checkHasCompletedSelfOnboarding","employee","EmployeeOnboardingStatus","computeOptionalFieldsToRequire","selfOnboardingActive","AdminProfile","companyId","employeeId","defaultValues","isSelfOnboardingEnabled","className","dictionary","onEvent","useI18n","useComponentDictionary","resolvedEmployeeId","setResolvedEmployeeId","useState","isCreateMode","createModeSelfOnboarding","setSelfOnboardingActive","optionalFieldsToRequire","useMemo","employeeDetailsDefaults","employeeDetails","useEmployeeDetailsForm","homeAddress","useCurrentHomeAddressForm","workAddress","useCurrentWorkAddressForm","loadingErrorHandling","composeErrorHandler","BaseLayout","jsx","AdminProfileReady","t","useTranslation","tHome","tCommon","Components","useComponentContext","completedSelfOnboarding","startDateForm","useForm","EmployeeFields","HomeAddressFields","WorkAddressFields","watchedSelfOnboarding","useWatch","useEffect","shouldShowHomeAddress","shouldShowSsnDob","activeForms","handleSubmit","errorHandling","composeSubmitHandler","employeeResult","emp","componentEvents","status","newEmployeeId","enteredStartDate","homeResult","wa","isPending","watchedCourtesyWithholding","classNames","styles","jsxs","Form","Grid","Flex","SDKFormProvider","FormProvider","DatePickerField","Fragment","abbr","Trans","ActionsLayout"],"mappings":"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"}
1
+ {"version":3,"file":"AdminProfile.js","sources":["../../../../../src/components/Employee/Profile/onboarding/AdminProfile.tsx"],"sourcesContent":["import { useState, useMemo, useEffect } from 'react'\nimport { FormProvider, useForm, useWatch } from 'react-hook-form'\nimport { Trans, useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport { type Employee } from '@gusto/embedded-api/models/components/employee'\nimport { useEmployeeDetailsForm } from '../shared/useEmployeeDetailsForm'\nimport type { EmployeeDetailsOptionalFieldsToRequire } from '../shared/useEmployeeDetailsForm'\nimport { useCurrentHomeAddressForm } from '../shared/useHomeAddressForm'\nimport { useCurrentWorkAddressForm } from '../shared/useWorkAddressForm'\nimport type { UseEmployeeDetailsFormReady } from '../shared/useEmployeeDetailsForm'\nimport type { UseHomeAddressFormReady } from '../shared/useHomeAddressForm'\nimport type { UseWorkAddressFormReady } from '../shared/useWorkAddressForm'\nimport styles from './AdminProfile.module.scss'\nimport type { ProfileProps } from './Profile'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { composeSubmitHandler } from '@/partner-hook-utils/form/composeSubmitHandler'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { Grid } from '@/components/Common/Grid/Grid'\nimport { ActionsLayout, DatePickerField, Flex } from '@/components/Common'\nimport { Form } from '@/components/Common/Form'\nimport { BaseLayout } from '@/components/Base'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, EmployeeOnboardingStatus, type EventType } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary } from '@/i18n/I18n'\n\nconst checkHasCompletedSelfOnboarding = (employee?: Employee) => {\n return (\n employee?.onboarded === true ||\n employee?.onboardingStatus === EmployeeOnboardingStatus.ONBOARDING_COMPLETED ||\n employee?.onboardingStatus === EmployeeOnboardingStatus.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW ||\n employee?.onboardingStatus === EmployeeOnboardingStatus.SELF_ONBOARDING_COMPLETED_BY_EMPLOYEE\n )\n}\n\nfunction computeOptionalFieldsToRequire(\n selfOnboardingActive: boolean,\n): EmployeeDetailsOptionalFieldsToRequire {\n if (selfOnboardingActive) {\n return {\n create: ['email'],\n update: ['firstName', 'lastName', 'email'],\n }\n }\n return {\n create: ['email', 'dateOfBirth', 'ssn'],\n update: ['firstName', 'lastName', 'email', 'dateOfBirth', 'ssn'],\n }\n}\n\n/** @internal */\nexport function AdminProfile({\n companyId,\n employeeId,\n defaultValues,\n isSelfOnboardingEnabled = true,\n className = '',\n dictionary,\n onEvent,\n}: ProfileProps) {\n useI18n('Employee.Profile')\n useI18n('Employee.HomeAddress')\n useComponentDictionary('Employee.Profile', dictionary)\n\n const [resolvedEmployeeId, setResolvedEmployeeId] = useState(employeeId)\n const isCreateMode = !resolvedEmployeeId\n\n const createModeSelfOnboarding =\n isCreateMode && isSelfOnboardingEnabled && (defaultValues?.inviteEmployeeDefault ?? false)\n\n const [selfOnboardingActive, setSelfOnboardingActive] = useState(createModeSelfOnboarding)\n\n const optionalFieldsToRequire = useMemo(\n () => computeOptionalFieldsToRequire(selfOnboardingActive),\n [selfOnboardingActive],\n )\n\n const employeeDetailsDefaults = useMemo(\n () => ({\n ...defaultValues?.employee,\n ...(isCreateMode && { selfOnboarding: createModeSelfOnboarding }),\n }),\n [defaultValues, isCreateMode, createModeSelfOnboarding],\n )\n\n const employeeDetails = useEmployeeDetailsForm({\n companyId,\n employeeId: resolvedEmployeeId,\n withSelfOnboardingField: true,\n optionalFieldsToRequire,\n defaultValues: employeeDetailsDefaults,\n shouldFocusError: false,\n })\n\n const homeAddress = useCurrentHomeAddressForm({\n employeeId: resolvedEmployeeId ?? '',\n withEffectiveDateField: false,\n defaultValues: {\n street1: defaultValues?.homeAddress?.street1,\n street2: defaultValues?.homeAddress?.street2,\n city: defaultValues?.homeAddress?.city,\n state: defaultValues?.homeAddress?.state,\n zip: defaultValues?.homeAddress?.zip,\n },\n shouldFocusError: false,\n })\n\n const workAddress = useCurrentWorkAddressForm({\n companyId,\n employeeId: resolvedEmployeeId ?? '',\n withEffectiveDateField: false,\n shouldFocusError: false,\n })\n\n if (employeeDetails.isLoading || homeAddress.isLoading || workAddress.isLoading) {\n const loadingErrorHandling = composeErrorHandler([employeeDetails, homeAddress, workAddress])\n return <BaseLayout isLoading error={loadingErrorHandling.errors} />\n }\n\n return (\n <AdminProfileReady\n employeeDetails={employeeDetails}\n homeAddress={homeAddress}\n workAddress={workAddress}\n isSelfOnboardingEnabled={isSelfOnboardingEnabled}\n isCreateMode={isCreateMode}\n employeeId={employeeId}\n setResolvedEmployeeId={setResolvedEmployeeId}\n setSelfOnboardingActive={setSelfOnboardingActive}\n onEvent={onEvent}\n className={className}\n />\n )\n}\n\ninterface AdminProfileReadyProps {\n employeeDetails: UseEmployeeDetailsFormReady\n homeAddress: UseHomeAddressFormReady\n workAddress: UseWorkAddressFormReady\n isSelfOnboardingEnabled: boolean\n isCreateMode: boolean\n employeeId?: string\n setResolvedEmployeeId: (id: string) => void\n setSelfOnboardingActive: (active: boolean) => void\n onEvent: (event: EventType, data?: unknown) => void\n className: string\n}\n\nfunction AdminProfileReady({\n employeeDetails,\n homeAddress,\n workAddress,\n isSelfOnboardingEnabled,\n isCreateMode,\n employeeId,\n setResolvedEmployeeId,\n setSelfOnboardingActive,\n onEvent,\n className,\n}: AdminProfileReadyProps) {\n const { t } = useTranslation('Employee.Profile')\n const { t: tHome } = useTranslation('Employee.HomeAddress')\n const { t: tCommon } = useTranslation('common')\n const Components = useComponentContext()\n\n const employee = employeeDetails.data.employee ?? undefined\n const completedSelfOnboarding = checkHasCompletedSelfOnboarding(employee)\n\n const startDateForm = useForm<{ startDate: string }>({\n defaultValues: { startDate: employee?.jobs?.[0]?.hireDate ?? '' },\n mode: 'onSubmit',\n shouldFocusError: false,\n })\n\n const EmployeeFields = employeeDetails.form.Fields\n const HomeAddressFields = homeAddress.form.Fields\n const WorkAddressFields = workAddress.form.Fields\n\n const watchedSelfOnboarding = useWatch({\n control: employeeDetails.form.hookFormInternals.formMethods.control,\n name: 'selfOnboarding',\n })\n\n useEffect(() => {\n setSelfOnboardingActive(watchedSelfOnboarding)\n }, [watchedSelfOnboarding, setSelfOnboardingActive])\n\n const shouldShowHomeAddress = !watchedSelfOnboarding || completedSelfOnboarding\n const shouldShowSsnDob = !watchedSelfOnboarding || completedSelfOnboarding\n\n const activeForms = [\n employeeDetails,\n ...(shouldShowHomeAddress ? [homeAddress] : []),\n workAddress,\n startDateForm,\n ]\n\n const { handleSubmit, errorHandling } = composeSubmitHandler(activeForms, async () => {\n const employeeResult = await employeeDetails.actions.onSubmit({\n onEmployeeCreated: emp => {\n onEvent(componentEvents.EMPLOYEE_CREATED, emp)\n },\n onEmployeeUpdated: emp => {\n onEvent(componentEvents.EMPLOYEE_UPDATED, emp)\n },\n onOnboardingStatusUpdated: status => {\n onEvent(componentEvents.EMPLOYEE_ONBOARDING_STATUS_UPDATED, status)\n },\n })\n if (!employeeResult) return\n\n const newEmployeeId = employeeResult.data.uuid\n const enteredStartDate = startDateForm.getValues('startDate')\n\n if (shouldShowHomeAddress) {\n const homeResult = await homeAddress.actions.onSubmit({\n employeeId: newEmployeeId,\n })\n if (!homeResult) {\n if (!employeeId) setResolvedEmployeeId(newEmployeeId)\n return\n }\n if (homeResult.mode === 'create') {\n onEvent(componentEvents.EMPLOYEE_HOME_ADDRESS_CREATED, homeResult.data)\n } else {\n onEvent(componentEvents.EMPLOYEE_HOME_ADDRESS_UPDATED, homeResult.data)\n }\n }\n\n const workResult = await workAddress.actions.onSubmit(\n {\n onWorkAddressCreated: wa => {\n onEvent(componentEvents.EMPLOYEE_WORK_ADDRESS_CREATED, wa)\n },\n onWorkAddressUpdated: wa => {\n onEvent(componentEvents.EMPLOYEE_WORK_ADDRESS_UPDATED, wa)\n },\n },\n {\n employeeId: newEmployeeId,\n effectiveDate: isCreateMode ? enteredStartDate || undefined : undefined,\n },\n )\n if (!workResult) {\n if (!employeeId) setResolvedEmployeeId(newEmployeeId)\n return\n }\n\n onEvent(componentEvents.EMPLOYEE_PROFILE_DONE, {\n ...employeeResult.data,\n startDate: enteredStartDate,\n })\n })\n\n const isPending =\n employeeDetails.status.isPending || homeAddress.status.isPending || workAddress.status.isPending\n\n const watchedCourtesyWithholding =\n homeAddress.form.hookFormInternals.formMethods.watch('courtesyWithholding')\n\n return (\n <section className={classNames(styles.container, className)}>\n <BaseLayout error={errorHandling.errors}>\n <Form onSubmit={handleSubmit}>\n <Grid gridTemplateColumns=\"1fr\" gap={24}>\n <Flex flexDirection=\"column\" gap={4}>\n <Components.Heading as=\"h2\">{t('title')}</Components.Heading>\n <Components.Text variant=\"supporting\">{t('description')}</Components.Text>\n </Flex>\n\n {isSelfOnboardingEnabled && EmployeeFields.SelfOnboarding && (\n <Components.Box>\n <EmployeeFields.SelfOnboarding\n label={t('selfOnboardingLabel')}\n description={t('selfOnboardingDescription')}\n formHookResult={employeeDetails}\n />\n </Components.Box>\n )}\n <Grid\n gap={{ base: 20, small: 8 }}\n gridTemplateColumns={{ base: '1fr', small: ['1fr', 200] }}\n >\n <EmployeeFields.FirstName\n label={t('firstName')}\n formHookResult={employeeDetails}\n validationMessages={{\n REQUIRED: t('validations.firstName'),\n INVALID_NAME: t('validations.firstName'),\n }}\n />\n <EmployeeFields.MiddleInitial\n label={t('middleInitial')}\n formHookResult={employeeDetails}\n />\n </Grid>\n <EmployeeFields.LastName\n label={t('lastName')}\n formHookResult={employeeDetails}\n validationMessages={{\n REQUIRED: t('validations.lastName'),\n INVALID_NAME: t('validations.lastName'),\n }}\n />\n\n <SDKFormProvider formHookResult={workAddress}>\n <WorkAddressFields.Location\n label={t('workAddress')}\n description={t('workAddressDescription')}\n placeholder={t('workAddressPlaceholder')}\n validationMessages={{ REQUIRED: t('validations.location', { ns: 'common' }) }}\n />\n </SDKFormProvider>\n\n <FormProvider {...startDateForm}>\n <DatePickerField\n name=\"startDate\"\n label={t('startDateLabel')}\n description={t('startDateDescription')}\n isRequired\n errorMessage={t('validations.startDate')}\n />\n </FormProvider>\n\n <EmployeeFields.Email\n label={t('email')}\n description={t('emailDescription')}\n formHookResult={employeeDetails}\n validationMessages={{\n REQUIRED: t('validations.email'),\n INVALID_EMAIL: t('validations.email'),\n }}\n />\n\n {shouldShowSsnDob && (\n <>\n <EmployeeFields.Ssn\n label={t('ssnLabel')}\n formHookResult={employeeDetails}\n validationMessages={{\n INVALID_SSN: t('validations.ssn', { ns: 'common' }),\n REQUIRED: t('validations.ssnRequired', { ns: 'common' }),\n }}\n />\n <EmployeeFields.DateOfBirth\n label={t('dobLabel')}\n formHookResult={employeeDetails}\n validationMessages={{ REQUIRED: t('validations.dob', { ns: 'common' }) }}\n />\n </>\n )}\n\n {shouldShowHomeAddress && (\n <SDKFormProvider formHookResult={homeAddress}>\n <Flex flexDirection=\"column\" gap={4}>\n <Components.Heading as=\"h2\">{tHome('formTitle')}</Components.Heading>\n <Components.Text variant=\"supporting\">{tHome('desc')}</Components.Text>\n </Flex>\n\n <Grid\n gridTemplateColumns={{\n base: '1fr',\n small: ['1fr', '1fr'],\n }}\n gap={20}\n >\n <HomeAddressFields.Street1\n label={tHome('street1')}\n validationMessages={{ REQUIRED: tHome('validations.street1') }}\n />\n <HomeAddressFields.Street2 label={tHome('street2')} />\n <HomeAddressFields.City\n label={tHome('city')}\n validationMessages={{ REQUIRED: tHome('validations.city') }}\n />\n <HomeAddressFields.State\n label={tHome('state')}\n placeholder={tHome('statePlaceholder')}\n validationMessages={{ REQUIRED: tHome('validations.state') }}\n getOptionLabel={(abbr: string) =>\n tCommon(`statesHash.${abbr}`, { defaultValue: abbr })\n }\n />\n <HomeAddressFields.Zip\n label={tHome('zip')}\n validationMessages={{\n REQUIRED: tHome('validations.zip'),\n INVALID_ZIP: tHome('validations.zip'),\n }}\n />\n </Grid>\n <HomeAddressFields.CourtesyWithholding\n label={tHome('courtesyWithholdingLabel')}\n description={\n <>\n {tHome('courtesyWithholdingDescription')}\n <Trans\n t={tHome}\n i18nKey=\"learnMoreCta\"\n components={{\n LearnMoreLink: <Components.Link />,\n }}\n />\n </>\n }\n />\n {watchedCourtesyWithholding && (\n <Components.Alert label={tHome('withholdingTitle')} status=\"warning\">\n <Trans t={tHome} i18nKey=\"withholdingNote\" />\n </Components.Alert>\n )}\n </SDKFormProvider>\n )}\n </Grid>\n <ActionsLayout>\n <Components.Button type=\"submit\" isLoading={isPending}>\n {t('submitCta')}\n </Components.Button>\n </ActionsLayout>\n </Form>\n </BaseLayout>\n </section>\n )\n}\n"],"names":["checkHasCompletedSelfOnboarding","employee","EmployeeOnboardingStatus","computeOptionalFieldsToRequire","selfOnboardingActive","AdminProfile","companyId","employeeId","defaultValues","isSelfOnboardingEnabled","className","dictionary","onEvent","useI18n","useComponentDictionary","resolvedEmployeeId","setResolvedEmployeeId","useState","isCreateMode","createModeSelfOnboarding","setSelfOnboardingActive","optionalFieldsToRequire","useMemo","employeeDetailsDefaults","employeeDetails","useEmployeeDetailsForm","homeAddress","useCurrentHomeAddressForm","workAddress","useCurrentWorkAddressForm","loadingErrorHandling","composeErrorHandler","BaseLayout","jsx","AdminProfileReady","t","useTranslation","tHome","tCommon","Components","useComponentContext","completedSelfOnboarding","startDateForm","useForm","EmployeeFields","HomeAddressFields","WorkAddressFields","watchedSelfOnboarding","useWatch","useEffect","shouldShowHomeAddress","shouldShowSsnDob","activeForms","handleSubmit","errorHandling","composeSubmitHandler","employeeResult","emp","componentEvents","status","newEmployeeId","enteredStartDate","homeResult","wa","isPending","watchedCourtesyWithholding","classNames","styles","jsxs","Form","Grid","Flex","SDKFormProvider","FormProvider","DatePickerField","Fragment","abbr","Trans","ActionsLayout"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { jsx as e, jsxs as i } from "react/jsx-runtime";
2
2
  import { useState as C } from "react";
3
3
  import { useTranslation as y } from "react-i18next";
4
4
  import U from "classnames";
5
- import { useEmployeeAddressesGetWorkAddresses as k } from "@gusto/embedded-api-v-2026-02-01/react-query/employeeAddressesGetWorkAddresses";
5
+ import { useEmployeeAddressesGetWorkAddresses as k } from "@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses";
6
6
  import { useEmployeeDetailsForm as w } from "../shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js";
7
7
  import { useCurrentHomeAddressForm as x } from "../shared/useHomeAddressForm/useCurrentHomeAddressForm.js";
8
8
  import b from "./EmployeeProfile.module.scss.js";
@@ -1 +1 @@
1
- {"version":3,"file":"EmployeeProfile.js","sources":["../../../../../src/components/Employee/Profile/onboarding/EmployeeProfile.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport { useEmployeeAddressesGetWorkAddresses } from '@gusto/embedded-api-v-2026-02-01/react-query/employeeAddressesGetWorkAddresses'\nimport { useEmployeeDetailsForm } from '../shared/useEmployeeDetailsForm'\nimport type { EmployeeDetailsOptionalFieldsToRequire } from '../shared/useEmployeeDetailsForm'\nimport { useCurrentHomeAddressForm } from '../shared/useHomeAddressForm'\nimport styles from './EmployeeProfile.module.scss'\nimport type { ProfileProps } from './Profile'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { composeSubmitHandler } from '@/partner-hook-utils/form/composeSubmitHandler'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { Grid } from '@/components/Common/Grid/Grid'\nimport { ActionsLayout } from '@/components/Common'\nimport { Form } from '@/components/Common/Form'\nimport { BaseLayout } from '@/components/Base'\nimport { useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary } from '@/i18n/I18n'\nimport { getStreet, getCityStateZip } from '@/helpers/formattedStrings'\n\nconst SELF_OPTIONAL_FIELDS: EmployeeDetailsOptionalFieldsToRequire = {\n create: ['dateOfBirth', 'ssn'],\n update: ['firstName', 'lastName', 'dateOfBirth', 'ssn'],\n}\n\n/** @internal */\nexport function EmployeeProfile({\n companyId,\n employeeId,\n defaultValues,\n className = '',\n dictionary,\n onEvent,\n}: ProfileProps) {\n useI18n('Employee.Profile')\n useI18n('Employee.HomeAddress')\n useComponentDictionary('Employee.Profile', dictionary)\n const { t } = useTranslation('Employee.Profile')\n const { t: tHome } = useTranslation('Employee.HomeAddress')\n const { t: tCommon } = useTranslation('common')\n const Components = useComponentContext()\n\n const [resolvedEmployeeId, setResolvedEmployeeId] = useState(employeeId)\n\n const employeeDetails = useEmployeeDetailsForm({\n companyId,\n employeeId: resolvedEmployeeId,\n withSelfOnboardingField: false,\n optionalFieldsToRequire: SELF_OPTIONAL_FIELDS,\n defaultValues: defaultValues?.employee,\n shouldFocusError: false,\n })\n\n const homeAddress = useCurrentHomeAddressForm({\n employeeId: resolvedEmployeeId ?? '',\n withEffectiveDateField: false,\n defaultValues: {\n street1: defaultValues?.homeAddress?.street1,\n street2: defaultValues?.homeAddress?.street2,\n city: defaultValues?.homeAddress?.city,\n state: defaultValues?.homeAddress?.state,\n zip: defaultValues?.homeAddress?.zip,\n },\n shouldFocusError: false,\n })\n\n const workAddressesQuery = useEmployeeAddressesGetWorkAddresses(\n { employeeId: resolvedEmployeeId ?? '' },\n { enabled: !!resolvedEmployeeId },\n )\n const workAddresses = workAddressesQuery.data?.employeeWorkAddressesList\n const activeWorkAddress = workAddresses?.find(address => address.active)\n\n if (employeeDetails.isLoading || homeAddress.isLoading || workAddressesQuery.isLoading) {\n const loadingErrorHandling = composeErrorHandler([\n employeeDetails,\n homeAddress,\n workAddressesQuery,\n ])\n return <BaseLayout isLoading error={loadingErrorHandling.errors} />\n }\n\n const EmpFields = employeeDetails.form.Fields\n const HomeFields = homeAddress.form.Fields\n\n const submitResult = composeSubmitHandler([employeeDetails, homeAddress], async () => {\n const employeeResult = await employeeDetails.actions.onSubmit({\n onEmployeeCreated: emp => {\n onEvent(componentEvents.EMPLOYEE_CREATED, emp)\n },\n onEmployeeUpdated: emp => {\n onEvent(componentEvents.EMPLOYEE_UPDATED, emp)\n },\n })\n if (!employeeResult) return\n\n const newEmployeeId = employeeResult.data.uuid\n\n const homeResult = await homeAddress.actions.onSubmit({\n employeeId: newEmployeeId,\n })\n if (!homeResult) {\n if (!employeeId) setResolvedEmployeeId(newEmployeeId)\n return\n }\n if (homeResult.mode === 'create') {\n onEvent(componentEvents.EMPLOYEE_HOME_ADDRESS_CREATED, homeResult.data)\n } else {\n onEvent(componentEvents.EMPLOYEE_HOME_ADDRESS_UPDATED, homeResult.data)\n }\n\n onEvent(componentEvents.EMPLOYEE_PROFILE_DONE, employeeResult.data)\n })\n\n const errorHandling = composeErrorHandler([\n submitResult,\n { errorHandling: homeAddress.errorHandling },\n workAddressesQuery,\n ])\n\n const isPending = employeeDetails.status.isPending || homeAddress.status.isPending\n\n return (\n <section className={classNames(styles.container, className)}>\n <BaseLayout error={errorHandling.errors}>\n <Form onSubmit={submitResult.handleSubmit}>\n <Grid gridTemplateColumns=\"1fr\" gap={24}>\n <div>\n <Components.Heading as=\"h2\">{t('title')}</Components.Heading>\n <Components.Text>{t('description')}</Components.Text>\n </div>\n\n <SDKFormProvider formHookResult={employeeDetails}>\n <Grid\n gap={{ base: 20, small: 8 }}\n gridTemplateColumns={{ base: '1fr', small: ['1fr', 200] }}\n >\n <EmpFields.FirstName\n label={t('firstName')}\n validationMessages={{\n REQUIRED: t('validations.firstName'),\n INVALID_NAME: t('validations.firstName'),\n }}\n />\n <EmpFields.MiddleInitial label={t('middleInitial')} />\n </Grid>\n <EmpFields.LastName\n label={t('lastName')}\n validationMessages={{\n REQUIRED: t('validations.lastName'),\n INVALID_NAME: t('validations.lastName'),\n }}\n />\n <EmpFields.Ssn\n label={t('ssnLabel')}\n validationMessages={{\n INVALID_SSN: t('validations.ssn', { ns: 'common' }),\n REQUIRED: t('validations.ssnRequired', { ns: 'common' }),\n }}\n />\n <EmpFields.DateOfBirth\n label={t('dobLabel')}\n validationMessages={{ REQUIRED: t('validations.dob', { ns: 'common' }) }}\n />\n </SDKFormProvider>\n\n <SDKFormProvider formHookResult={homeAddress}>\n <div>\n <Components.Heading as=\"h2\">{tHome('formTitle')}</Components.Heading>\n <Components.Text>{tHome('desc')}</Components.Text>\n </div>\n <Grid\n gridTemplateColumns={{\n base: '1fr',\n small: ['1fr', '1fr'],\n }}\n gap={20}\n >\n <HomeFields.Street1\n label={tHome('street1')}\n validationMessages={{ REQUIRED: tHome('validations.street1') }}\n />\n <HomeFields.Street2 label={tHome('street2')} />\n <HomeFields.City\n label={tHome('city')}\n validationMessages={{ REQUIRED: tHome('validations.city') }}\n />\n <HomeFields.State\n label={tHome('state')}\n placeholder={tHome('statePlaceholder')}\n validationMessages={{ REQUIRED: tHome('validations.state') }}\n getOptionLabel={(abbr: string) =>\n tCommon(`statesHash.${abbr}`, { defaultValue: abbr })\n }\n />\n <HomeFields.Zip\n label={tHome('zip')}\n validationMessages={{\n REQUIRED: tHome('validations.zip'),\n INVALID_ZIP: tHome('validations.zip'),\n }}\n />\n </Grid>\n </SDKFormProvider>\n\n {activeWorkAddress && (\n <section>\n <Components.Heading as=\"h2\">{t('workAddressSectionTitle')}</Components.Heading>\n <Components.Text>{t('workAddressSectionDescription')}</Components.Text>\n <address className={styles.address}>\n <Components.Text>{getStreet(activeWorkAddress)}</Components.Text>\n <Components.Text>{getCityStateZip(activeWorkAddress)}</Components.Text>\n </address>\n </section>\n )}\n </Grid>\n <ActionsLayout>\n <Components.Button type=\"submit\" isLoading={isPending}>\n {t('submitCta')}\n </Components.Button>\n </ActionsLayout>\n </Form>\n </BaseLayout>\n </section>\n )\n}\n"],"names":["SELF_OPTIONAL_FIELDS","EmployeeProfile","companyId","employeeId","defaultValues","className","dictionary","onEvent","useI18n","useComponentDictionary","t","useTranslation","tHome","tCommon","Components","useComponentContext","resolvedEmployeeId","setResolvedEmployeeId","useState","employeeDetails","useEmployeeDetailsForm","homeAddress","useCurrentHomeAddressForm","workAddressesQuery","useEmployeeAddressesGetWorkAddresses","activeWorkAddress","address","loadingErrorHandling","composeErrorHandler","BaseLayout","EmpFields","HomeFields","submitResult","composeSubmitHandler","employeeResult","emp","componentEvents","newEmployeeId","homeResult","errorHandling","isPending","classNames","styles","jsx","Form","jsxs","Grid","SDKFormProvider","abbr","getStreet","getCityStateZip","ActionsLayout"],"mappings":"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"}
1
+ {"version":3,"file":"EmployeeProfile.js","sources":["../../../../../src/components/Employee/Profile/onboarding/EmployeeProfile.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport { useEmployeeAddressesGetWorkAddresses } from '@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses'\nimport { useEmployeeDetailsForm } from '../shared/useEmployeeDetailsForm'\nimport type { EmployeeDetailsOptionalFieldsToRequire } from '../shared/useEmployeeDetailsForm'\nimport { useCurrentHomeAddressForm } from '../shared/useHomeAddressForm'\nimport styles from './EmployeeProfile.module.scss'\nimport type { ProfileProps } from './Profile'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { composeSubmitHandler } from '@/partner-hook-utils/form/composeSubmitHandler'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { Grid } from '@/components/Common/Grid/Grid'\nimport { ActionsLayout } from '@/components/Common'\nimport { Form } from '@/components/Common/Form'\nimport { BaseLayout } from '@/components/Base'\nimport { useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary } from '@/i18n/I18n'\nimport { getStreet, getCityStateZip } from '@/helpers/formattedStrings'\n\nconst SELF_OPTIONAL_FIELDS: EmployeeDetailsOptionalFieldsToRequire = {\n create: ['dateOfBirth', 'ssn'],\n update: ['firstName', 'lastName', 'dateOfBirth', 'ssn'],\n}\n\n/** @internal */\nexport function EmployeeProfile({\n companyId,\n employeeId,\n defaultValues,\n className = '',\n dictionary,\n onEvent,\n}: ProfileProps) {\n useI18n('Employee.Profile')\n useI18n('Employee.HomeAddress')\n useComponentDictionary('Employee.Profile', dictionary)\n const { t } = useTranslation('Employee.Profile')\n const { t: tHome } = useTranslation('Employee.HomeAddress')\n const { t: tCommon } = useTranslation('common')\n const Components = useComponentContext()\n\n const [resolvedEmployeeId, setResolvedEmployeeId] = useState(employeeId)\n\n const employeeDetails = useEmployeeDetailsForm({\n companyId,\n employeeId: resolvedEmployeeId,\n withSelfOnboardingField: false,\n optionalFieldsToRequire: SELF_OPTIONAL_FIELDS,\n defaultValues: defaultValues?.employee,\n shouldFocusError: false,\n })\n\n const homeAddress = useCurrentHomeAddressForm({\n employeeId: resolvedEmployeeId ?? '',\n withEffectiveDateField: false,\n defaultValues: {\n street1: defaultValues?.homeAddress?.street1,\n street2: defaultValues?.homeAddress?.street2,\n city: defaultValues?.homeAddress?.city,\n state: defaultValues?.homeAddress?.state,\n zip: defaultValues?.homeAddress?.zip,\n },\n shouldFocusError: false,\n })\n\n const workAddressesQuery = useEmployeeAddressesGetWorkAddresses(\n { employeeId: resolvedEmployeeId ?? '' },\n { enabled: !!resolvedEmployeeId },\n )\n const workAddresses = workAddressesQuery.data?.employeeWorkAddressesList\n const activeWorkAddress = workAddresses?.find(address => address.active)\n\n if (employeeDetails.isLoading || homeAddress.isLoading || workAddressesQuery.isLoading) {\n const loadingErrorHandling = composeErrorHandler([\n employeeDetails,\n homeAddress,\n workAddressesQuery,\n ])\n return <BaseLayout isLoading error={loadingErrorHandling.errors} />\n }\n\n const EmpFields = employeeDetails.form.Fields\n const HomeFields = homeAddress.form.Fields\n\n const submitResult = composeSubmitHandler([employeeDetails, homeAddress], async () => {\n const employeeResult = await employeeDetails.actions.onSubmit({\n onEmployeeCreated: emp => {\n onEvent(componentEvents.EMPLOYEE_CREATED, emp)\n },\n onEmployeeUpdated: emp => {\n onEvent(componentEvents.EMPLOYEE_UPDATED, emp)\n },\n })\n if (!employeeResult) return\n\n const newEmployeeId = employeeResult.data.uuid\n\n const homeResult = await homeAddress.actions.onSubmit({\n employeeId: newEmployeeId,\n })\n if (!homeResult) {\n if (!employeeId) setResolvedEmployeeId(newEmployeeId)\n return\n }\n if (homeResult.mode === 'create') {\n onEvent(componentEvents.EMPLOYEE_HOME_ADDRESS_CREATED, homeResult.data)\n } else {\n onEvent(componentEvents.EMPLOYEE_HOME_ADDRESS_UPDATED, homeResult.data)\n }\n\n onEvent(componentEvents.EMPLOYEE_PROFILE_DONE, employeeResult.data)\n })\n\n const errorHandling = composeErrorHandler([\n submitResult,\n { errorHandling: homeAddress.errorHandling },\n workAddressesQuery,\n ])\n\n const isPending = employeeDetails.status.isPending || homeAddress.status.isPending\n\n return (\n <section className={classNames(styles.container, className)}>\n <BaseLayout error={errorHandling.errors}>\n <Form onSubmit={submitResult.handleSubmit}>\n <Grid gridTemplateColumns=\"1fr\" gap={24}>\n <div>\n <Components.Heading as=\"h2\">{t('title')}</Components.Heading>\n <Components.Text>{t('description')}</Components.Text>\n </div>\n\n <SDKFormProvider formHookResult={employeeDetails}>\n <Grid\n gap={{ base: 20, small: 8 }}\n gridTemplateColumns={{ base: '1fr', small: ['1fr', 200] }}\n >\n <EmpFields.FirstName\n label={t('firstName')}\n validationMessages={{\n REQUIRED: t('validations.firstName'),\n INVALID_NAME: t('validations.firstName'),\n }}\n />\n <EmpFields.MiddleInitial label={t('middleInitial')} />\n </Grid>\n <EmpFields.LastName\n label={t('lastName')}\n validationMessages={{\n REQUIRED: t('validations.lastName'),\n INVALID_NAME: t('validations.lastName'),\n }}\n />\n <EmpFields.Ssn\n label={t('ssnLabel')}\n validationMessages={{\n INVALID_SSN: t('validations.ssn', { ns: 'common' }),\n REQUIRED: t('validations.ssnRequired', { ns: 'common' }),\n }}\n />\n <EmpFields.DateOfBirth\n label={t('dobLabel')}\n validationMessages={{ REQUIRED: t('validations.dob', { ns: 'common' }) }}\n />\n </SDKFormProvider>\n\n <SDKFormProvider formHookResult={homeAddress}>\n <div>\n <Components.Heading as=\"h2\">{tHome('formTitle')}</Components.Heading>\n <Components.Text>{tHome('desc')}</Components.Text>\n </div>\n <Grid\n gridTemplateColumns={{\n base: '1fr',\n small: ['1fr', '1fr'],\n }}\n gap={20}\n >\n <HomeFields.Street1\n label={tHome('street1')}\n validationMessages={{ REQUIRED: tHome('validations.street1') }}\n />\n <HomeFields.Street2 label={tHome('street2')} />\n <HomeFields.City\n label={tHome('city')}\n validationMessages={{ REQUIRED: tHome('validations.city') }}\n />\n <HomeFields.State\n label={tHome('state')}\n placeholder={tHome('statePlaceholder')}\n validationMessages={{ REQUIRED: tHome('validations.state') }}\n getOptionLabel={(abbr: string) =>\n tCommon(`statesHash.${abbr}`, { defaultValue: abbr })\n }\n />\n <HomeFields.Zip\n label={tHome('zip')}\n validationMessages={{\n REQUIRED: tHome('validations.zip'),\n INVALID_ZIP: tHome('validations.zip'),\n }}\n />\n </Grid>\n </SDKFormProvider>\n\n {activeWorkAddress && (\n <section>\n <Components.Heading as=\"h2\">{t('workAddressSectionTitle')}</Components.Heading>\n <Components.Text>{t('workAddressSectionDescription')}</Components.Text>\n <address className={styles.address}>\n <Components.Text>{getStreet(activeWorkAddress)}</Components.Text>\n <Components.Text>{getCityStateZip(activeWorkAddress)}</Components.Text>\n </address>\n </section>\n )}\n </Grid>\n <ActionsLayout>\n <Components.Button type=\"submit\" isLoading={isPending}>\n {t('submitCta')}\n </Components.Button>\n </ActionsLayout>\n </Form>\n </BaseLayout>\n </section>\n )\n}\n"],"names":["SELF_OPTIONAL_FIELDS","EmployeeProfile","companyId","employeeId","defaultValues","className","dictionary","onEvent","useI18n","useComponentDictionary","t","useTranslation","tHome","tCommon","Components","useComponentContext","resolvedEmployeeId","setResolvedEmployeeId","useState","employeeDetails","useEmployeeDetailsForm","homeAddress","useCurrentHomeAddressForm","workAddressesQuery","useEmployeeAddressesGetWorkAddresses","activeWorkAddress","address","loadingErrorHandling","composeErrorHandler","BaseLayout","EmpFields","HomeFields","submitResult","composeSubmitHandler","employeeResult","emp","componentEvents","newEmployeeId","homeResult","errorHandling","isPending","classNames","styles","jsx","Form","jsxs","Grid","SDKFormProvider","abbr","getStreet","getCityStateZip","ActionsLayout"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { ComponentType } from 'react';
2
2
  import { UseFormProps } from 'react-hook-form';
3
- import { Employee } from '@gusto/embedded-api-v-2026-02-01/models/components/employee';
3
+ import { Employee } from '@gusto/embedded-api/models/components/employee';
4
4
  import { EmployeeDetailsOptionalFieldsToRequire, EmployeeDetailsFormData } from './employeeDetailsSchema';
5
5
  import { FirstNameFieldProps, MiddleInitialFieldProps, LastNameFieldProps, EmailFieldProps, DateOfBirthFieldProps, SsnFieldProps, SelfOnboardingFieldProps } from './fields';
6
6
  import { BaseFormHookReady, FieldMetadata, HookLoadingResult, HookSubmitResult } from '../../../../../partner-hook-utils/types';
@@ -1,11 +1,11 @@
1
1
  import { useMemo as k } from "react";
2
2
  import { useForm as x } from "react-hook-form";
3
3
  import { zodResolver as K } from "@hookform/resolvers/zod";
4
- import { useEmployeesGet as Q } from "@gusto/embedded-api-v-2026-02-01/react-query/employeesGet";
5
- import { useEmployeesCreateMutation as j } from "@gusto/embedded-api-v-2026-02-01/react-query/employeesCreate";
6
- import { useEmployeesUpdateMutation as J } from "@gusto/embedded-api-v-2026-02-01/react-query/employeesUpdate";
7
- import { useEmployeesUpdateOnboardingStatusMutation as X } from "@gusto/embedded-api-v-2026-02-01/react-query/employeesUpdateOnboardingStatus";
8
- import { RFCDate as Z } from "@gusto/embedded-api-v-2026-02-01/types/rfcdate";
4
+ import { useEmployeesGet as Q } from "@gusto/embedded-api/react-query/employeesGet";
5
+ import { useEmployeesCreateMutation as j } from "@gusto/embedded-api/react-query/employeesCreate";
6
+ import { useEmployeesUpdateMutation as J } from "@gusto/embedded-api/react-query/employeesUpdate";
7
+ import { useEmployeesUpdateOnboardingStatusMutation as X } from "@gusto/embedded-api/react-query/employeesUpdateOnboardingStatus";
8
+ import { RFCDate as Z } from "@gusto/embedded-api/types/rfcdate";
9
9
  import { createEmployeeDetailsSchema as $ } from "./employeeDetailsSchema.js";
10
10
  import { SelfOnboardingField as ee, SsnField as te, DateOfBirthField as oe, EmailField as ie, LastNameField as ae, MiddleInitialField as ne, FirstNameField as se } from "./fields.js";
11
11
  import { normalizeToISOString as re } from "../../../../../helpers/dateFormatting.js";
@@ -1 +1 @@
1
- {"version":3,"file":"useEmployeeDetailsForm.js","sources":["../../../../../../src/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useMemo } from 'react'\nimport { useForm } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { Employee } from '@gusto/embedded-api-v-2026-02-01/models/components/employee'\nimport { useEmployeesGet } from '@gusto/embedded-api-v-2026-02-01/react-query/employeesGet'\nimport { useEmployeesCreateMutation } from '@gusto/embedded-api-v-2026-02-01/react-query/employeesCreate'\nimport { useEmployeesUpdateMutation } from '@gusto/embedded-api-v-2026-02-01/react-query/employeesUpdate'\nimport { useEmployeesUpdateOnboardingStatusMutation } from '@gusto/embedded-api-v-2026-02-01/react-query/employeesUpdateOnboardingStatus'\nimport { RFCDate } from '@gusto/embedded-api-v-2026-02-01/types/rfcdate'\nimport {\n createEmployeeDetailsSchema,\n type EmployeeDetailsOptionalFieldsToRequire,\n type EmployeeDetailsFormData,\n type EmployeeDetailsFormOutputs,\n} from './employeeDetailsSchema'\nimport {\n FirstNameField,\n MiddleInitialField,\n LastNameField,\n EmailField,\n DateOfBirthField,\n SsnField,\n SelfOnboardingField,\n} from './fields'\nimport type {\n FirstNameFieldProps,\n MiddleInitialFieldProps,\n LastNameFieldProps,\n EmailFieldProps,\n DateOfBirthFieldProps,\n SsnFieldProps,\n SelfOnboardingFieldProps,\n} from './fields'\nimport { normalizeToISOString } from '@/helpers/dateFormatting'\nimport { useDeriveFieldsMetadata } from '@/partner-hook-utils/form/useDeriveFieldsMetadata'\nimport { useHookFormInternals } from '@/partner-hook-utils/form/useHookFormInternals'\nimport { createGetFormSubmissionValues } from '@/partner-hook-utils/form/getFormSubmissionValues'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseFormHookReady,\n FieldMetadata,\n FieldsMetadata,\n HookLoadingResult,\n HookSubmitResult,\n} from '@/partner-hook-utils/types'\nimport { EmployeeOnboardingStatus } from '@/shared/constants'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { removeNonDigits } from '@/helpers/formattedStrings'\n\nexport type { EmployeeDetailsOptionalFieldsToRequire } from './employeeDetailsSchema'\n\n/** @internal */\nfunction buildEmployeeDetailsFieldsMetadata(\n base: Record<keyof EmployeeDetailsFormData, FieldMetadata>,\n) {\n return {\n firstName: base.firstName,\n middleInitial: base.middleInitial,\n lastName: base.lastName,\n email: base.email,\n dateOfBirth: base.dateOfBirth,\n ssn: base.ssn,\n selfOnboarding: base.selfOnboarding,\n } satisfies FieldsMetadata\n}\n\n/**\n * Optional callbacks passed to {@link UseEmployeeDetailsFormReady.actions.onSubmit | onSubmit}.\n *\n * @remarks\n * Only the callback matching the submit mode fires —\n * `onEmployeeCreated` on create, `onEmployeeUpdated` on update.\n * `onOnboardingStatusUpdated` fires when toggling the self-onboarding\n * switch changes the employee's onboarding status as part of an update.\n *\n * @public\n * @group Utility types\n */\nexport interface EmployeeDetailsSubmitCallbacks {\n /** Fired after a new employee is successfully created. */\n onEmployeeCreated?: (employee: Employee) => void\n /** Fired after an existing employee is successfully updated. */\n onEmployeeUpdated?: (employee: Employee) => void\n /** Fired when an update toggles self-onboarding and the employee's onboarding status changes. */\n onOnboardingStatusUpdated?: (status: unknown) => void\n}\n\n/**\n * Shared options merged into both branches of {@link UseEmployeeDetailsFormProps}.\n *\n * @public\n */\nexport type UseEmployeeDetailsFormSharedProps = {\n /** Whether to expose the self-onboarding toggle as `form.Fields.SelfOnboarding`. Defaults to `true`. */\n withSelfOnboardingField?: boolean\n /** Fields that are optional by default but should be promoted to required for this form instance. */\n optionalFieldsToRequire?: EmployeeDetailsOptionalFieldsToRequire\n /** Initial values applied before any employee data loads. */\n defaultValues?: Partial<EmployeeDetailsFormData>\n /** When validation runs. Forwarded to react-hook-form's `mode`. Defaults to `'onSubmit'`. */\n validationMode?: UseFormProps['mode']\n /** Whether react-hook-form should focus the first error on validation failure. Defaults to `true`. */\n shouldFocusError?: boolean\n}\n\n/**\n * Options for {@link useEmployeeDetailsForm}.\n *\n * @remarks\n * Discriminated by mode: in create mode supply `companyId` and omit\n * `employeeId`; in update mode supply `employeeId` (and optionally\n * `companyId`).\n *\n * @public\n * @group Utility types\n */\nexport type UseEmployeeDetailsFormProps =\n | (UseEmployeeDetailsFormSharedProps & { companyId: string; employeeId?: never })\n | (UseEmployeeDetailsFormSharedProps & { employeeId: string; companyId?: string })\n\n/**\n * The Field components exposed by {@link useEmployeeDetailsForm} as `form.Fields`.\n *\n * @remarks\n * Each entry is a component bound to a specific form field. `SelfOnboarding`\n * may be `undefined` when the field is not toggleable.\n *\n * @public\n */\nexport interface EmployeeDetailsFormFields {\n /** Bound to `firstName`. Text input. */\n FirstName: ComponentType<FirstNameFieldProps>\n /** Bound to `middleInitial`. Text input. */\n MiddleInitial: ComponentType<MiddleInitialFieldProps>\n /** Bound to `lastName`. Text input. */\n LastName: ComponentType<LastNameFieldProps>\n /** Bound to `email`. Text input. */\n Email: ComponentType<EmailFieldProps>\n /** Bound to `dateOfBirth`. Date picker. */\n DateOfBirth: ComponentType<DateOfBirthFieldProps>\n /** Bound to `ssn`. Text input. */\n Ssn: ComponentType<SsnFieldProps>\n /** Bound to `selfOnboarding`. Switch, or `undefined` when the field is not toggleable. */\n SelfOnboarding: ComponentType<SelfOnboardingFieldProps> | undefined\n}\n\n/**\n * The ready-state result returned by {@link useEmployeeDetailsForm} once data has loaded.\n *\n * @remarks\n * Provides the form's `data` snapshot, pending `status`, submit `actions`,\n * error handling, and the `form.Fields` map.\n *\n * @public\n */\nexport interface UseEmployeeDetailsFormReady extends BaseFormHookReady<\n EmployeeDetailsFieldsMetadata,\n EmployeeDetailsFormData,\n EmployeeDetailsFormFields\n> {\n /** The loaded employee data, or `null` in create mode. */\n data: {\n /** The employee being edited, or `null` in create mode. */\n employee: Employee | null\n }\n /** Submit status and form mode. */\n status: {\n /** `true` while the create, update, or onboarding-status mutation is in flight. */\n isPending: boolean\n /** `'create'` when no `employeeId` was supplied, `'update'` otherwise. */\n mode: 'create' | 'update'\n }\n /** Submit and related actions. */\n actions: {\n /** Validates the form and submits the changes. Returns the created or updated employee, or `undefined` when validation fails. */\n onSubmit: (\n callbacks?: EmployeeDetailsSubmitCallbacks,\n ) => Promise<HookSubmitResult<Employee> | undefined>\n }\n}\n\nconst isCurrentlySelfOnboarding = (employee?: Employee) => {\n if (!employee?.onboardingStatus) return false\n const selfOnboardingStatuses: string[] = [\n EmployeeOnboardingStatus.SELF_ONBOARDING_PENDING_INVITE,\n EmployeeOnboardingStatus.SELF_ONBOARDING_INVITED,\n EmployeeOnboardingStatus.SELF_ONBOARDING_INVITED_STARTED,\n EmployeeOnboardingStatus.SELF_ONBOARDING_INVITED_OVERDUE,\n EmployeeOnboardingStatus.SELF_ONBOARDING_COMPLETED_BY_EMPLOYEE,\n EmployeeOnboardingStatus.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW,\n ]\n return selfOnboardingStatuses.includes(employee.onboardingStatus)\n}\n\nconst canToggleSelfOnboarding = (employee?: Employee) => {\n if (!employee) return true\n return (\n employee.onboardingStatus === EmployeeOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE ||\n employee.onboardingStatus === EmployeeOnboardingStatus.SELF_ONBOARDING_PENDING_INVITE\n )\n}\n\n/**\n * Headless hook for creating or updating an employee's profile details — name, email, SSN, date of birth, and self-onboarding preference.\n *\n * @remarks\n * Returns a discriminated union: a loading variant while the underlying\n * employee fetch resolves, and a ready variant exposing the form's data,\n * pending status, submit action, error handling, and bound `Fields`.\n * Self-onboarding is only toggleable when the employee's onboarding status\n * allows it; otherwise `form.Fields.SelfOnboarding` is `undefined`.\n *\n * @param input - See {@link UseEmployeeDetailsFormProps}.\n * @returns A {@link HookLoadingResult} while loading, or a {@link UseEmployeeDetailsFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import {\n * useEmployeeDetailsForm,\n * SDKFormProvider,\n * type UseEmployeeDetailsFormReady,\n * } from '@gusto/embedded-react-sdk'\n *\n * function EmployeeDetailsPage({ companyId, employeeId }: { companyId: string; employeeId?: string }) {\n * const employeeDetails = useEmployeeDetailsForm({ companyId, employeeId })\n *\n * if (employeeDetails.isLoading) return <div>Loading...</div>\n *\n * return <EmployeeDetailsReady employeeDetails={employeeDetails} />\n * }\n *\n * function EmployeeDetailsReady({ employeeDetails }: { employeeDetails: UseEmployeeDetailsFormReady }) {\n * const { Fields } = employeeDetails.form\n *\n * const handleSubmit = async () => {\n * await employeeDetails.actions.onSubmit({\n * onEmployeeCreated: emp => console.log('Created:', emp.uuid),\n * onEmployeeUpdated: emp => console.log('Updated:', emp.uuid),\n * })\n * }\n *\n * return (\n * <SDKFormProvider formHookResult={employeeDetails}>\n * <form onSubmit={e => { e.preventDefault(); void handleSubmit() }}>\n * <Fields.FirstName label=\"First name\" />\n * <Fields.LastName label=\"Last name\" />\n * <Fields.Email label=\"Personal email\" />\n * <Fields.DateOfBirth label=\"Date of birth\" />\n * <Fields.Ssn label=\"Social Security number\" />\n * <button type=\"submit\" disabled={employeeDetails.status.isPending}>Save</button>\n * </form>\n * </SDKFormProvider>\n * )\n * }\n * ```\n */\nexport function useEmployeeDetailsForm({\n companyId,\n employeeId,\n withSelfOnboardingField = true,\n optionalFieldsToRequire,\n defaultValues: partnerDefaults,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n}: UseEmployeeDetailsFormProps): HookLoadingResult | UseEmployeeDetailsFormReady {\n const employeeQuery = useEmployeesGet({ employeeId: employeeId ?? '' }, { enabled: !!employeeId })\n\n const employee = employeeQuery.data?.employee\n\n const isCreateMode = !employeeId\n const isSelfOnboardingToggleable = canToggleSelfOnboarding(employee)\n\n const mode = isCreateMode ? 'create' : 'update'\n\n const [schema, metadataConfig] = useMemo(\n () => createEmployeeDetailsSchema({ mode, optionalFieldsToRequire, hasSsn: employee?.hasSsn }),\n [mode, optionalFieldsToRequire, employee?.hasSsn],\n )\n\n const resolvedDefaults: EmployeeDetailsFormData = {\n firstName: employee?.firstName ?? partnerDefaults?.firstName ?? '',\n middleInitial: employee?.middleInitial ?? partnerDefaults?.middleInitial ?? '',\n lastName: employee?.lastName ?? partnerDefaults?.lastName ?? '',\n email: employee?.email ?? partnerDefaults?.email ?? '',\n dateOfBirth: employee?.dateOfBirth ?? normalizeToISOString(partnerDefaults?.dateOfBirth),\n ssn: partnerDefaults?.ssn ?? '',\n selfOnboarding: partnerDefaults?.selfOnboarding ?? isCurrentlySelfOnboarding(employee),\n }\n\n const formMethods = useForm<EmployeeDetailsFormData, unknown, EmployeeDetailsFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const createEmployeeMutation = useEmployeesCreateMutation()\n const updateEmployeeMutation = useEmployeesUpdateMutation()\n const updateOnboardingStatusMutation = useEmployeesUpdateOnboardingStatusMutation()\n\n const isPending =\n createEmployeeMutation.isPending ||\n updateEmployeeMutation.isPending ||\n updateOnboardingStatusMutation.isPending\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('EmployeeDetailsForm')\n\n const queries = employeeId ? [employeeQuery] : []\n const errorHandling = composeErrorHandler(queries, { submitError, setSubmitError })\n\n const baseMetadata = useDeriveFieldsMetadata(metadataConfig, formMethods.control)\n const fieldsMetadata = buildEmployeeDetailsFieldsMetadata(baseMetadata)\n\n const onSubmit = async (\n callbacks?: EmployeeDetailsSubmitCallbacks,\n ): Promise<HookSubmitResult<Employee> | undefined> => {\n let submitResult: HookSubmitResult<Employee> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: EmployeeDetailsFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const { selfOnboarding, dateOfBirth, ssn, ...body } = payload\n\n const cleanedSsn = ssn ? removeNonDigits(ssn) : undefined\n const hasSsnInput = cleanedSsn && cleanedSsn.length > 0\n\n let updatedEmployee: Employee\n\n if (isCreateMode) {\n if (!companyId) {\n throw new SDKInternalError('companyId is required to create an employee')\n }\n const result = await createEmployeeMutation.mutateAsync({\n request: {\n companyId,\n requestBody: {\n ...body,\n selfOnboarding,\n dateOfBirth: dateOfBirth ? new RFCDate(new Date(dateOfBirth)) : undefined,\n ssn: hasSsnInput ? cleanedSsn : undefined,\n },\n },\n })\n\n if (!result.employee) {\n throw new SDKInternalError('Employee creation failed')\n }\n\n updatedEmployee = result.employee\n callbacks?.onEmployeeCreated?.(updatedEmployee)\n } else {\n if (!employee) {\n throw new SDKInternalError('Employee data is not available')\n }\n\n if (isSelfOnboardingToggleable) {\n const currentIsSelfOnboarding =\n employee.onboardingStatus ===\n EmployeeOnboardingStatus.SELF_ONBOARDING_PENDING_INVITE\n\n if (selfOnboarding !== currentIsSelfOnboarding) {\n const { employeeOnboardingStatus } =\n await updateOnboardingStatusMutation.mutateAsync({\n request: {\n employeeId: employee.uuid,\n requestBody: {\n onboardingStatus: selfOnboarding\n ? EmployeeOnboardingStatus.SELF_ONBOARDING_PENDING_INVITE\n : EmployeeOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE,\n },\n },\n })\n\n callbacks?.onOnboardingStatusUpdated?.(employeeOnboardingStatus)\n }\n }\n\n const result = await updateEmployeeMutation.mutateAsync({\n request: {\n employeeId: employee.uuid,\n requestBody: {\n version: employee.version as string,\n ...body,\n dateOfBirth: dateOfBirth || undefined,\n ssn: hasSsnInput ? cleanedSsn : undefined,\n },\n },\n })\n\n if (!result.employee) {\n throw new SDKInternalError('Employee update failed')\n }\n\n updatedEmployee = result.employee\n callbacks?.onEmployeeUpdated?.(updatedEmployee)\n }\n\n submitResult = {\n mode: isCreateMode ? 'create' : 'update',\n data: updatedEmployee,\n }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const hookFormInternals = useHookFormInternals(formMethods)\n\n const isDataLoading = employeeId ? employeeQuery.isLoading : false\n\n if (isDataLoading || (employeeId && !employee)) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: {\n employee: employee ?? null,\n },\n status: {\n isPending,\n mode: isCreateMode ? ('create' as const) : ('update' as const),\n },\n actions: { onSubmit },\n errorHandling,\n form: {\n Fields: {\n FirstName: FirstNameField,\n MiddleInitial: MiddleInitialField,\n LastName: LastNameField,\n Email: EmailField,\n DateOfBirth: DateOfBirthField,\n Ssn: SsnField,\n SelfOnboarding:\n withSelfOnboardingField && isSelfOnboardingToggleable ? SelfOnboardingField : undefined,\n },\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\n/**\n * Return type of {@link useEmployeeDetailsForm}.\n *\n * @public\n */\nexport type UseEmployeeDetailsFormResult = HookLoadingResult | UseEmployeeDetailsFormReady\n\n/**\n * Shape of `form.fieldsMetadata` returned by {@link useEmployeeDetailsForm}.\n *\n * @public\n */\nexport type EmployeeDetailsFieldsMetadata = ReturnType<typeof buildEmployeeDetailsFieldsMetadata>\n"],"names":["buildEmployeeDetailsFieldsMetadata","base","isCurrentlySelfOnboarding","employee","EmployeeOnboardingStatus","canToggleSelfOnboarding","useEmployeeDetailsForm","companyId","employeeId","withSelfOnboardingField","optionalFieldsToRequire","partnerDefaults","validationMode","shouldFocusError","employeeQuery","useEmployeesGet","isCreateMode","isSelfOnboardingToggleable","mode","schema","metadataConfig","useMemo","createEmployeeDetailsSchema","resolvedDefaults","normalizeToISOString","formMethods","useForm","zodResolver","createEmployeeMutation","useEmployeesCreateMutation","updateEmployeeMutation","useEmployeesUpdateMutation","updateOnboardingStatusMutation","useEmployeesUpdateOnboardingStatusMutation","isPending","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","baseMetadata","useDeriveFieldsMetadata","fieldsMetadata","onSubmit","callbacks","submitResult","resolve","data","payload","selfOnboarding","dateOfBirth","ssn","body","cleanedSsn","removeNonDigits","hasSsnInput","updatedEmployee","SDKInternalError","result","RFCDate","currentIsSelfOnboarding","employeeOnboardingStatus","hookFormInternals","useHookFormInternals","FirstNameField","MiddleInitialField","LastNameField","EmailField","DateOfBirthField","SsnField","SelfOnboardingField","createGetFormSubmissionValues"],"mappings":"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"}
1
+ {"version":3,"file":"useEmployeeDetailsForm.js","sources":["../../../../../../src/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useMemo } from 'react'\nimport { useForm } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport { useEmployeesGet } from '@gusto/embedded-api/react-query/employeesGet'\nimport { useEmployeesCreateMutation } from '@gusto/embedded-api/react-query/employeesCreate'\nimport { useEmployeesUpdateMutation } from '@gusto/embedded-api/react-query/employeesUpdate'\nimport { useEmployeesUpdateOnboardingStatusMutation } from '@gusto/embedded-api/react-query/employeesUpdateOnboardingStatus'\nimport { RFCDate } from '@gusto/embedded-api/types/rfcdate'\nimport {\n createEmployeeDetailsSchema,\n type EmployeeDetailsOptionalFieldsToRequire,\n type EmployeeDetailsFormData,\n type EmployeeDetailsFormOutputs,\n} from './employeeDetailsSchema'\nimport {\n FirstNameField,\n MiddleInitialField,\n LastNameField,\n EmailField,\n DateOfBirthField,\n SsnField,\n SelfOnboardingField,\n} from './fields'\nimport type {\n FirstNameFieldProps,\n MiddleInitialFieldProps,\n LastNameFieldProps,\n EmailFieldProps,\n DateOfBirthFieldProps,\n SsnFieldProps,\n SelfOnboardingFieldProps,\n} from './fields'\nimport { normalizeToISOString } from '@/helpers/dateFormatting'\nimport { useDeriveFieldsMetadata } from '@/partner-hook-utils/form/useDeriveFieldsMetadata'\nimport { useHookFormInternals } from '@/partner-hook-utils/form/useHookFormInternals'\nimport { createGetFormSubmissionValues } from '@/partner-hook-utils/form/getFormSubmissionValues'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseFormHookReady,\n FieldMetadata,\n FieldsMetadata,\n HookLoadingResult,\n HookSubmitResult,\n} from '@/partner-hook-utils/types'\nimport { EmployeeOnboardingStatus } from '@/shared/constants'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { removeNonDigits } from '@/helpers/formattedStrings'\n\nexport type { EmployeeDetailsOptionalFieldsToRequire } from './employeeDetailsSchema'\n\n/** @internal */\nfunction buildEmployeeDetailsFieldsMetadata(\n base: Record<keyof EmployeeDetailsFormData, FieldMetadata>,\n) {\n return {\n firstName: base.firstName,\n middleInitial: base.middleInitial,\n lastName: base.lastName,\n email: base.email,\n dateOfBirth: base.dateOfBirth,\n ssn: base.ssn,\n selfOnboarding: base.selfOnboarding,\n } satisfies FieldsMetadata\n}\n\n/**\n * Optional callbacks passed to {@link UseEmployeeDetailsFormReady.actions.onSubmit | onSubmit}.\n *\n * @remarks\n * Only the callback matching the submit mode fires —\n * `onEmployeeCreated` on create, `onEmployeeUpdated` on update.\n * `onOnboardingStatusUpdated` fires when toggling the self-onboarding\n * switch changes the employee's onboarding status as part of an update.\n *\n * @public\n * @group Utility types\n */\nexport interface EmployeeDetailsSubmitCallbacks {\n /** Fired after a new employee is successfully created. */\n onEmployeeCreated?: (employee: Employee) => void\n /** Fired after an existing employee is successfully updated. */\n onEmployeeUpdated?: (employee: Employee) => void\n /** Fired when an update toggles self-onboarding and the employee's onboarding status changes. */\n onOnboardingStatusUpdated?: (status: unknown) => void\n}\n\n/**\n * Shared options merged into both branches of {@link UseEmployeeDetailsFormProps}.\n *\n * @public\n */\nexport type UseEmployeeDetailsFormSharedProps = {\n /** Whether to expose the self-onboarding toggle as `form.Fields.SelfOnboarding`. Defaults to `true`. */\n withSelfOnboardingField?: boolean\n /** Fields that are optional by default but should be promoted to required for this form instance. */\n optionalFieldsToRequire?: EmployeeDetailsOptionalFieldsToRequire\n /** Initial values applied before any employee data loads. */\n defaultValues?: Partial<EmployeeDetailsFormData>\n /** When validation runs. Forwarded to react-hook-form's `mode`. Defaults to `'onSubmit'`. */\n validationMode?: UseFormProps['mode']\n /** Whether react-hook-form should focus the first error on validation failure. Defaults to `true`. */\n shouldFocusError?: boolean\n}\n\n/**\n * Options for {@link useEmployeeDetailsForm}.\n *\n * @remarks\n * Discriminated by mode: in create mode supply `companyId` and omit\n * `employeeId`; in update mode supply `employeeId` (and optionally\n * `companyId`).\n *\n * @public\n * @group Utility types\n */\nexport type UseEmployeeDetailsFormProps =\n | (UseEmployeeDetailsFormSharedProps & { companyId: string; employeeId?: never })\n | (UseEmployeeDetailsFormSharedProps & { employeeId: string; companyId?: string })\n\n/**\n * The Field components exposed by {@link useEmployeeDetailsForm} as `form.Fields`.\n *\n * @remarks\n * Each entry is a component bound to a specific form field. `SelfOnboarding`\n * may be `undefined` when the field is not toggleable.\n *\n * @public\n */\nexport interface EmployeeDetailsFormFields {\n /** Bound to `firstName`. Text input. */\n FirstName: ComponentType<FirstNameFieldProps>\n /** Bound to `middleInitial`. Text input. */\n MiddleInitial: ComponentType<MiddleInitialFieldProps>\n /** Bound to `lastName`. Text input. */\n LastName: ComponentType<LastNameFieldProps>\n /** Bound to `email`. Text input. */\n Email: ComponentType<EmailFieldProps>\n /** Bound to `dateOfBirth`. Date picker. */\n DateOfBirth: ComponentType<DateOfBirthFieldProps>\n /** Bound to `ssn`. Text input. */\n Ssn: ComponentType<SsnFieldProps>\n /** Bound to `selfOnboarding`. Switch, or `undefined` when the field is not toggleable. */\n SelfOnboarding: ComponentType<SelfOnboardingFieldProps> | undefined\n}\n\n/**\n * The ready-state result returned by {@link useEmployeeDetailsForm} once data has loaded.\n *\n * @remarks\n * Provides the form's `data` snapshot, pending `status`, submit `actions`,\n * error handling, and the `form.Fields` map.\n *\n * @public\n */\nexport interface UseEmployeeDetailsFormReady extends BaseFormHookReady<\n EmployeeDetailsFieldsMetadata,\n EmployeeDetailsFormData,\n EmployeeDetailsFormFields\n> {\n /** The loaded employee data, or `null` in create mode. */\n data: {\n /** The employee being edited, or `null` in create mode. */\n employee: Employee | null\n }\n /** Submit status and form mode. */\n status: {\n /** `true` while the create, update, or onboarding-status mutation is in flight. */\n isPending: boolean\n /** `'create'` when no `employeeId` was supplied, `'update'` otherwise. */\n mode: 'create' | 'update'\n }\n /** Submit and related actions. */\n actions: {\n /** Validates the form and submits the changes. Returns the created or updated employee, or `undefined` when validation fails. */\n onSubmit: (\n callbacks?: EmployeeDetailsSubmitCallbacks,\n ) => Promise<HookSubmitResult<Employee> | undefined>\n }\n}\n\nconst isCurrentlySelfOnboarding = (employee?: Employee) => {\n if (!employee?.onboardingStatus) return false\n const selfOnboardingStatuses: string[] = [\n EmployeeOnboardingStatus.SELF_ONBOARDING_PENDING_INVITE,\n EmployeeOnboardingStatus.SELF_ONBOARDING_INVITED,\n EmployeeOnboardingStatus.SELF_ONBOARDING_INVITED_STARTED,\n EmployeeOnboardingStatus.SELF_ONBOARDING_INVITED_OVERDUE,\n EmployeeOnboardingStatus.SELF_ONBOARDING_COMPLETED_BY_EMPLOYEE,\n EmployeeOnboardingStatus.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW,\n ]\n return selfOnboardingStatuses.includes(employee.onboardingStatus)\n}\n\nconst canToggleSelfOnboarding = (employee?: Employee) => {\n if (!employee) return true\n return (\n employee.onboardingStatus === EmployeeOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE ||\n employee.onboardingStatus === EmployeeOnboardingStatus.SELF_ONBOARDING_PENDING_INVITE\n )\n}\n\n/**\n * Headless hook for creating or updating an employee's profile details — name, email, SSN, date of birth, and self-onboarding preference.\n *\n * @remarks\n * Returns a discriminated union: a loading variant while the underlying\n * employee fetch resolves, and a ready variant exposing the form's data,\n * pending status, submit action, error handling, and bound `Fields`.\n * Self-onboarding is only toggleable when the employee's onboarding status\n * allows it; otherwise `form.Fields.SelfOnboarding` is `undefined`.\n *\n * @param input - See {@link UseEmployeeDetailsFormProps}.\n * @returns A {@link HookLoadingResult} while loading, or a {@link UseEmployeeDetailsFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import {\n * useEmployeeDetailsForm,\n * SDKFormProvider,\n * type UseEmployeeDetailsFormReady,\n * } from '@gusto/embedded-react-sdk'\n *\n * function EmployeeDetailsPage({ companyId, employeeId }: { companyId: string; employeeId?: string }) {\n * const employeeDetails = useEmployeeDetailsForm({ companyId, employeeId })\n *\n * if (employeeDetails.isLoading) return <div>Loading...</div>\n *\n * return <EmployeeDetailsReady employeeDetails={employeeDetails} />\n * }\n *\n * function EmployeeDetailsReady({ employeeDetails }: { employeeDetails: UseEmployeeDetailsFormReady }) {\n * const { Fields } = employeeDetails.form\n *\n * const handleSubmit = async () => {\n * await employeeDetails.actions.onSubmit({\n * onEmployeeCreated: emp => console.log('Created:', emp.uuid),\n * onEmployeeUpdated: emp => console.log('Updated:', emp.uuid),\n * })\n * }\n *\n * return (\n * <SDKFormProvider formHookResult={employeeDetails}>\n * <form onSubmit={e => { e.preventDefault(); void handleSubmit() }}>\n * <Fields.FirstName label=\"First name\" />\n * <Fields.LastName label=\"Last name\" />\n * <Fields.Email label=\"Personal email\" />\n * <Fields.DateOfBirth label=\"Date of birth\" />\n * <Fields.Ssn label=\"Social Security number\" />\n * <button type=\"submit\" disabled={employeeDetails.status.isPending}>Save</button>\n * </form>\n * </SDKFormProvider>\n * )\n * }\n * ```\n */\nexport function useEmployeeDetailsForm({\n companyId,\n employeeId,\n withSelfOnboardingField = true,\n optionalFieldsToRequire,\n defaultValues: partnerDefaults,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n}: UseEmployeeDetailsFormProps): HookLoadingResult | UseEmployeeDetailsFormReady {\n const employeeQuery = useEmployeesGet({ employeeId: employeeId ?? '' }, { enabled: !!employeeId })\n\n const employee = employeeQuery.data?.employee\n\n const isCreateMode = !employeeId\n const isSelfOnboardingToggleable = canToggleSelfOnboarding(employee)\n\n const mode = isCreateMode ? 'create' : 'update'\n\n const [schema, metadataConfig] = useMemo(\n () => createEmployeeDetailsSchema({ mode, optionalFieldsToRequire, hasSsn: employee?.hasSsn }),\n [mode, optionalFieldsToRequire, employee?.hasSsn],\n )\n\n const resolvedDefaults: EmployeeDetailsFormData = {\n firstName: employee?.firstName ?? partnerDefaults?.firstName ?? '',\n middleInitial: employee?.middleInitial ?? partnerDefaults?.middleInitial ?? '',\n lastName: employee?.lastName ?? partnerDefaults?.lastName ?? '',\n email: employee?.email ?? partnerDefaults?.email ?? '',\n dateOfBirth: employee?.dateOfBirth ?? normalizeToISOString(partnerDefaults?.dateOfBirth),\n ssn: partnerDefaults?.ssn ?? '',\n selfOnboarding: partnerDefaults?.selfOnboarding ?? isCurrentlySelfOnboarding(employee),\n }\n\n const formMethods = useForm<EmployeeDetailsFormData, unknown, EmployeeDetailsFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const createEmployeeMutation = useEmployeesCreateMutation()\n const updateEmployeeMutation = useEmployeesUpdateMutation()\n const updateOnboardingStatusMutation = useEmployeesUpdateOnboardingStatusMutation()\n\n const isPending =\n createEmployeeMutation.isPending ||\n updateEmployeeMutation.isPending ||\n updateOnboardingStatusMutation.isPending\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('EmployeeDetailsForm')\n\n const queries = employeeId ? [employeeQuery] : []\n const errorHandling = composeErrorHandler(queries, { submitError, setSubmitError })\n\n const baseMetadata = useDeriveFieldsMetadata(metadataConfig, formMethods.control)\n const fieldsMetadata = buildEmployeeDetailsFieldsMetadata(baseMetadata)\n\n const onSubmit = async (\n callbacks?: EmployeeDetailsSubmitCallbacks,\n ): Promise<HookSubmitResult<Employee> | undefined> => {\n let submitResult: HookSubmitResult<Employee> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: EmployeeDetailsFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const { selfOnboarding, dateOfBirth, ssn, ...body } = payload\n\n const cleanedSsn = ssn ? removeNonDigits(ssn) : undefined\n const hasSsnInput = cleanedSsn && cleanedSsn.length > 0\n\n let updatedEmployee: Employee\n\n if (isCreateMode) {\n if (!companyId) {\n throw new SDKInternalError('companyId is required to create an employee')\n }\n const result = await createEmployeeMutation.mutateAsync({\n request: {\n companyId,\n requestBody: {\n ...body,\n selfOnboarding,\n dateOfBirth: dateOfBirth ? new RFCDate(new Date(dateOfBirth)) : undefined,\n ssn: hasSsnInput ? cleanedSsn : undefined,\n },\n },\n })\n\n if (!result.employee) {\n throw new SDKInternalError('Employee creation failed')\n }\n\n updatedEmployee = result.employee\n callbacks?.onEmployeeCreated?.(updatedEmployee)\n } else {\n if (!employee) {\n throw new SDKInternalError('Employee data is not available')\n }\n\n if (isSelfOnboardingToggleable) {\n const currentIsSelfOnboarding =\n employee.onboardingStatus ===\n EmployeeOnboardingStatus.SELF_ONBOARDING_PENDING_INVITE\n\n if (selfOnboarding !== currentIsSelfOnboarding) {\n const { employeeOnboardingStatus } =\n await updateOnboardingStatusMutation.mutateAsync({\n request: {\n employeeId: employee.uuid,\n requestBody: {\n onboardingStatus: selfOnboarding\n ? EmployeeOnboardingStatus.SELF_ONBOARDING_PENDING_INVITE\n : EmployeeOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE,\n },\n },\n })\n\n callbacks?.onOnboardingStatusUpdated?.(employeeOnboardingStatus)\n }\n }\n\n const result = await updateEmployeeMutation.mutateAsync({\n request: {\n employeeId: employee.uuid,\n requestBody: {\n version: employee.version as string,\n ...body,\n dateOfBirth: dateOfBirth || undefined,\n ssn: hasSsnInput ? cleanedSsn : undefined,\n },\n },\n })\n\n if (!result.employee) {\n throw new SDKInternalError('Employee update failed')\n }\n\n updatedEmployee = result.employee\n callbacks?.onEmployeeUpdated?.(updatedEmployee)\n }\n\n submitResult = {\n mode: isCreateMode ? 'create' : 'update',\n data: updatedEmployee,\n }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const hookFormInternals = useHookFormInternals(formMethods)\n\n const isDataLoading = employeeId ? employeeQuery.isLoading : false\n\n if (isDataLoading || (employeeId && !employee)) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: {\n employee: employee ?? null,\n },\n status: {\n isPending,\n mode: isCreateMode ? ('create' as const) : ('update' as const),\n },\n actions: { onSubmit },\n errorHandling,\n form: {\n Fields: {\n FirstName: FirstNameField,\n MiddleInitial: MiddleInitialField,\n LastName: LastNameField,\n Email: EmailField,\n DateOfBirth: DateOfBirthField,\n Ssn: SsnField,\n SelfOnboarding:\n withSelfOnboardingField && isSelfOnboardingToggleable ? SelfOnboardingField : undefined,\n },\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\n/**\n * Return type of {@link useEmployeeDetailsForm}.\n *\n * @public\n */\nexport type UseEmployeeDetailsFormResult = HookLoadingResult | UseEmployeeDetailsFormReady\n\n/**\n * Shape of `form.fieldsMetadata` returned by {@link useEmployeeDetailsForm}.\n *\n * @public\n */\nexport type EmployeeDetailsFieldsMetadata = ReturnType<typeof buildEmployeeDetailsFieldsMetadata>\n"],"names":["buildEmployeeDetailsFieldsMetadata","base","isCurrentlySelfOnboarding","employee","EmployeeOnboardingStatus","canToggleSelfOnboarding","useEmployeeDetailsForm","companyId","employeeId","withSelfOnboardingField","optionalFieldsToRequire","partnerDefaults","validationMode","shouldFocusError","employeeQuery","useEmployeesGet","isCreateMode","isSelfOnboardingToggleable","mode","schema","metadataConfig","useMemo","createEmployeeDetailsSchema","resolvedDefaults","normalizeToISOString","formMethods","useForm","zodResolver","createEmployeeMutation","useEmployeesCreateMutation","updateEmployeeMutation","useEmployeesUpdateMutation","updateOnboardingStatusMutation","useEmployeesUpdateOnboardingStatusMutation","isPending","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","baseMetadata","useDeriveFieldsMetadata","fieldsMetadata","onSubmit","callbacks","submitResult","resolve","data","payload","selfOnboarding","dateOfBirth","ssn","body","cleanedSsn","removeNonDigits","hasSsnInput","updatedEmployee","SDKInternalError","result","RFCDate","currentIsSelfOnboarding","employeeOnboardingStatus","hookFormInternals","useHookFormInternals","FirstNameField","MiddleInitialField","LastNameField","EmailField","DateOfBirthField","SsnField","SelfOnboardingField","createGetFormSubmissionValues"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Employee } from '@gusto/embedded-api-v-2026-02-01/models/components/employee';
1
+ import { Employee } from '@gusto/embedded-api/models/components/employee';
2
2
  import { BaseHookReady, HookLoadingResult } from '../../../../../partner-hook-utils/types';
3
3
  /**
4
4
  * Options for {@link useEmployeeProfileSummary}.
@@ -1,4 +1,4 @@
1
- import { useEmployeesGet as n } from "@gusto/embedded-api-v-2026-02-01/react-query/employeesGet";
1
+ import { useEmployeesGet as n } from "@gusto/embedded-api/react-query/employeesGet";
2
2
  import { composeErrorHandler as t } from "../../../../../partner-hook-utils/composeErrorHandler.js";
3
3
  function m({
4
4
  employeeId: r
@@ -1 +1 @@
1
- {"version":3,"file":"useEmployeeProfileSummary.js","sources":["../../../../../../src/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.tsx"],"sourcesContent":["import { useEmployeesGet } from '@gusto/embedded-api-v-2026-02-01/react-query/employeesGet'\nimport type { Employee } from '@gusto/embedded-api-v-2026-02-01/models/components/employee'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type { BaseHookReady, HookLoadingResult } from '@/partner-hook-utils/types'\n\n/**\n * Options for {@link useEmployeeProfileSummary}.\n *\n * @public\n */\nexport interface UseEmployeeProfileSummaryParams {\n /** The associated employee identifier. */\n employeeId: string\n}\n\ntype UseEmployeeProfileSummaryReady = BaseHookReady<\n { employee: Employee },\n { isFetching: boolean; isPending: boolean }\n>\n\n/**\n * Return type of {@link useEmployeeProfileSummary}.\n *\n * @public\n */\nexport type UseEmployeeProfileSummaryResult = HookLoadingResult | UseEmployeeProfileSummaryReady\n\n/**\n * Read-only data hook for the basic-details Profile card.\n *\n * @remarks\n * Fetches a single employee record scoped to the fields the\n * basic-details surface displays. Pair with {@link useEmployeeDetailsForm}\n * to render an edit form against the same record.\n *\n * @param input - See {@link UseEmployeeProfileSummaryParams}.\n * @returns A {@link HookLoadingResult} while loading, or the ready result with the loaded employee once available.\n * @public\n *\n * @example\n * ```tsx\n * import { useEmployeeProfileSummary } from '@gusto/embedded-react-sdk'\n *\n * function ProfileSummary({ employeeId }: { employeeId: string }) {\n * const summary = useEmployeeProfileSummary({ employeeId })\n *\n * if (summary.isLoading) return <div>Loading...</div>\n *\n * const { employee } = summary.data\n * return <h2>{employee.firstName} {employee.lastName}</h2>\n * }\n * ```\n */\nexport function useEmployeeProfileSummary({\n employeeId,\n}: UseEmployeeProfileSummaryParams): UseEmployeeProfileSummaryResult {\n const employeeQuery = useEmployeesGet({ employeeId }, { staleTime: Infinity })\n\n const errorHandling = composeErrorHandler([employeeQuery])\n\n const employee = employeeQuery.data?.employee\n\n if (employeeQuery.isLoading || !employee) {\n return { isLoading: true, errorHandling }\n }\n\n return {\n isLoading: false,\n data: { employee },\n status: {\n isFetching: employeeQuery.isFetching,\n isPending: false,\n },\n errorHandling,\n }\n}\n"],"names":["useEmployeeProfileSummary","employeeId","employeeQuery","useEmployeesGet","errorHandling","composeErrorHandler","employee"],"mappings":";;AAqDO,SAASA,EAA0B;AAAA,EACxC,YAAAC;AACF,GAAqE;AACnE,QAAMC,IAAgBC,EAAgB,EAAE,YAAAF,EAAA,GAAc,EAAE,WAAW,OAAU,GAEvEG,IAAgBC,EAAoB,CAACH,CAAa,CAAC,GAEnDI,IAAWJ,EAAc,MAAM;AAErC,SAAIA,EAAc,aAAa,CAACI,IACvB,EAAE,WAAW,IAAM,eAAAF,EAAA,IAGrB;AAAA,IACL,WAAW;AAAA,IACX,MAAM,EAAE,UAAAE,EAAA;AAAA,IACR,QAAQ;AAAA,MACN,YAAYJ,EAAc;AAAA,MAC1B,WAAW;AAAA,IAAA;AAAA,IAEb,eAAAE;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"useEmployeeProfileSummary.js","sources":["../../../../../../src/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.tsx"],"sourcesContent":["import { useEmployeesGet } from '@gusto/embedded-api/react-query/employeesGet'\nimport type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type { BaseHookReady, HookLoadingResult } from '@/partner-hook-utils/types'\n\n/**\n * Options for {@link useEmployeeProfileSummary}.\n *\n * @public\n */\nexport interface UseEmployeeProfileSummaryParams {\n /** The associated employee identifier. */\n employeeId: string\n}\n\ntype UseEmployeeProfileSummaryReady = BaseHookReady<\n { employee: Employee },\n { isFetching: boolean; isPending: boolean }\n>\n\n/**\n * Return type of {@link useEmployeeProfileSummary}.\n *\n * @public\n */\nexport type UseEmployeeProfileSummaryResult = HookLoadingResult | UseEmployeeProfileSummaryReady\n\n/**\n * Read-only data hook for the basic-details Profile card.\n *\n * @remarks\n * Fetches a single employee record scoped to the fields the\n * basic-details surface displays. Pair with {@link useEmployeeDetailsForm}\n * to render an edit form against the same record.\n *\n * @param input - See {@link UseEmployeeProfileSummaryParams}.\n * @returns A {@link HookLoadingResult} while loading, or the ready result with the loaded employee once available.\n * @public\n *\n * @example\n * ```tsx\n * import { useEmployeeProfileSummary } from '@gusto/embedded-react-sdk'\n *\n * function ProfileSummary({ employeeId }: { employeeId: string }) {\n * const summary = useEmployeeProfileSummary({ employeeId })\n *\n * if (summary.isLoading) return <div>Loading...</div>\n *\n * const { employee } = summary.data\n * return <h2>{employee.firstName} {employee.lastName}</h2>\n * }\n * ```\n */\nexport function useEmployeeProfileSummary({\n employeeId,\n}: UseEmployeeProfileSummaryParams): UseEmployeeProfileSummaryResult {\n const employeeQuery = useEmployeesGet({ employeeId }, { staleTime: Infinity })\n\n const errorHandling = composeErrorHandler([employeeQuery])\n\n const employee = employeeQuery.data?.employee\n\n if (employeeQuery.isLoading || !employee) {\n return { isLoading: true, errorHandling }\n }\n\n return {\n isLoading: false,\n data: { employee },\n status: {\n isFetching: employeeQuery.isFetching,\n isPending: false,\n },\n errorHandling,\n }\n}\n"],"names":["useEmployeeProfileSummary","employeeId","employeeQuery","useEmployeesGet","errorHandling","composeErrorHandler","employee"],"mappings":";;AAqDO,SAASA,EAA0B;AAAA,EACxC,YAAAC;AACF,GAAqE;AACnE,QAAMC,IAAgBC,EAAgB,EAAE,YAAAF,EAAA,GAAc,EAAE,WAAW,OAAU,GAEvEG,IAAgBC,EAAoB,CAACH,CAAa,CAAC,GAEnDI,IAAWJ,EAAc,MAAM;AAErC,SAAIA,EAAc,aAAa,CAACI,IACvB,EAAE,WAAW,IAAM,eAAAF,EAAA,IAGrB;AAAA,IACL,WAAW;AAAA,IACX,MAAM,EAAE,UAAAE,EAAA;AAAA,IACR,QAAQ;AAAA,MACN,YAAYJ,EAAc;AAAA,MAC1B,WAAW;AAAA,IAAA;AAAA,IAEb,eAAAE;AAAA,EAAA;AAEJ;"}
@@ -1,4 +1,4 @@
1
- import { useEmployeeAddressesGet as a } from "@gusto/embedded-api-v-2026-02-01/react-query/employeeAddressesGet";
1
+ import { useEmployeeAddressesGet as a } from "@gusto/embedded-api/react-query/employeeAddressesGet";
2
2
  import { useHomeAddressForm as m } from "./useHomeAddressForm.js";
3
3
  import { composeErrorHandler as n } from "../../../../../partner-hook-utils/composeErrorHandler.js";
4
4
  function p(i) {
@@ -1 +1 @@
1
- {"version":3,"file":"useCurrentHomeAddressForm.js","sources":["../../../../../../src/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.tsx"],"sourcesContent":["import { useEmployeeAddressesGet } from '@gusto/embedded-api-v-2026-02-01/react-query/employeeAddressesGet'\nimport { useHomeAddressForm } from './useHomeAddressForm'\nimport type { UseHomeAddressFormProps, UseHomeAddressFormResult } from './useHomeAddressForm'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\n\n/**\n * Options for {@link useCurrentHomeAddressForm}.\n *\n * @remarks\n * Same shape as {@link UseHomeAddressFormProps} minus `homeAddressUuid` —\n * the hook resolves the current home address itself.\n *\n * @public\n */\nexport type UseCurrentHomeAddressFormProps = Omit<UseHomeAddressFormProps, 'homeAddressUuid'>\n\n/**\n * Convenience wrapper around {@link useHomeAddressForm} that auto-resolves the employee's current home address.\n *\n * @remarks\n * Lists the employee's home addresses and selects the active one (or the\n * first when none are active) as the row to edit. When the employee has no\n * home address on file the hook operates in create mode. The returned\n * shape is identical to {@link useHomeAddressForm}, so the same `Fields`,\n * `actions.onSubmit`, and `errorHandling` apply.\n *\n * @param props - See {@link UseCurrentHomeAddressFormProps}.\n * @returns A {@link HookLoadingResult} while loading, or a {@link UseHomeAddressFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import { useCurrentHomeAddressForm } from '@gusto/embedded-react-sdk'\n *\n * function HomeAddressEditor({ employeeId }: { employeeId: string }) {\n * const homeAddress = useCurrentHomeAddressForm({ employeeId })\n *\n * if (homeAddress.isLoading) return <div>Loading...</div>\n *\n * const { Fields } = homeAddress.form\n * return (\n * <form onSubmit={e => { e.preventDefault(); void homeAddress.actions.onSubmit() }}>\n * <Fields.Street1 label=\"Street\" />\n * <Fields.City label=\"City\" />\n * <Fields.State label=\"State\" />\n * <Fields.Zip label=\"ZIP\" />\n * <button type=\"submit\">Save</button>\n * </form>\n * )\n * }\n * ```\n */\nexport function useCurrentHomeAddressForm(\n props: UseCurrentHomeAddressFormProps,\n): UseHomeAddressFormResult {\n const { employeeId, ...rest } = props\n\n const listQuery = useEmployeeAddressesGet({ employeeId }, { enabled: !!employeeId })\n\n const homeAddresses = listQuery.data?.employeeAddressList\n const currentHomeAddress = homeAddresses?.find(a => a.active) ?? homeAddresses?.[0]\n\n const base = useHomeAddressForm({\n ...rest,\n employeeId,\n homeAddressUuid: currentHomeAddress?.uuid,\n })\n\n const listInitiallyBlocking = listQuery.isLoading && !listQuery.data\n\n if (listInitiallyBlocking) {\n return {\n isLoading: true as const,\n errorHandling: composeErrorHandler([listQuery]),\n }\n }\n\n if (base.isLoading) {\n return {\n ...base,\n errorHandling: composeErrorHandler([listQuery, { errorHandling: base.errorHandling }]),\n }\n }\n\n return {\n ...base,\n errorHandling: composeErrorHandler([listQuery, { errorHandling: base.errorHandling }]),\n }\n}\n"],"names":["useCurrentHomeAddressForm","props","employeeId","rest","listQuery","useEmployeeAddressesGet","homeAddresses","currentHomeAddress","a","base","useHomeAddressForm","composeErrorHandler"],"mappings":";;;AAoDO,SAASA,EACdC,GAC0B;AAC1B,QAAM,EAAE,YAAAC,GAAY,GAAGC,EAAA,IAASF,GAE1BG,IAAYC,EAAwB,EAAE,YAAAH,EAAA,GAAc,EAAE,SAAS,CAAC,CAACA,GAAY,GAE7EI,IAAgBF,EAAU,MAAM,qBAChCG,IAAqBD,GAAe,KAAK,CAAAE,MAAKA,EAAE,MAAM,KAAKF,IAAgB,CAAC,GAE5EG,IAAOC,EAAmB;AAAA,IAC9B,GAAGP;AAAA,IACH,YAAAD;AAAA,IACA,iBAAiBK,GAAoB;AAAA,EAAA,CACtC;AAID,SAF8BH,EAAU,aAAa,CAACA,EAAU,OAGvD;AAAA,IACL,WAAW;AAAA,IACX,eAAeO,EAAoB,CAACP,CAAS,CAAC;AAAA,EAAA,IAI9CK,EAAK,YACA;AAAA,IACL,GAAGA;AAAA,IACH,eAAeE,EAAoB,CAACP,GAAW,EAAE,eAAeK,EAAK,eAAe,CAAC;AAAA,EAAA,IAIlF;AAAA,IACL,GAAGA;AAAA,IACH,eAAeE,EAAoB,CAACP,GAAW,EAAE,eAAeK,EAAK,eAAe,CAAC;AAAA,EAAA;AAEzF;"}
1
+ {"version":3,"file":"useCurrentHomeAddressForm.js","sources":["../../../../../../src/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.tsx"],"sourcesContent":["import { useEmployeeAddressesGet } from '@gusto/embedded-api/react-query/employeeAddressesGet'\nimport { useHomeAddressForm } from './useHomeAddressForm'\nimport type { UseHomeAddressFormProps, UseHomeAddressFormResult } from './useHomeAddressForm'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\n\n/**\n * Options for {@link useCurrentHomeAddressForm}.\n *\n * @remarks\n * Same shape as {@link UseHomeAddressFormProps} minus `homeAddressUuid` —\n * the hook resolves the current home address itself.\n *\n * @public\n */\nexport type UseCurrentHomeAddressFormProps = Omit<UseHomeAddressFormProps, 'homeAddressUuid'>\n\n/**\n * Convenience wrapper around {@link useHomeAddressForm} that auto-resolves the employee's current home address.\n *\n * @remarks\n * Lists the employee's home addresses and selects the active one (or the\n * first when none are active) as the row to edit. When the employee has no\n * home address on file the hook operates in create mode. The returned\n * shape is identical to {@link useHomeAddressForm}, so the same `Fields`,\n * `actions.onSubmit`, and `errorHandling` apply.\n *\n * @param props - See {@link UseCurrentHomeAddressFormProps}.\n * @returns A {@link HookLoadingResult} while loading, or a {@link UseHomeAddressFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import { useCurrentHomeAddressForm } from '@gusto/embedded-react-sdk'\n *\n * function HomeAddressEditor({ employeeId }: { employeeId: string }) {\n * const homeAddress = useCurrentHomeAddressForm({ employeeId })\n *\n * if (homeAddress.isLoading) return <div>Loading...</div>\n *\n * const { Fields } = homeAddress.form\n * return (\n * <form onSubmit={e => { e.preventDefault(); void homeAddress.actions.onSubmit() }}>\n * <Fields.Street1 label=\"Street\" />\n * <Fields.City label=\"City\" />\n * <Fields.State label=\"State\" />\n * <Fields.Zip label=\"ZIP\" />\n * <button type=\"submit\">Save</button>\n * </form>\n * )\n * }\n * ```\n */\nexport function useCurrentHomeAddressForm(\n props: UseCurrentHomeAddressFormProps,\n): UseHomeAddressFormResult {\n const { employeeId, ...rest } = props\n\n const listQuery = useEmployeeAddressesGet({ employeeId }, { enabled: !!employeeId })\n\n const homeAddresses = listQuery.data?.employeeAddressList\n const currentHomeAddress = homeAddresses?.find(a => a.active) ?? homeAddresses?.[0]\n\n const base = useHomeAddressForm({\n ...rest,\n employeeId,\n homeAddressUuid: currentHomeAddress?.uuid,\n })\n\n const listInitiallyBlocking = listQuery.isLoading && !listQuery.data\n\n if (listInitiallyBlocking) {\n return {\n isLoading: true as const,\n errorHandling: composeErrorHandler([listQuery]),\n }\n }\n\n if (base.isLoading) {\n return {\n ...base,\n errorHandling: composeErrorHandler([listQuery, { errorHandling: base.errorHandling }]),\n }\n }\n\n return {\n ...base,\n errorHandling: composeErrorHandler([listQuery, { errorHandling: base.errorHandling }]),\n }\n}\n"],"names":["useCurrentHomeAddressForm","props","employeeId","rest","listQuery","useEmployeeAddressesGet","homeAddresses","currentHomeAddress","a","base","useHomeAddressForm","composeErrorHandler"],"mappings":";;;AAoDO,SAASA,EACdC,GAC0B;AAC1B,QAAM,EAAE,YAAAC,GAAY,GAAGC,EAAA,IAASF,GAE1BG,IAAYC,EAAwB,EAAE,YAAAH,EAAA,GAAc,EAAE,SAAS,CAAC,CAACA,GAAY,GAE7EI,IAAgBF,EAAU,MAAM,qBAChCG,IAAqBD,GAAe,KAAK,CAAAE,MAAKA,EAAE,MAAM,KAAKF,IAAgB,CAAC,GAE5EG,IAAOC,EAAmB;AAAA,IAC9B,GAAGP;AAAA,IACH,YAAAD;AAAA,IACA,iBAAiBK,GAAoB;AAAA,EAAA,CACtC;AAID,SAF8BH,EAAU,aAAa,CAACA,EAAU,OAGvD;AAAA,IACL,WAAW;AAAA,IACX,eAAeO,EAAoB,CAACP,CAAS,CAAC;AAAA,EAAA,IAI9CK,EAAK,YACA;AAAA,IACL,GAAGA;AAAA,IACH,eAAeE,EAAoB,CAACP,GAAW,EAAE,eAAeK,EAAK,eAAe,CAAC;AAAA,EAAA,IAIlF;AAAA,IACL,GAAGA;AAAA,IACH,eAAeE,EAAoB,CAACP,GAAW,EAAE,eAAeK,EAAK,eAAe,CAAC;AAAA,EAAA;AAEzF;"}
@@ -1,6 +1,6 @@
1
1
  import { ComponentType } from 'react';
2
2
  import { UseFormProps } from 'react-hook-form';
3
- import { EmployeeAddress } from '@gusto/embedded-api-v-2026-02-01/models/components/employeeaddress';
3
+ import { EmployeeAddress } from '@gusto/embedded-api/models/components/employeeaddress';
4
4
  import { HomeAddressOptionalFieldsToRequire, HomeAddressFormData } from './homeAddressSchema';
5
5
  import { Street1FieldProps, Street2FieldProps, CityFieldProps, StateFieldProps, ZipFieldProps, CourtesyWithholdingFieldProps, EffectiveDateFieldProps } from './fields';
6
6
  import { BaseFormHookReady, FieldMetadata, HookLoadingResult, HookSubmitResult } from '../../../../../partner-hook-utils/types';
@@ -1,10 +1,10 @@
1
1
  import { useMemo as w } from "react";
2
2
  import { useForm as G } from "react-hook-form";
3
3
  import { zodResolver as K } from "@hookform/resolvers/zod";
4
- import { useEmployeeAddressesRetrieveHomeAddress as Q } from "@gusto/embedded-api-v-2026-02-01/react-query/employeeAddressesRetrieveHomeAddress";
5
- import { useEmployeeAddressesCreateMutation as T } from "@gusto/embedded-api-v-2026-02-01/react-query/employeeAddressesCreate";
6
- import { useEmployeeAddressesUpdateMutation as _ } from "@gusto/embedded-api-v-2026-02-01/react-query/employeeAddressesUpdate";
7
- import { RFCDate as j } from "@gusto/embedded-api-v-2026-02-01/types/rfcdate";
4
+ import { useEmployeeAddressesRetrieveHomeAddress as Q } from "@gusto/embedded-api/react-query/employeeAddressesRetrieveHomeAddress";
5
+ import { useEmployeeAddressesCreateMutation as T } from "@gusto/embedded-api/react-query/employeeAddressesCreate";
6
+ import { useEmployeeAddressesUpdateMutation as _ } from "@gusto/embedded-api/react-query/employeeAddressesUpdate";
7
+ import { RFCDate as j } from "@gusto/embedded-api/types/rfcdate";
8
8
  import { createHomeAddressSchema as J } from "./homeAddressSchema.js";
9
9
  import { EffectiveDateField as N, CourtesyWithholdingField as X, ZipField as Y, StateField as $, CityField as U, Street2Field as ee, Street1Field as te } from "./fields.js";
10
10
  import { useDeriveFieldsMetadata as re } from "../../../../../partner-hook-utils/form/useDeriveFieldsMetadata.js";
@@ -1 +1 @@
1
- {"version":3,"file":"useHomeAddressForm.js","sources":["../../../../../../src/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useMemo } from 'react'\nimport { useForm } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { EmployeeAddress } from '@gusto/embedded-api-v-2026-02-01/models/components/employeeaddress'\nimport { useEmployeeAddressesRetrieveHomeAddress } from '@gusto/embedded-api-v-2026-02-01/react-query/employeeAddressesRetrieveHomeAddress'\nimport { useEmployeeAddressesCreateMutation } from '@gusto/embedded-api-v-2026-02-01/react-query/employeeAddressesCreate'\nimport { useEmployeeAddressesUpdateMutation } from '@gusto/embedded-api-v-2026-02-01/react-query/employeeAddressesUpdate'\nimport { RFCDate } from '@gusto/embedded-api-v-2026-02-01/types/rfcdate'\nimport {\n createHomeAddressSchema,\n type HomeAddressOptionalFieldsToRequire,\n type HomeAddressFormData,\n type HomeAddressFormOutputs,\n} from './homeAddressSchema'\nimport type {\n Street1FieldProps,\n Street2FieldProps,\n CityFieldProps,\n StateFieldProps,\n ZipFieldProps,\n CourtesyWithholdingFieldProps,\n EffectiveDateFieldProps,\n} from './fields'\nimport {\n Street1Field,\n Street2Field,\n CityField,\n StateField,\n ZipField,\n CourtesyWithholdingField,\n EffectiveDateField,\n} from './fields'\nimport { useDeriveFieldsMetadata } from '@/partner-hook-utils/form/useDeriveFieldsMetadata'\nimport { useHookFormInternals } from '@/partner-hook-utils/form/useHookFormInternals'\nimport { createGetFormSubmissionValues } from '@/partner-hook-utils/form/getFormSubmissionValues'\nimport { withOptions } from '@/partner-hook-utils/form/withOptions'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseFormHookReady,\n FieldMetadata,\n FieldsMetadata,\n HookLoadingResult,\n HookSubmitResult,\n} from '@/partner-hook-utils/types'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { STATES_ABBR } from '@/shared/constants'\n\nexport type { HomeAddressOptionalFieldsToRequire } from './homeAddressSchema'\n\n/** @internal */\nfunction buildHomeAddressFieldsMetadata(\n base: Record<keyof HomeAddressFormData, FieldMetadata>,\n { stateOptions }: { stateOptions: Array<{ label: string; value: string }> },\n) {\n return {\n street1: base.street1,\n street2: base.street2,\n city: base.city,\n state: withOptions(base.state, stateOptions, STATES_ABBR),\n zip: base.zip,\n courtesyWithholding: base.courtesyWithholding,\n effectiveDate: base.effectiveDate,\n } satisfies FieldsMetadata\n}\n\n/**\n * Optional overrides passed to {@link UseHomeAddressFormReady.actions.onSubmit | onSubmit}.\n *\n * @public\n */\nexport interface HomeAddressSubmitOptions {\n /** Override the employee identifier supplied to the hook (e.g. after creating a new employee in the same flow). */\n employeeId?: string\n /** Override the effective date submitted with the address. When omitted on update without an effective-date field, the row's `effectiveDate` from the fetched address is used. */\n effectiveDate?: string\n}\n\n/**\n * Configuration options for {@link useHomeAddressForm}.\n *\n * @remarks\n * Presence or absence of `homeAddressUuid` selects the API verb — see the\n * `homeAddressUuid` field description.\n *\n * @public\n */\nexport interface UseHomeAddressFormProps {\n /** UUID of the employee whose home address is being created or edited. */\n employeeId: string\n /**\n * When set, loads that home address via GET `/v1/home_addresses/{uuid}` and updates it (PUT).\n * When omitted, the form is in create mode (POST).\n */\n homeAddressUuid?: string\n /**\n * Pre-loaded address matching `homeAddressUuid`. When supplied, the form uses it directly\n * instead of issuing a GET — useful when the parent already has the row from a list query.\n */\n initialAddress?: EmployeeAddress\n /** When `true`, renders `Fields.EffectiveDate`; otherwise it is `undefined`. Defaults to `true`. */\n withEffectiveDateField?: boolean\n /** Override fields that are optional on a given mode to be required. See `HomeAddressOptionalFieldsToRequire`. */\n optionalFieldsToRequire?: HomeAddressOptionalFieldsToRequire\n /** Pre-fill form values. Server data takes precedence on update. */\n defaultValues?: Partial<HomeAddressFormData>\n /** Passed through to react-hook-form. Defaults to `'onSubmit'`. */\n validationMode?: UseFormProps['mode']\n /** Auto-focus the first invalid field on submit. Set to `false` when using `composeSubmitHandler` so submit-time focus is coordinated across multiple forms. Defaults to `true`. */\n shouldFocusError?: boolean\n}\n\n/**\n * Pre-bound field components exposed on `useHomeAddressForm().form.Fields`.\n *\n * @remarks\n * `EffectiveDate` is `undefined` when `withEffectiveDateField` is `false`.\n * Always null-check it before rendering.\n *\n * @public\n */\nexport interface HomeAddressFormFields {\n /** Bound to `street1`. Street address line 1 text input. Always available. */\n Street1: ComponentType<Street1FieldProps>\n /** Bound to `street2`. Street address line 2 text input. Always available. */\n Street2: ComponentType<Street2FieldProps>\n /** Bound to `city`. City text input. Always available. */\n City: ComponentType<CityFieldProps>\n /** Bound to `state`. State selector. Always available. */\n State: ComponentType<StateFieldProps>\n /** Bound to `zip`. ZIP code text input. Always available. */\n Zip: ComponentType<ZipFieldProps>\n /** Bound to `courtesyWithholding`. Courtesy withholding checkbox. Always available. */\n CourtesyWithholding: ComponentType<CourtesyWithholdingFieldProps>\n /** Bound to `effectiveDate`. Effective-date picker. Only available when `withEffectiveDateField` is `true`. */\n EffectiveDate: ComponentType<EffectiveDateFieldProps> | undefined\n}\n\n/**\n * Ready-state shape returned by {@link useHomeAddressForm} once data has loaded.\n *\n * @remarks\n * Discriminated by `isLoading: false`. Extends {@link BaseFormHookReady} with\n * the home-address-specific `data`, `status`, `actions`, and `form.Fields` shape.\n *\n * @public\n */\nexport interface UseHomeAddressFormReady extends BaseFormHookReady<\n HomeAddressFieldsMetadata,\n HomeAddressFormData,\n HomeAddressFormFields\n> {\n /** Static entity data resolved from the API. */\n data: {\n /** The address row loaded for update; `null` in create mode. */\n homeAddress: EmployeeAddress | null\n }\n /** Reactive status flags. */\n status: { isPending: boolean; mode: 'create' | 'update' }\n /** Available actions. */\n actions: {\n onSubmit: (\n options?: HomeAddressSubmitOptions,\n ) => Promise<HookSubmitResult<EmployeeAddress> | undefined>\n }\n}\n\n/**\n * Form hook for creating or editing an employee's home address.\n *\n * @remarks\n * When `homeAddressUuid` is supplied the hook loads that address and issues a PUT on submit;\n * when omitted it operates in create mode and issues a POST. Pass `initialAddress` to\n * skip the fetch when the parent already holds the row.\n *\n * @param props - See {@link UseHomeAddressFormProps}.\n * @returns A {@link HookLoadingResult} while loading, or a {@link UseHomeAddressFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import {\n * useHomeAddressForm,\n * SDKFormProvider,\n * type UseHomeAddressFormReady,\n * } from '@gusto/embedded-react-sdk'\n *\n * function HomeAddressPage({ employeeId }: { employeeId: string }) {\n * const homeAddress = useHomeAddressForm({ employeeId })\n *\n * if (homeAddress.isLoading) return <div>Loading...</div>\n *\n * return <HomeAddressReady homeAddress={homeAddress} />\n * }\n *\n * function HomeAddressReady({ homeAddress }: { homeAddress: UseHomeAddressFormReady }) {\n * const { Fields } = homeAddress.form\n *\n * return (\n * <SDKFormProvider formHookResult={homeAddress}>\n * <form onSubmit={e => { e.preventDefault(); void homeAddress.actions.onSubmit() }}>\n * <Fields.Street1 label=\"Street address\" />\n * <Fields.Street2 label=\"Apt, suite, etc. (optional)\" />\n * <Fields.City label=\"City\" />\n * <Fields.State label=\"State\" />\n * <Fields.Zip label=\"ZIP code\" />\n * <Fields.CourtesyWithholding label=\"Courtesy withholding\" />\n * {Fields.EffectiveDate && <Fields.EffectiveDate label=\"Effective date\" />}\n * <button type=\"submit\" disabled={homeAddress.status.isPending}>Save</button>\n * </form>\n * </SDKFormProvider>\n * )\n * }\n * ```\n */\nexport function useHomeAddressForm({\n employeeId,\n homeAddressUuid,\n initialAddress,\n withEffectiveDateField = true,\n optionalFieldsToRequire,\n defaultValues: partnerDefaults,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n}: UseHomeAddressFormProps): HookLoadingResult | UseHomeAddressFormReady {\n const hasInitialAddressMatch = !!homeAddressUuid && initialAddress?.uuid === homeAddressUuid\n\n const retrieveHomeAddressQuery = useEmployeeAddressesRetrieveHomeAddress(\n { homeAddressUuid: homeAddressUuid ?? '' },\n { enabled: !!homeAddressUuid && !hasInitialAddressMatch },\n )\n\n const isCreateMode = !homeAddressUuid\n\n const fetchedHomeAddress = homeAddressUuid\n ? hasInitialAddressMatch\n ? initialAddress\n : retrieveHomeAddressQuery.data?.employeeAddress\n : undefined\n\n const schemaMode = isCreateMode ? 'create' : 'update'\n\n const [schema, metadataConfig] = useMemo(\n () =>\n createHomeAddressSchema({\n mode: schemaMode,\n optionalFieldsToRequire,\n withEffectiveDateField,\n }),\n [schemaMode, optionalFieldsToRequire, withEffectiveDateField],\n )\n\n const resolvedDefaults: HomeAddressFormData = useMemo(\n () => ({\n street1: fetchedHomeAddress?.street1 ?? partnerDefaults?.street1 ?? '',\n street2: fetchedHomeAddress?.street2 ?? partnerDefaults?.street2 ?? '',\n city: fetchedHomeAddress?.city ?? partnerDefaults?.city ?? '',\n state: fetchedHomeAddress?.state ?? partnerDefaults?.state ?? '',\n zip: fetchedHomeAddress?.zip ?? partnerDefaults?.zip ?? '',\n courtesyWithholding:\n fetchedHomeAddress?.courtesyWithholding ?? partnerDefaults?.courtesyWithholding ?? false,\n effectiveDate:\n fetchedHomeAddress?.effectiveDate?.toString() ?? partnerDefaults?.effectiveDate ?? '',\n }),\n [fetchedHomeAddress, partnerDefaults],\n )\n\n const formMethods = useForm<HomeAddressFormData, unknown, HomeAddressFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const createHomeAddressMutation = useEmployeeAddressesCreateMutation()\n const updateHomeAddressMutation = useEmployeeAddressesUpdateMutation()\n\n const isPending = createHomeAddressMutation.isPending || updateHomeAddressMutation.isPending\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('HomeAddressForm')\n\n const queriesForErrors = homeAddressUuid ? [retrieveHomeAddressQuery] : []\n const errorHandling = composeErrorHandler(queriesForErrors, { submitError, setSubmitError })\n\n const stateOptions = STATES_ABBR.map(abbr => ({\n value: abbr,\n label: abbr,\n }))\n\n const baseMetadata = useDeriveFieldsMetadata(metadataConfig, formMethods.control)\n const fieldsMetadata = buildHomeAddressFieldsMetadata(baseMetadata, { stateOptions })\n\n const onSubmit = async (\n options?: HomeAddressSubmitOptions,\n ): Promise<HookSubmitResult<EmployeeAddress> | undefined> => {\n let submitResult: HookSubmitResult<EmployeeAddress> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: HomeAddressFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const resolvedEmployeeId = options?.employeeId ?? employeeId\n\n const resolvedEffectiveDate =\n withEffectiveDateField && payload.effectiveDate\n ? payload.effectiveDate\n : (options?.effectiveDate ??\n (!withEffectiveDateField && !isCreateMode\n ? fetchedHomeAddress?.effectiveDate?.toString()\n : undefined))\n\n const effectiveDateParam = resolvedEffectiveDate\n ? new RFCDate(new Date(resolvedEffectiveDate))\n : undefined\n\n let updatedHomeAddress: EmployeeAddress\n\n if (isCreateMode) {\n const result = await createHomeAddressMutation.mutateAsync({\n request: {\n employeeId: resolvedEmployeeId,\n requestBody: {\n street1: payload.street1,\n street2: payload.street2 || undefined,\n city: payload.city,\n state: payload.state,\n zip: payload.zip,\n courtesyWithholding: payload.courtesyWithholding,\n effectiveDate: effectiveDateParam,\n },\n },\n })\n\n if (!result.employeeAddress) {\n throw new SDKInternalError('Home address creation failed')\n }\n\n updatedHomeAddress = result.employeeAddress\n } else {\n if (!fetchedHomeAddress || !homeAddressUuid) {\n throw new SDKInternalError(\n 'Cannot update home address: no matching address on file',\n )\n }\n\n const result = await updateHomeAddressMutation.mutateAsync({\n request: {\n homeAddressUuid: fetchedHomeAddress.uuid,\n requestBody: {\n version: fetchedHomeAddress.version,\n street1: payload.street1,\n street2: payload.street2 || undefined,\n city: payload.city,\n state: payload.state,\n zip: payload.zip,\n courtesyWithholding: payload.courtesyWithholding,\n effectiveDate: effectiveDateParam,\n },\n },\n })\n\n if (!result.employeeAddress) {\n throw new SDKInternalError('Home address update failed')\n }\n\n updatedHomeAddress = result.employeeAddress\n }\n\n submitResult = {\n mode: isCreateMode ? 'create' : 'update',\n data: updatedHomeAddress,\n }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const hookFormInternals = useHookFormInternals(formMethods)\n\n if (homeAddressUuid && !fetchedHomeAddress) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: {\n homeAddress: fetchedHomeAddress ?? null,\n },\n status: {\n isPending,\n mode: isCreateMode ? ('create' as const) : ('update' as const),\n },\n actions: { onSubmit },\n errorHandling,\n form: {\n Fields: {\n Street1: Street1Field,\n Street2: Street2Field,\n City: CityField,\n State: StateField,\n Zip: ZipField,\n CourtesyWithholding: CourtesyWithholdingField,\n EffectiveDate: withEffectiveDateField ? EffectiveDateField : undefined,\n },\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\n/**\n * Discriminated union returned by {@link useHomeAddressForm}.\n *\n * @public\n */\nexport type UseHomeAddressFormResult = HookLoadingResult | UseHomeAddressFormReady\n/**\n * Type of `form.fieldsMetadata` returned by {@link useHomeAddressForm}.\n *\n * @public\n */\nexport type HomeAddressFieldsMetadata = ReturnType<typeof buildHomeAddressFieldsMetadata>\n"],"names":["buildHomeAddressFieldsMetadata","base","stateOptions","withOptions","STATES_ABBR","useHomeAddressForm","employeeId","homeAddressUuid","initialAddress","withEffectiveDateField","optionalFieldsToRequire","partnerDefaults","validationMode","shouldFocusError","hasInitialAddressMatch","retrieveHomeAddressQuery","useEmployeeAddressesRetrieveHomeAddress","isCreateMode","fetchedHomeAddress","schemaMode","schema","metadataConfig","useMemo","createHomeAddressSchema","resolvedDefaults","formMethods","useForm","zodResolver","createHomeAddressMutation","useEmployeeAddressesCreateMutation","updateHomeAddressMutation","useEmployeeAddressesUpdateMutation","isPending","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","abbr","baseMetadata","useDeriveFieldsMetadata","fieldsMetadata","onSubmit","options","submitResult","resolve","data","payload","resolvedEmployeeId","resolvedEffectiveDate","effectiveDateParam","RFCDate","updatedHomeAddress","result","SDKInternalError","hookFormInternals","useHookFormInternals","Street1Field","Street2Field","CityField","StateField","ZipField","CourtesyWithholdingField","EffectiveDateField","createGetFormSubmissionValues"],"mappings":"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"}
1
+ {"version":3,"file":"useHomeAddressForm.js","sources":["../../../../../../src/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useMemo } from 'react'\nimport { useForm } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { EmployeeAddress } from '@gusto/embedded-api/models/components/employeeaddress'\nimport { useEmployeeAddressesRetrieveHomeAddress } from '@gusto/embedded-api/react-query/employeeAddressesRetrieveHomeAddress'\nimport { useEmployeeAddressesCreateMutation } from '@gusto/embedded-api/react-query/employeeAddressesCreate'\nimport { useEmployeeAddressesUpdateMutation } from '@gusto/embedded-api/react-query/employeeAddressesUpdate'\nimport { RFCDate } from '@gusto/embedded-api/types/rfcdate'\nimport {\n createHomeAddressSchema,\n type HomeAddressOptionalFieldsToRequire,\n type HomeAddressFormData,\n type HomeAddressFormOutputs,\n} from './homeAddressSchema'\nimport type {\n Street1FieldProps,\n Street2FieldProps,\n CityFieldProps,\n StateFieldProps,\n ZipFieldProps,\n CourtesyWithholdingFieldProps,\n EffectiveDateFieldProps,\n} from './fields'\nimport {\n Street1Field,\n Street2Field,\n CityField,\n StateField,\n ZipField,\n CourtesyWithholdingField,\n EffectiveDateField,\n} from './fields'\nimport { useDeriveFieldsMetadata } from '@/partner-hook-utils/form/useDeriveFieldsMetadata'\nimport { useHookFormInternals } from '@/partner-hook-utils/form/useHookFormInternals'\nimport { createGetFormSubmissionValues } from '@/partner-hook-utils/form/getFormSubmissionValues'\nimport { withOptions } from '@/partner-hook-utils/form/withOptions'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseFormHookReady,\n FieldMetadata,\n FieldsMetadata,\n HookLoadingResult,\n HookSubmitResult,\n} from '@/partner-hook-utils/types'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { STATES_ABBR } from '@/shared/constants'\n\nexport type { HomeAddressOptionalFieldsToRequire } from './homeAddressSchema'\n\n/** @internal */\nfunction buildHomeAddressFieldsMetadata(\n base: Record<keyof HomeAddressFormData, FieldMetadata>,\n { stateOptions }: { stateOptions: Array<{ label: string; value: string }> },\n) {\n return {\n street1: base.street1,\n street2: base.street2,\n city: base.city,\n state: withOptions(base.state, stateOptions, STATES_ABBR),\n zip: base.zip,\n courtesyWithholding: base.courtesyWithholding,\n effectiveDate: base.effectiveDate,\n } satisfies FieldsMetadata\n}\n\n/**\n * Optional overrides passed to {@link UseHomeAddressFormReady.actions.onSubmit | onSubmit}.\n *\n * @public\n */\nexport interface HomeAddressSubmitOptions {\n /** Override the employee identifier supplied to the hook (e.g. after creating a new employee in the same flow). */\n employeeId?: string\n /** Override the effective date submitted with the address. When omitted on update without an effective-date field, the row's `effectiveDate` from the fetched address is used. */\n effectiveDate?: string\n}\n\n/**\n * Configuration options for {@link useHomeAddressForm}.\n *\n * @remarks\n * Presence or absence of `homeAddressUuid` selects the API verb — see the\n * `homeAddressUuid` field description.\n *\n * @public\n */\nexport interface UseHomeAddressFormProps {\n /** UUID of the employee whose home address is being created or edited. */\n employeeId: string\n /**\n * When set, loads that home address via GET `/v1/home_addresses/{uuid}` and updates it (PUT).\n * When omitted, the form is in create mode (POST).\n */\n homeAddressUuid?: string\n /**\n * Pre-loaded address matching `homeAddressUuid`. When supplied, the form uses it directly\n * instead of issuing a GET — useful when the parent already has the row from a list query.\n */\n initialAddress?: EmployeeAddress\n /** When `true`, renders `Fields.EffectiveDate`; otherwise it is `undefined`. Defaults to `true`. */\n withEffectiveDateField?: boolean\n /** Override fields that are optional on a given mode to be required. See `HomeAddressOptionalFieldsToRequire`. */\n optionalFieldsToRequire?: HomeAddressOptionalFieldsToRequire\n /** Pre-fill form values. Server data takes precedence on update. */\n defaultValues?: Partial<HomeAddressFormData>\n /** Passed through to react-hook-form. Defaults to `'onSubmit'`. */\n validationMode?: UseFormProps['mode']\n /** Auto-focus the first invalid field on submit. Set to `false` when using `composeSubmitHandler` so submit-time focus is coordinated across multiple forms. Defaults to `true`. */\n shouldFocusError?: boolean\n}\n\n/**\n * Pre-bound field components exposed on `useHomeAddressForm().form.Fields`.\n *\n * @remarks\n * `EffectiveDate` is `undefined` when `withEffectiveDateField` is `false`.\n * Always null-check it before rendering.\n *\n * @public\n */\nexport interface HomeAddressFormFields {\n /** Bound to `street1`. Street address line 1 text input. Always available. */\n Street1: ComponentType<Street1FieldProps>\n /** Bound to `street2`. Street address line 2 text input. Always available. */\n Street2: ComponentType<Street2FieldProps>\n /** Bound to `city`. City text input. Always available. */\n City: ComponentType<CityFieldProps>\n /** Bound to `state`. State selector. Always available. */\n State: ComponentType<StateFieldProps>\n /** Bound to `zip`. ZIP code text input. Always available. */\n Zip: ComponentType<ZipFieldProps>\n /** Bound to `courtesyWithholding`. Courtesy withholding checkbox. Always available. */\n CourtesyWithholding: ComponentType<CourtesyWithholdingFieldProps>\n /** Bound to `effectiveDate`. Effective-date picker. Only available when `withEffectiveDateField` is `true`. */\n EffectiveDate: ComponentType<EffectiveDateFieldProps> | undefined\n}\n\n/**\n * Ready-state shape returned by {@link useHomeAddressForm} once data has loaded.\n *\n * @remarks\n * Discriminated by `isLoading: false`. Extends {@link BaseFormHookReady} with\n * the home-address-specific `data`, `status`, `actions`, and `form.Fields` shape.\n *\n * @public\n */\nexport interface UseHomeAddressFormReady extends BaseFormHookReady<\n HomeAddressFieldsMetadata,\n HomeAddressFormData,\n HomeAddressFormFields\n> {\n /** Static entity data resolved from the API. */\n data: {\n /** The address row loaded for update; `null` in create mode. */\n homeAddress: EmployeeAddress | null\n }\n /** Reactive status flags. */\n status: { isPending: boolean; mode: 'create' | 'update' }\n /** Available actions. */\n actions: {\n onSubmit: (\n options?: HomeAddressSubmitOptions,\n ) => Promise<HookSubmitResult<EmployeeAddress> | undefined>\n }\n}\n\n/**\n * Form hook for creating or editing an employee's home address.\n *\n * @remarks\n * When `homeAddressUuid` is supplied the hook loads that address and issues a PUT on submit;\n * when omitted it operates in create mode and issues a POST. Pass `initialAddress` to\n * skip the fetch when the parent already holds the row.\n *\n * @param props - See {@link UseHomeAddressFormProps}.\n * @returns A {@link HookLoadingResult} while loading, or a {@link UseHomeAddressFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import {\n * useHomeAddressForm,\n * SDKFormProvider,\n * type UseHomeAddressFormReady,\n * } from '@gusto/embedded-react-sdk'\n *\n * function HomeAddressPage({ employeeId }: { employeeId: string }) {\n * const homeAddress = useHomeAddressForm({ employeeId })\n *\n * if (homeAddress.isLoading) return <div>Loading...</div>\n *\n * return <HomeAddressReady homeAddress={homeAddress} />\n * }\n *\n * function HomeAddressReady({ homeAddress }: { homeAddress: UseHomeAddressFormReady }) {\n * const { Fields } = homeAddress.form\n *\n * return (\n * <SDKFormProvider formHookResult={homeAddress}>\n * <form onSubmit={e => { e.preventDefault(); void homeAddress.actions.onSubmit() }}>\n * <Fields.Street1 label=\"Street address\" />\n * <Fields.Street2 label=\"Apt, suite, etc. (optional)\" />\n * <Fields.City label=\"City\" />\n * <Fields.State label=\"State\" />\n * <Fields.Zip label=\"ZIP code\" />\n * <Fields.CourtesyWithholding label=\"Courtesy withholding\" />\n * {Fields.EffectiveDate && <Fields.EffectiveDate label=\"Effective date\" />}\n * <button type=\"submit\" disabled={homeAddress.status.isPending}>Save</button>\n * </form>\n * </SDKFormProvider>\n * )\n * }\n * ```\n */\nexport function useHomeAddressForm({\n employeeId,\n homeAddressUuid,\n initialAddress,\n withEffectiveDateField = true,\n optionalFieldsToRequire,\n defaultValues: partnerDefaults,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n}: UseHomeAddressFormProps): HookLoadingResult | UseHomeAddressFormReady {\n const hasInitialAddressMatch = !!homeAddressUuid && initialAddress?.uuid === homeAddressUuid\n\n const retrieveHomeAddressQuery = useEmployeeAddressesRetrieveHomeAddress(\n { homeAddressUuid: homeAddressUuid ?? '' },\n { enabled: !!homeAddressUuid && !hasInitialAddressMatch },\n )\n\n const isCreateMode = !homeAddressUuid\n\n const fetchedHomeAddress = homeAddressUuid\n ? hasInitialAddressMatch\n ? initialAddress\n : retrieveHomeAddressQuery.data?.employeeAddress\n : undefined\n\n const schemaMode = isCreateMode ? 'create' : 'update'\n\n const [schema, metadataConfig] = useMemo(\n () =>\n createHomeAddressSchema({\n mode: schemaMode,\n optionalFieldsToRequire,\n withEffectiveDateField,\n }),\n [schemaMode, optionalFieldsToRequire, withEffectiveDateField],\n )\n\n const resolvedDefaults: HomeAddressFormData = useMemo(\n () => ({\n street1: fetchedHomeAddress?.street1 ?? partnerDefaults?.street1 ?? '',\n street2: fetchedHomeAddress?.street2 ?? partnerDefaults?.street2 ?? '',\n city: fetchedHomeAddress?.city ?? partnerDefaults?.city ?? '',\n state: fetchedHomeAddress?.state ?? partnerDefaults?.state ?? '',\n zip: fetchedHomeAddress?.zip ?? partnerDefaults?.zip ?? '',\n courtesyWithholding:\n fetchedHomeAddress?.courtesyWithholding ?? partnerDefaults?.courtesyWithholding ?? false,\n effectiveDate:\n fetchedHomeAddress?.effectiveDate?.toString() ?? partnerDefaults?.effectiveDate ?? '',\n }),\n [fetchedHomeAddress, partnerDefaults],\n )\n\n const formMethods = useForm<HomeAddressFormData, unknown, HomeAddressFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const createHomeAddressMutation = useEmployeeAddressesCreateMutation()\n const updateHomeAddressMutation = useEmployeeAddressesUpdateMutation()\n\n const isPending = createHomeAddressMutation.isPending || updateHomeAddressMutation.isPending\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('HomeAddressForm')\n\n const queriesForErrors = homeAddressUuid ? [retrieveHomeAddressQuery] : []\n const errorHandling = composeErrorHandler(queriesForErrors, { submitError, setSubmitError })\n\n const stateOptions = STATES_ABBR.map(abbr => ({\n value: abbr,\n label: abbr,\n }))\n\n const baseMetadata = useDeriveFieldsMetadata(metadataConfig, formMethods.control)\n const fieldsMetadata = buildHomeAddressFieldsMetadata(baseMetadata, { stateOptions })\n\n const onSubmit = async (\n options?: HomeAddressSubmitOptions,\n ): Promise<HookSubmitResult<EmployeeAddress> | undefined> => {\n let submitResult: HookSubmitResult<EmployeeAddress> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: HomeAddressFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const resolvedEmployeeId = options?.employeeId ?? employeeId\n\n const resolvedEffectiveDate =\n withEffectiveDateField && payload.effectiveDate\n ? payload.effectiveDate\n : (options?.effectiveDate ??\n (!withEffectiveDateField && !isCreateMode\n ? fetchedHomeAddress?.effectiveDate?.toString()\n : undefined))\n\n const effectiveDateParam = resolvedEffectiveDate\n ? new RFCDate(new Date(resolvedEffectiveDate))\n : undefined\n\n let updatedHomeAddress: EmployeeAddress\n\n if (isCreateMode) {\n const result = await createHomeAddressMutation.mutateAsync({\n request: {\n employeeId: resolvedEmployeeId,\n requestBody: {\n street1: payload.street1,\n street2: payload.street2 || undefined,\n city: payload.city,\n state: payload.state,\n zip: payload.zip,\n courtesyWithholding: payload.courtesyWithholding,\n effectiveDate: effectiveDateParam,\n },\n },\n })\n\n if (!result.employeeAddress) {\n throw new SDKInternalError('Home address creation failed')\n }\n\n updatedHomeAddress = result.employeeAddress\n } else {\n if (!fetchedHomeAddress || !homeAddressUuid) {\n throw new SDKInternalError(\n 'Cannot update home address: no matching address on file',\n )\n }\n\n const result = await updateHomeAddressMutation.mutateAsync({\n request: {\n homeAddressUuid: fetchedHomeAddress.uuid,\n requestBody: {\n version: fetchedHomeAddress.version,\n street1: payload.street1,\n street2: payload.street2 || undefined,\n city: payload.city,\n state: payload.state,\n zip: payload.zip,\n courtesyWithholding: payload.courtesyWithholding,\n effectiveDate: effectiveDateParam,\n },\n },\n })\n\n if (!result.employeeAddress) {\n throw new SDKInternalError('Home address update failed')\n }\n\n updatedHomeAddress = result.employeeAddress\n }\n\n submitResult = {\n mode: isCreateMode ? 'create' : 'update',\n data: updatedHomeAddress,\n }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const hookFormInternals = useHookFormInternals(formMethods)\n\n if (homeAddressUuid && !fetchedHomeAddress) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: {\n homeAddress: fetchedHomeAddress ?? null,\n },\n status: {\n isPending,\n mode: isCreateMode ? ('create' as const) : ('update' as const),\n },\n actions: { onSubmit },\n errorHandling,\n form: {\n Fields: {\n Street1: Street1Field,\n Street2: Street2Field,\n City: CityField,\n State: StateField,\n Zip: ZipField,\n CourtesyWithholding: CourtesyWithholdingField,\n EffectiveDate: withEffectiveDateField ? EffectiveDateField : undefined,\n },\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\n/**\n * Discriminated union returned by {@link useHomeAddressForm}.\n *\n * @public\n */\nexport type UseHomeAddressFormResult = HookLoadingResult | UseHomeAddressFormReady\n/**\n * Type of `form.fieldsMetadata` returned by {@link useHomeAddressForm}.\n *\n * @public\n */\nexport type HomeAddressFieldsMetadata = ReturnType<typeof buildHomeAddressFieldsMetadata>\n"],"names":["buildHomeAddressFieldsMetadata","base","stateOptions","withOptions","STATES_ABBR","useHomeAddressForm","employeeId","homeAddressUuid","initialAddress","withEffectiveDateField","optionalFieldsToRequire","partnerDefaults","validationMode","shouldFocusError","hasInitialAddressMatch","retrieveHomeAddressQuery","useEmployeeAddressesRetrieveHomeAddress","isCreateMode","fetchedHomeAddress","schemaMode","schema","metadataConfig","useMemo","createHomeAddressSchema","resolvedDefaults","formMethods","useForm","zodResolver","createHomeAddressMutation","useEmployeeAddressesCreateMutation","updateHomeAddressMutation","useEmployeeAddressesUpdateMutation","isPending","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","abbr","baseMetadata","useDeriveFieldsMetadata","fieldsMetadata","onSubmit","options","submitResult","resolve","data","payload","resolvedEmployeeId","resolvedEffectiveDate","effectiveDateParam","RFCDate","updatedHomeAddress","result","SDKInternalError","hookFormInternals","useHookFormInternals","Street1Field","Street2Field","CityField","StateField","ZipField","CourtesyWithholdingField","EffectiveDateField","createGetFormSubmissionValues"],"mappings":"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"}