@gusto/embedded-react-sdk 0.51.0 → 0.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (648) hide show
  1. package/CHANGELOG.md +46 -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/FlowBreadcrumbs/FlowBreadcrumbsTypes.d.ts +1 -1
  8. package/dist/components/Common/OnboardingStatusBadge/index.d.ts +2 -2
  9. package/dist/components/Common/OnboardingStatusBadge/index.js.map +1 -1
  10. package/dist/components/Common/TaxInputs/TaxInputs.d.ts +2 -2
  11. package/dist/components/Common/TaxInputs/TaxInputs.js.map +1 -1
  12. package/dist/components/Common/UI/FormBox/FormBox.d.ts +9 -0
  13. package/dist/components/Common/UI/FormBox/FormBox.js +13 -0
  14. package/dist/components/Common/UI/FormBox/FormBox.js.map +1 -0
  15. package/dist/components/Common/UI/FormBox/FormBox.module.scss.js +14 -0
  16. package/dist/components/Common/UI/FormBox/FormBox.module.scss.js.map +1 -0
  17. package/dist/components/Common/UI/FormBox/FormBoxTypes.d.ts +26 -0
  18. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeader.d.ts +9 -0
  19. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeader.js +23 -0
  20. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeader.js.map +1 -0
  21. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeader.module.scss.js +8 -0
  22. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeader.module.scss.js.map +1 -0
  23. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeaderTypes.d.ts +36 -0
  24. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeaderTypes.js +7 -0
  25. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeaderTypes.js.map +1 -0
  26. package/dist/components/Common/UI/FormBoxHeader/index.d.ts +1 -0
  27. package/dist/components/Common/UI/Input/InputTypes.d.ts +1 -0
  28. package/dist/components/Common/UI/Input/InputTypes.js.map +1 -1
  29. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +5 -5
  30. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
  31. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.d.ts +1 -2
  32. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.d.ts +1 -1
  33. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +9 -8
  34. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  35. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +3 -3
  36. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js.map +1 -1
  37. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.d.ts +1 -1
  38. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.d.ts +1 -1
  39. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +9 -8
  40. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  41. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +11 -10
  42. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  43. package/dist/components/Company/BankAccount/BankAccount.js +1 -1
  44. package/dist/components/Company/BankAccount/BankAccount.js.map +1 -1
  45. package/dist/components/Company/BankAccount/BankAccountComponents.d.ts +1 -1
  46. package/dist/components/Company/BankAccount/BankAccountComponents.js.map +1 -1
  47. package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js +1 -1
  48. package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js.map +1 -1
  49. package/dist/components/Company/BankAccount/BankAccountForm/Form.d.ts +1 -1
  50. package/dist/components/Company/BankAccount/BankAccountForm/context.js +9 -8
  51. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  52. package/dist/components/Company/BankAccount/BankAccountList/BankAccountList.js +1 -1
  53. package/dist/components/Company/BankAccount/BankAccountList/BankAccountList.js.map +1 -1
  54. package/dist/components/Company/BankAccount/BankAccountList/context.d.ts +1 -1
  55. package/dist/components/Company/BankAccount/BankAccountList/context.js.map +1 -1
  56. package/dist/components/Company/BankAccount/BankAccountVerify/BankAccountVerify.js +1 -1
  57. package/dist/components/Company/BankAccount/BankAccountVerify/BankAccountVerify.js.map +1 -1
  58. package/dist/components/Company/BankAccount/BankAccountVerify/Form.d.ts +1 -1
  59. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +2 -2
  60. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  61. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.d.ts +2 -2
  62. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +9 -8
  63. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  64. package/dist/components/Company/DocumentSigner/DocumentSigner.js +1 -1
  65. package/dist/components/Company/DocumentSigner/DocumentSigner.js.map +1 -1
  66. package/dist/components/Company/DocumentSigner/documentSignerStateMachine.d.ts +2 -2
  67. package/dist/components/Company/DocumentSigner/documentSignerStateMachine.js.map +1 -1
  68. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/signCompanyFormSchema.d.ts +1 -1
  69. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/useSignCompanyForm.d.ts +1 -1
  70. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/useSignCompanyForm.js +3 -3
  71. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/useSignCompanyForm.js.map +1 -1
  72. package/dist/components/Company/FederalTaxes/FederalTaxes.js +2 -2
  73. package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
  74. package/dist/components/Company/FederalTaxes/Form.js +1 -1
  75. package/dist/components/Company/FederalTaxes/Form.js.map +1 -1
  76. package/dist/components/Company/FederalTaxes/useFederalTaxes.d.ts +2 -2
  77. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +12 -11
  78. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  79. package/dist/components/Company/Industry/Context.js +12 -11
  80. package/dist/components/Company/Industry/Context.js.map +1 -1
  81. package/dist/components/Company/Industry/Industry.js +2 -2
  82. package/dist/components/Company/Industry/Industry.js.map +1 -1
  83. package/dist/components/Company/Locations/LocationForm/Actions.js +7 -7
  84. package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
  85. package/dist/components/Company/Locations/LocationForm/Form.d.ts +1 -1
  86. package/dist/components/Company/Locations/LocationForm/LocationForm.js +46 -45
  87. package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
  88. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +9 -8
  89. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  90. package/dist/components/Company/Locations/LocationsList/LocationsList.js +1 -1
  91. package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
  92. package/dist/components/Company/Locations/LocationsList/useLocationsList.d.ts +1 -1
  93. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +9 -8
  94. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  95. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +1 -1
  96. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js.map +1 -1
  97. package/dist/components/Company/OnboardingOverview/context.d.ts +1 -1
  98. package/dist/components/Company/OnboardingOverview/context.js +9 -8
  99. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  100. package/dist/components/Company/PaySchedule/PaySchedule.js +1 -1
  101. package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
  102. package/dist/components/Company/PaySchedule/PayScheduleList.js +1 -1
  103. package/dist/components/Company/PaySchedule/PayScheduleList.js.map +1 -1
  104. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/payScheduleSchema.d.ts +3 -3
  105. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.d.ts +3 -3
  106. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js +6 -6
  107. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js.map +1 -1
  108. package/dist/components/Company/StateTaxes/StateTaxes.d.ts +10 -1
  109. package/dist/components/Company/StateTaxes/StateTaxes.js +23 -17
  110. package/dist/components/Company/StateTaxes/StateTaxes.js.map +1 -1
  111. package/dist/components/Company/StateTaxes/StateTaxesComponents.d.ts +2 -0
  112. package/dist/components/Company/StateTaxes/StateTaxesComponents.js +17 -10
  113. package/dist/components/Company/StateTaxes/StateTaxesComponents.js.map +1 -1
  114. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +3 -3
  115. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
  116. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js +2 -2
  117. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js.map +1 -1
  118. package/dist/components/Company/StateTaxes/StateTaxesForm/applicableIf.d.ts +1 -1
  119. package/dist/components/Company/StateTaxes/StateTaxesForm/applicableIf.js.map +1 -1
  120. package/dist/components/Company/StateTaxes/StateTaxesForm/context.d.ts +1 -1
  121. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +9 -8
  122. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  123. package/dist/components/Company/StateTaxes/StateTaxesList/List.js +27 -27
  124. package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
  125. package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.d.ts +9 -0
  126. package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js +24 -24
  127. package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js.map +1 -1
  128. package/dist/components/Company/StateTaxes/StateTaxesList/context.d.ts +1 -1
  129. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +9 -8
  130. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  131. package/dist/components/Contractor/Address/Address.d.ts +4 -3
  132. package/dist/components/Contractor/Address/Address.js.map +1 -1
  133. package/dist/components/Contractor/Address/shared/useContractorAddressForm/contractorAddressSchema.d.ts +2 -2
  134. package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.d.ts +3 -3
  135. package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.js +3 -3
  136. package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.js.map +1 -1
  137. package/dist/components/Contractor/ContractorList/index.js +95 -92
  138. package/dist/components/Contractor/ContractorList/index.js.map +1 -1
  139. package/dist/components/Contractor/ContractorList/useContractorList.d.ts +1 -1
  140. package/dist/components/Contractor/ContractorList/useContractorList.js +1 -1
  141. package/dist/components/Contractor/ContractorList/useContractorList.js.map +1 -1
  142. package/dist/components/Contractor/Documents/DocumentSigner/documentSignerStateMachine.d.ts +1 -1
  143. package/dist/components/Contractor/Documents/DocumentSigner/documentSignerStateMachine.js.map +1 -1
  144. package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.d.ts +3 -1
  145. package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.js +64 -51
  146. package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.js.map +1 -1
  147. package/dist/components/Contractor/Documents/DocumentsList/useContractorDocumentsList/useContractorDocumentsList.d.ts +1 -1
  148. package/dist/components/Contractor/Documents/DocumentsList/useContractorDocumentsList/useContractorDocumentsList.js +1 -1
  149. package/dist/components/Contractor/Documents/DocumentsList/useContractorDocumentsList/useContractorDocumentsList.js.map +1 -1
  150. package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.js +202 -159
  151. package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.js.map +1 -1
  152. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/contractorSignatureFormSchema.d.ts +1 -1
  153. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.d.ts +3 -3
  154. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.js +3 -3
  155. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.js.map +1 -1
  156. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.d.ts +2 -2
  157. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.js +55 -54
  158. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.js.map +1 -1
  159. package/dist/components/Contractor/Landing/Landing.js +2 -2
  160. package/dist/components/Contractor/Landing/Landing.js.map +1 -1
  161. package/dist/components/Contractor/NewHireReport/NewHireReport.js +2 -2
  162. package/dist/components/Contractor/NewHireReport/NewHireReport.js.map +1 -1
  163. package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/useContractorBankAccountForm.d.ts +1 -1
  164. package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/useContractorBankAccountForm.js +2 -2
  165. package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/useContractorBankAccountForm.js.map +1 -1
  166. package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/useContractorBankAccountFormSchema.d.ts +1 -1
  167. package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodForm/contractorPaymentMethodSchema.d.ts +1 -1
  168. package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodForm/contractorPaymentMethodSchema.js.map +1 -1
  169. package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodForm/useContractorPaymentMethodForm.d.ts +3 -3
  170. package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodForm/useContractorPaymentMethodForm.js +2 -2
  171. package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodForm/useContractorPaymentMethodForm.js.map +1 -1
  172. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +5 -5
  173. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
  174. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.d.ts +2 -2
  175. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js.map +1 -1
  176. package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.d.ts +2 -2
  177. package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js.map +1 -1
  178. package/dist/components/Contractor/Payments/CreatePayment/GenericBlocker.d.ts +1 -1
  179. package/dist/components/Contractor/Payments/CreatePayment/GenericBlocker.js.map +1 -1
  180. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.d.ts +4 -4
  181. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js.map +1 -1
  182. package/dist/components/Contractor/Payments/CreatePayment/helpers.d.ts +1 -1
  183. package/dist/components/Contractor/Payments/CreatePayment/helpers.js.map +1 -1
  184. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js +2 -2
  185. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js.map +1 -1
  186. package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.js.map +1 -1
  187. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js +3 -3
  188. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js.map +1 -1
  189. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.d.ts +2 -2
  190. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js.map +1 -1
  191. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js +4 -4
  192. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js.map +1 -1
  193. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.d.ts +3 -3
  194. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js.map +1 -1
  195. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.d.ts +17 -5
  196. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js +32 -31
  197. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js.map +1 -1
  198. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.d.ts +3 -3
  199. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.js.map +1 -1
  200. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.d.ts +16 -4
  201. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js +34 -30
  202. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js.map +1 -1
  203. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.d.ts +1 -1
  204. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +1 -1
  205. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
  206. package/dist/components/Contractor/Profile/SelfOnboardingContractorProfile.js +1 -1
  207. package/dist/components/Contractor/Profile/SelfOnboardingContractorProfile.js.map +1 -1
  208. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.d.ts +1 -1
  209. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.js +6 -6
  210. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.js.map +1 -1
  211. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.d.ts +2 -2
  212. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js +3 -3
  213. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js.map +1 -1
  214. package/dist/components/Contractor/Submit/Submit.js +3 -3
  215. package/dist/components/Contractor/Submit/Submit.js.map +1 -1
  216. package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.js +1 -1
  217. package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.js.map +1 -1
  218. package/dist/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.js +1 -1
  219. package/dist/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.js.map +1 -1
  220. package/dist/components/Employee/Compensation/management/CompensationEditJobForm/CompensationEditJobForm.js +1 -1
  221. package/dist/components/Employee/Compensation/management/CompensationEditJobForm/CompensationEditJobForm.js.map +1 -1
  222. package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js.map +1 -1
  223. package/dist/components/Employee/Compensation/onboarding/Compensation.d.ts +2 -6
  224. package/dist/components/Employee/Compensation/onboarding/Compensation.js +38 -42
  225. package/dist/components/Employee/Compensation/onboarding/Compensation.js.map +1 -1
  226. package/dist/components/Employee/Compensation/onboarding/CompensationFlowComponents.d.ts +2 -2
  227. package/dist/components/Employee/Compensation/onboarding/CompensationFlowComponents.js.map +1 -1
  228. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsList.js +2 -2
  229. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsList.js.map +1 -1
  230. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.d.ts +1 -1
  231. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.js.map +1 -1
  232. package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js.map +1 -1
  233. package/dist/components/Employee/Compensation/shared/derivePrimaryFlsaStatus.d.ts +1 -1
  234. package/dist/components/Employee/Compensation/shared/derivePrimaryFlsaStatus.js.map +1 -1
  235. package/dist/components/Employee/Compensation/shared/getPendingCompensationChanges.d.ts +2 -2
  236. package/dist/components/Employee/Compensation/shared/getPendingCompensationChanges.js.map +1 -1
  237. package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.d.ts +2 -2
  238. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.d.ts +3 -3
  239. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.js.map +1 -1
  240. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.d.ts +4 -4
  241. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js +7 -7
  242. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js.map +1 -1
  243. package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.d.ts +1 -1
  244. package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.js +4 -4
  245. package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.js.map +1 -1
  246. package/dist/components/Employee/Compensation/shared/useJobForm/jobSchema.d.ts +1 -1
  247. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.d.ts +3 -3
  248. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js +7 -7
  249. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js.map +1 -1
  250. package/dist/components/Employee/Dashboard/Dashboard.js +1 -1
  251. package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
  252. package/dist/components/Employee/Dashboard/dashboardStateMachine.js.map +1 -1
  253. package/dist/components/Employee/Dashboard/index.d.ts +1 -1
  254. package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js.map +1 -1
  255. package/dist/components/Employee/Deductions/management/deductionsStateMachine.js.map +1 -1
  256. package/dist/components/Employee/Deductions/onboarding/DeductionsList/DeductionsList.d.ts +1 -1
  257. package/dist/components/Employee/Deductions/onboarding/DeductionsList/DeductionsList.js.map +1 -1
  258. package/dist/components/Employee/Deductions/onboarding/deductionsContextualComponents.d.ts +1 -1
  259. package/dist/components/Employee/Deductions/onboarding/deductionsContextualComponents.js.map +1 -1
  260. package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.d.ts +1 -1
  261. package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.js.map +1 -1
  262. package/dist/components/Employee/Deductions/shared/DeductionsForm/DeductionsForm.d.ts +1 -1
  263. package/dist/components/Employee/Deductions/shared/DeductionsForm/DeductionsForm.js.map +1 -1
  264. package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.d.ts +1 -1
  265. package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.js.map +1 -1
  266. package/dist/components/Employee/Deductions/shared/DeleteDeductionDialog.d.ts +1 -1
  267. package/dist/components/Employee/Deductions/shared/DeleteDeductionDialog.js.map +1 -1
  268. package/dist/components/Employee/Deductions/shared/formatDeductionAmount.d.ts +1 -1
  269. package/dist/components/Employee/Deductions/shared/formatDeductionAmount.js.map +1 -1
  270. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.d.ts +2 -2
  271. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.js +1 -1
  272. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.js.map +1 -1
  273. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.d.ts +1 -1
  274. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.js.map +1 -1
  275. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.d.ts +3 -3
  276. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.js +5 -5
  277. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.js.map +1 -1
  278. package/dist/components/Employee/Deductions/shared/useDeductionForm/deductionFormSchema.d.ts +2 -2
  279. package/dist/components/Employee/Deductions/shared/useDeductionForm/deductionFormSchema.js +1 -1
  280. package/dist/components/Employee/Deductions/shared/useDeductionForm/deductionFormSchema.js.map +1 -1
  281. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.d.ts +1 -1
  282. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js.map +1 -1
  283. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.d.ts +1 -1
  284. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.js +3 -3
  285. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.js.map +1 -1
  286. package/dist/components/Employee/Deductions/shared/useDeductionsList.d.ts +1 -1
  287. package/dist/components/Employee/Deductions/shared/useDeductionsList.js +2 -2
  288. package/dist/components/Employee/Deductions/shared/useDeductionsList.js.map +1 -1
  289. package/dist/components/Employee/Deductions/shared/useDeleteDeduction.d.ts +1 -1
  290. package/dist/components/Employee/Deductions/shared/useDeleteDeduction.js.map +1 -1
  291. package/dist/components/Employee/Documents/management/DocumentManager.js +2 -2
  292. package/dist/components/Employee/Documents/management/DocumentManager.js.map +1 -1
  293. package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
  294. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js +1 -1
  295. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  296. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.d.ts +1 -1
  297. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +9 -8
  298. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  299. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js +2 -2
  300. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js.map +1 -1
  301. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js +3 -3
  302. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js.map +1 -1
  303. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js +1 -1
  304. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js.map +1 -1
  305. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.d.ts +2 -2
  306. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js +1 -1
  307. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js.map +1 -1
  308. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js +1 -1
  309. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js.map +1 -1
  310. package/dist/components/Employee/Documents/onboarding/DocumentSigner/documentSignerStateMachine.d.ts +1 -1
  311. package/dist/components/Employee/Documents/onboarding/DocumentSigner/documentSignerStateMachine.js.map +1 -1
  312. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js +3 -6
  313. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js.map +1 -1
  314. package/dist/components/Employee/Documents/shared/useDocumentsList/useDocumentsList.d.ts +1 -1
  315. package/dist/components/Employee/Documents/shared/useDocumentsList/useDocumentsList.js +1 -1
  316. package/dist/components/Employee/Documents/shared/useDocumentsList/useDocumentsList.js.map +1 -1
  317. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/signEmployeeFormSchema.d.ts +2 -2
  318. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/signEmployeeFormSchema.js +27 -32
  319. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/signEmployeeFormSchema.js.map +1 -1
  320. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/useSignEmployeeForm.d.ts +1 -1
  321. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/useSignEmployeeForm.js +3 -3
  322. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/useSignEmployeeForm.js.map +1 -1
  323. package/dist/components/Employee/EmployeeList/onboarding/EmployeeList.js.map +1 -1
  324. package/dist/components/Employee/EmployeeList/onboarding/EmployeeListView.d.ts +1 -1
  325. package/dist/components/Employee/EmployeeList/onboarding/EmployeeListView.js.map +1 -1
  326. package/dist/components/Employee/EmployeeList/shared/useEmployeeList.d.ts +3 -3
  327. package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js +4 -5
  328. package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js.map +1 -1
  329. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/federalTaxesSchema.d.ts +2 -2
  330. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/federalTaxesSchema.js +1 -1
  331. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/federalTaxesSchema.js.map +1 -1
  332. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/useFederalTaxesForm.d.ts +2 -2
  333. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/useFederalTaxesForm.js +2 -2
  334. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/useFederalTaxesForm.js.map +1 -1
  335. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesSummary/useFederalTaxesSummary.d.ts +1 -1
  336. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesSummary/useFederalTaxesSummary.js +1 -1
  337. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesSummary/useFederalTaxesSummary.js.map +1 -1
  338. package/dist/components/Employee/HomeAddress/management/HomeAddressEditForm.js.map +1 -1
  339. package/dist/components/Employee/HomeAddress/management/HomeAddressView.d.ts +1 -1
  340. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js.map +1 -1
  341. package/dist/components/Employee/HomeAddress/management/getPendingFutureHomeAddress.d.ts +1 -1
  342. package/dist/components/Employee/HomeAddress/management/getPendingFutureHomeAddress.js.map +1 -1
  343. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.d.ts +1 -1
  344. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js +3 -3
  345. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js.map +1 -1
  346. package/dist/components/Employee/HomeAddress/shared/useHomeAddressSummary/useHomeAddressSummary.d.ts +1 -1
  347. package/dist/components/Employee/HomeAddress/shared/useHomeAddressSummary/useHomeAddressSummary.js +1 -1
  348. package/dist/components/Employee/HomeAddress/shared/useHomeAddressSummary/useHomeAddressSummary.js.map +1 -1
  349. package/dist/components/Employee/Landing/Landing.js +2 -2
  350. package/dist/components/Employee/Landing/Landing.js.map +1 -1
  351. package/dist/components/Employee/OnboardingExecutionFlow/OnboardingExecutionFlowComponents.d.ts +1 -1
  352. package/dist/components/Employee/OnboardingExecutionFlow/OnboardingExecutionFlowComponents.js.map +1 -1
  353. package/dist/components/Employee/OnboardingExecutionFlow/onboardingExecutionStateMachine.d.ts +1 -1
  354. package/dist/components/Employee/OnboardingExecutionFlow/onboardingExecutionStateMachine.js +1 -3
  355. package/dist/components/Employee/OnboardingExecutionFlow/onboardingExecutionStateMachine.js.map +1 -1
  356. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +55 -49
  357. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js.map +1 -1
  358. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.d.ts +1 -1
  359. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js.map +1 -1
  360. package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.d.ts +1 -1
  361. package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.js.map +1 -1
  362. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankForm.d.ts +1 -1
  363. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankForm.js +1 -1
  364. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankForm.js.map +1 -1
  365. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankFormSchema.d.ts +1 -1
  366. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodForm.d.ts +1 -1
  367. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodForm.js +2 -2
  368. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodForm.js.map +1 -1
  369. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodList.d.ts +2 -2
  370. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodList.js +4 -4
  371. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodList.js.map +1 -1
  372. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsForm.d.ts +2 -2
  373. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsForm.js +3 -3
  374. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsForm.js.map +1 -1
  375. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsFormSchema.d.ts +1 -1
  376. package/dist/components/Employee/Paystubs/shared/usePaystubsList/usePaystubsList.d.ts +1 -1
  377. package/dist/components/Employee/Paystubs/shared/usePaystubsList/usePaystubsList.js +3 -3
  378. package/dist/components/Employee/Paystubs/shared/usePaystubsList/usePaystubsList.js.map +1 -1
  379. package/dist/components/Employee/Profile/onboarding/AdminProfile.js.map +1 -1
  380. package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js +1 -1
  381. package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js.map +1 -1
  382. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/employeeDetailsSchema.d.ts +2 -2
  383. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.d.ts +1 -1
  384. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js +5 -5
  385. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js.map +1 -1
  386. package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.d.ts +1 -1
  387. package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.js +1 -1
  388. package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.js.map +1 -1
  389. package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.d.ts +1 -1
  390. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.js +1 -1
  391. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.js.map +1 -1
  392. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.d.ts +2 -2
  393. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.js +4 -4
  394. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.js.map +1 -1
  395. package/dist/components/Employee/Profile/shared/useWorkAddressForm/fields.d.ts +1 -1
  396. package/dist/components/Employee/Profile/shared/useWorkAddressForm/fields.js.map +1 -1
  397. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.js +1 -1
  398. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.js.map +1 -1
  399. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.d.ts +2 -2
  400. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js +5 -5
  401. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js.map +1 -1
  402. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.d.ts +1 -1
  403. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
  404. package/dist/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.js.map +1 -1
  405. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/__fixtures__/stateTaxesFixtures.d.ts +1 -1
  406. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/__fixtures__/toWireFormat.d.ts +1 -1
  407. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/employeeStateTaxesSchema.d.ts +1 -1
  408. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/employeeStateTaxesSchema.js.map +1 -1
  409. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldMapping.d.ts +1 -1
  410. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldMapping.js.map +1 -1
  411. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fields.d.ts +1 -1
  412. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fields.js.map +1 -1
  413. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.d.ts +1 -1
  414. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.js +2 -2
  415. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.js.map +1 -1
  416. package/dist/components/Employee/StateTaxes/shared/useStateTaxesSummary/useStateTaxesSummary.d.ts +1 -1
  417. package/dist/components/Employee/StateTaxes/shared/useStateTaxesSummary/useStateTaxesSummary.js +1 -1
  418. package/dist/components/Employee/StateTaxes/shared/useStateTaxesSummary/useStateTaxesSummary.js.map +1 -1
  419. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js +9 -9
  420. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js.map +1 -1
  421. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.d.ts +1 -1
  422. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js.map +1 -1
  423. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js +4 -4
  424. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js.map +1 -1
  425. package/dist/components/Employee/WorkAddress/management/WorkAddressEditForm.js.map +1 -1
  426. package/dist/components/Employee/WorkAddress/management/WorkAddressView.d.ts +1 -1
  427. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js.map +1 -1
  428. package/dist/components/Employee/WorkAddress/management/getPendingFutureWorkAddress.d.ts +2 -2
  429. package/dist/components/Employee/WorkAddress/management/getPendingFutureWorkAddress.js.map +1 -1
  430. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.d.ts +1 -1
  431. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js +3 -3
  432. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js.map +1 -1
  433. package/dist/components/Employee/WorkAddress/shared/useEmployeeWorkAddressSummary/useEmployeeWorkAddressSummary.d.ts +1 -1
  434. package/dist/components/Employee/WorkAddress/shared/useEmployeeWorkAddressSummary/useEmployeeWorkAddressSummary.js +1 -1
  435. package/dist/components/Employee/WorkAddress/shared/useEmployeeWorkAddressSummary/useEmployeeWorkAddressSummary.js.map +1 -1
  436. package/dist/components/Employee/exports/employeeManagement.d.ts +1 -1
  437. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.d.ts +4 -5
  438. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js +101 -125
  439. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js.map +1 -1
  440. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js +2 -2
  441. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js.map +1 -1
  442. package/dist/components/InformationRequests/InformationRequestsComponents.d.ts +0 -5
  443. package/dist/components/InformationRequests/InformationRequestsComponents.js +12 -13
  444. package/dist/components/InformationRequests/InformationRequestsComponents.js.map +1 -1
  445. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js +1 -1
  446. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js.map +1 -1
  447. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js +2 -2
  448. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js.map +1 -1
  449. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +3 -3
  450. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js.map +1 -1
  451. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.js +2 -2
  452. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.js.map +1 -1
  453. package/dist/components/Payroll/Dismissal/DismissalFlowComponents.js +5 -5
  454. package/dist/components/Payroll/Dismissal/DismissalFlowComponents.js.map +1 -1
  455. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js +4 -4
  456. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js.map +1 -1
  457. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +8 -7
  458. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  459. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.d.ts +1 -1
  460. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js +9 -9
  461. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js.map +1 -1
  462. package/dist/components/Payroll/OffCycle/index.d.ts +1 -1
  463. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +4 -4
  464. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
  465. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js +1 -1
  466. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js.map +1 -1
  467. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.d.ts +2 -2
  468. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.js +1 -1
  469. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.js.map +1 -1
  470. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js +4 -4
  471. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js.map +1 -1
  472. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js +2 -2
  473. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js.map +1 -1
  474. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +100 -95
  475. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  476. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +5 -6
  477. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  478. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.d.ts +5 -5
  479. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js +6 -6
  480. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
  481. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +57 -56
  482. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
  483. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.d.ts +4 -4
  484. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +1 -1
  485. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  486. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.d.ts +2 -2
  487. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
  488. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.d.ts +24 -7
  489. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js +37 -33
  490. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js.map +1 -1
  491. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js +2 -2
  492. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js.map +1 -1
  493. package/dist/components/Payroll/PayrollFlow/PayrollExecutionFlowContextual.js +7 -7
  494. package/dist/components/Payroll/PayrollFlow/PayrollExecutionFlowContextual.js.map +1 -1
  495. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.d.ts +1 -1
  496. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js.map +1 -1
  497. package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js +2 -2
  498. package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js.map +1 -1
  499. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js.map +1 -1
  500. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js +4 -4
  501. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
  502. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.d.ts +2 -2
  503. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  504. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js +2 -2
  505. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -1
  506. package/dist/components/Payroll/PayrollList/PayrollList.js +8 -8
  507. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  508. package/dist/components/Payroll/PayrollList/PayrollListPresentation.d.ts +3 -3
  509. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +1 -1
  510. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  511. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +7 -7
  512. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  513. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +4 -4
  514. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +31 -31
  515. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  516. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.d.ts +2 -2
  517. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js.map +1 -1
  518. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/GenericBlocker.d.ts +1 -1
  519. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/GenericBlocker.js.map +1 -1
  520. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js +1 -1
  521. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js.map +1 -1
  522. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.d.ts +1 -1
  523. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  524. package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.d.ts +1 -1
  525. package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.js +2 -2
  526. package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.js.map +1 -1
  527. package/dist/components/Payroll/RecoveryCases/RecoveryCases.d.ts +9 -5
  528. package/dist/components/Payroll/RecoveryCases/RecoveryCases.js.map +1 -1
  529. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js +1 -1
  530. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js.map +1 -1
  531. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js +2 -2
  532. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js.map +1 -1
  533. package/dist/components/Payroll/Transition/TransitionFlowComponents.d.ts +1 -1
  534. package/dist/components/Payroll/Transition/TransitionFlowComponents.js +2 -2
  535. package/dist/components/Payroll/Transition/TransitionFlowComponents.js.map +1 -1
  536. package/dist/components/Payroll/Transition/index.d.ts +1 -1
  537. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js +4 -4
  538. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js.map +1 -1
  539. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js +3 -3
  540. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js.map +1 -1
  541. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.d.ts +1 -1
  542. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.js.map +1 -1
  543. package/dist/components/Payroll/helpers.d.ts +26 -12
  544. package/dist/components/Payroll/helpers.js +1 -1
  545. package/dist/components/Payroll/helpers.js.map +1 -1
  546. package/dist/components/Payroll/index.d.ts +3 -2
  547. package/dist/components/Payroll/payrollTypes.d.ts +1 -1
  548. package/dist/components/Payroll/payrollTypes.js +1 -1
  549. package/dist/components/Payroll/payrollTypes.js.map +1 -1
  550. package/dist/components/Payroll/usePreparedPayrollData.d.ts +2 -2
  551. package/dist/components/Payroll/usePreparedPayrollData.js +16 -15
  552. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  553. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.d.ts +1 -1
  554. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js +3 -3
  555. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js.map +1 -1
  556. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js +3 -3
  557. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js.map +1 -1
  558. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.js +3 -3
  559. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.js.map +1 -1
  560. package/dist/components/TimeOff/PolicyList/PolicyList.js +6 -6
  561. package/dist/components/TimeOff/PolicyList/PolicyList.js.map +1 -1
  562. package/dist/components/TimeOff/PolicySettings/PolicySettings.js +30 -29
  563. package/dist/components/TimeOff/PolicySettings/PolicySettings.js.map +1 -1
  564. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.js +1 -1
  565. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.js.map +1 -1
  566. package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.d.ts +2 -2
  567. package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.js.map +1 -1
  568. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js +27 -26
  569. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js.map +1 -1
  570. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js +2 -2
  571. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js.map +1 -1
  572. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentationTypes.d.ts +1 -1
  573. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js +69 -68
  574. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js.map +1 -1
  575. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js +20 -20
  576. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js.map +1 -1
  577. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js +67 -66
  578. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js.map +1 -1
  579. package/dist/contexts/ApiProvider/ApiProvider.d.ts +5 -5
  580. package/dist/contexts/ApiProvider/ApiProvider.js +3 -3
  581. package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
  582. package/dist/contexts/ApiProvider/apiVersion.d.ts +23 -0
  583. package/dist/contexts/ApiProvider/apiVersion.js +6 -0
  584. package/dist/contexts/ApiProvider/apiVersion.js.map +1 -0
  585. package/dist/contexts/ApiProvider/apiVersionHook.js +3 -2
  586. package/dist/contexts/ApiProvider/apiVersionHook.js.map +1 -1
  587. package/dist/contexts/ApiProvider/createSdkQueryClient.d.ts +1 -1
  588. package/dist/contexts/ApiProvider/createSdkQueryClient.js +7 -6
  589. package/dist/contexts/ApiProvider/createSdkQueryClient.js.map +1 -1
  590. package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js +40 -36
  591. package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js.map +1 -1
  592. package/dist/contexts/ComponentAdapter/componentAdapterTypes.d.ts +2 -0
  593. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.d.ts +5 -0
  594. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.js +18 -16
  595. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.js.map +1 -1
  596. package/dist/contexts/ComponentAdapter/useComponentContext.d.ts +6 -0
  597. package/dist/contexts/ComponentAdapter/useComponentContext.js.map +1 -1
  598. package/dist/contexts/GustoProvider/GustoProvider.d.ts +4 -5
  599. package/dist/contexts/GustoProvider/GustoProvider.js +6 -6
  600. package/dist/contexts/GustoProvider/GustoProvider.js.map +1 -1
  601. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +7 -7
  602. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +8 -8
  603. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  604. package/dist/contexts/GustoProvider/index.d.ts +1 -1
  605. package/dist/contexts/index.d.ts +2 -6
  606. package/dist/helpers/apiErrorToList.d.ts +1 -1
  607. package/dist/helpers/apiErrorToList.js.map +1 -1
  608. package/dist/helpers/formattedStrings.d.ts +2 -2
  609. package/dist/helpers/formattedStrings.js.map +1 -1
  610. package/dist/hooks/useCompanyPaymentSpeed.d.ts +1 -1
  611. package/dist/hooks/useCompanyPaymentSpeed.js +1 -1
  612. package/dist/hooks/useCompanyPaymentSpeed.js.map +1 -1
  613. package/dist/i18n/en/Contractor.ContractorList.json.js +18 -16
  614. package/dist/i18n/en/Contractor.ContractorList.json.js.map +1 -1
  615. package/dist/i18n/en/Contractor.DocumentsList.json.js +20 -16
  616. package/dist/i18n/en/Contractor.DocumentsList.json.js.map +1 -1
  617. package/dist/i18n/en/Contractor.SignatureForm.json.js +5 -5
  618. package/dist/i18n/en/Employee.OnboardingSummary.json.js +24 -20
  619. package/dist/i18n/en/Employee.OnboardingSummary.json.js.map +1 -1
  620. package/dist/i18n/types.d.ts +12 -0
  621. package/dist/index.d.ts +8 -7
  622. package/dist/index.js +121 -134
  623. package/dist/index.js.map +1 -1
  624. package/dist/models/WA_RISK_CODES.d.ts +5 -2
  625. package/dist/models/WA_RISK_CODES.js.map +1 -1
  626. package/dist/models/external.d.ts +236 -226
  627. package/dist/partner-hook-utils/composeErrorHandler.d.ts +9 -4
  628. package/dist/partner-hook-utils/composeErrorHandler.js.map +1 -1
  629. package/dist/partner-hook-utils/form/SDKFormProvider.d.ts +10 -2
  630. package/dist/partner-hook-utils/form/SDKFormProvider.js +7 -1
  631. package/dist/partner-hook-utils/form/SDKFormProvider.js.map +1 -1
  632. package/dist/partner-hook-utils/form/composeSubmitHandler.d.ts +7 -4
  633. package/dist/partner-hook-utils/form/composeSubmitHandler.js.map +1 -1
  634. package/dist/partner-hook-utils/form/fields/index.d.ts +1 -0
  635. package/dist/partner-hook-utils/form/index.d.ts +3 -3
  636. package/dist/partner-hook-utils/form/useHookFieldResolution.js.map +1 -1
  637. package/dist/partner-hook-utils/index.d.ts +1 -1
  638. package/dist/partner-hook-utils/types.d.ts +7 -3
  639. package/dist/shared/constants.d.ts +2 -2
  640. package/dist/shared/constants.js +5 -5
  641. package/dist/shared/constants.js.map +1 -1
  642. package/dist/style.css +1 -1
  643. package/dist/types/Helpers.d.ts +11 -0
  644. package/dist/types/hooks.d.ts +2 -2
  645. package/dist/types/sdkError.js +3 -3
  646. package/dist/types/sdkError.js.map +1 -1
  647. package/docs/guides/endpoint-inventory.json +1201 -297
  648. package/package.json +12 -12
@@ -1 +1 @@
1
- {"version":3,"file":"useContractorDetailsForm.js","sources":["../../../../../../src/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport type { ComponentType } from 'react'\nimport { useForm, useWatch } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { Contractor } from '@gusto/embedded-api-v-2026-02-01/models/components/contractor'\nimport type { ContractorCreateRequestBody } from '@gusto/embedded-api-v-2026-02-01/models/components/contractorcreaterequestbody'\nimport type { ContractorUpdateRequestBody } from '@gusto/embedded-api-v-2026-02-01/models/components/contractorupdaterequestbody'\nimport { useContractorsGet } from '@gusto/embedded-api-v-2026-02-01/react-query/contractorsGet'\nimport { useContractorsCreateMutation } from '@gusto/embedded-api-v-2026-02-01/react-query/contractorsCreate'\nimport { useContractorsUpdateMutation } from '@gusto/embedded-api-v-2026-02-01/react-query/contractorsUpdate'\nimport {\n ContractorType,\n WageType,\n createContractorDetailsSchema,\n type ContractorDetailsOptionalFieldsToRequire,\n type ContractorDetailsFormData,\n type ContractorDetailsFormOutputs,\n} from './contractorDetailsSchema'\nimport {\n TypeField,\n WageTypeField,\n StartDateField,\n HourlyRateField,\n SelfOnboardingField,\n FileNewHireReportField,\n EmailField,\n FirstNameField,\n LastNameField,\n MiddleInitialField,\n BusinessNameField,\n SsnField,\n EinField,\n WorkStateField,\n} from './fields'\nimport type {\n TypeFieldProps,\n WageTypeFieldProps,\n StartDateFieldProps,\n HourlyRateFieldProps,\n SelfOnboardingFieldProps,\n FileNewHireReportFieldProps,\n EmailFieldProps,\n FirstNameFieldProps,\n LastNameFieldProps,\n MiddleInitialFieldProps,\n BusinessNameFieldProps,\n SsnFieldProps,\n EinFieldProps,\n WorkStateFieldProps,\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 {\n ContractorSelfOnboardingStatuses,\n ContractorOnboardingStatus,\n STATES_ABBR,\n} from '@/shared/constants'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { removeNonDigits } from '@/helpers/formattedStrings'\n\nexport type { ContractorDetailsOptionalFieldsToRequire } from './contractorDetailsSchema'\n\n/**\n * Optional overrides passed to {@link UseContractorDetailsFormReady.actions.onSubmit | onSubmit}.\n *\n * @public\n */\nexport interface ContractorDetailsSubmitOptions {\n /** Override the company identifier supplied to the hook (e.g. after creating the company in the same flow). Only used in create mode. */\n companyId?: string\n}\n\n/**\n * Shared options merged into both branches of {@link UseContractorDetailsFormProps}.\n *\n * @public\n */\nexport type UseContractorDetailsFormSharedProps = {\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?: ContractorDetailsOptionalFieldsToRequire\n /** Initial values applied before any contractor data loads. */\n defaultValues?: Partial<ContractorDetailsFormData>\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 useContractorDetailsForm}.\n *\n * @remarks\n * Discriminated by mode: in create mode supply `companyId` and omit\n * `contractorId`; in update mode supply `contractorId` (and optionally\n * `companyId`).\n *\n * @public\n */\nexport type UseContractorDetailsFormProps =\n | (UseContractorDetailsFormSharedProps & { companyId: string; contractorId?: never })\n | (UseContractorDetailsFormSharedProps & { contractorId: string; companyId?: string })\n\n/**\n * The Field components exposed by {@link useContractorDetailsForm} as `form.Fields`.\n *\n * @remarks\n * Conditionally-visible fields are `undefined` when they do not apply to the\n * current `type`, `wageType`, or self-onboarding selection. Always null-check\n * before rendering.\n *\n * @public\n */\nexport interface ContractorDetailsFormFields {\n /** Radio group bound to `type`. Always available. */\n Type: ComponentType<TypeFieldProps>\n /** Radio group bound to `wageType`. Always available. */\n WageType: ComponentType<WageTypeFieldProps>\n /** Date picker bound to `startDate`. Always available. */\n StartDate: ComponentType<StartDateFieldProps>\n /** Number input bound to `hourlyRate`; available only when `wageType` is `Hourly`. */\n HourlyRate: ComponentType<HourlyRateFieldProps> | undefined\n /** Switch bound to `selfOnboarding`; available only when toggleable. */\n SelfOnboarding: ComponentType<SelfOnboardingFieldProps> | undefined\n /** Switch bound to `fileNewHireReport`; available only for individual contractors. */\n FileNewHireReport: ComponentType<FileNewHireReportFieldProps> | undefined\n /** Text input bound to `email`; available only when self-onboarding is enabled. */\n Email: ComponentType<EmailFieldProps> | undefined\n /** Text input bound to `firstName`; available only for individual contractors. */\n FirstName: ComponentType<FirstNameFieldProps> | undefined\n /** Text input bound to `lastName`; available only for individual contractors. */\n LastName: ComponentType<LastNameFieldProps> | undefined\n /** Text input bound to `middleInitial`; available only for individual contractors. */\n MiddleInitial: ComponentType<MiddleInitialFieldProps> | undefined\n /** Text input bound to `businessName`; available only for business contractors. */\n BusinessName: ComponentType<BusinessNameFieldProps> | undefined\n /**\n * Text input bound to `ssn`; available only for individual contractors.\n * Auto-formats as `XXX-XX-XXXX`. When an SSN is already on file the field\n * shows a masked placeholder and the required rule is waived.\n */\n Ssn: ComponentType<SsnFieldProps> | undefined\n /**\n * Text input bound to `ein`; available only for business contractors.\n * Auto-formats as `XX-XXXXXXX`. When an EIN is already on file the field\n * shows a masked placeholder and the required rule is waived.\n */\n Ein: ComponentType<EinFieldProps> | undefined\n /** Select bound to `workState`; available only for individual contractors filing a new-hire report. */\n WorkState: ComponentType<WorkStateFieldProps> | undefined\n}\n\n/**\n * The ready-state result returned by {@link useContractorDetailsForm} once data has loaded.\n *\n * @public\n */\nexport interface UseContractorDetailsFormReady extends BaseFormHookReady<\n ContractorDetailsFieldsMetadata,\n ContractorDetailsFormData,\n ContractorDetailsFormFields\n> {\n /** The loaded contractor data, or `null` in create mode. */\n data: {\n /** The contractor being edited, or `null` in create mode. */\n contractor: Contractor | null\n }\n /** Submit status and form mode. */\n status: {\n /** `true` while the create or update mutation is in flight. */\n isPending: boolean\n /** `'create'` when no `contractorId` 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 contractor, or `undefined` when validation fails. */\n onSubmit: (\n options?: ContractorDetailsSubmitOptions,\n ) => Promise<HookSubmitResult<Contractor> | undefined>\n }\n}\n\nconst isCurrentlySelfOnboarding = (contractor?: Contractor) =>\n !!contractor?.onboardingStatus &&\n ContractorSelfOnboardingStatuses.has(contractor.onboardingStatus)\n\nconst canToggleSelfOnboarding = (contractor?: Contractor) => {\n if (!contractor) return true\n return (\n contractor.onboardingStatus === ContractorOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE ||\n contractor.onboardingStatus === ContractorOnboardingStatus.SELF_ONBOARDING_NOT_INVITED\n )\n}\n\n/** @internal */\nfunction buildContractorDetailsFieldsMetadata(\n base: Record<keyof ContractorDetailsFormData, FieldMetadata>,\n) {\n const typeEntries = [ContractorType.Individual, ContractorType.Business]\n const wageTypeEntries = [WageType.Hourly, WageType.Fixed]\n return {\n type: withOptions(\n base.type,\n typeEntries.map(value => ({ value, label: value })),\n typeEntries,\n ),\n wageType: withOptions(\n base.wageType,\n wageTypeEntries.map(value => ({ value, label: value })),\n wageTypeEntries,\n ),\n startDate: base.startDate,\n hourlyRate: base.hourlyRate,\n selfOnboarding: base.selfOnboarding,\n fileNewHireReport: base.fileNewHireReport,\n email: base.email,\n firstName: base.firstName,\n lastName: base.lastName,\n middleInitial: base.middleInitial,\n businessName: base.businessName,\n ssn: base.ssn,\n ein: base.ein,\n workState: withOptions(\n base.workState,\n STATES_ABBR.map(abbr => ({ value: abbr, label: abbr })),\n STATES_ABBR,\n ),\n } satisfies FieldsMetadata\n}\n\n/**\n * Headless hook for creating or updating a contractor's profile details —\n * individual vs. business type, wage type, names, SSN/EIN, work state, and the\n * self-onboarding preference.\n *\n * @remarks\n * Returns a discriminated union: a loading variant while the contractor fetch\n * resolves, and a ready variant exposing the form's data, pending status,\n * submit action, error handling, and bound `Fields`. Field visibility is\n * driven by the current `type` and `wageType` (self-onboarding only toggles the\n * `Email` field); fields that do not apply are `undefined` on `form.Fields`.\n * SSN/EIN are exposed by contractor type regardless of self-onboarding — each\n * consumer decides whether to render them. Self-onboarding is only toggleable\n * when the contractor's onboarding status allows it.\n *\n * @param input - See {@link UseContractorDetailsFormProps}.\n * @returns A {@link HookLoadingResult} while loading, or a {@link UseContractorDetailsFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import {\n * useContractorDetailsForm,\n * SDKFormProvider,\n * type UseContractorDetailsFormReady,\n * } from '@gusto/embedded-react-sdk'\n *\n * function ContractorDetailsPage({\n * companyId,\n * contractorId,\n * }: {\n * companyId: string\n * contractorId: string\n * }) {\n * const contractorDetails = useContractorDetailsForm({ companyId, contractorId })\n *\n * if (contractorDetails.isLoading) return <div>Loading...</div>\n *\n * return <ContractorDetailsReady contractorDetails={contractorDetails} />\n * }\n *\n * function ContractorDetailsReady({\n * contractorDetails,\n * }: {\n * contractorDetails: UseContractorDetailsFormReady\n * }) {\n * const { Fields } = contractorDetails.form\n *\n * return (\n * <SDKFormProvider formHookResult={contractorDetails}>\n * <form onSubmit={e => { e.preventDefault(); void contractorDetails.actions.onSubmit() }}>\n * <Fields.Type label=\"Contractor type\" />\n * <Fields.WageType label=\"Wage type\" />\n * {Fields.FirstName && <Fields.FirstName label=\"First name\" />}\n * {Fields.LastName && <Fields.LastName label=\"Last name\" />}\n * {Fields.BusinessName && <Fields.BusinessName label=\"Business name\" />}\n * <Fields.StartDate label=\"Start date\" />\n * <button type=\"submit\" disabled={contractorDetails.status.isPending}>Save</button>\n * </form>\n * </SDKFormProvider>\n * )\n * }\n * ```\n */\nexport function useContractorDetailsForm({\n companyId,\n contractorId,\n withSelfOnboardingField = true,\n optionalFieldsToRequire,\n defaultValues: partnerDefaults,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n}: UseContractorDetailsFormProps): HookLoadingResult | UseContractorDetailsFormReady {\n const contractorQuery = useContractorsGet(\n { contractorUuid: contractorId ?? '' },\n { enabled: !!contractorId },\n )\n\n const contractor = contractorQuery.data?.contractor\n\n const isCreateMode = !contractorId\n const isSelfOnboardingToggleable = canToggleSelfOnboarding(contractor)\n\n const mode = isCreateMode ? 'create' : 'update'\n const hasSsn = contractor?.hasSsn ?? false\n const hasEin = contractor?.hasEin ?? false\n\n const [schema, metadataConfig] = useMemo(\n () => createContractorDetailsSchema({ mode, optionalFieldsToRequire, hasSsn, hasEin }),\n [mode, optionalFieldsToRequire, hasSsn, hasEin],\n )\n\n const parsedHourlyRate =\n contractor?.hourlyRate != null ? parseFloat(contractor.hourlyRate) : undefined\n\n const resolvedDefaults: ContractorDetailsFormData = useMemo(\n () => ({\n type: contractor?.type ?? partnerDefaults?.type ?? ContractorType.Individual,\n wageType: contractor?.wageType ?? partnerDefaults?.wageType ?? WageType.Fixed,\n startDate:\n contractor?.startDate ??\n partnerDefaults?.startDate ??\n new Date().toISOString().split('T')[0]!,\n hourlyRate: parsedHourlyRate ?? partnerDefaults?.hourlyRate ?? NaN,\n selfOnboarding: partnerDefaults?.selfOnboarding ?? isCurrentlySelfOnboarding(contractor),\n fileNewHireReport:\n contractor?.fileNewHireReport ?? partnerDefaults?.fileNewHireReport ?? false,\n email: contractor?.email ?? partnerDefaults?.email ?? '',\n firstName: contractor?.firstName ?? partnerDefaults?.firstName ?? '',\n lastName: contractor?.lastName ?? partnerDefaults?.lastName ?? '',\n middleInitial: contractor?.middleInitial ?? partnerDefaults?.middleInitial ?? '',\n businessName: contractor?.businessName ?? partnerDefaults?.businessName ?? '',\n workState: contractor?.workState ?? partnerDefaults?.workState ?? '',\n ssn: partnerDefaults?.ssn ?? '',\n ein: partnerDefaults?.ein ?? '',\n }),\n [contractor, partnerDefaults, parsedHourlyRate],\n )\n\n const formMethods = useForm<ContractorDetailsFormData, unknown, ContractorDetailsFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const [watchedType, watchedWageType, watchedSelfOnboarding, watchedFileNewHireReport] = useWatch({\n control: formMethods.control,\n name: ['type', 'wageType', 'selfOnboarding', 'fileNewHireReport'],\n })\n\n // Render-gating: a field shows when it applies to the current selection. The\n // schema mirrors this via `getExcludedContractorFields` so off-screen fields\n // never trip a phantom required error.\n const isIndividual = watchedType === ContractorType.Individual\n const isBusiness = watchedType === ContractorType.Business\n const isHourly = watchedWageType === WageType.Hourly\n\n const createContractorMutation = useContractorsCreateMutation()\n const updateContractorMutation = useContractorsUpdateMutation()\n\n const isPending = createContractorMutation.isPending || updateContractorMutation.isPending\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('ContractorDetailsForm')\n\n const queries = contractorId ? [contractorQuery] : []\n const errorHandling = composeErrorHandler(queries, { submitError, setSubmitError })\n\n const baseMetadata = useDeriveFieldsMetadata(metadataConfig, formMethods.control)\n const fieldsMetadata = buildContractorDetailsFieldsMetadata(baseMetadata)\n\n const onSubmit = async (\n options?: ContractorDetailsSubmitOptions,\n ): Promise<HookSubmitResult<Contractor> | undefined> => {\n let submitResult: HookSubmitResult<Contractor> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: ContractorDetailsFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const selfOnboardingEnabled = payload.selfOnboarding\n const cleanedSsn = payload.ssn ? removeNonDigits(payload.ssn) : ''\n const cleanedEin = payload.ein ? removeNonDigits(payload.ein) : ''\n\n const requestBody: ContractorCreateRequestBody = {\n type: payload.type,\n wageType: payload.wageType,\n startDate: payload.startDate,\n selfOnboarding: selfOnboardingEnabled,\n email: selfOnboardingEnabled ? payload.email || undefined : undefined,\n hourlyRate:\n payload.wageType === WageType.Hourly ? String(payload.hourlyRate) : undefined,\n ...(payload.type === ContractorType.Individual\n ? {\n firstName: payload.firstName,\n lastName: payload.lastName,\n middleInitial: payload.middleInitial || undefined,\n fileNewHireReport: payload.fileNewHireReport,\n workState: payload.fileNewHireReport\n ? payload.workState || undefined\n : undefined,\n ssn: cleanedSsn || undefined,\n }\n : {\n fileNewHireReport: false,\n businessName: payload.businessName,\n ein: cleanedEin || undefined,\n }),\n }\n\n let savedContractor: Contractor\n\n if (isCreateMode) {\n const resolvedCompanyId = options?.companyId ?? companyId\n if (!resolvedCompanyId) {\n throw new SDKInternalError('companyId is required to create a contractor')\n }\n\n const result = await createContractorMutation.mutateAsync({\n request: {\n companyUuid: resolvedCompanyId,\n contractorCreateRequestBody: { ...requestBody, isActive: true },\n },\n })\n\n if (!result.contractor) {\n throw new SDKInternalError('Contractor creation failed')\n }\n\n savedContractor = result.contractor\n } else {\n if (!contractor?.version) {\n throw new SDKInternalError('Contractor version is required for updates')\n }\n\n const updateBody: ContractorUpdateRequestBody = {\n ...requestBody,\n version: contractor.version,\n }\n\n const result = await updateContractorMutation.mutateAsync({\n request: {\n contractorUuid: contractor.uuid,\n contractorUpdateRequestBody: updateBody,\n },\n })\n\n if (!result.contractor) {\n throw new SDKInternalError('Contractor update failed')\n }\n\n savedContractor = result.contractor\n }\n\n submitResult = {\n mode: isCreateMode ? 'create' : 'update',\n data: savedContractor,\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 = contractorId ? contractorQuery.isLoading : false\n\n if (isDataLoading || (contractorId && !contractor)) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: {\n contractor: contractor ?? 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 Type: TypeField,\n WageType: WageTypeField,\n StartDate: StartDateField,\n HourlyRate: isHourly ? HourlyRateField : undefined,\n SelfOnboarding:\n withSelfOnboardingField && isSelfOnboardingToggleable ? SelfOnboardingField : undefined,\n FileNewHireReport: isIndividual ? FileNewHireReportField : undefined,\n Email: watchedSelfOnboarding ? EmailField : undefined,\n FirstName: isIndividual ? FirstNameField : undefined,\n LastName: isIndividual ? LastNameField : undefined,\n MiddleInitial: isIndividual ? MiddleInitialField : undefined,\n BusinessName: isBusiness ? BusinessNameField : undefined,\n Ssn: isIndividual ? SsnField : undefined,\n Ein: isBusiness ? EinField : undefined,\n WorkState: isIndividual && watchedFileNewHireReport ? WorkStateField : undefined,\n },\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\n/**\n * Return type of {@link useContractorDetailsForm}.\n *\n * @public\n */\nexport type UseContractorDetailsFormResult = HookLoadingResult | UseContractorDetailsFormReady\n\n/**\n * Shape of `form.fieldsMetadata` returned by {@link useContractorDetailsForm}.\n *\n * @public\n */\nexport type ContractorDetailsFieldsMetadata = ReturnType<\n typeof buildContractorDetailsFieldsMetadata\n>\n"],"names":["isCurrentlySelfOnboarding","contractor","ContractorSelfOnboardingStatuses","canToggleSelfOnboarding","ContractorOnboardingStatus","buildContractorDetailsFieldsMetadata","base","typeEntries","ContractorType","wageTypeEntries","WageType","withOptions","value","STATES_ABBR","abbr","useContractorDetailsForm","companyId","contractorId","withSelfOnboardingField","optionalFieldsToRequire","partnerDefaults","validationMode","shouldFocusError","contractorQuery","useContractorsGet","isCreateMode","isSelfOnboardingToggleable","mode","hasSsn","hasEin","schema","metadataConfig","useMemo","createContractorDetailsSchema","parsedHourlyRate","resolvedDefaults","formMethods","useForm","zodResolver","watchedType","watchedWageType","watchedSelfOnboarding","watchedFileNewHireReport","useWatch","isIndividual","isBusiness","isHourly","createContractorMutation","useContractorsCreateMutation","updateContractorMutation","useContractorsUpdateMutation","isPending","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","baseMetadata","useDeriveFieldsMetadata","fieldsMetadata","onSubmit","options","submitResult","resolve","data","payload","selfOnboardingEnabled","cleanedSsn","removeNonDigits","cleanedEin","requestBody","savedContractor","resolvedCompanyId","SDKInternalError","result","updateBody","hookFormInternals","useHookFormInternals","TypeField","WageTypeField","StartDateField","HourlyRateField","SelfOnboardingField","FileNewHireReportField","EmailField","FirstNameField","LastNameField","MiddleInitialField","BusinessNameField","SsnField","EinField","WorkStateField","createGetFormSubmissionValues"],"mappings":"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"}
1
+ {"version":3,"file":"useContractorDetailsForm.js","sources":["../../../../../../src/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport type { ComponentType } from 'react'\nimport { useForm, useWatch } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { Contractor } from '@gusto/embedded-api/models/components/contractor'\nimport type { ContractorCreateRequestBody } from '@gusto/embedded-api/models/components/contractorcreaterequestbody'\nimport type { ContractorUpdateRequestBody } from '@gusto/embedded-api/models/components/contractorupdaterequestbody'\nimport { useContractorsGet } from '@gusto/embedded-api/react-query/contractorsGet'\nimport { useContractorsCreateMutation } from '@gusto/embedded-api/react-query/contractorsCreate'\nimport { useContractorsUpdateMutation } from '@gusto/embedded-api/react-query/contractorsUpdate'\nimport {\n ContractorType,\n WageType,\n createContractorDetailsSchema,\n type ContractorDetailsOptionalFieldsToRequire,\n type ContractorDetailsFormData,\n type ContractorDetailsFormOutputs,\n} from './contractorDetailsSchema'\nimport {\n TypeField,\n WageTypeField,\n StartDateField,\n HourlyRateField,\n SelfOnboardingField,\n FileNewHireReportField,\n EmailField,\n FirstNameField,\n LastNameField,\n MiddleInitialField,\n BusinessNameField,\n SsnField,\n EinField,\n WorkStateField,\n} from './fields'\nimport type {\n TypeFieldProps,\n WageTypeFieldProps,\n StartDateFieldProps,\n HourlyRateFieldProps,\n SelfOnboardingFieldProps,\n FileNewHireReportFieldProps,\n EmailFieldProps,\n FirstNameFieldProps,\n LastNameFieldProps,\n MiddleInitialFieldProps,\n BusinessNameFieldProps,\n SsnFieldProps,\n EinFieldProps,\n WorkStateFieldProps,\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 {\n ContractorSelfOnboardingStatuses,\n ContractorOnboardingStatus,\n STATES_ABBR,\n} from '@/shared/constants'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { removeNonDigits } from '@/helpers/formattedStrings'\n\nexport type { ContractorDetailsOptionalFieldsToRequire } from './contractorDetailsSchema'\n\n/**\n * Optional overrides passed to {@link UseContractorDetailsFormReady.actions.onSubmit | onSubmit}.\n *\n * @public\n */\nexport interface ContractorDetailsSubmitOptions {\n /** Override the company identifier supplied to the hook (e.g. after creating the company in the same flow). Only used in create mode. */\n companyId?: string\n}\n\n/**\n * Shared options merged into both branches of {@link UseContractorDetailsFormProps}.\n *\n * @public\n */\nexport type UseContractorDetailsFormSharedProps = {\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?: ContractorDetailsOptionalFieldsToRequire\n /** Initial values applied before any contractor data loads. */\n defaultValues?: Partial<ContractorDetailsFormData>\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 useContractorDetailsForm}.\n *\n * @remarks\n * Discriminated by mode: in create mode supply `companyId` and omit\n * `contractorId`; in update mode supply `contractorId` (and optionally\n * `companyId`).\n *\n * @public\n */\nexport type UseContractorDetailsFormProps =\n | (UseContractorDetailsFormSharedProps & { companyId: string; contractorId?: never })\n | (UseContractorDetailsFormSharedProps & { contractorId: string; companyId?: string })\n\n/**\n * The Field components exposed by {@link useContractorDetailsForm} as `form.Fields`.\n *\n * @remarks\n * Conditionally-visible fields are `undefined` when they do not apply to the\n * current `type`, `wageType`, or self-onboarding selection. Always null-check\n * before rendering.\n *\n * @public\n */\nexport interface ContractorDetailsFormFields {\n /** Radio group bound to `type`. Always available. */\n Type: ComponentType<TypeFieldProps>\n /** Radio group bound to `wageType`. Always available. */\n WageType: ComponentType<WageTypeFieldProps>\n /** Date picker bound to `startDate`. Always available. */\n StartDate: ComponentType<StartDateFieldProps>\n /** Number input bound to `hourlyRate`; available only when `wageType` is `Hourly`. */\n HourlyRate: ComponentType<HourlyRateFieldProps> | undefined\n /** Switch bound to `selfOnboarding`; available only when toggleable. */\n SelfOnboarding: ComponentType<SelfOnboardingFieldProps> | undefined\n /** Switch bound to `fileNewHireReport`; available only for individual contractors. */\n FileNewHireReport: ComponentType<FileNewHireReportFieldProps> | undefined\n /** Text input bound to `email`; available only when self-onboarding is enabled. */\n Email: ComponentType<EmailFieldProps> | undefined\n /** Text input bound to `firstName`; available only for individual contractors. */\n FirstName: ComponentType<FirstNameFieldProps> | undefined\n /** Text input bound to `lastName`; available only for individual contractors. */\n LastName: ComponentType<LastNameFieldProps> | undefined\n /** Text input bound to `middleInitial`; available only for individual contractors. */\n MiddleInitial: ComponentType<MiddleInitialFieldProps> | undefined\n /** Text input bound to `businessName`; available only for business contractors. */\n BusinessName: ComponentType<BusinessNameFieldProps> | undefined\n /**\n * Text input bound to `ssn`; available only for individual contractors.\n * Auto-formats as `XXX-XX-XXXX`. When an SSN is already on file the field\n * shows a masked placeholder and the required rule is waived.\n */\n Ssn: ComponentType<SsnFieldProps> | undefined\n /**\n * Text input bound to `ein`; available only for business contractors.\n * Auto-formats as `XX-XXXXXXX`. When an EIN is already on file the field\n * shows a masked placeholder and the required rule is waived.\n */\n Ein: ComponentType<EinFieldProps> | undefined\n /** Select bound to `workState`; available only for individual contractors filing a new-hire report. */\n WorkState: ComponentType<WorkStateFieldProps> | undefined\n}\n\n/**\n * The ready-state result returned by {@link useContractorDetailsForm} once data has loaded.\n *\n * @public\n */\nexport interface UseContractorDetailsFormReady extends BaseFormHookReady<\n ContractorDetailsFieldsMetadata,\n ContractorDetailsFormData,\n ContractorDetailsFormFields\n> {\n /** The loaded contractor data, or `null` in create mode. */\n data: {\n /** The contractor being edited, or `null` in create mode. */\n contractor: Contractor | null\n }\n /** Submit status and form mode. */\n status: {\n /** `true` while the create or update mutation is in flight. */\n isPending: boolean\n /** `'create'` when no `contractorId` 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 contractor, or `undefined` when validation fails. */\n onSubmit: (\n options?: ContractorDetailsSubmitOptions,\n ) => Promise<HookSubmitResult<Contractor> | undefined>\n }\n}\n\nconst isCurrentlySelfOnboarding = (contractor?: Contractor) =>\n !!contractor?.onboardingStatus &&\n ContractorSelfOnboardingStatuses.has(contractor.onboardingStatus)\n\nconst canToggleSelfOnboarding = (contractor?: Contractor) => {\n if (!contractor) return true\n return (\n contractor.onboardingStatus === ContractorOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE ||\n contractor.onboardingStatus === ContractorOnboardingStatus.SELF_ONBOARDING_NOT_INVITED\n )\n}\n\n/** @internal */\nfunction buildContractorDetailsFieldsMetadata(\n base: Record<keyof ContractorDetailsFormData, FieldMetadata>,\n) {\n const typeEntries = [ContractorType.Individual, ContractorType.Business]\n const wageTypeEntries = [WageType.Hourly, WageType.Fixed]\n return {\n type: withOptions(\n base.type,\n typeEntries.map(value => ({ value, label: value })),\n typeEntries,\n ),\n wageType: withOptions(\n base.wageType,\n wageTypeEntries.map(value => ({ value, label: value })),\n wageTypeEntries,\n ),\n startDate: base.startDate,\n hourlyRate: base.hourlyRate,\n selfOnboarding: base.selfOnboarding,\n fileNewHireReport: base.fileNewHireReport,\n email: base.email,\n firstName: base.firstName,\n lastName: base.lastName,\n middleInitial: base.middleInitial,\n businessName: base.businessName,\n ssn: base.ssn,\n ein: base.ein,\n workState: withOptions(\n base.workState,\n STATES_ABBR.map(abbr => ({ value: abbr, label: abbr })),\n STATES_ABBR,\n ),\n } satisfies FieldsMetadata\n}\n\n/**\n * Headless hook for creating or updating a contractor's profile details —\n * individual vs. business type, wage type, names, SSN/EIN, work state, and the\n * self-onboarding preference.\n *\n * @remarks\n * Returns a discriminated union: a loading variant while the contractor fetch\n * resolves, and a ready variant exposing the form's data, pending status,\n * submit action, error handling, and bound `Fields`. Field visibility is\n * driven by the current `type` and `wageType` (self-onboarding only toggles the\n * `Email` field); fields that do not apply are `undefined` on `form.Fields`.\n * SSN/EIN are exposed by contractor type regardless of self-onboarding — each\n * consumer decides whether to render them. Self-onboarding is only toggleable\n * when the contractor's onboarding status allows it.\n *\n * @param input - See {@link UseContractorDetailsFormProps}.\n * @returns A {@link HookLoadingResult} while loading, or a {@link UseContractorDetailsFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import {\n * useContractorDetailsForm,\n * SDKFormProvider,\n * type UseContractorDetailsFormReady,\n * } from '@gusto/embedded-react-sdk'\n *\n * function ContractorDetailsPage({\n * companyId,\n * contractorId,\n * }: {\n * companyId: string\n * contractorId: string\n * }) {\n * const contractorDetails = useContractorDetailsForm({ companyId, contractorId })\n *\n * if (contractorDetails.isLoading) return <div>Loading...</div>\n *\n * return <ContractorDetailsReady contractorDetails={contractorDetails} />\n * }\n *\n * function ContractorDetailsReady({\n * contractorDetails,\n * }: {\n * contractorDetails: UseContractorDetailsFormReady\n * }) {\n * const { Fields } = contractorDetails.form\n *\n * return (\n * <SDKFormProvider formHookResult={contractorDetails}>\n * <form onSubmit={e => { e.preventDefault(); void contractorDetails.actions.onSubmit() }}>\n * <Fields.Type label=\"Contractor type\" />\n * <Fields.WageType label=\"Wage type\" />\n * {Fields.FirstName && <Fields.FirstName label=\"First name\" />}\n * {Fields.LastName && <Fields.LastName label=\"Last name\" />}\n * {Fields.BusinessName && <Fields.BusinessName label=\"Business name\" />}\n * <Fields.StartDate label=\"Start date\" />\n * <button type=\"submit\" disabled={contractorDetails.status.isPending}>Save</button>\n * </form>\n * </SDKFormProvider>\n * )\n * }\n * ```\n */\nexport function useContractorDetailsForm({\n companyId,\n contractorId,\n withSelfOnboardingField = true,\n optionalFieldsToRequire,\n defaultValues: partnerDefaults,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n}: UseContractorDetailsFormProps): HookLoadingResult | UseContractorDetailsFormReady {\n const contractorQuery = useContractorsGet(\n { contractorUuid: contractorId ?? '' },\n { enabled: !!contractorId },\n )\n\n const contractor = contractorQuery.data?.contractor\n\n const isCreateMode = !contractorId\n const isSelfOnboardingToggleable = canToggleSelfOnboarding(contractor)\n\n const mode = isCreateMode ? 'create' : 'update'\n const hasSsn = contractor?.hasSsn ?? false\n const hasEin = contractor?.hasEin ?? false\n\n const [schema, metadataConfig] = useMemo(\n () => createContractorDetailsSchema({ mode, optionalFieldsToRequire, hasSsn, hasEin }),\n [mode, optionalFieldsToRequire, hasSsn, hasEin],\n )\n\n const parsedHourlyRate =\n contractor?.hourlyRate != null ? parseFloat(contractor.hourlyRate) : undefined\n\n const resolvedDefaults: ContractorDetailsFormData = useMemo(\n () => ({\n type: contractor?.type ?? partnerDefaults?.type ?? ContractorType.Individual,\n wageType: contractor?.wageType ?? partnerDefaults?.wageType ?? WageType.Fixed,\n startDate:\n contractor?.startDate ??\n partnerDefaults?.startDate ??\n new Date().toISOString().split('T')[0]!,\n hourlyRate: parsedHourlyRate ?? partnerDefaults?.hourlyRate ?? NaN,\n selfOnboarding: partnerDefaults?.selfOnboarding ?? isCurrentlySelfOnboarding(contractor),\n fileNewHireReport:\n contractor?.fileNewHireReport ?? partnerDefaults?.fileNewHireReport ?? false,\n email: contractor?.email ?? partnerDefaults?.email ?? '',\n firstName: contractor?.firstName ?? partnerDefaults?.firstName ?? '',\n lastName: contractor?.lastName ?? partnerDefaults?.lastName ?? '',\n middleInitial: contractor?.middleInitial ?? partnerDefaults?.middleInitial ?? '',\n businessName: contractor?.businessName ?? partnerDefaults?.businessName ?? '',\n workState: contractor?.workState ?? partnerDefaults?.workState ?? '',\n ssn: partnerDefaults?.ssn ?? '',\n ein: partnerDefaults?.ein ?? '',\n }),\n [contractor, partnerDefaults, parsedHourlyRate],\n )\n\n const formMethods = useForm<ContractorDetailsFormData, unknown, ContractorDetailsFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const [watchedType, watchedWageType, watchedSelfOnboarding, watchedFileNewHireReport] = useWatch({\n control: formMethods.control,\n name: ['type', 'wageType', 'selfOnboarding', 'fileNewHireReport'],\n })\n\n // Render-gating: a field shows when it applies to the current selection. The\n // schema mirrors this via `getExcludedContractorFields` so off-screen fields\n // never trip a phantom required error.\n const isIndividual = watchedType === ContractorType.Individual\n const isBusiness = watchedType === ContractorType.Business\n const isHourly = watchedWageType === WageType.Hourly\n\n const createContractorMutation = useContractorsCreateMutation()\n const updateContractorMutation = useContractorsUpdateMutation()\n\n const isPending = createContractorMutation.isPending || updateContractorMutation.isPending\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('ContractorDetailsForm')\n\n const queries = contractorId ? [contractorQuery] : []\n const errorHandling = composeErrorHandler(queries, { submitError, setSubmitError })\n\n const baseMetadata = useDeriveFieldsMetadata(metadataConfig, formMethods.control)\n const fieldsMetadata = buildContractorDetailsFieldsMetadata(baseMetadata)\n\n const onSubmit = async (\n options?: ContractorDetailsSubmitOptions,\n ): Promise<HookSubmitResult<Contractor> | undefined> => {\n let submitResult: HookSubmitResult<Contractor> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: ContractorDetailsFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const selfOnboardingEnabled = payload.selfOnboarding\n const cleanedSsn = payload.ssn ? removeNonDigits(payload.ssn) : ''\n const cleanedEin = payload.ein ? removeNonDigits(payload.ein) : ''\n\n const requestBody: ContractorCreateRequestBody = {\n type: payload.type,\n wageType: payload.wageType,\n startDate: payload.startDate,\n selfOnboarding: selfOnboardingEnabled,\n email: selfOnboardingEnabled ? payload.email || undefined : undefined,\n hourlyRate:\n payload.wageType === WageType.Hourly ? String(payload.hourlyRate) : undefined,\n ...(payload.type === ContractorType.Individual\n ? {\n firstName: payload.firstName,\n lastName: payload.lastName,\n middleInitial: payload.middleInitial || undefined,\n fileNewHireReport: payload.fileNewHireReport,\n workState: payload.fileNewHireReport\n ? payload.workState || undefined\n : undefined,\n ssn: cleanedSsn || undefined,\n }\n : {\n fileNewHireReport: false,\n businessName: payload.businessName,\n ein: cleanedEin || undefined,\n }),\n }\n\n let savedContractor: Contractor\n\n if (isCreateMode) {\n const resolvedCompanyId = options?.companyId ?? companyId\n if (!resolvedCompanyId) {\n throw new SDKInternalError('companyId is required to create a contractor')\n }\n\n const result = await createContractorMutation.mutateAsync({\n request: {\n companyUuid: resolvedCompanyId,\n contractorCreateRequestBody: { ...requestBody, isActive: true },\n },\n })\n\n if (!result.contractor) {\n throw new SDKInternalError('Contractor creation failed')\n }\n\n savedContractor = result.contractor\n } else {\n if (!contractor?.version) {\n throw new SDKInternalError('Contractor version is required for updates')\n }\n\n const updateBody: ContractorUpdateRequestBody = {\n ...requestBody,\n version: contractor.version,\n }\n\n const result = await updateContractorMutation.mutateAsync({\n request: {\n contractorUuid: contractor.uuid,\n contractorUpdateRequestBody: updateBody,\n },\n })\n\n if (!result.contractor) {\n throw new SDKInternalError('Contractor update failed')\n }\n\n savedContractor = result.contractor\n }\n\n submitResult = {\n mode: isCreateMode ? 'create' : 'update',\n data: savedContractor,\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 = contractorId ? contractorQuery.isLoading : false\n\n if (isDataLoading || (contractorId && !contractor)) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: {\n contractor: contractor ?? 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 Type: TypeField,\n WageType: WageTypeField,\n StartDate: StartDateField,\n HourlyRate: isHourly ? HourlyRateField : undefined,\n SelfOnboarding:\n withSelfOnboardingField && isSelfOnboardingToggleable ? SelfOnboardingField : undefined,\n FileNewHireReport: isIndividual ? FileNewHireReportField : undefined,\n Email: watchedSelfOnboarding ? EmailField : undefined,\n FirstName: isIndividual ? FirstNameField : undefined,\n LastName: isIndividual ? LastNameField : undefined,\n MiddleInitial: isIndividual ? MiddleInitialField : undefined,\n BusinessName: isBusiness ? BusinessNameField : undefined,\n Ssn: isIndividual ? SsnField : undefined,\n Ein: isBusiness ? EinField : undefined,\n WorkState: isIndividual && watchedFileNewHireReport ? WorkStateField : undefined,\n },\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\n/**\n * Return type of {@link useContractorDetailsForm}.\n *\n * @public\n */\nexport type UseContractorDetailsFormResult = HookLoadingResult | UseContractorDetailsFormReady\n\n/**\n * Shape of `form.fieldsMetadata` returned by {@link useContractorDetailsForm}.\n *\n * @public\n */\nexport type ContractorDetailsFieldsMetadata = ReturnType<\n typeof buildContractorDetailsFieldsMetadata\n>\n"],"names":["isCurrentlySelfOnboarding","contractor","ContractorSelfOnboardingStatuses","canToggleSelfOnboarding","ContractorOnboardingStatus","buildContractorDetailsFieldsMetadata","base","typeEntries","ContractorType","wageTypeEntries","WageType","withOptions","value","STATES_ABBR","abbr","useContractorDetailsForm","companyId","contractorId","withSelfOnboardingField","optionalFieldsToRequire","partnerDefaults","validationMode","shouldFocusError","contractorQuery","useContractorsGet","isCreateMode","isSelfOnboardingToggleable","mode","hasSsn","hasEin","schema","metadataConfig","useMemo","createContractorDetailsSchema","parsedHourlyRate","resolvedDefaults","formMethods","useForm","zodResolver","watchedType","watchedWageType","watchedSelfOnboarding","watchedFileNewHireReport","useWatch","isIndividual","isBusiness","isHourly","createContractorMutation","useContractorsCreateMutation","updateContractorMutation","useContractorsUpdateMutation","isPending","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","baseMetadata","useDeriveFieldsMetadata","fieldsMetadata","onSubmit","options","submitResult","resolve","data","payload","selfOnboardingEnabled","cleanedSsn","removeNonDigits","cleanedEin","requestBody","savedContractor","resolvedCompanyId","SDKInternalError","result","updateBody","hookFormInternals","useHookFormInternals","TypeField","WageTypeField","StartDateField","HourlyRateField","SelfOnboardingField","FileNewHireReportField","EmailField","FirstNameField","LastNameField","MiddleInitialField","BusinessNameField","SsnField","EinField","WorkStateField","createGetFormSubmissionValues"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { jsx as t, jsxs as o } from "react/jsx-runtime";
2
2
  import { useTranslation as p } from "react-i18next";
3
- import { useContractorsUpdateOnboardingStatusMutation as v } from "@gusto/embedded-api-v-2026-02-01/react-query/contractorsUpdateOnboardingStatus";
4
- import { useContractorsGetOnboardingStatusSuspense as B } from "@gusto/embedded-api-v-2026-02-01/react-query/contractorsGetOnboardingStatus";
5
- import { useContractorsGetSuspense as E } from "@gusto/embedded-api-v-2026-02-01/react-query/contractorsGet";
3
+ import { useContractorsUpdateOnboardingStatusMutation as v } from "@gusto/embedded-api/react-query/contractorsUpdateOnboardingStatus";
4
+ import { useContractorsGetOnboardingStatusSuspense as B } from "@gusto/embedded-api/react-query/contractorsGetOnboardingStatus";
5
+ import { useContractorsGetSuspense as E } from "@gusto/embedded-api/react-query/contractorsGet";
6
6
  import { SubmitDone as I } from "./SubmitDone.js";
7
7
  import { Flex as m, FlexItem as U } from "../../Common/Flex/Flex.js";
8
8
  import { ActionsLayout as M } from "../../Common/ActionsLayout/ActionsLayout.js";
@@ -1 +1 @@
1
- {"version":3,"file":"Submit.js","sources":["../../../../src/components/Contractor/Submit/Submit.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useContractorsUpdateOnboardingStatusMutation } from '@gusto/embedded-api-v-2026-02-01/react-query/contractorsUpdateOnboardingStatus'\nimport { useContractorsGetOnboardingStatusSuspense } from '@gusto/embedded-api-v-2026-02-01/react-query/contractorsGetOnboardingStatus'\nimport { useContractorsGetSuspense } from '@gusto/embedded-api-v-2026-02-01/react-query/contractorsGet'\nimport { SubmitDone } from './SubmitDone'\nimport { ActionsLayout, Flex, FlexItem } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n, useComponentDictionary } from '@/i18n'\nimport { BaseComponent, useBase, type BaseComponentInterface } from '@/components/Base'\nimport { componentEvents, ContractorOnboardingStatus } from '@/shared/constants'\nimport { firstLastName } from '@/helpers/formattedStrings'\n\n/**\n * Props for {@link ContractorSubmit}.\n *\n * @public\n */\nexport interface ContractorSubmitProps extends BaseComponentInterface<'Contractor.Submit'> {\n /** UUID of the contractor being submitted. */\n contractorId: string\n /** When true, adjusts the submission for the self-onboarding flow, surfacing the invite step before the contractor's onboarding status is finalized. */\n selfOnboarding?: boolean\n}\n\n/**\n * Finalizes contractor onboarding by updating the onboarding status, and in the self-onboarding flow can trigger an invitation to the contractor.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `contractor/onboardingStatus/updated` | The contractor's onboarding status was successfully updated. | The updated `contractorOnboardingStatus` returned by the API. |\n * | `contractor/invite/selfOnboarding` | The invite action was triggered for a self-onboarding contractor. | `{ contractorId: string }` |\n * | `contractor/submit/done` | The submission step finished — fired after a successful status update, after an invite, or when the contractor was already onboarded. | `{ message: string }`, optionally with `onboardingStatus` when the contractor was already completed. |\n *\n * @param props - See {@link ContractorSubmitProps}.\n * @returns The rendered submission step.\n * @public\n */\nexport function ContractorSubmit(props: ContractorSubmitProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({ contractorId, selfOnboarding, dictionary }: ContractorSubmitProps) => {\n useI18n('Contractor.Submit')\n useComponentDictionary('Contractor.Submit', dictionary)\n const { Alert, Box, BoxHeader, Button, Text, Heading, UnorderedList } = useComponentContext()\n const { t } = useTranslation('Contractor.Submit')\n const { onEvent, baseSubmitHandler } = useBase()\n const items = Object.values(t('warningItems', { returnObjects: true }))\n\n const { data } = useContractorsGetOnboardingStatusSuspense({\n contractorUuid: contractorId,\n })\n const onboardingStatus = data.contractorOnboardingStatus?.onboardingStatus\n\n const { mutateAsync } = useContractorsUpdateOnboardingStatusMutation()\n\n const onSubmit = async () => {\n await baseSubmitHandler(null, async () => {\n const response = await mutateAsync({\n request: {\n contractorUuid: contractorId,\n contractorOnboardingStatusUpdateRequestBody: {\n onboardingStatus: ContractorOnboardingStatus.ONBOARDING_COMPLETED,\n },\n },\n })\n onEvent(\n componentEvents.CONTRACTOR_ONBOARDING_STATUS_UPDATED,\n response.contractorOnboardingStatus,\n )\n onEvent(componentEvents.CONTRACTOR_SUBMIT_DONE, { message: t('submitDone.successMessage') })\n })\n }\n const handleInviteContractor = () => {\n onEvent(componentEvents.CONTRACTOR_INVITE_CONTRACTOR, { contractorId })\n onEvent(componentEvents.CONTRACTOR_SUBMIT_DONE, {\n message: t('inviteContractor.successMessage'),\n })\n }\n\n const handleSubmitDone = () => {\n onEvent(componentEvents.CONTRACTOR_SUBMIT_DONE, {\n onboardingStatus,\n message: t('submitDone.successMessage'),\n })\n }\n\n if (onboardingStatus === ContractorOnboardingStatus.ONBOARDING_COMPLETED) {\n return <SubmitDone onDone={handleSubmitDone} />\n }\n if (\n onboardingStatus === ContractorOnboardingStatus.SELF_ONBOARDING_NOT_INVITED &&\n selfOnboarding\n ) {\n return <InviteContractor onSubmit={handleInviteContractor} contractorId={contractorId} />\n }\n\n return (\n <Flex flexDirection=\"column\" gap={24}>\n <FlexItem>\n <Heading as=\"h2\">{t('heading')}</Heading>\n </FlexItem>\n\n <Box\n header={\n <BoxHeader\n title={t('documentRequirements.title')}\n description={t('documentRequirements.description')}\n />\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {Object.values(t('documentRequirements.items', { returnObjects: true })).map(item => (\n <div key={item.title}>\n <Text weight=\"medium\">{item.title}</Text>\n <Text variant=\"supporting\">{item.description}</Text>\n </div>\n ))}\n <Alert status=\"info\" label={t('documentRequirements.alertLabel')}></Alert>\n </Flex>\n </Box>\n <Flex flexDirection=\"column\" gap={8}>\n <Alert status=\"warning\" label={t('title')}>\n <UnorderedList items={items} />\n </Alert>\n <ActionsLayout justifyContent=\"end\">\n <Button title={t('submitCta')} onClick={onSubmit}>\n {t('submitCta')}\n </Button>\n </ActionsLayout>\n </Flex>\n </Flex>\n )\n}\n\nconst InviteContractor = ({\n onSubmit,\n contractorId,\n}: {\n onSubmit: () => void\n contractorId: string\n}) => {\n const { t } = useTranslation('Contractor.Submit', { keyPrefix: 'inviteContractor' })\n const { Button, Heading, Text } = useComponentContext()\n\n const { data: contractorData } = useContractorsGetSuspense({ contractorUuid: contractorId })\n const contractor = contractorData.contractor\n\n return (\n <Flex flexDirection=\"column\">\n <Heading as=\"h2\">{t('title')}</Heading>\n <Text>{t('description')}</Text>\n <Flex flexDirection=\"column\">\n <div>\n <Text>\n {firstLastName({\n first_name: contractor?.firstName,\n last_name: contractor?.lastName,\n })}\n </Text>\n <Text>{contractor?.email}</Text>\n </div>\n <div>\n <Text>{t('startDateLabel')}</Text>\n <Text>{contractor?.startDate}</Text>\n </div>\n </Flex>\n <Button title={t('inviteCta')} onClick={onSubmit}>\n {t('inviteCta')}\n </Button>\n </Flex>\n )\n}\n"],"names":["ContractorSubmit","props","jsx","BaseComponent","Root","contractorId","selfOnboarding","dictionary","useI18n","useComponentDictionary","Alert","Box","BoxHeader","Button","Text","Heading","UnorderedList","useComponentContext","t","useTranslation","onEvent","baseSubmitHandler","useBase","items","data","useContractorsGetOnboardingStatusSuspense","onboardingStatus","mutateAsync","useContractorsUpdateOnboardingStatusMutation","onSubmit","response","ContractorOnboardingStatus","componentEvents","handleInviteContractor","handleSubmitDone","SubmitDone","InviteContractor","jsxs","Flex","FlexItem","item","ActionsLayout","contractorData","useContractorsGetSuspense","contractor","firstLastName"],"mappings":"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"}
1
+ {"version":3,"file":"Submit.js","sources":["../../../../src/components/Contractor/Submit/Submit.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useContractorsUpdateOnboardingStatusMutation } from '@gusto/embedded-api/react-query/contractorsUpdateOnboardingStatus'\nimport { useContractorsGetOnboardingStatusSuspense } from '@gusto/embedded-api/react-query/contractorsGetOnboardingStatus'\nimport { useContractorsGetSuspense } from '@gusto/embedded-api/react-query/contractorsGet'\nimport { SubmitDone } from './SubmitDone'\nimport { ActionsLayout, Flex, FlexItem } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n, useComponentDictionary } from '@/i18n'\nimport { BaseComponent, useBase, type BaseComponentInterface } from '@/components/Base'\nimport { componentEvents, ContractorOnboardingStatus } from '@/shared/constants'\nimport { firstLastName } from '@/helpers/formattedStrings'\n\n/**\n * Props for {@link ContractorSubmit}.\n *\n * @public\n */\nexport interface ContractorSubmitProps extends BaseComponentInterface<'Contractor.Submit'> {\n /** UUID of the contractor being submitted. */\n contractorId: string\n /** When true, adjusts the submission for the self-onboarding flow, surfacing the invite step before the contractor's onboarding status is finalized. */\n selfOnboarding?: boolean\n}\n\n/**\n * Finalizes contractor onboarding by updating the onboarding status, and in the self-onboarding flow can trigger an invitation to the contractor.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `contractor/onboardingStatus/updated` | The contractor's onboarding status was successfully updated. | The updated `contractorOnboardingStatus` returned by the API. |\n * | `contractor/invite/selfOnboarding` | The invite action was triggered for a self-onboarding contractor. | `{ contractorId: string }` |\n * | `contractor/submit/done` | The submission step finished — fired after a successful status update, after an invite, or when the contractor was already onboarded. | `{ message: string }`, optionally with `onboardingStatus` when the contractor was already completed. |\n *\n * @param props - See {@link ContractorSubmitProps}.\n * @returns The rendered submission step.\n * @public\n */\nexport function ContractorSubmit(props: ContractorSubmitProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({ contractorId, selfOnboarding, dictionary }: ContractorSubmitProps) => {\n useI18n('Contractor.Submit')\n useComponentDictionary('Contractor.Submit', dictionary)\n const { Alert, Box, BoxHeader, Button, Text, Heading, UnorderedList } = useComponentContext()\n const { t } = useTranslation('Contractor.Submit')\n const { onEvent, baseSubmitHandler } = useBase()\n const items = Object.values(t('warningItems', { returnObjects: true }))\n\n const { data } = useContractorsGetOnboardingStatusSuspense({\n contractorUuid: contractorId,\n })\n const onboardingStatus = data.contractorOnboardingStatus?.onboardingStatus\n\n const { mutateAsync } = useContractorsUpdateOnboardingStatusMutation()\n\n const onSubmit = async () => {\n await baseSubmitHandler(null, async () => {\n const response = await mutateAsync({\n request: {\n contractorUuid: contractorId,\n contractorOnboardingStatusUpdateRequestBody: {\n onboardingStatus: ContractorOnboardingStatus.ONBOARDING_COMPLETED,\n },\n },\n })\n onEvent(\n componentEvents.CONTRACTOR_ONBOARDING_STATUS_UPDATED,\n response.contractorOnboardingStatus,\n )\n onEvent(componentEvents.CONTRACTOR_SUBMIT_DONE, { message: t('submitDone.successMessage') })\n })\n }\n const handleInviteContractor = () => {\n onEvent(componentEvents.CONTRACTOR_INVITE_CONTRACTOR, { contractorId })\n onEvent(componentEvents.CONTRACTOR_SUBMIT_DONE, {\n message: t('inviteContractor.successMessage'),\n })\n }\n\n const handleSubmitDone = () => {\n onEvent(componentEvents.CONTRACTOR_SUBMIT_DONE, {\n onboardingStatus,\n message: t('submitDone.successMessage'),\n })\n }\n\n if (onboardingStatus === ContractorOnboardingStatus.ONBOARDING_COMPLETED) {\n return <SubmitDone onDone={handleSubmitDone} />\n }\n if (\n onboardingStatus === ContractorOnboardingStatus.SELF_ONBOARDING_NOT_INVITED &&\n selfOnboarding\n ) {\n return <InviteContractor onSubmit={handleInviteContractor} contractorId={contractorId} />\n }\n\n return (\n <Flex flexDirection=\"column\" gap={24}>\n <FlexItem>\n <Heading as=\"h2\">{t('heading')}</Heading>\n </FlexItem>\n\n <Box\n header={\n <BoxHeader\n title={t('documentRequirements.title')}\n description={t('documentRequirements.description')}\n />\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {Object.values(t('documentRequirements.items', { returnObjects: true })).map(item => (\n <div key={item.title}>\n <Text weight=\"medium\">{item.title}</Text>\n <Text variant=\"supporting\">{item.description}</Text>\n </div>\n ))}\n <Alert status=\"info\" label={t('documentRequirements.alertLabel')}></Alert>\n </Flex>\n </Box>\n <Flex flexDirection=\"column\" gap={8}>\n <Alert status=\"warning\" label={t('title')}>\n <UnorderedList items={items} />\n </Alert>\n <ActionsLayout justifyContent=\"end\">\n <Button title={t('submitCta')} onClick={onSubmit}>\n {t('submitCta')}\n </Button>\n </ActionsLayout>\n </Flex>\n </Flex>\n )\n}\n\nconst InviteContractor = ({\n onSubmit,\n contractorId,\n}: {\n onSubmit: () => void\n contractorId: string\n}) => {\n const { t } = useTranslation('Contractor.Submit', { keyPrefix: 'inviteContractor' })\n const { Button, Heading, Text } = useComponentContext()\n\n const { data: contractorData } = useContractorsGetSuspense({ contractorUuid: contractorId })\n const contractor = contractorData.contractor\n\n return (\n <Flex flexDirection=\"column\">\n <Heading as=\"h2\">{t('title')}</Heading>\n <Text>{t('description')}</Text>\n <Flex flexDirection=\"column\">\n <div>\n <Text>\n {firstLastName({\n first_name: contractor?.firstName,\n last_name: contractor?.lastName,\n })}\n </Text>\n <Text>{contractor?.email}</Text>\n </div>\n <div>\n <Text>{t('startDateLabel')}</Text>\n <Text>{contractor?.startDate}</Text>\n </div>\n </Flex>\n <Button title={t('inviteCta')} onClick={onSubmit}>\n {t('inviteCta')}\n </Button>\n </Flex>\n )\n}\n"],"names":["ContractorSubmit","props","jsx","BaseComponent","Root","contractorId","selfOnboarding","dictionary","useI18n","useComponentDictionary","Alert","Box","BoxHeader","Button","Text","Heading","UnorderedList","useComponentContext","t","useTranslation","onEvent","baseSubmitHandler","useBase","items","data","useContractorsGetOnboardingStatusSuspense","onboardingStatus","mutateAsync","useContractorsUpdateOnboardingStatusMutation","onSubmit","response","ContractorOnboardingStatus","componentEvents","handleInviteContractor","handleSubmitDone","SubmitDone","InviteContractor","jsxs","Flex","FlexItem","item","ActionsLayout","contractorData","useContractorsGetSuspense","contractor","firstLastName"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as n, jsxs as f, Fragment as ce } from "react/jsx-runtime";
2
2
  import { useCallback as de, useState as B, useEffect as me } from "react";
3
3
  import { useTranslation as F } from "react-i18next";
4
- import { useJobsAndCompensationsDeleteMutation as ue } from "@gusto/embedded-api-v-2026-02-01/react-query/jobsAndCompensationsDelete";
4
+ import { useJobsAndCompensationsDeleteMutation as ue } from "@gusto/embedded-api/react-query/jobsAndCompensationsDelete";
5
5
  import { usePendingChangeDetailRenderer as pe } from "../../shared/usePendingChangeDetailRenderer.js";
6
6
  import { PendingChangesReviewModal as ge } from "../../shared/PendingChangesReviewModal.js";
7
7
  import x from "./CompensationCard.module.scss.js";
@@ -1 +1 @@
1
- {"version":3,"file":"CompensationCard.js","sources":["../../../../../../src/components/Employee/Compensation/management/CompensationCard/CompensationCard.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useJobsAndCompensationsDeleteMutation } from '@gusto/embedded-api-v-2026-02-01/react-query/jobsAndCompensationsDelete'\nimport type { Job } from '@gusto/embedded-api-v-2026-02-01/models/components/job'\nimport {\n useCompensationManagement,\n type UseCompensationManagementReady,\n} from '../../shared/useCompensationManagement'\nimport type { PendingCompensationChange } from '../../shared/getPendingCompensationChanges'\nimport { usePendingChangeDetailRenderer } from '../../shared/usePendingChangeDetailRenderer'\nimport { PendingChangesReviewModal } from '../../shared/PendingChangesReviewModal'\nimport styles from './CompensationCard.module.scss'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { DataView, useDataView, EmptyData, Loading, VisuallyHidden } from '@/components/Common'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { formatDateLongWithYear, formatDateToStringDate } from '@/helpers/dateFormatting'\nimport { useFormatCompensationRate } from '@/helpers/formattedStrings'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, FlsaStatus, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport PlusCircleIcon from '@/assets/icons/plus-circle.svg?react'\nimport TrashCanSvg from '@/assets/icons/trashcan.svg?react'\nimport PencilSvg from '@/assets/icons/pencil.svg?react'\n\nfunction parseJobRate(rate: Job['rate']): number | null {\n if (rate === undefined) return null\n const numericRate = parseFloat(rate)\n return Number.isFinite(numericRate) ? numericRate : null\n}\n\n/**\n * Props for {@link CompensationCard}.\n *\n * @public\n */\nexport interface CompensationCardProps {\n /** The associated employee identifier. */\n employeeId: string\n /** Callback invoked when the card emits an event. See the events table on {@link CompensationCard} for the available event types and payloads. */\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**\n * Standalone \"Compensation\" management card that displays an employee's current jobs and compensation, surfaces pending future-dated changes, and exposes edit, add, and delete affordances.\n *\n * @remarks\n * The card owns its own data fetch, the pending-change alerts and review modal, and the delete-job confirm dialog. It does not render the compensation edit or add-job forms — instead, it emits a distinct request event for each action, and the consumer routes those to {@link CompensationEditForm}, {@link CompensationAddJobForm}, or {@link CompensationAddAnotherJobForm} and renders any post-save success alerts. {@link Compensation} bundles the card, the three form surfaces, and the swap and alert wiring as a single drop-in; reach for the card directly only when that orchestration is the wrong fit (for example, when a form needs to render in a modal or drawer, or when the swap is driven by a router).\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/management/compensation/card/editRequested` | Fired when an \"Edit\" CTA is clicked for a job | `{ employeeId: string, jobId: string }` |\n * | `employee/management/compensation/card/addRequested` | Fired when the \"Add job\" CTA is clicked from the empty state | `{ employeeId: string }` |\n * | `employee/management/compensation/card/addAnotherRequested` | Fired when the \"Add another job\" CTA is clicked | `{ employeeId: string }` |\n * | `employee/management/compensation/card/jobDeleted` | Fired after a non-primary job is deleted via the card's confirm dialog | `{ employeeId: string, jobId: string }` |\n * | `employee/management/compensation/card/changeCancelled` | Fired after a scheduled future-dated change is cancelled from the card | `{ employeeId: string, compensationId: string }` |\n *\n * @param props - See {@link CompensationCardProps}.\n * @returns The rendered compensation card.\n * @public\n * @group Block components\n */\nexport function CompensationCard(props: CompensationCardProps) {\n return (\n <BaseBoundaries componentName=\"Employee.Management.Compensation\">\n <CompensationCardContent {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction CompensationCardContent({ employeeId, onEvent }: CompensationCardProps) {\n useI18n('Employee.Management.Compensation')\n const { t } = useTranslation('Employee.Management.Compensation')\n const Components = useComponentContext()\n\n const compensation = useCompensationManagement({ employeeId })\n\n if (compensation.isLoading) {\n return (\n <BaseLayout error={compensation.errorHandling.errors}>\n <Components.Box header={<Components.BoxHeader title={t('card.title')} />}>\n <Loading />\n </Components.Box>\n </BaseLayout>\n )\n }\n\n return (\n <CompensationCardReady employeeId={employeeId} onEvent={onEvent} compensation={compensation} />\n )\n}\n\ninterface CompensationCardReadyProps extends CompensationCardProps {\n compensation: UseCompensationManagementReady\n}\n\nfunction CompensationCardReady({ employeeId, onEvent, compensation }: CompensationCardReadyProps) {\n const { t } = useTranslation('Employee.Management.Compensation')\n const Components = useComponentContext()\n const formatCompensationRate = useFormatCompensationRate()\n\n const { jobs, primaryFlsaStatus, pendingChanges, hasMultipleJobs, employeeFirstName } =\n compensation.data\n const { cancellingCompensationUuid } = compensation.status\n\n const handleCancelChange = useCallback(\n async (pendingChange: PendingCompensationChange) => {\n const result = await compensation.actions.cancelPendingChange(pendingChange)\n if (result) {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_COMPENSATION_CARD_CHANGE_CANCELLED, {\n employeeId,\n compensationId: pendingChange.compensationUuid,\n })\n }\n },\n [compensation, onEvent, employeeId],\n )\n\n const [pendingDeleteJob, setPendingDeleteJob] = useState<{\n uuid: string\n title: string\n } | null>(null)\n\n const { mutateAsync: deleteEmployeeJob, isPending: isDeletingJob } =\n useJobsAndCompensationsDeleteMutation()\n\n const handleConfirmDeleteJob = async () => {\n if (!pendingDeleteJob) return\n const jobId = pendingDeleteJob.uuid\n await deleteEmployeeJob({ request: { jobId } })\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_COMPENSATION_CARD_JOB_DELETED, {\n employeeId,\n jobId,\n })\n setPendingDeleteJob(null)\n }\n\n const singleJob = jobs.length === 1 ? jobs[0]! : undefined\n // Block adding a secondary if the primary already has a future-dated\n // compensation that isn't Nonexempt — that comp will delete secondary jobs\n // at its effective date, matching the gws-flows guard on the new-job action.\n const localTodayISO = formatDateToStringDate(new Date()) ?? ''\n const primaryJob = jobs.find(j => j.primary)\n const hasFutureNonNonexemptComp =\n primaryJob?.compensations?.some(\n c =>\n c.effectiveDate !== undefined &&\n c.effectiveDate > localTodayISO &&\n c.flsaStatus !== FlsaStatus.NONEXEMPT,\n ) ?? false\n const canAddAnotherJob =\n jobs.length >= 1 && primaryFlsaStatus === FlsaStatus.NONEXEMPT && !hasFutureNonNonexemptComp\n const singleJobNumericRate = singleJob ? parseJobRate(singleJob.rate) : null\n const singleJobCurrentComp = singleJob?.compensations?.find(\n c => c.uuid === singleJob.currentCompensationUuid,\n )\n const emptyPlaceholder = <span aria-label={t('card.listEmptyPlaceholder')}>–</span>\n const singleJobPaymentTypeLabel = singleJob?.paymentUnit\n ? singleJob.paymentUnit === 'Hour'\n ? t('card.types.hourly')\n : singleJob.paymentUnit === 'Salary' || singleJob.paymentUnit === 'Year'\n ? t('card.types.salary')\n : singleJob.paymentUnit\n : null\n\n const [isReviewOpen, setIsReviewOpen] = useState(false)\n const renderDetail = usePendingChangeDetailRenderer(employeeFirstName)\n\n // Split pending changes: \"new job\" (job hasn't started yet, no current comp)\n // vs \"update\" (existing comp with a scheduled future change).\n const newJobPendingChanges = pendingChanges.filter(c => c.isNewJob)\n const updatePendingChanges = pendingChanges.filter(c => !c.isNewJob)\n\n useEffect(() => {\n if (updatePendingChanges.length === 0) {\n setIsReviewOpen(false)\n }\n }, [updatePendingChanges.length])\n\n const pendingNewJobUuids = new Set(newJobPendingChanges.map(c => c.jobUuid))\n const singleJobIsPendingNew = singleJob ? pendingNewJobUuids.has(singleJob.uuid) : false\n const hasAnyPendingNewJobs = pendingNewJobUuids.size > 0\n\n // Jobs with a future-dated comp stacked on a current comp (\"pending update\").\n // Editing while one is queued would stack another future comp on top —\n // hide Edit until the existing pending change is cancelled or goes into effect.\n const pendingUpdateJobUuids = new Set(updatePendingChanges.map(c => c.jobUuid))\n const singleJobHasPendingUpdate = singleJob ? pendingUpdateJobUuids.has(singleJob.uuid) : false\n\n const hasPendingUpdates = updatePendingChanges.length > 0\n const showSummaryAlert = hasMultipleJobs && updatePendingChanges.length > 1\n const showInlineAlert = hasPendingUpdates && !showSummaryAlert\n const nextChange = updatePendingChanges[0]\n\n const handleEdit = (job: Job) => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_COMPENSATION_CARD_EDIT_REQUESTED, {\n employeeId,\n jobId: job.uuid,\n })\n }\n const handleAddJob = () => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_COMPENSATION_CARD_ADD_REQUESTED, { employeeId })\n }\n const handleAddAnotherJob = () => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_COMPENSATION_CARD_ADD_ANOTHER_REQUESTED, {\n employeeId,\n })\n }\n\n const jobsColumns = [\n {\n key: 'jobTitle',\n title: t('card.columns.jobTitle'),\n render: (job: Job) => {\n // Title lives on compensation in the API — `job.title` is a\n // denormalized snapshot that can lag behind comp-level edits on\n // pending jobs, so read from the comp pointed to by\n // `currentCompensationUuid`.\n const currentComp = job.compensations?.find(c => c.uuid === job.currentCompensationUuid)\n const numericRate = parseJobRate(job.rate)\n return (\n <>\n {currentComp?.title || '-'}\n {numericRate !== null && job.paymentUnit ? (\n <Components.Text variant=\"supporting\" size=\"sm\">\n {formatCompensationRate(numericRate, job.paymentUnit)}\n </Components.Text>\n ) : null}\n </>\n )\n },\n },\n {\n key: 'payType',\n title: t('card.columns.payType'),\n render: (job: Job) => {\n const flsaStatus = job.compensations?.find(\n comp => comp.uuid === job.currentCompensationUuid,\n )?.flsaStatus\n return flsaStatus !== undefined ? t(`flsaStatusLabels.${flsaStatus}`) : '-'\n },\n },\n {\n key: 'effectiveDate',\n title: t('card.columns.effectiveDate'),\n render: (job: Job) => {\n const currentComp = job.compensations?.find(c => c.uuid === job.currentCompensationUuid)\n return currentComp?.effectiveDate ? formatDateLongWithYear(currentComp.effectiveDate) : '-'\n },\n },\n ...(hasAnyPendingNewJobs\n ? [\n {\n key: 'status',\n title: <VisuallyHidden>{t('card.columns.status')}</VisuallyHidden>,\n render: (job: Job) =>\n pendingNewJobUuids.has(job.uuid) ? (\n <Components.Badge status=\"warning\">{t('card.pendingStatus')}</Components.Badge>\n ) : null,\n },\n ]\n : []),\n ]\n\n const jobsDataView = useDataView({\n data: jobs,\n columns: jobsColumns,\n itemMenu: (job: Job) => {\n const jobHasPendingUpdate = pendingUpdateJobUuids.has(job.uuid)\n const items = [\n ...(jobHasPendingUpdate\n ? []\n : [\n {\n label: t('card.editJobCta'),\n icon: <PencilSvg aria-hidden />,\n onClick: () => {\n handleEdit(job)\n },\n },\n ]),\n ...(!job.primary\n ? [\n {\n label: t('card.deleteJobCta'),\n icon: <TrashCanSvg aria-hidden />,\n onClick: () => {\n const currentComp = job.compensations?.find(\n c => c.uuid === job.currentCompensationUuid,\n )\n setPendingDeleteJob({ uuid: job.uuid, title: currentComp?.title ?? '' })\n },\n },\n ]\n : []),\n ]\n if (items.length === 0) return null\n return (\n <HamburgerMenu\n triggerLabel={t('card.hamburgerTitle')}\n isLoading={isDeletingJob}\n items={items}\n />\n )\n },\n })\n\n return (\n <BaseLayout error={compensation.errorHandling.errors}>\n <Components.Box\n withPadding={!hasMultipleJobs}\n header={\n <Components.BoxHeader\n title={t('card.title')}\n action={\n hasMultipleJobs ? null : singleJob ? (\n singleJobHasPendingUpdate ? null : (\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n handleEdit(singleJob)\n }}\n >\n {t('card.editCta')}\n </Components.Button>\n )\n ) : (\n <Components.Button\n variant=\"secondary\"\n onClick={handleAddJob}\n icon={<PlusCircleIcon />}\n >\n {t('card.addJobCta')}\n </Components.Button>\n )\n }\n />\n }\n footer={\n canAddAnotherJob ? (\n <Components.Button\n variant=\"secondary\"\n onClick={handleAddAnotherJob}\n icon={<PlusCircleIcon />}\n >\n {t('card.addAnotherJobCta')}\n </Components.Button>\n ) : undefined\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {hasPendingUpdates && (\n <div\n className={[styles.alertWrapper, hasMultipleJobs && styles.alertWrapperPadded]\n .filter(Boolean)\n .join(' ')}\n >\n <Flex flexDirection=\"column\" gap={16}>\n {showInlineAlert && nextChange && (\n <Components.Alert\n status=\"warning\"\n disableScrollIntoView\n label={\n hasMultipleJobs\n ? t('card.pendingChange.alertLabelWithJob', {\n jobTitle: nextChange.jobTitle,\n date: formatDateLongWithYear(nextChange.effectiveDate),\n })\n : t('card.pendingChange.alertLabel', {\n date: formatDateLongWithYear(nextChange.effectiveDate),\n })\n }\n >\n <Flex flexDirection=\"column\" gap={12}>\n <Components.UnorderedList\n items={nextChange.details.map(detail => renderDetail(detail))}\n />\n <div>\n <Components.Button\n variant=\"secondary\"\n isLoading={cancellingCompensationUuid === nextChange.compensationUuid}\n onClick={() => {\n void handleCancelChange(nextChange)\n }}\n >\n {t('card.pendingChange.cancelCta')}\n </Components.Button>\n </div>\n </Flex>\n </Components.Alert>\n )}\n {showSummaryAlert && (\n <Components.Alert\n status=\"warning\"\n disableScrollIntoView\n label={t('card.pendingChange.summaryLabel', {\n name: employeeFirstName ?? '',\n })}\n action={\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n setIsReviewOpen(true)\n }}\n >\n {t('card.pendingChange.reviewCta')}\n </Components.Button>\n }\n />\n )}\n </Flex>\n </div>\n )}\n {hasMultipleJobs ? (\n <DataView label={t('card.tableLabel')} isWithinBox {...jobsDataView} />\n ) : singleJob ? (\n <Components.DescriptionList\n items={[\n {\n term: t('card.jobTitle'),\n description: singleJob.title || emptyPlaceholder,\n },\n {\n term: t('card.type'),\n description: singleJobPaymentTypeLabel || emptyPlaceholder,\n },\n {\n term: t('card.wage'),\n description:\n singleJobNumericRate !== null && singleJob.paymentUnit\n ? formatCompensationRate(singleJobNumericRate, singleJob.paymentUnit)\n : emptyPlaceholder,\n },\n {\n term: t('card.effectiveDate'),\n description: singleJobCurrentComp?.effectiveDate\n ? formatDateLongWithYear(singleJobCurrentComp.effectiveDate)\n : emptyPlaceholder,\n },\n ...(singleJobIsPendingNew\n ? [\n {\n term: t('card.columns.status'),\n description: (\n <Components.Badge status=\"warning\">\n {t('card.pendingStatus')}\n </Components.Badge>\n ),\n },\n ]\n : []),\n ]}\n />\n ) : (\n <EmptyData\n title={t('card.emptyState.title')}\n description={t('card.emptyState.description')}\n />\n )}\n </Flex>\n </Components.Box>\n\n <PendingChangesReviewModal\n isOpen={isReviewOpen}\n pendingChanges={updatePendingChanges}\n employeeFirstName={employeeFirstName}\n cancellingCompensationUuid={cancellingCompensationUuid}\n onClose={() => {\n setIsReviewOpen(false)\n }}\n onCancelChange={change => {\n void handleCancelChange(change)\n }}\n />\n\n <Components.Dialog\n isOpen={pendingDeleteJob !== null}\n onClose={() => {\n setPendingDeleteJob(null)\n }}\n onPrimaryActionClick={() => {\n void handleConfirmDeleteJob()\n }}\n isPrimaryActionLoading={isDeletingJob}\n isDestructive\n title={t('card.deleteJobDialog.title')}\n primaryActionLabel={t('card.deleteJobDialog.confirmCta')}\n closeActionLabel={t('card.deleteJobDialog.cancelCta')}\n >\n {pendingDeleteJob\n ? t('card.deleteJobDialog.description', {\n jobTitle: pendingDeleteJob.title,\n })\n : null}\n </Components.Dialog>\n </BaseLayout>\n )\n}\n"],"names":["parseJobRate","rate","numericRate","CompensationCard","props","jsx","BaseBoundaries","CompensationCardContent","employeeId","onEvent","useI18n","t","useTranslation","Components","useComponentContext","compensation","useCompensationManagement","BaseLayout","Loading","CompensationCardReady","formatCompensationRate","useFormatCompensationRate","jobs","primaryFlsaStatus","pendingChanges","hasMultipleJobs","employeeFirstName","cancellingCompensationUuid","handleCancelChange","useCallback","pendingChange","componentEvents","pendingDeleteJob","setPendingDeleteJob","useState","deleteEmployeeJob","isDeletingJob","useJobsAndCompensationsDeleteMutation","handleConfirmDeleteJob","jobId","singleJob","localTodayISO","formatDateToStringDate","hasFutureNonNonexemptComp","j","c","FlsaStatus","canAddAnotherJob","singleJobNumericRate","singleJobCurrentComp","emptyPlaceholder","singleJobPaymentTypeLabel","isReviewOpen","setIsReviewOpen","renderDetail","usePendingChangeDetailRenderer","newJobPendingChanges","updatePendingChanges","useEffect","pendingNewJobUuids","singleJobIsPendingNew","hasAnyPendingNewJobs","pendingUpdateJobUuids","singleJobHasPendingUpdate","hasPendingUpdates","showSummaryAlert","showInlineAlert","nextChange","handleEdit","job","handleAddJob","handleAddAnotherJob","jobsColumns","currentComp","jsxs","Fragment","flsaStatus","comp","formatDateLongWithYear","VisuallyHidden","jobsDataView","useDataView","items","PencilSvg","TrashCanSvg","HamburgerMenu","PlusCircleIcon","Flex","styles","detail","DataView","EmptyData","PendingChangesReviewModal","change"],"mappings":"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"}
1
+ {"version":3,"file":"CompensationCard.js","sources":["../../../../../../src/components/Employee/Compensation/management/CompensationCard/CompensationCard.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useJobsAndCompensationsDeleteMutation } from '@gusto/embedded-api/react-query/jobsAndCompensationsDelete'\nimport type { Job } from '@gusto/embedded-api/models/components/job'\nimport {\n useCompensationManagement,\n type UseCompensationManagementReady,\n} from '../../shared/useCompensationManagement'\nimport type { PendingCompensationChange } from '../../shared/getPendingCompensationChanges'\nimport { usePendingChangeDetailRenderer } from '../../shared/usePendingChangeDetailRenderer'\nimport { PendingChangesReviewModal } from '../../shared/PendingChangesReviewModal'\nimport styles from './CompensationCard.module.scss'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { DataView, useDataView, EmptyData, Loading, VisuallyHidden } from '@/components/Common'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { formatDateLongWithYear, formatDateToStringDate } from '@/helpers/dateFormatting'\nimport { useFormatCompensationRate } from '@/helpers/formattedStrings'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, FlsaStatus, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport PlusCircleIcon from '@/assets/icons/plus-circle.svg?react'\nimport TrashCanSvg from '@/assets/icons/trashcan.svg?react'\nimport PencilSvg from '@/assets/icons/pencil.svg?react'\n\nfunction parseJobRate(rate: Job['rate']): number | null {\n if (rate === undefined) return null\n const numericRate = parseFloat(rate)\n return Number.isFinite(numericRate) ? numericRate : null\n}\n\n/**\n * Props for {@link CompensationCard}.\n *\n * @public\n */\nexport interface CompensationCardProps {\n /** The associated employee identifier. */\n employeeId: string\n /** Callback invoked when the card emits an event. See the events table on {@link CompensationCard} for the available event types and payloads. */\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**\n * Standalone \"Compensation\" management card that displays an employee's current jobs and compensation, surfaces pending future-dated changes, and exposes edit, add, and delete affordances.\n *\n * @remarks\n * The card owns its own data fetch, the pending-change alerts and review modal, and the delete-job confirm dialog. It does not render the compensation edit or add-job forms — instead, it emits a distinct request event for each action, and the consumer routes those to {@link CompensationEditForm}, {@link CompensationAddJobForm}, or {@link CompensationAddAnotherJobForm} and renders any post-save success alerts. {@link Compensation} bundles the card, the three form surfaces, and the swap and alert wiring as a single drop-in; reach for the card directly only when that orchestration is the wrong fit (for example, when a form needs to render in a modal or drawer, or when the swap is driven by a router).\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/management/compensation/card/editRequested` | Fired when an \"Edit\" CTA is clicked for a job | `{ employeeId: string, jobId: string }` |\n * | `employee/management/compensation/card/addRequested` | Fired when the \"Add job\" CTA is clicked from the empty state | `{ employeeId: string }` |\n * | `employee/management/compensation/card/addAnotherRequested` | Fired when the \"Add another job\" CTA is clicked | `{ employeeId: string }` |\n * | `employee/management/compensation/card/jobDeleted` | Fired after a non-primary job is deleted via the card's confirm dialog | `{ employeeId: string, jobId: string }` |\n * | `employee/management/compensation/card/changeCancelled` | Fired after a scheduled future-dated change is cancelled from the card | `{ employeeId: string, compensationId: string }` |\n *\n * @param props - See {@link CompensationCardProps}.\n * @returns The rendered compensation card.\n * @public\n * @group Block components\n */\nexport function CompensationCard(props: CompensationCardProps) {\n return (\n <BaseBoundaries componentName=\"Employee.Management.Compensation\">\n <CompensationCardContent {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction CompensationCardContent({ employeeId, onEvent }: CompensationCardProps) {\n useI18n('Employee.Management.Compensation')\n const { t } = useTranslation('Employee.Management.Compensation')\n const Components = useComponentContext()\n\n const compensation = useCompensationManagement({ employeeId })\n\n if (compensation.isLoading) {\n return (\n <BaseLayout error={compensation.errorHandling.errors}>\n <Components.Box header={<Components.BoxHeader title={t('card.title')} />}>\n <Loading />\n </Components.Box>\n </BaseLayout>\n )\n }\n\n return (\n <CompensationCardReady employeeId={employeeId} onEvent={onEvent} compensation={compensation} />\n )\n}\n\ninterface CompensationCardReadyProps extends CompensationCardProps {\n compensation: UseCompensationManagementReady\n}\n\nfunction CompensationCardReady({ employeeId, onEvent, compensation }: CompensationCardReadyProps) {\n const { t } = useTranslation('Employee.Management.Compensation')\n const Components = useComponentContext()\n const formatCompensationRate = useFormatCompensationRate()\n\n const { jobs, primaryFlsaStatus, pendingChanges, hasMultipleJobs, employeeFirstName } =\n compensation.data\n const { cancellingCompensationUuid } = compensation.status\n\n const handleCancelChange = useCallback(\n async (pendingChange: PendingCompensationChange) => {\n const result = await compensation.actions.cancelPendingChange(pendingChange)\n if (result) {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_COMPENSATION_CARD_CHANGE_CANCELLED, {\n employeeId,\n compensationId: pendingChange.compensationUuid,\n })\n }\n },\n [compensation, onEvent, employeeId],\n )\n\n const [pendingDeleteJob, setPendingDeleteJob] = useState<{\n uuid: string\n title: string\n } | null>(null)\n\n const { mutateAsync: deleteEmployeeJob, isPending: isDeletingJob } =\n useJobsAndCompensationsDeleteMutation()\n\n const handleConfirmDeleteJob = async () => {\n if (!pendingDeleteJob) return\n const jobId = pendingDeleteJob.uuid\n await deleteEmployeeJob({ request: { jobId } })\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_COMPENSATION_CARD_JOB_DELETED, {\n employeeId,\n jobId,\n })\n setPendingDeleteJob(null)\n }\n\n const singleJob = jobs.length === 1 ? jobs[0]! : undefined\n // Block adding a secondary if the primary already has a future-dated\n // compensation that isn't Nonexempt — that comp will delete secondary jobs\n // at its effective date, matching the gws-flows guard on the new-job action.\n const localTodayISO = formatDateToStringDate(new Date()) ?? ''\n const primaryJob = jobs.find(j => j.primary)\n const hasFutureNonNonexemptComp =\n primaryJob?.compensations?.some(\n c =>\n c.effectiveDate !== undefined &&\n c.effectiveDate > localTodayISO &&\n c.flsaStatus !== FlsaStatus.NONEXEMPT,\n ) ?? false\n const canAddAnotherJob =\n jobs.length >= 1 && primaryFlsaStatus === FlsaStatus.NONEXEMPT && !hasFutureNonNonexemptComp\n const singleJobNumericRate = singleJob ? parseJobRate(singleJob.rate) : null\n const singleJobCurrentComp = singleJob?.compensations?.find(\n c => c.uuid === singleJob.currentCompensationUuid,\n )\n const emptyPlaceholder = <span aria-label={t('card.listEmptyPlaceholder')}>–</span>\n const singleJobPaymentTypeLabel = singleJob?.paymentUnit\n ? singleJob.paymentUnit === 'Hour'\n ? t('card.types.hourly')\n : singleJob.paymentUnit === 'Salary' || singleJob.paymentUnit === 'Year'\n ? t('card.types.salary')\n : singleJob.paymentUnit\n : null\n\n const [isReviewOpen, setIsReviewOpen] = useState(false)\n const renderDetail = usePendingChangeDetailRenderer(employeeFirstName)\n\n // Split pending changes: \"new job\" (job hasn't started yet, no current comp)\n // vs \"update\" (existing comp with a scheduled future change).\n const newJobPendingChanges = pendingChanges.filter(c => c.isNewJob)\n const updatePendingChanges = pendingChanges.filter(c => !c.isNewJob)\n\n useEffect(() => {\n if (updatePendingChanges.length === 0) {\n setIsReviewOpen(false)\n }\n }, [updatePendingChanges.length])\n\n const pendingNewJobUuids = new Set(newJobPendingChanges.map(c => c.jobUuid))\n const singleJobIsPendingNew = singleJob ? pendingNewJobUuids.has(singleJob.uuid) : false\n const hasAnyPendingNewJobs = pendingNewJobUuids.size > 0\n\n // Jobs with a future-dated comp stacked on a current comp (\"pending update\").\n // Editing while one is queued would stack another future comp on top —\n // hide Edit until the existing pending change is cancelled or goes into effect.\n const pendingUpdateJobUuids = new Set(updatePendingChanges.map(c => c.jobUuid))\n const singleJobHasPendingUpdate = singleJob ? pendingUpdateJobUuids.has(singleJob.uuid) : false\n\n const hasPendingUpdates = updatePendingChanges.length > 0\n const showSummaryAlert = hasMultipleJobs && updatePendingChanges.length > 1\n const showInlineAlert = hasPendingUpdates && !showSummaryAlert\n const nextChange = updatePendingChanges[0]\n\n const handleEdit = (job: Job) => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_COMPENSATION_CARD_EDIT_REQUESTED, {\n employeeId,\n jobId: job.uuid,\n })\n }\n const handleAddJob = () => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_COMPENSATION_CARD_ADD_REQUESTED, { employeeId })\n }\n const handleAddAnotherJob = () => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_COMPENSATION_CARD_ADD_ANOTHER_REQUESTED, {\n employeeId,\n })\n }\n\n const jobsColumns = [\n {\n key: 'jobTitle',\n title: t('card.columns.jobTitle'),\n render: (job: Job) => {\n // Title lives on compensation in the API — `job.title` is a\n // denormalized snapshot that can lag behind comp-level edits on\n // pending jobs, so read from the comp pointed to by\n // `currentCompensationUuid`.\n const currentComp = job.compensations?.find(c => c.uuid === job.currentCompensationUuid)\n const numericRate = parseJobRate(job.rate)\n return (\n <>\n {currentComp?.title || '-'}\n {numericRate !== null && job.paymentUnit ? (\n <Components.Text variant=\"supporting\" size=\"sm\">\n {formatCompensationRate(numericRate, job.paymentUnit)}\n </Components.Text>\n ) : null}\n </>\n )\n },\n },\n {\n key: 'payType',\n title: t('card.columns.payType'),\n render: (job: Job) => {\n const flsaStatus = job.compensations?.find(\n comp => comp.uuid === job.currentCompensationUuid,\n )?.flsaStatus\n return flsaStatus !== undefined ? t(`flsaStatusLabels.${flsaStatus}`) : '-'\n },\n },\n {\n key: 'effectiveDate',\n title: t('card.columns.effectiveDate'),\n render: (job: Job) => {\n const currentComp = job.compensations?.find(c => c.uuid === job.currentCompensationUuid)\n return currentComp?.effectiveDate ? formatDateLongWithYear(currentComp.effectiveDate) : '-'\n },\n },\n ...(hasAnyPendingNewJobs\n ? [\n {\n key: 'status',\n title: <VisuallyHidden>{t('card.columns.status')}</VisuallyHidden>,\n render: (job: Job) =>\n pendingNewJobUuids.has(job.uuid) ? (\n <Components.Badge status=\"warning\">{t('card.pendingStatus')}</Components.Badge>\n ) : null,\n },\n ]\n : []),\n ]\n\n const jobsDataView = useDataView({\n data: jobs,\n columns: jobsColumns,\n itemMenu: (job: Job) => {\n const jobHasPendingUpdate = pendingUpdateJobUuids.has(job.uuid)\n const items = [\n ...(jobHasPendingUpdate\n ? []\n : [\n {\n label: t('card.editJobCta'),\n icon: <PencilSvg aria-hidden />,\n onClick: () => {\n handleEdit(job)\n },\n },\n ]),\n ...(!job.primary\n ? [\n {\n label: t('card.deleteJobCta'),\n icon: <TrashCanSvg aria-hidden />,\n onClick: () => {\n const currentComp = job.compensations?.find(\n c => c.uuid === job.currentCompensationUuid,\n )\n setPendingDeleteJob({ uuid: job.uuid, title: currentComp?.title ?? '' })\n },\n },\n ]\n : []),\n ]\n if (items.length === 0) return null\n return (\n <HamburgerMenu\n triggerLabel={t('card.hamburgerTitle')}\n isLoading={isDeletingJob}\n items={items}\n />\n )\n },\n })\n\n return (\n <BaseLayout error={compensation.errorHandling.errors}>\n <Components.Box\n withPadding={!hasMultipleJobs}\n header={\n <Components.BoxHeader\n title={t('card.title')}\n action={\n hasMultipleJobs ? null : singleJob ? (\n singleJobHasPendingUpdate ? null : (\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n handleEdit(singleJob)\n }}\n >\n {t('card.editCta')}\n </Components.Button>\n )\n ) : (\n <Components.Button\n variant=\"secondary\"\n onClick={handleAddJob}\n icon={<PlusCircleIcon />}\n >\n {t('card.addJobCta')}\n </Components.Button>\n )\n }\n />\n }\n footer={\n canAddAnotherJob ? (\n <Components.Button\n variant=\"secondary\"\n onClick={handleAddAnotherJob}\n icon={<PlusCircleIcon />}\n >\n {t('card.addAnotherJobCta')}\n </Components.Button>\n ) : undefined\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {hasPendingUpdates && (\n <div\n className={[styles.alertWrapper, hasMultipleJobs && styles.alertWrapperPadded]\n .filter(Boolean)\n .join(' ')}\n >\n <Flex flexDirection=\"column\" gap={16}>\n {showInlineAlert && nextChange && (\n <Components.Alert\n status=\"warning\"\n disableScrollIntoView\n label={\n hasMultipleJobs\n ? t('card.pendingChange.alertLabelWithJob', {\n jobTitle: nextChange.jobTitle,\n date: formatDateLongWithYear(nextChange.effectiveDate),\n })\n : t('card.pendingChange.alertLabel', {\n date: formatDateLongWithYear(nextChange.effectiveDate),\n })\n }\n >\n <Flex flexDirection=\"column\" gap={12}>\n <Components.UnorderedList\n items={nextChange.details.map(detail => renderDetail(detail))}\n />\n <div>\n <Components.Button\n variant=\"secondary\"\n isLoading={cancellingCompensationUuid === nextChange.compensationUuid}\n onClick={() => {\n void handleCancelChange(nextChange)\n }}\n >\n {t('card.pendingChange.cancelCta')}\n </Components.Button>\n </div>\n </Flex>\n </Components.Alert>\n )}\n {showSummaryAlert && (\n <Components.Alert\n status=\"warning\"\n disableScrollIntoView\n label={t('card.pendingChange.summaryLabel', {\n name: employeeFirstName ?? '',\n })}\n action={\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n setIsReviewOpen(true)\n }}\n >\n {t('card.pendingChange.reviewCta')}\n </Components.Button>\n }\n />\n )}\n </Flex>\n </div>\n )}\n {hasMultipleJobs ? (\n <DataView label={t('card.tableLabel')} isWithinBox {...jobsDataView} />\n ) : singleJob ? (\n <Components.DescriptionList\n items={[\n {\n term: t('card.jobTitle'),\n description: singleJob.title || emptyPlaceholder,\n },\n {\n term: t('card.type'),\n description: singleJobPaymentTypeLabel || emptyPlaceholder,\n },\n {\n term: t('card.wage'),\n description:\n singleJobNumericRate !== null && singleJob.paymentUnit\n ? formatCompensationRate(singleJobNumericRate, singleJob.paymentUnit)\n : emptyPlaceholder,\n },\n {\n term: t('card.effectiveDate'),\n description: singleJobCurrentComp?.effectiveDate\n ? formatDateLongWithYear(singleJobCurrentComp.effectiveDate)\n : emptyPlaceholder,\n },\n ...(singleJobIsPendingNew\n ? [\n {\n term: t('card.columns.status'),\n description: (\n <Components.Badge status=\"warning\">\n {t('card.pendingStatus')}\n </Components.Badge>\n ),\n },\n ]\n : []),\n ]}\n />\n ) : (\n <EmptyData\n title={t('card.emptyState.title')}\n description={t('card.emptyState.description')}\n />\n )}\n </Flex>\n </Components.Box>\n\n <PendingChangesReviewModal\n isOpen={isReviewOpen}\n pendingChanges={updatePendingChanges}\n employeeFirstName={employeeFirstName}\n cancellingCompensationUuid={cancellingCompensationUuid}\n onClose={() => {\n setIsReviewOpen(false)\n }}\n onCancelChange={change => {\n void handleCancelChange(change)\n }}\n />\n\n <Components.Dialog\n isOpen={pendingDeleteJob !== null}\n onClose={() => {\n setPendingDeleteJob(null)\n }}\n onPrimaryActionClick={() => {\n void handleConfirmDeleteJob()\n }}\n isPrimaryActionLoading={isDeletingJob}\n isDestructive\n title={t('card.deleteJobDialog.title')}\n primaryActionLabel={t('card.deleteJobDialog.confirmCta')}\n closeActionLabel={t('card.deleteJobDialog.cancelCta')}\n >\n {pendingDeleteJob\n ? t('card.deleteJobDialog.description', {\n jobTitle: pendingDeleteJob.title,\n })\n : null}\n </Components.Dialog>\n </BaseLayout>\n )\n}\n"],"names":["parseJobRate","rate","numericRate","CompensationCard","props","jsx","BaseBoundaries","CompensationCardContent","employeeId","onEvent","useI18n","t","useTranslation","Components","useComponentContext","compensation","useCompensationManagement","BaseLayout","Loading","CompensationCardReady","formatCompensationRate","useFormatCompensationRate","jobs","primaryFlsaStatus","pendingChanges","hasMultipleJobs","employeeFirstName","cancellingCompensationUuid","handleCancelChange","useCallback","pendingChange","componentEvents","pendingDeleteJob","setPendingDeleteJob","useState","deleteEmployeeJob","isDeletingJob","useJobsAndCompensationsDeleteMutation","handleConfirmDeleteJob","jobId","singleJob","localTodayISO","formatDateToStringDate","hasFutureNonNonexemptComp","j","c","FlsaStatus","canAddAnotherJob","singleJobNumericRate","singleJobCurrentComp","emptyPlaceholder","singleJobPaymentTypeLabel","isReviewOpen","setIsReviewOpen","renderDetail","usePendingChangeDetailRenderer","newJobPendingChanges","updatePendingChanges","useEffect","pendingNewJobUuids","singleJobIsPendingNew","hasAnyPendingNewJobs","pendingUpdateJobUuids","singleJobHasPendingUpdate","hasPendingUpdates","showSummaryAlert","showInlineAlert","nextChange","handleEdit","job","handleAddJob","handleAddAnotherJob","jobsColumns","currentComp","jsxs","Fragment","flsaStatus","comp","formatDateLongWithYear","VisuallyHidden","jobsDataView","useDataView","items","PencilSvg","TrashCanSvg","HamburgerMenu","PlusCircleIcon","Flex","styles","detail","DataView","EmptyData","PendingChangesReviewModal","change"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as m } from "react/jsx-runtime";
2
- import { useJobsAndCompensationsGetJobs as p } from "@gusto/embedded-api-v-2026-02-01/react-query/jobsAndCompensationsGetJobs";
2
+ import { useJobsAndCompensationsGetJobs as p } from "@gusto/embedded-api/react-query/jobsAndCompensationsGetJobs";
3
3
  import { getPendingCompensationChanges as d } from "../../shared/getPendingCompensationChanges.js";
4
4
  import { CompensationEditJobForm as f } from "../CompensationEditJobForm/CompensationEditJobForm.js";
5
5
  import { CompensationEditPendingJobForm as u } from "../CompensationEditPendingJobForm/CompensationEditPendingJobForm.js";
@@ -1 +1 @@
1
- {"version":3,"file":"CompensationEditForm.js","sources":["../../../../../../src/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.tsx"],"sourcesContent":["import { useJobsAndCompensationsGetJobs } from '@gusto/embedded-api-v-2026-02-01/react-query/jobsAndCompensationsGetJobs'\nimport { getPendingCompensationChanges } from '../../shared/getPendingCompensationChanges'\nimport { CompensationEditJobForm } from '../CompensationEditJobForm/CompensationEditJobForm'\nimport { CompensationEditPendingJobForm } from '../CompensationEditPendingJobForm/CompensationEditPendingJobForm'\nimport { BaseLayout, type CommonComponentInterface } from '@/components/Base'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { type EventType } from '@/shared/constants'\n\n/**\n * Props for {@link CompensationEditForm}.\n *\n * @public\n */\nexport interface CompensationEditFormProps extends CommonComponentInterface<'Employee.Management.Compensation'> {\n /** The associated employee identifier. */\n employeeId: string\n /**\n * The id of the job whose compensation is being edited (for example, the `jobId` from the\n * {@link CompensationCard} `employee/management/compensation/card/editRequested` payload).\n * The form inspects the job's compensations to decide whether to edit the current\n * compensation or an already-scheduled future-dated change.\n */\n jobId: string\n /** Callback invoked when the form emits an event. See the events table on {@link CompensationEditForm} for the available event types and payloads. */\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**\n * Standalone form that edits the compensation for a single job, branching automatically between editing the current compensation and an already-scheduled future-dated change.\n *\n * @remarks\n * Pair with {@link CompensationCard} to route its `employee/management/compensation/card/editRequested` event to this form. {@link Compensation} bundles the card, the three form surfaces (edit, add job, add another job), and the swap and alert wiring as a single drop-in; reach for this form directly only when that orchestration is the wrong fit (for example, when the form needs to render in a modal or drawer, or when the swap is driven by a router).\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/management/compensation/editForm/submitted` | Fired after the compensation change is saved; use it to return to the card | The updated `Compensation` entity |\n * | `employee/management/compensation/editForm/cancelled` | Fired when the user clicks Cancel; use it to return to the card | — |\n *\n * @param props - See {@link CompensationEditFormProps}.\n * @returns The rendered compensation edit form.\n * @public\n * @group Block components\n */\nexport function CompensationEditForm({\n employeeId,\n jobId,\n onEvent,\n dictionary,\n}: CompensationEditFormProps) {\n const jobsQuery = useJobsAndCompensationsGetJobs({ employeeId }, { enabled: !!employeeId })\n\n if (jobsQuery.isLoading || !jobsQuery.data) {\n const errorHandling = composeErrorHandler([jobsQuery])\n return <BaseLayout isLoading error={errorHandling.errors} />\n }\n\n const job = jobsQuery.data.jobs?.find(j => j.uuid === jobId)\n\n // The API does not guarantee ordering of job.compensations, so rely on the\n // same sorted helper that drives the card display (ascending by effectiveDate)\n // to find the nearest pending change.\n const nearestPending = getPendingCompensationChanges(job ? [job] : [])[0]\n\n if (nearestPending) {\n return (\n <CompensationEditPendingJobForm\n employeeId={employeeId}\n jobId={jobId}\n compensationId={nearestPending.compensationUuid}\n isNewJob={nearestPending.isNewJob}\n isPrimaryJob={job?.primary ?? false}\n onEvent={onEvent}\n dictionary={dictionary}\n />\n )\n }\n\n return (\n <CompensationEditJobForm\n employeeId={employeeId}\n jobId={jobId}\n onEvent={onEvent}\n dictionary={dictionary}\n />\n )\n}\n"],"names":["CompensationEditForm","employeeId","jobId","onEvent","dictionary","jobsQuery","useJobsAndCompensationsGetJobs","errorHandling","composeErrorHandler","BaseLayout","job","j","nearestPending","getPendingCompensationChanges","jsx","CompensationEditPendingJobForm","CompensationEditJobForm"],"mappings":";;;;;;;;AA6CO,SAASA,EAAqB;AAAA,EACnC,YAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,YAAAC;AACF,GAA8B;AAC5B,QAAMC,IAAYC,EAA+B,EAAE,YAAAL,EAAA,GAAc,EAAE,SAAS,CAAC,CAACA,GAAY;AAE1F,MAAII,EAAU,aAAa,CAACA,EAAU,MAAM;AAC1C,UAAME,IAAgBC,EAAoB,CAACH,CAAS,CAAC;AACrD,6BAAQI,GAAA,EAAW,WAAS,IAAC,OAAOF,EAAc,QAAQ;AAAA,EAC5D;AAEA,QAAMG,IAAML,EAAU,KAAK,MAAM,KAAK,CAAAM,MAAKA,EAAE,SAAST,CAAK,GAKrDU,IAAiBC,EAA8BH,IAAM,CAACA,CAAG,IAAI,CAAA,CAAE,EAAE,CAAC;AAExE,SAAIE,IAEA,gBAAAE;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,YAAAd;AAAA,MACA,OAAAC;AAAA,MACA,gBAAgBU,EAAe;AAAA,MAC/B,UAAUA,EAAe;AAAA,MACzB,cAAcF,GAAK,WAAW;AAAA,MAC9B,SAAAP;AAAA,MACA,YAAAC;AAAA,IAAA;AAAA,EAAA,IAMJ,gBAAAU;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,YAAAf;AAAA,MACA,OAAAC;AAAA,MACA,SAAAC;AAAA,MACA,YAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"CompensationEditForm.js","sources":["../../../../../../src/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.tsx"],"sourcesContent":["import { useJobsAndCompensationsGetJobs } from '@gusto/embedded-api/react-query/jobsAndCompensationsGetJobs'\nimport { getPendingCompensationChanges } from '../../shared/getPendingCompensationChanges'\nimport { CompensationEditJobForm } from '../CompensationEditJobForm/CompensationEditJobForm'\nimport { CompensationEditPendingJobForm } from '../CompensationEditPendingJobForm/CompensationEditPendingJobForm'\nimport { BaseLayout, type CommonComponentInterface } from '@/components/Base'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { type EventType } from '@/shared/constants'\n\n/**\n * Props for {@link CompensationEditForm}.\n *\n * @public\n */\nexport interface CompensationEditFormProps extends CommonComponentInterface<'Employee.Management.Compensation'> {\n /** The associated employee identifier. */\n employeeId: string\n /**\n * The id of the job whose compensation is being edited (for example, the `jobId` from the\n * {@link CompensationCard} `employee/management/compensation/card/editRequested` payload).\n * The form inspects the job's compensations to decide whether to edit the current\n * compensation or an already-scheduled future-dated change.\n */\n jobId: string\n /** Callback invoked when the form emits an event. See the events table on {@link CompensationEditForm} for the available event types and payloads. */\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**\n * Standalone form that edits the compensation for a single job, branching automatically between editing the current compensation and an already-scheduled future-dated change.\n *\n * @remarks\n * Pair with {@link CompensationCard} to route its `employee/management/compensation/card/editRequested` event to this form. {@link Compensation} bundles the card, the three form surfaces (edit, add job, add another job), and the swap and alert wiring as a single drop-in; reach for this form directly only when that orchestration is the wrong fit (for example, when the form needs to render in a modal or drawer, or when the swap is driven by a router).\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/management/compensation/editForm/submitted` | Fired after the compensation change is saved; use it to return to the card | The updated `Compensation` entity |\n * | `employee/management/compensation/editForm/cancelled` | Fired when the user clicks Cancel; use it to return to the card | — |\n *\n * @param props - See {@link CompensationEditFormProps}.\n * @returns The rendered compensation edit form.\n * @public\n * @group Block components\n */\nexport function CompensationEditForm({\n employeeId,\n jobId,\n onEvent,\n dictionary,\n}: CompensationEditFormProps) {\n const jobsQuery = useJobsAndCompensationsGetJobs({ employeeId }, { enabled: !!employeeId })\n\n if (jobsQuery.isLoading || !jobsQuery.data) {\n const errorHandling = composeErrorHandler([jobsQuery])\n return <BaseLayout isLoading error={errorHandling.errors} />\n }\n\n const job = jobsQuery.data.jobs?.find(j => j.uuid === jobId)\n\n // The API does not guarantee ordering of job.compensations, so rely on the\n // same sorted helper that drives the card display (ascending by effectiveDate)\n // to find the nearest pending change.\n const nearestPending = getPendingCompensationChanges(job ? [job] : [])[0]\n\n if (nearestPending) {\n return (\n <CompensationEditPendingJobForm\n employeeId={employeeId}\n jobId={jobId}\n compensationId={nearestPending.compensationUuid}\n isNewJob={nearestPending.isNewJob}\n isPrimaryJob={job?.primary ?? false}\n onEvent={onEvent}\n dictionary={dictionary}\n />\n )\n }\n\n return (\n <CompensationEditJobForm\n employeeId={employeeId}\n jobId={jobId}\n onEvent={onEvent}\n dictionary={dictionary}\n />\n )\n}\n"],"names":["CompensationEditForm","employeeId","jobId","onEvent","dictionary","jobsQuery","useJobsAndCompensationsGetJobs","errorHandling","composeErrorHandler","BaseLayout","job","j","nearestPending","getPendingCompensationChanges","jsx","CompensationEditPendingJobForm","CompensationEditJobForm"],"mappings":";;;;;;;;AA6CO,SAASA,EAAqB;AAAA,EACnC,YAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,YAAAC;AACF,GAA8B;AAC5B,QAAMC,IAAYC,EAA+B,EAAE,YAAAL,EAAA,GAAc,EAAE,SAAS,CAAC,CAACA,GAAY;AAE1F,MAAII,EAAU,aAAa,CAACA,EAAU,MAAM;AAC1C,UAAME,IAAgBC,EAAoB,CAACH,CAAS,CAAC;AACrD,6BAAQI,GAAA,EAAW,WAAS,IAAC,OAAOF,EAAc,QAAQ;AAAA,EAC5D;AAEA,QAAMG,IAAML,EAAU,KAAK,MAAM,KAAK,CAAAM,MAAKA,EAAE,SAAST,CAAK,GAKrDU,IAAiBC,EAA8BH,IAAM,CAACA,CAAG,IAAI,CAAA,CAAE,EAAE,CAAC;AAExE,SAAIE,IAEA,gBAAAE;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,YAAAd;AAAA,MACA,OAAAC;AAAA,MACA,gBAAgBU,EAAe;AAAA,MAC/B,UAAUA,EAAe;AAAA,MACzB,cAAcF,GAAK,WAAW;AAAA,MAC9B,SAAAP;AAAA,MACA,YAAAC;AAAA,IAAA;AAAA,EAAA,IAMJ,gBAAAU;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,YAAAf;AAAA,MACA,OAAAC;AAAA,MACA,SAAAC;AAAA,MACA,YAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
2
  import C from "classnames";
3
3
  import { useTranslation as b } from "react-i18next";
4
- import { useJobsAndCompensationsGetJobs as M } from "@gusto/embedded-api-v-2026-02-01/react-query/jobsAndCompensationsGetJobs";
4
+ import { useJobsAndCompensationsGetJobs as M } from "@gusto/embedded-api/react-query/jobsAndCompensationsGetJobs";
5
5
  import { useJobForm as F } from "../../shared/useJobForm/useJobForm.js";
6
6
  import { useCompensationForm as N } from "../../shared/useCompensationForm/useCompensationForm.js";
7
7
  import { ManagementCompensationFormBody as L } from "../ManagementCompensationFormBody.js";
@@ -1 +1 @@
1
- {"version":3,"file":"CompensationEditJobForm.js","sources":["../../../../../../src/components/Employee/Compensation/management/CompensationEditJobForm/CompensationEditJobForm.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { useTranslation } from 'react-i18next'\nimport { useJobsAndCompensationsGetJobs } from '@gusto/embedded-api-v-2026-02-01/react-query/jobsAndCompensationsGetJobs'\nimport { useJobForm } from '../../shared/useJobForm'\nimport { useCompensationForm, type CompensationFormData } from '../../shared/useCompensationForm'\nimport { ManagementCompensationFormBody } from '../ManagementCompensationFormBody'\nimport styles from './CompensationEditJobForm.module.scss'\nimport { BaseBoundaries, BaseLayout, type CommonComponentInterface } from '@/components/Base'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { Form } from '@/components/Common/Form'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { composeSubmitHandler } from '@/partner-hook-utils/form/composeSubmitHandler'\nimport { componentEvents, type EventType } from '@/shared/constants'\n\n/**\n * Props for {@link CompensationEditJobForm}.\n *\n * @public\n */\nexport interface CompensationEditJobFormProps extends CommonComponentInterface<'Employee.Management.Compensation'> {\n /** The associated employee identifier. */\n employeeId: string\n /** The job whose compensation is being edited. */\n jobId: string\n /** Fires `EMPLOYEE_MANAGEMENT_COMPENSATION_EDIT_FORM_SUBMITTED` (with the saved\n * `Compensation`) on a successful save, and\n * `EMPLOYEE_MANAGEMENT_COMPENSATION_EDIT_FORM_CANCELLED` when the user cancels. */\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**\n * Schedules a future-dated compensation change for a job that's already in effect.\n *\n * @public\n */\nexport function CompensationEditJobForm({ dictionary, ...props }: CompensationEditJobFormProps) {\n useComponentDictionary('Employee.Management.Compensation', dictionary)\n return (\n <BaseBoundaries componentName=\"Employee.Management.Compensation\">\n <CompensationDefaultsLoader {...props} />\n </BaseBoundaries>\n )\n}\n\ntype LoaderProps = Omit<CompensationEditJobFormProps, 'dictionary'>\n\n// Fetches the current job's compensation data to pre-populate the form as\n// defaultValues before rendering Root. Uses the same non-suspense query that\n// useCompensationForm uses internally — React Query dedupes the request so no\n// extra network call is made once Root mounts.\n// defaultValues from CommonComponentInterface (unknown) is excluded from the\n// spread so it doesn't conflict with Root's typed defaultValues prop.\nfunction CompensationDefaultsLoader({\n employeeId,\n jobId,\n defaultValues: _baseDefaults,\n ...rest\n}: LoaderProps) {\n const jobsQuery = useJobsAndCompensationsGetJobs({ employeeId }, { enabled: !!employeeId })\n\n if (jobsQuery.isLoading || !jobsQuery.data) {\n const errorHandling = composeErrorHandler([jobsQuery])\n return <BaseLayout isLoading error={errorHandling.errors} />\n }\n\n const job = jobsQuery.data.jobs?.find(j => j.uuid === jobId)\n const currentComp = job?.compensations?.find(c => c.uuid === job.currentCompensationUuid)\n\n const defaultValues: Partial<CompensationFormData> | undefined = currentComp\n ? {\n // Title lives on compensation in the API — `job.title` can lag\n // behind comp-level edits on secondaries, so seed directly from\n // the comp.\n title: currentComp.title ?? undefined,\n flsaStatus: currentComp.flsaStatus ?? undefined,\n rate: Number(currentComp.rate),\n paymentUnit: currentComp.paymentUnit ?? undefined,\n adjustForMinimumWage: currentComp.adjustForMinimumWage ?? false,\n minimumWageId: currentComp.minimumWages?.[0]?.uuid ?? '',\n // effectiveDate intentionally omitted — user must choose a future date\n }\n : undefined\n\n return <Root employeeId={employeeId} jobId={jobId} defaultValues={defaultValues} {...rest} />\n}\n\ninterface RootProps extends LoaderProps {\n defaultValues?: Partial<CompensationFormData>\n}\n\nfunction Root({ employeeId, jobId, defaultValues, className, onEvent }: RootProps) {\n useI18n('Employee.Management.Compensation')\n const { t } = useTranslation('Employee.Management.Compensation')\n\n // Job form handles the non-effective-dated fields: 2% shareholder + WA WC.\n // Title is suppressed here because the compensation form owns title\n // (effective-dated alongside rate/unit/FLSA on the future-dated row).\n // Hire-date is suppressed because this surface never edits it.\n const jobForm = useJobForm({\n employeeId,\n jobId,\n withTitleField: false,\n withHireDateField: false,\n shouldFocusError: false,\n })\n\n // Compensation form runs in create mode (no compensationId) → POST\n // /v1/jobs/:jobId/compensations, creating a new future-dated compensation.\n // The form is pre-populated with the current comp's values via defaultValues\n // (fetched by CompensationDefaultsLoader) so the user can edit from the\n // current state, and picks a future effectiveDate to schedule the change.\n const compensationForm = useCompensationForm({\n employeeId,\n jobId,\n defaultValues,\n withEffectiveDateField: true,\n optionalFieldsToRequire: {\n create: ['title'],\n },\n shouldFocusError: false,\n })\n\n if (jobForm.isLoading || compensationForm.isLoading) {\n const loadingErrorHandling = composeErrorHandler([jobForm, compensationForm])\n return <BaseLayout isLoading error={loadingErrorHandling.errors} />\n }\n\n // PUT job first (immediate mutation of 2% shareholder / WC), then POST\n // the new compensation (the future-dated change). composeSubmitHandler\n // validates both forms in parallel and short-circuits before any network\n // I/O if either fails.\n const submitResult = composeSubmitHandler([jobForm, compensationForm], async () => {\n const jobResult = await jobForm.actions.onSubmit()\n if (!jobResult) return\n\n const compensationResult = await compensationForm.actions.onSubmit()\n if (!compensationResult) return\n\n onEvent(\n componentEvents.EMPLOYEE_MANAGEMENT_COMPENSATION_EDIT_FORM_SUBMITTED,\n compensationResult.data,\n )\n })\n\n const errorHandling = composeErrorHandler([submitResult])\n const isPending = jobForm.status.isPending || compensationForm.status.isPending\n\n return (\n <section className={classNames(styles.container, className)}>\n <BaseLayout error={errorHandling.errors}>\n <Form onSubmit={submitResult.handleSubmit}>\n <ManagementCompensationFormBody\n jobForm={jobForm}\n compensationForm={compensationForm}\n title={t('editCompensationTitle')}\n submitCtaLabel={t('saveCta')}\n isPending={isPending}\n onCancel={() => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_COMPENSATION_EDIT_FORM_CANCELLED)\n }}\n />\n </Form>\n </BaseLayout>\n </section>\n )\n}\n"],"names":["CompensationEditJobForm","dictionary","props","useComponentDictionary","jsx","BaseBoundaries","CompensationDefaultsLoader","employeeId","jobId","_baseDefaults","rest","jobsQuery","useJobsAndCompensationsGetJobs","errorHandling","composeErrorHandler","BaseLayout","job","j","currentComp","c","defaultValues","Root","className","onEvent","useI18n","t","useTranslation","jobForm","useJobForm","compensationForm","useCompensationForm","loadingErrorHandling","submitResult","composeSubmitHandler","compensationResult","componentEvents","isPending","classNames","styles","Form","ManagementCompensationFormBody"],"mappings":"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"}
1
+ {"version":3,"file":"CompensationEditJobForm.js","sources":["../../../../../../src/components/Employee/Compensation/management/CompensationEditJobForm/CompensationEditJobForm.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { useTranslation } from 'react-i18next'\nimport { useJobsAndCompensationsGetJobs } from '@gusto/embedded-api/react-query/jobsAndCompensationsGetJobs'\nimport { useJobForm } from '../../shared/useJobForm'\nimport { useCompensationForm, type CompensationFormData } from '../../shared/useCompensationForm'\nimport { ManagementCompensationFormBody } from '../ManagementCompensationFormBody'\nimport styles from './CompensationEditJobForm.module.scss'\nimport { BaseBoundaries, BaseLayout, type CommonComponentInterface } from '@/components/Base'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { Form } from '@/components/Common/Form'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { composeSubmitHandler } from '@/partner-hook-utils/form/composeSubmitHandler'\nimport { componentEvents, type EventType } from '@/shared/constants'\n\n/**\n * Props for {@link CompensationEditJobForm}.\n *\n * @public\n */\nexport interface CompensationEditJobFormProps extends CommonComponentInterface<'Employee.Management.Compensation'> {\n /** The associated employee identifier. */\n employeeId: string\n /** The job whose compensation is being edited. */\n jobId: string\n /** Fires `EMPLOYEE_MANAGEMENT_COMPENSATION_EDIT_FORM_SUBMITTED` (with the saved\n * `Compensation`) on a successful save, and\n * `EMPLOYEE_MANAGEMENT_COMPENSATION_EDIT_FORM_CANCELLED` when the user cancels. */\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**\n * Schedules a future-dated compensation change for a job that's already in effect.\n *\n * @public\n */\nexport function CompensationEditJobForm({ dictionary, ...props }: CompensationEditJobFormProps) {\n useComponentDictionary('Employee.Management.Compensation', dictionary)\n return (\n <BaseBoundaries componentName=\"Employee.Management.Compensation\">\n <CompensationDefaultsLoader {...props} />\n </BaseBoundaries>\n )\n}\n\ntype LoaderProps = Omit<CompensationEditJobFormProps, 'dictionary'>\n\n// Fetches the current job's compensation data to pre-populate the form as\n// defaultValues before rendering Root. Uses the same non-suspense query that\n// useCompensationForm uses internally — React Query dedupes the request so no\n// extra network call is made once Root mounts.\n// defaultValues from CommonComponentInterface (unknown) is excluded from the\n// spread so it doesn't conflict with Root's typed defaultValues prop.\nfunction CompensationDefaultsLoader({\n employeeId,\n jobId,\n defaultValues: _baseDefaults,\n ...rest\n}: LoaderProps) {\n const jobsQuery = useJobsAndCompensationsGetJobs({ employeeId }, { enabled: !!employeeId })\n\n if (jobsQuery.isLoading || !jobsQuery.data) {\n const errorHandling = composeErrorHandler([jobsQuery])\n return <BaseLayout isLoading error={errorHandling.errors} />\n }\n\n const job = jobsQuery.data.jobs?.find(j => j.uuid === jobId)\n const currentComp = job?.compensations?.find(c => c.uuid === job.currentCompensationUuid)\n\n const defaultValues: Partial<CompensationFormData> | undefined = currentComp\n ? {\n // Title lives on compensation in the API — `job.title` can lag\n // behind comp-level edits on secondaries, so seed directly from\n // the comp.\n title: currentComp.title ?? undefined,\n flsaStatus: currentComp.flsaStatus ?? undefined,\n rate: Number(currentComp.rate),\n paymentUnit: currentComp.paymentUnit ?? undefined,\n adjustForMinimumWage: currentComp.adjustForMinimumWage ?? false,\n minimumWageId: currentComp.minimumWages?.[0]?.uuid ?? '',\n // effectiveDate intentionally omitted — user must choose a future date\n }\n : undefined\n\n return <Root employeeId={employeeId} jobId={jobId} defaultValues={defaultValues} {...rest} />\n}\n\ninterface RootProps extends LoaderProps {\n defaultValues?: Partial<CompensationFormData>\n}\n\nfunction Root({ employeeId, jobId, defaultValues, className, onEvent }: RootProps) {\n useI18n('Employee.Management.Compensation')\n const { t } = useTranslation('Employee.Management.Compensation')\n\n // Job form handles the non-effective-dated fields: 2% shareholder + WA WC.\n // Title is suppressed here because the compensation form owns title\n // (effective-dated alongside rate/unit/FLSA on the future-dated row).\n // Hire-date is suppressed because this surface never edits it.\n const jobForm = useJobForm({\n employeeId,\n jobId,\n withTitleField: false,\n withHireDateField: false,\n shouldFocusError: false,\n })\n\n // Compensation form runs in create mode (no compensationId) → POST\n // /v1/jobs/:jobId/compensations, creating a new future-dated compensation.\n // The form is pre-populated with the current comp's values via defaultValues\n // (fetched by CompensationDefaultsLoader) so the user can edit from the\n // current state, and picks a future effectiveDate to schedule the change.\n const compensationForm = useCompensationForm({\n employeeId,\n jobId,\n defaultValues,\n withEffectiveDateField: true,\n optionalFieldsToRequire: {\n create: ['title'],\n },\n shouldFocusError: false,\n })\n\n if (jobForm.isLoading || compensationForm.isLoading) {\n const loadingErrorHandling = composeErrorHandler([jobForm, compensationForm])\n return <BaseLayout isLoading error={loadingErrorHandling.errors} />\n }\n\n // PUT job first (immediate mutation of 2% shareholder / WC), then POST\n // the new compensation (the future-dated change). composeSubmitHandler\n // validates both forms in parallel and short-circuits before any network\n // I/O if either fails.\n const submitResult = composeSubmitHandler([jobForm, compensationForm], async () => {\n const jobResult = await jobForm.actions.onSubmit()\n if (!jobResult) return\n\n const compensationResult = await compensationForm.actions.onSubmit()\n if (!compensationResult) return\n\n onEvent(\n componentEvents.EMPLOYEE_MANAGEMENT_COMPENSATION_EDIT_FORM_SUBMITTED,\n compensationResult.data,\n )\n })\n\n const errorHandling = composeErrorHandler([submitResult])\n const isPending = jobForm.status.isPending || compensationForm.status.isPending\n\n return (\n <section className={classNames(styles.container, className)}>\n <BaseLayout error={errorHandling.errors}>\n <Form onSubmit={submitResult.handleSubmit}>\n <ManagementCompensationFormBody\n jobForm={jobForm}\n compensationForm={compensationForm}\n title={t('editCompensationTitle')}\n submitCtaLabel={t('saveCta')}\n isPending={isPending}\n onCancel={() => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_COMPENSATION_EDIT_FORM_CANCELLED)\n }}\n />\n </Form>\n </BaseLayout>\n </section>\n )\n}\n"],"names":["CompensationEditJobForm","dictionary","props","useComponentDictionary","jsx","BaseBoundaries","CompensationDefaultsLoader","employeeId","jobId","_baseDefaults","rest","jobsQuery","useJobsAndCompensationsGetJobs","errorHandling","composeErrorHandler","BaseLayout","job","j","currentComp","c","defaultValues","Root","className","onEvent","useI18n","t","useTranslation","jobForm","useJobForm","compensationForm","useCompensationForm","loadingErrorHandling","submitResult","composeSubmitHandler","compensationResult","componentEvents","isPending","classNames","styles","Form","ManagementCompensationFormBody"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ManagementCompensationFormBody.js","sources":["../../../../../src/components/Employee/Compensation/management/ManagementCompensationFormBody.tsx"],"sourcesContent":["import { Trans, useTranslation } from 'react-i18next'\nimport type { PaymentUnit } from '@gusto/embedded-api-v-2026-02-01/models/components/compensation'\nimport type { FlsaStatusType } from '@gusto/embedded-api-v-2026-02-01/models/components/flsastatustype'\nimport type { MinimumWage } from '@gusto/embedded-api-v-2026-02-01/models/components/minimumwage'\nimport type { UseJobFormReady } from '../shared/useJobForm'\nimport type { UseCompensationFormReady } from '../shared/useCompensationForm'\nimport { ActionsLayout, Flex } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { FLSA_OVERTIME_SALARY_LIMIT } from '@/shared/constants'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\n\n/** @internal */\nexport interface ManagementCompensationFormBodyProps {\n jobForm: UseJobFormReady\n compensationForm: UseCompensationFormReady\n title: string\n submitCtaLabel: string\n isPending: boolean\n onCancel?: () => void\n}\n\n/**\n * Renders the shared field layout used by both `EditCompensation` (schedule a future comp\n * change for a present job) and `EditPendingCompensation` (update an existing future comp).\n * Field visibility is driven entirely by hook configuration — the hooks expose `undefined`\n * for fields that should not render — so this component renders the correct subset for each\n * use case without extra conditional props.\n *\n * @internal\n */\nexport function ManagementCompensationFormBody({\n jobForm,\n compensationForm,\n title,\n submitCtaLabel,\n isPending,\n onCancel,\n}: ManagementCompensationFormBodyProps) {\n const { t } = useTranslation('Employee.Management.Compensation')\n const Components = useComponentContext()\n const format = useNumberFormatter('currency')\n\n const JobFields = jobForm.form.Fields\n const CompFields = compensationForm.form.Fields\n\n return (\n <Flex flexDirection=\"column\" gap={32}>\n <Components.Heading as=\"h2\">{title}</Components.Heading>\n\n <Flex flexDirection=\"column\" gap={20}>\n <CompFields.Title\n label={t('jobTitleLabel')}\n validationMessages={{ REQUIRED: t('validations.jobTitleSentence') }}\n formHookResult={compensationForm}\n />\n\n {JobFields.HireDate && (\n <JobFields.HireDate\n label={t('hireDateLabel')}\n validationMessages={{\n REQUIRED: t('validations.hireDate'),\n }}\n formHookResult={jobForm}\n />\n )}\n\n {CompFields.FlsaStatus && (\n <>\n <CompFields.FlsaStatus\n label={t('employeeClassification')}\n placeholder={t('flsaStatusPlaceholder')}\n description={\n <Trans\n t={t}\n i18nKey=\"classificationLink\"\n components={{ ClassificationLink: <Components.Link /> }}\n />\n }\n validationMessages={{\n REQUIRED: t('validations.exemptThreshold', {\n limit: format(FLSA_OVERTIME_SALARY_LIMIT),\n }),\n }}\n getOptionLabel={(status: FlsaStatusType) => t(`flsaStatusLabels.${status}`)}\n formHookResult={compensationForm}\n />\n {(compensationForm.status.showCommissionFederalMinimumPayAlert ||\n compensationForm.status.showCommissionMinimumWageAlert ||\n compensationForm.status.showOwnerSalaryAlert ||\n compensationForm.status.willDeleteSecondaryJobs) && (\n <Flex flexDirection=\"column\" gap={0}>\n {compensationForm.status.willDeleteSecondaryJobs && (\n <Components.Alert\n label={t('validations.classificationChangeNotification')}\n status=\"warning\"\n >\n {t('validations.classificationChangeRemovesSecondaryJobs')}\n </Components.Alert>\n )}\n {compensationForm.status.showCommissionFederalMinimumPayAlert && (\n <Components.Alert\n status=\"info\"\n label={t('commissionAlerts.federalMinimumPay.label')}\n disableScrollIntoView\n >\n {t('commissionAlerts.federalMinimumPay.body')}\n </Components.Alert>\n )}\n {compensationForm.status.showCommissionMinimumWageAlert && (\n <Components.Alert\n status=\"info\"\n label={t('commissionAlerts.minimumWage.label')}\n disableScrollIntoView\n >\n <Trans\n t={t}\n i18nKey=\"commissionAlerts.minimumWage.body\"\n components={{\n minimumWageLink: (\n <Components.Link\n href=\"https://support.gusto.com/article/112472520100000/manage-tip-wages-distributed-service-charges-and-tip-credits-in-gusto-for-admins\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n />\n ),\n }}\n />\n </Components.Alert>\n )}\n {compensationForm.status.showOwnerSalaryAlert && (\n <Components.Alert\n status=\"info\"\n label={t('commissionAlerts.ownerSalary.label')}\n disableScrollIntoView\n />\n )}\n </Flex>\n )}\n </>\n )}\n\n {CompFields.Rate && (\n <CompFields.Rate\n label={t('wageLabel')}\n validationMessages={{\n REQUIRED: t('validations.rate'),\n RATE_MINIMUM: t('validations.nonZeroRate'),\n RATE_EXEMPT_THRESHOLD: t('validations.rateExemptThreshold', {\n limit: format(FLSA_OVERTIME_SALARY_LIMIT),\n }),\n }}\n formHookResult={compensationForm}\n />\n )}\n\n {CompFields.PaymentUnit && (\n <CompFields.PaymentUnit\n label={t('wageFrequencyLabel')}\n placeholder={t('paymentUnitPlaceholder')}\n description={t('paymentUnitDescription')}\n validationMessages={{ REQUIRED: t('validations.paymentUnit') }}\n getOptionLabel={(unit: PaymentUnit) => t(`paymentUnitOptions.${unit}` as const)}\n formHookResult={compensationForm}\n />\n )}\n\n {CompFields.EffectiveDate && (\n <CompFields.EffectiveDate\n label={t('effectiveDateLabel')}\n validationMessages={{\n REQUIRED: t('validations.effectiveDate'),\n EFFECTIVE_DATE_BEFORE_HIRE: t('validations.effectiveDateBeforeHire'),\n EFFECTIVE_DATE_BEFORE_MIN: t('validations.effectiveDateBeforeMin'),\n }}\n formHookResult={compensationForm}\n />\n )}\n\n {CompFields.AdjustForMinimumWage && (\n <CompFields.AdjustForMinimumWage\n label={t('adjustForMinimumWage')}\n description={t('adjustForMinimumWageDescription')}\n formHookResult={compensationForm}\n />\n )}\n\n {CompFields.MinimumWageId && (\n <CompFields.MinimumWageId\n label={t('minimumWageLabel')}\n placeholder={t('minimumWagePlaceholder')}\n description={t('minimumWageDescription')}\n validationMessages={{ REQUIRED: t('validations.minimumWage') }}\n getOptionLabel={(wage: MinimumWage) =>\n `${format(Number(wage.wage))} - ${wage.authority}: ${wage.notes ?? ''}`\n }\n formHookResult={compensationForm}\n />\n )}\n\n {JobFields.TwoPercentShareholder && (\n <JobFields.TwoPercentShareholder\n label={t('twoPercentShareholderLabel')}\n formHookResult={jobForm}\n />\n )}\n\n {JobFields.StateWcCovered && (\n <JobFields.StateWcCovered\n label={t('stateWcCoveredLabel')}\n description={\n <Trans\n t={t}\n i18nKey=\"stateWcCoveredDescription\"\n components={{\n wcLink: (\n <Components.Link\n href=\"https://www.lni.wa.gov/insurance/rates-risk-classes/risk-classes-for-workers-compensation/risk-class-lookup#/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n />\n ),\n }}\n />\n }\n getOptionLabel={(covered: boolean) =>\n covered ? t('stateWcCoveredOptions.yes') : t('stateWcCoveredOptions.no')\n }\n formHookResult={jobForm}\n />\n )}\n\n {JobFields.StateWcClassCode && (\n <JobFields.StateWcClassCode\n label={t('stateWcClassCodeLabel')}\n description={t('stateWcClassCodeDescription')}\n placeholder={t('stateWcClassCodeLabel')}\n validationMessages={{ REQUIRED: t('validations.stateWcClassCode') }}\n formHookResult={jobForm}\n />\n )}\n </Flex>\n\n <ActionsLayout>\n {onCancel && (\n <Components.Button variant=\"secondary\" onClick={onCancel} isDisabled={isPending}>\n {t('cancelCta')}\n </Components.Button>\n )}\n <Components.Button type=\"submit\" isLoading={isPending}>\n {submitCtaLabel}\n </Components.Button>\n </ActionsLayout>\n </Flex>\n )\n}\n"],"names":["ManagementCompensationFormBody","jobForm","compensationForm","title","submitCtaLabel","isPending","onCancel","t","useTranslation","Components","useComponentContext","format","useNumberFormatter","JobFields","CompFields","jsxs","Flex","jsx","Fragment","Trans","FLSA_OVERTIME_SALARY_LIMIT","status","unit","wage","covered","ActionsLayout"],"mappings":"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"}
1
+ {"version":3,"file":"ManagementCompensationFormBody.js","sources":["../../../../../src/components/Employee/Compensation/management/ManagementCompensationFormBody.tsx"],"sourcesContent":["import { Trans, useTranslation } from 'react-i18next'\nimport type { PaymentUnit } from '@gusto/embedded-api/models/components/compensation'\nimport type { FlsaStatusType } from '@gusto/embedded-api/models/components/flsastatustype'\nimport type { MinimumWage } from '@gusto/embedded-api/models/components/minimumwage'\nimport type { UseJobFormReady } from '../shared/useJobForm'\nimport type { UseCompensationFormReady } from '../shared/useCompensationForm'\nimport { ActionsLayout, Flex } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { FLSA_OVERTIME_SALARY_LIMIT } from '@/shared/constants'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\n\n/** @internal */\nexport interface ManagementCompensationFormBodyProps {\n jobForm: UseJobFormReady\n compensationForm: UseCompensationFormReady\n title: string\n submitCtaLabel: string\n isPending: boolean\n onCancel?: () => void\n}\n\n/**\n * Renders the shared field layout used by both `EditCompensation` (schedule a future comp\n * change for a present job) and `EditPendingCompensation` (update an existing future comp).\n * Field visibility is driven entirely by hook configuration — the hooks expose `undefined`\n * for fields that should not render — so this component renders the correct subset for each\n * use case without extra conditional props.\n *\n * @internal\n */\nexport function ManagementCompensationFormBody({\n jobForm,\n compensationForm,\n title,\n submitCtaLabel,\n isPending,\n onCancel,\n}: ManagementCompensationFormBodyProps) {\n const { t } = useTranslation('Employee.Management.Compensation')\n const Components = useComponentContext()\n const format = useNumberFormatter('currency')\n\n const JobFields = jobForm.form.Fields\n const CompFields = compensationForm.form.Fields\n\n return (\n <Flex flexDirection=\"column\" gap={32}>\n <Components.Heading as=\"h2\">{title}</Components.Heading>\n\n <Flex flexDirection=\"column\" gap={20}>\n <CompFields.Title\n label={t('jobTitleLabel')}\n validationMessages={{ REQUIRED: t('validations.jobTitleSentence') }}\n formHookResult={compensationForm}\n />\n\n {JobFields.HireDate && (\n <JobFields.HireDate\n label={t('hireDateLabel')}\n validationMessages={{\n REQUIRED: t('validations.hireDate'),\n }}\n formHookResult={jobForm}\n />\n )}\n\n {CompFields.FlsaStatus && (\n <>\n <CompFields.FlsaStatus\n label={t('employeeClassification')}\n placeholder={t('flsaStatusPlaceholder')}\n description={\n <Trans\n t={t}\n i18nKey=\"classificationLink\"\n components={{ ClassificationLink: <Components.Link /> }}\n />\n }\n validationMessages={{\n REQUIRED: t('validations.exemptThreshold', {\n limit: format(FLSA_OVERTIME_SALARY_LIMIT),\n }),\n }}\n getOptionLabel={(status: FlsaStatusType) => t(`flsaStatusLabels.${status}`)}\n formHookResult={compensationForm}\n />\n {(compensationForm.status.showCommissionFederalMinimumPayAlert ||\n compensationForm.status.showCommissionMinimumWageAlert ||\n compensationForm.status.showOwnerSalaryAlert ||\n compensationForm.status.willDeleteSecondaryJobs) && (\n <Flex flexDirection=\"column\" gap={0}>\n {compensationForm.status.willDeleteSecondaryJobs && (\n <Components.Alert\n label={t('validations.classificationChangeNotification')}\n status=\"warning\"\n >\n {t('validations.classificationChangeRemovesSecondaryJobs')}\n </Components.Alert>\n )}\n {compensationForm.status.showCommissionFederalMinimumPayAlert && (\n <Components.Alert\n status=\"info\"\n label={t('commissionAlerts.federalMinimumPay.label')}\n disableScrollIntoView\n >\n {t('commissionAlerts.federalMinimumPay.body')}\n </Components.Alert>\n )}\n {compensationForm.status.showCommissionMinimumWageAlert && (\n <Components.Alert\n status=\"info\"\n label={t('commissionAlerts.minimumWage.label')}\n disableScrollIntoView\n >\n <Trans\n t={t}\n i18nKey=\"commissionAlerts.minimumWage.body\"\n components={{\n minimumWageLink: (\n <Components.Link\n href=\"https://support.gusto.com/article/112472520100000/manage-tip-wages-distributed-service-charges-and-tip-credits-in-gusto-for-admins\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n />\n ),\n }}\n />\n </Components.Alert>\n )}\n {compensationForm.status.showOwnerSalaryAlert && (\n <Components.Alert\n status=\"info\"\n label={t('commissionAlerts.ownerSalary.label')}\n disableScrollIntoView\n />\n )}\n </Flex>\n )}\n </>\n )}\n\n {CompFields.Rate && (\n <CompFields.Rate\n label={t('wageLabel')}\n validationMessages={{\n REQUIRED: t('validations.rate'),\n RATE_MINIMUM: t('validations.nonZeroRate'),\n RATE_EXEMPT_THRESHOLD: t('validations.rateExemptThreshold', {\n limit: format(FLSA_OVERTIME_SALARY_LIMIT),\n }),\n }}\n formHookResult={compensationForm}\n />\n )}\n\n {CompFields.PaymentUnit && (\n <CompFields.PaymentUnit\n label={t('wageFrequencyLabel')}\n placeholder={t('paymentUnitPlaceholder')}\n description={t('paymentUnitDescription')}\n validationMessages={{ REQUIRED: t('validations.paymentUnit') }}\n getOptionLabel={(unit: PaymentUnit) => t(`paymentUnitOptions.${unit}` as const)}\n formHookResult={compensationForm}\n />\n )}\n\n {CompFields.EffectiveDate && (\n <CompFields.EffectiveDate\n label={t('effectiveDateLabel')}\n validationMessages={{\n REQUIRED: t('validations.effectiveDate'),\n EFFECTIVE_DATE_BEFORE_HIRE: t('validations.effectiveDateBeforeHire'),\n EFFECTIVE_DATE_BEFORE_MIN: t('validations.effectiveDateBeforeMin'),\n }}\n formHookResult={compensationForm}\n />\n )}\n\n {CompFields.AdjustForMinimumWage && (\n <CompFields.AdjustForMinimumWage\n label={t('adjustForMinimumWage')}\n description={t('adjustForMinimumWageDescription')}\n formHookResult={compensationForm}\n />\n )}\n\n {CompFields.MinimumWageId && (\n <CompFields.MinimumWageId\n label={t('minimumWageLabel')}\n placeholder={t('minimumWagePlaceholder')}\n description={t('minimumWageDescription')}\n validationMessages={{ REQUIRED: t('validations.minimumWage') }}\n getOptionLabel={(wage: MinimumWage) =>\n `${format(Number(wage.wage))} - ${wage.authority}: ${wage.notes ?? ''}`\n }\n formHookResult={compensationForm}\n />\n )}\n\n {JobFields.TwoPercentShareholder && (\n <JobFields.TwoPercentShareholder\n label={t('twoPercentShareholderLabel')}\n formHookResult={jobForm}\n />\n )}\n\n {JobFields.StateWcCovered && (\n <JobFields.StateWcCovered\n label={t('stateWcCoveredLabel')}\n description={\n <Trans\n t={t}\n i18nKey=\"stateWcCoveredDescription\"\n components={{\n wcLink: (\n <Components.Link\n href=\"https://www.lni.wa.gov/insurance/rates-risk-classes/risk-classes-for-workers-compensation/risk-class-lookup#/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n />\n ),\n }}\n />\n }\n getOptionLabel={(covered: boolean) =>\n covered ? t('stateWcCoveredOptions.yes') : t('stateWcCoveredOptions.no')\n }\n formHookResult={jobForm}\n />\n )}\n\n {JobFields.StateWcClassCode && (\n <JobFields.StateWcClassCode\n label={t('stateWcClassCodeLabel')}\n description={t('stateWcClassCodeDescription')}\n placeholder={t('stateWcClassCodeLabel')}\n validationMessages={{ REQUIRED: t('validations.stateWcClassCode') }}\n formHookResult={jobForm}\n />\n )}\n </Flex>\n\n <ActionsLayout>\n {onCancel && (\n <Components.Button variant=\"secondary\" onClick={onCancel} isDisabled={isPending}>\n {t('cancelCta')}\n </Components.Button>\n )}\n <Components.Button type=\"submit\" isLoading={isPending}>\n {submitCtaLabel}\n </Components.Button>\n </ActionsLayout>\n </Flex>\n )\n}\n"],"names":["ManagementCompensationFormBody","jobForm","compensationForm","title","submitCtaLabel","isPending","onCancel","t","useTranslation","Components","useComponentContext","format","useNumberFormatter","JobFields","CompFields","jsxs","Flex","jsx","Fragment","Trans","FLSA_OVERTIME_SALARY_LIMIT","status","unit","wage","covered","ActionsLayout"],"mappings":"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"}