@gusto/embedded-react-sdk 0.33.0 → 0.35.0-rc.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 (354) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/dist/components/Base/Base.d.ts +6 -2
  3. package/dist/components/Base/Base.js +105 -59
  4. package/dist/components/Base/Base.js.map +1 -1
  5. package/dist/components/Base/useBase.d.ts +1 -0
  6. package/dist/components/Base/useBase.js.map +1 -1
  7. package/dist/components/Base/useBaseSubmit.d.ts +1 -1
  8. package/dist/components/Base/useBaseSubmit.js +60 -33
  9. package/dist/components/Base/useBaseSubmit.js.map +1 -1
  10. package/dist/components/Common/Fields/MultiSelectComboBoxField/MultiSelectComboBoxField.d.ts +5 -0
  11. package/dist/components/Common/Fields/MultiSelectComboBoxField/MultiSelectComboBoxField.js +34 -0
  12. package/dist/components/Common/Fields/MultiSelectComboBoxField/MultiSelectComboBoxField.js.map +1 -0
  13. package/dist/components/Common/Fields/MultiSelectComboBoxField/index.d.ts +2 -0
  14. package/dist/components/Common/HamburgerMenu/HamburgerMenu.d.ts +1 -1
  15. package/dist/components/Common/HamburgerMenu/HamburgerMenu.js +15 -13
  16. package/dist/components/Common/HamburgerMenu/HamburgerMenu.js.map +1 -1
  17. package/dist/components/Common/HamburgerMenu/HamburgerMenuTypes.d.ts +1 -0
  18. package/dist/components/Common/SignatureForm/SignatureForm.d.ts +1 -7
  19. package/dist/components/Common/SignatureForm/SignatureForm.js +12 -11
  20. package/dist/components/Common/SignatureForm/SignatureForm.js.map +1 -1
  21. package/dist/components/Common/SignatureForm/SignatureFormActions.js +1 -1
  22. package/dist/components/Common/SignatureForm/SignatureFormFields.js +1 -1
  23. package/dist/components/Common/UI/Menu/Menu.js +24 -24
  24. package/dist/components/Common/UI/Menu/Menu.js.map +1 -1
  25. package/dist/components/Common/UI/Menu/Menu.module.scss.js +7 -7
  26. package/dist/components/Common/UI/Menu/MenuTypes.d.ts +5 -0
  27. package/dist/components/Common/UI/Menu/MenuTypes.js +4 -3
  28. package/dist/components/Common/UI/Menu/MenuTypes.js.map +1 -1
  29. package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBox.d.ts +2 -0
  30. package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBox.js +127 -0
  31. package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBox.js.map +1 -0
  32. package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBox.module.scss.js +16 -0
  33. package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBox.module.scss.js.map +1 -0
  34. package/dist/components/Common/{MultiSelectComboBox → UI/MultiSelectComboBox}/MultiSelectComboBoxTypes.d.ts +6 -5
  35. package/dist/components/Common/UI/Table/Table.module.scss.js +1 -1
  36. package/dist/components/Common/index.d.ts +1 -0
  37. package/dist/components/Company/AssignSignatory/AssignSignatory.js +1 -1
  38. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +1 -1
  39. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +5 -6
  40. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
  41. package/dist/components/Company/AssignSignatory/CreateSignatory/Schema.d.ts +4 -30
  42. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +1 -1
  43. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +1 -1
  44. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.d.ts +2 -26
  45. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +4 -5
  46. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
  47. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +1 -1
  48. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +1 -1
  49. package/dist/components/Company/BankAccount/BankAccountForm/Form.d.ts +1 -7
  50. package/dist/components/Company/BankAccount/BankAccountForm/Form.js +5 -4
  51. package/dist/components/Company/BankAccount/BankAccountForm/Form.js.map +1 -1
  52. package/dist/components/Company/BankAccount/BankAccountForm/context.js +1 -1
  53. package/dist/components/Company/BankAccount/BankAccountVerify/Form.d.ts +1 -7
  54. package/dist/components/Company/BankAccount/BankAccountVerify/Form.js +5 -4
  55. package/dist/components/Company/BankAccount/BankAccountVerify/Form.js.map +1 -1
  56. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +2 -2
  57. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +1 -1
  58. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +2 -2
  59. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +1 -1
  60. package/dist/components/Company/FederalTaxes/FederalTaxes.js +2 -2
  61. package/dist/components/Company/FederalTaxes/Form.js +3 -2
  62. package/dist/components/Company/FederalTaxes/Form.js.map +1 -1
  63. package/dist/components/Company/FederalTaxes/useFederalTaxes.d.ts +7 -13
  64. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +1 -1
  65. package/dist/components/Company/Industry/Context.js +1 -1
  66. package/dist/components/Company/Locations/LocationForm/Form.d.ts +7 -20
  67. package/dist/components/Company/Locations/LocationForm/Form.js +4 -5
  68. package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
  69. package/dist/components/Company/Locations/LocationForm/LocationForm.js +2 -2
  70. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +1 -1
  71. package/dist/components/Company/Locations/LocationsList/LocationsList.js +2 -2
  72. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +1 -1
  73. package/dist/components/Company/OnboardingOverview/Completed.js +3 -2
  74. package/dist/components/Company/OnboardingOverview/Completed.js.map +1 -1
  75. package/dist/components/Company/OnboardingOverview/MissingRequirements.js +6 -5
  76. package/dist/components/Company/OnboardingOverview/MissingRequirements.js.map +1 -1
  77. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +2 -2
  78. package/dist/components/Company/OnboardingOverview/context.js +1 -1
  79. package/dist/components/Company/PaySchedule/PaySchedule.js +2 -2
  80. package/dist/components/Company/PaySchedule/_parts/Edit.js +9 -10
  81. package/dist/components/Company/PaySchedule/_parts/Edit.js.map +1 -1
  82. package/dist/components/Company/PaySchedule/_parts/Head.js +9 -8
  83. package/dist/components/Company/PaySchedule/_parts/Head.js.map +1 -1
  84. package/dist/components/Company/PaySchedule/_parts/List.js +12 -11
  85. package/dist/components/Company/PaySchedule/_parts/List.js.map +1 -1
  86. package/dist/components/Company/PaySchedule/usePaySchedule.d.ts +7 -18
  87. package/dist/components/Company/PaySchedule/usePaySchedule.js +1 -1
  88. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js.map +1 -1
  89. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +1 -1
  90. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +1 -1
  91. package/dist/components/Contractor/Address/Address.js +2 -2
  92. package/dist/components/Contractor/Address/Form.js +6 -7
  93. package/dist/components/Contractor/Address/Form.js.map +1 -1
  94. package/dist/components/Contractor/Address/useAddress.d.ts +1 -13
  95. package/dist/components/Contractor/Address/useAddress.js +1 -1
  96. package/dist/components/Contractor/ContractorList/index.js +17 -17
  97. package/dist/components/Contractor/ContractorList/useContractorList.js +4 -4
  98. package/dist/components/Contractor/ContractorList/useContractorList.js.map +1 -1
  99. package/dist/components/Contractor/NewHireReport/NewHireReport.d.ts +5 -15
  100. package/dist/components/Contractor/NewHireReport/NewHireReport.js +28 -28
  101. package/dist/components/Contractor/NewHireReport/NewHireReport.js.map +1 -1
  102. package/dist/components/Contractor/PaymentMethod/PaymentMethod.d.ts +7 -20
  103. package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.d.ts +5 -6
  104. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +119 -113
  105. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
  106. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js +3 -2
  107. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js.map +1 -1
  108. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentFormSchema.d.ts +19 -67
  109. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js +2 -3
  110. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js.map +1 -1
  111. package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js +18 -17
  112. package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js.map +1 -1
  113. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js +1 -1
  114. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js +27 -26
  115. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js.map +1 -1
  116. package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.js +76 -44
  117. package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.js.map +1 -1
  118. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js +1 -1
  119. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js.map +1 -1
  120. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js +3 -2
  121. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js.map +1 -1
  122. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js +1 -1
  123. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js.map +1 -1
  124. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js +7 -6
  125. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js.map +1 -1
  126. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.d.ts +3 -1
  127. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js +28 -22
  128. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js.map +1 -1
  129. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.d.ts +3 -1
  130. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.js +66 -54
  131. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.js.map +1 -1
  132. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +3 -2
  133. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
  134. package/dist/components/Contractor/Profile/useContractorProfile.d.ts +54 -120
  135. package/dist/components/Contractor/Profile/useContractorProfile.js +50 -49
  136. package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
  137. package/dist/components/Contractor/Submit/Submit.js +1 -1
  138. package/dist/components/Employee/Compensation/Edit.js +70 -70
  139. package/dist/components/Employee/Compensation/Edit.js.map +1 -1
  140. package/dist/components/Employee/Compensation/useCompensation.d.ts +17 -44
  141. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.d.ts +4 -22
  142. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js +61 -61
  143. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js.map +1 -1
  144. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.d.ts +4 -22
  145. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js +34 -34
  146. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js.map +1 -1
  147. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.d.ts +5 -27
  148. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js +47 -47
  149. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js.map +1 -1
  150. package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js +1 -1
  151. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js +2 -3
  152. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js.map +1 -1
  153. package/dist/components/Employee/Deductions/useDeductions.d.ts +7 -26
  154. package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js +1 -1
  155. package/dist/components/Employee/DocumentSigner/DocumentList/List.js +3 -2
  156. package/dist/components/Employee/DocumentSigner/DocumentList/List.js.map +1 -1
  157. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +1 -1
  158. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js +3 -2
  159. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js.map +1 -1
  160. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.d.ts +5 -29
  161. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js +8 -8
  162. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js.map +1 -1
  163. package/dist/components/Employee/DocumentSigner/I9SignatureForm/I9SignatureForm.d.ts +9 -76
  164. package/dist/components/Employee/DocumentSigner/SignatureForm/Form.js +5 -5
  165. package/dist/components/Employee/DocumentSigner/SignatureForm/Form.js.map +1 -1
  166. package/dist/components/Employee/DocumentSigner/SignatureForm/Preview.js +8 -8
  167. package/dist/components/Employee/DocumentSigner/SignatureForm/Preview.js.map +1 -1
  168. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js +1 -1
  169. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +1 -1
  170. package/dist/components/Employee/EmployeeDocuments/EmployeeDocumentsPresentation.d.ts +1 -5
  171. package/dist/components/Employee/EmployeeDocuments/EmployeeDocumentsPresentation.js +3 -2
  172. package/dist/components/Employee/EmployeeDocuments/EmployeeDocumentsPresentation.js.map +1 -1
  173. package/dist/components/Employee/EmployeeList/EmployeeList.js +4 -3
  174. package/dist/components/Employee/EmployeeList/EmployeeList.js.map +1 -1
  175. package/dist/components/Employee/EmployeeList/Head.js +3 -2
  176. package/dist/components/Employee/EmployeeList/Head.js.map +1 -1
  177. package/dist/components/Employee/EmployeeList/useEmployeeList.js +1 -1
  178. package/dist/components/Employee/FederalTaxes/FederalForm.d.ts +7 -33
  179. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js +1 -1
  180. package/dist/components/Employee/Landing/Landing.js +8 -8
  181. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +7 -7
  182. package/dist/components/Employee/PaymentMethod/BankAccount.d.ts +5 -14
  183. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.d.ts +5 -6
  184. package/dist/components/Employee/PaymentMethod/usePaymentMethod.d.ts +12 -68
  185. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +17 -16
  186. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
  187. package/dist/components/Employee/Profile/AdminPersonalDetails.d.ts +17 -82
  188. package/dist/components/Employee/Profile/AdminPersonalDetails.js +38 -33
  189. package/dist/components/Employee/Profile/AdminPersonalDetails.js.map +1 -1
  190. package/dist/components/Employee/Profile/HomeAddress.d.ts +11 -66
  191. package/dist/components/Employee/Profile/HomeAddress.js +8 -9
  192. package/dist/components/Employee/Profile/HomeAddress.js.map +1 -1
  193. package/dist/components/Employee/Profile/PersonalDetailsInputs.d.ts +15 -64
  194. package/dist/components/Employee/Profile/PersonalDetailsInputs.js +31 -28
  195. package/dist/components/Employee/Profile/PersonalDetailsInputs.js.map +1 -1
  196. package/dist/components/Employee/Profile/Profile.js +2 -5
  197. package/dist/components/Employee/Profile/Profile.js.map +1 -1
  198. package/dist/components/Employee/Profile/SelfPersonalDetails.d.ts +8 -37
  199. package/dist/components/Employee/Profile/SelfPersonalDetails.js +22 -19
  200. package/dist/components/Employee/Profile/SelfPersonalDetails.js.map +1 -1
  201. package/dist/components/Employee/Profile/useProfile.js +1 -1
  202. package/dist/components/Employee/StateTaxes/StateForm.d.ts +1 -5
  203. package/dist/components/Employee/StateTaxes/StateTaxes.js +69 -61
  204. package/dist/components/Employee/StateTaxes/StateTaxes.js.map +1 -1
  205. package/dist/components/Employee/StateTaxes/useStateTaxes.js +1 -1
  206. package/dist/components/Employee/Taxes/FederalForm.d.ts +7 -33
  207. package/dist/components/Employee/Taxes/StateForm.d.ts +1 -5
  208. package/dist/components/Employee/Taxes/useTaxes.js +1 -1
  209. package/dist/components/Flow/Flow.js +3 -2
  210. package/dist/components/Flow/Flow.js.map +1 -1
  211. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js +9 -9
  212. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js +4 -4
  213. package/dist/components/InformationRequests/InformationRequests.js +1 -1
  214. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.d.ts +1 -11
  215. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +1 -1
  216. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js.map +1 -1
  217. package/dist/components/Payroll/GrossUpModal/GrossUpModal.d.ts +2 -0
  218. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +101 -0
  219. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -0
  220. package/dist/components/Payroll/GrossUpModal/GrossUpModal.module.scss.js +16 -0
  221. package/dist/components/Payroll/GrossUpModal/GrossUpModal.module.scss.js.map +1 -0
  222. package/dist/components/Payroll/GrossUpModal/GrossUpModalTypes.d.ts +7 -0
  223. package/dist/components/Payroll/GrossUpModal/index.d.ts +3 -0
  224. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js +6 -9
  225. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js.map +1 -1
  226. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +104 -57
  227. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
  228. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.d.ts +1 -1
  229. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js +93 -24
  230. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js.map +1 -1
  231. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationTypes.d.ts +11 -0
  232. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormTypes.d.ts +2 -22
  233. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js +102 -0
  234. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js.map +1 -0
  235. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.module.scss.js +14 -0
  236. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.module.scss.js.map +1 -0
  237. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.js +52 -0
  238. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.js.map +1 -0
  239. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.module.scss.js +16 -0
  240. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.module.scss.js.map +1 -0
  241. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.d.ts +12 -2
  242. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.js +15 -0
  243. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.js.map +1 -0
  244. package/dist/components/Payroll/OffCycleTaxWithholdingTable/index.d.ts +2 -1
  245. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js +3 -2
  246. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
  247. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js +12 -12
  248. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +212 -120
  249. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  250. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +3 -1
  251. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +88 -77
  252. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  253. package/dist/components/Payroll/PayrollConfiguration/grossUpHelpers.d.ts +2 -0
  254. package/dist/components/Payroll/PayrollConfiguration/grossUpHelpers.js +11 -0
  255. package/dist/components/Payroll/PayrollConfiguration/grossUpHelpers.js.map +1 -0
  256. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js +67 -57
  257. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
  258. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +5 -5
  259. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
  260. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.d.ts +2 -12
  261. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +36 -37
  262. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  263. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js +13 -12
  264. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
  265. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +3 -2
  266. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  267. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +3 -2
  268. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  269. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +2 -3
  270. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  271. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js +8 -7
  272. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js.map +1 -1
  273. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +3 -2
  274. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  275. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js +1 -1
  276. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js +6 -6
  277. package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js +3 -2
  278. package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js.map +1 -1
  279. package/dist/components/Payroll/usePreparedPayrollData.js +47 -46
  280. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  281. package/dist/contexts/ApiProvider/ApiProvider.js +26 -25
  282. package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
  283. package/dist/contexts/ApiProvider/apiVersionHook.d.ts +2 -0
  284. package/dist/contexts/ApiProvider/apiVersionHook.js +7 -0
  285. package/dist/contexts/ApiProvider/apiVersionHook.js.map +1 -0
  286. package/dist/contexts/ApiProvider/apiVersionHook.test.d.ts +1 -0
  287. package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js +60 -58
  288. package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js.map +1 -1
  289. package/dist/contexts/ComponentAdapter/useComponentContext.d.ts +2 -0
  290. package/dist/contexts/ComponentAdapter/useComponentContext.js.map +1 -1
  291. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +2 -0
  292. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +58 -39
  293. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  294. package/dist/contexts/ObservabilityProvider/ObservabilityContext.d.ts +5 -0
  295. package/dist/contexts/ObservabilityProvider/ObservabilityContext.js +6 -0
  296. package/dist/contexts/ObservabilityProvider/ObservabilityContext.js.map +1 -0
  297. package/dist/contexts/ObservabilityProvider/ObservabilityProvider.d.ts +7 -0
  298. package/dist/contexts/ObservabilityProvider/ObservabilityProvider.js +11 -0
  299. package/dist/contexts/ObservabilityProvider/ObservabilityProvider.js.map +1 -0
  300. package/dist/contexts/ObservabilityProvider/index.d.ts +5 -0
  301. package/dist/contexts/ObservabilityProvider/observabilityUtils.d.ts +5 -0
  302. package/dist/contexts/ObservabilityProvider/observabilityUtils.js +45 -0
  303. package/dist/contexts/ObservabilityProvider/observabilityUtils.js.map +1 -0
  304. package/dist/contexts/ObservabilityProvider/sanitization.d.ts +19 -0
  305. package/dist/contexts/ObservabilityProvider/sanitization.js +95 -0
  306. package/dist/contexts/ObservabilityProvider/sanitization.js.map +1 -0
  307. package/dist/contexts/ObservabilityProvider/sanitization.test.d.ts +1 -0
  308. package/dist/contexts/ObservabilityProvider/useObservability.d.ts +2 -0
  309. package/dist/contexts/ObservabilityProvider/useObservability.js +11 -0
  310. package/dist/contexts/ObservabilityProvider/useObservability.js.map +1 -0
  311. package/dist/contexts/ObservabilityProvider/useSanitizedObservability.d.ts +8 -0
  312. package/dist/contexts/ObservabilityProvider/useSanitizedObservability.js +28 -0
  313. package/dist/contexts/ObservabilityProvider/useSanitizedObservability.js.map +1 -0
  314. package/dist/contexts/ThemeProvider/ThemeProvider.js +23 -23
  315. package/dist/contexts/ThemeProvider/ThemeProvider.js.map +1 -1
  316. package/dist/contexts/index.d.ts +2 -0
  317. package/dist/helpers/formattedStrings.js +12 -13
  318. package/dist/helpers/formattedStrings.js.map +1 -1
  319. package/dist/helpers/rem.d.ts +7 -3
  320. package/dist/helpers/rem.js +14 -10
  321. package/dist/helpers/rem.js.map +1 -1
  322. package/dist/helpers/rem.test.d.ts +1 -0
  323. package/dist/helpers/retryAsync.d.ts +7 -0
  324. package/dist/helpers/retryAsync.js +18 -0
  325. package/dist/helpers/retryAsync.js.map +1 -0
  326. package/dist/helpers/validations.d.ts +2 -2
  327. package/dist/i18n/I18n.js +1 -1
  328. package/dist/i18n/I18n.js.map +1 -1
  329. package/dist/i18n/en/Company.PaySchedule.json.js +1 -1
  330. package/dist/i18n/en/Contractor.Payments.PaymentSummary.json.js +42 -40
  331. package/dist/i18n/en/Contractor.Payments.PaymentSummary.json.js.map +1 -1
  332. package/dist/i18n/en/Contractor.Payments.PaymentsList.json.js +9 -9
  333. package/dist/i18n/en/Payroll.EmployeeSelection.json.js +10 -0
  334. package/dist/i18n/en/Payroll.EmployeeSelection.json.js.map +1 -0
  335. package/dist/i18n/en/Payroll.GrossUpModal.json.js +24 -0
  336. package/dist/i18n/en/Payroll.GrossUpModal.json.js.map +1 -0
  337. package/dist/i18n/en/Payroll.OffCycleCreation.json.js +10 -8
  338. package/dist/i18n/en/Payroll.OffCycleCreation.json.js.map +1 -1
  339. package/dist/i18n/en/Payroll.OffCycleTaxWithholding.json.js +13 -11
  340. package/dist/i18n/en/Payroll.OffCycleTaxWithholding.json.js.map +1 -1
  341. package/dist/i18n/en/Payroll.PayrollConfiguration.json.js +1 -1
  342. package/dist/index.d.ts +2 -0
  343. package/dist/index.js +19 -13
  344. package/dist/index.js.map +1 -1
  345. package/dist/shared/constants.d.ts +5 -0
  346. package/dist/shared/constants.js +11 -8
  347. package/dist/shared/constants.js.map +1 -1
  348. package/dist/style.css +1 -1
  349. package/dist/types/i18next.d.ts +36 -1
  350. package/dist/types/observability.d.ts +145 -0
  351. package/docs/reference/endpoint-inventory.json +14 -1
  352. package/package.json +25 -24
  353. package/dist/components/Common/MultiSelectComboBox/MultiSelectComboBox.d.ts +0 -2
  354. /package/dist/components/Common/{MultiSelectComboBox → UI/MultiSelectComboBox}/index.d.ts +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,68 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.35.0
4
+
5
+ ### Features & Enhancements
6
+
7
+ - Integrate tax withholding config into off-cycle payroll creation
8
+ - Add gross up modal to PayrollConfiguration kebab menu
9
+
10
+ ### Fixes
11
+
12
+ - Update payroll deadline time from 1PM to 4PM Pacific in calendar preview
13
+ - Adjust minimum wage controls for states without tip credits
14
+ - Updated to use correct translation keys
15
+ - Handle date field serialization in state taxes form
16
+ - Preset payment date based on company payment speed
17
+
18
+ ### Chores & Maintenance
19
+
20
+ - Add comprehensive tests for rem conversion utilities
21
+ - Improve Cursor configuration for team productivity
22
+ - Upgrade vitest to v4, coverage-v8 to v4, and plugin-react-swc to v4
23
+ - Bump react-i18next from 16.5.4 to 16.5.8
24
+ - Bump i18next from 25.8.13 to 25.8.18
25
+ - Bump dompurify from 3.3.2 to 3.3.3
26
+ - Bump react-aria from 3.45.0 to 3.47.0
27
+ - Bump sass-embedded from 1.97.3 to 1.98.0
28
+ - Bump typescript-eslint from 8.56.1 to 8.57.0
29
+ - Bump eslint-plugin-storybook from 10.2.15 to 10.2.17
30
+ - Bump @storybook/react-vite from 10.2.15 to 10.2.17
31
+ - Bump @storybook/addon-docs from 10.2.14 to 10.2.17
32
+ - Bump @storybook/addon-a11y from 10.2.16 to 10.2.17
33
+ - Bump @storybook/addon-onboarding from 10.2.15 to 10.2.17
34
+ - Bump storybook from 10.2.16 to 10.2.17
35
+ - Bump lint-staged from 16.3.2 to 16.3.3
36
+ - Bump eslint from 9.39.3 to 9.39.4
37
+ - Bump @commitlint/cli from 20.4.3 to 20.4.4
38
+ - Bump @commitlint/config-conventional from 20.4.3 to 20.4.4
39
+
40
+ ## 0.34.0
41
+
42
+ ### Features & Enhancements
43
+
44
+ - Integrate employee selection into OffCycleCreation
45
+ - Add wire-in confirmation alert and API version header
46
+ - Optimize ThemeProvider style tag injection and CSS generation
47
+ - Optimize rem conversion system with caching to improve performance
48
+
49
+ ### Fixes
50
+
51
+ - Resolve double prepare API call in Off Cycle payroll flow
52
+
53
+ ### Chores & Maintenance
54
+
55
+ - Architecture overview documentation
56
+ - Add stylelint rule to prevent manual SCSS helpers imports
57
+ - Upgrade zod from v3 to v4
58
+ - Bump @gusto/embedded-api from 0.12.0 to 0.12.2
59
+ - Bump @internationalized/date from 3.10.1 to 3.12.0
60
+ - Bump dompurify from 3.3.1 to 3.3.2
61
+ - Bump @storybook/addon-a11y from 10.2.14 to 10.2.15
62
+ - Bump @storybook/addon-onboarding from 10.2.14 to 10.2.15
63
+ - Bump @storybook/react-vite from 10.2.14 to 10.2.15
64
+ - Bump eslint-plugin-storybook from 10.2.14 to 10.2.15
65
+
3
66
  ## 0.33.0
4
67
 
5
68
  ### Features & Enhancements
@@ -16,7 +16,10 @@ export interface BaseComponentInterface<TResourceKey extends keyof Resources = k
16
16
  LoaderComponent?: BaseBoundariesProps['LoaderComponent'];
17
17
  onEvent: OnEventType<EventType, unknown>;
18
18
  }
19
- export declare const BaseComponent: <TResourceKey extends keyof Resources = keyof Resources>({ children, FallbackComponent, LoaderComponent: LoadingIndicatorFromProps, onEvent, }: BaseComponentInterface<TResourceKey>) => import("react/jsx-runtime").JSX.Element;
19
+ interface InternalBaseComponentProps {
20
+ componentName?: string;
21
+ }
22
+ export declare const BaseComponent: <TResourceKey extends keyof Resources = keyof Resources>({ children, FallbackComponent, LoaderComponent: LoadingIndicatorFromProps, onEvent, componentName, }: BaseComponentInterface<TResourceKey> & InternalBaseComponentProps) => import("react/jsx-runtime").JSX.Element;
20
23
  interface BaseLayoutProps {
21
24
  children?: ReactNode;
22
25
  error: KnownErrors | null;
@@ -28,6 +31,7 @@ export interface BaseBoundariesProps {
28
31
  FallbackComponent?: (props: FallbackProps) => JSX.Element;
29
32
  LoaderComponent?: LoadingIndicatorContextProps['LoadingIndicator'];
30
33
  onErrorBoundaryError?: (error: unknown, info: ErrorInfo) => void;
34
+ componentName?: string;
31
35
  }
32
- export declare const BaseBoundaries: ({ children, FallbackComponent, LoaderComponent: LoadingIndicatorFromProps, onErrorBoundaryError, }: BaseBoundariesProps) => import("react/jsx-runtime").JSX.Element;
36
+ export declare const BaseBoundaries: ({ children, FallbackComponent, LoaderComponent: LoadingIndicatorFromProps, onErrorBoundaryError, componentName, }: BaseBoundariesProps) => import("react/jsx-runtime").JSX.Element;
33
37
  export {};
@@ -1,80 +1,126 @@
1
- import { jsx as r, jsxs as d } from "react/jsx-runtime";
2
- import { Suspense as L } from "react";
3
- import { ErrorBoundary as C } from "react-error-boundary";
4
- import { useTranslation as h } from "react-i18next";
5
- import { GustoEmbeddedError as B } from "@gusto/embedded-api/models/errors/gustoembeddederror";
6
- import { SDKValidationError as x } from "@gusto/embedded-api/models/errors/sdkvalidationerror";
7
- import { QueryErrorResetBoundary as I } from "@tanstack/react-query";
8
- import { FadeIn as b } from "../Common/FadeIn/FadeIn.js";
9
- import { BaseContext as g } from "./useBase.js";
10
- import { useBaseSubmit as y } from "./useBaseSubmit.js";
11
- import { componentEvents as R } from "../../shared/constants.js";
1
+ import { jsx as s, jsxs as l } from "react/jsx-runtime";
2
+ import { Suspense as x, useRef as u, useEffect as f } from "react";
3
+ import { ErrorBoundary as B } from "react-error-boundary";
4
+ import { useTranslation as k } from "react-i18next";
5
+ import { GustoEmbeddedError as v } from "@gusto/embedded-api/models/errors/gustoembeddederror";
6
+ import { SDKValidationError as I } from "@gusto/embedded-api/models/errors/sdkvalidationerror";
7
+ import { QueryErrorResetBoundary as R } from "@tanstack/react-query";
8
+ import { FadeIn as S } from "../Common/FadeIn/FadeIn.js";
9
+ import { BaseContext as w } from "./useBase.js";
10
+ import { useBaseSubmit as D } from "./useBaseSubmit.js";
11
+ import { componentEvents as F } from "../../shared/constants.js";
12
12
  import "classnames";
13
- import { InternalError as c } from "../Common/InternalError/InternalError.js";
14
- import { useComponentContext as F } from "../../contexts/ComponentAdapter/useComponentContext.js";
15
- import { useLoadingIndicator as p } from "../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
16
- import { renderErrorList as S } from "../../helpers/apiErrorToList.js";
17
- const M = ({
18
- children: s,
19
- FallbackComponent: n = c,
20
- LoaderComponent: e,
21
- onEvent: o
13
+ import { InternalError as E } from "../Common/InternalError/InternalError.js";
14
+ import { useComponentContext as T } from "../../contexts/ComponentAdapter/useComponentContext.js";
15
+ import { useLoadingIndicator as L } from "../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
16
+ import { useObservability as g } from "../../contexts/ObservabilityProvider/useObservability.js";
17
+ import { renderErrorList as j } from "../../helpers/apiErrorToList.js";
18
+ const rr = ({
19
+ children: i,
20
+ FallbackComponent: r = E,
21
+ LoaderComponent: n,
22
+ onEvent: e,
23
+ componentName: o
22
24
  }) => {
23
- const { error: i, fieldErrors: t, baseSubmitHandler: a, setError: l } = y(), { LoadingIndicator: u } = p(), m = e ?? u, f = (E) => {
24
- o(R.ERROR, E);
25
+ const { error: t, fieldErrors: a, baseSubmitHandler: m, setError: d } = D(o), { observability: b } = g(), { LoadingIndicator: h } = L(), p = n ?? h, y = (c, C) => {
26
+ e(F.ERROR, c), b?.onError?.({
27
+ type: "boundary_error",
28
+ message: c instanceof Error ? c.message : "Unknown error",
29
+ stack: c instanceof Error ? c.stack : void 0,
30
+ context: {
31
+ componentName: o,
32
+ componentStack: C.componentStack ?? void 0
33
+ },
34
+ originalError: c,
35
+ timestamp: Date.now()
36
+ });
25
37
  };
26
- return /* @__PURE__ */ r(
27
- g.Provider,
38
+ return /* @__PURE__ */ s(
39
+ w.Provider,
28
40
  {
29
41
  value: {
30
- error: i,
31
- fieldErrors: t,
32
- setError: l,
33
- onEvent: o,
34
- baseSubmitHandler: a,
35
- LoadingIndicator: m
42
+ error: t,
43
+ fieldErrors: a,
44
+ setError: d,
45
+ onEvent: e,
46
+ baseSubmitHandler: m,
47
+ LoadingIndicator: p,
48
+ componentName: o
36
49
  },
37
- children: /* @__PURE__ */ r(
38
- j,
50
+ children: /* @__PURE__ */ s(
51
+ U,
39
52
  {
40
- FallbackComponent: n,
41
- LoaderComponent: m,
42
- onErrorBoundaryError: f,
43
- children: /* @__PURE__ */ r(T, { error: i, fieldErrors: t, children: s })
53
+ FallbackComponent: r,
54
+ LoaderComponent: p,
55
+ onErrorBoundaryError: y,
56
+ componentName: o,
57
+ children: /* @__PURE__ */ s(M, { error: t, fieldErrors: a, children: i })
44
58
  }
45
59
  )
46
60
  }
47
61
  );
48
- }, T = ({ children: s, error: n, fieldErrors: e }) => {
49
- const o = F(), { t: i } = h(), t = !!e?.length;
50
- return /* @__PURE__ */ d(b, { children: [
51
- (n || e) && /* @__PURE__ */ d(o.Alert, { label: i("status.errorEncountered"), status: "error", children: [
52
- t && /* @__PURE__ */ r(o.UnorderedList, { items: S(e) }),
53
- !t && n instanceof B && /* @__PURE__ */ r(o.Text, { children: i("errors.unknownError") }),
54
- !t && n instanceof x && /* @__PURE__ */ r(o.Text, { as: "pre", children: n.pretty() })
62
+ }, M = ({ children: i, error: r, fieldErrors: n }) => {
63
+ const e = T(), { t: o } = k(), t = !!n?.length;
64
+ return /* @__PURE__ */ l(S, { children: [
65
+ (r || n) && /* @__PURE__ */ l(e.Alert, { label: o("status.errorEncountered"), status: "error", children: [
66
+ t && /* @__PURE__ */ s(e.UnorderedList, { items: j(n) }),
67
+ !t && r instanceof v && /* @__PURE__ */ s(e.Text, { children: o("errors.unknownError") }),
68
+ !t && r instanceof I && /* @__PURE__ */ s(e.Text, { as: "pre", children: r.pretty() })
55
69
  ] }),
56
- s
70
+ i
57
71
  ] });
58
- }, j = ({
59
- children: s,
60
- FallbackComponent: n = c,
61
- LoaderComponent: e,
62
- onErrorBoundaryError: o
72
+ }, O = ({
73
+ LoaderComponent: i,
74
+ observability: r,
75
+ componentName: n
76
+ }) => {
77
+ const e = u(Date.now()), o = u(r), t = u(n);
78
+ return f(() => {
79
+ o.current = r, t.current = n;
80
+ }, [r, n]), f(() => () => {
81
+ const a = Date.now() - e.current;
82
+ o.current?.onMetric?.({
83
+ name: "sdk.component.loading_duration",
84
+ value: a,
85
+ unit: "ms",
86
+ tags: t.current ? { component: t.current } : void 0,
87
+ timestamp: Date.now()
88
+ });
89
+ }, []), /* @__PURE__ */ s(i, {});
90
+ }, U = ({
91
+ children: i,
92
+ FallbackComponent: r = E,
93
+ LoaderComponent: n,
94
+ onErrorBoundaryError: e,
95
+ componentName: o
63
96
  }) => {
64
- const { LoadingIndicator: i } = p(), t = e ?? i;
65
- return /* @__PURE__ */ r(I, { children: ({ reset: a }) => /* @__PURE__ */ r(
66
- C,
97
+ const { LoadingIndicator: t } = L(), a = n ?? t, { observability: m } = g();
98
+ return /* @__PURE__ */ s(R, { children: ({ reset: d }) => /* @__PURE__ */ s(
99
+ B,
67
100
  {
68
- FallbackComponent: n,
69
- onReset: a,
70
- onError: o,
71
- children: /* @__PURE__ */ r(L, { fallback: /* @__PURE__ */ r(t, {}), children: s })
101
+ FallbackComponent: r,
102
+ onReset: d,
103
+ onError: e,
104
+ children: /* @__PURE__ */ s(
105
+ x,
106
+ {
107
+ fallback: /* @__PURE__ */ s(
108
+ O,
109
+ {
110
+ LoaderComponent: a,
111
+ observability: m,
112
+ componentName: o
113
+ }
114
+ ),
115
+ children: i
116
+ }
117
+ )
72
118
  }
73
119
  ) });
74
120
  };
75
121
  export {
76
- j as BaseBoundaries,
77
- M as BaseComponent,
78
- T as BaseLayout
122
+ U as BaseBoundaries,
123
+ rr as BaseComponent,
124
+ M as BaseLayout
79
125
  };
80
126
  //# 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 } from 'react'\nimport type { FallbackProps } from 'react-error-boundary'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { useTranslation } from 'react-i18next'\nimport { GustoEmbeddedError } from '@gusto/embedded-api/models/errors/gustoembeddederror'\nimport { SDKValidationError } from '@gusto/embedded-api/models/errors/sdkvalidationerror'\nimport { QueryErrorResetBoundary } from '@tanstack/react-query'\nimport type { EntityErrorObject } from '@gusto/embedded-api/models/components/entityerrorobject'\nimport { FadeIn } from '../Common/FadeIn/FadeIn'\nimport { BaseContext, type KnownErrors, 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 type { LoadingIndicatorContextProps } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport { renderErrorList } from '@/helpers/apiErrorToList'\n\nexport interface CommonComponentInterface<TResourceKey extends keyof Resources = keyof Resources> {\n children?: ReactNode\n className?: string\n defaultValues?: unknown\n dictionary?: ResourceDictionary<TResourceKey>\n}\n\n// Base component wrapper with error and suspense handling\nexport interface BaseComponentInterface<\n TResourceKey extends keyof Resources = keyof Resources,\n> extends CommonComponentInterface<TResourceKey> {\n FallbackComponent?: BaseBoundariesProps['FallbackComponent']\n LoaderComponent?: BaseBoundariesProps['LoaderComponent']\n onEvent: OnEventType<EventType, unknown>\n}\n\nexport const BaseComponent = <TResourceKey extends keyof Resources = keyof Resources>({\n children,\n FallbackComponent = InternalError,\n LoaderComponent: LoadingIndicatorFromProps,\n onEvent,\n}: BaseComponentInterface<TResourceKey>) => {\n const { error, fieldErrors, baseSubmitHandler, setError } = useBaseSubmit()\n\n const { LoadingIndicator: LoadingIndicatorFromContext } = useLoadingIndicator()\n const LoaderComponent = LoadingIndicatorFromProps ?? LoadingIndicatorFromContext\n\n const onErrorBoundaryError = (error: unknown) => {\n onEvent(componentEvents.ERROR, error)\n }\n\n return (\n <BaseContext.Provider\n value={{\n error,\n fieldErrors,\n setError,\n onEvent,\n baseSubmitHandler,\n LoadingIndicator: LoaderComponent,\n }}\n >\n <BaseBoundaries\n FallbackComponent={FallbackComponent}\n LoaderComponent={LoaderComponent}\n onErrorBoundaryError={onErrorBoundaryError}\n >\n <BaseLayout error={error} fieldErrors={fieldErrors}>\n {children}\n </BaseLayout>\n </BaseBoundaries>\n </BaseContext.Provider>\n )\n}\n\ninterface BaseLayoutProps {\n children?: ReactNode\n error: KnownErrors | null\n fieldErrors: Array<EntityErrorObject> | null\n}\n\nexport const BaseLayout = ({ children, error, fieldErrors }: BaseLayoutProps) => {\n const Components = useComponentContext()\n const { t } = useTranslation()\n const hasDisplayableFieldErrors = Boolean(fieldErrors?.length)\n\n return (\n <FadeIn>\n {(error || fieldErrors) && (\n <Components.Alert label={t('status.errorEncountered')} status=\"error\">\n {hasDisplayableFieldErrors && (\n <Components.UnorderedList items={renderErrorList(fieldErrors!)} />\n )}\n {!hasDisplayableFieldErrors && error instanceof GustoEmbeddedError && (\n <Components.Text>{t('errors.unknownError')}</Components.Text>\n )}\n {!hasDisplayableFieldErrors && error instanceof SDKValidationError && (\n <Components.Text as=\"pre\">{error.pretty()}</Components.Text>\n )}\n </Components.Alert>\n )}\n {children}\n </FadeIn>\n )\n}\n\nexport interface BaseBoundariesProps {\n children?: ReactNode\n FallbackComponent?: (props: FallbackProps) => JSX.Element\n LoaderComponent?: LoadingIndicatorContextProps['LoadingIndicator']\n onErrorBoundaryError?: (error: unknown, info: ErrorInfo) => void\n}\n\nexport const BaseBoundaries = ({\n children,\n FallbackComponent = InternalError,\n LoaderComponent: LoadingIndicatorFromProps,\n onErrorBoundaryError,\n}: BaseBoundariesProps) => {\n const { LoadingIndicator: LoadingIndicatorFromContext } = useLoadingIndicator()\n const LoaderComponent = LoadingIndicatorFromProps ?? LoadingIndicatorFromContext\n\n return (\n <QueryErrorResetBoundary>\n {({ reset: resetQueries }) => (\n <ErrorBoundary\n FallbackComponent={FallbackComponent}\n onReset={resetQueries}\n onError={onErrorBoundaryError}\n >\n <Suspense fallback={<LoaderComponent />}>{children}</Suspense>\n </ErrorBoundary>\n )}\n </QueryErrorResetBoundary>\n )\n}\n"],"names":["BaseComponent","children","FallbackComponent","InternalError","LoadingIndicatorFromProps","onEvent","error","fieldErrors","baseSubmitHandler","setError","useBaseSubmit","LoadingIndicatorFromContext","useLoadingIndicator","LoaderComponent","onErrorBoundaryError","componentEvents","jsx","BaseContext","BaseBoundaries","BaseLayout","Components","useComponentContext","t","useTranslation","hasDisplayableFieldErrors","FadeIn","jsxs","renderErrorList","GustoEmbeddedError","SDKValidationError","QueryErrorResetBoundary","resetQueries","ErrorBoundary","Suspense"],"mappings":";;;;;;;;;;;;;;;;AAoCO,MAAMA,IAAgB,CAAyD;AAAA,EACpF,UAAAC;AAAA,EACA,mBAAAC,IAAoBC;AAAA,EACpB,iBAAiBC;AAAA,EACjB,SAAAC;AACF,MAA4C;AAC1C,QAAM,EAAE,OAAAC,GAAO,aAAAC,GAAa,mBAAAC,GAAmB,UAAAC,EAAA,IAAaC,EAAA,GAEtD,EAAE,kBAAkBC,EAAA,IAAgCC,EAAA,GACpDC,IAAkBT,KAA6BO,GAE/CG,IAAuB,CAACR,MAAmB;AAC/C,IAAAD,EAAQU,EAAgB,OAAOT,CAAK;AAAA,EACtC;AAEA,SACE,gBAAAU;AAAA,IAACC,EAAY;AAAA,IAAZ;AAAA,MACC,OAAO;AAAA,QACL,OAAAX;AAAA,QACA,aAAAC;AAAA,QACA,UAAAE;AAAA,QACA,SAAAJ;AAAA,QACA,mBAAAG;AAAA,QACA,kBAAkBK;AAAA,MAAA;AAAA,MAGpB,UAAA,gBAAAG;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,mBAAAhB;AAAA,UACA,iBAAAW;AAAA,UACA,sBAAAC;AAAA,UAEA,UAAA,gBAAAE,EAACG,GAAA,EAAW,OAAAb,GAAc,aAAAC,GACvB,UAAAN,EAAA,CACH;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN,GAQakB,IAAa,CAAC,EAAE,UAAAlB,GAAU,OAAAK,GAAO,aAAAC,QAAmC;AAC/E,QAAMa,IAAaC,EAAA,GACb,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAA4B,EAAQjB,GAAa;AAEvD,2BACGkB,GAAA,EACG,UAAA;AAAA,KAAAnB,KAASC,MACT,gBAAAmB,EAACN,EAAW,OAAX,EAAiB,OAAOE,EAAE,yBAAyB,GAAG,QAAO,SAC3D,UAAA;AAAA,MAAAE,uBACEJ,EAAW,eAAX,EAAyB,OAAOO,EAAgBpB,CAAY,GAAG;AAAA,MAEjE,CAACiB,KAA6BlB,aAAiBsB,KAC9C,gBAAAZ,EAACI,EAAW,MAAX,EAAiB,UAAAE,EAAE,qBAAqB,EAAA,CAAE;AAAA,MAE5C,CAACE,KAA6BlB,aAAiBuB,KAC9C,gBAAAb,EAACI,EAAW,MAAX,EAAgB,IAAG,OAAO,UAAAd,EAAM,OAAA,EAAO,CAAE;AAAA,IAAA,GAE9C;AAAA,IAEDL;AAAA,EAAA,GACH;AAEJ,GASaiB,IAAiB,CAAC;AAAA,EAC7B,UAAAjB;AAAA,EACA,mBAAAC,IAAoBC;AAAA,EACpB,iBAAiBC;AAAA,EACjB,sBAAAU;AACF,MAA2B;AACzB,QAAM,EAAE,kBAAkBH,EAAA,IAAgCC,EAAA,GACpDC,IAAkBT,KAA6BO;AAErD,2BACGmB,GAAA,EACE,UAAA,CAAC,EAAE,OAAOC,QACT,gBAAAf;AAAA,IAACgB;AAAA,IAAA;AAAA,MACC,mBAAA9B;AAAA,MACA,SAAS6B;AAAA,MACT,SAASjB;AAAA,MAET,4BAACmB,GAAA,EAAS,UAAU,gBAAAjB,EAACH,GAAA,EAAgB,GAAK,UAAAZ,EAAA,CAAS;AAAA,IAAA;AAAA,EAAA,GAGzD;AAEJ;"}
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 { GustoEmbeddedError } from '@gusto/embedded-api/models/errors/gustoembeddederror'\nimport { SDKValidationError } from '@gusto/embedded-api/models/errors/sdkvalidationerror'\nimport { QueryErrorResetBoundary } from '@tanstack/react-query'\nimport type { EntityErrorObject } from '@gusto/embedded-api/models/components/entityerrorobject'\nimport { FadeIn } from '../Common/FadeIn/FadeIn'\nimport { BaseContext, type KnownErrors, 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 type { LoadingIndicatorContextProps } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport { useObservability } from '@/contexts/ObservabilityProvider/useObservability'\nimport { renderErrorList } from '@/helpers/apiErrorToList'\n\nexport interface CommonComponentInterface<TResourceKey extends keyof Resources = keyof Resources> {\n children?: ReactNode\n className?: string\n defaultValues?: unknown\n dictionary?: ResourceDictionary<TResourceKey>\n}\n\n// Base component wrapper with error and suspense handling\nexport interface BaseComponentInterface<\n TResourceKey extends keyof Resources = keyof Resources,\n> extends CommonComponentInterface<TResourceKey> {\n FallbackComponent?: BaseBoundariesProps['FallbackComponent']\n LoaderComponent?: BaseBoundariesProps['LoaderComponent']\n onEvent: OnEventType<EventType, unknown>\n}\n\n// Internal prop for SDK components to set their component name\ninterface InternalBaseComponentProps {\n componentName?: string\n}\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, fieldErrors, baseSubmitHandler, setError } = useBaseSubmit(componentName)\n const { observability } = useObservability()\n\n const { LoadingIndicator: LoadingIndicatorFromContext } = useLoadingIndicator()\n const LoaderComponent = LoadingIndicatorFromProps ?? LoadingIndicatorFromContext\n\n const onErrorBoundaryError = (error: unknown, errorInfo: ErrorInfo) => {\n onEvent(componentEvents.ERROR, error)\n\n observability?.onError?.({\n type: 'boundary_error',\n message: error instanceof Error ? error.message : 'Unknown error',\n stack: error instanceof Error ? error.stack : undefined,\n context: {\n componentName,\n componentStack: errorInfo.componentStack ?? undefined,\n },\n originalError: error,\n timestamp: Date.now(),\n })\n }\n\n return (\n <BaseContext.Provider\n value={{\n error,\n fieldErrors,\n setError,\n onEvent,\n baseSubmitHandler,\n LoadingIndicator: LoaderComponent,\n componentName,\n }}\n >\n <BaseBoundaries\n FallbackComponent={FallbackComponent}\n LoaderComponent={LoaderComponent}\n onErrorBoundaryError={onErrorBoundaryError}\n componentName={componentName}\n >\n <BaseLayout error={error} fieldErrors={fieldErrors}>\n {children}\n </BaseLayout>\n </BaseBoundaries>\n </BaseContext.Provider>\n )\n}\n\ninterface BaseLayoutProps {\n children?: ReactNode\n error: KnownErrors | null\n fieldErrors: Array<EntityErrorObject> | null\n}\n\nexport const BaseLayout = ({ children, error, fieldErrors }: BaseLayoutProps) => {\n const Components = useComponentContext()\n const { t } = useTranslation()\n const hasDisplayableFieldErrors = Boolean(fieldErrors?.length)\n\n return (\n <FadeIn>\n {(error || fieldErrors) && (\n <Components.Alert label={t('status.errorEncountered')} status=\"error\">\n {hasDisplayableFieldErrors && (\n <Components.UnorderedList items={renderErrorList(fieldErrors!)} />\n )}\n {!hasDisplayableFieldErrors && error instanceof GustoEmbeddedError && (\n <Components.Text>{t('errors.unknownError')}</Components.Text>\n )}\n {!hasDisplayableFieldErrors && error instanceof SDKValidationError && (\n <Components.Text as=\"pre\">{error.pretty()}</Components.Text>\n )}\n </Components.Alert>\n )}\n {children}\n </FadeIn>\n )\n}\n\ninterface LoaderWithMetricsProps {\n LoaderComponent: LoadingIndicatorContextProps['LoadingIndicator']\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\nexport interface BaseBoundariesProps {\n children?: ReactNode\n FallbackComponent?: (props: FallbackProps) => JSX.Element\n LoaderComponent?: LoadingIndicatorContextProps['LoadingIndicator']\n onErrorBoundaryError?: (error: unknown, info: ErrorInfo) => void\n componentName?: string\n}\n\nexport const BaseBoundaries = ({\n children,\n FallbackComponent = InternalError,\n LoaderComponent: LoadingIndicatorFromProps,\n onErrorBoundaryError,\n componentName,\n}: BaseBoundariesProps) => {\n const { LoadingIndicator: LoadingIndicatorFromContext } = useLoadingIndicator()\n const LoaderComponent = LoadingIndicatorFromProps ?? LoadingIndicatorFromContext\n const { observability } = useObservability()\n\n return (\n <QueryErrorResetBoundary>\n {({ reset: resetQueries }) => (\n <ErrorBoundary\n FallbackComponent={FallbackComponent}\n onReset={resetQueries}\n onError={onErrorBoundaryError}\n >\n <Suspense\n fallback={\n <LoaderWithMetrics\n LoaderComponent={LoaderComponent}\n observability={observability}\n componentName={componentName}\n />\n }\n >\n {children}\n </Suspense>\n </ErrorBoundary>\n )}\n </QueryErrorResetBoundary>\n )\n}\n"],"names":["BaseComponent","children","FallbackComponent","InternalError","LoadingIndicatorFromProps","onEvent","componentName","error","fieldErrors","baseSubmitHandler","setError","useBaseSubmit","observability","useObservability","LoadingIndicatorFromContext","useLoadingIndicator","LoaderComponent","onErrorBoundaryError","errorInfo","componentEvents","jsx","BaseContext","BaseBoundaries","BaseLayout","Components","useComponentContext","t","useTranslation","hasDisplayableFieldErrors","FadeIn","jsxs","renderErrorList","GustoEmbeddedError","SDKValidationError","LoaderWithMetrics","loadingStartTime","useRef","observabilityRef","componentNameRef","useEffect","duration","QueryErrorResetBoundary","resetQueries","ErrorBoundary","Suspense"],"mappings":";;;;;;;;;;;;;;;;;AA0CO,MAAMA,KAAgB,CAAyD;AAAA,EACpF,UAAAC;AAAA,EACA,mBAAAC,IAAoBC;AAAA,EACpB,iBAAiBC;AAAA,EACjB,SAAAC;AAAA,EACA,eAAAC;AACF,MAAyE;AACvE,QAAM,EAAE,OAAAC,GAAO,aAAAC,GAAa,mBAAAC,GAAmB,UAAAC,EAAA,IAAaC,EAAcL,CAAa,GACjF,EAAE,eAAAM,EAAA,IAAkBC,EAAA,GAEpB,EAAE,kBAAkBC,EAAA,IAAgCC,EAAA,GACpDC,IAAkBZ,KAA6BU,GAE/CG,IAAuB,CAACV,GAAgBW,MAAyB;AACrE,IAAAb,EAAQc,EAAgB,OAAOZ,CAAK,GAEpCK,GAAe,UAAU;AAAA,MACvB,MAAM;AAAA,MACN,SAASL,aAAiB,QAAQA,EAAM,UAAU;AAAA,MAClD,OAAOA,aAAiB,QAAQA,EAAM,QAAQ;AAAA,MAC9C,SAAS;AAAA,QACP,eAAAD;AAAA,QACA,gBAAgBY,EAAU,kBAAkB;AAAA,MAAA;AAAA,MAE9C,eAAeX;AAAAA,MACf,WAAW,KAAK,IAAA;AAAA,IAAI,CACrB;AAAA,EACH;AAEA,SACE,gBAAAa;AAAA,IAACC,EAAY;AAAA,IAAZ;AAAA,MACC,OAAO;AAAA,QACL,OAAAd;AAAA,QACA,aAAAC;AAAA,QACA,UAAAE;AAAA,QACA,SAAAL;AAAA,QACA,mBAAAI;AAAA,QACA,kBAAkBO;AAAA,QAClB,eAAAV;AAAA,MAAA;AAAA,MAGF,UAAA,gBAAAc;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,mBAAApB;AAAA,UACA,iBAAAc;AAAA,UACA,sBAAAC;AAAA,UACA,eAAAX;AAAA,UAEA,UAAA,gBAAAc,EAACG,GAAA,EAAW,OAAAhB,GAAc,aAAAC,GACvB,UAAAP,EAAA,CACH;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN,GAQasB,IAAa,CAAC,EAAE,UAAAtB,GAAU,OAAAM,GAAO,aAAAC,QAAmC;AAC/E,QAAMgB,IAAaC,EAAA,GACb,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAA4B,EAAQpB,GAAa;AAEvD,2BACGqB,GAAA,EACG,UAAA;AAAA,KAAAtB,KAASC,MACT,gBAAAsB,EAACN,EAAW,OAAX,EAAiB,OAAOE,EAAE,yBAAyB,GAAG,QAAO,SAC3D,UAAA;AAAA,MAAAE,uBACEJ,EAAW,eAAX,EAAyB,OAAOO,EAAgBvB,CAAY,GAAG;AAAA,MAEjE,CAACoB,KAA6BrB,aAAiByB,KAC9C,gBAAAZ,EAACI,EAAW,MAAX,EAAiB,UAAAE,EAAE,qBAAqB,EAAA,CAAE;AAAA,MAE5C,CAACE,KAA6BrB,aAAiB0B,KAC9C,gBAAAb,EAACI,EAAW,MAAX,EAAgB,IAAG,OAAO,UAAAjB,EAAM,OAAA,EAAO,CAAE;AAAA,IAAA,GAE9C;AAAA,IAEDN;AAAA,EAAA,GACH;AAEJ,GAQMiC,IAAoB,CAAC;AAAA,EACzB,iBAAAlB;AAAA,EACA,eAAAJ;AAAA,EACA,eAAAN;AACF,MAA8B;AAC5B,QAAM6B,IAAmBC,EAAO,KAAK,IAAA,CAAK,GACpCC,IAAmBD,EAAOxB,CAAa,GACvC0B,IAAmBF,EAAO9B,CAAa;AAE7C,SAAAiC,EAAU,MAAM;AACd,IAAAF,EAAiB,UAAUzB,GAC3B0B,EAAiB,UAAUhC;AAAA,EAC7B,GAAG,CAACM,GAAeN,CAAa,CAAC,GAEjCiC,EAAU,MACD,MAAM;AACX,UAAMC,IAAW,KAAK,IAAA,IAAQL,EAAiB;AAC/C,IAAAE,EAAiB,SAAS,WAAW;AAAA,MACnC,MAAM;AAAA,MACN,OAAOG;AAAA,MACP,MAAM;AAAA,MACN,MAAMF,EAAiB,UAAU,EAAE,WAAWA,EAAiB,YAAY;AAAA,MAC3E,WAAW,KAAK,IAAA;AAAA,IAAI,CACrB;AAAA,EACH,GACC,CAAA,CAAE,qBAEGtB,GAAA,EAAgB;AAC1B,GAUaM,IAAiB,CAAC;AAAA,EAC7B,UAAArB;AAAA,EACA,mBAAAC,IAAoBC;AAAA,EACpB,iBAAiBC;AAAA,EACjB,sBAAAa;AAAA,EACA,eAAAX;AACF,MAA2B;AACzB,QAAM,EAAE,kBAAkBQ,EAAA,IAAgCC,EAAA,GACpDC,IAAkBZ,KAA6BU,GAC/C,EAAE,eAAAF,EAAA,IAAkBC,EAAA;AAE1B,2BACG4B,GAAA,EACE,UAAA,CAAC,EAAE,OAAOC,QACT,gBAAAtB;AAAA,IAACuB;AAAA,IAAA;AAAA,MACC,mBAAAzC;AAAA,MACA,SAASwC;AAAA,MACT,SAASzB;AAAA,MAET,UAAA,gBAAAG;AAAA,QAACwB;AAAA,QAAA;AAAA,UACC,UACE,gBAAAxB;AAAA,YAACc;AAAA,YAAA;AAAA,cACC,iBAAAlB;AAAA,cACA,eAAAJ;AAAA,cACA,eAAAN;AAAA,YAAA;AAAA,UAAA;AAAA,UAIH,UAAAL;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA,GAGN;AAEJ;"}
@@ -12,6 +12,7 @@ interface BaseContextProps {
12
12
  onEvent: OnEventType<EventType, unknown>;
13
13
  baseSubmitHandler: <T>(formData: T, componentHandler: (payload: T) => Promise<void>) => Promise<void>;
14
14
  LoadingIndicator: LoadingIndicatorContextProps['LoadingIndicator'];
15
+ componentName?: string;
15
16
  }
16
17
  export declare const BaseContext: import('react').Context<BaseContextProps | undefined>;
17
18
  export declare const useBase: () => BaseContextProps;
@@ -1 +1 @@
1
- {"version":3,"file":"useBase.js","sources":["../../../src/components/Base/useBase.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { GustoEmbeddedError } from '@gusto/embedded-api/models/errors/gustoembeddederror'\nimport type { SDKValidationError } from '@gusto/embedded-api/models/errors/sdkvalidationerror'\nimport type { EntityErrorObject } from '@gusto/embedded-api/models/components/entityerrorobject'\nimport { type EventType } from '@/shared/constants'\nimport type { LoadingIndicatorContextProps } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\n\nexport type OnEventType<K, T> = (type: K, data?: T) => void\n\nexport type KnownErrors = GustoEmbeddedError | SDKValidationError\n\ninterface BaseContextProps {\n error: KnownErrors | null\n fieldErrors: Array<EntityErrorObject> | null\n setError: (err: KnownErrors | null) => void\n onEvent: OnEventType<EventType, unknown>\n baseSubmitHandler: <T>(\n formData: T,\n componentHandler: (payload: T) => Promise<void>,\n ) => Promise<void>\n LoadingIndicator: LoadingIndicatorContextProps['LoadingIndicator']\n}\n\nexport const BaseContext = createContext<BaseContextProps | undefined>(undefined)\n\nexport const useBase = () => {\n const context = useContext(BaseContext)\n if (!context) {\n throw new Error('useBase must be used within a BaseProvider')\n }\n return context\n}\n"],"names":["BaseContext","createContext","useBase","context","useContext"],"mappings":";AAuBO,MAAMA,IAAcC,EAA4C,MAAS,GAEnEC,IAAU,MAAM;AAC3B,QAAMC,IAAUC,EAAWJ,CAAW;AACtC,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,4CAA4C;AAE9D,SAAOA;AACT;"}
1
+ {"version":3,"file":"useBase.js","sources":["../../../src/components/Base/useBase.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { GustoEmbeddedError } from '@gusto/embedded-api/models/errors/gustoembeddederror'\nimport type { SDKValidationError } from '@gusto/embedded-api/models/errors/sdkvalidationerror'\nimport type { EntityErrorObject } from '@gusto/embedded-api/models/components/entityerrorobject'\nimport { type EventType } from '@/shared/constants'\nimport type { LoadingIndicatorContextProps } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\n\nexport type OnEventType<K, T> = (type: K, data?: T) => void\n\nexport type KnownErrors = GustoEmbeddedError | SDKValidationError\n\ninterface BaseContextProps {\n error: KnownErrors | null\n fieldErrors: Array<EntityErrorObject> | null\n setError: (err: KnownErrors | null) => void\n onEvent: OnEventType<EventType, unknown>\n baseSubmitHandler: <T>(\n formData: T,\n componentHandler: (payload: T) => Promise<void>,\n ) => Promise<void>\n LoadingIndicator: LoadingIndicatorContextProps['LoadingIndicator']\n componentName?: string\n}\n\nexport const BaseContext = createContext<BaseContextProps | undefined>(undefined)\n\nexport const useBase = () => {\n const context = useContext(BaseContext)\n if (!context) {\n throw new Error('useBase must be used within a BaseProvider')\n }\n return context\n}\n"],"names":["BaseContext","createContext","useBase","context","useContext"],"mappings":";AAwBO,MAAMA,IAAcC,EAA4C,MAAS,GAEnEC,IAAU,MAAM;AAC3B,QAAMC,IAAUC,EAAWJ,CAAW;AACtC,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,4CAA4C;AAE9D,SAAOA;AACT;"}
@@ -1,7 +1,7 @@
1
1
  import { EntityErrorObject } from '@gusto/embedded-api/models/components/entityerrorobject';
2
2
  import { KnownErrors } from './useBase';
3
3
  type SubmitHandler<T> = (data: T) => Promise<void>;
4
- export declare const useBaseSubmit: () => {
4
+ export declare const useBaseSubmit: (componentName?: string) => {
5
5
  baseSubmitHandler: <T>(data: T, componentHandler: SubmitHandler<T>) => Promise<void>;
6
6
  error: KnownErrors | null;
7
7
  fieldErrors: EntityErrorObject[] | null;
@@ -1,46 +1,73 @@
1
- import { useState as i, useCallback as l } from "react";
1
+ import { useState as u, useCallback as c } from "react";
2
2
  import { APIError as p } from "@gusto/embedded-api/models/errors/apierror";
3
- import { GustoEmbeddedError as d } from "@gusto/embedded-api/models/errors/gustoembeddederror";
4
- import { SDKValidationError as b } from "@gusto/embedded-api/models/errors/sdkvalidationerror";
5
- import { UnprocessableEntityErrorObject as c } from "@gusto/embedded-api/models/errors/unprocessableentityerrorobject";
6
- import { useAsyncError as y } from "../../hooks/useAsyncError.js";
7
- import { getFieldErrors as g } from "../../helpers/apiErrorToList.js";
8
- const H = () => {
9
- const [m, s] = i(null), [f, t] = i(null), n = y(), E = l((e) => {
10
- s(e), e || t(null);
11
- }, []), u = (e) => {
12
- if (s(e), e instanceof c && Array.isArray(e.errors)) {
13
- const a = e.errors.flatMap((r) => g(r));
14
- if (a.length > 0)
15
- t(a);
16
- else {
17
- const r = e.errors.filter((o) => o.message).map((o) => ({
18
- errorKey: o.errorKey,
19
- message: o.message ?? "",
20
- category: o.category
21
- }));
22
- r.length > 0 && t(r);
3
+ import { GustoEmbeddedError as g } from "@gusto/embedded-api/models/errors/gustoembeddederror";
4
+ import { SDKValidationError as h } from "@gusto/embedded-api/models/errors/sdkvalidationerror";
5
+ import { UnprocessableEntityErrorObject as b } from "@gusto/embedded-api/models/errors/unprocessableentityerrorobject";
6
+ import { useAsyncError as v } from "../../hooks/useAsyncError.js";
7
+ import { useObservability as w } from "../../contexts/ObservabilityProvider/useObservability.js";
8
+ import { createObservabilityError as S } from "../../contexts/ObservabilityProvider/observabilityUtils.js";
9
+ import { getFieldErrors as A } from "../../helpers/apiErrorToList.js";
10
+ const B = (o) => {
11
+ const [E, i] = u(null), [y, a] = u(null), f = v(), { observability: n } = w(), d = c((t) => {
12
+ i(t), t || a(null);
13
+ }, []), m = c(
14
+ (t) => {
15
+ i(t);
16
+ const e = S(t);
17
+ if (e && n?.onError?.({
18
+ ...e,
19
+ context: {
20
+ ...e.context,
21
+ componentName: o
22
+ }
23
+ }), t instanceof b && Array.isArray(t.errors)) {
24
+ const l = t.errors.flatMap((s) => A(s));
25
+ if (l.length > 0)
26
+ a(l);
27
+ else {
28
+ const s = t.errors.filter((r) => r.message).map((r) => ({
29
+ errorKey: r.errorKey,
30
+ message: r.message ?? "",
31
+ category: r.category
32
+ }));
33
+ s.length > 0 && a(s);
34
+ }
23
35
  }
24
- }
25
- };
36
+ },
37
+ [n, o]
38
+ );
26
39
  return {
27
- baseSubmitHandler: l(
28
- async (e, a) => {
29
- s(null), t(null);
40
+ baseSubmitHandler: c(
41
+ async (t, e) => {
42
+ const l = Date.now();
43
+ i(null), a(null);
44
+ let s = !1;
30
45
  try {
31
- await a(e);
46
+ await e(t), s = !0;
32
47
  } catch (r) {
33
- r instanceof p || r instanceof b || r instanceof c || r instanceof d ? u(r) : n(r);
48
+ r instanceof p || r instanceof h || r instanceof b || r instanceof g ? m(r) : f(r);
49
+ } finally {
50
+ const r = Date.now() - l;
51
+ n?.onMetric?.({
52
+ name: "sdk.form.submit_duration",
53
+ value: r,
54
+ unit: "ms",
55
+ tags: {
56
+ status: s ? "success" : "error",
57
+ ...o && { component: o }
58
+ },
59
+ timestamp: Date.now()
60
+ });
34
61
  }
35
62
  },
36
- [s, n]
63
+ [i, f, n, o, m]
37
64
  ),
38
- error: m,
39
- fieldErrors: f,
40
- setError: E
65
+ error: E,
66
+ fieldErrors: y,
67
+ setError: d
41
68
  };
42
69
  };
43
70
  export {
44
- H as useBaseSubmit
71
+ B as useBaseSubmit
45
72
  };
46
73
  //# sourceMappingURL=useBaseSubmit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useBaseSubmit.js","sources":["../../../src/components/Base/useBaseSubmit.ts"],"sourcesContent":["import { useState, useCallback } from 'react'\nimport type { EntityErrorObject } from '@gusto/embedded-api/models/components/entityerrorobject'\nimport { APIError } from '@gusto/embedded-api/models/errors/apierror'\nimport { GustoEmbeddedError } from '@gusto/embedded-api/models/errors/gustoembeddederror'\nimport { SDKValidationError } from '@gusto/embedded-api/models/errors/sdkvalidationerror'\nimport { UnprocessableEntityErrorObject } from '@gusto/embedded-api/models/errors/unprocessableentityerrorobject'\nimport type { KnownErrors } from './useBase'\nimport { useAsyncError } from '@/hooks/useAsyncError'\nimport { getFieldErrors } from '@/helpers/apiErrorToList'\n\ntype SubmitHandler<T> = (data: T) => Promise<void>\n\nexport const useBaseSubmit = () => {\n const [error, setError] = useState<KnownErrors | null>(null)\n const [fieldErrors, setFieldErrors] = useState<EntityErrorObject[] | null>(null)\n const throwError = useAsyncError()\n\n // Enhanced setError that also clears fieldErrors when error is cleared\n const setErrorWithFieldsClear = useCallback((error: KnownErrors | null) => {\n setError(error)\n if (!error) {\n setFieldErrors(null)\n }\n }, [])\n\n const processError = (error: KnownErrors) => {\n setError(error)\n if (error instanceof UnprocessableEntityErrorObject && Array.isArray(error.errors)) {\n const parsed = error.errors.flatMap(err => getFieldErrors(err))\n if (parsed.length > 0) {\n setFieldErrors(parsed)\n } else {\n const fallbackErrors: EntityErrorObject[] = error.errors\n .filter(err => err.message)\n .map(err => ({\n errorKey: err.errorKey,\n message: err.message ?? '',\n category: err.category,\n }))\n if (fallbackErrors.length > 0) {\n setFieldErrors(fallbackErrors)\n }\n }\n }\n }\n\n const baseSubmitHandler = useCallback(\n async <T>(data: T, componentHandler: SubmitHandler<T>) => {\n setError(null)\n setFieldErrors(null)\n try {\n await componentHandler(data)\n } catch (err) {\n if (\n err instanceof APIError ||\n err instanceof SDKValidationError ||\n err instanceof UnprocessableEntityErrorObject ||\n err instanceof GustoEmbeddedError\n ) {\n processError(err)\n } else throwError(err)\n }\n },\n [setError, throwError],\n )\n\n return {\n baseSubmitHandler,\n error,\n fieldErrors,\n setError: setErrorWithFieldsClear,\n }\n}\n"],"names":["useBaseSubmit","error","setError","useState","fieldErrors","setFieldErrors","throwError","useAsyncError","setErrorWithFieldsClear","useCallback","processError","UnprocessableEntityErrorObject","parsed","err","getFieldErrors","fallbackErrors","data","componentHandler","APIError","SDKValidationError","GustoEmbeddedError"],"mappings":";;;;;;;AAYO,MAAMA,IAAgB,MAAM;AACjC,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAA6B,IAAI,GACrD,CAACC,GAAaC,CAAc,IAAIF,EAAqC,IAAI,GACzEG,IAAaC,EAAA,GAGbC,IAA0BC,EAAY,CAACR,MAA8B;AACzE,IAAAC,EAASD,CAAK,GACTA,KACHI,EAAe,IAAI;AAAA,EAEvB,GAAG,CAAA,CAAE,GAECK,IAAe,CAACT,MAAuB;AAE3C,QADAC,EAASD,CAAK,GACVA,aAAiBU,KAAkC,MAAM,QAAQV,EAAM,MAAM,GAAG;AAClF,YAAMW,IAASX,EAAM,OAAO,QAAQ,CAAAY,MAAOC,EAAeD,CAAG,CAAC;AAC9D,UAAID,EAAO,SAAS;AAClB,QAAAP,EAAeO,CAAM;AAAA,WAChB;AACL,cAAMG,IAAsCd,EAAM,OAC/C,OAAO,OAAOY,EAAI,OAAO,EACzB,IAAI,CAAAA,OAAQ;AAAA,UACX,UAAUA,EAAI;AAAA,UACd,SAASA,EAAI,WAAW;AAAA,UACxB,UAAUA,EAAI;AAAA,QAAA,EACd;AACJ,QAAIE,EAAe,SAAS,KAC1BV,EAAeU,CAAc;AAAA,MAEjC;AAAA,IACF;AAAA,EACF;AAsBA,SAAO;AAAA,IACL,mBArBwBN;AAAA,MACxB,OAAUO,GAASC,MAAuC;AACxD,QAAAf,EAAS,IAAI,GACbG,EAAe,IAAI;AACnB,YAAI;AACF,gBAAMY,EAAiBD,CAAI;AAAA,QAC7B,SAASH,GAAK;AACZ,UACEA,aAAeK,KACfL,aAAeM,KACfN,aAAeF,KACfE,aAAeO,IAEfV,EAAaG,CAAG,MACAA,CAAG;AAAA,QACvB;AAAA,MACF;AAAA,MACA,CAACX,GAAUI,CAAU;AAAA,IAAA;AAAA,IAKrB,OAAAL;AAAA,IACA,aAAAG;AAAA,IACA,UAAUI;AAAA,EAAA;AAEd;"}
1
+ {"version":3,"file":"useBaseSubmit.js","sources":["../../../src/components/Base/useBaseSubmit.ts"],"sourcesContent":["import { useState, useCallback } from 'react'\nimport type { EntityErrorObject } from '@gusto/embedded-api/models/components/entityerrorobject'\nimport { APIError } from '@gusto/embedded-api/models/errors/apierror'\nimport { GustoEmbeddedError } from '@gusto/embedded-api/models/errors/gustoembeddederror'\nimport { SDKValidationError } from '@gusto/embedded-api/models/errors/sdkvalidationerror'\nimport { UnprocessableEntityErrorObject } from '@gusto/embedded-api/models/errors/unprocessableentityerrorobject'\nimport type { KnownErrors } from './useBase'\nimport { useAsyncError } from '@/hooks/useAsyncError'\nimport { useObservability } from '@/contexts/ObservabilityProvider/useObservability'\nimport { createObservabilityError } from '@/contexts/ObservabilityProvider/observabilityUtils'\nimport { getFieldErrors } from '@/helpers/apiErrorToList'\n\ntype SubmitHandler<T> = (data: T) => Promise<void>\n\nexport const useBaseSubmit = (componentName?: string) => {\n const [error, setError] = useState<KnownErrors | null>(null)\n const [fieldErrors, setFieldErrors] = useState<EntityErrorObject[] | null>(null)\n const throwError = useAsyncError()\n const { observability } = useObservability()\n\n // Enhanced setError that also clears fieldErrors when error is cleared\n const setErrorWithFieldsClear = useCallback((error: KnownErrors | null) => {\n setError(error)\n if (!error) {\n setFieldErrors(null)\n }\n }, [])\n\n const processError = useCallback(\n (error: KnownErrors) => {\n setError(error)\n\n // Report error to observability\n const observabilityError = createObservabilityError(error)\n if (observabilityError) {\n observability?.onError?.({\n ...observabilityError,\n context: {\n ...observabilityError.context,\n componentName,\n },\n })\n }\n\n if (error instanceof UnprocessableEntityErrorObject && Array.isArray(error.errors)) {\n const parsed = error.errors.flatMap(err => getFieldErrors(err))\n if (parsed.length > 0) {\n setFieldErrors(parsed)\n } else {\n const fallbackErrors: EntityErrorObject[] = error.errors\n .filter(err => err.message)\n .map(err => ({\n errorKey: err.errorKey,\n message: err.message ?? '',\n category: err.category,\n }))\n if (fallbackErrors.length > 0) {\n setFieldErrors(fallbackErrors)\n }\n }\n }\n },\n [observability, componentName],\n )\n\n const baseSubmitHandler = useCallback(\n async <T>(data: T, componentHandler: SubmitHandler<T>) => {\n const startTime = Date.now()\n setError(null)\n setFieldErrors(null)\n\n let success = false\n\n try {\n await componentHandler(data)\n success = true\n } catch (err) {\n if (\n err instanceof APIError ||\n err instanceof SDKValidationError ||\n err instanceof UnprocessableEntityErrorObject ||\n err instanceof GustoEmbeddedError\n ) {\n processError(err)\n } else throwError(err)\n } finally {\n const duration = Date.now() - startTime\n observability?.onMetric?.({\n name: 'sdk.form.submit_duration',\n value: duration,\n unit: 'ms',\n tags: {\n status: success ? 'success' : 'error',\n ...(componentName && { component: componentName }),\n },\n timestamp: Date.now(),\n })\n }\n },\n [setError, throwError, observability, componentName, processError],\n )\n\n return {\n baseSubmitHandler,\n error,\n fieldErrors,\n setError: setErrorWithFieldsClear,\n }\n}\n"],"names":["useBaseSubmit","componentName","error","setError","useState","fieldErrors","setFieldErrors","throwError","useAsyncError","observability","useObservability","setErrorWithFieldsClear","useCallback","processError","observabilityError","createObservabilityError","UnprocessableEntityErrorObject","parsed","err","getFieldErrors","fallbackErrors","data","componentHandler","startTime","success","APIError","SDKValidationError","GustoEmbeddedError","duration"],"mappings":";;;;;;;;;AAcO,MAAMA,IAAgB,CAACC,MAA2B;AACvD,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAA6B,IAAI,GACrD,CAACC,GAAaC,CAAc,IAAIF,EAAqC,IAAI,GACzEG,IAAaC,EAAA,GACb,EAAE,eAAAC,EAAA,IAAkBC,EAAA,GAGpBC,IAA0BC,EAAY,CAACV,MAA8B;AACzE,IAAAC,EAASD,CAAK,GACTA,KACHI,EAAe,IAAI;AAAA,EAEvB,GAAG,CAAA,CAAE,GAECO,IAAeD;AAAA,IACnB,CAACV,MAAuB;AACtB,MAAAC,EAASD,CAAK;AAGd,YAAMY,IAAqBC,EAAyBb,CAAK;AAWzD,UAVIY,KACFL,GAAe,UAAU;AAAA,QACvB,GAAGK;AAAA,QACH,SAAS;AAAA,UACP,GAAGA,EAAmB;AAAA,UACtB,eAAAb;AAAA,QAAA;AAAA,MACF,CACD,GAGCC,aAAiBc,KAAkC,MAAM,QAAQd,EAAM,MAAM,GAAG;AAClF,cAAMe,IAASf,EAAM,OAAO,QAAQ,CAAAgB,MAAOC,EAAeD,CAAG,CAAC;AAC9D,YAAID,EAAO,SAAS;AAClB,UAAAX,EAAeW,CAAM;AAAA,aAChB;AACL,gBAAMG,IAAsClB,EAAM,OAC/C,OAAO,OAAOgB,EAAI,OAAO,EACzB,IAAI,CAAAA,OAAQ;AAAA,YACX,UAAUA,EAAI;AAAA,YACd,SAASA,EAAI,WAAW;AAAA,YACxB,UAAUA,EAAI;AAAA,UAAA,EACd;AACJ,UAAIE,EAAe,SAAS,KAC1Bd,EAAec,CAAc;AAAA,QAEjC;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAACX,GAAeR,CAAa;AAAA,EAAA;AAwC/B,SAAO;AAAA,IACL,mBAtCwBW;AAAA,MACxB,OAAUS,GAASC,MAAuC;AACxD,cAAMC,IAAY,KAAK,IAAA;AACvB,QAAApB,EAAS,IAAI,GACbG,EAAe,IAAI;AAEnB,YAAIkB,IAAU;AAEd,YAAI;AACF,gBAAMF,EAAiBD,CAAI,GAC3BG,IAAU;AAAA,QACZ,SAASN,GAAK;AACZ,UACEA,aAAeO,KACfP,aAAeQ,KACfR,aAAeF,KACfE,aAAeS,IAEfd,EAAaK,CAAG,MACAA,CAAG;AAAA,QACvB,UAAA;AACE,gBAAMU,IAAW,KAAK,IAAA,IAAQL;AAC9B,UAAAd,GAAe,WAAW;AAAA,YACxB,MAAM;AAAA,YACN,OAAOmB;AAAA,YACP,MAAM;AAAA,YACN,MAAM;AAAA,cACJ,QAAQJ,IAAU,YAAY;AAAA,cAC9B,GAAIvB,KAAiB,EAAE,WAAWA,EAAA;AAAA,YAAc;AAAA,YAElD,WAAW,KAAK,IAAA;AAAA,UAAI,CACrB;AAAA,QACH;AAAA,MACF;AAAA,MACA,CAACE,GAAUI,GAAYE,GAAeR,GAAeY,CAAY;AAAA,IAAA;AAAA,IAKjE,OAAAX;AAAA,IACA,aAAAG;AAAA,IACA,UAAUM;AAAA,EAAA;AAEd;"}
@@ -0,0 +1,5 @@
1
+ import { UseFieldProps } from '../hooks/useField';
2
+ import { MultiSelectComboBoxProps } from '../../UI/MultiSelectComboBox/MultiSelectComboBoxTypes';
3
+ export interface MultiSelectComboBoxFieldProps extends Omit<MultiSelectComboBoxProps, 'name' | 'value' | 'onChange' | 'isInvalid'>, UseFieldProps<string[]> {
4
+ }
5
+ export declare const MultiSelectComboBoxField: React.FC<MultiSelectComboBoxFieldProps>;
@@ -0,0 +1,34 @@
1
+ import { jsx as x } from "react/jsx-runtime";
2
+ import { useField as f } from "../hooks/useField.js";
3
+ import { useComponentContext as d } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
4
+ const h = ({
5
+ rules: o,
6
+ defaultValue: e,
7
+ name: t,
8
+ errorMessage: n,
9
+ isRequired: m,
10
+ onChange: r,
11
+ transform: i,
12
+ description: s,
13
+ onBlur: l,
14
+ inputRef: p,
15
+ ...C
16
+ }) => {
17
+ const c = d(), u = f({
18
+ name: t,
19
+ rules: o,
20
+ defaultValue: e,
21
+ errorMessage: n,
22
+ isRequired: m,
23
+ onChange: r,
24
+ transform: i,
25
+ description: s,
26
+ onBlur: l,
27
+ inputRef: p
28
+ });
29
+ return /* @__PURE__ */ x(c.MultiSelectComboBox, { ...C, ...u });
30
+ };
31
+ export {
32
+ h as MultiSelectComboBoxField
33
+ };
34
+ //# sourceMappingURL=MultiSelectComboBoxField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiSelectComboBoxField.js","sources":["../../../../../src/components/Common/Fields/MultiSelectComboBoxField/MultiSelectComboBoxField.tsx"],"sourcesContent":["import { useField, type UseFieldProps } from '@/components/Common/Fields/hooks/useField'\nimport type { MultiSelectComboBoxProps } from '@/components/Common/UI/MultiSelectComboBox/MultiSelectComboBoxTypes'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport interface MultiSelectComboBoxFieldProps\n extends\n Omit<MultiSelectComboBoxProps, 'name' | 'value' | 'onChange' | 'isInvalid'>,\n UseFieldProps<string[]> {}\n\nexport const MultiSelectComboBoxField: React.FC<MultiSelectComboBoxFieldProps> = ({\n rules,\n defaultValue,\n name,\n errorMessage,\n isRequired,\n onChange: onChangeFromProps,\n transform,\n description,\n onBlur,\n inputRef,\n ...multiSelectProps\n}: MultiSelectComboBoxFieldProps) => {\n const Components = useComponentContext()\n const fieldProps = useField<string[]>({\n name,\n rules,\n defaultValue,\n errorMessage,\n isRequired,\n onChange: onChangeFromProps,\n transform,\n description,\n onBlur,\n inputRef,\n })\n\n return <Components.MultiSelectComboBox {...multiSelectProps} {...fieldProps} />\n}\n"],"names":["MultiSelectComboBoxField","rules","defaultValue","name","errorMessage","isRequired","onChangeFromProps","transform","description","onBlur","inputRef","multiSelectProps","Components","useComponentContext","fieldProps","useField"],"mappings":";;;AASO,MAAMA,IAAoE,CAAC;AAAA,EAChF,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,MAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAUC;AAAA,EACV,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,MAAqC;AACnC,QAAMC,IAAaC,EAAA,GACbC,IAAaC,EAAmB;AAAA,IACpC,MAAAZ;AAAA,IACA,OAAAF;AAAA,IACA,cAAAC;AAAA,IACA,cAAAE;AAAA,IACA,YAAAC;AAAA,IACA,UAAUC;AAAA,IACV,WAAAC;AAAA,IACA,aAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,CACD;AAED,2BAAQE,EAAW,qBAAX,EAAgC,GAAGD,GAAmB,GAAGG,GAAY;AAC/E;"}
@@ -0,0 +1,2 @@
1
+ import "./types/i18next.d.ts"
2
+ export { MultiSelectComboBoxField, type MultiSelectComboBoxFieldProps, } from './MultiSelectComboBoxField';
@@ -1,2 +1,2 @@
1
1
  import { HamburgerMenuProps } from './HamburgerMenuTypes';
2
- export declare function HamburgerMenu({ items, triggerLabel, menuLabel, onClose, isLoading, ...props }: HamburgerMenuProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function HamburgerMenu({ items, triggerLabel, menuLabel, onClose, isLoading, placement, ...props }: HamburgerMenuProps): import("react/jsx-runtime").JSX.Element;
@@ -1,26 +1,27 @@
1
- import { jsxs as f, Fragment as b, jsx as o } from "react/jsx-runtime";
2
- import { useTranslation as g } from "react-i18next";
3
- import { useComponentContext as C } from "../../../contexts/ComponentAdapter/useComponentContext.js";
4
- import x from "../../../assets/icons/hamburger.svg.js";
5
- import { useMenu as M } from "../../../hooks/useMenu.js";
6
- function T({
1
+ import { jsxs as f, Fragment as g, jsx as o } from "react/jsx-runtime";
2
+ import { useTranslation as C } from "react-i18next";
3
+ import { useComponentContext as x } from "../../../contexts/ComponentAdapter/useComponentContext.js";
4
+ import M from "../../../assets/icons/hamburger.svg.js";
5
+ import { useMenu as d } from "../../../hooks/useMenu.js";
6
+ function v({
7
7
  items: t,
8
8
  triggerLabel: s,
9
9
  menuLabel: m,
10
10
  onClose: a,
11
11
  isLoading: l = !1,
12
- ...u
12
+ placement: u = "bottom end",
13
+ ...i
13
14
  }) {
14
- const { t: e } = g("common"), r = C(), { triggerProps: i, menuProps: n } = M(), { ref: p, ...c } = i;
15
- return /* @__PURE__ */ f(b, { children: [
15
+ const { t: e } = C("common"), r = x(), { triggerProps: p, menuProps: n } = d(), { ref: b, ...c } = p;
16
+ return /* @__PURE__ */ f(g, { children: [
16
17
  /* @__PURE__ */ o(
17
18
  r.ButtonIcon,
18
19
  {
19
20
  isLoading: l,
20
21
  "aria-label": s || e("labels.openMenu"),
21
- buttonRef: p,
22
+ buttonRef: b,
22
23
  ...c,
23
- children: /* @__PURE__ */ o(x, {})
24
+ children: /* @__PURE__ */ o(M, {})
24
25
  }
25
26
  ),
26
27
  /* @__PURE__ */ o(
@@ -30,12 +31,13 @@ function T({
30
31
  items: t,
31
32
  "aria-label": m || e("labels.menuLabel"),
32
33
  onClose: a || n.onClose,
33
- ...u
34
+ placement: u,
35
+ ...i
34
36
  }
35
37
  )
36
38
  ] });
37
39
  }
38
40
  export {
39
- T as HamburgerMenu
41
+ v as HamburgerMenu
40
42
  };
41
43
  //# sourceMappingURL=HamburgerMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HamburgerMenu.js","sources":["../../../../src/components/Common/HamburgerMenu/HamburgerMenu.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { type HamburgerMenuProps } from './HamburgerMenuTypes'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport HamburgerIcon from '@/assets/icons/hamburger.svg?react'\nimport { useMenu } from '@/hooks/useMenu'\n\nexport function HamburgerMenu({\n items,\n triggerLabel,\n menuLabel,\n onClose,\n isLoading = false,\n ...props\n}: HamburgerMenuProps) {\n const { t } = useTranslation('common')\n const Components = useComponentContext()\n const { triggerProps, menuProps } = useMenu()\n\n const { ref, ...restTriggerProps } = triggerProps\n\n return (\n <>\n <Components.ButtonIcon\n isLoading={isLoading}\n aria-label={triggerLabel || t('labels.openMenu')}\n buttonRef={ref}\n {...restTriggerProps}\n >\n <HamburgerIcon />\n </Components.ButtonIcon>\n <Components.Menu\n {...menuProps}\n items={items}\n aria-label={menuLabel || t('labels.menuLabel')}\n onClose={onClose || menuProps.onClose}\n {...props}\n />\n </>\n )\n}\n"],"names":["HamburgerMenu","items","triggerLabel","menuLabel","onClose","isLoading","props","t","useTranslation","Components","useComponentContext","triggerProps","menuProps","useMenu","ref","restTriggerProps","jsxs","Fragment","jsx","HamburgerIcon"],"mappings":";;;;;AAMO,SAASA,EAAc;AAAA,EAC5B,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,GAAGC;AACL,GAAuB;AACrB,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,QAAQ,GAC/BC,IAAaC,EAAA,GACb,EAAE,cAAAC,GAAc,WAAAC,EAAA,IAAcC,EAAA,GAE9B,EAAE,KAAAC,GAAK,GAAGC,EAAA,IAAqBJ;AAErC,SACE,gBAAAK,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACT,EAAW;AAAA,MAAX;AAAA,QACC,WAAAJ;AAAA,QACA,cAAYH,KAAgBK,EAAE,iBAAiB;AAAA,QAC/C,WAAWO;AAAA,QACV,GAAGC;AAAA,QAEJ,4BAACI,GAAA,CAAA,CAAc;AAAA,MAAA;AAAA,IAAA;AAAA,IAEjB,gBAAAD;AAAA,MAACT,EAAW;AAAA,MAAX;AAAA,QACE,GAAGG;AAAA,QACJ,OAAAX;AAAA,QACA,cAAYE,KAAaI,EAAE,kBAAkB;AAAA,QAC7C,SAASH,KAAWQ,EAAU;AAAA,QAC7B,GAAGN;AAAA,MAAA;AAAA,IAAA;AAAA,EACN,GACF;AAEJ;"}
1
+ {"version":3,"file":"HamburgerMenu.js","sources":["../../../../src/components/Common/HamburgerMenu/HamburgerMenu.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { type HamburgerMenuProps } from './HamburgerMenuTypes'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport HamburgerIcon from '@/assets/icons/hamburger.svg?react'\nimport { useMenu } from '@/hooks/useMenu'\n\nexport function HamburgerMenu({\n items,\n triggerLabel,\n menuLabel,\n onClose,\n isLoading = false,\n placement = 'bottom end',\n ...props\n}: HamburgerMenuProps) {\n const { t } = useTranslation('common')\n const Components = useComponentContext()\n const { triggerProps, menuProps } = useMenu()\n\n const { ref, ...restTriggerProps } = triggerProps\n\n return (\n <>\n <Components.ButtonIcon\n isLoading={isLoading}\n aria-label={triggerLabel || t('labels.openMenu')}\n buttonRef={ref}\n {...restTriggerProps}\n >\n <HamburgerIcon />\n </Components.ButtonIcon>\n <Components.Menu\n {...menuProps}\n items={items}\n aria-label={menuLabel || t('labels.menuLabel')}\n onClose={onClose || menuProps.onClose}\n placement={placement}\n {...props}\n />\n </>\n )\n}\n"],"names":["HamburgerMenu","items","triggerLabel","menuLabel","onClose","isLoading","placement","props","t","useTranslation","Components","useComponentContext","triggerProps","menuProps","useMenu","ref","restTriggerProps","jsxs","Fragment","jsx","HamburgerIcon"],"mappings":";;;;;AAMO,SAASA,EAAc;AAAA,EAC5B,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,WAAAC,IAAY;AAAA,EACZ,GAAGC;AACL,GAAuB;AACrB,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,QAAQ,GAC/BC,IAAaC,EAAA,GACb,EAAE,cAAAC,GAAc,WAAAC,EAAA,IAAcC,EAAA,GAE9B,EAAE,KAAAC,GAAK,GAAGC,EAAA,IAAqBJ;AAErC,SACE,gBAAAK,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACT,EAAW;AAAA,MAAX;AAAA,QACC,WAAAL;AAAA,QACA,cAAYH,KAAgBM,EAAE,iBAAiB;AAAA,QAC/C,WAAWO;AAAA,QACV,GAAGC;AAAA,QAEJ,4BAACI,GAAA,CAAA,CAAc;AAAA,MAAA;AAAA,IAAA;AAAA,IAEjB,gBAAAD;AAAA,MAACT,EAAW;AAAA,MAAX;AAAA,QACE,GAAGG;AAAA,QACJ,OAAAZ;AAAA,QACA,cAAYE,KAAaK,EAAE,kBAAkB;AAAA,QAC7C,SAASJ,KAAWS,EAAU;AAAA,QAC9B,WAAAP;AAAA,QACC,GAAGC;AAAA,MAAA;AAAA,IAAA;AAAA,EACN,GACF;AAEJ;"}