@gusto/embedded-react-sdk 0.52.1 → 0.53.0

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 (471) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/dist/components/Base/Base.d.ts +2 -2
  3. package/dist/components/Base/Base.js.map +1 -1
  4. package/dist/components/Common/DateRangeFilter/DateRangeFilter.d.ts +1 -2
  5. package/dist/components/Common/DateRangeFilter/DateRangeFilter.js +42 -43
  6. package/dist/components/Common/DateRangeFilter/DateRangeFilter.js.map +1 -1
  7. package/dist/components/Common/Fields/PercentageField/PercentageField.js +44 -42
  8. package/dist/components/Common/Fields/PercentageField/PercentageField.js.map +1 -1
  9. package/dist/components/Common/UI/Box/Box.js +6 -6
  10. package/dist/components/Common/UI/Box/Box.js.map +1 -1
  11. package/dist/components/Common/UI/Box/Box.module.scss.js +8 -8
  12. package/dist/components/Common/UI/Box/BoxTypes.d.ts +1 -1
  13. package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js +1 -1
  14. package/dist/components/Common/UI/CalendarPreview/CalendarPreview.js +16 -14
  15. package/dist/components/Common/UI/CalendarPreview/CalendarPreview.js.map +1 -1
  16. package/dist/components/Common/UI/Dialog/Dialog.js +29 -28
  17. package/dist/components/Common/UI/Dialog/Dialog.js.map +1 -1
  18. package/dist/components/Common/UI/FileInput/FileInput.js +1 -1
  19. package/dist/components/Common/UI/FormBox/FormBox.d.ts +1 -1
  20. package/dist/components/Common/UI/FormBox/FormBox.js +9 -8
  21. package/dist/components/Common/UI/FormBox/FormBox.js.map +1 -1
  22. package/dist/components/Common/UI/FormBox/FormBox.module.scss.js +8 -6
  23. package/dist/components/Common/UI/FormBox/FormBox.module.scss.js.map +1 -1
  24. package/dist/components/Common/UI/FormBox/FormBoxTypes.d.ts +5 -1
  25. package/dist/components/Common/UI/ProgressBar/ProgressBar.js +4 -4
  26. package/dist/components/Company/AssignSignatory/AssignSignatory.js +7 -10
  27. package/dist/components/Company/AssignSignatory/AssignSignatory.js.map +1 -1
  28. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +6 -8
  29. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
  30. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +8 -9
  31. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
  32. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +18 -21
  33. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
  34. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +11 -12
  35. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
  36. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -4
  37. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  38. package/dist/components/Company/AssignSignatory/Head.js +8 -9
  39. package/dist/components/Company/AssignSignatory/Head.js.map +1 -1
  40. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +6 -7
  41. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
  42. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +5 -8
  43. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js.map +1 -1
  44. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +20 -21
  45. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
  46. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -4
  47. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  48. package/dist/components/Company/AssignSignatory/TitleSelect.js +10 -12
  49. package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
  50. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -6
  51. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  52. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +2 -3
  53. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
  54. package/dist/components/Company/BankAccount/BankAccountForm/Form.js +9 -11
  55. package/dist/components/Company/BankAccount/BankAccountForm/Form.js.map +1 -1
  56. package/dist/components/Company/BankAccount/BankAccountForm/Head.js +2 -3
  57. package/dist/components/Company/BankAccount/BankAccountForm/Head.js.map +1 -1
  58. package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -4
  59. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  60. package/dist/components/Company/BankAccount/BankAccountList/Actions.js +6 -7
  61. package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
  62. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +7 -8
  63. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
  64. package/dist/components/Company/BankAccount/BankAccountVerify/Form.js +4 -6
  65. package/dist/components/Company/BankAccount/BankAccountVerify/Form.js.map +1 -1
  66. package/dist/components/Company/BankAccount/stateMachine.d.ts +0 -1
  67. package/dist/components/Company/BankAccount/stateMachine.js +33 -35
  68. package/dist/components/Company/BankAccount/stateMachine.js.map +1 -1
  69. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +5 -6
  70. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
  71. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +11 -14
  72. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  73. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -4
  74. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  75. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +7 -8
  76. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  77. package/dist/components/Company/DocumentSigner/stateMachine.d.ts +0 -1
  78. package/dist/components/Company/DocumentSigner/stateMachine.js +27 -29
  79. package/dist/components/Company/DocumentSigner/stateMachine.js.map +1 -1
  80. package/dist/components/Company/FederalTaxes/Actions.js +6 -7
  81. package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
  82. package/dist/components/Company/FederalTaxes/FederalTaxes.js +7 -10
  83. package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
  84. package/dist/components/Company/FederalTaxes/Form.js +4 -4
  85. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +5 -6
  86. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  87. package/dist/components/Company/Industry/Actions.js +5 -6
  88. package/dist/components/Company/Industry/Actions.js.map +1 -1
  89. package/dist/components/Company/Industry/Context.js +6 -7
  90. package/dist/components/Company/Industry/Context.js.map +1 -1
  91. package/dist/components/Company/Industry/Edit.js +10 -12
  92. package/dist/components/Company/Industry/Edit.js.map +1 -1
  93. package/dist/components/Company/Industry/IndustrySelect.js +6 -8
  94. package/dist/components/Company/Industry/IndustrySelect.js.map +1 -1
  95. package/dist/components/Company/Locations/LocationForm/Actions.js +6 -7
  96. package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
  97. package/dist/components/Company/Locations/LocationForm/Form.js +4 -6
  98. package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
  99. package/dist/components/Company/Locations/LocationForm/LocationForm.js +11 -14
  100. package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
  101. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -4
  102. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  103. package/dist/components/Company/Locations/LocationsList/Actions.js +2 -3
  104. package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
  105. package/dist/components/Company/Locations/LocationsList/LocationsList.js +9 -12
  106. package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
  107. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -4
  108. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  109. package/dist/components/Company/OnboardingOverview/Completed.js +5 -6
  110. package/dist/components/Company/OnboardingOverview/Completed.js.map +1 -1
  111. package/dist/components/Company/OnboardingOverview/MissingRequirements.js +9 -10
  112. package/dist/components/Company/OnboardingOverview/MissingRequirements.js.map +1 -1
  113. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +2 -5
  114. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js.map +1 -1
  115. package/dist/components/Company/OnboardingOverview/context.js +3 -4
  116. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  117. package/dist/components/Company/PaySchedule/PayScheduleForm.js +47 -51
  118. package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
  119. package/dist/components/Company/PaySchedule/payScheduleStateMachine.d.ts +0 -1
  120. package/dist/components/Company/PaySchedule/payScheduleStateMachine.js +26 -28
  121. package/dist/components/Company/PaySchedule/payScheduleStateMachine.js.map +1 -1
  122. package/dist/components/Company/StateTaxes/StateTaxes.d.ts +2 -1
  123. package/dist/components/Company/StateTaxes/StateTaxes.js.map +1 -1
  124. package/dist/components/Company/StateTaxes/StateTaxesComponents.d.ts +2 -0
  125. package/dist/components/Company/StateTaxes/StateTaxesComponents.js +29 -16
  126. package/dist/components/Company/StateTaxes/StateTaxesComponents.js.map +1 -1
  127. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +2 -3
  128. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
  129. package/dist/components/Company/StateTaxes/StateTaxesForm/Form.d.ts +1 -1
  130. package/dist/components/Company/StateTaxes/StateTaxesForm/Form.js +21 -32
  131. package/dist/components/Company/StateTaxes/StateTaxesForm/Form.js.map +1 -1
  132. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js +67 -75
  133. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js.map +1 -1
  134. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -4
  135. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  136. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +6 -7
  137. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
  138. package/dist/components/Company/StateTaxes/StateTaxesList/List.js +62 -47
  139. package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
  140. package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.d.ts +1 -0
  141. package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js +26 -23
  142. package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js.map +1 -1
  143. package/dist/components/Company/StateTaxes/StateTaxesList/context.d.ts +1 -0
  144. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -4
  145. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  146. package/dist/components/Company/StateTaxes/TaxRateManagement/AddRateAction.d.ts +12 -0
  147. package/dist/components/Company/StateTaxes/TaxRateManagement/AddRateAction.js +36 -0
  148. package/dist/components/Company/StateTaxes/TaxRateManagement/AddRateAction.js.map +1 -0
  149. package/dist/components/Company/StateTaxes/TaxRateManagement/AddTaxRateDialog.d.ts +10 -0
  150. package/dist/components/Company/StateTaxes/TaxRateManagement/AddTaxRateDialog.js +110 -0
  151. package/dist/components/Company/StateTaxes/TaxRateManagement/AddTaxRateDialog.js.map +1 -0
  152. package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.d.ts +18 -0
  153. package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.js +55 -0
  154. package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.js.map +1 -0
  155. package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateManagement.d.ts +47 -0
  156. package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateManagement.js +108 -0
  157. package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateManagement.js.map +1 -0
  158. package/dist/components/Company/StateTaxes/TaxRateManagement/context.d.ts +25 -0
  159. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +22 -0
  160. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -0
  161. package/dist/components/Company/StateTaxes/TaxRateManagement/index.d.ts +1 -0
  162. package/dist/components/Company/StateTaxes/TaxRateManagement/toHistoryRows.d.ts +29 -0
  163. package/dist/components/Company/StateTaxes/TaxRateManagement/toHistoryRows.js +34 -0
  164. package/dist/components/Company/StateTaxes/TaxRateManagement/toHistoryRows.js.map +1 -0
  165. package/dist/components/Company/StateTaxes/shared/RequirementFields.d.ts +17 -0
  166. package/dist/components/Company/StateTaxes/shared/RequirementFields.js +24 -0
  167. package/dist/components/Company/StateTaxes/shared/RequirementFields.js.map +1 -0
  168. package/dist/components/Company/StateTaxes/{StateTaxesForm → shared}/applicableIf.d.ts +1 -1
  169. package/dist/components/Company/StateTaxes/shared/applicableIf.js.map +1 -0
  170. package/dist/components/Company/StateTaxes/shared/applicableIf.test.d.ts +1 -0
  171. package/dist/components/Company/StateTaxes/shared/buildRequirementSchema.d.ts +19 -0
  172. package/dist/components/Company/StateTaxes/shared/buildRequirementSchema.js +38 -0
  173. package/dist/components/Company/StateTaxes/shared/buildRequirementSchema.js.map +1 -0
  174. package/dist/components/Company/StateTaxes/shared/requirementValue.d.ts +2 -0
  175. package/dist/components/Company/StateTaxes/shared/requirementValue.js +7 -0
  176. package/dist/components/Company/StateTaxes/shared/requirementValue.js.map +1 -0
  177. package/dist/components/Company/StateTaxes/shared/rhfKey.d.ts +23 -0
  178. package/dist/components/Company/StateTaxes/shared/rhfKey.js +13 -0
  179. package/dist/components/Company/StateTaxes/shared/rhfKey.js.map +1 -0
  180. package/dist/components/Company/StateTaxes/shared/rhfKey.test.d.ts +1 -0
  181. package/dist/components/Company/StateTaxes/stateTaxesStateMachine.d.ts +1 -1
  182. package/dist/components/Company/StateTaxes/stateTaxesStateMachine.js +40 -20
  183. package/dist/components/Company/StateTaxes/stateTaxesStateMachine.js.map +1 -1
  184. package/dist/components/Company/exports/companyOnboarding.d.ts +1 -0
  185. package/dist/components/Company/exports/companyOnboarding.js +12 -10
  186. package/dist/components/Company/exports/companyOnboarding.js.map +1 -1
  187. package/dist/components/Contractor/Address/Address.js +83 -76
  188. package/dist/components/Contractor/Address/Address.js.map +1 -1
  189. package/dist/components/Contractor/ContractorList/management/ManagementContractorList.d.ts +39 -0
  190. package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js +90 -0
  191. package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js.map +1 -0
  192. package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.d.ts +22 -0
  193. package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js +247 -0
  194. package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js.map +1 -0
  195. package/dist/components/Contractor/ContractorList/{index.d.ts → onboarding/ContractorList.d.ts} +3 -3
  196. package/dist/components/Contractor/ContractorList/onboarding/ContractorList.js +51 -0
  197. package/dist/components/Contractor/ContractorList/onboarding/ContractorList.js.map +1 -0
  198. package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.d.ts +16 -0
  199. package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.js +113 -0
  200. package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.js.map +1 -0
  201. package/dist/components/Contractor/ContractorList/shared/index.d.ts +1 -0
  202. package/dist/components/Contractor/ContractorList/shared/useContractorList.d.ts +87 -0
  203. package/dist/components/Contractor/ContractorList/shared/useContractorList.js +110 -0
  204. package/dist/components/Contractor/ContractorList/shared/useContractorList.js.map +1 -0
  205. package/dist/components/Contractor/Documents/DocumentSigner/stateMachine.d.ts +0 -1
  206. package/dist/components/Contractor/Documents/DocumentSigner/stateMachine.js +18 -20
  207. package/dist/components/Contractor/Documents/DocumentSigner/stateMachine.js.map +1 -1
  208. package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.js +2 -3
  209. package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.js.map +1 -1
  210. package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.js +170 -123
  211. package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.js.map +1 -1
  212. package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.module.scss.js +12 -0
  213. package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.module.scss.js.map +1 -0
  214. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/fields.js +40 -39
  215. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/fields.js.map +1 -1
  216. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.js +91 -88
  217. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.js.map +1 -1
  218. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.d.ts +0 -33
  219. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.js +77 -86
  220. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.js.map +1 -1
  221. package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.js +1 -1
  222. package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.js.map +1 -1
  223. package/dist/components/Contractor/OnboardingSummary/OnboardingSummary.js +9 -10
  224. package/dist/components/Contractor/OnboardingSummary/OnboardingSummary.js.map +1 -1
  225. package/dist/components/Contractor/PaymentMethod/PaymentMethod.js +2 -3
  226. package/dist/components/Contractor/PaymentMethod/PaymentMethod.js.map +1 -1
  227. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +162 -251
  228. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
  229. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentFormSchema.d.ts +2 -1
  230. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentFormSchema.js +2 -2
  231. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentFormSchema.js.map +1 -1
  232. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js +45 -44
  233. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js.map +1 -1
  234. package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js +2 -3
  235. package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js.map +1 -1
  236. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +2 -3
  237. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
  238. package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.d.ts +32 -0
  239. package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.js +107 -0
  240. package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.js.map +1 -0
  241. package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.test.d.ts +1 -0
  242. package/dist/components/Contractor/Profile/BusinessSelfOnboardingProfile.js +6 -7
  243. package/dist/components/Contractor/Profile/BusinessSelfOnboardingProfile.js.map +1 -1
  244. package/dist/components/Contractor/Profile/ContractorProfile.js +63 -57
  245. package/dist/components/Contractor/Profile/ContractorProfile.js.map +1 -1
  246. package/dist/components/Contractor/Profile/IndividualSelfOnboardingProfile.js +18 -19
  247. package/dist/components/Contractor/Profile/IndividualSelfOnboardingProfile.js.map +1 -1
  248. package/dist/components/Contractor/Submit/Submit.js +118 -102
  249. package/dist/components/Contractor/Submit/Submit.js.map +1 -1
  250. package/dist/components/Contractor/exports/contractorManagement.d.ts +1 -0
  251. package/dist/components/Contractor/exports/contractorManagement.js +12 -10
  252. package/dist/components/Contractor/exports/contractorManagement.js.map +1 -1
  253. package/dist/components/Contractor/exports/contractorOnboarding.d.ts +1 -1
  254. package/dist/components/Contractor/exports/contractorOnboarding.js +1 -1
  255. package/dist/components/Contractor/shared/useContractorHasSignedW9.d.ts +8 -0
  256. package/dist/components/Contractor/shared/useContractorHasSignedW9.js +10 -0
  257. package/dist/components/Contractor/shared/useContractorHasSignedW9.js.map +1 -0
  258. package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js +32 -33
  259. package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js.map +1 -1
  260. package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js +2 -3
  261. package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js.map +1 -1
  262. package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.js +6 -7
  263. package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.js.map +1 -1
  264. package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.js +14 -15
  265. package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.js.map +1 -1
  266. package/dist/components/Employee/Documents/management/DocumentManager.js +6 -7
  267. package/dist/components/Employee/Documents/management/DocumentManager.js.map +1 -1
  268. package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js +6 -7
  269. package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
  270. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js +4 -5
  271. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js.map +1 -1
  272. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js +10 -13
  273. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  274. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.js +5 -6
  275. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.js.map +1 -1
  276. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.module.scss.js +8 -0
  277. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.module.scss.js.map +1 -0
  278. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +3 -4
  279. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  280. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js +22 -21
  281. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js.map +1 -1
  282. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js +6 -6
  283. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js +5 -4
  284. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js.map +1 -1
  285. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js +3 -4
  286. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js.map +1 -1
  287. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.js +6 -7
  288. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.js.map +1 -1
  289. package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js +11 -12
  290. package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js.map +1 -1
  291. package/dist/components/Employee/FederalTaxes/management/FederalTaxesCard/FederalTaxesCard.js +15 -16
  292. package/dist/components/Employee/FederalTaxes/management/FederalTaxesCard/FederalTaxesCard.js.map +1 -1
  293. package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js +6 -7
  294. package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js.map +1 -1
  295. package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js +11 -12
  296. package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js.map +1 -1
  297. package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js +1 -1
  298. package/dist/components/Employee/HomeAddress/management/HomeAddressCard/HomeAddressCard.js +7 -8
  299. package/dist/components/Employee/HomeAddress/management/HomeAddressCard/HomeAddressCard.js.map +1 -1
  300. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +4 -4
  301. package/dist/components/Employee/PaymentMethod/management/PaymentMethodBankForm.js +29 -23
  302. package/dist/components/Employee/PaymentMethod/management/PaymentMethodBankForm.js.map +1 -1
  303. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js +26 -20
  304. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js.map +1 -1
  305. package/dist/components/Employee/PaymentMethod/onboarding/ListView.js +133 -99
  306. package/dist/components/Employee/PaymentMethod/onboarding/ListView.js.map +1 -1
  307. package/dist/components/Employee/PaymentMethod/onboarding/ListView.module.scss.js +8 -0
  308. package/dist/components/Employee/PaymentMethod/onboarding/ListView.module.scss.js.map +1 -0
  309. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.d.ts +1 -1
  310. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js +19 -20
  311. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js.map +1 -1
  312. package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.js +92 -86
  313. package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.js.map +1 -1
  314. package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js +65 -64
  315. package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js.map +1 -1
  316. package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js +7 -8
  317. package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
  318. package/dist/components/Employee/Profile/management/ProfileEditForm.js +7 -7
  319. package/dist/components/Employee/Profile/onboarding/AdminProfile.js +6 -6
  320. package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js +6 -6
  321. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.d.ts +1 -0
  322. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.js.map +1 -1
  323. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.d.ts +1 -0
  324. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.js.map +1 -1
  325. package/dist/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.js +11 -12
  326. package/dist/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.js.map +1 -1
  327. package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js +9 -10
  328. package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js.map +1 -1
  329. package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js +6 -7
  330. package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js.map +1 -1
  331. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.js +44 -45
  332. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.js.map +1 -1
  333. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js +23 -22
  334. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js.map +1 -1
  335. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js +27 -27
  336. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js.map +1 -1
  337. package/dist/components/Employee/Terminations/TerminationFlow/TerminationFlowComponents.js +9 -10
  338. package/dist/components/Employee/Terminations/TerminationFlow/TerminationFlowComponents.js.map +1 -1
  339. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js +2 -3
  340. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js.map +1 -1
  341. package/dist/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.js +16 -17
  342. package/dist/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.js.map +1 -1
  343. package/dist/components/Flow/Flow.js +1 -1
  344. package/dist/components/Flow/FlowHeader.js +3 -4
  345. package/dist/components/Flow/FlowHeader.js.map +1 -1
  346. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js +8 -9
  347. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js.map +1 -1
  348. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js +7 -8
  349. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js.map +1 -1
  350. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +37 -37
  351. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js.map +1 -1
  352. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js +8 -9
  353. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js.map +1 -1
  354. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +7 -8
  355. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  356. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js +10 -12
  357. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js.map +1 -1
  358. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js +0 -1
  359. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
  360. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js +7 -8
  361. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
  362. package/dist/components/Payroll/PayrollHistory/PayrollHistory.d.ts +3 -3
  363. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js +54 -50
  364. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
  365. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +80 -69
  366. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  367. package/dist/components/Payroll/PayrollList/PayrollList.js +20 -18
  368. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  369. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +138 -136
  370. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  371. package/dist/components/Payroll/PayrollList/PayrollListPresentation.module.scss.js +10 -12
  372. package/dist/components/Payroll/PayrollList/PayrollListPresentation.module.scss.js.map +1 -1
  373. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +4 -4
  374. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js +2 -3
  375. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js.map +1 -1
  376. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js +2 -3
  377. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js.map +1 -1
  378. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js +1 -2
  379. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js.map +1 -1
  380. package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js +2 -3
  381. package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js.map +1 -1
  382. package/dist/components/Payroll/usePreparedPayrollData.js +8 -9
  383. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  384. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js +2 -3
  385. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
  386. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js +4 -4
  387. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.js +4 -4
  388. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js +34 -36
  389. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js.map +1 -1
  390. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js +4 -4
  391. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js +24 -25
  392. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
  393. package/dist/components/index.d.ts +40 -0
  394. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +6 -0
  395. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +29 -28
  396. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  397. package/dist/contexts/LocaleProvider/useLocale.d.ts +1 -9
  398. package/dist/contexts/LocaleProvider/useLocale.js +5 -15
  399. package/dist/contexts/LocaleProvider/useLocale.js.map +1 -1
  400. package/dist/contexts/NonceProvider/index.d.ts +1 -0
  401. package/dist/contexts/NonceProvider/useNonce.d.ts +37 -0
  402. package/dist/contexts/NonceProvider/useNonce.js +7 -0
  403. package/dist/contexts/NonceProvider/useNonce.js.map +1 -0
  404. package/dist/contexts/ThemeProvider/ThemeProvider.js +25 -24
  405. package/dist/contexts/ThemeProvider/ThemeProvider.js.map +1 -1
  406. package/dist/contexts/index.d.ts +1 -0
  407. package/dist/hooks/useDateRangeFilter/useDateRangeFilter.d.ts +12 -7
  408. package/dist/hooks/useDateRangeFilter/useDateRangeFilter.js +25 -21
  409. package/dist/hooks/useDateRangeFilter/useDateRangeFilter.js.map +1 -1
  410. package/dist/i18n/I18n.js +1 -0
  411. package/dist/i18n/I18n.js.map +1 -1
  412. package/dist/i18n/en/Company.StateTaxes.json.js +6 -4
  413. package/dist/i18n/en/Company.StateTaxes.json.js.map +1 -1
  414. package/dist/i18n/en/Contractor.Address.json.js +22 -20
  415. package/dist/i18n/en/Contractor.Address.json.js.map +1 -1
  416. package/dist/i18n/en/Contractor.ContractorList.json.js +14 -12
  417. package/dist/i18n/en/Contractor.ContractorList.json.js.map +1 -1
  418. package/dist/i18n/en/Contractor.ManagementContractorList.json.js +60 -0
  419. package/dist/i18n/en/Contractor.ManagementContractorList.json.js.map +1 -0
  420. package/dist/i18n/en/Contractor.Profile.json.js +13 -11
  421. package/dist/i18n/en/Contractor.Profile.json.js.map +1 -1
  422. package/dist/i18n/en/Contractor.SignatureForm.json.js +5 -5
  423. package/dist/i18n/en/Employee.Management.PaymentMethodBankForm.json.js +18 -16
  424. package/dist/i18n/en/Employee.Management.PaymentMethodBankForm.json.js.map +1 -1
  425. package/dist/i18n/en/Employee.Management.PaymentMethodSplitForm.json.js +2 -2
  426. package/dist/i18n/en/Employee.PaymentMethod.json.js +74 -72
  427. package/dist/i18n/en/Employee.PaymentMethod.json.js.map +1 -1
  428. package/dist/i18n/en/Employee.SplitPaymentsFormBody.json.js +2 -2
  429. package/dist/i18n/en/Payroll.PayrollHistory.json.js +8 -8
  430. package/dist/i18n/en/Payroll.PayrollList.json.js +23 -23
  431. package/dist/i18n/types.d.ts +215 -17
  432. package/dist/index.d.ts +6 -3
  433. package/dist/index.js +15 -13
  434. package/dist/index.js.map +1 -1
  435. package/dist/models/external.d.ts +4 -0
  436. package/dist/partner-hook-utils/form/SDKFormProvider.js +39 -24
  437. package/dist/partner-hook-utils/form/SDKFormProvider.js.map +1 -1
  438. package/dist/partner-hook-utils/form/fields/CheckboxHookField.js +12 -15
  439. package/dist/partner-hook-utils/form/fields/CheckboxHookField.js.map +1 -1
  440. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js +16 -19
  441. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js.map +1 -1
  442. package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js +13 -16
  443. package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js.map +1 -1
  444. package/dist/partner-hook-utils/form/fields/SelectHookField.js +12 -15
  445. package/dist/partner-hook-utils/form/fields/SelectHookField.js.map +1 -1
  446. package/dist/partner-hook-utils/form/fields/SwitchHookField.js +18 -21
  447. package/dist/partner-hook-utils/form/fields/SwitchHookField.js.map +1 -1
  448. package/dist/partner-hook-utils/form/fields/TextInputHookField.js +9 -12
  449. package/dist/partner-hook-utils/form/fields/TextInputHookField.js.map +1 -1
  450. package/dist/partner-hook-utils/form/preprocessors.d.ts +2 -2
  451. package/dist/partner-hook-utils/form/preprocessors.js +8 -7
  452. package/dist/partner-hook-utils/form/preprocessors.js.map +1 -1
  453. package/dist/partner-hook-utils/form/preprocessors.test.d.ts +1 -0
  454. package/dist/shared/constants.d.ts +12 -0
  455. package/dist/shared/constants.js +23 -17
  456. package/dist/shared/constants.js.map +1 -1
  457. package/dist/style.css +1 -1
  458. package/dist/types/Helpers.d.ts +1 -1
  459. package/docs/guides/endpoint-inventory.json +61 -27
  460. package/package.json +19 -17
  461. package/dist/components/Company/StateTaxes/StateTaxesForm/applicableIf.js.map +0 -1
  462. package/dist/components/Company/StateTaxes/StateTaxesForm/rhfKey.d.ts +0 -4
  463. package/dist/components/Company/StateTaxes/StateTaxesForm/rhfKey.js +0 -5
  464. package/dist/components/Company/StateTaxes/StateTaxesForm/rhfKey.js.map +0 -1
  465. package/dist/components/Contractor/ContractorList/index.js +0 -150
  466. package/dist/components/Contractor/ContractorList/index.js.map +0 -1
  467. package/dist/components/Contractor/ContractorList/useContractorList.d.ts +0 -18
  468. package/dist/components/Contractor/ContractorList/useContractorList.js +0 -15
  469. package/dist/components/Contractor/ContractorList/useContractorList.js.map +0 -1
  470. /package/dist/components/Company/StateTaxes/{StateTaxesForm/applicableIf.test.d.ts → TaxRateManagement/toHistoryRows.test.d.ts} +0 -0
  471. /package/dist/components/Company/StateTaxes/{StateTaxesForm → shared}/applicableIf.js +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,57 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.53.0](https://github.com/Gusto/embedded-react-sdk/compare/v0.52.2...v0.53.0) (2026-07-24)
4
+
5
+ ### ⚠ Breaking Changes
6
+
7
+ - **`BoxProps.children` is now optional** ([#2427](https://github.com/Gusto/embedded-react-sdk/issues/2427)). If you have a custom `Box` adapter with `children` typed as required, update it to accept `undefined`:
8
+
9
+ ```diff
10
+ interface BoxProps {
11
+ - children: ReactNode
12
+ + children?: ReactNode
13
+ }
14
+ ```
15
+
16
+ Runtime behavior is unchanged — React renders nothing when `children` is `undefined`.
17
+
18
+ ### Features & Enhancements
19
+
20
+ - `StateTaxes` gained a "Manage tax rates" view showing each state's effective-dated rate history (current, scheduled, and historical), with the ability to schedule a new rate for a future effective date. ([#2462](https://github.com/Gusto/embedded-react-sdk/issues/2462))
21
+ - `GustoProvider` and `GustoProviderCustomUIAdapter` accept a new `nonce` prop for partners with a strict `style-src 'nonce-…'` Content Security Policy, so the SDK's runtime-injected styles no longer require `unsafe-inline`. The nonce is also exposed to custom UI components via a new `useNonce` hook. ([#2191](https://github.com/Gusto/embedded-react-sdk/issues/2191))
22
+ - `PaymentMethod` onboarding now shows the bank account form inline when Direct Deposit is selected, instead of requiring an extra click to reveal it. ([#2420](https://github.com/Gusto/embedded-react-sdk/issues/2420))
23
+ - Added `ContractorManagement.ContractorList`, a tabbed (Active/Onboarding/Dismissed) contractor list for management flows with view, dismiss, rehire, and cancel-dismissal/cancel-rehire actions. ([#2443](https://github.com/Gusto/embedded-react-sdk/issues/2443))
24
+
25
+ ### Fixes
26
+
27
+ - Fixed off-by-one date bugs across `DatePicker` defaults and date serialization, where dates near a timezone boundary could display or submit one day off. ([#2430](https://github.com/Gusto/embedded-react-sdk/issues/2430))
28
+ - Fixed an off-by-one bug in `StateTaxes`' effective date display. ([#2429](https://github.com/Gusto/embedded-react-sdk/issues/2429))
29
+ - The "Continue" button in `PaymentMethod` onboarding is now disabled when Direct Deposit is selected but no bank account has been added yet. ([#2419](https://github.com/Gusto/embedded-react-sdk/issues/2419))
30
+ - Field-level errors returned by the API are now cleared as soon as the user edits the field, instead of persisting until the next submit. ([#2415](https://github.com/Gusto/embedded-react-sdk/issues/2415))
31
+ - `BankAccount`, `DocumentSigner`, and `PaySchedule` no longer get stuck read-only after their "done" event fires — they remain editable, matching `StateTaxes`. ([#2428](https://github.com/Gusto/embedded-react-sdk/issues/2428))
32
+ - `PayrollList` filters now apply and display a sensible default date range instead of an empty one. ([#2441](https://github.com/Gusto/embedded-react-sdk/issues/2441))
33
+
34
+ ### Chores & Maintenance
35
+
36
+ - Bump dev dependencies (`storybook` and its addons, `typescript-eslint`, `@typescript-eslint/rule-tester`, `@microsoft/api-extractor`, `prettier`, `markdownlint-cli2`, `eslint-plugin-storybook`, `axios`)
37
+ - Bump dependencies (`react-i18next`, `react-hook-form`, `js-yaml`, `shell-quote`)
38
+
39
+ ## [0.52.2](https://github.com/Gusto/embedded-react-sdk/compare/v0.52.1...v0.52.2) (2026-07-17)
40
+
41
+ ### Features & Enhancements
42
+
43
+ - The contractor W-9 signature form now shows an on-file SSN/EIN as a masked, disabled field with a "Change SSN"/"Change EIN" button, rather than exposing it as an editable value. ([#2406](https://github.com/Gusto/embedded-react-sdk/issues/2406))
44
+ - While a contractor is mid self-onboarding, the admin's contractor list menu no longer offers "Edit" — only "Cancel self-onboarding" and "Delete" — so the admin must cancel self-onboarding to regain edit access. ([#2407](https://github.com/Gusto/embedded-react-sdk/issues/2407))
45
+ - Admins editing a contractor's profile or address now see a warning when the contractor already has a signed W-9 on file, since the edit will require collecting an updated, signed W-9. ([#2394](https://github.com/Gusto/embedded-react-sdk/issues/2394))
46
+
47
+ ### Fixes
48
+
49
+ - Fix `StateTaxes` getting stuck on the list view after clicking "Continue" — state rows are now still editable afterward instead of becoming permanently inert. ([#2416](https://github.com/Gusto/embedded-react-sdk/issues/2416))
50
+
51
+ ### Chores & Maintenance
52
+
53
+ - Bump dev dependencies (`@typescript-eslint/parser`, `typescript-eslint`, `eslint-plugin-storybook`, `fuse.js`, `tsx`)
54
+
3
55
  ## [0.52.1](https://github.com/Gusto/embedded-react-sdk/compare/v0.52.0...v0.52.1) (2026-07-14)
4
56
 
5
57
  ### Features & Enhancements
@@ -9,7 +9,7 @@ import { SDKError } from '../../types/sdkError';
9
9
  *
10
10
  * @typeParam TResourceKey - The i18n resource namespace key whose dictionary entries can be overridden.
11
11
  * @public
12
- * @page workflows-and-blocks
12
+ * @page blocks
13
13
  */
14
14
  export interface CommonComponentInterface<TResourceKey extends keyof Resources = keyof Resources> {
15
15
  /** Optional child content rendered inside the component's layout. */
@@ -38,7 +38,7 @@ export interface CommonComponentInterface<TResourceKey extends keyof Resources =
38
38
  *
39
39
  * @typeParam TResourceKey - The i18n resource namespace key whose dictionary entries can be overridden.
40
40
  * @public
41
- * @page workflows-and-blocks
41
+ * @page blocks
42
42
  */
43
43
  export interface BaseComponentInterface<TResourceKey extends keyof Resources = keyof Resources> extends CommonComponentInterface<TResourceKey> {
44
44
  /**
@@ -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 type { LoadingIndicatorContextProps } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport { useObservability } from '@/contexts/ObservabilityProvider/useObservability'\nimport { normalizeToSDKError, type SDKError } from '@/types/sdkError'\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 workflows-and-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 workflows-and-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?: ({ children }: { children?: ReactNode }) => JSX.Element\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 >\n <BaseLayout error={error}>{children}</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\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 }: BaseLayoutProps) => {\n const { LoadingIndicator } = useLoadingIndicator()\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: 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\nfunction SuspenseFallback({ componentName }: { componentName?: string }) {\n const { LoadingIndicator } = useLoadingIndicator()\n const { observability } = useObservability()\n return (\n <LoaderWithMetrics\n 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\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}: BaseBoundariesProps) => {\n return (\n <QueryErrorResetBoundary>\n {({ reset: resetQueries }) => (\n <ErrorBoundary\n FallbackComponent={FallbackComponent}\n onReset={resetQueries}\n onError={onErrorBoundaryError}\n >\n <Suspense fallback={<SuspenseFallback componentName={componentName} />}>\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 type { LoadingIndicatorContextProps } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport { useObservability } from '@/contexts/ObservabilityProvider/useObservability'\nimport { normalizeToSDKError, type SDKError } from '@/types/sdkError'\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?: ({ children }: { children?: ReactNode }) => JSX.Element\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 >\n <BaseLayout error={error}>{children}</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\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 }: BaseLayoutProps) => {\n const { LoadingIndicator } = useLoadingIndicator()\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: 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\nfunction SuspenseFallback({ componentName }: { componentName?: string }) {\n const { LoadingIndicator } = useLoadingIndicator()\n const { observability } = useObservability()\n return (\n <LoaderWithMetrics\n 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\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}: BaseBoundariesProps) => {\n return (\n <QueryErrorResetBoundary>\n {({ reset: resetQueries }) => (\n <ErrorBoundary\n FallbackComponent={FallbackComponent}\n onReset={resetQueries}\n onError={onErrorBoundaryError}\n >\n <Suspense fallback={<SuspenseFallback componentName={componentName} />}>\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":";;;;;;;;;;;;;;AA+GO,MAAMA,IAAgB,CAAyD;AAAA,EACpF,UAAAC;AAAA,EACA,mBAAAC,IAAoBC;AAAA,EACpB,iBAAiBC;AAAA,EACjB,SAAAC;AAAA,EACA,eAAAC;AACF,MAAyE;AACvE,QAAM,EAAE,OAAAC,GAAO,mBAAAC,GAAmB,UAAAC,EAAA,IAAaC,EAAcJ,CAAa,GACpE,EAAE,eAAAK,EAAA,IAAkBC,EAAA,GAEpB,EAAE,kBAAkBC,EAAA,IAAgCC,EAAA,GACpDC,IAAkBX,KAA6BS,GAE/CG,IAAuB,CAACC,GAAwBC,MAAyB;AAC7E,IAAAb,EAAQc,EAAgB,OAAOF,CAAa;AAE5C,UAAMG,IAAWC,EAAoBJ,CAAa;AAElD,IAAAN,GAAe,UAAU;AAAA,MACvB,GAAGS;AAAA,MACH,WAAW,KAAK,IAAA;AAAA,MAChB,eAAAd;AAAA,MACA,gBAAgBY,EAAU,kBAAkB;AAAA,IAAA,CAC7C;AAAA,EACH;AAEA,SACE,gBAAAI;AAAA,IAACC,EAAY;AAAA,IAAZ;AAAA,MACC,OAAO;AAAA,QACL,OAAAhB;AAAA,QACA,UAAAE;AAAA,QACA,SAAAJ;AAAA,QACA,mBAAAG;AAAA,QACA,kBAAkBO;AAAA,QAClB,eAAAT;AAAA,MAAA;AAAA,MAGF,UAAA,gBAAAgB;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,mBAAAtB;AAAA,UACA,sBAAAc;AAAA,UACA,eAAAV;AAAA,UAEA,UAAA,gBAAAgB,EAACG,GAAA,EAAW,OAAAlB,GAAe,UAAAN,EAAA,CAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IACtC;AAAA,EAAA;AAGN;AASA,SAASyB,EAAmB,EAAE,OAAAnB,KAA8B;AAC1D,QAAMoB,IAAaC,EAAA,GACb,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAiBxB,EAAM,YAAY,SAAS;AAElD,SACE,gBAAAyB,EAACL,EAAW,OAAX,EAAiB,OAAOE,EAAE,yBAAyB,GAAG,QAAO,SAC3D,UAAA;AAAA,IAAAE,KACC,gBAAAT;AAAA,MAACK,EAAW;AAAA,MAAX;AAAA,QACC,OAAOpB,EAAM,YACV,OAAO,CAAA0B,MAAcA,EAAW,OAAO,EACvC,IAAI,CAAAA,wBACF,QAAA,EAA6B,UAAAA,EAAW,QAAA,GAA9BA,EAAW,KAA2B,CAClD;AAAA,MAAA;AAAA,IAAA;AAAA,IAGN,CAACF,KAAkBxB,EAAM,aAAa,sBACrC,gBAAAe,EAACK,EAAW,MAAX,EAAgB,IAAG,OACjB,UAAApB,EAAM,OACP,OAAOA,EAAM,OAAQ,YACrB,YAAYA,EAAM,OAClB,OAAQA,EAAM,IAA4B,UAAW,aAChDA,EAAM,IAAiC,OAAA,IACxCA,EAAM,QAAA,CACZ;AAAA,IAED,CAACwB,KAAkBxB,EAAM,aAAa,sBACrC,gBAAAe,EAACK,EAAW,MAAX,EAAiB,UAAApB,EAAM,WAAWsB,EAAE,qBAAqB,EAAA,CAAE;AAAA,EAAA,GAEhE;AAEJ;AAEA,SAASK,EAAsB,EAAE,QAAAC,KAAkC;AACjE,QAAMR,IAAaC,EAAA,GACb,EAAE,GAAAC,EAAA,IAAMC,EAAA;AAEd,SACE,gBAAAR,EAACK,EAAW,OAAX,EAAiB,OAAOE,EAAE,kCAAkC,GAAG,QAAO,SACrE,UAAA,gBAAAP;AAAA,IAACK,EAAW;AAAA,IAAX;AAAA,MACC,OAAOQ,EACJ,OAAO,CAAA5B,MAASA,EAAM,WAAWA,EAAM,YAAY,SAAS,CAAC,EAC7D,IAAI,CAACA,GAAO6B,MAAU;AACrB,cAAMC,IAAqB9B,EAAM,YAAY,OAAO,CAAA0B,MAAcA,EAAW,OAAO;AAEpF,eAAII,EAAmB,WAAW,sBACxB,QAAA,EAAkB,UAAA9B,EAAM,WAAWsB,EAAE,qBAAqB,KAAhDO,CAAkD,sBAInE,QAAA,EACE,UAAA;AAAA,UAAA7B,EAAM,WAAWsB,EAAE,qBAAqB;AAAA,UACzC,gBAAAP;AAAA,YAACK,EAAW;AAAA,YAAX;AAAA,cACC,OAAOU,EAAmB,IAAI,CAAAJ,MAC5B,gBAAAX,EAAC,UAA6B,UAAAW,EAAW,WAA9BA,EAAW,KAA2B,CAClD;AAAA,YAAA;AAAA,UAAA;AAAA,QACH,EAAA,GANSG,CAOX;AAAA,MAEJ,CAAC;AAAA,IAAA;AAAA,EAAA,GAEP;AAEJ;AAgBO,MAAMX,IAAa,CAAC,EAAE,UAAAxB,GAAU,OAAAM,GAAO,WAAA+B,QAAiC;AAC7E,QAAM,EAAE,kBAAAC,EAAA,IAAqBzB,EAAA,GAEvBqB,IAAS,MAAM,QAAQ5B,CAAK,IAAIA,IAAQA,IAAQ,CAACA,CAAK,IAAI,CAAA,GAC1DiC,IAAYL,EAAO,SAAS;AAElC,MAAIG,KAAa,CAACE;AAChB,6BAAQD,GAAA,EAAiB;AAG3B,QAAM,CAACE,CAAU,IAAIN;AAErB,2BACGO,GAAA,EACE,UAAA;AAAA,IAAAP,EAAO,SAAS,KAAK,gBAAAb,EAACY,GAAA,EAAsB,QAAAC,GAAgB;AAAA,IAC5DA,EAAO,WAAW,KAAKM,KAAc,gBAAAnB,EAACI,GAAA,EAAmB,OAAOe,GAAY;AAAA,IAC5ExC;AAAA,EAAA,GACH;AAEJ,GAQM0C,IAAoB,CAAC;AAAA,EACzB,iBAAA5B;AAAA,EACA,eAAAJ;AAAA,EACA,eAAAL;AACF,MAA8B;AAC5B,QAAMsC,IAAmBC,EAAO,KAAK,IAAA,CAAK,GACpCC,IAAmBD,EAAOlC,CAAa,GACvCoC,IAAmBF,EAAOvC,CAAa;AAE7C,SAAA0C,EAAU,MAAM;AACd,IAAAF,EAAiB,UAAUnC,GAC3BoC,EAAiB,UAAUzC;AAAA,EAC7B,GAAG,CAACK,GAAeL,CAAa,CAAC,GAEjC0C,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,qBAEGhC,GAAA,EAAgB;AAC1B;AAEA,SAASmC,EAAiB,EAAE,eAAA5C,KAA6C;AACvE,QAAM,EAAE,kBAAAiC,EAAA,IAAqBzB,EAAA,GACvB,EAAE,eAAAH,EAAA,IAAkBC,EAAA;AAC1B,SACE,gBAAAU;AAAA,IAACqB;AAAA,IAAA;AAAA,MACC,iBAAiBJ;AAAA,MACjB,eAAA5B;AAAA,MACA,eAAAL;AAAA,IAAA;AAAA,EAAA;AAGN;AAsBO,MAAMkB,IAAiB,CAAC;AAAA,EAC7B,UAAAvB;AAAA,EACA,mBAAAC,IAAoBC;AAAA,EACpB,sBAAAa;AAAA,EACA,eAAAV;AACF,wBAEK6C,GAAA,EACE,UAAA,CAAC,EAAE,OAAOC,QACT,gBAAA9B;AAAA,EAAC+B;AAAA,EAAA;AAAA,IACC,mBAAAnD;AAAA,IACA,SAASkD;AAAA,IACT,SAASpC;AAAA,IAET,4BAACsC,GAAA,EAAS,4BAAWJ,GAAA,EAAiB,eAAA5C,GAA8B,GACjE,UAAAL,EAAA,CACH;AAAA,EAAA;AAAA,GAGN;"}
@@ -11,10 +11,9 @@ interface DateRangeFilterProps {
11
11
  resetLabel: string;
12
12
  selectDatesLabel: string;
13
13
  triggerLabel: string;
14
- isFilterActive: boolean;
15
14
  maxEndDate?: Date;
16
15
  minStartDate?: Date;
17
16
  }
18
17
  /** @internal */
19
- export declare const DateRangeFilter: ({ startDate, endDate, onStartDateChange, onEndDateChange, onClear, startDateLabel, endDateLabel, applyLabel, cancelLabel, resetLabel, selectDatesLabel, triggerLabel, isFilterActive, maxEndDate, minStartDate, }: DateRangeFilterProps) => import("react").JSX.Element;
18
+ export declare const DateRangeFilter: ({ startDate, endDate, onStartDateChange, onEndDateChange, onClear, startDateLabel, endDateLabel, applyLabel, cancelLabel, resetLabel, selectDatesLabel, triggerLabel, maxEndDate, minStartDate, }: DateRangeFilterProps) => import("react").JSX.Element;
20
19
  export {};
@@ -1,13 +1,13 @@
1
- import { jsxs as a, Fragment as I, jsx as e } from "react/jsx-runtime";
2
- import { useState as R, useRef as M, useCallback as l, useMemo as _ } from "react";
3
- import { Popover as q, Dialog as z } from "react-aria-components";
1
+ import { jsxs as a, Fragment as H, jsx as e } from "react/jsx-runtime";
2
+ import { useState as y, useRef as I, useCallback as l, useMemo as M } from "react";
3
+ import { Popover as _, Dialog as q } from "react-aria-components";
4
4
  import s from "./DateRangeFilter.module.scss.js";
5
- import { Flex as x } from "../Flex/Flex.js";
6
- import { useComponentContext as E } from "../../../contexts/ComponentAdapter/useComponentContext.js";
7
- import { useTheme as G } from "../../../contexts/ThemeProvider/useTheme.js";
5
+ import { Flex as R } from "../Flex/Flex.js";
6
+ import { useComponentContext as z } from "../../../contexts/ComponentAdapter/useComponentContext.js";
7
+ import { useTheme as E } from "../../../contexts/ThemeProvider/useTheme.js";
8
8
  /* empty css */
9
- import J from "../../../assets/icons/filter-funnel.svg.js";
10
- const k = (n) => n.toLocaleDateString("en-US", { month: "short", day: "numeric" }), ne = ({
9
+ import G from "../../../assets/icons/filter-funnel.svg.js";
10
+ const x = (n) => n.toLocaleDateString("en-US", { month: "short", day: "numeric" }), ee = ({
11
11
  startDate: n,
12
12
  endDate: o,
13
13
  onStartDateChange: d,
@@ -16,71 +16,70 @@ const k = (n) => n.toLocaleDateString("en-US", { month: "short", day: "numeric"
16
16
  startDateLabel: c,
17
17
  endDateLabel: m,
18
18
  applyLabel: F,
19
- cancelLabel: $,
20
- resetLabel: b,
21
- selectDatesLabel: N,
22
- triggerLabel: j,
23
- isFilterActive: g,
24
- maxEndDate: B,
25
- minStartDate: O
19
+ cancelLabel: k,
20
+ resetLabel: $,
21
+ selectDatesLabel: b,
22
+ triggerLabel: N,
23
+ maxEndDate: j,
24
+ minStartDate: B
26
25
  }) => {
27
- const { Button: t, DateRangePicker: S } = E(), { container: P } = G(), [C, p] = R(!1), [r, u] = R(null), v = M(null), U = l(() => {
26
+ const { Button: t, DateRangePicker: O } = z(), { container: S } = E(), [g, p] = y(!1), [r, u] = y(null), v = I(null), P = l(() => {
28
27
  u(n && o ? { start: n, end: o } : null), p(!0);
29
- }, [n, o]), y = l(() => {
28
+ }, [n, o]), C = l(() => {
30
29
  p(!1);
31
- }, []), V = l(() => {
30
+ }, []), U = l(() => {
32
31
  r ? (d(r.start), f(r.end)) : h(), p(!1);
33
- }, [r, d, f, h]), T = l(() => {
32
+ }, [r, d, f, h]), V = l(() => {
34
33
  u(null);
35
- }, []), w = l((i) => {
34
+ }, []), A = l((i) => {
36
35
  u(i);
37
- }, []), A = _(() => !g || !n || !o ? null : `${k(n)} – ${k(o)}`, [g, n, o]), H = /* @__PURE__ */ e(
36
+ }, []), T = M(() => !n || !o ? null : `${x(n)} – ${x(o)}`, [n, o]), w = /* @__PURE__ */ e(
38
37
  t,
39
38
  {
40
39
  buttonRef: v,
41
- "aria-label": j,
40
+ "aria-label": N,
42
41
  "aria-haspopup": "dialog",
43
- "aria-expanded": C,
44
- onClick: U,
42
+ "aria-expanded": g,
43
+ onClick: P,
45
44
  variant: "secondary",
46
- icon: /* @__PURE__ */ e(J, {}),
45
+ icon: /* @__PURE__ */ e(G, {}),
47
46
  className: s.triggerButton,
48
- children: A ?? N
47
+ children: T ?? b
49
48
  }
50
49
  );
51
- return /* @__PURE__ */ a(I, { children: [
52
- H,
50
+ return /* @__PURE__ */ a(H, { children: [
51
+ w,
53
52
  /* @__PURE__ */ e(
54
- q,
53
+ _,
55
54
  {
56
- UNSTABLE_portalContainer: P.current ?? void 0,
57
- isOpen: C,
55
+ UNSTABLE_portalContainer: S.current ?? void 0,
56
+ isOpen: g,
58
57
  onOpenChange: (i) => {
59
- i || y();
58
+ i || C();
60
59
  },
61
60
  triggerRef: v,
62
61
  placement: "bottom end",
63
62
  offset: 8,
64
63
  shouldUpdatePosition: !0,
65
- children: /* @__PURE__ */ a(z, { className: s.dialog, "aria-label": `${c} – ${m}`, children: [
64
+ children: /* @__PURE__ */ a(q, { className: s.dialog, "aria-label": `${c} – ${m}`, children: [
66
65
  /* @__PURE__ */ e("div", { className: s.popoverContent, children: /* @__PURE__ */ e(
67
- S,
66
+ O,
68
67
  {
69
68
  label: `${c} – ${m}`,
70
69
  shouldVisuallyHideLabel: !0,
71
70
  value: r,
72
- onChange: w,
71
+ onChange: A,
73
72
  startDateLabel: c,
74
73
  endDateLabel: m,
75
- minValue: O,
76
- maxValue: B
74
+ minValue: B,
75
+ maxValue: j
77
76
  }
78
77
  ) }),
79
- /* @__PURE__ */ e("div", { className: s.popoverFooter, children: /* @__PURE__ */ a(x, { gap: 8, justifyContent: "space-between", children: [
80
- /* @__PURE__ */ e(t, { variant: "tertiary", onClick: T, children: b }),
81
- /* @__PURE__ */ a(x, { gap: 8, justifyContent: "flex-end", children: [
82
- /* @__PURE__ */ e(t, { variant: "secondary", onClick: y, children: $ }),
83
- /* @__PURE__ */ e(t, { variant: "primary", onClick: V, children: F })
78
+ /* @__PURE__ */ e("div", { className: s.popoverFooter, children: /* @__PURE__ */ a(R, { gap: 8, justifyContent: "space-between", children: [
79
+ /* @__PURE__ */ e(t, { variant: "tertiary", onClick: V, children: $ }),
80
+ /* @__PURE__ */ a(R, { gap: 8, justifyContent: "flex-end", children: [
81
+ /* @__PURE__ */ e(t, { variant: "secondary", onClick: C, children: k }),
82
+ /* @__PURE__ */ e(t, { variant: "primary", onClick: U, children: F })
84
83
  ] })
85
84
  ] }) })
86
85
  ] })
@@ -89,6 +88,6 @@ const k = (n) => n.toLocaleDateString("en-US", { month: "short", day: "numeric"
89
88
  ] });
90
89
  };
91
90
  export {
92
- ne as DateRangeFilter
91
+ ee as DateRangeFilter
93
92
  };
94
93
  //# sourceMappingURL=DateRangeFilter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangeFilter.js","sources":["../../../../src/components/Common/DateRangeFilter/DateRangeFilter.tsx"],"sourcesContent":["import { useState, useRef, useCallback, useMemo } from 'react'\nimport { Dialog, Popover } from 'react-aria-components'\nimport styles from './DateRangeFilter.module.scss'\nimport type { DateRange } from '@/components/Common/UI/DateRangePicker/DateRangePickerTypes'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useTheme } from '@/contexts/ThemeProvider'\nimport FilterFunnelIcon from '@/assets/icons/filter-funnel.svg?react'\n\nconst formatFilterDate = (date: Date): string =>\n date.toLocaleDateString('en-US', { month: 'short', day: 'numeric' })\n\ninterface DateRangeFilterProps {\n startDate: Date | null\n endDate: Date | null\n onStartDateChange: (date: Date | null) => void\n onEndDateChange: (date: Date | null) => void\n onClear: () => void\n startDateLabel: string\n endDateLabel: string\n applyLabel: string\n cancelLabel: string\n resetLabel: string\n selectDatesLabel: string\n triggerLabel: string\n isFilterActive: boolean\n maxEndDate?: Date\n minStartDate?: Date\n}\n\n/** @internal */\nexport const DateRangeFilter = ({\n startDate,\n endDate,\n onStartDateChange,\n onEndDateChange,\n onClear,\n startDateLabel,\n endDateLabel,\n applyLabel,\n cancelLabel,\n resetLabel,\n selectDatesLabel,\n triggerLabel,\n isFilterActive,\n maxEndDate,\n minStartDate,\n}: DateRangeFilterProps) => {\n const { Button, DateRangePicker } = useComponentContext()\n const { container } = useTheme()\n\n const [isOpen, setIsOpen] = useState(false)\n const [draftRange, setDraftRange] = useState<DateRange | null>(null)\n const triggerRef = useRef<HTMLButtonElement>(null)\n\n const handleOpen = useCallback(() => {\n const range = startDate && endDate ? { start: startDate, end: endDate } : null\n setDraftRange(range)\n setIsOpen(true)\n }, [startDate, endDate])\n\n const handleClose = useCallback(() => {\n setIsOpen(false)\n }, [])\n\n const handleApply = useCallback(() => {\n if (draftRange) {\n onStartDateChange(draftRange.start)\n onEndDateChange(draftRange.end)\n } else {\n onClear()\n }\n setIsOpen(false)\n }, [draftRange, onStartDateChange, onEndDateChange, onClear])\n\n const handleReset = useCallback(() => {\n setDraftRange(null)\n }, [])\n\n const handleRangeChange = useCallback((range: DateRange | null) => {\n setDraftRange(range)\n }, [])\n\n const filterDateLabel = useMemo(() => {\n if (!isFilterActive || !startDate || !endDate) return null\n return `${formatFilterDate(startDate)} – ${formatFilterDate(endDate)}`\n }, [isFilterActive, startDate, endDate])\n\n const triggerButton = (\n <Button\n buttonRef={triggerRef}\n aria-label={triggerLabel}\n aria-haspopup=\"dialog\"\n aria-expanded={isOpen}\n onClick={handleOpen}\n variant=\"secondary\"\n icon={<FilterFunnelIcon />}\n className={styles.triggerButton}\n >\n {filterDateLabel ?? selectDatesLabel}\n </Button>\n )\n\n return (\n <>\n {triggerButton}\n\n <Popover\n UNSTABLE_portalContainer={container.current ?? undefined}\n isOpen={isOpen}\n onOpenChange={open => {\n if (!open) handleClose()\n }}\n triggerRef={triggerRef}\n placement=\"bottom end\"\n offset={8}\n shouldUpdatePosition\n >\n <Dialog className={styles.dialog} aria-label={`${startDateLabel} – ${endDateLabel}`}>\n <div className={styles.popoverContent}>\n <DateRangePicker\n label={`${startDateLabel} – ${endDateLabel}`}\n shouldVisuallyHideLabel\n value={draftRange}\n onChange={handleRangeChange}\n startDateLabel={startDateLabel}\n endDateLabel={endDateLabel}\n minValue={minStartDate}\n maxValue={maxEndDate}\n />\n </div>\n\n <div className={styles.popoverFooter}>\n <Flex gap={8} justifyContent=\"space-between\">\n <Button variant=\"tertiary\" onClick={handleReset}>\n {resetLabel}\n </Button>\n <Flex gap={8} justifyContent=\"flex-end\">\n <Button variant=\"secondary\" onClick={handleClose}>\n {cancelLabel}\n </Button>\n <Button variant=\"primary\" onClick={handleApply}>\n {applyLabel}\n </Button>\n </Flex>\n </Flex>\n </div>\n </Dialog>\n </Popover>\n </>\n )\n}\n"],"names":["formatFilterDate","date","DateRangeFilter","startDate","endDate","onStartDateChange","onEndDateChange","onClear","startDateLabel","endDateLabel","applyLabel","cancelLabel","resetLabel","selectDatesLabel","triggerLabel","isFilterActive","maxEndDate","minStartDate","Button","DateRangePicker","useComponentContext","container","useTheme","isOpen","setIsOpen","useState","draftRange","setDraftRange","triggerRef","useRef","handleOpen","useCallback","handleClose","handleApply","handleReset","handleRangeChange","range","filterDateLabel","useMemo","triggerButton","jsx","FilterFunnelIcon","styles","jsxs","Fragment","Popover","open","Dialog","Flex"],"mappings":"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"}
1
+ {"version":3,"file":"DateRangeFilter.js","sources":["../../../../src/components/Common/DateRangeFilter/DateRangeFilter.tsx"],"sourcesContent":["import { useState, useRef, useCallback, useMemo } from 'react'\nimport { Dialog, Popover } from 'react-aria-components'\nimport styles from './DateRangeFilter.module.scss'\nimport type { DateRange } from '@/components/Common/UI/DateRangePicker/DateRangePickerTypes'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useTheme } from '@/contexts/ThemeProvider'\nimport FilterFunnelIcon from '@/assets/icons/filter-funnel.svg?react'\n\nconst formatFilterDate = (date: Date): string =>\n date.toLocaleDateString('en-US', { month: 'short', day: 'numeric' })\n\ninterface DateRangeFilterProps {\n startDate: Date | null\n endDate: Date | null\n onStartDateChange: (date: Date | null) => void\n onEndDateChange: (date: Date | null) => void\n onClear: () => void\n startDateLabel: string\n endDateLabel: string\n applyLabel: string\n cancelLabel: string\n resetLabel: string\n selectDatesLabel: string\n triggerLabel: string\n maxEndDate?: Date\n minStartDate?: Date\n}\n\n/** @internal */\nexport const DateRangeFilter = ({\n startDate,\n endDate,\n onStartDateChange,\n onEndDateChange,\n onClear,\n startDateLabel,\n endDateLabel,\n applyLabel,\n cancelLabel,\n resetLabel,\n selectDatesLabel,\n triggerLabel,\n maxEndDate,\n minStartDate,\n}: DateRangeFilterProps) => {\n const { Button, DateRangePicker } = useComponentContext()\n const { container } = useTheme()\n\n const [isOpen, setIsOpen] = useState(false)\n const [draftRange, setDraftRange] = useState<DateRange | null>(null)\n const triggerRef = useRef<HTMLButtonElement>(null)\n\n const handleOpen = useCallback(() => {\n const range = startDate && endDate ? { start: startDate, end: endDate } : null\n setDraftRange(range)\n setIsOpen(true)\n }, [startDate, endDate])\n\n const handleClose = useCallback(() => {\n setIsOpen(false)\n }, [])\n\n const handleApply = useCallback(() => {\n if (draftRange) {\n onStartDateChange(draftRange.start)\n onEndDateChange(draftRange.end)\n } else {\n onClear()\n }\n setIsOpen(false)\n }, [draftRange, onStartDateChange, onEndDateChange, onClear])\n\n const handleReset = useCallback(() => {\n setDraftRange(null)\n }, [])\n\n const handleRangeChange = useCallback((range: DateRange | null) => {\n setDraftRange(range)\n }, [])\n\n const filterDateLabel = useMemo(() => {\n if (!startDate || !endDate) return null\n return `${formatFilterDate(startDate)} – ${formatFilterDate(endDate)}`\n }, [startDate, endDate])\n\n const triggerButton = (\n <Button\n buttonRef={triggerRef}\n aria-label={triggerLabel}\n aria-haspopup=\"dialog\"\n aria-expanded={isOpen}\n onClick={handleOpen}\n variant=\"secondary\"\n icon={<FilterFunnelIcon />}\n className={styles.triggerButton}\n >\n {filterDateLabel ?? selectDatesLabel}\n </Button>\n )\n\n return (\n <>\n {triggerButton}\n\n <Popover\n UNSTABLE_portalContainer={container.current ?? undefined}\n isOpen={isOpen}\n onOpenChange={open => {\n if (!open) handleClose()\n }}\n triggerRef={triggerRef}\n placement=\"bottom end\"\n offset={8}\n shouldUpdatePosition\n >\n <Dialog className={styles.dialog} aria-label={`${startDateLabel} – ${endDateLabel}`}>\n <div className={styles.popoverContent}>\n <DateRangePicker\n label={`${startDateLabel} – ${endDateLabel}`}\n shouldVisuallyHideLabel\n value={draftRange}\n onChange={handleRangeChange}\n startDateLabel={startDateLabel}\n endDateLabel={endDateLabel}\n minValue={minStartDate}\n maxValue={maxEndDate}\n />\n </div>\n\n <div className={styles.popoverFooter}>\n <Flex gap={8} justifyContent=\"space-between\">\n <Button variant=\"tertiary\" onClick={handleReset}>\n {resetLabel}\n </Button>\n <Flex gap={8} justifyContent=\"flex-end\">\n <Button variant=\"secondary\" onClick={handleClose}>\n {cancelLabel}\n </Button>\n <Button variant=\"primary\" onClick={handleApply}>\n {applyLabel}\n </Button>\n </Flex>\n </Flex>\n </div>\n </Dialog>\n </Popover>\n </>\n )\n}\n"],"names":["formatFilterDate","date","DateRangeFilter","startDate","endDate","onStartDateChange","onEndDateChange","onClear","startDateLabel","endDateLabel","applyLabel","cancelLabel","resetLabel","selectDatesLabel","triggerLabel","maxEndDate","minStartDate","Button","DateRangePicker","useComponentContext","container","useTheme","isOpen","setIsOpen","useState","draftRange","setDraftRange","triggerRef","useRef","handleOpen","useCallback","handleClose","handleApply","handleReset","handleRangeChange","range","filterDateLabel","useMemo","triggerButton","jsx","FilterFunnelIcon","styles","jsxs","Fragment","Popover","open","Dialog","Flex"],"mappings":"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"}
@@ -1,58 +1,60 @@
1
- import { jsx as N } from "react/jsx-runtime";
2
- import { useMemo as d } from "react";
3
- import { useTranslation as C } from "react-i18next";
1
+ import { jsx as C } from "react/jsx-runtime";
2
+ import { useTranslation as v } from "react-i18next";
3
+ import { useFormContext as x } from "react-hook-form";
4
4
  import { useField as F } from "../hooks/useField.js";
5
- import { useComponentContext as b } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
6
- import { decimalToPercent as u, percentToDecimal as h } from "../../../../helpers/percentageConversion.js";
7
- function x(t) {
8
- if (!(t == null || typeof t == "boolean"))
9
- return String(t);
5
+ import { useComponentContext as N } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
6
+ import { decimalToPercent as a, percentToDecimal as b } from "../../../../helpers/percentageConversion.js";
7
+ function h(e) {
8
+ if (!(e == null || typeof e == "boolean"))
9
+ return String(e);
10
10
  }
11
- function I({
12
- decimalValue: t,
13
- decimalMin: o,
14
- decimalMax: n,
15
- ...a
11
+ function j({
12
+ decimalValue: e,
13
+ decimalMin: r,
14
+ decimalMax: m,
15
+ ...t
16
16
  }) {
17
- const f = b(), { t: i } = C("common"), p = d(() => {
18
- const r = {};
19
- if (o !== void 0) {
20
- const m = parseFloat(o);
21
- r.min = (s) => {
22
- const e = Number(s);
23
- return isNaN(e) ? !0 : e >= m || i("validations.percentageMin", { min: u(o) });
24
- };
17
+ const c = N(), { t: i } = v("common"), { setError: s, clearErrors: u } = x(), { value: f, onChange: l, ...g } = F({
18
+ ...t,
19
+ defaultValue: h(e)
20
+ }), d = (o) => {
21
+ const n = Number(o);
22
+ if (o === "" || Number.isNaN(n)) {
23
+ u(t.name);
24
+ return;
25
25
  }
26
- if (n !== void 0) {
27
- const m = parseFloat(n);
28
- r.max = (s) => {
29
- const e = Number(s);
30
- return isNaN(e) ? !0 : e <= m || i("validations.percentageMax", { max: u(n) });
31
- };
26
+ if (r !== void 0 && n < parseFloat(r)) {
27
+ s(t.name, {
28
+ type: "min",
29
+ message: i("validations.percentageMin", { min: a(r) })
30
+ });
31
+ return;
32
32
  }
33
- return r;
34
- }, [o, n, i]), { value: c, onChange: l, ...g } = F({
35
- ...a,
36
- defaultValue: x(t),
37
- rules: { validate: p }
38
- }), v = (r) => {
39
- l(h(r));
33
+ if (m !== void 0 && n > parseFloat(m)) {
34
+ s(t.name, {
35
+ type: "max",
36
+ message: i("validations.percentageMax", { max: a(m) })
37
+ });
38
+ return;
39
+ }
40
+ u(t.name);
41
+ }, p = (o) => {
42
+ const n = b(o);
43
+ d(n), l(n);
40
44
  };
41
- return /* @__PURE__ */ N(
42
- f.NumberInput,
45
+ return /* @__PURE__ */ C(
46
+ c.NumberInput,
43
47
  {
44
- ...a,
48
+ ...t,
45
49
  ...g,
46
- value: u(c),
47
- onChange: v,
48
- min: o ? u(o) : void 0,
49
- max: n ? u(n) : void 0,
50
+ value: a(f),
51
+ onChange: p,
50
52
  format: "percent",
51
53
  maximumFractionDigits: 4
52
54
  }
53
55
  );
54
56
  }
55
57
  export {
56
- I as PercentageField
58
+ j as PercentageField
57
59
  };
58
60
  //# sourceMappingURL=PercentageField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PercentageField.js","sources":["../../../../../src/components/Common/Fields/PercentageField/PercentageField.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { NumberInputProps } from '@/components/Common/UI/NumberInput/NumberInputTypes'\nimport { useField } from '@/components/Common/Fields/hooks/useField'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { decimalToPercent, percentToDecimal } from '@/helpers/percentageConversion'\n\n/** @internal */\nexport interface PercentageFieldProps extends Pick<\n NumberInputProps,\n 'isDisabled' | 'className' | 'label' | 'isRequired' | 'description' | 'errorMessage'\n> {\n name: string\n decimalValue?: string | number | boolean | null\n decimalMin?: string\n decimalMax?: string\n}\n\nfunction toDefaultString(value?: string | number | boolean | null): string | undefined {\n if (value === null || value === undefined || typeof value === 'boolean') return undefined\n return String(value)\n}\n\n/** @internal */\nexport function PercentageField({\n decimalValue,\n decimalMin,\n decimalMax,\n ...props\n}: PercentageFieldProps) {\n const Components = useComponentContext()\n const { t } = useTranslation('common')\n\n const validationRules = useMemo(() => {\n const rules: Record<string, (value: string) => string | true> = {}\n\n if (decimalMin !== undefined) {\n const minNum = parseFloat(decimalMin)\n rules.min = (value: string) => {\n const num = Number(value)\n if (isNaN(num)) return true\n return (\n num >= minNum || t('validations.percentageMin', { min: decimalToPercent(decimalMin) })\n )\n }\n }\n\n if (decimalMax !== undefined) {\n const maxNum = parseFloat(decimalMax)\n rules.max = (value: string) => {\n const num = Number(value)\n if (isNaN(num)) return true\n return (\n num <= maxNum || t('validations.percentageMax', { max: decimalToPercent(decimalMax) })\n )\n }\n }\n\n return rules\n }, [decimalMin, decimalMax, t])\n\n const { value, onChange, ...fieldProps } = useField({\n ...props,\n defaultValue: toDefaultString(decimalValue),\n rules: { validate: validationRules },\n })\n\n const handleChange = (percentValue: number) => {\n onChange(percentToDecimal(percentValue))\n }\n\n return (\n <Components.NumberInput\n {...props}\n {...fieldProps}\n value={decimalToPercent(value)}\n onChange={handleChange}\n min={decimalMin ? decimalToPercent(decimalMin) : undefined}\n max={decimalMax ? decimalToPercent(decimalMax) : undefined}\n format=\"percent\"\n maximumFractionDigits={4}\n />\n )\n}\n"],"names":["toDefaultString","value","PercentageField","decimalValue","decimalMin","decimalMax","props","Components","useComponentContext","t","useTranslation","validationRules","useMemo","rules","minNum","num","decimalToPercent","maxNum","onChange","fieldProps","useField","handleChange","percentValue","percentToDecimal","jsx"],"mappings":";;;;;;AAkBA,SAASA,EAAgBC,GAA8D;AACrF,MAAI,EAAAA,KAAU,QAA+B,OAAOA,KAAU;AAC9D,WAAO,OAAOA,CAAK;AACrB;AAGO,SAASC,EAAgB;AAAA,EAC9B,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,GAAGC;AACL,GAAyB;AACvB,QAAMC,IAAaC,EAAA,GACb,EAAE,GAAAC,EAAA,IAAMC,EAAe,QAAQ,GAE/BC,IAAkBC,EAAQ,MAAM;AACpC,UAAMC,IAA0D,CAAA;AAEhE,QAAIT,MAAe,QAAW;AAC5B,YAAMU,IAAS,WAAWV,CAAU;AACpC,MAAAS,EAAM,MAAM,CAACZ,MAAkB;AAC7B,cAAMc,IAAM,OAAOd,CAAK;AACxB,eAAI,MAAMc,CAAG,IAAU,KAErBA,KAAOD,KAAUL,EAAE,6BAA6B,EAAE,KAAKO,EAAiBZ,CAAU,GAAG;AAAA,MAEzF;AAAA,IACF;AAEA,QAAIC,MAAe,QAAW;AAC5B,YAAMY,IAAS,WAAWZ,CAAU;AACpC,MAAAQ,EAAM,MAAM,CAACZ,MAAkB;AAC7B,cAAMc,IAAM,OAAOd,CAAK;AACxB,eAAI,MAAMc,CAAG,IAAU,KAErBA,KAAOE,KAAUR,EAAE,6BAA6B,EAAE,KAAKO,EAAiBX,CAAU,GAAG;AAAA,MAEzF;AAAA,IACF;AAEA,WAAOQ;AAAA,EACT,GAAG,CAACT,GAAYC,GAAYI,CAAC,CAAC,GAExB,EAAE,OAAAR,GAAO,UAAAiB,GAAU,GAAGC,EAAA,IAAeC,EAAS;AAAA,IAClD,GAAGd;AAAA,IACH,cAAcN,EAAgBG,CAAY;AAAA,IAC1C,OAAO,EAAE,UAAUQ,EAAA;AAAA,EAAgB,CACpC,GAEKU,IAAe,CAACC,MAAyB;AAC7C,IAAAJ,EAASK,EAAiBD,CAAY,CAAC;AAAA,EACzC;AAEA,SACE,gBAAAE;AAAA,IAACjB,EAAW;AAAA,IAAX;AAAA,MACE,GAAGD;AAAA,MACH,GAAGa;AAAA,MACJ,OAAOH,EAAiBf,CAAK;AAAA,MAC7B,UAAUoB;AAAA,MACV,KAAKjB,IAAaY,EAAiBZ,CAAU,IAAI;AAAA,MACjD,KAAKC,IAAaW,EAAiBX,CAAU,IAAI;AAAA,MACjD,QAAO;AAAA,MACP,uBAAuB;AAAA,IAAA;AAAA,EAAA;AAG7B;"}
1
+ {"version":3,"file":"PercentageField.js","sources":["../../../../../src/components/Common/Fields/PercentageField/PercentageField.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useFormContext } from 'react-hook-form'\nimport type { NumberInputProps } from '@/components/Common/UI/NumberInput/NumberInputTypes'\nimport { useField } from '@/components/Common/Fields/hooks/useField'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { decimalToPercent, percentToDecimal } from '@/helpers/percentageConversion'\n\n/** @internal */\nexport interface PercentageFieldProps extends Pick<\n NumberInputProps,\n 'isDisabled' | 'className' | 'label' | 'isRequired' | 'description' | 'errorMessage'\n> {\n name: string\n decimalValue?: string | number | boolean | null\n decimalMin?: string\n decimalMax?: string\n}\n\nfunction toDefaultString(value?: string | number | boolean | null): string | undefined {\n if (value === null || value === undefined || typeof value === 'boolean') return undefined\n return String(value)\n}\n\n/** @internal */\nexport function PercentageField({\n decimalValue,\n decimalMin,\n decimalMax,\n ...props\n}: PercentageFieldProps) {\n const Components = useComponentContext()\n const { t } = useTranslation('common')\n const { setError, clearErrors } = useFormContext()\n\n const { value, onChange, ...fieldProps } = useField({\n ...props,\n defaultValue: toDefaultString(decimalValue),\n })\n\n // Deliberately not passed to NumberInput's `min`/`max` props: react-aria's NumberField\n // treats those as hard bounds and silently clamps out-of-range values to them on blur,\n // with no error shown. Validating here instead keeps the value the user actually typed\n // on screen, paired with a real error message.\n const validateRange = (rawDecimalValue: string) => {\n const num = Number(rawDecimalValue)\n if (rawDecimalValue === '' || Number.isNaN(num)) {\n clearErrors(props.name)\n return\n }\n if (decimalMin !== undefined && num < parseFloat(decimalMin)) {\n setError(props.name, {\n type: 'min',\n message: t('validations.percentageMin', { min: decimalToPercent(decimalMin) }),\n })\n return\n }\n if (decimalMax !== undefined && num > parseFloat(decimalMax)) {\n setError(props.name, {\n type: 'max',\n message: t('validations.percentageMax', { max: decimalToPercent(decimalMax) }),\n })\n return\n }\n clearErrors(props.name)\n }\n\n const handleChange = (percentValue: number) => {\n const decimalStr = percentToDecimal(percentValue)\n validateRange(decimalStr)\n onChange(decimalStr)\n }\n\n return (\n <Components.NumberInput\n {...props}\n {...fieldProps}\n value={decimalToPercent(value)}\n onChange={handleChange}\n format=\"percent\"\n maximumFractionDigits={4}\n />\n )\n}\n"],"names":["toDefaultString","value","PercentageField","decimalValue","decimalMin","decimalMax","props","Components","useComponentContext","t","useTranslation","setError","clearErrors","useFormContext","onChange","fieldProps","useField","validateRange","rawDecimalValue","num","decimalToPercent","handleChange","percentValue","decimalStr","percentToDecimal","jsx"],"mappings":";;;;;;AAkBA,SAASA,EAAgBC,GAA8D;AACrF,MAAI,EAAAA,KAAU,QAA+B,OAAOA,KAAU;AAC9D,WAAO,OAAOA,CAAK;AACrB;AAGO,SAASC,EAAgB;AAAA,EAC9B,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,GAAGC;AACL,GAAyB;AACvB,QAAMC,IAAaC,EAAA,GACb,EAAE,GAAAC,EAAA,IAAMC,EAAe,QAAQ,GAC/B,EAAE,UAAAC,GAAU,aAAAC,EAAA,IAAgBC,EAAA,GAE5B,EAAE,OAAAZ,GAAO,UAAAa,GAAU,GAAGC,EAAA,IAAeC,EAAS;AAAA,IAClD,GAAGV;AAAA,IACH,cAAcN,EAAgBG,CAAY;AAAA,EAAA,CAC3C,GAMKc,IAAgB,CAACC,MAA4B;AACjD,UAAMC,IAAM,OAAOD,CAAe;AAClC,QAAIA,MAAoB,MAAM,OAAO,MAAMC,CAAG,GAAG;AAC/C,MAAAP,EAAYN,EAAM,IAAI;AACtB;AAAA,IACF;AACA,QAAIF,MAAe,UAAae,IAAM,WAAWf,CAAU,GAAG;AAC5D,MAAAO,EAASL,EAAM,MAAM;AAAA,QACnB,MAAM;AAAA,QACN,SAASG,EAAE,6BAA6B,EAAE,KAAKW,EAAiBhB,CAAU,GAAG;AAAA,MAAA,CAC9E;AACD;AAAA,IACF;AACA,QAAIC,MAAe,UAAac,IAAM,WAAWd,CAAU,GAAG;AAC5D,MAAAM,EAASL,EAAM,MAAM;AAAA,QACnB,MAAM;AAAA,QACN,SAASG,EAAE,6BAA6B,EAAE,KAAKW,EAAiBf,CAAU,GAAG;AAAA,MAAA,CAC9E;AACD;AAAA,IACF;AACA,IAAAO,EAAYN,EAAM,IAAI;AAAA,EACxB,GAEMe,IAAe,CAACC,MAAyB;AAC7C,UAAMC,IAAaC,EAAiBF,CAAY;AAChD,IAAAL,EAAcM,CAAU,GACxBT,EAASS,CAAU;AAAA,EACrB;AAEA,SACE,gBAAAE;AAAA,IAAClB,EAAW;AAAA,IAAX;AAAA,MACE,GAAGD;AAAA,MACH,GAAGS;AAAA,MACJ,OAAOK,EAAiBnB,CAAK;AAAA,MAC7B,UAAUoB;AAAA,MACV,QAAO;AAAA,MACP,uBAAuB;AAAA,IAAA;AAAA,EAAA;AAG7B;"}
@@ -1,11 +1,11 @@
1
- import { jsxs as c, jsx as t } from "react/jsx-runtime";
2
- import m from "classnames";
1
+ import { jsxs as m, jsx as t } from "react/jsx-runtime";
2
+ import c from "classnames";
3
3
  import s from "./Box.module.scss.js";
4
- function x({ children: o, header: e, footer: a, withPadding: r = !0, className: i }) {
5
- return /* @__PURE__ */ c("div", { className: m(s.root, i), "data-testid": "data-box", children: [
4
+ function x({ children: a, header: e, footer: o, withPadding: r = !0, className: i }) {
5
+ return /* @__PURE__ */ m("div", { className: c(s.root, i), "data-testid": "data-box", children: [
6
6
  e && /* @__PURE__ */ t("div", { className: s.header, children: e }),
7
- /* @__PURE__ */ t("div", { className: r ? s.content : s.contentFlush, children: o }),
8
- a && /* @__PURE__ */ t("div", { className: s.footer, children: a })
7
+ a && /* @__PURE__ */ t("div", { className: r ? s.content : s.contentFlush, children: a }),
8
+ o && /* @__PURE__ */ t("div", { className: s.footer, children: o })
9
9
  ] });
10
10
  }
11
11
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"Box.js","sources":["../../../../../src/components/Common/UI/Box/Box.tsx"],"sourcesContent":["import cn from 'classnames'\nimport styles from './Box.module.scss'\nimport type { BoxProps } from '@/components/Common/UI/Box/BoxTypes'\n\n/**\n * Renders a bordered container that groups related content, with optional header and footer slots.\n *\n * @param props - The {@link BoxProps} controlling the box contents, header, footer, and padding.\n * @returns The rendered box.\n * @internal\n */\nexport function Box({ children, header, footer, withPadding = true, className }: BoxProps) {\n return (\n <div className={cn(styles.root, className)} data-testid=\"data-box\">\n {header && <div className={styles.header}>{header}</div>}\n <div className={withPadding ? styles.content : styles.contentFlush}>{children}</div>\n {footer && <div className={styles.footer}>{footer}</div>}\n </div>\n )\n}\n"],"names":["Box","children","header","footer","withPadding","className","jsxs","cn","styles","jsx"],"mappings":";;;AAWO,SAASA,EAAI,EAAE,UAAAC,GAAU,QAAAC,GAAQ,QAAAC,GAAQ,aAAAC,IAAc,IAAM,WAAAC,KAAuB;AACzF,SACE,gBAAAC,EAAC,SAAI,WAAWC,EAAGC,EAAO,MAAMH,CAAS,GAAG,eAAY,YACrD,UAAA;AAAA,IAAAH,KAAU,gBAAAO,EAAC,OAAA,EAAI,WAAWD,EAAO,QAAS,UAAAN,GAAO;AAAA,IAClD,gBAAAO,EAAC,SAAI,WAAWL,IAAcI,EAAO,UAAUA,EAAO,cAAe,UAAAP,GAAS;AAAA,IAC7EE,KAAU,gBAAAM,EAAC,OAAA,EAAI,WAAWD,EAAO,QAAS,UAAAL,EAAA,CAAO;AAAA,EAAA,GACpD;AAEJ;"}
1
+ {"version":3,"file":"Box.js","sources":["../../../../../src/components/Common/UI/Box/Box.tsx"],"sourcesContent":["import cn from 'classnames'\nimport styles from './Box.module.scss'\nimport type { BoxProps } from '@/components/Common/UI/Box/BoxTypes'\n\n/**\n * Renders a bordered container that groups related content, with optional header and footer slots.\n *\n * @param props - The {@link BoxProps} controlling the box contents, header, footer, and padding.\n * @returns The rendered box.\n * @internal\n */\nexport function Box({ children, header, footer, withPadding = true, className }: BoxProps) {\n return (\n <div className={cn(styles.root, className)} data-testid=\"data-box\">\n {header && <div className={styles.header}>{header}</div>}\n {children && (\n <div className={withPadding ? styles.content : styles.contentFlush}>{children}</div>\n )}\n {footer && <div className={styles.footer}>{footer}</div>}\n </div>\n )\n}\n"],"names":["Box","children","header","footer","withPadding","className","jsxs","cn","styles","jsx"],"mappings":";;;AAWO,SAASA,EAAI,EAAE,UAAAC,GAAU,QAAAC,GAAQ,QAAAC,GAAQ,aAAAC,IAAc,IAAM,WAAAC,KAAuB;AACzF,SACE,gBAAAC,EAAC,SAAI,WAAWC,EAAGC,EAAO,MAAMH,CAAS,GAAG,eAAY,YACrD,UAAA;AAAA,IAAAH,KAAU,gBAAAO,EAAC,OAAA,EAAI,WAAWD,EAAO,QAAS,UAAAN,GAAO;AAAA,IACjDD,uBACE,OAAA,EAAI,WAAWG,IAAcI,EAAO,UAAUA,EAAO,cAAe,UAAAP,EAAA,CAAS;AAAA,IAE/EE,KAAU,gBAAAM,EAAC,OAAA,EAAI,WAAWD,EAAO,QAAS,UAAAL,EAAA,CAAO;AAAA,EAAA,GACpD;AAEJ;"}
@@ -1,16 +1,16 @@
1
- const t = "_root_16abs_1", o = "_header_16abs_12", e = "_content_16abs_17", n = "_contentFlush_16abs_22", s = "_footer_16abs_27", _ = {
2
- root: t,
3
- header: o,
1
+ const o = "_root_1polg_1", t = "_header_1polg_12", e = "_content_1polg_17", n = "_contentFlush_1polg_22", _ = "_footer_1polg_27", c = {
2
+ root: o,
3
+ header: t,
4
4
  content: e,
5
5
  contentFlush: n,
6
- footer: s
6
+ footer: _
7
7
  };
8
8
  export {
9
9
  e as content,
10
10
  n as contentFlush,
11
- _ as default,
12
- s as footer,
13
- o as header,
14
- t as root
11
+ c as default,
12
+ _ as footer,
13
+ t as header,
14
+ o as root
15
15
  };
16
16
  //# sourceMappingURL=Box.module.scss.js.map
@@ -10,7 +10,7 @@ export interface BoxProps {
10
10
  /**
11
11
  * Content rendered inside the box body.
12
12
  */
13
- children: ReactNode;
13
+ children?: ReactNode;
14
14
  /**
15
15
  * Optional content rendered above the body in the box header section.
16
16
  */
@@ -1,9 +1,9 @@
1
1
  import { jsx as l } from "react/jsx-runtime";
2
2
  import h from "classnames";
3
+ import { Flex as u } from "../../Flex/Flex.js";
3
4
  import { BreadcrumbsDefaults as C } from "./BreadcrumbsTypes.js";
4
5
  import i from "./Breadcrumbs.module.scss.js";
5
6
  import { applyMissingDefaults as x } from "../../../../helpers/applyMissingDefaults.js";
6
- import { Flex as u } from "../../Flex/Flex.js";
7
7
  function P(f) {
8
8
  const p = x(f, C), {
9
9
  className: s,