@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
@@ -1 +1 @@
1
- {"version":3,"file":"ThunderIDReactClient.d.ts","sourceRoot":"","sources":["../src/ThunderIDReactClient.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,IAAI,EACJ,aAAa,EAGb,OAAO,EAEP,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,0BAA0B,EAE1B,0BAA0B,EAM3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,oBAAoB,EAAC,MAAM,iBAAiB,CAAC;AAErD,cAAM,oBAAoB,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,CAAE,SAAQ,sBAAsB,CAAC,CAAC,CAAC;IACjH,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,iBAAiB,CAAmC;gBAEhD,UAAU,SAAI;IAI1B,OAAO,CAAC,UAAU;YAIJ,WAAW;IAUzB;;;;;;;OAOG;YACW,gBAAgB;IAkBrB,UAAU,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAY1D,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB/D,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvD,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAW5C,SAAS,IAAI,OAAO;IAId,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAI9B,aAAa,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC;IAIpF,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,GAAG,0BAA0B,CAAC;IAyElE,cAAc,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;IAMhE,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9C,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAsDlC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAYnD;;;OAGG;IACH,OAAO,CAAC,+BAA+B;IAWvB,iBAAiB,IAAI,GAAG;IAIlC,OAAO,CAAC,aAAa,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAItE,UAAU,CAAC,cAAc,CAAC,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;CAGrF;AAED,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"ThunderIDReactClient.d.ts","sourceRoot":"","sources":["../src/ThunderIDReactClient.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,IAAI,EACJ,aAAa,EAGb,OAAO,EAEP,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,0BAA0B,EAE1B,0BAA0B,EAO3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,oBAAoB,EAAC,MAAM,iBAAiB,CAAC;AAErD,cAAM,oBAAoB,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,CAAE,SAAQ,sBAAsB,CAAC,CAAC,CAAC;IACjH,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,iBAAiB,CAAmC;gBAEhD,UAAU,SAAI;IAI1B,OAAO,CAAC,UAAU;YAIJ,WAAW;IAUzB;;;;;;;OAOG;YACW,gBAAgB;IAkBrB,UAAU,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAY1D,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB/D,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvD,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAW5C,SAAS,IAAI,OAAO;IAId,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAI9B,aAAa,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC;IAIpF,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,GAAG,0BAA0B,CAAC;IA8ElE,cAAc,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;IAMhE,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9C,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IA2DlC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAYnD;;;OAGG;IACH,OAAO,CAAC,+BAA+B;IAWvB,iBAAiB,IAAI,GAAG;IAIlC,OAAO,CAAC,aAAa,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAItE,UAAU,CAAC,cAAc,CAAC,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;CAGrF;AAED,eAAe,oBAAoB,CAAC"}
@@ -93,13 +93,15 @@ var ThunderIDReactClient = class extends ThunderIDBrowserClient {
93
93
  if (typeof arg1 === "object" && arg1 !== null && !isEmpty(arg1) && ("executionId" in arg1 || "applicationId" in arg1)) {
94
94
  this.rejectEmbeddedFlowInBackendMode();
95
95
  const authIdFromUrl = new URL(window.location.href).searchParams.get("authId") ?? "";
96
- const authIdFromStorage = await this.getStorageManager().getHybridDataParameter("authId") ?? "";
96
+ const authIdFromStorage = (arg1.executionId ? await this.getStorageManager().getFlowAuthId(arg1.executionId) : void 0) ?? "";
97
+ const authId = authIdFromUrl || authIdFromStorage;
97
98
  const response = await executeEmbeddedSignInFlow({
98
- authId: authIdFromUrl || authIdFromStorage,
99
+ authId,
99
100
  baseUrl: config?.baseUrl ?? "",
100
101
  payload: arg1,
101
102
  url: resolveResourceEndpoint("flowExecute", config, arg2?.url)
102
103
  });
104
+ if (!authId && response) await this.storeFlowSessions(response);
103
105
  if (response && typeof response === "object" && response.flowStatus === EmbeddedSignInFlowStatus.Complete && response.assertion) {
104
106
  const decodedAssertion = await this.decodeJwtToken(response.assertion);
105
107
  const createdAt = decodedAssertion.iat ? decodedAssertion.iat * 1e3 : Date.now();
@@ -128,8 +130,9 @@ var ThunderIDReactClient = class extends ThunderIDBrowserClient {
128
130
  const config = await this.getStorageManager().getConfigData();
129
131
  const firstArg = args[0];
130
132
  const baseUrl = config?.baseUrl ?? "";
133
+ const authId = new URL(window.location.href).searchParams.get("authId") ?? "";
131
134
  const response = await executeEmbeddedSignUpFlow({
132
- authId: new URL(window.location.href).searchParams.get("authId") ?? "",
135
+ authId,
133
136
  baseUrl,
134
137
  payload: typeof firstArg === "object" && "flowType" in firstArg ? {
135
138
  ...firstArg,
@@ -137,6 +140,7 @@ var ThunderIDReactClient = class extends ThunderIDBrowserClient {
137
140
  } : firstArg,
138
141
  url: resolveResourceEndpoint("flowExecute", config)
139
142
  });
143
+ if (!authId && response) await this.storeFlowSessions(response);
140
144
  if (response && typeof response === "object" && response.flowStatus === EmbeddedSignUpFlowStatus.Complete && response.assertion) {
141
145
  const decodedAssertion = await this.decodeJwtToken(response.assertion);
142
146
  const createdAt = decodedAssertion.iat ? decodedAssertion.iat * 1e3 : Date.now();
@@ -1 +1 @@
1
- {"version":3,"file":"ThunderIDReactClient.js","names":["config: ThunderIDReactConfig | undefined","isInitialized: boolean","claims: User","arg1: any","arg2: any","authIdFromUrl: string","authIdFromStorage: string","response: EmbeddedSignInFlowResponse","decodedAssertion: {\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n }","createdAt: number","expiresIn: number","config: ThunderIDReactConfig","firstArg: any","baseUrl: string","response: any","decodedAssertion: {\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n }"],"sources":["../src/ThunderIDReactClient.ts"],"sourcesContent":["// Copyright 2025-2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n ThunderIDBrowserClient,\n UserProfile,\n SignInOptions,\n User,\n SignUpOptions,\n ThunderIDRuntimeError,\n executeEmbeddedSignInFlow,\n IdToken,\n extractUserClaimsFromIdToken,\n TokenResponse,\n HttpRequestConfig,\n HttpResponse,\n TokenExchangeRequestConfig,\n isEmpty,\n EmbeddedSignInFlowResponse,\n executeEmbeddedSignUpFlow,\n executeEmbeddedRecoveryFlow,\n EmbeddedSignInFlowStatus,\n EmbeddedSignUpFlowStatus,\n resolveResourceEndpoint,\n} from '@thunderid/browser';\nimport {ThunderIDReactConfig} from './models/config';\n\nclass ThunderIDReactClient<T extends ThunderIDReactConfig = ThunderIDReactConfig> extends ThunderIDBrowserClient<T> {\n private loadingState = false;\n\n private _initializeConfig: ThunderIDReactConfig | undefined;\n\n constructor(instanceId = 0) {\n super(instanceId);\n }\n\n private setLoading(loading: boolean): void {\n this.loadingState = loading;\n }\n\n private async withLoading<TResult>(operation: () => Promise<TResult>): Promise<TResult> {\n this.setLoading(true);\n try {\n const result: TResult = await operation();\n return result;\n } finally {\n this.setLoading(false);\n }\n }\n\n /**\n * Returns the stored config, re-running initialization first when it has gone missing.\n *\n * NOTE: With React 19 strict mode, the initialization logic runs twice, and there's an intermittent\n * issue where the config object is not getting stored in the storage layer with Vite scaffolding.\n * An operation that resolves endpoints from a lost config fails (for example \"required endpoints\n * are missing\"), so recover it from the config this client was initialized with.\n */\n private async ensureConfigData(): Promise<ThunderIDReactConfig | undefined> {\n const config: ThunderIDReactConfig | undefined = (await this.getStorageManager().getConfigData()) as\n | ThunderIDReactConfig\n | undefined;\n const isConfigLost: boolean =\n !config || Object.keys(config).length === 0 || (Boolean(this._initializeConfig?.baseUrl) && !config.baseUrl);\n\n if (!isConfigLost || !this._initializeConfig) {\n return config;\n }\n\n await this.initialize(this._initializeConfig);\n\n // Reload the config persisted by initialization so downstream endpoint resolution\n // (baseUrl and the flowExecute override) uses the recovered values, not the stale empty config.\n return (await this.getStorageManager().getConfigData()) as ThunderIDReactConfig | undefined;\n }\n\n override initialize(config: ThunderIDReactConfig): Promise<boolean> {\n return this.withLoading(async () => {\n this._initializeConfig = {\n ...config,\n periodicTokenRefresh:\n config?.tokenLifecycle?.refreshToken?.autoRefresh ?? (config as any)?.periodicTokenRefresh,\n } as any;\n\n return super.initialize(this._initializeConfig as unknown as T);\n });\n }\n\n override reInitialize(config: Partial<ThunderIDReactConfig>): Promise<boolean> {\n return this.withLoading(async () => {\n let isInitialized: boolean;\n\n try {\n await super.reInitialize(config as Partial<T>);\n isInitialized = true;\n } catch (error) {\n throw new ThunderIDRuntimeError(\n `Failed to check if the client is initialized: ${error instanceof Error ? error.message : String(error)}`,\n 'ThunderIDReactClient-reInitialize-RuntimeError-001',\n 'react',\n 'An error occurred while checking the initialization status of the client.',\n );\n }\n\n return isInitialized;\n });\n }\n\n override async updateUserProfile(): Promise<User> {\n throw new Error('Not implemented');\n }\n\n override async getUser(): Promise<User> {\n return extractUserClaimsFromIdToken(await this.getDecodedIdToken());\n }\n\n override async getDecodedIdToken(sessionId?: string): Promise<IdToken> {\n return super.getDecodedIdToken(sessionId);\n }\n\n override async getIdToken(): Promise<string> {\n return this.withLoading(async () => super.getIdToken());\n }\n\n override async getUserProfile(): Promise<UserProfile> {\n return this.withLoading(async () => {\n const claims: User = extractUserClaimsFromIdToken(await this.getDecodedIdToken());\n return {\n flattenedProfile: claims,\n profile: claims,\n schemas: [],\n };\n });\n }\n\n override isLoading(): boolean {\n return this.loadingState || super.isLoading();\n }\n\n override async isSignedIn(): Promise<boolean> {\n return super.isSignedIn();\n }\n\n override async exchangeToken(config: TokenExchangeRequestConfig): Promise<TokenResponse | Response> {\n return this.withLoading(async () => super.exchangeToken(config) as unknown as TokenResponse | Response);\n }\n\n override async signIn(...args: any[]): Promise<User | EmbeddedSignInFlowResponse> {\n return this.withLoading(async () => {\n const arg1: any = args[0];\n const arg2: any = args[1];\n\n const config: ThunderIDReactConfig | undefined = await this.ensureConfigData();\n\n if (typeof arg1 === 'object' && arg1 !== null && arg1.callOnlyOnRedirect === true) {\n return undefined as any;\n }\n\n if (\n typeof arg1 === 'object' &&\n arg1 !== null &&\n !isEmpty(arg1) &&\n ('executionId' in arg1 || 'applicationId' in arg1)\n ) {\n this.rejectEmbeddedFlowInBackendMode();\n\n const authIdFromUrl: string = new URL(window.location.href).searchParams.get('authId') ?? '';\n const authIdFromStorage: string =\n ((await this.getStorageManager().getHybridDataParameter('authId')) as string) ?? '';\n const authId: string = authIdFromUrl || authIdFromStorage;\n const baseUrl: string = config?.baseUrl ?? '';\n\n const response: EmbeddedSignInFlowResponse = await executeEmbeddedSignInFlow({\n authId,\n baseUrl,\n payload: arg1,\n url: resolveResourceEndpoint('flowExecute', config, arg2?.url),\n });\n\n if (\n response &&\n typeof response === 'object' &&\n response.flowStatus === EmbeddedSignInFlowStatus.Complete &&\n response.assertion\n ) {\n const decodedAssertion: {\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n } = await this.decodeJwtToken<{\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n }>(response.assertion);\n\n const createdAt: number = decodedAssertion.iat ? decodedAssertion.iat * 1000 : Date.now();\n const expiresIn: number =\n decodedAssertion.exp && decodedAssertion.iat ? decodedAssertion.exp - decodedAssertion.iat : 3600;\n\n await this.setSession({\n access_token: response.assertion,\n created_at: createdAt,\n expires_in: expiresIn,\n id_token: response.assertion,\n scope: decodedAssertion.scope,\n token_type: 'Bearer',\n });\n\n this.notifySignIn(extractUserClaimsFromIdToken(decodedAssertion as IdToken) as User);\n }\n\n return response;\n }\n\n return (await super.signIn(...args)) as unknown as User;\n });\n }\n\n override async signInSilently(options?: SignInOptions): Promise<User | boolean> {\n await this.ensureConfigData();\n\n return super.signInSilently(options as Record<string, string | boolean>) as Promise<User | boolean>;\n }\n\n override async signUp(options?: SignUpOptions): Promise<void>;\n override async signUp(payload: any): Promise<any>;\n override async signUp(...args: any[]): Promise<void | any> {\n this.rejectEmbeddedFlowInBackendMode();\n\n const config: ThunderIDReactConfig = (await this.getStorageManager().getConfigData()) as ThunderIDReactConfig;\n const firstArg: any = args[0];\n const baseUrl: string = config?.baseUrl ?? '';\n\n const authId: string = new URL(window.location.href).searchParams.get('authId') ?? '';\n\n const response: any = await executeEmbeddedSignUpFlow({\n authId,\n baseUrl,\n payload: typeof firstArg === 'object' && 'flowType' in firstArg ? {...firstArg, verbose: true} : firstArg,\n url: resolveResourceEndpoint('flowExecute', config),\n });\n\n if (\n response &&\n typeof response === 'object' &&\n response.flowStatus === EmbeddedSignUpFlowStatus.Complete &&\n response.assertion\n ) {\n const decodedAssertion: {\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n } = await this.decodeJwtToken<{\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n }>(response.assertion);\n\n const createdAt: number = decodedAssertion.iat ? decodedAssertion.iat * 1000 : Date.now();\n const expiresIn: number =\n decodedAssertion.exp && decodedAssertion.iat ? decodedAssertion.exp - decodedAssertion.iat : 3600;\n\n await this.setSession({\n access_token: response.assertion,\n created_at: createdAt,\n expires_in: expiresIn,\n id_token: response.assertion,\n scope: decodedAssertion.scope,\n token_type: 'Bearer',\n });\n\n this.notifySignIn(extractUserClaimsFromIdToken(decodedAssertion as IdToken) as User);\n }\n\n return response;\n }\n\n override async recover(payload?: any): Promise<any> {\n this.rejectEmbeddedFlowInBackendMode();\n\n const config: ThunderIDReactConfig = (await this.getStorageManager().getConfigData()) as ThunderIDReactConfig;\n\n return executeEmbeddedRecoveryFlow({\n baseUrl: config?.baseUrl,\n payload: {...payload, verbose: true},\n url: resolveResourceEndpoint('flowExecute', config),\n }) as any;\n }\n\n /**\n * The embedded flows keep their result in the browser, which running sign-in on the backend rules\n * out. Running them through the backend is not supported yet.\n */\n private rejectEmbeddedFlowInBackendMode(): void {\n if (this.isBackendMode()) {\n throw new ThunderIDRuntimeError(\n 'Embedded sign-in, sign-up, and recovery flows are not supported when sign-in runs on the backend.',\n 'ThunderIDReactClient-embeddedFlow-RuntimeError-001',\n 'react',\n 'Use redirect sign-in with the backend.',\n );\n }\n }\n\n public override getStorageManager(): any {\n return super.getStorageManager();\n }\n\n async request(requestConfig?: HttpRequestConfig): Promise<HttpResponse<any>> {\n return super.httpRequest(requestConfig!) as Promise<HttpResponse<any>>;\n }\n\n async requestAll(requestConfigs?: HttpRequestConfig[]): Promise<HttpResponse<any>[]> {\n return super.httpRequestAll(requestConfigs!) as Promise<HttpResponse<any>[]>;\n }\n}\n\nexport default ThunderIDReactClient;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ThunderIDReactClient.js","names":["config: ThunderIDReactConfig | undefined","isInitialized: boolean","claims: User","arg1: any","arg2: any","authIdFromUrl: string","authIdFromStorage: string","authId: string","response: EmbeddedSignInFlowResponse","decodedAssertion: {\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n }","createdAt: number","expiresIn: number","config: ThunderIDReactConfig","firstArg: any","baseUrl: string","response: any","decodedAssertion: {\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n }"],"sources":["../src/ThunderIDReactClient.ts"],"sourcesContent":["// Copyright 2025-2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n ThunderIDBrowserClient,\n UserProfile,\n SignInOptions,\n User,\n SignUpOptions,\n ThunderIDRuntimeError,\n executeEmbeddedSignInFlow,\n IdToken,\n extractUserClaimsFromIdToken,\n TokenResponse,\n HttpRequestConfig,\n HttpResponse,\n TokenExchangeRequestConfig,\n isEmpty,\n EmbeddedSignInFlowResponse,\n executeEmbeddedSignUpFlow,\n executeEmbeddedRecoveryFlow,\n EmbeddedSignInFlowStatus,\n EmbeddedSignUpFlowResponse,\n EmbeddedSignUpFlowStatus,\n resolveResourceEndpoint,\n} from '@thunderid/browser';\nimport {ThunderIDReactConfig} from './models/config';\n\nclass ThunderIDReactClient<T extends ThunderIDReactConfig = ThunderIDReactConfig> extends ThunderIDBrowserClient<T> {\n private loadingState = false;\n\n private _initializeConfig: ThunderIDReactConfig | undefined;\n\n constructor(instanceId = 0) {\n super(instanceId);\n }\n\n private setLoading(loading: boolean): void {\n this.loadingState = loading;\n }\n\n private async withLoading<TResult>(operation: () => Promise<TResult>): Promise<TResult> {\n this.setLoading(true);\n try {\n const result: TResult = await operation();\n return result;\n } finally {\n this.setLoading(false);\n }\n }\n\n /**\n * Returns the stored config, re-running initialization first when it has gone missing.\n *\n * NOTE: With React 19 strict mode, the initialization logic runs twice, and there's an intermittent\n * issue where the config object is not getting stored in the storage layer with Vite scaffolding.\n * An operation that resolves endpoints from a lost config fails (for example \"required endpoints\n * are missing\"), so recover it from the config this client was initialized with.\n */\n private async ensureConfigData(): Promise<ThunderIDReactConfig | undefined> {\n const config: ThunderIDReactConfig | undefined = (await this.getStorageManager().getConfigData()) as\n | ThunderIDReactConfig\n | undefined;\n const isConfigLost: boolean =\n !config || Object.keys(config).length === 0 || (Boolean(this._initializeConfig?.baseUrl) && !config.baseUrl);\n\n if (!isConfigLost || !this._initializeConfig) {\n return config;\n }\n\n await this.initialize(this._initializeConfig);\n\n // Reload the config persisted by initialization so downstream endpoint resolution\n // (baseUrl and the flowExecute override) uses the recovered values, not the stale empty config.\n return (await this.getStorageManager().getConfigData()) as ThunderIDReactConfig | undefined;\n }\n\n override initialize(config: ThunderIDReactConfig): Promise<boolean> {\n return this.withLoading(async () => {\n this._initializeConfig = {\n ...config,\n periodicTokenRefresh:\n config?.tokenLifecycle?.refreshToken?.autoRefresh ?? (config as any)?.periodicTokenRefresh,\n } as any;\n\n return super.initialize(this._initializeConfig as unknown as T);\n });\n }\n\n override reInitialize(config: Partial<ThunderIDReactConfig>): Promise<boolean> {\n return this.withLoading(async () => {\n let isInitialized: boolean;\n\n try {\n await super.reInitialize(config as Partial<T>);\n isInitialized = true;\n } catch (error) {\n throw new ThunderIDRuntimeError(\n `Failed to check if the client is initialized: ${error instanceof Error ? error.message : String(error)}`,\n 'ThunderIDReactClient-reInitialize-RuntimeError-001',\n 'react',\n 'An error occurred while checking the initialization status of the client.',\n );\n }\n\n return isInitialized;\n });\n }\n\n override async updateUserProfile(): Promise<User> {\n throw new Error('Not implemented');\n }\n\n override async getUser(): Promise<User> {\n return extractUserClaimsFromIdToken(await this.getDecodedIdToken());\n }\n\n override async getDecodedIdToken(sessionId?: string): Promise<IdToken> {\n return super.getDecodedIdToken(sessionId);\n }\n\n override async getIdToken(): Promise<string> {\n return this.withLoading(async () => super.getIdToken());\n }\n\n override async getUserProfile(): Promise<UserProfile> {\n return this.withLoading(async () => {\n const claims: User = extractUserClaimsFromIdToken(await this.getDecodedIdToken());\n return {\n flattenedProfile: claims,\n profile: claims,\n schemas: [],\n };\n });\n }\n\n override isLoading(): boolean {\n return this.loadingState || super.isLoading();\n }\n\n override async isSignedIn(): Promise<boolean> {\n return super.isSignedIn();\n }\n\n override async exchangeToken(config: TokenExchangeRequestConfig): Promise<TokenResponse | Response> {\n return this.withLoading(async () => super.exchangeToken(config) as unknown as TokenResponse | Response);\n }\n\n override async signIn(...args: any[]): Promise<User | EmbeddedSignInFlowResponse> {\n return this.withLoading(async () => {\n const arg1: any = args[0];\n const arg2: any = args[1];\n\n const config: ThunderIDReactConfig | undefined = await this.ensureConfigData();\n\n if (typeof arg1 === 'object' && arg1 !== null && arg1.callOnlyOnRedirect === true) {\n return undefined as any;\n }\n\n if (\n typeof arg1 === 'object' &&\n arg1 !== null &&\n !isEmpty(arg1) &&\n ('executionId' in arg1 || 'applicationId' in arg1)\n ) {\n this.rejectEmbeddedFlowInBackendMode();\n\n const authIdFromUrl: string = new URL(window.location.href).searchParams.get('authId') ?? '';\n const authIdFromStorage: string =\n (arg1.executionId ? await this.getStorageManager().getFlowAuthId(arg1.executionId) : undefined) ?? '';\n const authId: string = authIdFromUrl || authIdFromStorage;\n const baseUrl: string = config?.baseUrl ?? '';\n\n const response: EmbeddedSignInFlowResponse = await executeEmbeddedSignInFlow({\n authId,\n baseUrl,\n payload: arg1,\n url: resolveResourceEndpoint('flowExecute', config, arg2?.url),\n });\n\n // A flow for an authorization request posts its SSO sessions to the callback instead.\n if (!authId && response) {\n await this.storeFlowSessions(response);\n }\n\n if (\n response &&\n typeof response === 'object' &&\n response.flowStatus === EmbeddedSignInFlowStatus.Complete &&\n response.assertion\n ) {\n const decodedAssertion: {\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n } = await this.decodeJwtToken<{\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n }>(response.assertion);\n\n const createdAt: number = decodedAssertion.iat ? decodedAssertion.iat * 1000 : Date.now();\n const expiresIn: number =\n decodedAssertion.exp && decodedAssertion.iat ? decodedAssertion.exp - decodedAssertion.iat : 3600;\n\n await this.setSession({\n access_token: response.assertion,\n created_at: createdAt,\n expires_in: expiresIn,\n id_token: response.assertion,\n scope: decodedAssertion.scope,\n token_type: 'Bearer',\n });\n\n this.notifySignIn(extractUserClaimsFromIdToken(decodedAssertion as IdToken) as User);\n }\n\n return response;\n }\n\n return (await super.signIn(...args)) as unknown as User;\n });\n }\n\n override async signInSilently(options?: SignInOptions): Promise<User | boolean> {\n await this.ensureConfigData();\n\n return super.signInSilently(options as Record<string, string | boolean>) as Promise<User | boolean>;\n }\n\n override async signUp(options?: SignUpOptions): Promise<void>;\n override async signUp(payload: any): Promise<any>;\n override async signUp(...args: any[]): Promise<void | any> {\n this.rejectEmbeddedFlowInBackendMode();\n\n const config: ThunderIDReactConfig = (await this.getStorageManager().getConfigData()) as ThunderIDReactConfig;\n const firstArg: any = args[0];\n const baseUrl: string = config?.baseUrl ?? '';\n\n const authId: string = new URL(window.location.href).searchParams.get('authId') ?? '';\n\n const response: any = await executeEmbeddedSignUpFlow({\n authId,\n baseUrl,\n payload: typeof firstArg === 'object' && 'flowType' in firstArg ? {...firstArg, verbose: true} : firstArg,\n url: resolveResourceEndpoint('flowExecute', config),\n });\n\n // A flow for an authorization request posts its SSO sessions to the callback instead.\n if (!authId && response) {\n await this.storeFlowSessions(response as EmbeddedSignUpFlowResponse);\n }\n\n if (\n response &&\n typeof response === 'object' &&\n response.flowStatus === EmbeddedSignUpFlowStatus.Complete &&\n response.assertion\n ) {\n const decodedAssertion: {\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n } = await this.decodeJwtToken<{\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n }>(response.assertion);\n\n const createdAt: number = decodedAssertion.iat ? decodedAssertion.iat * 1000 : Date.now();\n const expiresIn: number =\n decodedAssertion.exp && decodedAssertion.iat ? decodedAssertion.exp - decodedAssertion.iat : 3600;\n\n await this.setSession({\n access_token: response.assertion,\n created_at: createdAt,\n expires_in: expiresIn,\n id_token: response.assertion,\n scope: decodedAssertion.scope,\n token_type: 'Bearer',\n });\n\n this.notifySignIn(extractUserClaimsFromIdToken(decodedAssertion as IdToken) as User);\n }\n\n return response;\n }\n\n override async recover(payload?: any): Promise<any> {\n this.rejectEmbeddedFlowInBackendMode();\n\n const config: ThunderIDReactConfig = (await this.getStorageManager().getConfigData()) as ThunderIDReactConfig;\n\n return executeEmbeddedRecoveryFlow({\n baseUrl: config?.baseUrl,\n payload: {...payload, verbose: true},\n url: resolveResourceEndpoint('flowExecute', config),\n }) as any;\n }\n\n /**\n * The embedded flows keep their result in the browser, which running sign-in on the backend rules\n * out. Running them through the backend is not supported yet.\n */\n private rejectEmbeddedFlowInBackendMode(): void {\n if (this.isBackendMode()) {\n throw new ThunderIDRuntimeError(\n 'Embedded sign-in, sign-up, and recovery flows are not supported when sign-in runs on the backend.',\n 'ThunderIDReactClient-embeddedFlow-RuntimeError-001',\n 'react',\n 'Use redirect sign-in with the backend.',\n );\n }\n }\n\n public override getStorageManager(): any {\n return super.getStorageManager();\n }\n\n async request(requestConfig?: HttpRequestConfig): Promise<HttpResponse<any>> {\n return super.httpRequest(requestConfig!) as Promise<HttpResponse<any>>;\n }\n\n async requestAll(requestConfigs?: HttpRequestConfig[]): Promise<HttpResponse<any>[]> {\n return super.httpRequestAll(requestConfigs!) as Promise<HttpResponse<any>[]>;\n }\n}\n\nexport default ThunderIDReactClient;\n"],"mappings":";;;AA4BA,IAAM,uBAAN,cAA0F,uBAA0B;CAClH,AAAQ,eAAe;CAEvB,AAAQ;CAER,YAAY,aAAa,GAAG;AAC1B,QAAM,WAAW;;CAGnB,AAAQ,WAAW,SAAwB;AACzC,OAAK,eAAe;;CAGtB,MAAc,YAAqB,WAAqD;AACtF,OAAK,WAAW,KAAK;AACrB,MAAI;AAEF,UADwB,MAAM,WAAW;YAEjC;AACR,QAAK,WAAW,MAAM;;;;;;;;;;;CAY1B,MAAc,mBAA8D;EAC1E,MAAMA,SAA4C,MAAM,KAAK,mBAAmB,CAAC,eAAe;AAMhG,MAAI,EAFF,CAAC,UAAU,OAAO,KAAK,OAAO,CAAC,WAAW,KAAM,QAAQ,KAAK,mBAAmB,QAAQ,IAAI,CAAC,OAAO,YAEjF,CAAC,KAAK,kBACzB,QAAO;AAGT,QAAM,KAAK,WAAW,KAAK,kBAAkB;AAI7C,SAAQ,MAAM,KAAK,mBAAmB,CAAC,eAAe;;CAGxD,AAAS,WAAW,QAAgD;AAClE,SAAO,KAAK,YAAY,YAAY;AAClC,QAAK,oBAAoB;IACvB,GAAG;IACH,sBACE,QAAQ,gBAAgB,cAAc,eAAgB,QAAgB;IACzE;AAED,UAAO,MAAM,WAAW,KAAK,kBAAkC;IAC/D;;CAGJ,AAAS,aAAa,QAAyD;AAC7E,SAAO,KAAK,YAAY,YAAY;GAClC,IAAIC;AAEJ,OAAI;AACF,UAAM,MAAM,aAAa,OAAqB;AAC9C,oBAAgB;YACT,OAAO;AACd,UAAM,IAAI,sBACR,iDAAiD,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM,IACvG,sDACA,SACA,4EACD;;AAGH,UAAO;IACP;;CAGJ,MAAe,oBAAmC;AAChD,QAAM,IAAI,MAAM,kBAAkB;;CAGpC,MAAe,UAAyB;AACtC,SAAO,6BAA6B,MAAM,KAAK,mBAAmB,CAAC;;CAGrE,MAAe,kBAAkB,WAAsC;AACrE,SAAO,MAAM,kBAAkB,UAAU;;CAG3C,MAAe,aAA8B;AAC3C,SAAO,KAAK,YAAY,YAAY,MAAM,YAAY,CAAC;;CAGzD,MAAe,iBAAuC;AACpD,SAAO,KAAK,YAAY,YAAY;GAClC,MAAMC,SAAe,6BAA6B,MAAM,KAAK,mBAAmB,CAAC;AACjF,UAAO;IACL,kBAAkB;IAClB,SAAS;IACT,SAAS,EAAE;IACZ;IACD;;CAGJ,AAAS,YAAqB;AAC5B,SAAO,KAAK,gBAAgB,MAAM,WAAW;;CAG/C,MAAe,aAA+B;AAC5C,SAAO,MAAM,YAAY;;CAG3B,MAAe,cAAc,QAAuE;AAClG,SAAO,KAAK,YAAY,YAAY,MAAM,cAAc,OAAO,CAAwC;;CAGzG,MAAe,OAAO,GAAG,MAAyD;AAChF,SAAO,KAAK,YAAY,YAAY;GAClC,MAAMC,OAAY,KAAK;GACvB,MAAMC,OAAY,KAAK;GAEvB,MAAMJ,SAA2C,MAAM,KAAK,kBAAkB;AAE9E,OAAI,OAAO,SAAS,YAAY,SAAS,QAAQ,KAAK,uBAAuB,KAC3E;AAGF,OACE,OAAO,SAAS,YAChB,SAAS,QACT,CAAC,QAAQ,KAAK,KACb,iBAAiB,QAAQ,mBAAmB,OAC7C;AACA,SAAK,iCAAiC;IAEtC,MAAMK,gBAAwB,IAAI,IAAI,OAAO,SAAS,KAAK,CAAC,aAAa,IAAI,SAAS,IAAI;IAC1F,MAAMC,qBACH,KAAK,cAAc,MAAM,KAAK,mBAAmB,CAAC,cAAc,KAAK,YAAY,GAAG,WAAc;IACrG,MAAMC,SAAiB,iBAAiB;IAGxC,MAAMC,WAAuC,MAAM,0BAA0B;KAC3E;KACA,SAJsB,QAAQ,WAAW;KAKzC,SAAS;KACT,KAAK,wBAAwB,eAAe,QAAQ,MAAM,IAAI;KAC/D,CAAC;AAGF,QAAI,CAAC,UAAU,SACb,OAAM,KAAK,kBAAkB,SAAS;AAGxC,QACE,YACA,OAAO,aAAa,YACpB,SAAS,eAAe,yBAAyB,YACjD,SAAS,WACT;KACA,MAAMC,mBAKF,MAAM,KAAK,eAKZ,SAAS,UAAU;KAEtB,MAAMC,YAAoB,iBAAiB,MAAM,iBAAiB,MAAM,MAAO,KAAK,KAAK;KACzF,MAAMC,YACJ,iBAAiB,OAAO,iBAAiB,MAAM,iBAAiB,MAAM,iBAAiB,MAAM;AAE/F,WAAM,KAAK,WAAW;MACpB,cAAc,SAAS;MACvB,YAAY;MACZ,YAAY;MACZ,UAAU,SAAS;MACnB,OAAO,iBAAiB;MACxB,YAAY;MACb,CAAC;AAEF,UAAK,aAAa,6BAA6B,iBAA4B,CAAS;;AAGtF,WAAO;;AAGT,UAAQ,MAAM,MAAM,OAAO,GAAG,KAAK;IACnC;;CAGJ,MAAe,eAAe,SAAkD;AAC9E,QAAM,KAAK,kBAAkB;AAE7B,SAAO,MAAM,eAAe,QAA4C;;CAK1E,MAAe,OAAO,GAAG,MAAkC;AACzD,OAAK,iCAAiC;EAEtC,MAAMC,SAAgC,MAAM,KAAK,mBAAmB,CAAC,eAAe;EACpF,MAAMC,WAAgB,KAAK;EAC3B,MAAMC,UAAkB,QAAQ,WAAW;EAE3C,MAAMP,SAAiB,IAAI,IAAI,OAAO,SAAS,KAAK,CAAC,aAAa,IAAI,SAAS,IAAI;EAEnF,MAAMQ,WAAgB,MAAM,0BAA0B;GACpD;GACA;GACA,SAAS,OAAO,aAAa,YAAY,cAAc,WAAW;IAAC,GAAG;IAAU,SAAS;IAAK,GAAG;GACjG,KAAK,wBAAwB,eAAe,OAAO;GACpD,CAAC;AAGF,MAAI,CAAC,UAAU,SACb,OAAM,KAAK,kBAAkB,SAAuC;AAGtE,MACE,YACA,OAAO,aAAa,YACpB,SAAS,eAAe,yBAAyB,YACjD,SAAS,WACT;GACA,MAAMC,mBAKF,MAAM,KAAK,eAKZ,SAAS,UAAU;GAEtB,MAAMN,YAAoB,iBAAiB,MAAM,iBAAiB,MAAM,MAAO,KAAK,KAAK;GACzF,MAAMC,YACJ,iBAAiB,OAAO,iBAAiB,MAAM,iBAAiB,MAAM,iBAAiB,MAAM;AAE/F,SAAM,KAAK,WAAW;IACpB,cAAc,SAAS;IACvB,YAAY;IACZ,YAAY;IACZ,UAAU,SAAS;IACnB,OAAO,iBAAiB;IACxB,YAAY;IACb,CAAC;AAEF,QAAK,aAAa,6BAA6B,iBAA4B,CAAS;;AAGtF,SAAO;;CAGT,MAAe,QAAQ,SAA6B;AAClD,OAAK,iCAAiC;EAEtC,MAAMC,SAAgC,MAAM,KAAK,mBAAmB,CAAC,eAAe;AAEpF,SAAO,4BAA4B;GACjC,SAAS,QAAQ;GACjB,SAAS;IAAC,GAAG;IAAS,SAAS;IAAK;GACpC,KAAK,wBAAwB,eAAe,OAAO;GACpD,CAAC;;;;;;CAOJ,AAAQ,kCAAwC;AAC9C,MAAI,KAAK,eAAe,CACtB,OAAM,IAAI,sBACR,qGACA,sDACA,SACA,yCACD;;CAIL,AAAgB,oBAAyB;AACvC,SAAO,MAAM,mBAAmB;;CAGlC,MAAM,QAAQ,eAA+D;AAC3E,SAAO,MAAM,YAAY,cAAe;;CAG1C,MAAM,WAAW,gBAAoE;AACnF,SAAO,MAAM,eAAe,eAAgB;;;AAIhD,mCAAe"}
@@ -0,0 +1,27 @@
1
+ import { AccessibleOrganizationUnitList, GetAccessibleOrganizationUnitsConfig as BaseGetAccessibleOrganizationUnitsConfig } from '@thunderid/browser';
2
+ export interface GetAccessibleOrganizationUnitsConfig extends Omit<BaseGetAccessibleOrganizationUnitsConfig, 'fetcher'> {
3
+ /**
4
+ * Optional custom fetcher function. If not provided, the ThunderID SPA client's httpClient is used, which
5
+ * attaches the signed-in user's access token.
6
+ */
7
+ fetcher?: (url: string, config: RequestInit) => Promise<Response>;
8
+ /**
9
+ * Optional instance ID for multi-instance support. Defaults to 0.
10
+ */
11
+ instanceId?: number;
12
+ }
13
+ /**
14
+ * Lists the organization units the signed-in user can access, from `/users/me/ous`, with the signed-in
15
+ * user's access token attached by the SDK's HTTP client.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const {current, organizationUnits} = await getAccessibleOrganizationUnits({
20
+ * baseUrl: 'https://localhost:8090',
21
+ * scope: 'siblings',
22
+ * });
23
+ * ```
24
+ */
25
+ declare const getAccessibleOrganizationUnits: ({ fetcher, instanceId, ...requestConfig }: GetAccessibleOrganizationUnitsConfig) => Promise<AccessibleOrganizationUnitList>;
26
+ export default getAccessibleOrganizationUnits;
27
+ //# sourceMappingURL=getAccessibleOrganizationUnits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAccessibleOrganizationUnits.d.ts","sourceRoot":"","sources":["../../../src/api/account/getAccessibleOrganizationUnits.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,8BAA8B,EAG9B,oCAAoC,IAAI,wCAAwC,EACjF,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,oCACf,SAAQ,IAAI,CAAC,wCAAwC,EAAE,SAAS,CAAC;IACjE;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClE;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,8BAA8B,GAAU,2CAI3C,oCAAoC,KAAG,OAAO,CAAC,8BAA8B,CAI5E,CAAC;AAEL,eAAe,8BAA8B,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { createHttpClientFetcher, getAccessibleOrganizationUnits } from "@thunderid/browser";
2
+
3
+ //#region src/api/account/getAccessibleOrganizationUnits.ts
4
+ /**
5
+ * Lists the organization units the signed-in user can access, from `/users/me/ous`, with the signed-in
6
+ * user's access token attached by the SDK's HTTP client.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const {current, organizationUnits} = await getAccessibleOrganizationUnits({
11
+ * baseUrl: 'https://localhost:8090',
12
+ * scope: 'siblings',
13
+ * });
14
+ * ```
15
+ */
16
+ const getAccessibleOrganizationUnits$1 = async ({ fetcher, instanceId = 0,...requestConfig }) => getAccessibleOrganizationUnits({
17
+ ...requestConfig,
18
+ fetcher: fetcher ?? createHttpClientFetcher(instanceId)
19
+ });
20
+ var getAccessibleOrganizationUnits_default = getAccessibleOrganizationUnits$1;
21
+
22
+ //#endregion
23
+ export { getAccessibleOrganizationUnits_default as default };
24
+ //# sourceMappingURL=getAccessibleOrganizationUnits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAccessibleOrganizationUnits.js","names":["getAccessibleOrganizationUnits","baseGetAccessibleOrganizationUnits"],"sources":["../../../src/api/account/getAccessibleOrganizationUnits.ts"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AccessibleOrganizationUnitList,\n createHttpClientFetcher,\n getAccessibleOrganizationUnits as baseGetAccessibleOrganizationUnits,\n GetAccessibleOrganizationUnitsConfig as BaseGetAccessibleOrganizationUnitsConfig,\n} from '@thunderid/browser';\n\nexport interface GetAccessibleOrganizationUnitsConfig\n extends Omit<BaseGetAccessibleOrganizationUnitsConfig, 'fetcher'> {\n /**\n * Optional custom fetcher function. If not provided, the ThunderID SPA client's httpClient is used, which\n * attaches the signed-in user's access token.\n */\n fetcher?: (url: string, config: RequestInit) => Promise<Response>;\n /**\n * Optional instance ID for multi-instance support. Defaults to 0.\n */\n instanceId?: number;\n}\n\n/**\n * Lists the organization units the signed-in user can access, from `/users/me/ous`, with the signed-in\n * user's access token attached by the SDK's HTTP client.\n *\n * @example\n * ```typescript\n * const {current, organizationUnits} = await getAccessibleOrganizationUnits({\n * baseUrl: 'https://localhost:8090',\n * scope: 'siblings',\n * });\n * ```\n */\nconst getAccessibleOrganizationUnits = async ({\n fetcher,\n instanceId = 0,\n ...requestConfig\n}: GetAccessibleOrganizationUnitsConfig): Promise<AccessibleOrganizationUnitList> =>\n baseGetAccessibleOrganizationUnits({\n ...requestConfig,\n fetcher: fetcher ?? createHttpClientFetcher(instanceId),\n });\n\nexport default getAccessibleOrganizationUnits;\n"],"mappings":";;;;;;;;;;;;;;;AAmCA,MAAMA,mCAAiC,OAAO,EAC5C,SACA,aAAa,EACb,GAAG,oBAEHC,+BAAmC;CACjC,GAAG;CACH,SAAS,WAAW,wBAAwB,WAAW;CACxD,CAAC;AAEJ,6CAAeD"}
@@ -95,13 +95,15 @@ var ThunderIDReactClient = class extends __thunderid_browser.ThunderIDBrowserCli
95
95
  if (typeof arg1 === "object" && arg1 !== null && !(0, __thunderid_browser.isEmpty)(arg1) && ("executionId" in arg1 || "applicationId" in arg1)) {
96
96
  this.rejectEmbeddedFlowInBackendMode();
97
97
  const authIdFromUrl = new URL(window.location.href).searchParams.get("authId") ?? "";
98
- const authIdFromStorage = await this.getStorageManager().getHybridDataParameter("authId") ?? "";
98
+ const authIdFromStorage = (arg1.executionId ? await this.getStorageManager().getFlowAuthId(arg1.executionId) : void 0) ?? "";
99
+ const authId = authIdFromUrl || authIdFromStorage;
99
100
  const response = await (0, __thunderid_browser.executeEmbeddedSignInFlow)({
100
- authId: authIdFromUrl || authIdFromStorage,
101
+ authId,
101
102
  baseUrl: config?.baseUrl ?? "",
102
103
  payload: arg1,
103
104
  url: (0, __thunderid_browser.resolveResourceEndpoint)("flowExecute", config, arg2?.url)
104
105
  });
106
+ if (!authId && response) await this.storeFlowSessions(response);
105
107
  if (response && typeof response === "object" && response.flowStatus === __thunderid_browser.EmbeddedSignInFlowStatus.Complete && response.assertion) {
106
108
  const decodedAssertion = await this.decodeJwtToken(response.assertion);
107
109
  const createdAt = decodedAssertion.iat ? decodedAssertion.iat * 1e3 : Date.now();
@@ -130,8 +132,9 @@ var ThunderIDReactClient = class extends __thunderid_browser.ThunderIDBrowserCli
130
132
  const config = await this.getStorageManager().getConfigData();
131
133
  const firstArg = args[0];
132
134
  const baseUrl = config?.baseUrl ?? "";
135
+ const authId = new URL(window.location.href).searchParams.get("authId") ?? "";
133
136
  const response = await (0, __thunderid_browser.executeEmbeddedSignUpFlow)({
134
- authId: new URL(window.location.href).searchParams.get("authId") ?? "",
137
+ authId,
135
138
  baseUrl,
136
139
  payload: typeof firstArg === "object" && "flowType" in firstArg ? {
137
140
  ...firstArg,
@@ -139,6 +142,7 @@ var ThunderIDReactClient = class extends __thunderid_browser.ThunderIDBrowserCli
139
142
  } : firstArg,
140
143
  url: (0, __thunderid_browser.resolveResourceEndpoint)("flowExecute", config)
141
144
  });
145
+ if (!authId && response) await this.storeFlowSessions(response);
142
146
  if (response && typeof response === "object" && response.flowStatus === __thunderid_browser.EmbeddedSignUpFlowStatus.Complete && response.assertion) {
143
147
  const decodedAssertion = await this.decodeJwtToken(response.assertion);
144
148
  const createdAt = decodedAssertion.iat ? decodedAssertion.iat * 1e3 : Date.now();
@@ -1 +1 @@
1
- {"version":3,"file":"ThunderIDReactClient.cjs","names":["ThunderIDBrowserClient","config: ThunderIDReactConfig | undefined","isInitialized: boolean","ThunderIDRuntimeError","claims: User","arg1: any","arg2: any","authIdFromUrl: string","authIdFromStorage: string","response: EmbeddedSignInFlowResponse","EmbeddedSignInFlowStatus","decodedAssertion: {\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n }","createdAt: number","expiresIn: number","config: ThunderIDReactConfig","firstArg: any","baseUrl: string","response: any","EmbeddedSignUpFlowStatus","decodedAssertion: {\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n }"],"sources":["../../src/ThunderIDReactClient.ts"],"sourcesContent":["// Copyright 2025-2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n ThunderIDBrowserClient,\n UserProfile,\n SignInOptions,\n User,\n SignUpOptions,\n ThunderIDRuntimeError,\n executeEmbeddedSignInFlow,\n IdToken,\n extractUserClaimsFromIdToken,\n TokenResponse,\n HttpRequestConfig,\n HttpResponse,\n TokenExchangeRequestConfig,\n isEmpty,\n EmbeddedSignInFlowResponse,\n executeEmbeddedSignUpFlow,\n executeEmbeddedRecoveryFlow,\n EmbeddedSignInFlowStatus,\n EmbeddedSignUpFlowStatus,\n resolveResourceEndpoint,\n} from '@thunderid/browser';\nimport {ThunderIDReactConfig} from './models/config';\n\nclass ThunderIDReactClient<T extends ThunderIDReactConfig = ThunderIDReactConfig> extends ThunderIDBrowserClient<T> {\n private loadingState = false;\n\n private _initializeConfig: ThunderIDReactConfig | undefined;\n\n constructor(instanceId = 0) {\n super(instanceId);\n }\n\n private setLoading(loading: boolean): void {\n this.loadingState = loading;\n }\n\n private async withLoading<TResult>(operation: () => Promise<TResult>): Promise<TResult> {\n this.setLoading(true);\n try {\n const result: TResult = await operation();\n return result;\n } finally {\n this.setLoading(false);\n }\n }\n\n /**\n * Returns the stored config, re-running initialization first when it has gone missing.\n *\n * NOTE: With React 19 strict mode, the initialization logic runs twice, and there's an intermittent\n * issue where the config object is not getting stored in the storage layer with Vite scaffolding.\n * An operation that resolves endpoints from a lost config fails (for example \"required endpoints\n * are missing\"), so recover it from the config this client was initialized with.\n */\n private async ensureConfigData(): Promise<ThunderIDReactConfig | undefined> {\n const config: ThunderIDReactConfig | undefined = (await this.getStorageManager().getConfigData()) as\n | ThunderIDReactConfig\n | undefined;\n const isConfigLost: boolean =\n !config || Object.keys(config).length === 0 || (Boolean(this._initializeConfig?.baseUrl) && !config.baseUrl);\n\n if (!isConfigLost || !this._initializeConfig) {\n return config;\n }\n\n await this.initialize(this._initializeConfig);\n\n // Reload the config persisted by initialization so downstream endpoint resolution\n // (baseUrl and the flowExecute override) uses the recovered values, not the stale empty config.\n return (await this.getStorageManager().getConfigData()) as ThunderIDReactConfig | undefined;\n }\n\n override initialize(config: ThunderIDReactConfig): Promise<boolean> {\n return this.withLoading(async () => {\n this._initializeConfig = {\n ...config,\n periodicTokenRefresh:\n config?.tokenLifecycle?.refreshToken?.autoRefresh ?? (config as any)?.periodicTokenRefresh,\n } as any;\n\n return super.initialize(this._initializeConfig as unknown as T);\n });\n }\n\n override reInitialize(config: Partial<ThunderIDReactConfig>): Promise<boolean> {\n return this.withLoading(async () => {\n let isInitialized: boolean;\n\n try {\n await super.reInitialize(config as Partial<T>);\n isInitialized = true;\n } catch (error) {\n throw new ThunderIDRuntimeError(\n `Failed to check if the client is initialized: ${error instanceof Error ? error.message : String(error)}`,\n 'ThunderIDReactClient-reInitialize-RuntimeError-001',\n 'react',\n 'An error occurred while checking the initialization status of the client.',\n );\n }\n\n return isInitialized;\n });\n }\n\n override async updateUserProfile(): Promise<User> {\n throw new Error('Not implemented');\n }\n\n override async getUser(): Promise<User> {\n return extractUserClaimsFromIdToken(await this.getDecodedIdToken());\n }\n\n override async getDecodedIdToken(sessionId?: string): Promise<IdToken> {\n return super.getDecodedIdToken(sessionId);\n }\n\n override async getIdToken(): Promise<string> {\n return this.withLoading(async () => super.getIdToken());\n }\n\n override async getUserProfile(): Promise<UserProfile> {\n return this.withLoading(async () => {\n const claims: User = extractUserClaimsFromIdToken(await this.getDecodedIdToken());\n return {\n flattenedProfile: claims,\n profile: claims,\n schemas: [],\n };\n });\n }\n\n override isLoading(): boolean {\n return this.loadingState || super.isLoading();\n }\n\n override async isSignedIn(): Promise<boolean> {\n return super.isSignedIn();\n }\n\n override async exchangeToken(config: TokenExchangeRequestConfig): Promise<TokenResponse | Response> {\n return this.withLoading(async () => super.exchangeToken(config) as unknown as TokenResponse | Response);\n }\n\n override async signIn(...args: any[]): Promise<User | EmbeddedSignInFlowResponse> {\n return this.withLoading(async () => {\n const arg1: any = args[0];\n const arg2: any = args[1];\n\n const config: ThunderIDReactConfig | undefined = await this.ensureConfigData();\n\n if (typeof arg1 === 'object' && arg1 !== null && arg1.callOnlyOnRedirect === true) {\n return undefined as any;\n }\n\n if (\n typeof arg1 === 'object' &&\n arg1 !== null &&\n !isEmpty(arg1) &&\n ('executionId' in arg1 || 'applicationId' in arg1)\n ) {\n this.rejectEmbeddedFlowInBackendMode();\n\n const authIdFromUrl: string = new URL(window.location.href).searchParams.get('authId') ?? '';\n const authIdFromStorage: string =\n ((await this.getStorageManager().getHybridDataParameter('authId')) as string) ?? '';\n const authId: string = authIdFromUrl || authIdFromStorage;\n const baseUrl: string = config?.baseUrl ?? '';\n\n const response: EmbeddedSignInFlowResponse = await executeEmbeddedSignInFlow({\n authId,\n baseUrl,\n payload: arg1,\n url: resolveResourceEndpoint('flowExecute', config, arg2?.url),\n });\n\n if (\n response &&\n typeof response === 'object' &&\n response.flowStatus === EmbeddedSignInFlowStatus.Complete &&\n response.assertion\n ) {\n const decodedAssertion: {\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n } = await this.decodeJwtToken<{\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n }>(response.assertion);\n\n const createdAt: number = decodedAssertion.iat ? decodedAssertion.iat * 1000 : Date.now();\n const expiresIn: number =\n decodedAssertion.exp && decodedAssertion.iat ? decodedAssertion.exp - decodedAssertion.iat : 3600;\n\n await this.setSession({\n access_token: response.assertion,\n created_at: createdAt,\n expires_in: expiresIn,\n id_token: response.assertion,\n scope: decodedAssertion.scope,\n token_type: 'Bearer',\n });\n\n this.notifySignIn(extractUserClaimsFromIdToken(decodedAssertion as IdToken) as User);\n }\n\n return response;\n }\n\n return (await super.signIn(...args)) as unknown as User;\n });\n }\n\n override async signInSilently(options?: SignInOptions): Promise<User | boolean> {\n await this.ensureConfigData();\n\n return super.signInSilently(options as Record<string, string | boolean>) as Promise<User | boolean>;\n }\n\n override async signUp(options?: SignUpOptions): Promise<void>;\n override async signUp(payload: any): Promise<any>;\n override async signUp(...args: any[]): Promise<void | any> {\n this.rejectEmbeddedFlowInBackendMode();\n\n const config: ThunderIDReactConfig = (await this.getStorageManager().getConfigData()) as ThunderIDReactConfig;\n const firstArg: any = args[0];\n const baseUrl: string = config?.baseUrl ?? '';\n\n const authId: string = new URL(window.location.href).searchParams.get('authId') ?? '';\n\n const response: any = await executeEmbeddedSignUpFlow({\n authId,\n baseUrl,\n payload: typeof firstArg === 'object' && 'flowType' in firstArg ? {...firstArg, verbose: true} : firstArg,\n url: resolveResourceEndpoint('flowExecute', config),\n });\n\n if (\n response &&\n typeof response === 'object' &&\n response.flowStatus === EmbeddedSignUpFlowStatus.Complete &&\n response.assertion\n ) {\n const decodedAssertion: {\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n } = await this.decodeJwtToken<{\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n }>(response.assertion);\n\n const createdAt: number = decodedAssertion.iat ? decodedAssertion.iat * 1000 : Date.now();\n const expiresIn: number =\n decodedAssertion.exp && decodedAssertion.iat ? decodedAssertion.exp - decodedAssertion.iat : 3600;\n\n await this.setSession({\n access_token: response.assertion,\n created_at: createdAt,\n expires_in: expiresIn,\n id_token: response.assertion,\n scope: decodedAssertion.scope,\n token_type: 'Bearer',\n });\n\n this.notifySignIn(extractUserClaimsFromIdToken(decodedAssertion as IdToken) as User);\n }\n\n return response;\n }\n\n override async recover(payload?: any): Promise<any> {\n this.rejectEmbeddedFlowInBackendMode();\n\n const config: ThunderIDReactConfig = (await this.getStorageManager().getConfigData()) as ThunderIDReactConfig;\n\n return executeEmbeddedRecoveryFlow({\n baseUrl: config?.baseUrl,\n payload: {...payload, verbose: true},\n url: resolveResourceEndpoint('flowExecute', config),\n }) as any;\n }\n\n /**\n * The embedded flows keep their result in the browser, which running sign-in on the backend rules\n * out. Running them through the backend is not supported yet.\n */\n private rejectEmbeddedFlowInBackendMode(): void {\n if (this.isBackendMode()) {\n throw new ThunderIDRuntimeError(\n 'Embedded sign-in, sign-up, and recovery flows are not supported when sign-in runs on the backend.',\n 'ThunderIDReactClient-embeddedFlow-RuntimeError-001',\n 'react',\n 'Use redirect sign-in with the backend.',\n );\n }\n }\n\n public override getStorageManager(): any {\n return super.getStorageManager();\n }\n\n async request(requestConfig?: HttpRequestConfig): Promise<HttpResponse<any>> {\n return super.httpRequest(requestConfig!) as Promise<HttpResponse<any>>;\n }\n\n async requestAll(requestConfigs?: HttpRequestConfig[]): Promise<HttpResponse<any>[]> {\n return super.httpRequestAll(requestConfigs!) as Promise<HttpResponse<any>[]>;\n }\n}\n\nexport default ThunderIDReactClient;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ThunderIDReactClient.cjs","names":["ThunderIDBrowserClient","config: ThunderIDReactConfig | undefined","isInitialized: boolean","ThunderIDRuntimeError","claims: User","arg1: any","arg2: any","authIdFromUrl: string","authIdFromStorage: string","authId: string","response: EmbeddedSignInFlowResponse","EmbeddedSignInFlowStatus","decodedAssertion: {\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n }","createdAt: number","expiresIn: number","config: ThunderIDReactConfig","firstArg: any","baseUrl: string","response: any","EmbeddedSignUpFlowStatus","decodedAssertion: {\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n }"],"sources":["../../src/ThunderIDReactClient.ts"],"sourcesContent":["// Copyright 2025-2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n ThunderIDBrowserClient,\n UserProfile,\n SignInOptions,\n User,\n SignUpOptions,\n ThunderIDRuntimeError,\n executeEmbeddedSignInFlow,\n IdToken,\n extractUserClaimsFromIdToken,\n TokenResponse,\n HttpRequestConfig,\n HttpResponse,\n TokenExchangeRequestConfig,\n isEmpty,\n EmbeddedSignInFlowResponse,\n executeEmbeddedSignUpFlow,\n executeEmbeddedRecoveryFlow,\n EmbeddedSignInFlowStatus,\n EmbeddedSignUpFlowResponse,\n EmbeddedSignUpFlowStatus,\n resolveResourceEndpoint,\n} from '@thunderid/browser';\nimport {ThunderIDReactConfig} from './models/config';\n\nclass ThunderIDReactClient<T extends ThunderIDReactConfig = ThunderIDReactConfig> extends ThunderIDBrowserClient<T> {\n private loadingState = false;\n\n private _initializeConfig: ThunderIDReactConfig | undefined;\n\n constructor(instanceId = 0) {\n super(instanceId);\n }\n\n private setLoading(loading: boolean): void {\n this.loadingState = loading;\n }\n\n private async withLoading<TResult>(operation: () => Promise<TResult>): Promise<TResult> {\n this.setLoading(true);\n try {\n const result: TResult = await operation();\n return result;\n } finally {\n this.setLoading(false);\n }\n }\n\n /**\n * Returns the stored config, re-running initialization first when it has gone missing.\n *\n * NOTE: With React 19 strict mode, the initialization logic runs twice, and there's an intermittent\n * issue where the config object is not getting stored in the storage layer with Vite scaffolding.\n * An operation that resolves endpoints from a lost config fails (for example \"required endpoints\n * are missing\"), so recover it from the config this client was initialized with.\n */\n private async ensureConfigData(): Promise<ThunderIDReactConfig | undefined> {\n const config: ThunderIDReactConfig | undefined = (await this.getStorageManager().getConfigData()) as\n | ThunderIDReactConfig\n | undefined;\n const isConfigLost: boolean =\n !config || Object.keys(config).length === 0 || (Boolean(this._initializeConfig?.baseUrl) && !config.baseUrl);\n\n if (!isConfigLost || !this._initializeConfig) {\n return config;\n }\n\n await this.initialize(this._initializeConfig);\n\n // Reload the config persisted by initialization so downstream endpoint resolution\n // (baseUrl and the flowExecute override) uses the recovered values, not the stale empty config.\n return (await this.getStorageManager().getConfigData()) as ThunderIDReactConfig | undefined;\n }\n\n override initialize(config: ThunderIDReactConfig): Promise<boolean> {\n return this.withLoading(async () => {\n this._initializeConfig = {\n ...config,\n periodicTokenRefresh:\n config?.tokenLifecycle?.refreshToken?.autoRefresh ?? (config as any)?.periodicTokenRefresh,\n } as any;\n\n return super.initialize(this._initializeConfig as unknown as T);\n });\n }\n\n override reInitialize(config: Partial<ThunderIDReactConfig>): Promise<boolean> {\n return this.withLoading(async () => {\n let isInitialized: boolean;\n\n try {\n await super.reInitialize(config as Partial<T>);\n isInitialized = true;\n } catch (error) {\n throw new ThunderIDRuntimeError(\n `Failed to check if the client is initialized: ${error instanceof Error ? error.message : String(error)}`,\n 'ThunderIDReactClient-reInitialize-RuntimeError-001',\n 'react',\n 'An error occurred while checking the initialization status of the client.',\n );\n }\n\n return isInitialized;\n });\n }\n\n override async updateUserProfile(): Promise<User> {\n throw new Error('Not implemented');\n }\n\n override async getUser(): Promise<User> {\n return extractUserClaimsFromIdToken(await this.getDecodedIdToken());\n }\n\n override async getDecodedIdToken(sessionId?: string): Promise<IdToken> {\n return super.getDecodedIdToken(sessionId);\n }\n\n override async getIdToken(): Promise<string> {\n return this.withLoading(async () => super.getIdToken());\n }\n\n override async getUserProfile(): Promise<UserProfile> {\n return this.withLoading(async () => {\n const claims: User = extractUserClaimsFromIdToken(await this.getDecodedIdToken());\n return {\n flattenedProfile: claims,\n profile: claims,\n schemas: [],\n };\n });\n }\n\n override isLoading(): boolean {\n return this.loadingState || super.isLoading();\n }\n\n override async isSignedIn(): Promise<boolean> {\n return super.isSignedIn();\n }\n\n override async exchangeToken(config: TokenExchangeRequestConfig): Promise<TokenResponse | Response> {\n return this.withLoading(async () => super.exchangeToken(config) as unknown as TokenResponse | Response);\n }\n\n override async signIn(...args: any[]): Promise<User | EmbeddedSignInFlowResponse> {\n return this.withLoading(async () => {\n const arg1: any = args[0];\n const arg2: any = args[1];\n\n const config: ThunderIDReactConfig | undefined = await this.ensureConfigData();\n\n if (typeof arg1 === 'object' && arg1 !== null && arg1.callOnlyOnRedirect === true) {\n return undefined as any;\n }\n\n if (\n typeof arg1 === 'object' &&\n arg1 !== null &&\n !isEmpty(arg1) &&\n ('executionId' in arg1 || 'applicationId' in arg1)\n ) {\n this.rejectEmbeddedFlowInBackendMode();\n\n const authIdFromUrl: string = new URL(window.location.href).searchParams.get('authId') ?? '';\n const authIdFromStorage: string =\n (arg1.executionId ? await this.getStorageManager().getFlowAuthId(arg1.executionId) : undefined) ?? '';\n const authId: string = authIdFromUrl || authIdFromStorage;\n const baseUrl: string = config?.baseUrl ?? '';\n\n const response: EmbeddedSignInFlowResponse = await executeEmbeddedSignInFlow({\n authId,\n baseUrl,\n payload: arg1,\n url: resolveResourceEndpoint('flowExecute', config, arg2?.url),\n });\n\n // A flow for an authorization request posts its SSO sessions to the callback instead.\n if (!authId && response) {\n await this.storeFlowSessions(response);\n }\n\n if (\n response &&\n typeof response === 'object' &&\n response.flowStatus === EmbeddedSignInFlowStatus.Complete &&\n response.assertion\n ) {\n const decodedAssertion: {\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n } = await this.decodeJwtToken<{\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n }>(response.assertion);\n\n const createdAt: number = decodedAssertion.iat ? decodedAssertion.iat * 1000 : Date.now();\n const expiresIn: number =\n decodedAssertion.exp && decodedAssertion.iat ? decodedAssertion.exp - decodedAssertion.iat : 3600;\n\n await this.setSession({\n access_token: response.assertion,\n created_at: createdAt,\n expires_in: expiresIn,\n id_token: response.assertion,\n scope: decodedAssertion.scope,\n token_type: 'Bearer',\n });\n\n this.notifySignIn(extractUserClaimsFromIdToken(decodedAssertion as IdToken) as User);\n }\n\n return response;\n }\n\n return (await super.signIn(...args)) as unknown as User;\n });\n }\n\n override async signInSilently(options?: SignInOptions): Promise<User | boolean> {\n await this.ensureConfigData();\n\n return super.signInSilently(options as Record<string, string | boolean>) as Promise<User | boolean>;\n }\n\n override async signUp(options?: SignUpOptions): Promise<void>;\n override async signUp(payload: any): Promise<any>;\n override async signUp(...args: any[]): Promise<void | any> {\n this.rejectEmbeddedFlowInBackendMode();\n\n const config: ThunderIDReactConfig = (await this.getStorageManager().getConfigData()) as ThunderIDReactConfig;\n const firstArg: any = args[0];\n const baseUrl: string = config?.baseUrl ?? '';\n\n const authId: string = new URL(window.location.href).searchParams.get('authId') ?? '';\n\n const response: any = await executeEmbeddedSignUpFlow({\n authId,\n baseUrl,\n payload: typeof firstArg === 'object' && 'flowType' in firstArg ? {...firstArg, verbose: true} : firstArg,\n url: resolveResourceEndpoint('flowExecute', config),\n });\n\n // A flow for an authorization request posts its SSO sessions to the callback instead.\n if (!authId && response) {\n await this.storeFlowSessions(response as EmbeddedSignUpFlowResponse);\n }\n\n if (\n response &&\n typeof response === 'object' &&\n response.flowStatus === EmbeddedSignUpFlowStatus.Complete &&\n response.assertion\n ) {\n const decodedAssertion: {\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n } = await this.decodeJwtToken<{\n [key: string]: unknown;\n exp?: number;\n iat?: number;\n scope?: string;\n }>(response.assertion);\n\n const createdAt: number = decodedAssertion.iat ? decodedAssertion.iat * 1000 : Date.now();\n const expiresIn: number =\n decodedAssertion.exp && decodedAssertion.iat ? decodedAssertion.exp - decodedAssertion.iat : 3600;\n\n await this.setSession({\n access_token: response.assertion,\n created_at: createdAt,\n expires_in: expiresIn,\n id_token: response.assertion,\n scope: decodedAssertion.scope,\n token_type: 'Bearer',\n });\n\n this.notifySignIn(extractUserClaimsFromIdToken(decodedAssertion as IdToken) as User);\n }\n\n return response;\n }\n\n override async recover(payload?: any): Promise<any> {\n this.rejectEmbeddedFlowInBackendMode();\n\n const config: ThunderIDReactConfig = (await this.getStorageManager().getConfigData()) as ThunderIDReactConfig;\n\n return executeEmbeddedRecoveryFlow({\n baseUrl: config?.baseUrl,\n payload: {...payload, verbose: true},\n url: resolveResourceEndpoint('flowExecute', config),\n }) as any;\n }\n\n /**\n * The embedded flows keep their result in the browser, which running sign-in on the backend rules\n * out. Running them through the backend is not supported yet.\n */\n private rejectEmbeddedFlowInBackendMode(): void {\n if (this.isBackendMode()) {\n throw new ThunderIDRuntimeError(\n 'Embedded sign-in, sign-up, and recovery flows are not supported when sign-in runs on the backend.',\n 'ThunderIDReactClient-embeddedFlow-RuntimeError-001',\n 'react',\n 'Use redirect sign-in with the backend.',\n );\n }\n }\n\n public override getStorageManager(): any {\n return super.getStorageManager();\n }\n\n async request(requestConfig?: HttpRequestConfig): Promise<HttpResponse<any>> {\n return super.httpRequest(requestConfig!) as Promise<HttpResponse<any>>;\n }\n\n async requestAll(requestConfigs?: HttpRequestConfig[]): Promise<HttpResponse<any>[]> {\n return super.httpRequestAll(requestConfigs!) as Promise<HttpResponse<any>[]>;\n }\n}\n\nexport default ThunderIDReactClient;\n"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
+ let __thunderid_browser = require("@thunderid/browser");
3
+ __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
4
+
5
+ //#region src/api/account/getAccessibleOrganizationUnits.ts
6
+ /**
7
+ * Lists the organization units the signed-in user can access, from `/users/me/ous`, with the signed-in
8
+ * user's access token attached by the SDK's HTTP client.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const {current, organizationUnits} = await getAccessibleOrganizationUnits({
13
+ * baseUrl: 'https://localhost:8090',
14
+ * scope: 'siblings',
15
+ * });
16
+ * ```
17
+ */
18
+ const getAccessibleOrganizationUnits = async ({ fetcher, instanceId = 0,...requestConfig }) => (0, __thunderid_browser.getAccessibleOrganizationUnits)({
19
+ ...requestConfig,
20
+ fetcher: fetcher ?? (0, __thunderid_browser.createHttpClientFetcher)(instanceId)
21
+ });
22
+ var getAccessibleOrganizationUnits_default = getAccessibleOrganizationUnits;
23
+
24
+ //#endregion
25
+ exports.default = getAccessibleOrganizationUnits_default;
26
+ //# sourceMappingURL=getAccessibleOrganizationUnits.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAccessibleOrganizationUnits.cjs","names":[],"sources":["../../../../src/api/account/getAccessibleOrganizationUnits.ts"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AccessibleOrganizationUnitList,\n createHttpClientFetcher,\n getAccessibleOrganizationUnits as baseGetAccessibleOrganizationUnits,\n GetAccessibleOrganizationUnitsConfig as BaseGetAccessibleOrganizationUnitsConfig,\n} from '@thunderid/browser';\n\nexport interface GetAccessibleOrganizationUnitsConfig\n extends Omit<BaseGetAccessibleOrganizationUnitsConfig, 'fetcher'> {\n /**\n * Optional custom fetcher function. If not provided, the ThunderID SPA client's httpClient is used, which\n * attaches the signed-in user's access token.\n */\n fetcher?: (url: string, config: RequestInit) => Promise<Response>;\n /**\n * Optional instance ID for multi-instance support. Defaults to 0.\n */\n instanceId?: number;\n}\n\n/**\n * Lists the organization units the signed-in user can access, from `/users/me/ous`, with the signed-in\n * user's access token attached by the SDK's HTTP client.\n *\n * @example\n * ```typescript\n * const {current, organizationUnits} = await getAccessibleOrganizationUnits({\n * baseUrl: 'https://localhost:8090',\n * scope: 'siblings',\n * });\n * ```\n */\nconst getAccessibleOrganizationUnits = async ({\n fetcher,\n instanceId = 0,\n ...requestConfig\n}: GetAccessibleOrganizationUnitsConfig): Promise<AccessibleOrganizationUnitList> =>\n baseGetAccessibleOrganizationUnits({\n ...requestConfig,\n fetcher: fetcher ?? createHttpClientFetcher(instanceId),\n });\n\nexport default getAccessibleOrganizationUnits;\n"],"mappings":";;;;;;;;;;;;;;;;;AAmCA,MAAM,iCAAiC,OAAO,EAC5C,SACA,aAAa,EACb,GAAG,4EAEgC;CACjC,GAAG;CACH,SAAS,4DAAmC,WAAW;CACxD,CAAC;AAEJ,6CAAe"}
@@ -0,0 +1,214 @@
1
+ const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
+ const require_emotion = require('../../../styles/emotion.cjs');
3
+ const require_useTheme = require('../../../contexts/Theme/useTheme.cjs');
4
+ const require_useTranslation = require('../../../hooks/useTranslation.cjs');
5
+ const require_Spinner = require('../../primitives/Spinner/Spinner.cjs');
6
+ const require_Button = require('../../primitives/Button/Button.cjs');
7
+ const require_Check = require('../../primitives/Icons/Check.cjs');
8
+ const require_BaseOrganizationUnitSwitcher_styles = require('./BaseOrganizationUnitSwitcher.styles.cjs');
9
+ const require_ChevronDown = require('../../primitives/Icons/ChevronDown.cjs');
10
+ let __thunderid_browser = require("@thunderid/browser");
11
+ __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
12
+ let react = require("react");
13
+ react = require_rolldown_runtime.__toESM(react);
14
+ let react_jsx_runtime = require("react/jsx-runtime");
15
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
16
+ let __floating_ui_react = require("@floating-ui/react");
17
+ __floating_ui_react = require_rolldown_runtime.__toESM(__floating_ui_react);
18
+
19
+ //#region src/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.tsx
20
+ const BLOCK = "organization-unit-switcher";
21
+ /**
22
+ * Presentational organization unit picker: a field showing the current unit under a small label, which
23
+ * opens a menu of the units the signed-in user can access. Holds no SDK state and makes no request: pass
24
+ * the units and the callbacks. Use {@link OrganizationUnitSwitcher} for the variant wired to the SDK.
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * <BaseOrganizationUnitSwitcher
29
+ * organizationUnits={units}
30
+ * current={currentId}
31
+ * totalResults={units.length}
32
+ * onSwitch={(unit) => switchTo(unit.id)}
33
+ * />
34
+ * ```
35
+ */
36
+ const BaseOrganizationUnitSwitcher = ({ children = void 0, className = "", current = null, currentName = null, error = null, isLoading = false, limit = 10, offset = 0, onPageChange = () => void 0, onSwitch = () => void 0, organizationUnits = [], preferences = void 0, switchingId = null, title = void 0, totalResults = void 0 }) => {
37
+ const { theme, colorScheme } = require_useTheme.default();
38
+ const styles = require_BaseOrganizationUnitSwitcher_styles.default(theme, colorScheme);
39
+ const { t } = require_useTranslation.default(preferences?.i18n);
40
+ const [isOpen, setIsOpen] = (0, react.useState)(false);
41
+ const [activeIndex, setActiveIndex] = (0, react.useState)(null);
42
+ const listRef = (0, react.useRef)([]);
43
+ const listId = (0, react.useId)();
44
+ const isSwitching = switchingId !== null;
45
+ const open = isOpen && !isSwitching;
46
+ const currentIndex = organizationUnits.findIndex((unit) => unit.id === current);
47
+ const resolvedCurrentName = organizationUnits[currentIndex]?.name ?? currentName;
48
+ const resolvedTotal = totalResults ?? organizationUnits.length;
49
+ const { context, floatingStyles, refs } = (0, __floating_ui_react.useFloating)({
50
+ middleware: [
51
+ (0, __floating_ui_react.offset)(4),
52
+ (0, __floating_ui_react.flip)(),
53
+ (0, __floating_ui_react.shift)({ padding: 8 }),
54
+ (0, __floating_ui_react.size)({ apply({ elements, rects }) {
55
+ elements.floating.style.minWidth = `${rects.reference.width}px`;
56
+ } })
57
+ ],
58
+ onOpenChange: setIsOpen,
59
+ open,
60
+ placement: "bottom-start",
61
+ whileElementsMounted: __floating_ui_react.autoUpdate
62
+ });
63
+ const { getFloatingProps, getItemProps, getReferenceProps } = (0, __floating_ui_react.useInteractions)([
64
+ (0, __floating_ui_react.useClick)(context, { enabled: !isSwitching }),
65
+ (0, __floating_ui_react.useDismiss)(context),
66
+ (0, __floating_ui_react.useListNavigation)(context, {
67
+ activeIndex,
68
+ listRef,
69
+ loop: true,
70
+ onNavigate: setActiveIndex,
71
+ selectedIndex: currentIndex >= 0 ? currentIndex : null
72
+ })
73
+ ]);
74
+ const renderProps = {
75
+ current,
76
+ currentName: resolvedCurrentName,
77
+ error,
78
+ isLoading,
79
+ limit,
80
+ offset,
81
+ onPageChange,
82
+ onSwitch,
83
+ organizationUnits,
84
+ switchingId,
85
+ totalResults: resolvedTotal
86
+ };
87
+ if (children) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: children(renderProps) });
88
+ const label = title ?? t("organization_unit.switcher.label");
89
+ const hasPrevious = offset > 0;
90
+ const hasNext = offset + organizationUnits.length < resolvedTotal;
91
+ const fieldValue = () => {
92
+ if (isSwitching) return t("organization_unit.switcher.switching", { name: organizationUnits.find((unit) => unit.id === switchingId)?.name ?? switchingId ?? "" });
93
+ if (resolvedCurrentName) return resolvedCurrentName;
94
+ return isLoading ? t("organization_unit.switcher.loading") : t("organization_unit.switcher.placeholder");
95
+ };
96
+ const pick = (unit) => {
97
+ setIsOpen(false);
98
+ if (unit.id !== current) onSwitch(unit);
99
+ };
100
+ const menuContent = () => {
101
+ if (isLoading) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
102
+ role: "status",
103
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)(BLOCK, "loading")), styles["status"]),
104
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
105
+ "aria-hidden": "true",
106
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Spinner.default, { size: "small" })
107
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: t("organization_unit.switcher.loading") })]
108
+ });
109
+ if (organizationUnits.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
110
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)(BLOCK, "empty")), styles["status"]),
111
+ children: error ?? t("organization_unit.switcher.empty")
112
+ });
113
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
114
+ id: listId,
115
+ role: "listbox",
116
+ "aria-label": label || t("organization_unit.switcher.label"),
117
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)(BLOCK, "list")), styles["list"]),
118
+ children: organizationUnits.map((unit, index) => {
119
+ const isCurrent = unit.id === current;
120
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
121
+ ref: (node) => {
122
+ listRef.current[index] = node;
123
+ },
124
+ type: "button",
125
+ role: "option",
126
+ "aria-selected": isCurrent,
127
+ tabIndex: index === activeIndex ? 0 : -1,
128
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)(BLOCK, "option", isCurrent ? "current" : void 0)), styles["option"], isCurrent ? styles["optionCurrent"] : ""),
129
+ ...getItemProps({ onClick: () => pick(unit) }),
130
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
131
+ className: styles["optionText"],
132
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
133
+ className: styles["optionName"],
134
+ children: unit.name
135
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
136
+ className: styles["optionHandle"],
137
+ children: unit.handle
138
+ })]
139
+ }), isCurrent && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
140
+ "aria-hidden": "true",
141
+ className: styles["check"],
142
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Check.default, {})
143
+ })]
144
+ }, unit.id);
145
+ })
146
+ });
147
+ };
148
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
149
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)(BLOCK), styles["root"], className),
150
+ children: [
151
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
152
+ ref: refs.setReference,
153
+ type: "button",
154
+ "aria-controls": open ? listId : void 0,
155
+ "aria-expanded": open,
156
+ "aria-haspopup": "listbox",
157
+ disabled: isSwitching,
158
+ ...getReferenceProps(),
159
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)(BLOCK, "field")), styles["field"]),
160
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
161
+ className: styles["fieldText"],
162
+ children: [label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
163
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)(BLOCK, "label")), styles["label"]),
164
+ children: label
165
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
166
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)(BLOCK, "value")), styles["value"]),
167
+ children: fieldValue()
168
+ })]
169
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
170
+ "aria-hidden": "true",
171
+ className: require_emotion.cx(styles["chevron"], open ? styles["chevronOpen"] : ""),
172
+ children: isSwitching ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Spinner.default, { size: "small" }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ChevronDown.default, {})
173
+ })]
174
+ }),
175
+ error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
176
+ role: "alert",
177
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)(BLOCK, "error")), styles["error"]),
178
+ children: error
179
+ }),
180
+ open && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__floating_ui_react.FloatingPortal, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__floating_ui_react.FloatingFocusManager, {
181
+ context,
182
+ initialFocus: -1,
183
+ modal: false,
184
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
185
+ ref: refs.setFloating,
186
+ style: floatingStyles,
187
+ ...getFloatingProps(),
188
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)(BLOCK, "menu")), styles["menu"]),
189
+ children: [menuContent(), (hasPrevious || hasNext) && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
190
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)(BLOCK, "pagination")), styles["pagination"]),
191
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.default, {
192
+ size: "small",
193
+ variant: "text",
194
+ disabled: !hasPrevious || isLoading,
195
+ onClick: () => onPageChange(Math.max(0, offset - limit)),
196
+ children: t("organization_unit.switcher.previous")
197
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.default, {
198
+ size: "small",
199
+ variant: "text",
200
+ disabled: !hasNext || isLoading,
201
+ onClick: () => onPageChange(offset + limit),
202
+ children: t("organization_unit.switcher.next")
203
+ })]
204
+ })]
205
+ })
206
+ }) })
207
+ ]
208
+ });
209
+ };
210
+ var BaseOrganizationUnitSwitcher_default = BaseOrganizationUnitSwitcher;
211
+
212
+ //#endregion
213
+ exports.default = BaseOrganizationUnitSwitcher_default;
214
+ //# sourceMappingURL=BaseOrganizationUnitSwitcher.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseOrganizationUnitSwitcher.cjs","names":["BaseOrganizationUnitSwitcher: FC<BaseOrganizationUnitSwitcherProps>","useTheme","styles: Record<string, string>","useStyles","useTranslation","listId: string","isSwitching: boolean","open: boolean","currentIndex: number","resolvedCurrentName: string | null","resolvedTotal: number","autoUpdate","renderProps: OrganizationUnitSwitcherRenderProps","label: string","hasPrevious: boolean","hasNext: boolean","cx","Spinner","isCurrent: boolean","Check","ChevronDown","FloatingPortal","FloatingFocusManager","Button"],"sources":["../../../../../src/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingPortal,\n type MiddlewareState,\n offset as floatingOffset,\n shift,\n size,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useListNavigation,\n} from '@floating-ui/react';\nimport {AccessibleOrganizationUnit, Preferences, bem, withVendorCSSClassPrefix} from '@thunderid/browser';\nimport {FC, ReactElement, ReactNode, useId, useRef, useState} from 'react';\nimport useStyles from './BaseOrganizationUnitSwitcher.styles';\nimport useTheme from '../../../contexts/Theme/useTheme';\nimport useTranslation from '../../../hooks/useTranslation';\nimport {cx} from '../../../styles/emotion';\nimport Button from '../../primitives/Button/Button';\nimport Check from '../../primitives/Icons/Check';\nimport ChevronDown from '../../primitives/Icons/ChevronDown';\nimport Spinner from '../../primitives/Spinner/Spinner';\n\nconst BLOCK = 'organization-unit-switcher';\n\nexport interface OrganizationUnitSwitcherRenderProps {\n /**\n * Identifier of the unit the session is in, or `null` when it is not known.\n */\n current: string | null;\n /**\n * Name of the unit the session is in, from the page or the session, or `null` when it is not known.\n */\n currentName: string | null;\n /**\n * A translated message for the last failure, or `null`.\n */\n error: string | null;\n /**\n * Whether the units are loading.\n */\n isLoading: boolean;\n /**\n * The page size.\n */\n limit: number;\n /**\n * The zero-based offset of the page.\n */\n offset: number;\n /**\n * Moves to the page that starts at `offset`.\n */\n onPageChange: (offset: number) => void;\n /**\n * Switches to `unit` (or hands it to the app's `onSelect`).\n */\n onSwitch: (unit: AccessibleOrganizationUnit) => void;\n /**\n * The units of the page.\n */\n organizationUnits: AccessibleOrganizationUnit[];\n /**\n * Identifier of the unit a switch is in progress to, or `null`.\n */\n switchingId: string | null;\n /**\n * Number of units the listing matches.\n */\n totalResults: number;\n}\n\nexport interface BaseOrganizationUnitSwitcherProps extends Partial<OrganizationUnitSwitcherRenderProps> {\n /**\n * Custom render. Replaces the built-in UI and receives the units, the current one, the loading and\n * error state, the paging and `onSwitch`.\n */\n children?: (props: OrganizationUnitSwitcherRenderProps) => ReactNode;\n /**\n * Additional CSS class names.\n */\n className?: string;\n /**\n * Component-level preference overrides, including i18n.\n */\n preferences?: Preferences;\n /**\n * Overrides the small label above the current unit. Pass an empty string to omit it.\n */\n title?: string;\n}\n\n/**\n * Presentational organization unit picker: a field showing the current unit under a small label, which\n * opens a menu of the units the signed-in user can access. Holds no SDK state and makes no request: pass\n * the units and the callbacks. Use {@link OrganizationUnitSwitcher} for the variant wired to the SDK.\n *\n * @example\n * ```tsx\n * <BaseOrganizationUnitSwitcher\n * organizationUnits={units}\n * current={currentId}\n * totalResults={units.length}\n * onSwitch={(unit) => switchTo(unit.id)}\n * />\n * ```\n */\nconst BaseOrganizationUnitSwitcher: FC<BaseOrganizationUnitSwitcherProps> = ({\n children = undefined,\n className = '',\n current = null,\n currentName = null,\n error = null,\n isLoading = false,\n limit = 10,\n offset = 0,\n onPageChange = (): void => undefined,\n onSwitch = (): void => undefined,\n organizationUnits = [],\n preferences = undefined,\n switchingId = null,\n title = undefined,\n totalResults = undefined,\n}: BaseOrganizationUnitSwitcherProps): ReactElement => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme);\n const {t} = useTranslation(preferences?.i18n);\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n const listRef = useRef<(HTMLElement | null)[]>([]);\n const listId: string = useId();\n\n const isSwitching: boolean = switchingId !== null;\n const open: boolean = isOpen && !isSwitching;\n const currentIndex: number = organizationUnits.findIndex((unit: AccessibleOrganizationUnit) => unit.id === current);\n const resolvedCurrentName: string | null = organizationUnits[currentIndex]?.name ?? currentName;\n const resolvedTotal: number = totalResults ?? organizationUnits.length;\n\n const {context, floatingStyles, refs} = useFloating({\n middleware: [\n floatingOffset(4),\n flip(),\n shift({padding: 8}),\n size({\n apply({elements, rects}: MiddlewareState): void {\n elements.floating.style.minWidth = `${rects.reference.width}px`;\n },\n }),\n ],\n onOpenChange: setIsOpen,\n open,\n placement: 'bottom-start',\n whileElementsMounted: autoUpdate,\n });\n const click: ReturnType<typeof useClick> = useClick(context, {enabled: !isSwitching});\n const dismiss: ReturnType<typeof useDismiss> = useDismiss(context);\n const listNavigation: ReturnType<typeof useListNavigation> = useListNavigation(context, {\n activeIndex,\n listRef,\n loop: true,\n onNavigate: setActiveIndex,\n selectedIndex: currentIndex >= 0 ? currentIndex : null,\n });\n const {getFloatingProps, getItemProps, getReferenceProps} = useInteractions([click, dismiss, listNavigation]);\n\n const renderProps: OrganizationUnitSwitcherRenderProps = {\n current,\n currentName: resolvedCurrentName,\n error,\n isLoading,\n limit,\n offset,\n onPageChange,\n onSwitch,\n organizationUnits,\n switchingId,\n totalResults: resolvedTotal,\n };\n\n if (children) {\n return <>{children(renderProps)}</>;\n }\n\n const label: string = title ?? t('organization_unit.switcher.label');\n const hasPrevious: boolean = offset > 0;\n const hasNext: boolean = offset + organizationUnits.length < resolvedTotal;\n\n const fieldValue = (): string => {\n if (isSwitching) {\n const target: AccessibleOrganizationUnit | undefined = organizationUnits.find(\n (unit: AccessibleOrganizationUnit) => unit.id === switchingId,\n );\n\n return t('organization_unit.switcher.switching', {name: target?.name ?? switchingId ?? ''});\n }\n\n if (resolvedCurrentName) {\n return resolvedCurrentName;\n }\n\n return isLoading ? t('organization_unit.switcher.loading') : t('organization_unit.switcher.placeholder');\n };\n\n const pick = (unit: AccessibleOrganizationUnit): void => {\n setIsOpen(false);\n\n if (unit.id !== current) {\n onSwitch(unit);\n }\n };\n\n const menuContent = (): ReactNode => {\n if (isLoading) {\n return (\n <div role=\"status\" className={cx(withVendorCSSClassPrefix(bem(BLOCK, 'loading')), styles['status'])}>\n <span aria-hidden=\"true\">\n <Spinner size=\"small\" />\n </span>\n <span>{t('organization_unit.switcher.loading')}</span>\n </div>\n );\n }\n\n if (organizationUnits.length === 0) {\n return (\n <p className={cx(withVendorCSSClassPrefix(bem(BLOCK, 'empty')), styles['status'])}>\n {error ?? t('organization_unit.switcher.empty')}\n </p>\n );\n }\n\n return (\n <div\n id={listId}\n role=\"listbox\"\n aria-label={label || t('organization_unit.switcher.label')}\n className={cx(withVendorCSSClassPrefix(bem(BLOCK, 'list')), styles['list'])}\n >\n {organizationUnits.map((unit: AccessibleOrganizationUnit, index: number) => {\n const isCurrent: boolean = unit.id === current;\n\n return (\n <button\n key={unit.id}\n ref={(node: HTMLButtonElement | null): void => {\n listRef.current[index] = node;\n }}\n type=\"button\"\n role=\"option\"\n aria-selected={isCurrent}\n tabIndex={index === activeIndex ? 0 : -1}\n className={cx(\n withVendorCSSClassPrefix(bem(BLOCK, 'option', isCurrent ? 'current' : undefined)),\n styles['option'],\n isCurrent ? styles['optionCurrent'] : '',\n )}\n {...getItemProps({onClick: (): void => pick(unit)})}\n >\n <span className={styles['optionText']}>\n <span className={styles['optionName']}>{unit.name}</span>\n <span className={styles['optionHandle']}>{unit.handle}</span>\n </span>\n {isCurrent && (\n <span aria-hidden=\"true\" className={styles['check']}>\n <Check />\n </span>\n )}\n </button>\n );\n })}\n </div>\n );\n };\n\n return (\n <div className={cx(withVendorCSSClassPrefix(BLOCK), styles['root'], className)}>\n <button\n ref={refs.setReference}\n type=\"button\"\n aria-controls={open ? listId : undefined}\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n disabled={isSwitching}\n {...getReferenceProps()}\n className={cx(withVendorCSSClassPrefix(bem(BLOCK, 'field')), styles['field'])}\n >\n <span className={styles['fieldText']}>\n {label && <span className={cx(withVendorCSSClassPrefix(bem(BLOCK, 'label')), styles['label'])}>{label}</span>}\n <span className={cx(withVendorCSSClassPrefix(bem(BLOCK, 'value')), styles['value'])}>{fieldValue()}</span>\n </span>\n <span aria-hidden=\"true\" className={cx(styles['chevron'], open ? styles['chevronOpen'] : '')}>\n {isSwitching ? <Spinner size=\"small\" /> : <ChevronDown />}\n </span>\n </button>\n\n {error && (\n <div role=\"alert\" className={cx(withVendorCSSClassPrefix(bem(BLOCK, 'error')), styles['error'])}>\n {error}\n </div>\n )}\n\n {open && (\n <FloatingPortal>\n <FloatingFocusManager context={context} initialFocus={-1} modal={false}>\n <div\n ref={refs.setFloating}\n style={floatingStyles}\n {...getFloatingProps()}\n className={cx(withVendorCSSClassPrefix(bem(BLOCK, 'menu')), styles['menu'])}\n >\n {menuContent()}\n {(hasPrevious || hasNext) && (\n <div className={cx(withVendorCSSClassPrefix(bem(BLOCK, 'pagination')), styles['pagination'])}>\n <Button\n size=\"small\"\n variant=\"text\"\n disabled={!hasPrevious || isLoading}\n onClick={(): void => onPageChange(Math.max(0, offset - limit))}\n >\n {t('organization_unit.switcher.previous')}\n </Button>\n <Button\n size=\"small\"\n variant=\"text\"\n disabled={!hasNext || isLoading}\n onClick={(): void => onPageChange(offset + limit)}\n >\n {t('organization_unit.switcher.next')}\n </Button>\n </div>\n )}\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </div>\n );\n};\n\nexport default BaseOrganizationUnitSwitcher;\n"],"mappings":"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"}