@gusto/embedded-react-sdk 0.26.0 → 0.28.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 (379) hide show
  1. package/CHANGELOG.md +103 -0
  2. package/dist/assets/icons/plus-circle.svg.js +5 -5
  3. package/dist/assets/icons/plus-circle.svg.js.map +1 -1
  4. package/dist/components/Base/Base.js +13 -12
  5. package/dist/components/Base/Base.js.map +1 -1
  6. package/dist/components/Common/DataView/DataCards/DataCards.d.ts +4 -2
  7. package/dist/components/Common/DataView/DataCards/DataCards.js +52 -32
  8. package/dist/components/Common/DataView/DataCards/DataCards.js.map +1 -1
  9. package/dist/components/Common/DataView/DataTable/DataTable.d.ts +3 -2
  10. package/dist/components/Common/DataView/DataTable/DataTable.js +68 -53
  11. package/dist/components/Common/DataView/DataTable/DataTable.js.map +1 -1
  12. package/dist/components/Common/DataView/DataView.d.ts +4 -2
  13. package/dist/components/Common/DataView/DataView.js +28 -18
  14. package/dist/components/Common/DataView/DataView.js.map +1 -1
  15. package/dist/components/Common/DataView/useDataView.d.ts +6 -1
  16. package/dist/components/Common/DataView/useDataView.js +34 -19
  17. package/dist/components/Common/DataView/useDataView.js.map +1 -1
  18. package/dist/components/Common/DocumentList/DocumentList.js +23 -23
  19. package/dist/components/Common/DocumentList/DocumentList.js.map +1 -1
  20. package/dist/components/Common/DocumentList/DocumentList.module.scss.js +6 -10
  21. package/dist/components/Common/DocumentList/DocumentList.module.scss.js.map +1 -1
  22. package/dist/components/Common/DocumentViewer/DocumentViewer.module.scss.js +12 -12
  23. package/dist/components/Common/InlineSpinner/InlineSpinner.module.scss.js +1 -1
  24. package/dist/components/Common/InternalError/InternalError.module.scss.js +4 -4
  25. package/dist/components/Common/ReorderableList/ReorderableList.module.scss.js +8 -8
  26. package/dist/components/Common/RequirementsList/RequirementsList.module.scss.js +1 -1
  27. package/dist/components/Common/SignatureForm/SignatureForm.js +12 -10
  28. package/dist/components/Common/SignatureForm/SignatureForm.js.map +1 -1
  29. package/dist/components/Common/SignatureForm/SignatureFormActions.js +3 -2
  30. package/dist/components/Common/SignatureForm/SignatureFormActions.js.map +1 -1
  31. package/dist/components/Common/SignatureForm/SignatureFormFields.js +7 -6
  32. package/dist/components/Common/SignatureForm/SignatureFormFields.js.map +1 -1
  33. package/dist/components/Common/UI/Alert/Alert.module.scss.js +9 -9
  34. package/dist/components/Common/UI/Banner/Banner.module.scss.js +1 -1
  35. package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js +1 -1
  36. package/dist/components/Common/UI/Button/Button.module.scss.js +1 -1
  37. package/dist/components/Common/UI/CalendarPreview/CalendarPreview.module.scss.js +4 -4
  38. package/dist/components/Common/UI/Card/Card.d.ts +1 -1
  39. package/dist/components/Common/UI/Card/Card.js +10 -20
  40. package/dist/components/Common/UI/Card/Card.js.map +1 -1
  41. package/dist/components/Common/UI/Card/Card.module.scss.js +1 -1
  42. package/dist/components/Common/UI/Card/CardTypes.d.ts +4 -4
  43. package/dist/components/Common/UI/Checkbox/Checkbox.module.scss.js +1 -1
  44. package/dist/components/Common/UI/ComboBox/ComboBox.module.scss.js +3 -3
  45. package/dist/components/Common/UI/DatePicker/DatePicker.module.scss.js +4 -4
  46. package/dist/components/Common/UI/DescriptionList/DescriptionList.module.scss.js +1 -1
  47. package/dist/components/Common/UI/Dialog/Dialog.module.scss.js +2 -2
  48. package/dist/components/Common/UI/FileInput/FileInput.js +1 -1
  49. package/dist/components/Common/UI/FileInput/FileInput.module.scss.js +26 -26
  50. package/dist/components/Common/UI/Input/Input.module.scss.js +8 -8
  51. package/dist/components/Common/UI/Modal/Modal.module.scss.js +12 -12
  52. package/dist/components/Common/UI/ProgressBar/ProgressBar.js +4 -4
  53. package/dist/components/Common/UI/Radio/Radio.module.scss.js +6 -6
  54. package/dist/components/Common/UI/Select/Select.module.scss.js +4 -4
  55. package/dist/components/Common/UI/Table/Table.js +1 -1
  56. package/dist/components/Common/UI/Table/Table.js.map +1 -1
  57. package/dist/components/Common/UI/Table/Table.module.scss.js +1 -1
  58. package/dist/components/Common/UI/Tabs/Tabs.module.scss.js +1 -1
  59. package/dist/components/Common/UI/Text/Text.module.scss.js +17 -15
  60. package/dist/components/Common/UI/Text/Text.module.scss.js.map +1 -1
  61. package/dist/components/Common/UI/TextArea/TextArea.module.scss.js +4 -4
  62. package/dist/components/Company/AssignSignatory/AssignSignatory.js +3 -2
  63. package/dist/components/Company/AssignSignatory/AssignSignatory.js.map +1 -1
  64. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +4 -3
  65. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
  66. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +3 -2
  67. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
  68. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +1 -1
  69. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +12 -12
  70. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +4 -3
  71. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  72. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +3 -2
  73. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
  74. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +1 -1
  75. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +1 -1
  76. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +4 -3
  77. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  78. package/dist/components/Company/AssignSignatory/TitleSelect.js +4 -3
  79. package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
  80. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +6 -5
  81. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  82. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +9 -8
  83. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
  84. package/dist/components/Company/BankAccount/BankAccountForm/Form.js +7 -5
  85. package/dist/components/Company/BankAccount/BankAccountForm/Form.js.map +1 -1
  86. package/dist/components/Company/BankAccount/BankAccountForm/context.js +4 -3
  87. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  88. package/dist/components/Company/BankAccount/BankAccountList/Actions.js +3 -2
  89. package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
  90. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +7 -6
  91. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
  92. package/dist/components/Company/BankAccount/BankAccountVerify/Form.js +7 -5
  93. package/dist/components/Company/BankAccount/BankAccountVerify/Form.js.map +1 -1
  94. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +3 -2
  95. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
  96. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +9 -8
  97. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  98. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +4 -3
  99. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  100. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +4 -3
  101. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  102. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +4 -3
  103. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  104. package/dist/components/Company/FederalTaxes/Actions.js +7 -6
  105. package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
  106. package/dist/components/Company/FederalTaxes/FederalTaxes.js +4 -3
  107. package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
  108. package/dist/components/Company/FederalTaxes/Form.js +5 -3
  109. package/dist/components/Company/FederalTaxes/Form.js.map +1 -1
  110. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +6 -5
  111. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  112. package/dist/components/Company/Industry/Actions.js +8 -7
  113. package/dist/components/Company/Industry/Actions.js.map +1 -1
  114. package/dist/components/Company/Industry/Context.js +7 -6
  115. package/dist/components/Company/Industry/Context.js.map +1 -1
  116. package/dist/components/Company/Industry/Edit.js +3 -2
  117. package/dist/components/Company/Industry/Edit.js.map +1 -1
  118. package/dist/components/Company/Locations/LocationForm/Actions.js +7 -6
  119. package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
  120. package/dist/components/Company/Locations/LocationForm/Form.js +1 -1
  121. package/dist/components/Company/Locations/LocationForm/LocationForm.js +4 -3
  122. package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
  123. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +4 -3
  124. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  125. package/dist/components/Company/Locations/LocationsList/Actions.js +3 -2
  126. package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
  127. package/dist/components/Company/Locations/LocationsList/List.js +7 -6
  128. package/dist/components/Company/Locations/LocationsList/List.js.map +1 -1
  129. package/dist/components/Company/Locations/LocationsList/LocationsList.js +8 -7
  130. package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
  131. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +4 -3
  132. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  133. package/dist/components/Company/OnboardingOverview/Completed.js +12 -10
  134. package/dist/components/Company/OnboardingOverview/Completed.js.map +1 -1
  135. package/dist/components/Company/OnboardingOverview/MissingRequirements.js +8 -6
  136. package/dist/components/Company/OnboardingOverview/MissingRequirements.js.map +1 -1
  137. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +8 -7
  138. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js.map +1 -1
  139. package/dist/components/Company/OnboardingOverview/context.js +4 -3
  140. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  141. package/dist/components/Company/PaySchedule/PaySchedule.js +4 -3
  142. package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
  143. package/dist/components/Company/PaySchedule/_parts/Actions.js +3 -2
  144. package/dist/components/Company/PaySchedule/_parts/Actions.js.map +1 -1
  145. package/dist/components/Company/PaySchedule/_parts/Edit.js +15 -15
  146. package/dist/components/Company/PaySchedule/_parts/Head.js +13 -11
  147. package/dist/components/Company/PaySchedule/_parts/Head.js.map +1 -1
  148. package/dist/components/Company/PaySchedule/_parts/List.js +15 -13
  149. package/dist/components/Company/PaySchedule/_parts/List.js.map +1 -1
  150. package/dist/components/Company/PaySchedule/usePaySchedule.js +6 -5
  151. package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
  152. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +3 -2
  153. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
  154. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +4 -3
  155. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  156. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +3 -2
  157. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
  158. package/dist/components/Company/StateTaxes/StateTaxesList/List.js +3 -2
  159. package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
  160. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +4 -3
  161. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  162. package/dist/components/Contractor/Address/Address.js +5 -4
  163. package/dist/components/Contractor/Address/Address.js.map +1 -1
  164. package/dist/components/Contractor/Address/Form.js +1 -1
  165. package/dist/components/Contractor/Address/useAddress.js +6 -5
  166. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  167. package/dist/components/Contractor/ContractorList/index.js +32 -31
  168. package/dist/components/Contractor/ContractorList/index.js.map +1 -1
  169. package/dist/components/Contractor/NewHireReport/NewHireReport.js +14 -13
  170. package/dist/components/Contractor/NewHireReport/NewHireReport.js.map +1 -1
  171. package/dist/components/Contractor/PaymentMethod/BankAccountForm.js +12 -11
  172. package/dist/components/Contractor/PaymentMethod/BankAccountForm.js.map +1 -1
  173. package/dist/components/Contractor/PaymentMethod/PaymentMethod.js +3 -2
  174. package/dist/components/Contractor/PaymentMethod/PaymentMethod.js.map +1 -1
  175. package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js +4 -3
  176. package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js.map +1 -1
  177. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js +4 -2
  178. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js.map +1 -1
  179. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js +10 -10
  180. package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js +9 -7
  181. package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js.map +1 -1
  182. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js +9 -8
  183. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js.map +1 -1
  184. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js +11 -9
  185. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js.map +1 -1
  186. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js +8 -6
  187. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js.map +1 -1
  188. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.module.scss.js +14 -14
  189. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.js +4 -2
  190. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.js.map +1 -1
  191. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +4 -2
  192. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
  193. package/dist/components/Contractor/Profile/ContractorProfileForm.js +15 -15
  194. package/dist/components/Contractor/Profile/ContractorProfileForm.module.scss.js +1 -1
  195. package/dist/components/Contractor/Profile/useContractorProfile.js +3 -2
  196. package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
  197. package/dist/components/Contractor/Submit/Submit.js +21 -20
  198. package/dist/components/Contractor/Submit/Submit.js.map +1 -1
  199. package/dist/components/Employee/Compensation/Actions.js +13 -12
  200. package/dist/components/Employee/Compensation/Actions.js.map +1 -1
  201. package/dist/components/Employee/Compensation/Edit.js +17 -16
  202. package/dist/components/Employee/Compensation/Edit.js.map +1 -1
  203. package/dist/components/Employee/Compensation/List.js +23 -22
  204. package/dist/components/Employee/Compensation/List.js.map +1 -1
  205. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.d.ts +3 -1
  206. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js +145 -137
  207. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js.map +1 -1
  208. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.d.ts +2 -1
  209. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js +106 -101
  210. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js.map +1 -1
  211. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.js +90 -87
  212. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.js.map +1 -1
  213. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.d.ts +2 -1
  214. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js +110 -104
  215. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js.map +1 -1
  216. package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js +51 -45
  217. package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js.map +1 -1
  218. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js +31 -30
  219. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js.map +1 -1
  220. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.module.scss.js +4 -8
  221. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.module.scss.js.map +1 -1
  222. package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js +3 -2
  223. package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js.map +1 -1
  224. package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js +3 -2
  225. package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  226. package/dist/components/Employee/DocumentSigner/DocumentList/List.js +4 -2
  227. package/dist/components/Employee/DocumentSigner/DocumentList/List.js.map +1 -1
  228. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +4 -3
  229. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  230. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js +3 -2
  231. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  232. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +4 -3
  233. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  234. package/dist/components/Employee/EmployeeList/Actions.js +7 -6
  235. package/dist/components/Employee/EmployeeList/Actions.js.map +1 -1
  236. package/dist/components/Employee/EmployeeList/EmployeeList.js +4 -3
  237. package/dist/components/Employee/EmployeeList/EmployeeList.js.map +1 -1
  238. package/dist/components/Employee/EmployeeList/Head.js +7 -5
  239. package/dist/components/Employee/EmployeeList/Head.js.map +1 -1
  240. package/dist/components/Employee/EmployeeList/List.js +3 -2
  241. package/dist/components/Employee/EmployeeList/List.js.map +1 -1
  242. package/dist/components/Employee/EmployeeList/useEmployeeList.js +4 -3
  243. package/dist/components/Employee/EmployeeList/useEmployeeList.js.map +1 -1
  244. package/dist/components/Employee/FederalTaxes/Actions.js +6 -5
  245. package/dist/components/Employee/FederalTaxes/Actions.js.map +1 -1
  246. package/dist/components/Employee/FederalTaxes/FederalForm.js +12 -11
  247. package/dist/components/Employee/FederalTaxes/FederalForm.js.map +1 -1
  248. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js +4 -3
  249. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js.map +1 -1
  250. package/dist/components/Employee/Landing/Landing.js +11 -10
  251. package/dist/components/Employee/Landing/Landing.js.map +1 -1
  252. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +7 -7
  253. package/dist/components/Employee/PaymentMethod/Actions.js +6 -5
  254. package/dist/components/Employee/PaymentMethod/Actions.js.map +1 -1
  255. package/dist/components/Employee/PaymentMethod/BankAccountEdit.js +5 -4
  256. package/dist/components/Employee/PaymentMethod/BankAccountEdit.js.map +1 -1
  257. package/dist/components/Employee/PaymentMethod/BankAccountsList.js +3 -2
  258. package/dist/components/Employee/PaymentMethod/BankAccountsList.js.map +1 -1
  259. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js +7 -6
  260. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js.map +1 -1
  261. package/dist/components/Employee/PaymentMethod/Split.js +11 -10
  262. package/dist/components/Employee/PaymentMethod/Split.js.map +1 -1
  263. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +6 -5
  264. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
  265. package/dist/components/Employee/Profile/Actions.js +6 -5
  266. package/dist/components/Employee/Profile/Actions.js.map +1 -1
  267. package/dist/components/Employee/Profile/AdminPersonalDetails.js +6 -5
  268. package/dist/components/Employee/Profile/AdminPersonalDetails.js.map +1 -1
  269. package/dist/components/Employee/Profile/AdminPersonalDetails.module.scss.js +1 -1
  270. package/dist/components/Employee/Profile/HomeAddress.js +1 -1
  271. package/dist/components/Employee/Profile/PersonalDetailsInputs.js +2 -2
  272. package/dist/components/Employee/Profile/useProfile.js +4 -3
  273. package/dist/components/Employee/Profile/useProfile.js.map +1 -1
  274. package/dist/components/Employee/StateTaxes/Actions.js +6 -5
  275. package/dist/components/Employee/StateTaxes/Actions.js.map +1 -1
  276. package/dist/components/Employee/StateTaxes/useStateTaxes.js +4 -3
  277. package/dist/components/Employee/StateTaxes/useStateTaxes.js.map +1 -1
  278. package/dist/components/Employee/Taxes/Actions.js +7 -6
  279. package/dist/components/Employee/Taxes/Actions.js.map +1 -1
  280. package/dist/components/Employee/Taxes/FederalForm.js +14 -13
  281. package/dist/components/Employee/Taxes/FederalForm.js.map +1 -1
  282. package/dist/components/Employee/Taxes/useTaxes.js +4 -3
  283. package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
  284. package/dist/components/Flow/Flow.js +9 -7
  285. package/dist/components/Flow/Flow.js.map +1 -1
  286. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js +17 -16
  287. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js.map +1 -1
  288. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.module.scss.js +4 -4
  289. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js +41 -39
  290. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js.map +1 -1
  291. package/dist/components/InformationRequests/InformationRequests.d.ts +7 -2
  292. package/dist/components/InformationRequests/InformationRequests.js +78 -45
  293. package/dist/components/InformationRequests/InformationRequests.js.map +1 -1
  294. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +10 -9
  295. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js.map +1 -1
  296. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.module.scss.js +10 -10
  297. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.d.ts +2 -0
  298. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.js +33 -0
  299. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.js.map +1 -0
  300. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.d.ts +7 -0
  301. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js +39 -0
  302. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -0
  303. package/dist/components/Payroll/OffCycleReasonSelection/index.d.ts +5 -0
  304. package/dist/components/Payroll/OffCycleReasonSelection/types.d.ts +15 -0
  305. package/dist/components/Payroll/OffCycleReasonSelection/types.js +14 -0
  306. package/dist/components/Payroll/OffCycleReasonSelection/types.js.map +1 -0
  307. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateForm.d.ts +2 -0
  308. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateForm.js +35 -0
  309. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateForm.js.map +1 -0
  310. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateFormPresentation.d.ts +2 -0
  311. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateFormPresentation.js +65 -0
  312. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateFormPresentation.js.map +1 -0
  313. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateFormPresentation.module.scss.js +18 -0
  314. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateFormPresentation.module.scss.js.map +1 -0
  315. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateFormTypes.d.ts +53 -0
  316. package/dist/components/Payroll/PayPeriodDateForm/index.d.ts +3 -0
  317. package/dist/components/Payroll/PayPeriodDateForm/usePayPeriodDateValidation.d.ts +5 -0
  318. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js +4 -2
  319. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
  320. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js +19 -18
  321. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js.map +1 -1
  322. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +36 -36
  323. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.module.scss.js +5 -5
  324. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js +21 -19
  325. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
  326. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +17 -15
  327. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  328. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +26 -24
  329. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  330. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +30 -29
  331. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  332. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js +4 -2
  333. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js.map +1 -1
  334. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +3 -2
  335. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  336. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.module.scss.js +18 -18
  337. package/dist/components/Payroll/RecoveryCases/RecoveryCases.d.ts +4 -1
  338. package/dist/components/Payroll/RecoveryCases/RecoveryCases.js +34 -28
  339. package/dist/components/Payroll/RecoveryCases/RecoveryCases.js.map +1 -1
  340. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js +29 -29
  341. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js.map +1 -1
  342. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js +12 -11
  343. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js.map +1 -1
  344. package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js +4 -2
  345. package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js.map +1 -1
  346. package/dist/components/Payroll/index.d.ts +4 -0
  347. package/dist/components/Payroll/index.js +12 -8
  348. package/dist/components/Payroll/index.js.map +1 -1
  349. package/dist/components/Payroll/usePreparedPayrollData.js +3 -2
  350. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  351. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +3 -2
  352. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  353. package/dist/contexts/ThemeProvider/theme.d.ts +8 -3
  354. package/dist/contexts/ThemeProvider/theme.js +29 -24
  355. package/dist/contexts/ThemeProvider/theme.js.map +1 -1
  356. package/dist/helpers/dateFormatting.d.ts +3 -0
  357. package/dist/helpers/dateFormatting.js.map +1 -1
  358. package/dist/i18n/I18n.js +1 -1
  359. package/dist/i18n/I18n.js.map +1 -1
  360. package/dist/i18n/en/Employee.Deductions.json.js +157 -161
  361. package/dist/i18n/en/Employee.Deductions.json.js.map +1 -1
  362. package/dist/i18n/en/InformationRequests.InformationRequestList.json.js +18 -14
  363. package/dist/i18n/en/InformationRequests.InformationRequestList.json.js.map +1 -1
  364. package/dist/i18n/en/InformationRequests.json.js +8 -0
  365. package/dist/i18n/en/InformationRequests.json.js.map +1 -0
  366. package/dist/i18n/en/Payroll.OffCycleReasonSelection.json.js +12 -0
  367. package/dist/i18n/en/Payroll.OffCycleReasonSelection.json.js.map +1 -0
  368. package/dist/i18n/en/Payroll.PayPeriodDateForm.json.js +32 -0
  369. package/dist/i18n/en/Payroll.PayPeriodDateForm.json.js.map +1 -0
  370. package/dist/shared/constants.d.ts +4 -0
  371. package/dist/shared/constants.js +10 -8
  372. package/dist/shared/constants.js.map +1 -1
  373. package/dist/style.css +1 -1
  374. package/dist/types/i18next.d.ts +52 -3
  375. package/package.json +11 -11
  376. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.module.scss.js +0 -8
  377. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.module.scss.js.map +0 -1
  378. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.module.scss.js +0 -14
  379. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.module.scss.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,108 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.28.0
4
+
5
+ ### Features & Enhancements
6
+
7
+ - Extend DataTable for radio selection mode
8
+ - Update InformationRequests empty state title and remove description
9
+
10
+ ### Breaking changes
11
+
12
+ #### Card component adapter (selection props)
13
+
14
+ 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.
15
+
16
+ ```tsx
17
+ // Before: Card received onSelect and rendered its own checkbox
18
+ Card: ({ children, menu, className, onSelect }) => (
19
+ <div className={className}>
20
+ {onSelect && <input type="checkbox" onChange={e => onSelect(e.target.checked)} />}
21
+ {children}
22
+ {menu}
23
+ </div>
24
+ )
25
+
26
+ // After: Card receives pre-rendered selection UI via action
27
+ Card: ({ children, menu, className, action }) => (
28
+ <div className={className}>
29
+ {action}
30
+ {children}
31
+ {menu}
32
+ </div>
33
+ )
34
+ ```
35
+
36
+ ## 0.27.0
37
+
38
+ ### Features & Enhancements
39
+
40
+ - Update top level RFI flow to show an alert on submission
41
+ - Add pay period configuration component
42
+ - Implement offcycle payroll selection component
43
+ - Deductions: only show county field when counties are selectable
44
+
45
+ ### Fixes
46
+
47
+ - Add additional line heights and xs size to text component
48
+ - Deductions UI: remove back button, add cancel button, handle empty states, spacing, and county field visibility
49
+ - Update theme border colors and form component styles
50
+
51
+ ### Chores & Maintenance
52
+
53
+ - Add PR template and create-pr command guidance
54
+ - Ignore ESLint 10 major version in dependabot
55
+ - Bump @types/react from 19.2.13 to 19.2.14
56
+ - Bump i18next from 25.8.4 to 25.8.5
57
+ - Bump msw from 2.12.8 to 2.12.10
58
+ - Bump @storybook/react-vite, addon-docs, addon-onboarding, addon-a11y from 10.2.7 to 10.2.8
59
+ - Bump eslint-plugin-storybook from 10.2.7 to 10.2.8
60
+ - Bump typescript-eslint from 8.54.0 to 8.55.0
61
+ - Bump @playwright/test from 1.58.1 to 1.58.2
62
+
63
+ ### Breaking changes
64
+
65
+ #### Theme variable `fontLineHeight` removed
66
+
67
+ The theme variable `fontLineHeight` has been removed. Update your theme object to use the new line height variables:
68
+
69
+ ```tsx
70
+ // Before
71
+ theme={{
72
+ typography: {
73
+ fontLineHeight: '24px',
74
+ }
75
+ }}
76
+
77
+ // After
78
+ theme={{
79
+ fontLineHeightRegular: '24px',
80
+ // Optional: Add more specific line heights if needed
81
+ fontLineHeightSmall: '20px',
82
+ fontLineHeightLarge: '28px',
83
+ fontLineHeightExtraSmall: '18px',
84
+ }}
85
+ ```
86
+
87
+ #### Theme `colorBorder` replaced with `colorBorderPrimary` and `colorBorderSecondary`
88
+
89
+ The single `colorBorder` theme variable has been replaced with two variables for clearer border styling.
90
+
91
+ For a consistent experience, use the same color for both new variables:
92
+
93
+ ```tsx
94
+ // Before
95
+ theme={{
96
+ colorBorder: '#E0E0E0'
97
+ }}
98
+
99
+ // After
100
+ theme={{
101
+ colorBorderPrimary: '#E0E0E0',
102
+ colorBorderSecondary: '#E0E0E0'
103
+ }}
104
+ ```
105
+
3
106
  ## 0.26.0
4
107
 
5
108
  ### Features & Enhancements
@@ -1,10 +1,10 @@
1
1
  import * as e from "react";
2
- const i = ({
2
+ const l = ({
3
3
  title: t,
4
- titleId: l,
5
- ...r
6
- }) => /* @__PURE__ */ e.createElement("svg", { width: 20, height: 20, viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-labelledby": l, ...r }, t ? /* @__PURE__ */ e.createElement("title", { id: l }, t) : null, /* @__PURE__ */ e.createElement("g", { clipPath: "url(#clip0_10596_21547)" }, /* @__PURE__ */ e.createElement("path", { d: "M10.0003 6.66667V13.3333M6.66699 10H13.3337M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z", stroke: "currentColor", strokeWidth: 1.66667, strokeLinecap: "round", strokeLinejoin: "round" })), /* @__PURE__ */ e.createElement("defs", null, /* @__PURE__ */ e.createElement("clipPath", { id: "clip0_10596_21547" }, /* @__PURE__ */ e.createElement("rect", { width: 20, height: 20, fill: "white" }))));
4
+ titleId: r,
5
+ ...o
6
+ }) => /* @__PURE__ */ e.createElement("svg", { width: 20, height: 20, viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-labelledby": r, ...o }, t ? /* @__PURE__ */ e.createElement("title", { id: r }, t) : null, /* @__PURE__ */ e.createElement("path", { d: "M9.99984 6.66666V13.3333M6.6665 9.99999H13.3332M18.3332 9.99999C18.3332 14.6024 14.6022 18.3333 9.99984 18.3333C5.39746 18.3333 1.6665 14.6024 1.6665 9.99999C1.6665 5.39762 5.39746 1.66666 9.99984 1.66666C14.6022 1.66666 18.3332 5.39762 18.3332 9.99999Z", stroke: "#A4A7AE", strokeWidth: 1.66667, strokeLinecap: "round", strokeLinejoin: "round" }));
7
7
  export {
8
- i as default
8
+ l as default
9
9
  };
10
10
  //# sourceMappingURL=plus-circle.svg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plus-circle.svg.js","sources":["../../../src/assets/icons/plus-circle.svg?react"],"sourcesContent":["import * as React from \"react\";\nconst SvgPlusCircle = ({\n title,\n titleId,\n ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { width: 20, height: 20, viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"g\", { clipPath: \"url(#clip0_10596_21547)\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M10.0003 6.66667V13.3333M6.66699 10H13.3337M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\", stroke: \"currentColor\", strokeWidth: 1.66667, strokeLinecap: \"round\", strokeLinejoin: \"round\" })), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"clip0_10596_21547\" }, /* @__PURE__ */ React.createElement(\"rect\", { width: 20, height: 20, fill: \"white\" }))));\nexport default SvgPlusCircle;\n"],"names":["SvgPlusCircle","title","titleId","props","React"],"mappings":";AACK,MAACA,IAAgB,CAAC;AAAA,EACrB,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,MAAsB,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,IAAI,QAAQ,IAAI,SAAS,aAAa,MAAM,QAAQ,OAAO,8BAA8B,mBAAmBF,GAAS,GAAGC,EAAK,GAAIF,IAAwB,gBAAAG,EAAM,cAAc,SAAS,EAAE,IAAIF,KAAWD,CAAK,IAAI,MAAsB,gBAAAG,EAAM,cAAc,KAAK,EAAE,UAAU,0BAAyB,GAAoB,gBAAAA,EAAM,cAAc,QAAQ,EAAE,GAAG,iPAAiP,QAAQ,gBAAgB,aAAa,SAAS,eAAe,SAAS,gBAAgB,QAAO,CAAE,CAAC,GAAmB,gBAAAA,EAAM,cAAc,QAAQ,MAAsB,gBAAAA,EAAM,cAAc,YAAY,EAAE,IAAI,oBAAmB,GAAoB,gBAAAA,EAAM,cAAc,QAAQ,EAAE,OAAO,IAAI,QAAQ,IAAI,MAAM,QAAO,CAAE,CAAC,CAAC,CAAC;"}
1
+ {"version":3,"file":"plus-circle.svg.js","sources":["../../../src/assets/icons/plus-circle.svg?react"],"sourcesContent":["import * as React from \"react\";\nconst SvgPlusCircle = ({\n title,\n titleId,\n ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { width: 20, height: 20, viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M9.99984 6.66666V13.3333M6.6665 9.99999H13.3332M18.3332 9.99999C18.3332 14.6024 14.6022 18.3333 9.99984 18.3333C5.39746 18.3333 1.6665 14.6024 1.6665 9.99999C1.6665 5.39762 5.39746 1.66666 9.99984 1.66666C14.6022 1.66666 18.3332 5.39762 18.3332 9.99999Z\", stroke: \"#A4A7AE\", strokeWidth: 1.66667, strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nexport default SvgPlusCircle;\n"],"names":["SvgPlusCircle","title","titleId","props","React"],"mappings":";AACK,MAACA,IAAgB,CAAC;AAAA,EACrB,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,MAAsB,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,IAAI,QAAQ,IAAI,SAAS,aAAa,MAAM,QAAQ,OAAO,8BAA8B,mBAAmBF,GAAS,GAAGC,EAAK,GAAIF,IAAwB,gBAAAG,EAAM,cAAc,SAAS,EAAE,IAAIF,KAAWD,CAAK,IAAI,MAAsB,gBAAAG,EAAM,cAAc,QAAQ,EAAE,GAAG,iQAAiQ,QAAQ,WAAW,aAAa,SAAS,eAAe,SAAS,gBAAgB,SAAS,CAAC;"}
@@ -9,17 +9,18 @@ import { FadeIn as g } from "../Common/FadeIn/FadeIn.js";
9
9
  import { BaseContext as y } from "./useBase.js";
10
10
  import { useBaseSubmit as b } from "./useBaseSubmit.js";
11
11
  import { componentEvents as R } from "../../shared/constants.js";
12
+ import "classnames";
12
13
  import { InternalError as c } from "../Common/InternalError/InternalError.js";
13
14
  import { useComponentContext as S } from "../../contexts/ComponentAdapter/useComponentContext.js";
14
15
  import { useLoadingIndicator as p } from "../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
15
16
  import { renderErrorList as F } from "../../helpers/apiErrorToList.js";
16
- const J = ({
17
+ const M = ({
17
18
  children: i,
18
19
  FallbackComponent: o = c,
19
20
  LoaderComponent: n,
20
21
  onEvent: t
21
22
  }) => {
22
- const { error: e, fieldErrors: s, baseSubmitHandler: a, setError: u } = b(), { LoadingIndicator: f } = p(), m = n ?? f, l = (L) => {
23
+ const { error: e, fieldErrors: m, baseSubmitHandler: s, setError: u } = b(), { LoadingIndicator: f } = p(), a = n ?? f, l = (L) => {
23
24
  t(R.ERROR, L);
24
25
  };
25
26
  return /* @__PURE__ */ r(
@@ -27,19 +28,19 @@ const J = ({
27
28
  {
28
29
  value: {
29
30
  error: e,
30
- fieldErrors: s,
31
+ fieldErrors: m,
31
32
  setError: u,
32
33
  onEvent: t,
33
- baseSubmitHandler: a,
34
- LoadingIndicator: m
34
+ baseSubmitHandler: s,
35
+ LoadingIndicator: a
35
36
  },
36
37
  children: /* @__PURE__ */ r(
37
38
  j,
38
39
  {
39
40
  FallbackComponent: o,
40
- LoaderComponent: m,
41
+ LoaderComponent: a,
41
42
  onErrorBoundaryError: l,
42
- children: /* @__PURE__ */ r(T, { error: e, fieldErrors: s, children: i })
43
+ children: /* @__PURE__ */ r(T, { error: e, fieldErrors: m, children: i })
43
44
  }
44
45
  )
45
46
  }
@@ -60,20 +61,20 @@ const J = ({
60
61
  LoaderComponent: n,
61
62
  onErrorBoundaryError: t
62
63
  }) => {
63
- const { LoadingIndicator: e } = p(), s = n ?? e;
64
- return /* @__PURE__ */ r(h, { children: ({ reset: a }) => /* @__PURE__ */ r(
64
+ const { LoadingIndicator: e } = p(), m = n ?? e;
65
+ return /* @__PURE__ */ r(h, { children: ({ reset: s }) => /* @__PURE__ */ r(
65
66
  E,
66
67
  {
67
68
  FallbackComponent: o,
68
- onReset: a,
69
+ onReset: s,
69
70
  onError: t,
70
- children: /* @__PURE__ */ r(C, { fallback: /* @__PURE__ */ r(s, {}), children: i })
71
+ children: /* @__PURE__ */ r(C, { fallback: /* @__PURE__ */ r(m, {}), children: i })
71
72
  }
72
73
  ) });
73
74
  };
74
75
  export {
75
76
  j as BaseBoundaries,
76
- J as BaseComponent,
77
+ M as BaseComponent,
77
78
  T as BaseLayout
78
79
  };
79
80
  //# sourceMappingURL=Base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Base.js","sources":["../../../src/components/Base/Base.tsx"],"sourcesContent":["import type { ReactNode, JSX, ErrorInfo } from 'react'\nimport { Suspense } from 'react'\nimport type { FallbackProps } from 'react-error-boundary'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { useTranslation } from 'react-i18next'\nimport { APIError } from '@gusto/embedded-api/models/errors/apierror'\nimport { SDKValidationError } from '@gusto/embedded-api/models/errors/sdkvalidationerror'\nimport { QueryErrorResetBoundary } from '@tanstack/react-query'\nimport type { EntityErrorObject } from '@gusto/embedded-api/models/components/entityerrorobject'\nimport { FadeIn } from '../Common/FadeIn/FadeIn'\nimport { BaseContext, type KnownErrors, type OnEventType } from './useBase'\nimport { useBaseSubmit } from './useBaseSubmit'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport { InternalError } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport type { ResourceDictionary, Resources } from '@/types/Helpers'\nimport { useLoadingIndicator } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport type { LoadingIndicatorContextProps } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport { renderErrorList } from '@/helpers/apiErrorToList'\n\nexport interface CommonComponentInterface<TResourceKey extends keyof Resources = keyof Resources> {\n children?: ReactNode\n className?: string\n defaultValues?: unknown\n dictionary?: ResourceDictionary<TResourceKey>\n}\n\n// Base component wrapper with error and suspense handling\nexport interface BaseComponentInterface<\n TResourceKey extends keyof Resources = keyof Resources,\n> extends CommonComponentInterface<TResourceKey> {\n FallbackComponent?: BaseBoundariesProps['FallbackComponent']\n LoaderComponent?: BaseBoundariesProps['LoaderComponent']\n onEvent: OnEventType<EventType, unknown>\n}\n\nexport const BaseComponent = <TResourceKey extends keyof Resources = keyof Resources>({\n children,\n FallbackComponent = InternalError,\n LoaderComponent: LoadingIndicatorFromProps,\n onEvent,\n}: BaseComponentInterface<TResourceKey>) => {\n const { error, fieldErrors, baseSubmitHandler, setError } = useBaseSubmit()\n\n const { LoadingIndicator: LoadingIndicatorFromContext } = useLoadingIndicator()\n const LoaderComponent = LoadingIndicatorFromProps ?? LoadingIndicatorFromContext\n\n const onErrorBoundaryError = (error: unknown) => {\n onEvent(componentEvents.ERROR, error)\n }\n\n return (\n <BaseContext.Provider\n value={{\n error,\n fieldErrors,\n setError,\n onEvent,\n baseSubmitHandler,\n LoadingIndicator: LoaderComponent,\n }}\n >\n <BaseBoundaries\n FallbackComponent={FallbackComponent}\n LoaderComponent={LoaderComponent}\n onErrorBoundaryError={onErrorBoundaryError}\n >\n <BaseLayout error={error} fieldErrors={fieldErrors}>\n {children}\n </BaseLayout>\n </BaseBoundaries>\n </BaseContext.Provider>\n )\n}\n\ninterface BaseLayoutProps {\n children?: ReactNode\n error: KnownErrors | null\n fieldErrors: Array<EntityErrorObject> | null\n}\n\nexport const BaseLayout = ({ children, error, fieldErrors }: BaseLayoutProps) => {\n const Components = useComponentContext()\n const { t } = useTranslation()\n\n return (\n <FadeIn>\n {(error || fieldErrors) && (\n <Components.Alert label={t('status.errorEncountered')} status=\"error\">\n {fieldErrors && <Components.UnorderedList items={renderErrorList(fieldErrors)} />}\n {error && error instanceof APIError && <Components.Text>{error.message}</Components.Text>}\n {error && error instanceof SDKValidationError && (\n <Components.Text as=\"pre\">{error.pretty()}</Components.Text>\n )}\n </Components.Alert>\n )}\n {children}\n </FadeIn>\n )\n}\n\nexport interface BaseBoundariesProps {\n children?: ReactNode\n FallbackComponent?: (props: FallbackProps) => JSX.Element\n LoaderComponent?: LoadingIndicatorContextProps['LoadingIndicator']\n onErrorBoundaryError?: (error: unknown, info: ErrorInfo) => void\n}\n\nexport const BaseBoundaries = ({\n children,\n FallbackComponent = InternalError,\n LoaderComponent: LoadingIndicatorFromProps,\n onErrorBoundaryError,\n}: BaseBoundariesProps) => {\n const { LoadingIndicator: LoadingIndicatorFromContext } = useLoadingIndicator()\n const LoaderComponent = LoadingIndicatorFromProps ?? LoadingIndicatorFromContext\n\n return (\n <QueryErrorResetBoundary>\n {({ reset: resetQueries }) => (\n <ErrorBoundary\n FallbackComponent={FallbackComponent}\n onReset={resetQueries}\n onError={onErrorBoundaryError}\n >\n <Suspense fallback={<LoaderComponent />}>{children}</Suspense>\n </ErrorBoundary>\n )}\n </QueryErrorResetBoundary>\n )\n}\n"],"names":["BaseComponent","children","FallbackComponent","InternalError","LoadingIndicatorFromProps","onEvent","error","fieldErrors","baseSubmitHandler","setError","useBaseSubmit","LoadingIndicatorFromContext","useLoadingIndicator","LoaderComponent","onErrorBoundaryError","componentEvents","jsx","BaseContext","BaseBoundaries","BaseLayout","Components","useComponentContext","t","useTranslation","FadeIn","jsxs","renderErrorList","APIError","SDKValidationError","QueryErrorResetBoundary","resetQueries","ErrorBoundary","Suspense"],"mappings":";;;;;;;;;;;;;;;AAoCO,MAAMA,IAAgB,CAAyD;AAAA,EACpF,UAAAC;AAAA,EACA,mBAAAC,IAAoBC;AAAA,EACpB,iBAAiBC;AAAA,EACjB,SAAAC;AACF,MAA4C;AAC1C,QAAM,EAAE,OAAAC,GAAO,aAAAC,GAAa,mBAAAC,GAAmB,UAAAC,EAAA,IAAaC,EAAA,GAEtD,EAAE,kBAAkBC,EAAA,IAAgCC,EAAA,GACpDC,IAAkBT,KAA6BO,GAE/CG,IAAuB,CAACR,MAAmB;AAC/C,IAAAD,EAAQU,EAAgB,OAAOT,CAAK;AAAA,EACtC;AAEA,SACE,gBAAAU;AAAA,IAACC,EAAY;AAAA,IAAZ;AAAA,MACC,OAAO;AAAA,QACL,OAAAX;AAAA,QACA,aAAAC;AAAA,QACA,UAAAE;AAAA,QACA,SAAAJ;AAAA,QACA,mBAAAG;AAAA,QACA,kBAAkBK;AAAA,MAAA;AAAA,MAGpB,UAAA,gBAAAG;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,mBAAAhB;AAAA,UACA,iBAAAW;AAAA,UACA,sBAAAC;AAAA,UAEA,UAAA,gBAAAE,EAACG,GAAA,EAAW,OAAAb,GAAc,aAAAC,GACvB,UAAAN,EAAA,CACH;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN,GAQakB,IAAa,CAAC,EAAE,UAAAlB,GAAU,OAAAK,GAAO,aAAAC,QAAmC;AAC/E,QAAMa,IAAaC,EAAA,GACb,EAAE,GAAAC,EAAA,IAAMC,EAAA;AAEd,2BACGC,GAAA,EACG,UAAA;AAAA,KAAAlB,KAASC,MACT,gBAAAkB,EAACL,EAAW,OAAX,EAAiB,OAAOE,EAAE,yBAAyB,GAAG,QAAO,SAC3D,UAAA;AAAA,MAAAf,uBAAgBa,EAAW,eAAX,EAAyB,OAAOM,EAAgBnB,CAAW,GAAG;AAAA,MAC9ED,KAASA,aAAiBqB,KAAY,gBAAAX,EAACI,EAAW,MAAX,EAAiB,YAAM,SAAQ;AAAA,MACtEd,KAASA,aAAiBsB,KACzB,gBAAAZ,EAACI,EAAW,MAAX,EAAgB,IAAG,OAAO,UAAAd,EAAM,OAAA,EAAO,CAAE;AAAA,IAAA,GAE9C;AAAA,IAEDL;AAAA,EAAA,GACH;AAEJ,GASaiB,IAAiB,CAAC;AAAA,EAC7B,UAAAjB;AAAA,EACA,mBAAAC,IAAoBC;AAAA,EACpB,iBAAiBC;AAAA,EACjB,sBAAAU;AACF,MAA2B;AACzB,QAAM,EAAE,kBAAkBH,EAAA,IAAgCC,EAAA,GACpDC,IAAkBT,KAA6BO;AAErD,2BACGkB,GAAA,EACE,UAAA,CAAC,EAAE,OAAOC,QACT,gBAAAd;AAAA,IAACe;AAAA,IAAA;AAAA,MACC,mBAAA7B;AAAA,MACA,SAAS4B;AAAA,MACT,SAAShB;AAAA,MAET,4BAACkB,GAAA,EAAS,UAAU,gBAAAhB,EAACH,GAAA,EAAgB,GAAK,UAAAZ,EAAA,CAAS;AAAA,IAAA;AAAA,EAAA,GAGzD;AAEJ;"}
1
+ {"version":3,"file":"Base.js","sources":["../../../src/components/Base/Base.tsx"],"sourcesContent":["import type { ReactNode, JSX, ErrorInfo } from 'react'\nimport { Suspense } from 'react'\nimport type { FallbackProps } from 'react-error-boundary'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { useTranslation } from 'react-i18next'\nimport { APIError } from '@gusto/embedded-api/models/errors/apierror'\nimport { SDKValidationError } from '@gusto/embedded-api/models/errors/sdkvalidationerror'\nimport { QueryErrorResetBoundary } from '@tanstack/react-query'\nimport type { EntityErrorObject } from '@gusto/embedded-api/models/components/entityerrorobject'\nimport { FadeIn } from '../Common/FadeIn/FadeIn'\nimport { BaseContext, type KnownErrors, type OnEventType } from './useBase'\nimport { useBaseSubmit } from './useBaseSubmit'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport { InternalError } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport type { ResourceDictionary, Resources } from '@/types/Helpers'\nimport { useLoadingIndicator } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport type { LoadingIndicatorContextProps } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport { renderErrorList } from '@/helpers/apiErrorToList'\n\nexport interface CommonComponentInterface<TResourceKey extends keyof Resources = keyof Resources> {\n children?: ReactNode\n className?: string\n defaultValues?: unknown\n dictionary?: ResourceDictionary<TResourceKey>\n}\n\n// Base component wrapper with error and suspense handling\nexport interface BaseComponentInterface<\n TResourceKey extends keyof Resources = keyof Resources,\n> extends CommonComponentInterface<TResourceKey> {\n FallbackComponent?: BaseBoundariesProps['FallbackComponent']\n LoaderComponent?: BaseBoundariesProps['LoaderComponent']\n onEvent: OnEventType<EventType, unknown>\n}\n\nexport const BaseComponent = <TResourceKey extends keyof Resources = keyof Resources>({\n children,\n FallbackComponent = InternalError,\n LoaderComponent: LoadingIndicatorFromProps,\n onEvent,\n}: BaseComponentInterface<TResourceKey>) => {\n const { error, fieldErrors, baseSubmitHandler, setError } = useBaseSubmit()\n\n const { LoadingIndicator: LoadingIndicatorFromContext } = useLoadingIndicator()\n const LoaderComponent = LoadingIndicatorFromProps ?? LoadingIndicatorFromContext\n\n const onErrorBoundaryError = (error: unknown) => {\n onEvent(componentEvents.ERROR, error)\n }\n\n return (\n <BaseContext.Provider\n value={{\n error,\n fieldErrors,\n setError,\n onEvent,\n baseSubmitHandler,\n LoadingIndicator: LoaderComponent,\n }}\n >\n <BaseBoundaries\n FallbackComponent={FallbackComponent}\n LoaderComponent={LoaderComponent}\n onErrorBoundaryError={onErrorBoundaryError}\n >\n <BaseLayout error={error} fieldErrors={fieldErrors}>\n {children}\n </BaseLayout>\n </BaseBoundaries>\n </BaseContext.Provider>\n )\n}\n\ninterface BaseLayoutProps {\n children?: ReactNode\n error: KnownErrors | null\n fieldErrors: Array<EntityErrorObject> | null\n}\n\nexport const BaseLayout = ({ children, error, fieldErrors }: BaseLayoutProps) => {\n const Components = useComponentContext()\n const { t } = useTranslation()\n\n return (\n <FadeIn>\n {(error || fieldErrors) && (\n <Components.Alert label={t('status.errorEncountered')} status=\"error\">\n {fieldErrors && <Components.UnorderedList items={renderErrorList(fieldErrors)} />}\n {error && error instanceof APIError && <Components.Text>{error.message}</Components.Text>}\n {error && error instanceof SDKValidationError && (\n <Components.Text as=\"pre\">{error.pretty()}</Components.Text>\n )}\n </Components.Alert>\n )}\n {children}\n </FadeIn>\n )\n}\n\nexport interface BaseBoundariesProps {\n children?: ReactNode\n FallbackComponent?: (props: FallbackProps) => JSX.Element\n LoaderComponent?: LoadingIndicatorContextProps['LoadingIndicator']\n onErrorBoundaryError?: (error: unknown, info: ErrorInfo) => void\n}\n\nexport const BaseBoundaries = ({\n children,\n FallbackComponent = InternalError,\n LoaderComponent: LoadingIndicatorFromProps,\n onErrorBoundaryError,\n}: BaseBoundariesProps) => {\n const { LoadingIndicator: LoadingIndicatorFromContext } = useLoadingIndicator()\n const LoaderComponent = LoadingIndicatorFromProps ?? LoadingIndicatorFromContext\n\n return (\n <QueryErrorResetBoundary>\n {({ reset: resetQueries }) => (\n <ErrorBoundary\n FallbackComponent={FallbackComponent}\n onReset={resetQueries}\n onError={onErrorBoundaryError}\n >\n <Suspense fallback={<LoaderComponent />}>{children}</Suspense>\n </ErrorBoundary>\n )}\n </QueryErrorResetBoundary>\n )\n}\n"],"names":["BaseComponent","children","FallbackComponent","InternalError","LoadingIndicatorFromProps","onEvent","error","fieldErrors","baseSubmitHandler","setError","useBaseSubmit","LoadingIndicatorFromContext","useLoadingIndicator","LoaderComponent","onErrorBoundaryError","componentEvents","jsx","BaseContext","BaseBoundaries","BaseLayout","Components","useComponentContext","t","useTranslation","FadeIn","jsxs","renderErrorList","APIError","SDKValidationError","QueryErrorResetBoundary","resetQueries","ErrorBoundary","Suspense"],"mappings":";;;;;;;;;;;;;;;;AAoCO,MAAMA,IAAgB,CAAyD;AAAA,EACpF,UAAAC;AAAA,EACA,mBAAAC,IAAoBC;AAAA,EACpB,iBAAiBC;AAAA,EACjB,SAAAC;AACF,MAA4C;AAC1C,QAAM,EAAE,OAAAC,GAAO,aAAAC,GAAa,mBAAAC,GAAmB,UAAAC,EAAA,IAAaC,EAAA,GAEtD,EAAE,kBAAkBC,EAAA,IAAgCC,EAAA,GACpDC,IAAkBT,KAA6BO,GAE/CG,IAAuB,CAACR,MAAmB;AAC/C,IAAAD,EAAQU,EAAgB,OAAOT,CAAK;AAAA,EACtC;AAEA,SACE,gBAAAU;AAAA,IAACC,EAAY;AAAA,IAAZ;AAAA,MACC,OAAO;AAAA,QACL,OAAAX;AAAA,QACA,aAAAC;AAAA,QACA,UAAAE;AAAA,QACA,SAAAJ;AAAA,QACA,mBAAAG;AAAA,QACA,kBAAkBK;AAAA,MAAA;AAAA,MAGpB,UAAA,gBAAAG;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,mBAAAhB;AAAA,UACA,iBAAAW;AAAA,UACA,sBAAAC;AAAA,UAEA,UAAA,gBAAAE,EAACG,GAAA,EAAW,OAAAb,GAAc,aAAAC,GACvB,UAAAN,EAAA,CACH;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN,GAQakB,IAAa,CAAC,EAAE,UAAAlB,GAAU,OAAAK,GAAO,aAAAC,QAAmC;AAC/E,QAAMa,IAAaC,EAAA,GACb,EAAE,GAAAC,EAAA,IAAMC,EAAA;AAEd,2BACGC,GAAA,EACG,UAAA;AAAA,KAAAlB,KAASC,MACT,gBAAAkB,EAACL,EAAW,OAAX,EAAiB,OAAOE,EAAE,yBAAyB,GAAG,QAAO,SAC3D,UAAA;AAAA,MAAAf,uBAAgBa,EAAW,eAAX,EAAyB,OAAOM,EAAgBnB,CAAW,GAAG;AAAA,MAC9ED,KAASA,aAAiBqB,KAAY,gBAAAX,EAACI,EAAW,MAAX,EAAiB,YAAM,SAAQ;AAAA,MACtEd,KAASA,aAAiBsB,KACzB,gBAAAZ,EAACI,EAAW,MAAX,EAAgB,IAAG,OAAO,UAAAd,EAAM,OAAA,EAAO,CAAE;AAAA,IAAA,GAE9C;AAAA,IAEDL;AAAA,EAAA,GACH;AAEJ,GASaiB,IAAiB,CAAC;AAAA,EAC7B,UAAAjB;AAAA,EACA,mBAAAC,IAAoBC;AAAA,EACpB,iBAAiBC;AAAA,EACjB,sBAAAU;AACF,MAA2B;AACzB,QAAM,EAAE,kBAAkBH,EAAA,IAAgCC,EAAA,GACpDC,IAAkBT,KAA6BO;AAErD,2BACGkB,GAAA,EACE,UAAA,CAAC,EAAE,OAAOC,QACT,gBAAAd;AAAA,IAACe;AAAA,IAAA;AAAA,MACC,mBAAA7B;AAAA,MACA,SAAS4B;AAAA,MACT,SAAShB;AAAA,MAET,4BAACkB,GAAA,EAAS,UAAU,gBAAAhB,EAACH,GAAA,EAAgB,GAAK,UAAAZ,EAAA,CAAS;AAAA,IAAA;AAAA,EAAA,GAGzD;AAEJ;"}
@@ -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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"}