@gusto/embedded-react-sdk 0.56.7 → 0.57.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/README.md +1 -1
  3. package/dist/components/Base/Base.js +3 -2
  4. package/dist/components/Base/Base.js.map +1 -1
  5. package/dist/components/Common/DataView/DataCards/DataCards.js +44 -42
  6. package/dist/components/Common/DataView/DataCards/DataCards.js.map +1 -1
  7. package/dist/components/Common/DataView/DataCards/DataCards.module.scss.js +17 -15
  8. package/dist/components/Common/DataView/DataCards/DataCards.module.scss.js.map +1 -1
  9. package/dist/components/Common/UI/Input/Input.js +35 -32
  10. package/dist/components/Common/UI/Input/Input.js.map +1 -1
  11. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +8 -6
  12. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
  13. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +10 -8
  14. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
  15. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +6 -3
  16. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  17. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +8 -6
  18. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
  19. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +6 -3
  20. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  21. package/dist/components/Company/AssignSignatory/TitleSelect.js +11 -10
  22. package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
  23. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +8 -5
  24. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  25. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +9 -8
  26. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
  27. package/dist/components/Company/BankAccount/BankAccountForm/context.js +6 -3
  28. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  29. package/dist/components/Company/BankAccount/BankAccountList/Actions.js +12 -10
  30. package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
  31. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +13 -11
  32. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
  33. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +7 -5
  34. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
  35. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +6 -3
  36. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  37. package/dist/components/Company/FederalTaxes/Actions.js +9 -7
  38. package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
  39. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +11 -8
  40. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  41. package/dist/components/Company/Industry/Actions.js +7 -5
  42. package/dist/components/Company/Industry/Actions.js.map +1 -1
  43. package/dist/components/Company/Industry/Context.js +9 -6
  44. package/dist/components/Company/Industry/Context.js.map +1 -1
  45. package/dist/components/Company/Industry/Edit.js +12 -10
  46. package/dist/components/Company/Industry/Edit.js.map +1 -1
  47. package/dist/components/Company/Locations/LocationForm/Actions.js +10 -8
  48. package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
  49. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +6 -3
  50. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  51. package/dist/components/Company/Locations/LocationsList/Actions.js +8 -6
  52. package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
  53. package/dist/components/Company/Locations/LocationsList/List.js +13 -11
  54. package/dist/components/Company/Locations/LocationsList/List.js.map +1 -1
  55. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +6 -3
  56. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  57. package/dist/components/Company/OnboardingOverview/context.js +6 -3
  58. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  59. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.js +70 -0
  60. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.js.map +1 -0
  61. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.js +30 -32
  62. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.js.map +1 -1
  63. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.js +35 -27
  64. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.js.map +1 -1
  65. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.js +52 -31
  66. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.js.map +1 -1
  67. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js +106 -66
  68. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js.map +1 -1
  69. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/payScheduleAssignmentStateMachine.js +36 -30
  70. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/payScheduleAssignmentStateMachine.js.map +1 -1
  71. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/scheduleLabel.js +7 -0
  72. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/scheduleLabel.js.map +1 -0
  73. package/dist/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.js +83 -0
  74. package/dist/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.js.map +1 -0
  75. package/dist/components/Company/PaySchedule/management/PayScheduleOverview.js +46 -18
  76. package/dist/components/Company/PaySchedule/management/PayScheduleOverview.js.map +1 -1
  77. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +7 -5
  78. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
  79. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js +96 -69
  80. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js.map +1 -1
  81. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +6 -3
  82. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  83. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +8 -6
  84. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
  85. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +6 -3
  86. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  87. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +6 -3
  88. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
  89. package/dist/components/Company/StateTaxes/shared/requirementSetError.js +27 -10
  90. package/dist/components/Company/StateTaxes/shared/requirementSetError.js.map +1 -1
  91. package/dist/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetail.js +77 -0
  92. package/dist/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetail.js.map +1 -0
  93. package/dist/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetailPresentation.js +94 -0
  94. package/dist/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetailPresentation.js.map +1 -0
  95. package/dist/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlow.js +26 -0
  96. package/dist/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlow.js.map +1 -0
  97. package/dist/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlowComponents.js +25 -0
  98. package/dist/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlowComponents.js.map +1 -0
  99. package/dist/components/Company/TaxPayments/TaxPaymentsFlow/taxPaymentsStateMachine.js +33 -0
  100. package/dist/components/Company/TaxPayments/TaxPaymentsFlow/taxPaymentsStateMachine.js.map +1 -0
  101. package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsList.js +55 -0
  102. package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsList.js.map +1 -0
  103. package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsListPresentation.js +153 -0
  104. package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsListPresentation.js.map +1 -0
  105. package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsListPresentation.module.scss.js +14 -0
  106. package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsListPresentation.module.scss.js.map +1 -0
  107. package/dist/components/Company/TaxPayments/shared/payrollLookupWindow.js +16 -0
  108. package/dist/components/Company/TaxPayments/shared/payrollLookupWindow.js.map +1 -0
  109. package/dist/components/Company/TaxPayments/shared/taxPaymentStatus.js +34 -0
  110. package/dist/components/Company/TaxPayments/shared/taxPaymentStatus.js.map +1 -0
  111. package/dist/components/Company/TaxPayments/shared/useAllTaxPayments.js +30 -0
  112. package/dist/components/Company/TaxPayments/shared/useAllTaxPayments.js.map +1 -0
  113. package/dist/components/Company/exports/companyManagement.js +10 -4
  114. package/dist/components/Company/exports/companyManagement.js.map +1 -1
  115. package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.js +17 -16
  116. package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.js.map +1 -1
  117. package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.js +9 -8
  118. package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
  119. package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.js +8 -6
  120. package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.js.map +1 -1
  121. package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.js +27 -26
  122. package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
  123. package/dist/components/Contractor/Profile/management/ProfileEditForm.js +11 -11
  124. package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js +13 -12
  125. package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js.map +1 -1
  126. package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js +13 -12
  127. package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
  128. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js +8 -6
  129. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js.map +1 -1
  130. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +6 -3
  131. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  132. package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js +24 -23
  133. package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js.map +1 -1
  134. package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js +4 -3
  135. package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js.map +1 -1
  136. package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js +4 -3
  137. package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js.map +1 -1
  138. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js +24 -22
  139. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js.map +1 -1
  140. package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js +9 -8
  141. package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js.map +1 -1
  142. package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js +15 -14
  143. package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
  144. package/dist/components/Employee/Profile/management/ProfileEditForm.js +1 -1
  145. package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js +1 -1
  146. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/employeeDetailsSchema.js +13 -13
  147. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/employeeDetailsSchema.js.map +1 -1
  148. package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js +8 -7
  149. package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js.map +1 -1
  150. package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js +8 -7
  151. package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js.map +1 -1
  152. package/dist/components/Employee/Terminations/TerminationFlow/terminationStateMachine.js +42 -34
  153. package/dist/components/Employee/Terminations/TerminationFlow/terminationStateMachine.js.map +1 -1
  154. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js +16 -14
  155. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js.map +1 -1
  156. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js +8 -6
  157. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
  158. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js +11 -9
  159. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js.map +1 -1
  160. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.js +113 -111
  161. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.js.map +1 -1
  162. package/dist/components/Payroll/PayrollFlow/PayrollFlow.js.map +1 -1
  163. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js +60 -52
  164. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js.map +1 -1
  165. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js +27 -31
  166. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
  167. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js.map +1 -1
  168. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.js +23 -18
  169. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.js.map +1 -1
  170. package/dist/components/Payroll/PayrollList/PayrollList.js +31 -35
  171. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  172. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +204 -179
  173. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  174. package/dist/components/Payroll/PayrollOverview/PayrollOverview.module.scss.js +8 -0
  175. package/dist/components/Payroll/PayrollOverview/PayrollOverview.module.scss.js.map +1 -0
  176. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js +4 -4
  177. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js.map +1 -1
  178. package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.js +50 -41
  179. package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.js.map +1 -1
  180. package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js +5 -9
  181. package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js.map +1 -1
  182. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js +164 -154
  183. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js.map +1 -1
  184. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js +9 -5
  185. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js.map +1 -1
  186. package/dist/components/Payroll/helpers.js +91 -84
  187. package/dist/components/Payroll/helpers.js.map +1 -1
  188. package/dist/components/Payroll/usePreparedPayrollData.js +16 -13
  189. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  190. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js +4 -2
  191. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
  192. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +8 -6
  193. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
  194. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js +30 -28
  195. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
  196. package/dist/contexts/ApiProvider/ApiProvider.js +19 -18
  197. package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
  198. package/dist/contexts/ApiProvider/createSdkQueryClient.js +4 -3
  199. package/dist/contexts/ApiProvider/createSdkQueryClient.js.map +1 -1
  200. package/dist/contexts/ApiProvider/payrollOffCycleReasonEnumHook.js +36 -0
  201. package/dist/contexts/ApiProvider/payrollOffCycleReasonEnumHook.js.map +1 -0
  202. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +4 -2
  203. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  204. package/dist/contexts/ObservabilityProvider/sanitization.js +98 -47
  205. package/dist/contexts/ObservabilityProvider/sanitization.js.map +1 -1
  206. package/dist/contexts/UnstableFeaturesProvider/useUnstableFeature.js.map +1 -1
  207. package/dist/helpers/validations.js +1 -1
  208. package/dist/helpers/validations.js.map +1 -1
  209. package/dist/i18n/I18n.js +2 -0
  210. package/dist/i18n/I18n.js.map +1 -1
  211. package/dist/i18n/en/Company.AssignSignatory.json.js +1 -1
  212. package/dist/i18n/en/Company.Management.PaySchedule.json.js +24 -14
  213. package/dist/i18n/en/Company.Management.PaySchedule.json.js.map +1 -1
  214. package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js +12 -10
  215. package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js.map +1 -1
  216. package/dist/i18n/en/Company.Management.TaxPaymentDetail.json.js +26 -0
  217. package/dist/i18n/en/Company.Management.TaxPaymentDetail.json.js.map +1 -0
  218. package/dist/i18n/en/Company.Management.TaxPaymentsList.json.js +48 -0
  219. package/dist/i18n/en/Company.Management.TaxPaymentsList.json.js.map +1 -0
  220. package/dist/i18n/en/Company.StateTaxes.json.js +1 -1
  221. package/dist/i18n/en/Payroll.PayrollOverview.json.js +42 -36
  222. package/dist/i18n/en/Payroll.PayrollOverview.json.js.map +1 -1
  223. package/dist/package.json.js +1 -1
  224. package/dist/partner-hook-utils/form/fields/CheckboxHookField.js +10 -8
  225. package/dist/partner-hook-utils/form/fields/CheckboxHookField.js.map +1 -1
  226. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js +14 -12
  227. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js.map +1 -1
  228. package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js +15 -13
  229. package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js.map +1 -1
  230. package/dist/partner-hook-utils/form/fields/SelectHookField.js +12 -10
  231. package/dist/partner-hook-utils/form/fields/SelectHookField.js.map +1 -1
  232. package/dist/partner-hook-utils/form/fields/SwitchHookField.js +16 -14
  233. package/dist/partner-hook-utils/form/fields/SwitchHookField.js.map +1 -1
  234. package/dist/partner-hook-utils/form/fields/TextInputHookField.js +10 -8
  235. package/dist/partner-hook-utils/form/fields/TextInputHookField.js.map +1 -1
  236. package/dist/shared/constants.js +62 -56
  237. package/dist/shared/constants.js.map +1 -1
  238. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.d.ts +15 -0
  239. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.d.ts +3 -3
  240. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.d.ts +7 -3
  241. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.d.ts +20 -4
  242. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/scheduleLabel.d.ts +3 -0
  243. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/usePayScheduleAssignment.d.ts +10 -1
  244. package/dist/src/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.d.ts +25 -0
  245. package/dist/src/components/Company/StateTaxes/shared/requirementSetError.d.ts +18 -5
  246. package/dist/src/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetail.d.ts +31 -0
  247. package/dist/src/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetailPresentation.d.ts +19 -0
  248. package/dist/src/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlow.d.ts +42 -0
  249. package/dist/src/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlowComponents.d.ts +20 -0
  250. package/dist/src/components/Company/TaxPayments/TaxPaymentsFlow/taxPaymentsStateMachine.d.ts +10 -0
  251. package/dist/src/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsList.d.ts +28 -0
  252. package/dist/src/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsListPresentation.d.ts +33 -0
  253. package/dist/src/components/Company/TaxPayments/index.d.ts +6 -0
  254. package/dist/src/components/Company/TaxPayments/shared/payrollLookupWindow.d.ts +29 -0
  255. package/dist/src/components/Company/TaxPayments/shared/payrollLookupWindow.test.d.ts +1 -0
  256. package/dist/src/components/Company/TaxPayments/shared/taxPaymentStatus.d.ts +62 -0
  257. package/dist/src/components/Company/TaxPayments/shared/taxPaymentStatus.test.d.ts +1 -0
  258. package/dist/src/components/Company/TaxPayments/shared/useAllTaxPayments.d.ts +30 -0
  259. package/dist/src/components/Company/exports/companyManagement.d.ts +2 -0
  260. package/dist/src/components/Employee/Profile/shared/useEmployeeDetailsForm/employeeDetailsSchema.test.d.ts +1 -0
  261. package/dist/src/components/Payroll/PayrollConfiguration/__fixtures__/payrollConfigurationMocks.d.ts +6 -1
  262. package/dist/src/components/Payroll/PayrollFlow/PayrollFlow.d.ts +1 -0
  263. package/dist/src/components/Payroll/PayrollLanding/PayrollLanding.d.ts +1 -0
  264. package/dist/src/components/Payroll/PayrollOverview/PayrollOverview.d.ts +9 -3
  265. package/dist/src/components/Payroll/helpers.d.ts +14 -18
  266. package/dist/src/contexts/ApiProvider/createSdkQueryClient.d.ts +2 -0
  267. package/dist/src/contexts/ApiProvider/createSdkQueryClient.test.d.ts +1 -0
  268. package/dist/src/contexts/ApiProvider/payrollOffCycleReasonEnumHook.d.ts +14 -0
  269. package/dist/src/contexts/ApiProvider/payrollOffCycleReasonEnumHook.test.d.ts +1 -0
  270. package/dist/src/contexts/ObservabilityProvider/sanitization.d.ts +8 -17
  271. package/dist/src/contexts/ObservabilityProvider/useSanitizedObservability.test.d.ts +1 -0
  272. package/dist/src/contexts/UnstableFeaturesProvider/useUnstableFeature.d.ts +2 -0
  273. package/dist/src/helpers/validations.test.d.ts +1 -0
  274. package/dist/src/i18n/types.d.ts +192 -4
  275. package/dist/src/models/external.d.ts +9 -6
  276. package/dist/src/shared/constants.d.ts +18 -0
  277. package/dist/src/types/observability.d.ts +59 -20
  278. package/dist/style.css +1 -1
  279. package/docs/guides/endpoint-inventory.json +48 -0
  280. package/package.json +34 -31
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentsCard.js","sources":["../../../../../../src/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useContractorDocumentsGetPdf } from '@gusto/embedded-api/react-query/contractorDocumentsGetPdf'\nimport type { Document } from '@gusto/embedded-api/models/components/document'\nimport { requiresSignature } from '../../shared/documentSigningStatus'\nimport { useContractorDocumentsList } from '../../shared/useContractorDocumentsList'\nimport { DataView, EmptyData, useDataView, Loading } from '@/components/Common'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { LoaderComponentType } from '@/components/Base'\n\n/**\n * Props for {@link DocumentsCard}.\n *\n * @public\n */\nexport interface DocumentsCardProps {\n /** The associated contractor identifier. */\n contractorId: string\n /** Event handler fired when the user views a document. */\n onEvent: OnEventType<EventType, unknown>\n /** Custom loading indicator rendered while this component's async data is fetching. Overrides the indicator configured on `GustoProvider` for this instance only. */\n LoaderComponent?: LoaderComponentType\n}\n\n/**\n * Standalone read-only \"Documents\" card.\n *\n * @remarks\n * Fetches its own data via {@link useContractorDocumentsList} and renders a\n * table of the contractor's forms with a per-row \"View\" action that opens\n * the document's PDF in a new tab. Read-only — signing happens during\n * contractor onboarding, not from this surface.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `contractor/management/documents/card/viewRequested` | Fired when a document row's \"View\" button is clicked, before the PDF is fetched | `{ contractorId: string, documentUuid: string }` |\n * | `contractor/management/documents/card/viewed` | Fired after the PDF is fetched and opened in a new tab | `{ contractorId: string, documentUuid: string }` |\n *\n * @param props - See {@link DocumentsCardProps}.\n * @returns The contractor documents card.\n * @public\n */\nexport function DocumentsCard({ LoaderComponent, ...props }: DocumentsCardProps) {\n return (\n <BaseBoundaries\n componentName=\"Contractor.Management.Documents\"\n LoaderComponent={LoaderComponent}\n >\n <DocumentsCardContent LoaderComponent={LoaderComponent} {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction DocumentsCardContent({ contractorId, onEvent, LoaderComponent }: DocumentsCardProps) {\n useI18n('Contractor.Management.Documents')\n const { t } = useTranslation('Contractor.Management.Documents')\n const Components = useComponentContext()\n const documentsList = useContractorDocumentsList({ contractorId })\n\n const isLoading = documentsList.isLoading\n const documents = documentsList.isLoading ? [] : documentsList.data.documents\n const isShowingTable = documents.length > 0\n\n const columns = [\n {\n key: 'title',\n title: t('nameColumn'),\n render: (document: Document) => (\n <Components.Text weight=\"medium\" size=\"sm\">\n {document.title ?? document.name ?? t('emptyPlaceholder')}\n </Components.Text>\n ),\n },\n {\n key: 'description',\n title: t('descriptionColumn'),\n render: (document: Document) => (\n <Components.Text variant=\"supporting\" size=\"sm\">\n {document.description ?? t('emptyPlaceholder')}\n </Components.Text>\n ),\n },\n {\n key: 'signingStatus',\n title: t('signingStatusColumn'),\n render: (document: Document) =>\n requiresSignature(document) ? (\n <Components.Badge status=\"warning\">{t('signingStatus.notSigned')}</Components.Badge>\n ) : (\n <Components.Badge status=\"success\">{t('signingStatus.signed')}</Components.Badge>\n ),\n },\n ]\n\n const dataViewProps = useDataView({\n data: documents,\n columns,\n itemMenu: document =>\n document.uuid ? (\n <ViewButton contractorId={contractorId} documentUuid={document.uuid} onEvent={onEvent} />\n ) : null,\n emptyState: () => <EmptyData title={t('emptyState.title')} />,\n })\n\n return (\n <BaseLayout error={documentsList.errorHandling.errors} LoaderComponent={LoaderComponent}>\n <Components.Box\n withPadding={!isShowingTable}\n header={<Components.BoxHeader title={t('title')} />}\n >\n {isLoading ? (\n <Loading />\n ) : isShowingTable ? (\n <DataView label={t('listLabel')} isWithinBox {...dataViewProps} />\n ) : (\n <EmptyData title={t('emptyState.title')} />\n )}\n </Components.Box>\n </BaseLayout>\n )\n}\n\nfunction ViewButton({\n contractorId,\n documentUuid,\n onEvent,\n}: {\n contractorId: string\n documentUuid: string\n onEvent: OnEventType<EventType, unknown>\n}) {\n const { t } = useTranslation('Contractor.Management.Documents')\n const Components = useComponentContext()\n const [isOpening, setIsOpening] = useState(false)\n const { refetch } = useContractorDocumentsGetPdf({ documentUuid }, { enabled: false })\n\n const handleView = async () => {\n onEvent(componentEvents.CONTRACTOR_MANAGEMENT_DOCUMENTS_CARD_VIEW_REQUESTED, {\n contractorId,\n documentUuid,\n })\n setIsOpening(true)\n try {\n const { data } = await refetch()\n const url = data?.documentPdf?.documentUrl\n if (url) {\n window.open(url, '_blank', 'noopener,noreferrer')\n onEvent(componentEvents.CONTRACTOR_MANAGEMENT_DOCUMENTS_CARD_VIEWED, {\n contractorId,\n documentUuid,\n })\n }\n } finally {\n setIsOpening(false)\n }\n }\n\n return (\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n void handleView()\n }}\n isLoading={isOpening}\n >\n {t('viewCta')}\n </Components.Button>\n )\n}\n"],"names":["DocumentsCard","LoaderComponent","props","jsx","BaseBoundaries","DocumentsCardContent","contractorId","onEvent","useI18n","t","useTranslation","Components","useComponentContext","documentsList","useContractorDocumentsList","isLoading","documents","isShowingTable","columns","document","requiresSignature","dataViewProps","useDataView","ViewButton","EmptyData","BaseLayout","Loading","DataView","documentUuid","isOpening","setIsOpening","useState","refetch","useContractorDocumentsGetPdf","handleView","componentEvents","data","url"],"mappings":"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"}
1
+ {"version":3,"file":"DocumentsCard.js","sources":["../../../../../../src/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useContractorDocumentsGetPdf } from '@gusto/embedded-api/react-query/contractorDocumentsGetPdf'\nimport type { Document } from '@gusto/embedded-api/models/components/document'\nimport { requiresSignature } from '../../shared/documentSigningStatus'\nimport { useContractorDocumentsList } from '../../shared/useContractorDocumentsList'\nimport { DataView, EmptyData, useDataView, Loading } from '@/components/Common'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { LoaderComponentType } from '@/components/Base'\n\n/**\n * Props for {@link DocumentsCard}.\n *\n * @public\n */\nexport interface DocumentsCardProps {\n /** The associated contractor identifier. */\n contractorId: string\n /** Event handler fired when the user views a document. */\n onEvent: OnEventType<EventType, unknown>\n /** Custom loading indicator rendered while this component's async data is fetching. Overrides the indicator configured on `GustoProvider` for this instance only. */\n LoaderComponent?: LoaderComponentType\n}\n\n/**\n * Standalone read-only \"Documents\" card.\n *\n * @remarks\n * Fetches its own data via {@link useContractorDocumentsList} and renders a\n * table of the contractor's forms with a per-row \"View\" action that opens\n * the document's PDF in a new tab. Read-only — signing happens during\n * contractor onboarding, not from this surface.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `contractor/management/documents/card/viewRequested` | Fired when a document row's \"View\" button is clicked, before the PDF is fetched | `{ contractorId: string, documentUuid: string }` |\n * | `contractor/management/documents/card/viewed` | Fired after the PDF is fetched and opened in a new tab | `{ contractorId: string, documentUuid: string }` |\n *\n * @param props - See {@link DocumentsCardProps}.\n * @returns The contractor documents card.\n * @public\n */\nexport function DocumentsCard({ LoaderComponent, ...props }: DocumentsCardProps) {\n return (\n <BaseBoundaries\n componentName=\"Contractor.Management.Documents\"\n LoaderComponent={LoaderComponent}\n >\n <DocumentsCardContent LoaderComponent={LoaderComponent} {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction DocumentsCardContent({ contractorId, onEvent, LoaderComponent }: DocumentsCardProps) {\n useI18n('Contractor.Management.Documents')\n const { t } = useTranslation('Contractor.Management.Documents')\n const Components = useComponentContext()\n const documentsList = useContractorDocumentsList({ contractorId })\n\n const isLoading = documentsList.isLoading\n const documents = documentsList.isLoading ? [] : documentsList.data.documents\n const isShowingTable = documents.length > 0\n\n const columns = [\n {\n key: 'title',\n title: t('nameColumn'),\n render: (document: Document) => (\n <Components.Text weight=\"medium\" size=\"sm\">\n {document.title ?? document.name ?? t('emptyPlaceholder')}\n </Components.Text>\n ),\n },\n {\n key: 'description',\n title: t('descriptionColumn'),\n render: (document: Document) => (\n <Components.Text variant=\"supporting\" size=\"sm\">\n {document.description ?? t('emptyPlaceholder')}\n </Components.Text>\n ),\n },\n {\n key: 'signingStatus',\n title: t('signingStatusColumn'),\n render: (document: Document) =>\n requiresSignature(document) ? (\n <Components.Badge status=\"warning\">{t('signingStatus.notSigned')}</Components.Badge>\n ) : (\n <Components.Badge status=\"success\">{t('signingStatus.signed')}</Components.Badge>\n ),\n },\n ]\n\n const dataViewProps = useDataView({\n data: documents,\n columns,\n itemMenu: document =>\n document.uuid ? (\n <ViewButton contractorId={contractorId} documentUuid={document.uuid} onEvent={onEvent} />\n ) : null,\n emptyState: () => <EmptyData title={t('emptyState.title')} />,\n })\n\n return (\n <BaseLayout error={documentsList.errorHandling.errors} LoaderComponent={LoaderComponent}>\n <Components.Box\n withPadding={!isShowingTable}\n header={<Components.BoxHeader title={t('title')} />}\n >\n {isLoading ? (\n <Loading />\n ) : isShowingTable ? (\n <DataView label={t('listLabel')} isWithinBox {...dataViewProps} />\n ) : (\n <EmptyData title={t('emptyState.title')} />\n )}\n </Components.Box>\n </BaseLayout>\n )\n}\n\nfunction ViewButton({\n contractorId,\n documentUuid,\n onEvent,\n}: {\n contractorId: string\n documentUuid: string\n onEvent: OnEventType<EventType, unknown>\n}) {\n const { t } = useTranslation('Contractor.Management.Documents')\n const Components = useComponentContext()\n const [isOpening, setIsOpening] = useState(false)\n const { refetch } = useContractorDocumentsGetPdf({ documentUuid }, { enabled: false })\n\n const handleView = async () => {\n onEvent(componentEvents.CONTRACTOR_MANAGEMENT_DOCUMENTS_CARD_VIEW_REQUESTED, {\n contractorId,\n documentUuid,\n })\n setIsOpening(true)\n try {\n const { data } = await refetch()\n const url = data?.documentPdf?.documentUrl\n if (url) {\n window.open(url, '_blank', 'noopener,noreferrer')\n onEvent(componentEvents.CONTRACTOR_MANAGEMENT_DOCUMENTS_CARD_VIEWED, {\n contractorId,\n documentUuid,\n })\n }\n } finally {\n setIsOpening(false)\n }\n }\n\n return (\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n void handleView()\n }}\n isLoading={isOpening}\n >\n {t('viewCta')}\n </Components.Button>\n )\n}\n"],"names":["DocumentsCard","LoaderComponent","props","jsx","BaseBoundaries","DocumentsCardContent","contractorId","onEvent","useI18n","t","useTranslation","Components","useComponentContext","documentsList","useContractorDocumentsList","isLoading","documents","isShowingTable","columns","document","requiresSignature","dataViewProps","useDataView","ViewButton","EmptyData","BaseLayout","Loading","DataView","documentUuid","isOpening","setIsOpening","useState","refetch","useContractorDocumentsGetPdf","handleView","componentEvents","data","url"],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { jsx as r, jsxs as s } from "react/jsx-runtime";
2
2
  import { useTranslation as f } from "react-i18next";
3
3
  import { useContractorBankAccountForm as C } from "../useContractorBankAccountForm/useContractorBankAccountForm.js";
4
+ import "classnames";
5
+ import "../../../../../shared/constants.js";
4
6
  import { ActionsLayout as B } from "../../../../Common/ActionsLayout/ActionsLayout.js";
5
7
  import { Form as k } from "../../../../Common/Form/Form.js";
6
8
  import { BaseLayout as m } from "../../../../Base/Base.js";
@@ -9,16 +11,16 @@ import { SDKFormProvider as F } from "../../../../../partner-hook-utils/form/SDK
9
11
  import { useI18n as A, useComponentDictionary as h } from "../../../../../i18n/I18n.js";
10
12
  import { useComponentContext as y } from "../../../../../contexts/ComponentAdapter/useComponentContext.js";
11
13
  import { ContractorBankAccountFields as b } from "../ContractorBankAccountFields/ContractorBankAccountFields.js";
12
- function K({
14
+ function T({
13
15
  contractorId: u,
14
16
  dictionary: t,
15
17
  onSaved: d,
16
18
  onCancel: n,
17
19
  LoaderComponent: i,
18
- ...l
20
+ ...p
19
21
  }) {
20
22
  A("Contractor.BankAccountFields"), h("Contractor.BankAccountFields", t);
21
- const o = C({ contractorId: u, ...l }), { t: c } = f("Contractor.BankAccountFields"), e = y();
23
+ const o = C({ contractorId: u, ...p }), { t: c } = f("Contractor.BankAccountFields"), e = y();
22
24
  if (o.isLoading)
23
25
  return /* @__PURE__ */ r(
24
26
  m,
@@ -28,11 +30,11 @@ function K({
28
30
  LoaderComponent: i
29
31
  }
30
32
  );
31
- const p = async () => {
33
+ const l = async () => {
32
34
  const a = await o.actions.onSubmit();
33
35
  a && d(a.data);
34
36
  };
35
- return /* @__PURE__ */ r(m, { error: o.errorHandling.errors, LoaderComponent: i, children: /* @__PURE__ */ r(F, { formHookResult: o, children: /* @__PURE__ */ s(k, { onSubmit: p, children: [
37
+ return /* @__PURE__ */ r(m, { error: o.errorHandling.errors, LoaderComponent: i, children: /* @__PURE__ */ r(F, { formHookResult: o, children: /* @__PURE__ */ s(k, { onSubmit: l, children: [
36
38
  /* @__PURE__ */ r(b, { bankAccountForm: o, dictionary: t }),
37
39
  /* @__PURE__ */ s(B, { children: [
38
40
  n && /* @__PURE__ */ r(e.Button, { variant: "secondary", type: "button", onClick: n, children: c("cancelCta") }),
@@ -41,6 +43,6 @@ function K({
41
43
  ] }) }) });
42
44
  }
43
45
  export {
44
- K as ContractorBankAccountFormBody
46
+ T as ContractorBankAccountFormBody
45
47
  };
46
48
  //# sourceMappingURL=ContractorBankAccountFormBody.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContractorBankAccountFormBody.js","sources":["../../../../../../src/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { ContractorBankAccount } from '@gusto/embedded-api/models/components/contractorbankaccount'\nimport { useContractorBankAccountForm } from '../useContractorBankAccountForm'\nimport type { UseContractorBankAccountFormProps } from '../useContractorBankAccountForm'\nimport {\n ContractorBankAccountFields,\n type ContractorBankAccountFieldsDictionary,\n} from '../ContractorBankAccountFields'\nimport { ActionsLayout } from '@/components/Common'\nimport { Form } from '@/components/Common/Form'\nimport { BaseLayout } from '@/components/Base'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport type { LoaderComponentType } from '@/components/Base'\n\n/** @internal */\nexport interface ContractorBankAccountFormBodyProps extends Omit<\n UseContractorBankAccountFormProps,\n 'contractorId'\n> {\n /** The associated contractor identifier. */\n contractorId: string\n /**\n * Translation overrides for the form's strings. Each consuming surface\n * passes the dictionary it resolved from its own namespace so a partner\n * override on one surface doesn't leak into the other.\n */\n dictionary?: ContractorBankAccountFieldsDictionary\n /** Called with the created bank account after a successful submit. */\n onSaved: (bankAccount: ContractorBankAccount) => void\n onCancel?: () => void\n /** Custom loading indicator rendered while this component's async data is fetching. Overrides the indicator configured on `GustoProvider` for this instance only. */\n LoaderComponent?: LoaderComponentType\n}\n\n/**\n * Shared bank-account form body. Owns the `useContractorBankAccountForm`\n * composition, the shared field set, and the submit/cancel actions. Reads\n * its copy from the internal `Contractor.BankAccountFields` namespace;\n * consuming surfaces inject their own copy via the `dictionary` prop and map\n * the `onSaved`/`onCancel` callbacks onto their surface-specific events.\n *\n * @internal\n */\nexport function ContractorBankAccountFormBody({\n contractorId,\n dictionary,\n onSaved,\n onCancel,\n LoaderComponent,\n ...hookProps\n}: ContractorBankAccountFormBodyProps) {\n useI18n('Contractor.BankAccountFields')\n useComponentDictionary('Contractor.BankAccountFields', dictionary)\n const bankAccountForm = useContractorBankAccountForm({ contractorId, ...hookProps })\n const { t } = useTranslation('Contractor.BankAccountFields')\n const Components = useComponentContext()\n\n if (bankAccountForm.isLoading) {\n return (\n <BaseLayout\n isLoading\n error={bankAccountForm.errorHandling.errors}\n LoaderComponent={LoaderComponent}\n />\n )\n }\n\n const handleSubmit = async () => {\n const result = await bankAccountForm.actions.onSubmit()\n if (result) {\n onSaved(result.data)\n }\n }\n\n return (\n <BaseLayout error={bankAccountForm.errorHandling.errors} LoaderComponent={LoaderComponent}>\n <SDKFormProvider formHookResult={bankAccountForm}>\n <Form onSubmit={handleSubmit}>\n <ContractorBankAccountFields bankAccountForm={bankAccountForm} dictionary={dictionary} />\n <ActionsLayout>\n {onCancel && (\n <Components.Button variant=\"secondary\" type=\"button\" onClick={onCancel}>\n {t('cancelCta')}\n </Components.Button>\n )}\n <Components.Button type=\"submit\" isLoading={bankAccountForm.status.isPending}>\n {t('saveCta')}\n </Components.Button>\n </ActionsLayout>\n </Form>\n </SDKFormProvider>\n </BaseLayout>\n )\n}\n"],"names":["ContractorBankAccountFormBody","contractorId","dictionary","onSaved","onCancel","LoaderComponent","hookProps","useI18n","useComponentDictionary","bankAccountForm","useContractorBankAccountForm","t","useTranslation","Components","useComponentContext","jsx","BaseLayout","handleSubmit","result","SDKFormProvider","jsxs","Form","ContractorBankAccountFields","ActionsLayout"],"mappings":";;;;;;;;;;;AA6CO,SAASA,EAA8B;AAAA,EAC5C,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,GAAGC;AACL,GAAuC;AACrC,EAAAC,EAAQ,8BAA8B,GACtCC,EAAuB,gCAAgCN,CAAU;AACjE,QAAMO,IAAkBC,EAA6B,EAAE,cAAAT,GAAc,GAAGK,GAAW,GAC7E,EAAE,GAAAK,EAAA,IAAMC,EAAe,8BAA8B,GACrDC,IAAaC,EAAA;AAEnB,MAAIL,EAAgB;AAClB,WACE,gBAAAM;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAS;AAAA,QACT,OAAOP,EAAgB,cAAc;AAAA,QACrC,iBAAAJ;AAAA,MAAA;AAAA,IAAA;AAKN,QAAMY,IAAe,YAAY;AAC/B,UAAMC,IAAS,MAAMT,EAAgB,QAAQ,SAAA;AAC7C,IAAIS,KACFf,EAAQe,EAAO,IAAI;AAAA,EAEvB;AAEA,SACE,gBAAAH,EAACC,GAAA,EAAW,OAAOP,EAAgB,cAAc,QAAQ,iBAAAJ,GACvD,UAAA,gBAAAU,EAACI,GAAA,EAAgB,gBAAgBV,GAC/B,UAAA,gBAAAW,EAACC,GAAA,EAAK,UAAUJ,GACd,UAAA;AAAA,IAAA,gBAAAF,EAACO,GAAA,EAA4B,iBAAAb,GAAkC,YAAAP,EAAA,CAAwB;AAAA,sBACtFqB,GAAA,EACE,UAAA;AAAA,MAAAnB,KACC,gBAAAW,EAACF,EAAW,QAAX,EAAkB,SAAQ,aAAY,MAAK,UAAS,SAAST,GAC3D,UAAAO,EAAE,WAAW,EAAA,CAChB;AAAA,MAEF,gBAAAI,EAACF,EAAW,QAAX,EAAkB,MAAK,UAAS,WAAWJ,EAAgB,OAAO,WAChE,UAAAE,EAAE,SAAS,EAAA,CACd;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,EAAA,CACF,GACF,GACF;AAEJ;"}
1
+ {"version":3,"file":"ContractorBankAccountFormBody.js","sources":["../../../../../../src/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { ContractorBankAccount } from '@gusto/embedded-api/models/components/contractorbankaccount'\nimport { useContractorBankAccountForm } from '../useContractorBankAccountForm'\nimport type { UseContractorBankAccountFormProps } from '../useContractorBankAccountForm'\nimport {\n ContractorBankAccountFields,\n type ContractorBankAccountFieldsDictionary,\n} from '../ContractorBankAccountFields'\nimport { ActionsLayout } from '@/components/Common'\nimport { Form } from '@/components/Common/Form'\nimport { BaseLayout } from '@/components/Base'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport type { LoaderComponentType } from '@/components/Base'\n\n/** @internal */\nexport interface ContractorBankAccountFormBodyProps extends Omit<\n UseContractorBankAccountFormProps,\n 'contractorId'\n> {\n /** The associated contractor identifier. */\n contractorId: string\n /**\n * Translation overrides for the form's strings. Each consuming surface\n * passes the dictionary it resolved from its own namespace so a partner\n * override on one surface doesn't leak into the other.\n */\n dictionary?: ContractorBankAccountFieldsDictionary\n /** Called with the created bank account after a successful submit. */\n onSaved: (bankAccount: ContractorBankAccount) => void\n onCancel?: () => void\n /** Custom loading indicator rendered while this component's async data is fetching. Overrides the indicator configured on `GustoProvider` for this instance only. */\n LoaderComponent?: LoaderComponentType\n}\n\n/**\n * Shared bank-account form body. Owns the `useContractorBankAccountForm`\n * composition, the shared field set, and the submit/cancel actions. Reads\n * its copy from the internal `Contractor.BankAccountFields` namespace;\n * consuming surfaces inject their own copy via the `dictionary` prop and map\n * the `onSaved`/`onCancel` callbacks onto their surface-specific events.\n *\n * @internal\n */\nexport function ContractorBankAccountFormBody({\n contractorId,\n dictionary,\n onSaved,\n onCancel,\n LoaderComponent,\n ...hookProps\n}: ContractorBankAccountFormBodyProps) {\n useI18n('Contractor.BankAccountFields')\n useComponentDictionary('Contractor.BankAccountFields', dictionary)\n const bankAccountForm = useContractorBankAccountForm({ contractorId, ...hookProps })\n const { t } = useTranslation('Contractor.BankAccountFields')\n const Components = useComponentContext()\n\n if (bankAccountForm.isLoading) {\n return (\n <BaseLayout\n isLoading\n error={bankAccountForm.errorHandling.errors}\n LoaderComponent={LoaderComponent}\n />\n )\n }\n\n const handleSubmit = async () => {\n const result = await bankAccountForm.actions.onSubmit()\n if (result) {\n onSaved(result.data)\n }\n }\n\n return (\n <BaseLayout error={bankAccountForm.errorHandling.errors} LoaderComponent={LoaderComponent}>\n <SDKFormProvider formHookResult={bankAccountForm}>\n <Form onSubmit={handleSubmit}>\n <ContractorBankAccountFields bankAccountForm={bankAccountForm} dictionary={dictionary} />\n <ActionsLayout>\n {onCancel && (\n <Components.Button variant=\"secondary\" type=\"button\" onClick={onCancel}>\n {t('cancelCta')}\n </Components.Button>\n )}\n <Components.Button type=\"submit\" isLoading={bankAccountForm.status.isPending}>\n {t('saveCta')}\n </Components.Button>\n </ActionsLayout>\n </Form>\n </SDKFormProvider>\n </BaseLayout>\n )\n}\n"],"names":["ContractorBankAccountFormBody","contractorId","dictionary","onSaved","onCancel","LoaderComponent","hookProps","useI18n","useComponentDictionary","bankAccountForm","useContractorBankAccountForm","t","useTranslation","Components","useComponentContext","jsx","BaseLayout","handleSubmit","result","SDKFormProvider","jsxs","Form","ContractorBankAccountFields","ActionsLayout"],"mappings":";;;;;;;;;;;;;AA6CO,SAASA,EAA8B;AAAA,EAC5C,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,GAAGC;AACL,GAAuC;AACrC,EAAAC,EAAQ,8BAA8B,GACtCC,EAAuB,gCAAgCN,CAAU;AACjE,QAAMO,IAAkBC,EAA6B,EAAE,cAAAT,GAAc,GAAGK,GAAW,GAC7E,EAAE,GAAAK,EAAA,IAAMC,EAAe,8BAA8B,GACrDC,IAAaC,EAAA;AAEnB,MAAIL,EAAgB;AAClB,WACE,gBAAAM;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAS;AAAA,QACT,OAAOP,EAAgB,cAAc;AAAA,QACrC,iBAAAJ;AAAA,MAAA;AAAA,IAAA;AAKN,QAAMY,IAAe,YAAY;AAC/B,UAAMC,IAAS,MAAMT,EAAgB,QAAQ,SAAA;AAC7C,IAAIS,KACFf,EAAQe,EAAO,IAAI;AAAA,EAEvB;AAEA,SACE,gBAAAH,EAACC,GAAA,EAAW,OAAOP,EAAgB,cAAc,QAAQ,iBAAAJ,GACvD,UAAA,gBAAAU,EAACI,GAAA,EAAgB,gBAAgBV,GAC/B,UAAA,gBAAAW,EAACC,GAAA,EAAK,UAAUJ,GACd,UAAA;AAAA,IAAA,gBAAAF,EAACO,GAAA,EAA4B,iBAAAb,GAAkC,YAAAP,EAAA,CAAwB;AAAA,sBACtFqB,GAAA,EACE,UAAA;AAAA,MAAAnB,KACC,gBAAAW,EAACF,EAAW,QAAX,EAAkB,SAAQ,aAAY,MAAK,UAAS,SAAST,GAC3D,UAAAO,EAAE,WAAW,EAAA,CAChB;AAAA,MAEF,gBAAAI,EAACF,EAAW,QAAX,EAAkB,MAAK,UAAS,WAAWJ,EAAgB,OAAO,WAChE,UAAAE,EAAE,SAAS,EAAA,CACd;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,EAAA,CACF,GACF,GACF;AAEJ;"}
@@ -1,59 +1,60 @@
1
- import { jsx as e } from "react/jsx-runtime";
1
+ import { jsx as o } from "react/jsx-runtime";
2
2
  import { useTranslation as N } from "react-i18next";
3
- import { Loading as h } from "../../../../Common/Loading/Loading.js";
4
- import { BaseBoundaries as g, BaseLayout as P } from "../../../../Base/Base.js";
5
- import { useComponentContext as T } from "../../../../../contexts/ComponentAdapter/useComponentContext.js";
6
- import { formatDateLongWithYear as X } from "../../../../../helpers/dateFormatting.js";
7
- import { firstLastName as v } from "../../../../../helpers/formattedStrings.js";
8
- import { useI18n as y } from "../../../../../i18n/I18n.js";
9
- import { CONTRACTOR_TYPE as B, componentEvents as D } from "../../../../../shared/constants.js";
3
+ import "classnames";
4
+ import { CONTRACTOR_TYPE as h, componentEvents as g } from "../../../../../shared/constants.js";
5
+ import { Loading as P } from "../../../../Common/Loading/Loading.js";
6
+ import { BaseBoundaries as T, BaseLayout as X } from "../../../../Base/Base.js";
7
+ import { useComponentContext as v } from "../../../../../contexts/ComponentAdapter/useComponentContext.js";
8
+ import { formatDateLongWithYear as y } from "../../../../../helpers/dateFormatting.js";
9
+ import { firstLastName as B } from "../../../../../helpers/formattedStrings.js";
10
+ import { useI18n as D } from "../../../../../i18n/I18n.js";
10
11
  import { useContractorProfileSummary as L } from "../../shared/useContractorProfileSummary/useContractorProfileSummary.js";
11
- function U({ LoaderComponent: r, ...s }) {
12
- return /* @__PURE__ */ e(g, { componentName: "Contractor.Management.Profile", LoaderComponent: r, children: /* @__PURE__ */ e(S, { LoaderComponent: r, ...s }) });
12
+ function Y({ LoaderComponent: r, ...s }) {
13
+ return /* @__PURE__ */ o(T, { componentName: "Contractor.Management.Profile", LoaderComponent: r, children: /* @__PURE__ */ o(S, { LoaderComponent: r, ...s }) });
13
14
  }
14
15
  function S({ contractorId: r, onEvent: s, LoaderComponent: l }) {
15
- y("Contractor.Management.Profile");
16
- const { t: o } = N("Contractor.Management.Profile"), n = T(), a = L({ contractorId: r }), m = a.isLoading, t = a.isLoading ? void 0 : a.data.contractor, c = t?.type === B.BUSINESS, d = t ? c ? t.businessName : v({
16
+ D("Contractor.Management.Profile");
17
+ const { t: e } = N("Contractor.Management.Profile"), n = v(), a = L({ contractorId: r }), m = a.isLoading, t = a.isLoading ? void 0 : a.data.contractor, c = t?.type === h.BUSINESS, d = t ? c ? t.businessName : B({
17
18
  first_name: t.firstName,
18
19
  middle_initial: t.middleInitial,
19
20
  last_name: t.lastName
20
- }) : void 0, p = t ? X(t.startDate) : void 0, f = t?.hasSsn ? "XXX-XX-XXXX" : void 0, u = t?.hasEin ? t.ein ?? void 0 : void 0, i = /* @__PURE__ */ e("span", { "aria-label": o("listEmptyPlaceholder"), children: "–" }), C = t ? [
21
- { term: o("legalName"), description: d || i },
22
- { term: o("startDate"), description: p || i },
21
+ }) : void 0, p = t ? y(t.startDate) : void 0, f = t?.hasSsn ? "XXX-XX-XXXX" : void 0, u = t?.hasEin ? t.ein ?? void 0 : void 0, i = /* @__PURE__ */ o("span", { "aria-label": e("listEmptyPlaceholder"), children: "–" }), C = t ? [
22
+ { term: e("legalName"), description: d || i },
23
+ { term: e("startDate"), description: p || i },
23
24
  c ? {
24
- term: o("employerIdentificationNumber"),
25
+ term: e("employerIdentificationNumber"),
25
26
  description: u || i
26
27
  } : {
27
- term: o("socialSecurityNumber"),
28
+ term: e("socialSecurityNumber"),
28
29
  description: f || i
29
30
  },
30
- { term: o("email"), description: t.email || i }
31
+ { term: e("email"), description: t.email || i }
31
32
  ] : [], E = () => {
32
- s(D.CONTRACTOR_MANAGEMENT_PROFILE_EDIT_REQUESTED, { contractorId: r });
33
+ s(g.CONTRACTOR_MANAGEMENT_PROFILE_EDIT_REQUESTED, { contractorId: r });
33
34
  };
34
- return /* @__PURE__ */ e(P, { error: a.errorHandling.errors, LoaderComponent: l, children: /* @__PURE__ */ e(
35
+ return /* @__PURE__ */ o(X, { error: a.errorHandling.errors, LoaderComponent: l, children: /* @__PURE__ */ o(
35
36
  n.Box,
36
37
  {
37
- header: /* @__PURE__ */ e(
38
+ header: /* @__PURE__ */ o(
38
39
  n.BoxHeader,
39
40
  {
40
- title: o("title"),
41
- action: /* @__PURE__ */ e(
41
+ title: e("title"),
42
+ action: /* @__PURE__ */ o(
42
43
  n.Button,
43
44
  {
44
45
  variant: "secondary",
45
46
  onClick: E,
46
47
  isDisabled: m,
47
- children: o("editCta")
48
+ children: e("editCta")
48
49
  }
49
50
  )
50
51
  }
51
52
  ),
52
- children: m ? /* @__PURE__ */ e(h, {}) : t ? /* @__PURE__ */ e(n.DescriptionList, { items: C }) : null
53
+ children: m ? /* @__PURE__ */ o(P, {}) : t ? /* @__PURE__ */ o(n.DescriptionList, { items: C }) : null
53
54
  }
54
55
  ) });
55
56
  }
56
57
  export {
57
- U as ProfileCard
58
+ Y as ProfileCard
58
59
  };
59
60
  //# sourceMappingURL=ProfileCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProfileCard.js","sources":["../../../../../../src/components/Contractor/Profile/management/ProfileCard/ProfileCard.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useContractorProfileSummary } from '../../shared/useContractorProfileSummary'\nimport { Loading } from '@/components/Common'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { formatDateLongWithYear } from '@/helpers/dateFormatting'\nimport { firstLastName } from '@/helpers/formattedStrings'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, CONTRACTOR_TYPE, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { LoaderComponentType } from '@/components/Base'\n\n/**\n * Props for {@link ProfileCard}.\n *\n * @public\n */\nexport interface ProfileCardProps {\n /** The associated contractor identifier. */\n contractorId: string\n /** Event handler fired when the user requests to edit the profile. */\n onEvent: OnEventType<EventType, unknown>\n /** Custom loading indicator rendered while this component's async data is fetching. Overrides the indicator configured on `GustoProvider` for this instance only. */\n LoaderComponent?: LoaderComponentType\n}\n\n/**\n * Read-only card showing a contractor's basic profile details with an Edit action.\n *\n * @remarks\n * Standalone card that fetches its own data. Emits an event when the user\n * clicks Edit so the parent can switch to the edit form. The card does not\n * render success or error alerts itself — alert presentation is the\n * surrounding surface's responsibility.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `contractor/management/profile/editRequested` | Fired when the user clicks the Edit button | `{ contractorId: string }` |\n *\n * @param props - See {@link ProfileCardProps}.\n * @returns The basic-details profile card.\n * @public\n */\nexport function ProfileCard({ LoaderComponent, ...props }: ProfileCardProps) {\n return (\n <BaseBoundaries componentName=\"Contractor.Management.Profile\" LoaderComponent={LoaderComponent}>\n <ProfileCardContent LoaderComponent={LoaderComponent} {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction ProfileCardContent({ contractorId, onEvent, LoaderComponent }: ProfileCardProps) {\n useI18n('Contractor.Management.Profile')\n const { t } = useTranslation('Contractor.Management.Profile')\n const Components = useComponentContext()\n\n const profile = useContractorProfileSummary({ contractorId })\n\n const isContractorLoading = profile.isLoading\n\n const contractor = profile.isLoading ? undefined : profile.data.contractor\n\n const isBusiness = contractor?.type === CONTRACTOR_TYPE.BUSINESS\n\n const legalName = contractor\n ? isBusiness\n ? contractor.businessName\n : firstLastName({\n first_name: contractor.firstName,\n middle_initial: contractor.middleInitial,\n last_name: contractor.lastName,\n })\n : undefined\n const startDate = contractor ? formatDateLongWithYear(contractor.startDate) : undefined\n const maskedSsn = contractor?.hasSsn ? 'XXX-XX-XXXX' : undefined\n const maskedEin = contractor?.hasEin ? (contractor.ein ?? undefined) : undefined\n\n const emptyPlaceholder = <span aria-label={t('listEmptyPlaceholder')}>–</span>\n const profileItems = contractor\n ? [\n { term: t('legalName'), description: legalName || emptyPlaceholder },\n { term: t('startDate'), description: startDate || emptyPlaceholder },\n isBusiness\n ? {\n term: t('employerIdentificationNumber'),\n description: maskedEin || emptyPlaceholder,\n }\n : {\n term: t('socialSecurityNumber'),\n description: maskedSsn || emptyPlaceholder,\n },\n { term: t('email'), description: contractor.email || emptyPlaceholder },\n ]\n : []\n\n const handleEdit = () => {\n onEvent(componentEvents.CONTRACTOR_MANAGEMENT_PROFILE_EDIT_REQUESTED, { contractorId })\n }\n\n return (\n <BaseLayout error={profile.errorHandling.errors} LoaderComponent={LoaderComponent}>\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('title')}\n action={\n <Components.Button\n variant=\"secondary\"\n onClick={handleEdit}\n isDisabled={isContractorLoading}\n >\n {t('editCta')}\n </Components.Button>\n }\n />\n }\n >\n {isContractorLoading ? (\n <Loading />\n ) : contractor ? (\n <Components.DescriptionList items={profileItems} />\n ) : null}\n </Components.Box>\n </BaseLayout>\n )\n}\n"],"names":["ProfileCard","LoaderComponent","props","jsx","BaseBoundaries","ProfileCardContent","contractorId","onEvent","useI18n","t","useTranslation","Components","useComponentContext","profile","useContractorProfileSummary","isContractorLoading","contractor","isBusiness","CONTRACTOR_TYPE","legalName","firstLastName","startDate","formatDateLongWithYear","maskedSsn","maskedEin","emptyPlaceholder","profileItems","handleEdit","componentEvents","BaseLayout","Loading"],"mappings":";;;;;;;;;;AA4CO,SAASA,EAAY,EAAE,iBAAAC,GAAiB,GAAGC,KAA2B;AAC3E,SACE,gBAAAC,EAACC,GAAA,EAAe,eAAc,iCAAgC,iBAAAH,GAC5D,4BAACI,GAAA,EAAmB,iBAAAJ,GAAmC,GAAGC,EAAA,CAAO,EAAA,CACnE;AAEJ;AAEA,SAASG,EAAmB,EAAE,cAAAC,GAAc,SAAAC,GAAS,iBAAAN,KAAqC;AACxF,EAAAO,EAAQ,+BAA+B;AACvC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,+BAA+B,GACtDC,IAAaC,EAAA,GAEbC,IAAUC,EAA4B,EAAE,cAAAR,GAAc,GAEtDS,IAAsBF,EAAQ,WAE9BG,IAAaH,EAAQ,YAAY,SAAYA,EAAQ,KAAK,YAE1DI,IAAaD,GAAY,SAASE,EAAgB,UAElDC,IAAYH,IACdC,IACED,EAAW,eACXI,EAAc;AAAA,IACZ,YAAYJ,EAAW;AAAA,IACvB,gBAAgBA,EAAW;AAAA,IAC3B,WAAWA,EAAW;AAAA,EAAA,CACvB,IACH,QACEK,IAAYL,IAAaM,EAAuBN,EAAW,SAAS,IAAI,QACxEO,IAAYP,GAAY,SAAS,gBAAgB,QACjDQ,IAAYR,GAAY,SAAUA,EAAW,OAAO,SAAa,QAEjES,IAAmB,gBAAAtB,EAAC,QAAA,EAAK,cAAYM,EAAE,sBAAsB,GAAG,UAAA,KAAC,GACjEiB,IAAeV,IACjB;AAAA,IACE,EAAE,MAAMP,EAAE,WAAW,GAAG,aAAaU,KAAaM,EAAA;AAAA,IAClD,EAAE,MAAMhB,EAAE,WAAW,GAAG,aAAaY,KAAaI,EAAA;AAAA,IAClDR,IACI;AAAA,MACE,MAAMR,EAAE,8BAA8B;AAAA,MACtC,aAAae,KAAaC;AAAA,IAAA,IAE5B;AAAA,MACE,MAAMhB,EAAE,sBAAsB;AAAA,MAC9B,aAAac,KAAaE;AAAA,IAAA;AAAA,IAEhC,EAAE,MAAMhB,EAAE,OAAO,GAAG,aAAaO,EAAW,SAASS,EAAA;AAAA,EAAiB,IAExE,CAAA,GAEEE,IAAa,MAAM;AACvB,IAAApB,EAAQqB,EAAgB,8CAA8C,EAAE,cAAAtB,EAAA,CAAc;AAAA,EACxF;AAEA,2BACGuB,GAAA,EAAW,OAAOhB,EAAQ,cAAc,QAAQ,iBAAAZ,GAC/C,UAAA,gBAAAE;AAAA,IAACQ,EAAW;AAAA,IAAX;AAAA,MACC,QACE,gBAAAR;AAAA,QAACQ,EAAW;AAAA,QAAX;AAAA,UACC,OAAOF,EAAE,OAAO;AAAA,UAChB,QACE,gBAAAN;AAAA,YAACQ,EAAW;AAAA,YAAX;AAAA,cACC,SAAQ;AAAA,cACR,SAASgB;AAAA,cACT,YAAYZ;AAAA,cAEX,YAAE,SAAS;AAAA,YAAA;AAAA,UAAA;AAAA,QACd;AAAA,MAAA;AAAA,MAKL,UAAAA,IACC,gBAAAZ,EAAC2B,GAAA,CAAA,CAAQ,IACPd,IACF,gBAAAb,EAACQ,EAAW,iBAAX,EAA2B,OAAOe,EAAA,CAAc,IAC/C;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ;"}
1
+ {"version":3,"file":"ProfileCard.js","sources":["../../../../../../src/components/Contractor/Profile/management/ProfileCard/ProfileCard.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useContractorProfileSummary } from '../../shared/useContractorProfileSummary'\nimport { Loading } from '@/components/Common'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { formatDateLongWithYear } from '@/helpers/dateFormatting'\nimport { firstLastName } from '@/helpers/formattedStrings'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, CONTRACTOR_TYPE, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { LoaderComponentType } from '@/components/Base'\n\n/**\n * Props for {@link ProfileCard}.\n *\n * @public\n */\nexport interface ProfileCardProps {\n /** The associated contractor identifier. */\n contractorId: string\n /** Event handler fired when the user requests to edit the profile. */\n onEvent: OnEventType<EventType, unknown>\n /** Custom loading indicator rendered while this component's async data is fetching. Overrides the indicator configured on `GustoProvider` for this instance only. */\n LoaderComponent?: LoaderComponentType\n}\n\n/**\n * Read-only card showing a contractor's basic profile details with an Edit action.\n *\n * @remarks\n * Standalone card that fetches its own data. Emits an event when the user\n * clicks Edit so the parent can switch to the edit form. The card does not\n * render success or error alerts itself — alert presentation is the\n * surrounding surface's responsibility.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `contractor/management/profile/editRequested` | Fired when the user clicks the Edit button | `{ contractorId: string }` |\n *\n * @param props - See {@link ProfileCardProps}.\n * @returns The basic-details profile card.\n * @public\n */\nexport function ProfileCard({ LoaderComponent, ...props }: ProfileCardProps) {\n return (\n <BaseBoundaries componentName=\"Contractor.Management.Profile\" LoaderComponent={LoaderComponent}>\n <ProfileCardContent LoaderComponent={LoaderComponent} {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction ProfileCardContent({ contractorId, onEvent, LoaderComponent }: ProfileCardProps) {\n useI18n('Contractor.Management.Profile')\n const { t } = useTranslation('Contractor.Management.Profile')\n const Components = useComponentContext()\n\n const profile = useContractorProfileSummary({ contractorId })\n\n const isContractorLoading = profile.isLoading\n\n const contractor = profile.isLoading ? undefined : profile.data.contractor\n\n const isBusiness = contractor?.type === CONTRACTOR_TYPE.BUSINESS\n\n const legalName = contractor\n ? isBusiness\n ? contractor.businessName\n : firstLastName({\n first_name: contractor.firstName,\n middle_initial: contractor.middleInitial,\n last_name: contractor.lastName,\n })\n : undefined\n const startDate = contractor ? formatDateLongWithYear(contractor.startDate) : undefined\n const maskedSsn = contractor?.hasSsn ? 'XXX-XX-XXXX' : undefined\n const maskedEin = contractor?.hasEin ? (contractor.ein ?? undefined) : undefined\n\n const emptyPlaceholder = <span aria-label={t('listEmptyPlaceholder')}>–</span>\n const profileItems = contractor\n ? [\n { term: t('legalName'), description: legalName || emptyPlaceholder },\n { term: t('startDate'), description: startDate || emptyPlaceholder },\n isBusiness\n ? {\n term: t('employerIdentificationNumber'),\n description: maskedEin || emptyPlaceholder,\n }\n : {\n term: t('socialSecurityNumber'),\n description: maskedSsn || emptyPlaceholder,\n },\n { term: t('email'), description: contractor.email || emptyPlaceholder },\n ]\n : []\n\n const handleEdit = () => {\n onEvent(componentEvents.CONTRACTOR_MANAGEMENT_PROFILE_EDIT_REQUESTED, { contractorId })\n }\n\n return (\n <BaseLayout error={profile.errorHandling.errors} LoaderComponent={LoaderComponent}>\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('title')}\n action={\n <Components.Button\n variant=\"secondary\"\n onClick={handleEdit}\n isDisabled={isContractorLoading}\n >\n {t('editCta')}\n </Components.Button>\n }\n />\n }\n >\n {isContractorLoading ? (\n <Loading />\n ) : contractor ? (\n <Components.DescriptionList items={profileItems} />\n ) : null}\n </Components.Box>\n </BaseLayout>\n )\n}\n"],"names":["ProfileCard","LoaderComponent","props","jsx","BaseBoundaries","ProfileCardContent","contractorId","onEvent","useI18n","t","useTranslation","Components","useComponentContext","profile","useContractorProfileSummary","isContractorLoading","contractor","isBusiness","CONTRACTOR_TYPE","legalName","firstLastName","startDate","formatDateLongWithYear","maskedSsn","maskedEin","emptyPlaceholder","profileItems","handleEdit","componentEvents","BaseLayout","Loading"],"mappings":";;;;;;;;;;;AA4CO,SAASA,EAAY,EAAE,iBAAAC,GAAiB,GAAGC,KAA2B;AAC3E,SACE,gBAAAC,EAACC,GAAA,EAAe,eAAc,iCAAgC,iBAAAH,GAC5D,4BAACI,GAAA,EAAmB,iBAAAJ,GAAmC,GAAGC,EAAA,CAAO,EAAA,CACnE;AAEJ;AAEA,SAASG,EAAmB,EAAE,cAAAC,GAAc,SAAAC,GAAS,iBAAAN,KAAqC;AACxF,EAAAO,EAAQ,+BAA+B;AACvC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,+BAA+B,GACtDC,IAAaC,EAAA,GAEbC,IAAUC,EAA4B,EAAE,cAAAR,GAAc,GAEtDS,IAAsBF,EAAQ,WAE9BG,IAAaH,EAAQ,YAAY,SAAYA,EAAQ,KAAK,YAE1DI,IAAaD,GAAY,SAASE,EAAgB,UAElDC,IAAYH,IACdC,IACED,EAAW,eACXI,EAAc;AAAA,IACZ,YAAYJ,EAAW;AAAA,IACvB,gBAAgBA,EAAW;AAAA,IAC3B,WAAWA,EAAW;AAAA,EAAA,CACvB,IACH,QACEK,IAAYL,IAAaM,EAAuBN,EAAW,SAAS,IAAI,QACxEO,IAAYP,GAAY,SAAS,gBAAgB,QACjDQ,IAAYR,GAAY,SAAUA,EAAW,OAAO,SAAa,QAEjES,IAAmB,gBAAAtB,EAAC,QAAA,EAAK,cAAYM,EAAE,sBAAsB,GAAG,UAAA,KAAC,GACjEiB,IAAeV,IACjB;AAAA,IACE,EAAE,MAAMP,EAAE,WAAW,GAAG,aAAaU,KAAaM,EAAA;AAAA,IAClD,EAAE,MAAMhB,EAAE,WAAW,GAAG,aAAaY,KAAaI,EAAA;AAAA,IAClDR,IACI;AAAA,MACE,MAAMR,EAAE,8BAA8B;AAAA,MACtC,aAAae,KAAaC;AAAA,IAAA,IAE5B;AAAA,MACE,MAAMhB,EAAE,sBAAsB;AAAA,MAC9B,aAAac,KAAaE;AAAA,IAAA;AAAA,IAEhC,EAAE,MAAMhB,EAAE,OAAO,GAAG,aAAaO,EAAW,SAASS,EAAA;AAAA,EAAiB,IAExE,CAAA,GAEEE,IAAa,MAAM;AACvB,IAAApB,EAAQqB,EAAgB,8CAA8C,EAAE,cAAAtB,EAAA,CAAc;AAAA,EACxF;AAEA,2BACGuB,GAAA,EAAW,OAAOhB,EAAQ,cAAc,QAAQ,iBAAAZ,GAC/C,UAAA,gBAAAE;AAAA,IAACQ,EAAW;AAAA,IAAX;AAAA,MACC,QACE,gBAAAR;AAAA,QAACQ,EAAW;AAAA,QAAX;AAAA,UACC,OAAOF,EAAE,OAAO;AAAA,UAChB,QACE,gBAAAN;AAAA,YAACQ,EAAW;AAAA,YAAX;AAAA,cACC,SAAQ;AAAA,cACR,SAASgB;AAAA,cACT,YAAYZ;AAAA,cAEX,YAAE,SAAS;AAAA,YAAA;AAAA,UAAA;AAAA,QACd;AAAA,MAAA;AAAA,MAKL,UAAAA,IACC,gBAAAZ,EAAC2B,GAAA,CAAA,CAAQ,IACPd,IACF,gBAAAb,EAACQ,EAAW,iBAAX,EAA2B,OAAOe,EAAA,CAAc,IAC/C;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ;"}
@@ -6,12 +6,12 @@ import { useContractorDetailsForm as y } from "../shared/useContractorDetailsFor
6
6
  import d from "./ProfileEditForm.module.scss.js";
7
7
  import { BaseBoundaries as P, BaseLayout as N } from "../../../Base/Base.js";
8
8
  import "../../../Base/useBase.js";
9
- import { Grid as B } from "../../../Common/Grid/Grid.js";
10
- import { ActionsLayout as U } from "../../../Common/ActionsLayout/ActionsLayout.js";
11
- import { Form as O } from "../../../Common/Form/Form.js";
12
- import { SDKFormProvider as V } from "../../../../partner-hook-utils/form/SDKFormProvider.js";
13
- import { useI18n as H, useComponentDictionary as Q } from "../../../../i18n/I18n.js";
14
- import { CONTRACTOR_TYPE as w, componentEvents as I } from "../../../../shared/constants.js";
9
+ import { CONTRACTOR_TYPE as B, componentEvents as I } from "../../../../shared/constants.js";
10
+ import { Grid as U } from "../../../Common/Grid/Grid.js";
11
+ import { ActionsLayout as O } from "../../../Common/ActionsLayout/ActionsLayout.js";
12
+ import { Form as V } from "../../../Common/Form/Form.js";
13
+ import { SDKFormProvider as H } from "../../../../partner-hook-utils/form/SDKFormProvider.js";
14
+ import { useI18n as Q, useComponentDictionary as w } from "../../../../i18n/I18n.js";
15
15
  import { useComponentContext as v } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
16
16
  function se({
17
17
  FallbackComponent: o,
@@ -35,7 +35,7 @@ function x({
35
35
  onEvent: c,
36
36
  LoaderComponent: l
37
37
  }) {
38
- H("Contractor.Management.Profile"), Q("Contractor.Management.Profile", n);
38
+ Q("Contractor.Management.Profile"), w("Contractor.Management.Profile", n);
39
39
  const { t: e } = k("Contractor.Management.Profile"), f = v(), t = y({
40
40
  contractorId: o,
41
41
  withSelfOnboardingField: !1,
@@ -62,7 +62,7 @@ function x({
62
62
  LoaderComponent: l
63
63
  }
64
64
  );
65
- const L = m.type === w.BUSINESS, i = t.form.Fields, { setValue: h } = t.form.hookFormInternals.formMethods, S = async () => {
65
+ const L = m.type === B.BUSINESS, i = t.form.Fields, { setValue: h } = t.form.hookFormInternals.formMethods, S = async () => {
66
66
  u(!1);
67
67
  const g = await t.actions.onSubmit();
68
68
  g && (c(I.CONTRACTOR_MANAGEMENT_PROFILE_UPDATED, g.data), u(!0));
@@ -78,7 +78,7 @@ function x({
78
78
  }
79
79
  }
80
80
  ) : void 0;
81
- return /* @__PURE__ */ a("section", { className: _(d.container, r), children: /* @__PURE__ */ a(N, { error: t.errorHandling.errors, LoaderComponent: l, children: /* @__PURE__ */ a(V, { formHookResult: t, children: /* @__PURE__ */ s(O, { onSubmit: S, children: [
81
+ return /* @__PURE__ */ a("section", { className: _(d.container, r), children: /* @__PURE__ */ a(N, { error: t.errorHandling.errors, LoaderComponent: l, children: /* @__PURE__ */ a(H, { formHookResult: t, children: /* @__PURE__ */ s(V, { onSubmit: S, children: [
82
82
  T,
83
83
  /* @__PURE__ */ a(f.Heading, { as: "h1", children: e("form.title") }),
84
84
  L ? /* @__PURE__ */ s(p, { children: [
@@ -119,7 +119,7 @@ function x({
119
119
  )
120
120
  ] }) : /* @__PURE__ */ s(p, { children: [
121
121
  /* @__PURE__ */ s(
122
- B,
122
+ U,
123
123
  {
124
124
  gap: { base: 20, small: 8 },
125
125
  gridTemplateColumns: { base: "1fr", small: ["1fr", 200] },
@@ -188,7 +188,7 @@ function x({
188
188
  }
189
189
  }
190
190
  ),
191
- /* @__PURE__ */ s(U, { children: [
191
+ /* @__PURE__ */ s(O, { children: [
192
192
  /* @__PURE__ */ a(f.Button, { variant: "secondary", onClick: A, type: "button", children: e("form.cancelCta") }),
193
193
  /* @__PURE__ */ a(f.Button, { type: "submit", isLoading: t.status.isPending, children: e("form.saveCta") })
194
194
  ] })
@@ -4,6 +4,8 @@ import { useDeductionsList as A } from "../../shared/useDeductionsList.js";
4
4
  import { useDeleteDeduction as P } from "../../shared/useDeleteDeduction.js";
5
5
  import { DeleteDeductionDialog as N } from "../../shared/DeleteDeductionDialog.js";
6
6
  import { formatDeductionAmount as S } from "../../shared/formatDeductionAmount.js";
7
+ import "classnames";
8
+ import { componentEvents as s } from "../../../../../shared/constants.js";
7
9
  import { Loading as b } from "../../../../Common/Loading/Loading.js";
8
10
  import { EmptyData as k } from "../../../../Common/EmptyData/EmptyData.js";
9
11
  import { HamburgerMenu as x } from "../../../../Common/HamburgerMenu/HamburgerMenu.js";
@@ -11,34 +13,33 @@ import { BaseBoundaries as B, BaseLayout as U } from "../../../../Base/Base.js";
11
13
  import { useComponentContext as w } from "../../../../../contexts/ComponentAdapter/useComponentContext.js";
12
14
  import u from "../../../../../hooks/useNumberFormatter.js";
13
15
  import { useI18n as O } from "../../../../../i18n/I18n.js";
14
- import { componentEvents as s } from "../../../../../shared/constants.js";
15
16
  import v from "../../../../../assets/icons/plus-circle.svg.js";
16
17
  import G from "../../../../../assets/icons/trashcan.svg.js";
17
18
  import R from "../../../../../assets/icons/pencil.svg.js";
18
19
  import { useDataView as H } from "../../../../Common/DataView/useDataView.js";
19
20
  import { DataView as I } from "../../../../Common/DataView/DataView.js";
20
- function de({ LoaderComponent: o, ...r }) {
21
+ function ce({ LoaderComponent: n, ...r }) {
21
22
  return /* @__PURE__ */ i(
22
23
  B,
23
24
  {
24
25
  componentName: "Employee.Management.Deductions",
25
- LoaderComponent: o,
26
- children: /* @__PURE__ */ i(j, { LoaderComponent: o, ...r })
26
+ LoaderComponent: n,
27
+ children: /* @__PURE__ */ i(j, { LoaderComponent: n, ...r })
27
28
  }
28
29
  );
29
30
  }
30
- function j({ employeeId: o, onEvent: r, LoaderComponent: D }) {
31
+ function j({ employeeId: n, onEvent: r, LoaderComponent: D }) {
31
32
  O("Employee.Management.Deductions");
32
- const { t: e } = _("Employee.Management.Deductions"), d = w(), p = u("currency"), f = u("percent"), n = A({ employeeId: o }), {
33
+ const { t: e } = _("Employee.Management.Deductions"), d = w(), p = u("currency"), f = u("percent"), o = A({ employeeId: n }), {
33
34
  pendingDeleteDeduction: c,
34
35
  setPendingDeleteDeduction: m,
35
36
  handleConfirmDelete: g
36
37
  } = P(async (t) => {
37
- if (n.isLoading) return;
38
- const a = await n.actions.onDelete(t);
38
+ if (o.isLoading) return;
39
+ const a = await o.actions.onDelete(t);
39
40
  a && r(s.EMPLOYEE_MANAGEMENT_DEDUCTIONS_CARD_DELETED, a.data.garnishment);
40
- }), E = n.isLoading && n.errorHandling.errors.length === 0, C = n.isLoading ? [] : n.data.deductions, l = n.isLoading ? void 0 : n.status.deletingGarnishmentUuid, h = () => {
41
- r(s.EMPLOYEE_MANAGEMENT_DEDUCTIONS_CARD_ADD_REQUESTED, { employeeId: o });
41
+ }), E = o.isLoading && o.errorHandling.errors.length === 0, C = o.isLoading ? [] : o.data.deductions, l = o.isLoading ? void 0 : o.status.deletingGarnishmentUuid, h = () => {
42
+ r(s.EMPLOYEE_MANAGEMENT_DEDUCTIONS_CARD_ADD_REQUESTED, { employeeId: n });
42
43
  }, y = (t) => {
43
44
  r(s.EMPLOYEE_MANAGEMENT_DEDUCTIONS_CARD_EDIT_REQUESTED, t);
44
45
  }, L = [
@@ -90,7 +91,7 @@ function j({ employeeId: o, onEvent: r, LoaderComponent: D }) {
90
91
  ),
91
92
  emptyState: () => /* @__PURE__ */ i(k, { title: e("emptyState.title"), description: e("emptyState.description") })
92
93
  });
93
- return /* @__PURE__ */ T(U, { error: n.errorHandling.errors, LoaderComponent: D, children: [
94
+ return /* @__PURE__ */ T(U, { error: o.errorHandling.errors, LoaderComponent: D, children: [
94
95
  /* @__PURE__ */ i(
95
96
  d.Box,
96
97
  {
@@ -127,6 +128,6 @@ function j({ employeeId: o, onEvent: r, LoaderComponent: D }) {
127
128
  ] });
128
129
  }
129
130
  export {
130
- de as DeductionsCard
131
+ ce as DeductionsCard
131
132
  };
132
133
  //# sourceMappingURL=DeductionsCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeductionsCard.js","sources":["../../../../../../src/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { Garnishment } from '@gusto/embedded-api/models/components/garnishment'\nimport { useDeductionsList } from '../../shared/useDeductionsList'\nimport { useDeleteDeduction } from '../../shared/useDeleteDeduction'\nimport { DeleteDeductionDialog } from '../../shared/DeleteDeductionDialog'\nimport { formatDeductionAmount } from '../../shared/formatDeductionAmount'\nimport { DataView, useDataView, EmptyData, Loading } from '@/components/Common'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { LoaderComponentType } from '@/components/Base'\nimport PlusCircleIcon from '@/assets/icons/plus-circle.svg?react'\nimport TrashCanSvg from '@/assets/icons/trashcan.svg?react'\nimport PencilSvg from '@/assets/icons/pencil.svg?react'\n\n/**\n * Props for {@link DeductionsCard}.\n *\n * @public\n */\nexport interface DeductionsCardProps {\n /** The associated employee identifier. */\n employeeId: string\n /** Callback invoked when the card emits an event. See the events table on {@link DeductionsCard} for the available event types and payloads. */\n onEvent: OnEventType<EventType, unknown>\n /** Custom loading indicator rendered while this component's async data is fetching. Overrides the indicator configured on `GustoProvider` for this instance only. */\n LoaderComponent?: LoaderComponentType\n}\n\n/**\n * Standalone read-only card listing an employee's active deductions, with affordances to add, edit, or delete a deduction.\n *\n * @remarks\n * Fetches its own data and owns the delete confirm dialog. Has no alert API — alert rendering is the consumer's responsibility. Add and edit affordances do not open a form themselves; emit-then-route is the contract, so the consumer listens for the `addRequested` / `editRequested` events and renders {@link DeductionsEditForm} (or its own equivalent) accordingly. For an orchestrated card-plus-form flow, use {@link Deductions} instead.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/management/deductions/card/addRequested` | Fired when the \"Add deduction\" CTA is clicked | `{ employeeId: string }` |\n * | `employee/management/deductions/card/editRequested` | Fired when an \"Edit\" CTA is clicked for a deduction | The matching `Garnishment` |\n * | `employee/management/deductions/card/deleted` | Fired after a deduction is deleted via the confirm dialog | The deleted `Garnishment` |\n *\n * @param props - See {@link DeductionsCardProps}.\n * @returns The rendered deductions card.\n * @public\n */\nexport function DeductionsCard({ LoaderComponent, ...props }: DeductionsCardProps) {\n return (\n <BaseBoundaries\n componentName=\"Employee.Management.Deductions\"\n LoaderComponent={LoaderComponent}\n >\n <DeductionsCardContent LoaderComponent={LoaderComponent} {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction DeductionsCardContent({ employeeId, onEvent, LoaderComponent }: DeductionsCardProps) {\n useI18n('Employee.Management.Deductions')\n const { t } = useTranslation('Employee.Management.Deductions')\n const Components = useComponentContext()\n const formatCurrency = useNumberFormatter('currency')\n const formatPercent = useNumberFormatter('percent')\n\n const deductionsList = useDeductionsList({ employeeId })\n\n const {\n pendingDeleteDeduction,\n setPendingDeleteDeduction,\n handleConfirmDelete: handleConfirmDeleteDeduction,\n } = useDeleteDeduction(async garnishment => {\n if (deductionsList.isLoading) return\n const result = await deductionsList.actions.onDelete(garnishment)\n if (result) {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_DEDUCTIONS_CARD_DELETED, result.data.garnishment)\n }\n })\n\n // `useDeductionsList` returns `isLoading: true` even when the query has\n // errored and `data` is missing. Treat those rows as \"not loading\" so the\n // section doesn't show a perpetual skeleton while BaseLayout already\n // renders the error alert.\n const isDeductionsLoading =\n deductionsList.isLoading && deductionsList.errorHandling.errors.length === 0\n\n const deductions = deductionsList.isLoading ? [] : deductionsList.data.deductions\n const deletingGarnishmentUuid = deductionsList.isLoading\n ? undefined\n : deductionsList.status.deletingGarnishmentUuid\n\n const handleAdd = () => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_DEDUCTIONS_CARD_ADD_REQUESTED, { employeeId })\n }\n const handleEdit = (garnishment: Garnishment) => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_DEDUCTIONS_CARD_EDIT_REQUESTED, garnishment)\n }\n\n const garnishmentsColumns = [\n {\n key: 'description',\n title: t('columns.deduction'),\n render: (garnishment: Garnishment) => garnishment.description || '-',\n },\n {\n key: 'frequency',\n title: t('columns.frequency'),\n render: (garnishment: Garnishment) => (garnishment.recurring ? t('recurring') : t('oneTime')),\n },\n {\n key: 'amount',\n title: t('columns.withhold'),\n justify: 'end' as const,\n render: (garnishment: Garnishment) =>\n formatDeductionAmount(garnishment, {\n formatCurrency,\n formatPercent,\n formatPerPaycheck: (value: string) => t('amountPerPaycheck', { value }),\n }),\n },\n ]\n\n const garnishmentsDataView = useDataView({\n data: deductions,\n columns: garnishmentsColumns,\n itemMenu: (garnishment: Garnishment) => (\n <HamburgerMenu\n isLoading={deletingGarnishmentUuid === garnishment.uuid}\n items={[\n {\n label: t('editCta'),\n onClick: () => {\n handleEdit(garnishment)\n },\n icon: <PencilSvg aria-hidden />,\n },\n {\n label: t('deleteCta'),\n onClick: () => {\n setPendingDeleteDeduction(garnishment)\n },\n icon: <TrashCanSvg aria-hidden />,\n },\n ]}\n triggerLabel={t('hamburgerTitle')}\n />\n ),\n emptyState: () => (\n <EmptyData title={t('emptyState.title')} description={t('emptyState.description')} />\n ),\n })\n\n return (\n <BaseLayout error={deductionsList.errorHandling.errors} LoaderComponent={LoaderComponent}>\n <Components.Box\n withPadding={false}\n header={\n <Components.BoxHeader\n title={t('title')}\n action={\n <Components.Button variant=\"secondary\" onClick={handleAdd} icon={<PlusCircleIcon />}>\n {t('addDeductionCta')}\n </Components.Button>\n }\n />\n }\n >\n {isDeductionsLoading ? (\n <Loading />\n ) : (\n <DataView label={t('listLabel')} isWithinBox {...garnishmentsDataView} />\n )}\n </Components.Box>\n\n <DeleteDeductionDialog\n pendingDeleteDeduction={pendingDeleteDeduction}\n isPrimaryActionLoading={deletingGarnishmentUuid === pendingDeleteDeduction?.uuid}\n onClose={() => {\n setPendingDeleteDeduction(null)\n }}\n onConfirm={() => {\n void handleConfirmDeleteDeduction()\n }}\n title={t('deleteDeductionDialog.title')}\n description={t('deleteDeductionDialog.description', {\n deduction: pendingDeleteDeduction?.description ?? '',\n })}\n confirmLabel={t('deleteDeductionDialog.confirmCta')}\n cancelLabel={t('deleteDeductionDialog.cancelCta')}\n />\n </BaseLayout>\n )\n}\n"],"names":["DeductionsCard","LoaderComponent","props","jsx","BaseBoundaries","DeductionsCardContent","employeeId","onEvent","useI18n","t","useTranslation","Components","useComponentContext","formatCurrency","useNumberFormatter","formatPercent","deductionsList","useDeductionsList","pendingDeleteDeduction","setPendingDeleteDeduction","handleConfirmDeleteDeduction","useDeleteDeduction","garnishment","result","componentEvents","isDeductionsLoading","deductions","deletingGarnishmentUuid","handleAdd","handleEdit","garnishmentsColumns","formatDeductionAmount","value","garnishmentsDataView","useDataView","HamburgerMenu","PencilSvg","TrashCanSvg","EmptyData","BaseLayout","PlusCircleIcon","Loading","DataView","DeleteDeductionDialog"],"mappings":"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"}
1
+ {"version":3,"file":"DeductionsCard.js","sources":["../../../../../../src/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { Garnishment } from '@gusto/embedded-api/models/components/garnishment'\nimport { useDeductionsList } from '../../shared/useDeductionsList'\nimport { useDeleteDeduction } from '../../shared/useDeleteDeduction'\nimport { DeleteDeductionDialog } from '../../shared/DeleteDeductionDialog'\nimport { formatDeductionAmount } from '../../shared/formatDeductionAmount'\nimport { DataView, useDataView, EmptyData, Loading } from '@/components/Common'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { LoaderComponentType } from '@/components/Base'\nimport PlusCircleIcon from '@/assets/icons/plus-circle.svg?react'\nimport TrashCanSvg from '@/assets/icons/trashcan.svg?react'\nimport PencilSvg from '@/assets/icons/pencil.svg?react'\n\n/**\n * Props for {@link DeductionsCard}.\n *\n * @public\n */\nexport interface DeductionsCardProps {\n /** The associated employee identifier. */\n employeeId: string\n /** Callback invoked when the card emits an event. See the events table on {@link DeductionsCard} for the available event types and payloads. */\n onEvent: OnEventType<EventType, unknown>\n /** Custom loading indicator rendered while this component's async data is fetching. Overrides the indicator configured on `GustoProvider` for this instance only. */\n LoaderComponent?: LoaderComponentType\n}\n\n/**\n * Standalone read-only card listing an employee's active deductions, with affordances to add, edit, or delete a deduction.\n *\n * @remarks\n * Fetches its own data and owns the delete confirm dialog. Has no alert API — alert rendering is the consumer's responsibility. Add and edit affordances do not open a form themselves; emit-then-route is the contract, so the consumer listens for the `addRequested` / `editRequested` events and renders {@link DeductionsEditForm} (or its own equivalent) accordingly. For an orchestrated card-plus-form flow, use {@link Deductions} instead.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/management/deductions/card/addRequested` | Fired when the \"Add deduction\" CTA is clicked | `{ employeeId: string }` |\n * | `employee/management/deductions/card/editRequested` | Fired when an \"Edit\" CTA is clicked for a deduction | The matching `Garnishment` |\n * | `employee/management/deductions/card/deleted` | Fired after a deduction is deleted via the confirm dialog | The deleted `Garnishment` |\n *\n * @param props - See {@link DeductionsCardProps}.\n * @returns The rendered deductions card.\n * @public\n */\nexport function DeductionsCard({ LoaderComponent, ...props }: DeductionsCardProps) {\n return (\n <BaseBoundaries\n componentName=\"Employee.Management.Deductions\"\n LoaderComponent={LoaderComponent}\n >\n <DeductionsCardContent LoaderComponent={LoaderComponent} {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction DeductionsCardContent({ employeeId, onEvent, LoaderComponent }: DeductionsCardProps) {\n useI18n('Employee.Management.Deductions')\n const { t } = useTranslation('Employee.Management.Deductions')\n const Components = useComponentContext()\n const formatCurrency = useNumberFormatter('currency')\n const formatPercent = useNumberFormatter('percent')\n\n const deductionsList = useDeductionsList({ employeeId })\n\n const {\n pendingDeleteDeduction,\n setPendingDeleteDeduction,\n handleConfirmDelete: handleConfirmDeleteDeduction,\n } = useDeleteDeduction(async garnishment => {\n if (deductionsList.isLoading) return\n const result = await deductionsList.actions.onDelete(garnishment)\n if (result) {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_DEDUCTIONS_CARD_DELETED, result.data.garnishment)\n }\n })\n\n // `useDeductionsList` returns `isLoading: true` even when the query has\n // errored and `data` is missing. Treat those rows as \"not loading\" so the\n // section doesn't show a perpetual skeleton while BaseLayout already\n // renders the error alert.\n const isDeductionsLoading =\n deductionsList.isLoading && deductionsList.errorHandling.errors.length === 0\n\n const deductions = deductionsList.isLoading ? [] : deductionsList.data.deductions\n const deletingGarnishmentUuid = deductionsList.isLoading\n ? undefined\n : deductionsList.status.deletingGarnishmentUuid\n\n const handleAdd = () => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_DEDUCTIONS_CARD_ADD_REQUESTED, { employeeId })\n }\n const handleEdit = (garnishment: Garnishment) => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_DEDUCTIONS_CARD_EDIT_REQUESTED, garnishment)\n }\n\n const garnishmentsColumns = [\n {\n key: 'description',\n title: t('columns.deduction'),\n render: (garnishment: Garnishment) => garnishment.description || '-',\n },\n {\n key: 'frequency',\n title: t('columns.frequency'),\n render: (garnishment: Garnishment) => (garnishment.recurring ? t('recurring') : t('oneTime')),\n },\n {\n key: 'amount',\n title: t('columns.withhold'),\n justify: 'end' as const,\n render: (garnishment: Garnishment) =>\n formatDeductionAmount(garnishment, {\n formatCurrency,\n formatPercent,\n formatPerPaycheck: (value: string) => t('amountPerPaycheck', { value }),\n }),\n },\n ]\n\n const garnishmentsDataView = useDataView({\n data: deductions,\n columns: garnishmentsColumns,\n itemMenu: (garnishment: Garnishment) => (\n <HamburgerMenu\n isLoading={deletingGarnishmentUuid === garnishment.uuid}\n items={[\n {\n label: t('editCta'),\n onClick: () => {\n handleEdit(garnishment)\n },\n icon: <PencilSvg aria-hidden />,\n },\n {\n label: t('deleteCta'),\n onClick: () => {\n setPendingDeleteDeduction(garnishment)\n },\n icon: <TrashCanSvg aria-hidden />,\n },\n ]}\n triggerLabel={t('hamburgerTitle')}\n />\n ),\n emptyState: () => (\n <EmptyData title={t('emptyState.title')} description={t('emptyState.description')} />\n ),\n })\n\n return (\n <BaseLayout error={deductionsList.errorHandling.errors} LoaderComponent={LoaderComponent}>\n <Components.Box\n withPadding={false}\n header={\n <Components.BoxHeader\n title={t('title')}\n action={\n <Components.Button variant=\"secondary\" onClick={handleAdd} icon={<PlusCircleIcon />}>\n {t('addDeductionCta')}\n </Components.Button>\n }\n />\n }\n >\n {isDeductionsLoading ? (\n <Loading />\n ) : (\n <DataView label={t('listLabel')} isWithinBox {...garnishmentsDataView} />\n )}\n </Components.Box>\n\n <DeleteDeductionDialog\n pendingDeleteDeduction={pendingDeleteDeduction}\n isPrimaryActionLoading={deletingGarnishmentUuid === pendingDeleteDeduction?.uuid}\n onClose={() => {\n setPendingDeleteDeduction(null)\n }}\n onConfirm={() => {\n void handleConfirmDeleteDeduction()\n }}\n title={t('deleteDeductionDialog.title')}\n description={t('deleteDeductionDialog.description', {\n deduction: pendingDeleteDeduction?.description ?? '',\n })}\n confirmLabel={t('deleteDeductionDialog.confirmCta')}\n cancelLabel={t('deleteDeductionDialog.cancelCta')}\n />\n </BaseLayout>\n )\n}\n"],"names":["DeductionsCard","LoaderComponent","props","jsx","BaseBoundaries","DeductionsCardContent","employeeId","onEvent","useI18n","t","useTranslation","Components","useComponentContext","formatCurrency","useNumberFormatter","formatPercent","deductionsList","useDeductionsList","pendingDeleteDeduction","setPendingDeleteDeduction","handleConfirmDeleteDeduction","useDeleteDeduction","garnishment","result","componentEvents","isDeductionsLoading","deductions","deletingGarnishmentUuid","handleAdd","handleEdit","garnishmentsColumns","formatDeductionAmount","value","garnishmentsDataView","useDataView","HamburgerMenu","PencilSvg","TrashCanSvg","EmptyData","BaseLayout","PlusCircleIcon","Loading","DataView","DeleteDeductionDialog"],"mappings":"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"}
@@ -1,17 +1,18 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
2
  import { useTranslation as c } from "react-i18next";
3
- import { Loading as l } from "../../../../Common/Loading/Loading.js";
3
+ import "classnames";
4
+ import { componentEvents as l } from "../../../../../shared/constants.js";
5
+ import { Loading as p } from "../../../../Common/Loading/Loading.js";
4
6
  import { EmptyData as g } from "../../../../Common/EmptyData/EmptyData.js";
5
- import { BaseBoundaries as p, BaseLayout as f } from "../../../../Base/Base.js";
6
- import { useComponentContext as y } from "../../../../../contexts/ComponentAdapter/useComponentContext.js";
7
- import { useI18n as E } from "../../../../../i18n/I18n.js";
8
- import { componentEvents as C } from "../../../../../shared/constants.js";
7
+ import { BaseBoundaries as f, BaseLayout as y } from "../../../../Base/Base.js";
8
+ import { useComponentContext as E } from "../../../../../contexts/ComponentAdapter/useComponentContext.js";
9
+ import { useI18n as C } from "../../../../../i18n/I18n.js";
9
10
  import { useDocumentsList as D } from "../../shared/useDocumentsList/useDocumentsList.js";
10
11
  import { useDataView as S } from "../../../../Common/DataView/useDataView.js";
11
12
  import { DataView as L } from "../../../../Common/DataView/DataView.js";
12
- function A(o) {
13
+ function b(o) {
13
14
  return /* @__PURE__ */ e(
14
- p,
15
+ f,
15
16
  {
16
17
  componentName: "Employee.Management.Documents",
17
18
  LoaderComponent: o.LoaderComponent,
@@ -20,8 +21,8 @@ function A(o) {
20
21
  );
21
22
  }
22
23
  function h({ employeeId: o, onEvent: s, LoaderComponent: a }) {
23
- E("Employee.Management.Documents");
24
- const { t } = c("Employee.Management.Documents"), r = y(), i = D({ employeeId: o }), m = i.isLoading ? [] : i.data.forms, u = [
24
+ C("Employee.Management.Documents");
25
+ const { t } = c("Employee.Management.Documents"), r = E(), i = D({ employeeId: o }), m = i.isLoading ? [] : i.data.forms, u = [
25
26
  {
26
27
  key: "title",
27
28
  title: t("columns.title"),
@@ -50,7 +51,7 @@ function h({ employeeId: o, onEvent: s, LoaderComponent: a }) {
50
51
  {
51
52
  variant: "secondary",
52
53
  onClick: () => {
53
- s(C.EMPLOYEE_MANAGEMENT_DOCUMENTS_CARD_VIEW_REQUESTED, {
54
+ s(l.EMPLOYEE_MANAGEMENT_DOCUMENTS_CARD_VIEW_REQUESTED, {
54
55
  employeeId: o,
55
56
  formId: n.uuid
56
57
  });
@@ -60,9 +61,9 @@ function h({ employeeId: o, onEvent: s, LoaderComponent: a }) {
60
61
  ),
61
62
  emptyState: () => /* @__PURE__ */ e(g, { title: t("emptyState.title"), description: t("emptyState.description") })
62
63
  });
63
- return /* @__PURE__ */ e(f, { error: i.errorHandling.errors, LoaderComponent: a, children: /* @__PURE__ */ e(r.Box, { withPadding: !1, header: /* @__PURE__ */ e(r.BoxHeader, { title: t("title") }), children: i.isLoading ? /* @__PURE__ */ e(l, {}) : /* @__PURE__ */ e(L, { label: t("listLabel"), isWithinBox: !0, ...d }) }) });
64
+ return /* @__PURE__ */ e(y, { error: i.errorHandling.errors, LoaderComponent: a, children: /* @__PURE__ */ e(r.Box, { withPadding: !1, header: /* @__PURE__ */ e(r.BoxHeader, { title: t("title") }), children: i.isLoading ? /* @__PURE__ */ e(p, {}) : /* @__PURE__ */ e(L, { label: t("listLabel"), isWithinBox: !0, ...d }) }) });
64
65
  }
65
66
  export {
66
- A as DocumentsCard
67
+ b as DocumentsCard
67
68
  };
68
69
  //# sourceMappingURL=DocumentsCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentsCard.js","sources":["../../../../../../src/components/Employee/Documents/management/DocumentsCard/DocumentsCard.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { Form } from '@gusto/embedded-api/models/components/form'\nimport { useDocumentsList } from '../../shared/useDocumentsList'\nimport { DataView, useDataView, EmptyData, Loading } from '@/components/Common'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { LoaderComponentType } from '@/components/Base'\n\n/**\n * Props for {@link DocumentsCard}.\n *\n * @public\n */\nexport interface DocumentsCardProps {\n /** The associated employee identifier. */\n employeeId: string\n /** Event handler fired when a row's View CTA is clicked. */\n onEvent: OnEventType<EventType, unknown>\n /** Custom loading indicator rendered while this component's async data is fetching. Overrides the indicator configured on `GustoProvider` for this instance only. */\n LoaderComponent?: LoaderComponentType\n}\n\n/**\n * Standalone \"Documents\" (forms) card. Owns its own data fetch via\n * {@link useDocumentsList} and renders the employee's forms in a table with a\n * per-row \"View\" action. Emits\n * `employee/management/documents/card/viewRequested` with\n * `{ employeeId, formId }` when a row's View CTA is clicked. The card is\n * read-only — viewing or signing a form happens in the screen the parent\n * routes to — and renders no alerts: alert rendering is the parent's\n * responsibility.\n *\n * @param props - See {@link DocumentsCardProps}.\n * @returns The documents card.\n * @public\n */\nexport function DocumentsCard(props: DocumentsCardProps) {\n return (\n <BaseBoundaries\n componentName=\"Employee.Management.Documents\"\n LoaderComponent={props.LoaderComponent}\n >\n <DocumentsCardContent {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction DocumentsCardContent({ employeeId, onEvent, LoaderComponent }: DocumentsCardProps) {\n useI18n('Employee.Management.Documents')\n const { t } = useTranslation('Employee.Management.Documents')\n const Components = useComponentContext()\n\n const documentsList = useDocumentsList({ employeeId })\n\n const forms = documentsList.isLoading ? [] : documentsList.data.forms\n\n const formsColumns = [\n {\n key: 'title',\n title: t('columns.title'),\n render: (form: Form) => form.title || '-',\n },\n {\n key: 'year',\n title: t('columns.year'),\n render: (form: Form) => (form.year ? String(form.year) : '-'),\n },\n {\n key: 'status',\n title: t('columns.status'),\n render: (form: Form) => (form.draft ? t('status.draft') : t('status.final')),\n },\n {\n key: 'requiresSigning',\n title: t('columns.requiresSigning'),\n render: (form: Form) =>\n form.requiresSigning ? (\n <Components.Badge status=\"warning\">{t('signingStatus.notSigned')}</Components.Badge>\n ) : (\n <Components.Badge status=\"success\">{t('signingStatus.signed')}</Components.Badge>\n ),\n },\n ]\n\n const formsDataView = useDataView({\n data: forms,\n columns: formsColumns,\n itemMenu: (form: Form) => (\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_DOCUMENTS_CARD_VIEW_REQUESTED, {\n employeeId,\n formId: form.uuid,\n })\n }}\n >\n {t('viewCta')}\n </Components.Button>\n ),\n emptyState: () => (\n <EmptyData title={t('emptyState.title')} description={t('emptyState.description')} />\n ),\n })\n\n return (\n <BaseLayout error={documentsList.errorHandling.errors} LoaderComponent={LoaderComponent}>\n <Components.Box withPadding={false} header={<Components.BoxHeader title={t('title')} />}>\n {documentsList.isLoading ? (\n <Loading />\n ) : (\n <DataView label={t('listLabel')} isWithinBox {...formsDataView} />\n )}\n </Components.Box>\n </BaseLayout>\n )\n}\n"],"names":["DocumentsCard","props","jsx","BaseBoundaries","DocumentsCardContent","employeeId","onEvent","LoaderComponent","useI18n","useTranslation","Components","useComponentContext","documentsList","useDocumentsList","forms","formsColumns","form","formsDataView","useDataView","componentEvents","EmptyData","BaseLayout","Loading","DataView"],"mappings":";;;;;;;;;;;AAuCO,SAASA,EAAcC,GAA2B;AACvD,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,eAAc;AAAA,MACd,iBAAiBF,EAAM;AAAA,MAEvB,UAAA,gBAAAC,EAACE,GAAA,EAAsB,GAAGH,EAAA,CAAO;AAAA,IAAA;AAAA,EAAA;AAGvC;AAEA,SAASG,EAAqB,EAAE,YAAAC,GAAY,SAAAC,GAAS,iBAAAC,KAAuC;AAC1F,EAAAC,EAAQ,+BAA+B;AACvC,QAAM,EAAE,EAAA,IAAMC,EAAe,+BAA+B,GACtDC,IAAaC,EAAA,GAEbC,IAAgBC,EAAiB,EAAE,YAAAR,GAAY,GAE/CS,IAAQF,EAAc,YAAY,CAAA,IAAKA,EAAc,KAAK,OAE1DG,IAAe;AAAA,IACnB;AAAA,MACE,KAAK;AAAA,MACL,OAAO,EAAE,eAAe;AAAA,MACxB,QAAQ,CAACC,MAAeA,EAAK,SAAS;AAAA,IAAA;AAAA,IAExC;AAAA,MACE,KAAK;AAAA,MACL,OAAO,EAAE,cAAc;AAAA,MACvB,QAAQ,CAACA,MAAgBA,EAAK,OAAO,OAAOA,EAAK,IAAI,IAAI;AAAA,IAAA;AAAA,IAE3D;AAAA,MACE,KAAK;AAAA,MACL,OAAO,EAAE,gBAAgB;AAAA,MACzB,QAAQ,CAACA,MAAgBA,EAAK,QAAQ,EAAE,cAAc,IAAI,EAAE,cAAc;AAAA,IAAA;AAAA,IAE5E;AAAA,MACE,KAAK;AAAA,MACL,OAAO,EAAE,yBAAyB;AAAA,MAClC,QAAQ,CAACA,MACPA,EAAK,kBACH,gBAAAd,EAACQ,EAAW,OAAX,EAAiB,QAAO,WAAW,YAAE,yBAAyB,GAAE,IAEjE,gBAAAR,EAACQ,EAAW,OAAX,EAAiB,QAAO,WAAW,UAAA,EAAE,sBAAsB,EAAA,CAAE;AAAA,IAAA;AAAA,EAEpE,GAGIO,IAAgBC,EAAY;AAAA,IAChC,MAAMJ;AAAA,IACN,SAASC;AAAA,IACT,UAAU,CAACC,MACT,gBAAAd;AAAA,MAACQ,EAAW;AAAA,MAAX;AAAA,QACC,SAAQ;AAAA,QACR,SAAS,MAAM;AACb,UAAAJ,EAAQa,EAAgB,mDAAmD;AAAA,YACzE,YAAAd;AAAA,YACA,QAAQW,EAAK;AAAA,UAAA,CACd;AAAA,QACH;AAAA,QAEC,YAAE,SAAS;AAAA,MAAA;AAAA,IAAA;AAAA,IAGhB,YAAY,MACV,gBAAAd,EAACkB,GAAA,EAAU,OAAO,EAAE,kBAAkB,GAAG,aAAa,EAAE,wBAAwB,EAAA,CAAG;AAAA,EAAA,CAEtF;AAED,2BACGC,GAAA,EAAW,OAAOT,EAAc,cAAc,QAAQ,iBAAAL,GACrD,UAAA,gBAAAL,EAACQ,EAAW,KAAX,EAAe,aAAa,IAAO,QAAQ,gBAAAR,EAACQ,EAAW,WAAX,EAAqB,OAAO,EAAE,OAAO,GAAG,GAClF,UAAAE,EAAc,YACb,gBAAAV,EAACoB,GAAA,EAAQ,IAET,gBAAApB,EAACqB,GAAA,EAAS,OAAO,EAAE,WAAW,GAAG,aAAW,IAAE,GAAGN,EAAA,CAAe,GAEpE,GACF;AAEJ;"}
1
+ {"version":3,"file":"DocumentsCard.js","sources":["../../../../../../src/components/Employee/Documents/management/DocumentsCard/DocumentsCard.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { Form } from '@gusto/embedded-api/models/components/form'\nimport { useDocumentsList } from '../../shared/useDocumentsList'\nimport { DataView, useDataView, EmptyData, Loading } from '@/components/Common'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { LoaderComponentType } from '@/components/Base'\n\n/**\n * Props for {@link DocumentsCard}.\n *\n * @public\n */\nexport interface DocumentsCardProps {\n /** The associated employee identifier. */\n employeeId: string\n /** Event handler fired when a row's View CTA is clicked. */\n onEvent: OnEventType<EventType, unknown>\n /** Custom loading indicator rendered while this component's async data is fetching. Overrides the indicator configured on `GustoProvider` for this instance only. */\n LoaderComponent?: LoaderComponentType\n}\n\n/**\n * Standalone \"Documents\" (forms) card. Owns its own data fetch via\n * {@link useDocumentsList} and renders the employee's forms in a table with a\n * per-row \"View\" action. Emits\n * `employee/management/documents/card/viewRequested` with\n * `{ employeeId, formId }` when a row's View CTA is clicked. The card is\n * read-only — viewing or signing a form happens in the screen the parent\n * routes to — and renders no alerts: alert rendering is the parent's\n * responsibility.\n *\n * @param props - See {@link DocumentsCardProps}.\n * @returns The documents card.\n * @public\n */\nexport function DocumentsCard(props: DocumentsCardProps) {\n return (\n <BaseBoundaries\n componentName=\"Employee.Management.Documents\"\n LoaderComponent={props.LoaderComponent}\n >\n <DocumentsCardContent {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction DocumentsCardContent({ employeeId, onEvent, LoaderComponent }: DocumentsCardProps) {\n useI18n('Employee.Management.Documents')\n const { t } = useTranslation('Employee.Management.Documents')\n const Components = useComponentContext()\n\n const documentsList = useDocumentsList({ employeeId })\n\n const forms = documentsList.isLoading ? [] : documentsList.data.forms\n\n const formsColumns = [\n {\n key: 'title',\n title: t('columns.title'),\n render: (form: Form) => form.title || '-',\n },\n {\n key: 'year',\n title: t('columns.year'),\n render: (form: Form) => (form.year ? String(form.year) : '-'),\n },\n {\n key: 'status',\n title: t('columns.status'),\n render: (form: Form) => (form.draft ? t('status.draft') : t('status.final')),\n },\n {\n key: 'requiresSigning',\n title: t('columns.requiresSigning'),\n render: (form: Form) =>\n form.requiresSigning ? (\n <Components.Badge status=\"warning\">{t('signingStatus.notSigned')}</Components.Badge>\n ) : (\n <Components.Badge status=\"success\">{t('signingStatus.signed')}</Components.Badge>\n ),\n },\n ]\n\n const formsDataView = useDataView({\n data: forms,\n columns: formsColumns,\n itemMenu: (form: Form) => (\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_DOCUMENTS_CARD_VIEW_REQUESTED, {\n employeeId,\n formId: form.uuid,\n })\n }}\n >\n {t('viewCta')}\n </Components.Button>\n ),\n emptyState: () => (\n <EmptyData title={t('emptyState.title')} description={t('emptyState.description')} />\n ),\n })\n\n return (\n <BaseLayout error={documentsList.errorHandling.errors} LoaderComponent={LoaderComponent}>\n <Components.Box withPadding={false} header={<Components.BoxHeader title={t('title')} />}>\n {documentsList.isLoading ? (\n <Loading />\n ) : (\n <DataView label={t('listLabel')} isWithinBox {...formsDataView} />\n )}\n </Components.Box>\n </BaseLayout>\n )\n}\n"],"names":["DocumentsCard","props","jsx","BaseBoundaries","DocumentsCardContent","employeeId","onEvent","LoaderComponent","useI18n","useTranslation","Components","useComponentContext","documentsList","useDocumentsList","forms","formsColumns","form","formsDataView","useDataView","componentEvents","EmptyData","BaseLayout","Loading","DataView"],"mappings":";;;;;;;;;;;;AAuCO,SAASA,EAAcC,GAA2B;AACvD,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,eAAc;AAAA,MACd,iBAAiBF,EAAM;AAAA,MAEvB,UAAA,gBAAAC,EAACE,GAAA,EAAsB,GAAGH,EAAA,CAAO;AAAA,IAAA;AAAA,EAAA;AAGvC;AAEA,SAASG,EAAqB,EAAE,YAAAC,GAAY,SAAAC,GAAS,iBAAAC,KAAuC;AAC1F,EAAAC,EAAQ,+BAA+B;AACvC,QAAM,EAAE,EAAA,IAAMC,EAAe,+BAA+B,GACtDC,IAAaC,EAAA,GAEbC,IAAgBC,EAAiB,EAAE,YAAAR,GAAY,GAE/CS,IAAQF,EAAc,YAAY,CAAA,IAAKA,EAAc,KAAK,OAE1DG,IAAe;AAAA,IACnB;AAAA,MACE,KAAK;AAAA,MACL,OAAO,EAAE,eAAe;AAAA,MACxB,QAAQ,CAACC,MAAeA,EAAK,SAAS;AAAA,IAAA;AAAA,IAExC;AAAA,MACE,KAAK;AAAA,MACL,OAAO,EAAE,cAAc;AAAA,MACvB,QAAQ,CAACA,MAAgBA,EAAK,OAAO,OAAOA,EAAK,IAAI,IAAI;AAAA,IAAA;AAAA,IAE3D;AAAA,MACE,KAAK;AAAA,MACL,OAAO,EAAE,gBAAgB;AAAA,MACzB,QAAQ,CAACA,MAAgBA,EAAK,QAAQ,EAAE,cAAc,IAAI,EAAE,cAAc;AAAA,IAAA;AAAA,IAE5E;AAAA,MACE,KAAK;AAAA,MACL,OAAO,EAAE,yBAAyB;AAAA,MAClC,QAAQ,CAACA,MACPA,EAAK,kBACH,gBAAAd,EAACQ,EAAW,OAAX,EAAiB,QAAO,WAAW,YAAE,yBAAyB,GAAE,IAEjE,gBAAAR,EAACQ,EAAW,OAAX,EAAiB,QAAO,WAAW,UAAA,EAAE,sBAAsB,EAAA,CAAE;AAAA,IAAA;AAAA,EAEpE,GAGIO,IAAgBC,EAAY;AAAA,IAChC,MAAMJ;AAAA,IACN,SAASC;AAAA,IACT,UAAU,CAACC,MACT,gBAAAd;AAAA,MAACQ,EAAW;AAAA,MAAX;AAAA,QACC,SAAQ;AAAA,QACR,SAAS,MAAM;AACb,UAAAJ,EAAQa,EAAgB,mDAAmD;AAAA,YACzE,YAAAd;AAAA,YACA,QAAQW,EAAK;AAAA,UAAA,CACd;AAAA,QACH;AAAA,QAEC,YAAE,SAAS;AAAA,MAAA;AAAA,IAAA;AAAA,IAGhB,YAAY,MACV,gBAAAd,EAACkB,GAAA,EAAU,OAAO,EAAE,kBAAkB,GAAG,aAAa,EAAE,wBAAwB,EAAA,CAAG;AAAA,EAAA,CAEtF;AAED,2BACGC,GAAA,EAAW,OAAOT,EAAc,cAAc,QAAQ,iBAAAL,GACrD,UAAA,gBAAAL,EAACQ,EAAW,KAAX,EAAe,aAAa,IAAO,QAAQ,gBAAAR,EAACQ,EAAW,WAAX,EAAqB,OAAO,EAAE,OAAO,GAAG,GAClF,UAAAE,EAAc,YACb,gBAAAV,EAACoB,GAAA,EAAQ,IAET,gBAAApB,EAACqB,GAAA,EAAS,OAAO,EAAE,WAAW,GAAG,aAAW,IAAE,GAAGN,EAAA,CAAe,GAEpE,GACF;AAEJ;"}
@@ -1,13 +1,15 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
2
  import { useTranslation as r } from "react-i18next";
3
- import { useDocumentList as s } from "./useDocumentList.js";
4
- import { ActionsLayout as m } from "../../../../../Common/ActionsLayout/ActionsLayout.js";
3
+ import { useDocumentList as m } from "./useDocumentList.js";
4
+ import "classnames";
5
+ import "../../../../../../shared/constants.js";
6
+ import { ActionsLayout as s } from "../../../../../Common/ActionsLayout/ActionsLayout.js";
5
7
  import { useComponentContext as c } from "../../../../../../contexts/ComponentAdapter/useComponentContext.js";
6
- function d() {
7
- const { t: n } = r("Employee.DocumentSigner"), { handleContinue: t, hasSignedAllForms: e } = s(), i = c();
8
- return /* @__PURE__ */ o(m, { children: /* @__PURE__ */ o(i.Button, { onClick: t, isLoading: !1, isDisabled: !e, children: n("continueCta") }) });
8
+ function h() {
9
+ const { t } = r("Employee.DocumentSigner"), { handleContinue: n, hasSignedAllForms: i } = m(), e = c();
10
+ return /* @__PURE__ */ o(s, { children: /* @__PURE__ */ o(e.Button, { onClick: n, isLoading: !1, isDisabled: !i, children: t("continueCta") }) });
9
11
  }
10
12
  export {
11
- d as Actions
13
+ h as Actions
12
14
  };
13
15
  //# sourceMappingURL=Actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.js","sources":["../../../../../../../src/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useDocumentList } from './useDocumentList'\nimport { ActionsLayout } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/** @internal */\nexport function Actions() {\n const { t } = useTranslation('Employee.DocumentSigner')\n const { handleContinue, hasSignedAllForms } = useDocumentList()\n const Components = useComponentContext()\n\n return (\n <ActionsLayout>\n <Components.Button onClick={handleContinue} isLoading={false} isDisabled={!hasSignedAllForms}>\n {t('continueCta')}\n </Components.Button>\n </ActionsLayout>\n )\n}\n"],"names":["Actions","t","useTranslation","handleContinue","hasSignedAllForms","useDocumentList","Components","useComponentContext","ActionsLayout","jsx"],"mappings":";;;;;AAMO,SAASA,IAAU;AACxB,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,yBAAyB,GAChD,EAAE,gBAAAC,GAAgB,mBAAAC,EAAA,IAAsBC,EAAA,GACxCC,IAAaC,EAAA;AAEnB,2BACGC,GAAA,EACC,UAAA,gBAAAC,EAACH,EAAW,QAAX,EAAkB,SAASH,GAAgB,WAAW,IAAO,YAAY,CAACC,GACxE,UAAAH,EAAE,aAAa,GAClB,GACF;AAEJ;"}
1
+ {"version":3,"file":"Actions.js","sources":["../../../../../../../src/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useDocumentList } from './useDocumentList'\nimport { ActionsLayout } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/** @internal */\nexport function Actions() {\n const { t } = useTranslation('Employee.DocumentSigner')\n const { handleContinue, hasSignedAllForms } = useDocumentList()\n const Components = useComponentContext()\n\n return (\n <ActionsLayout>\n <Components.Button onClick={handleContinue} isLoading={false} isDisabled={!hasSignedAllForms}>\n {t('continueCta')}\n </Components.Button>\n </ActionsLayout>\n )\n}\n"],"names":["Actions","useTranslation","handleContinue","hasSignedAllForms","useDocumentList","Components","useComponentContext","ActionsLayout","jsx"],"mappings":";;;;;;;AAMO,SAASA,IAAU;AACxB,QAAM,EAAE,EAAA,IAAMC,EAAe,yBAAyB,GAChD,EAAE,gBAAAC,GAAgB,mBAAAC,EAAA,IAAsBC,EAAA,GACxCC,IAAaC,EAAA;AAEnB,2BACGC,GAAA,EACC,UAAA,gBAAAC,EAACH,EAAW,QAAX,EAAkB,SAASH,GAAgB,WAAW,IAAO,YAAY,CAACC,GACxE,UAAA,EAAE,aAAa,GAClB,GACF;AAEJ;"}