@thunderid/react 1.6.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. package/dist/cjs/components/admin/AgentCreate/AgentCreate.cjs +15 -4
  2. package/dist/cjs/components/admin/AgentCreate/AgentCreate.cjs.map +1 -1
  3. package/dist/cjs/components/admin/AgentDetails/AgentDetails.cjs +36 -8
  4. package/dist/cjs/components/admin/AgentDetails/AgentDetails.cjs.map +1 -1
  5. package/dist/cjs/components/admin/AgentList/AgentList.cjs +13 -4
  6. package/dist/cjs/components/admin/AgentList/AgentList.cjs.map +1 -1
  7. package/dist/cjs/components/admin/ApplicationCreate/ApplicationCreate.cjs +70 -0
  8. package/dist/cjs/components/admin/ApplicationCreate/ApplicationCreate.cjs.map +1 -0
  9. package/dist/cjs/components/admin/ApplicationCreate/BaseApplicationCreate.cjs +135 -0
  10. package/dist/cjs/components/admin/ApplicationCreate/BaseApplicationCreate.cjs.map +1 -0
  11. package/dist/cjs/components/admin/ApplicationDetails/ApplicationDetails.cjs +82 -0
  12. package/dist/cjs/components/admin/ApplicationDetails/ApplicationDetails.cjs.map +1 -0
  13. package/dist/cjs/components/admin/ApplicationDetails/BaseApplicationDetails.cjs +238 -0
  14. package/dist/cjs/components/admin/ApplicationDetails/BaseApplicationDetails.cjs.map +1 -0
  15. package/dist/cjs/components/admin/ApplicationList/ApplicationList.cjs +55 -0
  16. package/dist/cjs/components/admin/ApplicationList/ApplicationList.cjs.map +1 -0
  17. package/dist/cjs/components/admin/ApplicationList/BaseApplicationList.cjs +95 -0
  18. package/dist/cjs/components/admin/ApplicationList/BaseApplicationList.cjs.map +1 -0
  19. package/dist/cjs/components/admin/GroupCreate/GroupCreate.cjs +8 -2
  20. package/dist/cjs/components/admin/GroupCreate/GroupCreate.cjs.map +1 -1
  21. package/dist/cjs/components/admin/GroupList/GroupList.cjs +10 -3
  22. package/dist/cjs/components/admin/GroupList/GroupList.cjs.map +1 -1
  23. package/dist/cjs/components/admin/GroupMembers/GroupMembers.cjs +47 -10
  24. package/dist/cjs/components/admin/GroupMembers/GroupMembers.cjs.map +1 -1
  25. package/dist/cjs/components/admin/RoleAssignments/RoleAssignments.cjs +48 -14
  26. package/dist/cjs/components/admin/RoleAssignments/RoleAssignments.cjs.map +1 -1
  27. package/dist/cjs/components/admin/RoleCreate/RoleCreate.cjs +8 -2
  28. package/dist/cjs/components/admin/RoleCreate/RoleCreate.cjs.map +1 -1
  29. package/dist/cjs/components/admin/RoleList/RoleList.cjs +10 -3
  30. package/dist/cjs/components/admin/RoleList/RoleList.cjs.map +1 -1
  31. package/dist/cjs/components/admin/RolePermissions/RolePermissions.cjs +8 -2
  32. package/dist/cjs/components/admin/RolePermissions/RolePermissions.cjs.map +1 -1
  33. package/dist/cjs/components/admin/UserCreate/UserCreate.cjs +15 -4
  34. package/dist/cjs/components/admin/UserCreate/UserCreate.cjs.map +1 -1
  35. package/dist/cjs/components/admin/UserDetails/UserDetails.cjs +31 -8
  36. package/dist/cjs/components/admin/UserDetails/UserDetails.cjs.map +1 -1
  37. package/dist/cjs/components/admin/UserList/UserList.cjs +13 -4
  38. package/dist/cjs/components/admin/UserList/UserList.cjs.map +1 -1
  39. package/dist/cjs/components/admin/shared/ApplicationFormFields.cjs +62 -0
  40. package/dist/cjs/components/admin/shared/ApplicationFormFields.cjs.map +1 -0
  41. package/dist/cjs/components/admin/shared/ClientSecretNotice.cjs +49 -0
  42. package/dist/cjs/components/admin/shared/ClientSecretNotice.cjs.map +1 -0
  43. package/dist/cjs/components/auth/InviteUser/InviteUser.cjs +1 -1
  44. package/dist/cjs/components/auth/flow/Consent.cjs +93 -73
  45. package/dist/cjs/components/auth/flow/Consent.cjs.map +1 -1
  46. package/dist/cjs/hooks/management/useManagementEndpoint.cjs.map +1 -1
  47. package/dist/cjs/hooks/management/useManagementRequestConfig.cjs +41 -0
  48. package/dist/cjs/hooks/management/useManagementRequestConfig.cjs.map +1 -0
  49. package/dist/cjs/index.cjs +1066 -188
  50. package/dist/components/admin/AgentCreate/AgentCreate.d.ts.map +1 -1
  51. package/dist/components/admin/AgentCreate/AgentCreate.js +16 -5
  52. package/dist/components/admin/AgentCreate/AgentCreate.js.map +1 -1
  53. package/dist/components/admin/AgentDetails/AgentDetails.d.ts.map +1 -1
  54. package/dist/components/admin/AgentDetails/AgentDetails.js +37 -9
  55. package/dist/components/admin/AgentDetails/AgentDetails.js.map +1 -1
  56. package/dist/components/admin/AgentList/AgentList.d.ts.map +1 -1
  57. package/dist/components/admin/AgentList/AgentList.js +14 -5
  58. package/dist/components/admin/AgentList/AgentList.js.map +1 -1
  59. package/dist/components/admin/ApplicationCreate/ApplicationCreate.d.ts +30 -0
  60. package/dist/components/admin/ApplicationCreate/ApplicationCreate.d.ts.map +1 -0
  61. package/dist/components/admin/ApplicationCreate/ApplicationCreate.js +66 -0
  62. package/dist/components/admin/ApplicationCreate/ApplicationCreate.js.map +1 -0
  63. package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.d.ts +80 -0
  64. package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.d.ts.map +1 -0
  65. package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.js +131 -0
  66. package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.js.map +1 -0
  67. package/dist/components/admin/ApplicationDetails/ApplicationDetails.d.ts +50 -0
  68. package/dist/components/admin/ApplicationDetails/ApplicationDetails.d.ts.map +1 -0
  69. package/dist/components/admin/ApplicationDetails/ApplicationDetails.js +79 -0
  70. package/dist/components/admin/ApplicationDetails/ApplicationDetails.js.map +1 -0
  71. package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.d.ts +92 -0
  72. package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.d.ts.map +1 -0
  73. package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.js +234 -0
  74. package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.js.map +1 -0
  75. package/dist/components/admin/ApplicationList/ApplicationList.d.ts +18 -0
  76. package/dist/components/admin/ApplicationList/ApplicationList.d.ts.map +1 -0
  77. package/dist/components/admin/ApplicationList/ApplicationList.js +51 -0
  78. package/dist/components/admin/ApplicationList/ApplicationList.js.map +1 -0
  79. package/dist/components/admin/ApplicationList/BaseApplicationList.d.ts +55 -0
  80. package/dist/components/admin/ApplicationList/BaseApplicationList.d.ts.map +1 -0
  81. package/dist/components/admin/ApplicationList/BaseApplicationList.js +93 -0
  82. package/dist/components/admin/ApplicationList/BaseApplicationList.js.map +1 -0
  83. package/dist/components/admin/GroupCreate/GroupCreate.d.ts.map +1 -1
  84. package/dist/components/admin/GroupCreate/GroupCreate.js +9 -3
  85. package/dist/components/admin/GroupCreate/GroupCreate.js.map +1 -1
  86. package/dist/components/admin/GroupList/GroupList.d.ts.map +1 -1
  87. package/dist/components/admin/GroupList/GroupList.js +11 -4
  88. package/dist/components/admin/GroupList/GroupList.js.map +1 -1
  89. package/dist/components/admin/GroupMembers/GroupMembers.d.ts.map +1 -1
  90. package/dist/components/admin/GroupMembers/GroupMembers.js +48 -11
  91. package/dist/components/admin/GroupMembers/GroupMembers.js.map +1 -1
  92. package/dist/components/admin/RoleAssignments/RoleAssignments.d.ts.map +1 -1
  93. package/dist/components/admin/RoleAssignments/RoleAssignments.js +49 -15
  94. package/dist/components/admin/RoleAssignments/RoleAssignments.js.map +1 -1
  95. package/dist/components/admin/RoleCreate/RoleCreate.d.ts.map +1 -1
  96. package/dist/components/admin/RoleCreate/RoleCreate.js +9 -3
  97. package/dist/components/admin/RoleCreate/RoleCreate.js.map +1 -1
  98. package/dist/components/admin/RoleList/RoleList.d.ts.map +1 -1
  99. package/dist/components/admin/RoleList/RoleList.js +11 -4
  100. package/dist/components/admin/RoleList/RoleList.js.map +1 -1
  101. package/dist/components/admin/RolePermissions/RolePermissions.d.ts.map +1 -1
  102. package/dist/components/admin/RolePermissions/RolePermissions.js +9 -3
  103. package/dist/components/admin/RolePermissions/RolePermissions.js.map +1 -1
  104. package/dist/components/admin/UserCreate/UserCreate.d.ts.map +1 -1
  105. package/dist/components/admin/UserCreate/UserCreate.js +16 -5
  106. package/dist/components/admin/UserCreate/UserCreate.js.map +1 -1
  107. package/dist/components/admin/UserDetails/UserDetails.d.ts.map +1 -1
  108. package/dist/components/admin/UserDetails/UserDetails.js +32 -9
  109. package/dist/components/admin/UserDetails/UserDetails.js.map +1 -1
  110. package/dist/components/admin/UserList/UserList.d.ts.map +1 -1
  111. package/dist/components/admin/UserList/UserList.js +14 -5
  112. package/dist/components/admin/UserList/UserList.js.map +1 -1
  113. package/dist/components/admin/shared/ApplicationFormFields.d.ts +35 -0
  114. package/dist/components/admin/shared/ApplicationFormFields.d.ts.map +1 -0
  115. package/dist/components/admin/shared/ApplicationFormFields.js +59 -0
  116. package/dist/components/admin/shared/ApplicationFormFields.js.map +1 -0
  117. package/dist/components/admin/shared/ClientSecretNotice.d.ts +16 -0
  118. package/dist/components/admin/shared/ClientSecretNotice.d.ts.map +1 -0
  119. package/dist/components/admin/shared/ClientSecretNotice.js +47 -0
  120. package/dist/components/admin/shared/ClientSecretNotice.js.map +1 -0
  121. package/dist/components/auth/InviteUser/InviteUser.js +1 -1
  122. package/dist/components/auth/flow/Consent.d.ts.map +1 -1
  123. package/dist/components/auth/flow/Consent.js +94 -75
  124. package/dist/components/auth/flow/Consent.js.map +1 -1
  125. package/dist/hooks/management/useManagementEndpoint.d.ts +5 -1
  126. package/dist/hooks/management/useManagementEndpoint.d.ts.map +1 -1
  127. package/dist/hooks/management/useManagementEndpoint.js.map +1 -1
  128. package/dist/hooks/management/useManagementRequestConfig.d.ts +22 -0
  129. package/dist/hooks/management/useManagementRequestConfig.d.ts.map +1 -0
  130. package/dist/hooks/management/useManagementRequestConfig.js +39 -0
  131. package/dist/hooks/management/useManagementRequestConfig.js.map +1 -0
  132. package/dist/index.d.ts +22 -55
  133. package/dist/index.d.ts.map +1 -1
  134. package/dist/index.js +12 -41
  135. package/dist/models/config.d.ts +3 -4
  136. package/dist/models/config.d.ts.map +1 -1
  137. package/package.json +2 -2
  138. package/dist/cjs/hooks/management/agents/useCreateAgent.cjs +0 -26
  139. package/dist/cjs/hooks/management/agents/useCreateAgent.cjs.map +0 -1
  140. package/dist/cjs/hooks/management/agents/useDeleteAgent.cjs +0 -26
  141. package/dist/cjs/hooks/management/agents/useDeleteAgent.cjs.map +0 -1
  142. package/dist/cjs/hooks/management/agents/useGetAgent.cjs +0 -30
  143. package/dist/cjs/hooks/management/agents/useGetAgent.cjs.map +0 -1
  144. package/dist/cjs/hooks/management/agents/useGetAgentGroups.cjs +0 -41
  145. package/dist/cjs/hooks/management/agents/useGetAgentGroups.cjs.map +0 -1
  146. package/dist/cjs/hooks/management/agents/useGetAgentRoles.cjs +0 -42
  147. package/dist/cjs/hooks/management/agents/useGetAgentRoles.cjs.map +0 -1
  148. package/dist/cjs/hooks/management/agents/useGetAgentTypes.cjs +0 -31
  149. package/dist/cjs/hooks/management/agents/useGetAgentTypes.cjs.map +0 -1
  150. package/dist/cjs/hooks/management/agents/useGetAgents.cjs +0 -33
  151. package/dist/cjs/hooks/management/agents/useGetAgents.cjs.map +0 -1
  152. package/dist/cjs/hooks/management/agents/useUpdateAgent.cjs +0 -27
  153. package/dist/cjs/hooks/management/agents/useUpdateAgent.cjs.map +0 -1
  154. package/dist/cjs/hooks/management/applications/useCreateApplication.cjs +0 -31
  155. package/dist/cjs/hooks/management/applications/useCreateApplication.cjs.map +0 -1
  156. package/dist/cjs/hooks/management/applications/useDeleteApplication.cjs +0 -26
  157. package/dist/cjs/hooks/management/applications/useDeleteApplication.cjs.map +0 -1
  158. package/dist/cjs/hooks/management/applications/useGetApplication.cjs +0 -35
  159. package/dist/cjs/hooks/management/applications/useGetApplication.cjs.map +0 -1
  160. package/dist/cjs/hooks/management/applications/useGetApplications.cjs +0 -36
  161. package/dist/cjs/hooks/management/applications/useGetApplications.cjs.map +0 -1
  162. package/dist/cjs/hooks/management/applications/useUpdateApplication.cjs +0 -27
  163. package/dist/cjs/hooks/management/applications/useUpdateApplication.cjs.map +0 -1
  164. package/dist/cjs/hooks/management/groups/useAddGroupMembers.cjs +0 -32
  165. package/dist/cjs/hooks/management/groups/useAddGroupMembers.cjs.map +0 -1
  166. package/dist/cjs/hooks/management/groups/useCreateGroup.cjs +0 -26
  167. package/dist/cjs/hooks/management/groups/useCreateGroup.cjs.map +0 -1
  168. package/dist/cjs/hooks/management/groups/useDeleteGroup.cjs +0 -30
  169. package/dist/cjs/hooks/management/groups/useDeleteGroup.cjs.map +0 -1
  170. package/dist/cjs/hooks/management/groups/useGetGroup.cjs +0 -30
  171. package/dist/cjs/hooks/management/groups/useGetGroup.cjs.map +0 -1
  172. package/dist/cjs/hooks/management/groups/useGetGroupMembers.cjs +0 -40
  173. package/dist/cjs/hooks/management/groups/useGetGroupMembers.cjs.map +0 -1
  174. package/dist/cjs/hooks/management/groups/useGetGroups.cjs +0 -31
  175. package/dist/cjs/hooks/management/groups/useGetGroups.cjs.map +0 -1
  176. package/dist/cjs/hooks/management/groups/useRemoveGroupMembers.cjs +0 -32
  177. package/dist/cjs/hooks/management/groups/useRemoveGroupMembers.cjs.map +0 -1
  178. package/dist/cjs/hooks/management/groups/useUpdateGroup.cjs +0 -31
  179. package/dist/cjs/hooks/management/groups/useUpdateGroup.cjs.map +0 -1
  180. package/dist/cjs/hooks/management/roles/useAddRoleAssignments.cjs +0 -27
  181. package/dist/cjs/hooks/management/roles/useAddRoleAssignments.cjs.map +0 -1
  182. package/dist/cjs/hooks/management/roles/useCreateRole.cjs +0 -26
  183. package/dist/cjs/hooks/management/roles/useCreateRole.cjs.map +0 -1
  184. package/dist/cjs/hooks/management/roles/useDeleteRole.cjs +0 -26
  185. package/dist/cjs/hooks/management/roles/useDeleteRole.cjs.map +0 -1
  186. package/dist/cjs/hooks/management/roles/useGetRole.cjs +0 -30
  187. package/dist/cjs/hooks/management/roles/useGetRole.cjs.map +0 -1
  188. package/dist/cjs/hooks/management/roles/useGetRoleAssignments.cjs +0 -42
  189. package/dist/cjs/hooks/management/roles/useGetRoleAssignments.cjs.map +0 -1
  190. package/dist/cjs/hooks/management/roles/useGetRoles.cjs +0 -31
  191. package/dist/cjs/hooks/management/roles/useGetRoles.cjs.map +0 -1
  192. package/dist/cjs/hooks/management/roles/useRemoveRoleAssignments.cjs +0 -27
  193. package/dist/cjs/hooks/management/roles/useRemoveRoleAssignments.cjs.map +0 -1
  194. package/dist/cjs/hooks/management/roles/useUpdateRole.cjs +0 -27
  195. package/dist/cjs/hooks/management/roles/useUpdateRole.cjs.map +0 -1
  196. package/dist/cjs/hooks/management/users/useCreateUser.cjs +0 -26
  197. package/dist/cjs/hooks/management/users/useCreateUser.cjs.map +0 -1
  198. package/dist/cjs/hooks/management/users/useDeleteUser.cjs +0 -26
  199. package/dist/cjs/hooks/management/users/useDeleteUser.cjs.map +0 -1
  200. package/dist/cjs/hooks/management/users/useGetUser.cjs +0 -30
  201. package/dist/cjs/hooks/management/users/useGetUser.cjs.map +0 -1
  202. package/dist/cjs/hooks/management/users/useGetUserGroups.cjs +0 -41
  203. package/dist/cjs/hooks/management/users/useGetUserGroups.cjs.map +0 -1
  204. package/dist/cjs/hooks/management/users/useGetUserTypes.cjs +0 -31
  205. package/dist/cjs/hooks/management/users/useGetUserTypes.cjs.map +0 -1
  206. package/dist/cjs/hooks/management/users/useGetUsers.cjs +0 -38
  207. package/dist/cjs/hooks/management/users/useGetUsers.cjs.map +0 -1
  208. package/dist/cjs/hooks/management/users/useUpdateUser.cjs +0 -27
  209. package/dist/cjs/hooks/management/users/useUpdateUser.cjs.map +0 -1
  210. package/dist/hooks/management/agents/useCreateAgent.d.ts +0 -11
  211. package/dist/hooks/management/agents/useCreateAgent.d.ts.map +0 -1
  212. package/dist/hooks/management/agents/useCreateAgent.js +0 -24
  213. package/dist/hooks/management/agents/useCreateAgent.js.map +0 -1
  214. package/dist/hooks/management/agents/useDeleteAgent.d.ts +0 -10
  215. package/dist/hooks/management/agents/useDeleteAgent.d.ts.map +0 -1
  216. package/dist/hooks/management/agents/useDeleteAgent.js +0 -24
  217. package/dist/hooks/management/agents/useDeleteAgent.js.map +0 -1
  218. package/dist/hooks/management/agents/useGetAgent.d.ts +0 -12
  219. package/dist/hooks/management/agents/useGetAgent.d.ts.map +0 -1
  220. package/dist/hooks/management/agents/useGetAgent.js +0 -28
  221. package/dist/hooks/management/agents/useGetAgent.js.map +0 -1
  222. package/dist/hooks/management/agents/useGetAgentGroups.d.ts +0 -16
  223. package/dist/hooks/management/agents/useGetAgentGroups.d.ts.map +0 -1
  224. package/dist/hooks/management/agents/useGetAgentGroups.js +0 -39
  225. package/dist/hooks/management/agents/useGetAgentGroups.js.map +0 -1
  226. package/dist/hooks/management/agents/useGetAgentRoles.d.ts +0 -17
  227. package/dist/hooks/management/agents/useGetAgentRoles.d.ts.map +0 -1
  228. package/dist/hooks/management/agents/useGetAgentRoles.js +0 -40
  229. package/dist/hooks/management/agents/useGetAgentRoles.js.map +0 -1
  230. package/dist/hooks/management/agents/useGetAgentTypes.d.ts +0 -15
  231. package/dist/hooks/management/agents/useGetAgentTypes.d.ts.map +0 -1
  232. package/dist/hooks/management/agents/useGetAgentTypes.js +0 -29
  233. package/dist/hooks/management/agents/useGetAgentTypes.js.map +0 -1
  234. package/dist/hooks/management/agents/useGetAgents.d.ts +0 -23
  235. package/dist/hooks/management/agents/useGetAgents.d.ts.map +0 -1
  236. package/dist/hooks/management/agents/useGetAgents.js +0 -31
  237. package/dist/hooks/management/agents/useGetAgents.js.map +0 -1
  238. package/dist/hooks/management/agents/useUpdateAgent.d.ts +0 -18
  239. package/dist/hooks/management/agents/useUpdateAgent.d.ts.map +0 -1
  240. package/dist/hooks/management/agents/useUpdateAgent.js +0 -25
  241. package/dist/hooks/management/agents/useUpdateAgent.js.map +0 -1
  242. package/dist/hooks/management/applications/useCreateApplication.d.ts +0 -16
  243. package/dist/hooks/management/applications/useCreateApplication.d.ts.map +0 -1
  244. package/dist/hooks/management/applications/useCreateApplication.js +0 -29
  245. package/dist/hooks/management/applications/useCreateApplication.js.map +0 -1
  246. package/dist/hooks/management/applications/useDeleteApplication.d.ts +0 -10
  247. package/dist/hooks/management/applications/useDeleteApplication.d.ts.map +0 -1
  248. package/dist/hooks/management/applications/useDeleteApplication.js +0 -24
  249. package/dist/hooks/management/applications/useDeleteApplication.js.map +0 -1
  250. package/dist/hooks/management/applications/useGetApplication.d.ts +0 -17
  251. package/dist/hooks/management/applications/useGetApplication.d.ts.map +0 -1
  252. package/dist/hooks/management/applications/useGetApplication.js +0 -33
  253. package/dist/hooks/management/applications/useGetApplication.js.map +0 -1
  254. package/dist/hooks/management/applications/useGetApplications.d.ts +0 -24
  255. package/dist/hooks/management/applications/useGetApplications.d.ts.map +0 -1
  256. package/dist/hooks/management/applications/useGetApplications.js +0 -34
  257. package/dist/hooks/management/applications/useGetApplications.js.map +0 -1
  258. package/dist/hooks/management/applications/useUpdateApplication.d.ts +0 -18
  259. package/dist/hooks/management/applications/useUpdateApplication.d.ts.map +0 -1
  260. package/dist/hooks/management/applications/useUpdateApplication.js +0 -25
  261. package/dist/hooks/management/applications/useUpdateApplication.js.map +0 -1
  262. package/dist/hooks/management/groups/useAddGroupMembers.d.ts +0 -24
  263. package/dist/hooks/management/groups/useAddGroupMembers.d.ts.map +0 -1
  264. package/dist/hooks/management/groups/useAddGroupMembers.js +0 -30
  265. package/dist/hooks/management/groups/useAddGroupMembers.js.map +0 -1
  266. package/dist/hooks/management/groups/useCreateGroup.d.ts +0 -11
  267. package/dist/hooks/management/groups/useCreateGroup.d.ts.map +0 -1
  268. package/dist/hooks/management/groups/useCreateGroup.js +0 -24
  269. package/dist/hooks/management/groups/useCreateGroup.js.map +0 -1
  270. package/dist/hooks/management/groups/useDeleteGroup.d.ts +0 -10
  271. package/dist/hooks/management/groups/useDeleteGroup.d.ts.map +0 -1
  272. package/dist/hooks/management/groups/useDeleteGroup.js +0 -28
  273. package/dist/hooks/management/groups/useDeleteGroup.js.map +0 -1
  274. package/dist/hooks/management/groups/useGetGroup.d.ts +0 -12
  275. package/dist/hooks/management/groups/useGetGroup.d.ts.map +0 -1
  276. package/dist/hooks/management/groups/useGetGroup.js +0 -28
  277. package/dist/hooks/management/groups/useGetGroup.js.map +0 -1
  278. package/dist/hooks/management/groups/useGetGroupMembers.d.ts +0 -20
  279. package/dist/hooks/management/groups/useGetGroupMembers.d.ts.map +0 -1
  280. package/dist/hooks/management/groups/useGetGroupMembers.js +0 -38
  281. package/dist/hooks/management/groups/useGetGroupMembers.js.map +0 -1
  282. package/dist/hooks/management/groups/useGetGroups.d.ts +0 -19
  283. package/dist/hooks/management/groups/useGetGroups.d.ts.map +0 -1
  284. package/dist/hooks/management/groups/useGetGroups.js +0 -29
  285. package/dist/hooks/management/groups/useGetGroups.js.map +0 -1
  286. package/dist/hooks/management/groups/useRemoveGroupMembers.d.ts +0 -12
  287. package/dist/hooks/management/groups/useRemoveGroupMembers.d.ts.map +0 -1
  288. package/dist/hooks/management/groups/useRemoveGroupMembers.js +0 -30
  289. package/dist/hooks/management/groups/useRemoveGroupMembers.js.map +0 -1
  290. package/dist/hooks/management/groups/useUpdateGroup.d.ts +0 -24
  291. package/dist/hooks/management/groups/useUpdateGroup.d.ts.map +0 -1
  292. package/dist/hooks/management/groups/useUpdateGroup.js +0 -29
  293. package/dist/hooks/management/groups/useUpdateGroup.js.map +0 -1
  294. package/dist/hooks/management/roles/useAddRoleAssignments.d.ts +0 -24
  295. package/dist/hooks/management/roles/useAddRoleAssignments.d.ts.map +0 -1
  296. package/dist/hooks/management/roles/useAddRoleAssignments.js +0 -25
  297. package/dist/hooks/management/roles/useAddRoleAssignments.js.map +0 -1
  298. package/dist/hooks/management/roles/useCreateRole.d.ts +0 -11
  299. package/dist/hooks/management/roles/useCreateRole.d.ts.map +0 -1
  300. package/dist/hooks/management/roles/useCreateRole.js +0 -24
  301. package/dist/hooks/management/roles/useCreateRole.js.map +0 -1
  302. package/dist/hooks/management/roles/useDeleteRole.d.ts +0 -10
  303. package/dist/hooks/management/roles/useDeleteRole.d.ts.map +0 -1
  304. package/dist/hooks/management/roles/useDeleteRole.js +0 -24
  305. package/dist/hooks/management/roles/useDeleteRole.js.map +0 -1
  306. package/dist/hooks/management/roles/useGetRole.d.ts +0 -12
  307. package/dist/hooks/management/roles/useGetRole.d.ts.map +0 -1
  308. package/dist/hooks/management/roles/useGetRole.js +0 -28
  309. package/dist/hooks/management/roles/useGetRole.js.map +0 -1
  310. package/dist/hooks/management/roles/useGetRoleAssignments.d.ts +0 -24
  311. package/dist/hooks/management/roles/useGetRoleAssignments.d.ts.map +0 -1
  312. package/dist/hooks/management/roles/useGetRoleAssignments.js +0 -40
  313. package/dist/hooks/management/roles/useGetRoleAssignments.js.map +0 -1
  314. package/dist/hooks/management/roles/useGetRoles.d.ts +0 -19
  315. package/dist/hooks/management/roles/useGetRoles.d.ts.map +0 -1
  316. package/dist/hooks/management/roles/useGetRoles.js +0 -29
  317. package/dist/hooks/management/roles/useGetRoles.js.map +0 -1
  318. package/dist/hooks/management/roles/useRemoveRoleAssignments.d.ts +0 -11
  319. package/dist/hooks/management/roles/useRemoveRoleAssignments.d.ts.map +0 -1
  320. package/dist/hooks/management/roles/useRemoveRoleAssignments.js +0 -25
  321. package/dist/hooks/management/roles/useRemoveRoleAssignments.js.map +0 -1
  322. package/dist/hooks/management/roles/useUpdateRole.d.ts +0 -24
  323. package/dist/hooks/management/roles/useUpdateRole.d.ts.map +0 -1
  324. package/dist/hooks/management/roles/useUpdateRole.js +0 -25
  325. package/dist/hooks/management/roles/useUpdateRole.js.map +0 -1
  326. package/dist/hooks/management/users/useCreateUser.d.ts +0 -11
  327. package/dist/hooks/management/users/useCreateUser.d.ts.map +0 -1
  328. package/dist/hooks/management/users/useCreateUser.js +0 -24
  329. package/dist/hooks/management/users/useCreateUser.js.map +0 -1
  330. package/dist/hooks/management/users/useDeleteUser.d.ts +0 -10
  331. package/dist/hooks/management/users/useDeleteUser.d.ts.map +0 -1
  332. package/dist/hooks/management/users/useDeleteUser.js +0 -24
  333. package/dist/hooks/management/users/useDeleteUser.js.map +0 -1
  334. package/dist/hooks/management/users/useGetUser.d.ts +0 -12
  335. package/dist/hooks/management/users/useGetUser.d.ts.map +0 -1
  336. package/dist/hooks/management/users/useGetUser.js +0 -28
  337. package/dist/hooks/management/users/useGetUser.js.map +0 -1
  338. package/dist/hooks/management/users/useGetUserGroups.d.ts +0 -16
  339. package/dist/hooks/management/users/useGetUserGroups.d.ts.map +0 -1
  340. package/dist/hooks/management/users/useGetUserGroups.js +0 -39
  341. package/dist/hooks/management/users/useGetUserGroups.js.map +0 -1
  342. package/dist/hooks/management/users/useGetUserTypes.d.ts +0 -15
  343. package/dist/hooks/management/users/useGetUserTypes.d.ts.map +0 -1
  344. package/dist/hooks/management/users/useGetUserTypes.js +0 -29
  345. package/dist/hooks/management/users/useGetUserTypes.js.map +0 -1
  346. package/dist/hooks/management/users/useGetUsers.d.ts +0 -17
  347. package/dist/hooks/management/users/useGetUsers.d.ts.map +0 -1
  348. package/dist/hooks/management/users/useGetUsers.js +0 -36
  349. package/dist/hooks/management/users/useGetUsers.js.map +0 -1
  350. package/dist/hooks/management/users/useUpdateUser.d.ts +0 -18
  351. package/dist/hooks/management/users/useUpdateUser.d.ts.map +0 -1
  352. package/dist/hooks/management/users/useUpdateUser.js +0 -25
  353. package/dist/hooks/management/users/useUpdateUser.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"RolePermissions.js","names":["RolePermissions: FC<RolePermissionsProps>","useTranslation","useGetRole","BaseRolePermissions"],"sources":["../../../../src/components/admin/RolePermissions/RolePermissions.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {toManagementErrorMessage} from '@thunderid/browser';\nimport {FC, ReactElement} from 'react';\nimport BaseRolePermissions, {BaseRolePermissionsProps} from './BaseRolePermissions';\nimport useGetRole from '../../../hooks/management/roles/useGetRole';\nimport useTranslation from '../../../hooks/useTranslation';\n\nexport type RolePermissionsProps = Omit<BaseRolePermissionsProps, 'error' | 'isLoading' | 'permissions'> & {\n roleId: string;\n};\n\n/**\n * Shows the permissions a role grants.\n *\n * @example\n * ```tsx\n * <RolePermissions roleId={roleId} />\n * ```\n */\nconst RolePermissions: FC<RolePermissionsProps> = ({\n preferences,\n roleId,\n ...rest\n}: RolePermissionsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const role = useGetRole(roleId);\n\n return (\n <BaseRolePermissions\n permissions={role.data?.permissions ?? []}\n isLoading={role.isLoading}\n error={toManagementErrorMessage(t, role.error, 'admin.roles.permissions.error')}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default RolePermissions;\n"],"mappings":";;;;;;;;;;;;;;;AAqBA,MAAMA,mBAA6C,EACjD,aACA,OACA,GAAG,WACqC;CACxC,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAC7C,MAAM,OAAOC,mBAAW,OAAO;AAE/B,QACE,oBAACC;EACC,aAAa,KAAK,MAAM,eAAe,EAAE;EACzC,WAAW,KAAK;EAChB,OAAO,yBAAyB,GAAG,KAAK,OAAO,gCAAgC;EAClE;EACb,GAAI;GACJ;;AAIN,8BAAe"}
1
+ {"version":3,"file":"RolePermissions.js","names":["RolePermissions: FC<RolePermissionsProps>","useTranslation","endpoint: ManagementEndpoint","useManagementEndpoint","role: ResourceQueryResult<Role>","useResourceQuery","BaseRolePermissions"],"sources":["../../../../src/components/admin/RolePermissions/RolePermissions.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {Role, RoleQueryKeys, getRole, toManagementErrorMessage} from '@thunderid/browser';\nimport {FC, ReactElement} from 'react';\nimport BaseRolePermissions, {BaseRolePermissionsProps} from './BaseRolePermissions';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceQuery, {ResourceQueryResult} from '../../../hooks/management/useResourceQuery';\nimport useTranslation from '../../../hooks/useTranslation';\n\nexport type RolePermissionsProps = Omit<BaseRolePermissionsProps, 'error' | 'isLoading' | 'permissions'> & {\n roleId: string;\n};\n\n/**\n * Shows the permissions a role grants.\n *\n * @example\n * ```tsx\n * <RolePermissions roleId={roleId} />\n * ```\n */\nconst RolePermissions: FC<RolePermissionsProps> = ({\n preferences,\n roleId,\n ...rest\n}: RolePermissionsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const endpoint: ManagementEndpoint = useManagementEndpoint('roles');\n const role: ResourceQueryResult<Role> = useResourceQuery(\n [RoleQueryKeys.ROLE, roleId],\n (fetcher) => getRole({...endpoint, fetcher, roleId}),\n {enabled: Boolean(roleId)},\n );\n\n return (\n <BaseRolePermissions\n permissions={role.data?.permissions ?? []}\n isLoading={role.isLoading}\n error={toManagementErrorMessage(t, role.error, 'admin.roles.permissions.error')}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default RolePermissions;\n"],"mappings":";;;;;;;;;;;;;;;;AAsBA,MAAMA,mBAA6C,EACjD,aACA,OACA,GAAG,WACqC;CACxC,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAC7C,MAAMC,WAA+BC,8BAAsB,QAAQ;CACnE,MAAMC,OAAkCC,yBACtC,CAAC,cAAc,MAAM,OAAO,GAC3B,YAAY,QAAQ;EAAC,GAAG;EAAU;EAAS;EAAO,CAAC,EACpD,EAAC,SAAS,QAAQ,OAAO,EAAC,CAC3B;AAED,QACE,oBAACC;EACC,aAAa,KAAK,MAAM,eAAe,EAAE;EACzC,WAAW,KAAK;EAChB,OAAO,yBAAyB,GAAG,KAAK,OAAO,gCAAgC;EAClE;EACb,GAAI;GACJ;;AAIN,8BAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserCreate.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/UserCreate/UserCreate.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA2B,WAAW,EAAgC,MAAM,oBAAoB,CAAC;AACxG,OAAO,EAAC,EAAE,EAAwB,MAAM,OAAO,CAAC;AAChD,OAAuB,EAAC,mBAAmB,EAAuB,MAAM,kBAAkB,CAAC;AAI3F,OAAmB,EAAC,eAAe,EAAC,MAAM,kCAAkC,CAAC;AAG7E,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,EAAE,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC,GAAG;IAC7G;;OAEG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;;;GASG;AACH,QAAA,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CA8CnC,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"UserCreate.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/UserCreate/UserCreate.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,WAAW,EAQZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,EAAE,EAAwB,MAAM,OAAO,CAAC;AAChD,OAAuB,EAAC,mBAAmB,EAAuB,MAAM,kBAAkB,CAAC;AAK3F,OAAmB,EAAC,eAAe,EAAC,MAAM,kCAAkC,CAAC;AAG7E,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,EAAE,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC,GAAG;IAC7G;;OAEG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;;;GASG;AACH,QAAA,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAwDnC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import useTranslation_default from "../../../hooks/useTranslation.js";
2
- import useCreateUser_default from "../../../hooks/management/users/useCreateUser.js";
3
- import useGetUserTypes_default from "../../../hooks/management/users/useGetUserTypes.js";
2
+ import useManagementEndpoint_default from "../../../hooks/management/useManagementEndpoint.js";
3
+ import useResourceQuery_default from "../../../hooks/management/useResourceQuery.js";
4
4
  import InviteUser_default from "../../auth/InviteUser/InviteUser.js";
5
5
  import BaseUserCreate_default from "./BaseUserCreate.js";
6
+ import useResourceMutation_default from "../../../hooks/management/useResourceMutation.js";
6
7
  import useDefaultOuId_default from "../shared/useDefaultOuId.js";
7
- import { toManagementErrorMessage } from "@thunderid/browser";
8
+ import { UserQueryKeys, createUser, getUserTypes, toManagementErrorMessage } from "@thunderid/browser";
8
9
  import { useMemo } from "react";
9
10
  import { jsx } from "react/jsx-runtime";
10
11
 
@@ -22,8 +23,18 @@ import { jsx } from "react/jsx-runtime";
22
23
  const UserCreate = ({ inviteProps, mode = "api", onCreated, ouId, preferences,...rest }) => {
23
24
  const { t } = useTranslation_default(preferences?.i18n);
24
25
  const resolvedOuId = useDefaultOuId_default(ouId);
25
- const { data: userTypes } = useGetUserTypes_default({ limit: 100 }, { enabled: mode === "api" });
26
- const { error, isLoading, mutate } = useCreateUser_default({ onSuccess: onCreated });
26
+ const usersEndpoint = useManagementEndpoint_default("users");
27
+ const userTypesEndpoint = useManagementEndpoint_default("userTypes");
28
+ const { data: userTypes } = useResourceQuery_default([UserQueryKeys.USER_TYPES, { limit: 100 }], (fetcher) => getUserTypes({
29
+ ...userTypesEndpoint,
30
+ fetcher,
31
+ limit: 100
32
+ }), { enabled: mode === "api" });
33
+ const { error, isLoading, mutate } = useResourceMutation_default((payload, fetcher) => createUser({
34
+ ...usersEndpoint,
35
+ fetcher,
36
+ payload
37
+ }), () => [[UserQueryKeys.USERS]], { onSuccess: onCreated });
27
38
  const options = useMemo(() => (userTypes?.types ?? []).map((userType) => ({
28
39
  label: userType.displayName ?? userType.handle,
29
40
  value: userType.handle
@@ -1 +1 @@
1
- {"version":3,"file":"UserCreate.js","names":["UserCreate: FC<UserCreateProps>","useTranslation","resolvedOuId: string | undefined","useDefaultOuId","useGetUserTypes","useCreateUser","options: SelectOption[]","InviteUser","BaseUserCreate"],"sources":["../../../../src/components/admin/UserCreate/UserCreate.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {toManagementErrorMessage, ManagedUser, ManagedUserType, SelectOption} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo} from 'react';\nimport BaseUserCreate, {BaseUserCreateProps, UserCreateSubmission} from './BaseUserCreate';\nimport useCreateUser from '../../../hooks/management/users/useCreateUser';\nimport useGetUserTypes from '../../../hooks/management/users/useGetUserTypes';\nimport useTranslation from '../../../hooks/useTranslation';\nimport InviteUser, {InviteUserProps} from '../../auth/InviteUser/InviteUser';\nimport useDefaultOuId from '../shared/useDefaultOuId';\n\nexport type UserCreateProps = Omit<BaseUserCreateProps, 'error' | 'isSubmitting' | 'onSubmit' | 'userTypes'> & {\n /**\n * Props passed to `InviteUser` when `mode` is `invite`.\n */\n inviteProps?: InviteUserProps;\n /**\n * How the user is added.\n * - `api` creates the user directly through the management API.\n * - `invite` runs the invite user flow, which asks the person to finish setting up their account.\n * Only available where flows run.\n * @default 'api'\n */\n mode?: 'api' | 'invite';\n /**\n * Called with the created user. Not called in `invite` mode, where the flow reports progress\n * through `inviteProps.onFlowChange`.\n */\n onCreated?: (user: ManagedUser) => void;\n /**\n * Organization unit the user is created in. Defaults to the signed-in user's organization unit.\n */\n ouId?: string;\n};\n\n/**\n * Adds a user, either directly through the management API or by inviting them through the invite\n * user flow.\n *\n * @example\n * ```tsx\n * <UserCreate onCreated={(user) => navigate(`/users/${user.id}`)} />\n * <UserCreate mode=\"invite\" />\n * ```\n */\nconst UserCreate: FC<UserCreateProps> = ({\n inviteProps,\n mode = 'api',\n onCreated,\n ouId,\n preferences,\n ...rest\n}: UserCreateProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const resolvedOuId: string | undefined = useDefaultOuId(ouId);\n const {data: userTypes} = useGetUserTypes({limit: 100}, {enabled: mode === 'api'});\n const {error, isLoading, mutate} = useCreateUser({onSuccess: onCreated});\n\n const options: SelectOption[] = useMemo(\n () =>\n (userTypes?.types ?? []).map((userType: ManagedUserType) => ({\n label: userType.displayName ?? userType.handle,\n value: userType.handle,\n })),\n [userTypes],\n );\n\n if (mode === 'invite') {\n return <InviteUser {...inviteProps} />;\n }\n\n const handleSubmit = ({attributes, type}: UserCreateSubmission): void => {\n if (!resolvedOuId) {\n return;\n }\n\n void mutate({attributes, ouId: resolvedOuId, type});\n };\n\n return (\n <BaseUserCreate\n userTypes={options}\n onSubmit={handleSubmit}\n isSubmitting={isLoading}\n error={\n resolvedOuId ? toManagementErrorMessage(t, error, 'admin.users.create.error') : t('admin.common.errors.no_ou')\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default UserCreate;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA8CA,MAAMA,cAAmC,EACvC,aACA,OAAO,OACP,WACA,MACA,YACA,GAAG,WACgC;CACnC,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAC7C,MAAMC,eAAmCC,uBAAe,KAAK;CAC7D,MAAM,EAAC,MAAM,cAAaC,wBAAgB,EAAC,OAAO,KAAI,EAAE,EAAC,SAAS,SAAS,OAAM,CAAC;CAClF,MAAM,EAAC,OAAO,WAAW,WAAUC,sBAAc,EAAC,WAAW,WAAU,CAAC;CAExE,MAAMC,UAA0B,eAE3B,WAAW,SAAS,EAAE,EAAE,KAAK,cAA+B;EAC3D,OAAO,SAAS,eAAe,SAAS;EACxC,OAAO,SAAS;EACjB,EAAE,EACL,CAAC,UAAU,CACZ;AAED,KAAI,SAAS,SACX,QAAO,oBAACC,sBAAW,GAAI,cAAe;CAGxC,MAAM,gBAAgB,EAAC,YAAY,WAAsC;AACvE,MAAI,CAAC,aACH;AAGF,EAAK,OAAO;GAAC;GAAY,MAAM;GAAc;GAAK,CAAC;;AAGrD,QACE,oBAACC;EACC,WAAW;EACX,UAAU;EACV,cAAc;EACd,OACE,eAAe,yBAAyB,GAAG,OAAO,2BAA2B,GAAG,EAAE,4BAA4B;EAEnG;EACb,GAAI;GACJ;;AAIN,yBAAe"}
1
+ {"version":3,"file":"UserCreate.js","names":["UserCreate: FC<UserCreateProps>","useTranslation","resolvedOuId: string | undefined","useDefaultOuId","usersEndpoint: ManagementEndpoint","useManagementEndpoint","userTypesEndpoint: ManagementEndpoint","useResourceQuery","useResourceMutation","options: SelectOption[]","InviteUser","BaseUserCreate"],"sources":["../../../../src/components/admin/UserCreate/UserCreate.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n CreateManagedUserRequest,\n ManagedUser,\n ManagedUserType,\n ManagedUserTypeListResponse,\n SelectOption,\n UserQueryKeys,\n createUser,\n getUserTypes,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo} from 'react';\nimport BaseUserCreate, {BaseUserCreateProps, UserCreateSubmission} from './BaseUserCreate';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceMutation, {ResourceMutationResult} from '../../../hooks/management/useResourceMutation';\nimport useResourceQuery, {ResourceQueryResult} from '../../../hooks/management/useResourceQuery';\nimport useTranslation from '../../../hooks/useTranslation';\nimport InviteUser, {InviteUserProps} from '../../auth/InviteUser/InviteUser';\nimport useDefaultOuId from '../shared/useDefaultOuId';\n\nexport type UserCreateProps = Omit<BaseUserCreateProps, 'error' | 'isSubmitting' | 'onSubmit' | 'userTypes'> & {\n /**\n * Props passed to `InviteUser` when `mode` is `invite`.\n */\n inviteProps?: InviteUserProps;\n /**\n * How the user is added.\n * - `api` creates the user directly through the management API.\n * - `invite` runs the invite user flow, which asks the person to finish setting up their account.\n * Only available where flows run.\n * @default 'api'\n */\n mode?: 'api' | 'invite';\n /**\n * Called with the created user. Not called in `invite` mode, where the flow reports progress\n * through `inviteProps.onFlowChange`.\n */\n onCreated?: (user: ManagedUser) => void;\n /**\n * Organization unit the user is created in. Defaults to the signed-in user's organization unit.\n */\n ouId?: string;\n};\n\n/**\n * Adds a user, either directly through the management API or by inviting them through the invite\n * user flow.\n *\n * @example\n * ```tsx\n * <UserCreate onCreated={(user) => navigate(`/users/${user.id}`)} />\n * <UserCreate mode=\"invite\" />\n * ```\n */\nconst UserCreate: FC<UserCreateProps> = ({\n inviteProps,\n mode = 'api',\n onCreated,\n ouId,\n preferences,\n ...rest\n}: UserCreateProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const resolvedOuId: string | undefined = useDefaultOuId(ouId);\n const usersEndpoint: ManagementEndpoint = useManagementEndpoint('users');\n const userTypesEndpoint: ManagementEndpoint = useManagementEndpoint('userTypes');\n const {data: userTypes}: ResourceQueryResult<ManagedUserTypeListResponse> = useResourceQuery(\n [UserQueryKeys.USER_TYPES, {limit: 100}],\n (fetcher) => getUserTypes({...userTypesEndpoint, fetcher, limit: 100}),\n {enabled: mode === 'api'},\n );\n const {error, isLoading, mutate}: ResourceMutationResult<ManagedUser, CreateManagedUserRequest> = useResourceMutation(\n (payload: CreateManagedUserRequest, fetcher) => createUser({...usersEndpoint, fetcher, payload}),\n () => [[UserQueryKeys.USERS]],\n {onSuccess: onCreated},\n );\n\n const options: SelectOption[] = useMemo(\n () =>\n (userTypes?.types ?? []).map((userType: ManagedUserType) => ({\n label: userType.displayName ?? userType.handle,\n value: userType.handle,\n })),\n [userTypes],\n );\n\n if (mode === 'invite') {\n return <InviteUser {...inviteProps} />;\n }\n\n const handleSubmit = ({attributes, type}: UserCreateSubmission): void => {\n if (!resolvedOuId) {\n return;\n }\n\n void mutate({attributes, ouId: resolvedOuId, type});\n };\n\n return (\n <BaseUserCreate\n userTypes={options}\n onSubmit={handleSubmit}\n isSubmitting={isLoading}\n error={\n resolvedOuId ? toManagementErrorMessage(t, error, 'admin.users.create.error') : t('admin.common.errors.no_ou')\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default UserCreate;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAyDA,MAAMA,cAAmC,EACvC,aACA,OAAO,OACP,WACA,MACA,YACA,GAAG,WACgC;CACnC,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAC7C,MAAMC,eAAmCC,uBAAe,KAAK;CAC7D,MAAMC,gBAAoCC,8BAAsB,QAAQ;CACxE,MAAMC,oBAAwCD,8BAAsB,YAAY;CAChF,MAAM,EAAC,MAAM,cAA+DE,yBAC1E,CAAC,cAAc,YAAY,EAAC,OAAO,KAAI,CAAC,GACvC,YAAY,aAAa;EAAC,GAAG;EAAmB;EAAS,OAAO;EAAI,CAAC,EACtE,EAAC,SAAS,SAAS,OAAM,CAC1B;CACD,MAAM,EAAC,OAAO,WAAW,WAAyEC,6BAC/F,SAAmC,YAAY,WAAW;EAAC,GAAG;EAAe;EAAS;EAAQ,CAAC,QAC1F,CAAC,CAAC,cAAc,MAAM,CAAC,EAC7B,EAAC,WAAW,WAAU,CACvB;CAED,MAAMC,UAA0B,eAE3B,WAAW,SAAS,EAAE,EAAE,KAAK,cAA+B;EAC3D,OAAO,SAAS,eAAe,SAAS;EACxC,OAAO,SAAS;EACjB,EAAE,EACL,CAAC,UAAU,CACZ;AAED,KAAI,SAAS,SACX,QAAO,oBAACC,sBAAW,GAAI,cAAe;CAGxC,MAAM,gBAAgB,EAAC,YAAY,WAAsC;AACvE,MAAI,CAAC,aACH;AAGF,EAAK,OAAO;GAAC;GAAY,MAAM;GAAc;GAAK,CAAC;;AAGrD,QACE,oBAACC;EACC,WAAW;EACX,UAAU;EACV,cAAc;EACd,OACE,eAAe,yBAAyB,GAAG,OAAO,2BAA2B,GAAG,EAAE,4BAA4B;EAEnG;EACb,GAAI;GACJ;;AAIN,yBAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserDetails.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/UserDetails/UserDetails.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,EAAE,EAAe,MAAM,OAAO,CAAC;AACvC,OAAwB,EAAC,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAOxE,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,oBAAoB,EACpB,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAClG,GAAG;IACF;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;GAOG;AACH,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAqCrC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"UserDetails.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/UserDetails/UserDetails.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAC,EAAE,EAAe,MAAM,OAAO,CAAC;AACvC,OAAwB,EAAC,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAWxE,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,oBAAoB,EACpB,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAClG,GAAG;IACF;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;GAOG;AACH,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAqDrC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1,10 +1,9 @@
1
1
  import useTranslation_default from "../../../hooks/useTranslation.js";
2
- import useGetUser_default from "../../../hooks/management/users/useGetUser.js";
3
- import useUpdateUser_default from "../../../hooks/management/users/useUpdateUser.js";
4
- import useDeleteUser_default from "../../../hooks/management/users/useDeleteUser.js";
5
- import useGetUserGroups_default from "../../../hooks/management/users/useGetUserGroups.js";
2
+ import useManagementEndpoint_default from "../../../hooks/management/useManagementEndpoint.js";
3
+ import useResourceQuery_default from "../../../hooks/management/useResourceQuery.js";
4
+ import useResourceMutation_default from "../../../hooks/management/useResourceMutation.js";
6
5
  import BaseUserDetails_default from "./BaseUserDetails.js";
7
- import { toManagementErrorMessage } from "@thunderid/browser";
6
+ import { GroupQueryKeys, UserQueryKeys, deleteUser, getUser, getUserGroups, toManagementErrorMessage, updateUser } from "@thunderid/browser";
8
7
  import { jsx } from "react/jsx-runtime";
9
8
 
10
9
  //#region src/components/admin/UserDetails/UserDetails.tsx
@@ -18,10 +17,34 @@ import { jsx } from "react/jsx-runtime";
18
17
  */
19
18
  const UserDetails = ({ deletable = false, editable = false, onDeleted, preferences, userId,...rest }) => {
20
19
  const { t } = useTranslation_default(preferences?.i18n);
21
- const user = useGetUser_default(userId);
22
- const groups = useGetUserGroups_default(userId, { limit: 100 });
23
- const deletion = useDeleteUser_default({ onSuccess: onDeleted });
24
- const update = useUpdateUser_default();
20
+ const endpoint = useManagementEndpoint_default("users");
21
+ const user = useResourceQuery_default([UserQueryKeys.USER, userId], (fetcher) => getUser({
22
+ ...endpoint,
23
+ fetcher,
24
+ userId
25
+ }), { enabled: Boolean(userId) });
26
+ const groups = useResourceQuery_default([
27
+ GroupQueryKeys.MEMBERSHIPS,
28
+ "user",
29
+ userId,
30
+ { limit: 100 }
31
+ ], (fetcher) => getUserGroups({
32
+ ...endpoint,
33
+ fetcher,
34
+ limit: 100,
35
+ userId
36
+ }), { enabled: Boolean(userId) });
37
+ const deletion = useResourceMutation_default((id, fetcher) => deleteUser({
38
+ ...endpoint,
39
+ fetcher,
40
+ userId: id
41
+ }), () => [[UserQueryKeys.USERS]], { onSuccess: onDeleted });
42
+ const update = useResourceMutation_default(({ data, userId: id }, fetcher) => updateUser({
43
+ ...endpoint,
44
+ fetcher,
45
+ payload: data,
46
+ userId: id
47
+ }), ({ userId: id }) => [[UserQueryKeys.USER, id], [UserQueryKeys.USERS]]);
25
48
  return /* @__PURE__ */ jsx(BaseUserDetails_default, {
26
49
  user: user.data,
27
50
  groups: groups.data?.groups,
@@ -1 +1 @@
1
- {"version":3,"file":"UserDetails.js","names":["UserDetails: FC<UserDetailsProps>","useTranslation","useGetUser","useGetUserGroups","useDeleteUser","useUpdateUser","BaseUserDetails"],"sources":["../../../../src/components/admin/UserDetails/UserDetails.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {toManagementErrorMessage} from '@thunderid/browser';\nimport {FC, ReactElement} from 'react';\nimport BaseUserDetails, {BaseUserDetailsProps} from './BaseUserDetails';\nimport useDeleteUser from '../../../hooks/management/users/useDeleteUser';\nimport useGetUser from '../../../hooks/management/users/useGetUser';\nimport useGetUserGroups from '../../../hooks/management/users/useGetUserGroups';\nimport useUpdateUser from '../../../hooks/management/users/useUpdateUser';\nimport useTranslation from '../../../hooks/useTranslation';\n\nexport type UserDetailsProps = Omit<\n BaseUserDetailsProps,\n 'error' | 'groups' | 'isDeleting' | 'isLoading' | 'isUpdating' | 'onDelete' | 'onUpdate' | 'user'\n> & {\n /**\n * Whether the user can be deleted from this view.\n * @default false\n */\n deletable?: boolean;\n /**\n * Whether the user's text attributes can be edited from this view.\n * @default false\n */\n editable?: boolean;\n /**\n * Called after the user has been deleted.\n */\n onDeleted?: () => void;\n userId: string;\n};\n\n/**\n * Shows a user and the groups they belong to, and optionally lets the signed-in user delete them.\n *\n * @example\n * ```tsx\n * <UserDetails userId={userId} deletable onDeleted={() => navigate('/users')} />\n * ```\n */\nconst UserDetails: FC<UserDetailsProps> = ({\n deletable = false,\n editable = false,\n onDeleted,\n preferences,\n userId,\n ...rest\n}: UserDetailsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const user = useGetUser(userId);\n const groups = useGetUserGroups(userId, {limit: 100});\n const deletion = useDeleteUser({onSuccess: onDeleted});\n const update = useUpdateUser();\n\n return (\n <BaseUserDetails\n user={user.data}\n groups={groups.data?.groups}\n isLoading={user.isLoading}\n error={\n toManagementErrorMessage(t, user.error, 'admin.users.details.error') ??\n toManagementErrorMessage(t, deletion.error, 'admin.users.details.delete.error') ??\n toManagementErrorMessage(t, update.error, 'admin.users.details.edit.error')\n }\n isDeleting={deletion.isLoading}\n onDelete={deletable ? (): void => void deletion.mutate(userId) : undefined}\n isUpdating={update.isLoading}\n onUpdate={\n editable && user.data\n ? (attributes: Record<string, unknown>): void =>\n void update.mutate({data: {attributes, ouId: user.data!.ouId, type: user.data!.type}, userId})\n : undefined\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default UserDetails;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAyCA,MAAMA,eAAqC,EACzC,YAAY,OACZ,WAAW,OACX,WACA,aACA,OACA,GAAG,WACiC;CACpC,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAC7C,MAAM,OAAOC,mBAAW,OAAO;CAC/B,MAAM,SAASC,yBAAiB,QAAQ,EAAC,OAAO,KAAI,CAAC;CACrD,MAAM,WAAWC,sBAAc,EAAC,WAAW,WAAU,CAAC;CACtD,MAAM,SAASC,uBAAe;AAE9B,QACE,oBAACC;EACC,MAAM,KAAK;EACX,QAAQ,OAAO,MAAM;EACrB,WAAW,KAAK;EAChB,OACE,yBAAyB,GAAG,KAAK,OAAO,4BAA4B,IACpE,yBAAyB,GAAG,SAAS,OAAO,mCAAmC,IAC/E,yBAAyB,GAAG,OAAO,OAAO,iCAAiC;EAE7E,YAAY,SAAS;EACrB,UAAU,kBAAwB,KAAK,SAAS,OAAO,OAAO,GAAG;EACjE,YAAY,OAAO;EACnB,UACE,YAAY,KAAK,QACZ,eACC,KAAK,OAAO,OAAO;GAAC,MAAM;IAAC;IAAY,MAAM,KAAK,KAAM;IAAM,MAAM,KAAK,KAAM;IAAK;GAAE;GAAO,CAAC,GAChG;EAEO;EACb,GAAI;GACJ;;AAIN,0BAAe"}
1
+ {"version":3,"file":"UserDetails.js","names":["UserDetails: FC<UserDetailsProps>","useTranslation","endpoint: ManagementEndpoint","useManagementEndpoint","user: ResourceQueryResult<ManagedUser>","useResourceQuery","groups: ResourceQueryResult<MembershipGroupListResponse>","deletion: ResourceMutationResult<void, string>","useResourceMutation","update: ResourceMutationResult<ManagedUser, UpdateUserVariables>","BaseUserDetails"],"sources":["../../../../src/components/admin/UserDetails/UserDetails.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n GroupQueryKeys,\n ManagedUser,\n MembershipGroupListResponse,\n UpdateManagedUserRequest,\n UserQueryKeys,\n deleteUser,\n getUser,\n getUserGroups,\n toManagementErrorMessage,\n updateUser,\n} from '@thunderid/browser';\nimport {FC, ReactElement} from 'react';\nimport BaseUserDetails, {BaseUserDetailsProps} from './BaseUserDetails';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceMutation, {ResourceMutationResult} from '../../../hooks/management/useResourceMutation';\nimport useResourceQuery, {ResourceQueryResult} from '../../../hooks/management/useResourceQuery';\nimport useTranslation from '../../../hooks/useTranslation';\n\ninterface UpdateUserVariables {\n data: UpdateManagedUserRequest;\n userId: string;\n}\n\nexport type UserDetailsProps = Omit<\n BaseUserDetailsProps,\n 'error' | 'groups' | 'isDeleting' | 'isLoading' | 'isUpdating' | 'onDelete' | 'onUpdate' | 'user'\n> & {\n /**\n * Whether the user can be deleted from this view.\n * @default false\n */\n deletable?: boolean;\n /**\n * Whether the user's text attributes can be edited from this view.\n * @default false\n */\n editable?: boolean;\n /**\n * Called after the user has been deleted.\n */\n onDeleted?: () => void;\n userId: string;\n};\n\n/**\n * Shows a user and the groups they belong to, and optionally lets the signed-in user delete them.\n *\n * @example\n * ```tsx\n * <UserDetails userId={userId} deletable onDeleted={() => navigate('/users')} />\n * ```\n */\nconst UserDetails: FC<UserDetailsProps> = ({\n deletable = false,\n editable = false,\n onDeleted,\n preferences,\n userId,\n ...rest\n}: UserDetailsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const endpoint: ManagementEndpoint = useManagementEndpoint('users');\n const user: ResourceQueryResult<ManagedUser> = useResourceQuery(\n [UserQueryKeys.USER, userId],\n (fetcher) => getUser({...endpoint, fetcher, userId}),\n {enabled: Boolean(userId)},\n );\n const groups: ResourceQueryResult<MembershipGroupListResponse> = useResourceQuery(\n [GroupQueryKeys.MEMBERSHIPS, 'user', userId, {limit: 100}],\n (fetcher) => getUserGroups({...endpoint, fetcher, limit: 100, userId}),\n {enabled: Boolean(userId)},\n );\n const deletion: ResourceMutationResult<void, string> = useResourceMutation(\n (id: string, fetcher) => deleteUser({...endpoint, fetcher, userId: id}),\n () => [[UserQueryKeys.USERS]],\n {onSuccess: onDeleted},\n );\n const update: ResourceMutationResult<ManagedUser, UpdateUserVariables> = useResourceMutation(\n ({data, userId: id}: UpdateUserVariables, fetcher) => updateUser({...endpoint, fetcher, payload: data, userId: id}),\n ({userId: id}: UpdateUserVariables) => [[UserQueryKeys.USER, id], [UserQueryKeys.USERS]],\n );\n\n return (\n <BaseUserDetails\n user={user.data}\n groups={groups.data?.groups}\n isLoading={user.isLoading}\n error={\n toManagementErrorMessage(t, user.error, 'admin.users.details.error') ??\n toManagementErrorMessage(t, deletion.error, 'admin.users.details.delete.error') ??\n toManagementErrorMessage(t, update.error, 'admin.users.details.edit.error')\n }\n isDeleting={deletion.isLoading}\n onDelete={deletable ? (): void => void deletion.mutate(userId) : undefined}\n isUpdating={update.isLoading}\n onUpdate={\n editable && user.data\n ? (attributes: Record<string, unknown>): void =>\n void update.mutate({data: {attributes, ouId: user.data!.ouId, type: user.data!.type}, userId})\n : undefined\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default UserDetails;\n"],"mappings":";;;;;;;;;;;;;;;;;AAwDA,MAAMA,eAAqC,EACzC,YAAY,OACZ,WAAW,OACX,WACA,aACA,OACA,GAAG,WACiC;CACpC,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAC7C,MAAMC,WAA+BC,8BAAsB,QAAQ;CACnE,MAAMC,OAAyCC,yBAC7C,CAAC,cAAc,MAAM,OAAO,GAC3B,YAAY,QAAQ;EAAC,GAAG;EAAU;EAAS;EAAO,CAAC,EACpD,EAAC,SAAS,QAAQ,OAAO,EAAC,CAC3B;CACD,MAAMC,SAA2DD,yBAC/D;EAAC,eAAe;EAAa;EAAQ;EAAQ,EAAC,OAAO,KAAI;EAAC,GACzD,YAAY,cAAc;EAAC,GAAG;EAAU;EAAS,OAAO;EAAK;EAAO,CAAC,EACtE,EAAC,SAAS,QAAQ,OAAO,EAAC,CAC3B;CACD,MAAME,WAAiDC,6BACpD,IAAY,YAAY,WAAW;EAAC,GAAG;EAAU;EAAS,QAAQ;EAAG,CAAC,QACjE,CAAC,CAAC,cAAc,MAAM,CAAC,EAC7B,EAAC,WAAW,WAAU,CACvB;CACD,MAAMC,SAAmED,6BACtE,EAAC,MAAM,QAAQ,MAA0B,YAAY,WAAW;EAAC,GAAG;EAAU;EAAS,SAAS;EAAM,QAAQ;EAAG,CAAC,GAClH,EAAC,QAAQ,SAA6B,CAAC,CAAC,cAAc,MAAM,GAAG,EAAE,CAAC,cAAc,MAAM,CAAC,CACzF;AAED,QACE,oBAACE;EACC,MAAM,KAAK;EACX,QAAQ,OAAO,MAAM;EACrB,WAAW,KAAK;EAChB,OACE,yBAAyB,GAAG,KAAK,OAAO,4BAA4B,IACpE,yBAAyB,GAAG,SAAS,OAAO,mCAAmC,IAC/E,yBAAyB,GAAG,OAAO,OAAO,iCAAiC;EAE7E,YAAY,SAAS;EACrB,UAAU,kBAAwB,KAAK,SAAS,OAAO,OAAO,GAAG;EACjE,YAAY,OAAO;EACnB,UACE,YAAY,KAAK,QACZ,eACC,KAAK,OAAO,OAAO;GAAC,MAAM;IAAC;IAAY,MAAM,KAAK,KAAM;IAAM,MAAM,KAAK,KAAM;IAAK;GAAE;GAAO,CAAC,GAChG;EAEO;EACb,GAAI;GACJ;;AAIN,0BAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserList.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/UserList/UserList.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,EAAE,EAAyB,MAAM,OAAO,CAAC;AACjD,OAAqB,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAK/D,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,iBAAiB,EACjB,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,cAAc,GAAG,UAAU,GAAG,QAAQ,GAAG,cAAc,GAAG,OAAO,CACrG,GAAG;IACF;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;;;GAOG;AACH,QAAA,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CA4C/B,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"UserList.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/UserList/UserList.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAC,EAAE,EAAyB,MAAM,OAAO,CAAC;AACjD,OAAqB,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAM/D,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,iBAAiB,EACjB,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,cAAc,GAAG,UAAU,GAAG,QAAQ,GAAG,cAAc,GAAG,OAAO,CACrG,GAAG;IACF;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;;;GAOG;AACH,QAAA,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CA8C/B,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import useTranslation_default from "../../../hooks/useTranslation.js";
2
- import useGetUsers_default from "../../../hooks/management/users/useGetUsers.js";
2
+ import useManagementEndpoint_default from "../../../hooks/management/useManagementEndpoint.js";
3
+ import useResourceQuery_default from "../../../hooks/management/useResourceQuery.js";
3
4
  import BaseUserList_default from "./BaseUserList.js";
4
- import { toEqualityFilter, toManagementErrorMessage } from "@thunderid/browser";
5
+ import { UserQueryKeys, getUsers, toEqualityFilter, toManagementErrorMessage } from "@thunderid/browser";
5
6
  import { useState } from "react";
6
7
  import { jsx } from "react/jsx-runtime";
7
8
 
@@ -25,11 +26,19 @@ const UserList = ({ filter, limit = 20, preferences, searchable = true, searchAt
25
26
  label: t("admin.users.list.search.email"),
26
27
  value: "email"
27
28
  }];
28
- const { data, error, isLoading } = useGetUsers_default({
29
- filter: filter ?? (search ? toEqualityFilter(search.attribute, search.value) : void 0),
29
+ const endpoint = useManagementEndpoint_default("users");
30
+ const queryFilter = filter ?? (search ? toEqualityFilter(search.attribute, search.value) : void 0);
31
+ const { data, error, isLoading } = useResourceQuery_default([UserQueryKeys.USERS, {
32
+ filter: queryFilter,
30
33
  limit,
31
34
  offset
32
- });
35
+ }], (fetcher) => getUsers({
36
+ ...endpoint,
37
+ fetcher,
38
+ filter: queryFilter,
39
+ limit,
40
+ offset
41
+ }));
33
42
  return /* @__PURE__ */ jsx(BaseUserList_default, {
34
43
  users: data?.users ?? [],
35
44
  totalResults: data?.totalResults,
@@ -1 +1 @@
1
- {"version":3,"file":"UserList.js","names":["UserList: FC<UserListProps>","useTranslation","attributes: SelectOption[]","useGetUsers","BaseUserList"],"sources":["../../../../src/components/admin/UserList/UserList.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {toEqualityFilter, toManagementErrorMessage, SelectOption} from '@thunderid/browser';\nimport {FC, ReactElement, useState} from 'react';\nimport BaseUserList, {BaseUserListProps} from './BaseUserList';\nimport {AdminSearchValue} from '../shared/AdminSearch';\nimport useGetUsers from '../../../hooks/management/users/useGetUsers';\nimport useTranslation from '../../../hooks/useTranslation';\n\nexport type UserListProps = Omit<\n BaseUserListProps,\n 'error' | 'isLoading' | 'offset' | 'onPageChange' | 'onSearch' | 'search' | 'totalResults' | 'users'\n> & {\n /**\n * Server-side filter expression, for example `username eq \"ada\"`. Hides the search form, since the\n * server takes one expression.\n */\n filter?: string;\n /**\n * Whether to show the search form. The server matches the whole value of the chosen attribute.\n * @default true\n */\n searchable?: boolean;\n};\n\n/**\n * Lists the users the signed-in user is allowed to see, a page at a time.\n *\n * @example\n * ```tsx\n * <UserList onSelect={(user) => setSelectedUserId(user.id)} />\n * ```\n */\nconst UserList: FC<UserListProps> = ({\n filter,\n limit = 20,\n preferences,\n searchable = true,\n searchAttributes,\n ...rest\n}: UserListProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const [offset, setOffset] = useState<number>(0);\n const [search, setSearch] = useState<AdminSearchValue | null>(null);\n const attributes: SelectOption[] = searchAttributes ?? [\n {label: t('admin.users.list.search.username'), value: 'username'},\n {label: t('admin.users.list.search.email'), value: 'email'},\n ];\n const {data, error, isLoading} = useGetUsers({\n filter: filter ?? (search ? toEqualityFilter(search.attribute, search.value) : undefined),\n limit,\n offset,\n });\n\n return (\n <BaseUserList\n users={data?.users ?? []}\n totalResults={data?.totalResults}\n isLoading={isLoading}\n error={toManagementErrorMessage(t, error, 'admin.users.list.error')}\n limit={limit}\n offset={offset}\n onPageChange={setOffset}\n search={search}\n searchAttributes={attributes}\n onSearch={\n searchable && !filter\n ? (next: AdminSearchValue | null): void => {\n setSearch(next);\n setOffset(0);\n }\n : undefined\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default UserList;\n"],"mappings":";;;;;;;;;;;;;;;;AAkCA,MAAMA,YAA+B,EACnC,QACA,QAAQ,IACR,aACA,aAAa,MACb,iBACA,GAAG,WAC8B;CACjC,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,QAAQ,aAAa,SAAiB,EAAE;CAC/C,MAAM,CAAC,QAAQ,aAAa,SAAkC,KAAK;CACnE,MAAMC,aAA6B,oBAAoB,CACrD;EAAC,OAAO,EAAE,mCAAmC;EAAE,OAAO;EAAW,EACjE;EAAC,OAAO,EAAE,gCAAgC;EAAE,OAAO;EAAQ,CAC5D;CACD,MAAM,EAAC,MAAM,OAAO,cAAaC,oBAAY;EAC3C,QAAQ,WAAW,SAAS,iBAAiB,OAAO,WAAW,OAAO,MAAM,GAAG;EAC/E;EACA;EACD,CAAC;AAEF,QACE,oBAACC;EACC,OAAO,MAAM,SAAS,EAAE;EACxB,cAAc,MAAM;EACT;EACX,OAAO,yBAAyB,GAAG,OAAO,yBAAyB;EAC5D;EACC;EACR,cAAc;EACN;EACR,kBAAkB;EAClB,UACE,cAAc,CAAC,UACV,SAAwC;AACvC,aAAU,KAAK;AACf,aAAU,EAAE;MAEd;EAEO;EACb,GAAI;GACJ;;AAIN,uBAAe"}
1
+ {"version":3,"file":"UserList.js","names":["UserList: FC<UserListProps>","useTranslation","attributes: SelectOption[]","endpoint: ManagementEndpoint","useManagementEndpoint","queryFilter: string | undefined","useResourceQuery","BaseUserList"],"sources":["../../../../src/components/admin/UserList/UserList.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n ManagedUserListResponse,\n SelectOption,\n UserQueryKeys,\n getUsers,\n toEqualityFilter,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useState} from 'react';\nimport BaseUserList, {BaseUserListProps} from './BaseUserList';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceQuery, {ResourceQueryResult} from '../../../hooks/management/useResourceQuery';\nimport useTranslation from '../../../hooks/useTranslation';\nimport {AdminSearchValue} from '../shared/AdminSearch';\n\nexport type UserListProps = Omit<\n BaseUserListProps,\n 'error' | 'isLoading' | 'offset' | 'onPageChange' | 'onSearch' | 'search' | 'totalResults' | 'users'\n> & {\n /**\n * Server-side filter expression, for example `username eq \"ada\"`. Hides the search form, since the\n * server takes one expression.\n */\n filter?: string;\n /**\n * Whether to show the search form. The server matches the whole value of the chosen attribute.\n * @default true\n */\n searchable?: boolean;\n};\n\n/**\n * Lists the users the signed-in user is allowed to see, a page at a time.\n *\n * @example\n * ```tsx\n * <UserList onSelect={(user) => setSelectedUserId(user.id)} />\n * ```\n */\nconst UserList: FC<UserListProps> = ({\n filter,\n limit = 20,\n preferences,\n searchable = true,\n searchAttributes,\n ...rest\n}: UserListProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const [offset, setOffset] = useState<number>(0);\n const [search, setSearch] = useState<AdminSearchValue | null>(null);\n const attributes: SelectOption[] = searchAttributes ?? [\n {label: t('admin.users.list.search.username'), value: 'username'},\n {label: t('admin.users.list.search.email'), value: 'email'},\n ];\n const endpoint: ManagementEndpoint = useManagementEndpoint('users');\n const queryFilter: string | undefined =\n filter ?? (search ? toEqualityFilter(search.attribute, search.value) : undefined);\n const {data, error, isLoading}: ResourceQueryResult<ManagedUserListResponse> = useResourceQuery(\n [UserQueryKeys.USERS, {filter: queryFilter, limit, offset}],\n (fetcher) => getUsers({...endpoint, fetcher, filter: queryFilter, limit, offset}),\n );\n\n return (\n <BaseUserList\n users={data?.users ?? []}\n totalResults={data?.totalResults}\n isLoading={isLoading}\n error={toManagementErrorMessage(t, error, 'admin.users.list.error')}\n limit={limit}\n offset={offset}\n onPageChange={setOffset}\n search={search}\n searchAttributes={attributes}\n onSearch={\n searchable && !filter\n ? (next: AdminSearchValue | null): void => {\n setSearch(next);\n setOffset(0);\n }\n : undefined\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default UserList;\n"],"mappings":";;;;;;;;;;;;;;;;;AA0CA,MAAMA,YAA+B,EACnC,QACA,QAAQ,IACR,aACA,aAAa,MACb,iBACA,GAAG,WAC8B;CACjC,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,QAAQ,aAAa,SAAiB,EAAE;CAC/C,MAAM,CAAC,QAAQ,aAAa,SAAkC,KAAK;CACnE,MAAMC,aAA6B,oBAAoB,CACrD;EAAC,OAAO,EAAE,mCAAmC;EAAE,OAAO;EAAW,EACjE;EAAC,OAAO,EAAE,gCAAgC;EAAE,OAAO;EAAQ,CAC5D;CACD,MAAMC,WAA+BC,8BAAsB,QAAQ;CACnE,MAAMC,cACJ,WAAW,SAAS,iBAAiB,OAAO,WAAW,OAAO,MAAM,GAAG;CACzE,MAAM,EAAC,MAAM,OAAO,cAA2DC,yBAC7E,CAAC,cAAc,OAAO;EAAC,QAAQ;EAAa;EAAO;EAAO,CAAC,GAC1D,YAAY,SAAS;EAAC,GAAG;EAAU;EAAS,QAAQ;EAAa;EAAO;EAAO,CAAC,CAClF;AAED,QACE,oBAACC;EACC,OAAO,MAAM,SAAS,EAAE;EACxB,cAAc,MAAM;EACT;EACX,OAAO,yBAAyB,GAAG,OAAO,yBAAyB;EAC5D;EACC;EACR,cAAc;EACN;EACR,kBAAkB;EAClB,UACE,cAAc,CAAC,UACV,SAAwC;AACvC,aAAU,KAAK;AACf,aAAU,EAAE;MAEd;EAEO;EACb,GAAI;GACJ;;AAIN,uBAAe"}
@@ -0,0 +1,35 @@
1
+ import { Preferences } from '@thunderid/browser';
2
+ import { FC } from 'react';
3
+ /**
4
+ * The text fields of the application forms.
5
+ */
6
+ export type ApplicationTextField = 'description' | 'logoUrl' | 'name' | 'redirectUris' | 'url';
7
+ /**
8
+ * The values of the application forms. `redirectUris` is the text of the field, URIs separated by
9
+ * commas.
10
+ */
11
+ export interface ApplicationFormValues {
12
+ description: string;
13
+ grantTypes: string[];
14
+ logoUrl: string;
15
+ name: string;
16
+ publicClient: boolean;
17
+ redirectUris: string;
18
+ url: string;
19
+ }
20
+ export interface ApplicationFormFieldsProps {
21
+ onGrantTypesChange: (grantTypes: string[]) => void;
22
+ onInputChange: (field: ApplicationTextField, value: string) => void;
23
+ /**
24
+ * Shows the public client choice. Omit it where the client type cannot change.
25
+ */
26
+ onPublicClientChange?: (publicClient: boolean) => void;
27
+ preferences?: Preferences;
28
+ values: ApplicationFormValues;
29
+ }
30
+ /**
31
+ * The general fields and OAuth basics of an application, shared by the create form and the edit form.
32
+ */
33
+ declare const ApplicationFormFields: FC<ApplicationFormFieldsProps>;
34
+ export default ApplicationFormFields;
35
+ //# sourceMappingURL=ApplicationFormFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplicationFormFields.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/shared/ApplicationFormFields.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA0B,WAAW,EAAC,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAc,EAAE,EAAe,MAAM,OAAO,CAAC;AAMpD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,cAAc,GAAG,KAAK,CAAC;AAE/F;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,0BAA0B;IACzC,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnD,aAAa,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE;;OAEG;IACH,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED;;GAEG;AACH,QAAA,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CA0DzD,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,59 @@
1
+ import useTranslation_default from "../../../hooks/useTranslation.js";
2
+ import Checkbox_default from "../../primitives/Checkbox/Checkbox.js";
3
+ import TextField_default from "../../primitives/TextField/TextField.js";
4
+ import useAdminPartStyles_default from "./useAdminPartStyles.js";
5
+ import { APPLICATION_GRANT_TYPES } from "@thunderid/browser";
6
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
+
8
+ //#region src/components/admin/shared/ApplicationFormFields.tsx
9
+ /**
10
+ * The general fields and OAuth basics of an application, shared by the create form and the edit form.
11
+ */
12
+ const ApplicationFormFields = ({ onGrantTypesChange, onInputChange, onPublicClientChange, preferences, values }) => {
13
+ const styles = useAdminPartStyles_default();
14
+ const { t } = useTranslation_default(preferences?.i18n);
15
+ const text = (field, label, extra = {}) => /* @__PURE__ */ jsx(TextField_default, {
16
+ name: field,
17
+ label,
18
+ value: values[field],
19
+ autoComplete: "off",
20
+ onChange: (event) => onInputChange(field, event.target.value),
21
+ ...extra
22
+ });
23
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
24
+ text("name", t("admin.applications.fields.name"), { required: true }),
25
+ text("description", t("admin.applications.fields.description")),
26
+ text("url", t("admin.applications.fields.url")),
27
+ text("logoUrl", t("admin.applications.fields.logo_url")),
28
+ text("redirectUris", t("admin.applications.fields.redirect_uris"), { helperText: t("admin.applications.fields.redirect_uris_hint") }),
29
+ /* @__PURE__ */ jsxs("fieldset", {
30
+ className: styles["row"],
31
+ style: {
32
+ border: 0,
33
+ flexWrap: "wrap",
34
+ margin: 0,
35
+ padding: 0
36
+ },
37
+ children: [/* @__PURE__ */ jsx("legend", {
38
+ className: styles["muted"],
39
+ children: t("admin.applications.fields.grant_types")
40
+ }), APPLICATION_GRANT_TYPES.map((grantType) => /* @__PURE__ */ jsx(Checkbox_default, {
41
+ name: `grantType-${grantType}`,
42
+ label: t(`admin.applications.grant_types.${grantType}`),
43
+ checked: values.grantTypes.includes(grantType),
44
+ onChange: (event) => onGrantTypesChange(event.target.checked ? [...values.grantTypes, grantType] : values.grantTypes.filter((value) => value !== grantType))
45
+ }, grantType))]
46
+ }),
47
+ onPublicClientChange && /* @__PURE__ */ jsx(Checkbox_default, {
48
+ name: "publicClient",
49
+ label: t("admin.applications.fields.public_client"),
50
+ checked: values.publicClient,
51
+ onChange: (event) => onPublicClientChange(event.target.checked)
52
+ })
53
+ ] });
54
+ };
55
+ var ApplicationFormFields_default = ApplicationFormFields;
56
+
57
+ //#endregion
58
+ export { ApplicationFormFields_default as default };
59
+ //# sourceMappingURL=ApplicationFormFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplicationFormFields.js","names":["ApplicationFormFields: FC<ApplicationFormFieldsProps>","styles: Record<string, string>","useAdminPartStyles","useTranslation","TextField","Checkbox"],"sources":["../../../../src/components/admin/shared/ApplicationFormFields.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {APPLICATION_GRANT_TYPES, Preferences} from '@thunderid/browser';\nimport {ChangeEvent, FC, ReactElement} from 'react';\nimport useAdminPartStyles from './useAdminPartStyles';\nimport useTranslation from '../../../hooks/useTranslation';\nimport Checkbox from '../../primitives/Checkbox/Checkbox';\nimport TextField from '../../primitives/TextField/TextField';\n\n/**\n * The text fields of the application forms.\n */\nexport type ApplicationTextField = 'description' | 'logoUrl' | 'name' | 'redirectUris' | 'url';\n\n/**\n * The values of the application forms. `redirectUris` is the text of the field, URIs separated by\n * commas.\n */\nexport interface ApplicationFormValues {\n description: string;\n grantTypes: string[];\n logoUrl: string;\n name: string;\n publicClient: boolean;\n redirectUris: string;\n url: string;\n}\n\nexport interface ApplicationFormFieldsProps {\n onGrantTypesChange: (grantTypes: string[]) => void;\n onInputChange: (field: ApplicationTextField, value: string) => void;\n /**\n * Shows the public client choice. Omit it where the client type cannot change.\n */\n onPublicClientChange?: (publicClient: boolean) => void;\n preferences?: Preferences;\n values: ApplicationFormValues;\n}\n\n/**\n * The general fields and OAuth basics of an application, shared by the create form and the edit form.\n */\nconst ApplicationFormFields: FC<ApplicationFormFieldsProps> = ({\n onGrantTypesChange,\n onInputChange,\n onPublicClientChange,\n preferences,\n values,\n}: ApplicationFormFieldsProps): ReactElement => {\n const styles: Record<string, string> = useAdminPartStyles();\n const {t} = useTranslation(preferences?.i18n);\n\n const text = (field: ApplicationTextField, label: string, extra: {helperText?: string; required?: boolean} = {}) => (\n <TextField\n name={field}\n label={label}\n value={values[field]}\n autoComplete=\"off\"\n onChange={(event: ChangeEvent<HTMLInputElement>): void => onInputChange(field, event.target.value)}\n {...extra}\n />\n );\n\n return (\n <>\n {text('name', t('admin.applications.fields.name'), {required: true})}\n {text('description', t('admin.applications.fields.description'))}\n {text('url', t('admin.applications.fields.url'))}\n {text('logoUrl', t('admin.applications.fields.logo_url'))}\n {text('redirectUris', t('admin.applications.fields.redirect_uris'), {\n helperText: t('admin.applications.fields.redirect_uris_hint'),\n })}\n <fieldset className={styles['row']} style={{border: 0, flexWrap: 'wrap', margin: 0, padding: 0}}>\n <legend className={styles['muted']}>{t('admin.applications.fields.grant_types')}</legend>\n {APPLICATION_GRANT_TYPES.map((grantType: string) => (\n <Checkbox\n key={grantType}\n name={`grantType-${grantType}`}\n label={t(`admin.applications.grant_types.${grantType}`)}\n checked={values.grantTypes.includes(grantType)}\n onChange={(event: ChangeEvent<HTMLInputElement>): void =>\n onGrantTypesChange(\n event.target.checked\n ? [...values.grantTypes, grantType]\n : values.grantTypes.filter((value: string) => value !== grantType),\n )\n }\n />\n ))}\n </fieldset>\n {onPublicClientChange && (\n <Checkbox\n name=\"publicClient\"\n label={t('admin.applications.fields.public_client')}\n checked={values.publicClient}\n onChange={(event: ChangeEvent<HTMLInputElement>): void => onPublicClientChange(event.target.checked)}\n />\n )}\n </>\n );\n};\n\nexport default ApplicationFormFields;\n"],"mappings":";;;;;;;;;;;AA2CA,MAAMA,yBAAyD,EAC7D,oBACA,eACA,sBACA,aACA,aAC8C;CAC9C,MAAMC,SAAiCC,4BAAoB;CAC3D,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAE7C,MAAM,QAAQ,OAA6B,OAAe,QAAmD,EAAE,KAC7G,oBAACC;EACC,MAAM;EACC;EACP,OAAO,OAAO;EACd,cAAa;EACb,WAAW,UAA+C,cAAc,OAAO,MAAM,OAAO,MAAM;EAClG,GAAI;GACJ;AAGJ,QACE;EACG,KAAK,QAAQ,EAAE,iCAAiC,EAAE,EAAC,UAAU,MAAK,CAAC;EACnE,KAAK,eAAe,EAAE,wCAAwC,CAAC;EAC/D,KAAK,OAAO,EAAE,gCAAgC,CAAC;EAC/C,KAAK,WAAW,EAAE,qCAAqC,CAAC;EACxD,KAAK,gBAAgB,EAAE,0CAA0C,EAAE,EAClE,YAAY,EAAE,+CAA+C,EAC9D,CAAC;EACF,qBAAC;GAAS,WAAW,OAAO;GAAQ,OAAO;IAAC,QAAQ;IAAG,UAAU;IAAQ,QAAQ;IAAG,SAAS;IAAE;cAC7F,oBAAC;IAAO,WAAW,OAAO;cAAW,EAAE,wCAAwC;KAAU,EACxF,wBAAwB,KAAK,cAC5B,oBAACC;IAEC,MAAM,aAAa;IACnB,OAAO,EAAE,kCAAkC,YAAY;IACvD,SAAS,OAAO,WAAW,SAAS,UAAU;IAC9C,WAAW,UACT,mBACE,MAAM,OAAO,UACT,CAAC,GAAG,OAAO,YAAY,UAAU,GACjC,OAAO,WAAW,QAAQ,UAAkB,UAAU,UAAU,CACrE;MATE,UAWL,CACF;IACO;EACV,wBACC,oBAACA;GACC,MAAK;GACL,OAAO,EAAE,0CAA0C;GACnD,SAAS,OAAO;GAChB,WAAW,UAA+C,qBAAqB,MAAM,OAAO,QAAQ;IACpG;KAEH;;AAIP,oCAAe"}
@@ -0,0 +1,16 @@
1
+ import { Preferences } from '@thunderid/browser';
2
+ import { FC } from 'react';
3
+ export interface ClientSecretNoticeProps {
4
+ /**
5
+ * Called once the secret has been copied, after which it cannot be read again.
6
+ */
7
+ onDismiss?: () => void;
8
+ preferences?: Preferences;
9
+ secret: string;
10
+ }
11
+ /**
12
+ * Shows a client secret the one time it can be read, masked until revealed, with a copy button.
13
+ */
14
+ declare const ClientSecretNotice: FC<ClientSecretNoticeProps>;
15
+ export default ClientSecretNotice;
16
+ //# sourceMappingURL=ClientSecretNotice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientSecretNotice.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/shared/ClientSecretNotice.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAC,EAAE,EAAe,MAAM,OAAO,CAAC;AAOvC,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,QAAA,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAqBnD,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,47 @@
1
+ import useTranslation_default from "../../../hooks/useTranslation.js";
2
+ import Button_default from "../../primitives/Button/Button.js";
3
+ import Alert_default from "../../primitives/Alert/Alert.js";
4
+ import CopyableText_default from "../../primitives/CopyableText/CopyableText.js";
5
+ import useAdminPartStyles_default from "./useAdminPartStyles.js";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+
8
+ //#region src/components/admin/shared/ClientSecretNotice.tsx
9
+ /**
10
+ * Shows a client secret the one time it can be read, masked until revealed, with a copy button.
11
+ */
12
+ const ClientSecretNotice = ({ onDismiss, preferences, secret }) => {
13
+ const styles = useAdminPartStyles_default();
14
+ const { t } = useTranslation_default(preferences?.i18n);
15
+ return /* @__PURE__ */ jsxs("div", {
16
+ className: styles["row"],
17
+ style: {
18
+ alignItems: "stretch",
19
+ flexDirection: "column"
20
+ },
21
+ children: [
22
+ /* @__PURE__ */ jsx(Alert_default, {
23
+ variant: "warning",
24
+ role: "status",
25
+ children: t("admin.applications.secret.notice")
26
+ }),
27
+ /* @__PURE__ */ jsx(CopyableText_default, {
28
+ label: t("admin.applications.secret.title"),
29
+ value: secret,
30
+ masked: true
31
+ }),
32
+ onDismiss && /* @__PURE__ */ jsx("div", {
33
+ className: styles["row"],
34
+ style: { justifyContent: "flex-end" },
35
+ children: /* @__PURE__ */ jsx(Button_default, {
36
+ onClick: onDismiss,
37
+ children: t("admin.applications.secret.done")
38
+ })
39
+ })
40
+ ]
41
+ });
42
+ };
43
+ var ClientSecretNotice_default = ClientSecretNotice;
44
+
45
+ //#endregion
46
+ export { ClientSecretNotice_default as default };
47
+ //# sourceMappingURL=ClientSecretNotice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientSecretNotice.js","names":["ClientSecretNotice: FC<ClientSecretNoticeProps>","styles: Record<string, string>","useAdminPartStyles","useTranslation","Alert","CopyableText","Button"],"sources":["../../../../src/components/admin/shared/ClientSecretNotice.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {Preferences} from '@thunderid/browser';\nimport {FC, ReactElement} from 'react';\nimport useAdminPartStyles from './useAdminPartStyles';\nimport useTranslation from '../../../hooks/useTranslation';\nimport Alert from '../../primitives/Alert/Alert';\nimport Button from '../../primitives/Button/Button';\nimport CopyableText from '../../primitives/CopyableText/CopyableText';\n\nexport interface ClientSecretNoticeProps {\n /**\n * Called once the secret has been copied, after which it cannot be read again.\n */\n onDismiss?: () => void;\n preferences?: Preferences;\n secret: string;\n}\n\n/**\n * Shows a client secret the one time it can be read, masked until revealed, with a copy button.\n */\nconst ClientSecretNotice: FC<ClientSecretNoticeProps> = ({\n onDismiss,\n preferences,\n secret,\n}: ClientSecretNoticeProps): ReactElement => {\n const styles: Record<string, string> = useAdminPartStyles();\n const {t} = useTranslation(preferences?.i18n);\n\n return (\n <div className={styles['row']} style={{alignItems: 'stretch', flexDirection: 'column'}}>\n <Alert variant=\"warning\" role=\"status\">\n {t('admin.applications.secret.notice')}\n </Alert>\n <CopyableText label={t('admin.applications.secret.title')} value={secret} masked />\n {onDismiss && (\n <div className={styles['row']} style={{justifyContent: 'flex-end'}}>\n <Button onClick={onDismiss}>{t('admin.applications.secret.done')}</Button>\n </div>\n )}\n </div>\n );\n};\n\nexport default ClientSecretNotice;\n"],"mappings":";;;;;;;;;;;AAuBA,MAAMA,sBAAmD,EACvD,WACA,aACA,aAC2C;CAC3C,MAAMC,SAAiCC,4BAAoB;CAC3D,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;AAE7C,QACE,qBAAC;EAAI,WAAW,OAAO;EAAQ,OAAO;GAAC,YAAY;GAAW,eAAe;GAAS;;GACpF,oBAACC;IAAM,SAAQ;IAAU,MAAK;cAC3B,EAAE,mCAAmC;KAChC;GACR,oBAACC;IAAa,OAAO,EAAE,kCAAkC;IAAE,OAAO;IAAQ;KAAS;GAClF,aACC,oBAAC;IAAI,WAAW,OAAO;IAAQ,OAAO,EAAC,gBAAgB,YAAW;cAChE,oBAACC;KAAO,SAAS;eAAY,EAAE,iCAAiC;MAAU;KACtE;;GAEJ;;AAIV,iCAAe"}
@@ -1,6 +1,6 @@
1
1
  import useThunderID_default from "../../../contexts/ThunderID/useThunderID.js";
2
- import useFetchUsers_default from "../../../hooks/management/useFetchUsers.js";
3
2
  import useFetchAuthFlows_default from "../../../hooks/auth/useFetchAuthFlows.js";
3
+ import useFetchUsers_default from "../../../hooks/management/useFetchUsers.js";
4
4
  import useFetchUserTypes_default from "../../../hooks/management/useFetchUserTypes.js";
5
5
  import BaseInviteUser_default from "./BaseInviteUser.js";
6
6
  import { EmbeddedFlowType, getOrganizationUnitChildren, resolveResourceEndpoint } from "@thunderid/browser";
@@ -1 +1 @@
1
- {"version":3,"file":"Consent.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/flow/Consent.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,kBAAkB,EAAgB,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAmB,EAAE,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAMtD,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAG7D;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,kEAAkE;IAClE,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,uEAAuE;IACvE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,SAAS,CAAC;IACpD;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,kBAAkB,EAAE,GAAG;QAAC,QAAQ,EAAE,kBAAkB,EAAE,CAAA;KAAC,CAAC;IAC/E;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;;OAEG;IACH,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAErD;;OAEG;IACH,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;CACzB;AAED;;;;GAIG;AACH,QAAA,MAAM,OAAO,EAAE,EAAE,CAAC,YAAY,CA2J7B,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"Consent.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/flow/Consent.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,kBAAkB,EAAgB,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAmB,EAAE,EAAE,SAAS,EAAU,MAAM,OAAO,CAAC;AAM/D,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAG7D;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,kEAAkE;IAClE,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,uEAAuE;IACvE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,SAAS,CAAC;IACpD;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,kBAAkB,EAAE,GAAG;QAAC,QAAQ,EAAE,kBAAkB,EAAE,CAAA;KAAC,CAAC;IAC/E;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;;OAEG;IACH,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAErD;;OAEG;IACH,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;CACzB;AAeD;;;;GAIG;AACH,QAAA,MAAM,OAAO,EAAE,EAAE,CAAC,YAAY,CAyM7B,CAAC;AAEF,eAAe,OAAO,CAAC"}