@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
package/CHANGELOG.md CHANGED
@@ -1,5 +1,65 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.57.1](https://github.com/Gusto/embedded-react-sdk/compare/v0.57.0...v0.57.1) (2026-10-21)
4
+
5
+ ### Features & Enhancements
6
+
7
+ - Add `Payroll.TaxPaymentsFlow`, a tax payments hub with a payment list and detail view built on the tax payments endpoints. Released as `@alpha` behind the new `taxPayments` flag in `UnstableFeatures` ([#2872](https://github.com/Gusto/embedded-react-sdk/issues/2872))
8
+ - Show a recoverable screen instead of a hard error when a payroll is no longer calculated, so the payroll can be recalculated in place ([#2955](https://github.com/Gusto/embedded-react-sdk/issues/2955))
9
+
10
+ ### Fixes
11
+
12
+ - Fix Payroll History crashing for a company when the API returns an off-cycle reason outside the documented enum (e.g. `Max out 401k`, `Other`) — those payrolls now render as generic off-cycle payrolls instead of failing response validation for the whole list ([#2919](https://github.com/Gusto/embedded-react-sdk/issues/2919))
13
+ - Fix "Payroll is not calculated" being thrown for processed payrolls that never run the calculate step — wage corrections, reversals, disability distributions, external payrolls, and tax reconciliations are now viewable ([#2922](https://github.com/Gusto/embedded-react-sdk/issues/2922))
14
+ - Block the exponent characters `e` / `E` in numeric `Input` fields. The DOM coerced a lone `e` to an empty string, so the value was silently dropped on save and the field reverted with no error. Sign keys (`+` / `-`) are unaffected ([#2847](https://github.com/Gusto/embedded-react-sdk/issues/2847))
15
+ - Only offer the cancel action on payrolls the API will actually accept for cancellation, instead of surfacing a cancel that fails server-side ([#2936](https://github.com/Gusto/embedded-react-sdk/issues/2936))
16
+ - Validate generated check URLs in `PrintChecksForm` before opening them ([#2937](https://github.com/Gusto/embedded-react-sdk/issues/2937))
17
+ - Show server-side field errors on `StateTaxesForm`, including value errors from every requirement set ([#2917](https://github.com/Gusto/embedded-react-sdk/issues/2917))
18
+ - Keep workweek inputs usable in Run Regular Payroll when a pay period has many workweek columns — inputs now have a fixed column width and the workweek tables scroll horizontally, instead of being crushed beside their adornments ([#2939](https://github.com/Gusto/embedded-react-sdk/issues/2939))
19
+ - Label `DataCards` footer values with their column titles when footers are keyed by column key (e.g. `PayrollOverview` totals), which previously rendered as bare values ([#2933](https://github.com/Gusto/embedded-react-sdk/issues/2933))
20
+
21
+ ### Chores & Maintenance
22
+
23
+ - Bump runtime dependencies (`i18next`, `react-hook-form`, `robot3`, `dompurify`) ([#2929](https://github.com/Gusto/embedded-react-sdk/issues/2929), [#2945](https://github.com/Gusto/embedded-react-sdk/issues/2945), [#2931](https://github.com/Gusto/embedded-react-sdk/issues/2931), [#2961](https://github.com/Gusto/embedded-react-sdk/issues/2961), [#2927](https://github.com/Gusto/embedded-react-sdk/issues/2927))
24
+ - Bump dev dependencies (`vitest`, `typescript-eslint`, `prettier`, `sass-embedded`, `cspell`, `lint-staged`, `@microsoft/api-extractor`, `@testing-library/user-event`, Storybook packages, Playwright accessibility tooling)
25
+
26
+ ## [0.57.0](https://github.com/Gusto/embedded-react-sdk/compare/v0.56.7...v0.57.0) (2026-10-15)
27
+
28
+ ### ⚠ BREAKING CHANGES
29
+
30
+ - `customErrorSanitizer` and `customMetricSanitizer` (via `ObservabilityProvider`'s `sanitization` config) now run **inside** the SDK's own redaction instead of replacing it — your function receives already-redacted input, and its output is redacted again before being forwarded. Raw errors are stripped unless `includeRawError: true`, even if your sanitizer re-adds them, and this applies independently of `enabled: false`. Built-in sensitive-key coverage has also expanded ([#2908](https://github.com/Gusto/embedded-react-sdk/issues/2908))
31
+
32
+ ```tsx
33
+ // Before — sanitizer output was forwarded as-is, so returning the raw
34
+ // error bypassed SDK redaction entirely.
35
+ sanitization={{
36
+ customErrorSanitizer: (error) => ({ ...error, raw: originalError }),
37
+ }}
38
+
39
+ // After — raw is stripped again after your sanitizer runs unless you opt in.
40
+ sanitization={{
41
+ includeRawError: true,
42
+ customErrorSanitizer: (error) => ({ ...error, raw: originalError }),
43
+ }}
44
+ ```
45
+
46
+ ### Features & Enhancements
47
+
48
+ - Add support for assignment by compensation type ([#2881](https://github.com/Gusto/embedded-react-sdk/issues/2881))
49
+
50
+ ### Fixes
51
+
52
+ - Fix external payrolls incorrectly appearing in the payroll list and history ([#2909](https://github.com/Gusto/embedded-react-sdk/issues/2909))
53
+ - `@gusto/embedded-api` queries and mutations now run regardless of network state, instead of silently stalling when the browser reports itself offline ([#2895](https://github.com/Gusto/embedded-react-sdk/issues/2895))
54
+ - Trim whitespace from name fields and clarify the invalid-name error copy ([#2896](https://github.com/Gusto/embedded-react-sdk/issues/2896))
55
+ - Fix payroll employee edit defaults being skipped for employees with a `constructor`, `toString`, or other inherited `Object.prototype` key as their UUID ([#2900](https://github.com/Gusto/embedded-react-sdk/issues/2900))
56
+
57
+ ### Chores & Maintenance
58
+
59
+ - Bump dev dependencies (`@internationalized/number`, `@playwright/test`, `@storybook/addon-a11y`, `@storybook/addon-onboarding`, `axe-core`, `cspell`, `eslint-plugin-tsdoc`, `vite`, `vite-plugin-dts`) ([#2907](https://github.com/Gusto/embedded-react-sdk/issues/2907), [#2905](https://github.com/Gusto/embedded-react-sdk/issues/2905), [#2912](https://github.com/Gusto/embedded-react-sdk/issues/2912), [#2903](https://github.com/Gusto/embedded-react-sdk/issues/2903), [#2914](https://github.com/Gusto/embedded-react-sdk/issues/2914), [#2851](https://github.com/Gusto/embedded-react-sdk/issues/2851), [#2904](https://github.com/Gusto/embedded-react-sdk/issues/2904), [#2915](https://github.com/Gusto/embedded-react-sdk/issues/2915), [#2913](https://github.com/Gusto/embedded-react-sdk/issues/2913))
60
+ - Bump `msw` to 3.0.3 ([#2916](https://github.com/Gusto/embedded-react-sdk/issues/2916))
61
+ - Bump `katex` in `/docs-site` ([#2891](https://github.com/Gusto/embedded-react-sdk/issues/2891))
62
+
3
63
  ## [0.56.7](https://github.com/Gusto/embedded-react-sdk/compare/v0.56.6...v0.56.7) (2026-10-13)
4
64
 
5
65
  ### Fixes
package/README.md CHANGED
@@ -51,7 +51,7 @@ See the [SDK Dev App README](sdk-app/README.md) for full setup and usage details
51
51
  - [Appendix](docs/appendix/endpoint-reference.md)
52
52
  - [Endpoint Reference](docs/appendix/endpoint-reference.md)
53
53
  - [Jobs and Compensations](docs/appendix/jobs-and-compensations.md)
54
- - [Proxy Examples](docs/appendix/proxy-examples.md)
54
+ - [Reviewing SDK API access](docs/getting-started/reviewing-sdk-api-access.md)
55
55
  - [Workflows Overview](docs/workflows-overview/workflows-overview.md)
56
56
  - [Company Onboarding](docs/workflows-overview/company-onboarding.md)
57
57
  - [Contractor Onboarding](docs/workflows-overview/contractor-onboarding.md)
@@ -7,12 +7,13 @@ import { FadeIn as S } from "../Common/FadeIn/FadeIn.js";
7
7
  import { BaseContext as x } from "./useBase.js";
8
8
  import { useBaseSubmit as R } from "./useBaseSubmit.js";
9
9
  import { componentEvents as F } from "../../shared/constants.js";
10
+ import "classnames";
10
11
  import { InternalError as h } from "../Common/InternalError/InternalError.js";
11
12
  import { useComponentContext as L } from "../../contexts/ComponentAdapter/useComponentContext.js";
12
13
  import { useLoadingIndicator as p } from "../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
13
14
  import { useObservability as y } from "../../contexts/ObservabilityProvider/useObservability.js";
14
15
  import { normalizeToSDKError as D } from "../../types/sdkError.js";
15
- const $ = ({
16
+ const N = ({
16
17
  children: r,
17
18
  FallbackComponent: t = h,
18
19
  LoaderComponent: s,
@@ -152,7 +153,7 @@ const _ = ({
152
153
  ) });
153
154
  export {
154
155
  _ as BaseBoundaries,
155
- $ as BaseComponent,
156
+ N as BaseComponent,
156
157
  j as BaseLayout
157
158
  };
158
159
  //# sourceMappingURL=Base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Base.js","sources":["../../../src/components/Base/Base.tsx"],"sourcesContent":["import type { ReactNode, JSX, ErrorInfo } from 'react'\nimport { Suspense, useEffect, useRef } from 'react'\nimport type { FallbackProps } from 'react-error-boundary'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { useTranslation } from 'react-i18next'\nimport { QueryErrorResetBoundary } from '@tanstack/react-query'\nimport { FadeIn } from '../Common/FadeIn/FadeIn'\nimport { BaseContext, type OnEventType } from './useBase'\nimport { useBaseSubmit } from './useBaseSubmit'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport { InternalError } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport type { ResourceDictionary, Resources } from '@/types/Helpers'\nimport { useLoadingIndicator } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport { useObservability } from '@/contexts/ObservabilityProvider/useObservability'\nimport { normalizeToSDKError, type SDKError } from '@/types/sdkError'\n\n/**\n * Signature of a loading indicator component — a React component that optionally receives `children`.\n * Supply one to `GustoProvider` or an individual component's `LoaderComponent` prop to override the\n * SDK's default loading indicator.\n *\n * @public\n * @page blocks\n */\nexport type LoaderComponentType = ({ children }: { children?: ReactNode }) => JSX.Element\n\n/**\n * Props common to all SDK feature components, including children, an optional className, default form values, and an i18n resource dictionary override.\n *\n * @typeParam TResourceKey - The i18n resource namespace key whose dictionary entries can be overridden.\n * @public\n * @page blocks\n */\nexport interface CommonComponentInterface<TResourceKey extends keyof Resources = keyof Resources> {\n /** Optional child content rendered inside the component's layout. */\n children?: ReactNode\n /** CSS class name applied to the component's root element. */\n className?: string\n /**\n * Initial values pre-populated into the component's form fields before the user interacts.\n * The exact shape depends on the specific component — refer to each component's own props type.\n */\n defaultValues?: unknown\n /**\n * Overrides for the component's i18n strings. Supply a partial object whose keys match the\n * component's resource namespace — any omitted keys fall back to SDK defaults.\n * See the [Translation guide](https://docs.gusto.com/embedded-payroll/docs/translation) for details.\n */\n dictionary?: ResourceDictionary<TResourceKey>\n}\n\n/**\n * Props for SDK feature components that participate in the standard error/loading/observability surface.\n *\n * @remarks\n * Extends {@link CommonComponentInterface} with the `onEvent` callback that emits component events\n * and optional overrides for the error-boundary fallback and loading indicator. This is the prop\n * shape mixed into every public SDK feature component.\n *\n * @typeParam TResourceKey - The i18n resource namespace key whose dictionary entries can be overridden.\n * @public\n * @page blocks\n */\nexport interface BaseComponentInterface<\n TResourceKey extends keyof Resources = keyof Resources,\n> extends CommonComponentInterface<TResourceKey> {\n /**\n * Custom React component rendered in place of the component when an unhandled error is caught\n * by the component-level error boundary. Receives `error` and `resetErrorBoundary` as props.\n * Defaults to the SDK's built-in `InternalError` fallback.\n */\n FallbackComponent?: (props: FallbackProps) => JSX.Element\n /**\n * Custom loading indicator rendered while the component's async data is fetching.\n * Overrides the indicator configured on `GustoProvider` for this component instance only.\n */\n LoaderComponent?: LoaderComponentType\n /**\n * Callback invoked each time the component emits an event — user interactions, successful API\n * responses, step transitions, or errors. Receives the event type constant and an optional\n * payload whose shape varies by event. See the [Event Handling guide](https://docs.gusto.com/embedded-payroll/docs/event-handling)\n * and each component's event table for the full list of emitted events.\n */\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**\n * Keys unique to the BaseComponentInterface\n *\n * @internal\n */\nexport type BaseComponentKeys = Exclude<\n keyof BaseComponentInterface,\n keyof CommonComponentInterface\n>\n\ninterface InternalBaseComponentProps {\n componentName?: string\n}\n\n/**\n * Wraps SDK feature components with the standard error boundary, suspense fallback, form-submission handler, and observability wiring.\n *\n * @remarks\n * Provides a {@link BaseContext} value to descendants exposing `error`, `setError`, `onEvent`, and\n * `baseSubmitHandler`, then renders children inside {@link BaseBoundaries} and {@link BaseLayout}.\n * Errors caught by the React error boundary are normalized, emitted to observability, and re-emitted\n * via `onEvent`.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `componentEvents.ERROR` | Emitted when an unhandled rendering error is caught by the component's error boundary | The raw error value caught by the boundary |\n *\n * @typeParam TResourceKey - The i18n resource namespace key whose dictionary entries can be overridden.\n * @param props - Component props extending {@link BaseComponentInterface}.\n * @returns A React element wrapping `children` with the SDK's standard error, loading, and event-emission surface.\n * @internal\n */\nexport const BaseComponent = <TResourceKey extends keyof Resources = keyof Resources>({\n children,\n FallbackComponent = InternalError,\n LoaderComponent: LoadingIndicatorFromProps,\n onEvent,\n componentName,\n}: BaseComponentInterface<TResourceKey> & InternalBaseComponentProps) => {\n const { error, baseSubmitHandler, setError } = useBaseSubmit(componentName)\n const { observability } = useObservability()\n\n const { LoadingIndicator: LoadingIndicatorFromContext } = useLoadingIndicator()\n const LoaderComponent = LoadingIndicatorFromProps ?? LoadingIndicatorFromContext\n\n const onErrorBoundaryError = (boundaryError: unknown, errorInfo: ErrorInfo) => {\n onEvent(componentEvents.ERROR, boundaryError)\n\n const sdkError = normalizeToSDKError(boundaryError)\n\n observability?.onError?.({\n ...sdkError,\n timestamp: Date.now(),\n componentName,\n componentStack: errorInfo.componentStack ?? undefined,\n })\n }\n\n return (\n <BaseContext.Provider\n value={{\n error,\n setError,\n onEvent,\n baseSubmitHandler,\n LoadingIndicator: LoaderComponent,\n componentName,\n }}\n >\n <BaseBoundaries\n FallbackComponent={FallbackComponent}\n onErrorBoundaryError={onErrorBoundaryError}\n componentName={componentName}\n LoaderComponent={LoaderComponent}\n >\n <BaseLayout error={error} LoaderComponent={LoaderComponent}>\n {children}\n </BaseLayout>\n </BaseBoundaries>\n </BaseContext.Provider>\n )\n}\n\n/** @internal */\nexport interface BaseLayoutProps {\n children?: ReactNode\n error?: SDKError | SDKError[] | null\n isLoading?: boolean\n /**\n * Loading indicator rendered while `isLoading` is true and no errors are present.\n * Overrides the indicator resolved from `LoadingIndicatorContext` for this instance only;\n * falls back to that context value when omitted.\n */\n LoaderComponent?: LoaderComponentType\n}\n\nfunction SingleErrorContent({ error }: { error: SDKError }) {\n const Components = useComponentContext()\n const { t } = useTranslation()\n const hasFieldErrors = error.fieldErrors.length > 0\n\n return (\n <Components.Alert label={t('status.errorEncountered')} status=\"error\">\n {hasFieldErrors && (\n <Components.UnorderedList\n items={error.fieldErrors\n .filter(fieldError => fieldError.message)\n .map(fieldError => (\n <span key={fieldError.field}>{fieldError.message}</span>\n ))}\n />\n )}\n {!hasFieldErrors && error.category === 'validation_error' && (\n <Components.Text as=\"pre\">\n {error.raw &&\n typeof error.raw === 'object' &&\n 'pretty' in error.raw &&\n typeof (error.raw as { pretty: unknown }).pretty === 'function'\n ? (error.raw as { pretty: () => string }).pretty()\n : error.message}\n </Components.Text>\n )}\n {!hasFieldErrors && error.category !== 'validation_error' && (\n <Components.Text>{error.message || t('errors.unknownError')}</Components.Text>\n )}\n </Components.Alert>\n )\n}\n\nfunction MultipleErrorsContent({ errors }: { errors: SDKError[] }) {\n const Components = useComponentContext()\n const { t } = useTranslation()\n\n return (\n <Components.Alert label={t('status.multipleErrorsEncountered')} status=\"error\">\n <Components.UnorderedList\n items={errors\n .filter(error => error.message || error.fieldErrors.length > 0)\n .map((error, index) => {\n const visibleFieldErrors = error.fieldErrors.filter(fieldError => fieldError.message)\n\n if (visibleFieldErrors.length === 0) {\n return <span key={index}>{error.message || t('errors.unknownError')}</span>\n }\n\n return (\n <span key={index}>\n {error.message || t('errors.unknownError')}\n <Components.UnorderedList\n items={visibleFieldErrors.map(fieldError => (\n <span key={fieldError.field}>{fieldError.message}</span>\n ))}\n />\n </span>\n )\n })}\n />\n </Components.Alert>\n )\n}\n\n/**\n * Renders the standard SDK layout with normalized error display, suspense-aware loading state, and the children content.\n *\n * @remarks\n * When `isLoading` is true and there are no errors, renders the configured loading indicator.\n * Otherwise renders a fade-in wrapper that displays a single error alert, an aggregated alert when\n * multiple errors are present, or no alert when errors are absent. Field-level errors are rendered\n * as a list, validation errors as preformatted Zod output, and all other errors as a generic\n * message — see {@link https://github.com/Gusto/embedded-react-sdk/blob/main/docs/integration-guide/error-handling.md | the Error Handling guide}.\n *\n * @param props - Component props matching {@link BaseLayoutProps}.\n * @returns A React element with the SDK's standard error rendering and loading behavior wrapped around `children`.\n * @internal\n */\nexport const BaseLayout = ({ children, error, isLoading, LoaderComponent }: BaseLayoutProps) => {\n const { LoadingIndicator: LoadingIndicatorFromContext } = useLoadingIndicator()\n const LoadingIndicator = LoaderComponent ?? LoadingIndicatorFromContext\n\n const errors = Array.isArray(error) ? error : error ? [error] : []\n const hasErrors = errors.length > 0\n\n if (isLoading && !hasErrors) {\n return <LoadingIndicator />\n }\n\n const [firstError] = errors\n\n return (\n <FadeIn>\n {errors.length > 1 && <MultipleErrorsContent errors={errors} />}\n {errors.length === 1 && firstError && <SingleErrorContent error={firstError} />}\n {children}\n </FadeIn>\n )\n}\n\ninterface LoaderWithMetricsProps {\n LoaderComponent: LoaderComponentType\n observability: ReturnType<typeof useObservability>['observability']\n componentName?: string\n}\n\nconst LoaderWithMetrics = ({\n LoaderComponent,\n observability,\n componentName,\n}: LoaderWithMetricsProps) => {\n const loadingStartTime = useRef(Date.now())\n const observabilityRef = useRef(observability)\n const componentNameRef = useRef(componentName)\n\n useEffect(() => {\n observabilityRef.current = observability\n componentNameRef.current = componentName\n }, [observability, componentName])\n\n useEffect(() => {\n return () => {\n const duration = Date.now() - loadingStartTime.current\n observabilityRef.current?.onMetric?.({\n name: 'sdk.component.loading_duration',\n value: duration,\n unit: 'ms',\n tags: componentNameRef.current ? { component: componentNameRef.current } : undefined,\n timestamp: Date.now(),\n })\n }\n }, [])\n\n return <LoaderComponent />\n}\n\nfunction SuspenseFallback({\n componentName,\n LoaderComponent,\n}: {\n componentName?: string\n LoaderComponent?: LoaderComponentType\n}) {\n const { LoadingIndicator } = useLoadingIndicator()\n const { observability } = useObservability()\n return (\n <LoaderWithMetrics\n LoaderComponent={LoaderComponent ?? LoadingIndicator}\n observability={observability}\n componentName={componentName}\n />\n )\n}\n\n/** @internal */\nexport interface BaseBoundariesProps {\n children?: ReactNode\n FallbackComponent?: (props: FallbackProps) => JSX.Element\n onErrorBoundaryError?: (error: unknown, info: ErrorInfo) => void\n componentName?: string\n /**\n * Loading indicator rendered as the Suspense fallback while children suspend.\n * Overrides the indicator resolved from `LoadingIndicatorContext` for this instance only;\n * falls back to that context value when omitted.\n */\n LoaderComponent?: LoaderComponentType\n}\n\n/**\n * Composes the SDK's React error boundary, TanStack Query reset boundary, and Suspense fallback around children.\n *\n * @remarks\n * Resetting the error boundary also resets any TanStack Query errors so suspended queries refetch\n * cleanly. While children suspend, a metrics-instrumented loading indicator is rendered that emits\n * an `sdk.component.loading_duration` observability metric on unmount.\n *\n * @param props - Component props matching {@link BaseBoundariesProps}.\n * @returns A React element wrapping `children` with the SDK's error and suspense boundaries.\n * @internal\n */\nexport const BaseBoundaries = ({\n children,\n FallbackComponent = InternalError,\n onErrorBoundaryError,\n componentName,\n LoaderComponent,\n}: BaseBoundariesProps) => {\n return (\n <QueryErrorResetBoundary>\n {({ reset: resetQueries }) => (\n <ErrorBoundary\n FallbackComponent={FallbackComponent}\n onReset={resetQueries}\n onError={onErrorBoundaryError}\n >\n <Suspense\n fallback={\n <SuspenseFallback componentName={componentName} LoaderComponent={LoaderComponent} />\n }\n >\n {children}\n </Suspense>\n </ErrorBoundary>\n )}\n </QueryErrorResetBoundary>\n )\n}\n"],"names":["BaseComponent","children","FallbackComponent","InternalError","LoadingIndicatorFromProps","onEvent","componentName","error","baseSubmitHandler","setError","useBaseSubmit","observability","useObservability","LoadingIndicatorFromContext","useLoadingIndicator","LoaderComponent","onErrorBoundaryError","boundaryError","errorInfo","componentEvents","sdkError","normalizeToSDKError","jsx","BaseContext","BaseBoundaries","BaseLayout","SingleErrorContent","Components","useComponentContext","t","useTranslation","hasFieldErrors","jsxs","fieldError","MultipleErrorsContent","errors","index","visibleFieldErrors","isLoading","LoadingIndicator","hasErrors","firstError","FadeIn","LoaderWithMetrics","loadingStartTime","useRef","observabilityRef","componentNameRef","useEffect","duration","SuspenseFallback","QueryErrorResetBoundary","resetQueries","ErrorBoundary","Suspense"],"mappings":"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"}
1
+ {"version":3,"file":"Base.js","sources":["../../../src/components/Base/Base.tsx"],"sourcesContent":["import type { ReactNode, JSX, ErrorInfo } from 'react'\nimport { Suspense, useEffect, useRef } from 'react'\nimport type { FallbackProps } from 'react-error-boundary'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { useTranslation } from 'react-i18next'\nimport { QueryErrorResetBoundary } from '@tanstack/react-query'\nimport { FadeIn } from '../Common/FadeIn/FadeIn'\nimport { BaseContext, type OnEventType } from './useBase'\nimport { useBaseSubmit } from './useBaseSubmit'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport { InternalError } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport type { ResourceDictionary, Resources } from '@/types/Helpers'\nimport { useLoadingIndicator } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport { useObservability } from '@/contexts/ObservabilityProvider/useObservability'\nimport { normalizeToSDKError, type SDKError } from '@/types/sdkError'\n\n/**\n * Signature of a loading indicator component — a React component that optionally receives `children`.\n * Supply one to `GustoProvider` or an individual component's `LoaderComponent` prop to override the\n * SDK's default loading indicator.\n *\n * @public\n * @page blocks\n */\nexport type LoaderComponentType = ({ children }: { children?: ReactNode }) => JSX.Element\n\n/**\n * Props common to all SDK feature components, including children, an optional className, default form values, and an i18n resource dictionary override.\n *\n * @typeParam TResourceKey - The i18n resource namespace key whose dictionary entries can be overridden.\n * @public\n * @page blocks\n */\nexport interface CommonComponentInterface<TResourceKey extends keyof Resources = keyof Resources> {\n /** Optional child content rendered inside the component's layout. */\n children?: ReactNode\n /** CSS class name applied to the component's root element. */\n className?: string\n /**\n * Initial values pre-populated into the component's form fields before the user interacts.\n * The exact shape depends on the specific component — refer to each component's own props type.\n */\n defaultValues?: unknown\n /**\n * Overrides for the component's i18n strings. Supply a partial object whose keys match the\n * component's resource namespace — any omitted keys fall back to SDK defaults.\n * See the [Translation guide](https://docs.gusto.com/embedded-payroll/docs/translation) for details.\n */\n dictionary?: ResourceDictionary<TResourceKey>\n}\n\n/**\n * Props for SDK feature components that participate in the standard error/loading/observability surface.\n *\n * @remarks\n * Extends {@link CommonComponentInterface} with the `onEvent` callback that emits component events\n * and optional overrides for the error-boundary fallback and loading indicator. This is the prop\n * shape mixed into every public SDK feature component.\n *\n * @typeParam TResourceKey - The i18n resource namespace key whose dictionary entries can be overridden.\n * @public\n * @page blocks\n */\nexport interface BaseComponentInterface<\n TResourceKey extends keyof Resources = keyof Resources,\n> extends CommonComponentInterface<TResourceKey> {\n /**\n * Custom React component rendered in place of the component when an unhandled error is caught\n * by the component-level error boundary. Receives `error` and `resetErrorBoundary` as props.\n * Defaults to the SDK's built-in `InternalError` fallback.\n */\n FallbackComponent?: (props: FallbackProps) => JSX.Element\n /**\n * Custom loading indicator rendered while the component's async data is fetching.\n * Overrides the indicator configured on `GustoProvider` for this component instance only.\n */\n LoaderComponent?: LoaderComponentType\n /**\n * Callback invoked each time the component emits an event — user interactions, successful API\n * responses, step transitions, or errors. Receives the event type constant and an optional\n * payload whose shape varies by event. See the [Event Handling guide](https://docs.gusto.com/embedded-payroll/docs/event-handling)\n * and each component's event table for the full list of emitted events.\n */\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**\n * Keys unique to the BaseComponentInterface\n *\n * @internal\n */\nexport type BaseComponentKeys = Exclude<\n keyof BaseComponentInterface,\n keyof CommonComponentInterface\n>\n\ninterface InternalBaseComponentProps {\n componentName?: string\n}\n\n/**\n * Wraps SDK feature components with the standard error boundary, suspense fallback, form-submission handler, and observability wiring.\n *\n * @remarks\n * Provides a {@link BaseContext} value to descendants exposing `error`, `setError`, `onEvent`, and\n * `baseSubmitHandler`, then renders children inside {@link BaseBoundaries} and {@link BaseLayout}.\n * Errors caught by the React error boundary are normalized, emitted to observability, and re-emitted\n * via `onEvent`.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `componentEvents.ERROR` | Emitted when an unhandled rendering error is caught by the component's error boundary | The raw error value caught by the boundary |\n *\n * @typeParam TResourceKey - The i18n resource namespace key whose dictionary entries can be overridden.\n * @param props - Component props extending {@link BaseComponentInterface}.\n * @returns A React element wrapping `children` with the SDK's standard error, loading, and event-emission surface.\n * @internal\n */\nexport const BaseComponent = <TResourceKey extends keyof Resources = keyof Resources>({\n children,\n FallbackComponent = InternalError,\n LoaderComponent: LoadingIndicatorFromProps,\n onEvent,\n componentName,\n}: BaseComponentInterface<TResourceKey> & InternalBaseComponentProps) => {\n const { error, baseSubmitHandler, setError } = useBaseSubmit(componentName)\n const { observability } = useObservability()\n\n const { LoadingIndicator: LoadingIndicatorFromContext } = useLoadingIndicator()\n const LoaderComponent = LoadingIndicatorFromProps ?? LoadingIndicatorFromContext\n\n const onErrorBoundaryError = (boundaryError: unknown, errorInfo: ErrorInfo) => {\n onEvent(componentEvents.ERROR, boundaryError)\n\n const sdkError = normalizeToSDKError(boundaryError)\n\n observability?.onError?.({\n ...sdkError,\n timestamp: Date.now(),\n componentName,\n componentStack: errorInfo.componentStack ?? undefined,\n })\n }\n\n return (\n <BaseContext.Provider\n value={{\n error,\n setError,\n onEvent,\n baseSubmitHandler,\n LoadingIndicator: LoaderComponent,\n componentName,\n }}\n >\n <BaseBoundaries\n FallbackComponent={FallbackComponent}\n onErrorBoundaryError={onErrorBoundaryError}\n componentName={componentName}\n LoaderComponent={LoaderComponent}\n >\n <BaseLayout error={error} LoaderComponent={LoaderComponent}>\n {children}\n </BaseLayout>\n </BaseBoundaries>\n </BaseContext.Provider>\n )\n}\n\n/** @internal */\nexport interface BaseLayoutProps {\n children?: ReactNode\n error?: SDKError | SDKError[] | null\n isLoading?: boolean\n /**\n * Loading indicator rendered while `isLoading` is true and no errors are present.\n * Overrides the indicator resolved from `LoadingIndicatorContext` for this instance only;\n * falls back to that context value when omitted.\n */\n LoaderComponent?: LoaderComponentType\n}\n\nfunction SingleErrorContent({ error }: { error: SDKError }) {\n const Components = useComponentContext()\n const { t } = useTranslation()\n const hasFieldErrors = error.fieldErrors.length > 0\n\n return (\n <Components.Alert label={t('status.errorEncountered')} status=\"error\">\n {hasFieldErrors && (\n <Components.UnorderedList\n items={error.fieldErrors\n .filter(fieldError => fieldError.message)\n .map(fieldError => (\n <span key={fieldError.field}>{fieldError.message}</span>\n ))}\n />\n )}\n {!hasFieldErrors && error.category === 'validation_error' && (\n <Components.Text as=\"pre\">\n {error.raw &&\n typeof error.raw === 'object' &&\n 'pretty' in error.raw &&\n typeof (error.raw as { pretty: unknown }).pretty === 'function'\n ? (error.raw as { pretty: () => string }).pretty()\n : error.message}\n </Components.Text>\n )}\n {!hasFieldErrors && error.category !== 'validation_error' && (\n <Components.Text>{error.message || t('errors.unknownError')}</Components.Text>\n )}\n </Components.Alert>\n )\n}\n\nfunction MultipleErrorsContent({ errors }: { errors: SDKError[] }) {\n const Components = useComponentContext()\n const { t } = useTranslation()\n\n return (\n <Components.Alert label={t('status.multipleErrorsEncountered')} status=\"error\">\n <Components.UnorderedList\n items={errors\n .filter(error => error.message || error.fieldErrors.length > 0)\n .map((error, index) => {\n const visibleFieldErrors = error.fieldErrors.filter(fieldError => fieldError.message)\n\n if (visibleFieldErrors.length === 0) {\n return <span key={index}>{error.message || t('errors.unknownError')}</span>\n }\n\n return (\n <span key={index}>\n {error.message || t('errors.unknownError')}\n <Components.UnorderedList\n items={visibleFieldErrors.map(fieldError => (\n <span key={fieldError.field}>{fieldError.message}</span>\n ))}\n />\n </span>\n )\n })}\n />\n </Components.Alert>\n )\n}\n\n/**\n * Renders the standard SDK layout with normalized error display, suspense-aware loading state, and the children content.\n *\n * @remarks\n * When `isLoading` is true and there are no errors, renders the configured loading indicator.\n * Otherwise renders a fade-in wrapper that displays a single error alert, an aggregated alert when\n * multiple errors are present, or no alert when errors are absent. Field-level errors are rendered\n * as a list, validation errors as preformatted Zod output, and all other errors as a generic\n * message — see {@link https://github.com/Gusto/embedded-react-sdk/blob/main/docs/integration-guide/error-handling.md | the Error Handling guide}.\n *\n * @param props - Component props matching {@link BaseLayoutProps}.\n * @returns A React element with the SDK's standard error rendering and loading behavior wrapped around `children`.\n * @internal\n */\nexport const BaseLayout = ({ children, error, isLoading, LoaderComponent }: BaseLayoutProps) => {\n const { LoadingIndicator: LoadingIndicatorFromContext } = useLoadingIndicator()\n const LoadingIndicator = LoaderComponent ?? LoadingIndicatorFromContext\n\n const errors = Array.isArray(error) ? error : error ? [error] : []\n const hasErrors = errors.length > 0\n\n if (isLoading && !hasErrors) {\n return <LoadingIndicator />\n }\n\n const [firstError] = errors\n\n return (\n <FadeIn>\n {errors.length > 1 && <MultipleErrorsContent errors={errors} />}\n {errors.length === 1 && firstError && <SingleErrorContent error={firstError} />}\n {children}\n </FadeIn>\n )\n}\n\ninterface LoaderWithMetricsProps {\n LoaderComponent: LoaderComponentType\n observability: ReturnType<typeof useObservability>['observability']\n componentName?: string\n}\n\nconst LoaderWithMetrics = ({\n LoaderComponent,\n observability,\n componentName,\n}: LoaderWithMetricsProps) => {\n const loadingStartTime = useRef(Date.now())\n const observabilityRef = useRef(observability)\n const componentNameRef = useRef(componentName)\n\n useEffect(() => {\n observabilityRef.current = observability\n componentNameRef.current = componentName\n }, [observability, componentName])\n\n useEffect(() => {\n return () => {\n const duration = Date.now() - loadingStartTime.current\n observabilityRef.current?.onMetric?.({\n name: 'sdk.component.loading_duration',\n value: duration,\n unit: 'ms',\n tags: componentNameRef.current ? { component: componentNameRef.current } : undefined,\n timestamp: Date.now(),\n })\n }\n }, [])\n\n return <LoaderComponent />\n}\n\nfunction SuspenseFallback({\n componentName,\n LoaderComponent,\n}: {\n componentName?: string\n LoaderComponent?: LoaderComponentType\n}) {\n const { LoadingIndicator } = useLoadingIndicator()\n const { observability } = useObservability()\n return (\n <LoaderWithMetrics\n LoaderComponent={LoaderComponent ?? LoadingIndicator}\n observability={observability}\n componentName={componentName}\n />\n )\n}\n\n/** @internal */\nexport interface BaseBoundariesProps {\n children?: ReactNode\n FallbackComponent?: (props: FallbackProps) => JSX.Element\n onErrorBoundaryError?: (error: unknown, info: ErrorInfo) => void\n componentName?: string\n /**\n * Loading indicator rendered as the Suspense fallback while children suspend.\n * Overrides the indicator resolved from `LoadingIndicatorContext` for this instance only;\n * falls back to that context value when omitted.\n */\n LoaderComponent?: LoaderComponentType\n}\n\n/**\n * Composes the SDK's React error boundary, TanStack Query reset boundary, and Suspense fallback around children.\n *\n * @remarks\n * Resetting the error boundary also resets any TanStack Query errors so suspended queries refetch\n * cleanly. While children suspend, a metrics-instrumented loading indicator is rendered that emits\n * an `sdk.component.loading_duration` observability metric on unmount.\n *\n * @param props - Component props matching {@link BaseBoundariesProps}.\n * @returns A React element wrapping `children` with the SDK's error and suspense boundaries.\n * @internal\n */\nexport const BaseBoundaries = ({\n children,\n FallbackComponent = InternalError,\n onErrorBoundaryError,\n componentName,\n LoaderComponent,\n}: BaseBoundariesProps) => {\n return (\n <QueryErrorResetBoundary>\n {({ reset: resetQueries }) => (\n <ErrorBoundary\n FallbackComponent={FallbackComponent}\n onReset={resetQueries}\n onError={onErrorBoundaryError}\n >\n <Suspense\n fallback={\n <SuspenseFallback componentName={componentName} LoaderComponent={LoaderComponent} />\n }\n >\n {children}\n </Suspense>\n </ErrorBoundary>\n )}\n </QueryErrorResetBoundary>\n )\n}\n"],"names":["BaseComponent","children","FallbackComponent","InternalError","LoadingIndicatorFromProps","onEvent","componentName","error","baseSubmitHandler","setError","useBaseSubmit","observability","useObservability","LoadingIndicatorFromContext","useLoadingIndicator","LoaderComponent","onErrorBoundaryError","boundaryError","errorInfo","componentEvents","sdkError","normalizeToSDKError","jsx","BaseContext","BaseBoundaries","BaseLayout","SingleErrorContent","Components","useComponentContext","t","useTranslation","hasFieldErrors","jsxs","fieldError","MultipleErrorsContent","errors","index","visibleFieldErrors","isLoading","LoadingIndicator","hasErrors","firstError","FadeIn","LoaderWithMetrics","loadingStartTime","useRef","observabilityRef","componentNameRef","useEffect","duration","SuspenseFallback","QueryErrorResetBoundary","resetQueries","ErrorBoundary","Suspense"],"mappings":"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"}
@@ -1,33 +1,33 @@
1
- import { jsxs as t, jsx as e } from "react/jsx-runtime";
2
- import { useId as j } from "react";
3
- import A from "classnames";
4
- import { useTranslation as y } from "react-i18next";
1
+ import { jsxs as n, jsx as e } from "react/jsx-runtime";
2
+ import { useId as T } from "react";
3
+ import y from "classnames";
4
+ import { useTranslation as j } from "react-i18next";
5
5
  import r from "./DataCards.module.scss.js";
6
6
  import { useSelectionState as H } from "../useSelectionState.js";
7
- import { Flex as x } from "../../Flex/Flex.js";
7
+ import { Flex as w } from "../../Flex/Flex.js";
8
8
  import { useComponentContext as V } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
9
- const J = ({
10
- label: g,
9
+ const O = ({
10
+ label: x,
11
11
  data: s,
12
- columns: h,
12
+ columns: f,
13
13
  itemMenu: p,
14
14
  onSelect: c,
15
- onSelectAll: w,
15
+ onSelectAll: L,
16
16
  getIsItemSelected: m,
17
- hideSelectAll: L,
18
- emptyState: f,
19
- footer: v,
20
- selectionMode: C = "multiple",
17
+ hideSelectAll: R,
18
+ emptyState: v,
19
+ footer: C,
20
+ selectionMode: b = "multiple",
21
21
  isWithinBox: d,
22
- isFetching: b
22
+ isFetching: N
23
23
  }) => {
24
- const o = V(), { t: u } = y("common"), R = j(), { allSelected: D } = H(s, m), T = (l, n) => {
24
+ const t = V(), { t: u } = j("common"), k = T(), { allSelected: D } = H(s, m), A = (l, o) => {
25
25
  if (!c) return;
26
26
  const a = m?.(l) ?? !1;
27
- return C === "single" ? /* @__PURE__ */ e(
28
- o.Radio,
27
+ return b === "single" ? /* @__PURE__ */ e(
28
+ t.Radio,
29
29
  {
30
- name: R,
30
+ name: k,
31
31
  value: a,
32
32
  onChange: () => {
33
33
  c(l, !0);
@@ -36,7 +36,7 @@ const J = ({
36
36
  shouldVisuallyHideLabel: !0
37
37
  }
38
38
  ) : /* @__PURE__ */ e(
39
- o.Checkbox,
39
+ t.Checkbox,
40
40
  {
41
41
  value: a,
42
42
  onChange: (i) => {
@@ -47,46 +47,48 @@ const J = ({
47
47
  }
48
48
  );
49
49
  };
50
- return /* @__PURE__ */ t(
50
+ return /* @__PURE__ */ n(
51
51
  "div",
52
52
  {
53
- className: A(r.root, d && r.withinBox, b && r.isFetching),
53
+ className: y(r.root, d && r.withinBox, N && r.isFetching),
54
54
  "data-testid": "data-cards",
55
- "aria-busy": !!b,
55
+ "aria-busy": !!N,
56
56
  children: [
57
- c && m && C === "multiple" && !L && s.length > 0 && /* @__PURE__ */ e("div", { className: r.selectAllRow, children: /* @__PURE__ */ e(
58
- o.Checkbox,
57
+ c && m && b === "multiple" && !R && s.length > 0 && /* @__PURE__ */ e("div", { className: r.selectAllRow, children: /* @__PURE__ */ e(
58
+ t.Checkbox,
59
59
  {
60
60
  value: D,
61
- onChange: (l) => w?.(l, s),
61
+ onChange: (l) => L?.(l, s),
62
62
  label: u("card.selectAllRowsLabel")
63
63
  }
64
64
  ) }),
65
- /* @__PURE__ */ t("div", { role: "list", "aria-label": g, children: [
66
- s.length === 0 && f && /* @__PURE__ */ e("div", { role: "listitem", children: /* @__PURE__ */ e(o.Card, { className: d ? r.flushCard : void 0, children: f() }) }),
67
- s.map((l, n) => /* @__PURE__ */ e("div", { role: "listitem", children: /* @__PURE__ */ e(
68
- o.Card,
65
+ /* @__PURE__ */ n("div", { role: "list", "aria-label": x, children: [
66
+ s.length === 0 && v && /* @__PURE__ */ e("div", { role: "listitem", children: /* @__PURE__ */ e(t.Card, { className: d ? r.flushCard : void 0, children: v() }) }),
67
+ s.map((l, o) => /* @__PURE__ */ e("div", { role: "listitem", children: /* @__PURE__ */ e(
68
+ t.Card,
69
69
  {
70
70
  menu: p && p(l),
71
- action: T(l),
71
+ action: A(l),
72
72
  className: d ? r.flushCard : void 0,
73
- children: h.map((a, i) => /* @__PURE__ */ t(x, { flexDirection: "column", gap: 0, children: [
73
+ children: f.map((a, i) => /* @__PURE__ */ n(w, { flexDirection: "column", gap: 0, children: [
74
74
  a.title && /* @__PURE__ */ e("h5", { className: r.columnTitle, children: a.title }),
75
- /* @__PURE__ */ t("div", { className: r.columnData, children: [
75
+ /* @__PURE__ */ n("div", { className: r.columnData, children: [
76
76
  " ",
77
77
  a.render ? a.render(l) : String(l[a.key])
78
78
  ] })
79
79
  ] }, i))
80
80
  }
81
- ) }, n)),
82
- v && /* @__PURE__ */ e("div", { role: "listitem", children: /* @__PURE__ */ e(o.Card, { className: d ? r.flushCard : void 0, children: (() => {
83
- const l = v();
84
- return Object.entries(l).map(([n, a]) => {
85
- const i = n.startsWith("column-") ? parseInt(n.replace("column-", ""), 10) : -1, N = i >= 0 ? h[i]?.title : void 0;
86
- return /* @__PURE__ */ t(x, { flexDirection: "column", gap: 0, children: [
87
- N && /* @__PURE__ */ e("h5", { className: r.columnTitle, children: N }),
88
- /* @__PURE__ */ e("div", { className: r.footerItem, children: a })
89
- ] }, n);
81
+ ) }, o)),
82
+ C && /* @__PURE__ */ e("div", { role: "listitem", children: /* @__PURE__ */ e(t.Card, { className: d ? r.flushCard : void 0, children: (() => {
83
+ const l = C();
84
+ return f.map((o, a) => {
85
+ const i = typeof o.key == "string" ? o.key : `column-${a}`, h = l[i];
86
+ if (h === void 0 || h === "") return null;
87
+ const g = a === 0;
88
+ return /* @__PURE__ */ n(w, { flexDirection: "column", gap: 0, children: [
89
+ !g && o.title && /* @__PURE__ */ e("h5", { className: r.columnTitle, children: o.title }),
90
+ /* @__PURE__ */ e("div", { className: y(r.footerItem, g && r.footerRowLabel), children: h })
91
+ ] }, i);
90
92
  });
91
93
  })() }) })
92
94
  ] })
@@ -95,6 +97,6 @@ const J = ({
95
97
  );
96
98
  };
97
99
  export {
98
- J as DataCards
100
+ O as DataCards
99
101
  };
100
102
  //# sourceMappingURL=DataCards.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataCards.js","sources":["../../../../../src/components/Common/DataView/DataCards/DataCards.tsx"],"sourcesContent":["import { useId } from 'react'\nimport cn from 'classnames'\nimport { useTranslation } from 'react-i18next'\nimport styles from './DataCards.module.scss'\nimport type { useDataViewPropReturn, SelectionMode } from '@/components/Common/DataView/useDataView'\nimport type { TableProps } from '@/components/Common/UI/Table/TableTypes'\nimport { useSelectionState } from '@/components/Common/DataView/useSelectionState'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/** @internal */\nexport type DataCardsProps<T> = {\n label: string\n columns: useDataViewPropReturn<T>['columns']\n data: useDataViewPropReturn<T>['data']\n itemMenu?: useDataViewPropReturn<T>['itemMenu']\n onSelect?: (item: T, checked: boolean) => void\n onSelectAll?: (checked: boolean, visibleData: T[]) => void\n getIsItemSelected?: (item: T) => boolean\n hideSelectAll?: useDataViewPropReturn<T>['hideSelectAll']\n emptyState?: useDataViewPropReturn<T>['emptyState']\n footer?: useDataViewPropReturn<T>['footer']\n selectionMode?: SelectionMode\n isWithinBox?: TableProps['isWithinBox']\n isFetching?: useDataViewPropReturn<T>['isFetching']\n}\n\n/** @internal */\nexport const DataCards = <T,>({\n label,\n data,\n columns,\n itemMenu,\n onSelect,\n onSelectAll,\n getIsItemSelected,\n hideSelectAll,\n emptyState,\n footer,\n selectionMode = 'multiple',\n isWithinBox,\n isFetching,\n}: DataCardsProps<T>) => {\n const Components = useComponentContext()\n const { t } = useTranslation('common')\n const radioGroupName = useId()\n const { allSelected } = useSelectionState(data, getIsItemSelected)\n\n const renderAction = (item: T, index: number) => {\n if (!onSelect) return undefined\n\n const isSelected = getIsItemSelected?.(item) ?? false\n\n if (selectionMode === 'single') {\n return (\n <Components.Radio\n name={radioGroupName}\n value={isSelected}\n onChange={() => {\n onSelect(item, true)\n }}\n label={t('card.selectRowLabel')}\n shouldVisuallyHideLabel\n />\n )\n }\n\n return (\n <Components.Checkbox\n value={isSelected}\n onChange={(checked: boolean) => {\n onSelect(item, checked)\n }}\n label={t('card.selectRowLabel')}\n shouldVisuallyHideLabel\n />\n )\n }\n\n return (\n <div\n className={cn(styles.root, isWithinBox && styles.withinBox, isFetching && styles.isFetching)}\n data-testid=\"data-cards\"\n aria-busy={Boolean(isFetching)}\n >\n {onSelect &&\n getIsItemSelected &&\n selectionMode === 'multiple' &&\n !hideSelectAll &&\n data.length > 0 && (\n <div className={styles.selectAllRow}>\n <Components.Checkbox\n value={allSelected}\n onChange={(checked: boolean) => onSelectAll?.(checked, data)}\n label={t('card.selectAllRowsLabel')}\n />\n </div>\n )}\n <div role=\"list\" aria-label={label}>\n {data.length === 0 && emptyState && (\n <div role=\"listitem\">\n <Components.Card className={isWithinBox ? styles.flushCard : undefined}>\n {emptyState()}\n </Components.Card>\n </div>\n )}\n {data.map((item, index) => (\n <div role=\"listitem\" key={index}>\n <Components.Card\n menu={itemMenu && itemMenu(item)}\n action={renderAction(item, index)}\n className={isWithinBox ? styles.flushCard : undefined}\n >\n {columns.map((column, colIndex) => (\n <Flex key={colIndex} flexDirection=\"column\" gap={0}>\n {column.title && <h5 className={styles.columnTitle}>{column.title}</h5>}\n <div className={styles.columnData}>\n {' '}\n {column.render ? column.render(item) : String(item[column.key as keyof T])}\n </div>\n </Flex>\n ))}\n </Components.Card>\n </div>\n ))}\n {footer && (\n <div role=\"listitem\">\n <Components.Card className={isWithinBox ? styles.flushCard : undefined}>\n {(() => {\n const footerContent = footer()\n\n return Object.entries(footerContent).map(([key, content]) => {\n const columnIndex = key.startsWith('column-')\n ? parseInt(key.replace('column-', ''), 10)\n : -1\n const columnTitle = columnIndex >= 0 ? columns[columnIndex]?.title : undefined\n\n return (\n <Flex key={key} flexDirection=\"column\" gap={0}>\n {columnTitle && <h5 className={styles.columnTitle}>{columnTitle}</h5>}\n <div className={styles.footerItem}>{content}</div>\n </Flex>\n )\n })\n })()}\n </Components.Card>\n </div>\n )}\n </div>\n </div>\n )\n}\n"],"names":["DataCards","label","data","columns","itemMenu","onSelect","onSelectAll","getIsItemSelected","hideSelectAll","emptyState","footer","selectionMode","isWithinBox","isFetching","Components","useComponentContext","t","useTranslation","radioGroupName","useId","allSelected","useSelectionState","renderAction","item","index","isSelected","jsx","checked","jsxs","cn","styles","column","colIndex","Flex","footerContent","key","content","columnIndex","columnTitle"],"mappings":"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"}
1
+ {"version":3,"file":"DataCards.js","sources":["../../../../../src/components/Common/DataView/DataCards/DataCards.tsx"],"sourcesContent":["import { useId } from 'react'\nimport cn from 'classnames'\nimport { useTranslation } from 'react-i18next'\nimport styles from './DataCards.module.scss'\nimport type { useDataViewPropReturn, SelectionMode } from '@/components/Common/DataView/useDataView'\nimport type { TableProps } from '@/components/Common/UI/Table/TableTypes'\nimport { useSelectionState } from '@/components/Common/DataView/useSelectionState'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/** @internal */\nexport type DataCardsProps<T> = {\n label: string\n columns: useDataViewPropReturn<T>['columns']\n data: useDataViewPropReturn<T>['data']\n itemMenu?: useDataViewPropReturn<T>['itemMenu']\n onSelect?: (item: T, checked: boolean) => void\n onSelectAll?: (checked: boolean, visibleData: T[]) => void\n getIsItemSelected?: (item: T) => boolean\n hideSelectAll?: useDataViewPropReturn<T>['hideSelectAll']\n emptyState?: useDataViewPropReturn<T>['emptyState']\n footer?: useDataViewPropReturn<T>['footer']\n selectionMode?: SelectionMode\n isWithinBox?: TableProps['isWithinBox']\n isFetching?: useDataViewPropReturn<T>['isFetching']\n}\n\n/** @internal */\nexport const DataCards = <T,>({\n label,\n data,\n columns,\n itemMenu,\n onSelect,\n onSelectAll,\n getIsItemSelected,\n hideSelectAll,\n emptyState,\n footer,\n selectionMode = 'multiple',\n isWithinBox,\n isFetching,\n}: DataCardsProps<T>) => {\n const Components = useComponentContext()\n const { t } = useTranslation('common')\n const radioGroupName = useId()\n const { allSelected } = useSelectionState(data, getIsItemSelected)\n\n const renderAction = (item: T, index: number) => {\n if (!onSelect) return undefined\n\n const isSelected = getIsItemSelected?.(item) ?? false\n\n if (selectionMode === 'single') {\n return (\n <Components.Radio\n name={radioGroupName}\n value={isSelected}\n onChange={() => {\n onSelect(item, true)\n }}\n label={t('card.selectRowLabel')}\n shouldVisuallyHideLabel\n />\n )\n }\n\n return (\n <Components.Checkbox\n value={isSelected}\n onChange={(checked: boolean) => {\n onSelect(item, checked)\n }}\n label={t('card.selectRowLabel')}\n shouldVisuallyHideLabel\n />\n )\n }\n\n return (\n <div\n className={cn(styles.root, isWithinBox && styles.withinBox, isFetching && styles.isFetching)}\n data-testid=\"data-cards\"\n aria-busy={Boolean(isFetching)}\n >\n {onSelect &&\n getIsItemSelected &&\n selectionMode === 'multiple' &&\n !hideSelectAll &&\n data.length > 0 && (\n <div className={styles.selectAllRow}>\n <Components.Checkbox\n value={allSelected}\n onChange={(checked: boolean) => onSelectAll?.(checked, data)}\n label={t('card.selectAllRowsLabel')}\n />\n </div>\n )}\n <div role=\"list\" aria-label={label}>\n {data.length === 0 && emptyState && (\n <div role=\"listitem\">\n <Components.Card className={isWithinBox ? styles.flushCard : undefined}>\n {emptyState()}\n </Components.Card>\n </div>\n )}\n {data.map((item, index) => (\n <div role=\"listitem\" key={index}>\n <Components.Card\n menu={itemMenu && itemMenu(item)}\n action={renderAction(item, index)}\n className={isWithinBox ? styles.flushCard : undefined}\n >\n {columns.map((column, colIndex) => (\n <Flex key={colIndex} flexDirection=\"column\" gap={0}>\n {column.title && <h5 className={styles.columnTitle}>{column.title}</h5>}\n <div className={styles.columnData}>\n {' '}\n {column.render ? column.render(item) : String(item[column.key as keyof T])}\n </div>\n </Flex>\n ))}\n </Components.Card>\n </div>\n ))}\n {footer && (\n <div role=\"listitem\">\n <Components.Card className={isWithinBox ? styles.flushCard : undefined}>\n {(() => {\n const footerContent = footer()\n\n return columns.map((column, index) => {\n const columnKey = typeof column.key === 'string' ? column.key : `column-${index}`\n const content = footerContent[columnKey]\n if (content === undefined || content === '') return null\n\n const isRowLabel = index === 0\n\n return (\n <Flex key={columnKey} flexDirection=\"column\" gap={0}>\n {!isRowLabel && column.title && (\n <h5 className={styles.columnTitle}>{column.title}</h5>\n )}\n <div className={cn(styles.footerItem, isRowLabel && styles.footerRowLabel)}>\n {content}\n </div>\n </Flex>\n )\n })\n })()}\n </Components.Card>\n </div>\n )}\n </div>\n </div>\n )\n}\n"],"names":["DataCards","label","data","columns","itemMenu","onSelect","onSelectAll","getIsItemSelected","hideSelectAll","emptyState","footer","selectionMode","isWithinBox","isFetching","Components","useComponentContext","t","useTranslation","radioGroupName","useId","allSelected","useSelectionState","renderAction","item","index","isSelected","jsx","checked","jsxs","cn","styles","column","colIndex","Flex","footerContent","columnKey","content","isRowLabel"],"mappings":"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"}
@@ -1,22 +1,24 @@
1
- const t = "_root_quxrx_1", o = "_isFetching_quxrx_4", _ = "_withinBox_quxrx_7", l = "_selectAllRow_quxrx_7", c = "_flushCard_quxrx_10", e = "_columnTitle_quxrx_25", n = "_columnData_quxrx_32", s = "_footerItem_quxrx_37", x = {
2
- root: t,
3
- isFetching: o,
4
- withinBox: _,
5
- selectAllRow: l,
6
- flushCard: c,
7
- columnTitle: e,
1
+ const o = "_root_15yfq_1", t = "_isFetching_15yfq_4", e = "_withinBox_15yfq_7", _ = "_selectAllRow_15yfq_7", l = "_flushCard_15yfq_10", c = "_columnTitle_15yfq_25", n = "_columnData_15yfq_32", s = "_footerItem_15yfq_37", f = "_footerRowLabel_15yfq_41", i = {
2
+ root: o,
3
+ isFetching: t,
4
+ withinBox: e,
5
+ selectAllRow: _,
6
+ flushCard: l,
7
+ columnTitle: c,
8
8
  columnData: n,
9
- footerItem: s
9
+ footerItem: s,
10
+ footerRowLabel: f
10
11
  };
11
12
  export {
12
13
  n as columnData,
13
- e as columnTitle,
14
- x as default,
15
- c as flushCard,
14
+ c as columnTitle,
15
+ i as default,
16
+ l as flushCard,
16
17
  s as footerItem,
17
- o as isFetching,
18
- t as root,
19
- l as selectAllRow,
20
- _ as withinBox
18
+ f as footerRowLabel,
19
+ t as isFetching,
20
+ o as root,
21
+ _ as selectAllRow,
22
+ e as withinBox
21
23
  };
22
24
  //# sourceMappingURL=DataCards.module.scss.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataCards.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
1
+ {"version":3,"file":"DataCards.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -1,52 +1,55 @@
1
- import { jsxs as e, jsx as r } from "react/jsx-runtime";
2
- import { Input as p } from "react-aria-components";
3
- import f from "classnames";
4
- import a from "./Input.module.scss.js";
5
- import { InputDefaults as v } from "./InputTypes.js";
6
- import { applyMissingDefaults as u } from "../../../../helpers/applyMissingDefaults.js";
7
- import h from "../../../../assets/icons/alert-circle.svg.js";
8
- function E(s) {
9
- const o = u(s, v), {
10
- className: d,
11
- adornmentStart: n,
12
- adornmentEnd: i,
13
- inputRef: m,
1
+ import { jsxs as o, jsx as a } from "react/jsx-runtime";
2
+ import { Input as u } from "react-aria-components";
3
+ import v from "classnames";
4
+ import n from "./Input.module.scss.js";
5
+ import { InputDefaults as h } from "./InputTypes.js";
6
+ import { applyMissingDefaults as y } from "../../../../helpers/applyMissingDefaults.js";
7
+ import N from "../../../../assets/icons/alert-circle.svg.js";
8
+ function g(d) {
9
+ const l = y(d, h), {
10
+ className: m,
11
+ adornmentStart: r,
12
+ adornmentEnd: e,
13
+ inputRef: p,
14
14
  isDisabled: t,
15
- "aria-invalid": l,
16
- ...c
17
- } = o;
18
- return /* @__PURE__ */ e(
15
+ "aria-invalid": c,
16
+ ...s
17
+ } = l, f = (i) => {
18
+ s.type === "number" && (i.key === "e" || i.key === "E") && i.preventDefault();
19
+ };
20
+ return /* @__PURE__ */ o(
19
21
  "div",
20
22
  {
21
- className: f(
22
- a.container,
23
+ className: v(
24
+ n.container,
23
25
  {
24
- [a.hasAdornmentStart]: !!n,
25
- [a.hasAdornmentEnd]: !!i
26
+ [n.hasAdornmentStart]: !!r,
27
+ [n.hasAdornmentEnd]: !!e
26
28
  },
27
- d
29
+ m
28
30
  ),
29
31
  "data-disabled": t,
30
32
  children: [
31
- n && /* @__PURE__ */ r("div", { className: a.adornmentStart, children: n }),
32
- /* @__PURE__ */ e("div", { className: a.inputContainer, children: [
33
- /* @__PURE__ */ r(
34
- p,
33
+ r && /* @__PURE__ */ a("div", { className: n.adornmentStart, children: r }),
34
+ /* @__PURE__ */ o("div", { className: n.inputContainer, children: [
35
+ /* @__PURE__ */ a(
36
+ u,
35
37
  {
36
- ref: m,
38
+ ref: p,
37
39
  disabled: t,
38
- "aria-invalid": l,
39
- ...c
40
+ "aria-invalid": c,
41
+ onKeyDown: f,
42
+ ...s
40
43
  }
41
44
  ),
42
- /* @__PURE__ */ r("div", { className: a.invalidIcon, children: /* @__PURE__ */ r(h, { fontSize: 16 }) })
45
+ /* @__PURE__ */ a("div", { className: n.invalidIcon, children: /* @__PURE__ */ a(N, { fontSize: 16 }) })
43
46
  ] }),
44
- i && /* @__PURE__ */ r("div", { className: a.adornmentEnd, children: i })
47
+ e && /* @__PURE__ */ a("div", { className: n.adornmentEnd, children: e })
45
48
  ]
46
49
  }
47
50
  );
48
51
  }
49
52
  export {
50
- E as Input
53
+ g as Input
51
54
  };
52
55
  //# sourceMappingURL=Input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sources":["../../../../../src/components/Common/UI/Input/Input.tsx"],"sourcesContent":["import { Input as AriaInput } from 'react-aria-components'\nimport classNames from 'classnames'\nimport styles from './Input.module.scss'\nimport type { InputProps } from './InputTypes'\nimport { InputDefaults } from './InputTypes'\nimport { applyMissingDefaults } from '@/helpers/applyMissingDefaults'\nimport AlertCircle from '@/assets/icons/alert-circle.svg?react'\n\n/**\n * Low-level text input primitive with optional start and end adornments.\n *\n * @remarks\n * The building block used by higher-level field components such as TextInput\n * and NumberInput. Most consumers should reach for those instead.\n *\n * @internal\n */\nexport function Input(rawProps: InputProps) {\n const resolvedProps = applyMissingDefaults(rawProps, InputDefaults)\n const {\n className,\n adornmentStart,\n adornmentEnd,\n inputRef,\n isDisabled,\n 'aria-invalid': ariaInvalid,\n ...otherProps\n } = resolvedProps\n\n return (\n <div\n className={classNames(\n styles.container,\n {\n [styles.hasAdornmentStart as string]: !!adornmentStart,\n [styles.hasAdornmentEnd as string]: !!adornmentEnd,\n },\n className,\n )}\n data-disabled={isDisabled}\n >\n {adornmentStart && <div className={styles.adornmentStart}>{adornmentStart}</div>}\n <div className={styles.inputContainer}>\n <AriaInput\n ref={inputRef}\n disabled={isDisabled}\n aria-invalid={ariaInvalid}\n {...otherProps}\n />\n <div className={styles.invalidIcon}>\n <AlertCircle fontSize={16} />\n </div>\n </div>\n {adornmentEnd && <div className={styles.adornmentEnd}>{adornmentEnd}</div>}\n </div>\n )\n}\n"],"names":["Input","rawProps","resolvedProps","applyMissingDefaults","InputDefaults","className","adornmentStart","adornmentEnd","inputRef","isDisabled","ariaInvalid","otherProps","jsxs","classNames","styles","jsx","AriaInput","AlertCircle"],"mappings":";;;;;;;AAiBO,SAASA,EAAMC,GAAsB;AAC1C,QAAMC,IAAgBC,EAAqBF,GAAUG,CAAa,GAC5D;AAAA,IACJ,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,IACA,YAAAC;AAAA,IACA,gBAAgBC;AAAA,IAChB,GAAGC;AAAA,EAAA,IACDT;AAEJ,SACE,gBAAAU;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACTC,EAAO;AAAA,QACP;AAAA,UACE,CAACA,EAAO,iBAA2B,GAAG,CAAC,CAACR;AAAA,UACxC,CAACQ,EAAO,eAAyB,GAAG,CAAC,CAACP;AAAA,QAAA;AAAA,QAExCF;AAAA,MAAA;AAAA,MAEF,iBAAeI;AAAA,MAEd,UAAA;AAAA,QAAAH,KAAkB,gBAAAS,EAAC,OAAA,EAAI,WAAWD,EAAO,gBAAiB,UAAAR,GAAe;AAAA,QAC1E,gBAAAM,EAAC,OAAA,EAAI,WAAWE,EAAO,gBACrB,UAAA;AAAA,UAAA,gBAAAC;AAAA,YAACC;AAAAA,YAAA;AAAA,cACC,KAAKR;AAAA,cACL,UAAUC;AAAA,cACV,gBAAcC;AAAA,cACb,GAAGC;AAAA,YAAA;AAAA,UAAA;AAAA,UAEN,gBAAAI,EAAC,SAAI,WAAWD,EAAO,aACrB,UAAA,gBAAAC,EAACE,GAAA,EAAY,UAAU,GAAA,CAAI,EAAA,CAC7B;AAAA,QAAA,GACF;AAAA,QACCV,KAAgB,gBAAAQ,EAAC,OAAA,EAAI,WAAWD,EAAO,cAAe,UAAAP,EAAA,CAAa;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG1E;"}
1
+ {"version":3,"file":"Input.js","sources":["../../../../../src/components/Common/UI/Input/Input.tsx"],"sourcesContent":["import { Input as AriaInput } from 'react-aria-components'\nimport type { KeyboardEvent } from 'react'\nimport classNames from 'classnames'\nimport styles from './Input.module.scss'\nimport type { InputProps } from './InputTypes'\nimport { InputDefaults } from './InputTypes'\nimport { applyMissingDefaults } from '@/helpers/applyMissingDefaults'\nimport AlertCircle from '@/assets/icons/alert-circle.svg?react'\n\n/**\n * Low-level text input primitive with optional start and end adornments.\n *\n * @remarks\n * The building block used by higher-level field components such as TextInput\n * and NumberInput. Most consumers should reach for those instead.\n *\n * @internal\n */\nexport function Input(rawProps: InputProps) {\n const resolvedProps = applyMissingDefaults(rawProps, InputDefaults)\n const {\n className,\n adornmentStart,\n adornmentEnd,\n inputRef,\n isDisabled,\n 'aria-invalid': ariaInvalid,\n ...otherProps\n } = resolvedProps\n\n // A native <input type=\"number\"> still accepts the scientific-notation\n // characters \"e\"/\"E\". They are never valid in our numeric fields and are\n // silently dropped when the value is saved (the DOM coerces a lone \"e\" to an\n // empty string), so block them at the keystroke instead.\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (otherProps.type === 'number' && (event.key === 'e' || event.key === 'E')) {\n event.preventDefault()\n }\n }\n\n return (\n <div\n className={classNames(\n styles.container,\n {\n [styles.hasAdornmentStart as string]: !!adornmentStart,\n [styles.hasAdornmentEnd as string]: !!adornmentEnd,\n },\n className,\n )}\n data-disabled={isDisabled}\n >\n {adornmentStart && <div className={styles.adornmentStart}>{adornmentStart}</div>}\n <div className={styles.inputContainer}>\n <AriaInput\n ref={inputRef}\n disabled={isDisabled}\n aria-invalid={ariaInvalid}\n onKeyDown={handleKeyDown}\n {...otherProps}\n />\n <div className={styles.invalidIcon}>\n <AlertCircle fontSize={16} />\n </div>\n </div>\n {adornmentEnd && <div className={styles.adornmentEnd}>{adornmentEnd}</div>}\n </div>\n )\n}\n"],"names":["Input","rawProps","resolvedProps","applyMissingDefaults","InputDefaults","className","adornmentStart","adornmentEnd","inputRef","isDisabled","ariaInvalid","otherProps","handleKeyDown","event","jsxs","classNames","styles","jsx","AriaInput","AlertCircle"],"mappings":";;;;;;;AAkBO,SAASA,EAAMC,GAAsB;AAC1C,QAAMC,IAAgBC,EAAqBF,GAAUG,CAAa,GAC5D;AAAA,IACJ,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,IACA,YAAAC;AAAA,IACA,gBAAgBC;AAAA,IAChB,GAAGC;AAAA,EAAA,IACDT,GAMEU,IAAgB,CAACC,MAA2C;AAChE,IAAIF,EAAW,SAAS,aAAaE,EAAM,QAAQ,OAAOA,EAAM,QAAQ,QACtEA,EAAM,eAAA;AAAA,EAEV;AAEA,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACTC,EAAO;AAAA,QACP;AAAA,UACE,CAACA,EAAO,iBAA2B,GAAG,CAAC,CAACV;AAAA,UACxC,CAACU,EAAO,eAAyB,GAAG,CAAC,CAACT;AAAA,QAAA;AAAA,QAExCF;AAAA,MAAA;AAAA,MAEF,iBAAeI;AAAA,MAEd,UAAA;AAAA,QAAAH,KAAkB,gBAAAW,EAAC,OAAA,EAAI,WAAWD,EAAO,gBAAiB,UAAAV,GAAe;AAAA,QAC1E,gBAAAQ,EAAC,OAAA,EAAI,WAAWE,EAAO,gBACrB,UAAA;AAAA,UAAA,gBAAAC;AAAA,YAACC;AAAAA,YAAA;AAAA,cACC,KAAKV;AAAA,cACL,UAAUC;AAAA,cACV,gBAAcC;AAAA,cACd,WAAWE;AAAA,cACV,GAAGD;AAAA,YAAA;AAAA,UAAA;AAAA,UAEN,gBAAAM,EAAC,SAAI,WAAWD,EAAO,aACrB,UAAA,gBAAAC,EAACE,GAAA,EAAY,UAAU,GAAA,CAAI,EAAA,CAC7B;AAAA,QAAA,GACF;AAAA,QACCZ,KAAgB,gBAAAU,EAAC,OAAA,EAAI,WAAWD,EAAO,cAAe,UAAAT,EAAA,CAAa;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG1E;"}
@@ -1,12 +1,14 @@
1
1
  import { jsx as i } from "react/jsx-runtime";
2
2
  import { useTranslation as e } from "react-i18next";
3
3
  import { useAssignSignatory as s, SignatoryAssignmentMode as o } from "./useAssignSignatory.js";
4
- import a from "./AssignSignatorySelection.module.scss.js";
5
- import { RadioGroupField as r } from "../../Common/Fields/RadioGroupField/RadioGroupField.js";
6
- const c = () => {
4
+ import r from "./AssignSignatorySelection.module.scss.js";
5
+ import "classnames";
6
+ import "../../../shared/constants.js";
7
+ import { RadioGroupField as a } from "../../Common/Fields/RadioGroupField/RadioGroupField.js";
8
+ const S = () => {
7
9
  const { t: n } = e("Company.AssignSignatory"), { onSignatoryAssignmentModeChange: t } = s();
8
- return /* @__PURE__ */ i("section", { className: a.container, children: /* @__PURE__ */ i(
9
- r,
10
+ return /* @__PURE__ */ i("section", { className: r.container, children: /* @__PURE__ */ i(
11
+ a,
10
12
  {
11
13
  onChange: t,
12
14
  label: n("signingOptions.label"),
@@ -26,6 +28,6 @@ const c = () => {
26
28
  ) });
27
29
  };
28
30
  export {
29
- c as AssignSignatorySelection
31
+ S as AssignSignatorySelection
30
32
  };
31
33
  //# sourceMappingURL=AssignSignatorySelection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssignSignatorySelection.js","sources":["../../../../src/components/Company/AssignSignatory/AssignSignatorySelection.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { SignatoryAssignmentMode, useAssignSignatory } from './useAssignSignatory'\nimport styles from './AssignSignatorySelection.module.scss'\nimport { RadioGroupField } from '@/components/Common'\n\n/** @internal */\nexport const AssignSignatorySelection = () => {\n const { t } = useTranslation('Company.AssignSignatory')\n const { onSignatoryAssignmentModeChange } = useAssignSignatory()\n\n return (\n <section className={styles.container}>\n <RadioGroupField\n onChange={onSignatoryAssignmentModeChange}\n label={t('signingOptions.label')}\n shouldVisuallyHideLabel\n name=\"signatoryAssignmentMode\"\n options={[\n {\n label: t('signingOptions.selfSign'),\n value: SignatoryAssignmentMode.createSignatory,\n },\n {\n label: t('signingOptions.appointOther'),\n value: SignatoryAssignmentMode.inviteSignatory,\n },\n ]}\n />\n </section>\n )\n}\n"],"names":["AssignSignatorySelection","t","useTranslation","onSignatoryAssignmentModeChange","useAssignSignatory","jsx","styles","RadioGroupField","SignatoryAssignmentMode"],"mappings":";;;;;AAMO,MAAMA,IAA2B,MAAM;AAC5C,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,yBAAyB,GAChD,EAAE,iCAAAC,EAAA,IAAoCC,EAAA;AAE5C,SACE,gBAAAC,EAAC,WAAA,EAAQ,WAAWC,EAAO,WACzB,UAAA,gBAAAD;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,UAAUJ;AAAA,MACV,OAAOF,EAAE,sBAAsB;AAAA,MAC/B,yBAAuB;AAAA,MACvB,MAAK;AAAA,MACL,SAAS;AAAA,QACP;AAAA,UACE,OAAOA,EAAE,yBAAyB;AAAA,UAClC,OAAOO,EAAwB;AAAA,QAAA;AAAA,QAEjC;AAAA,UACE,OAAOP,EAAE,6BAA6B;AAAA,UACtC,OAAOO,EAAwB;AAAA,QAAA;AAAA,MACjC;AAAA,IACF;AAAA,EAAA,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"AssignSignatorySelection.js","sources":["../../../../src/components/Company/AssignSignatory/AssignSignatorySelection.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { SignatoryAssignmentMode, useAssignSignatory } from './useAssignSignatory'\nimport styles from './AssignSignatorySelection.module.scss'\nimport { RadioGroupField } from '@/components/Common'\n\n/** @internal */\nexport const AssignSignatorySelection = () => {\n const { t } = useTranslation('Company.AssignSignatory')\n const { onSignatoryAssignmentModeChange } = useAssignSignatory()\n\n return (\n <section className={styles.container}>\n <RadioGroupField\n onChange={onSignatoryAssignmentModeChange}\n label={t('signingOptions.label')}\n shouldVisuallyHideLabel\n name=\"signatoryAssignmentMode\"\n options={[\n {\n label: t('signingOptions.selfSign'),\n value: SignatoryAssignmentMode.createSignatory,\n },\n {\n label: t('signingOptions.appointOther'),\n value: SignatoryAssignmentMode.inviteSignatory,\n },\n ]}\n />\n </section>\n )\n}\n"],"names":["AssignSignatorySelection","t","useTranslation","onSignatoryAssignmentModeChange","useAssignSignatory","jsx","styles","RadioGroupField","SignatoryAssignmentMode"],"mappings":";;;;;;;AAMO,MAAMA,IAA2B,MAAM;AAC5C,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,yBAAyB,GAChD,EAAE,iCAAAC,EAAA,IAAoCC,EAAA;AAE5C,SACE,gBAAAC,EAAC,WAAA,EAAQ,WAAWC,EAAO,WACzB,UAAA,gBAAAD;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,UAAUJ;AAAA,MACV,OAAOF,EAAE,sBAAsB;AAAA,MAC/B,yBAAuB;AAAA,MACvB,MAAK;AAAA,MACL,SAAS;AAAA,QACP;AAAA,UACE,OAAOA,EAAE,yBAAyB;AAAA,UAClC,OAAOO,EAAwB;AAAA,QAAA;AAAA,QAEjC;AAAA,UACE,OAAOP,EAAE,6BAA6B;AAAA,UACtC,OAAOO,EAAwB;AAAA,QAAA;AAAA,MACjC;AAAA,IACF;AAAA,EAAA,GAEJ;AAEJ;"}