@thunderid/react 1.14.0 → 1.15.1

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 (625) hide show
  1. package/dist/ThunderIDReactClient.d.ts.map +1 -1
  2. package/dist/ThunderIDReactClient.js +7 -3
  3. package/dist/ThunderIDReactClient.js.map +1 -1
  4. package/dist/api/account/getAccessibleOrganizationUnits.d.ts +27 -0
  5. package/dist/api/account/getAccessibleOrganizationUnits.d.ts.map +1 -0
  6. package/dist/api/account/getAccessibleOrganizationUnits.js +24 -0
  7. package/dist/api/account/getAccessibleOrganizationUnits.js.map +1 -0
  8. package/dist/cjs/ThunderIDReactClient.cjs +7 -3
  9. package/dist/cjs/ThunderIDReactClient.cjs.map +1 -1
  10. package/dist/cjs/api/account/getAccessibleOrganizationUnits.cjs +26 -0
  11. package/dist/cjs/api/account/getAccessibleOrganizationUnits.cjs.map +1 -0
  12. package/dist/cjs/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.cjs +214 -0
  13. package/dist/cjs/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.cjs.map +1 -0
  14. package/dist/cjs/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.cjs +184 -0
  15. package/dist/cjs/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.cjs.map +1 -0
  16. package/dist/cjs/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.cjs +139 -0
  17. package/dist/cjs/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.cjs.map +1 -0
  18. package/dist/cjs/components/auth/Callback/TokenCallback.cjs +3 -3
  19. package/dist/cjs/components/auth/Callback/TokenCallback.cjs.map +1 -1
  20. package/dist/cjs/components/auth/SignIn/SignIn.cjs +49 -44
  21. package/dist/cjs/components/auth/SignIn/SignIn.cjs.map +1 -1
  22. package/dist/cjs/components/auth/SignUp/BaseSignUp.cjs +13 -9
  23. package/dist/cjs/components/auth/SignUp/BaseSignUp.cjs.map +1 -1
  24. package/dist/cjs/components/auth/flow/AuthOptionFactory.cjs +2 -2
  25. package/dist/cjs/components/auth/flow/AuthOptionFactory.cjs.map +1 -1
  26. package/dist/cjs/components/common/LanguageSwitcher/BaseLanguageSwitcher.cjs +1 -1
  27. package/dist/cjs/components/{admin → management}/AgentCreate/AgentCreate.cjs +8 -7
  28. package/dist/cjs/components/management/AgentCreate/AgentCreate.cjs.map +1 -0
  29. package/dist/cjs/components/{admin → management}/AgentCreate/BaseAgentCreate.cjs +1 -1
  30. package/dist/cjs/components/management/AgentCreate/BaseAgentCreate.cjs.map +1 -0
  31. package/dist/cjs/components/{admin → management}/AgentDetails/AgentDetails.cjs +1 -1
  32. package/dist/cjs/components/management/AgentDetails/AgentDetails.cjs.map +1 -0
  33. package/dist/cjs/components/{admin → management}/AgentDetails/BaseAgentDetails.cjs +1 -1
  34. package/dist/cjs/components/management/AgentDetails/BaseAgentDetails.cjs.map +1 -0
  35. package/dist/cjs/components/{admin → management}/AgentList/AgentList.cjs +11 -6
  36. package/dist/cjs/components/management/AgentList/AgentList.cjs.map +1 -0
  37. package/dist/cjs/components/{admin → management}/AgentList/BaseAgentList.cjs +1 -1
  38. package/dist/cjs/components/management/AgentList/BaseAgentList.cjs.map +1 -0
  39. package/dist/cjs/components/{admin → management}/ApplicationCreate/ApplicationCreate.cjs +10 -5
  40. package/dist/cjs/components/management/ApplicationCreate/ApplicationCreate.cjs.map +1 -0
  41. package/dist/cjs/components/{admin → management}/ApplicationCreate/BaseApplicationCreate.cjs +1 -1
  42. package/dist/cjs/components/management/ApplicationCreate/BaseApplicationCreate.cjs.map +1 -0
  43. package/dist/cjs/components/{admin → management}/ApplicationDetails/ApplicationDetails.cjs +1 -1
  44. package/dist/cjs/components/management/ApplicationDetails/ApplicationDetails.cjs.map +1 -0
  45. package/dist/cjs/components/{admin → management}/ApplicationDetails/BaseApplicationDetails.cjs +1 -1
  46. package/dist/cjs/components/management/ApplicationDetails/BaseApplicationDetails.cjs.map +1 -0
  47. package/dist/cjs/components/{admin → management}/ApplicationList/ApplicationList.cjs +9 -4
  48. package/dist/cjs/components/management/ApplicationList/ApplicationList.cjs.map +1 -0
  49. package/dist/cjs/components/{admin → management}/ApplicationList/BaseApplicationList.cjs +1 -1
  50. package/dist/cjs/components/management/ApplicationList/BaseApplicationList.cjs.map +1 -0
  51. package/dist/cjs/components/{admin → management}/GroupCreate/BaseGroupCreate.cjs +1 -1
  52. package/dist/cjs/components/management/GroupCreate/BaseGroupCreate.cjs.map +1 -0
  53. package/dist/cjs/components/{admin → management}/GroupCreate/GroupCreate.cjs +1 -1
  54. package/dist/cjs/components/management/GroupCreate/GroupCreate.cjs.map +1 -0
  55. package/dist/cjs/components/management/GroupDetails/BaseGroupDetails.cjs +86 -0
  56. package/dist/cjs/components/management/GroupDetails/BaseGroupDetails.cjs.map +1 -0
  57. package/dist/cjs/components/management/GroupDetails/GroupDetails.cjs +60 -0
  58. package/dist/cjs/components/management/GroupDetails/GroupDetails.cjs.map +1 -0
  59. package/dist/cjs/components/{admin → management}/GroupList/BaseGroupList.cjs +1 -1
  60. package/dist/cjs/components/management/GroupList/BaseGroupList.cjs.map +1 -0
  61. package/dist/cjs/components/{admin → management}/GroupList/GroupList.cjs +1 -1
  62. package/dist/cjs/components/management/GroupList/GroupList.cjs.map +1 -0
  63. package/dist/cjs/components/{admin → management}/GroupMembers/BaseGroupMembers.cjs +1 -1
  64. package/dist/cjs/components/management/GroupMembers/BaseGroupMembers.cjs.map +1 -0
  65. package/dist/cjs/components/{admin → management}/GroupMembers/GroupMembers.cjs +1 -1
  66. package/dist/cjs/components/management/GroupMembers/GroupMembers.cjs.map +1 -0
  67. package/dist/cjs/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.cjs +140 -0
  68. package/dist/cjs/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.cjs.map +1 -0
  69. package/dist/cjs/components/management/OrganizationUnitCreate/OrganizationUnitCreate.cjs +83 -0
  70. package/dist/cjs/components/management/OrganizationUnitCreate/OrganizationUnitCreate.cjs.map +1 -0
  71. package/dist/cjs/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.cjs +276 -0
  72. package/dist/cjs/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.cjs.map +1 -0
  73. package/dist/cjs/components/management/OrganizationUnitDetails/OrganizationUnitDetails.cjs +142 -0
  74. package/dist/cjs/components/management/OrganizationUnitDetails/OrganizationUnitDetails.cjs.map +1 -0
  75. package/dist/cjs/components/management/OrganizationUnitList/BaseOrganizationUnitList.cjs +78 -0
  76. package/dist/cjs/components/management/OrganizationUnitList/BaseOrganizationUnitList.cjs.map +1 -0
  77. package/dist/cjs/components/management/OrganizationUnitList/OrganizationUnitList.cjs +69 -0
  78. package/dist/cjs/components/management/OrganizationUnitList/OrganizationUnitList.cjs.map +1 -0
  79. package/dist/cjs/components/management/ProjectCreate/BaseProjectCreate.cjs +116 -0
  80. package/dist/cjs/components/management/ProjectCreate/BaseProjectCreate.cjs.map +1 -0
  81. package/dist/cjs/components/management/ProjectCreate/ProjectCreate.cjs +43 -0
  82. package/dist/cjs/components/management/ProjectCreate/ProjectCreate.cjs.map +1 -0
  83. package/dist/cjs/components/management/ProjectDetails/BaseProjectDetails.cjs +172 -0
  84. package/dist/cjs/components/management/ProjectDetails/BaseProjectDetails.cjs.map +1 -0
  85. package/dist/cjs/components/management/ProjectDetails/ProjectDetails.cjs +68 -0
  86. package/dist/cjs/components/management/ProjectDetails/ProjectDetails.cjs.map +1 -0
  87. package/dist/cjs/components/management/ProjectList/BaseProjectList.cjs +78 -0
  88. package/dist/cjs/components/management/ProjectList/BaseProjectList.cjs.map +1 -0
  89. package/dist/cjs/components/management/ProjectList/ProjectList.cjs +51 -0
  90. package/dist/cjs/components/management/ProjectList/ProjectList.cjs.map +1 -0
  91. package/dist/cjs/components/management/ProjectSwitcher/BaseProjectSwitcher.cjs +58 -0
  92. package/dist/cjs/components/management/ProjectSwitcher/BaseProjectSwitcher.cjs.map +1 -0
  93. package/dist/cjs/components/management/ProjectSwitcher/ProjectSwitcher.cjs +72 -0
  94. package/dist/cjs/components/management/ProjectSwitcher/ProjectSwitcher.cjs.map +1 -0
  95. package/dist/cjs/components/{admin → management}/RoleAssignments/BaseRoleAssignments.cjs +1 -1
  96. package/dist/cjs/components/management/RoleAssignments/BaseRoleAssignments.cjs.map +1 -0
  97. package/dist/cjs/components/{admin → management}/RoleAssignments/RoleAssignments.cjs +1 -1
  98. package/dist/cjs/components/management/RoleAssignments/RoleAssignments.cjs.map +1 -0
  99. package/dist/cjs/components/{admin → management}/RoleCreate/BaseRoleCreate.cjs +1 -1
  100. package/dist/cjs/components/management/RoleCreate/BaseRoleCreate.cjs.map +1 -0
  101. package/dist/cjs/components/{admin → management}/RoleCreate/RoleCreate.cjs +1 -1
  102. package/dist/cjs/components/management/RoleCreate/RoleCreate.cjs.map +1 -0
  103. package/dist/cjs/components/management/RoleDetails/BaseRoleDetails.cjs +87 -0
  104. package/dist/cjs/components/management/RoleDetails/BaseRoleDetails.cjs.map +1 -0
  105. package/dist/cjs/components/management/RoleDetails/RoleDetails.cjs +68 -0
  106. package/dist/cjs/components/management/RoleDetails/RoleDetails.cjs.map +1 -0
  107. package/dist/cjs/components/{admin → management}/RoleList/BaseRoleList.cjs +1 -1
  108. package/dist/cjs/components/management/RoleList/BaseRoleList.cjs.map +1 -0
  109. package/dist/cjs/components/{admin → management}/RoleList/RoleList.cjs +1 -1
  110. package/dist/cjs/components/management/RoleList/RoleList.cjs.map +1 -0
  111. package/dist/cjs/components/management/RolePermissions/BaseRolePermissions.cjs +181 -0
  112. package/dist/cjs/components/management/RolePermissions/BaseRolePermissions.cjs.map +1 -0
  113. package/dist/cjs/components/management/RolePermissions/RolePermissions.cjs +112 -0
  114. package/dist/cjs/components/management/RolePermissions/RolePermissions.cjs.map +1 -0
  115. package/dist/cjs/components/management/SharingPolicies/BaseSharingPolicies.cjs +308 -0
  116. package/dist/cjs/components/management/SharingPolicies/BaseSharingPolicies.cjs.map +1 -0
  117. package/dist/cjs/components/management/SharingPolicies/SharingPolicies.cjs +126 -0
  118. package/dist/cjs/components/management/SharingPolicies/SharingPolicies.cjs.map +1 -0
  119. package/dist/cjs/components/{admin → management}/UserCreate/BaseUserCreate.cjs +1 -1
  120. package/dist/cjs/components/management/UserCreate/BaseUserCreate.cjs.map +1 -0
  121. package/dist/cjs/components/{admin → management}/UserCreate/UserCreate.cjs +1 -1
  122. package/dist/cjs/components/management/UserCreate/UserCreate.cjs.map +1 -0
  123. package/dist/cjs/components/{admin → management}/UserCreate/userCreateFields.cjs +1 -1
  124. package/dist/cjs/components/management/UserCreate/userCreateFields.cjs.map +1 -0
  125. package/dist/cjs/components/{admin → management}/UserDetails/BaseUserDetails.cjs +1 -1
  126. package/dist/cjs/components/management/UserDetails/BaseUserDetails.cjs.map +1 -0
  127. package/dist/cjs/components/{admin → management}/UserDetails/UserDetails.cjs +1 -1
  128. package/dist/cjs/components/management/UserDetails/UserDetails.cjs.map +1 -0
  129. package/dist/cjs/components/{admin → management}/UserList/BaseUserList.cjs +1 -1
  130. package/dist/cjs/components/management/UserList/BaseUserList.cjs.map +1 -0
  131. package/dist/cjs/components/{admin → management}/UserList/UserList.cjs +1 -1
  132. package/dist/cjs/components/management/UserList/UserList.cjs.map +1 -0
  133. package/dist/cjs/components/{admin → management}/shared/AccountLifecycleParts.cjs +1 -1
  134. package/dist/cjs/components/management/shared/AccountLifecycleParts.cjs.map +1 -0
  135. package/dist/cjs/components/{admin → management}/shared/AdminParts.cjs +1 -1
  136. package/dist/cjs/components/management/shared/AdminParts.cjs.map +1 -0
  137. package/dist/cjs/components/{admin → management}/shared/AdminParts.styles.cjs +1 -1
  138. package/dist/cjs/components/management/shared/AdminParts.styles.cjs.map +1 -0
  139. package/dist/cjs/components/{admin → management}/shared/AdminSearch.cjs +1 -1
  140. package/dist/cjs/components/management/shared/AdminSearch.cjs.map +1 -0
  141. package/dist/cjs/components/{admin → management}/shared/AdminSection.cjs +1 -1
  142. package/dist/cjs/components/management/shared/AdminSection.cjs.map +1 -0
  143. package/dist/cjs/components/{admin → management}/shared/AdminSection.styles.cjs +1 -1
  144. package/dist/cjs/components/management/shared/AdminSection.styles.cjs.map +1 -0
  145. package/dist/cjs/components/{admin → management}/shared/ApplicationFormFields.cjs +1 -1
  146. package/dist/cjs/components/management/shared/ApplicationFormFields.cjs.map +1 -0
  147. package/dist/cjs/components/{admin → management}/shared/ClientSecretNotice.cjs +1 -1
  148. package/dist/cjs/components/management/shared/ClientSecretNotice.cjs.map +1 -0
  149. package/dist/cjs/components/{admin → management}/shared/IdentityPicker.cjs +1 -1
  150. package/dist/cjs/components/management/shared/IdentityPicker.cjs.map +1 -0
  151. package/dist/cjs/components/management/shared/formatTimestamp.cjs +18 -0
  152. package/dist/cjs/components/management/shared/formatTimestamp.cjs.map +1 -0
  153. package/dist/cjs/components/{admin → management}/shared/useAdminPartStyles.cjs +1 -1
  154. package/dist/cjs/components/management/shared/useAdminPartStyles.cjs.map +1 -0
  155. package/dist/cjs/components/{admin → management}/shared/useDefaultOuId.cjs +1 -1
  156. package/dist/cjs/components/management/shared/useDefaultOuId.cjs.map +1 -0
  157. package/dist/cjs/components/management/shared/useProjectPlacement.cjs +23 -0
  158. package/dist/cjs/components/management/shared/useProjectPlacement.cjs.map +1 -0
  159. package/dist/cjs/contexts/ThunderID/ThunderIDContext.cjs +5 -0
  160. package/dist/cjs/contexts/ThunderID/ThunderIDContext.cjs.map +1 -1
  161. package/dist/cjs/contexts/ThunderID/ThunderIDProvider.cjs +27 -1
  162. package/dist/cjs/contexts/ThunderID/ThunderIDProvider.cjs.map +1 -1
  163. package/dist/cjs/contexts/ThunderID/useCurrentProjectState.cjs +33 -0
  164. package/dist/cjs/contexts/ThunderID/useCurrentProjectState.cjs.map +1 -0
  165. package/dist/cjs/hooks/management/useManagementEndpoint.cjs.map +1 -1
  166. package/dist/cjs/index.cjs +377 -33
  167. package/dist/cjs/utils/flowTransformer.cjs +9 -0
  168. package/dist/cjs/utils/flowTransformer.cjs.map +1 -1
  169. package/dist/cjs/utils/getOrganizationUnitSwitchErrorKey.cjs +24 -0
  170. package/dist/cjs/utils/getOrganizationUnitSwitchErrorKey.cjs.map +1 -0
  171. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.d.ts +85 -0
  172. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.d.ts.map +1 -0
  173. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.js +209 -0
  174. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.js.map +1 -0
  175. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.d.ts +11 -0
  176. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.d.ts.map +1 -0
  177. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.js +184 -0
  178. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.js.map +1 -0
  179. package/dist/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.d.ts +54 -0
  180. package/dist/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.d.ts.map +1 -0
  181. package/dist/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.js +135 -0
  182. package/dist/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.js.map +1 -0
  183. package/dist/components/auth/Callback/TokenCallback.js +3 -3
  184. package/dist/components/auth/Callback/TokenCallback.js.map +1 -1
  185. package/dist/components/auth/SignIn/SignIn.d.ts +5 -0
  186. package/dist/components/auth/SignIn/SignIn.d.ts.map +1 -1
  187. package/dist/components/auth/SignIn/SignIn.js +51 -46
  188. package/dist/components/auth/SignIn/SignIn.js.map +1 -1
  189. package/dist/components/auth/SignUp/BaseSignUp.d.ts.map +1 -1
  190. package/dist/components/auth/SignUp/BaseSignUp.js +14 -10
  191. package/dist/components/auth/SignUp/BaseSignUp.js.map +1 -1
  192. package/dist/components/auth/flow/AuthOptionFactory.js +2 -2
  193. package/dist/components/auth/flow/AuthOptionFactory.js.map +1 -1
  194. package/dist/components/common/LanguageSwitcher/BaseLanguageSwitcher.js +1 -1
  195. package/dist/components/{admin → management}/AgentCreate/AgentCreate.d.ts +2 -1
  196. package/dist/components/management/AgentCreate/AgentCreate.d.ts.map +1 -0
  197. package/dist/components/{admin → management}/AgentCreate/AgentCreate.js +8 -7
  198. package/dist/components/management/AgentCreate/AgentCreate.js.map +1 -0
  199. package/dist/components/management/AgentCreate/BaseAgentCreate.d.ts.map +1 -0
  200. package/dist/components/{admin → management}/AgentCreate/BaseAgentCreate.js +1 -1
  201. package/dist/components/management/AgentCreate/BaseAgentCreate.js.map +1 -0
  202. package/dist/components/management/AgentDetails/AgentDetails.d.ts.map +1 -0
  203. package/dist/components/{admin → management}/AgentDetails/AgentDetails.js +1 -1
  204. package/dist/components/management/AgentDetails/AgentDetails.js.map +1 -0
  205. package/dist/components/management/AgentDetails/BaseAgentDetails.d.ts.map +1 -0
  206. package/dist/components/{admin → management}/AgentDetails/BaseAgentDetails.js +1 -1
  207. package/dist/components/management/AgentDetails/BaseAgentDetails.js.map +1 -0
  208. package/dist/components/{admin → management}/AgentList/AgentList.d.ts +7 -1
  209. package/dist/components/management/AgentList/AgentList.d.ts.map +1 -0
  210. package/dist/components/{admin → management}/AgentList/AgentList.js +11 -6
  211. package/dist/components/management/AgentList/AgentList.js.map +1 -0
  212. package/dist/components/management/AgentList/BaseAgentList.d.ts.map +1 -0
  213. package/dist/components/{admin → management}/AgentList/BaseAgentList.js +1 -1
  214. package/dist/components/management/AgentList/BaseAgentList.js.map +1 -0
  215. package/dist/components/{admin → management}/ApplicationCreate/ApplicationCreate.d.ts +2 -1
  216. package/dist/components/management/ApplicationCreate/ApplicationCreate.d.ts.map +1 -0
  217. package/dist/components/{admin → management}/ApplicationCreate/ApplicationCreate.js +10 -5
  218. package/dist/components/management/ApplicationCreate/ApplicationCreate.js.map +1 -0
  219. package/dist/components/management/ApplicationCreate/BaseApplicationCreate.d.ts.map +1 -0
  220. package/dist/components/{admin → management}/ApplicationCreate/BaseApplicationCreate.js +1 -1
  221. package/dist/components/management/ApplicationCreate/BaseApplicationCreate.js.map +1 -0
  222. package/dist/components/management/ApplicationDetails/ApplicationDetails.d.ts.map +1 -0
  223. package/dist/components/{admin → management}/ApplicationDetails/ApplicationDetails.js +1 -1
  224. package/dist/components/management/ApplicationDetails/ApplicationDetails.js.map +1 -0
  225. package/dist/components/management/ApplicationDetails/BaseApplicationDetails.d.ts.map +1 -0
  226. package/dist/components/{admin → management}/ApplicationDetails/BaseApplicationDetails.js +1 -1
  227. package/dist/components/management/ApplicationDetails/BaseApplicationDetails.js.map +1 -0
  228. package/dist/components/{admin → management}/ApplicationList/ApplicationList.d.ts +7 -1
  229. package/dist/components/management/ApplicationList/ApplicationList.d.ts.map +1 -0
  230. package/dist/components/{admin → management}/ApplicationList/ApplicationList.js +9 -4
  231. package/dist/components/management/ApplicationList/ApplicationList.js.map +1 -0
  232. package/dist/components/management/ApplicationList/BaseApplicationList.d.ts.map +1 -0
  233. package/dist/components/{admin → management}/ApplicationList/BaseApplicationList.js +1 -1
  234. package/dist/components/management/ApplicationList/BaseApplicationList.js.map +1 -0
  235. package/dist/components/management/GroupCreate/BaseGroupCreate.d.ts.map +1 -0
  236. package/dist/components/{admin → management}/GroupCreate/BaseGroupCreate.js +1 -1
  237. package/dist/components/management/GroupCreate/BaseGroupCreate.js.map +1 -0
  238. package/dist/components/management/GroupCreate/GroupCreate.d.ts.map +1 -0
  239. package/dist/components/{admin → management}/GroupCreate/GroupCreate.js +1 -1
  240. package/dist/components/management/GroupCreate/GroupCreate.js.map +1 -0
  241. package/dist/components/management/GroupDetails/BaseGroupDetails.d.ts +47 -0
  242. package/dist/components/management/GroupDetails/BaseGroupDetails.d.ts.map +1 -0
  243. package/dist/components/management/GroupDetails/BaseGroupDetails.js +84 -0
  244. package/dist/components/management/GroupDetails/BaseGroupDetails.js.map +1 -0
  245. package/dist/components/management/GroupDetails/GroupDetails.d.ts +37 -0
  246. package/dist/components/management/GroupDetails/GroupDetails.d.ts.map +1 -0
  247. package/dist/components/management/GroupDetails/GroupDetails.js +57 -0
  248. package/dist/components/management/GroupDetails/GroupDetails.js.map +1 -0
  249. package/dist/components/management/GroupList/BaseGroupList.d.ts.map +1 -0
  250. package/dist/components/{admin → management}/GroupList/BaseGroupList.js +1 -1
  251. package/dist/components/management/GroupList/BaseGroupList.js.map +1 -0
  252. package/dist/components/management/GroupList/GroupList.d.ts.map +1 -0
  253. package/dist/components/{admin → management}/GroupList/GroupList.js +1 -1
  254. package/dist/components/management/GroupList/GroupList.js.map +1 -0
  255. package/dist/components/management/GroupMembers/BaseGroupMembers.d.ts.map +1 -0
  256. package/dist/components/{admin → management}/GroupMembers/BaseGroupMembers.js +1 -1
  257. package/dist/components/management/GroupMembers/BaseGroupMembers.js.map +1 -0
  258. package/dist/components/management/GroupMembers/GroupMembers.d.ts.map +1 -0
  259. package/dist/components/{admin → management}/GroupMembers/GroupMembers.js +1 -1
  260. package/dist/components/management/GroupMembers/GroupMembers.js.map +1 -0
  261. package/dist/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.d.ts +85 -0
  262. package/dist/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.d.ts.map +1 -0
  263. package/dist/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.js +137 -0
  264. package/dist/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.js.map +1 -0
  265. package/dist/components/management/OrganizationUnitCreate/OrganizationUnitCreate.d.ts +21 -0
  266. package/dist/components/management/OrganizationUnitCreate/OrganizationUnitCreate.d.ts.map +1 -0
  267. package/dist/components/management/OrganizationUnitCreate/OrganizationUnitCreate.js +79 -0
  268. package/dist/components/management/OrganizationUnitCreate/OrganizationUnitCreate.js.map +1 -0
  269. package/dist/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.d.ts +105 -0
  270. package/dist/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.d.ts.map +1 -0
  271. package/dist/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.js +273 -0
  272. package/dist/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.js.map +1 -0
  273. package/dist/components/management/OrganizationUnitDetails/OrganizationUnitDetails.d.ts +42 -0
  274. package/dist/components/management/OrganizationUnitDetails/OrganizationUnitDetails.d.ts.map +1 -0
  275. package/dist/components/management/OrganizationUnitDetails/OrganizationUnitDetails.js +139 -0
  276. package/dist/components/management/OrganizationUnitDetails/OrganizationUnitDetails.js.map +1 -0
  277. package/dist/components/management/OrganizationUnitList/BaseOrganizationUnitList.d.ts +54 -0
  278. package/dist/components/management/OrganizationUnitList/BaseOrganizationUnitList.d.ts.map +1 -0
  279. package/dist/components/management/OrganizationUnitList/BaseOrganizationUnitList.js +76 -0
  280. package/dist/components/management/OrganizationUnitList/BaseOrganizationUnitList.js.map +1 -0
  281. package/dist/components/management/OrganizationUnitList/OrganizationUnitList.d.ts +19 -0
  282. package/dist/components/management/OrganizationUnitList/OrganizationUnitList.d.ts.map +1 -0
  283. package/dist/components/management/OrganizationUnitList/OrganizationUnitList.js +65 -0
  284. package/dist/components/management/OrganizationUnitList/OrganizationUnitList.js.map +1 -0
  285. package/dist/components/management/ProjectCreate/BaseProjectCreate.d.ts +60 -0
  286. package/dist/components/management/ProjectCreate/BaseProjectCreate.d.ts.map +1 -0
  287. package/dist/components/management/ProjectCreate/BaseProjectCreate.js +113 -0
  288. package/dist/components/management/ProjectCreate/BaseProjectCreate.js.map +1 -0
  289. package/dist/components/management/ProjectCreate/ProjectCreate.d.ts +20 -0
  290. package/dist/components/management/ProjectCreate/ProjectCreate.d.ts.map +1 -0
  291. package/dist/components/management/ProjectCreate/ProjectCreate.js +40 -0
  292. package/dist/components/management/ProjectCreate/ProjectCreate.js.map +1 -0
  293. package/dist/components/management/ProjectDetails/BaseProjectDetails.d.ts +60 -0
  294. package/dist/components/management/ProjectDetails/BaseProjectDetails.d.ts.map +1 -0
  295. package/dist/components/management/ProjectDetails/BaseProjectDetails.js +169 -0
  296. package/dist/components/management/ProjectDetails/BaseProjectDetails.js.map +1 -0
  297. package/dist/components/management/ProjectDetails/ProjectDetails.d.ts +36 -0
  298. package/dist/components/management/ProjectDetails/ProjectDetails.d.ts.map +1 -0
  299. package/dist/components/management/ProjectDetails/ProjectDetails.js +65 -0
  300. package/dist/components/management/ProjectDetails/ProjectDetails.js.map +1 -0
  301. package/dist/components/management/ProjectList/BaseProjectList.d.ts +53 -0
  302. package/dist/components/management/ProjectList/BaseProjectList.d.ts.map +1 -0
  303. package/dist/components/management/ProjectList/BaseProjectList.js +76 -0
  304. package/dist/components/management/ProjectList/BaseProjectList.js.map +1 -0
  305. package/dist/components/management/ProjectList/ProjectList.d.ts +14 -0
  306. package/dist/components/management/ProjectList/ProjectList.d.ts.map +1 -0
  307. package/dist/components/management/ProjectList/ProjectList.js +47 -0
  308. package/dist/components/management/ProjectList/ProjectList.js.map +1 -0
  309. package/dist/components/management/ProjectSwitcher/BaseProjectSwitcher.d.ts +69 -0
  310. package/dist/components/management/ProjectSwitcher/BaseProjectSwitcher.d.ts.map +1 -0
  311. package/dist/components/management/ProjectSwitcher/BaseProjectSwitcher.js +55 -0
  312. package/dist/components/management/ProjectSwitcher/BaseProjectSwitcher.js.map +1 -0
  313. package/dist/components/management/ProjectSwitcher/ProjectSwitcher.d.ts +25 -0
  314. package/dist/components/management/ProjectSwitcher/ProjectSwitcher.d.ts.map +1 -0
  315. package/dist/components/management/ProjectSwitcher/ProjectSwitcher.js +68 -0
  316. package/dist/components/management/ProjectSwitcher/ProjectSwitcher.js.map +1 -0
  317. package/dist/components/management/RoleAssignments/BaseRoleAssignments.d.ts.map +1 -0
  318. package/dist/components/{admin → management}/RoleAssignments/BaseRoleAssignments.js +1 -1
  319. package/dist/components/management/RoleAssignments/BaseRoleAssignments.js.map +1 -0
  320. package/dist/components/management/RoleAssignments/RoleAssignments.d.ts.map +1 -0
  321. package/dist/components/{admin → management}/RoleAssignments/RoleAssignments.js +1 -1
  322. package/dist/components/management/RoleAssignments/RoleAssignments.js.map +1 -0
  323. package/dist/components/management/RoleCreate/BaseRoleCreate.d.ts.map +1 -0
  324. package/dist/components/{admin → management}/RoleCreate/BaseRoleCreate.js +1 -1
  325. package/dist/components/management/RoleCreate/BaseRoleCreate.js.map +1 -0
  326. package/dist/components/management/RoleCreate/RoleCreate.d.ts.map +1 -0
  327. package/dist/components/{admin → management}/RoleCreate/RoleCreate.js +1 -1
  328. package/dist/components/management/RoleCreate/RoleCreate.js.map +1 -0
  329. package/dist/components/management/RoleDetails/BaseRoleDetails.d.ts +51 -0
  330. package/dist/components/management/RoleDetails/BaseRoleDetails.d.ts.map +1 -0
  331. package/dist/components/management/RoleDetails/BaseRoleDetails.js +85 -0
  332. package/dist/components/management/RoleDetails/BaseRoleDetails.js.map +1 -0
  333. package/dist/components/management/RoleDetails/RoleDetails.d.ts +39 -0
  334. package/dist/components/management/RoleDetails/RoleDetails.d.ts.map +1 -0
  335. package/dist/components/management/RoleDetails/RoleDetails.js +65 -0
  336. package/dist/components/management/RoleDetails/RoleDetails.js.map +1 -0
  337. package/dist/components/management/RoleList/BaseRoleList.d.ts.map +1 -0
  338. package/dist/components/{admin → management}/RoleList/BaseRoleList.js +1 -1
  339. package/dist/components/management/RoleList/BaseRoleList.js.map +1 -0
  340. package/dist/components/management/RoleList/RoleList.d.ts.map +1 -0
  341. package/dist/components/{admin → management}/RoleList/RoleList.js +1 -1
  342. package/dist/components/management/RoleList/RoleList.js.map +1 -0
  343. package/dist/components/management/RolePermissions/BaseRolePermissions.d.ts +104 -0
  344. package/dist/components/management/RolePermissions/BaseRolePermissions.d.ts.map +1 -0
  345. package/dist/components/management/RolePermissions/BaseRolePermissions.js +178 -0
  346. package/dist/components/management/RolePermissions/BaseRolePermissions.js.map +1 -0
  347. package/dist/components/management/RolePermissions/RolePermissions.d.ts +29 -0
  348. package/dist/components/management/RolePermissions/RolePermissions.d.ts.map +1 -0
  349. package/dist/components/management/RolePermissions/RolePermissions.js +108 -0
  350. package/dist/components/management/RolePermissions/RolePermissions.js.map +1 -0
  351. package/dist/components/management/SharingPolicies/BaseSharingPolicies.d.ts +124 -0
  352. package/dist/components/management/SharingPolicies/BaseSharingPolicies.d.ts.map +1 -0
  353. package/dist/components/management/SharingPolicies/BaseSharingPolicies.js +304 -0
  354. package/dist/components/management/SharingPolicies/BaseSharingPolicies.js.map +1 -0
  355. package/dist/components/management/SharingPolicies/SharingPolicies.d.ts +36 -0
  356. package/dist/components/management/SharingPolicies/SharingPolicies.d.ts.map +1 -0
  357. package/dist/components/management/SharingPolicies/SharingPolicies.js +122 -0
  358. package/dist/components/management/SharingPolicies/SharingPolicies.js.map +1 -0
  359. package/dist/components/management/UserCreate/BaseUserCreate.d.ts.map +1 -0
  360. package/dist/components/{admin → management}/UserCreate/BaseUserCreate.js +1 -1
  361. package/dist/components/management/UserCreate/BaseUserCreate.js.map +1 -0
  362. package/dist/components/management/UserCreate/UserCreate.d.ts.map +1 -0
  363. package/dist/components/{admin → management}/UserCreate/UserCreate.js +1 -1
  364. package/dist/components/management/UserCreate/UserCreate.js.map +1 -0
  365. package/dist/components/management/UserCreate/userCreateFields.d.ts.map +1 -0
  366. package/dist/components/{admin → management}/UserCreate/userCreateFields.js +1 -1
  367. package/dist/components/management/UserCreate/userCreateFields.js.map +1 -0
  368. package/dist/components/management/UserDetails/BaseUserDetails.d.ts.map +1 -0
  369. package/dist/components/{admin → management}/UserDetails/BaseUserDetails.js +1 -1
  370. package/dist/components/management/UserDetails/BaseUserDetails.js.map +1 -0
  371. package/dist/components/management/UserDetails/UserDetails.d.ts.map +1 -0
  372. package/dist/components/{admin → management}/UserDetails/UserDetails.js +1 -1
  373. package/dist/components/management/UserDetails/UserDetails.js.map +1 -0
  374. package/dist/components/management/UserList/BaseUserList.d.ts.map +1 -0
  375. package/dist/components/{admin → management}/UserList/BaseUserList.js +1 -1
  376. package/dist/components/management/UserList/BaseUserList.js.map +1 -0
  377. package/dist/components/management/UserList/UserList.d.ts.map +1 -0
  378. package/dist/components/{admin → management}/UserList/UserList.js +1 -1
  379. package/dist/components/management/UserList/UserList.js.map +1 -0
  380. package/dist/components/management/shared/AccountLifecycleParts.d.ts.map +1 -0
  381. package/dist/components/{admin → management}/shared/AccountLifecycleParts.js +1 -1
  382. package/dist/components/management/shared/AccountLifecycleParts.js.map +1 -0
  383. package/dist/components/management/shared/AdminListRenderProps.d.ts.map +1 -0
  384. package/dist/components/management/shared/AdminParts.d.ts.map +1 -0
  385. package/dist/components/{admin → management}/shared/AdminParts.js +1 -1
  386. package/dist/components/management/shared/AdminParts.js.map +1 -0
  387. package/dist/components/management/shared/AdminParts.styles.d.ts.map +1 -0
  388. package/dist/components/{admin → management}/shared/AdminParts.styles.js +1 -1
  389. package/dist/components/management/shared/AdminParts.styles.js.map +1 -0
  390. package/dist/components/management/shared/AdminSearch.d.ts.map +1 -0
  391. package/dist/components/{admin → management}/shared/AdminSearch.js +1 -1
  392. package/dist/components/management/shared/AdminSearch.js.map +1 -0
  393. package/dist/components/management/shared/AdminSection.d.ts.map +1 -0
  394. package/dist/components/{admin → management}/shared/AdminSection.js +1 -1
  395. package/dist/components/management/shared/AdminSection.js.map +1 -0
  396. package/dist/components/management/shared/AdminSection.styles.d.ts.map +1 -0
  397. package/dist/components/{admin → management}/shared/AdminSection.styles.js +1 -1
  398. package/dist/components/management/shared/AdminSection.styles.js.map +1 -0
  399. package/dist/components/management/shared/ApplicationFormFields.d.ts.map +1 -0
  400. package/dist/components/{admin → management}/shared/ApplicationFormFields.js +1 -1
  401. package/dist/components/management/shared/ApplicationFormFields.js.map +1 -0
  402. package/dist/components/management/shared/ClientSecretNotice.d.ts.map +1 -0
  403. package/dist/components/{admin → management}/shared/ClientSecretNotice.js +1 -1
  404. package/dist/components/management/shared/ClientSecretNotice.js.map +1 -0
  405. package/dist/components/management/shared/IdentityPicker.d.ts.map +1 -0
  406. package/dist/components/{admin → management}/shared/IdentityPicker.js +1 -1
  407. package/dist/components/management/shared/IdentityPicker.js.map +1 -0
  408. package/dist/components/management/shared/formatTimestamp.d.ts +9 -0
  409. package/dist/components/management/shared/formatTimestamp.d.ts.map +1 -0
  410. package/dist/components/management/shared/formatTimestamp.js +17 -0
  411. package/dist/components/management/shared/formatTimestamp.js.map +1 -0
  412. package/dist/components/management/shared/useAdminPartStyles.d.ts.map +1 -0
  413. package/dist/components/{admin → management}/shared/useAdminPartStyles.js +1 -1
  414. package/dist/components/management/shared/useAdminPartStyles.js.map +1 -0
  415. package/dist/components/management/shared/useDefaultOuId.d.ts.map +1 -0
  416. package/dist/components/{admin → management}/shared/useDefaultOuId.js +1 -1
  417. package/dist/components/management/shared/useDefaultOuId.js.map +1 -0
  418. package/dist/components/management/shared/useProjectPlacement.d.ts +26 -0
  419. package/dist/components/management/shared/useProjectPlacement.d.ts.map +1 -0
  420. package/dist/components/management/shared/useProjectPlacement.js +23 -0
  421. package/dist/components/management/shared/useProjectPlacement.js.map +1 -0
  422. package/dist/contexts/ThunderID/ThunderIDContext.d.ts +27 -1
  423. package/dist/contexts/ThunderID/ThunderIDContext.d.ts.map +1 -1
  424. package/dist/contexts/ThunderID/ThunderIDContext.js +5 -0
  425. package/dist/contexts/ThunderID/ThunderIDContext.js.map +1 -1
  426. package/dist/contexts/ThunderID/ThunderIDProvider.d.ts.map +1 -1
  427. package/dist/contexts/ThunderID/ThunderIDProvider.js +28 -2
  428. package/dist/contexts/ThunderID/ThunderIDProvider.js.map +1 -1
  429. package/dist/contexts/ThunderID/useCurrentProjectState.d.ts +26 -0
  430. package/dist/contexts/ThunderID/useCurrentProjectState.d.ts.map +1 -0
  431. package/dist/contexts/ThunderID/useCurrentProjectState.js +30 -0
  432. package/dist/contexts/ThunderID/useCurrentProjectState.js.map +1 -0
  433. package/dist/hooks/management/useManagementEndpoint.d.ts +1 -1
  434. package/dist/hooks/management/useManagementEndpoint.d.ts.map +1 -1
  435. package/dist/hooks/management/useManagementEndpoint.js.map +1 -1
  436. package/dist/index.d.ts +120 -69
  437. package/dist/index.d.ts.map +1 -1
  438. package/dist/index.js +59 -34
  439. package/dist/utils/flowTransformer.d.ts +7 -0
  440. package/dist/utils/flowTransformer.d.ts.map +1 -1
  441. package/dist/utils/flowTransformer.js +9 -1
  442. package/dist/utils/flowTransformer.js.map +1 -1
  443. package/dist/utils/getOrganizationUnitSwitchErrorKey.d.ts +11 -0
  444. package/dist/utils/getOrganizationUnitSwitchErrorKey.d.ts.map +1 -0
  445. package/dist/utils/getOrganizationUnitSwitchErrorKey.js +22 -0
  446. package/dist/utils/getOrganizationUnitSwitchErrorKey.js.map +1 -0
  447. package/package.json +2 -2
  448. package/dist/cjs/components/admin/AgentCreate/AgentCreate.cjs.map +0 -1
  449. package/dist/cjs/components/admin/AgentCreate/BaseAgentCreate.cjs.map +0 -1
  450. package/dist/cjs/components/admin/AgentDetails/AgentDetails.cjs.map +0 -1
  451. package/dist/cjs/components/admin/AgentDetails/BaseAgentDetails.cjs.map +0 -1
  452. package/dist/cjs/components/admin/AgentList/AgentList.cjs.map +0 -1
  453. package/dist/cjs/components/admin/AgentList/BaseAgentList.cjs.map +0 -1
  454. package/dist/cjs/components/admin/ApplicationCreate/ApplicationCreate.cjs.map +0 -1
  455. package/dist/cjs/components/admin/ApplicationCreate/BaseApplicationCreate.cjs.map +0 -1
  456. package/dist/cjs/components/admin/ApplicationDetails/ApplicationDetails.cjs.map +0 -1
  457. package/dist/cjs/components/admin/ApplicationDetails/BaseApplicationDetails.cjs.map +0 -1
  458. package/dist/cjs/components/admin/ApplicationList/ApplicationList.cjs.map +0 -1
  459. package/dist/cjs/components/admin/ApplicationList/BaseApplicationList.cjs.map +0 -1
  460. package/dist/cjs/components/admin/GroupCreate/BaseGroupCreate.cjs.map +0 -1
  461. package/dist/cjs/components/admin/GroupCreate/GroupCreate.cjs.map +0 -1
  462. package/dist/cjs/components/admin/GroupList/BaseGroupList.cjs.map +0 -1
  463. package/dist/cjs/components/admin/GroupList/GroupList.cjs.map +0 -1
  464. package/dist/cjs/components/admin/GroupMembers/BaseGroupMembers.cjs.map +0 -1
  465. package/dist/cjs/components/admin/GroupMembers/GroupMembers.cjs.map +0 -1
  466. package/dist/cjs/components/admin/RoleAssignments/BaseRoleAssignments.cjs.map +0 -1
  467. package/dist/cjs/components/admin/RoleAssignments/RoleAssignments.cjs.map +0 -1
  468. package/dist/cjs/components/admin/RoleCreate/BaseRoleCreate.cjs.map +0 -1
  469. package/dist/cjs/components/admin/RoleCreate/RoleCreate.cjs.map +0 -1
  470. package/dist/cjs/components/admin/RoleList/BaseRoleList.cjs.map +0 -1
  471. package/dist/cjs/components/admin/RoleList/RoleList.cjs.map +0 -1
  472. package/dist/cjs/components/admin/RolePermissions/BaseRolePermissions.cjs +0 -69
  473. package/dist/cjs/components/admin/RolePermissions/BaseRolePermissions.cjs.map +0 -1
  474. package/dist/cjs/components/admin/RolePermissions/RolePermissions.cjs +0 -40
  475. package/dist/cjs/components/admin/RolePermissions/RolePermissions.cjs.map +0 -1
  476. package/dist/cjs/components/admin/UserCreate/BaseUserCreate.cjs.map +0 -1
  477. package/dist/cjs/components/admin/UserCreate/UserCreate.cjs.map +0 -1
  478. package/dist/cjs/components/admin/UserCreate/userCreateFields.cjs.map +0 -1
  479. package/dist/cjs/components/admin/UserDetails/BaseUserDetails.cjs.map +0 -1
  480. package/dist/cjs/components/admin/UserDetails/UserDetails.cjs.map +0 -1
  481. package/dist/cjs/components/admin/UserList/BaseUserList.cjs.map +0 -1
  482. package/dist/cjs/components/admin/UserList/UserList.cjs.map +0 -1
  483. package/dist/cjs/components/admin/shared/AccountLifecycleParts.cjs.map +0 -1
  484. package/dist/cjs/components/admin/shared/AdminParts.cjs.map +0 -1
  485. package/dist/cjs/components/admin/shared/AdminParts.styles.cjs.map +0 -1
  486. package/dist/cjs/components/admin/shared/AdminSearch.cjs.map +0 -1
  487. package/dist/cjs/components/admin/shared/AdminSection.cjs.map +0 -1
  488. package/dist/cjs/components/admin/shared/AdminSection.styles.cjs.map +0 -1
  489. package/dist/cjs/components/admin/shared/ApplicationFormFields.cjs.map +0 -1
  490. package/dist/cjs/components/admin/shared/ClientSecretNotice.cjs.map +0 -1
  491. package/dist/cjs/components/admin/shared/IdentityPicker.cjs.map +0 -1
  492. package/dist/cjs/components/admin/shared/useAdminPartStyles.cjs.map +0 -1
  493. package/dist/cjs/components/admin/shared/useDefaultOuId.cjs.map +0 -1
  494. package/dist/components/admin/AgentCreate/AgentCreate.d.ts.map +0 -1
  495. package/dist/components/admin/AgentCreate/AgentCreate.js.map +0 -1
  496. package/dist/components/admin/AgentCreate/BaseAgentCreate.d.ts.map +0 -1
  497. package/dist/components/admin/AgentCreate/BaseAgentCreate.js.map +0 -1
  498. package/dist/components/admin/AgentDetails/AgentDetails.d.ts.map +0 -1
  499. package/dist/components/admin/AgentDetails/AgentDetails.js.map +0 -1
  500. package/dist/components/admin/AgentDetails/BaseAgentDetails.d.ts.map +0 -1
  501. package/dist/components/admin/AgentDetails/BaseAgentDetails.js.map +0 -1
  502. package/dist/components/admin/AgentList/AgentList.d.ts.map +0 -1
  503. package/dist/components/admin/AgentList/AgentList.js.map +0 -1
  504. package/dist/components/admin/AgentList/BaseAgentList.d.ts.map +0 -1
  505. package/dist/components/admin/AgentList/BaseAgentList.js.map +0 -1
  506. package/dist/components/admin/ApplicationCreate/ApplicationCreate.d.ts.map +0 -1
  507. package/dist/components/admin/ApplicationCreate/ApplicationCreate.js.map +0 -1
  508. package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.d.ts.map +0 -1
  509. package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.js.map +0 -1
  510. package/dist/components/admin/ApplicationDetails/ApplicationDetails.d.ts.map +0 -1
  511. package/dist/components/admin/ApplicationDetails/ApplicationDetails.js.map +0 -1
  512. package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.d.ts.map +0 -1
  513. package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.js.map +0 -1
  514. package/dist/components/admin/ApplicationList/ApplicationList.d.ts.map +0 -1
  515. package/dist/components/admin/ApplicationList/ApplicationList.js.map +0 -1
  516. package/dist/components/admin/ApplicationList/BaseApplicationList.d.ts.map +0 -1
  517. package/dist/components/admin/ApplicationList/BaseApplicationList.js.map +0 -1
  518. package/dist/components/admin/GroupCreate/BaseGroupCreate.d.ts.map +0 -1
  519. package/dist/components/admin/GroupCreate/BaseGroupCreate.js.map +0 -1
  520. package/dist/components/admin/GroupCreate/GroupCreate.d.ts.map +0 -1
  521. package/dist/components/admin/GroupCreate/GroupCreate.js.map +0 -1
  522. package/dist/components/admin/GroupList/BaseGroupList.d.ts.map +0 -1
  523. package/dist/components/admin/GroupList/BaseGroupList.js.map +0 -1
  524. package/dist/components/admin/GroupList/GroupList.d.ts.map +0 -1
  525. package/dist/components/admin/GroupList/GroupList.js.map +0 -1
  526. package/dist/components/admin/GroupMembers/BaseGroupMembers.d.ts.map +0 -1
  527. package/dist/components/admin/GroupMembers/BaseGroupMembers.js.map +0 -1
  528. package/dist/components/admin/GroupMembers/GroupMembers.d.ts.map +0 -1
  529. package/dist/components/admin/GroupMembers/GroupMembers.js.map +0 -1
  530. package/dist/components/admin/RoleAssignments/BaseRoleAssignments.d.ts.map +0 -1
  531. package/dist/components/admin/RoleAssignments/BaseRoleAssignments.js.map +0 -1
  532. package/dist/components/admin/RoleAssignments/RoleAssignments.d.ts.map +0 -1
  533. package/dist/components/admin/RoleAssignments/RoleAssignments.js.map +0 -1
  534. package/dist/components/admin/RoleCreate/BaseRoleCreate.d.ts.map +0 -1
  535. package/dist/components/admin/RoleCreate/BaseRoleCreate.js.map +0 -1
  536. package/dist/components/admin/RoleCreate/RoleCreate.d.ts.map +0 -1
  537. package/dist/components/admin/RoleCreate/RoleCreate.js.map +0 -1
  538. package/dist/components/admin/RoleList/BaseRoleList.d.ts.map +0 -1
  539. package/dist/components/admin/RoleList/BaseRoleList.js.map +0 -1
  540. package/dist/components/admin/RoleList/RoleList.d.ts.map +0 -1
  541. package/dist/components/admin/RoleList/RoleList.js.map +0 -1
  542. package/dist/components/admin/RolePermissions/BaseRolePermissions.d.ts +0 -42
  543. package/dist/components/admin/RolePermissions/BaseRolePermissions.d.ts.map +0 -1
  544. package/dist/components/admin/RolePermissions/BaseRolePermissions.js +0 -67
  545. package/dist/components/admin/RolePermissions/BaseRolePermissions.js.map +0 -1
  546. package/dist/components/admin/RolePermissions/RolePermissions.d.ts +0 -16
  547. package/dist/components/admin/RolePermissions/RolePermissions.d.ts.map +0 -1
  548. package/dist/components/admin/RolePermissions/RolePermissions.js +0 -37
  549. package/dist/components/admin/RolePermissions/RolePermissions.js.map +0 -1
  550. package/dist/components/admin/UserCreate/BaseUserCreate.d.ts.map +0 -1
  551. package/dist/components/admin/UserCreate/BaseUserCreate.js.map +0 -1
  552. package/dist/components/admin/UserCreate/UserCreate.d.ts.map +0 -1
  553. package/dist/components/admin/UserCreate/UserCreate.js.map +0 -1
  554. package/dist/components/admin/UserCreate/userCreateFields.d.ts.map +0 -1
  555. package/dist/components/admin/UserCreate/userCreateFields.js.map +0 -1
  556. package/dist/components/admin/UserDetails/BaseUserDetails.d.ts.map +0 -1
  557. package/dist/components/admin/UserDetails/BaseUserDetails.js.map +0 -1
  558. package/dist/components/admin/UserDetails/UserDetails.d.ts.map +0 -1
  559. package/dist/components/admin/UserDetails/UserDetails.js.map +0 -1
  560. package/dist/components/admin/UserList/BaseUserList.d.ts.map +0 -1
  561. package/dist/components/admin/UserList/BaseUserList.js.map +0 -1
  562. package/dist/components/admin/UserList/UserList.d.ts.map +0 -1
  563. package/dist/components/admin/UserList/UserList.js.map +0 -1
  564. package/dist/components/admin/shared/AccountLifecycleParts.d.ts.map +0 -1
  565. package/dist/components/admin/shared/AccountLifecycleParts.js.map +0 -1
  566. package/dist/components/admin/shared/AdminListRenderProps.d.ts.map +0 -1
  567. package/dist/components/admin/shared/AdminParts.d.ts.map +0 -1
  568. package/dist/components/admin/shared/AdminParts.js.map +0 -1
  569. package/dist/components/admin/shared/AdminParts.styles.d.ts.map +0 -1
  570. package/dist/components/admin/shared/AdminParts.styles.js.map +0 -1
  571. package/dist/components/admin/shared/AdminSearch.d.ts.map +0 -1
  572. package/dist/components/admin/shared/AdminSearch.js.map +0 -1
  573. package/dist/components/admin/shared/AdminSection.d.ts.map +0 -1
  574. package/dist/components/admin/shared/AdminSection.js.map +0 -1
  575. package/dist/components/admin/shared/AdminSection.styles.d.ts.map +0 -1
  576. package/dist/components/admin/shared/AdminSection.styles.js.map +0 -1
  577. package/dist/components/admin/shared/ApplicationFormFields.d.ts.map +0 -1
  578. package/dist/components/admin/shared/ApplicationFormFields.js.map +0 -1
  579. package/dist/components/admin/shared/ClientSecretNotice.d.ts.map +0 -1
  580. package/dist/components/admin/shared/ClientSecretNotice.js.map +0 -1
  581. package/dist/components/admin/shared/IdentityPicker.d.ts.map +0 -1
  582. package/dist/components/admin/shared/IdentityPicker.js.map +0 -1
  583. package/dist/components/admin/shared/useAdminPartStyles.d.ts.map +0 -1
  584. package/dist/components/admin/shared/useAdminPartStyles.js.map +0 -1
  585. package/dist/components/admin/shared/useDefaultOuId.d.ts.map +0 -1
  586. package/dist/components/admin/shared/useDefaultOuId.js.map +0 -1
  587. /package/dist/components/{admin → management}/AgentCreate/BaseAgentCreate.d.ts +0 -0
  588. /package/dist/components/{admin → management}/AgentDetails/AgentDetails.d.ts +0 -0
  589. /package/dist/components/{admin → management}/AgentDetails/BaseAgentDetails.d.ts +0 -0
  590. /package/dist/components/{admin → management}/AgentList/BaseAgentList.d.ts +0 -0
  591. /package/dist/components/{admin → management}/ApplicationCreate/BaseApplicationCreate.d.ts +0 -0
  592. /package/dist/components/{admin → management}/ApplicationDetails/ApplicationDetails.d.ts +0 -0
  593. /package/dist/components/{admin → management}/ApplicationDetails/BaseApplicationDetails.d.ts +0 -0
  594. /package/dist/components/{admin → management}/ApplicationList/BaseApplicationList.d.ts +0 -0
  595. /package/dist/components/{admin → management}/GroupCreate/BaseGroupCreate.d.ts +0 -0
  596. /package/dist/components/{admin → management}/GroupCreate/GroupCreate.d.ts +0 -0
  597. /package/dist/components/{admin → management}/GroupList/BaseGroupList.d.ts +0 -0
  598. /package/dist/components/{admin → management}/GroupList/GroupList.d.ts +0 -0
  599. /package/dist/components/{admin → management}/GroupMembers/BaseGroupMembers.d.ts +0 -0
  600. /package/dist/components/{admin → management}/GroupMembers/GroupMembers.d.ts +0 -0
  601. /package/dist/components/{admin → management}/RoleAssignments/BaseRoleAssignments.d.ts +0 -0
  602. /package/dist/components/{admin → management}/RoleAssignments/RoleAssignments.d.ts +0 -0
  603. /package/dist/components/{admin → management}/RoleCreate/BaseRoleCreate.d.ts +0 -0
  604. /package/dist/components/{admin → management}/RoleCreate/RoleCreate.d.ts +0 -0
  605. /package/dist/components/{admin → management}/RoleList/BaseRoleList.d.ts +0 -0
  606. /package/dist/components/{admin → management}/RoleList/RoleList.d.ts +0 -0
  607. /package/dist/components/{admin → management}/UserCreate/BaseUserCreate.d.ts +0 -0
  608. /package/dist/components/{admin → management}/UserCreate/UserCreate.d.ts +0 -0
  609. /package/dist/components/{admin → management}/UserCreate/userCreateFields.d.ts +0 -0
  610. /package/dist/components/{admin → management}/UserDetails/BaseUserDetails.d.ts +0 -0
  611. /package/dist/components/{admin → management}/UserDetails/UserDetails.d.ts +0 -0
  612. /package/dist/components/{admin → management}/UserList/BaseUserList.d.ts +0 -0
  613. /package/dist/components/{admin → management}/UserList/UserList.d.ts +0 -0
  614. /package/dist/components/{admin → management}/shared/AccountLifecycleParts.d.ts +0 -0
  615. /package/dist/components/{admin → management}/shared/AdminListRenderProps.d.ts +0 -0
  616. /package/dist/components/{admin → management}/shared/AdminParts.d.ts +0 -0
  617. /package/dist/components/{admin → management}/shared/AdminParts.styles.d.ts +0 -0
  618. /package/dist/components/{admin → management}/shared/AdminSearch.d.ts +0 -0
  619. /package/dist/components/{admin → management}/shared/AdminSection.d.ts +0 -0
  620. /package/dist/components/{admin → management}/shared/AdminSection.styles.d.ts +0 -0
  621. /package/dist/components/{admin → management}/shared/ApplicationFormFields.d.ts +0 -0
  622. /package/dist/components/{admin → management}/shared/ClientSecretNotice.d.ts +0 -0
  623. /package/dist/components/{admin → management}/shared/IdentityPicker.d.ts +0 -0
  624. /package/dist/components/{admin → management}/shared/useAdminPartStyles.d.ts +0 -0
  625. /package/dist/components/{admin → management}/shared/useDefaultOuId.d.ts +0 -0
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import ThunderIDContext_default from "./contexts/ThunderID/ThunderIDContext.js";
2
+ import useCurrentProjectState_default from "./contexts/ThunderID/useCurrentProjectState.js";
2
3
  import getUsersMe_default from "./api/account/getUsersMe.js";
3
4
  import getUsersMeMeta_default from "./api/account/getUsersMeMeta.js";
4
5
  import useBrowserUrl_default from "./hooks/useBrowserUrl.js";
@@ -107,41 +108,65 @@ import executeEmbeddedSelfFlow_default from "./api/auth/executeEmbeddedSelfFlow.
107
108
  import VerifyAttribute_default from "./components/account/VerifyAttribute/VerifyAttribute.js";
108
109
  import UserProfile_default from "./components/account/UserProfile/UserProfile.js";
109
110
  import DataTable_default from "./components/primitives/DataTable/DataTable.js";
110
- import BaseUserList_default from "./components/admin/UserList/BaseUserList.js";
111
- import UserList_default from "./components/admin/UserList/UserList.js";
112
- import BaseUserCreate_default from "./components/admin/UserCreate/BaseUserCreate.js";
113
- import UserCreate_default from "./components/admin/UserCreate/UserCreate.js";
114
- import BaseUserDetails_default from "./components/admin/UserDetails/BaseUserDetails.js";
115
- import UserDetails_default from "./components/admin/UserDetails/UserDetails.js";
116
- import BaseGroupList_default from "./components/admin/GroupList/BaseGroupList.js";
117
- import GroupList_default from "./components/admin/GroupList/GroupList.js";
118
- import BaseGroupCreate_default from "./components/admin/GroupCreate/BaseGroupCreate.js";
119
- import GroupCreate_default from "./components/admin/GroupCreate/GroupCreate.js";
120
- import BaseGroupMembers_default from "./components/admin/GroupMembers/BaseGroupMembers.js";
121
- import GroupMembers_default from "./components/admin/GroupMembers/GroupMembers.js";
122
- import BaseRoleList_default from "./components/admin/RoleList/BaseRoleList.js";
123
- import RoleList_default from "./components/admin/RoleList/RoleList.js";
124
- import BaseRoleCreate_default from "./components/admin/RoleCreate/BaseRoleCreate.js";
125
- import RoleCreate_default from "./components/admin/RoleCreate/RoleCreate.js";
126
- import BaseRoleAssignments_default from "./components/admin/RoleAssignments/BaseRoleAssignments.js";
127
- import RoleAssignments_default from "./components/admin/RoleAssignments/RoleAssignments.js";
128
- import BaseRolePermissions_default from "./components/admin/RolePermissions/BaseRolePermissions.js";
129
- import RolePermissions_default from "./components/admin/RolePermissions/RolePermissions.js";
130
- import BaseAgentList_default from "./components/admin/AgentList/BaseAgentList.js";
131
- import AgentList_default from "./components/admin/AgentList/AgentList.js";
132
- import BaseAgentCreate_default from "./components/admin/AgentCreate/BaseAgentCreate.js";
133
- import AgentCreate_default from "./components/admin/AgentCreate/AgentCreate.js";
134
- import BaseAgentDetails_default from "./components/admin/AgentDetails/BaseAgentDetails.js";
135
- import AgentDetails_default from "./components/admin/AgentDetails/AgentDetails.js";
136
- import BaseApplicationList_default from "./components/admin/ApplicationList/BaseApplicationList.js";
137
- import ApplicationList_default from "./components/admin/ApplicationList/ApplicationList.js";
138
- import BaseApplicationCreate_default from "./components/admin/ApplicationCreate/BaseApplicationCreate.js";
139
- import ApplicationCreate_default from "./components/admin/ApplicationCreate/ApplicationCreate.js";
140
- import BaseApplicationDetails_default from "./components/admin/ApplicationDetails/BaseApplicationDetails.js";
141
- import ApplicationDetails_default from "./components/admin/ApplicationDetails/ApplicationDetails.js";
111
+ import BaseUserList_default from "./components/management/UserList/BaseUserList.js";
112
+ import UserList_default from "./components/management/UserList/UserList.js";
113
+ import BaseUserCreate_default from "./components/management/UserCreate/BaseUserCreate.js";
114
+ import UserCreate_default from "./components/management/UserCreate/UserCreate.js";
115
+ import BaseUserDetails_default from "./components/management/UserDetails/BaseUserDetails.js";
116
+ import UserDetails_default from "./components/management/UserDetails/UserDetails.js";
117
+ import BaseGroupList_default from "./components/management/GroupList/BaseGroupList.js";
118
+ import GroupList_default from "./components/management/GroupList/GroupList.js";
119
+ import BaseGroupCreate_default from "./components/management/GroupCreate/BaseGroupCreate.js";
120
+ import GroupCreate_default from "./components/management/GroupCreate/GroupCreate.js";
121
+ import BaseGroupMembers_default from "./components/management/GroupMembers/BaseGroupMembers.js";
122
+ import GroupMembers_default from "./components/management/GroupMembers/GroupMembers.js";
123
+ import BaseRoleList_default from "./components/management/RoleList/BaseRoleList.js";
124
+ import RoleList_default from "./components/management/RoleList/RoleList.js";
125
+ import BaseRoleCreate_default from "./components/management/RoleCreate/BaseRoleCreate.js";
126
+ import RoleCreate_default from "./components/management/RoleCreate/RoleCreate.js";
127
+ import BaseRoleAssignments_default from "./components/management/RoleAssignments/BaseRoleAssignments.js";
128
+ import RoleAssignments_default from "./components/management/RoleAssignments/RoleAssignments.js";
129
+ import BaseRolePermissions_default from "./components/management/RolePermissions/BaseRolePermissions.js";
130
+ import RolePermissions_default from "./components/management/RolePermissions/RolePermissions.js";
131
+ import BaseGroupDetails_default from "./components/management/GroupDetails/BaseGroupDetails.js";
132
+ import GroupDetails_default from "./components/management/GroupDetails/GroupDetails.js";
133
+ import BaseRoleDetails_default from "./components/management/RoleDetails/BaseRoleDetails.js";
134
+ import RoleDetails_default from "./components/management/RoleDetails/RoleDetails.js";
135
+ import BaseAgentList_default from "./components/management/AgentList/BaseAgentList.js";
136
+ import AgentList_default from "./components/management/AgentList/AgentList.js";
137
+ import BaseAgentCreate_default from "./components/management/AgentCreate/BaseAgentCreate.js";
138
+ import AgentCreate_default from "./components/management/AgentCreate/AgentCreate.js";
139
+ import BaseAgentDetails_default from "./components/management/AgentDetails/BaseAgentDetails.js";
140
+ import AgentDetails_default from "./components/management/AgentDetails/AgentDetails.js";
141
+ import BaseApplicationList_default from "./components/management/ApplicationList/BaseApplicationList.js";
142
+ import ApplicationList_default from "./components/management/ApplicationList/ApplicationList.js";
143
+ import BaseApplicationCreate_default from "./components/management/ApplicationCreate/BaseApplicationCreate.js";
144
+ import ApplicationCreate_default from "./components/management/ApplicationCreate/ApplicationCreate.js";
145
+ import BaseApplicationDetails_default from "./components/management/ApplicationDetails/BaseApplicationDetails.js";
146
+ import ApplicationDetails_default from "./components/management/ApplicationDetails/ApplicationDetails.js";
147
+ import BaseProjectList_default from "./components/management/ProjectList/BaseProjectList.js";
148
+ import ProjectList_default from "./components/management/ProjectList/ProjectList.js";
149
+ import BaseProjectCreate_default from "./components/management/ProjectCreate/BaseProjectCreate.js";
150
+ import ProjectCreate_default from "./components/management/ProjectCreate/ProjectCreate.js";
151
+ import BaseProjectDetails_default from "./components/management/ProjectDetails/BaseProjectDetails.js";
152
+ import ProjectDetails_default from "./components/management/ProjectDetails/ProjectDetails.js";
153
+ import BaseProjectSwitcher_default from "./components/management/ProjectSwitcher/BaseProjectSwitcher.js";
154
+ import ProjectSwitcher_default from "./components/management/ProjectSwitcher/ProjectSwitcher.js";
155
+ import BaseOrganizationUnitList_default from "./components/management/OrganizationUnitList/BaseOrganizationUnitList.js";
156
+ import OrganizationUnitList_default from "./components/management/OrganizationUnitList/OrganizationUnitList.js";
157
+ import BaseOrganizationUnitCreate_default from "./components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.js";
158
+ import OrganizationUnitCreate_default from "./components/management/OrganizationUnitCreate/OrganizationUnitCreate.js";
159
+ import BaseOrganizationUnitDetails_default from "./components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.js";
160
+ import OrganizationUnitDetails_default from "./components/management/OrganizationUnitDetails/OrganizationUnitDetails.js";
161
+ import BaseSharingPolicies_default from "./components/management/SharingPolicies/BaseSharingPolicies.js";
162
+ import SharingPolicies_default from "./components/management/SharingPolicies/SharingPolicies.js";
142
163
  import BaseChangeCredential_default from "./components/account/ChangeCredential/BaseChangeCredential.js";
143
164
  import updateMeCredentials_default from "./api/account/updateMeCredentials.js";
144
165
  import ChangeCredential_default from "./components/account/ChangeCredential/ChangeCredential.js";
166
+ import BaseOrganizationUnitSwitcher_default from "./components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.js";
167
+ import getAccessibleOrganizationUnits_default from "./api/account/getAccessibleOrganizationUnits.js";
168
+ import getOrganizationUnitSwitchErrorKey_default from "./utils/getOrganizationUnitSwitchErrorKey.js";
169
+ import OrganizationUnitSwitcher_default from "./components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.js";
145
170
  import BaseUserAvatar_default from "./components/account/UserAvatar/BaseUserAvatar.js";
146
171
  import UserAvatar_default from "./components/account/UserAvatar/UserAvatar.js";
147
172
  import BaseUserDropdown_default from "./components/account/UserDropdown/BaseUserDropdown.js";
@@ -154,6 +179,6 @@ import UserTypeSelect_default from "./components/primitives/UserTypeSelect/UserT
154
179
  import KeyValueInput_default from "./components/primitives/KeyValueInput/KeyValueInput.js";
155
180
  import Attribution_default from "./components/common/Attribution/Attribution.js";
156
181
  import BuildingAlt_default from "./components/primitives/Icons/BuildingAlt.js";
157
- import { ADMINISTRATION_FLOW_TYPE, ANONYMOUS_ANIMAL_ICONS, ANONYMOUS_ENTITY_ICONS, AVATAR_GRADIENT_COUNT, AVATAR_URI_SCHEME, AccountLifecycleFlowConfigKey, AdministrationFlowConfigKey, AdministrationFlowData, AdministrationFlowError, AdministrationFlowInput, AdministrationModes, AgentQueryKeys, ApplicationQueryKeys, AttributeVerificationConstants, CONSENT_INVALID_KEY_PREFIX, CONSENT_MODIFIED_KEY_PREFIX, EMOJI_URI_SCHEME, EmbeddedFlowActionVariant, EmbeddedFlowComponentType, EmbeddedFlowEventType, EmbeddedFlowTextVariant, EmbeddedRecoveryFlowStatus, EmbeddedRecoveryFlowType, EmbeddedSelfFlowStatus, EmbeddedSignInFlowStatus, EmbeddedSignInFlowType, EmbeddedSignUpFlowStatus, EmbeddedSignUpFlowType, GroupQueryKeys, RoleQueryKeys, ThunderIDRuntimeError, UserQueryKeys, UserSelectConstants, addGroupMembers, addRoleAssignments, applyGatewayConfiguration, buildAvatarSpec, countryCodeToFlagEmoji, createAction, createAgent, createAgentType, createApplication, createApplicationSharingPolicy, createConfigurationVersion, createConnection, createDesignTheme, createFlow, createGateway, createGatewaySecret, createGatewayVariable, createGroup, createLayout, createNotificationTemplate, createOrganizationUnit, createResource, createResourceServer, createRole, createSecret, createUser, createUserByPath, createUserSharingPolicy, createUserType, createVariable, deleteAction, deleteAgent, deleteAgentType, deleteApplication, deleteApplicationSharingPolicy, deleteConnection, deleteDesignTheme, deleteFlow, deleteGateway, deleteGatewaySecret, deleteGatewayVariable, deleteGroup, deleteImportedConfiguration, deleteLayout, deleteNotificationTemplate, deleteOrganizationUnit, deleteOrganizationUnitByPath, deleteResource, deleteResourceServer, deleteRole, deleteSecret, deleteTranslation, deleteTranslations, deleteUser, deleteUserSharingPolicy, deleteUserType, deleteVariable, deriveAvatarContent, executeAdministrationFlow, exportConfiguration, extractAvatarParamsFromUri, extractEmojiFromUri, findAdministrationFlows, generateAvatarDataUri, getAccountLifecycleActions, getAction, getActions, getActiveTheme, getAgent, getAgentGroups, getAgentName, getAgentRoles, getAgentType, getAgentTypes, getAgents, getApplication, getApplicationOverlayRules, getApplicationSharingPolicies, getApplicationSharingPolicy, getApplications, getConfigurationVersion, getConfigurationVersions, getConnection, getConnectionUsages, getConnections, getConnectionsMeta, getConsentElementDecision, getConsentInvalidKey, getConsentModifiedKey, getDesignTheme, getDesignThemeUsages, getDesignThemes, getFlow, getFlowUsages, getFlowVersion, getFlowVersions, getFlows, getGateway, getGatewayAppliedConfiguration, getGatewayAppliedVersion, getGatewayConfigurationDiff, getGatewaySecret, getGatewaySecrets, getGatewayVariable, getGatewayVariables, getGateways, getGroup, getGroupMembers, getGroups, getLanguages, getLayout, getLayoutUsages, getLayouts, getNotificationTemplate, getNotificationTemplates, getOrganizationUnit, getOrganizationUnitByPath, getOrganizationUnitChildren, getOrganizationUnitGroups, getOrganizationUnitRoles, getOrganizationUnitUsers, getOrganizationUnits, getResource, getResourceServer, getResourceServers, getResources, getRole, getRoleAssignments, getRoles, getSecret, getSecrets, getServerConfig, getServerConfigs, getTokenPermissions, getUser, getUserGroups, getUserOverlayRules, getUserSharingPolicies, getUserSharingPolicy, getUserType, getUserTypes, getUserUsages, getUsers, getUsersByPath, getVariable, getVariables, getVerifiedAttributes, hasPermission, http, importConfiguration, isAvatarUri, isEmojiUri, isVerifiableAttribute, navigate, normalizeSelectOptions, parseKeyValuePairs, pickAnonymousAvatarName, pickAnonymousEntityName, previewCimdDocument, regenerateAgentSecret, regenerateClientSecret, regenerateFlowSecret, removeGroupMembers, removeRoleAssignments, resolveAdministrationFlowHandles, resolveAdministrationFlowId, resolveAdministrationFlows, resolveDesign, resolveEmojiUrisInHtml, resolveFlowTemplateLiterals, resolveLocaleDisplayName, resolveLocaleEmoji, resolveLogoUri, resolveMeta, resolveTranslation, resolveTranslations, restoreFlowVersion, revertGatewayConfiguration, runAccountLifecycleAction, runAdministrationFlow, setTranslation, setTranslations, suspendAgent, suspendApplication, suspendUser, toSelectOption, toSelectOptions, toUserSelectOption, toUserSelectPage, unlockAgent, unlockUser, unsuspendAgent, unsuspendApplication, unsuspendUser, updateAction, updateAgent, updateAgentType, updateApplication, updateApplicationSharingPolicy, updateConnection, updateDesignTheme, updateFlow, updateGateway, updateGatewaySecret, updateGatewayVariable, updateGroup, updateLayout, updateNotificationTemplate, updateOrganizationUnit, updateOrganizationUnitByPath, updateResource, updateResourceServer, updateRole, updateSecret, updateServerConfig, updateUser, updateUserCredentials, updateUserSharingPolicy, updateUserType, updateVariable } from "@thunderid/browser";
182
+ import { ADMINISTRATION_FLOW_TYPE, ANONYMOUS_ANIMAL_ICONS, ANONYMOUS_ENTITY_ICONS, AVATAR_GRADIENT_COUNT, AVATAR_URI_SCHEME, AccountLifecycleFlowConfigKey, AdministrationFlowConfigKey, AdministrationFlowData, AdministrationFlowError, AdministrationFlowInput, AdministrationModes, AgentQueryKeys, ApplicationQueryKeys, AttributeVerificationConstants, CONSENT_INVALID_KEY_PREFIX, CONSENT_MODIFIED_KEY_PREFIX, EMOJI_URI_SCHEME, EmbeddedFlowActionVariant, EmbeddedFlowComponentType, EmbeddedFlowEventType, EmbeddedFlowTextVariant, EmbeddedRecoveryFlowStatus, EmbeddedRecoveryFlowType, EmbeddedSelfFlowStatus, EmbeddedSignInFlowStatus, EmbeddedSignInFlowType, EmbeddedSignUpFlowStatus, EmbeddedSignUpFlowType, GroupQueryKeys, OrganizationUnitSwitchErrorCodes, RoleQueryKeys, ThunderIDRuntimeError, UserQueryKeys, UserSelectConstants, addGroupMembers, addRoleAssignments, applyGatewayConfiguration, buildAvatarSpec, countryCodeToFlagEmoji, createAction, createAgent, createAgentType, createApplication, createApplicationSharingPolicy, createAuthorizationDetailType, createConfigurationVersion, createConnection, createCredentialConfiguration, createDesignTheme, createFlow, createFlowSharingPolicy, createGateway, createGatewaySecret, createGatewayVariable, createGroup, createGroupByPath, createLayout, createNotificationTemplate, createOrganizationUnit, createPresentationDefinition, createProject, createResource, createResourceServer, createRole, createRoleSharingPolicy, createSecret, createUser, createUserByPath, createUserSharingPolicy, createUserType, createVariable, deleteAction, deleteAgent, deleteAgentType, deleteApplication, deleteApplicationSharingPolicy, deleteAuthorizationDetailType, deleteClientRegistration, deleteConnection, deleteCredentialConfiguration, deleteDesignTheme, deleteFlow, deleteFlowSharingPolicy, deleteGateway, deleteGatewaySecret, deleteGatewayVariable, deleteGroup, deleteImportedConfiguration, deleteLayout, deleteNotificationTemplate, deleteOrganizationUnit, deleteOrganizationUnitByPath, deletePresentationDefinition, deleteProject, deleteResource, deleteResourceServer, deleteRole, deleteRoleSharingPolicy, deleteSecret, deleteTranslation, deleteTranslations, deleteUser, deleteUserSharingPolicy, deleteUserType, deleteVariable, deriveAvatarContent, executeAdministrationFlow, exportConfiguration, extractAvatarParamsFromUri, extractEmojiFromUri, findAdministrationFlows, generateAvatarDataUri, getAccountLifecycleActions, getAction, getActions, getActiveTheme, getAgent, getAgentGroups, getAgentName, getAgentRoles, getAgentType, getAgentTypes, getAgents, getApplication, getApplicationOverlayRules, getApplicationSharingPolicies, getApplicationSharingPolicy, getApplications, getAuthorizationDetailType, getAuthorizationDetailTypes, getClientRegistration, getConfigurationVersion, getConfigurationVersions, getConnection, getConnectionUsages, getConnections, getConnectionsMeta, getConsentElementDecision, getConsentInvalidKey, getConsentModifiedKey, getCredentialConfiguration, getCredentialConfigurations, getCurrentOrganizationUnitFromClaims, getDesignTheme, getDesignThemeUsages, getDesignThemes, getFlow, getFlowOverlayRules, getFlowSharingPolicies, getFlowSharingPolicy, getFlowUsages, getFlowVariables, getFlowVersion, getFlowVersions, getFlows, getGateway, getGatewayAppliedConfiguration, getGatewayAppliedVersion, getGatewayConfigurationDiff, getGatewayMaster, getGatewayMasterHistory, getGatewayMasterResource, getGatewaySecret, getGatewaySecrets, getGatewayVariable, getGatewayVariables, getGateways, getGroup, getGroupMembers, getGroups, getGroupsByPath, getLanguages, getLayout, getLayoutUsages, getLayouts, getNotificationTemplate, getNotificationTemplates, getOrganizationUnit, getOrganizationUnitByPath, getOrganizationUnitChildren, getOrganizationUnitGroups, getOrganizationUnitRoles, getOrganizationUnitUsers, getOrganizationUnits, getPresentationDefinition, getPresentationDefinitions, getProject, getProjects, getResource, getResourceServer, getResourceServerPermissions, getResourceServers, getResources, getRole, getRoleAssignments, getRoleOverlayRules, getRoleSharingPolicies, getRoleSharingPolicy, getRoles, getSecret, getSecrets, getServerConfig, getServerConfigs, getSupportedAuthorizationDetailsType, getSupportedAuthorizationDetailsTypes, getTokenPermissions, getUser, getUserGroups, getUserOverlayRules, getUserSharingPolicies, getUserSharingPolicy, getUserType, getUserTypes, getUserUsages, getUsers, getUsersByPath, getVariable, getVariables, getVerifiedAttributes, hasPermission, http, importConfiguration, isAvatarUri, isEmojiUri, isVerifiableAttribute, navigate, normalizeSelectOptions, parseKeyValuePairs, pickAnonymousAvatarName, pickAnonymousEntityName, previewCimdDocument, regenerateAgentSecret, regenerateClientSecret, regenerateFlowSecret, registerClient, removeGroupMembers, removeRoleAssignments, resolveAdministrationFlowHandles, resolveAdministrationFlowId, resolveAdministrationFlows, resolveDesign, resolveEmojiUrisInHtml, resolveFlowTemplateLiterals, resolveLocaleDisplayName, resolveLocaleEmoji, resolveLogoUri, resolveMeta, resolveTranslation, resolveTranslations, restoreFlowVersion, revertGatewayConfiguration, runAccountLifecycleAction, runAdministrationFlow, setTranslation, setTranslations, suspendAgent, suspendApplication, suspendUser, toSelectOption, toSelectOptions, toUserSelectOption, toUserSelectPage, unlockAgent, unlockUser, unsuspendAgent, unsuspendApplication, unsuspendUser, updateAction, updateAgent, updateAgentType, updateApplication, updateApplicationSharingPolicy, updateAuthorizationDetailType, updateClientRegistration, updateConnection, updateCredentialConfiguration, updateDesignTheme, updateFlow, updateFlowSharingPolicy, updateFlowVariables, updateGateway, updateGatewaySecret, updateGatewayVariable, updateGroup, updateLayout, updateNotificationTemplate, updateOrganizationUnit, updateOrganizationUnitByPath, updatePresentationDefinition, updateProject, updateResource, updateResourceServer, updateRole, updateRoleSharingPolicy, updateSecret, updateServerConfig, updateUser, updateUserCredentials, updateUserSharingPolicy, updateUserType, updateVariable, verifyDeviceCode } from "@thunderid/browser";
158
183
 
159
- export { ADMINISTRATION_FLOW_TYPE, ANONYMOUS_ANIMAL_ICONS, ANONYMOUS_ENTITY_ICONS, AVATAR_GRADIENT_COUNT, AVATAR_URI_SCHEME, AcceptInvite_default as AcceptInvite, AccountLifecycleFlowConfigKey, AdministrationFlowConfigKey, AdministrationFlowData, AdministrationFlowError, AdministrationFlowInput, AdministrationModes, AgentCreate_default as AgentCreate, AgentDetails_default as AgentDetails, AgentList_default as AgentList, AgentQueryKeys, Alert_default as Alert, ApplicationCreate_default as ApplicationCreate, ApplicationDetails_default as ApplicationDetails, ApplicationList_default as ApplicationList, ApplicationQueryKeys, AttributeVerificationConstants, Attribution_default as Attribution, AuthFlowSelect_default as AuthFlowSelect, BaseAcceptInvite_default as BaseAcceptInvite, BaseAgentCreate_default as BaseAgentCreate, BaseAgentDetails_default as BaseAgentDetails, BaseAgentList_default as BaseAgentList, BaseApplicationCreate_default as BaseApplicationCreate, BaseApplicationDetails_default as BaseApplicationDetails, BaseApplicationList_default as BaseApplicationList, BaseAuthFlowSelect_default as BaseAuthFlowSelect, BaseChangeCredential_default as BaseChangeCredential, BaseDeviceGrant_default as BaseDeviceGrant, BaseGroupCreate_default as BaseGroupCreate, BaseGroupList_default as BaseGroupList, BaseGroupMembers_default as BaseGroupMembers, BaseInviteUser_default as BaseInviteUser, BaseLanguageSwitcher_default as BaseLanguageSwitcher, BaseRecovery_default as BaseRecovery, BaseRoleAssignments_default as BaseRoleAssignments, BaseRoleCreate_default as BaseRoleCreate, BaseRoleList_default as BaseRoleList, BaseRolePermissions_default as BaseRolePermissions, BaseSignIn_default as BaseSignIn, BaseSignInButton_default as BaseSignInButton, BaseSignOutButton_default as BaseSignOutButton, BaseSignUp_default as BaseSignUp, BaseSignUpButton_default as BaseSignUpButton, BaseUser_default as BaseUser, BaseUserAvatar_default as BaseUserAvatar, BaseUserCreate_default as BaseUserCreate, BaseUserDetails_default as BaseUserDetails, BaseUserDropdown_default as BaseUserDropdown, BaseUserList_default as BaseUserList, BaseUserProfile_default as BaseUserProfile, BaseUserSelect_default as BaseUserSelect, BaseUserTypeSelect_default as BaseUserTypeSelect, BaseVerifyAttribute_default as BaseVerifyAttribute, BuildingAlt_default as BuildingAlt, Button_default as Button, CONSENT_DETAIL_DISPLAY_LIMITS, CONSENT_INVALID_KEY_PREFIX, CONSENT_MODIFIED_KEY_PREFIX, Callback, Card_default as Card, ChangeCredential_default as ChangeCredential, Checkbox_default as Checkbox, CircleAlert_default as CircleAlert, CircleCheck_default as CircleCheck, Consent_default as Consent, ConsentAuthorizationDetail_default as ConsentAuthorizationDetail, ConsentCheckboxList_default as ConsentCheckboxList, ConsentDetailField_default as ConsentDetailField, DataTable_default as DataTable, DatePicker_default as DatePicker, DeviceGrant_default as DeviceGrant, Divider_default as Divider, EMOJI_URI_SCHEME, EmbeddedFlowActionVariant, EmbeddedFlowComponentType, EmbeddedFlowEventType, EmbeddedFlowTextVariant, EmbeddedRecoveryFlowStatus, EmbeddedRecoveryFlowType, EmbeddedSelfFlowStatus, EmbeddedSignInFlowStatus, EmbeddedSignInFlowType, EmbeddedSignUpFlowStatus, EmbeddedSignUpFlowType, Eye_default as Eye, EyeOff_default as EyeOff, FacebookButton_default as FacebookButton, FieldFactory, FlowContext_default as FlowContext, FlowMetaProvider_default as FlowMetaProvider, FlowProvider_default as FlowProvider, FlowTimer_default as FlowTimer, FormControl_default as FormControl, GitHubButton_default as GitHubButton, GoogleButton_default as GoogleButton, GroupCreate_default as GroupCreate, GroupList_default as GroupList, GroupMembers_default as GroupMembers, GroupQueryKeys, I18nContext_default as I18nContext, I18nProvider_default as I18nProvider, Info_default as Info, InputLabel_default as InputLabel, InviteUser_default as InviteUser, KeyValueInput_default as KeyValueInput, KeyValueList_default as KeyValueList, LanguageSwitcher_default as LanguageSwitcher, LinkedInButton_default as LinkedInButton, Loading_default as Loading, LogOut_default as LogOut, Logo_default as Logo, MicrosoftButton_default as MicrosoftButton, MultiInput_default as MultiInput, OAuthCallback, OtpField_default as OtpField, PasswordField_default as PasswordField, Recovery_default as Recovery, RoleAssignments_default as RoleAssignments, RoleCreate_default as RoleCreate, RoleList_default as RoleList, RolePermissions_default as RolePermissions, RoleQueryKeys, Select_default as Select, SignIn_default as SignIn, SignInButton_default as SignInButton, SignInWithEthereumButton_default as SignInWithEthereumButton, SignOutButton_default as SignOutButton, SignUp_default as SignUp, SignUpButton_default as SignUpButton, SignedIn_default as SignedIn, SignedOut_default as SignedOut, Spinner_default as Spinner, TextField_default as TextField, ThemeContext_default as ThemeContext, ThemeProvider_default as ThemeProvider, ThunderIDContext_default as ThunderIDContext, ThunderIDProvider_default as ThunderIDProvider, ThunderIDRuntimeError, Toggle_default as Toggle, TokenCallback, TriangleAlert_default as TriangleAlert, Typography_default as Typography, User_default as User, UserAvatar_default as UserAvatar, UserContext_default as UserContext, UserCreate_default as UserCreate, UserDetails_default as UserDetails, UserDropdown_default as UserDropdown, User_default$1 as UserIcon, UserList_default as UserList, UserProfile_default as UserProfile, UserProvider_default as UserProvider, UserQueryKeys, UserSelect_default as UserSelect, UserSelectConstants, UserTypeSelect_default as UserTypeSelect, VerifyAttribute_default as VerifyAttribute, addGroupMembers, addRoleAssignments, applyGatewayConfiguration, buildAvatarSpec, countryCodeToFlagEmoji, createAction, createAgent, createAgentType, createApplication, createApplicationSharingPolicy, createConfigurationVersion, createConnection, createDesignTheme, createField, createFlow, createGateway, createGatewaySecret, createGatewayVariable, createGroup, createLayout, createNotificationTemplate, createOrganizationUnit, createResource, createResourceServer, createRole, createSecret, createUser, createUserByPath, createUserSharingPolicy, createUserType, createVariable, deleteAction, deleteAgent, deleteAgentType, deleteApplication, deleteApplicationSharingPolicy, deleteConnection, deleteDesignTheme, deleteFlow, deleteGateway, deleteGatewaySecret, deleteGatewayVariable, deleteGroup, deleteImportedConfiguration, deleteLayout, deleteNotificationTemplate, deleteOrganizationUnit, deleteOrganizationUnitByPath, deleteResource, deleteResourceServer, deleteRole, deleteSecret, deleteTranslation, deleteTranslations, deleteUser, deleteUserSharingPolicy, deleteUserType, deleteVariable, deriveAvatarContent, executeAdministrationFlow, executeEmbeddedSelfFlow_default as executeEmbeddedSelfFlow, exportConfiguration, extractAvatarParamsFromUri, extractEmojiFromUri, extractErrorMessage, findAdministrationFlows, formatConsentDetailValue_default as formatConsentDetailValue, generateAvatarDataUri, getAccountLifecycleActions, getAction, getActions, getActiveTheme, getAgent, getAgentGroups, getAgentName, getAgentRoles, getAgentType, getAgentTypes, getAgents, getApplication, getApplicationOverlayRules, getApplicationSharingPolicies, getApplicationSharingPolicy, getApplications, getConfigurationVersion, getConfigurationVersions, getConnection, getConnectionUsages, getConnections, getConnectionsMeta, getConsentDetailLayout_default as getConsentDetailLayout, getConsentElementDecision, getConsentInvalidKey, getConsentModifiedKey, getConsentOptionalKey, getDesignTheme, getDesignThemeUsages, getDesignThemes, getFlow, getFlowUsages, getFlowVersion, getFlowVersions, getFlows, getGateway, getGatewayAppliedConfiguration, getGatewayAppliedVersion, getGatewayConfigurationDiff, getGatewaySecret, getGatewaySecrets, getGatewayVariable, getGatewayVariables, getGateways, getGroup, getGroupMembers, getGroups, getLanguages, getLayout, getLayoutUsages, getLayouts, getUsersMe_default as getMeProfile, getNotificationTemplate, getNotificationTemplates, getOrganizationUnit, getOrganizationUnitByPath, getOrganizationUnitChildren, getOrganizationUnitGroups, getOrganizationUnitRoles, getOrganizationUnitUsers, getOrganizationUnits, getResource, getResourceServer, getResourceServers, getResources, getRole, getRoleAssignments, getRoles, getSecret, getSecrets, getServerConfig, getServerConfigs, getTokenPermissions, getUser, getUserGroups, getUserOverlayRules, getUserSharingPolicies, getUserSharingPolicy, getUserType, getUserTypes, getUserUsages, getUsers, getUsersByPath, getUsersMeMeta_default as getUsersMeMeta, getVariable, getVariables, getVerifiedAttributes, hasPermission, http, importConfiguration, isAvatarUri, isConsentApprovalBlocked_default as isConsentApprovalBlocked, isConsentDetailStructured_default as isConsentDetailStructured, isConsentDetailTextClamped_default as isConsentDetailTextClamped, isEmojiUri, isVerifiableAttribute, navigate, normalizeFlowResponse, normalizeSelectOptions, parseKeyValuePairs, pickAnonymousAvatarName, pickAnonymousEntityName, previewCimdDocument, regenerateAgentSecret, regenerateClientSecret, regenerateFlowSecret, removeGroupMembers, removeRoleAssignments, resolveAdministrationFlowHandles, resolveAdministrationFlowId, resolveAdministrationFlows, resolveDesign, resolveEmojiUrisInHtml, resolveFlowTemplateLiterals, resolveLocaleDisplayName, resolveLocaleEmoji, resolveLogoUri, resolveMeta, resolveTranslation, resolveTranslations, restoreFlowVersion, revertGatewayConfiguration, runAccountLifecycleAction, runAdministrationFlow, setTranslation, setTranslations, suspendAgent, suspendApplication, suspendUser, toSelectOption, toSelectOptions, toUserSelectOption, toUserSelectPage, unlockAgent, unlockUser, unsuspendAgent, unsuspendApplication, unsuspendUser, updateAction, updateAgent, updateAgentType, updateApplication, updateApplicationSharingPolicy, updateConnection, updateDesignTheme, updateFlow, updateGateway, updateGatewaySecret, updateGatewayVariable, updateGroup, updateLayout, updateMeCredentials_default as updateMeCredentials, updateMeProfile_default as updateMeProfile, updateNotificationTemplate, updateOrganizationUnit, updateOrganizationUnitByPath, updateResource, updateResourceServer, updateRole, updateSecret, updateServerConfig, updateUser, updateUserCredentials, updateUserSharingPolicy, updateUserType, updateVariable, useBrowserUrl_default as useBrowserUrl, useConsentDetailField_default as useConsentDetailField, useFetchAuthFlows_default as useFetchAuthFlows, useFetchUserTypes_default as useFetchUserTypes, useFetchUsers_default as useFetchUsers, useFlow_default as useFlow, useForm_default as useForm, useGrantedPermissions_default as useGrantedPermissions, useI18n_default as useI18n, useInfiniteOptions_default as useInfiniteOptions, useManagementRequestConfig_default as useManagementRequestConfig, useOAuthCallback, useTheme_default as useTheme, useThunderID_default as useThunderID, useTranslation_default as useTranslation, useUser_default as useUser, validateFieldValue };
184
+ export { ADMINISTRATION_FLOW_TYPE, ANONYMOUS_ANIMAL_ICONS, ANONYMOUS_ENTITY_ICONS, AVATAR_GRADIENT_COUNT, AVATAR_URI_SCHEME, AcceptInvite_default as AcceptInvite, AccountLifecycleFlowConfigKey, AdministrationFlowConfigKey, AdministrationFlowData, AdministrationFlowError, AdministrationFlowInput, AdministrationModes, AgentCreate_default as AgentCreate, AgentDetails_default as AgentDetails, AgentList_default as AgentList, AgentQueryKeys, Alert_default as Alert, ApplicationCreate_default as ApplicationCreate, ApplicationDetails_default as ApplicationDetails, ApplicationList_default as ApplicationList, ApplicationQueryKeys, AttributeVerificationConstants, Attribution_default as Attribution, AuthFlowSelect_default as AuthFlowSelect, BaseAcceptInvite_default as BaseAcceptInvite, BaseAgentCreate_default as BaseAgentCreate, BaseAgentDetails_default as BaseAgentDetails, BaseAgentList_default as BaseAgentList, BaseApplicationCreate_default as BaseApplicationCreate, BaseApplicationDetails_default as BaseApplicationDetails, BaseApplicationList_default as BaseApplicationList, BaseAuthFlowSelect_default as BaseAuthFlowSelect, BaseChangeCredential_default as BaseChangeCredential, BaseDeviceGrant_default as BaseDeviceGrant, BaseGroupCreate_default as BaseGroupCreate, BaseGroupDetails_default as BaseGroupDetails, BaseGroupList_default as BaseGroupList, BaseGroupMembers_default as BaseGroupMembers, BaseInviteUser_default as BaseInviteUser, BaseLanguageSwitcher_default as BaseLanguageSwitcher, BaseOrganizationUnitCreate_default as BaseOrganizationUnitCreate, BaseOrganizationUnitDetails_default as BaseOrganizationUnitDetails, BaseOrganizationUnitList_default as BaseOrganizationUnitList, BaseOrganizationUnitSwitcher_default as BaseOrganizationUnitSwitcher, BaseProjectCreate_default as BaseProjectCreate, BaseProjectDetails_default as BaseProjectDetails, BaseProjectList_default as BaseProjectList, BaseProjectSwitcher_default as BaseProjectSwitcher, BaseRecovery_default as BaseRecovery, BaseRoleAssignments_default as BaseRoleAssignments, BaseRoleCreate_default as BaseRoleCreate, BaseRoleDetails_default as BaseRoleDetails, BaseRoleList_default as BaseRoleList, BaseRolePermissions_default as BaseRolePermissions, BaseSharingPolicies_default as BaseSharingPolicies, BaseSignIn_default as BaseSignIn, BaseSignInButton_default as BaseSignInButton, BaseSignOutButton_default as BaseSignOutButton, BaseSignUp_default as BaseSignUp, BaseSignUpButton_default as BaseSignUpButton, BaseUser_default as BaseUser, BaseUserAvatar_default as BaseUserAvatar, BaseUserCreate_default as BaseUserCreate, BaseUserDetails_default as BaseUserDetails, BaseUserDropdown_default as BaseUserDropdown, BaseUserList_default as BaseUserList, BaseUserProfile_default as BaseUserProfile, BaseUserSelect_default as BaseUserSelect, BaseUserTypeSelect_default as BaseUserTypeSelect, BaseVerifyAttribute_default as BaseVerifyAttribute, BuildingAlt_default as BuildingAlt, Button_default as Button, CONSENT_DETAIL_DISPLAY_LIMITS, CONSENT_INVALID_KEY_PREFIX, CONSENT_MODIFIED_KEY_PREFIX, Callback, Card_default as Card, ChangeCredential_default as ChangeCredential, Checkbox_default as Checkbox, CircleAlert_default as CircleAlert, CircleCheck_default as CircleCheck, Consent_default as Consent, ConsentAuthorizationDetail_default as ConsentAuthorizationDetail, ConsentCheckboxList_default as ConsentCheckboxList, ConsentDetailField_default as ConsentDetailField, DataTable_default as DataTable, DatePicker_default as DatePicker, DeviceGrant_default as DeviceGrant, Divider_default as Divider, EMOJI_URI_SCHEME, EmbeddedFlowActionVariant, EmbeddedFlowComponentType, EmbeddedFlowEventType, EmbeddedFlowTextVariant, EmbeddedRecoveryFlowStatus, EmbeddedRecoveryFlowType, EmbeddedSelfFlowStatus, EmbeddedSignInFlowStatus, EmbeddedSignInFlowType, EmbeddedSignUpFlowStatus, EmbeddedSignUpFlowType, Eye_default as Eye, EyeOff_default as EyeOff, FacebookButton_default as FacebookButton, FieldFactory, FlowContext_default as FlowContext, FlowMetaProvider_default as FlowMetaProvider, FlowProvider_default as FlowProvider, FlowTimer_default as FlowTimer, FormControl_default as FormControl, GitHubButton_default as GitHubButton, GoogleButton_default as GoogleButton, GroupCreate_default as GroupCreate, GroupDetails_default as GroupDetails, GroupList_default as GroupList, GroupMembers_default as GroupMembers, GroupQueryKeys, I18nContext_default as I18nContext, I18nProvider_default as I18nProvider, Info_default as Info, InputLabel_default as InputLabel, InviteUser_default as InviteUser, KeyValueInput_default as KeyValueInput, KeyValueList_default as KeyValueList, LanguageSwitcher_default as LanguageSwitcher, LinkedInButton_default as LinkedInButton, Loading_default as Loading, LogOut_default as LogOut, Logo_default as Logo, MicrosoftButton_default as MicrosoftButton, MultiInput_default as MultiInput, OAuthCallback, OrganizationUnitCreate_default as OrganizationUnitCreate, OrganizationUnitDetails_default as OrganizationUnitDetails, OrganizationUnitList_default as OrganizationUnitList, OrganizationUnitSwitchErrorCodes, OrganizationUnitSwitcher_default as OrganizationUnitSwitcher, OtpField_default as OtpField, PasswordField_default as PasswordField, ProjectCreate_default as ProjectCreate, ProjectDetails_default as ProjectDetails, ProjectList_default as ProjectList, ProjectSwitcher_default as ProjectSwitcher, Recovery_default as Recovery, RoleAssignments_default as RoleAssignments, RoleCreate_default as RoleCreate, RoleDetails_default as RoleDetails, RoleList_default as RoleList, RolePermissions_default as RolePermissions, RoleQueryKeys, Select_default as Select, SharingPolicies_default as SharingPolicies, SignIn_default as SignIn, SignInButton_default as SignInButton, SignInWithEthereumButton_default as SignInWithEthereumButton, SignOutButton_default as SignOutButton, SignUp_default as SignUp, SignUpButton_default as SignUpButton, SignedIn_default as SignedIn, SignedOut_default as SignedOut, Spinner_default as Spinner, TextField_default as TextField, ThemeContext_default as ThemeContext, ThemeProvider_default as ThemeProvider, ThunderIDContext_default as ThunderIDContext, ThunderIDProvider_default as ThunderIDProvider, ThunderIDRuntimeError, Toggle_default as Toggle, TokenCallback, TriangleAlert_default as TriangleAlert, Typography_default as Typography, User_default as User, UserAvatar_default as UserAvatar, UserContext_default as UserContext, UserCreate_default as UserCreate, UserDetails_default as UserDetails, UserDropdown_default as UserDropdown, User_default$1 as UserIcon, UserList_default as UserList, UserProfile_default as UserProfile, UserProvider_default as UserProvider, UserQueryKeys, UserSelect_default as UserSelect, UserSelectConstants, UserTypeSelect_default as UserTypeSelect, VerifyAttribute_default as VerifyAttribute, addGroupMembers, addRoleAssignments, applyGatewayConfiguration, buildAvatarSpec, countryCodeToFlagEmoji, createAction, createAgent, createAgentType, createApplication, createApplicationSharingPolicy, createAuthorizationDetailType, createConfigurationVersion, createConnection, createCredentialConfiguration, createDesignTheme, createField, createFlow, createFlowSharingPolicy, createGateway, createGatewaySecret, createGatewayVariable, createGroup, createGroupByPath, createLayout, createNotificationTemplate, createOrganizationUnit, createPresentationDefinition, createProject, createResource, createResourceServer, createRole, createRoleSharingPolicy, createSecret, createUser, createUserByPath, createUserSharingPolicy, createUserType, createVariable, deleteAction, deleteAgent, deleteAgentType, deleteApplication, deleteApplicationSharingPolicy, deleteAuthorizationDetailType, deleteClientRegistration, deleteConnection, deleteCredentialConfiguration, deleteDesignTheme, deleteFlow, deleteFlowSharingPolicy, deleteGateway, deleteGatewaySecret, deleteGatewayVariable, deleteGroup, deleteImportedConfiguration, deleteLayout, deleteNotificationTemplate, deleteOrganizationUnit, deleteOrganizationUnitByPath, deletePresentationDefinition, deleteProject, deleteResource, deleteResourceServer, deleteRole, deleteRoleSharingPolicy, deleteSecret, deleteTranslation, deleteTranslations, deleteUser, deleteUserSharingPolicy, deleteUserType, deleteVariable, deriveAvatarContent, executeAdministrationFlow, executeEmbeddedSelfFlow_default as executeEmbeddedSelfFlow, exportConfiguration, extractAvatarParamsFromUri, extractEmojiFromUri, extractErrorMessage, findAdministrationFlows, formatConsentDetailValue_default as formatConsentDetailValue, generateAvatarDataUri, getAccessibleOrganizationUnits_default as getAccessibleOrganizationUnits, getAccountLifecycleActions, getAction, getActions, getActiveTheme, getAgent, getAgentGroups, getAgentName, getAgentRoles, getAgentType, getAgentTypes, getAgents, getApplication, getApplicationOverlayRules, getApplicationSharingPolicies, getApplicationSharingPolicy, getApplications, getAuthorizationDetailType, getAuthorizationDetailTypes, getClientRegistration, getConfigurationVersion, getConfigurationVersions, getConnection, getConnectionUsages, getConnections, getConnectionsMeta, getConsentDetailLayout_default as getConsentDetailLayout, getConsentElementDecision, getConsentInvalidKey, getConsentModifiedKey, getConsentOptionalKey, getCredentialConfiguration, getCredentialConfigurations, getCurrentOrganizationUnitFromClaims, getDesignTheme, getDesignThemeUsages, getDesignThemes, getFlow, getFlowOverlayRules, getFlowSharingPolicies, getFlowSharingPolicy, getFlowUsages, getFlowVariables, getFlowVersion, getFlowVersions, getFlows, getGateway, getGatewayAppliedConfiguration, getGatewayAppliedVersion, getGatewayConfigurationDiff, getGatewayMaster, getGatewayMasterHistory, getGatewayMasterResource, getGatewaySecret, getGatewaySecrets, getGatewayVariable, getGatewayVariables, getGateways, getGroup, getGroupMembers, getGroups, getGroupsByPath, getLanguages, getLayout, getLayoutUsages, getLayouts, getUsersMe_default as getMeProfile, getNotificationTemplate, getNotificationTemplates, getOrganizationUnit, getOrganizationUnitByPath, getOrganizationUnitChildren, getOrganizationUnitGroups, getOrganizationUnitRoles, getOrganizationUnitSwitchErrorKey_default as getOrganizationUnitSwitchErrorKey, getOrganizationUnitUsers, getOrganizationUnits, getPresentationDefinition, getPresentationDefinitions, getProject, getProjects, getResource, getResourceServer, getResourceServerPermissions, getResourceServers, getResources, getRole, getRoleAssignments, getRoleOverlayRules, getRoleSharingPolicies, getRoleSharingPolicy, getRoles, getSecret, getSecrets, getServerConfig, getServerConfigs, getSupportedAuthorizationDetailsType, getSupportedAuthorizationDetailsTypes, getTokenPermissions, getUser, getUserGroups, getUserOverlayRules, getUserSharingPolicies, getUserSharingPolicy, getUserType, getUserTypes, getUserUsages, getUsers, getUsersByPath, getUsersMeMeta_default as getUsersMeMeta, getVariable, getVariables, getVerifiedAttributes, hasPermission, http, importConfiguration, isAvatarUri, isConsentApprovalBlocked_default as isConsentApprovalBlocked, isConsentDetailStructured_default as isConsentDetailStructured, isConsentDetailTextClamped_default as isConsentDetailTextClamped, isEmojiUri, isVerifiableAttribute, navigate, normalizeFlowResponse, normalizeSelectOptions, parseKeyValuePairs, pickAnonymousAvatarName, pickAnonymousEntityName, previewCimdDocument, regenerateAgentSecret, regenerateClientSecret, regenerateFlowSecret, registerClient, removeGroupMembers, removeRoleAssignments, resolveAdministrationFlowHandles, resolveAdministrationFlowId, resolveAdministrationFlows, resolveDesign, resolveEmojiUrisInHtml, resolveFlowTemplateLiterals, resolveLocaleDisplayName, resolveLocaleEmoji, resolveLogoUri, resolveMeta, resolveTranslation, resolveTranslations, restoreFlowVersion, revertGatewayConfiguration, runAccountLifecycleAction, runAdministrationFlow, setTranslation, setTranslations, suspendAgent, suspendApplication, suspendUser, toSelectOption, toSelectOptions, toUserSelectOption, toUserSelectPage, unlockAgent, unlockUser, unsuspendAgent, unsuspendApplication, unsuspendUser, updateAction, updateAgent, updateAgentType, updateApplication, updateApplicationSharingPolicy, updateAuthorizationDetailType, updateClientRegistration, updateConnection, updateCredentialConfiguration, updateDesignTheme, updateFlow, updateFlowSharingPolicy, updateFlowVariables, updateGateway, updateGatewaySecret, updateGatewayVariable, updateGroup, updateLayout, updateMeCredentials_default as updateMeCredentials, updateMeProfile_default as updateMeProfile, updateNotificationTemplate, updateOrganizationUnit, updateOrganizationUnitByPath, updatePresentationDefinition, updateProject, updateResource, updateResourceServer, updateRole, updateRoleSharingPolicy, updateSecret, updateServerConfig, updateUser, updateUserCredentials, updateUserSharingPolicy, updateUserType, updateVariable, useBrowserUrl_default as useBrowserUrl, useConsentDetailField_default as useConsentDetailField, useCurrentProjectState_default as useCurrentProjectState, useFetchAuthFlows_default as useFetchAuthFlows, useFetchUserTypes_default as useFetchUserTypes, useFetchUsers_default as useFetchUsers, useFlow_default as useFlow, useForm_default as useForm, useGrantedPermissions_default as useGrantedPermissions, useI18n_default as useI18n, useInfiniteOptions_default as useInfiniteOptions, useManagementRequestConfig_default as useManagementRequestConfig, useOAuthCallback, useTheme_default as useTheme, useThunderID_default as useThunderID, useTranslation_default as useTranslation, useUser_default as useUser, validateFieldValue, verifyDeviceCode };
@@ -81,6 +81,13 @@ export declare const transformComponents: (response: any, t: UseTranslation["t"]
81
81
  * 4. Generic translated fallback via `defaultErrorKey`.
82
82
  */
83
83
  export declare const extractErrorMessage: (error: FlowErrorResponse | any, t: UseTranslation["t"], defaultErrorKey?: string) => string;
84
+ /** Builds an SDK-raised error with the current translator, so it follows a language change. */
85
+ export type FlowErrorBuilder = (t: UseTranslation['t']) => Error;
86
+ /**
87
+ * Resolves a stored flow error source with the current translator. A builder is called, an Error with a
88
+ * message is kept as-is so fields like `code` survive, and anything else goes through `extractErrorMessage`.
89
+ */
90
+ export declare const resolveFlowError: (source: unknown, t: UseTranslation["t"]) => Error;
84
91
  /**
85
92
  * Check if a response is an error response and extract the error message.
86
93
  * This function identifies error responses by checking for ERROR status and failure reasons.
@@ -1 +1 @@
1
- {"version":3,"file":"flowTransformer.d.ts","sourceRoot":"","sources":["../../src/utils/flowTransformer.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EAEZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,WAAW,CAAC;QACzB,OAAO,EAAE,WAAW,CAAC;KACtB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAmHD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,GAAG,EACb,GAAG,cAAc,CAAC,GAAG,CAAC,EACtB,6BAA0B,EAC1B,OAAO,oBAAoB,GAAG,IAAI,KACjC,qBAAqB,EAsBvB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,GAC9B,OAAO,iBAAiB,GAAG,GAAG,EAC9B,GAAG,cAAc,CAAC,GAAG,CAAC,EACtB,wBAAuC,KACtC,MAsCF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAChC,UAAU,GAAG,EACb,GAAG,cAAc,CAAC,GAAG,CAAC,EACtB,wBAAuC,KACtC,MAAM,GAAG,IAMX,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,GAChC,UAAU,GAAG,EACb,GAAG,cAAc,CAAC,GAAG,CAAC,EACtB,UAAS,oBAAyB,EAClC,OAAO,oBAAoB,GAAG,IAAI,KACjC;IACD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,UAAU,EAAE,qBAAqB,EAAE,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;CA8BrB,CAAC"}
1
+ {"version":3,"file":"flowTransformer.d.ts","sourceRoot":"","sources":["../../src/utils/flowTransformer.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EAEZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,WAAW,CAAC;QACzB,OAAO,EAAE,WAAW,CAAC;KACtB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAmHD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,GAAG,EACb,GAAG,cAAc,CAAC,GAAG,CAAC,EACtB,6BAA0B,EAC1B,OAAO,oBAAoB,GAAG,IAAI,KACjC,qBAAqB,EAsBvB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,GAC9B,OAAO,iBAAiB,GAAG,GAAG,EAC9B,GAAG,cAAc,CAAC,GAAG,CAAC,EACtB,wBAAuC,KACtC,MAsCF,CAAC;AAEF,+FAA+F;AAC/F,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,OAAO,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,KAAG,KAM1E,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAChC,UAAU,GAAG,EACb,GAAG,cAAc,CAAC,GAAG,CAAC,EACtB,wBAAuC,KACtC,MAAM,GAAG,IAMX,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,GAChC,UAAU,GAAG,EACb,GAAG,cAAc,CAAC,GAAG,CAAC,EACtB,UAAS,oBAAyB,EAClC,OAAO,oBAAoB,GAAG,IAAI,KACjC;IACD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,UAAU,EAAE,qBAAqB,EAAE,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;CA8BrB,CAAC"}
@@ -114,6 +114,14 @@ const extractErrorMessage = (error, t, defaultErrorKey = "errors.flow.generic")
114
114
  return t(defaultErrorKey);
115
115
  };
116
116
  /**
117
+ * Resolves a stored flow error source with the current translator. A builder is called, an Error with a
118
+ * message is kept as-is so fields like `code` survive, and anything else goes through `extractErrorMessage`.
119
+ */
120
+ const resolveFlowError = (source, t) => {
121
+ if (typeof source === "function") return source(t);
122
+ return source instanceof Error && source.message ? source : new Error(extractErrorMessage(source, t));
123
+ };
124
+ /**
117
125
  * Check if a response is an error response and extract the error message.
118
126
  * This function identifies error responses by checking for ERROR status and failure reasons.
119
127
  *
@@ -152,5 +160,5 @@ const normalizeFlowResponse = (response, t, options = {}, meta) => {
152
160
  };
153
161
 
154
162
  //#endregion
155
- export { extractErrorMessage, normalizeFlowResponse };
163
+ export { extractErrorMessage, normalizeFlowResponse, resolveFlowError };
156
164
  //# sourceMappingURL=flowTransformer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flowTransformer.js","names":["mapping: Map<string, string>","transformedComponent: any","inputData: any","value: string","refMapping: Map<string, string>","actionMapping: Map<string, string>","inputsData: any[]","resolveTranslationsInArray","flowError: FlowErrorResponse['error']","params: Record<string, string> | undefined","translated: string","systemTranslated: string","fallback: string | undefined","additionalData: Record<string, any>","parsed: any"],"sources":["../../src/utils/flowTransformer.ts"],"sourcesContent":["// Copyright 2025-2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @fileoverview Shared flow response transformer utilities for v2 embedded flows.\n *\n * This module provides reusable transformation functions for normalizing embedded flow\n * responses from ThunderID APIs. It handles both successful responses with component\n * extraction and error responses with proper error message extraction.\n *\n * Key features:\n * - Component extraction from flow meta structure\n * - Translation string resolution in components\n * - Error response detection and message extraction\n * - Configurable error handling (throw vs return errors)\n *\n * Usage:\n * ```typescript\n * import { normalizeFlowResponse } from '../../../utils/flowTransformer';\n *\n * const { executionId, components } = normalizeFlowResponse(apiResponse, t, {\n * defaultErrorKey: 'components.signIn.errors.generic'\n * });\n * ```\n *\n * This transformer is used by both SignIn and SignUp v2 components to ensure\n * consistent response handling across all embedded flows.\n */\n\nimport {\n EmbeddedFlowComponent,\n FlowMetadataResponse,\n I18nMessage,\n hasUnresolvedTranslationParams,\n} from '@thunderid/browser';\nimport resolveTranslationsInArray from './resolveTranslationsInArray';\nimport {UseTranslation} from '../hooks/useTranslation';\n\n/**\n * Generic flow error response interface that covers common error structure\n */\nexport interface FlowErrorResponse {\n error?: {\n code: string;\n description: I18nMessage;\n message: I18nMessage;\n };\n executionId: string;\n flowStatus: 'ERROR';\n}\n\n/**\n * Configuration options for flow transformation\n */\nexport interface FlowTransformOptions {\n /**\n * Default error message key for translation fallback\n * @default 'errors.flow.generic'\n */\n defaultErrorKey?: string;\n /**\n * Whether to resolve translation strings or keep them as i18n keys\n * @default true\n */\n resolveTranslations?: boolean;\n /**\n * Whether to throw errors or return them as normalized response\n * @default true\n */\n throwOnError?: boolean;\n}\n\n/**\n * Create a mapping from ref to identifier based on data.inputs array.\n * This handles cases where meta.components use 'ref' to reference inputs,\n * and data.inputs contain the actual 'identifier' field.\n *\n * @param response - The flow response object\n * @returns Map of ref to identifier\n */\nconst createInputRefMapping = (response: any): Map<string, string> => {\n const mapping: Map<string, string> = new Map<string, string>();\n\n if (response?.data?.inputs && Array.isArray(response.data.inputs)) {\n response.data.inputs.forEach((input: any) => {\n if (input.ref && input.identifier) {\n mapping.set(input.ref, input.identifier);\n }\n });\n }\n\n return mapping;\n};\n\n/**\n * Create a mapping from action ref to nextNode based on data.actions array.\n * This handles cases where meta.components reference actions by ref,\n * and data.actions contain the actual nextNode field for routing.\n *\n * @param response - The flow response object\n * @returns Map of action ref to nextNode\n */\nconst createActionRefMapping = (response: any): Map<string, string> => {\n const mapping: Map<string, string> = new Map<string, string>();\n\n if (response?.data?.actions && Array.isArray(response.data.actions)) {\n response.data.actions.forEach((action: any) => {\n if (action.ref && action.nextNode) {\n mapping.set(action.ref, action.nextNode);\n }\n });\n }\n\n return mapping;\n};\n\n/**\n * Apply input ref mapping to components recursively.\n * This ensures that component.ref values are mapped to the correct identifier\n * from data.inputs, enabling proper form submission.\n *\n * @param components - Array of components to transform\n * @param refMapping - Map of ref to identifier\n * @param actionMapping - Map of action ref to nextNode\n * @param inputsData - Array of input data for resolving SELECT options\n * @returns Transformed components with correct identifiers and action references\n */\nconst applyInputRefMapping = (\n components: EmbeddedFlowComponent[],\n refMapping: Map<string, string>,\n actionMapping: Map<string, string>,\n inputsData: any[] = [],\n): EmbeddedFlowComponent[] =>\n components.map((component: EmbeddedFlowComponent) => {\n const transformedComponent: any = {...component} as EmbeddedFlowComponent & {\n actionRef?: string;\n options?: {label: string; value: string}[];\n };\n\n // If this component has a ref that maps to an identifier, update it\n if (transformedComponent.ref && refMapping.has(transformedComponent.ref)) {\n transformedComponent.ref = refMapping.get(transformedComponent.ref);\n }\n\n // For SELECT components, copy options from data.inputs\n // The component.id matches the input.ref in the data structure\n if (transformedComponent.type === 'SELECT' && component.id) {\n const inputData: any = inputsData.find((input: any) => input.ref === component.id);\n if (inputData?.options) {\n transformedComponent.options = inputData.options.map((opt: any) => {\n if (typeof opt === 'string') {\n return {label: opt, value: opt};\n }\n // Safely handle non-string values to prevent React key crashes\n const value: string = typeof opt.value === 'object' ? JSON.stringify(opt.value) : String(opt.value || '');\n const label: string = typeof opt.label === 'object' ? JSON.stringify(opt.label) : String(opt.label || value);\n\n return {label, value};\n });\n }\n }\n\n // If this is an action component, map its id to the nextNode\n // Store the nextNode reference as actionRef property for later use\n if (\n transformedComponent.type === 'ACTION' &&\n transformedComponent.id &&\n actionMapping.has(transformedComponent.id)\n ) {\n transformedComponent.actionRef = actionMapping.get(transformedComponent.id);\n }\n\n // Recursively apply to nested components\n if (transformedComponent.components && Array.isArray(transformedComponent.components)) {\n transformedComponent.components = applyInputRefMapping(\n transformedComponent.components,\n refMapping,\n actionMapping,\n inputsData,\n );\n }\n\n return transformedComponent;\n });\n\n/**\n * Transform and resolve translations in components from flow response.\n * This function extracts components from the response meta structure and optionally resolves\n * any translation strings within them. It also handles mapping of input refs to identifiers\n * and action refs to nextNode values.\n *\n * @param response - The flow response object containing components in meta structure\n * @param t - Translation function from useTranslation hook\n * @param resolveTranslations - Whether to resolve translation strings or keep them as i18n keys (default: true)\n * @returns Array of flow components with resolved or unresolved translations\n */\nexport const transformComponents = (\n response: any,\n t: UseTranslation['t'],\n resolveTranslations = true,\n meta?: FlowMetadataResponse | null,\n): EmbeddedFlowComponent[] => {\n if (!response?.data?.meta?.components) {\n return [];\n }\n\n let {components} = response.data.meta;\n\n // Create mapping from ref to identifier based on data.inputs\n const refMapping: Map<string, string> = createInputRefMapping(response);\n\n // Create mapping from action ref to nextNode based on data.actions\n const actionMapping: Map<string, string> = createActionRefMapping(response);\n\n // Get inputs data for SELECT option resolution\n const inputsData: any[] = response?.data?.inputs || [];\n\n // Apply ref and action mapping if there are any mappings\n if (refMapping.size > 0 || actionMapping.size > 0 || inputsData.length > 0) {\n components = applyInputRefMapping(components, refMapping, actionMapping, inputsData);\n }\n\n return resolveTranslations ? resolveTranslationsInArray(components, t, undefined, meta) : components;\n};\n\n/**\n * Extract error message from flow error response.\n *\n * Resolution order:\n * 1. Structured `error` object: try i18n lookup via `t(error.message.key, error.message.params)`.\n * Bundle entries keep the backend's `{{param(name)}}` placeholders, so `params` must be passed\n * through; a resolved value that still holds an unsubstituted placeholder is treated as a miss.\n * 2. Fallback to `defaultValue` from `message`, then `description` (the backend pre-substitutes it).\n * 3. Standard `Error.message`.\n * 4. Generic translated fallback via `defaultErrorKey`.\n */\nexport const extractErrorMessage = (\n error: FlowErrorResponse | any,\n t: UseTranslation['t'],\n defaultErrorKey = 'errors.flow.generic',\n): string => {\n if (error && typeof error === 'object' && error.error) {\n const flowError: FlowErrorResponse['error'] = error.error;\n\n // 1. Try i18n lookup on message.key first (preferred for user-facing errors)\n if (flowError?.message?.key) {\n const params: Record<string, string> | undefined = flowError.message.params;\n\n const translated: string = t(flowError.message.key, params);\n if (translated && translated !== flowError.message.key && !hasUnresolvedTranslationParams(translated)) {\n return translated;\n }\n\n // If the key resolved to itself, retry under the 'system:' namespace\n const systemKey = `system.${flowError.message.key}`;\n const systemTranslated: string = t(systemKey, params);\n if (systemTranslated && systemTranslated !== systemKey && !hasUnresolvedTranslationParams(systemTranslated)) {\n return systemTranslated;\n }\n }\n\n // 2. Fall back to defaultValue from message, then description\n const fallback: string | undefined = flowError?.message?.defaultValue ?? flowError?.description?.defaultValue;\n if (fallback) {\n return fallback;\n }\n }\n\n // Legacy backward compatibility\n if (error && typeof error === 'object' && error.failureReason) {\n return error.failureReason;\n }\n\n if (error instanceof Error && error.message) {\n return error.message;\n }\n\n return t(defaultErrorKey);\n};\n\n/**\n * Check if a response is an error response and extract the error message.\n * This function identifies error responses by checking for ERROR status and failure reasons.\n *\n * @param response - The flow response to check\n * @param t - Translation function for error messages\n * @param defaultErrorKey - Default translation key for generic errors\n * @returns Error message string if response is an error, null otherwise\n */\nexport const checkForErrorResponse = (\n response: any,\n t: UseTranslation['t'],\n defaultErrorKey = 'errors.flow.generic',\n): string | null => {\n if (response?.flowStatus === 'ERROR') {\n return extractErrorMessage(response, t, defaultErrorKey);\n }\n\n return null;\n};\n\n/**\n * Generic flow response normalizer that handles both success and error responses.\n * This is the main transformer function that should be used by all flow components.\n *\n * @param response - The raw flow response from the API\n * @param t - Translation function from useTranslation hook\n * @param options - Configuration options for transformation behavior\n * @returns Normalized flow response with executionId and transformed components\n * @throws {any} The original response if it's an error and throwOnError is true\n */\nexport const normalizeFlowResponse = (\n response: any,\n t: UseTranslation['t'],\n options: FlowTransformOptions = {},\n meta?: FlowMetadataResponse | null,\n): {\n additionalData: Record<string, any>;\n components: EmbeddedFlowComponent[];\n executionId: string;\n} => {\n const {throwOnError = true, defaultErrorKey = 'errors.flow.generic', resolveTranslations = true} = options;\n\n // Check if this is an error response\n const errorMessage: string | null = checkForErrorResponse(response, t, defaultErrorKey);\n\n if (errorMessage && throwOnError) {\n // Throw the original response so it can be caught by error handling\n throw response;\n }\n\n const additionalData: Record<string, any> = (response?.data?.additionalData as Record<string, any>) ?? {};\n\n // The consent prompt is serialized as a JSON string (array) by the backend.\n // Parse it and wrap in the expected {purposes: [...]} structure.\n if (typeof additionalData['consentPrompt'] === 'string') {\n try {\n const parsed: any = JSON.parse(additionalData['consentPrompt']);\n additionalData['consentPrompt'] = {purposes: Array.isArray(parsed) ? parsed : []};\n } catch {\n // Leave unparseable value as-is\n }\n }\n\n return {\n additionalData,\n components: transformComponents(response, t, resolveTranslations, meta),\n executionId: response.executionId,\n };\n};\n"],"mappings":";;;;;;;;;;;;AAgFA,MAAM,yBAAyB,aAAuC;CACpE,MAAMA,0BAA+B,IAAI,KAAqB;AAE9D,KAAI,UAAU,MAAM,UAAU,MAAM,QAAQ,SAAS,KAAK,OAAO,CAC/D,UAAS,KAAK,OAAO,SAAS,UAAe;AAC3C,MAAI,MAAM,OAAO,MAAM,WACrB,SAAQ,IAAI,MAAM,KAAK,MAAM,WAAW;GAE1C;AAGJ,QAAO;;;;;;;;;;AAWT,MAAM,0BAA0B,aAAuC;CACrE,MAAMA,0BAA+B,IAAI,KAAqB;AAE9D,KAAI,UAAU,MAAM,WAAW,MAAM,QAAQ,SAAS,KAAK,QAAQ,CACjE,UAAS,KAAK,QAAQ,SAAS,WAAgB;AAC7C,MAAI,OAAO,OAAO,OAAO,SACvB,SAAQ,IAAI,OAAO,KAAK,OAAO,SAAS;GAE1C;AAGJ,QAAO;;;;;;;;;;;;;AAcT,MAAM,wBACJ,YACA,YACA,eACA,aAAoB,EAAE,KAEtB,WAAW,KAAK,cAAqC;CACnD,MAAMC,uBAA4B,EAAC,GAAG,WAAU;AAMhD,KAAI,qBAAqB,OAAO,WAAW,IAAI,qBAAqB,IAAI,CACtE,sBAAqB,MAAM,WAAW,IAAI,qBAAqB,IAAI;AAKrE,KAAI,qBAAqB,SAAS,YAAY,UAAU,IAAI;EAC1D,MAAMC,YAAiB,WAAW,MAAM,UAAe,MAAM,QAAQ,UAAU,GAAG;AAClF,MAAI,WAAW,QACb,sBAAqB,UAAU,UAAU,QAAQ,KAAK,QAAa;AACjE,OAAI,OAAO,QAAQ,SACjB,QAAO;IAAC,OAAO;IAAK,OAAO;IAAI;GAGjC,MAAMC,QAAgB,OAAO,IAAI,UAAU,WAAW,KAAK,UAAU,IAAI,MAAM,GAAG,OAAO,IAAI,SAAS,GAAG;AAGzG,UAAO;IAAC,OAFc,OAAO,IAAI,UAAU,WAAW,KAAK,UAAU,IAAI,MAAM,GAAG,OAAO,IAAI,SAAS,MAAM;IAE7F;IAAM;IACrB;;AAMN,KACE,qBAAqB,SAAS,YAC9B,qBAAqB,MACrB,cAAc,IAAI,qBAAqB,GAAG,CAE1C,sBAAqB,YAAY,cAAc,IAAI,qBAAqB,GAAG;AAI7E,KAAI,qBAAqB,cAAc,MAAM,QAAQ,qBAAqB,WAAW,CACnF,sBAAqB,aAAa,qBAChC,qBAAqB,YACrB,YACA,eACA,WACD;AAGH,QAAO;EACP;;;;;;;;;;;;AAaJ,MAAa,uBACX,UACA,GACA,sBAAsB,MACtB,SAC4B;AAC5B,KAAI,CAAC,UAAU,MAAM,MAAM,WACzB,QAAO,EAAE;CAGX,IAAI,EAAC,eAAc,SAAS,KAAK;CAGjC,MAAMC,aAAkC,sBAAsB,SAAS;CAGvE,MAAMC,gBAAqC,uBAAuB,SAAS;CAG3E,MAAMC,aAAoB,UAAU,MAAM,UAAU,EAAE;AAGtD,KAAI,WAAW,OAAO,KAAK,cAAc,OAAO,KAAK,WAAW,SAAS,EACvE,cAAa,qBAAqB,YAAY,YAAY,eAAe,WAAW;AAGtF,QAAO,sBAAsBC,mCAA2B,YAAY,GAAG,QAAW,KAAK,GAAG;;;;;;;;;;;;;AAc5F,MAAa,uBACX,OACA,GACA,kBAAkB,0BACP;AACX,KAAI,SAAS,OAAO,UAAU,YAAY,MAAM,OAAO;EACrD,MAAMC,YAAwC,MAAM;AAGpD,MAAI,WAAW,SAAS,KAAK;GAC3B,MAAMC,SAA6C,UAAU,QAAQ;GAErE,MAAMC,aAAqB,EAAE,UAAU,QAAQ,KAAK,OAAO;AAC3D,OAAI,cAAc,eAAe,UAAU,QAAQ,OAAO,CAAC,+BAA+B,WAAW,CACnG,QAAO;GAIT,MAAM,YAAY,UAAU,UAAU,QAAQ;GAC9C,MAAMC,mBAA2B,EAAE,WAAW,OAAO;AACrD,OAAI,oBAAoB,qBAAqB,aAAa,CAAC,+BAA+B,iBAAiB,CACzG,QAAO;;EAKX,MAAMC,WAA+B,WAAW,SAAS,gBAAgB,WAAW,aAAa;AACjG,MAAI,SACF,QAAO;;AAKX,KAAI,SAAS,OAAO,UAAU,YAAY,MAAM,cAC9C,QAAO,MAAM;AAGf,KAAI,iBAAiB,SAAS,MAAM,QAClC,QAAO,MAAM;AAGf,QAAO,EAAE,gBAAgB;;;;;;;;;;;AAY3B,MAAa,yBACX,UACA,GACA,kBAAkB,0BACA;AAClB,KAAI,UAAU,eAAe,QAC3B,QAAO,oBAAoB,UAAU,GAAG,gBAAgB;AAG1D,QAAO;;;;;;;;;;;;AAaT,MAAa,yBACX,UACA,GACA,UAAgC,EAAE,EAClC,SAKG;CACH,MAAM,EAAC,eAAe,MAAM,kBAAkB,uBAAuB,sBAAsB,SAAQ;AAKnG,KAFoC,sBAAsB,UAAU,GAAG,gBAAgB,IAEnE,aAElB,OAAM;CAGR,MAAMC,iBAAuC,UAAU,MAAM,kBAA0C,EAAE;AAIzG,KAAI,OAAO,eAAe,qBAAqB,SAC7C,KAAI;EACF,MAAMC,SAAc,KAAK,MAAM,eAAe,iBAAiB;AAC/D,iBAAe,mBAAmB,EAAC,UAAU,MAAM,QAAQ,OAAO,GAAG,SAAS,EAAE,EAAC;SAC3E;AAKV,QAAO;EACL;EACA,YAAY,oBAAoB,UAAU,GAAG,qBAAqB,KAAK;EACvE,aAAa,SAAS;EACvB"}
1
+ {"version":3,"file":"flowTransformer.js","names":["mapping: Map<string, string>","transformedComponent: any","inputData: any","value: string","refMapping: Map<string, string>","actionMapping: Map<string, string>","inputsData: any[]","resolveTranslationsInArray","flowError: FlowErrorResponse['error']","params: Record<string, string> | undefined","translated: string","systemTranslated: string","fallback: string | undefined","additionalData: Record<string, any>","parsed: any"],"sources":["../../src/utils/flowTransformer.ts"],"sourcesContent":["// Copyright 2025-2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @fileoverview Shared flow response transformer utilities for v2 embedded flows.\n *\n * This module provides reusable transformation functions for normalizing embedded flow\n * responses from ThunderID APIs. It handles both successful responses with component\n * extraction and error responses with proper error message extraction.\n *\n * Key features:\n * - Component extraction from flow meta structure\n * - Translation string resolution in components\n * - Error response detection and message extraction\n * - Configurable error handling (throw vs return errors)\n *\n * Usage:\n * ```typescript\n * import { normalizeFlowResponse } from '../../../utils/flowTransformer';\n *\n * const { executionId, components } = normalizeFlowResponse(apiResponse, t, {\n * defaultErrorKey: 'components.signIn.errors.generic'\n * });\n * ```\n *\n * This transformer is used by both SignIn and SignUp v2 components to ensure\n * consistent response handling across all embedded flows.\n */\n\nimport {\n EmbeddedFlowComponent,\n FlowMetadataResponse,\n I18nMessage,\n hasUnresolvedTranslationParams,\n} from '@thunderid/browser';\nimport resolveTranslationsInArray from './resolveTranslationsInArray';\nimport {UseTranslation} from '../hooks/useTranslation';\n\n/**\n * Generic flow error response interface that covers common error structure\n */\nexport interface FlowErrorResponse {\n error?: {\n code: string;\n description: I18nMessage;\n message: I18nMessage;\n };\n executionId: string;\n flowStatus: 'ERROR';\n}\n\n/**\n * Configuration options for flow transformation\n */\nexport interface FlowTransformOptions {\n /**\n * Default error message key for translation fallback\n * @default 'errors.flow.generic'\n */\n defaultErrorKey?: string;\n /**\n * Whether to resolve translation strings or keep them as i18n keys\n * @default true\n */\n resolveTranslations?: boolean;\n /**\n * Whether to throw errors or return them as normalized response\n * @default true\n */\n throwOnError?: boolean;\n}\n\n/**\n * Create a mapping from ref to identifier based on data.inputs array.\n * This handles cases where meta.components use 'ref' to reference inputs,\n * and data.inputs contain the actual 'identifier' field.\n *\n * @param response - The flow response object\n * @returns Map of ref to identifier\n */\nconst createInputRefMapping = (response: any): Map<string, string> => {\n const mapping: Map<string, string> = new Map<string, string>();\n\n if (response?.data?.inputs && Array.isArray(response.data.inputs)) {\n response.data.inputs.forEach((input: any) => {\n if (input.ref && input.identifier) {\n mapping.set(input.ref, input.identifier);\n }\n });\n }\n\n return mapping;\n};\n\n/**\n * Create a mapping from action ref to nextNode based on data.actions array.\n * This handles cases where meta.components reference actions by ref,\n * and data.actions contain the actual nextNode field for routing.\n *\n * @param response - The flow response object\n * @returns Map of action ref to nextNode\n */\nconst createActionRefMapping = (response: any): Map<string, string> => {\n const mapping: Map<string, string> = new Map<string, string>();\n\n if (response?.data?.actions && Array.isArray(response.data.actions)) {\n response.data.actions.forEach((action: any) => {\n if (action.ref && action.nextNode) {\n mapping.set(action.ref, action.nextNode);\n }\n });\n }\n\n return mapping;\n};\n\n/**\n * Apply input ref mapping to components recursively.\n * This ensures that component.ref values are mapped to the correct identifier\n * from data.inputs, enabling proper form submission.\n *\n * @param components - Array of components to transform\n * @param refMapping - Map of ref to identifier\n * @param actionMapping - Map of action ref to nextNode\n * @param inputsData - Array of input data for resolving SELECT options\n * @returns Transformed components with correct identifiers and action references\n */\nconst applyInputRefMapping = (\n components: EmbeddedFlowComponent[],\n refMapping: Map<string, string>,\n actionMapping: Map<string, string>,\n inputsData: any[] = [],\n): EmbeddedFlowComponent[] =>\n components.map((component: EmbeddedFlowComponent) => {\n const transformedComponent: any = {...component} as EmbeddedFlowComponent & {\n actionRef?: string;\n options?: {label: string; value: string}[];\n };\n\n // If this component has a ref that maps to an identifier, update it\n if (transformedComponent.ref && refMapping.has(transformedComponent.ref)) {\n transformedComponent.ref = refMapping.get(transformedComponent.ref);\n }\n\n // For SELECT components, copy options from data.inputs\n // The component.id matches the input.ref in the data structure\n if (transformedComponent.type === 'SELECT' && component.id) {\n const inputData: any = inputsData.find((input: any) => input.ref === component.id);\n if (inputData?.options) {\n transformedComponent.options = inputData.options.map((opt: any) => {\n if (typeof opt === 'string') {\n return {label: opt, value: opt};\n }\n // Safely handle non-string values to prevent React key crashes\n const value: string = typeof opt.value === 'object' ? JSON.stringify(opt.value) : String(opt.value || '');\n const label: string = typeof opt.label === 'object' ? JSON.stringify(opt.label) : String(opt.label || value);\n\n return {label, value};\n });\n }\n }\n\n // If this is an action component, map its id to the nextNode\n // Store the nextNode reference as actionRef property for later use\n if (\n transformedComponent.type === 'ACTION' &&\n transformedComponent.id &&\n actionMapping.has(transformedComponent.id)\n ) {\n transformedComponent.actionRef = actionMapping.get(transformedComponent.id);\n }\n\n // Recursively apply to nested components\n if (transformedComponent.components && Array.isArray(transformedComponent.components)) {\n transformedComponent.components = applyInputRefMapping(\n transformedComponent.components,\n refMapping,\n actionMapping,\n inputsData,\n );\n }\n\n return transformedComponent;\n });\n\n/**\n * Transform and resolve translations in components from flow response.\n * This function extracts components from the response meta structure and optionally resolves\n * any translation strings within them. It also handles mapping of input refs to identifiers\n * and action refs to nextNode values.\n *\n * @param response - The flow response object containing components in meta structure\n * @param t - Translation function from useTranslation hook\n * @param resolveTranslations - Whether to resolve translation strings or keep them as i18n keys (default: true)\n * @returns Array of flow components with resolved or unresolved translations\n */\nexport const transformComponents = (\n response: any,\n t: UseTranslation['t'],\n resolveTranslations = true,\n meta?: FlowMetadataResponse | null,\n): EmbeddedFlowComponent[] => {\n if (!response?.data?.meta?.components) {\n return [];\n }\n\n let {components} = response.data.meta;\n\n // Create mapping from ref to identifier based on data.inputs\n const refMapping: Map<string, string> = createInputRefMapping(response);\n\n // Create mapping from action ref to nextNode based on data.actions\n const actionMapping: Map<string, string> = createActionRefMapping(response);\n\n // Get inputs data for SELECT option resolution\n const inputsData: any[] = response?.data?.inputs || [];\n\n // Apply ref and action mapping if there are any mappings\n if (refMapping.size > 0 || actionMapping.size > 0 || inputsData.length > 0) {\n components = applyInputRefMapping(components, refMapping, actionMapping, inputsData);\n }\n\n return resolveTranslations ? resolveTranslationsInArray(components, t, undefined, meta) : components;\n};\n\n/**\n * Extract error message from flow error response.\n *\n * Resolution order:\n * 1. Structured `error` object: try i18n lookup via `t(error.message.key, error.message.params)`.\n * Bundle entries keep the backend's `{{param(name)}}` placeholders, so `params` must be passed\n * through; a resolved value that still holds an unsubstituted placeholder is treated as a miss.\n * 2. Fallback to `defaultValue` from `message`, then `description` (the backend pre-substitutes it).\n * 3. Standard `Error.message`.\n * 4. Generic translated fallback via `defaultErrorKey`.\n */\nexport const extractErrorMessage = (\n error: FlowErrorResponse | any,\n t: UseTranslation['t'],\n defaultErrorKey = 'errors.flow.generic',\n): string => {\n if (error && typeof error === 'object' && error.error) {\n const flowError: FlowErrorResponse['error'] = error.error;\n\n // 1. Try i18n lookup on message.key first (preferred for user-facing errors)\n if (flowError?.message?.key) {\n const params: Record<string, string> | undefined = flowError.message.params;\n\n const translated: string = t(flowError.message.key, params);\n if (translated && translated !== flowError.message.key && !hasUnresolvedTranslationParams(translated)) {\n return translated;\n }\n\n // If the key resolved to itself, retry under the 'system:' namespace\n const systemKey = `system.${flowError.message.key}`;\n const systemTranslated: string = t(systemKey, params);\n if (systemTranslated && systemTranslated !== systemKey && !hasUnresolvedTranslationParams(systemTranslated)) {\n return systemTranslated;\n }\n }\n\n // 2. Fall back to defaultValue from message, then description\n const fallback: string | undefined = flowError?.message?.defaultValue ?? flowError?.description?.defaultValue;\n if (fallback) {\n return fallback;\n }\n }\n\n // Legacy backward compatibility\n if (error && typeof error === 'object' && error.failureReason) {\n return error.failureReason;\n }\n\n if (error instanceof Error && error.message) {\n return error.message;\n }\n\n return t(defaultErrorKey);\n};\n\n/** Builds an SDK-raised error with the current translator, so it follows a language change. */\nexport type FlowErrorBuilder = (t: UseTranslation['t']) => Error;\n\n/**\n * Resolves a stored flow error source with the current translator. A builder is called, an Error with a\n * message is kept as-is so fields like `code` survive, and anything else goes through `extractErrorMessage`.\n */\nexport const resolveFlowError = (source: unknown, t: UseTranslation['t']): Error => {\n if (typeof source === 'function') {\n return (source as FlowErrorBuilder)(t);\n }\n\n return source instanceof Error && source.message ? source : new Error(extractErrorMessage(source, t));\n};\n\n/**\n * Check if a response is an error response and extract the error message.\n * This function identifies error responses by checking for ERROR status and failure reasons.\n *\n * @param response - The flow response to check\n * @param t - Translation function for error messages\n * @param defaultErrorKey - Default translation key for generic errors\n * @returns Error message string if response is an error, null otherwise\n */\nexport const checkForErrorResponse = (\n response: any,\n t: UseTranslation['t'],\n defaultErrorKey = 'errors.flow.generic',\n): string | null => {\n if (response?.flowStatus === 'ERROR') {\n return extractErrorMessage(response, t, defaultErrorKey);\n }\n\n return null;\n};\n\n/**\n * Generic flow response normalizer that handles both success and error responses.\n * This is the main transformer function that should be used by all flow components.\n *\n * @param response - The raw flow response from the API\n * @param t - Translation function from useTranslation hook\n * @param options - Configuration options for transformation behavior\n * @returns Normalized flow response with executionId and transformed components\n * @throws {any} The original response if it's an error and throwOnError is true\n */\nexport const normalizeFlowResponse = (\n response: any,\n t: UseTranslation['t'],\n options: FlowTransformOptions = {},\n meta?: FlowMetadataResponse | null,\n): {\n additionalData: Record<string, any>;\n components: EmbeddedFlowComponent[];\n executionId: string;\n} => {\n const {throwOnError = true, defaultErrorKey = 'errors.flow.generic', resolveTranslations = true} = options;\n\n // Check if this is an error response\n const errorMessage: string | null = checkForErrorResponse(response, t, defaultErrorKey);\n\n if (errorMessage && throwOnError) {\n // Throw the original response so it can be caught by error handling\n throw response;\n }\n\n const additionalData: Record<string, any> = (response?.data?.additionalData as Record<string, any>) ?? {};\n\n // The consent prompt is serialized as a JSON string (array) by the backend.\n // Parse it and wrap in the expected {purposes: [...]} structure.\n if (typeof additionalData['consentPrompt'] === 'string') {\n try {\n const parsed: any = JSON.parse(additionalData['consentPrompt']);\n additionalData['consentPrompt'] = {purposes: Array.isArray(parsed) ? parsed : []};\n } catch {\n // Leave unparseable value as-is\n }\n }\n\n return {\n additionalData,\n components: transformComponents(response, t, resolveTranslations, meta),\n executionId: response.executionId,\n };\n};\n"],"mappings":";;;;;;;;;;;;AAgFA,MAAM,yBAAyB,aAAuC;CACpE,MAAMA,0BAA+B,IAAI,KAAqB;AAE9D,KAAI,UAAU,MAAM,UAAU,MAAM,QAAQ,SAAS,KAAK,OAAO,CAC/D,UAAS,KAAK,OAAO,SAAS,UAAe;AAC3C,MAAI,MAAM,OAAO,MAAM,WACrB,SAAQ,IAAI,MAAM,KAAK,MAAM,WAAW;GAE1C;AAGJ,QAAO;;;;;;;;;;AAWT,MAAM,0BAA0B,aAAuC;CACrE,MAAMA,0BAA+B,IAAI,KAAqB;AAE9D,KAAI,UAAU,MAAM,WAAW,MAAM,QAAQ,SAAS,KAAK,QAAQ,CACjE,UAAS,KAAK,QAAQ,SAAS,WAAgB;AAC7C,MAAI,OAAO,OAAO,OAAO,SACvB,SAAQ,IAAI,OAAO,KAAK,OAAO,SAAS;GAE1C;AAGJ,QAAO;;;;;;;;;;;;;AAcT,MAAM,wBACJ,YACA,YACA,eACA,aAAoB,EAAE,KAEtB,WAAW,KAAK,cAAqC;CACnD,MAAMC,uBAA4B,EAAC,GAAG,WAAU;AAMhD,KAAI,qBAAqB,OAAO,WAAW,IAAI,qBAAqB,IAAI,CACtE,sBAAqB,MAAM,WAAW,IAAI,qBAAqB,IAAI;AAKrE,KAAI,qBAAqB,SAAS,YAAY,UAAU,IAAI;EAC1D,MAAMC,YAAiB,WAAW,MAAM,UAAe,MAAM,QAAQ,UAAU,GAAG;AAClF,MAAI,WAAW,QACb,sBAAqB,UAAU,UAAU,QAAQ,KAAK,QAAa;AACjE,OAAI,OAAO,QAAQ,SACjB,QAAO;IAAC,OAAO;IAAK,OAAO;IAAI;GAGjC,MAAMC,QAAgB,OAAO,IAAI,UAAU,WAAW,KAAK,UAAU,IAAI,MAAM,GAAG,OAAO,IAAI,SAAS,GAAG;AAGzG,UAAO;IAAC,OAFc,OAAO,IAAI,UAAU,WAAW,KAAK,UAAU,IAAI,MAAM,GAAG,OAAO,IAAI,SAAS,MAAM;IAE7F;IAAM;IACrB;;AAMN,KACE,qBAAqB,SAAS,YAC9B,qBAAqB,MACrB,cAAc,IAAI,qBAAqB,GAAG,CAE1C,sBAAqB,YAAY,cAAc,IAAI,qBAAqB,GAAG;AAI7E,KAAI,qBAAqB,cAAc,MAAM,QAAQ,qBAAqB,WAAW,CACnF,sBAAqB,aAAa,qBAChC,qBAAqB,YACrB,YACA,eACA,WACD;AAGH,QAAO;EACP;;;;;;;;;;;;AAaJ,MAAa,uBACX,UACA,GACA,sBAAsB,MACtB,SAC4B;AAC5B,KAAI,CAAC,UAAU,MAAM,MAAM,WACzB,QAAO,EAAE;CAGX,IAAI,EAAC,eAAc,SAAS,KAAK;CAGjC,MAAMC,aAAkC,sBAAsB,SAAS;CAGvE,MAAMC,gBAAqC,uBAAuB,SAAS;CAG3E,MAAMC,aAAoB,UAAU,MAAM,UAAU,EAAE;AAGtD,KAAI,WAAW,OAAO,KAAK,cAAc,OAAO,KAAK,WAAW,SAAS,EACvE,cAAa,qBAAqB,YAAY,YAAY,eAAe,WAAW;AAGtF,QAAO,sBAAsBC,mCAA2B,YAAY,GAAG,QAAW,KAAK,GAAG;;;;;;;;;;;;;AAc5F,MAAa,uBACX,OACA,GACA,kBAAkB,0BACP;AACX,KAAI,SAAS,OAAO,UAAU,YAAY,MAAM,OAAO;EACrD,MAAMC,YAAwC,MAAM;AAGpD,MAAI,WAAW,SAAS,KAAK;GAC3B,MAAMC,SAA6C,UAAU,QAAQ;GAErE,MAAMC,aAAqB,EAAE,UAAU,QAAQ,KAAK,OAAO;AAC3D,OAAI,cAAc,eAAe,UAAU,QAAQ,OAAO,CAAC,+BAA+B,WAAW,CACnG,QAAO;GAIT,MAAM,YAAY,UAAU,UAAU,QAAQ;GAC9C,MAAMC,mBAA2B,EAAE,WAAW,OAAO;AACrD,OAAI,oBAAoB,qBAAqB,aAAa,CAAC,+BAA+B,iBAAiB,CACzG,QAAO;;EAKX,MAAMC,WAA+B,WAAW,SAAS,gBAAgB,WAAW,aAAa;AACjG,MAAI,SACF,QAAO;;AAKX,KAAI,SAAS,OAAO,UAAU,YAAY,MAAM,cAC9C,QAAO,MAAM;AAGf,KAAI,iBAAiB,SAAS,MAAM,QAClC,QAAO,MAAM;AAGf,QAAO,EAAE,gBAAgB;;;;;;AAU3B,MAAa,oBAAoB,QAAiB,MAAkC;AAClF,KAAI,OAAO,WAAW,WACpB,QAAQ,OAA4B,EAAE;AAGxC,QAAO,kBAAkB,SAAS,OAAO,UAAU,SAAS,IAAI,MAAM,oBAAoB,QAAQ,EAAE,CAAC;;;;;;;;;;;AAYvG,MAAa,yBACX,UACA,GACA,kBAAkB,0BACA;AAClB,KAAI,UAAU,eAAe,QAC3B,QAAO,oBAAoB,UAAU,GAAG,gBAAgB;AAG1D,QAAO;;;;;;;;;;;;AAaT,MAAa,yBACX,UACA,GACA,UAAgC,EAAE,EAClC,SAKG;CACH,MAAM,EAAC,eAAe,MAAM,kBAAkB,uBAAuB,sBAAsB,SAAQ;AAKnG,KAFoC,sBAAsB,UAAU,GAAG,gBAAgB,IAEnE,aAElB,OAAM;CAGR,MAAMC,iBAAuC,UAAU,MAAM,kBAA0C,EAAE;AAIzG,KAAI,OAAO,eAAe,qBAAqB,SAC7C,KAAI;EACF,MAAMC,SAAc,KAAK,MAAM,eAAe,iBAAiB;AAC/D,iBAAe,mBAAmB,EAAC,UAAU,MAAM,QAAQ,OAAO,GAAG,SAAS,EAAE,EAAC;SAC3E;AAKV,QAAO;EACL;EACA,YAAY,oBAAoB,UAAU,GAAG,qBAAqB,KAAK;EACvE,aAAa,SAAS;EACvB"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The translation key for a failed organization unit switch, by the error's code. The server answers an
3
+ * unknown unit and a unit the application cannot be used from alike (`unauthorized_client`), so they
4
+ * share one message. Every key takes the unit's `{name}`.
5
+ *
6
+ * @param error - The error `switchOrganizationUnit` rejected with.
7
+ * @returns The `organization_unit.switcher.error.*` key to show.
8
+ */
9
+ declare const getOrganizationUnitSwitchErrorKey: (error: unknown) => string;
10
+ export default getOrganizationUnitSwitchErrorKey;
11
+ //# sourceMappingURL=getOrganizationUnitSwitchErrorKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOrganizationUnitSwitchErrorKey.d.ts","sourceRoot":"","sources":["../../src/utils/getOrganizationUnitSwitchErrorKey.ts"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,QAAA,MAAM,iCAAiC,GAAI,OAAO,OAAO,KAAG,MAY3D,CAAC;AAEF,eAAe,iCAAiC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { OrganizationUnitSwitchErrorCodes } from "@thunderid/browser";
2
+
3
+ //#region src/utils/getOrganizationUnitSwitchErrorKey.ts
4
+ /**
5
+ * The translation key for a failed organization unit switch, by the error's code. The server answers an
6
+ * unknown unit and a unit the application cannot be used from alike (`unauthorized_client`), so they
7
+ * share one message. Every key takes the unit's `{name}`.
8
+ *
9
+ * @param error - The error `switchOrganizationUnit` rejected with.
10
+ * @returns The `organization_unit.switcher.error.*` key to show.
11
+ */
12
+ const getOrganizationUnitSwitchErrorKey = (error) => {
13
+ const code = error?.code;
14
+ if (code === OrganizationUnitSwitchErrorCodes.UnauthorizedClient) return "organization_unit.switcher.error.unauthorized";
15
+ if (code === OrganizationUnitSwitchErrorCodes.InteractionRequired) return "organization_unit.switcher.error.interaction_required";
16
+ return "organization_unit.switcher.error.switch";
17
+ };
18
+ var getOrganizationUnitSwitchErrorKey_default = getOrganizationUnitSwitchErrorKey;
19
+
20
+ //#endregion
21
+ export { getOrganizationUnitSwitchErrorKey_default as default };
22
+ //# sourceMappingURL=getOrganizationUnitSwitchErrorKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOrganizationUnitSwitchErrorKey.js","names":["code: unknown"],"sources":["../../src/utils/getOrganizationUnitSwitchErrorKey.ts"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {OrganizationUnitSwitchErrorCodes} from '@thunderid/browser';\n\n/**\n * The translation key for a failed organization unit switch, by the error's code. The server answers an\n * unknown unit and a unit the application cannot be used from alike (`unauthorized_client`), so they\n * share one message. Every key takes the unit's `{name}`.\n *\n * @param error - The error `switchOrganizationUnit` rejected with.\n * @returns The `organization_unit.switcher.error.*` key to show.\n */\nconst getOrganizationUnitSwitchErrorKey = (error: unknown): string => {\n const code: unknown = (error as {code?: unknown} | null)?.code;\n\n if (code === OrganizationUnitSwitchErrorCodes.UnauthorizedClient) {\n return 'organization_unit.switcher.error.unauthorized';\n }\n\n if (code === OrganizationUnitSwitchErrorCodes.InteractionRequired) {\n return 'organization_unit.switcher.error.interaction_required';\n }\n\n return 'organization_unit.switcher.error.switch';\n};\n\nexport default getOrganizationUnitSwitchErrorKey;\n"],"mappings":";;;;;;;;;;;AAaA,MAAM,qCAAqC,UAA2B;CACpE,MAAMA,OAAiB,OAAmC;AAE1D,KAAI,SAAS,iCAAiC,mBAC5C,QAAO;AAGT,KAAI,SAAS,iCAAiC,oBAC5C,QAAO;AAGT,QAAO;;AAGT,gDAAe"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thunderid/react",
3
- "version": "1.14.0",
3
+ "version": "1.15.1",
4
4
  "description": "React SDK for ThunderID",
5
5
  "keywords": [
6
6
  "thunderid",
@@ -60,7 +60,7 @@
60
60
  "dependencies": {
61
61
  "@emotion/css": "11.13.5",
62
62
  "@floating-ui/react": "0.27.12",
63
- "@thunderid/browser": "^1.11.0",
63
+ "@thunderid/browser": "^1.12.1",
64
64
  "dompurify": "3.4.17",
65
65
  "tslib": "2.8.1"
66
66
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentCreate.cjs","names":["AgentCreate: FC<AgentCreateProps>","useTranslation","resolvedOuId: string | undefined","useDefaultOuId","agentsEndpoint: ManagementEndpoint","useManagementEndpoint","agentTypesEndpoint: ManagementEndpoint","useResourceQuery","AgentQueryKeys","useResourceMutation","options: SelectOption[]","BaseAgentCreate"],"sources":["../../../../../src/components/admin/AgentCreate/AgentCreate.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n Agent,\n AgentQueryKeys,\n AgentType,\n AgentTypeListResponse,\n CreateAgentRequest,\n SelectOption,\n createAgent,\n getAgentTypes,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo} from 'react';\nimport BaseAgentCreate, {AgentCreateSubmission, BaseAgentCreateProps} from './BaseAgentCreate';\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 useDefaultOuId from '../shared/useDefaultOuId';\n\nexport type AgentCreateProps = Omit<BaseAgentCreateProps, 'agentTypes' | 'error' | 'isSubmitting' | 'onSubmit'> & {\n /**\n * Called with the created agent.\n */\n onCreated?: (agent: Agent) => void;\n /**\n * Organization unit the agent is created in. Defaults to the signed-in user's organization unit.\n */\n ouId?: string;\n /**\n * The person responsible for the agent. Defaults to the server's choice, usually the creator.\n */\n owner?: string;\n};\n\n/**\n * Registers an agent through the management API.\n *\n * @example\n * ```tsx\n * <AgentCreate onCreated={(agent) => navigate(`/agents/${agent.id}`)} />\n * ```\n */\nconst AgentCreate: FC<AgentCreateProps> = ({\n onCreated,\n ouId,\n owner,\n preferences,\n ...rest\n}: AgentCreateProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const resolvedOuId: string | undefined = useDefaultOuId(ouId);\n const agentsEndpoint: ManagementEndpoint = useManagementEndpoint('agents');\n const agentTypesEndpoint: ManagementEndpoint = useManagementEndpoint('agentTypes');\n const {data: agentTypes}: ResourceQueryResult<AgentTypeListResponse> = useResourceQuery(\n [AgentQueryKeys.AGENT_TYPES, {limit: 100}],\n (fetcher) => getAgentTypes({...agentTypesEndpoint, fetcher, limit: 100}),\n );\n const {error, isLoading, mutate}: ResourceMutationResult<Agent, CreateAgentRequest> = useResourceMutation(\n (payload: CreateAgentRequest, fetcher) => createAgent({...agentsEndpoint, fetcher, payload}),\n () => [[AgentQueryKeys.AGENTS]],\n {onSuccess: onCreated},\n );\n\n const options: SelectOption[] = useMemo(\n () =>\n (agentTypes?.types ?? []).map((agentType: AgentType) => ({\n label: agentType.displayName,\n value: agentType.handle,\n })),\n [agentTypes],\n );\n\n const handleSubmit = ({description, name, type}: AgentCreateSubmission): void => {\n if (resolvedOuId) {\n void mutate({attributes: {name}, description, ouId: resolvedOuId, owner, type});\n }\n };\n\n return (\n <BaseAgentCreate\n agentTypes={options}\n onSubmit={handleSubmit}\n isSubmitting={isLoading}\n error={\n resolvedOuId ? toManagementErrorMessage(t, error, 'admin.agents.create.error') : t('admin.common.errors.no_ou')\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default AgentCreate;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA6CA,MAAMA,eAAqC,EACzC,WACA,MACA,OACA,YACA,GAAG,WACiC;CACpC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,eAAmCC,+BAAe,KAAK;CAC7D,MAAMC,iBAAqCC,sCAAsB,SAAS;CAC1E,MAAMC,qBAAyCD,sCAAsB,aAAa;CAClF,MAAM,EAAC,MAAM,eAA0DE,iCACrE,CAACC,mCAAe,aAAa,EAAC,OAAO,KAAI,CAAC,GACzC,mDAA0B;EAAC,GAAG;EAAoB;EAAS,OAAO;EAAI,CAAC,CACzE;CACD,MAAM,EAAC,OAAO,WAAW,WAA6DC,qCACnF,SAA6B,iDAAwB;EAAC,GAAG;EAAgB;EAAS;EAAQ,CAAC,QACtF,CAAC,CAACD,mCAAe,OAAO,CAAC,EAC/B,EAAC,WAAW,WAAU,CACvB;CAED,MAAME,oCAED,YAAY,SAAS,EAAE,EAAE,KAAK,eAA0B;EACvD,OAAO,UAAU;EACjB,OAAO,UAAU;EAClB,EAAE,EACL,CAAC,WAAW,CACb;CAED,MAAM,gBAAgB,EAAC,aAAa,MAAM,WAAuC;AAC/E,MAAI,aACF,CAAK,OAAO;GAAC,YAAY,EAAC,MAAK;GAAE;GAAa,MAAM;GAAc;GAAO;GAAK,CAAC;;AAInF,QACE,2CAACC;EACC,YAAY;EACZ,UAAU;EACV,cAAc;EACd,OACE,iEAAwC,GAAG,OAAO,4BAA4B,GAAG,EAAE,4BAA4B;EAEpG;EACb,GAAI;GACJ;;AAIN,0BAAe"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseAgentCreate.cjs","names":["BaseAgentCreate: FC<BaseAgentCreateProps>","useTheme","styles: Record<string, string>","useStyles","useTranslation","type: string","isValid: boolean","setters: Record<'description' | 'name' | 'type', (value: string) => void>","AdminSection","Alert","TextField","Select","Button"],"sources":["../../../../../src/components/admin/AgentCreate/BaseAgentCreate.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {Preferences, SelectOption} from '@thunderid/browser';\nimport {ChangeEvent, FC, FormEvent, ReactElement, ReactNode, useState} from 'react';\nimport useTheme from '../../../contexts/Theme/useTheme';\nimport useTranslation from '../../../hooks/useTranslation';\nimport Alert from '../../primitives/Alert/Alert';\nimport Button from '../../primitives/Button/Button';\nimport Select from '../../primitives/Select/Select';\nimport TextField from '../../primitives/TextField/TextField';\nimport AdminSection from '../shared/AdminSection';\nimport useStyles from '../shared/AdminSection.styles';\n\n/**\n * The agent {@link BaseAgentCreate} submits. The organization unit is added by the caller.\n */\nexport interface AgentCreateSubmission {\n description?: string;\n name: string;\n type: string;\n}\n\n/**\n * What {@link BaseAgentCreate} hands its `children` render function, so the form can be built with any UI.\n */\nexport interface BaseAgentCreateRenderProps {\n agentTypes: SelectOption[];\n error: string | null;\n /**\n * Sets one field of the form.\n */\n handleInputChange: (field: 'description' | 'name' | 'type', value: string) => void;\n /**\n * Submits the current values. Does nothing while they are not valid.\n */\n handleSubmit: () => void;\n isSubmitting: boolean;\n /**\n * Whether the values can be submitted.\n */\n isValid: boolean;\n onCancel?: () => void;\n values: {description: string; name: string; type: string};\n}\n\nexport interface BaseAgentCreateProps {\n /**\n * The agent types to choose from. The first one is selected by default.\n */\n agentTypes: SelectOption[];\n /**\n * Renders custom UI in place of the default form. Receives the values, their setters, the agent\n * types, the submit handler and the submission state.\n */\n children?: (props: BaseAgentCreateRenderProps) => ReactNode;\n className?: string;\n description?: string;\n error?: string | null;\n isSubmitting?: boolean;\n onCancel?: () => void;\n onSubmit: (agent: AgentCreateSubmission) => void;\n preferences?: Preferences;\n title?: string;\n}\n\n/**\n * A form that collects a new agent's name, type and description. Holds no data of its own: pass\n * the agent types and handle the submission.\n */\nconst BaseAgentCreate: FC<BaseAgentCreateProps> = ({\n agentTypes,\n children,\n className,\n description,\n error = null,\n isSubmitting = false,\n onCancel,\n onSubmit,\n preferences,\n title,\n}: BaseAgentCreateProps): ReactElement => {\n const {theme, colorScheme} = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme);\n const {t} = useTranslation(preferences?.i18n);\n const [name, setName] = useState<string>('');\n const [chosenType, setType] = useState<string>('');\n const type: string = chosenType || (agentTypes[0]?.value ?? '');\n const [agentDescription, setAgentDescription] = useState<string>('');\n\n const isValid: boolean = Boolean(name.trim()) && Boolean(type);\n\n const submit = (): void => {\n if (isValid) {\n onSubmit({description: agentDescription.trim() || undefined, name: name.trim(), type});\n }\n };\n\n const handleSubmit = (event: FormEvent<HTMLFormElement>): void => {\n event.preventDefault();\n submit();\n };\n\n if (children) {\n const setters: Record<'description' | 'name' | 'type', (value: string) => void> = {\n description: setAgentDescription,\n name: setName,\n type: setType,\n };\n\n return (\n <div className={className}>\n {children({\n agentTypes,\n error,\n handleInputChange: (field: 'description' | 'name' | 'type', value: string): void => setters[field](value),\n handleSubmit: submit,\n isSubmitting,\n isValid,\n onCancel,\n values: {description: agentDescription, name, type},\n })}\n </div>\n );\n }\n\n return (\n <AdminSection\n block=\"agent-create\"\n className={className}\n title={title ?? t('admin.agents.create.title')}\n description={description}\n preferences={preferences}\n >\n <form className={styles['form']} onSubmit={handleSubmit} noValidate>\n {error && (\n <Alert variant=\"error\" role=\"alert\">\n {error}\n </Alert>\n )}\n <TextField\n name=\"name\"\n label={t('admin.agents.create.fields.name')}\n required\n value={name}\n onChange={(event: ChangeEvent<HTMLInputElement>): void => setName(event.target.value)}\n />\n <Select\n label={t('admin.agents.create.fields.type')}\n name=\"type\"\n required\n value={type}\n options={agentTypes}\n onChange={(event: ChangeEvent<HTMLSelectElement>): void => setType(event.target.value)}\n />\n <TextField\n name=\"description\"\n label={t('admin.agents.create.fields.description')}\n value={agentDescription}\n onChange={(event: ChangeEvent<HTMLInputElement>): void => setAgentDescription(event.target.value)}\n />\n <div className={styles['formActions']}>\n {onCancel && (\n <Button type=\"button\" variant=\"text\" onClick={onCancel} disabled={isSubmitting}>\n {t('admin.common.actions.cancel')}\n </Button>\n )}\n <Button type=\"submit\" loading={isSubmitting} disabled={!isValid || isSubmitting}>\n {t('admin.agents.create.submit')}\n </Button>\n </div>\n </form>\n </AdminSection>\n );\n};\n\nexport default BaseAgentCreate;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAsEA,MAAMA,mBAA6C,EACjD,YACA,UACA,WACA,aACA,QAAQ,MACR,eAAe,OACf,UACA,UACA,aACA,YACwC;CACxC,MAAM,EAAC,OAAO,gBAAeC,0BAAU;CACvC,MAAMC,SAAiCC,oCAAU,OAAO,YAAY;CACpE,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,MAAM,+BAA4B,GAAG;CAC5C,MAAM,CAAC,YAAY,+BAA4B,GAAG;CAClD,MAAMC,OAAe,eAAe,WAAW,IAAI,SAAS;CAC5D,MAAM,CAAC,kBAAkB,2CAAwC,GAAG;CAEpE,MAAMC,UAAmB,QAAQ,KAAK,MAAM,CAAC,IAAI,QAAQ,KAAK;CAE9D,MAAM,eAAqB;AACzB,MAAI,QACF,UAAS;GAAC,aAAa,iBAAiB,MAAM,IAAI;GAAW,MAAM,KAAK,MAAM;GAAE;GAAK,CAAC;;CAI1F,MAAM,gBAAgB,UAA4C;AAChE,QAAM,gBAAgB;AACtB,UAAQ;;AAGV,KAAI,UAAU;EACZ,MAAMC,UAA4E;GAChF,aAAa;GACb,MAAM;GACN,MAAM;GACP;AAED,SACE,2CAAC;GAAe;aACb,SAAS;IACR;IACA;IACA,oBAAoB,OAAwC,UAAwB,QAAQ,OAAO,MAAM;IACzG,cAAc;IACd;IACA;IACA;IACA,QAAQ;KAAC,aAAa;KAAkB;KAAM;KAAK;IACpD,CAAC;IACE;;AAIV,QACE,2CAACC;EACC,OAAM;EACK;EACX,OAAO,SAAS,EAAE,4BAA4B;EACjC;EACA;YAEb,4CAAC;GAAK,WAAW,OAAO;GAAS,UAAU;GAAc;;IACtD,SACC,2CAACC;KAAM,SAAQ;KAAQ,MAAK;eACzB;MACK;IAEV,2CAACC;KACC,MAAK;KACL,OAAO,EAAE,kCAAkC;KAC3C;KACA,OAAO;KACP,WAAW,UAA+C,QAAQ,MAAM,OAAO,MAAM;MACrF;IACF,2CAACC;KACC,OAAO,EAAE,kCAAkC;KAC3C,MAAK;KACL;KACA,OAAO;KACP,SAAS;KACT,WAAW,UAAgD,QAAQ,MAAM,OAAO,MAAM;MACtF;IACF,2CAACD;KACC,MAAK;KACL,OAAO,EAAE,yCAAyC;KAClD,OAAO;KACP,WAAW,UAA+C,oBAAoB,MAAM,OAAO,MAAM;MACjG;IACF,4CAAC;KAAI,WAAW,OAAO;gBACpB,YACC,2CAACE;MAAO,MAAK;MAAS,SAAQ;MAAO,SAAS;MAAU,UAAU;gBAC/D,EAAE,8BAA8B;OAC1B,EAEX,2CAACA;MAAO,MAAK;MAAS,SAAS;MAAc,UAAU,CAAC,WAAW;gBAChE,EAAE,6BAA6B;OACzB;MACL;;IACD;GACM;;AAInB,8BAAe"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentDetails.cjs","names":["AgentDetails: FC<AgentDetailsProps>","useTranslation","endpoint: ManagementEndpoint","useManagementEndpoint","agent: ResourceQueryResult<Agent>","useResourceQuery","AgentQueryKeys","groups: ResourceQueryResult<MembershipGroupListResponse>","GroupQueryKeys","roles: ResourceQueryResult<AgentRoleListResponse>","RoleQueryKeys","deletion: ResourceMutationResult<void, string>","useResourceMutation","lifecycle: AccountLifecycleState","useAccountLifecycle","BaseAgentDetails"],"sources":["../../../../../src/components/admin/AgentDetails/AgentDetails.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n Agent,\n AgentQueryKeys,\n AgentRoleListResponse,\n GroupQueryKeys,\n MembershipGroupListResponse,\n RoleQueryKeys,\n deleteAgent,\n getAgent,\n getAgentGroups,\n getAgentRoles,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement} from 'react';\nimport BaseAgentDetails, {BaseAgentDetailsProps} from './BaseAgentDetails';\nimport useAccountLifecycle, {AccountLifecycleState} from '../../../hooks/management/useAccountLifecycle';\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\nexport type AgentDetailsProps = Omit<\n BaseAgentDetailsProps,\n | 'agent'\n | 'error'\n | 'groups'\n | 'isDeleting'\n | 'isLoading'\n | 'isRunningLifecycleAction'\n | 'lifecycleActions'\n | 'onDelete'\n | 'onLifecycleAction'\n | 'roles'\n> & {\n agentId: string;\n /**\n * Whether the agent can be deleted from this view.\n * @default false\n */\n deletable?: boolean;\n /**\n * Whether the agent can be suspended, unsuspended and unlocked from this view. Each action runs through its\n * administration flow and is offered only when the server configures that flow. Reading the configured\n * flows needs a token that may read the server configuration.\n * @default false\n */\n lifecycleActions?: boolean;\n /**\n * Called after the agent has been deleted.\n */\n onDeleted?: () => void;\n};\n\n/**\n * Shows an agent with the groups and roles it holds, and optionally lets the signed-in user delete\n * it.\n *\n * @example\n * ```tsx\n * <AgentDetails agentId={agentId} deletable onDeleted={() => navigate('/agents')} />\n * ```\n */\nconst AgentDetails: FC<AgentDetailsProps> = ({\n agentId,\n deletable = false,\n lifecycleActions = false,\n onDeleted,\n preferences,\n ...rest\n}: AgentDetailsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const endpoint: ManagementEndpoint = useManagementEndpoint('agents');\n const agent: ResourceQueryResult<Agent> = useResourceQuery(\n [AgentQueryKeys.AGENT, agentId],\n (fetcher) => getAgent({...endpoint, agentId, fetcher}),\n {enabled: Boolean(agentId)},\n );\n const groups: ResourceQueryResult<MembershipGroupListResponse> = useResourceQuery(\n [GroupQueryKeys.MEMBERSHIPS, 'agent', agentId, {limit: 100}],\n (fetcher) => getAgentGroups({...endpoint, agentId, fetcher, limit: 100}),\n {enabled: Boolean(agentId)},\n );\n const roles: ResourceQueryResult<AgentRoleListResponse> = useResourceQuery(\n [RoleQueryKeys.ROLE_ASSIGNMENTS, 'agent', agentId, {limit: 100}],\n (fetcher) => getAgentRoles({...endpoint, agentId, fetcher, limit: 100}),\n {enabled: Boolean(agentId)},\n );\n const deletion: ResourceMutationResult<void, string> = useResourceMutation(\n (id: string, fetcher) => deleteAgent({...endpoint, agentId: id, fetcher}),\n () => [[AgentQueryKeys.AGENTS]],\n {onSuccess: onDeleted},\n );\n\n const lifecycle: AccountLifecycleState = useAccountLifecycle({\n enabled: lifecycleActions,\n invalidatedKeys: [[AgentQueryKeys.AGENT, agentId], [AgentQueryKeys.AGENTS]],\n kind: 'agent',\n status: agent.data?.status?.value,\n subject: agentId,\n });\n\n return (\n <BaseAgentDetails\n agent={agent.data}\n groups={groups.data?.groups}\n roles={roles.data?.roles}\n isLoading={agent.isLoading}\n error={\n toManagementErrorMessage(t, agent.error, 'admin.agents.details.error') ??\n toManagementErrorMessage(t, deletion.error, 'admin.agents.details.delete.error') ??\n toManagementErrorMessage(t, lifecycle.error, 'admin.common.lifecycle.error') ??\n toManagementErrorMessage(t, lifecycle.loadError, 'admin.common.lifecycle.load_error')\n }\n isDeleting={deletion.isLoading}\n onDelete={deletable ? (): void => void deletion.mutate(agentId) : undefined}\n lifecycleActions={lifecycle.actions}\n isRunningLifecycleAction={lifecycle.isRunning}\n onLifecycleAction={lifecycleActions ? lifecycle.run : undefined}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default AgentDetails;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAiEA,MAAMA,gBAAuC,EAC3C,SACA,YAAY,OACZ,mBAAmB,OACnB,WACA,YACA,GAAG,WACkC;CACrC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,WAA+BC,sCAAsB,SAAS;CACpE,MAAMC,QAAoCC,iCACxC,CAACC,mCAAe,OAAO,QAAQ,GAC9B,8CAAqB;EAAC,GAAG;EAAU;EAAS;EAAQ,CAAC,EACtD,EAAC,SAAS,QAAQ,QAAQ,EAAC,CAC5B;CACD,MAAMC,SAA2DF,iCAC/D;EAACG,mCAAe;EAAa;EAAS;EAAS,EAAC,OAAO,KAAI;EAAC,GAC3D,oDAA2B;EAAC,GAAG;EAAU;EAAS;EAAS,OAAO;EAAI,CAAC,EACxE,EAAC,SAAS,QAAQ,QAAQ,EAAC,CAC5B;CACD,MAAMC,QAAoDJ,iCACxD;EAACK,kCAAc;EAAkB;EAAS;EAAS,EAAC,OAAO,KAAI;EAAC,GAC/D,mDAA0B;EAAC,GAAG;EAAU;EAAS;EAAS,OAAO;EAAI,CAAC,EACvE,EAAC,SAAS,QAAQ,QAAQ,EAAC,CAC5B;CACD,MAAMC,WAAiDC,qCACpD,IAAY,iDAAwB;EAAC,GAAG;EAAU,SAAS;EAAI;EAAQ,CAAC,QACnE,CAAC,CAACN,mCAAe,OAAO,CAAC,EAC/B,EAAC,WAAW,WAAU,CACvB;CAED,MAAMO,YAAmCC,oCAAoB;EAC3D,SAAS;EACT,iBAAiB,CAAC,CAACR,mCAAe,OAAO,QAAQ,EAAE,CAACA,mCAAe,OAAO,CAAC;EAC3E,MAAM;EACN,QAAQ,MAAM,MAAM,QAAQ;EAC5B,SAAS;EACV,CAAC;AAEF,QACE,2CAACS;EACC,OAAO,MAAM;EACb,QAAQ,OAAO,MAAM;EACrB,OAAO,MAAM,MAAM;EACnB,WAAW,MAAM;EACjB,yDAC2B,GAAG,MAAM,OAAO,6BAA6B,sDAC7C,GAAG,SAAS,OAAO,oCAAoC,sDACvD,GAAG,UAAU,OAAO,+BAA+B,sDACnD,GAAG,UAAU,WAAW,oCAAoC;EAEvF,YAAY,SAAS;EACrB,UAAU,kBAAwB,KAAK,SAAS,OAAO,QAAQ,GAAG;EAClE,kBAAkB,UAAU;EAC5B,0BAA0B,UAAU;EACpC,mBAAmB,mBAAmB,UAAU,MAAM;EACzC;EACb,GAAI;GACJ;;AAIN,2BAAe"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseAgentDetails.cjs","names":["BaseAgentDetails: FC<BaseAgentDetailsProps>","useTranslation","styles: Record<string, string>","useAdminPartStyles","AdminSection","Spinner","Alert","details: {label: string; value: ReactNode}[]","AccessStatusBadge","CopyableText","AccountLifecycleButtons","ConfirmButton","Panel","DetailList","ChipList"],"sources":["../../../../../src/components/admin/AgentDetails/BaseAgentDetails.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {AccountLifecycleAction, Agent, MembershipGroup, Preferences, getAgentName} from '@thunderid/browser';\nimport {FC, ReactElement, ReactNode} from 'react';\nimport useTranslation from '../../../hooks/useTranslation';\nimport Alert from '../../primitives/Alert/Alert';\nimport CopyableText from '../../primitives/CopyableText/CopyableText';\nimport Spinner from '../../primitives/Spinner/Spinner';\nimport {AccessStatusBadge, AccountLifecycleButtons} from '../shared/AccountLifecycleParts';\nimport {ChipList, ConfirmButton, DetailList, Panel} from '../shared/AdminParts';\nimport AdminSection from '../shared/AdminSection';\nimport useAdminPartStyles from '../shared/useAdminPartStyles';\n\n/**\n * What {@link BaseAgentDetails} hands its `children` render function, so the agent can be shown with any UI.\n */\nexport interface BaseAgentDetailsRenderProps {\n agent?: Agent;\n error: string | null;\n groups: MembershipGroup[];\n isDeleting: boolean;\n isLoading: boolean;\n isRunningLifecycleAction: boolean;\n /**\n * The account lifecycle actions offered for the agent. Empty when none is allowed.\n */\n lifecycleActions: AccountLifecycleAction[];\n /**\n * Deletes the agent. Undefined when deletion is not allowed, including for read-only agents.\n */\n onDelete?: () => void;\n /**\n * Runs an account lifecycle action, with the operator's note on a suspension. Undefined when none is allowed.\n */\n onLifecycleAction?: (action: AccountLifecycleAction, operatorNote?: string) => void;\n roles: string[];\n}\n\nexport interface BaseAgentDetailsProps {\n /**\n * Controls rendered next to the agent's name.\n */\n actions?: ReactNode;\n agent?: Agent;\n /**\n * Renders custom UI in place of the default view. Receives the agent, its groups and roles, the\n * loading and error state, and the delete handler.\n */\n children?: (props: BaseAgentDetailsRenderProps) => ReactNode;\n className?: string;\n error?: string | null;\n /**\n * The groups the agent belongs to.\n */\n groups?: MembershipGroup[];\n isDeleting?: boolean;\n isLoading?: boolean;\n isRunningLifecycleAction?: boolean;\n /**\n * The account lifecycle actions to offer (suspend, unsuspend, unlock), shown only with `onLifecycleAction`. They change\n * only runtime state, so they apply to read-only agents too.\n */\n lifecycleActions?: AccountLifecycleAction[];\n /**\n * Deletes the agent. The delete action is hidden when omitted.\n */\n onDelete?: () => void;\n /**\n * Runs an account lifecycle action. Suspending and unsuspending ask for confirmation first, and a\n * suspension takes an optional operator note.\n */\n onLifecycleAction?: (action: AccountLifecycleAction, operatorNote?: string) => void;\n preferences?: Preferences;\n /**\n * The names of the roles the agent holds, directly or through its groups.\n */\n roles?: string[];\n}\n\n/**\n * Shows an agent's type, owner, client and the groups and roles it holds. Holds no data of its own:\n * pass the agent and handle deletion.\n */\nconst BaseAgentDetails: FC<BaseAgentDetailsProps> = ({\n actions,\n agent,\n children,\n className,\n error = null,\n groups = [],\n isDeleting = false,\n isLoading = false,\n isRunningLifecycleAction = false,\n lifecycleActions = [],\n onDelete,\n onLifecycleAction,\n preferences,\n roles = [],\n}: BaseAgentDetailsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const styles: Record<string, string> = useAdminPartStyles();\n\n if (children) {\n return (\n <div className={className}>\n {children({\n agent,\n error,\n groups,\n isDeleting,\n isLoading,\n isRunningLifecycleAction,\n lifecycleActions: onLifecycleAction && agent ? lifecycleActions : [],\n onDelete: agent && !agent.isReadOnly ? onDelete : undefined,\n onLifecycleAction: agent ? onLifecycleAction : undefined,\n roles,\n })}\n </div>\n );\n }\n\n if (isLoading && !agent) {\n return (\n <AdminSection block=\"agent-details\" className={className} preferences={preferences}>\n <span className={styles['muted']} role=\"status\">\n <Spinner size=\"small\" /> {t('admin.common.loading')}\n </span>\n </AdminSection>\n );\n }\n\n if (!agent) {\n return (\n <AdminSection block=\"agent-details\" className={className} preferences={preferences}>\n <Alert variant=\"error\" role=\"alert\">\n {error ?? t('admin.common.errors.not_found')}\n </Alert>\n </AdminSection>\n );\n }\n\n const details: {label: string; value: ReactNode}[] = [\n {label: t('admin.agents.details.type'), value: agent.type},\n {label: t('admin.agents.details.owner'), value: agent.owner ?? t('admin.agents.details.no_owner')},\n {label: t('admin.common.columns.organization_unit'), value: agent.ouHandle ?? agent.ouId},\n ];\n\n if (agent.status) {\n details.push({label: t('admin.common.columns.status'), value: <AccessStatusBadge status={agent.status.value} />});\n }\n\n if (agent.clientId) {\n details.push({label: t('admin.agents.list.columns.client_id'), value: <CopyableText value={agent.clientId} />});\n }\n\n return (\n <AdminSection\n block=\"agent-details\"\n className={className}\n title={getAgentName(agent)}\n description={agent.description}\n preferences={preferences}\n actions={\n <>\n {actions}\n {onLifecycleAction && (\n <AccountLifecycleButtons\n actions={lifecycleActions}\n collectsOperatorNote\n isRunning={isRunningLifecycleAction}\n name={getAgentName(agent)}\n onAction={onLifecycleAction}\n />\n )}\n {onDelete && !agent.isReadOnly && (\n <ConfirmButton\n confirmText={t('admin.agents.details.delete.confirm', {name: getAgentName(agent)})}\n isLoading={isDeleting}\n onConfirm={onDelete}\n >\n {t('admin.agents.details.delete.action')}\n </ConfirmButton>\n )}\n </>\n }\n >\n {error && (\n <Alert variant=\"error\" role=\"alert\">\n {error}\n </Alert>\n )}\n <Panel title={t('admin.agents.details.overview')}>\n <DetailList items={details} />\n </Panel>\n <Panel title={t('admin.agents.details.groups')}>\n <ChipList\n label={t('admin.agents.details.groups')}\n emptyText={t('admin.agents.details.no_groups')}\n items={groups.map((group: MembershipGroup) => ({id: group.id, label: group.name}))}\n />\n </Panel>\n <Panel title={t('admin.agents.details.roles')}>\n <ChipList\n label={t('admin.agents.details.roles')}\n emptyText={t('admin.agents.details.no_roles')}\n items={roles.map((role: string) => ({id: role, label: role}))}\n />\n </Panel>\n </AdminSection>\n );\n};\n\nexport default BaseAgentDetails;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAoFA,MAAMA,oBAA+C,EACnD,SACA,OACA,UACA,WACA,QAAQ,MACR,SAAS,EAAE,EACX,aAAa,OACb,YAAY,OACZ,2BAA2B,OAC3B,mBAAmB,EAAE,EACrB,UACA,mBACA,aACA,QAAQ,EAAE,OAC+B;CACzC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,SAAiCC,oCAAoB;AAE3D,KAAI,SACF,QACE,2CAAC;EAAe;YACb,SAAS;GACR;GACA;GACA;GACA;GACA;GACA;GACA,kBAAkB,qBAAqB,QAAQ,mBAAmB,EAAE;GACpE,UAAU,SAAS,CAAC,MAAM,aAAa,WAAW;GAClD,mBAAmB,QAAQ,oBAAoB;GAC/C;GACD,CAAC;GACE;AAIV,KAAI,aAAa,CAAC,MAChB,QACE,2CAACC;EAAa,OAAM;EAA2B;EAAwB;YACrE,4CAAC;GAAK,WAAW,OAAO;GAAU,MAAK;;IACrC,2CAACC,2BAAQ,MAAK,UAAU;;IAAE,EAAE,uBAAuB;;IAC9C;GACM;AAInB,KAAI,CAAC,MACH,QACE,2CAACD;EAAa,OAAM;EAA2B;EAAwB;YACrE,2CAACE;GAAM,SAAQ;GAAQ,MAAK;aACzB,SAAS,EAAE,gCAAgC;IACtC;GACK;CAInB,MAAMC,UAA+C;EACnD;GAAC,OAAO,EAAE,4BAA4B;GAAE,OAAO,MAAM;GAAK;EAC1D;GAAC,OAAO,EAAE,6BAA6B;GAAE,OAAO,MAAM,SAAS,EAAE,gCAAgC;GAAC;EAClG;GAAC,OAAO,EAAE,yCAAyC;GAAE,OAAO,MAAM,YAAY,MAAM;GAAK;EAC1F;AAED,KAAI,MAAM,OACR,SAAQ,KAAK;EAAC,OAAO,EAAE,8BAA8B;EAAE,OAAO,2CAACC,mDAAkB,QAAQ,MAAM,OAAO,QAAS;EAAC,CAAC;AAGnH,KAAI,MAAM,SACR,SAAQ,KAAK;EAAC,OAAO,EAAE,sCAAsC;EAAE,OAAO,2CAACC,gCAAa,OAAO,MAAM,WAAY;EAAC,CAAC;AAGjH,QACE,4CAACL;EACC,OAAM;EACK;EACX,6CAAoB,MAAM;EAC1B,aAAa,MAAM;EACN;EACb,SACE;GACG;GACA,qBACC,2CAACM;IACC,SAAS;IACT;IACA,WAAW;IACX,4CAAmB,MAAM;IACzB,UAAU;KACV;GAEH,YAAY,CAAC,MAAM,cAClB,2CAACC;IACC,aAAa,EAAE,uCAAuC,EAAC,4CAAmB,MAAM,EAAC,CAAC;IAClF,WAAW;IACX,WAAW;cAEV,EAAE,qCAAqC;KAC1B;MAEjB;;GAGJ,SACC,2CAACL;IAAM,SAAQ;IAAQ,MAAK;cACzB;KACK;GAEV,2CAACM;IAAM,OAAO,EAAE,gCAAgC;cAC9C,2CAACC,iCAAW,OAAO,UAAW;KACxB;GACR,2CAACD;IAAM,OAAO,EAAE,8BAA8B;cAC5C,2CAACE;KACC,OAAO,EAAE,8BAA8B;KACvC,WAAW,EAAE,iCAAiC;KAC9C,OAAO,OAAO,KAAK,WAA4B;MAAC,IAAI,MAAM;MAAI,OAAO,MAAM;MAAK,EAAE;MAClF;KACI;GACR,2CAACF;IAAM,OAAO,EAAE,6BAA6B;cAC3C,2CAACE;KACC,OAAO,EAAE,6BAA6B;KACtC,WAAW,EAAE,gCAAgC;KAC7C,OAAO,MAAM,KAAK,UAAkB;MAAC,IAAI;MAAM,OAAO;MAAK,EAAE;MAC7D;KACI;;GACK;;AAInB,+BAAe"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentList.cjs","names":["AgentList: FC<AgentListProps>","useTranslation","attributes: SelectOption[]","endpoint: ManagementEndpoint","useManagementEndpoint","filter: string | undefined","useResourceQuery","AgentQueryKeys","BaseAgentList"],"sources":["../../../../../src/components/admin/AgentList/AgentList.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AgentListResponse,\n AgentQueryKeys,\n SelectOption,\n getAgents,\n toEqualityFilter,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useState} from 'react';\nimport BaseAgentList, {BaseAgentListProps} from './BaseAgentList';\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 AgentListProps = Omit<\n BaseAgentListProps,\n 'agents' | 'error' | 'isLoading' | 'offset' | 'onPageChange' | 'onSearch' | 'search' | 'totalResults'\n> & {\n /**\n * Whether to show the search form. Agents are searched by a custom attribute, by default `name`, and\n * the server matches the whole value.\n * @default true\n */\n searchable?: boolean;\n};\n\n/**\n * Lists the agents the signed-in user is allowed to see, a page at a time.\n *\n * @example\n * ```tsx\n * <AgentList onSelect={(agent) => setSelectedAgentId(agent.id)} />\n * ```\n */\nconst AgentList: FC<AgentListProps> = ({\n limit = 20,\n preferences,\n searchable = true,\n searchAttributes,\n ...rest\n}: AgentListProps): 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 ?? [{label: t('admin.agents.list.search.name'), value: 'name'}];\n const endpoint: ManagementEndpoint = useManagementEndpoint('agents');\n const filter: string | undefined = search ? toEqualityFilter(search.attribute, search.value) : undefined;\n const {data, error, isLoading}: ResourceQueryResult<AgentListResponse> = useResourceQuery(\n [AgentQueryKeys.AGENTS, {filter, limit, offset}],\n (fetcher) => getAgents({...endpoint, fetcher, filter, limit, offset}),\n );\n\n return (\n <BaseAgentList\n agents={data?.agents ?? []}\n totalResults={data?.totalResults}\n isLoading={isLoading}\n error={toManagementErrorMessage(t, error, 'admin.agents.list.error')}\n limit={limit}\n offset={offset}\n onPageChange={setOffset}\n search={search}\n searchAttributes={attributes}\n onSearch={\n searchable\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 AgentList;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAsCA,MAAMA,aAAiC,EACrC,QAAQ,IACR,aACA,aAAa,MACb,iBACA,GAAG,WAC+B;CAClC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,QAAQ,iCAA8B,EAAE;CAC/C,MAAM,CAAC,QAAQ,iCAA+C,KAAK;CACnE,MAAMC,aAA6B,oBAAoB,CAAC;EAAC,OAAO,EAAE,gCAAgC;EAAE,OAAO;EAAO,CAAC;CACnH,MAAMC,WAA+BC,sCAAsB,SAAS;CACpE,MAAMC,SAA6B,mDAA0B,OAAO,WAAW,OAAO,MAAM,GAAG;CAC/F,MAAM,EAAC,MAAM,OAAO,cAAqDC,iCACvE,CAACC,mCAAe,QAAQ;EAAC;EAAQ;EAAO;EAAO,CAAC,GAC/C,+CAAsB;EAAC,GAAG;EAAU;EAAS;EAAQ;EAAO;EAAO,CAAC,CACtE;AAED,QACE,2CAACC;EACC,QAAQ,MAAM,UAAU,EAAE;EAC1B,cAAc,MAAM;EACT;EACX,yDAAgC,GAAG,OAAO,0BAA0B;EAC7D;EACC;EACR,cAAc;EACN;EACR,kBAAkB;EAClB,UACE,cACK,SAAwC;AACvC,aAAU,KAAK;AACf,aAAU,EAAE;MAEd;EAEO;EACb,GAAI;GACJ;;AAIN,wBAAe"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseAgentList.cjs","names":["BaseAgentList: FC<BaseAgentListProps>","useTranslation","columns: DataTableColumn<BasicAgent>[]","AdminSection","AdminSearch","DataTable"],"sources":["../../../../../src/components/admin/AgentList/BaseAgentList.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {BasicAgent, Preferences, SelectOption, getAgentName} from '@thunderid/browser';\nimport {FC, ReactElement, ReactNode} from 'react';\nimport useTranslation from '../../../hooks/useTranslation';\nimport DataTable, {DataTableColumn} from '../../primitives/DataTable/DataTable';\nimport {AdminListRenderProps} from '../shared/AdminListRenderProps';\nimport AdminSearch, {AdminSearchValue} from '../shared/AdminSearch';\nimport AdminSection from '../shared/AdminSection';\n\n/**\n * What {@link BaseAgentList} hands its `children` render function. `agents` and `rows` are the same array.\n */\nexport type BaseAgentListRenderProps = AdminListRenderProps<BasicAgent> & {agents: BasicAgent[]};\n\nexport interface BaseAgentListProps {\n /**\n * Controls rendered next to the title, such as a button that opens `AgentCreate`.\n */\n actions?: ReactNode;\n className?: string;\n description?: string;\n agents: BasicAgent[];\n /**\n * Renders custom UI in place of the default table, for example a third-party data grid. Receives\n * the agents, the default columns, the loading and error state, and the pagination and selection\n * handlers.\n */\n children?: (props: BaseAgentListRenderProps) => ReactNode;\n error?: string | null;\n isLoading?: boolean;\n /**\n * Page size.\n * @default 20\n */\n limit?: number;\n offset?: number;\n /**\n * Called with the offset of the page to show. Pagination is hidden when omitted.\n */\n onPageChange?: (offset: number) => void;\n /**\n * Applies a search on the server, or clears it with `null`. The search form shows only when this and\n * `searchAttributes` are set.\n */\n onSearch?: (search: AdminSearchValue | null) => void;\n /**\n * Called when an agent is chosen. Rows are selectable only when set.\n */\n onSelect?: (agent: BasicAgent) => void;\n preferences?: Preferences;\n /**\n * The search currently applied, if any. While set, an empty page says nothing matched.\n */\n search?: AdminSearchValue | null;\n /**\n * The agent attributes that can be searched, with translated labels.\n */\n searchAttributes?: SelectOption[];\n selectedAgentId?: string;\n /**\n * Heading of the list. Pass an empty string to hide it.\n */\n title?: string;\n totalResults?: number;\n}\n\n/**\n * Lists agents with their type, client and organization unit. Holds no data of its own: pass the\n * page of agents and handle selection and pagination.\n */\nconst BaseAgentList: FC<BaseAgentListProps> = ({\n actions,\n agents,\n children,\n className,\n description,\n error = null,\n isLoading = false,\n limit = 20,\n offset = 0,\n onPageChange,\n onSearch,\n onSelect,\n preferences,\n search = null,\n searchAttributes,\n selectedAgentId,\n title,\n totalResults,\n}: BaseAgentListProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n\n const columns: DataTableColumn<BasicAgent>[] = [\n {\n header: t('admin.agents.list.columns.name'),\n id: 'name',\n render: (agent: BasicAgent): ReactNode => getAgentName(agent),\n },\n {header: t('admin.agents.list.columns.type'), id: 'type', render: (agent: BasicAgent): ReactNode => agent.type},\n {\n header: t('admin.agents.list.columns.client_id'),\n id: 'clientId',\n render: (agent: BasicAgent): ReactNode => <code>{agent.clientId ?? ''}</code>,\n },\n {\n header: t('admin.common.columns.organization_unit'),\n id: 'ou',\n render: (agent: BasicAgent): ReactNode => agent.ouHandle ?? agent.ouId,\n },\n ];\n\n if (children) {\n return (\n <div className={className}>\n {children({\n columns,\n error,\n isLoading,\n limit,\n offset,\n onPageChange,\n onSelect,\n onSearch,\n rows: agents,\n search,\n searchAttributes,\n selectedRowId: selectedAgentId,\n totalResults: totalResults ?? agents.length,\n agents,\n })}\n </div>\n );\n }\n\n return (\n <AdminSection\n block=\"agent-list\"\n className={className}\n title={title ?? t('admin.agents.list.title')}\n description={description}\n actions={actions}\n preferences={preferences}\n >\n {onSearch && searchAttributes?.length ? (\n <AdminSearch attributes={searchAttributes} search={search} onSearch={onSearch} />\n ) : null}\n <DataTable\n caption={title?.length ? title : t('admin.agents.list.title')}\n columns={columns}\n rows={agents}\n getRowId={(agent: BasicAgent): string => agent.id}\n isLoading={isLoading}\n error={error}\n emptyText={search ? t('admin.common.search.no_results', {value: search.value}) : t('admin.agents.list.empty')}\n onRowClick={onSelect}\n selectedRowId={selectedAgentId}\n pagination={\n onPageChange ? {limit, offset, onChange: onPageChange, total: totalResults ?? agents.length} : undefined\n }\n />\n </AdminSection>\n );\n};\n\nexport default BaseAgentList;\n"],"mappings":";;;;;;;;;;;;;;;AAwEA,MAAMA,iBAAyC,EAC7C,SACA,QACA,UACA,WACA,aACA,QAAQ,MACR,YAAY,OACZ,QAAQ,IACR,SAAS,GACT,cACA,UACA,UACA,aACA,SAAS,MACT,kBACA,iBACA,OACA,mBACsC;CACtC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAE7C,MAAMC,UAAyC;EAC7C;GACE,QAAQ,EAAE,iCAAiC;GAC3C,IAAI;GACJ,SAAS,gDAA8C,MAAM;GAC9D;EACD;GAAC,QAAQ,EAAE,iCAAiC;GAAE,IAAI;GAAQ,SAAS,UAAiC,MAAM;GAAK;EAC/G;GACE,QAAQ,EAAE,sCAAsC;GAChD,IAAI;GACJ,SAAS,UAAiC,2CAAC,oBAAM,MAAM,YAAY,KAAU;GAC9E;EACD;GACE,QAAQ,EAAE,yCAAyC;GACnD,IAAI;GACJ,SAAS,UAAiC,MAAM,YAAY,MAAM;GACnE;EACF;AAED,KAAI,SACF,QACE,2CAAC;EAAe;YACb,SAAS;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,MAAM;GACN;GACA;GACA,eAAe;GACf,cAAc,gBAAgB,OAAO;GACrC;GACD,CAAC;GACE;AAIV,QACE,4CAACC;EACC,OAAM;EACK;EACX,OAAO,SAAS,EAAE,0BAA0B;EAC/B;EACJ;EACI;aAEZ,YAAY,kBAAkB,SAC7B,2CAACC;GAAY,YAAY;GAA0B;GAAkB;IAAY,GAC/E,MACJ,2CAACC;GACC,SAAS,OAAO,SAAS,QAAQ,EAAE,0BAA0B;GACpD;GACT,MAAM;GACN,WAAW,UAA8B,MAAM;GACpC;GACJ;GACP,WAAW,SAAS,EAAE,kCAAkC,EAAC,OAAO,OAAO,OAAM,CAAC,GAAG,EAAE,0BAA0B;GAC7G,YAAY;GACZ,eAAe;GACf,YACE,eAAe;IAAC;IAAO;IAAQ,UAAU;IAAc,OAAO,gBAAgB,OAAO;IAAO,GAAG;IAEjG;GACW;;AAInB,4BAAe"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ApplicationCreate.cjs","names":["ApplicationCreate: FC<ApplicationCreateProps>","useTranslation","resolvedOuId: string | undefined","useDefaultOuId","endpoint: ManagementEndpoint","useManagementEndpoint","useResourceMutation","ApplicationQueryKeys","secret: string | undefined","BaseApplicationCreate"],"sources":["../../../../../src/components/admin/ApplicationCreate/ApplicationCreate.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n Application,\n ApplicationQueryKeys,\n createApplication,\n CreateApplicationRequest,\n getApplicationClientSecret,\n toCreateApplicationRequest,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useState} from 'react';\nimport BaseApplicationCreate, {ApplicationCreateSubmission, BaseApplicationCreateProps} from './BaseApplicationCreate';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceMutation, {ResourceMutationResult} from '../../../hooks/management/useResourceMutation';\nimport useTranslation from '../../../hooks/useTranslation';\nimport useDefaultOuId from '../shared/useDefaultOuId';\n\nexport type ApplicationCreateProps = Omit<\n BaseApplicationCreateProps,\n 'clientSecret' | 'error' | 'isSubmitting' | 'onSecretDismiss' | 'onSubmit'\n> & {\n /**\n * Called with the created application. When the server returned a client secret, it is called once\n * the user has copied the secret, since the secret cannot be read again.\n */\n onCreated?: (application: Application) => void;\n /**\n * Organization unit the application is created in. Defaults to the signed-in user's organization unit.\n */\n ouId?: string;\n};\n\n/**\n * Creates an application with an OAuth client through the management API, and shows its client\n * secret once when the server returns one.\n *\n * The server guards applications with the root `system` permission, for reading and for changes alike;\n * it defines no application-specific permission. Gate the view and its actions on it with\n * `useGrantedPermissions().can('system')`.\n *\n * @example\n * ```tsx\n * <ApplicationCreate onCreated={(application) => navigate(`/applications/${application.id}`)} />\n * ```\n */\nconst ApplicationCreate: FC<ApplicationCreateProps> = ({\n onCreated,\n ouId,\n preferences,\n ...rest\n}: ApplicationCreateProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const resolvedOuId: string | undefined = useDefaultOuId(ouId);\n const endpoint: ManagementEndpoint = useManagementEndpoint('applications');\n const [created, setCreated] = useState<{application: Application; secret: string} | null>(null);\n const [formKey, setFormKey] = useState<number>(0);\n const {error, isLoading, mutate}: ResourceMutationResult<Application, CreateApplicationRequest> = useResourceMutation(\n (payload: CreateApplicationRequest, fetcher) => createApplication({...endpoint, fetcher, payload}),\n () => [[ApplicationQueryKeys.APPLICATIONS]],\n {\n onSuccess: (application: Application): void => {\n const secret: string | undefined = getApplicationClientSecret(application);\n\n if (secret) {\n setCreated({application, secret});\n } else {\n onCreated?.(application);\n }\n },\n },\n );\n\n const handleSubmit = (submission: ApplicationCreateSubmission): void => {\n if (resolvedOuId) {\n void mutate(toCreateApplicationRequest(submission, resolvedOuId));\n }\n };\n\n const handleSecretDismiss = (): void => {\n if (created) {\n setCreated(null);\n setFormKey((key: number) => key + 1);\n onCreated?.(created.application);\n }\n };\n\n return (\n <BaseApplicationCreate\n key={formKey}\n onSubmit={handleSubmit}\n isSubmitting={isLoading}\n clientSecret={created?.secret ?? null}\n onSecretDismiss={handleSecretDismiss}\n error={\n resolvedOuId\n ? toManagementErrorMessage(t, error, 'admin.applications.create.error')\n : t('admin.common.errors.no_ou')\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default ApplicationCreate;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,MAAMA,qBAAiD,EACrD,WACA,MACA,YACA,GAAG,WACuC;CAC1C,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,eAAmCC,+BAAe,KAAK;CAC7D,MAAMC,WAA+BC,sCAAsB,eAAe;CAC1E,MAAM,CAAC,SAAS,kCAA0E,KAAK;CAC/F,MAAM,CAAC,SAAS,kCAA+B,EAAE;CACjD,MAAM,EAAC,OAAO,WAAW,WAAyEC,qCAC/F,SAAmC,uDAA8B;EAAC,GAAG;EAAU;EAAS;EAAQ,CAAC,QAC5F,CAAC,CAACC,yCAAqB,aAAa,CAAC,EAC3C,EACE,YAAY,gBAAmC;EAC7C,MAAMC,6DAAwD,YAAY;AAE1E,MAAI,OACF,YAAW;GAAC;GAAa;GAAO,CAAC;MAEjC,aAAY,YAAY;IAG7B,CACF;CAED,MAAM,gBAAgB,eAAkD;AACtE,MAAI,aACF,CAAK,2DAAkC,YAAY,aAAa,CAAC;;CAIrE,MAAM,4BAAkC;AACtC,MAAI,SAAS;AACX,cAAW,KAAK;AAChB,eAAY,QAAgB,MAAM,EAAE;AACpC,eAAY,QAAQ,YAAY;;;AAIpC,QACE,2CAACC;EAEC,UAAU;EACV,cAAc;EACd,cAAc,SAAS,UAAU;EACjC,iBAAiB;EACjB,OACE,iEAC6B,GAAG,OAAO,kCAAkC,GACrE,EAAE,4BAA4B;EAEvB;EACb,GAAI;IAXC,QAYL;;AAIN,gCAAe"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseApplicationCreate.cjs","names":["BaseApplicationCreate: FC<BaseApplicationCreateProps>","useTheme","styles: Record<string, string>","useStyles","useTranslation","DEFAULT_APPLICATION_GRANT_TYPES","submission: ApplicationCreateSubmission","isValid: boolean","APPLICATION_GRANT_TYPES","AdminSection","ClientSecretNotice","Alert","ApplicationFormFields","Button"],"sources":["../../../../../src/components/admin/ApplicationCreate/BaseApplicationCreate.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n APPLICATION_GRANT_TYPES,\n ApplicationSubmission,\n DEFAULT_APPLICATION_GRANT_TYPES,\n isApplicationSubmissionValid,\n parseRedirectUris,\n Preferences,\n SelectOption,\n} from '@thunderid/browser';\nimport {FC, FormEvent, ReactElement, ReactNode, useState} from 'react';\nimport useTheme from '../../../contexts/Theme/useTheme';\nimport useTranslation from '../../../hooks/useTranslation';\nimport Alert from '../../primitives/Alert/Alert';\nimport Button from '../../primitives/Button/Button';\nimport AdminSection from '../shared/AdminSection';\nimport useStyles from '../shared/AdminSection.styles';\nimport ApplicationFormFields, {ApplicationFormValues, ApplicationTextField} from '../shared/ApplicationFormFields';\nimport ClientSecretNotice from '../shared/ClientSecretNotice';\n\n/**\n * The application {@link BaseApplicationCreate} submits. The organization unit is added by the caller.\n */\nexport type ApplicationCreateSubmission = ApplicationSubmission;\n\n/**\n * What {@link BaseApplicationCreate} hands its `children` render function, so the form can be built with any UI.\n */\nexport interface BaseApplicationCreateRenderProps {\n /**\n * The client secret of the application just created, to show once. `null` while there is none.\n */\n clientSecret: string | null;\n error: string | null;\n /**\n * The grant types to choose from, with translated labels.\n */\n grantTypeOptions: SelectOption[];\n /**\n * Sets the chosen grant types.\n */\n handleGrantTypesChange: (grantTypes: string[]) => void;\n /**\n * Sets one text field of the form. `redirectUris` takes URIs separated by commas.\n */\n handleInputChange: (field: ApplicationTextField, value: string) => void;\n /**\n * Sets whether the client is public.\n */\n handlePublicClientChange: (publicClient: boolean) => void;\n /**\n * Submits the current values. Does nothing while they are not valid.\n */\n handleSubmit: () => void;\n isSubmitting: boolean;\n /**\n * Whether the values can be submitted.\n */\n isValid: boolean;\n onCancel?: () => void;\n /**\n * Hides the client secret once it has been copied. Undefined while there is no secret.\n */\n onSecretDismiss?: () => void;\n values: ApplicationFormValues;\n}\n\nexport interface BaseApplicationCreateProps {\n /**\n * Renders custom UI in place of the default form. Receives the values, their setters, the grant\n * types, the submit handler, the submission state and the client secret to show.\n */\n children?: (props: BaseApplicationCreateRenderProps) => ReactNode;\n className?: string;\n /**\n * The client secret of the application just created. When set, the form gives way to the secret,\n * which can be read only this once, until `onSecretDismiss` clears it.\n */\n clientSecret?: string | null;\n description?: string;\n error?: string | null;\n isSubmitting?: boolean;\n onCancel?: () => void;\n /**\n * Called when the user has copied the client secret.\n */\n onSecretDismiss?: () => void;\n onSubmit: (application: ApplicationCreateSubmission) => void;\n preferences?: Preferences;\n title?: string;\n}\n\n/**\n * A form that collects a new application's name, description, links and OAuth basics: redirect URIs,\n * grant types and whether the client is public. Holds no data of its own: handle the submission, and\n * pass back the client secret the server returned to show it once.\n */\nconst BaseApplicationCreate: FC<BaseApplicationCreateProps> = ({\n children,\n className,\n clientSecret = null,\n description,\n error = null,\n isSubmitting = false,\n onCancel,\n onSecretDismiss,\n onSubmit,\n preferences,\n title,\n}: BaseApplicationCreateProps): ReactElement => {\n const {theme, colorScheme} = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme);\n const {t} = useTranslation(preferences?.i18n);\n const [values, setValues] = useState<ApplicationFormValues>({\n description: '',\n grantTypes: [...DEFAULT_APPLICATION_GRANT_TYPES],\n logoUrl: '',\n name: '',\n publicClient: false,\n redirectUris: '',\n url: '',\n });\n\n const submission: ApplicationCreateSubmission = {\n description: values.description.trim() || undefined,\n grantTypes: values.grantTypes,\n logoUrl: values.logoUrl.trim() || undefined,\n name: values.name.trim(),\n publicClient: values.publicClient,\n redirectUris: parseRedirectUris(values.redirectUris),\n url: values.url.trim() || undefined,\n };\n const isValid: boolean = isApplicationSubmissionValid(submission);\n\n const setInput = (field: ApplicationTextField, value: string): void =>\n setValues((previous: ApplicationFormValues) => ({...previous, [field]: value}));\n const setGrantTypes = (grantTypes: string[]): void =>\n setValues((previous: ApplicationFormValues) => ({...previous, grantTypes}));\n const setPublicClient = (publicClient: boolean): void =>\n setValues((previous: ApplicationFormValues) => ({...previous, publicClient}));\n\n const submit = (): void => {\n if (isValid && !isSubmitting) {\n onSubmit(submission);\n }\n };\n\n const handleSubmit = (event: FormEvent<HTMLFormElement>): void => {\n event.preventDefault();\n submit();\n };\n\n if (children) {\n return (\n <div className={className}>\n {children({\n clientSecret,\n error,\n grantTypeOptions: APPLICATION_GRANT_TYPES.map((grantType: string) => ({\n label: t(`admin.applications.grant_types.${grantType}`),\n value: grantType,\n })),\n handleGrantTypesChange: setGrantTypes,\n handleInputChange: setInput,\n handlePublicClientChange: setPublicClient,\n handleSubmit: submit,\n isSubmitting,\n isValid,\n onCancel,\n onSecretDismiss: clientSecret ? onSecretDismiss : undefined,\n values,\n })}\n </div>\n );\n }\n\n return (\n <AdminSection\n block=\"application-create\"\n className={className}\n title={title ?? t('admin.applications.create.title')}\n description={description}\n preferences={preferences}\n >\n {clientSecret ? (\n <ClientSecretNotice secret={clientSecret} onDismiss={onSecretDismiss} preferences={preferences} />\n ) : (\n <form className={styles['form']} onSubmit={handleSubmit} noValidate>\n {error && (\n <Alert variant=\"error\" role=\"alert\">\n {error}\n </Alert>\n )}\n <ApplicationFormFields\n preferences={preferences}\n values={values}\n onInputChange={setInput}\n onGrantTypesChange={setGrantTypes}\n onPublicClientChange={setPublicClient}\n />\n <div className={styles['formActions']}>\n {onCancel && (\n <Button type=\"button\" variant=\"text\" onClick={onCancel} disabled={isSubmitting}>\n {t('admin.common.actions.cancel')}\n </Button>\n )}\n <Button type=\"submit\" loading={isSubmitting} disabled={!isValid || isSubmitting}>\n {t('admin.applications.create.submit')}\n </Button>\n </div>\n </form>\n )}\n </AdminSection>\n );\n};\n\nexport default BaseApplicationCreate;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAmGA,MAAMA,yBAAyD,EAC7D,UACA,WACA,eAAe,MACf,aACA,QAAQ,MACR,eAAe,OACf,UACA,iBACA,UACA,aACA,YAC8C;CAC9C,MAAM,EAAC,OAAO,gBAAeC,0BAAU;CACvC,MAAMC,SAAiCC,oCAAU,OAAO,YAAY;CACpE,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,QAAQ,iCAA6C;EAC1D,aAAa;EACb,YAAY,CAAC,GAAGC,oDAAgC;EAChD,SAAS;EACT,MAAM;EACN,cAAc;EACd,cAAc;EACd,KAAK;EACN,CAAC;CAEF,MAAMC,aAA0C;EAC9C,aAAa,OAAO,YAAY,MAAM,IAAI;EAC1C,YAAY,OAAO;EACnB,SAAS,OAAO,QAAQ,MAAM,IAAI;EAClC,MAAM,OAAO,KAAK,MAAM;EACxB,cAAc,OAAO;EACrB,yDAAgC,OAAO,aAAa;EACpD,KAAK,OAAO,IAAI,MAAM,IAAI;EAC3B;CACD,MAAMC,gEAAgD,WAAW;CAEjE,MAAM,YAAY,OAA6B,UAC7C,WAAW,cAAqC;EAAC,GAAG;GAAW,QAAQ;EAAM,EAAE;CACjF,MAAM,iBAAiB,eACrB,WAAW,cAAqC;EAAC,GAAG;EAAU;EAAW,EAAE;CAC7E,MAAM,mBAAmB,iBACvB,WAAW,cAAqC;EAAC,GAAG;EAAU;EAAa,EAAE;CAE/E,MAAM,eAAqB;AACzB,MAAI,WAAW,CAAC,aACd,UAAS,WAAW;;CAIxB,MAAM,gBAAgB,UAA4C;AAChE,QAAM,gBAAgB;AACtB,UAAQ;;AAGV,KAAI,SACF,QACE,2CAAC;EAAe;YACb,SAAS;GACR;GACA;GACA,kBAAkBC,4CAAwB,KAAK,eAAuB;IACpE,OAAO,EAAE,kCAAkC,YAAY;IACvD,OAAO;IACR,EAAE;GACH,wBAAwB;GACxB,mBAAmB;GACnB,0BAA0B;GAC1B,cAAc;GACd;GACA;GACA;GACA,iBAAiB,eAAe,kBAAkB;GAClD;GACD,CAAC;GACE;AAIV,QACE,2CAACC;EACC,OAAM;EACK;EACX,OAAO,SAAS,EAAE,kCAAkC;EACvC;EACA;YAEZ,eACC,2CAACC;GAAmB,QAAQ;GAAc,WAAW;GAA8B;IAAe,GAElG,4CAAC;GAAK,WAAW,OAAO;GAAS,UAAU;GAAc;;IACtD,SACC,2CAACC;KAAM,SAAQ;KAAQ,MAAK;eACzB;MACK;IAEV,2CAACC;KACc;KACL;KACR,eAAe;KACf,oBAAoB;KACpB,sBAAsB;MACtB;IACF,4CAAC;KAAI,WAAW,OAAO;gBACpB,YACC,2CAACC;MAAO,MAAK;MAAS,SAAQ;MAAO,SAAS;MAAU,UAAU;gBAC/D,EAAE,8BAA8B;OAC1B,EAEX,2CAACA;MAAO,MAAK;MAAS,SAAS;MAAc,UAAU,CAAC,WAAW;gBAChE,EAAE,mCAAmC;OAC/B;MACL;;IACD;GAEI;;AAInB,oCAAe"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ApplicationDetails.cjs","names":["ApplicationDetails: FC<ApplicationDetailsProps>","useTranslation","endpoint: ManagementEndpoint","useManagementEndpoint","application: ResourceQueryResult<Application>","useResourceQuery","ApplicationQueryKeys","deletion: ResourceMutationResult<void, string>","useResourceMutation","update: ResourceMutationResult<Application, UpdateApplicationVariables>","regeneration: ResourceMutationResult<RegenerateClientSecretResult, string>","lifecycle: AccountLifecycleState","useAccountLifecycle","BaseApplicationDetails"],"sources":["../../../../../src/components/admin/ApplicationDetails/ApplicationDetails.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AdministrationMode,\n Application,\n ApplicationQueryKeys,\n deleteApplication,\n getApplication,\n regenerateClientSecret,\n RegenerateClientSecretResult,\n toManagementErrorMessage,\n toUpdateApplicationRequest,\n updateApplication,\n} from '@thunderid/browser';\nimport {FC, ReactElement} from 'react';\nimport BaseApplicationDetails, {\n ApplicationUpdateSubmission,\n BaseApplicationDetailsProps,\n} from './BaseApplicationDetails';\nimport useAccountLifecycle, {AccountLifecycleState} from '../../../hooks/management/useAccountLifecycle';\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 UpdateApplicationVariables {\n application: Application;\n changes: ApplicationUpdateSubmission;\n}\n\nexport type ApplicationDetailsProps = Omit<\n BaseApplicationDetailsProps,\n | 'application'\n | 'clientSecret'\n | 'error'\n | 'isDeleting'\n | 'isLoading'\n | 'isRegeneratingSecret'\n | 'isRunningLifecycleAction'\n | 'isUpdating'\n | 'lifecycleActions'\n | 'onDelete'\n | 'onLifecycleAction'\n | 'onRegenerateSecret'\n | 'onSecretDismiss'\n | 'onUpdate'\n> & {\n /**\n * How the delete and the client secret regeneration run. `flow` runs the administration flow the server configures for it, which can revoke\n * grants and end sessions first. It needs `baseUrl`.\n * @default 'native'\n */\n administrationMode?: AdministrationMode;\n applicationId: string;\n /**\n * Whether the application can be deleted from this view.\n * @default false\n */\n deletable?: boolean;\n /**\n * Whether the application's general fields, redirect URIs and grant types can be edited from this view.\n * @default false\n */\n editable?: boolean;\n /**\n * Whether the application can be suspended and unsuspended from this view. Each action runs through its\n * administration flow and is offered only when the server configures that flow. Reading the configured\n * flows needs a token that may read the server configuration.\n * @default false\n */\n lifecycleActions?: boolean;\n /**\n * Called after the application has been deleted.\n */\n onDeleted?: () => void;\n /**\n * Whether the application's client secret can be regenerated from this view. The new secret is shown\n * once.\n * @default false\n */\n secretRegenerable?: boolean;\n};\n\n/**\n * Shows an application and its OAuth configuration, and optionally lets the signed-in user edit it,\n * regenerate its client secret or delete it.\n *\n * The server guards applications with the root `system` permission, for reading and for changes alike;\n * it defines no application-specific permission. Gate the view and its actions on it with\n * `useGrantedPermissions().can('system')`.\n *\n * @example\n * ```tsx\n * const {can} = useGrantedPermissions();\n * const isAdmin = can('system');\n *\n * <ApplicationDetails\n * applicationId={applicationId}\n * editable={isAdmin}\n * deletable={isAdmin}\n * secretRegenerable={isAdmin}\n * onDeleted={() => navigate('/applications')}\n * />\n * ```\n */\nconst ApplicationDetails: FC<ApplicationDetailsProps> = ({\n administrationMode,\n applicationId,\n deletable = false,\n editable = false,\n lifecycleActions = false,\n onDeleted,\n preferences,\n secretRegenerable = false,\n ...rest\n}: ApplicationDetailsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const endpoint: ManagementEndpoint = useManagementEndpoint('applications');\n const application: ResourceQueryResult<Application> = useResourceQuery(\n [ApplicationQueryKeys.APPLICATION, applicationId],\n (fetcher) => getApplication({...endpoint, applicationId, fetcher}),\n {enabled: Boolean(applicationId)},\n );\n const deletion: ResourceMutationResult<void, string> = useResourceMutation(\n (id: string, fetcher) => deleteApplication({...endpoint, administrationMode, applicationId: id, fetcher}),\n () => [[ApplicationQueryKeys.APPLICATIONS]],\n {onSuccess: onDeleted},\n );\n const update: ResourceMutationResult<Application, UpdateApplicationVariables> = useResourceMutation(\n ({application: current, changes}: UpdateApplicationVariables, fetcher) =>\n updateApplication({\n ...endpoint,\n applicationId: current.id,\n fetcher,\n payload: toUpdateApplicationRequest(current, changes),\n }),\n ({application: current}: UpdateApplicationVariables) => [\n [ApplicationQueryKeys.APPLICATION, current.id],\n [ApplicationQueryKeys.APPLICATIONS],\n ],\n );\n const regeneration: ResourceMutationResult<RegenerateClientSecretResult, string> = useResourceMutation(\n (id: string, fetcher) => regenerateClientSecret({...endpoint, administrationMode, applicationId: id, fetcher}),\n (id: string) => [[ApplicationQueryKeys.APPLICATION, id], [ApplicationQueryKeys.APPLICATIONS]],\n );\n\n const lifecycle: AccountLifecycleState = useAccountLifecycle({\n enabled: lifecycleActions,\n invalidatedKeys: [[ApplicationQueryKeys.APPLICATION, applicationId], [ApplicationQueryKeys.APPLICATIONS]],\n kind: 'application',\n status: application.data?.status?.value,\n subject: applicationId,\n });\n\n return (\n <BaseApplicationDetails\n application={application.data}\n isLoading={application.isLoading}\n error={\n toManagementErrorMessage(t, application.error, 'admin.applications.details.error') ??\n toManagementErrorMessage(t, deletion.error, 'admin.applications.details.delete.error') ??\n toManagementErrorMessage(t, update.error, 'admin.applications.details.edit.error') ??\n toManagementErrorMessage(t, regeneration.error, 'admin.applications.details.secret.error') ??\n toManagementErrorMessage(t, lifecycle.error, 'admin.common.lifecycle.error') ??\n toManagementErrorMessage(t, lifecycle.loadError, 'admin.common.lifecycle.load_error')\n }\n isDeleting={deletion.isLoading}\n onDelete={deletable ? (): void => void deletion.mutate(applicationId) : undefined}\n lifecycleActions={lifecycle.actions}\n isRunningLifecycleAction={lifecycle.isRunning}\n onLifecycleAction={lifecycleActions ? lifecycle.run : undefined}\n isUpdating={update.isLoading}\n onUpdate={\n editable && application.data\n ? (changes: ApplicationUpdateSubmission): void =>\n void update.mutate({application: application.data!, changes})\n : undefined\n }\n isRegeneratingSecret={regeneration.isLoading}\n onRegenerateSecret={secretRegenerable ? (): void => void regeneration.mutate(applicationId) : undefined}\n clientSecret={regeneration.data?.clientSecret ?? null}\n onSecretDismiss={regeneration.reset}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default ApplicationDetails;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0GA,MAAMA,sBAAmD,EACvD,oBACA,eACA,YAAY,OACZ,WAAW,OACX,mBAAmB,OACnB,WACA,aACA,oBAAoB,MACpB,GAAG,WACwC;CAC3C,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,WAA+BC,sCAAsB,eAAe;CAC1E,MAAMC,cAAgDC,iCACpD,CAACC,yCAAqB,aAAa,cAAc,GAChD,oDAA2B;EAAC,GAAG;EAAU;EAAe;EAAQ,CAAC,EAClE,EAAC,SAAS,QAAQ,cAAc,EAAC,CAClC;CACD,MAAMC,WAAiDC,qCACpD,IAAY,uDAA8B;EAAC,GAAG;EAAU;EAAoB,eAAe;EAAI;EAAQ,CAAC,QACnG,CAAC,CAACF,yCAAqB,aAAa,CAAC,EAC3C,EAAC,WAAW,WAAU,CACvB;CACD,MAAMG,SAA0ED,qCAC7E,EAAC,aAAa,SAAS,WAAsC,uDAC1C;EAChB,GAAG;EACH,eAAe,QAAQ;EACvB;EACA,6DAAoC,SAAS,QAAQ;EACtD,CAAC,GACH,EAAC,aAAa,cAAyC,CACtD,CAACF,yCAAqB,aAAa,QAAQ,GAAG,EAC9C,CAACA,yCAAqB,aAAa,CACpC,CACF;CACD,MAAMI,eAA6EF,qCAChF,IAAY,4DAAmC;EAAC,GAAG;EAAU;EAAoB,eAAe;EAAI;EAAQ,CAAC,GAC7G,OAAe,CAAC,CAACF,yCAAqB,aAAa,GAAG,EAAE,CAACA,yCAAqB,aAAa,CAAC,CAC9F;CAED,MAAMK,YAAmCC,oCAAoB;EAC3D,SAAS;EACT,iBAAiB,CAAC,CAACN,yCAAqB,aAAa,cAAc,EAAE,CAACA,yCAAqB,aAAa,CAAC;EACzG,MAAM;EACN,QAAQ,YAAY,MAAM,QAAQ;EAClC,SAAS;EACV,CAAC;AAEF,QACE,2CAACO;EACC,aAAa,YAAY;EACzB,WAAW,YAAY;EACvB,yDAC2B,GAAG,YAAY,OAAO,mCAAmC,sDACzD,GAAG,SAAS,OAAO,0CAA0C,sDAC7D,GAAG,OAAO,OAAO,wCAAwC,sDACzD,GAAG,aAAa,OAAO,0CAA0C,sDACjE,GAAG,UAAU,OAAO,+BAA+B,sDACnD,GAAG,UAAU,WAAW,oCAAoC;EAEvF,YAAY,SAAS;EACrB,UAAU,kBAAwB,KAAK,SAAS,OAAO,cAAc,GAAG;EACxE,kBAAkB,UAAU;EAC5B,0BAA0B,UAAU;EACpC,mBAAmB,mBAAmB,UAAU,MAAM;EACtD,YAAY,OAAO;EACnB,UACE,YAAY,YAAY,QACnB,YACC,KAAK,OAAO,OAAO;GAAC,aAAa,YAAY;GAAO;GAAQ,CAAC,GAC/D;EAEN,sBAAsB,aAAa;EACnC,oBAAoB,0BAAgC,KAAK,aAAa,OAAO,cAAc,GAAG;EAC9F,cAAc,aAAa,MAAM,gBAAgB;EACjD,iBAAiB,aAAa;EACjB;EACb,GAAI;GACJ;;AAIN,iCAAe"}