@carlonicora/nextjs-jsonapi 1.0.4 → 1.0.6

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 (283) hide show
  1. package/LICENSE +675 -0
  2. package/dist/{AbstractService-BKlpJA61.d.mts → AbstractService-B2n_JdiC.d.mts} +1 -1
  3. package/dist/{AbstractService-D9eSVKNa.d.ts → AbstractService-DtQTYovo.d.ts} +1 -1
  4. package/dist/{content.interface-Dg2lt_An.d.mts → AuthComponent-CPLvEerw.d.mts} +11 -15
  5. package/dist/{content.interface-BhyAiOFq.d.ts → AuthComponent-m6Qp4Hz6.d.ts} +11 -15
  6. package/dist/{BlockNoteEditor-UVO3VZZE.mjs → BlockNoteEditor-BLVXQPXV.mjs} +14 -18
  7. package/dist/{BlockNoteEditor-UVO3VZZE.mjs.map → BlockNoteEditor-BLVXQPXV.mjs.map} +1 -1
  8. package/dist/{BlockNoteEditor-VFWG6LXI.js → BlockNoteEditor-ZTDHULFT.js} +15 -19
  9. package/dist/BlockNoteEditor-ZTDHULFT.js.map +1 -0
  10. package/dist/JsonApiRequest-O7BGUMFO.mjs +23 -0
  11. package/dist/JsonApiRequest-VARLNKAF.js +23 -0
  12. package/dist/JsonApiRequest-VARLNKAF.js.map +1 -0
  13. package/dist/chunk-2LM6LCJW.mjs +1 -0
  14. package/dist/chunk-3APORDYP.mjs +7783 -0
  15. package/dist/chunk-3APORDYP.mjs.map +1 -0
  16. package/dist/{chunk-TMVHSY3Y.js → chunk-5ZEADNNP.js} +36 -17
  17. package/dist/chunk-5ZEADNNP.js.map +1 -0
  18. package/dist/{chunk-ECDTZBYO.mjs → chunk-74F6BBHH.mjs} +21 -2
  19. package/dist/chunk-74F6BBHH.mjs.map +1 -0
  20. package/dist/{chunk-GYWPEPOH.mjs → chunk-7C5RAEBO.mjs} +72 -68
  21. package/dist/chunk-7C5RAEBO.mjs.map +1 -0
  22. package/dist/chunk-A5DDIABK.js +1 -0
  23. package/dist/{chunk-TEGF6ZWG.js → chunk-AGAJMJ4T.js} +47 -9
  24. package/dist/chunk-AGAJMJ4T.js.map +1 -0
  25. package/dist/{chunk-CXQOWQSY.js → chunk-AYHKQWHH.js} +15 -2
  26. package/dist/chunk-AYHKQWHH.js.map +1 -0
  27. package/dist/{chunk-I2REI7OA.js → chunk-HMHGLXWC.js} +33 -15
  28. package/dist/chunk-HMHGLXWC.js.map +1 -0
  29. package/dist/chunk-IWFGEPAA.mjs +1 -0
  30. package/dist/chunk-JC3WJK65.js +1 -0
  31. package/dist/{chunk-L6EQEAXU.mjs → chunk-PYF2U6WG.mjs} +25 -7
  32. package/dist/chunk-PYF2U6WG.mjs.map +1 -0
  33. package/dist/{chunk-YDVTFM7X.mjs → chunk-RBIVEH2K.mjs} +42 -4
  34. package/dist/chunk-RBIVEH2K.mjs.map +1 -0
  35. package/dist/{chunk-V2JJPI7N.js → chunk-RZO2LOW4.js} +237 -233
  36. package/dist/chunk-RZO2LOW4.js.map +1 -0
  37. package/dist/{chunk-X4BIHJ2B.mjs → chunk-SM63SZCP.mjs} +15 -2
  38. package/dist/chunk-SM63SZCP.mjs.map +1 -0
  39. package/dist/chunk-WEC4YMOS.js +7783 -0
  40. package/dist/chunk-WEC4YMOS.js.map +1 -0
  41. package/dist/client/index.d.mts +21 -2
  42. package/dist/client/index.d.ts +21 -2
  43. package/dist/client/index.js +18 -245
  44. package/dist/client/index.js.map +1 -1
  45. package/dist/client/index.mjs +28 -255
  46. package/dist/client/index.mjs.map +1 -1
  47. package/dist/components/index.d.mts +293 -8
  48. package/dist/components/index.d.ts +293 -8
  49. package/dist/components/index.js +78 -2323
  50. package/dist/components/index.js.map +1 -1
  51. package/dist/components/index.mjs +172 -2417
  52. package/dist/components/index.mjs.map +1 -1
  53. package/dist/{config-hXufftVS.d.ts → config-BmnK65TD.d.mts} +1 -0
  54. package/dist/{config-hXufftVS.d.mts → config-BmnK65TD.d.ts} +1 -0
  55. package/dist/config-DQeAo9Kf.d.mts +49 -0
  56. package/dist/config-DQeAo9Kf.d.ts +49 -0
  57. package/dist/contexts/index.d.mts +109 -21
  58. package/dist/contexts/index.d.ts +109 -21
  59. package/dist/contexts/index.js +39 -7
  60. package/dist/contexts/index.js.map +1 -1
  61. package/dist/contexts/index.mjs +40 -8
  62. package/dist/core/index.d.mts +3 -4
  63. package/dist/core/index.d.ts +3 -4
  64. package/dist/core/index.js +3 -7
  65. package/dist/core/index.js.map +1 -1
  66. package/dist/core/index.mjs +4 -8
  67. package/dist/{d3.link.interface-QMdB22bC.d.mts → d3.link.interface-ClC4Irqp.d.mts} +2 -1
  68. package/dist/{d3.link.interface-QMdB22bC.d.ts → d3.link.interface-ClC4Irqp.d.ts} +2 -1
  69. package/dist/features/index.d.mts +17 -86
  70. package/dist/features/index.d.ts +17 -86
  71. package/dist/features/index.js +7 -16
  72. package/dist/features/index.js.map +1 -1
  73. package/dist/features/index.mjs +10 -19
  74. package/dist/hooks/index.d.mts +18 -43
  75. package/dist/hooks/index.d.ts +18 -43
  76. package/dist/hooks/index.js +20 -7
  77. package/dist/hooks/index.js.map +1 -1
  78. package/dist/hooks/index.mjs +19 -6
  79. package/dist/index.d.mts +10 -6
  80. package/dist/index.d.ts +10 -6
  81. package/dist/index.js +13 -10
  82. package/dist/index.js.map +1 -1
  83. package/dist/index.mjs +22 -19
  84. package/dist/interfaces/index.d.mts +2 -1
  85. package/dist/interfaces/index.d.ts +2 -1
  86. package/dist/notification.interface-BBgMUdLR.d.mts +14 -0
  87. package/dist/notification.interface-gyvT-Z2F.d.ts +14 -0
  88. package/dist/permissions/index.d.mts +2 -3
  89. package/dist/permissions/index.d.ts +2 -3
  90. package/dist/server/index.d.mts +38 -18
  91. package/dist/server/index.d.ts +38 -18
  92. package/dist/server/index.js +70 -2
  93. package/dist/server/index.js.map +1 -1
  94. package/dist/server/index.mjs +68 -0
  95. package/dist/server/index.mjs.map +1 -1
  96. package/dist/types-BUAlgqqh.d.ts +39 -0
  97. package/dist/{types-DluCaP1I.d.ts → types-Bl61ob-7.d.mts} +19 -2
  98. package/dist/{types-lQVA8d_P.d.mts → types-Bl61ob-7.d.ts} +19 -2
  99. package/dist/types-iVdVY7ba.d.mts +39 -0
  100. package/dist/useSocket-Cn7fB_B1.d.mts +25 -0
  101. package/dist/useSocket-DzMKRKCA.d.ts +25 -0
  102. package/dist/user.fields-CbdObSmS.d.mts +18 -0
  103. package/dist/user.fields-CbdObSmS.d.ts +18 -0
  104. package/dist/utils/index.d.mts +1 -2
  105. package/dist/utils/index.d.ts +1 -2
  106. package/package.json +5 -3
  107. package/src/client/index.ts +13 -0
  108. package/src/components/forms/index.ts +1 -0
  109. package/src/components/index.ts +5 -0
  110. package/src/components/tables/ContentListTable.tsx +1 -0
  111. package/src/contexts/CommonContext.tsx +52 -0
  112. package/src/contexts/SharedContext.tsx +2 -0
  113. package/src/contexts/SocketContext.tsx +65 -0
  114. package/src/contexts/index.ts +6 -1
  115. package/src/features/auth/components/containers/AuthContainer.tsx +32 -0
  116. package/src/features/auth/components/containers/index.ts +1 -0
  117. package/src/features/auth/components/details/LandingComponent.tsx +39 -0
  118. package/src/features/auth/components/details/index.ts +1 -0
  119. package/src/features/auth/components/forms/AcceptInvitation.tsx +136 -0
  120. package/src/features/auth/components/forms/ActivateAccount.tsx +75 -0
  121. package/src/features/auth/components/forms/Cookies.tsx +32 -0
  122. package/src/features/auth/components/forms/ForgotPassword.tsx +108 -0
  123. package/src/features/auth/components/forms/Login.tsx +118 -0
  124. package/src/features/auth/components/forms/Logout.tsx +19 -0
  125. package/src/features/auth/components/forms/RefreshUser.tsx +39 -0
  126. package/src/features/auth/components/forms/Register.tsx +150 -0
  127. package/src/features/auth/components/forms/ResetPassword.tsx +126 -0
  128. package/src/features/auth/components/forms/index.ts +9 -0
  129. package/src/features/auth/components/index.ts +3 -0
  130. package/src/features/auth/contexts/AuthContext.tsx +77 -0
  131. package/src/features/auth/contexts/index.ts +1 -0
  132. package/src/features/auth/enums/AuthComponent.ts +9 -0
  133. package/src/features/auth/enums/index.ts +1 -0
  134. package/src/features/auth/index.ts +2 -1
  135. package/src/features/auth/utils/AuthCookies.ts +134 -0
  136. package/src/features/auth/utils/index.ts +1 -0
  137. package/src/features/company/components/containers/AdminCompanyContainer.tsx +26 -0
  138. package/src/features/company/components/containers/CompanyContainer.tsx +17 -0
  139. package/src/features/company/components/containers/index.ts +2 -0
  140. package/src/features/company/components/details/CompanyDetails.tsx +26 -0
  141. package/src/features/company/components/details/index.ts +1 -0
  142. package/src/features/company/components/forms/CompanyConfigurationEditor.tsx +151 -0
  143. package/src/features/company/components/forms/CompanyConfigurationSecurityForm.tsx +97 -0
  144. package/src/features/company/components/forms/CompanyDeleter.tsx +121 -0
  145. package/src/features/company/components/forms/CompanyEditor.tsx +245 -0
  146. package/src/features/company/components/forms/CompanyLicense.tsx +213 -0
  147. package/src/features/company/components/forms/index.ts +5 -0
  148. package/src/features/company/components/index.ts +4 -0
  149. package/src/features/company/components/lists/CompaniesList.tsx +31 -0
  150. package/src/features/company/components/lists/index.ts +1 -0
  151. package/src/features/company/contexts/CompanyContext.tsx +99 -0
  152. package/src/features/company/contexts/index.ts +0 -0
  153. package/src/features/company/hooks/index.ts +1 -0
  154. package/src/features/company/hooks/useCompanyTableStructure.tsx +82 -0
  155. package/src/features/feature/components/forms/FormFeatures.tsx +141 -140
  156. package/src/features/feature/components/forms/index.ts +1 -0
  157. package/src/features/feature/components/index.ts +1 -1
  158. package/src/features/feature/index.ts +1 -2
  159. package/src/features/module/index.ts +1 -1
  160. package/src/features/notification/components/common/NotificationErrorBoundary.tsx +51 -0
  161. package/src/features/notification/components/common/index.ts +1 -0
  162. package/src/features/notification/components/containers/NotificationsListContainer.tsx +44 -0
  163. package/src/features/notification/components/containers/index.ts +1 -0
  164. package/src/features/notification/components/index.ts +5 -0
  165. package/src/features/notification/components/lists/NotificationsList.tsx +129 -0
  166. package/src/features/notification/components/lists/index.ts +1 -0
  167. package/src/features/notification/components/modals/NotificationModal.tsx +220 -0
  168. package/src/features/notification/components/modals/index.ts +1 -0
  169. package/src/features/notification/components/notifications/Notification.tsx +120 -0
  170. package/src/features/notification/components/notifications/PushNotificationProvider.tsx +9 -0
  171. package/src/features/notification/components/notifications/index.ts +2 -0
  172. package/src/features/notification/contexts/NotificationContext.tsx +187 -0
  173. package/src/features/notification/contexts/index.ts +1 -0
  174. package/src/features/notification/index.ts +1 -1
  175. package/src/features/push/index.ts +1 -1
  176. package/src/features/role/components/containers/RoleContainer.tsx +18 -0
  177. package/src/features/role/components/containers/index.ts +1 -0
  178. package/src/features/role/components/details/RoleDetails.tsx +21 -0
  179. package/src/features/role/components/details/index.ts +1 -0
  180. package/src/features/role/components/forms/FormRoles.tsx +82 -0
  181. package/src/features/role/components/forms/RemoveUserFromRole.tsx +108 -0
  182. package/src/features/role/components/forms/UserRoleAdd.tsx +128 -0
  183. package/src/features/role/components/forms/index.ts +3 -0
  184. package/src/features/role/components/index.ts +4 -0
  185. package/src/features/role/components/lists/RolesList.tsx +27 -0
  186. package/src/features/role/components/lists/UserRolesList.tsx +31 -0
  187. package/src/features/role/components/lists/index.ts +2 -0
  188. package/src/features/role/contexts/RoleContext.tsx +84 -0
  189. package/src/features/role/contexts/index.ts +1 -0
  190. package/src/features/role/hooks/index.ts +1 -0
  191. package/src/features/role/hooks/useRoleTableStructure.tsx +72 -0
  192. package/src/features/s3/index.ts +1 -1
  193. package/src/features/user/components/containers/UserContainer.tsx +23 -0
  194. package/src/features/user/components/containers/UserIndexContainer.tsx +12 -0
  195. package/src/features/user/components/containers/UsersListContainer.tsx +36 -0
  196. package/src/features/user/components/containers/index.ts +3 -0
  197. package/src/features/user/components/details/UserDetails.tsx +74 -0
  198. package/src/features/user/components/details/UserIndexDetails.tsx +28 -0
  199. package/src/features/user/components/details/index.ts +2 -0
  200. package/src/features/user/components/forms/RoleUserAdd.tsx +93 -0
  201. package/src/features/user/components/forms/UserAvatarEditor.tsx +78 -0
  202. package/src/features/user/components/forms/UserDeleter.tsx +49 -0
  203. package/src/features/user/components/forms/UserEditor.tsx +319 -0
  204. package/src/features/user/components/forms/UserMultiSelect.tsx +218 -0
  205. package/src/features/user/components/forms/UserReactivator.tsx +79 -0
  206. package/src/features/user/components/forms/UserResentInvitationEmail.tsx +88 -0
  207. package/src/features/user/components/forms/UserSelector.tsx +185 -0
  208. package/src/features/user/components/forms/index.ts +8 -0
  209. package/src/features/user/components/index.ts +3 -0
  210. package/src/features/user/components/lists/AdminUsersList.tsx +41 -0
  211. package/src/features/user/components/lists/CompanyUsersList.tsx +44 -0
  212. package/src/features/user/components/lists/RelevantUsersList.tsx +30 -0
  213. package/src/features/user/components/lists/RoleUsersList.tsx +31 -0
  214. package/src/features/user/components/lists/UserListInAdd.tsx +53 -0
  215. package/src/features/user/components/lists/UsersList.tsx +30 -0
  216. package/src/features/user/components/lists/UsersListByContentIds.tsx +30 -0
  217. package/src/features/user/components/lists/index.ts +7 -0
  218. package/src/features/user/components/widgets/UserAvatarList.tsx +31 -0
  219. package/src/features/user/components/widgets/UserSearchPopover.tsx +89 -0
  220. package/src/features/user/contexts/UserContext.tsx +106 -0
  221. package/src/features/user/contexts/index.ts +1 -0
  222. package/src/features/user/hooks/index.ts +2 -0
  223. package/src/features/user/hooks/useUserSearch.ts +53 -0
  224. package/src/features/user/hooks/useUserTableStructure.tsx +115 -0
  225. package/src/features/user/index.ts +0 -1
  226. package/src/hooks/index.ts +4 -0
  227. package/src/hooks/useCustomD3Graph.tsx +2 -0
  228. package/src/hooks/useNotificationSync.ts +20 -0
  229. package/src/hooks/usePageTracker.ts +69 -0
  230. package/src/hooks/usePushNotifications.ts +82 -0
  231. package/src/hooks/useSocket.ts +201 -0
  232. package/src/hooks/useTableGenerator.ts +6 -2
  233. package/src/i18n/config.ts +1 -0
  234. package/src/index.ts +4 -0
  235. package/src/interfaces/d3.link.interface.ts +2 -1
  236. package/src/server/ServerSession.ts +103 -0
  237. package/src/server/index.ts +2 -1
  238. package/src/unified/JsonApiRequest.ts +23 -0
  239. package/dist/ApiRequestDataTypeInterface-CUKFDBx2.d.mts +0 -20
  240. package/dist/ApiRequestDataTypeInterface-CUKFDBx2.d.ts +0 -20
  241. package/dist/BlockNoteEditor-VFWG6LXI.js.map +0 -1
  242. package/dist/JsonApiRequest-S3ICLM7B.mjs +0 -20
  243. package/dist/JsonApiRequest-ZZLSP26T.js +0 -20
  244. package/dist/JsonApiRequest-ZZLSP26T.js.map +0 -1
  245. package/dist/chunk-366S2JCC.mjs +0 -31
  246. package/dist/chunk-366S2JCC.mjs.map +0 -1
  247. package/dist/chunk-5W6AKZE6.mjs +0 -131
  248. package/dist/chunk-5W6AKZE6.mjs.map +0 -1
  249. package/dist/chunk-A3J3AAYM.mjs +0 -97
  250. package/dist/chunk-A3J3AAYM.mjs.map +0 -1
  251. package/dist/chunk-AWONBQQP.js +0 -97
  252. package/dist/chunk-AWONBQQP.js.map +0 -1
  253. package/dist/chunk-CXQOWQSY.js.map +0 -1
  254. package/dist/chunk-DKKMWBP4.mjs +0 -1
  255. package/dist/chunk-DKKMWBP4.mjs.map +0 -1
  256. package/dist/chunk-DO2HLAZO.js +0 -48
  257. package/dist/chunk-DO2HLAZO.js.map +0 -1
  258. package/dist/chunk-DZXDB3K2.mjs +0 -17
  259. package/dist/chunk-DZXDB3K2.mjs.map +0 -1
  260. package/dist/chunk-ECDTZBYO.mjs.map +0 -1
  261. package/dist/chunk-FY4SXJGU.js +0 -806
  262. package/dist/chunk-FY4SXJGU.js.map +0 -1
  263. package/dist/chunk-GYWPEPOH.mjs.map +0 -1
  264. package/dist/chunk-H6FMOA6B.js +0 -1
  265. package/dist/chunk-H6FMOA6B.js.map +0 -1
  266. package/dist/chunk-I2REI7OA.js.map +0 -1
  267. package/dist/chunk-J4Q36PMP.js +0 -31
  268. package/dist/chunk-J4Q36PMP.js.map +0 -1
  269. package/dist/chunk-L6EQEAXU.mjs.map +0 -1
  270. package/dist/chunk-MFO27OHB.mjs +0 -48
  271. package/dist/chunk-MFO27OHB.mjs.map +0 -1
  272. package/dist/chunk-RAF7PNLG.js +0 -131
  273. package/dist/chunk-RAF7PNLG.js.map +0 -1
  274. package/dist/chunk-RUR22SVM.js +0 -17
  275. package/dist/chunk-RUR22SVM.js.map +0 -1
  276. package/dist/chunk-TEGF6ZWG.js.map +0 -1
  277. package/dist/chunk-TMVHSY3Y.js.map +0 -1
  278. package/dist/chunk-V2JJPI7N.js.map +0 -1
  279. package/dist/chunk-WWWMJZEF.mjs +0 -806
  280. package/dist/chunk-WWWMJZEF.mjs.map +0 -1
  281. package/dist/chunk-X4BIHJ2B.mjs.map +0 -1
  282. package/dist/chunk-YDVTFM7X.mjs.map +0 -1
  283. /package/dist/{JsonApiRequest-S3ICLM7B.mjs.map → JsonApiRequest-O7BGUMFO.mjs.map} +0 -0
@@ -1,264 +1,34 @@
1
1
  "use client";
2
+ import {
3
+ JsonApiContext,
4
+ JsonApiProvider,
5
+ useJsonApiConfig,
6
+ useJsonApiConfigOptional,
7
+ useJsonApiGet,
8
+ useJsonApiMutation,
9
+ useRehydration,
10
+ useRehydrationList,
11
+ useRoleTableStructure,
12
+ useUserSearch,
13
+ useUserTableStructure
14
+ } from "../chunk-3APORDYP.mjs";
2
15
  import {
3
16
  directFetch
4
17
  } from "../chunk-C7C7VY4F.mjs";
18
+ import "../chunk-IWFGEPAA.mjs";
19
+ import "../chunk-2LM6LCJW.mjs";
20
+ import "../chunk-7C5RAEBO.mjs";
5
21
  import {
6
22
  getClientToken
7
23
  } from "../chunk-AUXK7QSA.mjs";
8
- import {
9
- RehydrationFactory
10
- } from "../chunk-366S2JCC.mjs";
11
- import "../chunk-MFO27OHB.mjs";
12
- import {
13
- __name
14
- } from "../chunk-PAWJFY3S.mjs";
15
-
16
- // src/client/context/JsonApiContext.ts
17
- import { createContext, useContext } from "react";
18
- var JsonApiContext = createContext(null);
19
- function useJsonApiConfig() {
20
- const config = useContext(JsonApiContext);
21
- if (!config) {
22
- throw new Error("useJsonApiConfig must be used within a JsonApiProvider");
23
- }
24
- return config;
25
- }
26
- __name(useJsonApiConfig, "useJsonApiConfig");
27
- function useJsonApiConfigOptional() {
28
- return useContext(JsonApiContext);
29
- }
30
- __name(useJsonApiConfigOptional, "useJsonApiConfigOptional");
31
-
32
- // src/client/context/JsonApiProvider.tsx
33
- import { useEffect, useMemo } from "react";
34
- import { jsx } from "react/jsx-runtime";
35
- function JsonApiProvider({ config, children }) {
36
- useEffect(() => {
37
- if (config.bootstrapper) {
38
- config.bootstrapper();
39
- }
40
- }, [config.bootstrapper]);
41
- const memoizedConfig = useMemo(() => config, [config]);
42
- return /* @__PURE__ */ jsx(JsonApiContext.Provider, { value: memoizedConfig, children });
43
- }
44
- __name(JsonApiProvider, "JsonApiProvider");
45
-
46
- // src/client/hooks/useJsonApiGet.ts
47
- import { useState, useEffect as useEffect2, useCallback, useRef } from "react";
48
- function useJsonApiGet(params) {
49
- const [data, setData] = useState(null);
50
- const [loading, setLoading] = useState(false);
51
- const [error, setError] = useState(null);
52
- const [response, setResponse] = useState(null);
53
- const isMounted = useRef(true);
54
- const fetchData = useCallback(async () => {
55
- if (params.options?.enabled === false) return;
56
- setLoading(true);
57
- setError(null);
58
- try {
59
- const { JsonApiGet } = await import("../JsonApiRequest-S3ICLM7B.mjs");
60
- const language = navigator.language.split("-")[0] || "en";
61
- const apiResponse = await JsonApiGet({
62
- classKey: params.classKey,
63
- endpoint: params.endpoint,
64
- companyId: params.companyId,
65
- language
66
- });
67
- if (!isMounted.current) return;
68
- setResponse(apiResponse);
69
- if (apiResponse.ok) {
70
- setData(apiResponse.data);
71
- } else {
72
- setError(apiResponse.error);
73
- }
74
- } catch (err) {
75
- if (!isMounted.current) return;
76
- setError(err instanceof Error ? err.message : "Unknown error");
77
- } finally {
78
- if (isMounted.current) {
79
- setLoading(false);
80
- }
81
- }
82
- }, [params.classKey, params.endpoint, params.companyId, params.options?.enabled]);
83
- const fetchNextPage = useCallback(async () => {
84
- if (!response?.nextPage) return;
85
- setLoading(true);
86
- try {
87
- const nextResponse = await response.nextPage();
88
- if (!isMounted.current) return;
89
- setResponse(nextResponse);
90
- if (nextResponse.ok) {
91
- setData(nextResponse.data);
92
- } else {
93
- setError(nextResponse.error);
94
- }
95
- } catch (err) {
96
- if (!isMounted.current) return;
97
- setError(err instanceof Error ? err.message : "Unknown error");
98
- } finally {
99
- if (isMounted.current) {
100
- setLoading(false);
101
- }
102
- }
103
- }, [response]);
104
- const fetchPreviousPage = useCallback(async () => {
105
- if (!response?.prevPage) return;
106
- setLoading(true);
107
- try {
108
- const prevResponse = await response.prevPage();
109
- if (!isMounted.current) return;
110
- setResponse(prevResponse);
111
- if (prevResponse.ok) {
112
- setData(prevResponse.data);
113
- } else {
114
- setError(prevResponse.error);
115
- }
116
- } catch (err) {
117
- if (!isMounted.current) return;
118
- setError(err instanceof Error ? err.message : "Unknown error");
119
- } finally {
120
- if (isMounted.current) {
121
- setLoading(false);
122
- }
123
- }
124
- }, [response]);
125
- useEffect2(() => {
126
- isMounted.current = true;
127
- fetchData();
128
- return () => {
129
- isMounted.current = false;
130
- };
131
- }, [fetchData, ...params.options?.deps || []]);
132
- return {
133
- data,
134
- loading,
135
- error,
136
- response,
137
- refetch: fetchData,
138
- hasNextPage: !!response?.next,
139
- hasPreviousPage: !!response?.prev,
140
- fetchNextPage,
141
- fetchPreviousPage
142
- };
143
- }
144
- __name(useJsonApiGet, "useJsonApiGet");
145
-
146
- // src/client/hooks/useJsonApiMutation.ts
147
- import { useState as useState2, useCallback as useCallback2 } from "react";
148
- function useJsonApiMutation(config) {
149
- const [data, setData] = useState2(null);
150
- const [loading, setLoading] = useState2(false);
151
- const [error, setError] = useState2(null);
152
- const [response, setResponse] = useState2(null);
153
- const reset = useCallback2(() => {
154
- setData(null);
155
- setLoading(false);
156
- setError(null);
157
- setResponse(null);
158
- }, []);
159
- const mutate = useCallback2(
160
- async (params) => {
161
- setLoading(true);
162
- setError(null);
163
- try {
164
- const { JsonApiPost, JsonApiPut, JsonApiPatch, JsonApiDelete } = await import("../JsonApiRequest-S3ICLM7B.mjs");
165
- const language = navigator.language.split("-")[0] || "en";
166
- let apiResponse;
167
- switch (config.method) {
168
- case "POST":
169
- apiResponse = await JsonApiPost({
170
- classKey: config.classKey,
171
- endpoint: params.endpoint,
172
- companyId: params.companyId,
173
- body: params.body,
174
- overridesJsonApiCreation: params.overridesJsonApiCreation,
175
- files: params.files,
176
- language,
177
- responseType: params.responseType
178
- });
179
- break;
180
- case "PUT":
181
- apiResponse = await JsonApiPut({
182
- classKey: config.classKey,
183
- endpoint: params.endpoint,
184
- companyId: params.companyId,
185
- body: params.body,
186
- files: params.files,
187
- language,
188
- responseType: params.responseType
189
- });
190
- break;
191
- case "PATCH":
192
- apiResponse = await JsonApiPatch({
193
- classKey: config.classKey,
194
- endpoint: params.endpoint,
195
- companyId: params.companyId,
196
- body: params.body,
197
- overridesJsonApiCreation: params.overridesJsonApiCreation,
198
- files: params.files,
199
- language,
200
- responseType: params.responseType
201
- });
202
- break;
203
- case "DELETE":
204
- apiResponse = await JsonApiDelete({
205
- classKey: config.classKey,
206
- endpoint: params.endpoint,
207
- companyId: params.companyId,
208
- language,
209
- responseType: params.responseType
210
- });
211
- break;
212
- }
213
- setResponse(apiResponse);
214
- if (apiResponse.ok) {
215
- const resultData = apiResponse.data;
216
- setData(resultData);
217
- config.onSuccess?.(resultData);
218
- return resultData;
219
- } else {
220
- setError(apiResponse.error);
221
- config.onError?.(apiResponse.error);
222
- return null;
223
- }
224
- } catch (err) {
225
- const errorMessage = err instanceof Error ? err.message : "Unknown error";
226
- setError(errorMessage);
227
- config.onError?.(errorMessage);
228
- return null;
229
- } finally {
230
- setLoading(false);
231
- }
232
- },
233
- [config]
234
- );
235
- return {
236
- data,
237
- loading,
238
- error,
239
- response,
240
- mutate,
241
- reset
242
- };
243
- }
244
- __name(useJsonApiMutation, "useJsonApiMutation");
245
-
246
- // src/client/hooks/useRehydration.ts
247
- import { useMemo as useMemo2 } from "react";
248
- function useRehydration(classKey, data) {
249
- return useMemo2(() => {
250
- if (!data) return null;
251
- return RehydrationFactory.rehydrate(classKey, data);
252
- }, [classKey, data]);
253
- }
254
- __name(useRehydration, "useRehydration");
255
- function useRehydrationList(classKey, data) {
256
- return useMemo2(() => {
257
- if (!data || data.length === 0) return [];
258
- return RehydrationFactory.rehydrateList(classKey, data);
259
- }, [classKey, data]);
260
- }
261
- __name(useRehydrationList, "useRehydrationList");
24
+ import "../chunk-SM63SZCP.mjs";
25
+ import "../chunk-74F6BBHH.mjs";
26
+ import "../chunk-BLWVZK6J.mjs";
27
+ import "../chunk-Q2N6SQYW.mjs";
28
+ import "../chunk-PYF2U6WG.mjs";
29
+ import "../chunk-RBIVEH2K.mjs";
30
+ import "../chunk-DD3KISNB.mjs";
31
+ import "../chunk-PAWJFY3S.mjs";
262
32
  export {
263
33
  JsonApiContext,
264
34
  JsonApiProvider,
@@ -269,6 +39,9 @@ export {
269
39
  useJsonApiGet,
270
40
  useJsonApiMutation,
271
41
  useRehydration,
272
- useRehydrationList
42
+ useRehydrationList,
43
+ useRoleTableStructure,
44
+ useUserSearch,
45
+ useUserTableStructure
273
46
  };
274
47
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/client/context/JsonApiContext.ts","../../src/client/context/JsonApiProvider.tsx","../../src/client/hooks/useJsonApiGet.ts","../../src/client/hooks/useJsonApiMutation.ts","../../src/client/hooks/useRehydration.ts"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\n\nexport type CacheProfile = \"seconds\" | \"minutes\" | \"hours\" | \"days\" | \"weeks\" | \"max\" | \"default\";\n\nexport interface JsonApiConfig {\n /**\n * The base URL for API requests (e.g., https://api.example.com)\n */\n apiUrl: string;\n\n /**\n * Custom token getter function. If not provided, will use default cookie-based token retrieval.\n */\n tokenGetter?: () => Promise<string | undefined>;\n\n /**\n * Custom language getter function. If not provided, will use browser locale or next-intl.\n */\n languageGetter?: () => Promise<string>;\n\n /**\n * Default headers to include in all requests\n */\n defaultHeaders?: Record<string, string>;\n\n /**\n * Global error handler for failed requests (client-side only)\n */\n onError?: (status: number, message: string) => void;\n\n /**\n * Cache configuration\n */\n cacheConfig?: {\n defaultProfile: CacheProfile;\n };\n\n /**\n * Function to bootstrap the data class registry.\n * Will be called automatically when needed.\n */\n bootstrapper?: () => void;\n}\n\nconst JsonApiContext = createContext<JsonApiConfig | null>(null);\n\nexport function useJsonApiConfig(): JsonApiConfig {\n const config = useContext(JsonApiContext);\n if (!config) {\n throw new Error(\"useJsonApiConfig must be used within a JsonApiProvider\");\n }\n return config;\n}\n\nexport function useJsonApiConfigOptional(): JsonApiConfig | null {\n return useContext(JsonApiContext);\n}\n\nexport { JsonApiContext };\n","\"use client\";\n\nimport React, { useEffect, useMemo } from \"react\";\nimport { JsonApiConfig, JsonApiContext } from \"./JsonApiContext\";\n\nexport interface JsonApiProviderProps {\n config: JsonApiConfig;\n children: React.ReactNode;\n}\n\nexport function JsonApiProvider({ config, children }: JsonApiProviderProps) {\n // Run bootstrapper on mount if provided\n useEffect(() => {\n if (config.bootstrapper) {\n config.bootstrapper();\n }\n }, [config.bootstrapper]);\n\n // Memoize config to prevent unnecessary re-renders\n const memoizedConfig = useMemo(() => config, [config]);\n\n return (\n <JsonApiContext.Provider value={memoizedConfig}>\n {children}\n </JsonApiContext.Provider>\n );\n}\n","\"use client\";\n\nimport { useState, useEffect, useCallback, useRef } from \"react\";\nimport { ApiDataInterface } from \"../../core/interfaces/ApiDataInterface\";\nimport { ApiRequestDataTypeInterface } from \"../../core/interfaces/ApiRequestDataTypeInterface\";\nimport { ApiResponseInterface } from \"../../core/interfaces/ApiResponseInterface\";\n\nexport interface UseJsonApiGetOptions {\n /**\n * Whether to enable the query. If false, the query won't run.\n */\n enabled?: boolean;\n /**\n * Dependencies that trigger a refetch when changed.\n */\n deps?: any[];\n}\n\nexport interface UseJsonApiGetResult<T> {\n /**\n * The fetched data, or null if not yet fetched.\n */\n data: T | null;\n /**\n * Whether the query is currently loading.\n */\n loading: boolean;\n /**\n * Error message if the query failed.\n */\n error: string | null;\n /**\n * The full API response (includes raw data, pagination, etc.)\n */\n response: ApiResponseInterface | null;\n /**\n * Function to manually refetch the data.\n */\n refetch: () => Promise<void>;\n /**\n * Whether there is a next page available.\n */\n hasNextPage: boolean;\n /**\n * Whether there is a previous page available.\n */\n hasPreviousPage: boolean;\n /**\n * Function to fetch the next page.\n */\n fetchNextPage: () => Promise<void>;\n /**\n * Function to fetch the previous page.\n */\n fetchPreviousPage: () => Promise<void>;\n}\n\n/**\n * Hook for fetching data from a JSON:API endpoint.\n *\n * @example\n * ```tsx\n * const { data, loading, error, refetch } = useJsonApiGet<Article>({\n * classKey: Modules.Article,\n * endpoint: `/articles/${id}`,\n * });\n *\n * if (loading) return <Loading />;\n * if (error) return <Error message={error} />;\n * return <ArticleView article={data} />;\n * ```\n */\nexport function useJsonApiGet<T extends ApiDataInterface>(params: {\n classKey: ApiRequestDataTypeInterface;\n endpoint: string;\n companyId?: string;\n options?: UseJsonApiGetOptions;\n}): UseJsonApiGetResult<T> {\n const [data, setData] = useState<T | null>(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [response, setResponse] = useState<ApiResponseInterface | null>(null);\n const isMounted = useRef(true);\n\n const fetchData = useCallback(async () => {\n if (params.options?.enabled === false) return;\n\n setLoading(true);\n setError(null);\n\n try {\n const { JsonApiGet } = await import(\"../../unified/JsonApiRequest\");\n const language = navigator.language.split(\"-\")[0] || \"en\";\n\n const apiResponse = await JsonApiGet({\n classKey: params.classKey,\n endpoint: params.endpoint,\n companyId: params.companyId,\n language,\n });\n\n if (!isMounted.current) return;\n\n setResponse(apiResponse);\n\n if (apiResponse.ok) {\n setData(apiResponse.data as T);\n } else {\n setError(apiResponse.error);\n }\n } catch (err) {\n if (!isMounted.current) return;\n setError(err instanceof Error ? err.message : \"Unknown error\");\n } finally {\n if (isMounted.current) {\n setLoading(false);\n }\n }\n }, [params.classKey, params.endpoint, params.companyId, params.options?.enabled]);\n\n const fetchNextPage = useCallback(async () => {\n if (!response?.nextPage) return;\n\n setLoading(true);\n try {\n const nextResponse = await response.nextPage();\n if (!isMounted.current) return;\n\n setResponse(nextResponse);\n if (nextResponse.ok) {\n setData(nextResponse.data as T);\n } else {\n setError(nextResponse.error);\n }\n } catch (err) {\n if (!isMounted.current) return;\n setError(err instanceof Error ? err.message : \"Unknown error\");\n } finally {\n if (isMounted.current) {\n setLoading(false);\n }\n }\n }, [response]);\n\n const fetchPreviousPage = useCallback(async () => {\n if (!response?.prevPage) return;\n\n setLoading(true);\n try {\n const prevResponse = await response.prevPage();\n if (!isMounted.current) return;\n\n setResponse(prevResponse);\n if (prevResponse.ok) {\n setData(prevResponse.data as T);\n } else {\n setError(prevResponse.error);\n }\n } catch (err) {\n if (!isMounted.current) return;\n setError(err instanceof Error ? err.message : \"Unknown error\");\n } finally {\n if (isMounted.current) {\n setLoading(false);\n }\n }\n }, [response]);\n\n useEffect(() => {\n isMounted.current = true;\n fetchData();\n return () => {\n isMounted.current = false;\n };\n }, [fetchData, ...(params.options?.deps || [])]);\n\n return {\n data,\n loading,\n error,\n response,\n refetch: fetchData,\n hasNextPage: !!response?.next,\n hasPreviousPage: !!response?.prev,\n fetchNextPage,\n fetchPreviousPage,\n };\n}\n","\"use client\";\n\nimport { useState, useCallback } from \"react\";\nimport { ApiDataInterface } from \"../../core/interfaces/ApiDataInterface\";\nimport { ApiRequestDataTypeInterface } from \"../../core/interfaces/ApiRequestDataTypeInterface\";\nimport { ApiResponseInterface } from \"../../core/interfaces/ApiResponseInterface\";\n\nexport type MutationMethod = \"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\";\n\nexport interface UseJsonApiMutationResult<T> {\n /**\n * The result data from the mutation, or null if not yet executed.\n */\n data: T | null;\n /**\n * Whether the mutation is currently in progress.\n */\n loading: boolean;\n /**\n * Error message if the mutation failed.\n */\n error: string | null;\n /**\n * The full API response.\n */\n response: ApiResponseInterface | null;\n /**\n * Execute the mutation.\n */\n mutate: (params: MutationParams) => Promise<T | null>;\n /**\n * Reset the mutation state.\n */\n reset: () => void;\n}\n\nexport interface MutationParams {\n /**\n * The endpoint to call.\n */\n endpoint: string;\n /**\n * The request body.\n */\n body?: any;\n /**\n * Files to upload.\n */\n files?: { [key: string]: File | Blob } | File | Blob;\n /**\n * Company ID for multi-tenant requests.\n */\n companyId?: string;\n /**\n * Override the default JSON:API body creation.\n */\n overridesJsonApiCreation?: boolean;\n /**\n * Response type if different from the request type.\n */\n responseType?: ApiRequestDataTypeInterface;\n}\n\n/**\n * Hook for making mutations (POST, PUT, PATCH, DELETE) to a JSON:API endpoint.\n *\n * @example\n * ```tsx\n * const { mutate, loading, error } = useJsonApiMutation<Article>({\n * method: \"POST\",\n * classKey: Modules.Article,\n * });\n *\n * const handleSubmit = async (data: ArticleInput) => {\n * const result = await mutate({\n * endpoint: \"/articles\",\n * body: data,\n * });\n * if (result) {\n * // Success!\n * }\n * };\n * ```\n */\nexport function useJsonApiMutation<T extends ApiDataInterface>(config: {\n method: MutationMethod;\n classKey: ApiRequestDataTypeInterface;\n onSuccess?: (data: T) => void;\n onError?: (error: string) => void;\n}): UseJsonApiMutationResult<T> {\n const [data, setData] = useState<T | null>(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [response, setResponse] = useState<ApiResponseInterface | null>(null);\n\n const reset = useCallback(() => {\n setData(null);\n setLoading(false);\n setError(null);\n setResponse(null);\n }, []);\n\n const mutate = useCallback(\n async (params: MutationParams): Promise<T | null> => {\n setLoading(true);\n setError(null);\n\n try {\n const { JsonApiPost, JsonApiPut, JsonApiPatch, JsonApiDelete } = await import(\"../../unified/JsonApiRequest\");\n const language = navigator.language.split(\"-\")[0] || \"en\";\n\n let apiResponse: ApiResponseInterface;\n\n switch (config.method) {\n case \"POST\":\n apiResponse = await JsonApiPost({\n classKey: config.classKey,\n endpoint: params.endpoint,\n companyId: params.companyId,\n body: params.body,\n overridesJsonApiCreation: params.overridesJsonApiCreation,\n files: params.files,\n language,\n responseType: params.responseType,\n });\n break;\n case \"PUT\":\n apiResponse = await JsonApiPut({\n classKey: config.classKey,\n endpoint: params.endpoint,\n companyId: params.companyId,\n body: params.body,\n files: params.files,\n language,\n responseType: params.responseType,\n });\n break;\n case \"PATCH\":\n apiResponse = await JsonApiPatch({\n classKey: config.classKey,\n endpoint: params.endpoint,\n companyId: params.companyId,\n body: params.body,\n overridesJsonApiCreation: params.overridesJsonApiCreation,\n files: params.files,\n language,\n responseType: params.responseType,\n });\n break;\n case \"DELETE\":\n apiResponse = await JsonApiDelete({\n classKey: config.classKey,\n endpoint: params.endpoint,\n companyId: params.companyId,\n language,\n responseType: params.responseType,\n });\n break;\n }\n\n setResponse(apiResponse);\n\n if (apiResponse.ok) {\n const resultData = apiResponse.data as T;\n setData(resultData);\n config.onSuccess?.(resultData);\n return resultData;\n } else {\n setError(apiResponse.error);\n config.onError?.(apiResponse.error);\n return null;\n }\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : \"Unknown error\";\n setError(errorMessage);\n config.onError?.(errorMessage);\n return null;\n } finally {\n setLoading(false);\n }\n },\n [config],\n );\n\n return {\n data,\n loading,\n error,\n response,\n mutate,\n reset,\n };\n}\n","\"use client\";\n\nimport { useMemo } from \"react\";\nimport { ApiDataInterface } from \"../../core/interfaces/ApiDataInterface\";\nimport { ApiRequestDataTypeInterface } from \"../../core/interfaces/ApiRequestDataTypeInterface\";\nimport { JsonApiHydratedDataInterface } from \"../../core/interfaces/JsonApiHydratedDataInterface\";\nimport { RehydrationFactory } from \"../../core/factories/RehydrationFactory\";\n\n/**\n * Hook to rehydrate server-passed data into typed objects.\n * Use this when passing data from server components to client components.\n *\n * @example\n * ```tsx\n * // In server component\n * const article = await ArticleService.findOne(id);\n * return <ArticleDetails data={article.dehydrate()} />;\n *\n * // In client component\n * function ArticleDetails({ data }: { data: JsonApiHydratedDataInterface }) {\n * const article = useRehydration<Article>(Modules.Article, data);\n * return <div>{article.title}</div>;\n * }\n * ```\n */\nexport function useRehydration<T extends ApiDataInterface>(\n classKey: ApiRequestDataTypeInterface,\n data: JsonApiHydratedDataInterface | null | undefined,\n): T | null {\n return useMemo(() => {\n if (!data) return null;\n return RehydrationFactory.rehydrate<T>(classKey, data);\n }, [classKey, data]);\n}\n\n/**\n * Hook to rehydrate a list of server-passed data into typed objects.\n */\nexport function useRehydrationList<T extends ApiDataInterface>(\n classKey: ApiRequestDataTypeInterface,\n data: JsonApiHydratedDataInterface[] | null | undefined,\n): T[] {\n return useMemo(() => {\n if (!data || data.length === 0) return [];\n return RehydrationFactory.rehydrateList<T>(classKey, data);\n }, [classKey, data]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAEA,SAAS,eAAe,kBAAkB;AA4C1C,IAAM,iBAAiB,cAAoC,IAAI;AAExD,SAAS,mBAAkC;AAChD,QAAM,SAAS,WAAW,cAAc;AACxC,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,wDAAwD;AAAA,EAC1E;AACA,SAAO;AACT;AANgB;AAQT,SAAS,2BAAiD;AAC/D,SAAO,WAAW,cAAc;AAClC;AAFgB;;;ACtDhB,SAAgB,WAAW,eAAe;AAoBtC;AAZG,SAAS,gBAAgB,EAAE,QAAQ,SAAS,GAAyB;AAE1E,YAAU,MAAM;AACd,QAAI,OAAO,cAAc;AACvB,aAAO,aAAa;AAAA,IACtB;AAAA,EACF,GAAG,CAAC,OAAO,YAAY,CAAC;AAGxB,QAAM,iBAAiB,QAAQ,MAAM,QAAQ,CAAC,MAAM,CAAC;AAErD,SACE,oBAAC,eAAe,UAAf,EAAwB,OAAO,gBAC7B,UACH;AAEJ;AAhBgB;;;ACRhB,SAAS,UAAU,aAAAA,YAAW,aAAa,cAAc;AAsElD,SAAS,cAA0C,QAK/B;AACzB,QAAM,CAAC,MAAM,OAAO,IAAI,SAAmB,IAAI;AAC/C,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAC5C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,IAAI;AACtD,QAAM,CAAC,UAAU,WAAW,IAAI,SAAsC,IAAI;AAC1E,QAAM,YAAY,OAAO,IAAI;AAE7B,QAAM,YAAY,YAAY,YAAY;AACxC,QAAI,OAAO,SAAS,YAAY,MAAO;AAEvC,eAAW,IAAI;AACf,aAAS,IAAI;AAEb,QAAI;AACF,YAAM,EAAE,WAAW,IAAI,MAAM,OAAO,gCAA8B;AAClE,YAAM,WAAW,UAAU,SAAS,MAAM,GAAG,EAAE,CAAC,KAAK;AAErD,YAAM,cAAc,MAAM,WAAW;AAAA,QACnC,UAAU,OAAO;AAAA,QACjB,UAAU,OAAO;AAAA,QACjB,WAAW,OAAO;AAAA,QAClB;AAAA,MACF,CAAC;AAED,UAAI,CAAC,UAAU,QAAS;AAExB,kBAAY,WAAW;AAEvB,UAAI,YAAY,IAAI;AAClB,gBAAQ,YAAY,IAAS;AAAA,MAC/B,OAAO;AACL,iBAAS,YAAY,KAAK;AAAA,MAC5B;AAAA,IACF,SAAS,KAAK;AACZ,UAAI,CAAC,UAAU,QAAS;AACxB,eAAS,eAAe,QAAQ,IAAI,UAAU,eAAe;AAAA,IAC/D,UAAE;AACA,UAAI,UAAU,SAAS;AACrB,mBAAW,KAAK;AAAA,MAClB;AAAA,IACF;AAAA,EACF,GAAG,CAAC,OAAO,UAAU,OAAO,UAAU,OAAO,WAAW,OAAO,SAAS,OAAO,CAAC;AAEhF,QAAM,gBAAgB,YAAY,YAAY;AAC5C,QAAI,CAAC,UAAU,SAAU;AAEzB,eAAW,IAAI;AACf,QAAI;AACF,YAAM,eAAe,MAAM,SAAS,SAAS;AAC7C,UAAI,CAAC,UAAU,QAAS;AAExB,kBAAY,YAAY;AACxB,UAAI,aAAa,IAAI;AACnB,gBAAQ,aAAa,IAAS;AAAA,MAChC,OAAO;AACL,iBAAS,aAAa,KAAK;AAAA,MAC7B;AAAA,IACF,SAAS,KAAK;AACZ,UAAI,CAAC,UAAU,QAAS;AACxB,eAAS,eAAe,QAAQ,IAAI,UAAU,eAAe;AAAA,IAC/D,UAAE;AACA,UAAI,UAAU,SAAS;AACrB,mBAAW,KAAK;AAAA,MAClB;AAAA,IACF;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AAEb,QAAM,oBAAoB,YAAY,YAAY;AAChD,QAAI,CAAC,UAAU,SAAU;AAEzB,eAAW,IAAI;AACf,QAAI;AACF,YAAM,eAAe,MAAM,SAAS,SAAS;AAC7C,UAAI,CAAC,UAAU,QAAS;AAExB,kBAAY,YAAY;AACxB,UAAI,aAAa,IAAI;AACnB,gBAAQ,aAAa,IAAS;AAAA,MAChC,OAAO;AACL,iBAAS,aAAa,KAAK;AAAA,MAC7B;AAAA,IACF,SAAS,KAAK;AACZ,UAAI,CAAC,UAAU,QAAS;AACxB,eAAS,eAAe,QAAQ,IAAI,UAAU,eAAe;AAAA,IAC/D,UAAE;AACA,UAAI,UAAU,SAAS;AACrB,mBAAW,KAAK;AAAA,MAClB;AAAA,IACF;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AAEb,EAAAC,WAAU,MAAM;AACd,cAAU,UAAU;AACpB,cAAU;AACV,WAAO,MAAM;AACX,gBAAU,UAAU;AAAA,IACtB;AAAA,EACF,GAAG,CAAC,WAAW,GAAI,OAAO,SAAS,QAAQ,CAAC,CAAE,CAAC;AAE/C,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,aAAa,CAAC,CAAC,UAAU;AAAA,IACzB,iBAAiB,CAAC,CAAC,UAAU;AAAA,IAC7B;AAAA,IACA;AAAA,EACF;AACF;AAnHgB;;;ACtEhB,SAAS,YAAAC,WAAU,eAAAC,oBAAmB;AAkF/B,SAAS,mBAA+C,QAK/B;AAC9B,QAAM,CAAC,MAAM,OAAO,IAAIC,UAAmB,IAAI;AAC/C,QAAM,CAAC,SAAS,UAAU,IAAIA,UAAS,KAAK;AAC5C,QAAM,CAAC,OAAO,QAAQ,IAAIA,UAAwB,IAAI;AACtD,QAAM,CAAC,UAAU,WAAW,IAAIA,UAAsC,IAAI;AAE1E,QAAM,QAAQC,aAAY,MAAM;AAC9B,YAAQ,IAAI;AACZ,eAAW,KAAK;AAChB,aAAS,IAAI;AACb,gBAAY,IAAI;AAAA,EAClB,GAAG,CAAC,CAAC;AAEL,QAAM,SAASA;AAAA,IACb,OAAO,WAA8C;AACnD,iBAAW,IAAI;AACf,eAAS,IAAI;AAEb,UAAI;AACF,cAAM,EAAE,aAAa,YAAY,cAAc,cAAc,IAAI,MAAM,OAAO,gCAA8B;AAC5G,cAAM,WAAW,UAAU,SAAS,MAAM,GAAG,EAAE,CAAC,KAAK;AAErD,YAAI;AAEJ,gBAAQ,OAAO,QAAQ;AAAA,UACrB,KAAK;AACH,0BAAc,MAAM,YAAY;AAAA,cAC9B,UAAU,OAAO;AAAA,cACjB,UAAU,OAAO;AAAA,cACjB,WAAW,OAAO;AAAA,cAClB,MAAM,OAAO;AAAA,cACb,0BAA0B,OAAO;AAAA,cACjC,OAAO,OAAO;AAAA,cACd;AAAA,cACA,cAAc,OAAO;AAAA,YACvB,CAAC;AACD;AAAA,UACF,KAAK;AACH,0BAAc,MAAM,WAAW;AAAA,cAC7B,UAAU,OAAO;AAAA,cACjB,UAAU,OAAO;AAAA,cACjB,WAAW,OAAO;AAAA,cAClB,MAAM,OAAO;AAAA,cACb,OAAO,OAAO;AAAA,cACd;AAAA,cACA,cAAc,OAAO;AAAA,YACvB,CAAC;AACD;AAAA,UACF,KAAK;AACH,0BAAc,MAAM,aAAa;AAAA,cAC/B,UAAU,OAAO;AAAA,cACjB,UAAU,OAAO;AAAA,cACjB,WAAW,OAAO;AAAA,cAClB,MAAM,OAAO;AAAA,cACb,0BAA0B,OAAO;AAAA,cACjC,OAAO,OAAO;AAAA,cACd;AAAA,cACA,cAAc,OAAO;AAAA,YACvB,CAAC;AACD;AAAA,UACF,KAAK;AACH,0BAAc,MAAM,cAAc;AAAA,cAChC,UAAU,OAAO;AAAA,cACjB,UAAU,OAAO;AAAA,cACjB,WAAW,OAAO;AAAA,cAClB;AAAA,cACA,cAAc,OAAO;AAAA,YACvB,CAAC;AACD;AAAA,QACJ;AAEA,oBAAY,WAAW;AAEvB,YAAI,YAAY,IAAI;AAClB,gBAAM,aAAa,YAAY;AAC/B,kBAAQ,UAAU;AAClB,iBAAO,YAAY,UAAU;AAC7B,iBAAO;AAAA,QACT,OAAO;AACL,mBAAS,YAAY,KAAK;AAC1B,iBAAO,UAAU,YAAY,KAAK;AAClC,iBAAO;AAAA,QACT;AAAA,MACF,SAAS,KAAK;AACZ,cAAM,eAAe,eAAe,QAAQ,IAAI,UAAU;AAC1D,iBAAS,YAAY;AACrB,eAAO,UAAU,YAAY;AAC7B,eAAO;AAAA,MACT,UAAE;AACA,mBAAW,KAAK;AAAA,MAClB;AAAA,IACF;AAAA,IACA,CAAC,MAAM;AAAA,EACT;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AA5GgB;;;AClFhB,SAAS,WAAAC,gBAAe;AAuBjB,SAAS,eACd,UACA,MACU;AACV,SAAOC,SAAQ,MAAM;AACnB,QAAI,CAAC,KAAM,QAAO;AAClB,WAAO,mBAAmB,UAAa,UAAU,IAAI;AAAA,EACvD,GAAG,CAAC,UAAU,IAAI,CAAC;AACrB;AARgB;AAaT,SAAS,mBACd,UACA,MACK;AACL,SAAOA,SAAQ,MAAM;AACnB,QAAI,CAAC,QAAQ,KAAK,WAAW,EAAG,QAAO,CAAC;AACxC,WAAO,mBAAmB,cAAiB,UAAU,IAAI;AAAA,EAC3D,GAAG,CAAC,UAAU,IAAI,CAAC;AACrB;AARgB;","names":["useEffect","useEffect","useState","useCallback","useState","useCallback","useMemo","useMemo"]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,18 +1,18 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React$1 from 'react';
3
- import React__default, { ReactElement, ReactNode, Dispatch, SetStateAction } from 'react';
4
- import { f as ModuleWithPermissions, A as Action } from '../types-lQVA8d_P.mjs';
5
- import { C as ContentInterface } from '../content.interface-Dg2lt_An.mjs';
6
- export { b as ContributorsList, U as UserAvatar } from '../content.interface-Dg2lt_An.mjs';
3
+ import React__default, { ReactElement, ReactNode, Dispatch, SetStateAction, Component, JSX } from 'react';
4
+ import { M as ModuleWithPermissions, a as Action } from '../types-Bl61ob-7.mjs';
5
+ import { C as ContentInterface, A as AuthComponent } from '../AuthComponent-CPLvEerw.mjs';
7
6
  import { PartialBlock } from '@blocknote/core';
8
7
  import { D as DataListRetriever } from '../useDataListRetriever-futhx3OP.mjs';
9
8
  import { DateRange } from 'react-day-picker';
10
9
  import { DropzoneState, DropzoneOptions } from 'react-dropzone';
10
+ import { F as FeatureInterface, C as CompanyInterface, U as UserInterface, R as RoleInterface } from '../user.interface-CAsTIbuQ.mjs';
11
11
  import { B as BreadcrumbItemData } from '../breadcrumb.item.data.interface-CgB4_1EE.mjs';
12
12
  import { ColumnDef } from '@tanstack/react-table';
13
- import '../ApiRequestDataTypeInterface-CUKFDBx2.mjs';
14
- import '../ApiDataInterface-DPP8s46n.mjs';
15
- import '../user.interface-CAsTIbuQ.mjs';
13
+ import { J as JsonApiHydratedDataInterface } from '../ApiDataInterface-DPP8s46n.mjs';
14
+ import { UseFormReturn } from 'react-hook-form';
15
+ import { N as NotificationInterface } from '../notification.interface-BBgMUdLR.mjs';
16
16
 
17
17
  type PageContainerProps = {
18
18
  children: React.ReactNode;
@@ -332,6 +332,15 @@ interface PasswordInputProps extends React$1.InputHTMLAttributes<HTMLInputElemen
332
332
  }
333
333
  declare const PasswordInput: React$1.ForwardRefExoticComponent<PasswordInputProps & React$1.RefAttributes<HTMLInputElement>>;
334
334
 
335
+ type FormFeaturesProps = {
336
+ form: any;
337
+ name?: string;
338
+ features: FeatureInterface[];
339
+ featureField?: string;
340
+ moduleField?: string;
341
+ };
342
+ declare function FormFeatures({ form, name, features, featureField, moduleField, }: FormFeaturesProps): react_jsx_runtime.JSX.Element;
343
+
335
344
  type BreadcrumbProps = {
336
345
  items: BreadcrumbItemData[];
337
346
  };
@@ -438,4 +447,280 @@ type ContentTableSearchProps = {
438
447
  };
439
448
  declare function ContentTableSearch({ data }: ContentTableSearchProps): react_jsx_runtime.JSX.Element;
440
449
 
441
- export { AllowedUsersDetails, AttributeElement, BlockNoteEditorContainer, Breadcrumb, CommonAssociationCommandDialog, CommonAssociationTrigger, CommonDeleter, CommonEditorButtons, CommonEditorHeader, CommonEditorTrigger, ContentListTable, ContentTableSearch, ContentTitle, DatePickerPopover, DateRangeSelector, ErrorDetails, FileInput, FileUploader, FileUploaderContent, FileUploaderItem, FormCheckbox, FormContainerGeneric, FormDate, FormDateTime, FormInput, FormPassword, FormPlaceAutocomplete, FormSelect, FormSlider, FormSwitch, FormTextarea, type GenerateTableStructureParams, Header, ModeToggleSwitch, PageContainer, PageContainerContentDetails, type PageContainerItems, PageContentContainer, PageSection, PasswordInput, type PasswordInputProps, ReactMarkdownContainer, RecentPagesNavigator, type Tab, TabsContainer, cellComponent, cellDate, cellId, cellLink, cellUrl, errorToast, triggerAssociationToast, useFileUpload };
450
+ type AuthContainerProps = {
451
+ componentType: AuthComponent;
452
+ params?: {
453
+ code?: string;
454
+ };
455
+ };
456
+ declare function AuthContainer({ componentType, params }: AuthContainerProps): react_jsx_runtime.JSX.Element;
457
+
458
+ declare function LandingComponent(): react_jsx_runtime.JSX.Element;
459
+
460
+ declare function AcceptInvitation(): react_jsx_runtime.JSX.Element;
461
+
462
+ declare function ActivateAccount(): react_jsx_runtime.JSX.Element;
463
+
464
+ declare function Cookies({ dehydratedAuth, page }: {
465
+ dehydratedAuth: JsonApiHydratedDataInterface;
466
+ page?: string;
467
+ }): null;
468
+
469
+ declare function ForgotPassword(): react_jsx_runtime.JSX.Element;
470
+
471
+ declare function Login(): react_jsx_runtime.JSX.Element;
472
+
473
+ declare function Logout(): react_jsx_runtime.JSX.Element;
474
+
475
+ declare function RefreshUser(): null;
476
+
477
+ declare function ResetPassword(): react_jsx_runtime.JSX.Element;
478
+
479
+ declare function AdminCompanyContainer(): react_jsx_runtime.JSX.Element;
480
+
481
+ declare function CompanyContainer(): react_jsx_runtime.JSX.Element | null;
482
+
483
+ declare function CompanyDetails(): react_jsx_runtime.JSX.Element | null;
484
+
485
+ type CompanyConfigurationEditorProps = {
486
+ company: CompanyInterface;
487
+ };
488
+ declare function CompanyConfigurationEditor(props: CompanyConfigurationEditorProps): react_jsx_runtime.JSX.Element;
489
+
490
+ type SecurityConfigurationFormProps = {
491
+ form: UseFormReturn<any>;
492
+ };
493
+ declare function CompanyConfigurationSecurityForm({ form }: SecurityConfigurationFormProps): react_jsx_runtime.JSX.Element;
494
+
495
+ type CompanyDeleterProps = {
496
+ company: CompanyInterface;
497
+ };
498
+ declare function CompanyDeleter({ company }: CompanyDeleterProps): react_jsx_runtime.JSX.Element | null;
499
+
500
+ type CompanyEditorProps = {
501
+ company?: CompanyInterface;
502
+ propagateChanges?: (company: CompanyInterface) => void;
503
+ onRevalidate?: (path: string) => Promise<void>;
504
+ };
505
+ declare function CompanyEditor(props: CompanyEditorProps): react_jsx_runtime.JSX.Element;
506
+
507
+ declare function CompaniesList(): react_jsx_runtime.JSX.Element;
508
+
509
+ interface Props {
510
+ children: ReactNode;
511
+ fallback?: ReactNode;
512
+ }
513
+ interface State {
514
+ hasError: boolean;
515
+ error?: Error;
516
+ }
517
+ declare class NotificationErrorBoundary extends Component<Props, State> {
518
+ constructor(props: Props);
519
+ static getDerivedStateFromError(error: Error): State;
520
+ componentDidCatch(error: Error, errorInfo: React__default.ErrorInfo): void;
521
+ render(): string | number | bigint | boolean | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
522
+ }
523
+
524
+ declare function NotificationsListContainer(): react_jsx_runtime.JSX.Element;
525
+
526
+ type NotificationsListProps = {
527
+ archived: boolean;
528
+ };
529
+ declare function NotificationsList({ archived }: NotificationsListProps): react_jsx_runtime.JSX.Element;
530
+
531
+ interface NotificationModalProps {
532
+ isOpen: boolean;
533
+ setIsOpen: (open: boolean) => void;
534
+ }
535
+ declare function NotificationModal(props: NotificationModalProps): react_jsx_runtime.JSX.Element;
536
+
537
+ type TaskCommentedOnProps = {
538
+ notification: NotificationInterface;
539
+ closePopover: () => void;
540
+ };
541
+ declare const generateNotificationData: (params: {
542
+ notification: NotificationInterface;
543
+ generateUrl: any;
544
+ }) => {
545
+ title: string;
546
+ actor?: UserInterface;
547
+ url?: string;
548
+ taskId?: string;
549
+ };
550
+ declare function NotificationToast(notification: NotificationInterface, t: any, generateUrl: any, reouter: any): {
551
+ title: string;
552
+ description: string | ReactElement<any>;
553
+ action?: {
554
+ label: string;
555
+ onClick: () => void;
556
+ };
557
+ };
558
+ declare function NotificationMenuItem({ notification, closePopover }: TaskCommentedOnProps): react_jsx_runtime.JSX.Element;
559
+
560
+ declare function PushNotificationProvider({ children }: {
561
+ children: ReactNode;
562
+ }): JSX.Element;
563
+
564
+ declare function RoleContainer(): react_jsx_runtime.JSX.Element | null;
565
+
566
+ declare function RoleDetails(): react_jsx_runtime.JSX.Element | null;
567
+
568
+ type FormRolesProps = {
569
+ form: any;
570
+ id: string;
571
+ name: string;
572
+ roles: RoleInterface[];
573
+ };
574
+ declare function FormRoles({ form, id, name, roles }: FormRolesProps): react_jsx_runtime.JSX.Element;
575
+
576
+ type RemoveUserFromRoleProps = {
577
+ user: UserInterface;
578
+ role: RoleInterface;
579
+ refresh: () => Promise<void>;
580
+ };
581
+ declare function RemoveUserFromRole({ role, user, refresh }: RemoveUserFromRoleProps): react_jsx_runtime.JSX.Element;
582
+
583
+ type UserRoleAddProps = {
584
+ user: UserInterface;
585
+ refresh: () => Promise<void>;
586
+ };
587
+ declare function UserRoleAdd({ user, refresh }: UserRoleAddProps): react_jsx_runtime.JSX.Element;
588
+
589
+ declare function RolesList(): react_jsx_runtime.JSX.Element;
590
+
591
+ type UserRolesListProps = {
592
+ user: UserInterface;
593
+ };
594
+ declare function UserRolesList({ user }: UserRolesListProps): react_jsx_runtime.JSX.Element;
595
+
596
+ declare function UserContainer(): react_jsx_runtime.JSX.Element | null;
597
+
598
+ declare function UserIndexContainer(): react_jsx_runtime.JSX.Element | null;
599
+
600
+ declare function UsersListContainer(): react_jsx_runtime.JSX.Element;
601
+
602
+ type UserDetailsProps = {
603
+ user: UserInterface;
604
+ };
605
+ declare function UserDetails({ user }: UserDetailsProps): react_jsx_runtime.JSX.Element;
606
+
607
+ declare function UserIndexDetails(): react_jsx_runtime.JSX.Element | null;
608
+
609
+ type AddUserToRoleProps = {
610
+ role: RoleInterface;
611
+ refresh: () => Promise<void>;
612
+ };
613
+ declare function AddUserToRole(props: AddUserToRoleProps): react_jsx_runtime.JSX.Element;
614
+
615
+ type UserAvatarEditorProps = {
616
+ user?: UserInterface;
617
+ file?: File | null;
618
+ setFile: (file: File | null) => void;
619
+ resetImage: boolean;
620
+ setResetImage: (reset: boolean) => void;
621
+ };
622
+ declare function UserAvatarEditor({ user, file, setFile, resetImage, setResetImage }: UserAvatarEditorProps): react_jsx_runtime.JSX.Element;
623
+
624
+ type UserDeleterProps = {
625
+ user: UserInterface;
626
+ companyId?: string;
627
+ onDeleted?: () => void;
628
+ };
629
+ declare function UserDeleter(props: UserDeleterProps): react_jsx_runtime.JSX.Element | null;
630
+
631
+ type UserEditorProps = {
632
+ user?: UserInterface;
633
+ propagateChanges?: (user: UserInterface) => void;
634
+ adminCreated?: boolean;
635
+ trigger?: React.ReactNode;
636
+ onRevalidate?: (path: string) => Promise<void>;
637
+ };
638
+ declare function UserEditor(props: UserEditorProps): react_jsx_runtime.JSX.Element | null;
639
+
640
+ type UserMultiSelectProps = {
641
+ id: string;
642
+ form: any;
643
+ currentUser?: UserInterface;
644
+ label?: string;
645
+ placeholder?: string;
646
+ onChange?: (users?: UserInterface[]) => void;
647
+ maxCount?: number;
648
+ isRequired?: boolean;
649
+ };
650
+ declare function UserMultiSelect({ id, form, currentUser, label, placeholder, onChange, maxCount, isRequired, }: UserMultiSelectProps): react_jsx_runtime.JSX.Element;
651
+
652
+ type UserReactivatorProps = {
653
+ user: UserInterface;
654
+ propagateChanges: (user: UserInterface) => void;
655
+ };
656
+ declare function UserReactivator(props: UserReactivatorProps): react_jsx_runtime.JSX.Element | null;
657
+
658
+ type UserResentInvitationEmailProps = {
659
+ user: UserInterface;
660
+ };
661
+ declare function UserResentInvitationEmail(props: UserResentInvitationEmailProps): react_jsx_runtime.JSX.Element | null;
662
+
663
+ type UserSelectorProps = {
664
+ id: string;
665
+ form: any;
666
+ label?: string;
667
+ placeholder?: string;
668
+ onChange?: (user?: UserInterface) => void;
669
+ isRequired?: boolean;
670
+ };
671
+ declare function UserSelector({ id, form, label, placeholder, onChange, isRequired }: UserSelectorProps): react_jsx_runtime.JSX.Element;
672
+
673
+ declare function AdminUsersList(): react_jsx_runtime.JSX.Element | null;
674
+
675
+ type CompanyUsersListProps = {
676
+ isDeleted?: boolean;
677
+ };
678
+ declare function CompanyUsersList({ isDeleted }: CompanyUsersListProps): react_jsx_runtime.JSX.Element;
679
+
680
+ type ContributorsListProps = {
681
+ content: ContentInterface;
682
+ };
683
+ declare function ContributorsList({ content }: ContributorsListProps): react_jsx_runtime.JSX.Element;
684
+
685
+ type RelevantUsersListProps = {
686
+ id: string;
687
+ };
688
+ declare function RelevantUsersList({ id }: RelevantUsersListProps): react_jsx_runtime.JSX.Element;
689
+
690
+ type RoleUsersListProps = {
691
+ role: RoleInterface;
692
+ };
693
+ declare function RoleUsersList({ role }: RoleUsersListProps): react_jsx_runtime.JSX.Element;
694
+
695
+ type UserListInAddProps = {
696
+ data: DataListRetriever<UserInterface>;
697
+ existingUsers: UserInterface[] | null;
698
+ setSelectedUser: (user: UserInterface) => void;
699
+ setLevelOpen?: (open: boolean) => void;
700
+ };
701
+ declare function UserListInAdd({ data, existingUsers, setSelectedUser, setLevelOpen }: UserListInAddProps): react_jsx_runtime.JSX.Element;
702
+
703
+ type UsersListProps = {
704
+ data: DataListRetriever<UserInterface>;
705
+ optionComponents?: ReactElement<any>[];
706
+ removeFunction?: (user: UserInterface) => Promise<void>;
707
+ hideOptions?: boolean;
708
+ showRelevance?: boolean;
709
+ restrictToJoinRequests?: boolean;
710
+ };
711
+ declare function UsersList({ data, optionComponents, removeFunction, hideOptions, showRelevance }: UsersListProps): react_jsx_runtime.JSX.Element;
712
+
713
+ type UsersListByContentIdsProps = {
714
+ contentIds: string[];
715
+ };
716
+ declare function UsersListByContentIds({ contentIds }: UsersListByContentIdsProps): react_jsx_runtime.JSX.Element;
717
+
718
+ type UserAvatarProps = {
719
+ user: UserInterface;
720
+ className?: string;
721
+ showFull?: boolean;
722
+ showLink?: boolean;
723
+ };
724
+ declare function UserAvatar({ user, className, showFull, showLink }: UserAvatarProps): react_jsx_runtime.JSX.Element;
725
+
726
+ export { AcceptInvitation, ActivateAccount, AddUserToRole, AdminCompanyContainer, AdminUsersList, AllowedUsersDetails, AttributeElement, AuthContainer, BlockNoteEditorContainer, Breadcrumb, CommonAssociationCommandDialog, CommonAssociationTrigger, CommonDeleter, CommonEditorButtons, CommonEditorHeader, CommonEditorTrigger, CompaniesList, CompanyConfigurationEditor, CompanyConfigurationSecurityForm, CompanyContainer, CompanyDeleter, CompanyDetails, CompanyEditor, CompanyUsersList, ContentListTable, ContentTableSearch, ContentTitle, ContributorsList, Cookies, DatePickerPopover, DateRangeSelector, ErrorDetails, FileInput, FileUploader, FileUploaderContent, FileUploaderItem, ForgotPassword, FormCheckbox, FormContainerGeneric, FormDate, FormDateTime, FormFeatures, FormInput, FormPassword, FormPlaceAutocomplete, FormRoles, FormSelect, FormSlider, FormSwitch, FormTextarea, type GenerateTableStructureParams, Header, LandingComponent, Login, Logout, ModeToggleSwitch, NotificationErrorBoundary, NotificationMenuItem, NotificationModal, NotificationToast, NotificationsList, NotificationsListContainer, PageContainer, PageContainerContentDetails, type PageContainerItems, PageContentContainer, PageSection, PasswordInput, type PasswordInputProps, PushNotificationProvider, ReactMarkdownContainer, RecentPagesNavigator, RefreshUser, RelevantUsersList, RemoveUserFromRole, ResetPassword, RoleContainer, RoleDetails, RoleUsersList, RolesList, type Tab, TabsContainer, UserAvatar, UserAvatarEditor, UserContainer, UserDeleter, UserDetails, UserEditor, UserIndexContainer, UserIndexDetails, UserListInAdd, UserMultiSelect, UserReactivator, UserResentInvitationEmail, UserRoleAdd, UserRolesList, UserSelector, UsersList, UsersListByContentIds, UsersListContainer, cellComponent, cellDate, cellId, cellLink, cellUrl, errorToast, generateNotificationData, triggerAssociationToast, useFileUpload };