@digitaldefiance/express-suite-react-components 5.0.2 → 5.0.4

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 (314) hide show
  1. package/package.json +5 -4
  2. package/src/auth/AdminRoute.d.ts +8 -0
  3. package/src/auth/AdminRoute.d.ts.map +1 -0
  4. package/src/auth/AdminRoute.js +28 -0
  5. package/src/auth/Private.d.ts +6 -0
  6. package/src/auth/Private.d.ts.map +1 -0
  7. package/src/auth/Private.js +14 -0
  8. package/src/auth/PrivateRoute.d.ts +8 -0
  9. package/src/auth/PrivateRoute.d.ts.map +1 -0
  10. package/src/auth/PrivateRoute.js +23 -0
  11. package/src/auth/UnAuth.d.ts +6 -0
  12. package/src/auth/UnAuth.d.ts.map +1 -0
  13. package/src/auth/UnAuth.js +14 -0
  14. package/src/auth/UnAuthRoute.d.ts +8 -0
  15. package/src/auth/UnAuthRoute.d.ts.map +1 -0
  16. package/src/auth/UnAuthRoute.js +22 -0
  17. package/src/auth/{index.ts → index.d.ts} +3 -2
  18. package/src/auth/index.d.ts.map +1 -0
  19. package/src/auth/index.js +12 -0
  20. package/src/components/ApiAccess.d.ts +16 -0
  21. package/src/components/ApiAccess.d.ts.map +1 -0
  22. package/src/components/ApiAccess.js +77 -0
  23. package/src/components/BackupCodeLoginForm.d.ts +43 -0
  24. package/src/components/BackupCodeLoginForm.d.ts.map +1 -0
  25. package/src/components/BackupCodeLoginForm.js +139 -0
  26. package/src/components/BackupCodesForm.d.ts +26 -0
  27. package/src/components/BackupCodesForm.d.ts.map +1 -0
  28. package/src/components/BackupCodesForm.js +120 -0
  29. package/src/components/CategoryMenu.d.ts +17 -0
  30. package/src/components/CategoryMenu.d.ts.map +1 -0
  31. package/src/components/CategoryMenu.js +65 -0
  32. package/src/components/ChangePasswordForm.d.ts +26 -0
  33. package/src/components/ChangePasswordForm.d.ts.map +1 -0
  34. package/src/components/ChangePasswordForm.js +78 -0
  35. package/src/components/ConfirmationDialog.d.ts +13 -0
  36. package/src/components/ConfirmationDialog.d.ts.map +1 -0
  37. package/src/components/ConfirmationDialog.js +10 -0
  38. package/src/components/CurrencyCodeSelector.d.ts +9 -0
  39. package/src/components/CurrencyCodeSelector.d.ts.map +1 -0
  40. package/src/components/CurrencyCodeSelector.js +31 -0
  41. package/src/components/CurrencyInput.d.ts +13 -0
  42. package/src/components/CurrencyInput.d.ts.map +1 -0
  43. package/src/components/CurrencyInput.js +22 -0
  44. package/src/components/DashboardPage.d.ts +8 -0
  45. package/src/components/DashboardPage.d.ts.map +1 -0
  46. package/src/components/DashboardPage.js +10 -0
  47. package/src/components/DropdownMenu.d.ts +13 -0
  48. package/src/components/DropdownMenu.d.ts.map +1 -0
  49. package/src/components/DropdownMenu.js +63 -0
  50. package/src/components/ExpirationSecondsSelector.d.ts +13 -0
  51. package/src/components/ExpirationSecondsSelector.d.ts.map +1 -0
  52. package/src/components/ExpirationSecondsSelector.js +32 -0
  53. package/src/components/FakeEmailAdminPanel.d.ts +23 -0
  54. package/src/components/FakeEmailAdminPanel.d.ts.map +1 -0
  55. package/src/components/FakeEmailAdminPanel.js +147 -0
  56. package/src/components/Flag.d.ts +20 -0
  57. package/src/components/Flag.d.ts.map +1 -0
  58. package/src/components/Flag.js +43 -0
  59. package/src/components/ForgotPasswordForm.d.ts +18 -0
  60. package/src/components/ForgotPasswordForm.d.ts.map +1 -0
  61. package/src/components/ForgotPasswordForm.js +61 -0
  62. package/src/components/LoginForm.d.ts +44 -0
  63. package/src/components/LoginForm.d.ts.map +1 -0
  64. package/src/components/LoginForm.js +123 -0
  65. package/src/components/LogoutPage.d.ts +8 -0
  66. package/src/components/LogoutPage.d.ts.map +1 -0
  67. package/src/components/LogoutPage.js +16 -0
  68. package/src/components/RegisterForm.d.ts +100 -0
  69. package/src/components/RegisterForm.d.ts.map +1 -0
  70. package/src/components/RegisterForm.js +306 -0
  71. package/src/components/ResetPasswordForm.d.ts +23 -0
  72. package/src/components/ResetPasswordForm.d.ts.map +1 -0
  73. package/src/components/ResetPasswordForm.js +78 -0
  74. package/src/components/SideMenu.d.ts +8 -0
  75. package/src/components/SideMenu.d.ts.map +1 -0
  76. package/src/components/SideMenu.js +25 -0
  77. package/src/components/SideMenuListItem.d.ts +13 -0
  78. package/src/components/SideMenuListItem.d.ts.map +1 -0
  79. package/src/components/SideMenuListItem.js +44 -0
  80. package/src/components/T.d.ts +7 -0
  81. package/src/components/T.d.ts.map +1 -0
  82. package/src/components/T.js +13 -0
  83. package/src/components/TDiv.d.ts +9 -0
  84. package/src/components/TDiv.d.ts.map +1 -0
  85. package/src/components/TDiv.js +14 -0
  86. package/src/components/TImgAlt.d.ts +10 -0
  87. package/src/components/TImgAlt.d.ts.map +1 -0
  88. package/src/components/TImgAlt.js +14 -0
  89. package/src/components/TopMenu.d.ts +50 -0
  90. package/src/components/TopMenu.d.ts.map +1 -0
  91. package/src/components/TopMenu.js +79 -0
  92. package/src/components/TotpSetupForm.d.ts +24 -0
  93. package/src/components/TotpSetupForm.d.ts.map +1 -0
  94. package/src/components/TotpSetupForm.js +82 -0
  95. package/src/components/TotpVerificationForm.d.ts +23 -0
  96. package/src/components/TotpVerificationForm.d.ts.map +1 -0
  97. package/src/components/TotpVerificationForm.js +66 -0
  98. package/src/components/TranslatedTitle.d.ts +8 -0
  99. package/src/components/TranslatedTitle.d.ts.map +1 -0
  100. package/src/components/TranslatedTitle.js +15 -0
  101. package/src/components/UserLanguageSelector.d.ts +4 -0
  102. package/src/components/UserLanguageSelector.d.ts.map +1 -0
  103. package/src/components/UserLanguageSelector.js +31 -0
  104. package/src/components/UserMenu.d.ts +4 -0
  105. package/src/components/UserMenu.d.ts.map +1 -0
  106. package/src/components/UserMenu.js +12 -0
  107. package/src/components/UserSettingsForm.d.ts +113 -0
  108. package/src/components/UserSettingsForm.d.ts.map +1 -0
  109. package/src/components/UserSettingsForm.js +269 -0
  110. package/src/components/VerifyEmailPage.d.ts +24 -0
  111. package/src/components/VerifyEmailPage.d.ts.map +1 -0
  112. package/src/components/VerifyEmailPage.js +81 -0
  113. package/src/components/{index.ts → index.d.ts} +1 -1
  114. package/src/components/index.d.ts.map +1 -0
  115. package/src/components/index.js +35 -0
  116. package/src/contexts/AuthProvider.d.ts +19 -0
  117. package/src/contexts/AuthProvider.d.ts.map +1 -0
  118. package/src/contexts/AuthProvider.js +514 -0
  119. package/src/contexts/I18nProvider.d.ts +27 -0
  120. package/src/contexts/I18nProvider.d.ts.map +1 -0
  121. package/src/contexts/I18nProvider.js +60 -0
  122. package/src/contexts/MenuContext.d.ts +28 -0
  123. package/src/contexts/MenuContext.d.ts.map +1 -0
  124. package/src/contexts/MenuContext.js +307 -0
  125. package/src/contexts/SuiteConfigProvider.d.ts +44 -0
  126. package/src/contexts/SuiteConfigProvider.d.ts.map +1 -0
  127. package/src/contexts/SuiteConfigProvider.js +43 -0
  128. package/src/contexts/ThemeProvider.d.ts +15 -0
  129. package/src/contexts/ThemeProvider.d.ts.map +1 -0
  130. package/src/contexts/ThemeProvider.js +36 -0
  131. package/src/contexts/auth-context.d.ts +172 -0
  132. package/src/contexts/auth-context.d.ts.map +1 -0
  133. package/src/contexts/auth-context.js +13 -0
  134. package/src/contexts/{index.ts → index.d.ts} +1 -0
  135. package/src/contexts/index.d.ts.map +1 -0
  136. package/src/contexts/index.js +8 -0
  137. package/src/hooks/{index.ts → index.d.ts} +1 -0
  138. package/src/hooks/index.d.ts.map +1 -0
  139. package/src/hooks/index.js +9 -0
  140. package/src/hooks/useAuthenticatedApi.d.ts +34 -0
  141. package/src/hooks/useAuthenticatedApi.d.ts.map +1 -0
  142. package/src/hooks/useAuthenticatedApi.js +46 -0
  143. package/src/hooks/useBackupCodes.d.ts +15 -0
  144. package/src/hooks/useBackupCodes.d.ts.map +1 -0
  145. package/src/hooks/useBackupCodes.js +74 -0
  146. package/src/hooks/useEmailVerification.d.ts +10 -0
  147. package/src/hooks/useEmailVerification.d.ts.map +1 -0
  148. package/src/hooks/useEmailVerification.js +40 -0
  149. package/src/hooks/useExpiringValue.d.ts +14 -0
  150. package/src/hooks/useExpiringValue.d.ts.map +1 -0
  151. package/src/hooks/useExpiringValue.js +53 -0
  152. package/src/hooks/useLocalStorage.d.ts +2 -0
  153. package/src/hooks/useLocalStorage.d.ts.map +1 -0
  154. package/src/hooks/useLocalStorage.js +15 -0
  155. package/src/hooks/useUserSettings.d.ts +48 -0
  156. package/src/hooks/useUserSettings.d.ts.map +1 -0
  157. package/src/hooks/useUserSettings.js +171 -0
  158. package/src/{index.ts → index.d.ts} +1 -1
  159. package/src/index.d.ts.map +1 -0
  160. package/src/index.js +12 -0
  161. package/src/interfaces/IAppConfig.d.ts +8 -0
  162. package/src/interfaces/IAppConfig.d.ts.map +1 -0
  163. package/src/interfaces/IAppConfig.js +2 -0
  164. package/src/interfaces/ICategoryConfig.d.ts +41 -0
  165. package/src/interfaces/ICategoryConfig.d.ts.map +1 -0
  166. package/src/interfaces/ICategoryConfig.js +2 -0
  167. package/src/interfaces/IMenuConfig.d.ts +28 -0
  168. package/src/interfaces/IMenuConfig.d.ts.map +1 -0
  169. package/src/interfaces/IMenuConfig.js +2 -0
  170. package/src/interfaces/IMenuOption.d.ts +82 -0
  171. package/src/interfaces/IMenuOption.d.ts.map +1 -0
  172. package/src/interfaces/IMenuOption.js +2 -0
  173. package/src/interfaces/{index.ts → index.d.ts} +1 -0
  174. package/src/interfaces/index.d.ts.map +1 -0
  175. package/src/interfaces/index.js +7 -0
  176. package/src/services/__mocks__/authService.d.ts +21 -0
  177. package/src/services/__mocks__/authService.d.ts.map +1 -0
  178. package/src/services/__mocks__/authService.js +15 -0
  179. package/src/services/api.d.ts +3 -0
  180. package/src/services/api.d.ts.map +1 -0
  181. package/src/services/api.js +14 -0
  182. package/src/services/authService.d.ts +126 -0
  183. package/src/services/authService.d.ts.map +1 -0
  184. package/src/services/authService.js +471 -0
  185. package/src/services/authenticatedApi.d.ts +3 -0
  186. package/src/services/authenticatedApi.d.ts.map +1 -0
  187. package/src/services/authenticatedApi.js +18 -0
  188. package/src/services/index.d.ts +4 -0
  189. package/src/services/index.d.ts.map +1 -0
  190. package/src/services/index.js +6 -0
  191. package/src/types/MenuType.d.ts +11 -0
  192. package/src/types/MenuType.d.ts.map +1 -0
  193. package/src/types/MenuType.js +12 -0
  194. package/src/types/expirationSeconds.d.ts +3 -0
  195. package/src/types/expirationSeconds.d.ts.map +1 -0
  196. package/src/types/expirationSeconds.js +17 -0
  197. package/src/types/index.d.ts +2 -0
  198. package/src/types/index.d.ts.map +1 -0
  199. package/src/types/index.js +4 -0
  200. package/src/types/translation.d.ts +10 -0
  201. package/src/types/translation.d.ts.map +1 -0
  202. package/src/types/translation.js +9 -0
  203. package/src/wrappers/BackupCodeLoginWrapper.d.ts +8 -0
  204. package/src/wrappers/BackupCodeLoginWrapper.d.ts.map +1 -0
  205. package/src/wrappers/BackupCodeLoginWrapper.js +20 -0
  206. package/src/wrappers/BackupCodesWrapper.d.ts +7 -0
  207. package/src/wrappers/BackupCodesWrapper.d.ts.map +1 -0
  208. package/src/wrappers/BackupCodesWrapper.js +17 -0
  209. package/src/wrappers/ChangePasswordFormWrapper.d.ts +8 -0
  210. package/src/wrappers/ChangePasswordFormWrapper.d.ts.map +1 -0
  211. package/src/wrappers/ChangePasswordFormWrapper.js +21 -0
  212. package/src/wrappers/ForgotPasswordFormWrapper.d.ts +8 -0
  213. package/src/wrappers/ForgotPasswordFormWrapper.d.ts.map +1 -0
  214. package/src/wrappers/ForgotPasswordFormWrapper.js +29 -0
  215. package/src/wrappers/LoginFormWrapper.d.ts +21 -0
  216. package/src/wrappers/LoginFormWrapper.d.ts.map +1 -0
  217. package/src/wrappers/LoginFormWrapper.js +72 -0
  218. package/src/wrappers/LogoutPageWrapper.d.ts +9 -0
  219. package/src/wrappers/LogoutPageWrapper.d.ts.map +1 -0
  220. package/src/wrappers/LogoutPageWrapper.js +21 -0
  221. package/src/wrappers/RegisterFormWrapper.d.ts +20 -0
  222. package/src/wrappers/RegisterFormWrapper.d.ts.map +1 -0
  223. package/src/wrappers/RegisterFormWrapper.js +51 -0
  224. package/src/wrappers/ResetPasswordFormWrapper.d.ts +9 -0
  225. package/src/wrappers/ResetPasswordFormWrapper.d.ts.map +1 -0
  226. package/src/wrappers/ResetPasswordFormWrapper.js +34 -0
  227. package/src/wrappers/UserSettingsFormWrapper.d.ts +29 -0
  228. package/src/wrappers/UserSettingsFormWrapper.d.ts.map +1 -0
  229. package/src/wrappers/UserSettingsFormWrapper.js +95 -0
  230. package/src/wrappers/VerifyEmailPageWrapper.d.ts +8 -0
  231. package/src/wrappers/VerifyEmailPageWrapper.d.ts.map +1 -0
  232. package/src/wrappers/VerifyEmailPageWrapper.js +21 -0
  233. package/src/wrappers/{index.tsx → index.d.ts} +1 -10
  234. package/src/wrappers/index.d.ts.map +1 -0
  235. package/src/wrappers/index.js +24 -0
  236. package/LICENSE +0 -21
  237. package/src/auth/AdminRoute.tsx +0 -54
  238. package/src/auth/Private.tsx +0 -17
  239. package/src/auth/PrivateRoute.tsx +0 -28
  240. package/src/auth/UnAuth.tsx +0 -16
  241. package/src/auth/UnAuthRoute.tsx +0 -30
  242. package/src/components/ApiAccess.tsx +0 -175
  243. package/src/components/BackupCodeLoginForm.tsx +0 -489
  244. package/src/components/BackupCodesForm.tsx +0 -287
  245. package/src/components/CategoryMenu.tsx +0 -155
  246. package/src/components/ChangePasswordForm.tsx +0 -273
  247. package/src/components/ConfirmationDialog.tsx +0 -48
  248. package/src/components/CurrencyCodeSelector.tsx +0 -60
  249. package/src/components/CurrencyInput.tsx +0 -80
  250. package/src/components/DashboardPage.tsx +0 -24
  251. package/src/components/DropdownMenu.tsx +0 -105
  252. package/src/components/ExpirationSecondsSelector.tsx +0 -60
  253. package/src/components/FakeEmailAdminPanel.tsx +0 -374
  254. package/src/components/Flag.tsx +0 -52
  255. package/src/components/ForgotPasswordForm.tsx +0 -174
  256. package/src/components/LoginForm.tsx +0 -468
  257. package/src/components/LogoutPage.tsx +0 -21
  258. package/src/components/RegisterForm.tsx +0 -1169
  259. package/src/components/ResetPasswordForm.tsx +0 -247
  260. package/src/components/SideMenu.tsx +0 -46
  261. package/src/components/SideMenuListItem.tsx +0 -75
  262. package/src/components/T.tsx +0 -24
  263. package/src/components/TDiv.tsx +0 -26
  264. package/src/components/TImgAlt.tsx +0 -28
  265. package/src/components/TopMenu.tsx +0 -252
  266. package/src/components/TotpSetupForm.tsx +0 -188
  267. package/src/components/TotpVerificationForm.tsx +0 -148
  268. package/src/components/TranslatedTitle.tsx +0 -31
  269. package/src/components/UserLanguageSelector.tsx +0 -45
  270. package/src/components/UserMenu.tsx +0 -15
  271. package/src/components/UserSettingsForm.tsx +0 -904
  272. package/src/components/VerifyEmailPage.tsx +0 -222
  273. package/src/components/__tests__/RegisterForm.totp.spec.tsx +0 -377
  274. package/src/components/__tests__/TotpSetupForm.spec.tsx +0 -258
  275. package/src/components/__tests__/TotpVerificationForm.spec.tsx +0 -259
  276. package/src/components/__tests__/UserSettingsForm.totp.spec.tsx +0 -396
  277. package/src/contexts/AuthProvider.spec.tsx +0 -1284
  278. package/src/contexts/AuthProvider.tsx +0 -977
  279. package/src/contexts/I18nProvider.tsx +0 -164
  280. package/src/contexts/MenuContext.tsx +0 -426
  281. package/src/contexts/SuiteConfigProvider.tsx +0 -93
  282. package/src/contexts/ThemeProvider.tsx +0 -67
  283. package/src/hooks/useAuthenticatedApi.tsx +0 -67
  284. package/src/hooks/useBackupCodes.ts +0 -105
  285. package/src/hooks/useEmailVerification.ts +0 -54
  286. package/src/hooks/useExpiringValue.ts +0 -78
  287. package/src/hooks/useLocalStorage.ts +0 -18
  288. package/src/hooks/useUserSettings.ts +0 -271
  289. package/src/interfaces/IAppConfig.ts +0 -7
  290. package/src/interfaces/ICategoryConfig.ts +0 -41
  291. package/src/interfaces/IMenuConfig.ts +0 -28
  292. package/src/interfaces/IMenuOption.ts +0 -79
  293. package/src/services/__mocks__/authService.ts +0 -14
  294. package/src/services/__tests__/authService.totp.property.spec.ts +0 -360
  295. package/src/services/__tests__/authService.totp.spec.ts +0 -439
  296. package/src/services/api.ts +0 -13
  297. package/src/services/authService.ts +0 -692
  298. package/src/services/authenticatedApi.ts +0 -17
  299. package/src/services/index.ts +0 -3
  300. package/src/types/MenuType.ts +0 -15
  301. package/src/types/expirationSeconds.ts +0 -18
  302. package/src/types/index.ts +0 -1
  303. package/src/types/translation.ts +0 -20
  304. package/src/wrappers/BackupCodeLoginWrapper.tsx +0 -34
  305. package/src/wrappers/BackupCodesWrapper.tsx +0 -28
  306. package/src/wrappers/ChangePasswordFormWrapper.tsx +0 -34
  307. package/src/wrappers/ForgotPasswordFormWrapper.tsx +0 -45
  308. package/src/wrappers/LoginFormWrapper.tsx +0 -108
  309. package/src/wrappers/LogoutPageWrapper.tsx +0 -30
  310. package/src/wrappers/RegisterFormWrapper.tsx +0 -109
  311. package/src/wrappers/ResetPasswordFormWrapper.tsx +0 -57
  312. package/src/wrappers/UserSettingsFormWrapper.tsx +0 -140
  313. package/src/wrappers/VerifyEmailPageWrapper.tsx +0 -27
  314. package/src/wrappers/__tests__/LoginFormWrapper.totp.spec.tsx +0 -339
@@ -0,0 +1,41 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ /**
3
+ * Configuration for a TopMenu category (mega-menu container).
4
+ *
5
+ * Categories let you group multiple icon dropdowns under a single AppBar
6
+ * button. Menus opt into a category by setting `IMenuConfig.category` (or
7
+ * `AdditionalDropdownMenu.category`) to this category's `id`. The TopMenu
8
+ * renders one icon button per category that has at least one matching menu;
9
+ * clicking it opens a popover containing the matching menus as icon tiles.
10
+ *
11
+ * Backwards compatibility: if `TopMenu` is not given a `categories` array,
12
+ * or if a menu does not declare a `category`, it renders inline in the AppBar
13
+ * exactly as before.
14
+ */
15
+ export interface ICategoryConfig {
16
+ /** Unique identifier referenced by `IMenuConfig.category`. */
17
+ id: string;
18
+ /** Icon shown on the AppBar trigger button. */
19
+ icon: ReactElement;
20
+ /**
21
+ * Optional accessible label / tooltip / panel header. Plain string for
22
+ * tooltip; render-prop or node for the panel header if `showHeader` is true.
23
+ */
24
+ label?: string;
25
+ /** Optional header content shown above the tile grid when `showHeader` is true. */
26
+ header?: ReactNode;
27
+ /** Show the `header` (or `label`) above the tile grid. Defaults to false. */
28
+ showHeader?: boolean;
29
+ /** Show the menu label under each tile inside the popover. Defaults to true. */
30
+ showLabels?: boolean;
31
+ /**
32
+ * Sort order for placement in the AppBar. Higher numbers render first
33
+ * (same convention as `IMenuConfig.priority`). Defaults to 0.
34
+ */
35
+ priority?: number;
36
+ /** Number of tile columns in the popover grid. Defaults to 3. */
37
+ columns?: number;
38
+ /** Hide the category trigger when it has no matching menus. Defaults to true. */
39
+ hideWhenEmpty?: boolean;
40
+ }
41
+ //# sourceMappingURL=ICategoryConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ICategoryConfig.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/interfaces/ICategoryConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEhD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,+CAA+C;IAC/C,IAAI,EAAE,YAAY,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gFAAgF;IAChF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,28 @@
1
+ import { ReactElement } from 'react';
2
+ import { IMenuOption } from './IMenuOption';
3
+ import { createMenuType } from '../types';
4
+ export interface IMenuConfig {
5
+ menuType: ReturnType<typeof createMenuType>;
6
+ menuIcon: ReactElement;
7
+ priority?: number;
8
+ options: IMenuOption[];
9
+ isUserMenu?: boolean;
10
+ /** Optional callback invoked when the icon button is clicked. */
11
+ action?: () => void;
12
+ /** When true, the menu icon is hidden if there are no sub-options. Defaults to false. */
13
+ hideWhenEmpty?: boolean;
14
+ /**
15
+ * Optional category identifier. When the TopMenu is configured with matching
16
+ * `categories`, this menu is rendered as a tile inside that category's
17
+ * mega-menu popover instead of inline in the AppBar. When omitted (or no
18
+ * matching category exists), the menu renders inline as a normal dropdown.
19
+ */
20
+ category?: string;
21
+ /**
22
+ * Optional human-readable label. When the menu is rendered as a tile inside
23
+ * a category popover with `showLabels` enabled, this is shown under the icon.
24
+ * Also used as the IconButton tooltip. Falls back to `menuType` when omitted.
25
+ */
26
+ label?: string;
27
+ }
28
+ //# sourceMappingURL=IMenuConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IMenuConfig.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/interfaces/IMenuConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IAC5C,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,yFAAyF;IACzF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,82 @@
1
+ import { ReactNode } from 'react';
2
+ import { To } from 'react-router';
3
+ import { MenuType } from '../types/MenuType';
4
+ import { SxProps } from '@mui/system';
5
+ import { Theme } from '@mui/material';
6
+ export interface IMenuOption {
7
+ /**
8
+ * Unique identifier for the menu option
9
+ */
10
+ id: string;
11
+ /**
12
+ * Text to display for the menu option
13
+ */
14
+ label: string | ReactNode | Array<ReactNode>;
15
+ /**
16
+ * Where the menu option should be displayed
17
+ */
18
+ includeOnMenus: MenuType[];
19
+ /**
20
+ * Display order for the menu option. Lower numbers are displayed first.
21
+ */
22
+ index: number;
23
+ /**
24
+ * Whether the menu option is a divider
25
+ */
26
+ divider?: boolean;
27
+ /**
28
+ * Icon to display for the menu option
29
+ */
30
+ icon?: ReactNode;
31
+ /**
32
+ * Link to navigate to when the menu option is clicked
33
+ * Mutually exclusive with `action`
34
+ * Can be a string, a react-router To object, or an object with pathname and optional state
35
+ */
36
+ link?: To | {
37
+ pathname: string;
38
+ state?: unknown;
39
+ };
40
+ /**
41
+ * Function to execute when the menu option is clicked
42
+ * Mutually exclusive with `link`
43
+ * @returns void
44
+ */
45
+ action?: () => void;
46
+ /**
47
+ * Whether the menu option requires authentication
48
+ * true = requires authentication
49
+ * false = requires unauthenticated
50
+ * undefined = always show
51
+ */
52
+ requiresAuth: boolean | undefined;
53
+ /**
54
+ * Whether the menu option requires the user to be a global admin
55
+ * true = only show to global admins
56
+ * undefined/false = no admin requirement
57
+ */
58
+ requiresAdmin?: boolean;
59
+ /**
60
+ * Custom filter function to determine if the menu option should be displayed
61
+ * @param option - The menu option to filter
62
+ * @returns boolean
63
+ */
64
+ filter?: (option: IMenuOption) => boolean;
65
+ /**
66
+ * Additional CSS properties
67
+ */
68
+ additionalSx?: SxProps<Theme>;
69
+ /**
70
+ * Additional CSS properties for the side menu variant
71
+ */
72
+ sideSx?: SxProps<Theme>;
73
+ /**
74
+ * Additional CSS properties for the side menu variant Icon sub item
75
+ */
76
+ sideIconSx?: SxProps<Theme>;
77
+ /**
78
+ * Additional CSS properties for the side menu variant Text sub item
79
+ */
80
+ sideTextSx?: SxProps<Theme>;
81
+ }
82
+ //# sourceMappingURL=IMenuOption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IMenuOption.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/interfaces/IMenuOption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7C;;OAEG;IACH,cAAc,EAAE,QAAQ,EAAE,CAAC;IAC3B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,EAAE,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAClD;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;OAKG;IACH,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC;IAC1C;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CAC7B"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -2,3 +2,4 @@ export * from './IAppConfig';
2
2
  export * from './IMenuOption';
3
3
  export * from './IMenuConfig';
4
4
  export * from './ICategoryConfig';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./IAppConfig"), exports);
5
+ tslib_1.__exportStar(require("./IMenuOption"), exports);
6
+ tslib_1.__exportStar(require("./IMenuConfig"), exports);
7
+ tslib_1.__exportStar(require("./ICategoryConfig"), exports);
@@ -0,0 +1,21 @@
1
+ export declare const mockAuthService: {
2
+ verifyToken: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
3
+ directLogin: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
4
+ emailChallengeLogin: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
5
+ refreshToken: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
6
+ register: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
7
+ requestEmailLogin: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
8
+ backupCodeLogin: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
9
+ changePassword: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
10
+ };
11
+ export declare const createAuthService: import("jest-mock").Mock<() => {
12
+ verifyToken: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
13
+ directLogin: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
14
+ emailChallengeLogin: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
15
+ refreshToken: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
16
+ register: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
17
+ requestEmailLogin: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
18
+ backupCodeLogin: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
19
+ changePassword: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
20
+ }>;
21
+ //# sourceMappingURL=authService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authService.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-express-suite-react-components/src/services/__mocks__/authService.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;;;;;;;;CAS3B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;EAAiC,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAuthService = exports.mockAuthService = void 0;
4
+ const globals_1 = require("@jest/globals");
5
+ exports.mockAuthService = {
6
+ verifyToken: globals_1.jest.fn(),
7
+ directLogin: globals_1.jest.fn(),
8
+ emailChallengeLogin: globals_1.jest.fn(),
9
+ refreshToken: globals_1.jest.fn(),
10
+ register: globals_1.jest.fn(),
11
+ requestEmailLogin: globals_1.jest.fn(),
12
+ backupCodeLogin: globals_1.jest.fn(),
13
+ changePassword: globals_1.jest.fn(),
14
+ };
15
+ exports.createAuthService = globals_1.jest.fn(() => exports.mockAuthService);
@@ -0,0 +1,3 @@
1
+ import axios from 'axios';
2
+ export declare function createApiClient(baseURL: string): axios.AxiosInstance;
3
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/services/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,uBAU9C"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createApiClient = createApiClient;
4
+ const tslib_1 = require("tslib");
5
+ const axios_1 = tslib_1.__importDefault(require("axios"));
6
+ function createApiClient(baseURL) {
7
+ const api = axios_1.default.create({ baseURL });
8
+ api.interceptors.request.use((config) => {
9
+ const languageCode = localStorage.getItem('languageCode') ?? 'en-US';
10
+ config.headers['Accept-Language'] = languageCode;
11
+ return config;
12
+ });
13
+ return api;
14
+ }
@@ -0,0 +1,126 @@
1
+ import { EmailString, IECIESConfig, SecureString } from '@digitaldefiance/ecies-lib';
2
+ import { IConstants, IRequestUserDTO } from '@digitaldefiance/suite-core-lib';
3
+ import { Wallet } from '@ethereumjs/wallet';
4
+ interface ApiErrorResponse {
5
+ message?: string;
6
+ error?: string | {
7
+ message?: string;
8
+ statusCode?: number;
9
+ stack?: string;
10
+ };
11
+ errorType?: string;
12
+ field?: string;
13
+ errors?: Array<{
14
+ path: string;
15
+ msg: string;
16
+ }>;
17
+ }
18
+ /**
19
+ * Extract a human-readable error string from an API error response.
20
+ * The backend may send `error` as either a plain string or an object
21
+ * with `{ message, statusCode, stack }`.
22
+ */
23
+ export declare function extractErrorMessage(errorData: ApiErrorResponse): string | undefined;
24
+ export declare class AuthService {
25
+ private constants;
26
+ private baseUrl;
27
+ private readonly siteDomain;
28
+ private eciesService;
29
+ private cryptoCore;
30
+ private apiClient;
31
+ private authenticatedApiClient;
32
+ constructor(constants: IConstants, baseUrl: string, eciesConfig: IECIESConfig, siteDomain: string);
33
+ getSiteDomain(): string;
34
+ register(username: string, email: string, timezone: string, password?: string, mnemonic?: string, displayName?: string, directChallenge?: boolean): Promise<{
35
+ success: boolean;
36
+ message: string;
37
+ mnemonic: string;
38
+ } | {
39
+ error: string;
40
+ errorType?: string;
41
+ field?: string;
42
+ errors?: Array<Record<string, string>>;
43
+ }>;
44
+ directLogin(mnemonic: SecureString, username?: string, email?: EmailString): Promise<{
45
+ token: string;
46
+ user: IRequestUserDTO;
47
+ wallet: Wallet;
48
+ message: string;
49
+ } | {
50
+ pendingTotpToken: string;
51
+ } | {
52
+ error: string;
53
+ errorType?: string;
54
+ }>;
55
+ requestEmailLogin(username?: string, email?: EmailString): Promise<string | {
56
+ error: string;
57
+ errorType?: string;
58
+ }>;
59
+ emailChallengeLogin(mnemonic: SecureString, token: string, username?: string, email?: EmailString): Promise<{
60
+ token: string;
61
+ user: IRequestUserDTO;
62
+ wallet: Wallet;
63
+ message: string;
64
+ } | {
65
+ pendingTotpToken: string;
66
+ } | {
67
+ error: string;
68
+ errorType?: string;
69
+ }>;
70
+ verifyToken(token: string): Promise<IRequestUserDTO | {
71
+ error: string;
72
+ errorType?: string;
73
+ }>;
74
+ refreshToken(): Promise<{
75
+ token: string;
76
+ user: IRequestUserDTO;
77
+ }>;
78
+ changePassword(currentPassword: string, newPassword: string): Promise<{
79
+ success: boolean;
80
+ } | {
81
+ error: string;
82
+ errorType?: string;
83
+ }>;
84
+ backupCodeLogin(identifier: string, code: string, isEmail: boolean, recoverMnemonic: boolean, newPassword?: string): Promise<{
85
+ token: string;
86
+ codeCount: number;
87
+ user?: IRequestUserDTO;
88
+ mnemonic?: string;
89
+ message?: string;
90
+ } | {
91
+ error: string;
92
+ status?: number;
93
+ errorType?: string;
94
+ }>;
95
+ setupTotp(): Promise<{
96
+ provisioningUri: string;
97
+ secret: string;
98
+ } | {
99
+ error: string;
100
+ }>;
101
+ confirmTotp(code: string): Promise<{
102
+ success: boolean;
103
+ } | {
104
+ error: string;
105
+ }>;
106
+ disableTotp(code: string): Promise<{
107
+ success: boolean;
108
+ } | {
109
+ error: string;
110
+ }>;
111
+ resetTotp(code: string): Promise<{
112
+ provisioningUri: string;
113
+ secret: string;
114
+ } | {
115
+ error: string;
116
+ }>;
117
+ verifyTotpLogin(pendingTotpToken: string, code: string): Promise<{
118
+ token: string;
119
+ user: IRequestUserDTO;
120
+ } | {
121
+ error: string;
122
+ }>;
123
+ }
124
+ export declare const createAuthService: (constants: IConstants, baseUrl: string, eciesConfig: IECIESConfig, siteDomain: string) => AuthService;
125
+ export {};
126
+ //# sourceMappingURL=authService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authService.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/services/authService.ts"],"names":[],"mappings":"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"}