@gusto/embedded-react-sdk 0.27.0 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/dist/components/Common/DataView/DataCards/DataCards.d.ts +4 -2
  3. package/dist/components/Common/DataView/DataCards/DataCards.js +52 -32
  4. package/dist/components/Common/DataView/DataCards/DataCards.js.map +1 -1
  5. package/dist/components/Common/DataView/DataTable/DataTable.d.ts +3 -2
  6. package/dist/components/Common/DataView/DataTable/DataTable.js +68 -53
  7. package/dist/components/Common/DataView/DataTable/DataTable.js.map +1 -1
  8. package/dist/components/Common/DataView/DataView.d.ts +4 -2
  9. package/dist/components/Common/DataView/DataView.js +28 -18
  10. package/dist/components/Common/DataView/DataView.js.map +1 -1
  11. package/dist/components/Common/DataView/useDataView.d.ts +6 -1
  12. package/dist/components/Common/DataView/useDataView.js +34 -19
  13. package/dist/components/Common/DataView/useDataView.js.map +1 -1
  14. package/dist/components/Common/Fields/PercentageField/PercentageField.d.ts +8 -0
  15. package/dist/components/Common/Fields/PercentageField/PercentageField.js +58 -0
  16. package/dist/components/Common/Fields/PercentageField/PercentageField.js.map +1 -0
  17. package/dist/components/Common/Fields/PercentageField/index.d.ts +2 -0
  18. package/dist/components/Common/SignatureForm/SignatureForm.js +11 -12
  19. package/dist/components/Common/SignatureForm/SignatureForm.js.map +1 -1
  20. package/dist/components/Common/SignatureForm/SignatureFormActions.js +3 -4
  21. package/dist/components/Common/SignatureForm/SignatureFormActions.js.map +1 -1
  22. package/dist/components/Common/SignatureForm/SignatureFormFields.js +7 -8
  23. package/dist/components/Common/SignatureForm/SignatureFormFields.js.map +1 -1
  24. package/dist/components/Common/TaxInputs/TaxInputs.js +125 -98
  25. package/dist/components/Common/TaxInputs/TaxInputs.js.map +1 -1
  26. package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js +1 -1
  27. package/dist/components/Common/UI/Card/Card.d.ts +1 -1
  28. package/dist/components/Common/UI/Card/Card.js +10 -20
  29. package/dist/components/Common/UI/Card/Card.js.map +1 -1
  30. package/dist/components/Common/UI/Card/CardTypes.d.ts +4 -4
  31. package/dist/components/Common/UI/FileInput/FileInput.js +1 -1
  32. package/dist/components/Common/UI/ProgressBar/ProgressBar.js +4 -4
  33. package/dist/components/Common/UI/Tabs/Tabs.module.scss.js +5 -5
  34. package/dist/components/Company/AssignSignatory/AssignSignatory.js +1 -1
  35. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +3 -4
  36. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
  37. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +2 -3
  38. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
  39. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +1 -1
  40. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +17 -16
  41. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
  42. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -5
  43. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  44. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +2 -3
  45. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
  46. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +1 -1
  47. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +6 -5
  48. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
  49. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -5
  50. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  51. package/dist/components/Company/AssignSignatory/TitleSelect.js +1 -1
  52. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -7
  53. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  54. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +6 -6
  55. package/dist/components/Company/BankAccount/BankAccountForm/Form.js +5 -6
  56. package/dist/components/Company/BankAccount/BankAccountForm/Form.js.map +1 -1
  57. package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -5
  58. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  59. package/dist/components/Company/BankAccount/BankAccountList/Actions.js +2 -3
  60. package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
  61. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +6 -7
  62. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
  63. package/dist/components/Company/BankAccount/BankAccountVerify/Form.js +5 -6
  64. package/dist/components/Company/BankAccount/BankAccountVerify/Form.js.map +1 -1
  65. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +2 -3
  66. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
  67. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +2 -2
  68. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -5
  69. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  70. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +2 -2
  71. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +3 -5
  72. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  73. package/dist/components/Company/FederalTaxes/Actions.js +6 -7
  74. package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
  75. package/dist/components/Company/FederalTaxes/FederalTaxes.js +2 -2
  76. package/dist/components/Company/FederalTaxes/Form.js +3 -4
  77. package/dist/components/Company/FederalTaxes/Form.js.map +1 -1
  78. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +8 -10
  79. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  80. package/dist/components/Company/Industry/Actions.js +7 -8
  81. package/dist/components/Company/Industry/Actions.js.map +1 -1
  82. package/dist/components/Company/Industry/Context.js +6 -8
  83. package/dist/components/Company/Industry/Context.js.map +1 -1
  84. package/dist/components/Company/Industry/Edit.js +2 -3
  85. package/dist/components/Company/Industry/Edit.js.map +1 -1
  86. package/dist/components/Company/Locations/LocationForm/Actions.js +6 -7
  87. package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
  88. package/dist/components/Company/Locations/LocationForm/Form.js +6 -5
  89. package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
  90. package/dist/components/Company/Locations/LocationForm/LocationForm.js +2 -2
  91. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -5
  92. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  93. package/dist/components/Company/Locations/LocationsList/Actions.js +2 -3
  94. package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
  95. package/dist/components/Company/Locations/LocationsList/List.js +6 -7
  96. package/dist/components/Company/Locations/LocationsList/List.js.map +1 -1
  97. package/dist/components/Company/Locations/LocationsList/LocationsList.js +39 -56
  98. package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
  99. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -5
  100. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  101. package/dist/components/Company/OnboardingOverview/Completed.js +2 -3
  102. package/dist/components/Company/OnboardingOverview/Completed.js.map +1 -1
  103. package/dist/components/Company/OnboardingOverview/MissingRequirements.js +2 -3
  104. package/dist/components/Company/OnboardingOverview/MissingRequirements.js.map +1 -1
  105. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +2 -2
  106. package/dist/components/Company/OnboardingOverview/context.js +3 -5
  107. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  108. package/dist/components/Company/PaySchedule/PaySchedule.js +2 -2
  109. package/dist/components/Company/PaySchedule/_parts/Actions.js +2 -3
  110. package/dist/components/Company/PaySchedule/_parts/Actions.js.map +1 -1
  111. package/dist/components/Company/PaySchedule/_parts/Edit.js +24 -23
  112. package/dist/components/Company/PaySchedule/_parts/Edit.js.map +1 -1
  113. package/dist/components/Company/PaySchedule/_parts/Head.js +8 -9
  114. package/dist/components/Company/PaySchedule/_parts/Head.js.map +1 -1
  115. package/dist/components/Company/PaySchedule/_parts/List.js +11 -12
  116. package/dist/components/Company/PaySchedule/_parts/List.js.map +1 -1
  117. package/dist/components/Company/PaySchedule/usePaySchedule.js +5 -7
  118. package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
  119. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +2 -3
  120. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
  121. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js +60 -67
  122. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js.map +1 -1
  123. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -5
  124. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  125. package/dist/components/Company/StateTaxes/StateTaxesForm/index.d.ts +2 -0
  126. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +2 -3
  127. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
  128. package/dist/components/Company/StateTaxes/StateTaxesList/List.js +2 -3
  129. package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
  130. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -5
  131. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  132. package/dist/components/Company/StateTaxes/StateTaxesList/index.d.ts +2 -0
  133. package/dist/components/Company/index.d.ts +2 -0
  134. package/dist/components/Company/index.js +21 -17
  135. package/dist/components/Company/index.js.map +1 -1
  136. package/dist/components/Contractor/Address/Address.js +2 -2
  137. package/dist/components/Contractor/Address/Form.js +11 -10
  138. package/dist/components/Contractor/Address/Form.js.map +1 -1
  139. package/dist/components/Contractor/Address/useAddress.js +5 -7
  140. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  141. package/dist/components/Contractor/ContractorList/index.js +17 -17
  142. package/dist/components/Contractor/ContractorList/useContractorList.d.ts +8 -8
  143. package/dist/components/Contractor/ContractorList/useContractorList.js +9 -25
  144. package/dist/components/Contractor/ContractorList/useContractorList.js.map +1 -1
  145. package/dist/components/Contractor/PaymentMethod/BankAccountForm.js +11 -12
  146. package/dist/components/Contractor/PaymentMethod/BankAccountForm.js.map +1 -1
  147. package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js +2 -2
  148. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js +2 -3
  149. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js.map +1 -1
  150. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js +23 -22
  151. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js.map +1 -1
  152. package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js +7 -8
  153. package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js.map +1 -1
  154. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js +1 -1
  155. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.d.ts +1 -0
  156. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js +38 -24
  157. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js.map +1 -1
  158. package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.d.ts +1 -0
  159. package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.js +95 -60
  160. package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.js.map +1 -1
  161. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js +2 -3
  162. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js.map +1 -1
  163. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js +6 -7
  164. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js.map +1 -1
  165. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.js +2 -3
  166. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.js.map +1 -1
  167. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js +67 -42
  168. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js.map +1 -1
  169. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.d.ts +3 -1
  170. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +40 -36
  171. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
  172. package/dist/components/Contractor/Payments/types.d.ts +2 -0
  173. package/dist/components/Contractor/Profile/ContractorProfileForm.js +15 -15
  174. package/dist/components/Contractor/Profile/useContractorProfile.js +2 -3
  175. package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
  176. package/dist/components/Contractor/Submit/Submit.js +1 -1
  177. package/dist/components/Employee/Compensation/Actions.js +1 -1
  178. package/dist/components/Employee/Compensation/Edit.js +14 -14
  179. package/dist/components/Employee/Compensation/List.js +22 -23
  180. package/dist/components/Employee/Compensation/List.js.map +1 -1
  181. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js +10 -12
  182. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js.map +1 -1
  183. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js +11 -13
  184. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js.map +1 -1
  185. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js +11 -13
  186. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js.map +1 -1
  187. package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js +1 -1
  188. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js +3 -2
  189. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js.map +1 -1
  190. package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js +2 -3
  191. package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js.map +1 -1
  192. package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js +1 -1
  193. package/dist/components/Employee/DocumentSigner/DocumentList/List.js +2 -3
  194. package/dist/components/Employee/DocumentSigner/DocumentList/List.js.map +1 -1
  195. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +3 -5
  196. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  197. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js +1 -1
  198. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +3 -5
  199. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  200. package/dist/components/Employee/EmployeeList/Actions.js +6 -7
  201. package/dist/components/Employee/EmployeeList/Actions.js.map +1 -1
  202. package/dist/components/Employee/EmployeeList/EmployeeList.js +77 -95
  203. package/dist/components/Employee/EmployeeList/EmployeeList.js.map +1 -1
  204. package/dist/components/Employee/EmployeeList/Head.js +2 -3
  205. package/dist/components/Employee/EmployeeList/Head.js.map +1 -1
  206. package/dist/components/Employee/EmployeeList/List.js +12 -12
  207. package/dist/components/Employee/EmployeeList/useEmployeeList.js +3 -5
  208. package/dist/components/Employee/EmployeeList/useEmployeeList.js.map +1 -1
  209. package/dist/components/Employee/FederalTaxes/Actions.js +5 -6
  210. package/dist/components/Employee/FederalTaxes/Actions.js.map +1 -1
  211. package/dist/components/Employee/FederalTaxes/FederalForm.js +11 -12
  212. package/dist/components/Employee/FederalTaxes/FederalForm.js.map +1 -1
  213. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js +3 -5
  214. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js.map +1 -1
  215. package/dist/components/Employee/Landing/Landing.js +8 -8
  216. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +7 -7
  217. package/dist/components/Employee/PaymentMethod/Actions.js +5 -6
  218. package/dist/components/Employee/PaymentMethod/Actions.js.map +1 -1
  219. package/dist/components/Employee/PaymentMethod/BankAccountEdit.js +3 -3
  220. package/dist/components/Employee/PaymentMethod/BankAccountsList.js +6 -6
  221. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js +2 -2
  222. package/dist/components/Employee/PaymentMethod/Split.js +9 -9
  223. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +5 -7
  224. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
  225. package/dist/components/Employee/Profile/Actions.js +5 -6
  226. package/dist/components/Employee/Profile/Actions.js.map +1 -1
  227. package/dist/components/Employee/Profile/AdminPersonalDetails.js +5 -6
  228. package/dist/components/Employee/Profile/AdminPersonalDetails.js.map +1 -1
  229. package/dist/components/Employee/Profile/HomeAddress.js +10 -9
  230. package/dist/components/Employee/Profile/HomeAddress.js.map +1 -1
  231. package/dist/components/Employee/Profile/PersonalDetailsInputs.js +3 -3
  232. package/dist/components/Employee/Profile/useProfile.js +3 -5
  233. package/dist/components/Employee/Profile/useProfile.js.map +1 -1
  234. package/dist/components/Employee/StateTaxes/Actions.js +5 -6
  235. package/dist/components/Employee/StateTaxes/Actions.js.map +1 -1
  236. package/dist/components/Employee/StateTaxes/useStateTaxes.js +3 -5
  237. package/dist/components/Employee/StateTaxes/useStateTaxes.js.map +1 -1
  238. package/dist/components/Employee/Taxes/Actions.js +6 -7
  239. package/dist/components/Employee/Taxes/Actions.js.map +1 -1
  240. package/dist/components/Employee/Taxes/FederalForm.js +13 -14
  241. package/dist/components/Employee/Taxes/FederalForm.js.map +1 -1
  242. package/dist/components/Employee/Taxes/useTaxes.js +3 -5
  243. package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
  244. package/dist/components/Flow/Flow.js +2 -3
  245. package/dist/components/Flow/Flow.js.map +1 -1
  246. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js +16 -16
  247. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js.map +1 -1
  248. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js +20 -20
  249. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js.map +1 -1
  250. package/dist/components/InformationRequests/InformationRequests.js +1 -1
  251. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +9 -9
  252. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateFormPresentation.js +11 -12
  253. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateFormPresentation.js.map +1 -1
  254. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js +2 -3
  255. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
  256. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js +12 -12
  257. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +3 -2
  258. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  259. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js +50 -68
  260. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
  261. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +39 -38
  262. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  263. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js +17 -18
  264. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
  265. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +2 -3
  266. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  267. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +2 -3
  268. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  269. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +3 -2
  270. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  271. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js +2 -3
  272. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js.map +1 -1
  273. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +2 -3
  274. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  275. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js +1 -1
  276. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js +6 -6
  277. package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js +2 -3
  278. package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js.map +1 -1
  279. package/dist/components/Payroll/usePreparedPayrollData.js +5 -7
  280. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  281. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +2 -4
  282. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  283. package/dist/helpers/formattedStrings.js +11 -12
  284. package/dist/helpers/formattedStrings.js.map +1 -1
  285. package/dist/helpers/percentageConversion.d.ts +3 -0
  286. package/dist/helpers/percentageConversion.js +27 -0
  287. package/dist/helpers/percentageConversion.js.map +1 -0
  288. package/dist/helpers/percentageConversion.test.d.ts +1 -0
  289. package/dist/hooks/usePagination/usePagination.d.ts +15 -0
  290. package/dist/hooks/usePagination/usePagination.js +37 -0
  291. package/dist/hooks/usePagination/usePagination.js.map +1 -0
  292. package/dist/hooks/usePagination/usePagination.test.d.ts +1 -0
  293. package/dist/i18n/en/Company.StateTaxes.json.js +1 -1
  294. package/dist/i18n/en/Contractor.Payments.PaymentsList.json.js +28 -28
  295. package/dist/i18n/en/InformationRequests.InformationRequestList.json.js +18 -16
  296. package/dist/i18n/en/InformationRequests.InformationRequestList.json.js.map +1 -1
  297. package/dist/i18n/en/common.json.d.ts +3 -1
  298. package/dist/i18n/en/common.json.js +1 -1
  299. package/dist/shared/constants.d.ts +2 -0
  300. package/dist/shared/constants.js +11 -10
  301. package/dist/shared/constants.js.map +1 -1
  302. package/dist/style.css +1 -1
  303. package/dist/types/i18next.d.ts +8 -0
  304. package/package.json +9 -9
package/CHANGELOG.md CHANGED
@@ -1,5 +1,63 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.29.0
4
+
5
+ ### Features & Enhancements
6
+
7
+ - Export StateTaxesList and StateTaxesForm from Company API
8
+ - Add RFI alerts to contractor payment list
9
+
10
+ ### Fixes
11
+
12
+ - Convert state tax percentage inputs from decimal to human-readable format
13
+ - Improve UI of tab component
14
+
15
+ ### Chores & Maintenance
16
+
17
+ - Rewrite contractor onboarding documentation
18
+ - Implement semver-based PR title validation and auto-versioning
19
+ - Switch auto-version workflow to manual dispatch
20
+ - Add reusable pagination hook and refactor components
21
+ - Improve cursor commands for branch creation and PR defaults
22
+ - Bump @storybook/addon-a11y, addon-docs, addon-onboarding, react-vite from 10.2.8 to 10.2.9
23
+ - Bump typescript-eslint from 8.55.0 to 8.56.0
24
+ - Bump i18next from 25.8.5 to 25.8.8
25
+ - Bump react-error-boundary from 6.1.0 to 6.1.1
26
+ - Bump dotenv from 17.2.4 to 17.3.1
27
+
28
+ ## 0.28.0
29
+
30
+ ### Features & Enhancements
31
+
32
+ - Extend DataTable for radio selection mode
33
+ - Update InformationRequests empty state title and remove description
34
+
35
+ ### Breaking changes
36
+
37
+ #### Card component adapter (selection props)
38
+
39
+ If you supply a custom **Card** via the [component adapter](./docs/component-adapter/component-adapter.md), update it to use the new API: the Card no longer receives `onSelect`. Selection UI (checkbox or radio) is now passed as the `action` prop.
40
+
41
+ ```tsx
42
+ // Before: Card received onSelect and rendered its own checkbox
43
+ Card: ({ children, menu, className, onSelect }) => (
44
+ <div className={className}>
45
+ {onSelect && <input type="checkbox" onChange={e => onSelect(e.target.checked)} />}
46
+ {children}
47
+ {menu}
48
+ </div>
49
+ )
50
+
51
+ // After: Card receives pre-rendered selection UI via action
52
+ Card: ({ children, menu, className, action }) => (
53
+ <div className={className}>
54
+ {action}
55
+ {children}
56
+ {menu}
57
+ </div>
58
+ )
59
+ ```
60
+
3
61
  ## 0.27.0
4
62
 
5
63
  ### Features & Enhancements
@@ -1,10 +1,12 @@
1
- import { useDataViewPropReturn } from '../useDataView';
1
+ import { useDataViewPropReturn, SelectionMode } from '../useDataView';
2
2
  export type DataCardsProps<T> = {
3
3
  columns: useDataViewPropReturn<T>['columns'];
4
4
  data: useDataViewPropReturn<T>['data'];
5
5
  itemMenu?: useDataViewPropReturn<T>['itemMenu'];
6
6
  onSelect?: useDataViewPropReturn<T>['onSelect'];
7
+ isItemSelected?: useDataViewPropReturn<T>['isItemSelected'];
7
8
  emptyState?: useDataViewPropReturn<T>['emptyState'];
8
9
  footer?: useDataViewPropReturn<T>['footer'];
10
+ selectionMode?: SelectionMode;
9
11
  };
10
- export declare const DataCards: <T>({ data, columns, itemMenu, onSelect, emptyState, footer, }: DataCardsProps<T>) => import("react/jsx-runtime").JSX.Element;
12
+ export declare const DataCards: <T>({ data, columns, itemMenu, onSelect, isItemSelected, emptyState, footer, selectionMode, }: DataCardsProps<T>) => import("react/jsx-runtime").JSX.Element;
@@ -1,41 +1,61 @@
1
- import { jsxs as n, jsx as r } from "react/jsx-runtime";
2
- import d from "./DataCards.module.scss.js";
3
- import { Flex as C } from "../../Flex/Flex.js";
4
- import { useComponentContext as v } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
5
- const D = ({
6
- data: o,
7
- columns: h,
8
- itemMenu: s,
9
- onSelect: a,
10
- emptyState: c,
11
- footer: m
1
+ import { jsxs as a, jsx as l } from "react/jsx-runtime";
2
+ import { useId as g } from "react";
3
+ import { useTranslation as x } from "react-i18next";
4
+ import s from "./DataCards.module.scss.js";
5
+ import { Flex as L } from "../../Flex/Flex.js";
6
+ import { useComponentContext as N } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
7
+ const H = ({
8
+ data: d,
9
+ columns: p,
10
+ itemMenu: c,
11
+ onSelect: o,
12
+ isItemSelected: f,
13
+ emptyState: m,
14
+ footer: h,
15
+ selectionMode: C = "multiple"
12
16
  }) => {
13
- const i = v();
14
- return /* @__PURE__ */ n("div", { role: "list", "data-testid": "data-cards", children: [
15
- o.length === 0 && c && /* @__PURE__ */ r("div", { role: "listitem", children: /* @__PURE__ */ r(i.Card, { children: c() }) }),
16
- o.map((t, l) => /* @__PURE__ */ r("div", { role: "listitem", children: /* @__PURE__ */ r(
17
- i.Card,
17
+ const i = N(), { t: u } = x("common"), v = g(), b = (e, t) => {
18
+ if (!o) return;
19
+ const r = f?.(e, t) ?? !1;
20
+ return C === "single" ? /* @__PURE__ */ l(
21
+ i.Radio,
18
22
  {
19
- menu: s && s(t),
20
- onSelect: a ? (e) => {
21
- a(t, e);
22
- } : void 0,
23
- children: h.map((e, p) => /* @__PURE__ */ n(C, { flexDirection: "column", gap: 0, children: [
24
- e.title && /* @__PURE__ */ r("h5", { className: d.columnTitle, children: e.title }),
25
- /* @__PURE__ */ n("div", { className: d.columnData, children: [
26
- " ",
27
- e.render ? e.render(t) : String(t[e.key])
28
- ] })
29
- ] }, p))
23
+ name: v,
24
+ value: r,
25
+ onChange: () => {
26
+ o(e, !0);
27
+ },
28
+ label: u("card.selectRowLabel"),
29
+ shouldVisuallyHideLabel: !0
30
30
  }
31
- ) }, l)),
32
- m && /* @__PURE__ */ r("div", { role: "listitem", children: /* @__PURE__ */ r(i.Card, { children: (() => {
33
- const t = m();
34
- return Object.entries(t).map(([l, e]) => /* @__PURE__ */ r("div", { className: d.footerItem, children: e }, l));
31
+ ) : /* @__PURE__ */ l(
32
+ i.Checkbox,
33
+ {
34
+ value: r,
35
+ onChange: (n) => {
36
+ o(e, n);
37
+ },
38
+ label: u("card.selectRowLabel"),
39
+ shouldVisuallyHideLabel: !0
40
+ }
41
+ );
42
+ };
43
+ return /* @__PURE__ */ a("div", { role: "list", "data-testid": "data-cards", children: [
44
+ d.length === 0 && m && /* @__PURE__ */ l("div", { role: "listitem", children: /* @__PURE__ */ l(i.Card, { children: m() }) }),
45
+ d.map((e, t) => /* @__PURE__ */ l("div", { role: "listitem", children: /* @__PURE__ */ l(i.Card, { menu: c && c(e), action: b(e, t), children: p.map((r, n) => /* @__PURE__ */ a(L, { flexDirection: "column", gap: 0, children: [
46
+ r.title && /* @__PURE__ */ l("h5", { className: s.columnTitle, children: r.title }),
47
+ /* @__PURE__ */ a("div", { className: s.columnData, children: [
48
+ " ",
49
+ r.render ? r.render(e) : String(e[r.key])
50
+ ] })
51
+ ] }, n)) }) }, t)),
52
+ h && /* @__PURE__ */ l("div", { role: "listitem", children: /* @__PURE__ */ l(i.Card, { children: (() => {
53
+ const e = h();
54
+ return Object.entries(e).map(([t, r]) => /* @__PURE__ */ l("div", { className: s.footerItem, children: r }, t));
35
55
  })() }) })
36
56
  ] });
37
57
  };
38
58
  export {
39
- D as DataCards
59
+ H as DataCards
40
60
  };
41
61
  //# sourceMappingURL=DataCards.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataCards.js","sources":["../../../../../src/components/Common/DataView/DataCards/DataCards.tsx"],"sourcesContent":["import styles from './DataCards.module.scss'\nimport type { useDataViewPropReturn } from '@/components/Common/DataView/useDataView'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport type DataCardsProps<T> = {\n columns: useDataViewPropReturn<T>['columns']\n data: useDataViewPropReturn<T>['data']\n itemMenu?: useDataViewPropReturn<T>['itemMenu']\n onSelect?: useDataViewPropReturn<T>['onSelect']\n emptyState?: useDataViewPropReturn<T>['emptyState']\n footer?: useDataViewPropReturn<T>['footer']\n}\n\nexport const DataCards = <T,>({\n data,\n columns,\n itemMenu,\n onSelect,\n emptyState,\n footer,\n}: DataCardsProps<T>) => {\n const Components = useComponentContext()\n return (\n <div role=\"list\" data-testid=\"data-cards\">\n {data.length === 0 && emptyState && (\n <div role=\"listitem\">\n <Components.Card>{emptyState()}</Components.Card>\n </div>\n )}\n {data.map((item, index) => (\n <div role=\"listitem\" key={index}>\n <Components.Card\n menu={itemMenu && itemMenu(item)}\n onSelect={\n onSelect\n ? (checked: boolean) => {\n onSelect(item, checked)\n }\n : undefined\n }\n >\n {columns.map((column, index) => (\n <Flex key={index} flexDirection=\"column\" gap={0}>\n {column.title && <h5 className={styles.columnTitle}>{column.title}</h5>}\n <div className={styles.columnData}>\n {' '}\n {column.render ? column.render(item) : String(item[column.key as keyof T])}\n </div>\n </Flex>\n ))}\n </Components.Card>\n </div>\n ))}\n {footer && (\n <div role=\"listitem\">\n <Components.Card>\n {(() => {\n const footerContent = footer()\n\n // Footer content is always an object with column keys\n return Object.entries(footerContent).map(([key, content]) => (\n <div key={key} className={styles.footerItem}>\n {content}\n </div>\n ))\n })()}\n </Components.Card>\n </div>\n )}\n </div>\n )\n}\n"],"names":["DataCards","data","columns","itemMenu","onSelect","emptyState","footer","Components","useComponentContext","jsxs","jsx","item","index","checked","column","Flex","styles","footerContent","key","content"],"mappings":";;;;AAcO,MAAMA,IAAY,CAAK;AAAA,EAC5B,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,QAAAC;AACF,MAAyB;AACvB,QAAMC,IAAaC,EAAA;AACnB,SACE,gBAAAC,EAAC,OAAA,EAAI,MAAK,QAAO,eAAY,cAC1B,UAAA;AAAA,IAAAR,EAAK,WAAW,KAAKI,KACpB,gBAAAK,EAAC,OAAA,EAAI,MAAK,YACR,UAAA,gBAAAA,EAACH,EAAW,MAAX,EAAiB,UAAAF,EAAA,GAAa,GACjC;AAAA,IAEDJ,EAAK,IAAI,CAACU,GAAMC,MACf,gBAAAF,EAAC,OAAA,EAAI,MAAK,YACR,UAAA,gBAAAA;AAAA,MAACH,EAAW;AAAA,MAAX;AAAA,QACC,MAAMJ,KAAYA,EAASQ,CAAI;AAAA,QAC/B,UACEP,IACI,CAACS,MAAqB;AACpB,UAAAT,EAASO,GAAME,CAAO;AAAA,QACxB,IACA;AAAA,QAGL,UAAAX,EAAQ,IAAI,CAACY,GAAQF,wBACnBG,GAAA,EAAiB,eAAc,UAAS,KAAK,GAC3C,UAAA;AAAA,UAAAD,EAAO,SAAS,gBAAAJ,EAAC,MAAA,EAAG,WAAWM,EAAO,aAAc,YAAO,MAAA,CAAM;AAAA,UAClE,gBAAAP,EAAC,OAAA,EAAI,WAAWO,EAAO,YACpB,UAAA;AAAA,YAAA;AAAA,YACAF,EAAO,SAASA,EAAO,OAAOH,CAAI,IAAI,OAAOA,EAAKG,EAAO,GAAc,CAAC;AAAA,UAAA,EAAA,CAC3E;AAAA,QAAA,EAAA,GALSF,CAMX,CACD;AAAA,MAAA;AAAA,IAAA,EACH,GApBwBA,CAqB1B,CACD;AAAA,IACAN,uBACE,OAAA,EAAI,MAAK,YACR,UAAA,gBAAAI,EAACH,EAAW,MAAX,EACG,WAAA,MAAM;AACN,YAAMU,IAAgBX,EAAA;AAGtB,aAAO,OAAO,QAAQW,CAAa,EAAE,IAAI,CAAC,CAACC,GAAKC,CAAO,wBACpD,OAAA,EAAc,WAAWH,EAAO,YAC9B,UAAAG,EAAA,GADOD,CAEV,CACD;AAAA,IACH,GAAA,GACF,EAAA,CACF;AAAA,EAAA,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"DataCards.js","sources":["../../../../../src/components/Common/DataView/DataCards/DataCards.tsx"],"sourcesContent":["import { useId } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport styles from './DataCards.module.scss'\nimport type { useDataViewPropReturn, SelectionMode } from '@/components/Common/DataView/useDataView'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport type DataCardsProps<T> = {\n columns: useDataViewPropReturn<T>['columns']\n data: useDataViewPropReturn<T>['data']\n itemMenu?: useDataViewPropReturn<T>['itemMenu']\n onSelect?: useDataViewPropReturn<T>['onSelect']\n isItemSelected?: useDataViewPropReturn<T>['isItemSelected']\n emptyState?: useDataViewPropReturn<T>['emptyState']\n footer?: useDataViewPropReturn<T>['footer']\n selectionMode?: SelectionMode\n}\n\nexport const DataCards = <T,>({\n data,\n columns,\n itemMenu,\n onSelect,\n isItemSelected,\n emptyState,\n footer,\n selectionMode = 'multiple',\n}: DataCardsProps<T>) => {\n const Components = useComponentContext()\n const { t } = useTranslation('common')\n const radioGroupName = useId()\n\n const renderAction = (item: T, index: number) => {\n if (!onSelect) return undefined\n\n const isSelected = isItemSelected?.(item, index) ?? false\n\n if (selectionMode === 'single') {\n return (\n <Components.Radio\n name={radioGroupName}\n value={isSelected}\n onChange={() => {\n onSelect(item, true)\n }}\n label={t('card.selectRowLabel')}\n shouldVisuallyHideLabel\n />\n )\n }\n\n return (\n <Components.Checkbox\n value={isSelected}\n onChange={(checked: boolean) => {\n onSelect(item, checked)\n }}\n label={t('card.selectRowLabel')}\n shouldVisuallyHideLabel\n />\n )\n }\n\n return (\n <div role=\"list\" data-testid=\"data-cards\">\n {data.length === 0 && emptyState && (\n <div role=\"listitem\">\n <Components.Card>{emptyState()}</Components.Card>\n </div>\n )}\n {data.map((item, index) => (\n <div role=\"listitem\" key={index}>\n <Components.Card menu={itemMenu && itemMenu(item)} action={renderAction(item, index)}>\n {columns.map((column, colIndex) => (\n <Flex key={colIndex} flexDirection=\"column\" gap={0}>\n {column.title && <h5 className={styles.columnTitle}>{column.title}</h5>}\n <div className={styles.columnData}>\n {' '}\n {column.render ? column.render(item) : String(item[column.key as keyof T])}\n </div>\n </Flex>\n ))}\n </Components.Card>\n </div>\n ))}\n {footer && (\n <div role=\"listitem\">\n <Components.Card>\n {(() => {\n const footerContent = footer()\n\n return Object.entries(footerContent).map(([key, content]) => (\n <div key={key} className={styles.footerItem}>\n {content}\n </div>\n ))\n })()}\n </Components.Card>\n </div>\n )}\n </div>\n )\n}\n"],"names":["DataCards","data","columns","itemMenu","onSelect","isItemSelected","emptyState","footer","selectionMode","Components","useComponentContext","t","useTranslation","radioGroupName","useId","renderAction","item","index","isSelected","jsx","checked","jsxs","column","colIndex","Flex","styles","footerContent","key","content"],"mappings":";;;;;;AAkBO,MAAMA,IAAY,CAAK;AAAA,EAC5B,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,QAAAC;AAAA,EACA,eAAAC,IAAgB;AAClB,MAAyB;AACvB,QAAMC,IAAaC,EAAA,GACb,EAAE,GAAAC,EAAA,IAAMC,EAAe,QAAQ,GAC/BC,IAAiBC,EAAA,GAEjBC,IAAe,CAACC,GAASC,MAAkB;AAC/C,QAAI,CAACb,EAAU;AAEf,UAAMc,IAAab,IAAiBW,GAAMC,CAAK,KAAK;AAEpD,WAAIT,MAAkB,WAElB,gBAAAW;AAAA,MAACV,EAAW;AAAA,MAAX;AAAA,QACC,MAAMI;AAAA,QACN,OAAOK;AAAA,QACP,UAAU,MAAM;AACd,UAAAd,EAASY,GAAM,EAAI;AAAA,QACrB;AAAA,QACA,OAAOL,EAAE,qBAAqB;AAAA,QAC9B,yBAAuB;AAAA,MAAA;AAAA,IAAA,IAM3B,gBAAAQ;AAAA,MAACV,EAAW;AAAA,MAAX;AAAA,QACC,OAAOS;AAAA,QACP,UAAU,CAACE,MAAqB;AAC9B,UAAAhB,EAASY,GAAMI,CAAO;AAAA,QACxB;AAAA,QACA,OAAOT,EAAE,qBAAqB;AAAA,QAC9B,yBAAuB;AAAA,MAAA;AAAA,IAAA;AAAA,EAG7B;AAEA,SACE,gBAAAU,EAAC,OAAA,EAAI,MAAK,QAAO,eAAY,cAC1B,UAAA;AAAA,IAAApB,EAAK,WAAW,KAAKK,KACpB,gBAAAa,EAAC,OAAA,EAAI,MAAK,YACR,UAAA,gBAAAA,EAACV,EAAW,MAAX,EAAiB,UAAAH,EAAA,GAAa,GACjC;AAAA,IAEDL,EAAK,IAAI,CAACe,GAAMC,MACf,gBAAAE,EAAC,OAAA,EAAI,MAAK,YACR,UAAA,gBAAAA,EAACV,EAAW,MAAX,EAAgB,MAAMN,KAAYA,EAASa,CAAI,GAAG,QAAQD,EAAaC,GAAMC,CAAK,GAChF,UAAAf,EAAQ,IAAI,CAACoB,GAAQC,MACpB,gBAAAF,EAACG,GAAA,EAAoB,eAAc,UAAS,KAAK,GAC9C,UAAA;AAAA,MAAAF,EAAO,SAAS,gBAAAH,EAAC,MAAA,EAAG,WAAWM,EAAO,aAAc,YAAO,MAAA,CAAM;AAAA,MAClE,gBAAAJ,EAAC,OAAA,EAAI,WAAWI,EAAO,YACpB,UAAA;AAAA,QAAA;AAAA,QACAH,EAAO,SAASA,EAAO,OAAON,CAAI,IAAI,OAAOA,EAAKM,EAAO,GAAc,CAAC;AAAA,MAAA,EAAA,CAC3E;AAAA,IAAA,EAAA,GALSC,CAMX,CACD,EAAA,CACH,EAAA,GAXwBN,CAY1B,CACD;AAAA,IACAV,uBACE,OAAA,EAAI,MAAK,YACR,UAAA,gBAAAY,EAACV,EAAW,MAAX,EACG,WAAA,MAAM;AACN,YAAMiB,IAAgBnB,EAAA;AAEtB,aAAO,OAAO,QAAQmB,CAAa,EAAE,IAAI,CAAC,CAACC,GAAKC,CAAO,wBACpD,OAAA,EAAc,WAAWH,EAAO,YAC9B,UAAAG,EAAA,GADOD,CAEV,CACD;AAAA,IACH,GAAA,GACF,EAAA,CACF;AAAA,EAAA,GAEJ;AAEJ;"}
@@ -1,4 +1,4 @@
1
- import { useDataViewPropReturn } from '../useDataView';
1
+ import { useDataViewPropReturn, SelectionMode } from '../useDataView';
2
2
  import { TableProps } from '../../UI/Table/TableTypes';
3
3
  export type DataTableProps<T> = {
4
4
  label: string;
@@ -9,5 +9,6 @@ export type DataTableProps<T> = {
9
9
  emptyState?: useDataViewPropReturn<T>['emptyState'];
10
10
  footer?: useDataViewPropReturn<T>['footer'];
11
11
  variant?: TableProps['variant'];
12
+ selectionMode?: SelectionMode;
12
13
  };
13
- export declare const DataTable: <T>({ label, data, columns, itemMenu, onSelect, emptyState, footer, variant, }: DataTableProps<T>) => import("react/jsx-runtime").JSX.Element;
14
+ export declare const DataTable: <T>({ label, data, columns, itemMenu, onSelect, emptyState, footer, variant, selectionMode, }: DataTableProps<T>) => import("react/jsx-runtime").JSX.Element;
@@ -1,63 +1,78 @@
1
1
  import { jsx as l } from "react/jsx-runtime";
2
- import { useTranslation as g } from "react-i18next";
3
- import { useComponentContext as D } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
4
- import { VisuallyHidden as h } from "../../VisuallyHidden/VisuallyHidden.js";
5
- function m(s, r) {
6
- if (r.render)
7
- return r.render(s);
8
- if (r.key) {
9
- const n = r.key;
10
- return String(s[n] ?? "");
2
+ import { useId as v, useState as x } from "react";
3
+ import { useTranslation as T } from "react-i18next";
4
+ import { useComponentContext as V } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
5
+ import { VisuallyHidden as p } from "../../VisuallyHidden/VisuallyHidden.js";
6
+ function w(i, o) {
7
+ if (o.render)
8
+ return o.render(i);
9
+ if (o.key) {
10
+ const a = o.key;
11
+ return String(i[a] ?? "");
11
12
  }
12
13
  return "";
13
14
  }
14
- const F = ({
15
- label: s,
16
- data: r,
17
- columns: n,
15
+ const q = ({
16
+ label: i,
17
+ data: o,
18
+ columns: a,
18
19
  itemMenu: c,
19
- onSelect: a,
20
- emptyState: d,
21
- footer: f,
22
- variant: b
20
+ onSelect: n,
21
+ emptyState: f,
22
+ footer: k,
23
+ variant: b,
24
+ selectionMode: h = "multiple"
23
25
  }) => {
24
- const p = D(), { t: k } = g("common"), u = [
25
- ...a ? [
26
+ const u = V(), { t: d } = T("common"), C = v(), [g, m] = x(null), R = [
27
+ ...n ? [
26
28
  {
27
29
  key: "select-header",
28
- content: /* @__PURE__ */ l(h, { children: k("table.selectRowHeader") })
30
+ content: /* @__PURE__ */ l(p, { children: d("table.selectRowHeader") })
29
31
  }
30
32
  ] : [],
31
- ...n.map((t, e) => ({
33
+ ...a.map((t, e) => ({
32
34
  key: typeof t.key == "string" ? t.key : `header-${e}`,
33
35
  content: t.title
34
36
  })),
35
37
  ...c ? [
36
38
  {
37
39
  key: "actions-header",
38
- content: /* @__PURE__ */ l(h, { children: k("table.actionsColumnHeader") })
40
+ content: /* @__PURE__ */ l(p, { children: d("table.actionsColumnHeader") })
39
41
  }
40
42
  ] : []
41
- ], C = r.map((t, e) => {
42
- const i = [
43
- ...a ? [
43
+ ], $ = (t, e) => {
44
+ m(e), n?.(t, !0);
45
+ }, D = (t, e) => h === "single" ? /* @__PURE__ */ l(
46
+ u.Radio,
47
+ {
48
+ name: C,
49
+ value: g === e,
50
+ onChange: () => {
51
+ $(t, e);
52
+ },
53
+ label: d("table.selectRowLabel"),
54
+ shouldVisuallyHideLabel: !0
55
+ }
56
+ ) : /* @__PURE__ */ l(
57
+ u.Checkbox,
58
+ {
59
+ onChange: (r) => {
60
+ n?.(t, r);
61
+ },
62
+ label: d("table.selectRowLabel"),
63
+ shouldVisuallyHideLabel: !0
64
+ }
65
+ ), H = o.map((t, e) => {
66
+ const r = [
67
+ ...n ? [
44
68
  {
45
69
  key: `select-${e}`,
46
- content: /* @__PURE__ */ l(
47
- p.Checkbox,
48
- {
49
- onChange: (o) => {
50
- a(t, o);
51
- },
52
- label: k("table.selectRowLabel"),
53
- shouldVisuallyHideLabel: !0
54
- }
55
- )
70
+ content: D(t, e)
56
71
  }
57
72
  ] : [],
58
- ...n.map((o, y) => ({
59
- key: typeof o.key == "string" ? o.key : `cell-${y}`,
60
- content: m(t, o)
73
+ ...a.map((s, y) => ({
74
+ key: typeof s.key == "string" ? s.key : `cell-${y}`,
75
+ content: w(t, s)
61
76
  })),
62
77
  ...c ? [
63
78
  {
@@ -68,16 +83,16 @@ const F = ({
68
83
  ];
69
84
  return {
70
85
  key: `row-${e}`,
71
- data: i
86
+ data: r
72
87
  };
73
- }), $ = (() => {
74
- if (!f) return;
75
- const t = f(), e = [];
76
- return a && e.push({
88
+ }), L = (() => {
89
+ if (!k) return;
90
+ const t = k(), e = [];
91
+ return n && e.push({
77
92
  key: "footer-select",
78
93
  content: ""
79
- }), n.forEach((i, o) => {
80
- const y = typeof i.key == "string" ? i.key : `column-${o}`;
94
+ }), a.forEach((r, s) => {
95
+ const y = typeof r.key == "string" ? r.key : `column-${s}`;
81
96
  e.push({
82
97
  key: `footer-${y}`,
83
98
  content: t[y] || ""
@@ -88,20 +103,20 @@ const F = ({
88
103
  }), e;
89
104
  })();
90
105
  return /* @__PURE__ */ l(
91
- p.Table,
106
+ u.Table,
92
107
  {
93
- "aria-label": s,
108
+ "aria-label": i,
94
109
  "data-testid": "data-table",
95
- headers: u,
96
- rows: C,
97
- footer: $,
98
- emptyState: d ? d() : void 0,
110
+ headers: R,
111
+ rows: H,
112
+ footer: L,
113
+ emptyState: f ? f() : void 0,
99
114
  variant: b,
100
- hasCheckboxColumn: !!a
115
+ hasCheckboxColumn: !!n
101
116
  }
102
117
  );
103
118
  };
104
119
  export {
105
- F as DataTable
120
+ q as DataTable
106
121
  };
107
122
  //# sourceMappingURL=DataTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.js","sources":["../../../../../src/components/Common/DataView/DataTable/DataTable.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { useDataViewPropReturn } from '../useDataView'\nimport type { TableData, TableRow, TableProps } from '../../UI/Table/TableTypes'\nimport { VisuallyHidden } from '../../VisuallyHidden'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport type DataTableProps<T> = {\n label: string\n columns: useDataViewPropReturn<T>['columns']\n data: useDataViewPropReturn<T>['data']\n itemMenu?: useDataViewPropReturn<T>['itemMenu']\n onSelect?: useDataViewPropReturn<T>['onSelect']\n emptyState?: useDataViewPropReturn<T>['emptyState']\n footer?: useDataViewPropReturn<T>['footer']\n variant?: TableProps['variant']\n}\n\nfunction getCellContent<T>(\n item: T,\n column: { key?: string | keyof T; render?: (item: T) => React.ReactNode },\n) {\n if (column.render) {\n return column.render(item)\n }\n\n if (column.key) {\n const key = column.key as keyof T\n return String(item[key] ?? '')\n }\n\n return ''\n}\n\nexport const DataTable = <T,>({\n label,\n data,\n columns,\n itemMenu,\n onSelect,\n emptyState,\n footer,\n variant,\n}: DataTableProps<T>) => {\n const Components = useComponentContext()\n const { t } = useTranslation('common')\n\n const headers: TableData[] = [\n ...(onSelect\n ? [\n {\n key: 'select-header',\n content: <VisuallyHidden>{t('table.selectRowHeader')}</VisuallyHidden>,\n },\n ]\n : []),\n ...columns.map((column, index) => ({\n key: typeof column.key === 'string' ? column.key : `header-${index}`,\n content: column.title,\n })),\n ...(itemMenu\n ? [\n {\n key: 'actions-header',\n content: <VisuallyHidden>{t('table.actionsColumnHeader')}</VisuallyHidden>,\n },\n ]\n : []),\n ]\n\n const rows: TableRow[] = data.map((item, rowIndex) => {\n const rowData: TableData[] = [\n ...(onSelect\n ? [\n {\n key: `select-${rowIndex}`,\n content: (\n <Components.Checkbox\n onChange={(checked: boolean) => {\n onSelect(item, checked)\n }}\n label={t('table.selectRowLabel')}\n shouldVisuallyHideLabel\n />\n ),\n },\n ]\n : []),\n ...columns.map((column, colIndex) => {\n return {\n key: typeof column.key === 'string' ? column.key : `cell-${colIndex}`,\n content: getCellContent(item, column),\n }\n }),\n ...(itemMenu\n ? [\n {\n key: `menu-${rowIndex}`,\n content: itemMenu(item),\n },\n ]\n : []),\n ]\n\n return {\n key: `row-${rowIndex}`,\n data: rowData,\n }\n })\n\n const buildFooterData = () => {\n if (!footer) return undefined\n\n const footerContent = footer()\n const footerCells: TableData[] = []\n\n // Add select column footer (empty)\n if (onSelect) {\n footerCells.push({\n key: 'footer-select',\n content: '',\n })\n }\n\n // Add data column footers\n columns.forEach((column, index) => {\n const columnKey = typeof column.key === 'string' ? column.key : `column-${index}`\n footerCells.push({\n key: `footer-${columnKey}`,\n content: footerContent[columnKey] || '',\n })\n })\n\n // Add actions column footer (empty)\n if (itemMenu) {\n footerCells.push({\n key: 'footer-actions',\n content: '',\n })\n }\n\n return footerCells\n }\n\n const footerData = buildFooterData()\n\n return (\n <Components.Table\n aria-label={label}\n data-testid=\"data-table\"\n headers={headers}\n rows={rows}\n footer={footerData}\n emptyState={emptyState ? emptyState() : undefined}\n variant={variant}\n hasCheckboxColumn={!!onSelect}\n />\n )\n}\n"],"names":["getCellContent","item","column","key","DataTable","label","data","columns","itemMenu","onSelect","emptyState","footer","variant","Components","useComponentContext","t","useTranslation","headers","jsx","VisuallyHidden","index","rows","rowIndex","rowData","checked","colIndex","footerData","footerContent","footerCells","columnKey"],"mappings":"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"}
1
+ {"version":3,"file":"DataTable.js","sources":["../../../../../src/components/Common/DataView/DataTable/DataTable.tsx"],"sourcesContent":["import { useId, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { useDataViewPropReturn, SelectionMode } from '../useDataView'\nimport type { TableData, TableRow, TableProps } from '../../UI/Table/TableTypes'\nimport { VisuallyHidden } from '../../VisuallyHidden'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport type DataTableProps<T> = {\n label: string\n columns: useDataViewPropReturn<T>['columns']\n data: useDataViewPropReturn<T>['data']\n itemMenu?: useDataViewPropReturn<T>['itemMenu']\n onSelect?: useDataViewPropReturn<T>['onSelect']\n emptyState?: useDataViewPropReturn<T>['emptyState']\n footer?: useDataViewPropReturn<T>['footer']\n variant?: TableProps['variant']\n selectionMode?: SelectionMode\n}\n\nfunction getCellContent<T>(\n item: T,\n column: { key?: string | keyof T; render?: (item: T) => React.ReactNode },\n) {\n if (column.render) {\n return column.render(item)\n }\n\n if (column.key) {\n const key = column.key as keyof T\n return String(item[key] ?? '')\n }\n\n return ''\n}\n\nexport const DataTable = <T,>({\n label,\n data,\n columns,\n itemMenu,\n onSelect,\n emptyState,\n footer,\n variant,\n selectionMode = 'multiple',\n}: DataTableProps<T>) => {\n const Components = useComponentContext()\n const { t } = useTranslation('common')\n const radioGroupName = useId()\n const [selectedRadioIndex, setSelectedRadioIndex] = useState<number | null>(null)\n\n const headers: TableData[] = [\n ...(onSelect\n ? [\n {\n key: 'select-header',\n content: <VisuallyHidden>{t('table.selectRowHeader')}</VisuallyHidden>,\n },\n ]\n : []),\n ...columns.map((column, index) => ({\n key: typeof column.key === 'string' ? column.key : `header-${index}`,\n content: column.title,\n })),\n ...(itemMenu\n ? [\n {\n key: 'actions-header',\n content: <VisuallyHidden>{t('table.actionsColumnHeader')}</VisuallyHidden>,\n },\n ]\n : []),\n ]\n\n const handleRadioSelect = (item: T, rowIndex: number) => {\n setSelectedRadioIndex(rowIndex)\n onSelect?.(item, true)\n }\n\n const renderSelectionControl = (item: T, rowIndex: number) => {\n if (selectionMode === 'single') {\n return (\n <Components.Radio\n name={radioGroupName}\n value={selectedRadioIndex === rowIndex}\n onChange={() => {\n handleRadioSelect(item, rowIndex)\n }}\n label={t('table.selectRowLabel')}\n shouldVisuallyHideLabel\n />\n )\n }\n\n return (\n <Components.Checkbox\n onChange={(checked: boolean) => {\n onSelect?.(item, checked)\n }}\n label={t('table.selectRowLabel')}\n shouldVisuallyHideLabel\n />\n )\n }\n\n const rows: TableRow[] = data.map((item, rowIndex) => {\n const rowData: TableData[] = [\n ...(onSelect\n ? [\n {\n key: `select-${rowIndex}`,\n content: renderSelectionControl(item, rowIndex),\n },\n ]\n : []),\n ...columns.map((column, colIndex) => {\n return {\n key: typeof column.key === 'string' ? column.key : `cell-${colIndex}`,\n content: getCellContent(item, column),\n }\n }),\n ...(itemMenu\n ? [\n {\n key: `menu-${rowIndex}`,\n content: itemMenu(item),\n },\n ]\n : []),\n ]\n\n return {\n key: `row-${rowIndex}`,\n data: rowData,\n }\n })\n\n const buildFooterData = () => {\n if (!footer) return undefined\n\n const footerContent = footer()\n const footerCells: TableData[] = []\n\n // Add select column footer (empty)\n if (onSelect) {\n footerCells.push({\n key: 'footer-select',\n content: '',\n })\n }\n\n // Add data column footers\n columns.forEach((column, index) => {\n const columnKey = typeof column.key === 'string' ? column.key : `column-${index}`\n footerCells.push({\n key: `footer-${columnKey}`,\n content: footerContent[columnKey] || '',\n })\n })\n\n // Add actions column footer (empty)\n if (itemMenu) {\n footerCells.push({\n key: 'footer-actions',\n content: '',\n })\n }\n\n return footerCells\n }\n\n const footerData = buildFooterData()\n\n return (\n <Components.Table\n aria-label={label}\n data-testid=\"data-table\"\n headers={headers}\n rows={rows}\n footer={footerData}\n emptyState={emptyState ? emptyState() : undefined}\n variant={variant}\n hasCheckboxColumn={!!onSelect}\n />\n )\n}\n"],"names":["getCellContent","item","column","key","DataTable","label","data","columns","itemMenu","onSelect","emptyState","footer","variant","selectionMode","Components","useComponentContext","t","useTranslation","radioGroupName","useId","selectedRadioIndex","setSelectedRadioIndex","useState","headers","jsx","VisuallyHidden","index","handleRadioSelect","rowIndex","renderSelectionControl","checked","rows","rowData","colIndex","footerData","footerContent","footerCells","columnKey"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { TableProps } from '../UI/Table/TableTypes';
2
- import { useDataViewPropReturn } from './useDataView';
2
+ import { useDataViewPropReturn, SelectionMode } from './useDataView';
3
3
  import { useContainerBreakpointsProps } from '../../../hooks/useContainerBreakpoints/useContainerBreakpoints';
4
4
  export type DataViewProps<T> = {
5
5
  columns: useDataViewPropReturn<T>['columns'];
@@ -8,11 +8,13 @@ export type DataViewProps<T> = {
8
8
  label: string;
9
9
  itemMenu?: useDataViewPropReturn<T>['itemMenu'];
10
10
  onSelect?: useDataViewPropReturn<T>['onSelect'];
11
+ isItemSelected?: useDataViewPropReturn<T>['isItemSelected'];
11
12
  breakAt?: string;
12
13
  breakpoints?: useContainerBreakpointsProps['breakpoints'];
13
14
  footer?: useDataViewPropReturn<T>['footer'];
14
15
  isFetching?: boolean;
15
16
  variant?: TableProps['variant'];
16
17
  emptyState?: useDataViewPropReturn<T>['emptyState'];
18
+ selectionMode?: SelectionMode;
17
19
  };
18
- export declare const DataView: <T>({ pagination, isFetching, breakAt, breakpoints: customBreakpoints, footer, variant, emptyState, ...dataViewProps }: DataViewProps<T>) => import("react/jsx-runtime").JSX.Element;
20
+ export declare const DataView: <T>({ pagination, isFetching, breakAt, breakpoints: customBreakpoints, footer, variant, emptyState, selectionMode, ...dataViewProps }: DataViewProps<T>) => import("react/jsx-runtime").JSX.Element;
@@ -1,11 +1,11 @@
1
- import { jsxs as b, jsx as n } from "react/jsx-runtime";
2
- import { useRef as k, useMemo as C } from "react";
3
- import { PaginationControl as D } from "../PaginationControl/PaginationControl.js";
4
- import w from "./DataView.module.scss.js";
5
- import { DataTable as x } from "./DataTable/DataTable.js";
6
- import { DataCards as h } from "./DataCards/DataCards.js";
7
- import { useContainerBreakpoints as j } from "../../../hooks/useContainerBreakpoints/useContainerBreakpoints.js";
8
- const N = ({
1
+ import { jsxs as k, jsx as n } from "react/jsx-runtime";
2
+ import { useRef as C, useMemo as D } from "react";
3
+ import { PaginationControl as w } from "../PaginationControl/PaginationControl.js";
4
+ import x from "./DataView.module.scss.js";
5
+ import { DataTable as h } from "./DataTable/DataTable.js";
6
+ import { DataCards as j } from "./DataCards/DataCards.js";
7
+ import { useContainerBreakpoints as v } from "../../../hooks/useContainerBreakpoints/useContainerBreakpoints.js";
8
+ const P = ({
9
9
  pagination: t,
10
10
  isFetching: s,
11
11
  breakAt: a = "small",
@@ -13,28 +13,38 @@ const N = ({
13
13
  footer: m,
14
14
  variant: p,
15
15
  emptyState: c,
16
- ...l
16
+ selectionMode: l,
17
+ ...f
17
18
  }) => {
18
- const e = k(null), o = j({
19
+ const e = C(null), o = v({
19
20
  ref: e,
20
21
  breakpoints: i
21
- }), f = o.length > 0, r = !o.includes(a), d = C(() => r ? h : x, [r]);
22
- return /* @__PURE__ */ b(
22
+ }), d = o.length > 0, r = !o.includes(a), u = D(() => r ? j : h, [r]);
23
+ return /* @__PURE__ */ k(
23
24
  "div",
24
25
  {
25
26
  "data-testid": "data-view",
26
- className: w.dataViewContainer,
27
- ref: (u) => {
28
- e.current = u;
27
+ className: x.dataViewContainer,
28
+ ref: (b) => {
29
+ e.current = b;
29
30
  },
30
31
  children: [
31
- f && /* @__PURE__ */ n(d, { ...l, footer: m, variant: p, emptyState: c }),
32
- t && /* @__PURE__ */ n(D, { ...t, isFetching: s })
32
+ d && /* @__PURE__ */ n(
33
+ u,
34
+ {
35
+ ...f,
36
+ footer: m,
37
+ variant: p,
38
+ emptyState: c,
39
+ selectionMode: l
40
+ }
41
+ ),
42
+ t && /* @__PURE__ */ n(w, { ...t, isFetching: s })
33
43
  ]
34
44
  }
35
45
  );
36
46
  };
37
47
  export {
38
- N as DataView
48
+ P as DataView
39
49
  };
40
50
  //# sourceMappingURL=DataView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataView.js","sources":["../../../../src/components/Common/DataView/DataView.tsx"],"sourcesContent":["import { useMemo, useRef } from 'react'\nimport { PaginationControl } from '../PaginationControl/PaginationControl'\nimport type { TableProps } from '../UI/Table/TableTypes'\nimport styles from './DataView.module.scss'\nimport { DataTable } from './DataTable/DataTable'\nimport type { useDataViewPropReturn } from './useDataView'\nimport { DataCards } from './DataCards/DataCards'\nimport type { useContainerBreakpointsProps } from '@/hooks/useContainerBreakpoints/useContainerBreakpoints'\nimport useContainerBreakpoints from '@/hooks/useContainerBreakpoints/useContainerBreakpoints'\n\nexport type DataViewProps<T> = {\n columns: useDataViewPropReturn<T>['columns']\n data: T[]\n pagination?: useDataViewPropReturn<T>['pagination']\n label: string\n itemMenu?: useDataViewPropReturn<T>['itemMenu']\n onSelect?: useDataViewPropReturn<T>['onSelect']\n breakAt?: string\n breakpoints?: useContainerBreakpointsProps['breakpoints']\n footer?: useDataViewPropReturn<T>['footer']\n isFetching?: boolean\n variant?: TableProps['variant']\n emptyState?: useDataViewPropReturn<T>['emptyState']\n}\n\nexport const DataView = <T,>({\n pagination,\n isFetching,\n breakAt = 'small',\n breakpoints: customBreakpoints,\n footer,\n variant,\n emptyState,\n ...dataViewProps\n}: DataViewProps<T>) => {\n const containerRef = useRef<HTMLElement | null>(null)\n const breakpoints = useContainerBreakpoints({\n ref: containerRef,\n breakpoints: customBreakpoints,\n })\n\n // Wait for breakpoints to be detected before rendering\n const isBreakpointsDetected = breakpoints.length > 0\n const isMobile = !breakpoints.includes(breakAt)\n\n const Component = useMemo(() => {\n return isMobile ? DataCards : DataTable\n }, [isMobile])\n\n return (\n <div\n data-testid=\"data-view\"\n className={styles.dataViewContainer}\n ref={ref => {\n containerRef.current = ref\n }}\n >\n {isBreakpointsDetected && (\n <Component {...dataViewProps} footer={footer} variant={variant} emptyState={emptyState} />\n )}\n {pagination && <PaginationControl {...pagination} isFetching={isFetching} />}\n </div>\n )\n}\n"],"names":["DataView","pagination","isFetching","breakAt","customBreakpoints","footer","variant","emptyState","dataViewProps","containerRef","useRef","breakpoints","useContainerBreakpoints","isBreakpointsDetected","isMobile","Component","useMemo","DataCards","DataTable","jsxs","styles","ref","jsx","PaginationControl"],"mappings":";;;;;;;AAyBO,MAAMA,IAAW,CAAK;AAAA,EAC3B,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,aAAaC;AAAA,EACb,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,YAAAC;AAAA,EACA,GAAGC;AACL,MAAwB;AACtB,QAAMC,IAAeC,EAA2B,IAAI,GAC9CC,IAAcC,EAAwB;AAAA,IAC1C,KAAKH;AAAA,IACL,aAAaL;AAAA,EAAA,CACd,GAGKS,IAAwBF,EAAY,SAAS,GAC7CG,IAAW,CAACH,EAAY,SAASR,CAAO,GAExCY,IAAYC,EAAQ,MACjBF,IAAWG,IAAYC,GAC7B,CAACJ,CAAQ,CAAC;AAEb,SACE,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,eAAY;AAAA,MACZ,WAAWC,EAAO;AAAA,MAClB,KAAK,CAAAC,MAAO;AACV,QAAAZ,EAAa,UAAUY;AAAA,MACzB;AAAA,MAEC,UAAA;AAAA,QAAAR,uBACEE,GAAA,EAAW,GAAGP,GAAe,QAAAH,GAAgB,SAAAC,GAAkB,YAAAC,GAAwB;AAAA,QAEzFN,KAAc,gBAAAqB,EAACC,GAAA,EAAmB,GAAGtB,GAAY,YAAAC,EAAA,CAAwB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGhF;"}
1
+ {"version":3,"file":"DataView.js","sources":["../../../../src/components/Common/DataView/DataView.tsx"],"sourcesContent":["import { useMemo, useRef } from 'react'\nimport { PaginationControl } from '../PaginationControl/PaginationControl'\nimport type { TableProps } from '../UI/Table/TableTypes'\nimport styles from './DataView.module.scss'\nimport { DataTable } from './DataTable/DataTable'\nimport type { useDataViewPropReturn, SelectionMode } from './useDataView'\nimport { DataCards } from './DataCards/DataCards'\nimport type { useContainerBreakpointsProps } from '@/hooks/useContainerBreakpoints/useContainerBreakpoints'\nimport useContainerBreakpoints from '@/hooks/useContainerBreakpoints/useContainerBreakpoints'\n\nexport type DataViewProps<T> = {\n columns: useDataViewPropReturn<T>['columns']\n data: T[]\n pagination?: useDataViewPropReturn<T>['pagination']\n label: string\n itemMenu?: useDataViewPropReturn<T>['itemMenu']\n onSelect?: useDataViewPropReturn<T>['onSelect']\n isItemSelected?: useDataViewPropReturn<T>['isItemSelected']\n breakAt?: string\n breakpoints?: useContainerBreakpointsProps['breakpoints']\n footer?: useDataViewPropReturn<T>['footer']\n isFetching?: boolean\n variant?: TableProps['variant']\n emptyState?: useDataViewPropReturn<T>['emptyState']\n selectionMode?: SelectionMode\n}\n\nexport const DataView = <T,>({\n pagination,\n isFetching,\n breakAt = 'small',\n breakpoints: customBreakpoints,\n footer,\n variant,\n emptyState,\n selectionMode,\n ...dataViewProps\n}: DataViewProps<T>) => {\n const containerRef = useRef<HTMLElement | null>(null)\n const breakpoints = useContainerBreakpoints({\n ref: containerRef,\n breakpoints: customBreakpoints,\n })\n\n // Wait for breakpoints to be detected before rendering\n const isBreakpointsDetected = breakpoints.length > 0\n const isMobile = !breakpoints.includes(breakAt)\n\n const Component = useMemo(() => {\n return isMobile ? DataCards : DataTable\n }, [isMobile])\n\n return (\n <div\n data-testid=\"data-view\"\n className={styles.dataViewContainer}\n ref={ref => {\n containerRef.current = ref\n }}\n >\n {isBreakpointsDetected && (\n <Component\n {...dataViewProps}\n footer={footer}\n variant={variant}\n emptyState={emptyState}\n selectionMode={selectionMode}\n />\n )}\n {pagination && <PaginationControl {...pagination} isFetching={isFetching} />}\n </div>\n )\n}\n"],"names":["DataView","pagination","isFetching","breakAt","customBreakpoints","footer","variant","emptyState","selectionMode","dataViewProps","containerRef","useRef","breakpoints","useContainerBreakpoints","isBreakpointsDetected","isMobile","Component","useMemo","DataCards","DataTable","jsxs","styles","ref","jsx","PaginationControl"],"mappings":";;;;;;;AA2BO,MAAMA,IAAW,CAAK;AAAA,EAC3B,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,aAAaC;AAAA,EACb,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,GAAGC;AACL,MAAwB;AACtB,QAAMC,IAAeC,EAA2B,IAAI,GAC9CC,IAAcC,EAAwB;AAAA,IAC1C,KAAKH;AAAA,IACL,aAAaN;AAAA,EAAA,CACd,GAGKU,IAAwBF,EAAY,SAAS,GAC7CG,IAAW,CAACH,EAAY,SAAST,CAAO,GAExCa,IAAYC,EAAQ,MACjBF,IAAWG,IAAYC,GAC7B,CAACJ,CAAQ,CAAC;AAEb,SACE,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,eAAY;AAAA,MACZ,WAAWC,EAAO;AAAA,MAClB,KAAK,CAAAC,MAAO;AACV,QAAAZ,EAAa,UAAUY;AAAA,MACzB;AAAA,MAEC,UAAA;AAAA,QAAAR,KACC,gBAAAS;AAAA,UAACP;AAAA,UAAA;AAAA,YACE,GAAGP;AAAA,YACJ,QAAAJ;AAAA,YACA,SAAAC;AAAA,YACA,YAAAC;AAAA,YACA,eAAAC;AAAA,UAAA;AAAA,QAAA;AAAA,QAGHP,KAAc,gBAAAsB,EAACC,GAAA,EAAmB,GAAGvB,GAAY,YAAAC,EAAA,CAAwB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGhF;"}
@@ -1,4 +1,5 @@
1
1
  import { PaginationControlProps } from '../PaginationControl/PaginationControlTypes';
2
+ export type SelectionMode = 'multiple' | 'single';
2
3
  type DataViewColumn<T> = {
3
4
  key: keyof T;
4
5
  title: string | React.ReactNode;
@@ -15,9 +16,11 @@ export type useDataViewProp<T> = {
15
16
  pagination?: PaginationControlProps;
16
17
  itemMenu?: (item: T) => React.ReactNode;
17
18
  onSelect?: (item: T, checked: boolean) => void;
19
+ isItemSelected?: (item: T, index: number) => boolean;
18
20
  emptyState?: () => React.ReactNode;
19
21
  footer?: () => Partial<Record<FooterKeys<T>, React.ReactNode>>;
20
22
  isFetching?: boolean;
23
+ selectionMode?: SelectionMode;
21
24
  };
22
25
  export type useDataViewPropReturn<T> = {
23
26
  pagination?: PaginationControlProps;
@@ -25,9 +28,11 @@ export type useDataViewPropReturn<T> = {
25
28
  columns: DataViewColumn<T>[];
26
29
  itemMenu?: (item: T) => React.ReactNode;
27
30
  onSelect?: (item: T, checked: boolean) => void;
31
+ isItemSelected?: (item: T, index: number) => boolean;
28
32
  emptyState?: () => React.ReactNode;
29
33
  footer?: () => Partial<Record<FooterKeys<T>, React.ReactNode>>;
30
34
  isFetching?: boolean;
35
+ selectionMode?: SelectionMode;
31
36
  };
32
- export declare const useDataView: <T>({ columns, data, itemMenu, onSelect, pagination, emptyState, footer, isFetching, }: useDataViewProp<T>) => useDataViewPropReturn<T>;
37
+ export declare const useDataView: <T>({ columns, data, itemMenu, onSelect, isItemSelected, pagination, emptyState, footer, isFetching, selectionMode, }: useDataViewProp<T>) => useDataViewPropReturn<T>;
33
38
  export {};
@@ -1,24 +1,39 @@
1
- import { useMemo as a } from "react";
2
- const x = ({
1
+ import { useMemo as D } from "react";
2
+ const j = ({
3
3
  columns: r,
4
- data: s,
5
- itemMenu: o,
6
- onSelect: w,
7
- pagination: V,
8
- emptyState: p,
9
- footer: u,
10
- isFetching: P
11
- }) => a(() => ({
12
- pagination: V,
13
- data: s,
4
+ data: w,
5
+ itemMenu: V,
6
+ onSelect: p,
7
+ isItemSelected: s,
8
+ pagination: u,
9
+ emptyState: P,
10
+ footer: a,
11
+ isFetching: o,
12
+ selectionMode: x
13
+ }) => D(() => ({
14
+ pagination: u,
15
+ data: w,
14
16
  columns: r,
15
- itemMenu: o,
16
- onSelect: w,
17
- emptyState: p,
18
- footer: u,
19
- isFetching: P
20
- }), [V, s, r, o, w, p, u, P]);
17
+ itemMenu: V,
18
+ onSelect: p,
19
+ isItemSelected: s,
20
+ emptyState: P,
21
+ footer: a,
22
+ isFetching: o,
23
+ selectionMode: x
24
+ }), [
25
+ u,
26
+ w,
27
+ r,
28
+ V,
29
+ p,
30
+ s,
31
+ P,
32
+ a,
33
+ o,
34
+ x
35
+ ]);
21
36
  export {
22
- x as useDataView
37
+ j as useDataView
23
38
  };
24
39
  //# sourceMappingURL=useDataView.js.map