@gusto/embedded-react-sdk 0.55.4 → 0.55.6

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 (354) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/components/Common/DataView/DataTable/DataTable.js +44 -41
  3. package/dist/components/Common/DataView/DataTable/DataTable.js.map +1 -1
  4. package/dist/components/Common/RequirementsList/RequirementsList.js +21 -12
  5. package/dist/components/Common/RequirementsList/RequirementsList.js.map +1 -1
  6. package/dist/components/Common/UI/Table/Table.module.scss.js +1 -1
  7. package/dist/components/Company/PaySchedule/PaySchedule.js +21 -15
  8. package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
  9. package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.js +1 -0
  10. package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.js.map +1 -1
  11. package/dist/components/Contractor/Compensation/management/CompensationEditForm.js +20 -17
  12. package/dist/components/Contractor/Compensation/management/CompensationEditForm.js.map +1 -1
  13. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/contractorPaySchema.d.ts +1 -0
  14. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/contractorPaySchema.js +21 -17
  15. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/contractorPaySchema.js.map +1 -1
  16. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/fields.d.ts +7 -1
  17. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/fields.js.map +1 -1
  18. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/index.d.ts +1 -1
  19. package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js +112 -100
  20. package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js.map +1 -1
  21. package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.js +46 -40
  22. package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.js.map +1 -1
  23. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js +10 -9
  24. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js.map +1 -1
  25. package/dist/components/Contractor/Profile/onboarding/ContractorProfile.js +22 -19
  26. package/dist/components/Contractor/Profile/onboarding/ContractorProfile.js.map +1 -1
  27. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.d.ts +1 -0
  28. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.js +34 -30
  29. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.js.map +1 -1
  30. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/fields.d.ts +7 -1
  31. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/fields.js.map +1 -1
  32. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/index.d.ts +1 -1
  33. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js +32 -32
  34. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js.map +1 -1
  35. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.js +1 -0
  36. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.js.map +1 -1
  37. package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js +11 -10
  38. package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js.map +1 -1
  39. package/dist/components/Employee/Deductions/onboarding/DeductionsList/DeductionsList.js +7 -6
  40. package/dist/components/Employee/Deductions/onboarding/DeductionsList/DeductionsList.js.map +1 -1
  41. package/dist/components/Employee/PaymentMethod/onboarding/ListView.js +20 -19
  42. package/dist/components/Employee/PaymentMethod/onboarding/ListView.js.map +1 -1
  43. package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js +12 -10
  44. package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js.map +1 -1
  45. package/dist/components/InformationRequests/InformationRequests.js +63 -64
  46. package/dist/components/InformationRequests/InformationRequests.js.map +1 -1
  47. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js +13 -12
  48. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js.map +1 -1
  49. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.module.scss.js +1 -1
  50. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +200 -195
  51. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  52. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +93 -85
  53. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  54. package/dist/components/Payroll/PayrollConfiguration/useCalculationPoll.d.ts +50 -0
  55. package/dist/components/Payroll/PayrollConfiguration/useCalculationPoll.js +52 -0
  56. package/dist/components/Payroll/PayrollConfiguration/useCalculationPoll.js.map +1 -0
  57. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +52 -50
  58. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
  59. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +259 -255
  60. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  61. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields.d.ts +278 -0
  62. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/index.d.ts +1 -0
  63. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.d.ts +108 -0
  64. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.test.d.ts +1 -0
  65. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeSchema.d.ts +95 -0
  66. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeSchema.test.d.ts +1 -0
  67. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.d.ts +126 -0
  68. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +1 -0
  69. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  70. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +191 -183
  71. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  72. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +117 -107
  73. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  74. package/dist/components/Payroll/PayrollOverview/useSubmissionPoll.d.ts +39 -0
  75. package/dist/components/Payroll/PayrollOverview/useSubmissionPoll.js +46 -0
  76. package/dist/components/Payroll/PayrollOverview/useSubmissionPoll.js.map +1 -0
  77. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +40 -34
  78. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  79. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js +72 -87
  80. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js.map +1 -1
  81. package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.d.ts +17 -0
  82. package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.js +55 -0
  83. package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.js.map +1 -0
  84. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js +2 -0
  85. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js.map +1 -1
  86. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.d.ts +13 -0
  87. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js +58 -0
  88. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js.map +1 -0
  89. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js +8 -0
  90. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js.map +1 -0
  91. package/dist/components/Payroll/helpers.d.ts +15 -0
  92. package/dist/components/Payroll/helpers.js.map +1 -1
  93. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +35 -35
  94. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
  95. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.module.scss.js +4 -4
  96. package/dist/contexts/UnstableFeaturesProvider/useUnstableFeature.d.ts +2 -0
  97. package/dist/contexts/UnstableFeaturesProvider/useUnstableFeature.js.map +1 -1
  98. package/dist/hooks/usePollingTask/usePollingTask.d.ts +101 -0
  99. package/dist/hooks/usePollingTask/usePollingTask.js +50 -0
  100. package/dist/hooks/usePollingTask/usePollingTask.js.map +1 -0
  101. package/dist/hooks/usePollingTask/usePollingTask.test.d.ts +1 -0
  102. package/dist/i18n/I18n.js +147 -30
  103. package/dist/i18n/I18n.js.map +1 -1
  104. package/dist/i18n/en/Contractor.ContractorList.json.js +14 -12
  105. package/dist/i18n/en/Contractor.ContractorList.json.js.map +1 -1
  106. package/dist/i18n/en/Contractor.Management.Compensation.json.js +6 -6
  107. package/dist/i18n/en/Contractor.ManagementContractorList.json.js +8 -8
  108. package/dist/i18n/en/Contractor.Profile.json.js +5 -5
  109. package/dist/i18n/en/Payroll.OffCyclePayPeriodDateForm.json.js +7 -5
  110. package/dist/i18n/en/Payroll.OffCyclePayPeriodDateForm.json.js.map +1 -1
  111. package/dist/i18n/en/Payroll.PayrollHistory.json.js +8 -8
  112. package/dist/i18n/en/Payroll.PayrollOverview.json.js +16 -16
  113. package/dist/i18n/en/Payroll.UNSTABLE_PayrollEditEmployee.json.js +98 -0
  114. package/dist/i18n/en/Payroll.UNSTABLE_PayrollEditEmployee.json.js.map +1 -0
  115. package/dist/i18n/en/common.json.d.ts +1 -0
  116. package/dist/i18n/en/common.json.js +1 -1
  117. package/dist/i18n/es_US/Company.Addresses.json.js +8 -0
  118. package/dist/i18n/es_US/Company.Addresses.json.js.map +1 -0
  119. package/dist/i18n/es_US/Company.AssignSignatory.json.js +22 -0
  120. package/dist/i18n/es_US/Company.AssignSignatory.json.js.map +1 -0
  121. package/dist/i18n/es_US/Company.BankAccount.json.js +20 -0
  122. package/dist/i18n/es_US/Company.BankAccount.json.js.map +1 -0
  123. package/dist/i18n/es_US/Company.DocumentList.json.js +28 -0
  124. package/dist/i18n/es_US/Company.DocumentList.json.js.map +1 -0
  125. package/dist/i18n/es_US/Company.FederalTaxes.json.js +28 -0
  126. package/dist/i18n/es_US/Company.FederalTaxes.json.js.map +1 -0
  127. package/dist/i18n/es_US/Company.Industry.json.js +12 -0
  128. package/dist/i18n/es_US/Company.Industry.json.js.map +1 -0
  129. package/dist/i18n/es_US/Company.Locations.json.js +44 -0
  130. package/dist/i18n/es_US/Company.Locations.json.js.map +1 -0
  131. package/dist/i18n/es_US/Company.OnboardingOverview.json.js +24 -0
  132. package/dist/i18n/es_US/Company.OnboardingOverview.json.js.map +1 -0
  133. package/dist/i18n/es_US/Company.PaySchedule.json.js +36 -0
  134. package/dist/i18n/es_US/Company.PaySchedule.json.js.map +1 -0
  135. package/dist/i18n/es_US/Company.SignatureForm.json.js +20 -0
  136. package/dist/i18n/es_US/Company.SignatureForm.json.js.map +1 -0
  137. package/dist/i18n/es_US/Company.StateTaxes.json.js +12 -0
  138. package/dist/i18n/es_US/Company.StateTaxes.json.js.map +1 -0
  139. package/dist/i18n/es_US/Company.TimeOff.CreateTimeOffPolicy.json.js +18 -0
  140. package/dist/i18n/es_US/Company.TimeOff.CreateTimeOffPolicy.json.js.map +1 -0
  141. package/dist/i18n/es_US/Company.TimeOff.EmployeeTable.json.js +26 -0
  142. package/dist/i18n/es_US/Company.TimeOff.EmployeeTable.json.js.map +1 -0
  143. package/dist/i18n/es_US/Company.TimeOff.HolidayPolicy.json.js +26 -0
  144. package/dist/i18n/es_US/Company.TimeOff.HolidayPolicy.json.js.map +1 -0
  145. package/dist/i18n/es_US/Company.TimeOff.PolicyDetail.json.js +14 -0
  146. package/dist/i18n/es_US/Company.TimeOff.PolicyDetail.json.js.map +1 -0
  147. package/dist/i18n/es_US/Company.TimeOff.SelectEmployees.json.js +22 -0
  148. package/dist/i18n/es_US/Company.TimeOff.SelectEmployees.json.js.map +1 -0
  149. package/dist/i18n/es_US/Company.TimeOff.SelectPolicyType.json.js +26 -0
  150. package/dist/i18n/es_US/Company.TimeOff.SelectPolicyType.json.js.map +1 -0
  151. package/dist/i18n/es_US/Company.TimeOff.TimeOffPolicies.json.js +40 -0
  152. package/dist/i18n/es_US/Company.TimeOff.TimeOffPolicies.json.js.map +1 -0
  153. package/dist/i18n/es_US/Company.TimeOff.TimeOffPolicyDetails.json.js +52 -0
  154. package/dist/i18n/es_US/Company.TimeOff.TimeOffPolicyDetails.json.js.map +1 -0
  155. package/dist/i18n/es_US/Company.TimeOff.TimeOffRequests.json.js +21 -0
  156. package/dist/i18n/es_US/Company.TimeOff.TimeOffRequests.json.js.map +1 -0
  157. package/dist/i18n/es_US/Contractor.Address.json.js +22 -0
  158. package/dist/i18n/es_US/Contractor.Address.json.js.map +1 -0
  159. package/dist/i18n/es_US/Contractor.BankAccountFields.json.js +12 -0
  160. package/dist/i18n/es_US/Contractor.BankAccountFields.json.js.map +1 -0
  161. package/dist/i18n/es_US/Contractor.ContractorList.json.js +24 -0
  162. package/dist/i18n/es_US/Contractor.ContractorList.json.js.map +1 -0
  163. package/dist/i18n/es_US/Contractor.Dashboard.json.js +14 -0
  164. package/dist/i18n/es_US/Contractor.Dashboard.json.js.map +1 -0
  165. package/dist/i18n/es_US/Contractor.DocumentsList.json.js +18 -0
  166. package/dist/i18n/es_US/Contractor.DocumentsList.json.js.map +1 -0
  167. package/dist/i18n/es_US/Contractor.Landing.json.js +18 -0
  168. package/dist/i18n/es_US/Contractor.Landing.json.js.map +1 -0
  169. package/dist/i18n/es_US/Contractor.Management.Address.json.js +14 -0
  170. package/dist/i18n/es_US/Contractor.Management.Address.json.js.map +1 -0
  171. package/dist/i18n/es_US/Contractor.Management.Compensation.json.js +22 -0
  172. package/dist/i18n/es_US/Contractor.Management.Compensation.json.js.map +1 -0
  173. package/dist/i18n/es_US/Contractor.Management.Documents.json.js +16 -0
  174. package/dist/i18n/es_US/Contractor.Management.Documents.json.js.map +1 -0
  175. package/dist/i18n/es_US/Contractor.Management.PaymentMethod.json.js +24 -0
  176. package/dist/i18n/es_US/Contractor.Management.PaymentMethod.json.js.map +1 -0
  177. package/dist/i18n/es_US/Contractor.Management.Profile.json.js +20 -0
  178. package/dist/i18n/es_US/Contractor.Management.Profile.json.js.map +1 -0
  179. package/dist/i18n/es_US/Contractor.ManagementContractorList.json.js +48 -0
  180. package/dist/i18n/es_US/Contractor.ManagementContractorList.json.js.map +1 -0
  181. package/dist/i18n/es_US/Contractor.NewHireReport.json.js +22 -0
  182. package/dist/i18n/es_US/Contractor.NewHireReport.json.js.map +1 -0
  183. package/dist/i18n/es_US/Contractor.OnboardingSummary.json.js +10 -0
  184. package/dist/i18n/es_US/Contractor.OnboardingSummary.json.js.map +1 -0
  185. package/dist/i18n/es_US/Contractor.PaymentMethod.json.js +20 -0
  186. package/dist/i18n/es_US/Contractor.PaymentMethod.json.js.map +1 -0
  187. package/dist/i18n/es_US/Contractor.Payments.CreateHistoricalPayment.json.js +34 -0
  188. package/dist/i18n/es_US/Contractor.Payments.CreateHistoricalPayment.json.js.map +1 -0
  189. package/dist/i18n/es_US/Contractor.Payments.CreatePayment.json.js +42 -0
  190. package/dist/i18n/es_US/Contractor.Payments.CreatePayment.json.js.map +1 -0
  191. package/dist/i18n/es_US/Contractor.Payments.HistoricalPaymentSummary.json.js +42 -0
  192. package/dist/i18n/es_US/Contractor.Payments.HistoricalPaymentSummary.json.js.map +1 -0
  193. package/dist/i18n/es_US/Contractor.Payments.PaymentHistory.json.js +26 -0
  194. package/dist/i18n/es_US/Contractor.Payments.PaymentHistory.json.js.map +1 -0
  195. package/dist/i18n/es_US/Contractor.Payments.PaymentStatement.json.js +22 -0
  196. package/dist/i18n/es_US/Contractor.Payments.PaymentStatement.json.js.map +1 -0
  197. package/dist/i18n/es_US/Contractor.Payments.PaymentSummary.json.js +54 -0
  198. package/dist/i18n/es_US/Contractor.Payments.PaymentSummary.json.js.map +1 -0
  199. package/dist/i18n/es_US/Contractor.Payments.PaymentsList.json.js +32 -0
  200. package/dist/i18n/es_US/Contractor.Payments.PaymentsList.json.js.map +1 -0
  201. package/dist/i18n/es_US/Contractor.Profile.json.js +18 -0
  202. package/dist/i18n/es_US/Contractor.Profile.json.js.map +1 -0
  203. package/dist/i18n/es_US/Contractor.SelectContractors.json.js +18 -0
  204. package/dist/i18n/es_US/Contractor.SelectContractors.json.js.map +1 -0
  205. package/dist/i18n/es_US/Contractor.SignatureForm.json.js +34 -0
  206. package/dist/i18n/es_US/Contractor.SignatureForm.json.js.map +1 -0
  207. package/dist/i18n/es_US/Contractor.Submit.json.js +26 -0
  208. package/dist/i18n/es_US/Contractor.Submit.json.js.map +1 -0
  209. package/dist/i18n/es_US/Employee.BankAccount.json.js +14 -0
  210. package/dist/i18n/es_US/Employee.BankAccount.json.js.map +1 -0
  211. package/dist/i18n/es_US/Employee.BankFormBody.json.js +12 -0
  212. package/dist/i18n/es_US/Employee.BankFormBody.json.js.map +1 -0
  213. package/dist/i18n/es_US/Employee.Compensation.json.js +68 -0
  214. package/dist/i18n/es_US/Employee.Compensation.json.js.map +1 -0
  215. package/dist/i18n/es_US/Employee.Dashboard.json.js +12 -0
  216. package/dist/i18n/es_US/Employee.Dashboard.json.js.map +1 -0
  217. package/dist/i18n/es_US/Employee.Deductions.json.js +142 -0
  218. package/dist/i18n/es_US/Employee.Deductions.json.js.map +1 -0
  219. package/dist/i18n/es_US/Employee.DeductionsForm.json.js +24 -0
  220. package/dist/i18n/es_US/Employee.DeductionsForm.json.js.map +1 -0
  221. package/dist/i18n/es_US/Employee.DocumentManager.json.js +10 -0
  222. package/dist/i18n/es_US/Employee.DocumentManager.json.js.map +1 -0
  223. package/dist/i18n/es_US/Employee.DocumentSigner.json.js +28 -0
  224. package/dist/i18n/es_US/Employee.DocumentSigner.json.js.map +1 -0
  225. package/dist/i18n/es_US/Employee.EmployeeDocuments.json.js +10 -0
  226. package/dist/i18n/es_US/Employee.EmployeeDocuments.json.js.map +1 -0
  227. package/dist/i18n/es_US/Employee.EmployeeList.json.js +30 -0
  228. package/dist/i18n/es_US/Employee.EmployeeList.json.js.map +1 -0
  229. package/dist/i18n/es_US/Employee.EmploymentEligibility.json.js +22 -0
  230. package/dist/i18n/es_US/Employee.EmploymentEligibility.json.js.map +1 -0
  231. package/dist/i18n/es_US/Employee.FederalTaxes.json.js +46 -0
  232. package/dist/i18n/es_US/Employee.FederalTaxes.json.js.map +1 -0
  233. package/dist/i18n/es_US/Employee.FederalTaxesView.json.js +38 -0
  234. package/dist/i18n/es_US/Employee.FederalTaxesView.json.js.map +1 -0
  235. package/dist/i18n/es_US/Employee.HomeAddress.json.js +24 -0
  236. package/dist/i18n/es_US/Employee.HomeAddress.json.js.map +1 -0
  237. package/dist/i18n/es_US/Employee.I9SignatureForm.json.js +64 -0
  238. package/dist/i18n/es_US/Employee.I9SignatureForm.json.js.map +1 -0
  239. package/dist/i18n/es_US/Employee.Landing.json.js +16 -0
  240. package/dist/i18n/es_US/Employee.Landing.json.js.map +1 -0
  241. package/dist/i18n/es_US/Employee.Management.Compensation.json.js +66 -0
  242. package/dist/i18n/es_US/Employee.Management.Compensation.json.js.map +1 -0
  243. package/dist/i18n/es_US/Employee.Management.Deductions.json.js +26 -0
  244. package/dist/i18n/es_US/Employee.Management.Deductions.json.js.map +1 -0
  245. package/dist/i18n/es_US/Employee.Management.Documents.json.js +18 -0
  246. package/dist/i18n/es_US/Employee.Management.Documents.json.js.map +1 -0
  247. package/dist/i18n/es_US/Employee.Management.FederalTaxes.json.js +42 -0
  248. package/dist/i18n/es_US/Employee.Management.FederalTaxes.json.js.map +1 -0
  249. package/dist/i18n/es_US/Employee.Management.HomeAddress.json.js +56 -0
  250. package/dist/i18n/es_US/Employee.Management.HomeAddress.json.js.map +1 -0
  251. package/dist/i18n/es_US/Employee.Management.PaymentMethod.json.js +24 -0
  252. package/dist/i18n/es_US/Employee.Management.PaymentMethod.json.js.map +1 -0
  253. package/dist/i18n/es_US/Employee.Management.PaymentMethodBankForm.json.js +12 -0
  254. package/dist/i18n/es_US/Employee.Management.PaymentMethodBankForm.json.js.map +1 -0
  255. package/dist/i18n/es_US/Employee.Management.PaymentMethodSplitForm.json.js +22 -0
  256. package/dist/i18n/es_US/Employee.Management.PaymentMethodSplitForm.json.js.map +1 -0
  257. package/dist/i18n/es_US/Employee.Management.Paystubs.json.js +28 -0
  258. package/dist/i18n/es_US/Employee.Management.Paystubs.json.js.map +1 -0
  259. package/dist/i18n/es_US/Employee.Management.Profile.json.js +16 -0
  260. package/dist/i18n/es_US/Employee.Management.Profile.json.js.map +1 -0
  261. package/dist/i18n/es_US/Employee.Management.StateTaxes.json.js +16 -0
  262. package/dist/i18n/es_US/Employee.Management.StateTaxes.json.js.map +1 -0
  263. package/dist/i18n/es_US/Employee.Management.WorkAddress.json.js +52 -0
  264. package/dist/i18n/es_US/Employee.Management.WorkAddress.json.js.map +1 -0
  265. package/dist/i18n/es_US/Employee.ManagementEmployeeList.json.js +26 -0
  266. package/dist/i18n/es_US/Employee.ManagementEmployeeList.json.js.map +1 -0
  267. package/dist/i18n/es_US/Employee.OnboardingSummary.json.js +22 -0
  268. package/dist/i18n/es_US/Employee.OnboardingSummary.json.js.map +1 -0
  269. package/dist/i18n/es_US/Employee.PaySchedules.json.js +12 -0
  270. package/dist/i18n/es_US/Employee.PaySchedules.json.js.map +1 -0
  271. package/dist/i18n/es_US/Employee.PaymentMethod.json.js +68 -0
  272. package/dist/i18n/es_US/Employee.PaymentMethod.json.js.map +1 -0
  273. package/dist/i18n/es_US/Employee.Profile.json.js +32 -0
  274. package/dist/i18n/es_US/Employee.Profile.json.js.map +1 -0
  275. package/dist/i18n/es_US/Employee.SplitPaycheck.json.js +26 -0
  276. package/dist/i18n/es_US/Employee.SplitPaycheck.json.js.map +1 -0
  277. package/dist/i18n/es_US/Employee.SplitPaymentsFormBody.json.js +22 -0
  278. package/dist/i18n/es_US/Employee.SplitPaymentsFormBody.json.js.map +1 -0
  279. package/dist/i18n/es_US/Employee.StateTaxes.json.js +14 -0
  280. package/dist/i18n/es_US/Employee.StateTaxes.json.js.map +1 -0
  281. package/dist/i18n/es_US/Employee.StateTaxesView.json.js +12 -0
  282. package/dist/i18n/es_US/Employee.StateTaxesView.json.js.map +1 -0
  283. package/dist/i18n/es_US/Employee.Terminations.TerminateEmployee.json.js +18 -0
  284. package/dist/i18n/es_US/Employee.Terminations.TerminateEmployee.json.js.map +1 -0
  285. package/dist/i18n/es_US/Employee.Terminations.TerminationFlow.json.js +12 -0
  286. package/dist/i18n/es_US/Employee.Terminations.TerminationFlow.json.js.map +1 -0
  287. package/dist/i18n/es_US/Employee.Terminations.TerminationSummary.json.js +20 -0
  288. package/dist/i18n/es_US/Employee.Terminations.TerminationSummary.json.js.map +1 -0
  289. package/dist/i18n/es_US/InformationRequests.InformationRequestForm.json.js +20 -0
  290. package/dist/i18n/es_US/InformationRequests.InformationRequestForm.json.js.map +1 -0
  291. package/dist/i18n/es_US/InformationRequests.InformationRequestList.json.js +18 -0
  292. package/dist/i18n/es_US/InformationRequests.InformationRequestList.json.js.map +1 -0
  293. package/dist/i18n/es_US/InformationRequests.json.js +8 -0
  294. package/dist/i18n/es_US/InformationRequests.json.js.map +1 -0
  295. package/dist/i18n/es_US/Payroll.Common.json.js +8 -0
  296. package/dist/i18n/es_US/Payroll.Common.json.js.map +1 -0
  297. package/dist/i18n/es_US/Payroll.ConfirmWireDetailsBanner.json.js +14 -0
  298. package/dist/i18n/es_US/Payroll.ConfirmWireDetailsBanner.json.js.map +1 -0
  299. package/dist/i18n/es_US/Payroll.ConfirmWireDetailsForm.json.js +26 -0
  300. package/dist/i18n/es_US/Payroll.ConfirmWireDetailsForm.json.js.map +1 -0
  301. package/dist/i18n/es_US/Payroll.Dismissal.json.js +16 -0
  302. package/dist/i18n/es_US/Payroll.Dismissal.json.js.map +1 -0
  303. package/dist/i18n/es_US/Payroll.EmployeeSelection.json.js +8 -0
  304. package/dist/i18n/es_US/Payroll.EmployeeSelection.json.js.map +1 -0
  305. package/dist/i18n/es_US/Payroll.GrossUpModal.json.js +26 -0
  306. package/dist/i18n/es_US/Payroll.GrossUpModal.json.js.map +1 -0
  307. package/dist/i18n/es_US/Payroll.OffCycle.json.js +8 -0
  308. package/dist/i18n/es_US/Payroll.OffCycle.json.js.map +1 -0
  309. package/dist/i18n/es_US/Payroll.OffCycleCreation.json.js +16 -0
  310. package/dist/i18n/es_US/Payroll.OffCycleCreation.json.js.map +1 -0
  311. package/dist/i18n/es_US/Payroll.OffCycleDeductionsSetting.json.js +8 -0
  312. package/dist/i18n/es_US/Payroll.OffCycleDeductionsSetting.json.js.map +1 -0
  313. package/dist/i18n/es_US/Payroll.OffCyclePayPeriodDateForm.json.js +14 -0
  314. package/dist/i18n/es_US/Payroll.OffCyclePayPeriodDateForm.json.js.map +1 -0
  315. package/dist/i18n/es_US/Payroll.OffCycleReasonSelection.json.js +12 -0
  316. package/dist/i18n/es_US/Payroll.OffCycleReasonSelection.json.js.map +1 -0
  317. package/dist/i18n/es_US/Payroll.OffCycleTaxWithholding.json.js +16 -0
  318. package/dist/i18n/es_US/Payroll.OffCycleTaxWithholding.json.js.map +1 -0
  319. package/dist/i18n/es_US/Payroll.PayrollBlocker.json.js +34 -0
  320. package/dist/i18n/es_US/Payroll.PayrollBlocker.json.js.map +1 -0
  321. package/dist/i18n/es_US/Payroll.PayrollConfiguration.json.js +44 -0
  322. package/dist/i18n/es_US/Payroll.PayrollConfiguration.json.js.map +1 -0
  323. package/dist/i18n/es_US/Payroll.PayrollEditEmployee.json.js +66 -0
  324. package/dist/i18n/es_US/Payroll.PayrollEditEmployee.json.js.map +1 -0
  325. package/dist/i18n/es_US/Payroll.PayrollHistory.json.js +22 -0
  326. package/dist/i18n/es_US/Payroll.PayrollHistory.json.js.map +1 -0
  327. package/dist/i18n/es_US/Payroll.PayrollLanding.json.js +16 -0
  328. package/dist/i18n/es_US/Payroll.PayrollLanding.json.js.map +1 -0
  329. package/dist/i18n/es_US/Payroll.PayrollList.json.js +38 -0
  330. package/dist/i18n/es_US/Payroll.PayrollList.json.js.map +1 -0
  331. package/dist/i18n/es_US/Payroll.PayrollOverview.json.js +70 -0
  332. package/dist/i18n/es_US/Payroll.PayrollOverview.json.js.map +1 -0
  333. package/dist/i18n/es_US/Payroll.PayrollReceipts.json.js +20 -0
  334. package/dist/i18n/es_US/Payroll.PayrollReceipts.json.js.map +1 -0
  335. package/dist/i18n/es_US/Payroll.RecoveryCasesList.json.js +20 -0
  336. package/dist/i18n/es_US/Payroll.RecoveryCasesList.json.js.map +1 -0
  337. package/dist/i18n/es_US/Payroll.RecoveryCasesResubmit.json.js +8 -0
  338. package/dist/i18n/es_US/Payroll.RecoveryCasesResubmit.json.js.map +1 -0
  339. package/dist/i18n/es_US/Payroll.Transition.json.js +8 -0
  340. package/dist/i18n/es_US/Payroll.Transition.json.js.map +1 -0
  341. package/dist/i18n/es_US/Payroll.TransitionCreation.json.js +20 -0
  342. package/dist/i18n/es_US/Payroll.TransitionCreation.json.js.map +1 -0
  343. package/dist/i18n/es_US/Payroll.TransitionPayrollAlert.json.js +18 -0
  344. package/dist/i18n/es_US/Payroll.TransitionPayrollAlert.json.js.map +1 -0
  345. package/dist/i18n/es_US/Payroll.WireInstructions.json.js +30 -0
  346. package/dist/i18n/es_US/Payroll.WireInstructions.json.js.map +1 -0
  347. package/dist/i18n/es_US/common.json.js +44 -0
  348. package/dist/i18n/es_US/common.json.js.map +1 -0
  349. package/dist/i18n/types.d.ts +262 -6
  350. package/dist/index.d.ts +2 -2
  351. package/dist/models/external.d.ts +23 -0
  352. package/dist/style.css +1 -1
  353. package/docs/guides/endpoint-inventory.json +5 -0
  354. package/package.json +10 -10
package/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.55.6](https://github.com/Gusto/embedded-react-sdk/compare/v0.55.5...v0.55.6) (2026-09-08)
4
+
5
+ ### Fixes
6
+
7
+ - Default the payment method to check when an employee has no bank account on file ([#2683](https://github.com/Gusto/embedded-react-sdk/issues/2683))
8
+ - Give contractor row action-menu buttons a row-specific accessible name ([#2647](https://github.com/Gusto/embedded-react-sdk/issues/2647))
9
+ - Add an accessible label to the completed-step checkmark icon ([#2672](https://github.com/Gusto/embedded-react-sdk/issues/2672))
10
+ - Freeze `PaySchedule`'s initial routing decision so it no longer changes mid-flow ([#2703](https://github.com/Gusto/embedded-react-sdk/issues/2703))
11
+ - Right-align numeric `DataView` columns (currency, hours, tax rate) that aren't the last column in the table ([#2648](https://github.com/Gusto/embedded-react-sdk/issues/2648))
12
+ - Add helper text under the off-cycle Payment date ([#2701](https://github.com/Gusto/embedded-react-sdk/issues/2701))
13
+ - Recover from a failed payroll calculation instead of stalling forever ([#2700](https://github.com/Gusto/embedded-react-sdk/issues/2700))
14
+ - Include reimbursements in the employee take-home Payment total ([#2699](https://github.com/Gusto/embedded-react-sdk/issues/2699))
15
+ - Persist `0` when an additional-earning field is cleared instead of dropping it ([#2649](https://github.com/Gusto/embedded-react-sdk/issues/2649))
16
+ - Make the cancel payroll dialog describe cancelling ([#2652](https://github.com/Gusto/embedded-react-sdk/issues/2652))
17
+ - Fix payroll calculation, submission, and check-generation screens getting stuck (e.g. an unresolving "Loading payroll..." state) when a status update was missed ([#2715](https://github.com/Gusto/embedded-react-sdk/issues/2715))
18
+ - Cap the hourly rate input at the server's inline validation limit ([#2710](https://github.com/Gusto/embedded-react-sdk/issues/2710))
19
+ - Save a contractor's email address when edited from the management Profile form ([#2696](https://github.com/Gusto/embedded-react-sdk/issues/2696))
20
+
21
+ ### Chores & Maintenance
22
+
23
+ - Bump `@gusto/embedded-api` to `0.3.0-rc.2` ([#2678](https://github.com/Gusto/embedded-react-sdk/issues/2678))
24
+ - Bump dependencies (`react-error-boundary`, `react-hook-form`)
25
+ - Bump dev dependencies (`react-router-dom`, `@typescript-eslint/parser`, `typescript-eslint`, `json-schema-to-typescript`, `lint-staged`, `tsx`)
26
+
27
+ ## [0.55.5](https://github.com/Gusto/embedded-react-sdk/compare/v0.55.4...v0.55.5) (2026-08-31)
28
+
29
+ ### Fixes
30
+
31
+ - Fix `InformationRequests` modal visibility so it is driven by the component's state machine ([#2662](https://github.com/Gusto/embedded-react-sdk/issues/2662))
32
+
3
33
  ## [0.55.4](https://github.com/Gusto/embedded-react-sdk/compare/v0.55.3...v0.55.4) (2026-08-31)
4
34
 
5
35
  ### Features & Enhancements
@@ -1,4 +1,4 @@
1
- import { jsx as r } from "react/jsx-runtime";
1
+ import { jsx as a } from "react/jsx-runtime";
2
2
  import { useId as T, useState as E } from "react";
3
3
  import F from "classnames";
4
4
  import { useTranslation as S } from "react-i18next";
@@ -6,26 +6,26 @@ import { useSelectionState as A } from "../useSelectionState.js";
6
6
  import h from "./DataTable.module.scss.js";
7
7
  import { useComponentContext as B } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
8
8
  import { VisuallyHidden as m } from "../../VisuallyHidden/VisuallyHidden.js";
9
- function f(n, o) {
10
- return !o || o === "start" ? n : /* @__PURE__ */ r("div", { className: h.cellEnd, children: n });
9
+ function d(r, o) {
10
+ return !o || o === "start" ? r : /* @__PURE__ */ a("div", { className: h.cellEnd, children: r });
11
11
  }
12
- function G(n, o) {
12
+ function G(r, o) {
13
13
  if (o.render)
14
- return o.render(n);
14
+ return o.render(r);
15
15
  if (o.key) {
16
16
  const i = o.key;
17
- return String(n[i] ?? "");
17
+ return String(r[i] ?? "");
18
18
  }
19
19
  return "";
20
20
  }
21
21
  const Y = ({
22
- label: n,
22
+ label: r,
23
23
  data: o,
24
24
  columns: i,
25
- itemMenu: d,
25
+ itemMenu: u,
26
26
  onSelect: l,
27
27
  onSelectAll: R,
28
- getIsItemSelected: u,
28
+ getIsItemSelected: p,
29
29
  hideSelectAll: v,
30
30
  emptyState: b,
31
31
  footer: k,
@@ -33,18 +33,18 @@ const Y = ({
33
33
  selectionMode: C = "multiple",
34
34
  isFetching: g
35
35
  }) => {
36
- const p = B(), { t: c } = S("common"), $ = T(), [w, H] = E(null), { allSelected: L } = A(o, u), x = [
36
+ const y = B(), { t: c } = S("common"), $ = T(), [w, H] = E(null), { allSelected: L } = A(o, p), x = [
37
37
  ...l ? [
38
38
  {
39
39
  key: "select-header",
40
- content: C === "multiple" && u && !v && o.length > 0 ? (
40
+ content: C === "multiple" && p && !v && o.length > 0 ? (
41
41
  // Stop propagation so the surrounding react-aria-components
42
42
  // <Column> press handler doesn't intercept the checkbox click
43
43
  // and desync the controlled DOM state. The inner <input> is
44
44
  // the actual interactive element; this span is a propagation
45
45
  // shield, not a click target itself.
46
46
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
47
- /* @__PURE__ */ r(
47
+ /* @__PURE__ */ a(
48
48
  "span",
49
49
  {
50
50
  onClick: (e) => {
@@ -56,8 +56,8 @@ const Y = ({
56
56
  onMouseDown: (e) => {
57
57
  e.stopPropagation();
58
58
  },
59
- children: /* @__PURE__ */ r(
60
- p.Checkbox,
59
+ children: /* @__PURE__ */ a(
60
+ y.Checkbox,
61
61
  {
62
62
  value: L,
63
63
  onChange: (e) => R?.(e, o),
@@ -67,29 +67,32 @@ const Y = ({
67
67
  )
68
68
  }
69
69
  )
70
- ) : /* @__PURE__ */ r(m, { children: c("table.selectRowHeader") })
70
+ ) : /* @__PURE__ */ a(m, { children: c("table.selectRowHeader") })
71
71
  }
72
72
  ] : [],
73
73
  ...i.map((e, t) => ({
74
74
  key: typeof e.key == "string" ? e.key : `header-${t}`,
75
- content: f(e.title, e.justify)
75
+ content: d(e.title, e.justify)
76
76
  })),
77
- ...d ? [
77
+ ...u ? [
78
78
  {
79
79
  key: "actions-header",
80
- content: /* @__PURE__ */ r(m, { children: c("table.actionsColumnHeader") })
80
+ content: d(
81
+ /* @__PURE__ */ a(m, { children: c("table.actionsColumnHeader") }),
82
+ "end"
83
+ )
81
84
  }
82
85
  ] : []
83
86
  ], N = (e, t) => {
84
87
  H(t), l?.(e, !0);
85
88
  }, P = (e, t) => {
86
89
  if (C === "single") {
87
- const a = u?.(e) ?? w === t;
88
- return /* @__PURE__ */ r(
89
- p.Radio,
90
+ const n = p?.(e) ?? w === t;
91
+ return /* @__PURE__ */ a(
92
+ y.Radio,
90
93
  {
91
94
  name: $,
92
- value: a,
95
+ value: n,
93
96
  onChange: () => {
94
97
  N(e, t);
95
98
  },
@@ -98,13 +101,13 @@ const Y = ({
98
101
  }
99
102
  );
100
103
  }
101
- const s = u?.(e) ?? !1;
102
- return /* @__PURE__ */ r(
103
- p.Checkbox,
104
+ const s = p?.(e) ?? !1;
105
+ return /* @__PURE__ */ a(
106
+ y.Checkbox,
104
107
  {
105
108
  value: s,
106
- onChange: (a) => {
107
- l?.(e, a);
109
+ onChange: (n) => {
110
+ l?.(e, n);
108
111
  },
109
112
  label: c("table.selectRowLabel"),
110
113
  shouldVisuallyHideLabel: !0
@@ -118,14 +121,14 @@ const Y = ({
118
121
  content: P(e, t)
119
122
  }
120
123
  ] : [],
121
- ...i.map((a, y) => ({
122
- key: typeof a.key == "string" ? a.key : `cell-${y}`,
123
- content: f(G(e, a), a.justify)
124
+ ...i.map((n, f) => ({
125
+ key: typeof n.key == "string" ? n.key : `cell-${f}`,
126
+ content: d(G(e, n), n.justify)
124
127
  })),
125
- ...d ? [
128
+ ...u ? [
126
129
  {
127
130
  key: `menu-${t}`,
128
- content: d(e)
131
+ content: d(u(e), "end")
129
132
  }
130
133
  ] : []
131
134
  ];
@@ -139,26 +142,26 @@ const Y = ({
139
142
  return l && t.push({
140
143
  key: "footer-select",
141
144
  content: ""
142
- }), i.forEach((s, a) => {
143
- const y = typeof s.key == "string" ? s.key : `column-${a}`;
145
+ }), i.forEach((s, n) => {
146
+ const f = typeof s.key == "string" ? s.key : `column-${n}`;
144
147
  t.push({
145
- key: `footer-${y}`,
146
- content: f(e[y] || "", s.justify)
148
+ key: `footer-${f}`,
149
+ content: d(e[f] || "", s.justify)
147
150
  });
148
- }), d && t.push({
151
+ }), u && t.push({
149
152
  key: "footer-actions",
150
153
  content: ""
151
154
  }), t;
152
155
  })();
153
- return /* @__PURE__ */ r(
156
+ return /* @__PURE__ */ a(
154
157
  "div",
155
158
  {
156
159
  className: F(h.tableWrapper, g && h.isFetching),
157
160
  "aria-busy": !!g,
158
- children: /* @__PURE__ */ r(
159
- p.Table,
161
+ children: /* @__PURE__ */ a(
162
+ y.Table,
160
163
  {
161
- "aria-label": n,
164
+ "aria-label": r,
162
165
  "data-testid": "data-table",
163
166
  headers: x,
164
167
  rows: V,
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.js","sources":["../../../../../src/components/Common/DataView/DataTable/DataTable.tsx"],"sourcesContent":["import { useId, useState } from 'react'\nimport cn from 'classnames'\nimport { useTranslation } from 'react-i18next'\nimport type { useDataViewPropReturn, SelectionMode } from '../useDataView'\nimport { useSelectionState } from '../useSelectionState'\nimport type { TableData, TableRow, TableProps } from '../../UI/Table/TableTypes'\nimport { VisuallyHidden } from '../../VisuallyHidden'\nimport styles from './DataTable.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nfunction withJustify(content: React.ReactNode, justify?: 'start' | 'end') {\n if (!justify || justify === 'start') return content\n return <div className={styles.cellEnd}>{content}</div>\n}\n\n/** @internal */\nexport type DataTableProps<T> = {\n label: string\n columns: useDataViewPropReturn<T>['columns']\n data: useDataViewPropReturn<T>['data']\n itemMenu?: useDataViewPropReturn<T>['itemMenu']\n onSelect?: useDataViewPropReturn<T>['onSelect']\n onSelectAll?: (checked: boolean, visibleData: T[]) => void\n getIsItemSelected?: (item: T) => boolean\n hideSelectAll?: useDataViewPropReturn<T>['hideSelectAll']\n emptyState?: useDataViewPropReturn<T>['emptyState']\n footer?: useDataViewPropReturn<T>['footer']\n isWithinBox?: TableProps['isWithinBox']\n selectionMode?: SelectionMode\n isFetching?: useDataViewPropReturn<T>['isFetching']\n}\n\nfunction getCellContent<T>(\n item: T,\n column: { key?: string | keyof T; render?: (item: T) => React.ReactNode },\n) {\n if (column.render) {\n return column.render(item)\n }\n\n if (column.key) {\n const key = column.key as keyof T\n return String(item[key] ?? '')\n }\n\n return ''\n}\n\n/** @internal */\nexport const DataTable = <T,>({\n label,\n data,\n columns,\n itemMenu,\n onSelect,\n onSelectAll,\n getIsItemSelected,\n hideSelectAll,\n emptyState,\n footer,\n isWithinBox,\n selectionMode = 'multiple',\n isFetching,\n}: DataTableProps<T>) => {\n const Components = useComponentContext()\n const { t } = useTranslation('common')\n const radioGroupName = useId()\n const [selectedRadioIndex, setSelectedRadioIndex] = useState<number | null>(null)\n const { allSelected } = useSelectionState(data, getIsItemSelected)\n\n const headers: TableData[] = [\n ...(onSelect\n ? [\n {\n key: 'select-header',\n content:\n selectionMode === 'multiple' &&\n getIsItemSelected &&\n !hideSelectAll &&\n data.length > 0 ? (\n // Stop propagation so the surrounding react-aria-components\n // <Column> press handler doesn't intercept the checkbox click\n // and desync the controlled DOM state. The inner <input> is\n // the actual interactive element; this span is a propagation\n // shield, not a click target itself.\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions\n <span\n onClick={e => {\n e.stopPropagation()\n }}\n onPointerDown={e => {\n e.stopPropagation()\n }}\n onMouseDown={e => {\n e.stopPropagation()\n }}\n >\n <Components.Checkbox\n value={allSelected}\n onChange={(checked: boolean) => onSelectAll?.(checked, data)}\n label={t('table.selectAllRowsLabel')}\n shouldVisuallyHideLabel\n />\n </span>\n ) : (\n <VisuallyHidden>{t('table.selectRowHeader')}</VisuallyHidden>\n ),\n },\n ]\n : []),\n ...columns.map((column, index) => ({\n key: typeof column.key === 'string' ? column.key : `header-${index}`,\n content: withJustify(column.title, column.justify),\n })),\n ...(itemMenu\n ? [\n {\n key: 'actions-header',\n content: <VisuallyHidden>{t('table.actionsColumnHeader')}</VisuallyHidden>,\n },\n ]\n : []),\n ]\n\n const handleRadioSelect = (item: T, rowIndex: number) => {\n setSelectedRadioIndex(rowIndex)\n onSelect?.(item, true)\n }\n\n const renderSelectionControl = (item: T, rowIndex: number) => {\n if (selectionMode === 'single') {\n const isSelected = getIsItemSelected?.(item) ?? selectedRadioIndex === rowIndex\n return (\n <Components.Radio\n name={radioGroupName}\n value={isSelected}\n onChange={() => {\n handleRadioSelect(item, rowIndex)\n }}\n label={t('table.selectRowLabel')}\n shouldVisuallyHideLabel\n />\n )\n }\n\n const isSelected = getIsItemSelected?.(item) ?? false\n return (\n <Components.Checkbox\n value={isSelected}\n onChange={(checked: boolean) => {\n onSelect?.(item, checked)\n }}\n label={t('table.selectRowLabel')}\n shouldVisuallyHideLabel\n />\n )\n }\n\n const rows: TableRow[] = data.map((item, rowIndex) => {\n const rowData: TableData[] = [\n ...(onSelect\n ? [\n {\n key: `select-${rowIndex}`,\n content: renderSelectionControl(item, rowIndex),\n },\n ]\n : []),\n ...columns.map((column, colIndex) => {\n return {\n key: typeof column.key === 'string' ? column.key : `cell-${colIndex}`,\n content: withJustify(getCellContent(item, column), column.justify),\n }\n }),\n ...(itemMenu\n ? [\n {\n key: `menu-${rowIndex}`,\n content: itemMenu(item),\n },\n ]\n : []),\n ]\n\n return {\n key: `row-${rowIndex}`,\n data: rowData,\n }\n })\n\n const buildFooterData = () => {\n if (!footer) return undefined\n\n const footerContent = footer()\n const footerCells: TableData[] = []\n\n // Add select column footer (empty)\n if (onSelect) {\n footerCells.push({\n key: 'footer-select',\n content: '',\n })\n }\n\n // Add data column footers\n columns.forEach((column, index) => {\n const columnKey = typeof column.key === 'string' ? column.key : `column-${index}`\n footerCells.push({\n key: `footer-${columnKey}`,\n content: withJustify(footerContent[columnKey] || '', column.justify),\n })\n })\n\n // Add actions column footer (empty)\n if (itemMenu) {\n footerCells.push({\n key: 'footer-actions',\n content: '',\n })\n }\n\n return footerCells\n }\n\n const footerData = buildFooterData()\n\n return (\n <div\n className={cn(styles.tableWrapper, isFetching && styles.isFetching)}\n aria-busy={Boolean(isFetching)}\n >\n <Components.Table\n aria-label={label}\n data-testid=\"data-table\"\n headers={headers}\n rows={rows}\n footer={footerData}\n emptyState={emptyState ? emptyState() : undefined}\n isWithinBox={isWithinBox}\n hasCheckboxColumn={!!onSelect}\n />\n </div>\n )\n}\n"],"names":["withJustify","content","justify","jsx","styles","getCellContent","item","column","key","DataTable","label","data","columns","itemMenu","onSelect","onSelectAll","getIsItemSelected","hideSelectAll","emptyState","footer","isWithinBox","selectionMode","isFetching","Components","useComponentContext","t","useTranslation","radioGroupName","useId","selectedRadioIndex","setSelectedRadioIndex","useState","allSelected","useSelectionState","headers","checked","VisuallyHidden","index","handleRadioSelect","rowIndex","renderSelectionControl","isSelected","rows","rowData","colIndex","footerData","footerContent","footerCells","columnKey","cn"],"mappings":"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"}
1
+ {"version":3,"file":"DataTable.js","sources":["../../../../../src/components/Common/DataView/DataTable/DataTable.tsx"],"sourcesContent":["import { useId, useState } from 'react'\nimport cn from 'classnames'\nimport { useTranslation } from 'react-i18next'\nimport type { useDataViewPropReturn, SelectionMode } from '../useDataView'\nimport { useSelectionState } from '../useSelectionState'\nimport type { TableData, TableRow, TableProps } from '../../UI/Table/TableTypes'\nimport { VisuallyHidden } from '../../VisuallyHidden'\nimport styles from './DataTable.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nfunction withJustify(content: React.ReactNode, justify?: 'start' | 'end') {\n if (!justify || justify === 'start') return content\n return <div className={styles.cellEnd}>{content}</div>\n}\n\n/** @internal */\nexport type DataTableProps<T> = {\n label: string\n columns: useDataViewPropReturn<T>['columns']\n data: useDataViewPropReturn<T>['data']\n itemMenu?: useDataViewPropReturn<T>['itemMenu']\n onSelect?: useDataViewPropReturn<T>['onSelect']\n onSelectAll?: (checked: boolean, visibleData: T[]) => void\n getIsItemSelected?: (item: T) => boolean\n hideSelectAll?: useDataViewPropReturn<T>['hideSelectAll']\n emptyState?: useDataViewPropReturn<T>['emptyState']\n footer?: useDataViewPropReturn<T>['footer']\n isWithinBox?: TableProps['isWithinBox']\n selectionMode?: SelectionMode\n isFetching?: useDataViewPropReturn<T>['isFetching']\n}\n\nfunction getCellContent<T>(\n item: T,\n column: { key?: string | keyof T; render?: (item: T) => React.ReactNode },\n) {\n if (column.render) {\n return column.render(item)\n }\n\n if (column.key) {\n const key = column.key as keyof T\n return String(item[key] ?? '')\n }\n\n return ''\n}\n\n/** @internal */\nexport const DataTable = <T,>({\n label,\n data,\n columns,\n itemMenu,\n onSelect,\n onSelectAll,\n getIsItemSelected,\n hideSelectAll,\n emptyState,\n footer,\n isWithinBox,\n selectionMode = 'multiple',\n isFetching,\n}: DataTableProps<T>) => {\n const Components = useComponentContext()\n const { t } = useTranslation('common')\n const radioGroupName = useId()\n const [selectedRadioIndex, setSelectedRadioIndex] = useState<number | null>(null)\n const { allSelected } = useSelectionState(data, getIsItemSelected)\n\n const headers: TableData[] = [\n ...(onSelect\n ? [\n {\n key: 'select-header',\n content:\n selectionMode === 'multiple' &&\n getIsItemSelected &&\n !hideSelectAll &&\n data.length > 0 ? (\n // Stop propagation so the surrounding react-aria-components\n // <Column> press handler doesn't intercept the checkbox click\n // and desync the controlled DOM state. The inner <input> is\n // the actual interactive element; this span is a propagation\n // shield, not a click target itself.\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions\n <span\n onClick={e => {\n e.stopPropagation()\n }}\n onPointerDown={e => {\n e.stopPropagation()\n }}\n onMouseDown={e => {\n e.stopPropagation()\n }}\n >\n <Components.Checkbox\n value={allSelected}\n onChange={(checked: boolean) => onSelectAll?.(checked, data)}\n label={t('table.selectAllRowsLabel')}\n shouldVisuallyHideLabel\n />\n </span>\n ) : (\n <VisuallyHidden>{t('table.selectRowHeader')}</VisuallyHidden>\n ),\n },\n ]\n : []),\n ...columns.map((column, index) => ({\n key: typeof column.key === 'string' ? column.key : `header-${index}`,\n content: withJustify(column.title, column.justify),\n })),\n ...(itemMenu\n ? [\n {\n key: 'actions-header',\n content: withJustify(\n <VisuallyHidden>{t('table.actionsColumnHeader')}</VisuallyHidden>,\n 'end',\n ),\n },\n ]\n : []),\n ]\n\n const handleRadioSelect = (item: T, rowIndex: number) => {\n setSelectedRadioIndex(rowIndex)\n onSelect?.(item, true)\n }\n\n const renderSelectionControl = (item: T, rowIndex: number) => {\n if (selectionMode === 'single') {\n const isSelected = getIsItemSelected?.(item) ?? selectedRadioIndex === rowIndex\n return (\n <Components.Radio\n name={radioGroupName}\n value={isSelected}\n onChange={() => {\n handleRadioSelect(item, rowIndex)\n }}\n label={t('table.selectRowLabel')}\n shouldVisuallyHideLabel\n />\n )\n }\n\n const isSelected = getIsItemSelected?.(item) ?? false\n return (\n <Components.Checkbox\n value={isSelected}\n onChange={(checked: boolean) => {\n onSelect?.(item, checked)\n }}\n label={t('table.selectRowLabel')}\n shouldVisuallyHideLabel\n />\n )\n }\n\n const rows: TableRow[] = data.map((item, rowIndex) => {\n const rowData: TableData[] = [\n ...(onSelect\n ? [\n {\n key: `select-${rowIndex}`,\n content: renderSelectionControl(item, rowIndex),\n },\n ]\n : []),\n ...columns.map((column, colIndex) => {\n return {\n key: typeof column.key === 'string' ? column.key : `cell-${colIndex}`,\n content: withJustify(getCellContent(item, column), column.justify),\n }\n }),\n ...(itemMenu\n ? [\n {\n key: `menu-${rowIndex}`,\n content: withJustify(itemMenu(item), 'end'),\n },\n ]\n : []),\n ]\n\n return {\n key: `row-${rowIndex}`,\n data: rowData,\n }\n })\n\n const buildFooterData = () => {\n if (!footer) return undefined\n\n const footerContent = footer()\n const footerCells: TableData[] = []\n\n // Add select column footer (empty)\n if (onSelect) {\n footerCells.push({\n key: 'footer-select',\n content: '',\n })\n }\n\n // Add data column footers\n columns.forEach((column, index) => {\n const columnKey = typeof column.key === 'string' ? column.key : `column-${index}`\n footerCells.push({\n key: `footer-${columnKey}`,\n content: withJustify(footerContent[columnKey] || '', column.justify),\n })\n })\n\n // Add actions column footer (empty)\n if (itemMenu) {\n footerCells.push({\n key: 'footer-actions',\n content: '',\n })\n }\n\n return footerCells\n }\n\n const footerData = buildFooterData()\n\n return (\n <div\n className={cn(styles.tableWrapper, isFetching && styles.isFetching)}\n aria-busy={Boolean(isFetching)}\n >\n <Components.Table\n aria-label={label}\n data-testid=\"data-table\"\n headers={headers}\n rows={rows}\n footer={footerData}\n emptyState={emptyState ? emptyState() : undefined}\n isWithinBox={isWithinBox}\n hasCheckboxColumn={!!onSelect}\n />\n </div>\n )\n}\n"],"names":["withJustify","content","justify","jsx","styles","getCellContent","item","column","key","DataTable","label","data","columns","itemMenu","onSelect","onSelectAll","getIsItemSelected","hideSelectAll","emptyState","footer","isWithinBox","selectionMode","isFetching","Components","useComponentContext","t","useTranslation","radioGroupName","useId","selectedRadioIndex","setSelectedRadioIndex","useState","allSelected","useSelectionState","headers","checked","VisuallyHidden","index","handleRadioSelect","rowIndex","renderSelectionControl","isSelected","rows","rowData","colIndex","footerData","footerContent","footerCells","columnKey","cn"],"mappings":"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"}
@@ -1,19 +1,28 @@
1
- import { jsx as e, jsxs as s } from "react/jsx-runtime";
2
- import l from "classnames";
1
+ import { jsx as e, jsxs as m } from "react/jsx-runtime";
2
+ import a from "classnames";
3
3
  import { useId as d } from "react";
4
- import { Flex as m } from "../Flex/Flex.js";
4
+ import { useTranslation as p } from "react-i18next";
5
+ import { Flex as s } from "../Flex/Flex.js";
5
6
  import i from "./RequirementsList.module.scss.js";
6
- import { useComponentContext as a } from "../../../contexts/ComponentAdapter/useComponentContext.js";
7
- import p from "../../../assets/icons/checkbox.svg.js";
8
- const N = ({ requirements: n }) => {
9
- const o = a(), c = d();
10
- return /* @__PURE__ */ e(m, { flexDirection: "column", alignItems: "flex-start", gap: 8, children: /* @__PURE__ */ e(
7
+ import { useComponentContext as h } from "../../../contexts/ComponentAdapter/useComponentContext.js";
8
+ import f from "../../../assets/icons/checkbox.svg.js";
9
+ const T = ({ requirements: n }) => {
10
+ const o = h(), c = d(), { t: l } = p("common");
11
+ return /* @__PURE__ */ e(s, { flexDirection: "column", alignItems: "flex-start", gap: 8, children: /* @__PURE__ */ e(
11
12
  o.UnorderedList,
12
13
  {
13
14
  className: i.list,
14
- items: n.sort((t, r) => t.completed ? -1 : 1).map((t, r) => /* @__PURE__ */ s("div", { className: i.listItem, children: [
15
- t.completed ? /* @__PURE__ */ e("div", { className: l(i.listItemIcon, i.success), children: /* @__PURE__ */ e(p, { width: 16, height: 16 }) }) : /* @__PURE__ */ e("div", { className: i.listItemIcon, children: r + 1 }),
16
- /* @__PURE__ */ s(m, { flexDirection: "column", gap: 0, children: [
15
+ items: n.sort((t, r) => t.completed ? -1 : 1).map((t, r) => /* @__PURE__ */ m("div", { className: i.listItem, children: [
16
+ t.completed ? /* @__PURE__ */ e("div", { className: a(i.listItemIcon, i.success), children: /* @__PURE__ */ e(
17
+ f,
18
+ {
19
+ width: 16,
20
+ height: 16,
21
+ role: "img",
22
+ "aria-label": l("icons.completedStep")
23
+ }
24
+ ) }) : /* @__PURE__ */ e("div", { className: i.listItemIcon, children: r + 1 }),
25
+ /* @__PURE__ */ m(s, { flexDirection: "column", gap: 0, children: [
17
26
  /* @__PURE__ */ e(o.Text, { size: "md", weight: "medium", children: t.title }),
18
27
  /* @__PURE__ */ e(o.Text, { variant: "supporting", children: t.description })
19
28
  ] })
@@ -22,6 +31,6 @@ const N = ({ requirements: n }) => {
22
31
  ) });
23
32
  };
24
33
  export {
25
- N as RequirementsList
34
+ T as RequirementsList
26
35
  };
27
36
  //# sourceMappingURL=RequirementsList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RequirementsList.js","sources":["../../../../src/components/Common/RequirementsList/RequirementsList.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { useId } from 'react'\nimport { Flex } from '../Flex/Flex'\nimport styles from './RequirementsList.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport SuccessCheck from '@/assets/icons/checkbox.svg?react'\n\ninterface RequirementsListProps {\n requirements: {\n title: string\n description: string\n completed: boolean\n }[]\n}\n/** @internal */\nexport const RequirementsList = ({ requirements }: RequirementsListProps) => {\n const Components = useComponentContext()\n const id = useId()\n\n return (\n <Flex flexDirection=\"column\" alignItems=\"flex-start\" gap={8}>\n <Components.UnorderedList\n className={styles.list}\n items={requirements\n .sort((a, b) => (a.completed ? -1 : 1))\n .map((step, i) => {\n return (\n <div key={`${id}-${i}-${step.description}`} className={styles.listItem}>\n {step.completed ? (\n <div className={classNames(styles.listItemIcon, styles.success)}>\n <SuccessCheck width={16} height={16} />\n </div>\n ) : (\n <div className={styles.listItemIcon}>{i + 1}</div>\n )}\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text size=\"md\" weight=\"medium\">\n {step.title}\n </Components.Text>\n <Components.Text variant=\"supporting\">{step.description}</Components.Text>\n </Flex>\n </div>\n )\n })}\n />\n </Flex>\n )\n}\n"],"names":["RequirementsList","requirements","Components","useComponentContext","id","useId","Flex","jsx","styles","a","b","step","i","jsxs","classNames","SuccessCheck"],"mappings":";;;;;;;AAeO,MAAMA,IAAmB,CAAC,EAAE,cAAAC,QAA0C;AAC3E,QAAMC,IAAaC,EAAA,GACbC,IAAKC,EAAA;AAEX,2BACGC,GAAA,EAAK,eAAc,UAAS,YAAW,cAAa,KAAK,GACxD,UAAA,gBAAAC;AAAA,IAACL,EAAW;AAAA,IAAX;AAAA,MACC,WAAWM,EAAO;AAAA,MAClB,OAAOP,EACJ,KAAK,CAACQ,GAAGC,MAAOD,EAAE,YAAY,KAAK,CAAE,EACrC,IAAI,CAACE,GAAMC,MAER,gBAAAC,EAAC,OAAA,EAA2C,WAAWL,EAAO,UAC3D,UAAA;AAAA,QAAAG,EAAK,YACJ,gBAAAJ,EAAC,OAAA,EAAI,WAAWO,EAAWN,EAAO,cAAcA,EAAO,OAAO,GAC5D,UAAA,gBAAAD,EAACQ,GAAA,EAAa,OAAO,IAAI,QAAQ,GAAA,CAAI,EAAA,CACvC,IAEA,gBAAAR,EAAC,SAAI,WAAWC,EAAO,cAAe,UAAAI,IAAI,EAAA,CAAE;AAAA,QAE9C,gBAAAC,EAACP,GAAA,EAAK,eAAc,UAAS,KAAK,GAChC,UAAA;AAAA,UAAA,gBAAAC,EAACL,EAAW,MAAX,EAAgB,MAAK,MAAK,QAAO,UAC/B,YAAK,MAAA,CACR;AAAA,4BACCA,EAAW,MAAX,EAAgB,SAAQ,cAAc,YAAK,YAAA,CAAY;AAAA,QAAA,EAAA,CAC1D;AAAA,MAAA,KAbQ,GAAGE,CAAE,IAAIQ,CAAC,IAAID,EAAK,WAAW,EAcxC,CAEH;AAAA,IAAA;AAAA,EAAA,GAEP;AAEJ;"}
1
+ {"version":3,"file":"RequirementsList.js","sources":["../../../../src/components/Common/RequirementsList/RequirementsList.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { useId } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { Flex } from '../Flex/Flex'\nimport styles from './RequirementsList.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport SuccessCheck from '@/assets/icons/checkbox.svg?react'\n\ninterface RequirementsListProps {\n requirements: {\n title: string\n description: string\n completed: boolean\n }[]\n}\n/** @internal */\nexport const RequirementsList = ({ requirements }: RequirementsListProps) => {\n const Components = useComponentContext()\n const id = useId()\n const { t } = useTranslation('common')\n\n return (\n <Flex flexDirection=\"column\" alignItems=\"flex-start\" gap={8}>\n <Components.UnorderedList\n className={styles.list}\n items={requirements\n .sort((a, b) => (a.completed ? -1 : 1))\n .map((step, i) => {\n return (\n <div key={`${id}-${i}-${step.description}`} className={styles.listItem}>\n {step.completed ? (\n <div className={classNames(styles.listItemIcon, styles.success)}>\n <SuccessCheck\n width={16}\n height={16}\n role=\"img\"\n aria-label={t('icons.completedStep')}\n />\n </div>\n ) : (\n <div className={styles.listItemIcon}>{i + 1}</div>\n )}\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text size=\"md\" weight=\"medium\">\n {step.title}\n </Components.Text>\n <Components.Text variant=\"supporting\">{step.description}</Components.Text>\n </Flex>\n </div>\n )\n })}\n />\n </Flex>\n )\n}\n"],"names":["RequirementsList","requirements","Components","useComponentContext","id","useId","t","useTranslation","Flex","jsx","styles","a","b","step","i","jsxs","classNames","SuccessCheck"],"mappings":";;;;;;;;AAgBO,MAAMA,IAAmB,CAAC,EAAE,cAAAC,QAA0C;AAC3E,QAAMC,IAAaC,EAAA,GACbC,IAAKC,EAAA,GACL,EAAE,GAAAC,EAAA,IAAMC,EAAe,QAAQ;AAErC,2BACGC,GAAA,EAAK,eAAc,UAAS,YAAW,cAAa,KAAK,GACxD,UAAA,gBAAAC;AAAA,IAACP,EAAW;AAAA,IAAX;AAAA,MACC,WAAWQ,EAAO;AAAA,MAClB,OAAOT,EACJ,KAAK,CAACU,GAAGC,MAAOD,EAAE,YAAY,KAAK,CAAE,EACrC,IAAI,CAACE,GAAMC,MAER,gBAAAC,EAAC,OAAA,EAA2C,WAAWL,EAAO,UAC3D,UAAA;AAAA,QAAAG,EAAK,8BACH,OAAA,EAAI,WAAWG,EAAWN,EAAO,cAAcA,EAAO,OAAO,GAC5D,UAAA,gBAAAD;AAAA,UAACQ;AAAAA,UAAA;AAAA,YACC,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,MAAK;AAAA,YACL,cAAYX,EAAE,qBAAqB;AAAA,UAAA;AAAA,QAAA,EACrC,CACF,IAEA,gBAAAG,EAAC,OAAA,EAAI,WAAWC,EAAO,cAAe,cAAI,GAAE;AAAA,QAE9C,gBAAAK,EAACP,GAAA,EAAK,eAAc,UAAS,KAAK,GAChC,UAAA;AAAA,UAAA,gBAAAC,EAACP,EAAW,MAAX,EAAgB,MAAK,MAAK,QAAO,UAC/B,YAAK,MAAA,CACR;AAAA,4BACCA,EAAW,MAAX,EAAgB,SAAQ,cAAc,YAAK,YAAA,CAAY;AAAA,QAAA,EAAA,CAC1D;AAAA,MAAA,KAlBQ,GAAGE,CAAE,IAAIU,CAAC,IAAID,EAAK,WAAW,EAmBxC,CAEH;AAAA,IAAA;AAAA,EAAA,GAEP;AAEJ;"}
@@ -1,4 +1,4 @@
1
- const o = "_root_80o86_1", t = {
1
+ const o = "_root_1b8fb_1", t = {
2
2
  root: o
3
3
  };
4
4
  export {
@@ -1,5 +1,5 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
- import { useMemo as l } from "react";
2
+ import { useState as u, useMemo as l } from "react";
3
3
  import { createMachine as p } from "robot3";
4
4
  import { usePaySchedulesGetAllSuspense as h } from "@gusto/embedded-api/react-query/paySchedulesGetAll";
5
5
  import { payScheduleStateMachine as S } from "./payScheduleStateMachine.js";
@@ -10,26 +10,32 @@ import { useI18n as P, useComponentDictionary as x } from "../../../i18n/I18n.js
10
10
  import { Flow as M } from "../../Flow/Flow.js";
11
11
  const L = ({
12
12
  companyId: e,
13
- defaultValues: o,
14
- dictionary: t,
15
- ...n
16
- }) => /* @__PURE__ */ r(y, { ...n, children: /* @__PURE__ */ r(w, { companyId: e, defaultValues: o, dictionary: t }) });
17
- function w({ companyId: e, defaultValues: o, dictionary: t }) {
18
- P("Company.PaySchedule"), x("Company.PaySchedule", t);
19
- const { onEvent: n } = C(), { data: s } = h({ companyId: e }), m = (s.payScheduleShowResponse?.length ?? 0) > 0, c = m ? "listSchedules" : "addSchedule", i = m ? d : f, a = l(
13
+ defaultValues: t,
14
+ dictionary: n,
15
+ ...i
16
+ }) => /* @__PURE__ */ r(y, { ...i, children: /* @__PURE__ */ r(w, { companyId: e, defaultValues: t, dictionary: n }) });
17
+ function w({ companyId: e, defaultValues: t, dictionary: n }) {
18
+ P("Company.PaySchedule"), x("Company.PaySchedule", n);
19
+ const { onEvent: i } = C(), { data: s } = h({ companyId: e }), [{ initialState: a, initialComponent: m }] = u(() => {
20
+ const o = (s.payScheduleShowResponse?.length ?? 0) > 0;
21
+ return {
22
+ initialState: o ? "listSchedules" : "addSchedule",
23
+ initialComponent: o ? d : f
24
+ };
25
+ }), c = l(
20
26
  () => p(
21
- c,
27
+ a,
22
28
  S,
23
- (u) => ({
24
- ...u,
25
- component: i,
29
+ (o) => ({
30
+ ...o,
31
+ component: m,
26
32
  companyId: e,
27
- defaultValues: o
33
+ defaultValues: t
28
34
  })
29
35
  ),
30
- [e, o, c, i]
36
+ [e, t, a, m]
31
37
  );
32
- return /* @__PURE__ */ r(M, { machine: a, onEvent: n });
38
+ return /* @__PURE__ */ r(M, { machine: c, onEvent: i });
33
39
  }
34
40
  export {
35
41
  L as PaySchedule
@@ -1 +1 @@
1
- {"version":3,"file":"PaySchedule.js","sources":["../../../../src/components/Company/PaySchedule/PaySchedule.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { createMachine } from 'robot3'\nimport { usePaySchedulesGetAllSuspense } from '@gusto/embedded-api/react-query/paySchedulesGetAll'\nimport { payScheduleStateMachine } from './payScheduleStateMachine'\nimport type { PayScheduleContextInterface } from './PayScheduleComponents'\nimport { PayScheduleFormContextual, PayScheduleListContextual } from './PayScheduleComponents'\nimport type { PayScheduleFormData } from './shared/usePayScheduleForm/payScheduleSchema'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport { BaseComponent, useBase } from '@/components/Base'\nimport type { BaseComponentKeys } from '@/components/Base/Base'\nimport { useI18n } from '@/i18n'\nimport { useComponentDictionary } from '@/i18n/I18n'\nimport { Flow } from '@/components/Flow/Flow'\nimport type { RequireAtLeastOne } from '@/types/Helpers'\n\n/**\n * The full set of fields that may be pre-filled on the {@link PaySchedule} create form.\n *\n * @public\n */\nexport type PayScheduleDefaultFields = {\n [\n K in keyof Pick<\n PayScheduleFormData,\n 'anchorPayDate' | 'anchorEndOfPayPeriod' | 'day1' | 'day2' | 'customName' | 'frequency'\n >\n ]: NonNullable<PayScheduleFormData[K]>\n}\n\n/**\n * Default values for the {@link PaySchedule} form fields. Server data for an existing pay schedule\n * takes precedence over these defaults when editing.\n *\n * @public\n */\nexport type PayScheduleDefaultValues = RequireAtLeastOne<Partial<PayScheduleDefaultFields>>\n\n/**\n * Props for the {@link PaySchedule} component.\n *\n * @public\n */\nexport interface PayScheduleProps extends BaseComponentInterface<'Company.PaySchedule'> {\n /** Identifier of the company whose pay schedules are managed. */\n companyId: string\n /** Default values used to pre-fill the create form. Ignored fields not listed in {@link PayScheduleDefaultValues}. */\n defaultValues?: PayScheduleDefaultValues\n}\n\n/**\n * Manages a company's pay schedules, including listing existing schedules and creating or editing one.\n *\n * @remarks\n * Renders the schedule list when at least one pay schedule exists and the create form otherwise.\n * Emits the following events through `onEvent`:\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `paySchedule/created` | A new pay schedule was created | The created pay schedule entity |\n * | `paySchedule/updated` | An existing pay schedule was updated | The updated pay schedule entity |\n *\n * @param props - {@link PayScheduleProps} plus the standard base component props.\n * @returns The pay schedule list or form depending on whether any schedules exist.\n * @public\n */\nexport const PaySchedule = ({\n companyId,\n defaultValues,\n dictionary,\n ...props\n}: PayScheduleProps) => {\n return (\n <BaseComponent {...props}>\n <Root companyId={companyId} defaultValues={defaultValues} dictionary={dictionary} />\n </BaseComponent>\n )\n}\n\nfunction Root({ companyId, defaultValues, dictionary }: Omit<PayScheduleProps, BaseComponentKeys>) {\n useI18n('Company.PaySchedule')\n useComponentDictionary('Company.PaySchedule', dictionary)\n const { onEvent } = useBase()\n const { data: paySchedules } = usePaySchedulesGetAllSuspense({ companyId })\n\n const hasSchedules = (paySchedules.payScheduleShowResponse?.length ?? 0) > 0\n const initialState = hasSchedules ? 'listSchedules' : 'addSchedule'\n const initialComponent = hasSchedules ? PayScheduleListContextual : PayScheduleFormContextual\n\n const machine = useMemo(\n () =>\n createMachine(\n initialState,\n payScheduleStateMachine,\n (initialContext: PayScheduleContextInterface) => ({\n ...initialContext,\n component: initialComponent,\n companyId,\n defaultValues,\n }),\n ),\n [companyId, defaultValues, initialState, initialComponent],\n )\n\n return <Flow machine={machine} onEvent={onEvent} />\n}\n"],"names":["PaySchedule","companyId","defaultValues","dictionary","props","jsx","BaseComponent","Root","useI18n","useComponentDictionary","onEvent","useBase","paySchedules","usePaySchedulesGetAllSuspense","hasSchedules","initialState","initialComponent","PayScheduleListContextual","PayScheduleFormContextual","machine","useMemo","createMachine","payScheduleStateMachine","initialContext","Flow"],"mappings":";;;;;;;;;;AAkEO,MAAMA,IAAc,CAAC;AAAA,EAC1B,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC;AAAA,EACA,GAAGC;AACL,MAEI,gBAAAC,EAACC,KAAe,GAAGF,GACjB,4BAACG,GAAA,EAAK,WAAAN,GAAsB,eAAAC,GAA8B,YAAAC,EAAA,CAAwB,EAAA,CACpF;AAIJ,SAASI,EAAK,EAAE,WAAAN,GAAW,eAAAC,GAAe,YAAAC,KAAyD;AACjG,EAAAK,EAAQ,qBAAqB,GAC7BC,EAAuB,uBAAuBN,CAAU;AACxD,QAAM,EAAE,SAAAO,EAAA,IAAYC,EAAA,GACd,EAAE,MAAMC,EAAA,IAAiBC,EAA8B,EAAE,WAAAZ,GAAW,GAEpEa,KAAgBF,EAAa,yBAAyB,UAAU,KAAK,GACrEG,IAAeD,IAAe,kBAAkB,eAChDE,IAAmBF,IAAeG,IAA4BC,GAE9DC,IAAUC;AAAA,IACd,MACEC;AAAA,MACEN;AAAA,MACAO;AAAA,MACA,CAACC,OAAiD;AAAA,QAChD,GAAGA;AAAA,QACH,WAAWP;AAAA,QACX,WAAAf;AAAA,QACA,eAAAC;AAAA,MAAA;AAAA,IACF;AAAA,IAEJ,CAACD,GAAWC,GAAea,GAAcC,CAAgB;AAAA,EAAA;AAG3D,SAAO,gBAAAX,EAACmB,GAAA,EAAK,SAAAL,GAAkB,SAAAT,EAAA,CAAkB;AACnD;"}
1
+ {"version":3,"file":"PaySchedule.js","sources":["../../../../src/components/Company/PaySchedule/PaySchedule.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { createMachine } from 'robot3'\nimport { usePaySchedulesGetAllSuspense } from '@gusto/embedded-api/react-query/paySchedulesGetAll'\nimport { payScheduleStateMachine } from './payScheduleStateMachine'\nimport type { PayScheduleContextInterface } from './PayScheduleComponents'\nimport { PayScheduleFormContextual, PayScheduleListContextual } from './PayScheduleComponents'\nimport type { PayScheduleFormData } from './shared/usePayScheduleForm/payScheduleSchema'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport { BaseComponent, useBase } from '@/components/Base'\nimport type { BaseComponentKeys } from '@/components/Base/Base'\nimport { useI18n } from '@/i18n'\nimport { useComponentDictionary } from '@/i18n/I18n'\nimport { Flow } from '@/components/Flow/Flow'\nimport type { RequireAtLeastOne } from '@/types/Helpers'\n\n/**\n * The full set of fields that may be pre-filled on the {@link PaySchedule} create form.\n *\n * @public\n */\nexport type PayScheduleDefaultFields = {\n [\n K in keyof Pick<\n PayScheduleFormData,\n 'anchorPayDate' | 'anchorEndOfPayPeriod' | 'day1' | 'day2' | 'customName' | 'frequency'\n >\n ]: NonNullable<PayScheduleFormData[K]>\n}\n\n/**\n * Default values for the {@link PaySchedule} form fields. Server data for an existing pay schedule\n * takes precedence over these defaults when editing.\n *\n * @public\n */\nexport type PayScheduleDefaultValues = RequireAtLeastOne<Partial<PayScheduleDefaultFields>>\n\n/**\n * Props for the {@link PaySchedule} component.\n *\n * @public\n */\nexport interface PayScheduleProps extends BaseComponentInterface<'Company.PaySchedule'> {\n /** Identifier of the company whose pay schedules are managed. */\n companyId: string\n /** Default values used to pre-fill the create form. Ignored fields not listed in {@link PayScheduleDefaultValues}. */\n defaultValues?: PayScheduleDefaultValues\n}\n\n/**\n * Manages a company's pay schedules, including listing existing schedules and creating or editing one.\n *\n * @remarks\n * Renders the schedule list when at least one pay schedule exists and the create form otherwise.\n * Emits the following events through `onEvent`:\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `paySchedule/created` | A new pay schedule was created | The created pay schedule entity |\n * | `paySchedule/updated` | An existing pay schedule was updated | The updated pay schedule entity |\n *\n * @param props - {@link PayScheduleProps} plus the standard base component props.\n * @returns The pay schedule list or form depending on whether any schedules exist.\n * @public\n */\nexport const PaySchedule = ({\n companyId,\n defaultValues,\n dictionary,\n ...props\n}: PayScheduleProps) => {\n return (\n <BaseComponent {...props}>\n <Root companyId={companyId} defaultValues={defaultValues} dictionary={dictionary} />\n </BaseComponent>\n )\n}\n\nfunction Root({ companyId, defaultValues, dictionary }: Omit<PayScheduleProps, BaseComponentKeys>) {\n useI18n('Company.PaySchedule')\n useComponentDictionary('Company.PaySchedule', dictionary)\n const { onEvent } = useBase()\n const { data: paySchedules } = usePaySchedulesGetAllSuspense({ companyId })\n\n // Freeze the initial routing decision. Recomputing it after a later refetch (e.g. once\n // the first schedule is created) would re-seat the machine and orphan its interpreter.\n const [{ initialState, initialComponent }] = useState<{\n initialState: keyof typeof payScheduleStateMachine\n initialComponent: typeof PayScheduleListContextual | typeof PayScheduleFormContextual\n }>(() => {\n const hasSchedules = (paySchedules.payScheduleShowResponse?.length ?? 0) > 0\n return {\n initialState: hasSchedules ? 'listSchedules' : 'addSchedule',\n initialComponent: hasSchedules ? PayScheduleListContextual : PayScheduleFormContextual,\n }\n })\n\n const machine = useMemo(\n () =>\n createMachine(\n initialState,\n payScheduleStateMachine,\n (initialContext: PayScheduleContextInterface) => ({\n ...initialContext,\n component: initialComponent,\n companyId,\n defaultValues,\n }),\n ),\n [companyId, defaultValues, initialState, initialComponent],\n )\n\n return <Flow machine={machine} onEvent={onEvent} />\n}\n"],"names":["PaySchedule","companyId","defaultValues","dictionary","props","jsx","BaseComponent","Root","useI18n","useComponentDictionary","onEvent","useBase","paySchedules","usePaySchedulesGetAllSuspense","initialState","initialComponent","useState","hasSchedules","PayScheduleListContextual","PayScheduleFormContextual","machine","useMemo","createMachine","payScheduleStateMachine","initialContext","Flow"],"mappings":";;;;;;;;;;AAkEO,MAAMA,IAAc,CAAC;AAAA,EAC1B,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC;AAAA,EACA,GAAGC;AACL,MAEI,gBAAAC,EAACC,KAAe,GAAGF,GACjB,4BAACG,GAAA,EAAK,WAAAN,GAAsB,eAAAC,GAA8B,YAAAC,EAAA,CAAwB,EAAA,CACpF;AAIJ,SAASI,EAAK,EAAE,WAAAN,GAAW,eAAAC,GAAe,YAAAC,KAAyD;AACjG,EAAAK,EAAQ,qBAAqB,GAC7BC,EAAuB,uBAAuBN,CAAU;AACxD,QAAM,EAAE,SAAAO,EAAA,IAAYC,EAAA,GACd,EAAE,MAAMC,EAAA,IAAiBC,EAA8B,EAAE,WAAAZ,GAAW,GAIpE,CAAC,EAAE,cAAAa,GAAc,kBAAAC,GAAkB,IAAIC,EAG1C,MAAM;AACP,UAAMC,KAAgBL,EAAa,yBAAyB,UAAU,KAAK;AAC3E,WAAO;AAAA,MACL,cAAcK,IAAe,kBAAkB;AAAA,MAC/C,kBAAkBA,IAAeC,IAA4BC;AAAA,IAAA;AAAA,EAEjE,CAAC,GAEKC,IAAUC;AAAA,IACd,MACEC;AAAA,MACER;AAAA,MACAS;AAAA,MACA,CAACC,OAAiD;AAAA,QAChD,GAAGA;AAAA,QACH,WAAWT;AAAA,QACX,WAAAd;AAAA,QACA,eAAAC;AAAA,MAAA;AAAA,IACF;AAAA,IAEJ,CAACD,GAAWC,GAAeY,GAAcC,CAAgB;AAAA,EAAA;AAG3D,SAAO,gBAAAV,EAACoB,GAAA,EAAK,SAAAL,GAAkB,SAAAV,EAAA,CAAkB;AACnD;"}
@@ -37,6 +37,7 @@ function Y({ group: t, showHeader: c = !0 }) {
37
37
  ...u.map((e) => ({
38
38
  key: e.key,
39
39
  title: e.label ?? e.key,
40
+ justify: "end",
40
41
  render: (y) => y.values[e.key] ?? ""
41
42
  }))
42
43
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"TaxRateHistorySection.js","sources":["../../../../../src/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useTaxRateManagement, type TaxRateKeyGroup } from './context'\nimport { extractRequirementColumns, toHistoryRows, type HistoryRow } from './toHistoryRows'\nimport { AddRateAction } from './AddRateAction'\nimport { DataView, EmptyData, Flex, useDataView, VisuallyHidden } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\n\ninterface TaxRateHistorySectionProps {\n group: TaxRateKeyGroup\n /**\n * Whether to render this group's own heading + \"Add tax rate\" button.\n *\n * @remarks\n * Set to `false` when this is the only group for the state — the page-level header already\n * carries the title and the single add-rate action, so a repeated per-group header would be\n * redundant.\n *\n * @defaultValue `true`\n */\n showHeader?: boolean\n}\n\ntype BadgeStatus = 'success' | 'info' | 'warning'\n\nconst statusBadgeMap = {\n current: 'success',\n scheduled: 'info',\n historical: 'warning',\n} as const satisfies Record<HistoryRow['status'], BadgeStatus>\n\nconst statusLabelKeyMap = {\n current: 'currentBadge',\n scheduled: 'scheduledBadge',\n historical: 'historicalBadge',\n} as const satisfies Record<HistoryRow['status'], string>\n\n/** @internal */\nexport function TaxRateHistorySection({ group, showHeader = true }: TaxRateHistorySectionProps) {\n const { t } = useTranslation('Company.StateTaxes', { keyPrefix: 'manageRates' })\n const Components = useComponentContext()\n const dateFormatter = useDateFormatter()\n const { state } = useTaxRateManagement()\n\n const rows = useMemo(() => toHistoryRows(group.sets), [group.sets])\n const requirementColumns = useMemo(() => extractRequirementColumns(group.sets), [group.sets])\n\n const sectionLabel = group.label ?? group.key\n\n const { ...dataViewProps } = useDataView<HistoryRow>({\n data: rows,\n columns: [\n {\n key: 'effectiveFrom',\n title: t('effectiveDateColumnLabel'),\n render: row => dateFormatter.formatLongWithYear(row.effectiveFrom),\n },\n {\n key: 'status',\n title: <VisuallyHidden>{t('statusColumnLabel')}</VisuallyHidden>,\n render: row => (\n <Components.Badge status={statusBadgeMap[row.status]}>\n {t(statusLabelKeyMap[row.status])}\n </Components.Badge>\n ),\n },\n ...requirementColumns.map(column => ({\n key: column.key,\n title: column.label ?? column.key,\n render: (row: HistoryRow) => row.values[column.key] ?? '',\n })),\n ],\n emptyState: () => (\n <EmptyData title={t('emptyHistoryTitle')} description={t('emptyHistoryDescription')} />\n ),\n })\n\n return (\n <section aria-label={sectionLabel}>\n <Flex flexDirection=\"column\" gap={16} alignItems=\"stretch\">\n {showHeader && (\n <Flex justifyContent=\"space-between\" alignItems=\"center\" gap={16}>\n <Components.Heading as=\"h3\">{sectionLabel}</Components.Heading>\n <AddRateAction state={state} group={group} />\n </Flex>\n )}\n <DataView label={sectionLabel} {...dataViewProps} />\n </Flex>\n </section>\n )\n}\n"],"names":["statusBadgeMap","statusLabelKeyMap","TaxRateHistorySection","group","showHeader","t","useTranslation","Components","useComponentContext","dateFormatter","useDateFormatter","state","useTaxRateManagement","rows","useMemo","toHistoryRows","requirementColumns","extractRequirementColumns","sectionLabel","dataViewProps","useDataView","row","jsx","VisuallyHidden","column","EmptyData","jsxs","Flex","AddRateAction","DataView"],"mappings":";;;;;;;;;;;;;AA0BA,MAAMA,IAAiB;AAAA,EACrB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,YAAY;AACd,GAEMC,IAAoB;AAAA,EACxB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,YAAY;AACd;AAGO,SAASC,EAAsB,EAAE,OAAAC,GAAO,YAAAC,IAAa,MAAoC;AAC9F,QAAM,EAAE,GAAAC,MAAMC,EAAe,sBAAsB,EAAE,WAAW,eAAe,GACzEC,IAAaC,EAAA,GACbC,IAAgBC,EAAA,GAChB,EAAE,OAAAC,EAAA,IAAUC,EAAA,GAEZC,IAAOC,EAAQ,MAAMC,EAAcZ,EAAM,IAAI,GAAG,CAACA,EAAM,IAAI,CAAC,GAC5Da,IAAqBF,EAAQ,MAAMG,EAA0Bd,EAAM,IAAI,GAAG,CAACA,EAAM,IAAI,CAAC,GAEtFe,IAAef,EAAM,SAASA,EAAM,KAEpC,EAAE,GAAGgB,EAAA,IAAkBC,EAAwB;AAAA,IACnD,MAAMP;AAAA,IACN,SAAS;AAAA,MACP;AAAA,QACE,KAAK;AAAA,QACL,OAAOR,EAAE,0BAA0B;AAAA,QACnC,QAAQ,CAAAgB,MAAOZ,EAAc,mBAAmBY,EAAI,aAAa;AAAA,MAAA;AAAA,MAEnE;AAAA,QACE,KAAK;AAAA,QACL,OAAO,gBAAAC,EAACC,GAAA,EAAgB,UAAAlB,EAAE,mBAAmB,GAAE;AAAA,QAC/C,QAAQ,CAAAgB,MACN,gBAAAC,EAACf,EAAW,OAAX,EAAiB,QAAQP,EAAeqB,EAAI,MAAM,GAChD,UAAAhB,EAAEJ,EAAkBoB,EAAI,MAAM,CAAC,EAAA,CAClC;AAAA,MAAA;AAAA,MAGJ,GAAGL,EAAmB,IAAI,CAAAQ,OAAW;AAAA,QACnC,KAAKA,EAAO;AAAA,QACZ,OAAOA,EAAO,SAASA,EAAO;AAAA,QAC9B,QAAQ,CAACH,MAAoBA,EAAI,OAAOG,EAAO,GAAG,KAAK;AAAA,MAAA,EACvD;AAAA,IAAA;AAAA,IAEJ,YAAY,MACV,gBAAAF,EAACG,GAAA,EAAU,OAAOpB,EAAE,mBAAmB,GAAG,aAAaA,EAAE,yBAAyB,EAAA,CAAG;AAAA,EAAA,CAExF;AAED,SACE,gBAAAiB,EAAC,WAAA,EAAQ,cAAYJ,GACnB,UAAA,gBAAAQ,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAAI,YAAW,WAC9C,UAAA;AAAA,IAAAvB,uBACEuB,GAAA,EAAK,gBAAe,iBAAgB,YAAW,UAAS,KAAK,IAC5D,UAAA;AAAA,MAAA,gBAAAL,EAACf,EAAW,SAAX,EAAmB,IAAG,MAAM,UAAAW,GAAa;AAAA,MAC1C,gBAAAI,EAACM,GAAA,EAAc,OAAAjB,GAAc,OAAAR,EAAA,CAAc;AAAA,IAAA,GAC7C;AAAA,IAEF,gBAAAmB,EAACO,GAAA,EAAS,OAAOX,GAAe,GAAGC,EAAA,CAAe;AAAA,EAAA,EAAA,CACpD,EAAA,CACF;AAEJ;"}
1
+ {"version":3,"file":"TaxRateHistorySection.js","sources":["../../../../../src/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useTaxRateManagement, type TaxRateKeyGroup } from './context'\nimport { extractRequirementColumns, toHistoryRows, type HistoryRow } from './toHistoryRows'\nimport { AddRateAction } from './AddRateAction'\nimport { DataView, EmptyData, Flex, useDataView, VisuallyHidden } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\n\ninterface TaxRateHistorySectionProps {\n group: TaxRateKeyGroup\n /**\n * Whether to render this group's own heading + \"Add tax rate\" button.\n *\n * @remarks\n * Set to `false` when this is the only group for the state — the page-level header already\n * carries the title and the single add-rate action, so a repeated per-group header would be\n * redundant.\n *\n * @defaultValue `true`\n */\n showHeader?: boolean\n}\n\ntype BadgeStatus = 'success' | 'info' | 'warning'\n\nconst statusBadgeMap = {\n current: 'success',\n scheduled: 'info',\n historical: 'warning',\n} as const satisfies Record<HistoryRow['status'], BadgeStatus>\n\nconst statusLabelKeyMap = {\n current: 'currentBadge',\n scheduled: 'scheduledBadge',\n historical: 'historicalBadge',\n} as const satisfies Record<HistoryRow['status'], string>\n\n/** @internal */\nexport function TaxRateHistorySection({ group, showHeader = true }: TaxRateHistorySectionProps) {\n const { t } = useTranslation('Company.StateTaxes', { keyPrefix: 'manageRates' })\n const Components = useComponentContext()\n const dateFormatter = useDateFormatter()\n const { state } = useTaxRateManagement()\n\n const rows = useMemo(() => toHistoryRows(group.sets), [group.sets])\n const requirementColumns = useMemo(() => extractRequirementColumns(group.sets), [group.sets])\n\n const sectionLabel = group.label ?? group.key\n\n const { ...dataViewProps } = useDataView<HistoryRow>({\n data: rows,\n columns: [\n {\n key: 'effectiveFrom',\n title: t('effectiveDateColumnLabel'),\n render: row => dateFormatter.formatLongWithYear(row.effectiveFrom),\n },\n {\n key: 'status',\n title: <VisuallyHidden>{t('statusColumnLabel')}</VisuallyHidden>,\n render: row => (\n <Components.Badge status={statusBadgeMap[row.status]}>\n {t(statusLabelKeyMap[row.status])}\n </Components.Badge>\n ),\n },\n ...requirementColumns.map(column => ({\n key: column.key,\n title: column.label ?? column.key,\n justify: 'end' as const,\n render: (row: HistoryRow) => row.values[column.key] ?? '',\n })),\n ],\n emptyState: () => (\n <EmptyData title={t('emptyHistoryTitle')} description={t('emptyHistoryDescription')} />\n ),\n })\n\n return (\n <section aria-label={sectionLabel}>\n <Flex flexDirection=\"column\" gap={16} alignItems=\"stretch\">\n {showHeader && (\n <Flex justifyContent=\"space-between\" alignItems=\"center\" gap={16}>\n <Components.Heading as=\"h3\">{sectionLabel}</Components.Heading>\n <AddRateAction state={state} group={group} />\n </Flex>\n )}\n <DataView label={sectionLabel} {...dataViewProps} />\n </Flex>\n </section>\n )\n}\n"],"names":["statusBadgeMap","statusLabelKeyMap","TaxRateHistorySection","group","showHeader","t","useTranslation","Components","useComponentContext","dateFormatter","useDateFormatter","state","useTaxRateManagement","rows","useMemo","toHistoryRows","requirementColumns","extractRequirementColumns","sectionLabel","dataViewProps","useDataView","row","jsx","VisuallyHidden","column","EmptyData","jsxs","Flex","AddRateAction","DataView"],"mappings":";;;;;;;;;;;;;AA0BA,MAAMA,IAAiB;AAAA,EACrB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,YAAY;AACd,GAEMC,IAAoB;AAAA,EACxB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,YAAY;AACd;AAGO,SAASC,EAAsB,EAAE,OAAAC,GAAO,YAAAC,IAAa,MAAoC;AAC9F,QAAM,EAAE,GAAAC,MAAMC,EAAe,sBAAsB,EAAE,WAAW,eAAe,GACzEC,IAAaC,EAAA,GACbC,IAAgBC,EAAA,GAChB,EAAE,OAAAC,EAAA,IAAUC,EAAA,GAEZC,IAAOC,EAAQ,MAAMC,EAAcZ,EAAM,IAAI,GAAG,CAACA,EAAM,IAAI,CAAC,GAC5Da,IAAqBF,EAAQ,MAAMG,EAA0Bd,EAAM,IAAI,GAAG,CAACA,EAAM,IAAI,CAAC,GAEtFe,IAAef,EAAM,SAASA,EAAM,KAEpC,EAAE,GAAGgB,EAAA,IAAkBC,EAAwB;AAAA,IACnD,MAAMP;AAAA,IACN,SAAS;AAAA,MACP;AAAA,QACE,KAAK;AAAA,QACL,OAAOR,EAAE,0BAA0B;AAAA,QACnC,QAAQ,CAAAgB,MAAOZ,EAAc,mBAAmBY,EAAI,aAAa;AAAA,MAAA;AAAA,MAEnE;AAAA,QACE,KAAK;AAAA,QACL,OAAO,gBAAAC,EAACC,GAAA,EAAgB,UAAAlB,EAAE,mBAAmB,GAAE;AAAA,QAC/C,QAAQ,CAAAgB,MACN,gBAAAC,EAACf,EAAW,OAAX,EAAiB,QAAQP,EAAeqB,EAAI,MAAM,GAChD,UAAAhB,EAAEJ,EAAkBoB,EAAI,MAAM,CAAC,EAAA,CAClC;AAAA,MAAA;AAAA,MAGJ,GAAGL,EAAmB,IAAI,CAAAQ,OAAW;AAAA,QACnC,KAAKA,EAAO;AAAA,QACZ,OAAOA,EAAO,SAASA,EAAO;AAAA,QAC9B,SAAS;AAAA,QACT,QAAQ,CAACH,MAAoBA,EAAI,OAAOG,EAAO,GAAG,KAAK;AAAA,MAAA,EACvD;AAAA,IAAA;AAAA,IAEJ,YAAY,MACV,gBAAAF,EAACG,GAAA,EAAU,OAAOpB,EAAE,mBAAmB,GAAG,aAAaA,EAAE,yBAAyB,EAAA,CAAG;AAAA,EAAA,CAExF;AAED,SACE,gBAAAiB,EAAC,WAAA,EAAQ,cAAYJ,GACnB,UAAA,gBAAAQ,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAAI,YAAW,WAC9C,UAAA;AAAA,IAAAvB,uBACEuB,GAAA,EAAK,gBAAe,iBAAgB,YAAW,UAAS,KAAK,IAC5D,UAAA;AAAA,MAAA,gBAAAL,EAACf,EAAW,SAAX,EAAmB,IAAG,MAAM,UAAAW,GAAa;AAAA,MAC1C,gBAAAI,EAACM,GAAA,EAAc,OAAAjB,GAAc,OAAAR,EAAA,CAAc;AAAA,IAAA,GAC7C;AAAA,IAEF,gBAAAmB,EAACO,GAAA,EAAS,OAAOX,GAAe,GAAGC,EAAA,CAAe;AAAA,EAAA,EAAA,CACpD,EAAA,CACF;AAEJ;"}
@@ -1,25 +1,25 @@
1
1
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
2
2
  import { useTranslation as T } from "react-i18next";
3
3
  import E from "classnames";
4
- import { useContractorPayForm as N } from "../shared/useContractorPayForm/useContractorPayForm.js";
4
+ import { useContractorPayForm as R } from "../shared/useContractorPayForm/useContractorPayForm.js";
5
5
  import { WageType as d } from "../shared/useContractorPayForm/contractorPaySchema.js";
6
- import b from "./CompensationEditForm.module.scss.js";
7
- import { BaseBoundaries as R, BaseLayout as f } from "../../../Base/Base.js";
6
+ import N from "./CompensationEditForm.module.scss.js";
7
+ import { BaseBoundaries as A, BaseLayout as f } from "../../../Base/Base.js";
8
8
  import "../../../Base/useBase.js";
9
- import { Flex as A } from "../../../Common/Flex/Flex.js";
10
- import { ActionsLayout as M } from "../../../Common/ActionsLayout/ActionsLayout.js";
11
- import { Form as D } from "../../../Common/Form/Form.js";
12
- import { SDKFormProvider as F } from "../../../../partner-hook-utils/form/SDKFormProvider.js";
13
- import { useI18n as L, useComponentDictionary as x } from "../../../../i18n/I18n.js";
9
+ import { Flex as M } from "../../../Common/Flex/Flex.js";
10
+ import { ActionsLayout as b } from "../../../Common/ActionsLayout/ActionsLayout.js";
11
+ import { Form as L } from "../../../Common/Form/Form.js";
12
+ import { SDKFormProvider as x } from "../../../../partner-hook-utils/form/SDKFormProvider.js";
13
+ import { useI18n as D, useComponentDictionary as F } from "../../../../i18n/I18n.js";
14
14
  import { componentEvents as C } from "../../../../shared/constants.js";
15
15
  import { useComponentContext as O } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
16
- function z({
16
+ function Y({
17
17
  FallbackComponent: a,
18
18
  LoaderComponent: i,
19
19
  ...m
20
20
  }) {
21
21
  return /* @__PURE__ */ o(
22
- R,
22
+ A,
23
23
  {
24
24
  componentName: "Contractor.Management.Compensation",
25
25
  FallbackComponent: a,
@@ -35,8 +35,8 @@ function H({
35
35
  onEvent: l,
36
36
  LoaderComponent: c
37
37
  }) {
38
- L("Contractor.Management.Compensation"), x("Contractor.Management.Compensation", m);
39
- const { t: r } = T("Contractor.Management.Compensation"), e = O(), t = N({ contractorId: a });
38
+ D("Contractor.Management.Compensation"), F("Contractor.Management.Compensation", m);
39
+ const { t: r } = T("Contractor.Management.Compensation"), e = O(), t = R({ contractorId: a });
40
40
  if (t.isLoading)
41
41
  return /* @__PURE__ */ o(
42
42
  f,
@@ -61,8 +61,8 @@ function H({
61
61
  }))
62
62
  }
63
63
  );
64
- return /* @__PURE__ */ o("section", { className: E(b.container, i), children: /* @__PURE__ */ o(f, { error: t.errorHandling.errors, LoaderComponent: c, children: /* @__PURE__ */ o(F, { formHookResult: t, children: /* @__PURE__ */ s(D, { onSubmit: y, children: [
65
- /* @__PURE__ */ s(A, { flexDirection: "column", gap: 4, children: [
64
+ return /* @__PURE__ */ o("section", { className: E(N.container, i), children: /* @__PURE__ */ o(f, { error: t.errorHandling.errors, LoaderComponent: c, children: /* @__PURE__ */ o(x, { formHookResult: t, children: /* @__PURE__ */ s(L, { onSubmit: y, children: [
65
+ /* @__PURE__ */ s(M, { flexDirection: "column", gap: 4, children: [
66
66
  /* @__PURE__ */ o(e.Heading, { as: "h2", children: r("form.title") }),
67
67
  /* @__PURE__ */ o(e.Text, { variant: "supporting", children: r("form.description") })
68
68
  ] }),
@@ -79,16 +79,19 @@ function H({
79
79
  {
80
80
  label: r("form.hourlyRateLabel"),
81
81
  format: "currency",
82
- validationMessages: { REQUIRED: r("form.validations.hourlyRate") }
82
+ validationMessages: {
83
+ REQUIRED: r("form.validations.hourlyRate"),
84
+ MAX_HOURLY_RATE: r("form.validations.hourlyRateMax")
85
+ }
83
86
  }
84
87
  ),
85
- /* @__PURE__ */ s(M, { children: [
88
+ /* @__PURE__ */ s(b, { children: [
86
89
  /* @__PURE__ */ o(e.Button, { variant: "secondary", onClick: g, type: "button", children: r("form.cancelCta") }),
87
90
  /* @__PURE__ */ o(e.Button, { type: "submit", isLoading: t.status.isPending, children: r("form.saveCta") })
88
91
  ] })
89
92
  ] }) }) }) });
90
93
  }
91
94
  export {
92
- z as CompensationEditForm
95
+ Y as CompensationEditForm
93
96
  };
94
97
  //# sourceMappingURL=CompensationEditForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CompensationEditForm.js","sources":["../../../../../src/components/Contractor/Compensation/management/CompensationEditForm.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport { useContractorPayForm, WageType } from '../shared/useContractorPayForm'\nimport styles from './CompensationEditForm.module.scss'\nimport { BaseBoundaries, BaseLayout, type BaseComponentInterface } from '@/components/Base'\nimport { ActionsLayout } from '@/components/Common'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { Form } from '@/components/Common/Form'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { useI18n, useComponentDictionary } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport type { RadioGroupProps } from '@/components/Common/UI/RadioGroup/RadioGroupTypes'\n\n/**\n * Props for {@link CompensationEditForm}.\n *\n * @public\n */\nexport interface CompensationEditFormProps extends BaseComponentInterface<'Contractor.Management.Compensation'> {\n /** The associated contractor identifier. */\n contractorId: string\n}\n\n/**\n * Standalone edit form for a contractor's compensation type and rate.\n *\n * @remarks\n * Renders a Fixed/Hourly compensation-type selector and, when Hourly, an\n * hourly-rate field. Save and Cancel both emit events so the parent can\n * return to the read view.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `contractor/management/compensation/updated` | Fired after compensation is successfully saved | The updated `Contractor` entity |\n * | `contractor/management/compensation/editCancelled` | Fired when the user clicks Cancel | — |\n *\n * @param input - See {@link CompensationEditFormProps}.\n * @returns The contractor compensation edit form.\n * @public\n */\nexport function CompensationEditForm({\n FallbackComponent,\n LoaderComponent,\n ...props\n}: CompensationEditFormProps) {\n return (\n <BaseBoundaries\n componentName=\"Contractor.Management.Compensation\"\n FallbackComponent={FallbackComponent}\n LoaderComponent={LoaderComponent}\n >\n <CompensationEditFormRoot LoaderComponent={LoaderComponent} {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction CompensationEditFormRoot({\n contractorId,\n className,\n dictionary,\n onEvent,\n LoaderComponent,\n}: CompensationEditFormProps) {\n useI18n('Contractor.Management.Compensation')\n useComponentDictionary('Contractor.Management.Compensation', dictionary)\n const { t } = useTranslation('Contractor.Management.Compensation')\n const Components = useComponentContext()\n\n const payForm = useContractorPayForm({ contractorId })\n\n if (payForm.isLoading) {\n return (\n <BaseLayout\n isLoading\n error={payForm.errorHandling.errors}\n LoaderComponent={LoaderComponent}\n />\n )\n }\n\n const { Fields } = payForm.form\n\n const handleSubmit = async () => {\n const result = await payForm.actions.onSubmit()\n if (!result) return\n onEvent(componentEvents.CONTRACTOR_MANAGEMENT_COMPENSATION_UPDATED, result.data)\n }\n\n const handleCancel = () => {\n onEvent(componentEvents.CONTRACTOR_MANAGEMENT_COMPENSATION_EDIT_CANCELLED)\n }\n\n const WageTypeFieldComponent = (radioProps: RadioGroupProps) => (\n <Components.RadioGroup\n {...radioProps}\n options={radioProps.options.map(option => ({\n ...option,\n description:\n option.value === WageType.Hourly\n ? t('form.hourlyDescription')\n : t('form.fixedDescription'),\n }))}\n />\n )\n\n return (\n <section className={classNames(styles.container, className)}>\n <BaseLayout error={payForm.errorHandling.errors} LoaderComponent={LoaderComponent}>\n <SDKFormProvider formHookResult={payForm}>\n <Form onSubmit={handleSubmit}>\n <Flex flexDirection=\"column\" gap={4}>\n <Components.Heading as=\"h2\">{t('form.title')}</Components.Heading>\n <Components.Text variant=\"supporting\">{t('form.description')}</Components.Text>\n </Flex>\n <Fields.WageType\n label={t('form.wageTypeLabel')}\n getOptionLabel={(value: string) =>\n value === WageType.Hourly ? t('hourlyLabel') : t('fixedLabel')\n }\n FieldComponent={WageTypeFieldComponent}\n />\n {payForm.status.isHourly && (\n <Fields.HourlyRate\n label={t('form.hourlyRateLabel')}\n format=\"currency\"\n validationMessages={{ REQUIRED: t('form.validations.hourlyRate') }}\n />\n )}\n <ActionsLayout>\n <Components.Button variant=\"secondary\" onClick={handleCancel} type=\"button\">\n {t('form.cancelCta')}\n </Components.Button>\n <Components.Button type=\"submit\" isLoading={payForm.status.isPending}>\n {t('form.saveCta')}\n </Components.Button>\n </ActionsLayout>\n </Form>\n </SDKFormProvider>\n </BaseLayout>\n </section>\n )\n}\n"],"names":["CompensationEditForm","FallbackComponent","LoaderComponent","props","jsx","BaseBoundaries","CompensationEditFormRoot","contractorId","className","dictionary","onEvent","useI18n","useComponentDictionary","t","useTranslation","Components","useComponentContext","payForm","useContractorPayForm","BaseLayout","Fields","handleSubmit","result","componentEvents","handleCancel","WageTypeFieldComponent","radioProps","option","WageType","classNames","styles","SDKFormProvider","jsxs","Form","Flex","value","ActionsLayout"],"mappings":"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"}
1
+ {"version":3,"file":"CompensationEditForm.js","sources":["../../../../../src/components/Contractor/Compensation/management/CompensationEditForm.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport { useContractorPayForm, WageType } from '../shared/useContractorPayForm'\nimport styles from './CompensationEditForm.module.scss'\nimport { BaseBoundaries, BaseLayout, type BaseComponentInterface } from '@/components/Base'\nimport { ActionsLayout } from '@/components/Common'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { Form } from '@/components/Common/Form'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { useI18n, useComponentDictionary } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport type { RadioGroupProps } from '@/components/Common/UI/RadioGroup/RadioGroupTypes'\n\n/**\n * Props for {@link CompensationEditForm}.\n *\n * @public\n */\nexport interface CompensationEditFormProps extends BaseComponentInterface<'Contractor.Management.Compensation'> {\n /** The associated contractor identifier. */\n contractorId: string\n}\n\n/**\n * Standalone edit form for a contractor's compensation type and rate.\n *\n * @remarks\n * Renders a Fixed/Hourly compensation-type selector and, when Hourly, an\n * hourly-rate field. Save and Cancel both emit events so the parent can\n * return to the read view.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `contractor/management/compensation/updated` | Fired after compensation is successfully saved | The updated `Contractor` entity |\n * | `contractor/management/compensation/editCancelled` | Fired when the user clicks Cancel | — |\n *\n * @param input - See {@link CompensationEditFormProps}.\n * @returns The contractor compensation edit form.\n * @public\n */\nexport function CompensationEditForm({\n FallbackComponent,\n LoaderComponent,\n ...props\n}: CompensationEditFormProps) {\n return (\n <BaseBoundaries\n componentName=\"Contractor.Management.Compensation\"\n FallbackComponent={FallbackComponent}\n LoaderComponent={LoaderComponent}\n >\n <CompensationEditFormRoot LoaderComponent={LoaderComponent} {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction CompensationEditFormRoot({\n contractorId,\n className,\n dictionary,\n onEvent,\n LoaderComponent,\n}: CompensationEditFormProps) {\n useI18n('Contractor.Management.Compensation')\n useComponentDictionary('Contractor.Management.Compensation', dictionary)\n const { t } = useTranslation('Contractor.Management.Compensation')\n const Components = useComponentContext()\n\n const payForm = useContractorPayForm({ contractorId })\n\n if (payForm.isLoading) {\n return (\n <BaseLayout\n isLoading\n error={payForm.errorHandling.errors}\n LoaderComponent={LoaderComponent}\n />\n )\n }\n\n const { Fields } = payForm.form\n\n const handleSubmit = async () => {\n const result = await payForm.actions.onSubmit()\n if (!result) return\n onEvent(componentEvents.CONTRACTOR_MANAGEMENT_COMPENSATION_UPDATED, result.data)\n }\n\n const handleCancel = () => {\n onEvent(componentEvents.CONTRACTOR_MANAGEMENT_COMPENSATION_EDIT_CANCELLED)\n }\n\n const WageTypeFieldComponent = (radioProps: RadioGroupProps) => (\n <Components.RadioGroup\n {...radioProps}\n options={radioProps.options.map(option => ({\n ...option,\n description:\n option.value === WageType.Hourly\n ? t('form.hourlyDescription')\n : t('form.fixedDescription'),\n }))}\n />\n )\n\n return (\n <section className={classNames(styles.container, className)}>\n <BaseLayout error={payForm.errorHandling.errors} LoaderComponent={LoaderComponent}>\n <SDKFormProvider formHookResult={payForm}>\n <Form onSubmit={handleSubmit}>\n <Flex flexDirection=\"column\" gap={4}>\n <Components.Heading as=\"h2\">{t('form.title')}</Components.Heading>\n <Components.Text variant=\"supporting\">{t('form.description')}</Components.Text>\n </Flex>\n <Fields.WageType\n label={t('form.wageTypeLabel')}\n getOptionLabel={(value: string) =>\n value === WageType.Hourly ? t('hourlyLabel') : t('fixedLabel')\n }\n FieldComponent={WageTypeFieldComponent}\n />\n {payForm.status.isHourly && (\n <Fields.HourlyRate\n label={t('form.hourlyRateLabel')}\n format=\"currency\"\n validationMessages={{\n REQUIRED: t('form.validations.hourlyRate'),\n MAX_HOURLY_RATE: t('form.validations.hourlyRateMax'),\n }}\n />\n )}\n <ActionsLayout>\n <Components.Button variant=\"secondary\" onClick={handleCancel} type=\"button\">\n {t('form.cancelCta')}\n </Components.Button>\n <Components.Button type=\"submit\" isLoading={payForm.status.isPending}>\n {t('form.saveCta')}\n </Components.Button>\n </ActionsLayout>\n </Form>\n </SDKFormProvider>\n </BaseLayout>\n </section>\n )\n}\n"],"names":["CompensationEditForm","FallbackComponent","LoaderComponent","props","jsx","BaseBoundaries","CompensationEditFormRoot","contractorId","className","dictionary","onEvent","useI18n","useComponentDictionary","t","useTranslation","Components","useComponentContext","payForm","useContractorPayForm","BaseLayout","Fields","handleSubmit","result","componentEvents","handleCancel","WageTypeFieldComponent","radioProps","option","WageType","classNames","styles","SDKFormProvider","jsxs","Form","Flex","value","ActionsLayout"],"mappings":"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"}