@gusto/embedded-react-sdk 0.46.0 → 0.46.3

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 (284) hide show
  1. package/CHANGELOG.md +117 -0
  2. package/dist/components/Common/DataView/DataCards/DataCards.d.ts +2 -1
  3. package/dist/components/Common/DataView/DataCards/DataCards.js +14 -13
  4. package/dist/components/Common/DataView/DataCards/DataCards.js.map +1 -1
  5. package/dist/components/Common/DataView/DataTable/DataTable.d.ts +2 -1
  6. package/dist/components/Common/DataView/DataTable/DataTable.js +85 -80
  7. package/dist/components/Common/DataView/DataTable/DataTable.js.map +1 -1
  8. package/dist/components/Common/DataView/DataTable/DataTable.module.scss.js +8 -0
  9. package/dist/components/Common/DataView/DataTable/DataTable.module.scss.js.map +1 -0
  10. package/dist/components/Common/DataView/DataView.d.ts +1 -0
  11. package/dist/components/Common/DataView/DataView.js.map +1 -1
  12. package/dist/components/Common/DataView/useDataView.d.ts +10 -1
  13. package/dist/components/Common/DataView/useDataView.js +20 -17
  14. package/dist/components/Common/DataView/useDataView.js.map +1 -1
  15. package/dist/components/Common/DocumentViewer/DocumentViewer.js +10 -10
  16. package/dist/components/Common/DocumentViewer/DocumentViewer.js.map +1 -1
  17. package/dist/components/Common/DocumentViewer/DocumentViewer.module.scss.js +9 -9
  18. package/dist/components/Common/PaginationControl/PaginationControl.js +11 -10
  19. package/dist/components/Common/PaginationControl/PaginationControl.js.map +1 -1
  20. package/dist/components/Common/PaginationControl/PaginationControlTypes.d.ts +1 -1
  21. package/dist/components/Common/UI/DescriptionList/DescriptionList.js +11 -10
  22. package/dist/components/Common/UI/DescriptionList/DescriptionList.js.map +1 -1
  23. package/dist/components/Common/UI/DescriptionList/DescriptionList.module.scss.js +4 -4
  24. package/dist/components/Common/UI/Input/InputTypes.d.ts +1 -1
  25. package/dist/components/Common/UI/Input/InputTypes.js.map +1 -1
  26. package/dist/components/Common/UI/NumberInput/NumberInput.js +51 -48
  27. package/dist/components/Common/UI/NumberInput/NumberInput.js.map +1 -1
  28. package/dist/components/Common/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  29. package/dist/components/Common/VisuallyHidden/VisuallyHidden.js.map +1 -1
  30. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -4
  31. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  32. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -4
  33. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  34. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -6
  35. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  36. package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -4
  37. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  38. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -4
  39. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  40. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/fields.js +4 -4
  41. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +5 -6
  42. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  43. package/dist/components/Company/Industry/Context.js +6 -7
  44. package/dist/components/Company/Industry/Context.js.map +1 -1
  45. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -4
  46. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  47. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -4
  48. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  49. package/dist/components/Company/OnboardingOverview/context.js +3 -4
  50. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  51. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/fields.js +5 -5
  52. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -4
  53. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  54. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -4
  55. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  56. package/dist/components/Contractor/Address/useAddress.js +5 -6
  57. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  58. package/dist/components/Contractor/Profile/useContractorProfile.js +33 -34
  59. package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
  60. package/dist/components/Employee/Compensation/management/AddAnotherJob/AddAnotherJob.d.ts +9 -0
  61. package/dist/components/Employee/Compensation/management/AddAnotherJob/AddAnotherJob.js +76 -0
  62. package/dist/components/Employee/Compensation/management/AddAnotherJob/AddAnotherJob.js.map +1 -0
  63. package/dist/components/Employee/Compensation/management/AddAnotherJob/AddAnotherJob.module.scss.js +8 -0
  64. package/dist/components/Employee/Compensation/management/AddAnotherJob/AddAnotherJob.module.scss.js.map +1 -0
  65. package/dist/components/Employee/Compensation/management/EditCompensation/EditCompensation.js +60 -202
  66. package/dist/components/Employee/Compensation/management/EditCompensation/EditCompensation.js.map +1 -1
  67. package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.d.ts +25 -0
  68. package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.js +79 -0
  69. package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.js.map +1 -0
  70. package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.module.scss.js +8 -0
  71. package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.module.scss.js.map +1 -0
  72. package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.d.ts +18 -0
  73. package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js +171 -0
  74. package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js.map +1 -0
  75. package/dist/components/Employee/Compensation/management/index.d.ts +3 -0
  76. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.d.ts +6 -1
  77. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.js +67 -209
  78. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.js.map +1 -1
  79. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.js +36 -36
  80. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.js.map +1 -1
  81. package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.d.ts +18 -0
  82. package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js +169 -0
  83. package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js.map +1 -0
  84. package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.d.ts +16 -0
  85. package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.js +36 -30
  86. package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.js.map +1 -1
  87. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.d.ts +1 -1
  88. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.js +4 -4
  89. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.js.map +1 -1
  90. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js +213 -191
  91. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js.map +1 -1
  92. package/dist/components/Employee/Compensation/shared/useJobForm/fields.js +6 -6
  93. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.d.ts +6 -5
  94. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js +162 -131
  95. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js.map +1 -1
  96. package/dist/components/Employee/Dashboard/BasicDetailsView.js +74 -88
  97. package/dist/components/Employee/Dashboard/BasicDetailsView.js.map +1 -1
  98. package/dist/components/Employee/Dashboard/Dashboard.js +86 -72
  99. package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
  100. package/dist/components/Employee/Dashboard/DashboardComponents.d.ts +3 -3
  101. package/dist/components/Employee/Dashboard/DashboardComponents.js +138 -101
  102. package/dist/components/Employee/Dashboard/DashboardComponents.js.map +1 -1
  103. package/dist/components/Employee/Dashboard/DocumentsView.js +17 -10
  104. package/dist/components/Employee/Dashboard/DocumentsView.js.map +1 -1
  105. package/dist/components/Employee/Dashboard/JobAndPayView.js +359 -313
  106. package/dist/components/Employee/Dashboard/JobAndPayView.js.map +1 -1
  107. package/dist/components/Employee/Dashboard/JobAndPayView.module.scss.js +5 -3
  108. package/dist/components/Employee/Dashboard/JobAndPayView.module.scss.js.map +1 -1
  109. package/dist/components/Employee/Dashboard/TaxesView.js +114 -101
  110. package/dist/components/Employee/Dashboard/TaxesView.js.map +1 -1
  111. package/dist/components/Employee/Dashboard/dashboardStateMachine.js +147 -148
  112. package/dist/components/Employee/Dashboard/dashboardStateMachine.js.map +1 -1
  113. package/dist/components/Employee/Dashboard/getPendingCompensationChanges.d.ts +6 -0
  114. package/dist/components/Employee/Dashboard/getPendingCompensationChanges.js +37 -36
  115. package/dist/components/Employee/Dashboard/getPendingCompensationChanges.js.map +1 -1
  116. package/dist/components/Employee/Dashboard/hooks/useEmployeeCompensation.d.ts +2 -2
  117. package/dist/components/Employee/Dashboard/hooks/useEmployeeCompensation.js +34 -35
  118. package/dist/components/Employee/Dashboard/hooks/useEmployeeCompensation.js.map +1 -1
  119. package/dist/components/Employee/Deductions/DeductionsForm/StandardDeductionForm.js +57 -57
  120. package/dist/components/Employee/Deductions/DeductionsForm/StandardDeductionForm.js.map +1 -1
  121. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.d.ts +14 -5
  122. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.js +55 -36
  123. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.js.map +1 -1
  124. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.js +8 -8
  125. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.js +18 -18
  126. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.js.map +1 -1
  127. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js +4 -4
  128. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.d.ts +3 -3
  129. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.js.map +1 -1
  130. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +3 -4
  131. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  132. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/fields.js +1 -1
  133. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.js +37 -40
  134. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.js.map +1 -1
  135. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.d.ts +1 -2
  136. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js +64 -71
  137. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js.map +1 -1
  138. package/dist/components/Employee/EmployeeListFlow/EmployeeListFlow.d.ts +2 -0
  139. package/dist/components/Employee/EmployeeListFlow/EmployeeListFlow.js +25 -0
  140. package/dist/components/Employee/EmployeeListFlow/EmployeeListFlow.js.map +1 -0
  141. package/dist/components/Employee/EmployeeListFlow/EmployeeListFlowComponents.d.ts +13 -0
  142. package/dist/components/Employee/EmployeeListFlow/EmployeeListFlowComponents.js +37 -0
  143. package/dist/components/Employee/EmployeeListFlow/EmployeeListFlowComponents.js.map +1 -0
  144. package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.d.ts +6 -0
  145. package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js +69 -0
  146. package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js.map +1 -0
  147. package/dist/components/Employee/EmployeeListFlow/index.d.ts +3 -0
  148. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/fields.js +4 -4
  149. package/dist/components/Employee/HomeAddress/management/HomeAddress.js +15 -12
  150. package/dist/components/Employee/HomeAddress/management/HomeAddress.js.map +1 -1
  151. package/dist/components/Employee/HomeAddress/management/HomeAddressView.d.ts +2 -1
  152. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js +170 -157
  153. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js.map +1 -1
  154. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js +56 -55
  155. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js.map +1 -1
  156. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js +20 -20
  157. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js.map +1 -1
  158. package/dist/components/Employee/PaymentMethod/shared/useBankForm/fields.js +1 -1
  159. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.d.ts +1 -1
  160. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js +4 -4
  161. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js.map +1 -1
  162. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/fields.js +8 -8
  163. package/dist/components/Employee/Profile/shared/useHomeAddressForm/fields.js +5 -5
  164. package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.d.ts +0 -1
  165. package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.js +11 -12
  166. package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.js.map +1 -1
  167. package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.test.d.ts +1 -0
  168. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.d.ts +6 -1
  169. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.js +95 -94
  170. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.js.map +1 -1
  171. package/dist/components/Employee/Profile/shared/useWorkAddressForm/fields.js +4 -4
  172. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.d.ts +6 -1
  173. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js +87 -86
  174. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js.map +1 -1
  175. package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.js +18 -18
  176. package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.js.map +1 -1
  177. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldComponents.js +8 -8
  178. package/dist/components/Employee/Taxes/useTaxes.js +3 -4
  179. package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
  180. package/dist/components/Employee/WorkAddress/management/WorkAddress.js +14 -11
  181. package/dist/components/Employee/WorkAddress/management/WorkAddress.js.map +1 -1
  182. package/dist/components/Employee/WorkAddress/management/WorkAddressView.d.ts +2 -1
  183. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js +96 -89
  184. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js.map +1 -1
  185. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js +61 -60
  186. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js.map +1 -1
  187. package/dist/components/Employee/exports/employeeManagement.d.ts +2 -0
  188. package/dist/components/Employee/exports/employeeManagement.js +18 -16
  189. package/dist/components/Employee/exports/employeeManagement.js.map +1 -1
  190. package/dist/components/Employee/index.d.ts +2 -0
  191. package/dist/components/Employee/index.js +32 -30
  192. package/dist/components/Employee/index.js.map +1 -1
  193. package/dist/components/Flow/FlowHeader.js +34 -31
  194. package/dist/components/Flow/FlowHeader.js.map +1 -1
  195. package/dist/components/Flow/useFlow.d.ts +12 -0
  196. package/dist/components/Flow/useFlow.js.map +1 -1
  197. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +2 -3
  198. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  199. package/dist/components/Payroll/usePreparedPayrollData.js +2 -3
  200. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  201. package/dist/components/TimeOff/PolicyList/PolicyList.js +92 -69
  202. package/dist/components/TimeOff/PolicyList/PolicyList.js.map +1 -1
  203. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js +23 -23
  204. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js.map +1 -1
  205. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.d.ts +1 -1
  206. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js.map +1 -1
  207. package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.js +73 -56
  208. package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.js.map +1 -1
  209. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js +58 -58
  210. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js.map +1 -1
  211. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.d.ts +1 -1
  212. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js +91 -87
  213. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js.map +1 -1
  214. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormTypes.d.ts +2 -0
  215. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js +91 -125
  216. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js.map +1 -1
  217. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.d.ts +1 -1
  218. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js +60 -91
  219. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js.map +1 -1
  220. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.module.scss.js +4 -4
  221. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentationTypes.d.ts +0 -16
  222. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js +139 -225
  223. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js.map +1 -1
  224. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.d.ts +7 -3
  225. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js +78 -54
  226. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js.map +1 -1
  227. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.test.d.ts +1 -0
  228. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.js +12 -11
  229. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.js.map +1 -1
  230. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js +177 -147
  231. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js.map +1 -1
  232. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js +34 -34
  233. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js.map +1 -1
  234. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.d.ts +1 -1
  235. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +38 -36
  236. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
  237. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTableTypes.d.ts +2 -0
  238. package/dist/helpers/breadcrumbHelpers.d.ts +1 -1
  239. package/dist/helpers/breadcrumbHelpers.js.map +1 -1
  240. package/dist/helpers/federalEin.d.ts +1 -0
  241. package/dist/helpers/federalEin.js.map +1 -1
  242. package/dist/helpers/mask.d.ts +8 -4
  243. package/dist/helpers/mask.js.map +1 -1
  244. package/dist/helpers/rem.d.ts +2 -1
  245. package/dist/helpers/rem.js.map +1 -1
  246. package/dist/hooks/useAsyncError.d.ts +1 -0
  247. package/dist/hooks/useAsyncError.js.map +1 -1
  248. package/dist/hooks/useForkRef/useForkRef.d.ts +1 -0
  249. package/dist/hooks/useForkRef/useForkRef.js.map +1 -1
  250. package/dist/i18n/I18n.d.ts +9 -1
  251. package/dist/i18n/I18n.js.map +1 -1
  252. package/dist/i18n/en/Company.TimeOff.EmployeeTable.json.js +14 -14
  253. package/dist/i18n/en/Company.TimeOff.SelectEmployees.json.js +16 -22
  254. package/dist/i18n/en/Company.TimeOff.SelectEmployees.json.js.map +1 -1
  255. package/dist/i18n/en/Company.TimeOff.TimeOffPolicies.json.js +17 -15
  256. package/dist/i18n/en/Company.TimeOff.TimeOffPolicies.json.js.map +1 -1
  257. package/dist/i18n/en/Company.TimeOff.TimeOffPolicyDetails.json.js +9 -9
  258. package/dist/i18n/en/Employee.Compensation.json.js +66 -58
  259. package/dist/i18n/en/Employee.Compensation.json.js.map +1 -1
  260. package/dist/i18n/en/Employee.Dashboard.json.js +28 -24
  261. package/dist/i18n/en/Employee.Dashboard.json.js.map +1 -1
  262. package/dist/i18n/en/Employee.HomeAddress.Management.json.js +12 -10
  263. package/dist/i18n/en/Employee.HomeAddress.Management.json.js.map +1 -1
  264. package/dist/i18n/en/Employee.ManagementEmployeeList.json.js +32 -30
  265. package/dist/i18n/en/Employee.ManagementEmployeeList.json.js.map +1 -1
  266. package/dist/i18n/en/Employee.PaymentMethod.json.js +25 -25
  267. package/dist/i18n/en/Employee.StateTaxes.json.js +12 -10
  268. package/dist/i18n/en/Employee.StateTaxes.json.js.map +1 -1
  269. package/dist/i18n/en/Employee.WorkAddress.Management.json.js +16 -14
  270. package/dist/i18n/en/Employee.WorkAddress.Management.json.js.map +1 -1
  271. package/dist/i18n/en/common.json.d.ts +14 -0
  272. package/dist/partner-hook-utils/form/fields/DatePickerHookField.js +33 -32
  273. package/dist/partner-hook-utils/form/fields/DatePickerHookField.js.map +1 -1
  274. package/dist/partner-hook-utils/types.d.ts +4 -0
  275. package/dist/shared/constants.d.ts +2 -0
  276. package/dist/shared/constants.js +13 -12
  277. package/dist/shared/constants.js.map +1 -1
  278. package/dist/style.css +1 -1
  279. package/dist/types/hooks.d.ts +1 -1
  280. package/dist/types/i18next.d.ts +30 -29
  281. package/dist/types/observability.d.ts +1 -1
  282. package/docs/reference/endpoint-inventory.json +24 -8
  283. package/package.json +30 -27
  284. package/dist/components/Employee/Dashboard/CompensationCard.d.ts +0 -13
@@ -1,48 +1,48 @@
1
- import { jsx as o, jsxs as w } from "react/jsx-runtime";
1
+ import { jsx as o, jsxs as L } from "react/jsx-runtime";
2
2
  import { useMemo as P } from "react";
3
3
  import { useTranslation as O } from "react-i18next";
4
- import p from "./TimeOffPolicyDetail.module.scss.js";
5
- import { useComponentContext as M } from "../../../contexts/ComponentAdapter/useComponentContext.js";
6
- import { useI18n as b } from "../../../i18n/I18n.js";
7
- import { PolicyDetailLayout as A } from "../shared/PolicyDetailLayout/PolicyDetailLayout.js";
8
- const k = "details";
9
- function j({
4
+ import T from "./TimeOffPolicyDetail.module.scss.js";
5
+ import { useComponentContext as W } from "../../../contexts/ComponentAdapter/useComponentContext.js";
6
+ import { useI18n as p } from "../../../i18n/I18n.js";
7
+ import { PolicyDetailLayout as w } from "../shared/PolicyDetailLayout/PolicyDetailLayout.js";
8
+ const A = "details";
9
+ function U({
10
10
  title: a,
11
11
  subtitle: e,
12
12
  onBack: c,
13
13
  backLabel: r,
14
14
  actions: u,
15
15
  policyDetails: i,
16
- policySettings: s,
17
- onChangeSettings: m,
16
+ policySettings: m,
17
+ onChangeSettings: s,
18
18
  selectedTabId: d,
19
- onTabChange: x,
19
+ onTabChange: H,
20
20
  employees: n,
21
21
  onAddEmployee: l,
22
22
  removeDialog: f,
23
23
  successAlert: t,
24
- onDismissAlert: C
24
+ onDismissAlert: M
25
25
  }) {
26
- b("Company.TimeOff.TimeOffPolicyDetails");
27
- const { t: h } = O("Company.TimeOff.TimeOffPolicyDetails"), { Text: H } = M(), T = i.accrualMethod === "unlimited", v = P(
28
- () => T ? [] : [
26
+ p("Company.TimeOff.TimeOffPolicyDetails");
27
+ const { t: h } = O("Company.TimeOff.TimeOffPolicyDetails"), x = i.accrualMethod === "unlimited", b = P(
28
+ () => x ? [] : [
29
29
  {
30
30
  key: "balance",
31
31
  title: h("employeeTable.balance"),
32
- render: (W) => /* @__PURE__ */ o(H, { as: "span", children: W.balance ?? "-" })
32
+ render: (v) => v.balance ?? "-"
33
33
  }
34
34
  ],
35
- [h, T, H]
36
- ), L = /* @__PURE__ */ o(
37
- y,
35
+ [h, x]
36
+ ), C = /* @__PURE__ */ o(
37
+ k,
38
38
  {
39
39
  policyDetails: i,
40
- policySettings: s,
41
- onChangeSettings: m
40
+ policySettings: m,
41
+ onChangeSettings: s
42
42
  }
43
43
  );
44
44
  return /* @__PURE__ */ o(
45
- A,
45
+ w,
46
46
  {
47
47
  title: a,
48
48
  subtitle: e,
@@ -50,30 +50,30 @@ function j({
50
50
  backLabel: r,
51
51
  actions: u,
52
52
  firstTab: {
53
- id: k,
53
+ id: A,
54
54
  label: h("tabs.policyDetails"),
55
- content: L
55
+ content: C
56
56
  },
57
57
  selectedTabId: d,
58
- onTabChange: x,
58
+ onTabChange: H,
59
59
  employees: {
60
60
  ...n,
61
- additionalColumns: v
61
+ additionalColumns: b
62
62
  },
63
63
  onAddEmployee: l,
64
64
  removeDialog: f,
65
65
  successAlert: t,
66
- onDismissAlert: C
66
+ onDismissAlert: M
67
67
  }
68
68
  );
69
69
  }
70
- function y({
70
+ function k({
71
71
  policyDetails: a,
72
72
  policySettings: e,
73
73
  onChangeSettings: c
74
74
  }) {
75
- b("Company.TimeOff.TimeOffPolicyDetails");
76
- const { t: r } = O("Company.TimeOff.TimeOffPolicyDetails"), { Box: u, BoxHeader: i, DescriptionList: s, Button: m } = M(), d = a.accrualMethod === "unlimited", n = a.accrualMethod === "perHourWorked" || a.accrualMethod === "perHourWorkedNoOvertime" || a.accrualMethod === "perHourPaid" || a.accrualMethod === "perHourPaidNoOvertime" || a.accrualMethod === "perPayPeriod", l = P(() => {
75
+ p("Company.TimeOff.TimeOffPolicyDetails");
76
+ const { t: r } = O("Company.TimeOff.TimeOffPolicyDetails"), { Box: u, BoxHeader: i, DescriptionList: m, Button: s } = W(), d = a.accrualMethod === "unlimited", n = a.accrualMethod === "perHourWorked" || a.accrualMethod === "perHourWorkedNoOvertime" || a.accrualMethod === "perHourPaid" || a.accrualMethod === "perHourPaidNoOvertime" || a.accrualMethod === "perPayPeriod", l = P(() => {
77
77
  const t = [
78
78
  {
79
79
  term: r("accrualMethod.label"),
@@ -117,8 +117,8 @@ function y({
117
117
  description: e.paidOutOnTermination ? r("paidOutOnTermination.yes") : r("paidOutOnTermination.no")
118
118
  }), t;
119
119
  }, [e, r, n]);
120
- return /* @__PURE__ */ o("div", { className: p.cardsContainer, children: /* @__PURE__ */ w("div", { className: p.cards, children: [
121
- /* @__PURE__ */ o(u, { header: /* @__PURE__ */ o(i, { title: r("details") }), withPadding: !0, children: /* @__PURE__ */ o(s, { items: l, showSeparators: !1, layout: "stacked" }) }),
120
+ return /* @__PURE__ */ o("div", { className: T.cardsContainer, children: /* @__PURE__ */ L("div", { className: T.cards, children: [
121
+ /* @__PURE__ */ o(u, { header: /* @__PURE__ */ o(i, { title: r("details") }), withPadding: !0, children: /* @__PURE__ */ o(m, { items: l, showSeparators: !1, layout: "stacked" }) }),
122
122
  !d && e && /* @__PURE__ */ o(
123
123
  u,
124
124
  {
@@ -126,16 +126,16 @@ function y({
126
126
  i,
127
127
  {
128
128
  title: r("policySettingsTitle"),
129
- action: c && /* @__PURE__ */ o(m, { variant: "secondary", onClick: c, children: r("changeSettingsCta") })
129
+ action: c && /* @__PURE__ */ o(s, { variant: "secondary", onClick: c, children: r("changeSettingsCta") })
130
130
  }
131
131
  ),
132
132
  withPadding: !0,
133
- children: /* @__PURE__ */ o(s, { items: f, showSeparators: !1, layout: "stacked" })
133
+ children: /* @__PURE__ */ o(m, { items: f, showSeparators: !1, layout: "stacked" })
134
134
  }
135
135
  )
136
136
  ] }) });
137
137
  }
138
138
  export {
139
- j as TimeOffPolicyDetailPresentation
139
+ U as TimeOffPolicyDetailPresentation
140
140
  };
141
141
  //# sourceMappingURL=TimeOffPolicyDetailPresentation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TimeOffPolicyDetailPresentation.js","sources":["../../../../src/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { PolicyDetailLayout } from '../shared/PolicyDetailLayout'\nimport type {\n TimeOffPolicyDetailPresentationProps,\n TimeOffPolicyDetailEmployee,\n PolicyDetails,\n PolicySettingsDisplay,\n} from './TimeOffPolicyDetailTypes'\nimport styles from './TimeOffPolicyDetail.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\n\nconst DETAILS_TAB_ID = 'details'\n\nexport function TimeOffPolicyDetailPresentation({\n title,\n subtitle,\n onBack,\n backLabel,\n actions,\n policyDetails,\n policySettings,\n onChangeSettings,\n selectedTabId,\n onTabChange,\n employees,\n onAddEmployee,\n removeDialog,\n successAlert,\n onDismissAlert,\n}: TimeOffPolicyDetailPresentationProps) {\n useI18n('Company.TimeOff.TimeOffPolicyDetails')\n const { t } = useTranslation('Company.TimeOff.TimeOffPolicyDetails')\n const { Text } = useComponentContext()\n\n const isUnlimited = policyDetails.accrualMethod === 'unlimited'\n\n const balanceColumn = useMemo(\n () =>\n isUnlimited\n ? []\n : [\n {\n key: 'balance' as keyof TimeOffPolicyDetailEmployee,\n title: t('employeeTable.balance'),\n render: (item: TimeOffPolicyDetailEmployee) => (\n <Text as=\"span\">{item.balance ?? '-'}</Text>\n ),\n },\n ],\n [t, isUnlimited, Text],\n )\n\n const detailsTabContent = (\n <DetailsTab\n policyDetails={policyDetails}\n policySettings={policySettings}\n onChangeSettings={onChangeSettings}\n />\n )\n\n return (\n <PolicyDetailLayout\n title={title}\n subtitle={subtitle}\n onBack={onBack}\n backLabel={backLabel}\n actions={actions}\n firstTab={{\n id: DETAILS_TAB_ID,\n label: t('tabs.policyDetails'),\n content: detailsTabContent,\n }}\n selectedTabId={selectedTabId}\n onTabChange={onTabChange}\n employees={{\n ...employees,\n additionalColumns: balanceColumn,\n }}\n onAddEmployee={onAddEmployee}\n removeDialog={removeDialog}\n successAlert={successAlert}\n onDismissAlert={onDismissAlert}\n />\n )\n}\n\nfunction DetailsTab({\n policyDetails,\n policySettings,\n onChangeSettings,\n}: {\n policyDetails: PolicyDetails\n policySettings?: PolicySettingsDisplay\n onChangeSettings?: () => void\n}) {\n useI18n('Company.TimeOff.TimeOffPolicyDetails')\n const { t } = useTranslation('Company.TimeOff.TimeOffPolicyDetails')\n const { Box, BoxHeader, DescriptionList, Button } = useComponentContext()\n\n const isUnlimited = policyDetails.accrualMethod === 'unlimited'\n const isHoursWorked =\n policyDetails.accrualMethod === 'perHourWorked' ||\n policyDetails.accrualMethod === 'perHourWorkedNoOvertime' ||\n policyDetails.accrualMethod === 'perHourPaid' ||\n policyDetails.accrualMethod === 'perHourPaidNoOvertime'\n const showAccrualMaxAndWaiting = isHoursWorked || policyDetails.accrualMethod === 'perPayPeriod'\n\n const detailItems = useMemo(() => {\n const items: { term: string; description: string }[] = [\n {\n term: t('accrualMethod.label'),\n description: t(`accrualMethod.${policyDetails.accrualMethod}`),\n },\n ]\n\n if (policyDetails.accrualMethod !== 'unlimited') {\n items.push({\n term: t('accrualRate.label'),\n description: t(`accrualRate.${policyDetails.accrualMethod}`, {\n accrualRate: policyDetails.accrualRate,\n accrualRateUnit: policyDetails.accrualRateUnit,\n }),\n })\n\n if (policyDetails.resetDate) {\n items.push({\n term: t('resetDate'),\n description: policyDetails.resetDate,\n })\n }\n }\n\n return items\n }, [policyDetails, t])\n\n const settingsItems = useMemo(() => {\n if (!policySettings) return []\n\n const items: { term: string; description: string }[] = []\n\n if (showAccrualMaxAndWaiting) {\n items.push({\n term: t('maxAccrualHoursPerYear.label'),\n description:\n policySettings.maxAccrualHoursPerYear != null\n ? t('maxAccrualHoursPerYear.withMaximum', {\n count: policySettings.maxAccrualHoursPerYear,\n })\n : t('maxAccrualHoursPerYear.noMaximum'),\n })\n }\n\n items.push(\n {\n term: t('maxHours.label'),\n description:\n policySettings.maxHours != null\n ? t('maxHours.withMaximum', { count: policySettings.maxHours })\n : t('maxHours.noMaximum'),\n },\n {\n term: t('carryoverLimitHours.label'),\n description:\n policySettings.carryoverLimitHours != null\n ? t('carryoverLimitHours.withLimit', { count: policySettings.carryoverLimitHours })\n : t('carryoverLimitHours.noLimit'),\n },\n )\n\n if (showAccrualMaxAndWaiting) {\n items.push({\n term: t('accrualWaitingPeriodDays.label'),\n description:\n policySettings.accrualWaitingPeriodDays != null\n ? t('accrualWaitingPeriodDays.withPeriod', {\n count: policySettings.accrualWaitingPeriodDays,\n })\n : t('accrualWaitingPeriodDays.noPeriod'),\n })\n }\n\n items.push({\n term: t('paidOutOnTermination.label'),\n description: policySettings.paidOutOnTermination\n ? t('paidOutOnTermination.yes')\n : t('paidOutOnTermination.no'),\n })\n\n return items\n }, [policySettings, t, showAccrualMaxAndWaiting])\n\n return (\n <div className={styles.cardsContainer}>\n <div className={styles.cards}>\n <Box header={<BoxHeader title={t('details')} />} withPadding>\n <DescriptionList items={detailItems} showSeparators={false} layout=\"stacked\" />\n </Box>\n\n {!isUnlimited && policySettings && (\n <Box\n header={\n <BoxHeader\n title={t('policySettingsTitle')}\n action={\n onChangeSettings && (\n <Button variant=\"secondary\" onClick={onChangeSettings}>\n {t('changeSettingsCta')}\n </Button>\n )\n }\n />\n }\n withPadding\n >\n <DescriptionList items={settingsItems} showSeparators={false} layout=\"stacked\" />\n </Box>\n )}\n </div>\n </div>\n )\n}\n"],"names":["DETAILS_TAB_ID","TimeOffPolicyDetailPresentation","title","subtitle","onBack","backLabel","actions","policyDetails","policySettings","onChangeSettings","selectedTabId","onTabChange","employees","onAddEmployee","removeDialog","successAlert","onDismissAlert","useI18n","t","useTranslation","Text","useComponentContext","isUnlimited","balanceColumn","useMemo","item","jsx","detailsTabContent","DetailsTab","PolicyDetailLayout","Box","BoxHeader","DescriptionList","Button","showAccrualMaxAndWaiting","detailItems","items","settingsItems","styles","jsxs"],"mappings":";;;;;;;AAaA,MAAMA,IAAiB;AAEhB,SAASC,EAAgC;AAAA,EAC9C,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,eAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AACF,GAAyC;AACvC,EAAAC,EAAQ,sCAAsC;AAC9C,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,sCAAsC,GAC7D,EAAE,MAAAC,EAAA,IAASC,EAAA,GAEXC,IAAcf,EAAc,kBAAkB,aAE9CgB,IAAgBC;AAAA,IACpB,MACEF,IACI,CAAA,IACA;AAAA,MACE;AAAA,QACE,KAAK;AAAA,QACL,OAAOJ,EAAE,uBAAuB;AAAA,QAChC,QAAQ,CAACO,MACP,gBAAAC,EAACN,KAAK,IAAG,QAAQ,UAAAK,EAAK,WAAW,IAAA,CAAI;AAAA,MAAA;AAAA,IAEzC;AAAA,IAER,CAACP,GAAGI,GAAaF,CAAI;AAAA,EAAA,GAGjBO,IACJ,gBAAAD;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,eAAArB;AAAA,MACA,gBAAAC;AAAA,MACA,kBAAAC;AAAA,IAAA;AAAA,EAAA;AAIJ,SACE,gBAAAiB;AAAA,IAACG;AAAA,IAAA;AAAA,MACC,OAAA3B;AAAA,MACA,UAAAC;AAAA,MACA,QAAAC;AAAA,MACA,WAAAC;AAAA,MACA,SAAAC;AAAA,MACA,UAAU;AAAA,QACR,IAAIN;AAAA,QACJ,OAAOkB,EAAE,oBAAoB;AAAA,QAC7B,SAASS;AAAA,MAAA;AAAA,MAEX,eAAAjB;AAAA,MACA,aAAAC;AAAA,MACA,WAAW;AAAA,QACT,GAAGC;AAAA,QACH,mBAAmBW;AAAA,MAAA;AAAA,MAErB,eAAAV;AAAA,MACA,cAAAC;AAAA,MACA,cAAAC;AAAA,MACA,gBAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,SAASY,EAAW;AAAA,EAClB,eAAArB;AAAA,EACA,gBAAAC;AAAA,EACA,kBAAAC;AACF,GAIG;AACD,EAAAQ,EAAQ,sCAAsC;AAC9C,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,sCAAsC,GAC7D,EAAE,KAAAW,GAAK,WAAAC,GAAW,iBAAAC,GAAiB,QAAAC,EAAA,IAAWZ,EAAA,GAE9CC,IAAcf,EAAc,kBAAkB,aAM9C2B,IAJJ3B,EAAc,kBAAkB,mBAChCA,EAAc,kBAAkB,6BAChCA,EAAc,kBAAkB,iBAChCA,EAAc,kBAAkB,2BACgBA,EAAc,kBAAkB,gBAE5E4B,IAAcX,EAAQ,MAAM;AAChC,UAAMY,IAAiD;AAAA,MACrD;AAAA,QACE,MAAMlB,EAAE,qBAAqB;AAAA,QAC7B,aAAaA,EAAE,iBAAiBX,EAAc,aAAa,EAAE;AAAA,MAAA;AAAA,IAC/D;AAGF,WAAIA,EAAc,kBAAkB,gBAClC6B,EAAM,KAAK;AAAA,MACT,MAAMlB,EAAE,mBAAmB;AAAA,MAC3B,aAAaA,EAAE,eAAeX,EAAc,aAAa,IAAI;AAAA,QAC3D,aAAaA,EAAc;AAAA,QAC3B,iBAAiBA,EAAc;AAAA,MAAA,CAChC;AAAA,IAAA,CACF,GAEGA,EAAc,aAChB6B,EAAM,KAAK;AAAA,MACT,MAAMlB,EAAE,WAAW;AAAA,MACnB,aAAaX,EAAc;AAAA,IAAA,CAC5B,IAIE6B;AAAA,EACT,GAAG,CAAC7B,GAAeW,CAAC,CAAC,GAEfmB,IAAgBb,EAAQ,MAAM;AAClC,QAAI,CAAChB,EAAgB,QAAO,CAAA;AAE5B,UAAM4B,IAAiD,CAAA;AAEvD,WAAIF,KACFE,EAAM,KAAK;AAAA,MACT,MAAMlB,EAAE,8BAA8B;AAAA,MACtC,aACEV,EAAe,0BAA0B,OACrCU,EAAE,sCAAsC;AAAA,QACtC,OAAOV,EAAe;AAAA,MAAA,CACvB,IACDU,EAAE,kCAAkC;AAAA,IAAA,CAC3C,GAGHkB,EAAM;AAAA,MACJ;AAAA,QACE,MAAMlB,EAAE,gBAAgB;AAAA,QACxB,aACEV,EAAe,YAAY,OACvBU,EAAE,wBAAwB,EAAE,OAAOV,EAAe,UAAU,IAC5DU,EAAE,oBAAoB;AAAA,MAAA;AAAA,MAE9B;AAAA,QACE,MAAMA,EAAE,2BAA2B;AAAA,QACnC,aACEV,EAAe,uBAAuB,OAClCU,EAAE,iCAAiC,EAAE,OAAOV,EAAe,qBAAqB,IAChFU,EAAE,6BAA6B;AAAA,MAAA;AAAA,IACvC,GAGEgB,KACFE,EAAM,KAAK;AAAA,MACT,MAAMlB,EAAE,gCAAgC;AAAA,MACxC,aACEV,EAAe,4BAA4B,OACvCU,EAAE,uCAAuC;AAAA,QACvC,OAAOV,EAAe;AAAA,MAAA,CACvB,IACDU,EAAE,mCAAmC;AAAA,IAAA,CAC5C,GAGHkB,EAAM,KAAK;AAAA,MACT,MAAMlB,EAAE,4BAA4B;AAAA,MACpC,aAAaV,EAAe,uBACxBU,EAAE,0BAA0B,IAC5BA,EAAE,yBAAyB;AAAA,IAAA,CAChC,GAEMkB;AAAA,EACT,GAAG,CAAC5B,GAAgBU,GAAGgB,CAAwB,CAAC;AAEhD,SACE,gBAAAR,EAAC,SAAI,WAAWY,EAAO,gBACrB,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,OACrB,UAAA;AAAA,IAAA,gBAAAZ,EAACI,KAAI,QAAQ,gBAAAJ,EAACK,KAAU,OAAOb,EAAE,SAAS,EAAA,CAAG,GAAI,aAAW,IAC1D,UAAA,gBAAAQ,EAACM,KAAgB,OAAOG,GAAa,gBAAgB,IAAO,QAAO,WAAU,EAAA,CAC/E;AAAA,IAEC,CAACb,KAAed,KACf,gBAAAkB;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,QACE,gBAAAJ;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,OAAOb,EAAE,qBAAqB;AAAA,YAC9B,QACET,KACE,gBAAAiB,EAACO,GAAA,EAAO,SAAQ,aAAY,SAASxB,GAClC,UAAAS,EAAE,mBAAmB,EAAA,CACxB;AAAA,UAAA;AAAA,QAAA;AAAA,QAKR,aAAW;AAAA,QAEX,4BAACc,GAAA,EAAgB,OAAOK,GAAe,gBAAgB,IAAO,QAAO,UAAA,CAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EACjF,EAAA,CAEJ,EAAA,CACF;AAEJ;"}
1
+ {"version":3,"file":"TimeOffPolicyDetailPresentation.js","sources":["../../../../src/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { PolicyDetailLayout } from '../shared/PolicyDetailLayout'\nimport type {\n TimeOffPolicyDetailPresentationProps,\n TimeOffPolicyDetailEmployee,\n PolicyDetails,\n PolicySettingsDisplay,\n} from './TimeOffPolicyDetailTypes'\nimport styles from './TimeOffPolicyDetail.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\n\nconst DETAILS_TAB_ID = 'details'\n\nexport function TimeOffPolicyDetailPresentation({\n title,\n subtitle,\n onBack,\n backLabel,\n actions,\n policyDetails,\n policySettings,\n onChangeSettings,\n selectedTabId,\n onTabChange,\n employees,\n onAddEmployee,\n removeDialog,\n successAlert,\n onDismissAlert,\n}: TimeOffPolicyDetailPresentationProps) {\n useI18n('Company.TimeOff.TimeOffPolicyDetails')\n const { t } = useTranslation('Company.TimeOff.TimeOffPolicyDetails')\n\n const isUnlimited = policyDetails.accrualMethod === 'unlimited'\n\n const balanceColumn = useMemo(\n () =>\n isUnlimited\n ? []\n : [\n {\n key: 'balance' as keyof TimeOffPolicyDetailEmployee,\n title: t('employeeTable.balance'),\n render: (item: TimeOffPolicyDetailEmployee) => item.balance ?? '-',\n },\n ],\n [t, isUnlimited],\n )\n\n const detailsTabContent = (\n <DetailsTab\n policyDetails={policyDetails}\n policySettings={policySettings}\n onChangeSettings={onChangeSettings}\n />\n )\n\n return (\n <PolicyDetailLayout\n title={title}\n subtitle={subtitle}\n onBack={onBack}\n backLabel={backLabel}\n actions={actions}\n firstTab={{\n id: DETAILS_TAB_ID,\n label: t('tabs.policyDetails'),\n content: detailsTabContent,\n }}\n selectedTabId={selectedTabId}\n onTabChange={onTabChange}\n employees={{\n ...employees,\n additionalColumns: balanceColumn,\n }}\n onAddEmployee={onAddEmployee}\n removeDialog={removeDialog}\n successAlert={successAlert}\n onDismissAlert={onDismissAlert}\n />\n )\n}\n\nfunction DetailsTab({\n policyDetails,\n policySettings,\n onChangeSettings,\n}: {\n policyDetails: PolicyDetails\n policySettings?: PolicySettingsDisplay\n onChangeSettings?: () => void\n}) {\n useI18n('Company.TimeOff.TimeOffPolicyDetails')\n const { t } = useTranslation('Company.TimeOff.TimeOffPolicyDetails')\n const { Box, BoxHeader, DescriptionList, Button } = useComponentContext()\n\n const isUnlimited = policyDetails.accrualMethod === 'unlimited'\n const isHoursWorked =\n policyDetails.accrualMethod === 'perHourWorked' ||\n policyDetails.accrualMethod === 'perHourWorkedNoOvertime' ||\n policyDetails.accrualMethod === 'perHourPaid' ||\n policyDetails.accrualMethod === 'perHourPaidNoOvertime'\n const showAccrualMaxAndWaiting = isHoursWorked || policyDetails.accrualMethod === 'perPayPeriod'\n\n const detailItems = useMemo(() => {\n const items: { term: string; description: string }[] = [\n {\n term: t('accrualMethod.label'),\n description: t(`accrualMethod.${policyDetails.accrualMethod}`),\n },\n ]\n\n if (policyDetails.accrualMethod !== 'unlimited') {\n items.push({\n term: t('accrualRate.label'),\n description: t(`accrualRate.${policyDetails.accrualMethod}`, {\n accrualRate: policyDetails.accrualRate,\n accrualRateUnit: policyDetails.accrualRateUnit,\n }),\n })\n\n if (policyDetails.resetDate) {\n items.push({\n term: t('resetDate'),\n description: policyDetails.resetDate,\n })\n }\n }\n\n return items\n }, [policyDetails, t])\n\n const settingsItems = useMemo(() => {\n if (!policySettings) return []\n\n const items: { term: string; description: string }[] = []\n\n if (showAccrualMaxAndWaiting) {\n items.push({\n term: t('maxAccrualHoursPerYear.label'),\n description:\n policySettings.maxAccrualHoursPerYear != null\n ? t('maxAccrualHoursPerYear.withMaximum', {\n count: policySettings.maxAccrualHoursPerYear,\n })\n : t('maxAccrualHoursPerYear.noMaximum'),\n })\n }\n\n items.push(\n {\n term: t('maxHours.label'),\n description:\n policySettings.maxHours != null\n ? t('maxHours.withMaximum', { count: policySettings.maxHours })\n : t('maxHours.noMaximum'),\n },\n {\n term: t('carryoverLimitHours.label'),\n description:\n policySettings.carryoverLimitHours != null\n ? t('carryoverLimitHours.withLimit', { count: policySettings.carryoverLimitHours })\n : t('carryoverLimitHours.noLimit'),\n },\n )\n\n if (showAccrualMaxAndWaiting) {\n items.push({\n term: t('accrualWaitingPeriodDays.label'),\n description:\n policySettings.accrualWaitingPeriodDays != null\n ? t('accrualWaitingPeriodDays.withPeriod', {\n count: policySettings.accrualWaitingPeriodDays,\n })\n : t('accrualWaitingPeriodDays.noPeriod'),\n })\n }\n\n items.push({\n term: t('paidOutOnTermination.label'),\n description: policySettings.paidOutOnTermination\n ? t('paidOutOnTermination.yes')\n : t('paidOutOnTermination.no'),\n })\n\n return items\n }, [policySettings, t, showAccrualMaxAndWaiting])\n\n return (\n <div className={styles.cardsContainer}>\n <div className={styles.cards}>\n <Box header={<BoxHeader title={t('details')} />} withPadding>\n <DescriptionList items={detailItems} showSeparators={false} layout=\"stacked\" />\n </Box>\n\n {!isUnlimited && policySettings && (\n <Box\n header={\n <BoxHeader\n title={t('policySettingsTitle')}\n action={\n onChangeSettings && (\n <Button variant=\"secondary\" onClick={onChangeSettings}>\n {t('changeSettingsCta')}\n </Button>\n )\n }\n />\n }\n withPadding\n >\n <DescriptionList items={settingsItems} showSeparators={false} layout=\"stacked\" />\n </Box>\n )}\n </div>\n </div>\n )\n}\n"],"names":["DETAILS_TAB_ID","TimeOffPolicyDetailPresentation","title","subtitle","onBack","backLabel","actions","policyDetails","policySettings","onChangeSettings","selectedTabId","onTabChange","employees","onAddEmployee","removeDialog","successAlert","onDismissAlert","useI18n","t","useTranslation","isUnlimited","balanceColumn","useMemo","item","detailsTabContent","jsx","DetailsTab","PolicyDetailLayout","Box","BoxHeader","DescriptionList","Button","useComponentContext","showAccrualMaxAndWaiting","detailItems","items","settingsItems","styles","jsxs"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  import { EmployeeTableItem, EmployeeTableProps } from './EmployeeTableTypes';
2
- export declare function EmployeeTable<T extends EmployeeTableItem>({ data, label, additionalColumns, hideJobTitle, searchValue, onSearchChange, onSearchClear, searchPlaceholder, selectionMode, onSelect, onSelectAll, getIsItemSelected, itemMenu, pagination, isFetching, emptyState, emptySearchState, footer, }: EmployeeTableProps<T>): import("react/jsx-runtime").JSX.Element;
2
+ export declare function EmployeeTable<T extends EmployeeTableItem>({ data, label, additionalColumns, hideJobTitle, searchValue, onSearchChange, onSearchClear, searchPlaceholder, hideSearch, selectionMode, onSelect, onSelectAll, getIsItemSelected, hideSelectAll, itemMenu, pagination, isFetching, emptyState, emptySearchState, footer, }: EmployeeTableProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -1,17 +1,17 @@
1
- import { jsx as r, jsxs as I } from "react/jsx-runtime";
1
+ import { jsx as r, jsxs as V } from "react/jsx-runtime";
2
2
  import { useMemo as m } from "react";
3
- import { useTranslation as R } from "react-i18next";
3
+ import { useTranslation as F } from "react-i18next";
4
4
  import d from "./EmployeeTable.module.scss.js";
5
- import { Flex as V } from "../../../Common/Flex/Flex.js";
5
+ import { Flex as O } from "../../../Common/Flex/Flex.js";
6
6
  import "classnames";
7
7
  import "../../../../shared/constants.js";
8
8
  import { useComponentContext as y } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
9
- import { useI18n as F } from "../../../../i18n/I18n.js";
10
- import { firstLastName as O } from "../../../../helpers/formattedStrings.js";
11
- import P from "../../../../assets/icons/search-lg.svg.js";
12
- import { useDataView as _ } from "../../../Common/DataView/useDataView.js";
13
- import { DataView as z } from "../../../Common/DataView/DataView.js";
14
- function ee({
9
+ import { useI18n as P } from "../../../../i18n/I18n.js";
10
+ import { firstLastName as _ } from "../../../../helpers/formattedStrings.js";
11
+ import z from "../../../../assets/icons/search-lg.svg.js";
12
+ import { useDataView as H } from "../../../Common/DataView/useDataView.js";
13
+ import { DataView as W } from "../../../Common/DataView/DataView.js";
14
+ function re({
15
15
  data: o,
16
16
  label: n,
17
17
  additionalColumns: l = [],
@@ -20,31 +20,33 @@ function ee({
20
20
  onSearchChange: b,
21
21
  onSearchClear: T,
22
22
  searchPlaceholder: g,
23
- selectionMode: x,
23
+ hideSearch: x,
24
+ selectionMode: C,
24
25
  onSelect: p,
25
- onSelectAll: C,
26
- getIsItemSelected: E,
26
+ onSelectAll: E,
27
+ getIsItemSelected: S,
28
+ hideSelectAll: N,
27
29
  itemMenu: u,
28
- pagination: S,
29
- isFetching: N,
30
+ pagination: j,
31
+ isFetching: v,
30
32
  emptyState: f,
31
33
  emptySearchState: a,
32
- footer: j
34
+ footer: L
33
35
  }) {
34
- F("Company.TimeOff.EmployeeTable");
35
- const { t } = R("Company.TimeOff.EmployeeTable"), v = y(), s = c.length > 0 && o.length === 0, L = (e) => {
36
+ P("Company.TimeOff.EmployeeTable");
37
+ const { t } = F("Company.TimeOff.EmployeeTable"), D = y(), s = c.length > 0 && o.length === 0, k = (e) => {
36
38
  b(e), e || T();
37
39
  }, h = m(() => {
38
40
  const e = t("noSearchResults");
39
41
  return function() {
40
- return /* @__PURE__ */ r(H, { message: e });
42
+ return /* @__PURE__ */ r($, { message: e });
41
43
  };
42
- }, [t]), D = m(() => s && a ? a : s ? h : f, [s, a, f, h]), k = m(
44
+ }, [t]), w = m(() => s && a ? a : s ? h : f, [s, a, f, h]), I = m(
43
45
  () => [
44
46
  {
45
47
  key: "name",
46
48
  title: t("name"),
47
- render: (e) => /* @__PURE__ */ r("span", { id: `employee-name-${e.uuid}`, children: O({
49
+ render: (e) => /* @__PURE__ */ r("span", { id: `employee-name-${e.uuid}`, children: _({
48
50
  first_name: e.firstName,
49
51
  last_name: e.lastName
50
52
  }) })
@@ -59,19 +61,19 @@ function ee({
59
61
  ...l
60
62
  ],
61
63
  [t, l, i]
62
- ), w = _({
64
+ ), R = H({
63
65
  data: o,
64
- columns: k,
66
+ columns: I,
65
67
  itemMenu: u,
66
- pagination: S,
67
- isFetching: N,
68
- emptyState: D,
69
- footer: j,
70
- ...p && { selectionMode: x, onSelect: p, onSelectAll: C, getIsItemSelected: E }
68
+ pagination: j,
69
+ isFetching: v,
70
+ emptyState: w,
71
+ footer: L,
72
+ ...p && { selectionMode: C, onSelect: p, onSelectAll: E, getIsItemSelected: S, hideSelectAll: N }
71
73
  });
72
- return /* @__PURE__ */ I("div", { className: d.root, "data-has-menu": u ? !0 : void 0, children: [
73
- /* @__PURE__ */ r("div", { className: d.searchContainer, children: /* @__PURE__ */ r(
74
- v.TextInput,
74
+ return /* @__PURE__ */ V("div", { className: d.root, "data-has-menu": u ? !0 : void 0, children: [
75
+ !x && /* @__PURE__ */ r("div", { className: d.searchContainer, children: /* @__PURE__ */ r(
76
+ D.TextInput,
75
77
  {
76
78
  name: "employee-search",
77
79
  type: "search",
@@ -79,18 +81,18 @@ function ee({
79
81
  shouldVisuallyHideLabel: !0,
80
82
  placeholder: g ?? t("searchPlaceholder"),
81
83
  value: c,
82
- onChange: L,
83
- adornmentStart: /* @__PURE__ */ r(P, { "aria-hidden": !0 })
84
+ onChange: k,
85
+ adornmentStart: /* @__PURE__ */ r(z, { "aria-hidden": !0 })
84
86
  }
85
87
  ) }),
86
- /* @__PURE__ */ r(z, { label: n ?? t("tableLabel"), ...w })
88
+ /* @__PURE__ */ r(W, { label: n ?? t("tableLabel"), ...R })
87
89
  ] });
88
90
  }
89
- function H({ message: o }) {
91
+ function $({ message: o }) {
90
92
  const { Text: n } = y();
91
- return /* @__PURE__ */ r(V, { flexDirection: "column", alignItems: "center", gap: 8, children: /* @__PURE__ */ r(n, { size: "sm", children: o }) });
93
+ return /* @__PURE__ */ r(O, { flexDirection: "column", alignItems: "center", gap: 8, children: /* @__PURE__ */ r(n, { size: "sm", children: o }) });
92
94
  }
93
95
  export {
94
- ee as EmployeeTable
96
+ re as EmployeeTable
95
97
  };
96
98
  //# sourceMappingURL=EmployeeTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmployeeTable.js","sources":["../../../../../src/components/TimeOff/shared/EmployeeTable/EmployeeTable.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { EmployeeTableItem, EmployeeTableProps } from './EmployeeTableTypes'\nimport styles from './EmployeeTable.module.scss'\nimport { DataView, Flex, useDataView } from '@/components/Common'\nimport type { useDataViewProp } from '@/components/Common/DataView/useDataView'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n/I18n'\nimport { firstLastName } from '@/helpers/formattedStrings'\nimport SearchIcon from '@/assets/icons/search-lg.svg?react'\n\nexport function EmployeeTable<T extends EmployeeTableItem>({\n data,\n label,\n additionalColumns = [],\n hideJobTitle,\n searchValue,\n onSearchChange,\n onSearchClear,\n searchPlaceholder,\n selectionMode,\n onSelect,\n onSelectAll,\n getIsItemSelected,\n itemMenu,\n pagination,\n isFetching,\n emptyState,\n emptySearchState,\n footer,\n}: EmployeeTableProps<T>) {\n useI18n('Company.TimeOff.EmployeeTable')\n const { t } = useTranslation('Company.TimeOff.EmployeeTable')\n const Components = useComponentContext()\n\n const isSearchWithNoResults = searchValue.length > 0 && data.length === 0\n\n const handleSearchChange = (value: string) => {\n onSearchChange(value)\n if (!value) onSearchClear()\n }\n\n const defaultEmptySearch = useMemo(() => {\n const noSearchResults = t('noSearchResults')\n return function EmptySearchFallback() {\n return <DefaultEmptySearchState message={noSearchResults} />\n }\n }, [t])\n\n const resolvedEmptyState = useMemo(() => {\n if (isSearchWithNoResults && emptySearchState) {\n return emptySearchState\n }\n if (isSearchWithNoResults) {\n return defaultEmptySearch\n }\n return emptyState\n }, [isSearchWithNoResults, emptySearchState, emptyState, defaultEmptySearch])\n\n const columns = useMemo(\n () => [\n {\n key: 'name',\n title: t('name'),\n render: (item: T) => (\n <span id={`employee-name-${item.uuid}`}>\n {firstLastName({\n first_name: item.firstName,\n last_name: item.lastName,\n })}\n </span>\n ),\n },\n ...(hideJobTitle\n ? []\n : [\n {\n key: 'jobTitle' as keyof T,\n title: t('jobTitle'),\n render: (item: T) => item.jobTitle ?? '',\n },\n ]),\n ...additionalColumns,\n ],\n [t, additionalColumns, hideJobTitle],\n )\n\n const dataViewProps = useDataView<T>({\n data,\n columns,\n itemMenu,\n pagination,\n isFetching,\n emptyState: resolvedEmptyState,\n footer,\n ...(onSelect && { selectionMode, onSelect, onSelectAll, getIsItemSelected }),\n } as useDataViewProp<T>)\n\n return (\n <div className={styles.root} data-has-menu={itemMenu ? true : undefined}>\n <div className={styles.searchContainer}>\n <Components.TextInput\n name=\"employee-search\"\n type=\"search\"\n label={t('searchLabel')}\n shouldVisuallyHideLabel\n placeholder={searchPlaceholder ?? t('searchPlaceholder')}\n value={searchValue}\n onChange={handleSearchChange}\n adornmentStart={<SearchIcon aria-hidden />}\n />\n </div>\n <DataView label={label ?? t('tableLabel')} {...dataViewProps} />\n </div>\n )\n}\n\nfunction DefaultEmptySearchState({ message }: { message: string }) {\n const { Text } = useComponentContext()\n return (\n <Flex flexDirection=\"column\" alignItems=\"center\" gap={8}>\n <Text size=\"sm\">{message}</Text>\n </Flex>\n )\n}\n"],"names":["EmployeeTable","data","label","additionalColumns","hideJobTitle","searchValue","onSearchChange","onSearchClear","searchPlaceholder","selectionMode","onSelect","onSelectAll","getIsItemSelected","itemMenu","pagination","isFetching","emptyState","emptySearchState","footer","useI18n","useTranslation","Components","useComponentContext","isSearchWithNoResults","handleSearchChange","value","defaultEmptySearch","useMemo","noSearchResults","jsx","DefaultEmptySearchState","resolvedEmptyState","columns","item","firstLastName","dataViewProps","useDataView","jsxs","styles","SearchIcon","DataView","message","Text","Flex"],"mappings":"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"}
1
+ {"version":3,"file":"EmployeeTable.js","sources":["../../../../../src/components/TimeOff/shared/EmployeeTable/EmployeeTable.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { EmployeeTableItem, EmployeeTableProps } from './EmployeeTableTypes'\nimport styles from './EmployeeTable.module.scss'\nimport { DataView, Flex, useDataView } from '@/components/Common'\nimport type { useDataViewProp } from '@/components/Common/DataView/useDataView'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n/I18n'\nimport { firstLastName } from '@/helpers/formattedStrings'\nimport SearchIcon from '@/assets/icons/search-lg.svg?react'\n\nexport function EmployeeTable<T extends EmployeeTableItem>({\n data,\n label,\n additionalColumns = [],\n hideJobTitle,\n searchValue,\n onSearchChange,\n onSearchClear,\n searchPlaceholder,\n hideSearch,\n selectionMode,\n onSelect,\n onSelectAll,\n getIsItemSelected,\n hideSelectAll,\n itemMenu,\n pagination,\n isFetching,\n emptyState,\n emptySearchState,\n footer,\n}: EmployeeTableProps<T>) {\n useI18n('Company.TimeOff.EmployeeTable')\n const { t } = useTranslation('Company.TimeOff.EmployeeTable')\n const Components = useComponentContext()\n\n const isSearchWithNoResults = searchValue.length > 0 && data.length === 0\n\n const handleSearchChange = (value: string) => {\n onSearchChange(value)\n if (!value) onSearchClear()\n }\n\n const defaultEmptySearch = useMemo(() => {\n const noSearchResults = t('noSearchResults')\n return function EmptySearchFallback() {\n return <DefaultEmptySearchState message={noSearchResults} />\n }\n }, [t])\n\n const resolvedEmptyState = useMemo(() => {\n if (isSearchWithNoResults && emptySearchState) {\n return emptySearchState\n }\n if (isSearchWithNoResults) {\n return defaultEmptySearch\n }\n return emptyState\n }, [isSearchWithNoResults, emptySearchState, emptyState, defaultEmptySearch])\n\n const columns = useMemo(\n () => [\n {\n key: 'name',\n title: t('name'),\n render: (item: T) => (\n <span id={`employee-name-${item.uuid}`}>\n {firstLastName({\n first_name: item.firstName,\n last_name: item.lastName,\n })}\n </span>\n ),\n },\n ...(hideJobTitle\n ? []\n : [\n {\n key: 'jobTitle' as keyof T,\n title: t('jobTitle'),\n render: (item: T) => item.jobTitle ?? '',\n },\n ]),\n ...additionalColumns,\n ],\n [t, additionalColumns, hideJobTitle],\n )\n\n const dataViewProps = useDataView<T>({\n data,\n columns,\n itemMenu,\n pagination,\n isFetching,\n emptyState: resolvedEmptyState,\n footer,\n ...(onSelect && { selectionMode, onSelect, onSelectAll, getIsItemSelected, hideSelectAll }),\n } as useDataViewProp<T>)\n\n return (\n <div className={styles.root} data-has-menu={itemMenu ? true : undefined}>\n {!hideSearch && (\n <div className={styles.searchContainer}>\n <Components.TextInput\n name=\"employee-search\"\n type=\"search\"\n label={t('searchLabel')}\n shouldVisuallyHideLabel\n placeholder={searchPlaceholder ?? t('searchPlaceholder')}\n value={searchValue}\n onChange={handleSearchChange}\n adornmentStart={<SearchIcon aria-hidden />}\n />\n </div>\n )}\n <DataView label={label ?? t('tableLabel')} {...dataViewProps} />\n </div>\n )\n}\n\nfunction DefaultEmptySearchState({ message }: { message: string }) {\n const { Text } = useComponentContext()\n return (\n <Flex flexDirection=\"column\" alignItems=\"center\" gap={8}>\n <Text size=\"sm\">{message}</Text>\n </Flex>\n )\n}\n"],"names":["EmployeeTable","data","label","additionalColumns","hideJobTitle","searchValue","onSearchChange","onSearchClear","searchPlaceholder","hideSearch","selectionMode","onSelect","onSelectAll","getIsItemSelected","hideSelectAll","itemMenu","pagination","isFetching","emptyState","emptySearchState","footer","useI18n","useTranslation","Components","useComponentContext","isSearchWithNoResults","handleSearchChange","value","defaultEmptySearch","useMemo","noSearchResults","jsx","DefaultEmptySearchState","resolvedEmptyState","columns","item","firstLastName","dataViewProps","useDataView","jsxs","styles","SearchIcon","DataView","message","Text","Flex"],"mappings":"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"}
@@ -16,10 +16,12 @@ export interface EmployeeTableProps<T extends EmployeeTableItem> {
16
16
  onSearchChange: (value: string) => void;
17
17
  onSearchClear: () => void;
18
18
  searchPlaceholder?: string;
19
+ hideSearch?: boolean;
19
20
  selectionMode?: SelectionMode;
20
21
  onSelect?: (item: T, checked: boolean) => void;
21
22
  onSelectAll?: (checked: boolean, visibleItems: T[]) => void;
22
23
  getIsItemSelected?: (item: T) => boolean;
24
+ hideSelectAll?: boolean;
23
25
  itemMenu?: (item: T) => ReactNode;
24
26
  pagination?: PaginationControlProps;
25
27
  isFetching?: boolean;
@@ -17,7 +17,7 @@ export declare const buildBreadcrumbs: (nodes: BreadcrumbNodes) => BreadcrumbTra
17
17
  /**
18
18
  * Resolves template variables in breadcrumb labels using values from a context object.
19
19
  *
20
- * Supports Handlebars-style template syntax ({{variableName}}) for dynamic breadcrumb labels.
20
+ * Supports Handlebars-style template syntax (`{{variableName}}`) for dynamic breadcrumb labels.
21
21
  * Variables enclosed in double braces are replaced with their corresponding values from the context.
22
22
  * Non-template strings are returned as-is.
23
23
  */
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbHelpers.js","sources":["../../src/helpers/breadcrumbHelpers.ts"],"sourcesContent":["import type {\n BreadcrumbNode,\n BreadcrumbNodes,\n BreadcrumbTrail,\n FlowBreadcrumb,\n} from '@/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport type { FlowHeaderConfig } from '@/components/Flow/useFlow'\n\ntype BreadcrumbsHeader = Extract<FlowHeaderConfig, { type: 'breadcrumbs' }>\n\ntype WithHeader = { header?: FlowHeaderConfig | null }\n\n/**\n * Returns the existing breadcrumbs header from a context, defaulting to a\n * blank breadcrumbs config when the header is missing or of a different\n * variant. Helpers below use this so callers don't need to manually narrow\n * the discriminated `header` union before mutating breadcrumb data.\n */\nconst getBreadcrumbsHeader = (header: FlowHeaderConfig | null | undefined): BreadcrumbsHeader => {\n if (header?.type === 'breadcrumbs') return header\n return { type: 'breadcrumbs' }\n}\n\n/**\n * Builds a complete breadcrumb trail map from a hierarchical node structure.\n *\n * Takes a tree structure of breadcrumb nodes and generates a map where each state\n * has its complete breadcrumb trail from root to that state. This is useful for\n * initializing breadcrumb navigation in state machines or multi-step flows.\n */\nexport const buildBreadcrumbs = (nodes: BreadcrumbNodes): BreadcrumbTrail => {\n const map: Record<string, FlowBreadcrumb[]> = {}\n\n for (const [state, node] of Object.entries(nodes)) {\n const trail: FlowBreadcrumb[] = []\n let current: BreadcrumbNode | null = node\n\n while (current) {\n trail.unshift(current.item)\n const parentKey: string | null = current.parent\n current = parentKey ? (nodes[parentKey] ?? null) : null\n }\n\n map[state] = trail\n }\n\n return map\n}\n\n/**\n * Resolves template variables in breadcrumb labels using values from a context object.\n *\n * Supports Handlebars-style template syntax ({{variableName}}) for dynamic breadcrumb labels.\n * Variables enclosed in double braces are replaced with their corresponding values from the context.\n * Non-template strings are returned as-is.\n */\nexport const resolveBreadcrumbVariables = (\n variables: Record<string, string> | undefined,\n context: Record<string, unknown>,\n): Record<string, unknown> => {\n if (!variables) {\n return {}\n }\n\n const resolved: Record<string, unknown> = {}\n for (const [key, value] of Object.entries(variables)) {\n const match = value.match(/{{(.*?)}}/)\n if (match?.[1]) {\n const ctxKey = match[1].trim()\n resolved[key] = context[ctxKey] ?? ''\n } else {\n resolved[key] = value\n }\n }\n return resolved\n}\n\n/**\n * Merges `patch` fields into the existing breadcrumbs header on a context,\n * preserving the existing trails and CTA. If the context has no breadcrumbs\n * header, a fresh one is created. Useful when a transition needs to flip\n * breadcrumbs visibility (`currentBreadcrumbId`) without rebuilding any\n * trails.\n */\nexport const patchBreadcrumbsHeader = <T extends WithHeader>(\n context: T,\n patch: Partial<Omit<BreadcrumbsHeader, 'type'>>,\n): T & { header: BreadcrumbsHeader } => {\n const existing = getBreadcrumbsHeader(context.header)\n return { ...context, header: { ...existing, ...patch } }\n}\n\n/**\n * Removes a breadcrumb from all trails in the context's breadcrumbs header.\n * Use this in state machine reducers to hide a step entirely (e.g. after\n * payroll submission).\n */\nexport const hideBreadcrumb = <T extends WithHeader>(breadcrumbId: string, context: T): T => {\n const breadcrumbsHeader = getBreadcrumbsHeader(context.header)\n const allBreadcrumbs = breadcrumbsHeader.breadcrumbs ?? {}\n const updatedBreadcrumbs = Object.fromEntries(\n Object.entries(allBreadcrumbs).map(([stateKey, trail]) => [\n stateKey,\n trail.filter(b => b.id !== breadcrumbId),\n ]),\n )\n return {\n ...context,\n header: { ...breadcrumbsHeader, breadcrumbs: updatedBreadcrumbs },\n }\n}\n\n/**\n * Marks a breadcrumb as non-navigable across all trails in the context's\n * breadcrumbs header. Use this in state machine reducers to disable backward\n * navigation to a specific step.\n */\nexport const lockBreadcrumb = <T extends WithHeader>(breadcrumbId: string, context: T): T => {\n const breadcrumbsHeader = getBreadcrumbsHeader(context.header)\n const allBreadcrumbs = breadcrumbsHeader.breadcrumbs ?? {}\n const updatedBreadcrumbs = Object.fromEntries(\n Object.entries(allBreadcrumbs).map(([stateKey, trail]) => [\n stateKey,\n trail.map(b => (b.id === breadcrumbId ? { ...b, isNavigable: false } : b)),\n ]),\n )\n return {\n ...context,\n header: { ...breadcrumbsHeader, breadcrumbs: updatedBreadcrumbs },\n }\n}\n\n/**\n * Updates the breadcrumb trail for a specific state with resolved variables\n * and switches the active breadcrumb to that state.\n *\n * This function is typically used in state machine transitions to update\n * breadcrumb navigation when moving between states. It preserves all existing\n * breadcrumb trails for other states and only updates the trail for the\n * specified state by resolving any template variables for that state's\n * breadcrumb. The resulting context's header is always of type `'breadcrumbs'`.\n */\nexport const updateBreadcrumbs = <T extends WithHeader>(\n stateName: string,\n context: T,\n variables?: Record<string, string>,\n): T & { header: BreadcrumbsHeader } => {\n const breadcrumbsHeader = getBreadcrumbsHeader(context.header)\n const allBreadcrumbs = breadcrumbsHeader.breadcrumbs ?? {}\n const trail = allBreadcrumbs[stateName] ?? []\n const resolvedTrail = trail.map(breadcrumb => ({\n ...breadcrumb,\n variables: resolveBreadcrumbVariables(variables, context as Record<string, unknown>),\n }))\n return {\n ...context,\n header: {\n ...breadcrumbsHeader,\n breadcrumbs: {\n ...allBreadcrumbs,\n [stateName]: resolvedTrail,\n },\n currentBreadcrumbId: stateName,\n },\n }\n}\n"],"names":["getBreadcrumbsHeader","header","buildBreadcrumbs","nodes","map","state","node","trail","current","parentKey","resolveBreadcrumbVariables","variables","context","resolved","key","value","match","ctxKey","patchBreadcrumbsHeader","patch","existing","hideBreadcrumb","breadcrumbId","breadcrumbsHeader","allBreadcrumbs","updatedBreadcrumbs","stateKey","b","updateBreadcrumbs","stateName","resolvedTrail","breadcrumb"],"mappings":"AAkBA,MAAMA,IAAuB,CAACC,MACxBA,GAAQ,SAAS,gBAAsBA,IACpC,EAAE,MAAM,cAAA,GAUJC,IAAmB,CAACC,MAA4C;AAC3E,QAAMC,IAAwC,CAAA;AAE9C,aAAW,CAACC,GAAOC,CAAI,KAAK,OAAO,QAAQH,CAAK,GAAG;AACjD,UAAMI,IAA0B,CAAA;AAChC,QAAIC,IAAiCF;AAErC,WAAOE,KAAS;AACd,MAAAD,EAAM,QAAQC,EAAQ,IAAI;AAC1B,YAAMC,IAA2BD,EAAQ;AACzC,MAAAA,IAAUC,IAAaN,EAAMM,CAAS,KAAK,OAAQ;AAAA,IACrD;AAEA,IAAAL,EAAIC,CAAK,IAAIE;AAAA,EACf;AAEA,SAAOH;AACT,GASaM,IAA6B,CACxCC,GACAC,MAC4B;AAC5B,MAAI,CAACD;AACH,WAAO,CAAA;AAGT,QAAME,IAAoC,CAAA;AAC1C,aAAW,CAACC,GAAKC,CAAK,KAAK,OAAO,QAAQJ,CAAS,GAAG;AACpD,UAAMK,IAAQD,EAAM,MAAM,WAAW;AACrC,QAAIC,IAAQ,CAAC,GAAG;AACd,YAAMC,IAASD,EAAM,CAAC,EAAE,KAAA;AACxB,MAAAH,EAASC,CAAG,IAAIF,EAAQK,CAAM,KAAK;AAAA,IACrC;AACE,MAAAJ,EAASC,CAAG,IAAIC;AAAA,EAEpB;AACA,SAAOF;AACT,GASaK,IAAyB,CACpCN,GACAO,MACsC;AACtC,QAAMC,IAAWpB,EAAqBY,EAAQ,MAAM;AACpD,SAAO,EAAE,GAAGA,GAAS,QAAQ,EAAE,GAAGQ,GAAU,GAAGD,IAAM;AACvD,GAOaE,IAAiB,CAAuBC,GAAsBV,MAAkB;AAC3F,QAAMW,IAAoBvB,EAAqBY,EAAQ,MAAM,GACvDY,IAAiBD,EAAkB,eAAe,CAAA,GAClDE,IAAqB,OAAO;AAAA,IAChC,OAAO,QAAQD,CAAc,EAAE,IAAI,CAAC,CAACE,GAAUnB,CAAK,MAAM;AAAA,MACxDmB;AAAA,MACAnB,EAAM,OAAO,CAAAoB,MAAKA,EAAE,OAAOL,CAAY;AAAA,IAAA,CACxC;AAAA,EAAA;AAEH,SAAO;AAAA,IACL,GAAGV;AAAA,IACH,QAAQ,EAAE,GAAGW,GAAmB,aAAaE,EAAA;AAAA,EAAmB;AAEpE,GAgCaG,IAAoB,CAC/BC,GACAjB,GACAD,MACsC;AACtC,QAAMY,IAAoBvB,EAAqBY,EAAQ,MAAM,GACvDY,IAAiBD,EAAkB,eAAe,CAAA,GAElDO,KADQN,EAAeK,CAAS,KAAK,CAAA,GACf,IAAI,CAAAE,OAAe;AAAA,IAC7C,GAAGA;AAAA,IACH,WAAWrB,EAA2BC,GAAWC,CAAkC;AAAA,EAAA,EACnF;AACF,SAAO;AAAA,IACL,GAAGA;AAAA,IACH,QAAQ;AAAA,MACN,GAAGW;AAAA,MACH,aAAa;AAAA,QACX,GAAGC;AAAA,QACH,CAACK,CAAS,GAAGC;AAAA,MAAA;AAAA,MAEf,qBAAqBD;AAAA,IAAA;AAAA,EACvB;AAEJ;"}
1
+ {"version":3,"file":"breadcrumbHelpers.js","sources":["../../src/helpers/breadcrumbHelpers.ts"],"sourcesContent":["import type {\n BreadcrumbNode,\n BreadcrumbNodes,\n BreadcrumbTrail,\n FlowBreadcrumb,\n} from '@/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport type { FlowHeaderConfig } from '@/components/Flow/useFlow'\n\ntype BreadcrumbsHeader = Extract<FlowHeaderConfig, { type: 'breadcrumbs' }>\n\ntype WithHeader = { header?: FlowHeaderConfig | null }\n\n/**\n * Returns the existing breadcrumbs header from a context, defaulting to a\n * blank breadcrumbs config when the header is missing or of a different\n * variant. Helpers below use this so callers don't need to manually narrow\n * the discriminated `header` union before mutating breadcrumb data.\n */\nconst getBreadcrumbsHeader = (header: FlowHeaderConfig | null | undefined): BreadcrumbsHeader => {\n if (header?.type === 'breadcrumbs') return header\n return { type: 'breadcrumbs' }\n}\n\n/**\n * Builds a complete breadcrumb trail map from a hierarchical node structure.\n *\n * Takes a tree structure of breadcrumb nodes and generates a map where each state\n * has its complete breadcrumb trail from root to that state. This is useful for\n * initializing breadcrumb navigation in state machines or multi-step flows.\n */\nexport const buildBreadcrumbs = (nodes: BreadcrumbNodes): BreadcrumbTrail => {\n const map: Record<string, FlowBreadcrumb[]> = {}\n\n for (const [state, node] of Object.entries(nodes)) {\n const trail: FlowBreadcrumb[] = []\n let current: BreadcrumbNode | null = node\n\n while (current) {\n trail.unshift(current.item)\n const parentKey: string | null = current.parent\n current = parentKey ? (nodes[parentKey] ?? null) : null\n }\n\n map[state] = trail\n }\n\n return map\n}\n\n/**\n * Resolves template variables in breadcrumb labels using values from a context object.\n *\n * Supports Handlebars-style template syntax (`{{variableName}}`) for dynamic breadcrumb labels.\n * Variables enclosed in double braces are replaced with their corresponding values from the context.\n * Non-template strings are returned as-is.\n */\nexport const resolveBreadcrumbVariables = (\n variables: Record<string, string> | undefined,\n context: Record<string, unknown>,\n): Record<string, unknown> => {\n if (!variables) {\n return {}\n }\n\n const resolved: Record<string, unknown> = {}\n for (const [key, value] of Object.entries(variables)) {\n const match = value.match(/{{(.*?)}}/)\n if (match?.[1]) {\n const ctxKey = match[1].trim()\n resolved[key] = context[ctxKey] ?? ''\n } else {\n resolved[key] = value\n }\n }\n return resolved\n}\n\n/**\n * Merges `patch` fields into the existing breadcrumbs header on a context,\n * preserving the existing trails and CTA. If the context has no breadcrumbs\n * header, a fresh one is created. Useful when a transition needs to flip\n * breadcrumbs visibility (`currentBreadcrumbId`) without rebuilding any\n * trails.\n */\nexport const patchBreadcrumbsHeader = <T extends WithHeader>(\n context: T,\n patch: Partial<Omit<BreadcrumbsHeader, 'type'>>,\n): T & { header: BreadcrumbsHeader } => {\n const existing = getBreadcrumbsHeader(context.header)\n return { ...context, header: { ...existing, ...patch } }\n}\n\n/**\n * Removes a breadcrumb from all trails in the context's breadcrumbs header.\n * Use this in state machine reducers to hide a step entirely (e.g. after\n * payroll submission).\n */\nexport const hideBreadcrumb = <T extends WithHeader>(breadcrumbId: string, context: T): T => {\n const breadcrumbsHeader = getBreadcrumbsHeader(context.header)\n const allBreadcrumbs = breadcrumbsHeader.breadcrumbs ?? {}\n const updatedBreadcrumbs = Object.fromEntries(\n Object.entries(allBreadcrumbs).map(([stateKey, trail]) => [\n stateKey,\n trail.filter(b => b.id !== breadcrumbId),\n ]),\n )\n return {\n ...context,\n header: { ...breadcrumbsHeader, breadcrumbs: updatedBreadcrumbs },\n }\n}\n\n/**\n * Marks a breadcrumb as non-navigable across all trails in the context's\n * breadcrumbs header. Use this in state machine reducers to disable backward\n * navigation to a specific step.\n */\nexport const lockBreadcrumb = <T extends WithHeader>(breadcrumbId: string, context: T): T => {\n const breadcrumbsHeader = getBreadcrumbsHeader(context.header)\n const allBreadcrumbs = breadcrumbsHeader.breadcrumbs ?? {}\n const updatedBreadcrumbs = Object.fromEntries(\n Object.entries(allBreadcrumbs).map(([stateKey, trail]) => [\n stateKey,\n trail.map(b => (b.id === breadcrumbId ? { ...b, isNavigable: false } : b)),\n ]),\n )\n return {\n ...context,\n header: { ...breadcrumbsHeader, breadcrumbs: updatedBreadcrumbs },\n }\n}\n\n/**\n * Updates the breadcrumb trail for a specific state with resolved variables\n * and switches the active breadcrumb to that state.\n *\n * This function is typically used in state machine transitions to update\n * breadcrumb navigation when moving between states. It preserves all existing\n * breadcrumb trails for other states and only updates the trail for the\n * specified state by resolving any template variables for that state's\n * breadcrumb. The resulting context's header is always of type `'breadcrumbs'`.\n */\nexport const updateBreadcrumbs = <T extends WithHeader>(\n stateName: string,\n context: T,\n variables?: Record<string, string>,\n): T & { header: BreadcrumbsHeader } => {\n const breadcrumbsHeader = getBreadcrumbsHeader(context.header)\n const allBreadcrumbs = breadcrumbsHeader.breadcrumbs ?? {}\n const trail = allBreadcrumbs[stateName] ?? []\n const resolvedTrail = trail.map(breadcrumb => ({\n ...breadcrumb,\n variables: resolveBreadcrumbVariables(variables, context as Record<string, unknown>),\n }))\n return {\n ...context,\n header: {\n ...breadcrumbsHeader,\n breadcrumbs: {\n ...allBreadcrumbs,\n [stateName]: resolvedTrail,\n },\n currentBreadcrumbId: stateName,\n },\n }\n}\n"],"names":["getBreadcrumbsHeader","header","buildBreadcrumbs","nodes","map","state","node","trail","current","parentKey","resolveBreadcrumbVariables","variables","context","resolved","key","value","match","ctxKey","patchBreadcrumbsHeader","patch","existing","hideBreadcrumb","breadcrumbId","breadcrumbsHeader","allBreadcrumbs","updatedBreadcrumbs","stateKey","b","updateBreadcrumbs","stateName","resolvedTrail","breadcrumb"],"mappings":"AAkBA,MAAMA,IAAuB,CAACC,MACxBA,GAAQ,SAAS,gBAAsBA,IACpC,EAAE,MAAM,cAAA,GAUJC,IAAmB,CAACC,MAA4C;AAC3E,QAAMC,IAAwC,CAAA;AAE9C,aAAW,CAACC,GAAOC,CAAI,KAAK,OAAO,QAAQH,CAAK,GAAG;AACjD,UAAMI,IAA0B,CAAA;AAChC,QAAIC,IAAiCF;AAErC,WAAOE,KAAS;AACd,MAAAD,EAAM,QAAQC,EAAQ,IAAI;AAC1B,YAAMC,IAA2BD,EAAQ;AACzC,MAAAA,IAAUC,IAAaN,EAAMM,CAAS,KAAK,OAAQ;AAAA,IACrD;AAEA,IAAAL,EAAIC,CAAK,IAAIE;AAAA,EACf;AAEA,SAAOH;AACT,GASaM,IAA6B,CACxCC,GACAC,MAC4B;AAC5B,MAAI,CAACD;AACH,WAAO,CAAA;AAGT,QAAME,IAAoC,CAAA;AAC1C,aAAW,CAACC,GAAKC,CAAK,KAAK,OAAO,QAAQJ,CAAS,GAAG;AACpD,UAAMK,IAAQD,EAAM,MAAM,WAAW;AACrC,QAAIC,IAAQ,CAAC,GAAG;AACd,YAAMC,IAASD,EAAM,CAAC,EAAE,KAAA;AACxB,MAAAH,EAASC,CAAG,IAAIF,EAAQK,CAAM,KAAK;AAAA,IACrC;AACE,MAAAJ,EAASC,CAAG,IAAIC;AAAA,EAEpB;AACA,SAAOF;AACT,GASaK,IAAyB,CACpCN,GACAO,MACsC;AACtC,QAAMC,IAAWpB,EAAqBY,EAAQ,MAAM;AACpD,SAAO,EAAE,GAAGA,GAAS,QAAQ,EAAE,GAAGQ,GAAU,GAAGD,IAAM;AACvD,GAOaE,IAAiB,CAAuBC,GAAsBV,MAAkB;AAC3F,QAAMW,IAAoBvB,EAAqBY,EAAQ,MAAM,GACvDY,IAAiBD,EAAkB,eAAe,CAAA,GAClDE,IAAqB,OAAO;AAAA,IAChC,OAAO,QAAQD,CAAc,EAAE,IAAI,CAAC,CAACE,GAAUnB,CAAK,MAAM;AAAA,MACxDmB;AAAA,MACAnB,EAAM,OAAO,CAAAoB,MAAKA,EAAE,OAAOL,CAAY;AAAA,IAAA,CACxC;AAAA,EAAA;AAEH,SAAO;AAAA,IACL,GAAGV;AAAA,IACH,QAAQ,EAAE,GAAGW,GAAmB,aAAaE,EAAA;AAAA,EAAmB;AAEpE,GAgCaG,IAAoB,CAC/BC,GACAjB,GACAD,MACsC;AACtC,QAAMY,IAAoBvB,EAAqBY,EAAQ,MAAM,GACvDY,IAAiBD,EAAkB,eAAe,CAAA,GAElDO,KADQN,EAAeK,CAAS,KAAK,CAAA,GACf,IAAI,CAAAE,OAAe;AAAA,IAC7C,GAAGA;AAAA,IACH,WAAWrB,EAA2BC,GAAWC,CAAkC;AAAA,EAAA,EACnF;AACF,SAAO;AAAA,IACL,GAAGA;AAAA,IACH,QAAQ;AAAA,MACN,GAAGW;AAAA,MACH,aAAa;AAAA,QACX,GAAGC;AAAA,QACH,CAACK,CAAS,GAAGC;AAAA,MAAA;AAAA,MAEf,qBAAqBD;AAAA,IAAA;AAAA,EACvB;AAEJ;"}
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * Normalizes string input to a 9 digit EIN format with two leading digits, a dash, and 7 trailing digits removing any non-numeric characters.
3
+ *
3
4
  * @param value - Raw string value to be formatted as a federal EIN
4
5
  * @returns String in the federal EIN format with all invalid characters removed
5
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"federalEin.js","sources":["../../src/helpers/federalEin.ts"],"sourcesContent":["import { useTranslation } from 'react-i18next'\n\n/**\n * Normalizes string input to a 9 digit EIN format with two leading digits, a dash, and 7 trailing digits removing any non-numeric characters.\n * @param value - Raw string value to be formatted as a federal EIN\n * @returns String in the federal EIN format with all invalid characters removed\n */\nexport const normalizeEin = (value: string) =>\n value\n .match(/\\d*/g)\n ?.join('')\n .match(/(\\d{0,2})(\\d{0,7})/)\n ?.slice(1)\n .filter(match => match !== '')\n .join('-')\n .substring(0, 10) || ''\n\nexport const createPlaceholderEin = (hasEin?: boolean, placeholderEin?: string) =>\n hasEin ? placeholderEin : ''\n\nexport const usePlaceholderEin = (hasEin?: boolean) => {\n const { t } = useTranslation('common')\n return createPlaceholderEin(hasEin, t('inputs.ein.placeholder'))\n}\n"],"names":["normalizeEin","value","match","createPlaceholderEin","hasEin","placeholderEin","usePlaceholderEin","t","useTranslation"],"mappings":";AAOO,MAAMA,IAAe,CAACC,MAC3BA,EACG,MAAM,MAAM,GACX,KAAK,EAAE,EACR,MAAM,oBAAoB,GACzB,MAAM,CAAC,EACR,OAAO,CAAAC,MAASA,MAAU,EAAE,EAC5B,KAAK,GAAG,EACR,UAAU,GAAG,EAAE,KAAK,IAEZC,IAAuB,CAACC,GAAkBC,MACrDD,IAASC,IAAiB,IAEfC,IAAoB,CAACF,MAAqB;AACrD,QAAM,EAAE,GAAAG,EAAA,IAAMC,EAAe,QAAQ;AACrC,SAAOL,EAAqBC,GAAQG,EAAE,wBAAwB,CAAC;AACjE;"}
1
+ {"version":3,"file":"federalEin.js","sources":["../../src/helpers/federalEin.ts"],"sourcesContent":["import { useTranslation } from 'react-i18next'\n\n/**\n * Normalizes string input to a 9 digit EIN format with two leading digits, a dash, and 7 trailing digits removing any non-numeric characters.\n *\n * @param value - Raw string value to be formatted as a federal EIN\n * @returns String in the federal EIN format with all invalid characters removed\n */\nexport const normalizeEin = (value: string) =>\n value\n .match(/\\d*/g)\n ?.join('')\n .match(/(\\d{0,2})(\\d{0,7})/)\n ?.slice(1)\n .filter(match => match !== '')\n .join('-')\n .substring(0, 10) || ''\n\nexport const createPlaceholderEin = (hasEin?: boolean, placeholderEin?: string) =>\n hasEin ? placeholderEin : ''\n\nexport const usePlaceholderEin = (hasEin?: boolean) => {\n const { t } = useTranslation('common')\n return createPlaceholderEin(hasEin, t('inputs.ein.placeholder'))\n}\n"],"names":["normalizeEin","value","match","createPlaceholderEin","hasEin","placeholderEin","usePlaceholderEin","t","useTranslation"],"mappings":";AAQO,MAAMA,IAAe,CAACC,MAC3BA,EACG,MAAM,MAAM,GACX,KAAK,EAAE,EACR,MAAM,oBAAoB,GACzB,MAAM,CAAC,EACR,OAAO,CAAAC,MAASA,MAAU,EAAE,EAC5B,KAAK,GAAG,EACR,UAAU,GAAG,EAAE,KAAK,IAEZC,IAAuB,CAACC,GAAkBC,MACrDD,IAASC,IAAiB,IAEfC,IAAoB,CAACF,MAAqB;AACrD,QAAM,EAAE,GAAAG,EAAA,IAAMC,EAAe,QAAQ;AACrC,SAAOL,EAAqBC,GAAQG,EAAE,wBAAwB,CAAC;AACjE;"}
@@ -1,20 +1,24 @@
1
1
  import { Transform } from '../components/Common/Fields/hooks/useField';
2
2
  /**
3
3
  * Formats a string according to a specified mask pattern.
4
+ *
4
5
  * @param value - The input string to format
5
6
  * @param mask - The mask pattern where:
6
- * # represents a digit (\d)
7
- * @ represents a letter ([a-zA-Z])
8
- * ^ represents an uppercase letter ([A-Z])
9
- * % represents a digit or uppercase letter ([0-9A-Z])
7
+ * `#` represents a digit (`\d`)
8
+ * `@` represents a letter (`[a-zA-Z]`)
9
+ * `^` represents an uppercase letter (`[A-Z]`)
10
+ * `%` represents a digit or uppercase letter (`[0-9A-Z]`)
10
11
  * any other character represents the literal character
11
12
  * @returns The formatted string according to the mask
13
+ *
12
14
  * @example
15
+ * ```ts
13
16
  * formatWithMask('123456789', '###-##-####') // returns '123-45-6789'
14
17
  * formatWithMask('ABC123', '@@@-###') // returns 'ABC-123'
15
18
  * formatWithMask('123456', '(###) ###-####') // returns '(123) 456'
16
19
  * formatWithMask('ABC123', '^^^-###') // returns 'ABC-123'
17
20
  * formatWithMask('A1B2C3', '%%%-%%%') // returns 'A1B-2C3'
21
+ * ```
18
22
  */
19
23
  export declare const formatWithMask: (value: string, mask: string | null) => string;
20
24
  export declare const useMaskedTransform: (mask: string | null) => Transform<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"mask.js","sources":["../../src/helpers/mask.ts"],"sourcesContent":["import type { Transform } from '@/components/Common/Fields/hooks/useField'\n\n/**\n * Formats a string according to a specified mask pattern.\n * @param value - The input string to format\n * @param mask - The mask pattern where:\n * # represents a digit (\\d)\n * @ represents a letter ([a-zA-Z])\n * ^ represents an uppercase letter ([A-Z])\n * % represents a digit or uppercase letter ([0-9A-Z])\n * any other character represents the literal character\n * @returns The formatted string according to the mask\n * @example\n * formatWithMask('123456789', '###-##-####') // returns '123-45-6789'\n * formatWithMask('ABC123', '@@@-###') // returns 'ABC-123'\n * formatWithMask('123456', '(###) ###-####') // returns '(123) 456'\n * formatWithMask('ABC123', '^^^-###') // returns 'ABC-123'\n * formatWithMask('A1B2C3', '%%%-%%%') // returns 'A1B-2C3'\n */\nexport const formatWithMask = (value: string, mask: string | null): string => {\n if (!value || !mask) return value\n\n // Remove all non-alphanumeric characters from the input\n const sanitizedValue = value.replace(/[^a-zA-Z0-9]/g, '')\n if (!sanitizedValue) return ''\n\n let result = ''\n let valueIndex = 0\n let maskIndex = 0\n\n while (maskIndex < mask.length) {\n const maskChar = mask.charAt(maskIndex)\n const valueChar = sanitizedValue.charAt(valueIndex)\n\n // If we've processed all input characters, stop\n if (valueIndex >= sanitizedValue.length) {\n break\n }\n\n switch (maskChar) {\n case '#':\n if (/\\d/.test(valueChar)) {\n result += valueChar\n valueIndex++\n } else {\n valueIndex++\n maskIndex--\n }\n break\n case '@':\n if (/[a-zA-Z]/.test(valueChar)) {\n result += valueChar\n valueIndex++\n } else {\n valueIndex++\n maskIndex--\n }\n break\n case '^':\n if (/[A-Z]/.test(valueChar)) {\n result += valueChar\n valueIndex++\n } else {\n valueIndex++\n maskIndex--\n }\n break\n case '%':\n if (/[0-9A-Z]/.test(valueChar)) {\n result += valueChar\n valueIndex++\n } else {\n valueIndex++\n maskIndex--\n }\n break\n default:\n // Always add literal characters from the mask\n result += maskChar\n // Increment valueIndex only if the current input character matches the literal mask character.\n if (maskChar === valueChar) {\n valueIndex++\n }\n }\n maskIndex++\n }\n\n return result.trim()\n}\n\nexport const useMaskedTransform = (mask: string | null): Transform<string> => {\n return (value: string) => formatWithMask(value, mask)\n}\n\nexport const commonMasks = {\n phoneMask: '(###) ###-####',\n}\n"],"names":["formatWithMask","value","mask","sanitizedValue","result","valueIndex","maskIndex","maskChar","valueChar","useMaskedTransform","commonMasks"],"mappings":"AAmBO,MAAMA,IAAiB,CAACC,GAAeC,MAAgC;AAC5E,MAAI,CAACD,KAAS,CAACC,EAAM,QAAOD;AAG5B,QAAME,IAAiBF,EAAM,QAAQ,iBAAiB,EAAE;AACxD,MAAI,CAACE,EAAgB,QAAO;AAE5B,MAAIC,IAAS,IACTC,IAAa,GACbC,IAAY;AAEhB,SAAOA,IAAYJ,EAAK,UAAQ;AAC9B,UAAMK,IAAWL,EAAK,OAAOI,CAAS,GAChCE,IAAYL,EAAe,OAAOE,CAAU;AAGlD,QAAIA,KAAcF,EAAe;AAC/B;AAGF,YAAQI,GAAA;AAAA,MACN,KAAK;AACH,QAAI,KAAK,KAAKC,CAAS,KACrBJ,KAAUI,GACVH,QAEAA,KACAC;AAEF;AAAA,MACF,KAAK;AACH,QAAI,WAAW,KAAKE,CAAS,KAC3BJ,KAAUI,GACVH,QAEAA,KACAC;AAEF;AAAA,MACF,KAAK;AACH,QAAI,QAAQ,KAAKE,CAAS,KACxBJ,KAAUI,GACVH,QAEAA,KACAC;AAEF;AAAA,MACF,KAAK;AACH,QAAI,WAAW,KAAKE,CAAS,KAC3BJ,KAAUI,GACVH,QAEAA,KACAC;AAEF;AAAA,MACF;AAEE,QAAAF,KAAUG,GAENA,MAAaC,KACfH;AAAA,IACF;AAEJ,IAAAC;AAAA,EACF;AAEA,SAAOF,EAAO,KAAA;AAChB,GAEaK,IAAqB,CAACP,MAC1B,CAACD,MAAkBD,EAAeC,GAAOC,CAAI,GAGzCQ,IAAc;AAAA,EACzB,WAAW;AACb;"}
1
+ {"version":3,"file":"mask.js","sources":["../../src/helpers/mask.ts"],"sourcesContent":["import type { Transform } from '@/components/Common/Fields/hooks/useField'\n\n/**\n * Formats a string according to a specified mask pattern.\n *\n * @param value - The input string to format\n * @param mask - The mask pattern where:\n * `#` represents a digit (`\\d`)\n * `@` represents a letter (`[a-zA-Z]`)\n * `^` represents an uppercase letter (`[A-Z]`)\n * `%` represents a digit or uppercase letter (`[0-9A-Z]`)\n * any other character represents the literal character\n * @returns The formatted string according to the mask\n *\n * @example\n * ```ts\n * formatWithMask('123456789', '###-##-####') // returns '123-45-6789'\n * formatWithMask('ABC123', '@@@-###') // returns 'ABC-123'\n * formatWithMask('123456', '(###) ###-####') // returns '(123) 456'\n * formatWithMask('ABC123', '^^^-###') // returns 'ABC-123'\n * formatWithMask('A1B2C3', '%%%-%%%') // returns 'A1B-2C3'\n * ```\n */\nexport const formatWithMask = (value: string, mask: string | null): string => {\n if (!value || !mask) return value\n\n // Remove all non-alphanumeric characters from the input\n const sanitizedValue = value.replace(/[^a-zA-Z0-9]/g, '')\n if (!sanitizedValue) return ''\n\n let result = ''\n let valueIndex = 0\n let maskIndex = 0\n\n while (maskIndex < mask.length) {\n const maskChar = mask.charAt(maskIndex)\n const valueChar = sanitizedValue.charAt(valueIndex)\n\n // If we've processed all input characters, stop\n if (valueIndex >= sanitizedValue.length) {\n break\n }\n\n switch (maskChar) {\n case '#':\n if (/\\d/.test(valueChar)) {\n result += valueChar\n valueIndex++\n } else {\n valueIndex++\n maskIndex--\n }\n break\n case '@':\n if (/[a-zA-Z]/.test(valueChar)) {\n result += valueChar\n valueIndex++\n } else {\n valueIndex++\n maskIndex--\n }\n break\n case '^':\n if (/[A-Z]/.test(valueChar)) {\n result += valueChar\n valueIndex++\n } else {\n valueIndex++\n maskIndex--\n }\n break\n case '%':\n if (/[0-9A-Z]/.test(valueChar)) {\n result += valueChar\n valueIndex++\n } else {\n valueIndex++\n maskIndex--\n }\n break\n default:\n // Always add literal characters from the mask\n result += maskChar\n // Increment valueIndex only if the current input character matches the literal mask character.\n if (maskChar === valueChar) {\n valueIndex++\n }\n }\n maskIndex++\n }\n\n return result.trim()\n}\n\nexport const useMaskedTransform = (mask: string | null): Transform<string> => {\n return (value: string) => formatWithMask(value, mask)\n}\n\nexport const commonMasks = {\n phoneMask: '(###) ###-####',\n}\n"],"names":["formatWithMask","value","mask","sanitizedValue","result","valueIndex","maskIndex","maskChar","valueChar","useMaskedTransform","commonMasks"],"mappings":"AAuBO,MAAMA,IAAiB,CAACC,GAAeC,MAAgC;AAC5E,MAAI,CAACD,KAAS,CAACC,EAAM,QAAOD;AAG5B,QAAME,IAAiBF,EAAM,QAAQ,iBAAiB,EAAE;AACxD,MAAI,CAACE,EAAgB,QAAO;AAE5B,MAAIC,IAAS,IACTC,IAAa,GACbC,IAAY;AAEhB,SAAOA,IAAYJ,EAAK,UAAQ;AAC9B,UAAMK,IAAWL,EAAK,OAAOI,CAAS,GAChCE,IAAYL,EAAe,OAAOE,CAAU;AAGlD,QAAIA,KAAcF,EAAe;AAC/B;AAGF,YAAQI,GAAA;AAAA,MACN,KAAK;AACH,QAAI,KAAK,KAAKC,CAAS,KACrBJ,KAAUI,GACVH,QAEAA,KACAC;AAEF;AAAA,MACF,KAAK;AACH,QAAI,WAAW,KAAKE,CAAS,KAC3BJ,KAAUI,GACVH,QAEAA,KACAC;AAEF;AAAA,MACF,KAAK;AACH,QAAI,QAAQ,KAAKE,CAAS,KACxBJ,KAAUI,GACVH,QAEAA,KACAC;AAEF;AAAA,MACF,KAAK;AACH,QAAI,WAAW,KAAKE,CAAS,KAC3BJ,KAAUI,GACVH,QAEAA,KACAC;AAEF;AAAA,MACF;AAEE,QAAAF,KAAUG,GAENA,MAAaC,KACfH;AAAA,IACF;AAEJ,IAAAC;AAAA,EACF;AAEA,SAAOF,EAAO,KAAA;AAChB,GAEaK,IAAqB,CAACP,MAC1B,CAACD,MAAkBD,EAAeC,GAAOC,CAAI,GAGzCQ,IAAc;AAAA,EACzB,WAAW;AACb;"}
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * Detects font-size on the document root element with fallback to 16px which is the default browser setting.
3
3
  * The value is cached after the first call to avoid repeated expensive getComputedStyle() calls.
4
- * @param options.forceRefresh - Force a fresh detection instead of using the cached value
4
+ *
5
+ * @param options - Set `forceRefresh` to force a fresh detection instead of using the cached value
5
6
  * @returns The root font size in pixels as a string
6
7
  */
7
8
  export declare function getRootFontSize(options?: {
@@ -1 +1 @@
1
- {"version":3,"file":"rem.js","sources":["../../src/helpers/rem.ts"],"sourcesContent":["let cachedRootFontSize: string | null = null\n\n/**\n * Detects font-size on the document root element with fallback to 16px which is the default browser setting.\n * The value is cached after the first call to avoid repeated expensive getComputedStyle() calls.\n * @param options.forceRefresh - Force a fresh detection instead of using the cached value\n * @returns The root font size in pixels as a string\n */\nexport function getRootFontSize(options?: { forceRefresh?: boolean }) {\n if (cachedRootFontSize && !options?.forceRefresh) {\n return cachedRootFontSize\n }\n\n const defaultFontSize = '16'\n\n if (typeof window === 'undefined') {\n cachedRootFontSize = defaultFontSize\n return defaultFontSize\n }\n\n const match = window\n .getComputedStyle(document.documentElement)\n .getPropertyValue('font-size')\n .match(/\\d+/)\n\n cachedRootFontSize = match ? match[0] : defaultFontSize\n return cachedRootFontSize\n}\n\nexport function toRem(pxValue: number) {\n return String(pxValue / Number(getRootFontSize())) + 'rem'\n}\n\nexport const remToPx = (rem: string | number) =>\n typeof rem === 'number'\n ? Number(getRootFontSize()) * rem\n : Number(getRootFontSize()) * Number(rem.replace('rem', ''))\n"],"names":["cachedRootFontSize","getRootFontSize","options","defaultFontSize","match","toRem","pxValue","remToPx","rem"],"mappings":"AAAA,IAAIA,IAAoC;AAQjC,SAASC,EAAgBC,GAAsC;AACpE,MAAIF;AACF,WAAOA;AAGT,QAAMG,IAAkB;AAExB,MAAI,OAAO,SAAW;AACpB,WAAAH,IAAqBG,GACdA;AAGT,QAAMC,IAAQ,OACX,iBAAiB,SAAS,eAAe,EACzC,iBAAiB,WAAW,EAC5B,MAAM,KAAK;AAEd,SAAAJ,IAAqBI,IAAQA,EAAM,CAAC,IAAID,GACjCH;AACT;AAEO,SAASK,EAAMC,GAAiB;AACrC,SAAO,OAAOA,IAAU,OAAOL,EAAA,CAAiB,CAAC,IAAI;AACvD;AAEO,MAAMM,IAAU,CAACC,MACtB,OAAOA,KAAQ,WACX,OAAOP,GAAiB,IAAIO,IAC5B,OAAOP,EAAA,CAAiB,IAAI,OAAOO,EAAI,QAAQ,OAAO,EAAE,CAAC;"}
1
+ {"version":3,"file":"rem.js","sources":["../../src/helpers/rem.ts"],"sourcesContent":["let cachedRootFontSize: string | null = null\n\n/**\n * Detects font-size on the document root element with fallback to 16px which is the default browser setting.\n * The value is cached after the first call to avoid repeated expensive getComputedStyle() calls.\n *\n * @param options - Set `forceRefresh` to force a fresh detection instead of using the cached value\n * @returns The root font size in pixels as a string\n */\nexport function getRootFontSize(options?: { forceRefresh?: boolean }) {\n if (cachedRootFontSize && !options?.forceRefresh) {\n return cachedRootFontSize\n }\n\n const defaultFontSize = '16'\n\n if (typeof window === 'undefined') {\n cachedRootFontSize = defaultFontSize\n return defaultFontSize\n }\n\n const match = window\n .getComputedStyle(document.documentElement)\n .getPropertyValue('font-size')\n .match(/\\d+/)\n\n cachedRootFontSize = match ? match[0] : defaultFontSize\n return cachedRootFontSize\n}\n\nexport function toRem(pxValue: number) {\n return String(pxValue / Number(getRootFontSize())) + 'rem'\n}\n\nexport const remToPx = (rem: string | number) =>\n typeof rem === 'number'\n ? Number(getRootFontSize()) * rem\n : Number(getRootFontSize()) * Number(rem.replace('rem', ''))\n"],"names":["cachedRootFontSize","getRootFontSize","options","defaultFontSize","match","toRem","pxValue","remToPx","rem"],"mappings":"AAAA,IAAIA,IAAoC;AASjC,SAASC,EAAgBC,GAAsC;AACpE,MAAIF;AACF,WAAOA;AAGT,QAAMG,IAAkB;AAExB,MAAI,OAAO,SAAW;AACpB,WAAAH,IAAqBG,GACdA;AAGT,QAAMC,IAAQ,OACX,iBAAiB,SAAS,eAAe,EACzC,iBAAiB,WAAW,EAC5B,MAAM,KAAK;AAEd,SAAAJ,IAAqBI,IAAQA,EAAM,CAAC,IAAID,GACjCH;AACT;AAEO,SAASK,EAAMC,GAAiB;AACrC,SAAO,OAAOA,IAAU,OAAOL,EAAA,CAAiB,CAAC,IAAI;AACvD;AAEO,MAAMM,IAAU,CAACC,MACtB,OAAOA,KAAQ,WACX,OAAOP,GAAiB,IAAIO,IAC5B,OAAOP,EAAA,CAAiB,IAAI,OAAOO,EAAI,QAAQ,OAAO,EAAE,CAAC;"}
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * Triggers re-render of a component to allow ErrorBoundary to catch a thrown error - that way we can handle all exceptions from asynchrounous functions in the same way and catch them in react boundary
3
+ *
3
4
  * @returns Function
4
5
  */
5
6
  export declare const useAsyncError: () => (e: unknown) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"useAsyncError.js","sources":["../../src/hooks/useAsyncError.tsx"],"sourcesContent":["import React from 'react'\n/**\n * Triggers re-render of a component to allow ErrorBoundary to catch a thrown error - that way we can handle all exceptions from asynchrounous functions in the same way and catch them in react boundary\n * @returns Function\n */\nexport const useAsyncError = () => {\n const [_, setError] = React.useState()\n return React.useCallback(\n (e: unknown) => {\n const err = e instanceof Error ? e : new Error(typeof e === 'string' ? e : 'Unknown error')\n setError(() => {\n throw err\n })\n },\n [setError],\n )\n}\n"],"names":["useAsyncError","_","setError","React","e","err"],"mappings":";AAKO,MAAMA,IAAgB,MAAM;AACjC,QAAM,CAACC,GAAGC,CAAQ,IAAIC,EAAM,SAAA;AAC5B,SAAOA,EAAM;AAAA,IACX,CAACC,MAAe;AACd,YAAMC,IAAMD,aAAa,QAAQA,IAAI,IAAI,MAAM,OAAOA,KAAM,WAAWA,IAAI,eAAe;AAC1F,MAAAF,EAAS,MAAM;AACb,cAAMG;AAAA,MACR,CAAC;AAAA,IACH;AAAA,IACA,CAACH,CAAQ;AAAA,EAAA;AAEb;"}
1
+ {"version":3,"file":"useAsyncError.js","sources":["../../src/hooks/useAsyncError.tsx"],"sourcesContent":["import React from 'react'\n/**\n * Triggers re-render of a component to allow ErrorBoundary to catch a thrown error - that way we can handle all exceptions from asynchrounous functions in the same way and catch them in react boundary\n *\n * @returns Function\n */\nexport const useAsyncError = () => {\n const [_, setError] = React.useState()\n return React.useCallback(\n (e: unknown) => {\n const err = e instanceof Error ? e : new Error(typeof e === 'string' ? e : 'Unknown error')\n setError(() => {\n throw err\n })\n },\n [setError],\n )\n}\n"],"names":["useAsyncError","_","setError","React","e","err"],"mappings":";AAMO,MAAMA,IAAgB,MAAM;AACjC,QAAM,CAACC,GAAGC,CAAQ,IAAIC,EAAM,SAAA;AAC5B,SAAOA,EAAM;AAAA,IACX,CAACC,MAAe;AACd,YAAMC,IAAMD,aAAa,QAAQA,IAAI,IAAI,MAAM,OAAOA,KAAM,WAAWA,IAAI,eAAe;AAC1F,MAAAF,EAAS,MAAM;AACb,cAAMG;AAAA,MACR,CAAC;AAAA,IACH;AAAA,IACA,CAACH,CAAQ;AAAA,EAAA;AAEb;"}
@@ -1,6 +1,7 @@
1
1
  import { Ref, RefCallback } from 'react';
2
2
  /**
3
3
  * Sets multiple refs with a single handler.
4
+ *
4
5
  * @param refs - The refs to set.
5
6
  * @returns A single ref handler that sets all the provided refs which can be passed to the `ref` prop of a component.
6
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"useForkRef.js","sources":["../../../src/hooks/useForkRef/useForkRef.ts"],"sourcesContent":["import { type Ref, type RefCallback, type RefObject, useMemo } from 'react'\n\nconst setRef = <T>(\n ref: RefObject<T | null> | ((instance: T | null) => void) | null | undefined,\n value: T | null,\n) => {\n if (typeof ref === 'function') ref(value)\n else if (ref) ref.current = value\n}\n\n/**\n * Sets multiple refs with a single handler.\n * @param refs - The refs to set.\n * @returns A single ref handler that sets all the provided refs which can be passed to the `ref` prop of a component.\n */\nexport const useForkRef = <Instance>(\n ...refs: Array<Ref<Instance> | undefined>\n): RefCallback<Instance> | null => {\n return useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null\n }\n\n return instance => {\n refs.forEach(ref => {\n setRef(ref, instance)\n })\n }\n }, [refs])\n}\n"],"names":["setRef","ref","value","useForkRef","refs","useMemo","instance"],"mappings":";AAEA,MAAMA,IAAS,CACbC,GACAC,MACG;AACH,EAAI,OAAOD,KAAQ,aAAYA,EAAIC,CAAK,IAC/BD,QAAS,UAAUC;AAC9B,GAOaC,IAAa,IACrBC,MAEIC,EAAQ,MACTD,EAAK,MAAM,CAAAH,MAAOA,KAAO,IAAI,IACxB,OAGF,CAAAK,MAAY;AACjB,EAAAF,EAAK,QAAQ,CAAAH,MAAO;AAClB,IAAAD,EAAOC,GAAKK,CAAQ;AAAA,EACtB,CAAC;AACH,GACC,CAACF,CAAI,CAAC;"}
1
+ {"version":3,"file":"useForkRef.js","sources":["../../../src/hooks/useForkRef/useForkRef.ts"],"sourcesContent":["import { type Ref, type RefCallback, type RefObject, useMemo } from 'react'\n\nconst setRef = <T>(\n ref: RefObject<T | null> | ((instance: T | null) => void) | null | undefined,\n value: T | null,\n) => {\n if (typeof ref === 'function') ref(value)\n else if (ref) ref.current = value\n}\n\n/**\n * Sets multiple refs with a single handler.\n *\n * @param refs - The refs to set.\n * @returns A single ref handler that sets all the provided refs which can be passed to the `ref` prop of a component.\n */\nexport const useForkRef = <Instance>(\n ...refs: Array<Ref<Instance> | undefined>\n): RefCallback<Instance> | null => {\n return useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null\n }\n\n return instance => {\n refs.forEach(ref => {\n setRef(ref, instance)\n })\n }\n }, [refs])\n}\n"],"names":["setRef","ref","value","useForkRef","refs","useMemo","instance"],"mappings":";AAEA,MAAMA,IAAS,CACbC,GACAC,MACG;AACH,EAAI,OAAOD,KAAQ,aAAYA,EAAIC,CAAK,IAC/BD,QAAS,UAAUC;AAC9B,GAQaC,IAAa,IACrBC,MAEIC,EAAQ,MACTD,EAAK,MAAM,CAAAH,MAAOA,KAAO,IAAI,IACxB,OAGF,CAAAK,MAAY;AACjB,EAAAF,EAAK,QAAQ,CAAAH,MAAO;AAClB,IAAAD,EAAOC,GAAKK,CAAQ;AAAA,EACtB,CAAC;AACH,GACC,CAACF,CAAI,CAAC;"}
@@ -1,9 +1,17 @@
1
1
  import { CustomTypeOptions } from 'i18next';
2
2
  import { ResourceDictionary, Resources } from '../types/Helpers';
3
+ /** @internal */
3
4
  export declare const defaultNS = "common";
4
5
  /**
5
6
  * Hook that allows component to load custom dictionary
6
- * @param @private {string} ns - Namespace - should match component name exactly - not exposed to consumers
7
+ *
8
+ * @param ns - Namespace - should match component name exactly - not exposed to consumers
9
+ * @internal
7
10
  */
8
11
  export declare const useI18n: (namespaces: keyof CustomTypeOptions["resources"] | Array<keyof CustomTypeOptions["resources"]> | null) => void;
12
+ /**
13
+ * Used by individual components to override their dictionaries with partner provided resources
14
+ *
15
+ * @internal
16
+ */
9
17
  export declare const useComponentDictionary: <K extends keyof Resources>(ns: keyof CustomTypeOptions["resources"], resource?: ResourceDictionary<K> | null) => void;