@gusto/embedded-react-sdk 0.56.7 → 0.57.1

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 (280) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/README.md +1 -1
  3. package/dist/components/Base/Base.js +3 -2
  4. package/dist/components/Base/Base.js.map +1 -1
  5. package/dist/components/Common/DataView/DataCards/DataCards.js +44 -42
  6. package/dist/components/Common/DataView/DataCards/DataCards.js.map +1 -1
  7. package/dist/components/Common/DataView/DataCards/DataCards.module.scss.js +17 -15
  8. package/dist/components/Common/DataView/DataCards/DataCards.module.scss.js.map +1 -1
  9. package/dist/components/Common/UI/Input/Input.js +35 -32
  10. package/dist/components/Common/UI/Input/Input.js.map +1 -1
  11. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +8 -6
  12. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
  13. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +10 -8
  14. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
  15. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +6 -3
  16. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  17. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +8 -6
  18. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
  19. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +6 -3
  20. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  21. package/dist/components/Company/AssignSignatory/TitleSelect.js +11 -10
  22. package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
  23. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +8 -5
  24. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  25. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +9 -8
  26. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
  27. package/dist/components/Company/BankAccount/BankAccountForm/context.js +6 -3
  28. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  29. package/dist/components/Company/BankAccount/BankAccountList/Actions.js +12 -10
  30. package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
  31. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +13 -11
  32. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
  33. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +7 -5
  34. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
  35. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +6 -3
  36. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  37. package/dist/components/Company/FederalTaxes/Actions.js +9 -7
  38. package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
  39. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +11 -8
  40. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  41. package/dist/components/Company/Industry/Actions.js +7 -5
  42. package/dist/components/Company/Industry/Actions.js.map +1 -1
  43. package/dist/components/Company/Industry/Context.js +9 -6
  44. package/dist/components/Company/Industry/Context.js.map +1 -1
  45. package/dist/components/Company/Industry/Edit.js +12 -10
  46. package/dist/components/Company/Industry/Edit.js.map +1 -1
  47. package/dist/components/Company/Locations/LocationForm/Actions.js +10 -8
  48. package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
  49. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +6 -3
  50. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  51. package/dist/components/Company/Locations/LocationsList/Actions.js +8 -6
  52. package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
  53. package/dist/components/Company/Locations/LocationsList/List.js +13 -11
  54. package/dist/components/Company/Locations/LocationsList/List.js.map +1 -1
  55. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +6 -3
  56. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  57. package/dist/components/Company/OnboardingOverview/context.js +6 -3
  58. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  59. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.js +70 -0
  60. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.js.map +1 -0
  61. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.js +30 -32
  62. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.js.map +1 -1
  63. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.js +35 -27
  64. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.js.map +1 -1
  65. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.js +52 -31
  66. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.js.map +1 -1
  67. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js +106 -66
  68. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js.map +1 -1
  69. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/payScheduleAssignmentStateMachine.js +36 -30
  70. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/payScheduleAssignmentStateMachine.js.map +1 -1
  71. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/scheduleLabel.js +7 -0
  72. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/scheduleLabel.js.map +1 -0
  73. package/dist/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.js +83 -0
  74. package/dist/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.js.map +1 -0
  75. package/dist/components/Company/PaySchedule/management/PayScheduleOverview.js +46 -18
  76. package/dist/components/Company/PaySchedule/management/PayScheduleOverview.js.map +1 -1
  77. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +7 -5
  78. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
  79. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js +96 -69
  80. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js.map +1 -1
  81. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +6 -3
  82. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  83. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +8 -6
  84. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
  85. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +6 -3
  86. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  87. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +6 -3
  88. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
  89. package/dist/components/Company/StateTaxes/shared/requirementSetError.js +27 -10
  90. package/dist/components/Company/StateTaxes/shared/requirementSetError.js.map +1 -1
  91. package/dist/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetail.js +77 -0
  92. package/dist/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetail.js.map +1 -0
  93. package/dist/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetailPresentation.js +94 -0
  94. package/dist/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetailPresentation.js.map +1 -0
  95. package/dist/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlow.js +26 -0
  96. package/dist/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlow.js.map +1 -0
  97. package/dist/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlowComponents.js +25 -0
  98. package/dist/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlowComponents.js.map +1 -0
  99. package/dist/components/Company/TaxPayments/TaxPaymentsFlow/taxPaymentsStateMachine.js +33 -0
  100. package/dist/components/Company/TaxPayments/TaxPaymentsFlow/taxPaymentsStateMachine.js.map +1 -0
  101. package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsList.js +55 -0
  102. package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsList.js.map +1 -0
  103. package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsListPresentation.js +153 -0
  104. package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsListPresentation.js.map +1 -0
  105. package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsListPresentation.module.scss.js +14 -0
  106. package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsListPresentation.module.scss.js.map +1 -0
  107. package/dist/components/Company/TaxPayments/shared/payrollLookupWindow.js +16 -0
  108. package/dist/components/Company/TaxPayments/shared/payrollLookupWindow.js.map +1 -0
  109. package/dist/components/Company/TaxPayments/shared/taxPaymentStatus.js +34 -0
  110. package/dist/components/Company/TaxPayments/shared/taxPaymentStatus.js.map +1 -0
  111. package/dist/components/Company/TaxPayments/shared/useAllTaxPayments.js +30 -0
  112. package/dist/components/Company/TaxPayments/shared/useAllTaxPayments.js.map +1 -0
  113. package/dist/components/Company/exports/companyManagement.js +10 -4
  114. package/dist/components/Company/exports/companyManagement.js.map +1 -1
  115. package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.js +17 -16
  116. package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.js.map +1 -1
  117. package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.js +9 -8
  118. package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
  119. package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.js +8 -6
  120. package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.js.map +1 -1
  121. package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.js +27 -26
  122. package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
  123. package/dist/components/Contractor/Profile/management/ProfileEditForm.js +11 -11
  124. package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js +13 -12
  125. package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js.map +1 -1
  126. package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js +13 -12
  127. package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
  128. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js +8 -6
  129. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js.map +1 -1
  130. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +6 -3
  131. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  132. package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js +24 -23
  133. package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js.map +1 -1
  134. package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js +4 -3
  135. package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js.map +1 -1
  136. package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js +4 -3
  137. package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js.map +1 -1
  138. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js +24 -22
  139. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js.map +1 -1
  140. package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js +9 -8
  141. package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js.map +1 -1
  142. package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js +15 -14
  143. package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
  144. package/dist/components/Employee/Profile/management/ProfileEditForm.js +1 -1
  145. package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js +1 -1
  146. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/employeeDetailsSchema.js +13 -13
  147. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/employeeDetailsSchema.js.map +1 -1
  148. package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js +8 -7
  149. package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js.map +1 -1
  150. package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js +8 -7
  151. package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js.map +1 -1
  152. package/dist/components/Employee/Terminations/TerminationFlow/terminationStateMachine.js +42 -34
  153. package/dist/components/Employee/Terminations/TerminationFlow/terminationStateMachine.js.map +1 -1
  154. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js +16 -14
  155. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js.map +1 -1
  156. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js +8 -6
  157. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
  158. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js +11 -9
  159. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js.map +1 -1
  160. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.js +113 -111
  161. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.js.map +1 -1
  162. package/dist/components/Payroll/PayrollFlow/PayrollFlow.js.map +1 -1
  163. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js +60 -52
  164. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js.map +1 -1
  165. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js +27 -31
  166. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
  167. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js.map +1 -1
  168. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.js +23 -18
  169. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.js.map +1 -1
  170. package/dist/components/Payroll/PayrollList/PayrollList.js +31 -35
  171. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  172. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +204 -179
  173. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  174. package/dist/components/Payroll/PayrollOverview/PayrollOverview.module.scss.js +8 -0
  175. package/dist/components/Payroll/PayrollOverview/PayrollOverview.module.scss.js.map +1 -0
  176. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js +4 -4
  177. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js.map +1 -1
  178. package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.js +50 -41
  179. package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.js.map +1 -1
  180. package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js +5 -9
  181. package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js.map +1 -1
  182. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js +164 -154
  183. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js.map +1 -1
  184. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js +9 -5
  185. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js.map +1 -1
  186. package/dist/components/Payroll/helpers.js +91 -84
  187. package/dist/components/Payroll/helpers.js.map +1 -1
  188. package/dist/components/Payroll/usePreparedPayrollData.js +16 -13
  189. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  190. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js +4 -2
  191. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
  192. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +8 -6
  193. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
  194. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js +30 -28
  195. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
  196. package/dist/contexts/ApiProvider/ApiProvider.js +19 -18
  197. package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
  198. package/dist/contexts/ApiProvider/createSdkQueryClient.js +4 -3
  199. package/dist/contexts/ApiProvider/createSdkQueryClient.js.map +1 -1
  200. package/dist/contexts/ApiProvider/payrollOffCycleReasonEnumHook.js +36 -0
  201. package/dist/contexts/ApiProvider/payrollOffCycleReasonEnumHook.js.map +1 -0
  202. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +4 -2
  203. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  204. package/dist/contexts/ObservabilityProvider/sanitization.js +98 -47
  205. package/dist/contexts/ObservabilityProvider/sanitization.js.map +1 -1
  206. package/dist/contexts/UnstableFeaturesProvider/useUnstableFeature.js.map +1 -1
  207. package/dist/helpers/validations.js +1 -1
  208. package/dist/helpers/validations.js.map +1 -1
  209. package/dist/i18n/I18n.js +2 -0
  210. package/dist/i18n/I18n.js.map +1 -1
  211. package/dist/i18n/en/Company.AssignSignatory.json.js +1 -1
  212. package/dist/i18n/en/Company.Management.PaySchedule.json.js +24 -14
  213. package/dist/i18n/en/Company.Management.PaySchedule.json.js.map +1 -1
  214. package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js +12 -10
  215. package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js.map +1 -1
  216. package/dist/i18n/en/Company.Management.TaxPaymentDetail.json.js +26 -0
  217. package/dist/i18n/en/Company.Management.TaxPaymentDetail.json.js.map +1 -0
  218. package/dist/i18n/en/Company.Management.TaxPaymentsList.json.js +48 -0
  219. package/dist/i18n/en/Company.Management.TaxPaymentsList.json.js.map +1 -0
  220. package/dist/i18n/en/Company.StateTaxes.json.js +1 -1
  221. package/dist/i18n/en/Payroll.PayrollOverview.json.js +42 -36
  222. package/dist/i18n/en/Payroll.PayrollOverview.json.js.map +1 -1
  223. package/dist/package.json.js +1 -1
  224. package/dist/partner-hook-utils/form/fields/CheckboxHookField.js +10 -8
  225. package/dist/partner-hook-utils/form/fields/CheckboxHookField.js.map +1 -1
  226. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js +14 -12
  227. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js.map +1 -1
  228. package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js +15 -13
  229. package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js.map +1 -1
  230. package/dist/partner-hook-utils/form/fields/SelectHookField.js +12 -10
  231. package/dist/partner-hook-utils/form/fields/SelectHookField.js.map +1 -1
  232. package/dist/partner-hook-utils/form/fields/SwitchHookField.js +16 -14
  233. package/dist/partner-hook-utils/form/fields/SwitchHookField.js.map +1 -1
  234. package/dist/partner-hook-utils/form/fields/TextInputHookField.js +10 -8
  235. package/dist/partner-hook-utils/form/fields/TextInputHookField.js.map +1 -1
  236. package/dist/shared/constants.js +62 -56
  237. package/dist/shared/constants.js.map +1 -1
  238. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.d.ts +15 -0
  239. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.d.ts +3 -3
  240. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.d.ts +7 -3
  241. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.d.ts +20 -4
  242. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/scheduleLabel.d.ts +3 -0
  243. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/usePayScheduleAssignment.d.ts +10 -1
  244. package/dist/src/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.d.ts +25 -0
  245. package/dist/src/components/Company/StateTaxes/shared/requirementSetError.d.ts +18 -5
  246. package/dist/src/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetail.d.ts +31 -0
  247. package/dist/src/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetailPresentation.d.ts +19 -0
  248. package/dist/src/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlow.d.ts +42 -0
  249. package/dist/src/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlowComponents.d.ts +20 -0
  250. package/dist/src/components/Company/TaxPayments/TaxPaymentsFlow/taxPaymentsStateMachine.d.ts +10 -0
  251. package/dist/src/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsList.d.ts +28 -0
  252. package/dist/src/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsListPresentation.d.ts +33 -0
  253. package/dist/src/components/Company/TaxPayments/index.d.ts +6 -0
  254. package/dist/src/components/Company/TaxPayments/shared/payrollLookupWindow.d.ts +29 -0
  255. package/dist/src/components/Company/TaxPayments/shared/payrollLookupWindow.test.d.ts +1 -0
  256. package/dist/src/components/Company/TaxPayments/shared/taxPaymentStatus.d.ts +62 -0
  257. package/dist/src/components/Company/TaxPayments/shared/taxPaymentStatus.test.d.ts +1 -0
  258. package/dist/src/components/Company/TaxPayments/shared/useAllTaxPayments.d.ts +30 -0
  259. package/dist/src/components/Company/exports/companyManagement.d.ts +2 -0
  260. package/dist/src/components/Employee/Profile/shared/useEmployeeDetailsForm/employeeDetailsSchema.test.d.ts +1 -0
  261. package/dist/src/components/Payroll/PayrollConfiguration/__fixtures__/payrollConfigurationMocks.d.ts +6 -1
  262. package/dist/src/components/Payroll/PayrollFlow/PayrollFlow.d.ts +1 -0
  263. package/dist/src/components/Payroll/PayrollLanding/PayrollLanding.d.ts +1 -0
  264. package/dist/src/components/Payroll/PayrollOverview/PayrollOverview.d.ts +9 -3
  265. package/dist/src/components/Payroll/helpers.d.ts +14 -18
  266. package/dist/src/contexts/ApiProvider/createSdkQueryClient.d.ts +2 -0
  267. package/dist/src/contexts/ApiProvider/createSdkQueryClient.test.d.ts +1 -0
  268. package/dist/src/contexts/ApiProvider/payrollOffCycleReasonEnumHook.d.ts +14 -0
  269. package/dist/src/contexts/ApiProvider/payrollOffCycleReasonEnumHook.test.d.ts +1 -0
  270. package/dist/src/contexts/ObservabilityProvider/sanitization.d.ts +8 -17
  271. package/dist/src/contexts/ObservabilityProvider/useSanitizedObservability.test.d.ts +1 -0
  272. package/dist/src/contexts/UnstableFeaturesProvider/useUnstableFeature.d.ts +2 -0
  273. package/dist/src/helpers/validations.test.d.ts +1 -0
  274. package/dist/src/i18n/types.d.ts +192 -4
  275. package/dist/src/models/external.d.ts +9 -6
  276. package/dist/src/shared/constants.d.ts +18 -0
  277. package/dist/src/types/observability.d.ts +59 -20
  278. package/dist/style.css +1 -1
  279. package/docs/guides/endpoint-inventory.json +48 -0
  280. package/package.json +34 -31
@@ -1 +1 @@
1
- {"version":3,"file":"StateTaxesForm.js","sources":["../../../../../src/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.tsx"],"sourcesContent":["import { FormProvider, useForm } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { useTaxRequirementsUpdateStateMutation } from '@gusto/embedded-api/react-query/taxRequirementsUpdateState'\nimport { useTaxRequirementsGetSuspense } from '@gusto/embedded-api/react-query/taxRequirementsGet'\nimport { z } from 'zod'\nimport { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { getUniqueRhfKey } from '../shared/rhfKey'\nimport { isRequirementApplicable, type StateTaxesFormValues } from '../shared/applicableIf'\nimport { prepareRequirements } from '../shared/prepareRequirements'\nimport { buildRequirementSchema } from '../shared/buildRequirementSchema'\nimport { stringifyRequirementValue } from '../shared/requirementValue'\nimport { parseRequirementSetError } from '../shared/requirementSetError'\nimport { Head } from './Head'\nimport { StateTaxesFormProvider } from './context'\nimport { Form } from './Form'\nimport { Actions } from './Actions'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { useI18n } from '@/i18n/I18n'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { Form as HtmlForm } from '@/components/Common/Form'\nimport { componentEvents } from '@/shared/constants'\nimport { useBase } from '@/components/Base'\nimport { SDKInternalError } from '@/types/sdkError'\n\n/**\n * Props for {@link StateTaxesForm}.\n *\n * @public\n */\nexport interface StateTaxesFormProps extends BaseComponentInterface<'Company.StateTaxes'> {\n /** The associated company identifier. */\n companyId: string\n /** Two-letter code of the state whose tax requirements are edited. */\n state: string\n}\n\n/**\n * Standalone form for editing a company's state tax requirements for a single state.\n *\n * @remarks\n * Lower-level building block used by {@link StateTaxes} for its edit view. Use directly when\n * you need full control over navigation between the list and edit views.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `company/stateTaxes/updated` | State tax requirements were saved successfully | Response from the update state tax requirements API |\n * | `CANCEL` | The user cancelled editing | — |\n *\n * @param props - {@link StateTaxesFormProps}\n * @returns The rendered state taxes edit form.\n * @public\n *\n * @example\n * ```tsx\n * import { CompanyOnboarding } from '@gusto/embedded-react-sdk'\n *\n * function MyComponent() {\n * return (\n * <CompanyOnboarding.StateTaxesForm\n * companyId=\"a007e1ab-3595-43c2-ab4b-af7a5af2e365\"\n * state=\"CA\"\n * onEvent={() => {}}\n * />\n * )\n * }\n * ```\n */\nexport function StateTaxesForm(props: StateTaxesFormProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nfunction Root({ companyId, state, className, children }: StateTaxesFormProps) {\n useI18n('Company.StateTaxes')\n const { onEvent, baseSubmitHandler } = useBase()\n const { t } = useTranslation('Company.StateTaxes', { keyPrefix: 'form' })\n const { data } = useTaxRequirementsGetSuspense({ companyUuid: companyId, state })\n const stateTaxRequirements = data.taxRequirementsState!\n\n const { mutateAsync: updateStateTax, isPending: isPendingUpdate } =\n useTaxRequirementsUpdateStateMutation()\n\n // Schema and default value generation\n const { dynamicSchema, defaultValues } = useMemo(() => {\n const schemaShape: Record<string, z.ZodObject> = {}\n const values: Partial<Record<string, Record<string, string | boolean | number | undefined>>> =\n {}\n const requirementSets = stateTaxRequirements.requirementSets ?? []\n\n //Looping through each requirement set. A single key (e.g. \"taxrates\") can appear more than\n //once when a future-dated set is already scheduled alongside the current one, so each set\n //needs its own disambiguated path — otherwise two visually distinct sections would silently\n //share one underlying form field.\n requirementSets.forEach((requirementSet, index) => {\n if (!requirementSet.key) return\n\n const requirementSetPath = getUniqueRhfKey(requirementSet, index, requirementSets)\n const preparedRequirements = prepareRequirements(requirementSet.requirements ?? [])\n const { shape, defaults } = buildRequirementSchema(preparedRequirements, t)\n\n if (Object.keys(shape).length > 0) {\n schemaShape[requirementSetPath] = z.object(shape)\n values[requirementSetPath] = defaults\n }\n })\n\n const finalSchema = z.object(schemaShape)\n\n // Return both the schema and the default values\n return {\n dynamicSchema: finalSchema,\n defaultValues: values as z.infer<typeof finalSchema>,\n }\n }, [stateTaxRequirements, t])\n\n // Infer the type from the schema\n type InferredFormInputs = z.infer<typeof dynamicSchema>\n\n const { control, ...methods } = useForm({\n resolver: zodResolver(dynamicSchema),\n defaultValues,\n })\n\n const onSubmit = async (formData: InferredFormInputs) => {\n await baseSubmitHandler(formData, async payload => {\n const formValues = payload as StateTaxesFormValues\n const allRequirementSets = stateTaxRequirements.requirementSets ?? []\n const requirementSets = allRequirementSets\n .map((requirementSet, setIndex) => ({ requirementSet, setIndex }))\n .filter(({ requirementSet, setIndex }) => {\n if (!requirementSet.key) return false\n const requirementSetPath = getUniqueRhfKey(requirementSet, setIndex, allRequirementSets)\n return Boolean(payload[requirementSetPath])\n })\n .map(({ requirementSet, setIndex }) => {\n const requirementSetKey = requirementSet.key as string\n const requirementSetPath = getUniqueRhfKey(requirementSet, setIndex, allRequirementSets)\n const payloadSet = payload[requirementSetPath] as Record<string, unknown>\n const preparedRequirements = prepareRequirements(requirementSet.requirements ?? [])\n\n const applicableRequirements = preparedRequirements\n .map((req, index) => ({ req, index }))\n .filter(({ req }) => isRequirementApplicable(req, requirementSetPath, formValues))\n\n return {\n state,\n key: requirementSetKey,\n effectiveFrom: requirementSet.effectiveFrom,\n requirements: applicableRequirements.map(({ req, index }) => ({\n key: req.key as string,\n value: stringifyRequirementValue(\n payloadSet[getUniqueRhfKey(req, index, preparedRequirements)],\n ),\n })),\n }\n })\n try {\n await updateStateTax({\n request: {\n companyUuid: companyId,\n requestBody: { requirementSets },\n state,\n },\n })\n } catch (error) {\n const requirementSetError = parseRequirementSetError(error)\n if (!requirementSetError) throw error\n\n const section =\n stateTaxRequirements.requirementSets?.find(\n requirementSet => requirementSet.key === requirementSetError.key,\n )?.label ?? requirementSetError.key\n throw new SDKInternalError(\n t('errors.incompleteRequirementSet', {\n section,\n state: requirementSetError.state ?? state,\n }),\n 'api_error',\n )\n }\n onEvent(componentEvents.COMPANY_STATE_TAX_UPDATED)\n })\n }\n\n const handleCancel = () => {\n onEvent(componentEvents.CANCEL)\n }\n\n return (\n <section className={className}>\n <FormProvider {...methods} control={control}>\n <HtmlForm onSubmit={methods.handleSubmit(onSubmit)}>\n <StateTaxesFormProvider\n value={{ stateTaxRequirements, isPending: isPendingUpdate, state, handleCancel }}\n >\n <Flex flexDirection=\"column\" gap={32}>\n {children ? (\n children\n ) : (\n <>\n <Head />\n <Form />\n <Actions />\n </>\n )}\n </Flex>\n </StateTaxesFormProvider>\n </HtmlForm>\n </FormProvider>\n </section>\n )\n}\n"],"names":["StateTaxesForm","props","jsx","BaseComponent","Root","companyId","state","className","children","useI18n","onEvent","baseSubmitHandler","useBase","t","useTranslation","data","useTaxRequirementsGetSuspense","stateTaxRequirements","updateStateTax","isPendingUpdate","useTaxRequirementsUpdateStateMutation","dynamicSchema","defaultValues","useMemo","schemaShape","values","requirementSets","requirementSet","index","requirementSetPath","getUniqueRhfKey","preparedRequirements","prepareRequirements","shape","defaults","buildRequirementSchema","z","control","methods","useForm","zodResolver","onSubmit","formData","payload","formValues","allRequirementSets","setIndex","requirementSetKey","payloadSet","applicableRequirements","req","isRequirementApplicable","stringifyRequirementValue","error","requirementSetError","parseRequirementSetError","section","SDKInternalError","componentEvents","handleCancel","FormProvider","HtmlForm","StateTaxesFormProvider","Flex","jsxs","Fragment","Head","Form","Actions"],"mappings":"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"}
1
+ {"version":3,"file":"StateTaxesForm.js","sources":["../../../../../src/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.tsx"],"sourcesContent":["import { FormProvider, useForm } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { useTaxRequirementsUpdateStateMutation } from '@gusto/embedded-api/react-query/taxRequirementsUpdateState'\nimport { useTaxRequirementsGetSuspense } from '@gusto/embedded-api/react-query/taxRequirementsGet'\nimport { z } from 'zod'\nimport { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { getUniqueRhfKey } from '../shared/rhfKey'\nimport { isRequirementApplicable, type StateTaxesFormValues } from '../shared/applicableIf'\nimport { prepareRequirements } from '../shared/prepareRequirements'\nimport { buildRequirementSchema } from '../shared/buildRequirementSchema'\nimport { stringifyRequirementValue } from '../shared/requirementValue'\nimport { parseRequirementSetErrors, type RequirementSetError } from '../shared/requirementSetError'\nimport { Head } from './Head'\nimport { StateTaxesFormProvider } from './context'\nimport { Form } from './Form'\nimport { Actions } from './Actions'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { useI18n } from '@/i18n/I18n'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { Form as HtmlForm } from '@/components/Common/Form'\nimport { componentEvents } from '@/shared/constants'\nimport { useBase } from '@/components/Base'\nimport { SDKInternalError } from '@/types/sdkError'\n\n/**\n * Props for {@link StateTaxesForm}.\n *\n * @public\n */\nexport interface StateTaxesFormProps extends BaseComponentInterface<'Company.StateTaxes'> {\n /** The associated company identifier. */\n companyId: string\n /** Two-letter code of the state whose tax requirements are edited. */\n state: string\n}\n\n/**\n * Standalone form for editing a company's state tax requirements for a single state.\n *\n * @remarks\n * Lower-level building block used by {@link StateTaxes} for its edit view. Use directly when\n * you need full control over navigation between the list and edit views.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `company/stateTaxes/updated` | State tax requirements were saved successfully | Response from the update state tax requirements API |\n * | `CANCEL` | The user cancelled editing | — |\n *\n * @param props - {@link StateTaxesFormProps}\n * @returns The rendered state taxes edit form.\n * @public\n *\n * @example\n * ```tsx\n * import { CompanyOnboarding } from '@gusto/embedded-react-sdk'\n *\n * function MyComponent() {\n * return (\n * <CompanyOnboarding.StateTaxesForm\n * companyId=\"a007e1ab-3595-43c2-ab4b-af7a5af2e365\"\n * state=\"CA\"\n * onEvent={() => {}}\n * />\n * )\n * }\n * ```\n */\nexport function StateTaxesForm(props: StateTaxesFormProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nfunction Root({ companyId, state, className, children }: StateTaxesFormProps) {\n useI18n('Company.StateTaxes')\n const { onEvent, baseSubmitHandler } = useBase()\n const { t } = useTranslation('Company.StateTaxes', { keyPrefix: 'form' })\n const { data } = useTaxRequirementsGetSuspense({ companyUuid: companyId, state })\n const stateTaxRequirements = data.taxRequirementsState!\n\n const { mutateAsync: updateStateTax, isPending: isPendingUpdate } =\n useTaxRequirementsUpdateStateMutation()\n\n // Schema and default value generation\n const { dynamicSchema, defaultValues } = useMemo(() => {\n const schemaShape: Record<string, z.ZodObject> = {}\n const values: Partial<Record<string, Record<string, string | boolean | number | undefined>>> =\n {}\n const requirementSets = stateTaxRequirements.requirementSets ?? []\n\n //Looping through each requirement set. A single key (e.g. \"taxrates\") can appear more than\n //once when a future-dated set is already scheduled alongside the current one, so each set\n //needs its own disambiguated path — otherwise two visually distinct sections would silently\n //share one underlying form field.\n requirementSets.forEach((requirementSet, index) => {\n if (!requirementSet.key) return\n\n const requirementSetPath = getUniqueRhfKey(requirementSet, index, requirementSets)\n const preparedRequirements = prepareRequirements(requirementSet.requirements ?? [])\n const { shape, defaults } = buildRequirementSchema(preparedRequirements, t)\n\n if (Object.keys(shape).length > 0) {\n schemaShape[requirementSetPath] = z.object(shape)\n values[requirementSetPath] = defaults\n }\n })\n\n const finalSchema = z.object(schemaShape)\n\n // Return both the schema and the default values\n return {\n dynamicSchema: finalSchema,\n defaultValues: values as z.infer<typeof finalSchema>,\n }\n }, [stateTaxRequirements, t])\n\n // Infer the type from the schema\n type InferredFormInputs = z.infer<typeof dynamicSchema>\n\n const { control, ...methods } = useForm({\n resolver: zodResolver(dynamicSchema),\n defaultValues,\n })\n\n const applyServerValueErrors = ({\n key,\n effectiveFrom,\n valueErrors,\n }: RequirementSetError): boolean => {\n const allRequirementSets = stateTaxRequirements.requirementSets ?? []\n const matchingSets = allRequirementSets\n .map((requirementSet, setIndex) => ({ requirementSet, setIndex }))\n .filter(({ requirementSet }) => requirementSet.key === key)\n const target =\n matchingSets.find(\n ({ requirementSet }) => (requirementSet.effectiveFrom ?? undefined) === effectiveFrom,\n ) ?? matchingSets[0]\n if (!target) return false\n\n const requirementSetPath = getUniqueRhfKey(\n target.requirementSet,\n target.setIndex,\n allRequirementSets,\n )\n const preparedRequirements = prepareRequirements(target.requirementSet.requirements ?? [])\n\n let applied = false\n valueErrors.forEach(({ requirementKey, message }) => {\n const requirementIndex = preparedRequirements.findIndex(req => req.key === requirementKey)\n if (requirementIndex === -1) return\n const fieldKey = getUniqueRhfKey(\n preparedRequirements[requirementIndex]!,\n requirementIndex,\n preparedRequirements,\n )\n methods.setError(`${requirementSetPath}.${fieldKey}`, { type: 'server', message })\n applied = true\n })\n return applied\n }\n\n const onSubmit = async (formData: InferredFormInputs) => {\n await baseSubmitHandler(formData, async payload => {\n const formValues = payload as StateTaxesFormValues\n const allRequirementSets = stateTaxRequirements.requirementSets ?? []\n const requirementSets = allRequirementSets\n .map((requirementSet, setIndex) => ({ requirementSet, setIndex }))\n .filter(({ requirementSet, setIndex }) => {\n if (!requirementSet.key) return false\n const requirementSetPath = getUniqueRhfKey(requirementSet, setIndex, allRequirementSets)\n return Boolean(payload[requirementSetPath])\n })\n .map(({ requirementSet, setIndex }) => {\n const requirementSetKey = requirementSet.key as string\n const requirementSetPath = getUniqueRhfKey(requirementSet, setIndex, allRequirementSets)\n const payloadSet = payload[requirementSetPath] as Record<string, unknown>\n const preparedRequirements = prepareRequirements(requirementSet.requirements ?? [])\n\n const applicableRequirements = preparedRequirements\n .map((req, index) => ({ req, index }))\n .filter(({ req }) => isRequirementApplicable(req, requirementSetPath, formValues))\n\n return {\n state,\n key: requirementSetKey,\n effectiveFrom: requirementSet.effectiveFrom,\n requirements: applicableRequirements.map(({ req, index }) => ({\n key: req.key as string,\n value: stringifyRequirementValue(\n payloadSet[getUniqueRhfKey(req, index, preparedRequirements)],\n ),\n })),\n }\n })\n try {\n await updateStateTax({\n request: {\n companyUuid: companyId,\n requestBody: { requirementSets },\n state,\n },\n })\n } catch (error) {\n const requirementSetErrors = parseRequirementSetErrors(error)\n if (!requirementSetErrors) throw error\n\n const invalidSetErrors = requirementSetErrors.filter(applyServerValueErrors)\n const reportedSetErrors =\n invalidSetErrors.length > 0 ? invalidSetErrors : requirementSetErrors\n const sections = reportedSetErrors\n .map(\n ({ key }) =>\n stateTaxRequirements.requirementSets?.find(\n requirementSet => requirementSet.key === key,\n )?.label ?? key,\n )\n .join(', ')\n throw new SDKInternalError(\n t(\n invalidSetErrors.length > 0\n ? 'errors.invalidRequirementSet'\n : 'errors.incompleteRequirementSet',\n { section: sections, state: reportedSetErrors[0]!.state ?? state },\n ),\n 'api_error',\n )\n }\n onEvent(componentEvents.COMPANY_STATE_TAX_UPDATED)\n })\n }\n\n const handleCancel = () => {\n onEvent(componentEvents.CANCEL)\n }\n\n return (\n <section className={className}>\n <FormProvider {...methods} control={control}>\n <HtmlForm onSubmit={methods.handleSubmit(onSubmit)}>\n <StateTaxesFormProvider\n value={{ stateTaxRequirements, isPending: isPendingUpdate, state, handleCancel }}\n >\n <Flex flexDirection=\"column\" gap={32}>\n {children ? (\n children\n ) : (\n <>\n <Head />\n <Form />\n <Actions />\n </>\n )}\n </Flex>\n </StateTaxesFormProvider>\n </HtmlForm>\n </FormProvider>\n </section>\n )\n}\n"],"names":["StateTaxesForm","props","jsx","BaseComponent","Root","companyId","state","className","children","useI18n","onEvent","baseSubmitHandler","useBase","t","useTranslation","data","useTaxRequirementsGetSuspense","stateTaxRequirements","updateStateTax","isPendingUpdate","useTaxRequirementsUpdateStateMutation","dynamicSchema","defaultValues","useMemo","schemaShape","values","requirementSets","requirementSet","index","requirementSetPath","getUniqueRhfKey","preparedRequirements","prepareRequirements","shape","defaults","buildRequirementSchema","z","control","methods","useForm","zodResolver","applyServerValueErrors","key","effectiveFrom","valueErrors","allRequirementSets","matchingSets","setIndex","target","applied","requirementKey","message","requirementIndex","req","fieldKey","onSubmit","formData","payload","formValues","requirementSetKey","payloadSet","applicableRequirements","isRequirementApplicable","stringifyRequirementValue","error","requirementSetErrors","parseRequirementSetErrors","invalidSetErrors","reportedSetErrors","sections","SDKInternalError","componentEvents","handleCancel","FormProvider","HtmlForm","StateTaxesFormProvider","Flex","jsxs","Fragment","Head","Form","Actions"],"mappings":"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"}
@@ -9,13 +9,16 @@ import "@gusto/embedded-api/models/errors/gustoembeddederror";
9
9
  import "@gusto/embedded-api/models/errors/sdkvalidationerror";
10
10
  import "@gusto/embedded-api/models/errors/unprocessableentityerror";
11
11
  import "@gusto/embedded-api/models/errors/httpclienterrors";
12
+ import "dompurify";
13
+ import "../../../../contexts/LocaleProvider/useLocale.js";
12
14
  import "../../../../shared/constants.js";
15
+ import "classnames";
13
16
  import "../../../../contexts/ComponentAdapter/useComponentContext.js";
14
17
  import "../../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
15
18
  import { createCompoundContext as t } from "../../../Base/createCompoundContext.js";
16
- const [d, u] = t("StateTaxesFormContext");
19
+ const [v, P] = t("StateTaxesFormContext");
17
20
  export {
18
- u as StateTaxesFormProvider,
19
- d as useStateTaxesForm
21
+ P as StateTaxesFormProvider,
22
+ v as useStateTaxesForm
20
23
  };
21
24
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sources":["../../../../../src/components/Company/StateTaxes/StateTaxesForm/context.ts"],"sourcesContent":["import type { TaxRequirementsState } from '@gusto/embedded-api/models/components/taxrequirementsstate'\nimport { createCompoundContext } from '@/components/Base'\n\ninterface StateTaxFormContext {\n isPending: boolean\n state: string\n stateTaxRequirements: TaxRequirementsState\n handleCancel: () => void\n}\n\nconst [useStateTaxesForm, StateTaxesFormProvider] =\n createCompoundContext<StateTaxFormContext>('StateTaxesFormContext')\n\nexport { useStateTaxesForm, StateTaxesFormProvider }\n"],"names":["useStateTaxesForm","StateTaxesFormProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;AAUA,MAAM,CAACA,GAAmBC,CAAsB,IAC9CC,EAA2C,uBAAuB;"}
1
+ {"version":3,"file":"context.js","sources":["../../../../../src/components/Company/StateTaxes/StateTaxesForm/context.ts"],"sourcesContent":["import type { TaxRequirementsState } from '@gusto/embedded-api/models/components/taxrequirementsstate'\nimport { createCompoundContext } from '@/components/Base'\n\ninterface StateTaxFormContext {\n isPending: boolean\n state: string\n stateTaxRequirements: TaxRequirementsState\n handleCancel: () => void\n}\n\nconst [useStateTaxesForm, StateTaxesFormProvider] =\n createCompoundContext<StateTaxFormContext>('StateTaxesFormContext')\n\nexport { useStateTaxesForm, StateTaxesFormProvider }\n"],"names":["useStateTaxesForm","StateTaxesFormProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;;;;AAUA,MAAM,CAACA,GAAmBC,CAAsB,IAC9CC,EAA2C,uBAAuB;"}
@@ -1,13 +1,15 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
2
  import { useTranslation as i } from "react-i18next";
3
3
  import { useStateTaxesList as e } from "./context.js";
4
- import { ActionsLayout as s } from "../../../Common/ActionsLayout/ActionsLayout.js";
5
- import { useComponentContext as m } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
6
- function f() {
7
- const { t: o } = i("Company.StateTaxes"), n = m(), { handleContinue: r } = e();
8
- return /* @__PURE__ */ t(s, { children: /* @__PURE__ */ t(n.Button, { variant: "primary", onClick: r, children: o("list.continueCta") }) });
4
+ import "classnames";
5
+ import "../../../../shared/constants.js";
6
+ import { ActionsLayout as m } from "../../../Common/ActionsLayout/ActionsLayout.js";
7
+ import { useComponentContext as s } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
8
+ function x() {
9
+ const { t: o } = i("Company.StateTaxes"), n = s(), { handleContinue: r } = e();
10
+ return /* @__PURE__ */ t(m, { children: /* @__PURE__ */ t(n.Button, { variant: "primary", onClick: r, children: o("list.continueCta") }) });
9
11
  }
10
12
  export {
11
- f as Actions
13
+ x as Actions
12
14
  };
13
15
  //# sourceMappingURL=Actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.js","sources":["../../../../../src/components/Company/StateTaxes/StateTaxesList/Actions.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useStateTaxesList } from './context'\nimport { ActionsLayout } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/** @internal */\nexport function Actions() {\n const { t } = useTranslation('Company.StateTaxes')\n const Components = useComponentContext()\n const { handleContinue } = useStateTaxesList()\n return (\n <ActionsLayout>\n <Components.Button variant=\"primary\" onClick={handleContinue}>\n {t('list.continueCta')}\n </Components.Button>\n </ActionsLayout>\n )\n}\n"],"names":["Actions","t","useTranslation","Components","useComponentContext","handleContinue","useStateTaxesList","jsx","ActionsLayout"],"mappings":";;;;;AAMO,SAASA,IAAU;AACxB,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,oBAAoB,GAC3CC,IAAaC,EAAA,GACb,EAAE,gBAAAC,EAAA,IAAmBC,EAAA;AAC3B,SACE,gBAAAC,EAACC,GAAA,EACC,UAAA,gBAAAD,EAACJ,EAAW,QAAX,EAAkB,SAAQ,WAAU,SAASE,GAC3C,UAAAJ,EAAE,kBAAkB,GACvB,GACF;AAEJ;"}
1
+ {"version":3,"file":"Actions.js","sources":["../../../../../src/components/Company/StateTaxes/StateTaxesList/Actions.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useStateTaxesList } from './context'\nimport { ActionsLayout } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/** @internal */\nexport function Actions() {\n const { t } = useTranslation('Company.StateTaxes')\n const Components = useComponentContext()\n const { handleContinue } = useStateTaxesList()\n return (\n <ActionsLayout>\n <Components.Button variant=\"primary\" onClick={handleContinue}>\n {t('list.continueCta')}\n </Components.Button>\n </ActionsLayout>\n )\n}\n"],"names":["Actions","t","useTranslation","Components","useComponentContext","handleContinue","useStateTaxesList","jsx","ActionsLayout"],"mappings":";;;;;;;AAMO,SAASA,IAAU;AACxB,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,oBAAoB,GAC3CC,IAAaC,EAAA,GACb,EAAE,gBAAAC,EAAA,IAAmBC,EAAA;AAC3B,SACE,gBAAAC,EAACC,GAAA,EACC,UAAA,gBAAAD,EAACJ,EAAW,QAAX,EAAkB,SAAQ,WAAU,SAASE,GAC3C,UAAAJ,EAAE,kBAAkB,GACvB,GACF;AAEJ;"}
@@ -9,13 +9,16 @@ import "@gusto/embedded-api/models/errors/gustoembeddederror";
9
9
  import "@gusto/embedded-api/models/errors/sdkvalidationerror";
10
10
  import "@gusto/embedded-api/models/errors/unprocessableentityerror";
11
11
  import "@gusto/embedded-api/models/errors/httpclienterrors";
12
+ import "dompurify";
13
+ import "../../../../contexts/LocaleProvider/useLocale.js";
12
14
  import "../../../../shared/constants.js";
15
+ import "classnames";
13
16
  import "../../../../contexts/ComponentAdapter/useComponentContext.js";
14
17
  import "../../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
15
18
  import { createCompoundContext as t } from "../../../Base/createCompoundContext.js";
16
- const [d, u] = t("StateTaxesListContext");
19
+ const [v, P] = t("StateTaxesListContext");
17
20
  export {
18
- u as StateTaxesListProvider,
19
- d as useStateTaxesList
21
+ P as StateTaxesListProvider,
22
+ v as useStateTaxesList
20
23
  };
21
24
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sources":["../../../../../src/components/Company/StateTaxes/StateTaxesList/context.ts"],"sourcesContent":["import type { TaxRequirementStatesList } from '@gusto/embedded-api/models/components/taxrequirementstateslist'\nimport { createCompoundContext } from '@/components/Base'\n\ntype StateTaxesListContextType = {\n isPending: boolean\n stateTaxRequirements: TaxRequirementStatesList[]\n handleContinue: () => void\n handleChange: (state: string) => void\n handleManageRates: (state: string) => void\n}\n\nconst [useStateTaxesList, StateTaxesListProvider] =\n createCompoundContext<StateTaxesListContextType>('StateTaxesListContext')\n\nexport { useStateTaxesList, StateTaxesListProvider }\n"],"names":["useStateTaxesList","StateTaxesListProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;AAWA,MAAM,CAACA,GAAmBC,CAAsB,IAC9CC,EAAiD,uBAAuB;"}
1
+ {"version":3,"file":"context.js","sources":["../../../../../src/components/Company/StateTaxes/StateTaxesList/context.ts"],"sourcesContent":["import type { TaxRequirementStatesList } from '@gusto/embedded-api/models/components/taxrequirementstateslist'\nimport { createCompoundContext } from '@/components/Base'\n\ntype StateTaxesListContextType = {\n isPending: boolean\n stateTaxRequirements: TaxRequirementStatesList[]\n handleContinue: () => void\n handleChange: (state: string) => void\n handleManageRates: (state: string) => void\n}\n\nconst [useStateTaxesList, StateTaxesListProvider] =\n createCompoundContext<StateTaxesListContextType>('StateTaxesListContext')\n\nexport { useStateTaxesList, StateTaxesListProvider }\n"],"names":["useStateTaxesList","StateTaxesListProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;;;;AAWA,MAAM,CAACA,GAAmBC,CAAsB,IAC9CC,EAAiD,uBAAuB;"}
@@ -9,13 +9,16 @@ import "@gusto/embedded-api/models/errors/gustoembeddederror";
9
9
  import "@gusto/embedded-api/models/errors/sdkvalidationerror";
10
10
  import "@gusto/embedded-api/models/errors/unprocessableentityerror";
11
11
  import "@gusto/embedded-api/models/errors/httpclienterrors";
12
+ import "dompurify";
13
+ import "../../../../contexts/LocaleProvider/useLocale.js";
12
14
  import "../../../../shared/constants.js";
15
+ import "classnames";
13
16
  import "../../../../contexts/ComponentAdapter/useComponentContext.js";
14
17
  import "../../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
15
18
  import { createCompoundContext as t } from "../../../Base/createCompoundContext.js";
16
- const [d, s] = t("TaxRateManagementContext");
19
+ const [f, v] = t("TaxRateManagementContext");
17
20
  export {
18
- s as TaxRateManagementProvider,
19
- d as useTaxRateManagement
21
+ v as TaxRateManagementProvider,
22
+ f as useTaxRateManagement
20
23
  };
21
24
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sources":["../../../../../src/components/Company/StateTaxes/TaxRateManagement/context.ts"],"sourcesContent":["import type { TaxRequirementSet } from '@gusto/embedded-api/models/components/taxrequirementset'\nimport { createCompoundContext } from '@/components/Base'\n\n/**\n * A state's effective-dated requirement sets for a single key, grouped for history display,\n * plus any future-dated candidate sets available to schedule against.\n *\n * @internal\n */\nexport interface TaxRateKeyGroup {\n key: string\n label?: string\n sets: TaxRequirementSet[]\n candidateSets: TaxRequirementSet[]\n}\n\ninterface TaxRateManagementContextType {\n state: string\n groups: TaxRateKeyGroup[]\n isPendingUpdate: boolean\n handleCancel: () => void\n handleAddRate: (\n key: string,\n effectiveFrom: string,\n requirements: { key: string; value: string }[],\n ) => Promise<boolean>\n}\n\nconst [useTaxRateManagement, TaxRateManagementProvider] =\n createCompoundContext<TaxRateManagementContextType>('TaxRateManagementContext')\n\nexport { useTaxRateManagement, TaxRateManagementProvider }\n"],"names":["useTaxRateManagement","TaxRateManagementProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;AA4BA,MAAM,CAACA,GAAsBC,CAAyB,IACpDC,EAAoD,0BAA0B;"}
1
+ {"version":3,"file":"context.js","sources":["../../../../../src/components/Company/StateTaxes/TaxRateManagement/context.ts"],"sourcesContent":["import type { TaxRequirementSet } from '@gusto/embedded-api/models/components/taxrequirementset'\nimport { createCompoundContext } from '@/components/Base'\n\n/**\n * A state's effective-dated requirement sets for a single key, grouped for history display,\n * plus any future-dated candidate sets available to schedule against.\n *\n * @internal\n */\nexport interface TaxRateKeyGroup {\n key: string\n label?: string\n sets: TaxRequirementSet[]\n candidateSets: TaxRequirementSet[]\n}\n\ninterface TaxRateManagementContextType {\n state: string\n groups: TaxRateKeyGroup[]\n isPendingUpdate: boolean\n handleCancel: () => void\n handleAddRate: (\n key: string,\n effectiveFrom: string,\n requirements: { key: string; value: string }[],\n ) => Promise<boolean>\n}\n\nconst [useTaxRateManagement, TaxRateManagementProvider] =\n createCompoundContext<TaxRateManagementContextType>('TaxRateManagementContext')\n\nexport { useTaxRateManagement, TaxRateManagementProvider }\n"],"names":["useTaxRateManagement","TaxRateManagementProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;;;;AA4BA,MAAM,CAACA,GAAsBC,CAAyB,IACpDC,EAAoD,0BAA0B;"}
@@ -1,15 +1,32 @@
1
- import { UnprocessableEntityError as n } from "@gusto/embedded-api/models/errors/unprocessableentityerror";
2
- function o(e) {
3
- return typeof e == "object" && e !== null && "key" in e && typeof e.key == "string";
1
+ import { UnprocessableEntityError as a } from "@gusto/embedded-api/models/errors/unprocessableentityerror";
2
+ function s(t) {
3
+ return typeof t == "object" && t !== null && "key" in t && typeof t.key == "string";
4
4
  }
5
- function i(e) {
6
- if (!(e instanceof n)) return null;
7
- const t = e.errors.find(
8
- (r) => r.errorKey === "requirement_sets" && r.category === "nested_errors"
9
- );
10
- return !t || !o(t.metadata) ? null : { key: t.metadata.key, state: t.metadata.state };
5
+ function o(t) {
6
+ return (t.errors ?? []).flatMap((r) => {
7
+ if (r.errorKey !== "requirements" || !s(r.metadata))
8
+ return [];
9
+ const { key: e } = r.metadata;
10
+ return (r.errors ?? []).filter((n) => typeof n.message == "string").map((n) => ({ requirementKey: e, message: n.message }));
11
+ });
12
+ }
13
+ function i(t) {
14
+ if (!(t instanceof a)) return null;
15
+ const r = t.errors.filter((e) => e.errorKey === "requirement_sets" && e.category === "nested_errors").flatMap((e) => {
16
+ if (!s(e.metadata)) return [];
17
+ const { effective_from: n } = e.metadata;
18
+ return [
19
+ {
20
+ key: e.metadata.key,
21
+ state: e.metadata.state,
22
+ effectiveFrom: typeof n == "string" ? n : void 0,
23
+ valueErrors: o(e)
24
+ }
25
+ ];
26
+ });
27
+ return r.length > 0 ? r : null;
11
28
  }
12
29
  export {
13
- i as parseRequirementSetError
30
+ i as parseRequirementSetErrors
14
31
  };
15
32
  //# sourceMappingURL=requirementSetError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"requirementSetError.js","sources":["../../../../../src/components/Company/StateTaxes/shared/requirementSetError.ts"],"sourcesContent":["import { UnprocessableEntityError } from '@gusto/embedded-api/models/errors/unprocessableentityerror'\n\nfunction hasMetadataKey(metadata: unknown): metadata is { key: string; state?: string } {\n return (\n typeof metadata === 'object' &&\n metadata !== null &&\n 'key' in metadata &&\n typeof (metadata as { key: unknown }).key === 'string'\n )\n}\n\n/**\n * `{ key, state }` identifying which requirement set an incomplete-requirement-set error targets.\n *\n * @internal\n */\nexport interface RequirementSetError {\n key: string\n state?: string\n}\n\n/**\n * Extracts `{ key, state }` from a tax-requirements-update error shaped as\n * `{ errorKey: \"requirement_sets\", category: \"nested_errors\", metadata: { key, state } }` —\n * the update endpoint's response when a requirement set (e.g. \"registrations\") was submitted\n * incomplete. Returns `null` for any other error shape.\n *\n * @internal\n */\nexport function parseRequirementSetError(error: unknown): RequirementSetError | null {\n if (!(error instanceof UnprocessableEntityError)) return null\n\n const match = error.errors.find(\n err => err.errorKey === 'requirement_sets' && err.category === 'nested_errors',\n )\n if (!match || !hasMetadataKey(match.metadata)) return null\n\n return { key: match.metadata.key, state: match.metadata.state }\n}\n"],"names":["hasMetadataKey","metadata","parseRequirementSetError","error","UnprocessableEntityError","match","err"],"mappings":";AAEA,SAASA,EAAeC,GAAgE;AACtF,SACE,OAAOA,KAAa,YACpBA,MAAa,QACb,SAASA,KACT,OAAQA,EAA8B,OAAQ;AAElD;AAoBO,SAASC,EAAyBC,GAA4C;AACnF,MAAI,EAAEA,aAAiBC,GAA2B,QAAO;AAEzD,QAAMC,IAAQF,EAAM,OAAO;AAAA,IACzB,CAAAG,MAAOA,EAAI,aAAa,sBAAsBA,EAAI,aAAa;AAAA,EAAA;AAEjE,SAAI,CAACD,KAAS,CAACL,EAAeK,EAAM,QAAQ,IAAU,OAE/C,EAAE,KAAKA,EAAM,SAAS,KAAK,OAAOA,EAAM,SAAS,MAAA;AAC1D;"}
1
+ {"version":3,"file":"requirementSetError.js","sources":["../../../../../src/components/Company/StateTaxes/shared/requirementSetError.ts"],"sourcesContent":["import type { EntityErrorObject } from '@gusto/embedded-api/models/components/entityerrorobject'\nimport { UnprocessableEntityError } from '@gusto/embedded-api/models/errors/unprocessableentityerror'\n\nfunction hasMetadataKey(metadata: unknown): metadata is { key: string; state?: string } {\n return (\n typeof metadata === 'object' &&\n metadata !== null &&\n 'key' in metadata &&\n typeof (metadata as { key: unknown }).key === 'string'\n )\n}\n\n/**\n * A server-reported problem with a single requirement's submitted value.\n *\n * @internal\n */\nexport interface RequirementValueError {\n requirementKey: string\n message: string\n}\n\n/**\n * Identifies which requirement set a requirement-set error targets, plus any per-requirement\n * value errors the server reported inside it.\n *\n * @internal\n */\nexport interface RequirementSetError {\n key: string\n state?: string\n effectiveFrom?: string\n valueErrors: RequirementValueError[]\n}\n\nfunction extractValueErrors(requirementSetError: EntityErrorObject): RequirementValueError[] {\n return (requirementSetError.errors ?? []).flatMap(requirementError => {\n if (\n requirementError.errorKey !== 'requirements' ||\n !hasMetadataKey(requirementError.metadata)\n ) {\n return []\n }\n const { key } = requirementError.metadata\n return (requirementError.errors ?? [])\n .filter(valueError => typeof valueError.message === 'string')\n .map(valueError => ({ requirementKey: key, message: valueError.message as string }))\n })\n}\n\n/**\n * Extracts every requirement-set error from a tax-requirements-update error shaped as\n * `{ errorKey: \"requirement_sets\", category: \"nested_errors\", metadata: { key, state } }` —\n * the update endpoint's response when requirement sets (e.g. \"registrations\", \"taxrates\") were\n * rejected; one response can carry several sets. Each result includes the nested per-requirement\n * value errors (e.g. an invalid ID format). Returns `null` when no entry has that shape.\n *\n * @internal\n */\nexport function parseRequirementSetErrors(error: unknown): RequirementSetError[] | null {\n if (!(error instanceof UnprocessableEntityError)) return null\n\n const requirementSetErrors = error.errors\n .filter(err => err.errorKey === 'requirement_sets' && err.category === 'nested_errors')\n .flatMap(err => {\n if (!hasMetadataKey(err.metadata)) return []\n const { effective_from: effectiveFrom } = err.metadata as { effective_from?: unknown }\n return [\n {\n key: err.metadata.key,\n state: err.metadata.state,\n effectiveFrom: typeof effectiveFrom === 'string' ? effectiveFrom : undefined,\n valueErrors: extractValueErrors(err),\n },\n ]\n })\n\n return requirementSetErrors.length > 0 ? requirementSetErrors : null\n}\n"],"names":["hasMetadataKey","metadata","extractValueErrors","requirementSetError","requirementError","key","valueError","parseRequirementSetErrors","error","UnprocessableEntityError","requirementSetErrors","err","effectiveFrom"],"mappings":";AAGA,SAASA,EAAeC,GAAgE;AACtF,SACE,OAAOA,KAAa,YACpBA,MAAa,QACb,SAASA,KACT,OAAQA,EAA8B,OAAQ;AAElD;AAyBA,SAASC,EAAmBC,GAAiE;AAC3F,UAAQA,EAAoB,UAAU,CAAA,GAAI,QAAQ,CAAAC,MAAoB;AACpE,QACEA,EAAiB,aAAa,kBAC9B,CAACJ,EAAeI,EAAiB,QAAQ;AAEzC,aAAO,CAAA;AAET,UAAM,EAAE,KAAAC,MAAQD,EAAiB;AACjC,YAAQA,EAAiB,UAAU,CAAA,GAChC,OAAO,CAAAE,MAAc,OAAOA,EAAW,WAAY,QAAQ,EAC3D,IAAI,QAAe,EAAE,gBAAgBD,GAAK,SAASC,EAAW,UAAoB;AAAA,EACvF,CAAC;AACH;AAWO,SAASC,EAA0BC,GAA8C;AACtF,MAAI,EAAEA,aAAiBC,GAA2B,QAAO;AAEzD,QAAMC,IAAuBF,EAAM,OAChC,OAAO,CAAAG,MAAOA,EAAI,aAAa,sBAAsBA,EAAI,aAAa,eAAe,EACrF,QAAQ,CAAAA,MAAO;AACd,QAAI,CAACX,EAAeW,EAAI,QAAQ,UAAU,CAAA;AAC1C,UAAM,EAAE,gBAAgBC,EAAA,IAAkBD,EAAI;AAC9C,WAAO;AAAA,MACL;AAAA,QACE,KAAKA,EAAI,SAAS;AAAA,QAClB,OAAOA,EAAI,SAAS;AAAA,QACpB,eAAe,OAAOC,KAAkB,WAAWA,IAAgB;AAAA,QACnE,aAAaV,EAAmBS,CAAG;AAAA,MAAA;AAAA,IACrC;AAAA,EAEJ,CAAC;AAEH,SAAOD,EAAqB,SAAS,IAAIA,IAAuB;AAClE;"}
@@ -0,0 +1,77 @@
1
+ import { jsx as s } from "react/jsx-runtime";
2
+ import { useTranslation as g } from "react-i18next";
3
+ import { useSuspenseQueries as C } from "@tanstack/react-query";
4
+ import { useGustoEmbeddedContext as E } from "@gusto/embedded-api/react-query/_context";
5
+ import { useTaxPaymentsGetTaxPaymentSuspense as U } from "@gusto/embedded-api/react-query/taxPaymentsGetTaxPayment";
6
+ import { usePayrollsListSuspense as b } from "@gusto/embedded-api/react-query/payrollsList";
7
+ import { buildPayrollsGetQuery as h } from "@gusto/embedded-api/react-query/payrollsGet";
8
+ import { QueryParamPayrollTypes as n, ProcessingStatuses as p } from "@gusto/embedded-api/models/operations/getv1companiescompanyidpayrolls";
9
+ import { deriveTaxPaymentStatus as L } from "../shared/taxPaymentStatus.js";
10
+ import { buildPayrollLookupWindow as A } from "../shared/payrollLookupWindow.js";
11
+ import { TaxPaymentDetailPresentation as I } from "./TaxPaymentDetailPresentation.js";
12
+ import { BaseComponent as M } from "../../../Base/Base.js";
13
+ import "../../../Base/useBase.js";
14
+ import { componentEvents as R } from "../../../../shared/constants.js";
15
+ import { useComponentDictionary as _, useI18n as k } from "../../../../i18n/I18n.js";
16
+ import { useUnstableFeature as B } from "../../../../contexts/UnstableFeaturesProvider/useUnstableFeature.js";
17
+ import { formatDateToStringDate as y } from "../../../../helpers/dateFormatting.js";
18
+ function ot(o) {
19
+ return B("taxPayments", { throwIfDisabled: !0 }), /* @__PURE__ */ s(M, { ...o, children: /* @__PURE__ */ s(O, { ...o }) });
20
+ }
21
+ const G = 100, O = ({
22
+ companyId: o,
23
+ taxPaymentId: u,
24
+ className: d,
25
+ dictionary: P,
26
+ onEvent: f
27
+ }) => {
28
+ _("Company.Management.TaxPaymentDetail", P), k("Company.Management.TaxPaymentDetail");
29
+ const { t: c } = g("Company.Management.TaxPaymentDetail"), D = E(), {
30
+ data: { taxPayment: e }
31
+ } = U({ companyUuid: o, uuid: u }), i = [...new Set((e?.lineItems ?? []).map((t) => t.payrollUuid))], m = A(
32
+ e?.periodStart?.toString(),
33
+ e?.periodEnd.toString(),
34
+ y(/* @__PURE__ */ new Date()) ?? ""
35
+ ), { data: x } = b({
36
+ companyId: o,
37
+ processingStatuses: [p.Processed, p.Unprocessed],
38
+ payrollTypes: [
39
+ n.Regular,
40
+ n.OffCycle,
41
+ n.External
42
+ ],
43
+ startDate: m?.startDate,
44
+ endDate: m?.endDate,
45
+ per: G
46
+ }), a = /* @__PURE__ */ new Map();
47
+ for (const t of x.payrollList ?? [])
48
+ t.payrollUuid && a.set(t.payrollUuid, t.payPeriod);
49
+ const l = i.filter((t) => !a.has(t)), T = C({
50
+ queries: l.map(
51
+ (t) => h(D, { companyId: o, payrollId: t })
52
+ )
53
+ }), r = {};
54
+ for (const t of i)
55
+ r[t] = a.get(t);
56
+ if (l.forEach((t, S) => {
57
+ r[t] = T[S]?.data.payrollShow?.payPeriod;
58
+ }), !e)
59
+ throw new Error(c("errors.taxPaymentNotFound"));
60
+ const w = L(e, y(/* @__PURE__ */ new Date()) ?? "");
61
+ return /* @__PURE__ */ s(
62
+ I,
63
+ {
64
+ className: d,
65
+ payment: e,
66
+ status: w,
67
+ payPeriodsByPayrollId: r,
68
+ onBack: () => {
69
+ f(R.TAX_PAYMENT_BACK);
70
+ }
71
+ }
72
+ );
73
+ };
74
+ export {
75
+ ot as TaxPaymentDetail
76
+ };
77
+ //# sourceMappingURL=TaxPaymentDetail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaxPaymentDetail.js","sources":["../../../../../src/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetail.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useSuspenseQueries } from '@tanstack/react-query'\nimport { useGustoEmbeddedContext } from '@gusto/embedded-api/react-query/_context'\nimport { useTaxPaymentsGetTaxPaymentSuspense } from '@gusto/embedded-api/react-query/taxPaymentsGetTaxPayment'\nimport { usePayrollsListSuspense } from '@gusto/embedded-api/react-query/payrollsList'\nimport { buildPayrollsGetQuery } from '@gusto/embedded-api/react-query/payrollsGet'\nimport {\n ProcessingStatuses,\n QueryParamPayrollTypes,\n} from '@gusto/embedded-api/models/operations/getv1companiescompanyidpayrolls'\nimport { deriveTaxPaymentStatus } from '../shared/taxPaymentStatus'\nimport { buildPayrollLookupWindow } from '../shared/payrollLookupWindow'\nimport { TaxPaymentDetailPresentation, type PayPeriodRange } from './TaxPaymentDetailPresentation'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { useUnstableFeature } from '@/contexts/UnstableFeaturesProvider/useUnstableFeature'\nimport { formatDateToStringDate } from '@/helpers/dateFormatting'\n\n/**\n * Props for {@link TaxPaymentDetail}.\n *\n * @alpha\n */\nexport interface TaxPaymentDetailProps extends BaseComponentInterface<'Company.Management.TaxPaymentDetail'> {\n /** Identifier of the company the tax payment belongs to. */\n companyId: string\n /** Identifier of the tax payment to display. */\n taxPaymentId: string\n}\n\n/**\n * Displays a single tax payment: its agency, status, jurisdiction, period, due date, amounts, and\n * the payroll tax liabilities that make it up.\n *\n * @remarks\n * Requires the `taxPayments` flag in {@link UnstableFeatures}. Each liability is labeled with the\n * pay period of the payroll it came from, resolved through a single payroll lookup windowed around\n * the payment's tax period rather than one request per payroll.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `company/taxPayments/back` | Fired when the user clicks the back button | — |\n *\n * @param props - See {@link TaxPaymentDetailProps}.\n * @returns The rendered tax payment detail view.\n * @alpha\n */\nexport function TaxPaymentDetail(props: TaxPaymentDetailProps) {\n useUnstableFeature('taxPayments', { throwIfDisabled: true })\n\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\n/** Maximum payrolls fetched per windowed lookup; matches the endpoint's page-size ceiling. */\nconst PAYROLL_LOOKUP_PER_PAGE = 100\n\nconst Root = ({\n companyId,\n taxPaymentId,\n className,\n dictionary,\n onEvent,\n}: TaxPaymentDetailProps) => {\n useComponentDictionary('Company.Management.TaxPaymentDetail', dictionary)\n useI18n('Company.Management.TaxPaymentDetail')\n const { t } = useTranslation('Company.Management.TaxPaymentDetail')\n const gustoClient = useGustoEmbeddedContext()\n\n const {\n data: { taxPayment },\n } = useTaxPaymentsGetTaxPaymentSuspense({ companyUuid: companyId, uuid: taxPaymentId })\n\n const payrollIds = [...new Set((taxPayment?.lineItems ?? []).map(item => item.payrollUuid))]\n\n // One windowed list request resolves the pay period for every liability, instead of a GET per\n // payroll. `payrollsList` filters on pay period when `dateFilterBy` is omitted, which is what the\n // liabilities are keyed by.\n const lookupWindow = buildPayrollLookupWindow(\n taxPayment?.periodStart?.toString(),\n taxPayment?.periodEnd.toString(),\n formatDateToStringDate(new Date()) ?? '',\n )\n\n const { data: payrollsData } = usePayrollsListSuspense({\n companyId,\n processingStatuses: [ProcessingStatuses.Processed, ProcessingStatuses.Unprocessed],\n payrollTypes: [\n QueryParamPayrollTypes.Regular,\n QueryParamPayrollTypes.OffCycle,\n QueryParamPayrollTypes.External,\n ],\n startDate: lookupWindow?.startDate,\n endDate: lookupWindow?.endDate,\n per: PAYROLL_LOOKUP_PER_PAGE,\n })\n\n const windowedPayPeriods = new Map<string, PayPeriodRange | undefined>()\n for (const payroll of payrollsData.payrollList ?? []) {\n if (payroll.payrollUuid) windowedPayPeriods.set(payroll.payrollUuid, payroll.payPeriod)\n }\n\n // Safety net for liabilities whose payroll fell outside the padded window, so correctness does\n // not depend on the padding being wide enough. Normally resolves to zero extra requests.\n const unresolvedPayrollIds = payrollIds.filter(id => !windowedPayPeriods.has(id))\n\n const fallbackResults = useSuspenseQueries({\n queries: unresolvedPayrollIds.map(payrollId =>\n buildPayrollsGetQuery(gustoClient, { companyId, payrollId }),\n ),\n })\n\n const payPeriodsByPayrollId: Record<string, PayPeriodRange | undefined> = {}\n for (const payrollId of payrollIds) {\n payPeriodsByPayrollId[payrollId] = windowedPayPeriods.get(payrollId)\n }\n unresolvedPayrollIds.forEach((payrollId, index) => {\n payPeriodsByPayrollId[payrollId] = fallbackResults[index]?.data.payrollShow?.payPeriod\n })\n\n if (!taxPayment) {\n throw new Error(t('errors.taxPaymentNotFound'))\n }\n\n const status = deriveTaxPaymentStatus(taxPayment, formatDateToStringDate(new Date()) ?? '')\n\n return (\n <TaxPaymentDetailPresentation\n className={className}\n payment={taxPayment}\n status={status}\n payPeriodsByPayrollId={payPeriodsByPayrollId}\n onBack={() => {\n onEvent(componentEvents.TAX_PAYMENT_BACK)\n }}\n />\n )\n}\n"],"names":["TaxPaymentDetail","props","useUnstableFeature","jsx","BaseComponent","Root","PAYROLL_LOOKUP_PER_PAGE","companyId","taxPaymentId","className","dictionary","onEvent","useComponentDictionary","useI18n","t","useTranslation","gustoClient","useGustoEmbeddedContext","taxPayment","useTaxPaymentsGetTaxPaymentSuspense","payrollIds","item","lookupWindow","buildPayrollLookupWindow","formatDateToStringDate","payrollsData","usePayrollsListSuspense","ProcessingStatuses","QueryParamPayrollTypes","windowedPayPeriods","payroll","unresolvedPayrollIds","id","fallbackResults","useSuspenseQueries","buildPayrollsGetQuery","payrollId","payPeriodsByPayrollId","index","status","deriveTaxPaymentStatus","TaxPaymentDetailPresentation","componentEvents"],"mappings":";;;;;;;;;;;;;;;;;AAiDO,SAASA,GAAiBC,GAA8B;AAC7D,SAAAC,EAAmB,eAAe,EAAE,iBAAiB,GAAA,CAAM,GAGzD,gBAAAC,EAACC,KAAe,GAAGH,GACjB,4BAACI,GAAA,EAAM,GAAGJ,GAAO,EAAA,CACnB;AAEJ;AAGA,MAAMK,IAA0B,KAE1BD,IAAO,CAAC;AAAA,EACZ,WAAAE;AAAA,EACA,cAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAC;AACF,MAA6B;AAC3B,EAAAC,EAAuB,uCAAuCF,CAAU,GACxEG,EAAQ,qCAAqC;AAC7C,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,qCAAqC,GAC5DC,IAAcC,EAAA,GAEd;AAAA,IACJ,MAAM,EAAE,YAAAC,EAAA;AAAA,EAAW,IACjBC,EAAoC,EAAE,aAAaZ,GAAW,MAAMC,GAAc,GAEhFY,IAAa,CAAC,GAAG,IAAI,KAAKF,GAAY,aAAa,CAAA,GAAI,IAAI,CAAAG,MAAQA,EAAK,WAAW,CAAC,CAAC,GAKrFC,IAAeC;AAAA,IACnBL,GAAY,aAAa,SAAA;AAAA,IACzBA,GAAY,UAAU,SAAA;AAAA,IACtBM,EAAuB,oBAAI,KAAA,CAAM,KAAK;AAAA,EAAA,GAGlC,EAAE,MAAMC,EAAA,IAAiBC,EAAwB;AAAA,IACrD,WAAAnB;AAAA,IACA,oBAAoB,CAACoB,EAAmB,WAAWA,EAAmB,WAAW;AAAA,IACjF,cAAc;AAAA,MACZC,EAAuB;AAAA,MACvBA,EAAuB;AAAA,MACvBA,EAAuB;AAAA,IAAA;AAAA,IAEzB,WAAWN,GAAc;AAAA,IACzB,SAASA,GAAc;AAAA,IACvB,KAAKhB;AAAA,EAAA,CACN,GAEKuB,wBAAyB,IAAA;AAC/B,aAAWC,KAAWL,EAAa,eAAe,CAAA;AAChD,IAAIK,EAAQ,eAAaD,EAAmB,IAAIC,EAAQ,aAAaA,EAAQ,SAAS;AAKxF,QAAMC,IAAuBX,EAAW,OAAO,CAAAY,MAAM,CAACH,EAAmB,IAAIG,CAAE,CAAC,GAE1EC,IAAkBC,EAAmB;AAAA,IACzC,SAASH,EAAqB;AAAA,MAAI,OAChCI,EAAsBnB,GAAa,EAAE,WAAAT,GAAW,WAAA6B,GAAW;AAAA,IAAA;AAAA,EAC7D,CACD,GAEKC,IAAoE,CAAA;AAC1E,aAAWD,KAAahB;AACtB,IAAAiB,EAAsBD,CAAS,IAAIP,EAAmB,IAAIO,CAAS;AAMrE,MAJAL,EAAqB,QAAQ,CAACK,GAAWE,MAAU;AACjD,IAAAD,EAAsBD,CAAS,IAAIH,EAAgBK,CAAK,GAAG,KAAK,aAAa;AAAA,EAC/E,CAAC,GAEG,CAACpB;AACH,UAAM,IAAI,MAAMJ,EAAE,2BAA2B,CAAC;AAGhD,QAAMyB,IAASC,EAAuBtB,GAAYM,sBAA2B,KAAA,CAAM,KAAK,EAAE;AAE1F,SACE,gBAAArB;AAAA,IAACsC;AAAA,IAAA;AAAA,MACC,WAAAhC;AAAA,MACA,SAASS;AAAA,MACT,QAAAqB;AAAA,MACA,uBAAAF;AAAA,MACA,QAAQ,MAAM;AACZ,QAAA1B,EAAQ+B,EAAgB,gBAAgB;AAAA,MAC1C;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,94 @@
1
+ import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
+ import { useTranslation as j } from "react-i18next";
3
+ import { getJurisdictionLabel as k, TAX_PAYMENT_STATUS_BADGES as B } from "../shared/taxPaymentStatus.js";
4
+ import { Flex as n } from "../../../Common/Flex/Flex.js";
5
+ import { EmptyData as I } from "../../../Common/EmptyData/EmptyData.js";
6
+ import { useComponentContext as N } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
7
+ import { useI18n as L } from "../../../../i18n/I18n.js";
8
+ import V from "../../../../hooks/useNumberFormatter.js";
9
+ import { useDateFormatter as E } from "../../../../hooks/useDateFormatter.js";
10
+ import { useDataView as F } from "../../../Common/DataView/useDataView.js";
11
+ import { DataView as M } from "../../../Common/DataView/DataView.js";
12
+ function R({
13
+ className: f,
14
+ payment: i,
15
+ status: o,
16
+ payPeriodsByPayrollId: g,
17
+ onBack: h
18
+ }) {
19
+ const { Alert: D, Badge: x, Box: d, BoxHeader: m, Button: S, DescriptionList: y, Heading: A, Text: u } = N();
20
+ L("Company.Management.TaxPaymentDetail");
21
+ const { t } = j("Company.Management.TaxPaymentDetail"), l = V("currency"), { formatLongWithYear: s, formatPayPeriodRange: c } = E(), { key: v, values: T } = k(i), p = t(v, T), P = (r, b) => r && b ? c(r, b) : t("notAvailable"), C = (r) => r?.startDate && r.endDate ? c(r.startDate, r.endDate, { useShortMonth: !0 }) : t("notAvailable"), w = F({
22
+ data: i.lineItems ?? [],
23
+ columns: [
24
+ {
25
+ key: "uniqueTaxId",
26
+ title: t("liabilities.taxIdColumn")
27
+ },
28
+ {
29
+ key: "payrollUuid",
30
+ title: t("liabilities.payrollColumn"),
31
+ render: ({ payrollUuid: r }) => C(g[r])
32
+ },
33
+ {
34
+ key: "amount",
35
+ title: t("liabilities.amountColumn"),
36
+ justify: "end",
37
+ render: ({ amount: r }) => l(Number(r))
38
+ }
39
+ ],
40
+ emptyState: () => /* @__PURE__ */ e(I, { title: t("liabilities.emptyState") })
41
+ });
42
+ return /* @__PURE__ */ a(n, { className: f, flexDirection: "column", gap: 24, children: [
43
+ /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(S, { variant: "secondary", onClick: h, children: t("backCta") }) }),
44
+ /* @__PURE__ */ a(n, { flexDirection: "column", gap: 4, children: [
45
+ /* @__PURE__ */ a(n, { alignItems: "center", flexWrap: "wrap", gap: 12, children: [
46
+ /* @__PURE__ */ e(A, { as: "h2", children: i.agencyName ?? t("unknownAgency") }),
47
+ /* @__PURE__ */ e(x, { status: B[o], children: t(`status.${o}`) })
48
+ ] }),
49
+ /* @__PURE__ */ e(u, { variant: "supporting", children: p })
50
+ ] }),
51
+ o === "overdue" && /* @__PURE__ */ e(D, { status: "warning", label: t("overdueAlert.label"), disableScrollIntoView: !0, children: /* @__PURE__ */ e(u, { size: "sm", children: t("overdueAlert.description", {
52
+ dueDate: s(i.dueDate?.toString())
53
+ }) }) }),
54
+ /* @__PURE__ */ a(n, { flexDirection: "column", gap: 32, children: [
55
+ /* @__PURE__ */ e(d, { header: /* @__PURE__ */ e(m, { title: t("details.title") }), children: /* @__PURE__ */ e(
56
+ y,
57
+ {
58
+ layout: "horizontal",
59
+ items: [
60
+ { term: t("details.jurisdiction"), description: p },
61
+ {
62
+ term: t("details.period"),
63
+ description: P(
64
+ i.periodStart?.toString(),
65
+ i.periodEnd.toString()
66
+ )
67
+ },
68
+ {
69
+ term: t("details.dueDate"),
70
+ description: i.dueDate ? s(i.dueDate.toString()) : t("notAvailable")
71
+ },
72
+ {
73
+ term: t("details.paymentSentOn"),
74
+ description: i.paymentSentOn ? s(i.paymentSentOn.toString()) : t("notAvailable")
75
+ },
76
+ {
77
+ term: t("details.amount"),
78
+ description: l(Number(i.amount))
79
+ },
80
+ {
81
+ term: t("details.amountPaid"),
82
+ description: l(Number(i.amountPaid))
83
+ }
84
+ ]
85
+ }
86
+ ) }),
87
+ /* @__PURE__ */ e(d, { header: /* @__PURE__ */ e(m, { title: t("liabilities.title") }), withPadding: !1, children: /* @__PURE__ */ e(M, { label: t("liabilities.tableLabel"), isWithinBox: !0, ...w }) })
88
+ ] })
89
+ ] });
90
+ }
91
+ export {
92
+ R as TaxPaymentDetailPresentation
93
+ };
94
+ //# sourceMappingURL=TaxPaymentDetailPresentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaxPaymentDetailPresentation.js","sources":["../../../../../src/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetailPresentation.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { TaxPayment } from '@gusto/embedded-api/models/components/taxpayment'\nimport type { TaxPaymentLineItem } from '@gusto/embedded-api/models/components/taxpaymentlineitem'\nimport {\n TAX_PAYMENT_STATUS_BADGES,\n getJurisdictionLabel,\n type TaxPaymentStatus,\n} from '../shared/taxPaymentStatus'\nimport { DataView, EmptyData, Flex, useDataView } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\n\n/** @internal */\nexport interface PayPeriodRange {\n startDate?: string | null\n endDate?: string | null\n}\n\n/** @internal */\nexport interface TaxPaymentDetailPresentationProps {\n /** CSS class name applied to the root element. */\n className?: string\n payment: TaxPayment\n status: TaxPaymentStatus\n /** Pay period of each payroll referenced by the payment's line items, keyed by payroll UUID. */\n payPeriodsByPayrollId: Record<string, PayPeriodRange | undefined>\n onBack: () => void\n}\n\n/** @internal */\nexport function TaxPaymentDetailPresentation({\n className,\n payment,\n status,\n payPeriodsByPayrollId,\n onBack,\n}: TaxPaymentDetailPresentationProps) {\n const { Alert, Badge, Box, BoxHeader, Button, DescriptionList, Heading, Text } =\n useComponentContext()\n useI18n('Company.Management.TaxPaymentDetail')\n const { t } = useTranslation('Company.Management.TaxPaymentDetail')\n const currencyFormatter = useNumberFormatter('currency')\n const { formatLongWithYear, formatPayPeriodRange } = useDateFormatter()\n\n const { key: jurisdictionKey, values: jurisdictionValues } = getJurisdictionLabel(payment)\n const jurisdictionLabel = t(jurisdictionKey, jurisdictionValues)\n\n const formatTaxPeriod = (start?: string | null, end?: string | null) =>\n start && end ? formatPayPeriodRange(start, end) : t('notAvailable')\n\n const formatPayPeriod = (payPeriod?: PayPeriodRange) =>\n payPeriod?.startDate && payPeriod.endDate\n ? formatPayPeriodRange(payPeriod.startDate, payPeriod.endDate, { useShortMonth: true })\n : t('notAvailable')\n\n const liabilitiesDataView = useDataView<TaxPaymentLineItem>({\n data: payment.lineItems ?? [],\n columns: [\n {\n key: 'uniqueTaxId',\n title: t('liabilities.taxIdColumn'),\n },\n {\n key: 'payrollUuid',\n title: t('liabilities.payrollColumn'),\n render: ({ payrollUuid }) => formatPayPeriod(payPeriodsByPayrollId[payrollUuid]),\n },\n {\n key: 'amount',\n title: t('liabilities.amountColumn'),\n justify: 'end',\n render: ({ amount }) => currencyFormatter(Number(amount)),\n },\n ],\n emptyState: () => <EmptyData title={t('liabilities.emptyState')} />,\n })\n\n return (\n <Flex className={className} flexDirection=\"column\" gap={24}>\n <div>\n <Button variant=\"secondary\" onClick={onBack}>\n {t('backCta')}\n </Button>\n </div>\n\n <Flex flexDirection=\"column\" gap={4}>\n <Flex alignItems=\"center\" flexWrap=\"wrap\" gap={12}>\n <Heading as=\"h2\">{payment.agencyName ?? t('unknownAgency')}</Heading>\n <Badge status={TAX_PAYMENT_STATUS_BADGES[status]}>{t(`status.${status}`)}</Badge>\n </Flex>\n <Text variant=\"supporting\">{jurisdictionLabel}</Text>\n </Flex>\n\n {status === 'overdue' && (\n <Alert status=\"warning\" label={t('overdueAlert.label')} disableScrollIntoView>\n <Text size=\"sm\">\n {t('overdueAlert.description', {\n dueDate: formatLongWithYear(payment.dueDate?.toString()),\n })}\n </Text>\n </Alert>\n )}\n\n <Flex flexDirection=\"column\" gap={32}>\n <Box header={<BoxHeader title={t('details.title')} />}>\n <DescriptionList\n layout=\"horizontal\"\n items={[\n { term: t('details.jurisdiction'), description: jurisdictionLabel },\n {\n term: t('details.period'),\n description: formatTaxPeriod(\n payment.periodStart?.toString(),\n payment.periodEnd.toString(),\n ),\n },\n {\n term: t('details.dueDate'),\n description: payment.dueDate\n ? formatLongWithYear(payment.dueDate.toString())\n : t('notAvailable'),\n },\n {\n term: t('details.paymentSentOn'),\n description: payment.paymentSentOn\n ? formatLongWithYear(payment.paymentSentOn.toString())\n : t('notAvailable'),\n },\n {\n term: t('details.amount'),\n description: currencyFormatter(Number(payment.amount)),\n },\n {\n term: t('details.amountPaid'),\n description: currencyFormatter(Number(payment.amountPaid)),\n },\n ]}\n />\n </Box>\n\n <Box header={<BoxHeader title={t('liabilities.title')} />} withPadding={false}>\n <DataView label={t('liabilities.tableLabel')} isWithinBox {...liabilitiesDataView} />\n </Box>\n </Flex>\n </Flex>\n )\n}\n"],"names":["TaxPaymentDetailPresentation","className","payment","status","payPeriodsByPayrollId","onBack","Alert","Badge","Box","BoxHeader","Button","DescriptionList","Heading","Text","useComponentContext","useI18n","useTranslation","currencyFormatter","useNumberFormatter","formatLongWithYear","formatPayPeriodRange","useDateFormatter","jurisdictionKey","jurisdictionValues","getJurisdictionLabel","jurisdictionLabel","formatTaxPeriod","start","end","formatPayPeriod","payPeriod","liabilitiesDataView","useDataView","payrollUuid","amount","jsx","EmptyData","Flex","jsxs","TAX_PAYMENT_STATUS_BADGES","DataView"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { createMachine as m } from "robot3";
3
+ import { useState as n } from "react";
4
+ import { taxPaymentsMachine as i } from "./taxPaymentsStateMachine.js";
5
+ import { TaxPaymentsListContextual as s } from "./TaxPaymentsFlowComponents.js";
6
+ import { Flow as f } from "../../../Flow/Flow.js";
7
+ import { useUnstableFeature as x } from "../../../../contexts/UnstableFeaturesProvider/useUnstableFeature.js";
8
+ const F = ({ companyId: t, onEvent: e }) => (x("taxPayments", { throwIfDisabled: !0 }), /* @__PURE__ */ o(c, { companyId: t, onEvent: e }, t));
9
+ function c({ companyId: t, onEvent: e }) {
10
+ const [r] = n(
11
+ () => m(
12
+ "list",
13
+ i,
14
+ (a) => ({
15
+ ...a,
16
+ component: s,
17
+ companyId: t
18
+ })
19
+ )
20
+ );
21
+ return /* @__PURE__ */ o(f, { machine: r, onEvent: e });
22
+ }
23
+ export {
24
+ F as TaxPaymentsFlow
25
+ };
26
+ //# sourceMappingURL=TaxPaymentsFlow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaxPaymentsFlow.js","sources":["../../../../../src/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlow.tsx"],"sourcesContent":["import { createMachine } from 'robot3'\nimport { useState } from 'react'\nimport { taxPaymentsMachine } from './taxPaymentsStateMachine'\nimport {\n TaxPaymentsListContextual,\n type TaxPaymentsFlowContextInterface,\n type TaxPaymentsFlowProps,\n} from './TaxPaymentsFlowComponents'\nimport { Flow } from '@/components/Flow/Flow'\nimport { useUnstableFeature } from '@/contexts/UnstableFeaturesProvider/useUnstableFeature'\n\n/**\n * Hub for reviewing a company's tax payments and the payroll tax liabilities behind each one.\n *\n * @remarks\n * Requires the `taxPayments` flag in {@link UnstableFeatures}. Starts on the tax payments list,\n * where the user can search, filter by jurisdiction or status, and jump to overdue payments.\n * Selecting a payment opens its detail view; the back button returns to the list.\n *\n * Events emitted by the blocks bubble up through the single `onEvent` handler.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `company/taxPayments/view` | Fired when the user selects a tax payment to view | `{ taxPaymentId: string }` |\n * | `company/taxPayments/back` | Fired when the user returns from a tax payment to the list | — |\n *\n * @components\n * - {@link TaxPaymentsList}\n * - {@link TaxPaymentDetail}\n *\n * @param props - See {@link TaxPaymentsFlowProps}.\n * @returns The tax payments hub.\n * @alpha\n *\n * @example\n * ```tsx title=\"App.tsx\"\n * import { CompanyManagement, GustoProvider } from '@gusto/embedded-react-sdk'\n *\n * function MyApp() {\n * return (\n * <GustoProvider config={{ baseUrl: '/api/gusto/' }} unstableFeatures={{ taxPayments: true }}>\n * <CompanyManagement.TaxPaymentsFlow\n * companyId=\"a007e1ab-3595-43c2-ab4b-af7a5af2e365\"\n * onEvent={() => {}}\n * />\n * </GustoProvider>\n * )\n * }\n * ```\n */\nexport const TaxPaymentsFlow = ({ companyId, onEvent }: TaxPaymentsFlowProps) => {\n useUnstableFeature('taxPayments', { throwIfDisabled: true })\n\n // Remount and reset all state if companyId ever changes.\n return <TaxPaymentsFlowMachine key={companyId} companyId={companyId} onEvent={onEvent} />\n}\n\nfunction TaxPaymentsFlowMachine({ companyId, onEvent }: TaxPaymentsFlowProps) {\n // Built once via a lazy useState initializer. `useMemo` is a performance hint React is free to\n // discard, and a new machine reference makes `useMachine` tear down the interpreter and restart\n // from the initial state, which would silently drop the user back to the list.\n const [taxPaymentsFlow] = useState(() =>\n createMachine(\n 'list',\n taxPaymentsMachine,\n (initialContext: TaxPaymentsFlowContextInterface) => ({\n ...initialContext,\n component: TaxPaymentsListContextual,\n companyId,\n }),\n ),\n )\n\n return <Flow machine={taxPaymentsFlow} onEvent={onEvent} />\n}\n"],"names":["TaxPaymentsFlow","companyId","onEvent","useUnstableFeature","jsx","TaxPaymentsFlowMachine","taxPaymentsFlow","useState","createMachine","taxPaymentsMachine","initialContext","TaxPaymentsListContextual","Flow"],"mappings":";;;;;;;AAmDO,MAAMA,IAAkB,CAAC,EAAE,WAAAC,GAAW,SAAAC,SAC3CC,EAAmB,eAAe,EAAE,iBAAiB,GAAA,CAAM,GAGpD,gBAAAC,EAACC,GAAA,EAAuC,WAAAJ,GAAsB,SAAAC,EAAA,GAAjCD,CAAmD;AAGzF,SAASI,EAAuB,EAAE,WAAAJ,GAAW,SAAAC,KAAiC;AAI5E,QAAM,CAACI,CAAe,IAAIC;AAAA,IAAS,MACjCC;AAAA,MACE;AAAA,MACAC;AAAA,MACA,CAACC,OAAqD;AAAA,QACpD,GAAGA;AAAA,QACH,WAAWC;AAAA,QACX,WAAAV;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAGF,SAAO,gBAAAG,EAACQ,GAAA,EAAK,SAASN,GAAiB,SAAAJ,EAAA,CAAkB;AAC3D;"}
@@ -0,0 +1,25 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { TaxPaymentsList as r } from "../TaxPaymentsList/TaxPaymentsList.js";
3
+ import { TaxPaymentDetail as i } from "../TaxPaymentDetail/TaxPaymentDetail.js";
4
+ import { useFlow as a } from "../../../Flow/useFlow.js";
5
+ import { ensureRequired as o } from "../../../../helpers/ensureRequired.js";
6
+ function s() {
7
+ const { companyId: t, onEvent: n } = a();
8
+ return /* @__PURE__ */ e(r, { companyId: o(t), onEvent: n });
9
+ }
10
+ function d() {
11
+ const { companyId: t, currentTaxPaymentId: n, onEvent: m } = a();
12
+ return /* @__PURE__ */ e(
13
+ i,
14
+ {
15
+ companyId: o(t),
16
+ taxPaymentId: o(n),
17
+ onEvent: m
18
+ }
19
+ );
20
+ }
21
+ export {
22
+ d as TaxPaymentDetailContextual,
23
+ s as TaxPaymentsListContextual
24
+ };
25
+ //# sourceMappingURL=TaxPaymentsFlowComponents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaxPaymentsFlowComponents.js","sources":["../../../../../src/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlowComponents.tsx"],"sourcesContent":["import { TaxPaymentsList } from '../TaxPaymentsList/TaxPaymentsList'\nimport { TaxPaymentDetail } from '../TaxPaymentDetail/TaxPaymentDetail'\nimport { useFlow, type FlowContextInterface } from '@/components/Flow/useFlow'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport { ensureRequired } from '@/helpers/ensureRequired'\n\n/**\n * Props for {@link TaxPaymentsFlow}.\n *\n * @alpha\n */\nexport interface TaxPaymentsFlowProps extends BaseComponentInterface<never> {\n /** Identifier of the company whose tax payments are shown. */\n companyId: string\n}\n\n/** @internal */\nexport interface TaxPaymentsFlowContextInterface extends FlowContextInterface {\n companyId: string\n currentTaxPaymentId?: string\n}\n\n/** @internal */\nexport function TaxPaymentsListContextual() {\n const { companyId, onEvent } = useFlow<TaxPaymentsFlowContextInterface>()\n return <TaxPaymentsList companyId={ensureRequired(companyId)} onEvent={onEvent} />\n}\n\n/** @internal */\nexport function TaxPaymentDetailContextual() {\n const { companyId, currentTaxPaymentId, onEvent } = useFlow<TaxPaymentsFlowContextInterface>()\n return (\n <TaxPaymentDetail\n companyId={ensureRequired(companyId)}\n taxPaymentId={ensureRequired(currentTaxPaymentId)}\n onEvent={onEvent}\n />\n )\n}\n"],"names":["TaxPaymentsListContextual","companyId","onEvent","useFlow","TaxPaymentsList","ensureRequired","TaxPaymentDetailContextual","currentTaxPaymentId","jsx","TaxPaymentDetail"],"mappings":";;;;;AAuBO,SAASA,IAA4B;AAC1C,QAAM,EAAE,WAAAC,GAAW,SAAAC,EAAA,IAAYC,EAAA;AAC/B,2BAAQC,GAAA,EAAgB,WAAWC,EAAeJ,CAAS,GAAG,SAAAC,GAAkB;AAClF;AAGO,SAASI,IAA6B;AAC3C,QAAM,EAAE,WAAAL,GAAW,qBAAAM,GAAqB,SAAAL,EAAA,IAAYC,EAAA;AACpD,SACE,gBAAAK;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAWJ,EAAeJ,CAAS;AAAA,MACnC,cAAcI,EAAeE,CAAmB;AAAA,MAChD,SAAAL;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,33 @@
1
+ import { state as a, transition as e, reduce as n } from "robot3";
2
+ import { TaxPaymentsListContextual as i, TaxPaymentDetailContextual as r } from "./TaxPaymentsFlowComponents.js";
3
+ import { componentEvents as o } from "../../../../shared/constants.js";
4
+ const d = {
5
+ list: a(
6
+ e(
7
+ o.TAX_PAYMENT_VIEW,
8
+ "detail",
9
+ n(
10
+ (t, m) => ({
11
+ ...t,
12
+ component: r,
13
+ currentTaxPaymentId: m.payload.taxPaymentId
14
+ })
15
+ )
16
+ )
17
+ ),
18
+ detail: a(
19
+ e(
20
+ o.TAX_PAYMENT_BACK,
21
+ "list",
22
+ n((t) => ({
23
+ ...t,
24
+ component: i,
25
+ currentTaxPaymentId: void 0
26
+ }))
27
+ )
28
+ )
29
+ };
30
+ export {
31
+ d as taxPaymentsMachine
32
+ };
33
+ //# sourceMappingURL=taxPaymentsStateMachine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taxPaymentsStateMachine.js","sources":["../../../../../src/components/Company/TaxPayments/TaxPaymentsFlow/taxPaymentsStateMachine.ts"],"sourcesContent":["import { reduce, state, transition } from 'robot3'\nimport {\n TaxPaymentDetailContextual,\n TaxPaymentsListContextual,\n type TaxPaymentsFlowContextInterface,\n} from './TaxPaymentsFlowComponents'\nimport { componentEvents } from '@/shared/constants'\nimport type { MachineEventType, MachineTransition } from '@/types/Helpers'\n\ntype EventPayloads = {\n [componentEvents.TAX_PAYMENT_VIEW]: { taxPaymentId: string }\n [componentEvents.TAX_PAYMENT_BACK]: undefined\n}\n\n/**\n * Hub machine for {@link TaxPaymentsFlow}: the list is the hub and each tax payment detail is a\n * spoke. There is no final state, since the user can move between them freely.\n *\n * @internal\n */\nexport const taxPaymentsMachine = {\n list: state<MachineTransition>(\n transition(\n componentEvents.TAX_PAYMENT_VIEW,\n 'detail',\n reduce(\n (\n ctx: TaxPaymentsFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.TAX_PAYMENT_VIEW>,\n ): TaxPaymentsFlowContextInterface => ({\n ...ctx,\n component: TaxPaymentDetailContextual,\n currentTaxPaymentId: ev.payload.taxPaymentId,\n }),\n ),\n ),\n ),\n detail: state<MachineTransition>(\n transition(\n componentEvents.TAX_PAYMENT_BACK,\n 'list',\n reduce((ctx: TaxPaymentsFlowContextInterface): TaxPaymentsFlowContextInterface => ({\n ...ctx,\n component: TaxPaymentsListContextual,\n currentTaxPaymentId: undefined,\n })),\n ),\n ),\n}\n"],"names":["taxPaymentsMachine","state","transition","componentEvents","reduce","ctx","ev","TaxPaymentDetailContextual","TaxPaymentsListContextual"],"mappings":";;;AAoBO,MAAMA,IAAqB;AAAA,EAChC,MAAMC;AAAA,IACJC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAC;AAAA,QACE,CACEC,GACAC,OACqC;AAAA,UACrC,GAAGD;AAAA,UACH,WAAWE;AAAA,UACX,qBAAqBD,EAAG,QAAQ;AAAA,QAAA;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAAA,EAEF,QAAQL;AAAA,IACNC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAC,EAAO,CAACC,OAA2E;AAAA,QACjF,GAAGA;AAAA,QACH,WAAWG;AAAA,QACX,qBAAqB;AAAA,MAAA,EACrB;AAAA,IAAA;AAAA,EACJ;AAEJ;"}