@pagamio/frontend-commons-lib 0.8.175 → 0.8.183

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 (508) hide show
  1. package/lib/api/client.d.ts +88 -0
  2. package/lib/api/client.js +339 -0
  3. package/lib/api/context.d.ts +112 -0
  4. package/lib/api/context.js +105 -0
  5. package/lib/api/index.d.ts +4 -0
  6. package/lib/api/index.js +4 -0
  7. package/lib/api/swr.d.ts +46 -0
  8. package/lib/api/swr.js +124 -0
  9. package/lib/api/types.d.ts +145 -0
  10. package/lib/api/types.js +10 -0
  11. package/lib/auth/authenticators/AuthenticatorFactory.d.ts +25 -0
  12. package/lib/auth/authenticators/AuthenticatorFactory.js +32 -0
  13. package/lib/auth/authenticators/index.d.ts +7 -0
  14. package/lib/auth/authenticators/index.js +7 -0
  15. package/lib/auth/authenticators/processors/DefaultAuthenticatorProcessor.d.ts +21 -0
  16. package/lib/auth/authenticators/processors/DefaultAuthenticatorProcessor.js +26 -0
  17. package/lib/auth/authenticators/processors/StrapiAuthenticatorProcessor.d.ts +74 -0
  18. package/lib/auth/authenticators/processors/StrapiAuthenticatorProcessor.js +99 -0
  19. package/lib/auth/authenticators/types.d.ts +26 -0
  20. package/lib/auth/authenticators/types.js +9 -0
  21. package/lib/auth/components/AppBanner.d.ts +7 -0
  22. package/lib/auth/components/AppBanner.js +9 -0
  23. package/lib/auth/components/AuthCard.d.ts +8 -0
  24. package/lib/auth/components/AuthCard.js +14 -0
  25. package/lib/auth/components/AuthFormUtils.d.ts +58 -0
  26. package/lib/auth/components/AuthFormUtils.js +52 -0
  27. package/lib/auth/components/AuthPageLayout.d.ts +45 -0
  28. package/lib/auth/components/AuthPageLayout.js +12 -0
  29. package/lib/auth/components/ChangePasswordPage.d.ts +12 -0
  30. package/lib/auth/components/ChangePasswordPage.js +59 -0
  31. package/lib/auth/components/CustomerRegistrationPage.d.ts +50 -0
  32. package/lib/auth/components/CustomerRegistrationPage.js +140 -0
  33. package/lib/auth/components/ForgotPasswordPage.d.ts +38 -0
  34. package/lib/auth/components/ForgotPasswordPage.js +76 -0
  35. package/lib/auth/components/LoginPage.d.ts +73 -0
  36. package/lib/auth/components/LoginPage.js +115 -0
  37. package/lib/auth/components/LogoutButton.d.ts +30 -0
  38. package/lib/auth/components/LogoutButton.js +47 -0
  39. package/lib/auth/components/ResetPasswordPage.d.ts +42 -0
  40. package/lib/auth/components/ResetPasswordPage.js +88 -0
  41. package/lib/auth/components/hooks/useChangeUserPassword.d.ts +26 -0
  42. package/lib/auth/components/hooks/useChangeUserPassword.js +63 -0
  43. package/lib/auth/components/index.d.ts +8 -0
  44. package/lib/auth/components/index.js +7 -0
  45. package/lib/auth/context/AuthContext.d.ts +65 -0
  46. package/lib/auth/context/AuthContext.js +150 -0
  47. package/lib/auth/context/index.d.ts +1 -0
  48. package/lib/auth/context/index.js +1 -0
  49. package/lib/auth/index.d.ts +7 -0
  50. package/lib/auth/index.js +7 -0
  51. package/lib/auth/services/AuthService.d.ts +230 -0
  52. package/lib/auth/services/AuthService.js +475 -0
  53. package/lib/auth/services/LogoutService.d.ts +27 -0
  54. package/lib/auth/services/LogoutService.js +98 -0
  55. package/lib/auth/services/index.d.ts +2 -0
  56. package/lib/auth/services/index.js +2 -0
  57. package/lib/auth/shared/index.d.ts +1 -0
  58. package/lib/auth/shared/index.js +1 -0
  59. package/lib/auth/shared/layout/AuthPageLayout.d.ts +10 -0
  60. package/lib/auth/shared/layout/AuthPageLayout.js +16 -0
  61. package/lib/auth/shared/layout/index.d.ts +1 -0
  62. package/lib/auth/shared/layout/index.js +1 -0
  63. package/lib/auth/types/auth.types.d.ts +234 -0
  64. package/lib/auth/types/auth.types.js +14 -0
  65. package/lib/auth/types/index.d.ts +1 -0
  66. package/lib/auth/types/index.js +1 -0
  67. package/lib/auth/utils/TokenManager.d.ts +43 -0
  68. package/lib/auth/utils/TokenManager.js +171 -0
  69. package/lib/auth/utils/Transformers.d.ts +158 -0
  70. package/lib/auth/utils/Transformers.js +263 -0
  71. package/lib/auth/utils/errorDetection.d.ts +22 -0
  72. package/lib/auth/utils/errorDetection.js +190 -0
  73. package/lib/auth/utils/index.d.ts +3 -0
  74. package/lib/auth/utils/index.js +3 -0
  75. package/lib/components/charts/LineGraph.d.ts +15 -0
  76. package/lib/components/charts/LineGraph.js +131 -0
  77. package/lib/components/icons/Icon.d.ts +8 -0
  78. package/lib/components/icons/Icon.js +13 -0
  79. package/lib/components/icons/index.d.ts +2 -0
  80. package/lib/components/icons/index.js +2 -0
  81. package/lib/components/icons/types.d.ts +26 -0
  82. package/lib/components/icons/types.js +33 -0
  83. package/lib/components/index.d.ts +3 -0
  84. package/lib/components/index.js +3 -0
  85. package/lib/components/layout/AppLayout.d.ts +34 -0
  86. package/lib/components/layout/AppLayout.js +19 -0
  87. package/lib/components/layout/AuthPageLayout.d.ts +13 -0
  88. package/lib/components/layout/AuthPageLayout.js +15 -0
  89. package/lib/components/layout/BreadcrumbNav.d.ts +2 -0
  90. package/lib/components/layout/BreadcrumbNav.js +10 -0
  91. package/lib/components/layout/LayoutContent.d.ts +6 -0
  92. package/lib/components/layout/LayoutContent.js +10 -0
  93. package/lib/components/layout/Navbar.d.ts +106 -0
  94. package/lib/components/layout/Navbar.js +66 -0
  95. package/lib/components/layout/PageHeader.d.ts +8 -0
  96. package/lib/components/layout/PageHeader.js +7 -0
  97. package/lib/components/layout/SessionExpiryModal.d.ts +10 -0
  98. package/lib/components/layout/SessionExpiryModal.js +9 -0
  99. package/lib/components/layout/Sidebar.d.ts +6 -0
  100. package/lib/components/layout/Sidebar.js +87 -0
  101. package/lib/components/layout/VerticalTabsLayout.d.ts +12 -0
  102. package/lib/components/layout/VerticalTabsLayout.js +14 -0
  103. package/lib/components/layout/index.d.ts +9 -0
  104. package/lib/components/layout/index.js +9 -0
  105. package/lib/components/ui/Avatar.d.ts +6 -0
  106. package/lib/components/ui/Avatar.js +11 -0
  107. package/lib/components/ui/AvatarIcon.d.ts +4 -0
  108. package/lib/components/ui/AvatarIcon.js +6 -0
  109. package/lib/components/ui/Button.d.ts +14 -0
  110. package/lib/components/ui/Button.js +30 -0
  111. package/lib/components/ui/Calendar.d.ts +9 -0
  112. package/lib/components/ui/Calendar.js +35 -0
  113. package/lib/components/ui/Card.d.ts +16 -0
  114. package/lib/components/ui/Card.js +6 -0
  115. package/lib/components/ui/Chart.d.ts +2 -0
  116. package/lib/components/ui/Chart.js +16 -0
  117. package/lib/components/ui/Checkbox.d.ts +4 -0
  118. package/lib/components/ui/Checkbox.js +8 -0
  119. package/lib/components/ui/Command.d.ts +80 -0
  120. package/lib/components/ui/Command.js +28 -0
  121. package/lib/components/ui/ContainedTab.d.ts +21 -0
  122. package/lib/components/ui/ContainedTab.js +37 -0
  123. package/lib/components/ui/DateFormat.d.ts +6 -0
  124. package/lib/components/ui/DateFormat.js +8 -0
  125. package/lib/components/ui/DatePicker.d.ts +14 -0
  126. package/lib/components/ui/DatePicker.js +91 -0
  127. package/lib/components/ui/DateRangeModal.d.ts +38 -0
  128. package/lib/components/ui/DateRangeModal.js +89 -0
  129. package/lib/components/ui/DetailsCard.d.ts +16 -0
  130. package/lib/components/ui/DetailsCard.js +14 -0
  131. package/lib/components/ui/DetailsPage.d.ts +36 -0
  132. package/lib/components/ui/DetailsPage.js +50 -0
  133. package/lib/components/ui/Dialog.d.ts +19 -0
  134. package/lib/components/ui/Dialog.js +22 -0
  135. package/lib/components/ui/EmptyState.d.ts +6 -0
  136. package/lib/components/ui/EmptyState.js +6 -0
  137. package/lib/components/ui/FilterComponent.d.ts +30 -0
  138. package/lib/components/ui/FilterComponent.js +80 -0
  139. package/lib/components/ui/FilterList.d.ts +52 -0
  140. package/lib/components/ui/FilterList.js +62 -0
  141. package/lib/components/ui/FilterSection.d.ts +31 -0
  142. package/lib/components/ui/FilterSection.js +21 -0
  143. package/lib/components/ui/FilterWrapper.d.ts +6 -0
  144. package/lib/components/ui/FilterWrapper.js +7 -0
  145. package/lib/components/ui/Form.d.ts +23 -0
  146. package/lib/components/ui/Form.js +62 -0
  147. package/lib/components/ui/HoverableValue.d.ts +7 -0
  148. package/lib/components/ui/HoverableValue.js +8 -0
  149. package/lib/components/ui/IconButton.d.ts +10 -0
  150. package/lib/components/ui/IconButton.js +10 -0
  151. package/lib/components/ui/ImageComponent.d.ts +8 -0
  152. package/lib/components/ui/ImageComponent.js +5 -0
  153. package/lib/components/ui/ImageUploader.d.ts +17 -0
  154. package/lib/components/ui/ImageUploader.js +144 -0
  155. package/lib/components/ui/Input.d.ts +4 -0
  156. package/lib/components/ui/Input.js +8 -0
  157. package/lib/components/ui/Label.d.ts +5 -0
  158. package/lib/components/ui/Label.js +9 -0
  159. package/lib/components/ui/Loader.d.ts +10 -0
  160. package/lib/components/ui/Loader.js +7 -0
  161. package/lib/components/ui/Modal.d.ts +72 -0
  162. package/lib/components/ui/Modal.js +31 -0
  163. package/lib/components/ui/MultiSelect.d.ts +16 -0
  164. package/lib/components/ui/MultiSelect.js +59 -0
  165. package/lib/components/ui/NotificationModal.d.ts +18 -0
  166. package/lib/components/ui/NotificationModal.js +40 -0
  167. package/lib/components/ui/PhoneInput.d.ts +12 -0
  168. package/lib/components/ui/PhoneInput.js +58 -0
  169. package/lib/components/ui/Popover.d.ts +7 -0
  170. package/lib/components/ui/Popover.js +10 -0
  171. package/lib/components/ui/Progress.d.ts +7 -0
  172. package/lib/components/ui/Progress.js +7 -0
  173. package/lib/components/ui/Radio.d.ts +5 -0
  174. package/lib/components/ui/Radio.js +14 -0
  175. package/lib/components/ui/RangeDatePicker.d.ts +78 -0
  176. package/lib/components/ui/RangeDatePicker.js +68 -0
  177. package/lib/components/ui/Select.d.ts +13 -0
  178. package/lib/components/ui/Select.js +57 -0
  179. package/lib/components/ui/Separator.d.ts +4 -0
  180. package/lib/components/ui/Separator.js +7 -0
  181. package/lib/components/ui/Sheet.d.ts +26 -0
  182. package/lib/components/ui/Sheet.js +37 -0
  183. package/lib/components/ui/StatusCell.d.ts +9 -0
  184. package/lib/components/ui/StatusCell.js +6 -0
  185. package/lib/components/ui/Switch.d.ts +10 -0
  186. package/lib/components/ui/Switch.js +22 -0
  187. package/lib/components/ui/Tab.d.ts +15 -0
  188. package/lib/components/ui/Tab.js +13 -0
  189. package/lib/components/ui/TableDownload.d.ts +11 -0
  190. package/lib/components/ui/TableDownload.js +82 -0
  191. package/lib/components/ui/TailwindIndicator.d.ts +1 -0
  192. package/lib/components/ui/TailwindIndicator.js +6 -0
  193. package/lib/components/ui/TextField.d.ts +60 -0
  194. package/lib/components/ui/TextField.js +42 -0
  195. package/lib/components/ui/Textarea.d.ts +5 -0
  196. package/lib/components/ui/Textarea.js +8 -0
  197. package/lib/components/ui/Toast.d.ts +12 -0
  198. package/lib/components/ui/Toast.js +25 -0
  199. package/lib/components/ui/UploadField.d.ts +15 -0
  200. package/lib/components/ui/UploadField.js +45 -0
  201. package/lib/components/ui/VerticalTab.d.ts +16 -0
  202. package/lib/components/ui/VerticalTab.js +13 -0
  203. package/lib/components/ui/index.d.ts +49 -0
  204. package/lib/components/ui/index.js +47 -0
  205. package/lib/context/BreadcrumbContext.d.ts +28 -0
  206. package/lib/context/BreadcrumbContext.js +238 -0
  207. package/lib/context/FormEngineDrawerProvider.d.ts +21 -0
  208. package/lib/context/FormEngineDrawerProvider.js +38 -0
  209. package/lib/context/MultiFormEngineDrawerProvider.d.ts +25 -0
  210. package/lib/context/MultiFormEngineDrawerProvider.js +89 -0
  211. package/lib/context/SidebarContext.d.ts +65 -0
  212. package/lib/context/SidebarContext.js +47 -0
  213. package/lib/context/ToastContext.d.ts +17 -0
  214. package/lib/context/ToastContext.js +29 -0
  215. package/lib/context/index.d.ts +5 -0
  216. package/lib/context/index.js +5 -0
  217. package/lib/dashboard-visuals/components/BaseChart.d.ts +55 -0
  218. package/lib/dashboard-visuals/components/BaseChart.js +201 -0
  219. package/lib/dashboard-visuals/components/CardWrapper.d.ts +10 -0
  220. package/lib/dashboard-visuals/components/CardWrapper.js +13 -0
  221. package/lib/dashboard-visuals/components/ChartDetailsModal.d.ts +57 -0
  222. package/lib/dashboard-visuals/components/ChartDetailsModal.js +27 -0
  223. package/lib/dashboard-visuals/components/ChartDetailsModalWrapper.d.ts +29 -0
  224. package/lib/dashboard-visuals/components/ChartDetailsModalWrapper.js +4 -0
  225. package/lib/dashboard-visuals/components/ChartFormatter.d.ts +22 -0
  226. package/lib/dashboard-visuals/components/ChartFormatter.js +46 -0
  227. package/lib/dashboard-visuals/components/ChartWrapper.d.ts +11 -0
  228. package/lib/dashboard-visuals/components/ChartWrapper.js +14 -0
  229. package/lib/dashboard-visuals/components/DashboardFilter.d.ts +8 -0
  230. package/lib/dashboard-visuals/components/DashboardFilter.js +17 -0
  231. package/lib/dashboard-visuals/components/DataTable.d.ts +3 -0
  232. package/lib/dashboard-visuals/components/DataTable.js +57 -0
  233. package/lib/dashboard-visuals/components/EmptyState.d.ts +6 -0
  234. package/lib/dashboard-visuals/components/EmptyState.js +6 -0
  235. package/lib/dashboard-visuals/components/ErrorState.d.ts +7 -0
  236. package/lib/dashboard-visuals/components/ErrorState.js +5 -0
  237. package/lib/dashboard-visuals/components/FilterComponentSkeleton.d.ts +3 -0
  238. package/lib/dashboard-visuals/components/FilterComponentSkeleton.js +11 -0
  239. package/lib/dashboard-visuals/components/Pagination.d.ts +10 -0
  240. package/lib/dashboard-visuals/components/Pagination.js +7 -0
  241. package/lib/dashboard-visuals/components/Switch.d.ts +8 -0
  242. package/lib/dashboard-visuals/components/Switch.js +10 -0
  243. package/lib/dashboard-visuals/components/TileSkeleton.d.ts +2 -0
  244. package/lib/dashboard-visuals/components/TileSkeleton.js +5 -0
  245. package/lib/dashboard-visuals/components/molecules/Analytics.d.ts +11 -0
  246. package/lib/dashboard-visuals/components/molecules/Analytics.js +9 -0
  247. package/lib/dashboard-visuals/components/molecules/DataGrid.d.ts +15 -0
  248. package/lib/dashboard-visuals/components/molecules/DataGrid.js +124 -0
  249. package/lib/dashboard-visuals/components/molecules/NoChartData.d.ts +6 -0
  250. package/lib/dashboard-visuals/components/molecules/NoChartData.js +6 -0
  251. package/lib/dashboard-visuals/components/molecules/VisualChart.d.ts +16 -0
  252. package/lib/dashboard-visuals/components/molecules/VisualChart.js +8 -0
  253. package/lib/dashboard-visuals/components/types.d.ts +62 -0
  254. package/lib/dashboard-visuals/components/types.js +1 -0
  255. package/lib/dashboard-visuals/hooks/useChartData.d.ts +15 -0
  256. package/lib/dashboard-visuals/hooks/useChartData.js +82 -0
  257. package/lib/dashboard-visuals/hooks/useTooltipFormatter.d.ts +13 -0
  258. package/lib/dashboard-visuals/hooks/useTooltipFormatter.js +10 -0
  259. package/lib/dashboard-visuals/index.d.ts +39 -0
  260. package/lib/dashboard-visuals/index.js +168 -0
  261. package/lib/dashboard-visuals/types/index.d.ts +83 -0
  262. package/lib/dashboard-visuals/types/index.js +1 -0
  263. package/lib/dashboard-visuals/types/metricDetailData.d.ts +25 -0
  264. package/lib/dashboard-visuals/types/metricDetailData.js +1 -0
  265. package/lib/dashboard-visuals/utils/api.d.ts +5 -0
  266. package/lib/dashboard-visuals/utils/api.js +6 -0
  267. package/lib/dashboard-visuals/utils/chartOptions.d.ts +481 -0
  268. package/lib/dashboard-visuals/utils/chartOptions.js +393 -0
  269. package/lib/dashboard-visuals/utils/chunkArray.d.ts +1 -0
  270. package/lib/dashboard-visuals/utils/chunkArray.js +7 -0
  271. package/lib/dashboard-visuals/utils/defaultColors.d.ts +1 -0
  272. package/lib/dashboard-visuals/utils/defaultColors.js +1 -0
  273. package/lib/dashboard-visuals/utils/formatUtil.d.ts +203 -0
  274. package/lib/dashboard-visuals/utils/formatUtil.js +472 -0
  275. package/lib/dashboard-visuals/utils/gridUtil.d.ts +11 -0
  276. package/lib/dashboard-visuals/utils/gridUtil.js +32 -0
  277. package/lib/dashboard-visuals/utils/index.d.ts +6 -0
  278. package/lib/dashboard-visuals/utils/index.js +6 -0
  279. package/lib/dashboard-visuals/utils/tooltipUtils.d.ts +11 -0
  280. package/lib/dashboard-visuals/utils/tooltipUtils.js +180 -0
  281. package/lib/dashboard-visuals/visualRegistry.d.ts +4 -0
  282. package/lib/dashboard-visuals/visualRegistry.js +41 -0
  283. package/lib/dashboard-visuals/visuals/BarChart.d.ts +58 -0
  284. package/lib/dashboard-visuals/visuals/BarChart.js +95 -0
  285. package/lib/dashboard-visuals/visuals/BarLineHybridChart.d.ts +33 -0
  286. package/lib/dashboard-visuals/visuals/BarLineHybridChart.js +60 -0
  287. package/lib/dashboard-visuals/visuals/BubbleChart.d.ts +25 -0
  288. package/lib/dashboard-visuals/visuals/BubbleChart.js +101 -0
  289. package/lib/dashboard-visuals/visuals/DistributionChart.d.ts +11 -0
  290. package/lib/dashboard-visuals/visuals/DistributionChart.js +48 -0
  291. package/lib/dashboard-visuals/visuals/DonutChart.d.ts +50 -0
  292. package/lib/dashboard-visuals/visuals/DonutChart.js +105 -0
  293. package/lib/dashboard-visuals/visuals/GaugeChart.d.ts +32 -0
  294. package/lib/dashboard-visuals/visuals/GaugeChart.js +53 -0
  295. package/lib/dashboard-visuals/visuals/GroupedBarChart.d.ts +47 -0
  296. package/lib/dashboard-visuals/visuals/GroupedBarChart.js +131 -0
  297. package/lib/dashboard-visuals/visuals/HeatmapChart.d.ts +79 -0
  298. package/lib/dashboard-visuals/visuals/HeatmapChart.js +146 -0
  299. package/lib/dashboard-visuals/visuals/HorizontalBarChart.d.ts +50 -0
  300. package/lib/dashboard-visuals/visuals/HorizontalBarChart.js +131 -0
  301. package/lib/dashboard-visuals/visuals/ItemPerformanceCard.d.ts +30 -0
  302. package/lib/dashboard-visuals/visuals/ItemPerformanceCard.js +31 -0
  303. package/lib/dashboard-visuals/visuals/LineChart.d.ts +56 -0
  304. package/lib/dashboard-visuals/visuals/LineChart.js +80 -0
  305. package/lib/dashboard-visuals/visuals/LineGraph.d.ts +50 -0
  306. package/lib/dashboard-visuals/visuals/LineGraph.js +189 -0
  307. package/lib/dashboard-visuals/visuals/MetricSummaryCard.d.ts +14 -0
  308. package/lib/dashboard-visuals/visuals/MetricSummaryCard.js +8 -0
  309. package/lib/dashboard-visuals/visuals/MultiGaugeChart.d.ts +39 -0
  310. package/lib/dashboard-visuals/visuals/MultiGaugeChart.js +119 -0
  311. package/lib/dashboard-visuals/visuals/PieChart.d.ts +59 -0
  312. package/lib/dashboard-visuals/visuals/PieChart.js +194 -0
  313. package/lib/dashboard-visuals/visuals/SelectedEventTile.d.ts +14 -0
  314. package/lib/dashboard-visuals/visuals/SelectedEventTile.js +35 -0
  315. package/lib/dashboard-visuals/visuals/SpeedometerChart.d.ts +53 -0
  316. package/lib/dashboard-visuals/visuals/SpeedometerChart.js +94 -0
  317. package/lib/dashboard-visuals/visuals/Table.d.ts +26 -0
  318. package/lib/dashboard-visuals/visuals/Table.js +113 -0
  319. package/lib/dashboard-visuals/visuals/Tile.d.ts +16 -0
  320. package/lib/dashboard-visuals/visuals/Tile.js +16 -0
  321. package/lib/dashboard-visuals/visuals/TreeMap.d.ts +25 -0
  322. package/lib/dashboard-visuals/visuals/TreeMap.js +45 -0
  323. package/lib/dashboard-visuals/visuals/WaterfallChart.d.ts +52 -0
  324. package/lib/dashboard-visuals/visuals/WaterfallChart.js +266 -0
  325. package/lib/form-engine/Form.d.ts +4 -0
  326. package/lib/form-engine/Form.js +14 -0
  327. package/lib/form-engine/FormEngine.d.ts +3 -0
  328. package/lib/form-engine/FormEngine.js +121 -0
  329. package/lib/form-engine/components/FieldWrapper.d.ts +18 -0
  330. package/lib/form-engine/components/FieldWrapper.js +63 -0
  331. package/lib/form-engine/components/index.d.ts +2 -0
  332. package/lib/form-engine/components/index.js +2 -0
  333. package/lib/form-engine/components/inputs/card-expiry-input/CardExpiryInput.d.ts +16 -0
  334. package/lib/form-engine/components/inputs/card-expiry-input/CardExpiryInput.js +48 -0
  335. package/lib/form-engine/components/inputs/checkbox-input/CheckboxInput.d.ts +4 -0
  336. package/lib/form-engine/components/inputs/checkbox-input/CheckboxInput.js +5 -0
  337. package/lib/form-engine/components/inputs/credit-card-input/CreditCardInput.d.ts +4 -0
  338. package/lib/form-engine/components/inputs/credit-card-input/CreditCardInput.js +82 -0
  339. package/lib/form-engine/components/inputs/date-input/DateInput.d.ts +4 -0
  340. package/lib/form-engine/components/inputs/date-input/DateInput.js +7 -0
  341. package/lib/form-engine/components/inputs/date-input/index.d.ts +1 -0
  342. package/lib/form-engine/components/inputs/date-input/index.js +1 -0
  343. package/lib/form-engine/components/inputs/email-input/EmailInput.d.ts +4 -0
  344. package/lib/form-engine/components/inputs/email-input/EmailInput.js +5 -0
  345. package/lib/form-engine/components/inputs/email-input/index.d.ts +1 -0
  346. package/lib/form-engine/components/inputs/email-input/index.js +1 -0
  347. package/lib/form-engine/components/inputs/index.d.ts +13 -0
  348. package/lib/form-engine/components/inputs/index.js +13 -0
  349. package/lib/form-engine/components/inputs/label-input/LabelInput.d.ts +4 -0
  350. package/lib/form-engine/components/inputs/label-input/LabelInput.js +7 -0
  351. package/lib/form-engine/components/inputs/label-input/index.d.ts +1 -0
  352. package/lib/form-engine/components/inputs/label-input/index.js +1 -0
  353. package/lib/form-engine/components/inputs/multi-select-input/MultiSelectInput.d.ts +4 -0
  354. package/lib/form-engine/components/inputs/multi-select-input/MultiSelectInput.js +5 -0
  355. package/lib/form-engine/components/inputs/number-input/NumberInput.d.ts +4 -0
  356. package/lib/form-engine/components/inputs/number-input/NumberInput.js +5 -0
  357. package/lib/form-engine/components/inputs/number-input/index.d.ts +1 -0
  358. package/lib/form-engine/components/inputs/number-input/index.js +1 -0
  359. package/lib/form-engine/components/inputs/password-input/PasswordInput.d.ts +4 -0
  360. package/lib/form-engine/components/inputs/password-input/PasswordInput.js +9 -0
  361. package/lib/form-engine/components/inputs/password-input/index.d.ts +1 -0
  362. package/lib/form-engine/components/inputs/password-input/index.js +1 -0
  363. package/lib/form-engine/components/inputs/radio-button/RadioInput.d.ts +4 -0
  364. package/lib/form-engine/components/inputs/radio-button/RadioInput.js +6 -0
  365. package/lib/form-engine/components/inputs/radio-button/index.d.ts +1 -0
  366. package/lib/form-engine/components/inputs/radio-button/index.js +1 -0
  367. package/lib/form-engine/components/inputs/select/SelectInput.d.ts +4 -0
  368. package/lib/form-engine/components/inputs/select/SelectInput.js +6 -0
  369. package/lib/form-engine/components/inputs/select/index.d.ts +1 -0
  370. package/lib/form-engine/components/inputs/select/index.js +1 -0
  371. package/lib/form-engine/components/inputs/textarea-input/TextareaInput.d.ts +4 -0
  372. package/lib/form-engine/components/inputs/textarea-input/TextareaInput.js +5 -0
  373. package/lib/form-engine/components/inputs/textarea-input/index.d.ts +1 -0
  374. package/lib/form-engine/components/inputs/textarea-input/index.js +1 -0
  375. package/lib/form-engine/components/inputs/time-input/TimeInput.d.ts +4 -0
  376. package/lib/form-engine/components/inputs/time-input/TimeInput.js +5 -0
  377. package/lib/form-engine/components/inputs/time-input/index.d.ts +1 -0
  378. package/lib/form-engine/components/inputs/time-input/index.js +1 -0
  379. package/lib/form-engine/components/inputs/toggle-switch-input/ToggleSwitchInput.d.ts +4 -0
  380. package/lib/form-engine/components/inputs/toggle-switch-input/ToggleSwitchInput.js +7 -0
  381. package/lib/form-engine/components/inputs/toggle-switch-input/index.d.ts +1 -0
  382. package/lib/form-engine/components/inputs/toggle-switch-input/index.js +1 -0
  383. package/lib/form-engine/components/inputs/upload-field/UploadFieldForm.d.ts +4 -0
  384. package/lib/form-engine/components/inputs/upload-field/UploadFieldForm.js +59 -0
  385. package/lib/form-engine/components/inputs/upload-field/index.d.ts +1 -0
  386. package/lib/form-engine/components/inputs/upload-field/index.js +1 -0
  387. package/lib/form-engine/hooks/useFormPersistence.d.ts +11 -0
  388. package/lib/form-engine/hooks/useFormPersistence.js +46 -0
  389. package/lib/form-engine/index.d.ts +5 -0
  390. package/lib/form-engine/index.js +5 -0
  391. package/lib/form-engine/registry/RegisterComponents.d.ts +1 -0
  392. package/lib/form-engine/registry/RegisterComponents.js +35 -0
  393. package/lib/form-engine/registry/Registry.d.ts +5 -0
  394. package/lib/form-engine/registry/Registry.js +13 -0
  395. package/lib/form-engine/registry/index.d.ts +2 -0
  396. package/lib/form-engine/registry/index.js +2 -0
  397. package/lib/form-engine/types/index.d.ts +311 -0
  398. package/lib/form-engine/types/index.js +1 -0
  399. package/lib/helpers/index.d.ts +2 -0
  400. package/lib/helpers/index.js +2 -0
  401. package/lib/helpers/utils.d.ts +37 -0
  402. package/lib/helpers/utils.js +77 -0
  403. package/lib/helpers/validations.d.ts +80 -0
  404. package/lib/helpers/validations.js +39 -0
  405. package/lib/index.d.ts +21 -0
  406. package/lib/index.js +30 -0
  407. package/lib/mocks/mockApiRequestsConfig.d.ts +2 -0
  408. package/lib/mocks/mockApiRequestsConfig.js +343 -0
  409. package/lib/pagamio-drawer/TopUpWalletDrawer/TopUpWalletContent.d.ts +14 -0
  410. package/lib/pagamio-drawer/TopUpWalletDrawer/TopUpWalletContent.js +40 -0
  411. package/lib/pagamio-drawer/TopUpWalletDrawer/index.d.ts +11 -0
  412. package/lib/pagamio-drawer/TopUpWalletDrawer/index.js +7 -0
  413. package/lib/pagamio-drawer/components/BaseDrawer.d.ts +11 -0
  414. package/lib/pagamio-drawer/components/BaseDrawer.js +10 -0
  415. package/lib/pagamio-drawer/components/DrawerContent.d.ts +27 -0
  416. package/lib/pagamio-drawer/components/DrawerContent.js +237 -0
  417. package/lib/pagamio-drawer/index.d.ts +22 -0
  418. package/lib/pagamio-drawer/index.js +133 -0
  419. package/lib/pagamio-table/data-table/ExportButton.d.ts +57 -0
  420. package/lib/pagamio-table/data-table/ExportButton.js +96 -0
  421. package/lib/pagamio-table/data-table/MantineCoreTable.d.ts +44 -0
  422. package/lib/pagamio-table/data-table/MantineCoreTable.js +129 -0
  423. package/lib/pagamio-table/data-table/Pagination.d.ts +10 -0
  424. package/lib/pagamio-table/data-table/Pagination.js +5 -0
  425. package/lib/pagamio-table/data-table/TableDownload.d.ts +8 -0
  426. package/lib/pagamio-table/data-table/TableDownload.js +81 -0
  427. package/lib/pagamio-table/data-table/TableToolbar.d.ts +3 -0
  428. package/lib/pagamio-table/data-table/TableToolbar.js +16 -0
  429. package/lib/pagamio-table/data-table/exportUtils.d.ts +42 -0
  430. package/lib/pagamio-table/data-table/exportUtils.js +782 -0
  431. package/lib/pagamio-table/data-table/index.d.ts +5 -0
  432. package/lib/pagamio-table/data-table/index.js +11 -0
  433. package/lib/pagamio-table/data-table/pdfExportUtils.d.ts +111 -0
  434. package/lib/pagamio-table/data-table/pdfExportUtils.js +113 -0
  435. package/lib/pagamio-table/data-table/types.d.ts +169 -0
  436. package/lib/pagamio-table/data-table/types.js +1 -0
  437. package/lib/pagamio-table/index.d.ts +4 -0
  438. package/lib/pagamio-table/index.js +4 -0
  439. package/lib/pagamio-table/utils/functionHelper.d.ts +12 -0
  440. package/lib/pagamio-table/utils/functionHelper.js +24 -0
  441. package/lib/pagamio-table/utils/index.d.ts +1 -0
  442. package/lib/pagamio-table/utils/index.js +1 -0
  443. package/lib/rbac/hooks.d.ts +39 -0
  444. package/lib/rbac/hooks.js +51 -0
  445. package/lib/rbac/index.d.ts +8 -0
  446. package/lib/rbac/index.js +11 -0
  447. package/lib/rbac/store.d.ts +24 -0
  448. package/lib/rbac/store.js +37 -0
  449. package/lib/rbac/types.d.ts +39 -0
  450. package/lib/rbac/types.js +4 -0
  451. package/lib/rbac/utils.d.ts +44 -0
  452. package/lib/rbac/utils.js +117 -0
  453. package/lib/shared/constants/index.d.ts +2 -0
  454. package/lib/shared/constants/index.js +2 -0
  455. package/lib/shared/hooks/index.d.ts +4 -0
  456. package/lib/shared/hooks/index.js +4 -0
  457. package/lib/shared/hooks/useAnyDrawerOpen.d.ts +4 -0
  458. package/lib/shared/hooks/useAnyDrawerOpen.js +18 -0
  459. package/lib/shared/hooks/useContainerWidth.d.ts +2 -0
  460. package/lib/shared/hooks/useContainerWidth.js +18 -0
  461. package/lib/shared/hooks/useImageUpload.d.ts +15 -0
  462. package/lib/shared/hooks/useImageUpload.js +66 -0
  463. package/lib/shared/hooks/useMediaQueries.d.ts +5 -0
  464. package/lib/shared/hooks/useMediaQueries.js +35 -0
  465. package/lib/shared/hooks/usePagamioTable.d.ts +158 -0
  466. package/lib/shared/hooks/usePagamioTable.js +475 -0
  467. package/lib/shared/hooks/useSessionTimer.d.ts +33 -0
  468. package/lib/shared/hooks/useSessionTimer.js +96 -0
  469. package/lib/shared/index.d.ts +4 -0
  470. package/lib/shared/index.js +4 -0
  471. package/lib/shared/types/index.d.ts +1 -0
  472. package/lib/shared/types/index.js +1 -0
  473. package/lib/shared/url/index.d.ts +9 -0
  474. package/lib/shared/url/index.js +20 -0
  475. package/lib/shared/utils/filterUtils.d.ts +5 -0
  476. package/lib/shared/utils/filterUtils.js +31 -0
  477. package/lib/shared/utils/functionHelper.d.ts +27 -0
  478. package/lib/shared/utils/functionHelper.js +124 -0
  479. package/lib/shared/utils/index.d.ts +2 -0
  480. package/lib/shared/utils/index.js +2 -0
  481. package/lib/shared/utils/localStorage.d.ts +53 -0
  482. package/lib/shared/utils/localStorage.js +139 -0
  483. package/lib/styles.css +6247 -0
  484. package/lib/translations/components/LocaleSwitcher.d.ts +7 -0
  485. package/lib/translations/components/LocaleSwitcher.js +18 -0
  486. package/lib/translations/components/index.d.ts +1 -0
  487. package/lib/translations/components/index.js +1 -0
  488. package/lib/translations/context/TranslationContext.d.ts +5 -0
  489. package/lib/translations/context/TranslationContext.js +151 -0
  490. package/lib/translations/context/index.d.ts +1 -0
  491. package/lib/translations/context/index.js +1 -0
  492. package/lib/translations/hooks/index.d.ts +2 -0
  493. package/lib/translations/hooks/index.js +2 -0
  494. package/lib/translations/hooks/useLibTranslations.d.ts +7 -0
  495. package/lib/translations/hooks/useLibTranslations.js +46 -0
  496. package/lib/translations/hooks/useTranslation.d.ts +7 -0
  497. package/lib/translations/hooks/useTranslation.js +11 -0
  498. package/lib/translations/index.d.ts +91 -0
  499. package/lib/translations/index.js +11 -0
  500. package/lib/translations/locales/en.json +21 -0
  501. package/lib/translations/locales/es.json +21 -0
  502. package/lib/translations/locales/fr.json +21 -0
  503. package/lib/translations/locales/pt.json +21 -0
  504. package/lib/translations/types/index.d.ts +24 -0
  505. package/lib/translations/types/index.js +1 -0
  506. package/lib/translations/utils/index.d.ts +6 -0
  507. package/lib/translations/utils/index.js +25 -0
  508. package/package.json +9 -1
@@ -0,0 +1,58 @@
1
+ import React from 'react';
2
+ import type { PartialToastData } from '../../context/ToastContext';
3
+ import type { FormRef } from '../../form-engine';
4
+ /**
5
+ * Base props shared across authentication page components
6
+ */
7
+ export interface BaseAuthPageProps {
8
+ /** Logo configuration for branding */
9
+ logo?: {
10
+ src: string;
11
+ alt: string;
12
+ width: number;
13
+ height: number;
14
+ };
15
+ /** App Label Text */
16
+ appLabel?: string;
17
+ /** Styling options */
18
+ className?: string;
19
+ cardClassName?: string;
20
+ }
21
+ /**
22
+ * Common password validation for authentication forms
23
+ */
24
+ export declare const passwordValidation: {
25
+ required: string;
26
+ min: {
27
+ value: number;
28
+ message: string;
29
+ };
30
+ validate: (value: string) => true | "Password must contain at least one uppercase letter, one lowercase letter, and one number";
31
+ };
32
+ /**
33
+ * Renders a back to login button
34
+ */
35
+ export declare const BackToLoginButton: ({ onBackToLogin, label }: {
36
+ onBackToLogin: () => void;
37
+ label: string;
38
+ }) => import("react/jsx-runtime").JSX.Element;
39
+ /**
40
+ * Common form submission handler configuration
41
+ */
42
+ export interface FormSubmissionConfig {
43
+ setIsLoading: React.Dispatch<React.SetStateAction<boolean>>;
44
+ setError?: React.Dispatch<React.SetStateAction<string | null>>;
45
+ addToast: (toast: PartialToastData) => void;
46
+ formRef: React.MutableRefObject<FormRef | undefined>;
47
+ onSuccess?: (response?: any) => void;
48
+ onError?: (error: Error) => void;
49
+ }
50
+ /**
51
+ * Creates a standardized form submission handler
52
+ * @param config Form submission configuration
53
+ * @param submitAction The action to perform during form submission
54
+ * @param successMessage Message to display on success
55
+ * @param fallbackErrorMessage Optional fallback error message to display on failure
56
+ * @returns A form submission handler function
57
+ */
58
+ export declare const createFormSubmissionHandler: (config: FormSubmissionConfig, submitAction: (data: any) => Promise<any>, successMessage: string, fallbackErrorMessage?: string) => (data: any) => Promise<void>;
@@ -0,0 +1,52 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { detectErrorType } from '../utils/errorDetection';
3
+ /**
4
+ * Common password validation for authentication forms
5
+ */
6
+ export const passwordValidation = {
7
+ required: 'Password is required',
8
+ min: { value: 8, message: 'Password must be at least 8 characters' },
9
+ validate: (value) => /(?=.*[a-z])(?=.*[A-Z])(?=.*\d)/.test(value) ||
10
+ 'Password must contain at least one uppercase letter, one lowercase letter, and one number',
11
+ };
12
+ /**
13
+ * Renders a back to login button
14
+ */
15
+ export const BackToLoginButton = ({ onBackToLogin, label }) => (_jsx("div", { className: "flex items-center justify-center mt-4", children: _jsx("button", { type: "button", onClick: onBackToLogin, className: "text-right text-sm text-primary-500 hover:underline dark:text-primary-500", children: label }) }));
16
+ /**
17
+ * Creates a standardized form submission handler
18
+ * @param config Form submission configuration
19
+ * @param submitAction The action to perform during form submission
20
+ * @param successMessage Message to display on success
21
+ * @param fallbackErrorMessage Optional fallback error message to display on failure
22
+ * @returns A form submission handler function
23
+ */
24
+ export const createFormSubmissionHandler = (config, submitAction, successMessage, fallbackErrorMessage = 'Operation failed') => {
25
+ const { setIsLoading, setError, addToast, formRef, onSuccess, onError } = config;
26
+ return async (data) => {
27
+ setIsLoading(true);
28
+ setError?.(null);
29
+ try {
30
+ const response = await submitAction(data);
31
+ addToast({ message: successMessage, variant: 'success' });
32
+ // Reset form using the form ref
33
+ if (formRef.current) {
34
+ formRef.current.reset();
35
+ }
36
+ onSuccess?.(response);
37
+ }
38
+ catch (error) {
39
+ const errorInfo = detectErrorType(error);
40
+ const errorMessage = errorInfo.message || fallbackErrorMessage;
41
+ setError?.(errorMessage);
42
+ addToast({
43
+ message: errorMessage,
44
+ variant: 'error',
45
+ });
46
+ onError?.(error instanceof Error ? error : new Error(errorMessage));
47
+ }
48
+ finally {
49
+ setIsLoading(false);
50
+ }
51
+ };
52
+ };
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Reusable authentication page layout component with consistent styling and branding.
3
+ * Provides a standardized layout for all auth-related pages (login, forgot password, etc.).
4
+ *
5
+ * @example
6
+ * ```tsx
7
+ * <AuthPageLayout
8
+ * title="Forgot Password"
9
+ * subtitle="Enter your email to reset your password"
10
+ * errorMessage={error}
11
+ * >
12
+ * <form>...</form>
13
+ * </AuthPageLayout>
14
+ * ```
15
+ */
16
+ import type { ReactNode } from 'react';
17
+ interface AuthPageLayoutProps {
18
+ /** Main title/heading for the page */
19
+ title: string;
20
+ /** Subtitle or description text */
21
+ subtitle: string;
22
+ appLabel?: string;
23
+ /** Error message to display (if any) */
24
+ errorMessage?: string | null;
25
+ /** Whether to show the logo */
26
+ showLogo?: boolean;
27
+ /** Logo configuration */
28
+ logo?: {
29
+ src: string;
30
+ alt: string;
31
+ width: number;
32
+ height: number;
33
+ className?: string;
34
+ };
35
+ /** Whether to render within app layout (adjusts height accordingly) */
36
+ renderInAppLayout?: boolean;
37
+ /** Custom class names */
38
+ className?: string;
39
+ /** Child components */
40
+ children: ReactNode;
41
+ /** Whether to use horizontal layout (image on side) */
42
+ horizontal?: boolean;
43
+ }
44
+ export declare function AuthPageLayout({ title, subtitle, errorMessage, showLogo, logo, renderInAppLayout, className, horizontal, children, appLabel, }: Readonly<AuthPageLayoutProps>): import("react/jsx-runtime").JSX.Element;
45
+ export {};
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import AppBanner from './AppBanner';
3
+ import { AuthCard } from './AuthCard';
4
+ export function AuthPageLayout({ title, subtitle, errorMessage, showLogo = true, logo = {
5
+ src: '/images/login-screen-logo.svg',
6
+ alt: 'Pagamio Logo',
7
+ width: 280,
8
+ height: 250,
9
+ className: 'mb-[2.5em]',
10
+ }, renderInAppLayout = false, className = '', horizontal = true, children, appLabel, }) {
11
+ return (_jsxs("div", { className: `-my-4 mx-auto flex w-full max-w-[640px] flex-col items-center justify-center px-4 py-8 sm:px-6 ${renderInAppLayout ? 'h-[calc(100vh-64px)]' : 'min-h-screen md:h-screen'} ${className}`, children: [showLogo && logo && (_jsxs("div", { className: "flex flex-col items-center mb-5", children: [_jsx("img", { src: logo.src, alt: logo.alt, width: logo.width, height: logo.height }), _jsx(AppBanner, { text: appLabel })] })), _jsxs(AuthCard, { className: "p-2 sm:p-3", horizontal: horizontal, children: [_jsxs("div", { children: [_jsx("h2", { "data-testid": "auth-page-title", className: "text-[1.5em] font-bold text-gray-900 dark:text-white sm:text-[1.875em]", children: title }), _jsx("h2", { "data-testid": "auth-page-subtitle", className: "text-[1em] font-medium text-gray-600 dark:text-white sm:text-[1em]", children: subtitle })] }), errorMessage && (_jsx("div", { "data-testid": "login-error-alert", className: "mt-4 rounded border border-red-400 bg-red-100 p-2 text-red-700", children: errorMessage })), children] })] }));
12
+ }
@@ -0,0 +1,12 @@
1
+ import { type PostDataProps } from './hooks/useChangeUserPassword';
2
+ export interface ChangePasswordPageProps {
3
+ showBackHomeButton?: boolean;
4
+ backHome?: string;
5
+ submitButtonText?: string;
6
+ onSuccess: () => void;
7
+ onError: (error: Error) => void;
8
+ handleUpdatePassword: (data: PostDataProps) => Promise<void>;
9
+ onClickBackHome: () => void;
10
+ }
11
+ declare const ChangePasswordPage: ({ backHome, submitButtonText, showBackHomeButton, onSuccess, onError, handleUpdatePassword, onClickBackHome, }: ChangePasswordPageProps) => import("react/jsx-runtime").JSX.Element;
12
+ export default ChangePasswordPage;
@@ -0,0 +1,59 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useRef, useState } from 'react';
3
+ import { useToast } from '../../context';
4
+ import { FormEngine } from '../../form-engine';
5
+ import { createFormSubmissionHandler, passwordValidation } from './AuthFormUtils';
6
+ import { AuthPageLayout } from './AuthPageLayout';
7
+ const ChangePasswordPage = ({ backHome = 'Back Home', submitButtonText = 'Change Password', showBackHomeButton = true, onSuccess, onError, handleUpdatePassword, onClickBackHome, }) => {
8
+ const { addToast } = useToast();
9
+ const [isLoading, setIsLoading] = useState(false);
10
+ const [error, setError] = useState(null);
11
+ const formRef = useRef();
12
+ const changePasswordFields = [
13
+ {
14
+ name: 'oldPassword',
15
+ label: 'Old Password',
16
+ type: 'password',
17
+ placeholder: 'Enter Old Password',
18
+ gridSpan: 12,
19
+ validation: {
20
+ required: 'Old password is required',
21
+ },
22
+ },
23
+ {
24
+ name: 'newPassword',
25
+ label: 'New Password',
26
+ type: 'password',
27
+ placeholder: 'Enter New Password',
28
+ gridSpan: 12,
29
+ validation: passwordValidation,
30
+ },
31
+ {
32
+ name: 'confirmationPassword',
33
+ label: 'Confirm Password',
34
+ type: 'password',
35
+ placeholder: 'Enter Confirm Password',
36
+ gridSpan: 12,
37
+ validation: {
38
+ required: 'Please confirm your password',
39
+ },
40
+ },
41
+ ];
42
+ const handleSubmit = createFormSubmissionHandler({
43
+ setIsLoading,
44
+ setError,
45
+ addToast,
46
+ formRef,
47
+ onSuccess,
48
+ onError,
49
+ }, async (data) => {
50
+ const { oldPassword, newPassword, confirmationPassword } = data;
51
+ await handleUpdatePassword({
52
+ oldPassword,
53
+ newPassword,
54
+ confirmationPassword,
55
+ });
56
+ }, 'Password changed successfully', 'Failed to change password. Please try again.');
57
+ return (_jsx(AuthPageLayout, { title: "Change Password", subtitle: "Ready for a new password? Enter your current password, then create a new one to update it!", errorMessage: error, showLogo: false, renderInAppLayout: true, horizontal: false, children: _jsxs("div", { className: "mt-8", children: [_jsx(FormEngine, { fields: changePasswordFields, onSubmit: handleSubmit, layout: "vertical", className: "mb-0 p-0", submitButtonClass: "w-full", submitButtonText: isLoading ? 'Updating...' : submitButtonText, onCancel: () => { }, showCancelButton: false, showSubmittingText: false, formRef: formRef }), showBackHomeButton && (_jsx("div", { className: "flex items-center justify-center mt-4", children: _jsx("button", { type: "button", onClick: onClickBackHome, className: "text-sm text-primary-500 hover:underline dark:text-primary-500", children: backHome }) }))] }) }));
58
+ };
59
+ export default ChangePasswordPage;
@@ -0,0 +1,50 @@
1
+ import type { Field } from '../../form-engine';
2
+ import type { AuthResponse, CustomAuthConfig } from '../types';
3
+ import type { BaseAuthPageProps } from './AuthFormUtils';
4
+ /**
5
+ * Props for the PagamioCustomerRegistrationPage component
6
+ * @template T - Authentication configuration type
7
+ */
8
+ interface PagamioCustomerRegistrationPageProps<T extends CustomAuthConfig> extends BaseAuthPageProps {
9
+ /** Customizable text content */
10
+ text?: {
11
+ registerTitle: string;
12
+ registerSubtitle: string;
13
+ emailLabel: string;
14
+ firstNameLabel: string;
15
+ lastNameLabel: string;
16
+ phoneLabel: string;
17
+ passwordLabel: string;
18
+ confirmPasswordLabel: string;
19
+ registerButtonLabel: string;
20
+ loadingButtonLabel: string;
21
+ backToLoginLabel: string;
22
+ };
23
+ customRegistrationFields?: Field[];
24
+ /** Custom data mapper function to transform form data before sending it to authService.register */
25
+ mapFormDataToRegistration?: (formData: Record<string, any>) => Record<string, any>;
26
+ /** Callback handlers */
27
+ onRegistrationSuccess?: (authResponse?: AuthResponse<T>) => void;
28
+ onRegistrationError?: (error: Error) => void;
29
+ onBackToLogin?: () => void;
30
+ }
31
+ export declare const customerRegistrationPageDefaultText: {
32
+ registerTitle: string;
33
+ registerSubtitle: string;
34
+ emailLabel: string;
35
+ firstNameLabel: string;
36
+ lastNameLabel: string;
37
+ phoneLabel: string;
38
+ passwordLabel: string;
39
+ confirmPasswordLabel: string;
40
+ registerButtonLabel: string;
41
+ loadingButtonLabel: string;
42
+ backToLoginLabel: string;
43
+ };
44
+ /**
45
+ * Customer Registration Page component
46
+ * @template T - Authentication configuration type
47
+ */
48
+ export declare function PagamioCustomerRegistrationPage<T extends CustomAuthConfig>({ logo, text, customRegistrationFields, mapFormDataToRegistration, appLabel, onRegistrationSuccess, onRegistrationError, onBackToLogin, className, }: Readonly<PagamioCustomerRegistrationPageProps<T>>): import("react/jsx-runtime").JSX.Element;
49
+ export default PagamioCustomerRegistrationPage;
50
+ export type { PagamioCustomerRegistrationPageProps };
@@ -0,0 +1,140 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Generic Registration Page component that works with different authentication configurations.
4
+ * Provides a customizable customer registration interface with support for different branding and text options.
5
+ *
6
+ * @template T - Type extending CustomAuthConfig that defines the shape of authentication data
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * // Usage with Events App configuration
11
+ * <PagamioRegistrationPage<EventsAppAuthConfig>
12
+ * logo={{
13
+ * src: "/logo.svg",
14
+ * alt: "Company Logo",
15
+ * width: 280,
16
+ * height: 250
17
+ * }}
18
+ * onRegistrationSuccess={(response) => {
19
+ * // Handle successful registration
20
+ * }}
21
+ * />
22
+ * ```
23
+ */
24
+ import { useRef, useState } from 'react';
25
+ import { useToast } from '../../context';
26
+ import { FormEngine } from '../../form-engine';
27
+ import { useAuth } from '../context';
28
+ import { BackToLoginButton, createFormSubmissionHandler, passwordValidation } from './AuthFormUtils';
29
+ import { AuthPageLayout } from './AuthPageLayout';
30
+ export const customerRegistrationPageDefaultText = {
31
+ registerTitle: 'Create an Account',
32
+ registerSubtitle: 'Sign up to get started',
33
+ emailLabel: 'Email',
34
+ firstNameLabel: 'First Name',
35
+ lastNameLabel: 'Last Name',
36
+ phoneLabel: 'Phone Number',
37
+ passwordLabel: 'Password',
38
+ confirmPasswordLabel: 'Confirm Password',
39
+ registerButtonLabel: 'Register',
40
+ loadingButtonLabel: 'Registering...',
41
+ backToLoginLabel: 'Back to Login',
42
+ };
43
+ /**
44
+ * Customer Registration Page component
45
+ * @template T - Authentication configuration type
46
+ */
47
+ export function PagamioCustomerRegistrationPage({ logo, text = customerRegistrationPageDefaultText, customRegistrationFields, mapFormDataToRegistration, appLabel, onRegistrationSuccess, onRegistrationError, onBackToLogin, className = '', }) {
48
+ const { authService, error } = useAuth();
49
+ const { addToast } = useToast();
50
+ const [isLoading, setIsLoading] = useState(false);
51
+ const formRef = useRef();
52
+ const registrationFields = [
53
+ {
54
+ name: 'email',
55
+ label: text.emailLabel,
56
+ type: 'email',
57
+ placeholder: 'name@company.com',
58
+ gridSpan: 12,
59
+ validation: {
60
+ required: 'Email is required',
61
+ pattern: {
62
+ value: /\S+@\S+\.\S+/,
63
+ message: 'Invalid email address',
64
+ },
65
+ },
66
+ },
67
+ {
68
+ name: 'firstName',
69
+ label: text.firstNameLabel,
70
+ type: 'text',
71
+ placeholder: 'John',
72
+ gridSpan: 6,
73
+ validation: {
74
+ required: 'First name is required',
75
+ },
76
+ },
77
+ {
78
+ name: 'lastName',
79
+ label: text.lastNameLabel,
80
+ type: 'text',
81
+ placeholder: 'Doe',
82
+ gridSpan: 6,
83
+ validation: {
84
+ required: 'Last name is required',
85
+ },
86
+ },
87
+ {
88
+ name: 'phone',
89
+ label: text.phoneLabel,
90
+ type: 'tel',
91
+ placeholder: '+27 71 234 5678',
92
+ gridSpan: 12,
93
+ defaultCountry: 'ZA',
94
+ },
95
+ {
96
+ name: 'password',
97
+ label: text.passwordLabel,
98
+ type: 'password',
99
+ placeholder: 'Enter Password',
100
+ gridSpan: 12,
101
+ validation: passwordValidation,
102
+ },
103
+ {
104
+ name: 'confirmPassword',
105
+ label: text.confirmPasswordLabel,
106
+ type: 'password',
107
+ placeholder: 'Confirm Password',
108
+ gridSpan: 12,
109
+ validation: {
110
+ required: 'Please confirm your password',
111
+ },
112
+ },
113
+ ];
114
+ const handleSubmit = createFormSubmissionHandler({
115
+ setIsLoading,
116
+ addToast,
117
+ formRef,
118
+ onSuccess: (response) => onRegistrationSuccess?.(response),
119
+ onError: onRegistrationError,
120
+ }, async (data) => {
121
+ // If custom mapper is provided, use it to transform the form data
122
+ const registrationData = mapFormDataToRegistration ? mapFormDataToRegistration(data) : data;
123
+ // For backward compatibility, extract specific fields if no custom mapper is provided
124
+ if (!mapFormDataToRegistration) {
125
+ const { email, firstName, lastName, phone, password } = data;
126
+ return authService.register({
127
+ email,
128
+ password,
129
+ firstName,
130
+ lastName,
131
+ phoneNumber: phone ?? '',
132
+ });
133
+ }
134
+ console.log('Registration data:', registrationData);
135
+ // Use the transformed data directly when custom mapper is provided
136
+ return authService.register(registrationData);
137
+ }, 'Registration successful', 'Registration failed. Please try again.');
138
+ return (_jsx(AuthPageLayout, { title: text.registerTitle, subtitle: text.registerSubtitle, errorMessage: error?.message, logo: logo, appLabel: appLabel, className: className, horizontal: false, children: _jsxs("div", { className: "mt-8", children: [_jsx(FormEngine, { fields: customRegistrationFields ?? registrationFields, onSubmit: handleSubmit, layout: "vertical", className: "mb-0 p-0", submitButtonClass: "w-full", submitButtonText: isLoading ? text.loadingButtonLabel : text.registerButtonLabel, onCancel: () => { }, showCancelButton: false, showSubmittingText: false, formRef: formRef }), onBackToLogin && _jsx(BackToLoginButton, { onBackToLogin: onBackToLogin, label: text.backToLoginLabel })] }) }));
139
+ }
140
+ export default PagamioCustomerRegistrationPage;
@@ -0,0 +1,38 @@
1
+ import type { CustomAuthConfig } from '../types';
2
+ import type { BaseAuthPageProps } from './AuthFormUtils';
3
+ /**
4
+ * Props for the PagamioForgotPasswordPage component
5
+ * @template T - Authentication configuration type
6
+ */
7
+ interface PagamioForgotPasswordPageProps<T extends CustomAuthConfig> extends BaseAuthPageProps {
8
+ /** Customizable text content */
9
+ text?: {
10
+ title: string;
11
+ subtitle: string;
12
+ emailLabel: string;
13
+ submitButtonLabel: string;
14
+ loadingButtonLabel: string;
15
+ backToLoginLabel: string;
16
+ successMessage: string;
17
+ };
18
+ /** Callback handlers */
19
+ onSuccess?: () => void;
20
+ onError?: (error: Error) => void;
21
+ onBackToLogin?: () => void;
22
+ }
23
+ export declare const forgotPasswordDefaultText: {
24
+ title: string;
25
+ subtitle: string;
26
+ emailLabel: string;
27
+ submitButtonLabel: string;
28
+ loadingButtonLabel: string;
29
+ backToLoginLabel: string;
30
+ successMessage: string;
31
+ };
32
+ /**
33
+ * Generic Forgot Password Page component
34
+ * @template T - Authentication configuration type
35
+ */
36
+ export declare function PagamioForgotPasswordPage<T extends CustomAuthConfig>({ logo, text, appLabel, onSuccess, onError, onBackToLogin, className, }: Readonly<PagamioForgotPasswordPageProps<T>>): import("react/jsx-runtime").JSX.Element;
37
+ export default PagamioForgotPasswordPage;
38
+ export type { PagamioForgotPasswordPageProps };
@@ -0,0 +1,76 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Generic Forgot Password Page component that works with different authentication configurations.
4
+ * Provides a customizable interface for password reset requests.
5
+ *
6
+ * @template T - Type extending CustomAuthConfig that defines the shape of authentication data
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * // Usage with Pagamio configuration
11
+ * <PagamioForgotPasswordPage<PagamioAuthConfig>
12
+ * logo={{
13
+ * src: "/logo.svg",
14
+ * alt: "Company Logo",
15
+ * width: 280,
16
+ * height: 250
17
+ * }}
18
+ * onSuccess={() => {
19
+ * // Handle successful password reset request
20
+ * }}
21
+ * />
22
+ * ```
23
+ */
24
+ import { useRef, useState } from 'react';
25
+ import { useToast } from '../../context';
26
+ import { FormEngine } from '../../form-engine';
27
+ import { useAuth } from '../context';
28
+ import { BackToLoginButton, createFormSubmissionHandler } from './AuthFormUtils';
29
+ import { AuthPageLayout } from './AuthPageLayout';
30
+ export const forgotPasswordDefaultText = {
31
+ title: 'Forgot your password?',
32
+ subtitle: "Enter your email and we'll send you instructions to reset your password.",
33
+ emailLabel: 'Your Email',
34
+ submitButtonLabel: 'Send Reset Instructions',
35
+ loadingButtonLabel: 'Submitting...',
36
+ backToLoginLabel: 'Back to Login',
37
+ successMessage: 'If an account with that email exists, a password reset link has been sent.',
38
+ };
39
+ /**
40
+ * Generic Forgot Password Page component
41
+ * @template T - Authentication configuration type
42
+ */
43
+ export function PagamioForgotPasswordPage({ logo, text = forgotPasswordDefaultText, appLabel, onSuccess, onError, onBackToLogin, className = '', }) {
44
+ const { authService } = useAuth();
45
+ const { addToast } = useToast();
46
+ const [isLoading, setIsLoading] = useState(false);
47
+ const [error, setError] = useState(null);
48
+ const formRef = useRef();
49
+ const emailField = [
50
+ {
51
+ name: 'email',
52
+ label: text.emailLabel,
53
+ type: 'email',
54
+ placeholder: 'name@example.com',
55
+ validation: {
56
+ required: 'Email is required',
57
+ pattern: {
58
+ value: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
59
+ message: 'Please enter a valid email address',
60
+ },
61
+ },
62
+ },
63
+ ];
64
+ const handleSubmit = createFormSubmissionHandler({
65
+ setIsLoading,
66
+ setError,
67
+ addToast,
68
+ formRef,
69
+ onSuccess,
70
+ onError,
71
+ }, async (data) => {
72
+ await authService.forgotPassword({ email: data.email });
73
+ }, text.successMessage, 'Failed to send password reset instructions');
74
+ return (_jsx(AuthPageLayout, { appLabel: appLabel, title: text.title, subtitle: text.subtitle, errorMessage: error, logo: logo, className: className, horizontal: false, children: _jsxs("div", { className: "mt-8", children: [_jsx(FormEngine, { fields: emailField, onSubmit: handleSubmit, layout: "vertical", className: "mb-0 p-0", submitButtonClass: "w-full", submitButtonText: isLoading ? text.loadingButtonLabel : text.submitButtonLabel, onCancel: () => { }, showSubmittingText: false, showCancelButton: false, formRef: formRef }), onBackToLogin && _jsx(BackToLoginButton, { onBackToLogin: onBackToLogin, label: text.backToLoginLabel })] }) }));
75
+ }
76
+ export default PagamioForgotPasswordPage;
@@ -0,0 +1,73 @@
1
+ import type { AuthenticatorType } from '../authenticators';
2
+ import type { AuthResponse, BaseAuthCredentials, CustomAuthConfig } from '../types';
3
+ import type { BaseAuthPageProps } from './AuthFormUtils';
4
+ /**
5
+ * Base login credentials interface that can be extended for specific implementations
6
+ */
7
+ interface PagamioLoginCredentials {
8
+ username: string;
9
+ password: string;
10
+ rememberMe?: boolean;
11
+ }
12
+ /**
13
+ * Props for the PagamioLoginPage component
14
+ * @template T - Authentication configuration type
15
+ */
16
+ interface PagamioLoginPageProps<T extends CustomAuthConfig> extends BaseAuthPageProps {
17
+ /** Customizable text content */
18
+ text?: {
19
+ welcomeTitle: string;
20
+ welcomeSubtitle: string;
21
+ usernameLabel: string;
22
+ passwordLabel: string;
23
+ rememberMeLabel: string;
24
+ loginButtonLabel: string;
25
+ loadingButtonLabel: string;
26
+ forgotPasswordLabel: string;
27
+ createAccountLabel: string;
28
+ };
29
+ /** Callback handlers */
30
+ onForgotPassword?: () => void;
31
+ onLoginSuccess?: (authResponse?: AuthResponse<T>) => void;
32
+ onLoginError?: (error: Error) => void;
33
+ /** Account creation options */
34
+ hasCreateAccount?: boolean;
35
+ createAccountRoute?: string;
36
+ onCreateAccount?: () => void;
37
+ /**
38
+ * Custom data transformation handler for login data
39
+ * Should return object to be used as login credentials
40
+ * @template TFormData - Type of the form data
41
+ */
42
+ transformLoginData?: (credentials: BaseAuthCredentials) => Record<string, unknown>;
43
+ /** Styling options */
44
+ className?: string;
45
+ cardClassName?: string;
46
+ /**
47
+ * Authenticator type to use for login
48
+ * Supports 'default', 'strapi', or any custom registered type
49
+ */
50
+ authenticatorType?: AuthenticatorType | string;
51
+ }
52
+ export interface LoginErrorProps {
53
+ code: string;
54
+ message: string;
55
+ }
56
+ export declare const loginPageDefaultText: {
57
+ welcomeTitle: string;
58
+ welcomeSubtitle: string;
59
+ usernameLabel: string;
60
+ passwordLabel: string;
61
+ rememberMeLabel: string;
62
+ loginButtonLabel: string;
63
+ loadingButtonLabel: string;
64
+ forgotPasswordLabel: string;
65
+ createAccountLabel: string;
66
+ };
67
+ /**
68
+ * Generic Login Page component
69
+ * @template T - Authentication configuration type
70
+ */
71
+ export declare function PagamioLoginPage<T extends CustomAuthConfig>({ logo, text, appLabel, onForgotPassword, onLoginSuccess, onLoginError, hasCreateAccount, createAccountRoute, onCreateAccount, transformLoginData, authenticatorType, className, }: Readonly<PagamioLoginPageProps<T>>): import("react/jsx-runtime").JSX.Element;
72
+ export default PagamioLoginPage;
73
+ export type { PagamioLoginCredentials, PagamioLoginPageProps };