@thunderid/react 1.13.0 → 1.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (668) hide show
  1. package/dist/ThunderIDReactClient.d.ts.map +1 -1
  2. package/dist/ThunderIDReactClient.js +6 -2
  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/api/auth/executeEmbeddedSelfFlow.d.ts +36 -0
  9. package/dist/api/auth/executeEmbeddedSelfFlow.d.ts.map +1 -0
  10. package/dist/api/auth/executeEmbeddedSelfFlow.js +30 -0
  11. package/dist/api/auth/executeEmbeddedSelfFlow.js.map +1 -0
  12. package/dist/cjs/ThunderIDReactClient.cjs +6 -2
  13. package/dist/cjs/ThunderIDReactClient.cjs.map +1 -1
  14. package/dist/cjs/api/account/getAccessibleOrganizationUnits.cjs +26 -0
  15. package/dist/cjs/api/account/getAccessibleOrganizationUnits.cjs.map +1 -0
  16. package/dist/cjs/api/auth/executeEmbeddedSelfFlow.cjs +32 -0
  17. package/dist/cjs/api/auth/executeEmbeddedSelfFlow.cjs.map +1 -0
  18. package/dist/cjs/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.cjs +214 -0
  19. package/dist/cjs/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.cjs.map +1 -0
  20. package/dist/cjs/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.cjs +184 -0
  21. package/dist/cjs/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.cjs.map +1 -0
  22. package/dist/cjs/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.cjs +139 -0
  23. package/dist/cjs/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.cjs.map +1 -0
  24. package/dist/cjs/components/account/UserProfile/BaseUserProfile.cjs +195 -46
  25. package/dist/cjs/components/account/UserProfile/BaseUserProfile.cjs.map +1 -1
  26. package/dist/cjs/components/account/UserProfile/BaseUserProfile.styles.cjs +57 -4
  27. package/dist/cjs/components/account/UserProfile/BaseUserProfile.styles.cjs.map +1 -1
  28. package/dist/cjs/components/account/UserProfile/UserProfile.cjs +13 -1
  29. package/dist/cjs/components/account/UserProfile/UserProfile.cjs.map +1 -1
  30. package/dist/cjs/components/account/VerifyAttribute/BaseVerifyAttribute.cjs +358 -0
  31. package/dist/cjs/components/account/VerifyAttribute/BaseVerifyAttribute.cjs.map +1 -0
  32. package/dist/cjs/components/account/VerifyAttribute/BaseVerifyAttribute.styles.cjs +84 -0
  33. package/dist/cjs/components/account/VerifyAttribute/BaseVerifyAttribute.styles.cjs.map +1 -0
  34. package/dist/cjs/components/account/VerifyAttribute/VerifyAttribute.cjs +94 -0
  35. package/dist/cjs/components/account/VerifyAttribute/VerifyAttribute.cjs.map +1 -0
  36. package/dist/cjs/components/auth/SignIn/SignIn.cjs +23 -20
  37. package/dist/cjs/components/auth/SignIn/SignIn.cjs.map +1 -1
  38. package/dist/cjs/components/auth/SignUp/BaseSignUp.cjs +13 -9
  39. package/dist/cjs/components/auth/SignUp/BaseSignUp.cjs.map +1 -1
  40. package/dist/cjs/components/auth/flow/AuthOptionFactory.cjs +22 -2
  41. package/dist/cjs/components/auth/flow/AuthOptionFactory.cjs.map +1 -1
  42. package/dist/cjs/components/common/LanguageSwitcher/BaseLanguageSwitcher.cjs +1 -1
  43. package/dist/cjs/components/{admin → management}/AgentCreate/AgentCreate.cjs +8 -7
  44. package/dist/cjs/components/management/AgentCreate/AgentCreate.cjs.map +1 -0
  45. package/dist/cjs/components/{admin → management}/AgentCreate/BaseAgentCreate.cjs +1 -1
  46. package/dist/cjs/components/management/AgentCreate/BaseAgentCreate.cjs.map +1 -0
  47. package/dist/cjs/components/{admin → management}/AgentDetails/AgentDetails.cjs +1 -1
  48. package/dist/cjs/components/management/AgentDetails/AgentDetails.cjs.map +1 -0
  49. package/dist/cjs/components/{admin → management}/AgentDetails/BaseAgentDetails.cjs +1 -1
  50. package/dist/cjs/components/management/AgentDetails/BaseAgentDetails.cjs.map +1 -0
  51. package/dist/cjs/components/{admin → management}/AgentList/AgentList.cjs +11 -6
  52. package/dist/cjs/components/management/AgentList/AgentList.cjs.map +1 -0
  53. package/dist/cjs/components/{admin → management}/AgentList/BaseAgentList.cjs +1 -1
  54. package/dist/cjs/components/management/AgentList/BaseAgentList.cjs.map +1 -0
  55. package/dist/cjs/components/{admin → management}/ApplicationCreate/ApplicationCreate.cjs +10 -5
  56. package/dist/cjs/components/management/ApplicationCreate/ApplicationCreate.cjs.map +1 -0
  57. package/dist/cjs/components/{admin → management}/ApplicationCreate/BaseApplicationCreate.cjs +1 -1
  58. package/dist/cjs/components/management/ApplicationCreate/BaseApplicationCreate.cjs.map +1 -0
  59. package/dist/cjs/components/{admin → management}/ApplicationDetails/ApplicationDetails.cjs +1 -1
  60. package/dist/cjs/components/management/ApplicationDetails/ApplicationDetails.cjs.map +1 -0
  61. package/dist/cjs/components/{admin → management}/ApplicationDetails/BaseApplicationDetails.cjs +1 -1
  62. package/dist/cjs/components/management/ApplicationDetails/BaseApplicationDetails.cjs.map +1 -0
  63. package/dist/cjs/components/{admin → management}/ApplicationList/ApplicationList.cjs +9 -4
  64. package/dist/cjs/components/management/ApplicationList/ApplicationList.cjs.map +1 -0
  65. package/dist/cjs/components/{admin → management}/ApplicationList/BaseApplicationList.cjs +1 -1
  66. package/dist/cjs/components/management/ApplicationList/BaseApplicationList.cjs.map +1 -0
  67. package/dist/cjs/components/{admin → management}/GroupCreate/BaseGroupCreate.cjs +1 -1
  68. package/dist/cjs/components/management/GroupCreate/BaseGroupCreate.cjs.map +1 -0
  69. package/dist/cjs/components/{admin → management}/GroupCreate/GroupCreate.cjs +1 -1
  70. package/dist/cjs/components/management/GroupCreate/GroupCreate.cjs.map +1 -0
  71. package/dist/cjs/components/management/GroupDetails/BaseGroupDetails.cjs +86 -0
  72. package/dist/cjs/components/management/GroupDetails/BaseGroupDetails.cjs.map +1 -0
  73. package/dist/cjs/components/management/GroupDetails/GroupDetails.cjs +60 -0
  74. package/dist/cjs/components/management/GroupDetails/GroupDetails.cjs.map +1 -0
  75. package/dist/cjs/components/{admin → management}/GroupList/BaseGroupList.cjs +1 -1
  76. package/dist/cjs/components/management/GroupList/BaseGroupList.cjs.map +1 -0
  77. package/dist/cjs/components/{admin → management}/GroupList/GroupList.cjs +1 -1
  78. package/dist/cjs/components/management/GroupList/GroupList.cjs.map +1 -0
  79. package/dist/cjs/components/{admin → management}/GroupMembers/BaseGroupMembers.cjs +1 -1
  80. package/dist/cjs/components/management/GroupMembers/BaseGroupMembers.cjs.map +1 -0
  81. package/dist/cjs/components/{admin → management}/GroupMembers/GroupMembers.cjs +1 -1
  82. package/dist/cjs/components/management/GroupMembers/GroupMembers.cjs.map +1 -0
  83. package/dist/cjs/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.cjs +140 -0
  84. package/dist/cjs/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.cjs.map +1 -0
  85. package/dist/cjs/components/management/OrganizationUnitCreate/OrganizationUnitCreate.cjs +83 -0
  86. package/dist/cjs/components/management/OrganizationUnitCreate/OrganizationUnitCreate.cjs.map +1 -0
  87. package/dist/cjs/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.cjs +276 -0
  88. package/dist/cjs/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.cjs.map +1 -0
  89. package/dist/cjs/components/management/OrganizationUnitDetails/OrganizationUnitDetails.cjs +142 -0
  90. package/dist/cjs/components/management/OrganizationUnitDetails/OrganizationUnitDetails.cjs.map +1 -0
  91. package/dist/cjs/components/management/OrganizationUnitList/BaseOrganizationUnitList.cjs +78 -0
  92. package/dist/cjs/components/management/OrganizationUnitList/BaseOrganizationUnitList.cjs.map +1 -0
  93. package/dist/cjs/components/management/OrganizationUnitList/OrganizationUnitList.cjs +69 -0
  94. package/dist/cjs/components/management/OrganizationUnitList/OrganizationUnitList.cjs.map +1 -0
  95. package/dist/cjs/components/management/ProjectCreate/BaseProjectCreate.cjs +116 -0
  96. package/dist/cjs/components/management/ProjectCreate/BaseProjectCreate.cjs.map +1 -0
  97. package/dist/cjs/components/management/ProjectCreate/ProjectCreate.cjs +43 -0
  98. package/dist/cjs/components/management/ProjectCreate/ProjectCreate.cjs.map +1 -0
  99. package/dist/cjs/components/management/ProjectDetails/BaseProjectDetails.cjs +172 -0
  100. package/dist/cjs/components/management/ProjectDetails/BaseProjectDetails.cjs.map +1 -0
  101. package/dist/cjs/components/management/ProjectDetails/ProjectDetails.cjs +68 -0
  102. package/dist/cjs/components/management/ProjectDetails/ProjectDetails.cjs.map +1 -0
  103. package/dist/cjs/components/management/ProjectList/BaseProjectList.cjs +78 -0
  104. package/dist/cjs/components/management/ProjectList/BaseProjectList.cjs.map +1 -0
  105. package/dist/cjs/components/management/ProjectList/ProjectList.cjs +51 -0
  106. package/dist/cjs/components/management/ProjectList/ProjectList.cjs.map +1 -0
  107. package/dist/cjs/components/management/ProjectSwitcher/BaseProjectSwitcher.cjs +58 -0
  108. package/dist/cjs/components/management/ProjectSwitcher/BaseProjectSwitcher.cjs.map +1 -0
  109. package/dist/cjs/components/management/ProjectSwitcher/ProjectSwitcher.cjs +72 -0
  110. package/dist/cjs/components/management/ProjectSwitcher/ProjectSwitcher.cjs.map +1 -0
  111. package/dist/cjs/components/{admin → management}/RoleAssignments/BaseRoleAssignments.cjs +1 -1
  112. package/dist/cjs/components/management/RoleAssignments/BaseRoleAssignments.cjs.map +1 -0
  113. package/dist/cjs/components/{admin → management}/RoleAssignments/RoleAssignments.cjs +1 -1
  114. package/dist/cjs/components/management/RoleAssignments/RoleAssignments.cjs.map +1 -0
  115. package/dist/cjs/components/{admin → management}/RoleCreate/BaseRoleCreate.cjs +1 -1
  116. package/dist/cjs/components/management/RoleCreate/BaseRoleCreate.cjs.map +1 -0
  117. package/dist/cjs/components/{admin → management}/RoleCreate/RoleCreate.cjs +1 -1
  118. package/dist/cjs/components/management/RoleCreate/RoleCreate.cjs.map +1 -0
  119. package/dist/cjs/components/management/RoleDetails/BaseRoleDetails.cjs +87 -0
  120. package/dist/cjs/components/management/RoleDetails/BaseRoleDetails.cjs.map +1 -0
  121. package/dist/cjs/components/management/RoleDetails/RoleDetails.cjs +68 -0
  122. package/dist/cjs/components/management/RoleDetails/RoleDetails.cjs.map +1 -0
  123. package/dist/cjs/components/{admin → management}/RoleList/BaseRoleList.cjs +1 -1
  124. package/dist/cjs/components/management/RoleList/BaseRoleList.cjs.map +1 -0
  125. package/dist/cjs/components/{admin → management}/RoleList/RoleList.cjs +1 -1
  126. package/dist/cjs/components/management/RoleList/RoleList.cjs.map +1 -0
  127. package/dist/cjs/components/management/RolePermissions/BaseRolePermissions.cjs +181 -0
  128. package/dist/cjs/components/management/RolePermissions/BaseRolePermissions.cjs.map +1 -0
  129. package/dist/cjs/components/management/RolePermissions/RolePermissions.cjs +112 -0
  130. package/dist/cjs/components/management/RolePermissions/RolePermissions.cjs.map +1 -0
  131. package/dist/cjs/components/management/SharingPolicies/BaseSharingPolicies.cjs +308 -0
  132. package/dist/cjs/components/management/SharingPolicies/BaseSharingPolicies.cjs.map +1 -0
  133. package/dist/cjs/components/management/SharingPolicies/SharingPolicies.cjs +126 -0
  134. package/dist/cjs/components/management/SharingPolicies/SharingPolicies.cjs.map +1 -0
  135. package/dist/cjs/components/{admin → management}/UserCreate/BaseUserCreate.cjs +1 -1
  136. package/dist/cjs/components/management/UserCreate/BaseUserCreate.cjs.map +1 -0
  137. package/dist/cjs/components/{admin → management}/UserCreate/UserCreate.cjs +1 -1
  138. package/dist/cjs/components/management/UserCreate/UserCreate.cjs.map +1 -0
  139. package/dist/cjs/components/{admin → management}/UserCreate/userCreateFields.cjs +1 -1
  140. package/dist/cjs/components/management/UserCreate/userCreateFields.cjs.map +1 -0
  141. package/dist/cjs/components/{admin → management}/UserDetails/BaseUserDetails.cjs +1 -1
  142. package/dist/cjs/components/management/UserDetails/BaseUserDetails.cjs.map +1 -0
  143. package/dist/cjs/components/{admin → management}/UserDetails/UserDetails.cjs +1 -1
  144. package/dist/cjs/components/management/UserDetails/UserDetails.cjs.map +1 -0
  145. package/dist/cjs/components/{admin → management}/UserList/BaseUserList.cjs +1 -1
  146. package/dist/cjs/components/management/UserList/BaseUserList.cjs.map +1 -0
  147. package/dist/cjs/components/{admin → management}/UserList/UserList.cjs +1 -1
  148. package/dist/cjs/components/management/UserList/UserList.cjs.map +1 -0
  149. package/dist/cjs/components/{admin → management}/shared/AccountLifecycleParts.cjs +1 -1
  150. package/dist/cjs/components/management/shared/AccountLifecycleParts.cjs.map +1 -0
  151. package/dist/cjs/components/{admin → management}/shared/AdminParts.cjs +1 -1
  152. package/dist/cjs/components/management/shared/AdminParts.cjs.map +1 -0
  153. package/dist/cjs/components/{admin → management}/shared/AdminParts.styles.cjs +1 -1
  154. package/dist/cjs/components/management/shared/AdminParts.styles.cjs.map +1 -0
  155. package/dist/cjs/components/{admin → management}/shared/AdminSearch.cjs +1 -1
  156. package/dist/cjs/components/management/shared/AdminSearch.cjs.map +1 -0
  157. package/dist/cjs/components/{admin → management}/shared/AdminSection.cjs +1 -1
  158. package/dist/cjs/components/management/shared/AdminSection.cjs.map +1 -0
  159. package/dist/cjs/components/{admin → management}/shared/AdminSection.styles.cjs +1 -1
  160. package/dist/cjs/components/management/shared/AdminSection.styles.cjs.map +1 -0
  161. package/dist/cjs/components/{admin → management}/shared/ApplicationFormFields.cjs +1 -1
  162. package/dist/cjs/components/management/shared/ApplicationFormFields.cjs.map +1 -0
  163. package/dist/cjs/components/{admin → management}/shared/ClientSecretNotice.cjs +1 -1
  164. package/dist/cjs/components/management/shared/ClientSecretNotice.cjs.map +1 -0
  165. package/dist/cjs/components/{admin → management}/shared/IdentityPicker.cjs +1 -1
  166. package/dist/cjs/components/management/shared/IdentityPicker.cjs.map +1 -0
  167. package/dist/cjs/components/management/shared/formatTimestamp.cjs +18 -0
  168. package/dist/cjs/components/management/shared/formatTimestamp.cjs.map +1 -0
  169. package/dist/cjs/components/{admin → management}/shared/useAdminPartStyles.cjs +1 -1
  170. package/dist/cjs/components/management/shared/useAdminPartStyles.cjs.map +1 -0
  171. package/dist/cjs/components/{admin → management}/shared/useDefaultOuId.cjs +1 -1
  172. package/dist/cjs/components/management/shared/useDefaultOuId.cjs.map +1 -0
  173. package/dist/cjs/components/management/shared/useProjectPlacement.cjs +23 -0
  174. package/dist/cjs/components/management/shared/useProjectPlacement.cjs.map +1 -0
  175. package/dist/cjs/contexts/ComponentRenderer/ComponentRendererContext.cjs.map +1 -1
  176. package/dist/cjs/contexts/ThunderID/ThunderIDContext.cjs +5 -0
  177. package/dist/cjs/contexts/ThunderID/ThunderIDContext.cjs.map +1 -1
  178. package/dist/cjs/contexts/ThunderID/ThunderIDProvider.cjs +41 -1
  179. package/dist/cjs/contexts/ThunderID/ThunderIDProvider.cjs.map +1 -1
  180. package/dist/cjs/contexts/ThunderID/useCurrentProjectState.cjs +33 -0
  181. package/dist/cjs/contexts/ThunderID/useCurrentProjectState.cjs.map +1 -0
  182. package/dist/cjs/hooks/management/useManagementEndpoint.cjs.map +1 -1
  183. package/dist/cjs/index.cjs +407 -33
  184. package/dist/cjs/utils/flowTransformer.cjs +9 -0
  185. package/dist/cjs/utils/flowTransformer.cjs.map +1 -1
  186. package/dist/cjs/utils/getOrganizationUnitSwitchErrorKey.cjs +24 -0
  187. package/dist/cjs/utils/getOrganizationUnitSwitchErrorKey.cjs.map +1 -0
  188. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.d.ts +85 -0
  189. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.d.ts.map +1 -0
  190. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.js +209 -0
  191. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.js.map +1 -0
  192. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.d.ts +11 -0
  193. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.d.ts.map +1 -0
  194. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.js +184 -0
  195. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.js.map +1 -0
  196. package/dist/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.d.ts +54 -0
  197. package/dist/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.d.ts.map +1 -0
  198. package/dist/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.js +135 -0
  199. package/dist/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.js.map +1 -0
  200. package/dist/components/account/UserProfile/BaseUserProfile.d.ts +27 -1
  201. package/dist/components/account/UserProfile/BaseUserProfile.d.ts.map +1 -1
  202. package/dist/components/account/UserProfile/BaseUserProfile.js +197 -48
  203. package/dist/components/account/UserProfile/BaseUserProfile.js.map +1 -1
  204. package/dist/components/account/UserProfile/BaseUserProfile.styles.d.ts.map +1 -1
  205. package/dist/components/account/UserProfile/BaseUserProfile.styles.js +57 -4
  206. package/dist/components/account/UserProfile/BaseUserProfile.styles.js.map +1 -1
  207. package/dist/components/account/UserProfile/UserProfile.d.ts +7 -1
  208. package/dist/components/account/UserProfile/UserProfile.d.ts.map +1 -1
  209. package/dist/components/account/UserProfile/UserProfile.js +14 -2
  210. package/dist/components/account/UserProfile/UserProfile.js.map +1 -1
  211. package/dist/components/account/VerifyAttribute/BaseVerifyAttribute.d.ts +113 -0
  212. package/dist/components/account/VerifyAttribute/BaseVerifyAttribute.d.ts.map +1 -0
  213. package/dist/components/account/VerifyAttribute/BaseVerifyAttribute.js +354 -0
  214. package/dist/components/account/VerifyAttribute/BaseVerifyAttribute.js.map +1 -0
  215. package/dist/components/account/VerifyAttribute/BaseVerifyAttribute.styles.d.ts +10 -0
  216. package/dist/components/account/VerifyAttribute/BaseVerifyAttribute.styles.d.ts.map +1 -0
  217. package/dist/components/account/VerifyAttribute/BaseVerifyAttribute.styles.js +82 -0
  218. package/dist/components/account/VerifyAttribute/BaseVerifyAttribute.styles.js.map +1 -0
  219. package/dist/components/account/VerifyAttribute/VerifyAttribute.d.ts +41 -0
  220. package/dist/components/account/VerifyAttribute/VerifyAttribute.d.ts.map +1 -0
  221. package/dist/components/account/VerifyAttribute/VerifyAttribute.js +90 -0
  222. package/dist/components/account/VerifyAttribute/VerifyAttribute.js.map +1 -0
  223. package/dist/components/auth/SignIn/SignIn.d.ts +5 -0
  224. package/dist/components/auth/SignIn/SignIn.d.ts.map +1 -1
  225. package/dist/components/auth/SignIn/SignIn.js +25 -22
  226. package/dist/components/auth/SignIn/SignIn.js.map +1 -1
  227. package/dist/components/auth/SignUp/BaseSignUp.d.ts.map +1 -1
  228. package/dist/components/auth/SignUp/BaseSignUp.js +14 -10
  229. package/dist/components/auth/SignUp/BaseSignUp.js.map +1 -1
  230. package/dist/components/auth/flow/AuthOptionFactory.d.ts +5 -1
  231. package/dist/components/auth/flow/AuthOptionFactory.d.ts.map +1 -1
  232. package/dist/components/auth/flow/AuthOptionFactory.js +22 -3
  233. package/dist/components/auth/flow/AuthOptionFactory.js.map +1 -1
  234. package/dist/components/common/LanguageSwitcher/BaseLanguageSwitcher.js +1 -1
  235. package/dist/components/{admin → management}/AgentCreate/AgentCreate.d.ts +2 -1
  236. package/dist/components/management/AgentCreate/AgentCreate.d.ts.map +1 -0
  237. package/dist/components/{admin → management}/AgentCreate/AgentCreate.js +8 -7
  238. package/dist/components/management/AgentCreate/AgentCreate.js.map +1 -0
  239. package/dist/components/management/AgentCreate/BaseAgentCreate.d.ts.map +1 -0
  240. package/dist/components/{admin → management}/AgentCreate/BaseAgentCreate.js +1 -1
  241. package/dist/components/management/AgentCreate/BaseAgentCreate.js.map +1 -0
  242. package/dist/components/management/AgentDetails/AgentDetails.d.ts.map +1 -0
  243. package/dist/components/{admin → management}/AgentDetails/AgentDetails.js +1 -1
  244. package/dist/components/management/AgentDetails/AgentDetails.js.map +1 -0
  245. package/dist/components/management/AgentDetails/BaseAgentDetails.d.ts.map +1 -0
  246. package/dist/components/{admin → management}/AgentDetails/BaseAgentDetails.js +1 -1
  247. package/dist/components/management/AgentDetails/BaseAgentDetails.js.map +1 -0
  248. package/dist/components/{admin → management}/AgentList/AgentList.d.ts +7 -1
  249. package/dist/components/management/AgentList/AgentList.d.ts.map +1 -0
  250. package/dist/components/{admin → management}/AgentList/AgentList.js +11 -6
  251. package/dist/components/management/AgentList/AgentList.js.map +1 -0
  252. package/dist/components/management/AgentList/BaseAgentList.d.ts.map +1 -0
  253. package/dist/components/{admin → management}/AgentList/BaseAgentList.js +1 -1
  254. package/dist/components/management/AgentList/BaseAgentList.js.map +1 -0
  255. package/dist/components/{admin → management}/ApplicationCreate/ApplicationCreate.d.ts +2 -1
  256. package/dist/components/management/ApplicationCreate/ApplicationCreate.d.ts.map +1 -0
  257. package/dist/components/{admin → management}/ApplicationCreate/ApplicationCreate.js +10 -5
  258. package/dist/components/management/ApplicationCreate/ApplicationCreate.js.map +1 -0
  259. package/dist/components/management/ApplicationCreate/BaseApplicationCreate.d.ts.map +1 -0
  260. package/dist/components/{admin → management}/ApplicationCreate/BaseApplicationCreate.js +1 -1
  261. package/dist/components/management/ApplicationCreate/BaseApplicationCreate.js.map +1 -0
  262. package/dist/components/management/ApplicationDetails/ApplicationDetails.d.ts.map +1 -0
  263. package/dist/components/{admin → management}/ApplicationDetails/ApplicationDetails.js +1 -1
  264. package/dist/components/management/ApplicationDetails/ApplicationDetails.js.map +1 -0
  265. package/dist/components/management/ApplicationDetails/BaseApplicationDetails.d.ts.map +1 -0
  266. package/dist/components/{admin → management}/ApplicationDetails/BaseApplicationDetails.js +1 -1
  267. package/dist/components/management/ApplicationDetails/BaseApplicationDetails.js.map +1 -0
  268. package/dist/components/{admin → management}/ApplicationList/ApplicationList.d.ts +7 -1
  269. package/dist/components/management/ApplicationList/ApplicationList.d.ts.map +1 -0
  270. package/dist/components/{admin → management}/ApplicationList/ApplicationList.js +9 -4
  271. package/dist/components/management/ApplicationList/ApplicationList.js.map +1 -0
  272. package/dist/components/management/ApplicationList/BaseApplicationList.d.ts.map +1 -0
  273. package/dist/components/{admin → management}/ApplicationList/BaseApplicationList.js +1 -1
  274. package/dist/components/management/ApplicationList/BaseApplicationList.js.map +1 -0
  275. package/dist/components/management/GroupCreate/BaseGroupCreate.d.ts.map +1 -0
  276. package/dist/components/{admin → management}/GroupCreate/BaseGroupCreate.js +1 -1
  277. package/dist/components/management/GroupCreate/BaseGroupCreate.js.map +1 -0
  278. package/dist/components/management/GroupCreate/GroupCreate.d.ts.map +1 -0
  279. package/dist/components/{admin → management}/GroupCreate/GroupCreate.js +1 -1
  280. package/dist/components/management/GroupCreate/GroupCreate.js.map +1 -0
  281. package/dist/components/management/GroupDetails/BaseGroupDetails.d.ts +47 -0
  282. package/dist/components/management/GroupDetails/BaseGroupDetails.d.ts.map +1 -0
  283. package/dist/components/management/GroupDetails/BaseGroupDetails.js +84 -0
  284. package/dist/components/management/GroupDetails/BaseGroupDetails.js.map +1 -0
  285. package/dist/components/management/GroupDetails/GroupDetails.d.ts +37 -0
  286. package/dist/components/management/GroupDetails/GroupDetails.d.ts.map +1 -0
  287. package/dist/components/management/GroupDetails/GroupDetails.js +57 -0
  288. package/dist/components/management/GroupDetails/GroupDetails.js.map +1 -0
  289. package/dist/components/management/GroupList/BaseGroupList.d.ts.map +1 -0
  290. package/dist/components/{admin → management}/GroupList/BaseGroupList.js +1 -1
  291. package/dist/components/management/GroupList/BaseGroupList.js.map +1 -0
  292. package/dist/components/management/GroupList/GroupList.d.ts.map +1 -0
  293. package/dist/components/{admin → management}/GroupList/GroupList.js +1 -1
  294. package/dist/components/management/GroupList/GroupList.js.map +1 -0
  295. package/dist/components/management/GroupMembers/BaseGroupMembers.d.ts.map +1 -0
  296. package/dist/components/{admin → management}/GroupMembers/BaseGroupMembers.js +1 -1
  297. package/dist/components/management/GroupMembers/BaseGroupMembers.js.map +1 -0
  298. package/dist/components/management/GroupMembers/GroupMembers.d.ts.map +1 -0
  299. package/dist/components/{admin → management}/GroupMembers/GroupMembers.js +1 -1
  300. package/dist/components/management/GroupMembers/GroupMembers.js.map +1 -0
  301. package/dist/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.d.ts +85 -0
  302. package/dist/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.d.ts.map +1 -0
  303. package/dist/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.js +137 -0
  304. package/dist/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.js.map +1 -0
  305. package/dist/components/management/OrganizationUnitCreate/OrganizationUnitCreate.d.ts +21 -0
  306. package/dist/components/management/OrganizationUnitCreate/OrganizationUnitCreate.d.ts.map +1 -0
  307. package/dist/components/management/OrganizationUnitCreate/OrganizationUnitCreate.js +79 -0
  308. package/dist/components/management/OrganizationUnitCreate/OrganizationUnitCreate.js.map +1 -0
  309. package/dist/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.d.ts +105 -0
  310. package/dist/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.d.ts.map +1 -0
  311. package/dist/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.js +273 -0
  312. package/dist/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.js.map +1 -0
  313. package/dist/components/management/OrganizationUnitDetails/OrganizationUnitDetails.d.ts +42 -0
  314. package/dist/components/management/OrganizationUnitDetails/OrganizationUnitDetails.d.ts.map +1 -0
  315. package/dist/components/management/OrganizationUnitDetails/OrganizationUnitDetails.js +139 -0
  316. package/dist/components/management/OrganizationUnitDetails/OrganizationUnitDetails.js.map +1 -0
  317. package/dist/components/management/OrganizationUnitList/BaseOrganizationUnitList.d.ts +54 -0
  318. package/dist/components/management/OrganizationUnitList/BaseOrganizationUnitList.d.ts.map +1 -0
  319. package/dist/components/management/OrganizationUnitList/BaseOrganizationUnitList.js +76 -0
  320. package/dist/components/management/OrganizationUnitList/BaseOrganizationUnitList.js.map +1 -0
  321. package/dist/components/management/OrganizationUnitList/OrganizationUnitList.d.ts +19 -0
  322. package/dist/components/management/OrganizationUnitList/OrganizationUnitList.d.ts.map +1 -0
  323. package/dist/components/management/OrganizationUnitList/OrganizationUnitList.js +65 -0
  324. package/dist/components/management/OrganizationUnitList/OrganizationUnitList.js.map +1 -0
  325. package/dist/components/management/ProjectCreate/BaseProjectCreate.d.ts +60 -0
  326. package/dist/components/management/ProjectCreate/BaseProjectCreate.d.ts.map +1 -0
  327. package/dist/components/management/ProjectCreate/BaseProjectCreate.js +113 -0
  328. package/dist/components/management/ProjectCreate/BaseProjectCreate.js.map +1 -0
  329. package/dist/components/management/ProjectCreate/ProjectCreate.d.ts +20 -0
  330. package/dist/components/management/ProjectCreate/ProjectCreate.d.ts.map +1 -0
  331. package/dist/components/management/ProjectCreate/ProjectCreate.js +40 -0
  332. package/dist/components/management/ProjectCreate/ProjectCreate.js.map +1 -0
  333. package/dist/components/management/ProjectDetails/BaseProjectDetails.d.ts +60 -0
  334. package/dist/components/management/ProjectDetails/BaseProjectDetails.d.ts.map +1 -0
  335. package/dist/components/management/ProjectDetails/BaseProjectDetails.js +169 -0
  336. package/dist/components/management/ProjectDetails/BaseProjectDetails.js.map +1 -0
  337. package/dist/components/management/ProjectDetails/ProjectDetails.d.ts +36 -0
  338. package/dist/components/management/ProjectDetails/ProjectDetails.d.ts.map +1 -0
  339. package/dist/components/management/ProjectDetails/ProjectDetails.js +65 -0
  340. package/dist/components/management/ProjectDetails/ProjectDetails.js.map +1 -0
  341. package/dist/components/management/ProjectList/BaseProjectList.d.ts +53 -0
  342. package/dist/components/management/ProjectList/BaseProjectList.d.ts.map +1 -0
  343. package/dist/components/management/ProjectList/BaseProjectList.js +76 -0
  344. package/dist/components/management/ProjectList/BaseProjectList.js.map +1 -0
  345. package/dist/components/management/ProjectList/ProjectList.d.ts +14 -0
  346. package/dist/components/management/ProjectList/ProjectList.d.ts.map +1 -0
  347. package/dist/components/management/ProjectList/ProjectList.js +47 -0
  348. package/dist/components/management/ProjectList/ProjectList.js.map +1 -0
  349. package/dist/components/management/ProjectSwitcher/BaseProjectSwitcher.d.ts +69 -0
  350. package/dist/components/management/ProjectSwitcher/BaseProjectSwitcher.d.ts.map +1 -0
  351. package/dist/components/management/ProjectSwitcher/BaseProjectSwitcher.js +55 -0
  352. package/dist/components/management/ProjectSwitcher/BaseProjectSwitcher.js.map +1 -0
  353. package/dist/components/management/ProjectSwitcher/ProjectSwitcher.d.ts +25 -0
  354. package/dist/components/management/ProjectSwitcher/ProjectSwitcher.d.ts.map +1 -0
  355. package/dist/components/management/ProjectSwitcher/ProjectSwitcher.js +68 -0
  356. package/dist/components/management/ProjectSwitcher/ProjectSwitcher.js.map +1 -0
  357. package/dist/components/management/RoleAssignments/BaseRoleAssignments.d.ts.map +1 -0
  358. package/dist/components/{admin → management}/RoleAssignments/BaseRoleAssignments.js +1 -1
  359. package/dist/components/management/RoleAssignments/BaseRoleAssignments.js.map +1 -0
  360. package/dist/components/management/RoleAssignments/RoleAssignments.d.ts.map +1 -0
  361. package/dist/components/{admin → management}/RoleAssignments/RoleAssignments.js +1 -1
  362. package/dist/components/management/RoleAssignments/RoleAssignments.js.map +1 -0
  363. package/dist/components/management/RoleCreate/BaseRoleCreate.d.ts.map +1 -0
  364. package/dist/components/{admin → management}/RoleCreate/BaseRoleCreate.js +1 -1
  365. package/dist/components/management/RoleCreate/BaseRoleCreate.js.map +1 -0
  366. package/dist/components/management/RoleCreate/RoleCreate.d.ts.map +1 -0
  367. package/dist/components/{admin → management}/RoleCreate/RoleCreate.js +1 -1
  368. package/dist/components/management/RoleCreate/RoleCreate.js.map +1 -0
  369. package/dist/components/management/RoleDetails/BaseRoleDetails.d.ts +51 -0
  370. package/dist/components/management/RoleDetails/BaseRoleDetails.d.ts.map +1 -0
  371. package/dist/components/management/RoleDetails/BaseRoleDetails.js +85 -0
  372. package/dist/components/management/RoleDetails/BaseRoleDetails.js.map +1 -0
  373. package/dist/components/management/RoleDetails/RoleDetails.d.ts +39 -0
  374. package/dist/components/management/RoleDetails/RoleDetails.d.ts.map +1 -0
  375. package/dist/components/management/RoleDetails/RoleDetails.js +65 -0
  376. package/dist/components/management/RoleDetails/RoleDetails.js.map +1 -0
  377. package/dist/components/management/RoleList/BaseRoleList.d.ts.map +1 -0
  378. package/dist/components/{admin → management}/RoleList/BaseRoleList.js +1 -1
  379. package/dist/components/management/RoleList/BaseRoleList.js.map +1 -0
  380. package/dist/components/management/RoleList/RoleList.d.ts.map +1 -0
  381. package/dist/components/{admin → management}/RoleList/RoleList.js +1 -1
  382. package/dist/components/management/RoleList/RoleList.js.map +1 -0
  383. package/dist/components/management/RolePermissions/BaseRolePermissions.d.ts +104 -0
  384. package/dist/components/management/RolePermissions/BaseRolePermissions.d.ts.map +1 -0
  385. package/dist/components/management/RolePermissions/BaseRolePermissions.js +178 -0
  386. package/dist/components/management/RolePermissions/BaseRolePermissions.js.map +1 -0
  387. package/dist/components/management/RolePermissions/RolePermissions.d.ts +29 -0
  388. package/dist/components/management/RolePermissions/RolePermissions.d.ts.map +1 -0
  389. package/dist/components/management/RolePermissions/RolePermissions.js +108 -0
  390. package/dist/components/management/RolePermissions/RolePermissions.js.map +1 -0
  391. package/dist/components/management/SharingPolicies/BaseSharingPolicies.d.ts +124 -0
  392. package/dist/components/management/SharingPolicies/BaseSharingPolicies.d.ts.map +1 -0
  393. package/dist/components/management/SharingPolicies/BaseSharingPolicies.js +304 -0
  394. package/dist/components/management/SharingPolicies/BaseSharingPolicies.js.map +1 -0
  395. package/dist/components/management/SharingPolicies/SharingPolicies.d.ts +36 -0
  396. package/dist/components/management/SharingPolicies/SharingPolicies.d.ts.map +1 -0
  397. package/dist/components/management/SharingPolicies/SharingPolicies.js +122 -0
  398. package/dist/components/management/SharingPolicies/SharingPolicies.js.map +1 -0
  399. package/dist/components/management/UserCreate/BaseUserCreate.d.ts.map +1 -0
  400. package/dist/components/{admin → management}/UserCreate/BaseUserCreate.js +1 -1
  401. package/dist/components/management/UserCreate/BaseUserCreate.js.map +1 -0
  402. package/dist/components/management/UserCreate/UserCreate.d.ts.map +1 -0
  403. package/dist/components/{admin → management}/UserCreate/UserCreate.js +1 -1
  404. package/dist/components/management/UserCreate/UserCreate.js.map +1 -0
  405. package/dist/components/management/UserCreate/userCreateFields.d.ts.map +1 -0
  406. package/dist/components/{admin → management}/UserCreate/userCreateFields.js +1 -1
  407. package/dist/components/management/UserCreate/userCreateFields.js.map +1 -0
  408. package/dist/components/management/UserDetails/BaseUserDetails.d.ts.map +1 -0
  409. package/dist/components/{admin → management}/UserDetails/BaseUserDetails.js +1 -1
  410. package/dist/components/management/UserDetails/BaseUserDetails.js.map +1 -0
  411. package/dist/components/management/UserDetails/UserDetails.d.ts.map +1 -0
  412. package/dist/components/{admin → management}/UserDetails/UserDetails.js +1 -1
  413. package/dist/components/management/UserDetails/UserDetails.js.map +1 -0
  414. package/dist/components/management/UserList/BaseUserList.d.ts.map +1 -0
  415. package/dist/components/{admin → management}/UserList/BaseUserList.js +1 -1
  416. package/dist/components/management/UserList/BaseUserList.js.map +1 -0
  417. package/dist/components/management/UserList/UserList.d.ts.map +1 -0
  418. package/dist/components/{admin → management}/UserList/UserList.js +1 -1
  419. package/dist/components/management/UserList/UserList.js.map +1 -0
  420. package/dist/components/management/shared/AccountLifecycleParts.d.ts.map +1 -0
  421. package/dist/components/{admin → management}/shared/AccountLifecycleParts.js +1 -1
  422. package/dist/components/management/shared/AccountLifecycleParts.js.map +1 -0
  423. package/dist/components/management/shared/AdminListRenderProps.d.ts.map +1 -0
  424. package/dist/components/management/shared/AdminParts.d.ts.map +1 -0
  425. package/dist/components/{admin → management}/shared/AdminParts.js +1 -1
  426. package/dist/components/management/shared/AdminParts.js.map +1 -0
  427. package/dist/components/management/shared/AdminParts.styles.d.ts.map +1 -0
  428. package/dist/components/{admin → management}/shared/AdminParts.styles.js +1 -1
  429. package/dist/components/management/shared/AdminParts.styles.js.map +1 -0
  430. package/dist/components/management/shared/AdminSearch.d.ts.map +1 -0
  431. package/dist/components/{admin → management}/shared/AdminSearch.js +1 -1
  432. package/dist/components/management/shared/AdminSearch.js.map +1 -0
  433. package/dist/components/management/shared/AdminSection.d.ts.map +1 -0
  434. package/dist/components/{admin → management}/shared/AdminSection.js +1 -1
  435. package/dist/components/management/shared/AdminSection.js.map +1 -0
  436. package/dist/components/management/shared/AdminSection.styles.d.ts.map +1 -0
  437. package/dist/components/{admin → management}/shared/AdminSection.styles.js +1 -1
  438. package/dist/components/management/shared/AdminSection.styles.js.map +1 -0
  439. package/dist/components/management/shared/ApplicationFormFields.d.ts.map +1 -0
  440. package/dist/components/{admin → management}/shared/ApplicationFormFields.js +1 -1
  441. package/dist/components/management/shared/ApplicationFormFields.js.map +1 -0
  442. package/dist/components/management/shared/ClientSecretNotice.d.ts.map +1 -0
  443. package/dist/components/{admin → management}/shared/ClientSecretNotice.js +1 -1
  444. package/dist/components/management/shared/ClientSecretNotice.js.map +1 -0
  445. package/dist/components/management/shared/IdentityPicker.d.ts.map +1 -0
  446. package/dist/components/{admin → management}/shared/IdentityPicker.js +1 -1
  447. package/dist/components/management/shared/IdentityPicker.js.map +1 -0
  448. package/dist/components/management/shared/formatTimestamp.d.ts +9 -0
  449. package/dist/components/management/shared/formatTimestamp.d.ts.map +1 -0
  450. package/dist/components/management/shared/formatTimestamp.js +17 -0
  451. package/dist/components/management/shared/formatTimestamp.js.map +1 -0
  452. package/dist/components/management/shared/useAdminPartStyles.d.ts.map +1 -0
  453. package/dist/components/{admin → management}/shared/useAdminPartStyles.js +1 -1
  454. package/dist/components/management/shared/useAdminPartStyles.js.map +1 -0
  455. package/dist/components/management/shared/useDefaultOuId.d.ts.map +1 -0
  456. package/dist/components/{admin → management}/shared/useDefaultOuId.js +1 -1
  457. package/dist/components/management/shared/useDefaultOuId.js.map +1 -0
  458. package/dist/components/management/shared/useProjectPlacement.d.ts +26 -0
  459. package/dist/components/management/shared/useProjectPlacement.d.ts.map +1 -0
  460. package/dist/components/management/shared/useProjectPlacement.js +23 -0
  461. package/dist/components/management/shared/useProjectPlacement.js.map +1 -0
  462. package/dist/contexts/ComponentRenderer/ComponentRendererContext.d.ts +1 -1
  463. package/dist/contexts/ComponentRenderer/ComponentRendererContext.d.ts.map +1 -1
  464. package/dist/contexts/ComponentRenderer/ComponentRendererContext.js.map +1 -1
  465. package/dist/contexts/ThunderID/ThunderIDContext.d.ts +27 -1
  466. package/dist/contexts/ThunderID/ThunderIDContext.d.ts.map +1 -1
  467. package/dist/contexts/ThunderID/ThunderIDContext.js +5 -0
  468. package/dist/contexts/ThunderID/ThunderIDContext.js.map +1 -1
  469. package/dist/contexts/ThunderID/ThunderIDProvider.d.ts.map +1 -1
  470. package/dist/contexts/ThunderID/ThunderIDProvider.js +42 -2
  471. package/dist/contexts/ThunderID/ThunderIDProvider.js.map +1 -1
  472. package/dist/contexts/ThunderID/useCurrentProjectState.d.ts +26 -0
  473. package/dist/contexts/ThunderID/useCurrentProjectState.d.ts.map +1 -0
  474. package/dist/contexts/ThunderID/useCurrentProjectState.js +30 -0
  475. package/dist/contexts/ThunderID/useCurrentProjectState.js.map +1 -0
  476. package/dist/hooks/management/useManagementEndpoint.d.ts +1 -1
  477. package/dist/hooks/management/useManagementEndpoint.d.ts.map +1 -1
  478. package/dist/hooks/management/useManagementEndpoint.js.map +1 -1
  479. package/dist/index.d.ts +127 -70
  480. package/dist/index.d.ts.map +1 -1
  481. package/dist/index.js +62 -34
  482. package/dist/utils/flowTransformer.d.ts +7 -0
  483. package/dist/utils/flowTransformer.d.ts.map +1 -1
  484. package/dist/utils/flowTransformer.js +9 -1
  485. package/dist/utils/flowTransformer.js.map +1 -1
  486. package/dist/utils/getOrganizationUnitSwitchErrorKey.d.ts +11 -0
  487. package/dist/utils/getOrganizationUnitSwitchErrorKey.d.ts.map +1 -0
  488. package/dist/utils/getOrganizationUnitSwitchErrorKey.js +22 -0
  489. package/dist/utils/getOrganizationUnitSwitchErrorKey.js.map +1 -0
  490. package/package.json +2 -2
  491. package/dist/cjs/components/admin/AgentCreate/AgentCreate.cjs.map +0 -1
  492. package/dist/cjs/components/admin/AgentCreate/BaseAgentCreate.cjs.map +0 -1
  493. package/dist/cjs/components/admin/AgentDetails/AgentDetails.cjs.map +0 -1
  494. package/dist/cjs/components/admin/AgentDetails/BaseAgentDetails.cjs.map +0 -1
  495. package/dist/cjs/components/admin/AgentList/AgentList.cjs.map +0 -1
  496. package/dist/cjs/components/admin/AgentList/BaseAgentList.cjs.map +0 -1
  497. package/dist/cjs/components/admin/ApplicationCreate/ApplicationCreate.cjs.map +0 -1
  498. package/dist/cjs/components/admin/ApplicationCreate/BaseApplicationCreate.cjs.map +0 -1
  499. package/dist/cjs/components/admin/ApplicationDetails/ApplicationDetails.cjs.map +0 -1
  500. package/dist/cjs/components/admin/ApplicationDetails/BaseApplicationDetails.cjs.map +0 -1
  501. package/dist/cjs/components/admin/ApplicationList/ApplicationList.cjs.map +0 -1
  502. package/dist/cjs/components/admin/ApplicationList/BaseApplicationList.cjs.map +0 -1
  503. package/dist/cjs/components/admin/GroupCreate/BaseGroupCreate.cjs.map +0 -1
  504. package/dist/cjs/components/admin/GroupCreate/GroupCreate.cjs.map +0 -1
  505. package/dist/cjs/components/admin/GroupList/BaseGroupList.cjs.map +0 -1
  506. package/dist/cjs/components/admin/GroupList/GroupList.cjs.map +0 -1
  507. package/dist/cjs/components/admin/GroupMembers/BaseGroupMembers.cjs.map +0 -1
  508. package/dist/cjs/components/admin/GroupMembers/GroupMembers.cjs.map +0 -1
  509. package/dist/cjs/components/admin/RoleAssignments/BaseRoleAssignments.cjs.map +0 -1
  510. package/dist/cjs/components/admin/RoleAssignments/RoleAssignments.cjs.map +0 -1
  511. package/dist/cjs/components/admin/RoleCreate/BaseRoleCreate.cjs.map +0 -1
  512. package/dist/cjs/components/admin/RoleCreate/RoleCreate.cjs.map +0 -1
  513. package/dist/cjs/components/admin/RoleList/BaseRoleList.cjs.map +0 -1
  514. package/dist/cjs/components/admin/RoleList/RoleList.cjs.map +0 -1
  515. package/dist/cjs/components/admin/RolePermissions/BaseRolePermissions.cjs +0 -69
  516. package/dist/cjs/components/admin/RolePermissions/BaseRolePermissions.cjs.map +0 -1
  517. package/dist/cjs/components/admin/RolePermissions/RolePermissions.cjs +0 -40
  518. package/dist/cjs/components/admin/RolePermissions/RolePermissions.cjs.map +0 -1
  519. package/dist/cjs/components/admin/UserCreate/BaseUserCreate.cjs.map +0 -1
  520. package/dist/cjs/components/admin/UserCreate/UserCreate.cjs.map +0 -1
  521. package/dist/cjs/components/admin/UserCreate/userCreateFields.cjs.map +0 -1
  522. package/dist/cjs/components/admin/UserDetails/BaseUserDetails.cjs.map +0 -1
  523. package/dist/cjs/components/admin/UserDetails/UserDetails.cjs.map +0 -1
  524. package/dist/cjs/components/admin/UserList/BaseUserList.cjs.map +0 -1
  525. package/dist/cjs/components/admin/UserList/UserList.cjs.map +0 -1
  526. package/dist/cjs/components/admin/shared/AccountLifecycleParts.cjs.map +0 -1
  527. package/dist/cjs/components/admin/shared/AdminParts.cjs.map +0 -1
  528. package/dist/cjs/components/admin/shared/AdminParts.styles.cjs.map +0 -1
  529. package/dist/cjs/components/admin/shared/AdminSearch.cjs.map +0 -1
  530. package/dist/cjs/components/admin/shared/AdminSection.cjs.map +0 -1
  531. package/dist/cjs/components/admin/shared/AdminSection.styles.cjs.map +0 -1
  532. package/dist/cjs/components/admin/shared/ApplicationFormFields.cjs.map +0 -1
  533. package/dist/cjs/components/admin/shared/ClientSecretNotice.cjs.map +0 -1
  534. package/dist/cjs/components/admin/shared/IdentityPicker.cjs.map +0 -1
  535. package/dist/cjs/components/admin/shared/useAdminPartStyles.cjs.map +0 -1
  536. package/dist/cjs/components/admin/shared/useDefaultOuId.cjs.map +0 -1
  537. package/dist/components/admin/AgentCreate/AgentCreate.d.ts.map +0 -1
  538. package/dist/components/admin/AgentCreate/AgentCreate.js.map +0 -1
  539. package/dist/components/admin/AgentCreate/BaseAgentCreate.d.ts.map +0 -1
  540. package/dist/components/admin/AgentCreate/BaseAgentCreate.js.map +0 -1
  541. package/dist/components/admin/AgentDetails/AgentDetails.d.ts.map +0 -1
  542. package/dist/components/admin/AgentDetails/AgentDetails.js.map +0 -1
  543. package/dist/components/admin/AgentDetails/BaseAgentDetails.d.ts.map +0 -1
  544. package/dist/components/admin/AgentDetails/BaseAgentDetails.js.map +0 -1
  545. package/dist/components/admin/AgentList/AgentList.d.ts.map +0 -1
  546. package/dist/components/admin/AgentList/AgentList.js.map +0 -1
  547. package/dist/components/admin/AgentList/BaseAgentList.d.ts.map +0 -1
  548. package/dist/components/admin/AgentList/BaseAgentList.js.map +0 -1
  549. package/dist/components/admin/ApplicationCreate/ApplicationCreate.d.ts.map +0 -1
  550. package/dist/components/admin/ApplicationCreate/ApplicationCreate.js.map +0 -1
  551. package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.d.ts.map +0 -1
  552. package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.js.map +0 -1
  553. package/dist/components/admin/ApplicationDetails/ApplicationDetails.d.ts.map +0 -1
  554. package/dist/components/admin/ApplicationDetails/ApplicationDetails.js.map +0 -1
  555. package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.d.ts.map +0 -1
  556. package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.js.map +0 -1
  557. package/dist/components/admin/ApplicationList/ApplicationList.d.ts.map +0 -1
  558. package/dist/components/admin/ApplicationList/ApplicationList.js.map +0 -1
  559. package/dist/components/admin/ApplicationList/BaseApplicationList.d.ts.map +0 -1
  560. package/dist/components/admin/ApplicationList/BaseApplicationList.js.map +0 -1
  561. package/dist/components/admin/GroupCreate/BaseGroupCreate.d.ts.map +0 -1
  562. package/dist/components/admin/GroupCreate/BaseGroupCreate.js.map +0 -1
  563. package/dist/components/admin/GroupCreate/GroupCreate.d.ts.map +0 -1
  564. package/dist/components/admin/GroupCreate/GroupCreate.js.map +0 -1
  565. package/dist/components/admin/GroupList/BaseGroupList.d.ts.map +0 -1
  566. package/dist/components/admin/GroupList/BaseGroupList.js.map +0 -1
  567. package/dist/components/admin/GroupList/GroupList.d.ts.map +0 -1
  568. package/dist/components/admin/GroupList/GroupList.js.map +0 -1
  569. package/dist/components/admin/GroupMembers/BaseGroupMembers.d.ts.map +0 -1
  570. package/dist/components/admin/GroupMembers/BaseGroupMembers.js.map +0 -1
  571. package/dist/components/admin/GroupMembers/GroupMembers.d.ts.map +0 -1
  572. package/dist/components/admin/GroupMembers/GroupMembers.js.map +0 -1
  573. package/dist/components/admin/RoleAssignments/BaseRoleAssignments.d.ts.map +0 -1
  574. package/dist/components/admin/RoleAssignments/BaseRoleAssignments.js.map +0 -1
  575. package/dist/components/admin/RoleAssignments/RoleAssignments.d.ts.map +0 -1
  576. package/dist/components/admin/RoleAssignments/RoleAssignments.js.map +0 -1
  577. package/dist/components/admin/RoleCreate/BaseRoleCreate.d.ts.map +0 -1
  578. package/dist/components/admin/RoleCreate/BaseRoleCreate.js.map +0 -1
  579. package/dist/components/admin/RoleCreate/RoleCreate.d.ts.map +0 -1
  580. package/dist/components/admin/RoleCreate/RoleCreate.js.map +0 -1
  581. package/dist/components/admin/RoleList/BaseRoleList.d.ts.map +0 -1
  582. package/dist/components/admin/RoleList/BaseRoleList.js.map +0 -1
  583. package/dist/components/admin/RoleList/RoleList.d.ts.map +0 -1
  584. package/dist/components/admin/RoleList/RoleList.js.map +0 -1
  585. package/dist/components/admin/RolePermissions/BaseRolePermissions.d.ts +0 -42
  586. package/dist/components/admin/RolePermissions/BaseRolePermissions.d.ts.map +0 -1
  587. package/dist/components/admin/RolePermissions/BaseRolePermissions.js +0 -67
  588. package/dist/components/admin/RolePermissions/BaseRolePermissions.js.map +0 -1
  589. package/dist/components/admin/RolePermissions/RolePermissions.d.ts +0 -16
  590. package/dist/components/admin/RolePermissions/RolePermissions.d.ts.map +0 -1
  591. package/dist/components/admin/RolePermissions/RolePermissions.js +0 -37
  592. package/dist/components/admin/RolePermissions/RolePermissions.js.map +0 -1
  593. package/dist/components/admin/UserCreate/BaseUserCreate.d.ts.map +0 -1
  594. package/dist/components/admin/UserCreate/BaseUserCreate.js.map +0 -1
  595. package/dist/components/admin/UserCreate/UserCreate.d.ts.map +0 -1
  596. package/dist/components/admin/UserCreate/UserCreate.js.map +0 -1
  597. package/dist/components/admin/UserCreate/userCreateFields.d.ts.map +0 -1
  598. package/dist/components/admin/UserCreate/userCreateFields.js.map +0 -1
  599. package/dist/components/admin/UserDetails/BaseUserDetails.d.ts.map +0 -1
  600. package/dist/components/admin/UserDetails/BaseUserDetails.js.map +0 -1
  601. package/dist/components/admin/UserDetails/UserDetails.d.ts.map +0 -1
  602. package/dist/components/admin/UserDetails/UserDetails.js.map +0 -1
  603. package/dist/components/admin/UserList/BaseUserList.d.ts.map +0 -1
  604. package/dist/components/admin/UserList/BaseUserList.js.map +0 -1
  605. package/dist/components/admin/UserList/UserList.d.ts.map +0 -1
  606. package/dist/components/admin/UserList/UserList.js.map +0 -1
  607. package/dist/components/admin/shared/AccountLifecycleParts.d.ts.map +0 -1
  608. package/dist/components/admin/shared/AccountLifecycleParts.js.map +0 -1
  609. package/dist/components/admin/shared/AdminListRenderProps.d.ts.map +0 -1
  610. package/dist/components/admin/shared/AdminParts.d.ts.map +0 -1
  611. package/dist/components/admin/shared/AdminParts.js.map +0 -1
  612. package/dist/components/admin/shared/AdminParts.styles.d.ts.map +0 -1
  613. package/dist/components/admin/shared/AdminParts.styles.js.map +0 -1
  614. package/dist/components/admin/shared/AdminSearch.d.ts.map +0 -1
  615. package/dist/components/admin/shared/AdminSearch.js.map +0 -1
  616. package/dist/components/admin/shared/AdminSection.d.ts.map +0 -1
  617. package/dist/components/admin/shared/AdminSection.js.map +0 -1
  618. package/dist/components/admin/shared/AdminSection.styles.d.ts.map +0 -1
  619. package/dist/components/admin/shared/AdminSection.styles.js.map +0 -1
  620. package/dist/components/admin/shared/ApplicationFormFields.d.ts.map +0 -1
  621. package/dist/components/admin/shared/ApplicationFormFields.js.map +0 -1
  622. package/dist/components/admin/shared/ClientSecretNotice.d.ts.map +0 -1
  623. package/dist/components/admin/shared/ClientSecretNotice.js.map +0 -1
  624. package/dist/components/admin/shared/IdentityPicker.d.ts.map +0 -1
  625. package/dist/components/admin/shared/IdentityPicker.js.map +0 -1
  626. package/dist/components/admin/shared/useAdminPartStyles.d.ts.map +0 -1
  627. package/dist/components/admin/shared/useAdminPartStyles.js.map +0 -1
  628. package/dist/components/admin/shared/useDefaultOuId.d.ts.map +0 -1
  629. package/dist/components/admin/shared/useDefaultOuId.js.map +0 -1
  630. /package/dist/components/{admin → management}/AgentCreate/BaseAgentCreate.d.ts +0 -0
  631. /package/dist/components/{admin → management}/AgentDetails/AgentDetails.d.ts +0 -0
  632. /package/dist/components/{admin → management}/AgentDetails/BaseAgentDetails.d.ts +0 -0
  633. /package/dist/components/{admin → management}/AgentList/BaseAgentList.d.ts +0 -0
  634. /package/dist/components/{admin → management}/ApplicationCreate/BaseApplicationCreate.d.ts +0 -0
  635. /package/dist/components/{admin → management}/ApplicationDetails/ApplicationDetails.d.ts +0 -0
  636. /package/dist/components/{admin → management}/ApplicationDetails/BaseApplicationDetails.d.ts +0 -0
  637. /package/dist/components/{admin → management}/ApplicationList/BaseApplicationList.d.ts +0 -0
  638. /package/dist/components/{admin → management}/GroupCreate/BaseGroupCreate.d.ts +0 -0
  639. /package/dist/components/{admin → management}/GroupCreate/GroupCreate.d.ts +0 -0
  640. /package/dist/components/{admin → management}/GroupList/BaseGroupList.d.ts +0 -0
  641. /package/dist/components/{admin → management}/GroupList/GroupList.d.ts +0 -0
  642. /package/dist/components/{admin → management}/GroupMembers/BaseGroupMembers.d.ts +0 -0
  643. /package/dist/components/{admin → management}/GroupMembers/GroupMembers.d.ts +0 -0
  644. /package/dist/components/{admin → management}/RoleAssignments/BaseRoleAssignments.d.ts +0 -0
  645. /package/dist/components/{admin → management}/RoleAssignments/RoleAssignments.d.ts +0 -0
  646. /package/dist/components/{admin → management}/RoleCreate/BaseRoleCreate.d.ts +0 -0
  647. /package/dist/components/{admin → management}/RoleCreate/RoleCreate.d.ts +0 -0
  648. /package/dist/components/{admin → management}/RoleList/BaseRoleList.d.ts +0 -0
  649. /package/dist/components/{admin → management}/RoleList/RoleList.d.ts +0 -0
  650. /package/dist/components/{admin → management}/UserCreate/BaseUserCreate.d.ts +0 -0
  651. /package/dist/components/{admin → management}/UserCreate/UserCreate.d.ts +0 -0
  652. /package/dist/components/{admin → management}/UserCreate/userCreateFields.d.ts +0 -0
  653. /package/dist/components/{admin → management}/UserDetails/BaseUserDetails.d.ts +0 -0
  654. /package/dist/components/{admin → management}/UserDetails/UserDetails.d.ts +0 -0
  655. /package/dist/components/{admin → management}/UserList/BaseUserList.d.ts +0 -0
  656. /package/dist/components/{admin → management}/UserList/UserList.d.ts +0 -0
  657. /package/dist/components/{admin → management}/shared/AccountLifecycleParts.d.ts +0 -0
  658. /package/dist/components/{admin → management}/shared/AdminListRenderProps.d.ts +0 -0
  659. /package/dist/components/{admin → management}/shared/AdminParts.d.ts +0 -0
  660. /package/dist/components/{admin → management}/shared/AdminParts.styles.d.ts +0 -0
  661. /package/dist/components/{admin → management}/shared/AdminSearch.d.ts +0 -0
  662. /package/dist/components/{admin → management}/shared/AdminSection.d.ts +0 -0
  663. /package/dist/components/{admin → management}/shared/AdminSection.styles.d.ts +0 -0
  664. /package/dist/components/{admin → management}/shared/ApplicationFormFields.d.ts +0 -0
  665. /package/dist/components/{admin → management}/shared/ClientSecretNotice.d.ts +0 -0
  666. /package/dist/components/{admin → management}/shared/IdentityPicker.d.ts +0 -0
  667. /package/dist/components/{admin → management}/shared/useAdminPartStyles.d.ts +0 -0
  668. /package/dist/components/{admin → management}/shared/useDefaultOuId.d.ts +0 -0
@@ -0,0 +1,90 @@
1
+ import useThunderID_default from "../../../contexts/ThunderID/useThunderID.js";
2
+ import useUser_default from "../../../contexts/User/useUser.js";
3
+ import BaseVerifyAttribute_default from "./BaseVerifyAttribute.js";
4
+ import executeEmbeddedSelfFlow_default from "../../../api/auth/executeEmbeddedSelfFlow.js";
5
+ import { AttributeVerificationConstants, EmbeddedFlowType, ThunderIDRuntimeError, createPackageComponentLogger, isVerifiableAttribute, resolveResourceEndpoint, startCase } from "@thunderid/browser";
6
+ import { useCallback } from "react";
7
+ import { jsx } from "react/jsx-runtime";
8
+
9
+ //#region src/components/account/VerifyAttribute/VerifyAttribute.tsx
10
+ const logger$1 = createPackageComponentLogger("@thunderid/react", "VerifyAttribute");
11
+ /**
12
+ * VerifyAttribute verifies one of the signed-in user's attributes, such as their email address,
13
+ * by running a self attribute verification flow, named by `flowHandle`. The flow picks the email or
14
+ * mobile path from the attribute's type, sends a code or a link to the attribute's current value,
15
+ * and the component renders the steps it describes; for a link it shows a Done action that calls
16
+ * `onDone`. Every request carries the user's access token. Once the server records the verification,
17
+ * and when the user selects Done, it re-reads the user's profile so `useUser()` shows the new status.
18
+ *
19
+ * It waits for the user schema to load, and refuses an attribute the schema does not declare as an
20
+ * `email` or `mobile` property, since starting a verification sends a message.
21
+ *
22
+ * Mount it with a `key` per attribute: each mount starts a new verification and sends a new code
23
+ * or link.
24
+ *
25
+ * @example
26
+ * ```tsx
27
+ * <VerifyAttribute
28
+ * attribute="email"
29
+ * onComplete={() => setOpen(false)}
30
+ * onCancel={() => setOpen(false)}
31
+ * />
32
+ * ```
33
+ */
34
+ const VerifyAttribute = ({ attribute, attributeDisplayName, flowHandle = AttributeVerificationConstants.DEFAULT_FLOW_HANDLE, onComplete, onDone,...rest }) => {
35
+ const { baseUrl, endpoints, instanceId, isInitialized, isLoading } = useThunderID_default();
36
+ const { revalidateProfile, userSchema } = useUser_default();
37
+ const flowExecuteUrl = resolveResourceEndpoint("flowExecute", { endpoints }) ?? `${baseUrl}/flow/execute`;
38
+ const refreshProfile = useCallback(async () => {
39
+ try {
40
+ await revalidateProfile?.();
41
+ } catch (caughtError) {
42
+ logger$1.warn("Failed to re-read the user profile after verification:", caughtError);
43
+ }
44
+ }, [revalidateProfile]);
45
+ const handleComplete = useCallback((response) => {
46
+ refreshProfile();
47
+ onComplete?.(response);
48
+ }, [refreshProfile, onComplete]);
49
+ const handleDone = useCallback(() => {
50
+ refreshProfile();
51
+ onDone?.();
52
+ }, [refreshProfile, onDone]);
53
+ const execute = useCallback((payload) => executeEmbeddedSelfFlow_default({
54
+ baseUrl,
55
+ instanceId,
56
+ payload,
57
+ url: flowExecuteUrl
58
+ }), [
59
+ baseUrl,
60
+ flowExecuteUrl,
61
+ instanceId
62
+ ]);
63
+ const handleInitialize = useCallback(() => {
64
+ if (!isVerifiableAttribute(userSchema, attribute)) return Promise.reject(new ThunderIDRuntimeError(`Attribute "${attribute}" is not a verifiable email or mobile attribute.`, "VerifyAttribute-handleInitialize-RuntimeError-001", "react", "Only a top-level, single-valued email or mobile attribute of the user schema can be verified."));
65
+ return execute({
66
+ flowType: EmbeddedFlowType.Self,
67
+ handle: flowHandle,
68
+ inputs: { [AttributeVerificationConstants.ATTRIBUTE_INPUT]: attribute }
69
+ });
70
+ }, [
71
+ execute,
72
+ attribute,
73
+ flowHandle,
74
+ userSchema
75
+ ]);
76
+ return /* @__PURE__ */ jsx(BaseVerifyAttribute_default, {
77
+ ...rest,
78
+ attributeDisplayName: attributeDisplayName ?? userSchema?.[attribute]?.displayName ?? startCase(attribute),
79
+ isInitialized: isInitialized && !isLoading && userSchema !== null,
80
+ onInitialize: handleInitialize,
81
+ onSubmit: execute,
82
+ onComplete: handleComplete,
83
+ onDone: handleDone
84
+ });
85
+ };
86
+ var VerifyAttribute_default = VerifyAttribute;
87
+
88
+ //#endregion
89
+ export { VerifyAttribute_default as default };
90
+ //# sourceMappingURL=VerifyAttribute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerifyAttribute.js","names":["logger: ReturnType<typeof createPackageComponentLogger>","VerifyAttribute: FC<VerifyAttributeProps>","useThunderID","useUser","flowExecuteUrl: string","caughtError: unknown","executeEmbeddedSelfFlow","BaseVerifyAttribute"],"sources":["../../../../src/components/account/VerifyAttribute/VerifyAttribute.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AttributeVerificationConstants,\n EmbeddedFlowType,\n EmbeddedSelfFlowRequest,\n EmbeddedSelfFlowResponse,\n ThunderIDRuntimeError,\n createPackageComponentLogger,\n isVerifiableAttribute,\n resolveResourceEndpoint,\n startCase,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useCallback} from 'react';\nimport BaseVerifyAttribute, {BaseVerifyAttributeProps} from './BaseVerifyAttribute';\nimport executeEmbeddedSelfFlow from '../../../api/auth/executeEmbeddedSelfFlow';\nimport useThunderID from '../../../contexts/ThunderID/useThunderID';\nimport useUser from '../../../contexts/User/useUser';\n\nconst logger: ReturnType<typeof createPackageComponentLogger> = createPackageComponentLogger(\n '@thunderid/react',\n 'VerifyAttribute',\n);\n\nexport type VerifyAttributeProps = Omit<BaseVerifyAttributeProps, 'onInitialize' | 'onSubmit' | 'isInitialized'> & {\n /**\n * Name of the signed-in user's attribute to verify, such as `email`. Only a top-level, single-valued\n * `email` or `mobile` property of the user's schema can be verified; any other is refused without a\n * request, through `onError`, with `VerifyAttribute-handleInitialize-RuntimeError-001`.\n */\n attribute: string;\n /**\n * Handle of the `SELF` flow to run. Defaults to the server's shipped\n * `default-self-attribute-verification-flow`.\n */\n flowHandle?: string;\n};\n\n/**\n * VerifyAttribute verifies one of the signed-in user's attributes, such as their email address,\n * by running a self attribute verification flow, named by `flowHandle`. The flow picks the email or\n * mobile path from the attribute's type, sends a code or a link to the attribute's current value,\n * and the component renders the steps it describes; for a link it shows a Done action that calls\n * `onDone`. Every request carries the user's access token. Once the server records the verification,\n * and when the user selects Done, it re-reads the user's profile so `useUser()` shows the new status.\n *\n * It waits for the user schema to load, and refuses an attribute the schema does not declare as an\n * `email` or `mobile` property, since starting a verification sends a message.\n *\n * Mount it with a `key` per attribute: each mount starts a new verification and sends a new code\n * or link.\n *\n * @example\n * ```tsx\n * <VerifyAttribute\n * attribute=\"email\"\n * onComplete={() => setOpen(false)}\n * onCancel={() => setOpen(false)}\n * />\n * ```\n */\nconst VerifyAttribute: FC<VerifyAttributeProps> = ({\n attribute,\n attributeDisplayName,\n flowHandle = AttributeVerificationConstants.DEFAULT_FLOW_HANDLE,\n onComplete,\n onDone,\n ...rest\n}: VerifyAttributeProps): ReactElement => {\n const {baseUrl, endpoints, instanceId, isInitialized, isLoading} = useThunderID();\n const {revalidateProfile, userSchema} = useUser();\n\n const flowExecuteUrl: string = resolveResourceEndpoint('flowExecute', {endpoints}) ?? `${baseUrl}/flow/execute`;\n\n // Re-reads the profile so the recorded verification shows; a failure leaves it stale, not broken.\n const refreshProfile = useCallback(async (): Promise<void> => {\n try {\n await revalidateProfile?.();\n } catch (caughtError: unknown) {\n logger.warn('Failed to re-read the user profile after verification:', caughtError);\n }\n }, [revalidateProfile]);\n\n const handleComplete = useCallback(\n (response: EmbeddedSelfFlowResponse): void => {\n void refreshProfile();\n onComplete?.(response);\n },\n [refreshProfile, onComplete],\n );\n\n const handleDone = useCallback((): void => {\n void refreshProfile();\n onDone?.();\n }, [refreshProfile, onDone]);\n\n const execute = useCallback(\n (payload: EmbeddedSelfFlowRequest): Promise<EmbeddedSelfFlowResponse> =>\n executeEmbeddedSelfFlow({\n baseUrl,\n instanceId,\n payload,\n url: flowExecuteUrl,\n }),\n [baseUrl, flowExecuteUrl, instanceId],\n );\n\n const handleInitialize = useCallback((): Promise<EmbeddedSelfFlowResponse> => {\n if (!isVerifiableAttribute(userSchema, attribute)) {\n return Promise.reject(\n new ThunderIDRuntimeError(\n `Attribute \"${attribute}\" is not a verifiable email or mobile attribute.`,\n 'VerifyAttribute-handleInitialize-RuntimeError-001',\n 'react',\n 'Only a top-level, single-valued email or mobile attribute of the user schema can be verified.',\n ),\n );\n }\n\n return execute({\n flowType: EmbeddedFlowType.Self,\n handle: flowHandle,\n inputs: {[AttributeVerificationConstants.ATTRIBUTE_INPUT]: attribute},\n });\n }, [execute, attribute, flowHandle, userSchema]);\n\n return (\n <BaseVerifyAttribute\n {...rest}\n attributeDisplayName={attributeDisplayName ?? userSchema?.[attribute]?.displayName ?? startCase(attribute)}\n // The schema decides whether the attribute can be verified, so wait for it to load.\n isInitialized={isInitialized && !isLoading && userSchema !== null}\n onInitialize={handleInitialize}\n onSubmit={execute}\n onComplete={handleComplete}\n onDone={handleDone}\n />\n );\n};\n\nexport default VerifyAttribute;\n"],"mappings":";;;;;;;;;AAoBA,MAAMA,WAA0D,6BAC9D,oBACA,kBACD;;;;;;;;;;;;;;;;;;;;;;;;AAuCD,MAAMC,mBAA6C,EACjD,WACA,sBACA,aAAa,+BAA+B,qBAC5C,YACA,OACA,GAAG,WACqC;CACxC,MAAM,EAAC,SAAS,WAAW,YAAY,eAAe,cAAaC,sBAAc;CACjF,MAAM,EAAC,mBAAmB,eAAcC,iBAAS;CAEjD,MAAMC,iBAAyB,wBAAwB,eAAe,EAAC,WAAU,CAAC,IAAI,GAAG,QAAQ;CAGjG,MAAM,iBAAiB,YAAY,YAA2B;AAC5D,MAAI;AACF,SAAM,qBAAqB;WACpBC,aAAsB;AAC7B,YAAO,KAAK,0DAA0D,YAAY;;IAEnF,CAAC,kBAAkB,CAAC;CAEvB,MAAM,iBAAiB,aACpB,aAA6C;AAC5C,EAAK,gBAAgB;AACrB,eAAa,SAAS;IAExB,CAAC,gBAAgB,WAAW,CAC7B;CAED,MAAM,aAAa,kBAAwB;AACzC,EAAK,gBAAgB;AACrB,YAAU;IACT,CAAC,gBAAgB,OAAO,CAAC;CAE5B,MAAM,UAAU,aACb,YACCC,gCAAwB;EACtB;EACA;EACA;EACA,KAAK;EACN,CAAC,EACJ;EAAC;EAAS;EAAgB;EAAW,CACtC;CAED,MAAM,mBAAmB,kBAAqD;AAC5E,MAAI,CAAC,sBAAsB,YAAY,UAAU,CAC/C,QAAO,QAAQ,OACb,IAAI,sBACF,cAAc,UAAU,mDACxB,qDACA,SACA,gGACD,CACF;AAGH,SAAO,QAAQ;GACb,UAAU,iBAAiB;GAC3B,QAAQ;GACR,QAAQ,GAAE,+BAA+B,kBAAkB,WAAU;GACtE,CAAC;IACD;EAAC;EAAS;EAAW;EAAY;EAAW,CAAC;AAEhD,QACE,oBAACC;EACC,GAAI;EACJ,sBAAsB,wBAAwB,aAAa,YAAY,eAAe,UAAU,UAAU;EAE1G,eAAe,iBAAiB,CAAC,aAAa,eAAe;EAC7D,cAAc;EACd,UAAU;EACV,YAAY;EACZ,QAAQ;GACR;;AAIN,8BAAe"}
@@ -64,6 +64,11 @@ export interface SignInProps {
64
64
  * Custom CSS class name for the form container.
65
65
  */
66
66
  className?: string;
67
+ /**
68
+ * Bounds the sign-in to this organization unit. Sent as `ouId` on the request that starts the
69
+ * `AUTHENTICATION` flow only, never on a continuation.
70
+ */
71
+ organizationUnitId?: string;
67
72
  /**
68
73
  * Callback function called when authentication fails.
69
74
  * @param error - The error that occurred during authentication.
@@ -1 +1 @@
1
- {"version":3,"file":"SignIn.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/SignIn/SignIn.tsx"],"names":[],"mappings":"AAGA,OAAO,EAIL,qBAAqB,EAGrB,yBAAyB,EAIzB,oBAAoB,EACpB,WAAW,EAGZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,EAAE,EAA6C,SAAS,EAAC,MAAM,OAAO,CAAC;AAE/E,OAAmB,EAAC,eAAe,EAAC,MAAM,cAAc,CAAC;AASzD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAErC;;OAEG;IACH,UAAU,EAAE,qBAAqB,EAAE,CAAC;IAEpC;;OAEG;IACH,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB;;;;;OAKG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEpC;;OAEG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAElC;;OAEG;IACH,QAAQ,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,SAAS,CAAC;IAEnD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAEpD;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAEpC;;OAEG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;CACtC;AAwCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,QAAA,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CA40B3B,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"SignIn.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/SignIn/SignIn.tsx"],"names":[],"mappings":"AAGA,OAAO,EAIL,qBAAqB,EAGrB,yBAAyB,EAIzB,oBAAoB,EACpB,WAAW,EAGZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,EAAE,EAAsD,SAAS,EAAC,MAAM,OAAO,CAAC;AAExF,OAAmB,EAAC,eAAe,EAAC,MAAM,cAAc,CAAC;AAczD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAErC;;OAEG;IACH,UAAU,EAAE,qBAAqB,EAAE,CAAC;IAEpC;;OAEG;IACH,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB;;;;;OAKG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEpC;;OAEG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAElC;;OAEG;IACH,QAAQ,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,SAAS,CAAC;IAEnD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAEpD;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAEpC;;OAEG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;CACtC;AAwCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,QAAA,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CAq1B3B,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1,13 +1,13 @@
1
1
  import useThunderID_default from "../../../contexts/ThunderID/useThunderID.js";
2
2
  import useTranslation_default from "../../../hooks/useTranslation.js";
3
- import { extractErrorMessage, normalizeFlowResponse } from "../../../utils/flowTransformer.js";
3
+ import { extractErrorMessage, normalizeFlowResponse, resolveFlowError } from "../../../utils/flowTransformer.js";
4
4
  import isConsentApprovalBlocked_default from "../../../utils/isConsentApprovalBlocked.js";
5
5
  import BaseSignIn_default from "./BaseSignIn.js";
6
6
  import { useOAuthCallback } from "../../../hooks/auth/useOAuthCallback.js";
7
7
  import { initiateOAuthRedirect } from "../../../utils/oauth.js";
8
8
  import { handlePasskeyAuthentication, handlePasskeyRegistration } from "../../../utils/passkey.js";
9
9
  import { ConsentConstants, EmbeddedFlowType, EmbeddedSignInFlowStatus, EmbeddedSignInFlowType, ThunderIDAPIError, ThunderIDRuntimeError, compileConsentDecisions, logger } from "@thunderid/browser";
10
- import { useEffect, useRef, useState } from "react";
10
+ import { useEffect, useMemo, useRef, useState } from "react";
11
11
  import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
12
12
 
13
13
  //#region src/components/auth/SignIn/SignIn.tsx
@@ -88,7 +88,7 @@ const findConsentSubmitActionId = (comps) => {
88
88
  * };
89
89
  * ```
90
90
  */
91
- const SignIn = ({ className, preferences, size = "medium", onSuccess, onError, variant, children, revalidateOnChangeAfterBlur }) => {
91
+ const SignIn = ({ className, preferences, size = "medium", onSuccess, onError, variant, children, revalidateOnChangeAfterBlur, organizationUnitId }) => {
92
92
  const { applicationId, afterSignInUrl, signIn, isInitialized, isLoading, meta, getStorageManager, scopes, vendor } = useThunderID_default();
93
93
  const { t } = useTranslation_default(preferences?.i18n);
94
94
  const [components, setComponents] = useState([]);
@@ -98,7 +98,8 @@ const SignIn = ({ className, preferences, size = "medium", onSuccess, onError, v
98
98
  const challengeTokenRef = useRef(null);
99
99
  const [isStorageReady, setIsStorageReady] = useState(false);
100
100
  const [isFlowInitialized, setIsFlowInitialized] = useState(false);
101
- const [flowError, setFlowError] = useState(null);
101
+ const [flowErrorSource, setFlowErrorSource] = useState(null);
102
+ const flowError = useMemo(() => flowErrorSource === null ? null : resolveFlowError(flowErrorSource, t), [flowErrorSource, t]);
102
103
  const [isSubmitting, setIsSubmitting] = useState(false);
103
104
  const [isTimeoutDisabled, setIsTimeoutDisabled] = useState(false);
104
105
  const [passkeyState, setPasskeyState] = useState({
@@ -226,10 +227,10 @@ const SignIn = ({ className, preferences, size = "medium", onSuccess, onError, v
226
227
  * Set error state and call onError callback.
227
228
  * Ensures isFlowInitialized is true so errors can be displayed in the UI.
228
229
  */
229
- const setError = (error) => {
230
- setFlowError(error);
230
+ const setError = (source) => {
231
+ setFlowErrorSource(() => source);
231
232
  setIsFlowInitialized(true);
232
- onError?.(error);
233
+ onError?.(resolveFlowError(source, t));
233
234
  };
234
235
  /**
235
236
  * Handle OAuth error from URL parameters.
@@ -275,11 +276,11 @@ const SignIn = ({ className, preferences, size = "medium", onSuccess, onError, v
275
276
  setExecutionId(response.executionId);
276
277
  await setChallengeToken(response.challengeToken ?? null);
277
278
  setIsFlowInitialized(true);
278
- setFlowError(new Error(extractErrorMessage(response, t)));
279
+ setFlowErrorSource(response);
279
280
  return true;
280
281
  }
281
282
  await clearFlowState();
282
- setError(new Error(extractErrorMessage(response, t)));
283
+ setError(response);
283
284
  cleanupFlowUrlParams();
284
285
  return true;
285
286
  }
@@ -322,7 +323,7 @@ const SignIn = ({ className, preferences, size = "medium", onSuccess, onError, v
322
323
  return;
323
324
  }
324
325
  try {
325
- setFlowError(null);
326
+ setFlowErrorSource(null);
326
327
  let response;
327
328
  if (resumeExecutionId) try {
328
329
  response = await signIn({
@@ -338,20 +339,23 @@ const SignIn = ({ className, preferences, size = "medium", onSuccess, onError, v
338
339
  logger.warn("Failed to clear authId from hybrid storage.");
339
340
  }
340
341
  if (!effectiveApplicationId) {
341
- setError(new ThunderIDRuntimeError(t("errors.signin.session.expired") || "Your session has expired. Please return to the application and sign in again.", "SIGN_IN_ERROR", "react"));
342
+ const expiredError = (translate) => new ThunderIDRuntimeError(translate("errors.signin.session.expired") || "Your session has expired. Please return to the application and sign in again.", "SIGN_IN_ERROR", "react");
343
+ setError(expiredError);
342
344
  return;
343
345
  }
344
346
  response = await signIn({
345
347
  applicationId: effectiveApplicationId,
346
348
  flowType: EmbeddedFlowType.Authentication,
347
- ...scopes && { scopes }
349
+ ...scopes && { scopes },
350
+ ...organizationUnitId && { ouId: organizationUnitId }
348
351
  });
349
352
  } else throw resumeError;
350
353
  }
351
354
  else response = await signIn({
352
355
  applicationId: effectiveApplicationId,
353
356
  flowType: EmbeddedFlowType.Authentication,
354
- ...scopes && { scopes }
357
+ ...scopes && { scopes },
358
+ ...organizationUnitId && { ouId: organizationUnitId }
355
359
  });
356
360
  if (await handleRedirection(response)) return;
357
361
  if (await handleTerminalResponse(response)) {
@@ -371,7 +375,7 @@ const SignIn = ({ className, preferences, size = "medium", onSuccess, onError, v
371
375
  } catch (error) {
372
376
  const err = error;
373
377
  await clearFlowState();
374
- setError(err instanceof ThunderIDRuntimeError ? err : new Error(extractErrorMessage(err, t)));
378
+ setError(err);
375
379
  initializationAttemptedRef.current = false;
376
380
  }
377
381
  };
@@ -436,7 +440,7 @@ const SignIn = ({ className, preferences, size = "medium", onSuccess, onError, v
436
440
  } catch (e) {}
437
441
  try {
438
442
  setIsSubmitting(true);
439
- setFlowError(null);
443
+ setFlowErrorSource(null);
440
444
  setServerFieldErrors(null);
441
445
  const response = await signIn({
442
446
  executionId: effectiveExecutionId,
@@ -473,12 +477,12 @@ const SignIn = ({ className, preferences, size = "medium", onSuccess, onError, v
473
477
  cleanupFlowUrlParams();
474
478
  const responseFieldErrors = response.data?.fieldErrors;
475
479
  if (responseFieldErrors && responseFieldErrors.length > 0) setServerFieldErrors(responseFieldErrors);
476
- if (response?.error) setFlowError(new Error(extractErrorMessage(response, t)));
480
+ if (response?.error) setFlowErrorSource(response);
477
481
  }
478
482
  } catch (error) {
479
483
  const err = error;
480
484
  await clearFlowState();
481
- setError(err instanceof ThunderIDRuntimeError ? err : new Error(extractErrorMessage(err, t)));
485
+ setError(err);
482
486
  return;
483
487
  } finally {
484
488
  setIsSubmitting(false);
@@ -505,7 +509,7 @@ const SignIn = ({ className, preferences, size = "medium", onSuccess, onError, v
505
509
  }
506
510
  const handleTimeout = () => {
507
511
  setIsTimeoutDisabled(true);
508
- const expiredError = () => new Error(t("errors.signin.timeout") || "Time allowed to complete the step has expired.");
512
+ const expiredError = (translate) => new Error(translate("errors.signin.timeout") || "Time allowed to complete the step has expired.");
509
513
  const context = timeoutContextRef.current;
510
514
  const actionId = context?.hasConsentPrompt ? findConsentSubmitActionId(context.components) : void 0;
511
515
  if (actionId && context && timeoutSubmittedForRef.current !== timeoutMs) {
@@ -513,10 +517,10 @@ const SignIn = ({ className, preferences, size = "medium", onSuccess, onError, v
513
517
  context.submit({
514
518
  action: actionId,
515
519
  inputs: { [CONSENT_REASON_KEY]: ConsentConstants.REASON_TIMEOUT }
516
- }).catch(() => setError(expiredError()));
520
+ }).catch(() => setError(expiredError));
517
521
  return;
518
522
  }
519
- setError(expiredError());
523
+ setError(expiredError);
520
524
  };
521
525
  const timerId = setTimeout(handleTimeout, Math.max(0, timeoutMs - Date.now()));
522
526
  return () => clearTimeout(timerId);
@@ -596,8 +600,7 @@ const SignIn = ({ className, preferences, size = "medium", onSuccess, onError, v
596
600
  error,
597
601
  isActive: false
598
602
  }));
599
- setFlowError(error);
600
- onError?.(error);
603
+ setError(error);
601
604
  });
602
605
  }, [
603
606
  passkeyState.isActive,
@@ -1 +1 @@
1
- {"version":3,"file":"SignIn.js","names":["submitActions: EmbeddedFlowComponent[]","SignIn: FC<SignInProps>","useThunderID","useTranslation","challengeTokenRef: any","initializationAttemptedRef: any","oauthCodeProcessedRef: any","passkeyProcessedRef: any","tempData: any","storageManager: any","urlParams: any","url: any","redirectURL: any","finalRedirectUrl: any","effectiveApplicationId: any","storedExecutionId: any","resumeExecutionId: any","response: EmbeddedSignInFlowResponse","err: any","currentUrlParams: any","effectiveExecutionId: any","processedInputs: Record<string, any>","consentReason: string | undefined","consentPromptRawData: any","purposes: any[]","found: any","submitAction: any","isConsentApprovalBlocked","reason: string | undefined","effectiveExecutionIdForPasskey: any","responseFieldErrors: FieldError[] | undefined","timeoutMs: number","actionId: string | undefined","timerId: ReturnType<typeof setTimeout>","inputs: Record<string, string>","passkeyResponse: any","passkeyResponseObj: any","renderPropFieldErrors: Record<string, string>","BaseSignIn"],"sources":["../../../../src/components/auth/SignIn/SignIn.tsx"],"sourcesContent":["// Copyright 2025-2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n ThunderIDRuntimeError,\n ThunderIDAPIError,\n ConsentConstants,\n EmbeddedFlowComponent,\n EmbeddedFlowType,\n EmbeddedSignInFlowResponse,\n EmbeddedSignInFlowRequest,\n EmbeddedSignInFlowStatus,\n EmbeddedSignInFlowType,\n FieldError,\n FlowMetadataResponse,\n Preferences,\n logger,\n compileConsentDecisions,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useState, useEffect, useRef, ReactNode} from 'react';\n// eslint-disable-next-line import/no-named-as-default\nimport BaseSignIn, {BaseSignInProps} from './BaseSignIn';\nimport useThunderID from '../../../contexts/ThunderID/useThunderID';\nimport {useOAuthCallback} from '../../../hooks/auth/useOAuthCallback';\nimport useTranslation from '../../../hooks/useTranslation';\nimport {extractErrorMessage, normalizeFlowResponse} from '../../../utils/flowTransformer';\nimport isConsentApprovalBlocked from '../../../utils/isConsentApprovalBlocked';\nimport {initiateOAuthRedirect} from '../../../utils/oauth';\nimport {handlePasskeyAuthentication, handlePasskeyRegistration} from '../../../utils/passkey';\n\n/**\n * Render props function parameters\n */\nexport interface SignInRenderProps {\n /**\n * Additional data from the flow response containing contextual information\n * like consent prompt details and session timeouts.\n */\n additionalData?: Record<string, any>;\n\n /**\n * Current flow components\n */\n components: EmbeddedFlowComponent[];\n\n /**\n * Current error if any\n */\n error: Error | null;\n\n /**\n * Server-side field-level validation errors from the most recent flow response,\n * collapsed to one message per field (first error wins). Empty when no validation\n * failures are active. Render-prop consumers should display these alongside their\n * own client-side validation errors.\n */\n fieldErrors: Record<string, string>;\n\n /**\n * Function to manually initialize the flow\n */\n initialize: () => Promise<void>;\n\n /**\n * Whether the flow has been initialized\n */\n isInitialized: boolean;\n\n /**\n * Loading state indicator\n */\n isLoading: boolean;\n\n /**\n * Flag indicating whether the flow step timeout has expired.\n * Consuming components can use this to disable submit buttons.\n */\n isTimeoutDisabled?: boolean;\n\n /**\n * Flow metadata returned by the platform (v2 only). `null` while loading or unavailable.\n */\n meta: FlowMetadataResponse | null;\n\n /**\n * Function to submit authentication data (primary)\n */\n onSubmit: (payload: EmbeddedSignInFlowRequest) => Promise<void>;\n}\n\n/**\n * Props for the SignIn component.\n * Matches the interface from the main SignIn component for consistency.\n */\nexport interface SignInProps {\n /**\n * Render props function for custom UI\n */\n children?: (props: SignInRenderProps) => ReactNode;\n\n /**\n * Custom CSS class name for the form container.\n */\n className?: string;\n\n /**\n * Callback function called when authentication fails.\n * @param error - The error that occurred during authentication.\n */\n onError?: (error: Error) => void;\n\n /**\n * Callback function called when authentication is successful.\n * @param authData - The authentication data returned upon successful completion.\n */\n onSuccess?: (authData: Record<string, any>) => void;\n\n /**\n * Component-level preferences to override global i18n and theme settings.\n * Preferences are deep-merged with global ones, with component preferences\n * taking precedence. Affects this component and all its descendants.\n */\n preferences?: Preferences;\n\n /**\n * When a field has been blurred at least once, re-run validation on every subsequent\n * keystroke so a rendered error clears the moment the value becomes valid. Doesn't\n * affect fields that have never been blurred — the user isn't shown errors while\n * initially typing. Default `false` preserves prior behavior.\n */\n revalidateOnChangeAfterBlur?: boolean;\n\n /**\n * Size variant for the component.\n */\n size?: 'small' | 'medium' | 'large';\n\n /**\n * Theme variant for the component.\n */\n variant?: BaseSignInProps['variant'];\n}\n\n/**\n * State for tracking passkey registration\n */\ninterface PasskeyState {\n actionId: string | null;\n challenge: string | null;\n creationOptions: string | null;\n error: Error | null;\n executionId: string | null;\n isActive: boolean;\n}\n\n/**\n * Sentinel input key carrying the reason a consent prompt was submitted. It is folded into the\n * compiled `consent_decisions` payload and stripped from the inputs, like `__consent_opt__` keys.\n */\nconst CONSENT_REASON_KEY = '__consent_reason__';\n\n/** Flattens a component tree into a single list, parents before their children. */\nconst flattenComponents = (comps: EmbeddedFlowComponent[] | undefined): EmbeddedFlowComponent[] =>\n (comps ?? []).flatMap((comp: EmbeddedFlowComponent) => [comp, ...flattenComponents(comp.components)]);\n\n/**\n * Finds the action to submit an expired consent prompt with. A non-primary submit action is\n * preferred so the payload reads as a denial, falling back to any submit action because the server\n * needs an action to route the prompt node. Returns undefined when the view has neither.\n */\nconst findConsentSubmitActionId = (comps: EmbeddedFlowComponent[] | undefined): string | undefined => {\n const submitActions: EmbeddedFlowComponent[] = flattenComponents(comps).filter(\n (comp: EmbeddedFlowComponent) => comp.id && comp.eventType?.toUpperCase() === 'SUBMIT',\n );\n const denyAction: EmbeddedFlowComponent | undefined = submitActions.find(\n (comp: EmbeddedFlowComponent) => comp.variant?.toLowerCase() !== 'primary',\n );\n\n return (denyAction ?? submitActions[0])?.id;\n};\n\n/**\n * A component-driven SignIn component that provides authentication flow with pre-built styling.\n * This component handles the flow API calls for authentication and delegates UI logic to BaseSignIn.\n * It automatically transforms simple input-based responses into component-driven UI format.\n *\n * @example\n * // Default UI\n * ```tsx\n * import { SignIn } from '@thunderid/react/component-driven';\n *\n * const App = () => {\n * return (\n * <SignIn\n * onSuccess={(authData) => {\n * console.log('Authentication successful:', authData);\n * }}\n * onError={(error) => {\n * console.error('Authentication failed:', error);\n * }}\n * size=\"medium\"\n * variant=\"outlined\"\n * />\n * );\n * };\n * ```\n *\n * @example\n * // Custom UI with render props\n * ```tsx\n * import { SignIn } from '@thunderid/react/component-driven';\n *\n * const App = () => {\n * return (\n * <SignIn\n * onSuccess={(authData) => console.log('Success:', authData)}\n * onError={(error) => console.error('Error:', error)}\n * >\n * {({signIn, isLoading, components, error, isInitialized}) => (\n * <div className=\"custom-signin\">\n * <h1>Custom Sign In</h1>\n * {!isInitialized ? (\n * <p>Initializing...</p>\n * ) : error ? (\n * <div className=\"error\">{error.message}</div>\n * ) : (\n * <form onSubmit={(e) => {\n * e.preventDefault();\n * signIn({inputs: {username: 'user', password: 'pass'}});\n * }}>\n * <button type=\"submit\" disabled={isLoading}>\n * {isLoading ? 'Signing in...' : 'Sign In'}\n * </button>\n * </form>\n * )}\n * </div>\n * )}\n * </SignIn>\n * );\n * };\n * ```\n */\nconst SignIn: FC<SignInProps> = ({\n className,\n preferences,\n size = 'medium',\n onSuccess,\n onError,\n variant,\n children,\n revalidateOnChangeAfterBlur,\n}: SignInProps): ReactElement => {\n const {applicationId, afterSignInUrl, signIn, isInitialized, isLoading, meta, getStorageManager, scopes, vendor} =\n useThunderID();\n const {t} = useTranslation(preferences?.i18n);\n\n // State management for the flow\n const [components, setComponents] = useState<EmbeddedFlowComponent[]>([]);\n const [additionalData, setAdditionalData] = useState<Record<string, any>>({});\n // Server-side validation errors from the most recent flow response. Updated on every\n // submission; cleared when the next submission begins so stale errors don't linger.\n const [serverFieldErrors, setServerFieldErrors] = useState<FieldError[] | null>(null);\n const [currentExecutionId, setCurrentExecutionId] = useState<string | null>(null);\n const challengeTokenRef: any = useRef<string | null>(null);\n const [isStorageReady, setIsStorageReady] = useState(false);\n const [isFlowInitialized, setIsFlowInitialized] = useState(false);\n const [flowError, setFlowError] = useState<Error | null>(null);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [isTimeoutDisabled, setIsTimeoutDisabled] = useState<boolean>(false);\n const [passkeyState, setPasskeyState] = useState<PasskeyState>({\n actionId: null,\n challenge: null,\n creationOptions: null,\n error: null,\n executionId: null,\n isActive: false,\n });\n const initializationAttemptedRef: any = useRef(false);\n const oauthCodeProcessedRef: any = useRef(false);\n const passkeyProcessedRef: any = useRef(false);\n // Deadline this component has already auto-submitted for, so a re-run of the timeout effect\n // cannot submit the same expired step twice.\n const timeoutSubmittedForRef = useRef<number | null>(null);\n // The timeout effect is keyed on the deadline alone, so a step that arrives carrying the same\n // deadline would otherwise leave the pending timer holding the previous step's context.\n const timeoutContextRef = useRef<{\n components: EmbeddedFlowComponent[];\n hasConsentPrompt: boolean;\n submit: (payload: EmbeddedSignInFlowRequest) => Promise<void>;\n } | null>(null);\n /**\n * Sets executionId between sessionStorage and state.\n * This ensures both are always in sync.\n */\n const setExecutionId = (executionId: string | null): void => {\n setCurrentExecutionId(executionId);\n if (executionId) {\n sessionStorage.setItem(`${vendor}_execution_id`, executionId);\n } else {\n sessionStorage.removeItem(`${vendor}_execution_id`);\n }\n };\n\n /**\n * Restore any challenge token persisted before an OAuth redirect.\n * Waits for SDK initialization before reading from storage.\n */\n useEffect(() => {\n if (!isInitialized) return;\n\n (async (): Promise<void> => {\n try {\n const storageManager: any = await getStorageManager();\n const tempData: any = await storageManager?.getTemporaryData();\n if (tempData?.challengeToken) {\n challengeTokenRef.current = tempData.challengeToken as string;\n }\n } finally {\n setIsStorageReady(true);\n }\n })();\n }, [isInitialized]);\n\n /**\n * Updates challengeTokenRef immediately (stale-closure safe) and persists via\n * the provider's StorageManager so the token survives OAuth redirects.\n */\n const setChallengeToken = async (challengeToken: string | null): Promise<void> => {\n challengeTokenRef.current = challengeToken;\n try {\n const storageManager: any = await getStorageManager();\n if (storageManager) {\n if (challengeToken) {\n await storageManager.setTemporaryDataParameter('challengeToken', challengeToken);\n } else {\n await storageManager.removeTemporaryDataParameter('challengeToken');\n }\n }\n } catch {\n logger.warn('Failed to persist challenge token in storage.');\n }\n };\n\n /**\n * Clear all flow-related storage and state.\n */\n const clearFlowState = async (): Promise<void> => {\n // Clear the expired flow state to prevent rendering a stale form with a null executionId.\n // Kept before the first await so callers that do not await this function still apply the\n // reset in one batch, ahead of the setError that follows.\n setExecutionId(null);\n setComponents([]);\n setAdditionalData({});\n setIsFlowInitialized(false);\n await setChallengeToken(null);\n try {\n const storageManager: any = await getStorageManager();\n await storageManager?.removeHybridDataParameter?.('authId');\n } catch {\n logger.warn('Failed to clear authId from hybrid storage.');\n }\n setIsTimeoutDisabled(false);\n // Reset refs to allow new flows to start properly\n oauthCodeProcessedRef.current = false;\n };\n\n /**\n * Parse URL parameters used in flows.\n */\n const getUrlParams = (): any => {\n const urlParams: any = new URL(window?.location?.href ?? '').searchParams;\n\n return {\n applicationId: urlParams.get('applicationId'),\n authId: urlParams.get('authId'),\n code: urlParams.get('code'),\n error: urlParams.get('error'),\n errorDescription: urlParams.get('error_description'),\n executionId: urlParams.get('executionId'),\n nonce: urlParams.get('nonce'),\n state: urlParams.get('state'),\n };\n };\n\n /**\n * Handle authId from URL and persist it via the storage manager so it survives URL cleanup.\n * ThunderIDReactClient.signIn() reads authId from storageManager.getHybridDataParameter('authId'),\n * not from raw sessionStorage, so we must use the same storage path here.\n */\n const handleAuthId = async (authId: string | null): Promise<void> => {\n if (authId) {\n try {\n const storageManager: any = await getStorageManager();\n await storageManager?.setHybridDataParameter?.('authId', authId);\n } catch {\n logger.warn('Failed to store authId in hybrid storage.');\n }\n }\n };\n\n /**\n * Clean up OAuth-related URL parameters from the browser URL.\n */\n const cleanupOAuthUrlParams = (includeNonce = false): void => {\n if (!window?.location?.href) return;\n const url: any = new URL(window.location.href);\n url.searchParams.delete('error');\n url.searchParams.delete('error_description');\n url.searchParams.delete('code');\n url.searchParams.delete('state');\n if (includeNonce) {\n url.searchParams.delete('nonce');\n }\n window?.history?.replaceState({}, '', url.toString());\n };\n\n /**\n * Clean up flow-related URL parameters (executionId, authId) from the browser URL.\n * Used after executionId is set in state to prevent using invalidated executionId from URL.\n */\n const cleanupFlowUrlParams = (): void => {\n if (!window?.location?.href) return;\n const url: any = new URL(window.location.href);\n url.searchParams.delete('executionId');\n url.searchParams.delete('authId');\n url.searchParams.delete('applicationId');\n window?.history?.replaceState({}, '', url.toString());\n };\n\n /**\n * Set error state and call onError callback.\n * Ensures isFlowInitialized is true so errors can be displayed in the UI.\n */\n const setError = (error: Error): void => {\n setFlowError(error);\n setIsFlowInitialized(true);\n onError?.(error);\n };\n\n /**\n * Handle OAuth error from URL parameters.\n * Clears flow state, creates error, and cleans up URL.\n */\n const handleOAuthError = (error: string, errorDescription: string | null): void => {\n clearFlowState();\n const errorMessage: any = errorDescription || `OAuth error: ${error}`;\n const err: any = new ThunderIDRuntimeError(errorMessage, 'SIGN_IN_ERROR', 'react');\n setError(err);\n cleanupOAuthUrlParams(true);\n };\n\n /**\n * Handle REDIRECTION response by storing flow state and redirecting to OAuth provider.\n */\n const handleRedirection = async (response: EmbeddedSignInFlowResponse): Promise<boolean> => {\n if (response.type === EmbeddedSignInFlowType.Redirection) {\n const redirectURL: any = (response.data as any)?.redirectURL || (response as any)?.redirectURL;\n\n if (redirectURL && window?.location) {\n if (response.executionId) {\n setExecutionId(response.executionId);\n }\n await setChallengeToken(response.challengeToken ?? null);\n\n const urlParams: any = getUrlParams();\n await handleAuthId(urlParams.authId);\n\n initiateOAuthRedirect(redirectURL, vendor);\n return true;\n }\n }\n return false;\n };\n\n /**\n * Handle ERROR and COMPLETE responses. Returns true if fully handled.\n * ERROR + executionId: recoverable — session preserved for retry.\n * ERROR + no executionId: terminal — clear state and surface the error.\n */\n const handleTerminalResponse = async (response: EmbeddedSignInFlowResponse): Promise<boolean> => {\n if (response.flowStatus === EmbeddedSignInFlowStatus.Error) {\n // Propagate OAuth error to the client\n if (response.redirectUrl && window?.location) {\n setIsSubmitting(false);\n await clearFlowState();\n cleanupOAuthUrlParams(true);\n onError?.(new Error(extractErrorMessage(response, t)));\n window.location.href = response.redirectUrl;\n\n return true;\n }\n\n if (response.executionId) {\n // Recoverable: session still alive. Show inline error without firing onError.\n setExecutionId(response.executionId);\n await setChallengeToken(response.challengeToken ?? null);\n setIsFlowInitialized(true);\n setFlowError(new Error(extractErrorMessage(response, t)));\n return true;\n }\n // Terminal: backend invalidated the session — clear all state.\n await clearFlowState();\n setError(new Error(extractErrorMessage(response, t)));\n cleanupFlowUrlParams();\n return true;\n }\n\n if (response.flowStatus === EmbeddedSignInFlowStatus.Complete) {\n // Get redirectUrl from response (from /oauth2/auth/callback) or fall back to afterSignInUrl\n const redirectUrl: any = (response as any)?.redirectUrl || (response as any)?.redirect_uri;\n const finalRedirectUrl: any = redirectUrl || afterSignInUrl;\n\n // Clear submitting state before redirect\n setIsSubmitting(false);\n\n // Clear all OAuth-related storage on successful completion\n setExecutionId(null);\n await setChallengeToken(null);\n setIsFlowInitialized(false);\n sessionStorage.removeItem(`${vendor}_execution_id`);\n try {\n const storageManager: any = await getStorageManager();\n await storageManager?.removeHybridDataParameter?.('authId');\n } catch {\n logger.warn('Failed to clear authId from hybrid storage after completion.');\n }\n\n // Clean up OAuth URL params before redirect\n cleanupOAuthUrlParams(true);\n\n if (onSuccess) {\n onSuccess({\n redirectUrl: finalRedirectUrl,\n ...(response.data || {}),\n });\n }\n\n if (finalRedirectUrl && window?.location) {\n window.location.href = finalRedirectUrl;\n }\n\n return true;\n }\n\n return false;\n };\n\n /**\n * Initialize the authentication flow.\n * Priority: executionId > applicationId (from context) > applicationId (from URL)\n */\n const initializeFlow = async (): Promise<void> => {\n const urlParams: any = getUrlParams();\n\n // Reset OAuth code processed ref when starting a new flow\n oauthCodeProcessedRef.current = false;\n // Clear stale serverFieldErrors so the new flow doesn't inherit them via render-prop.\n setServerFieldErrors(null);\n\n await handleAuthId(urlParams.authId);\n\n const effectiveApplicationId: any = applicationId || urlParams.applicationId;\n\n // On a page refresh the executionId is no longer in the URL (it is scrubbed by\n // cleanupFlowUrlParams after the first load). Fall back to the executionId persisted in\n // sessionStorage so the in-progress flow can be resumed instead of starting a new flow.\n // This is required for authorization_code apps where direct new-flow initiation is blocked\n // server-side and the flow must be initiated through the OAuth /authorize endpoint.\n const storedExecutionId: any = !urlParams.executionId ? sessionStorage.getItem(`${vendor}_execution_id`) : null;\n const resumeExecutionId: any = urlParams.executionId || storedExecutionId;\n\n if (!resumeExecutionId && !effectiveApplicationId) {\n const error: any = new ThunderIDRuntimeError(\n 'Either executionId or applicationId is required for authentication',\n 'SIGN_IN_ERROR',\n 'react',\n );\n setError(error);\n\n return;\n }\n\n try {\n setFlowError(null);\n\n let response: EmbeddedSignInFlowResponse;\n\n if (resumeExecutionId) {\n try {\n response = (await signIn({\n executionId: resumeExecutionId,\n ...(challengeTokenRef.current ? {challengeToken: challengeTokenRef.current} : {}),\n })) as EmbeddedSignInFlowResponse;\n } catch (resumeError) {\n // Only treat a stale/expired session (HTTP 400 from the server, meaning the stored\n // executionId is no longer valid) as a recoverable condition. Transient failures\n // such as 5xx server errors or network errors are rethrown so they surface correctly.\n const isStaleSession: boolean =\n storedExecutionId &&\n resumeExecutionId === storedExecutionId &&\n resumeError instanceof ThunderIDAPIError &&\n resumeError.statusCode === 400;\n\n if (isStaleSession) {\n setExecutionId(null);\n try {\n const storageManager: any = await getStorageManager();\n await storageManager?.removeHybridDataParameter?.('authId');\n } catch {\n logger.warn('Failed to clear authId from hybrid storage.');\n }\n if (!effectiveApplicationId) {\n const expiredError: any = new ThunderIDRuntimeError(\n t('errors.signin.session.expired') ||\n 'Your session has expired. Please return to the application and sign in again.',\n 'SIGN_IN_ERROR',\n 'react',\n );\n setError(expiredError);\n return;\n }\n response = (await signIn({\n applicationId: effectiveApplicationId,\n flowType: EmbeddedFlowType.Authentication,\n ...(scopes && {scopes}),\n })) as EmbeddedSignInFlowResponse;\n } else {\n throw resumeError;\n }\n }\n } else {\n response = (await signIn({\n applicationId: effectiveApplicationId,\n flowType: EmbeddedFlowType.Authentication,\n ...(scopes && {scopes}),\n })) as EmbeddedSignInFlowResponse;\n }\n\n if (await handleRedirection(response)) {\n return;\n }\n\n // Handle a flow that completes (or errors) on the very first step — e.g. a reused SSO\n // session lets the backend return COMPLETE immediately with no UI components. Without\n // this the UI would fall through with no components and spin forever.\n if (await handleTerminalResponse(response)) {\n // Only reset the init gate for unrecoverable Error responses so the user can retry;\n // Complete-without-redirect would otherwise kick off a fresh flow unintentionally.\n if (response.flowStatus === EmbeddedSignInFlowStatus.Error && !response.executionId) {\n initializationAttemptedRef.current = false;\n }\n return;\n }\n\n const {\n executionId: normalizedExecutionId,\n components: normalizedComponents,\n additionalData: normalizedAdditionalData,\n } = normalizeFlowResponse(\n response,\n t,\n {\n resolveTranslations: false,\n },\n meta,\n );\n\n await setChallengeToken(response.challengeToken ?? null);\n\n if (normalizedExecutionId && normalizedComponents) {\n setExecutionId(normalizedExecutionId);\n setComponents(normalizedComponents);\n setAdditionalData(normalizedAdditionalData ?? {});\n setIsFlowInitialized(true);\n setIsTimeoutDisabled(false);\n // Clean up executionId from URL after setting it in state\n cleanupFlowUrlParams();\n }\n } catch (error) {\n const err: any = error;\n await clearFlowState();\n\n setError(err instanceof ThunderIDRuntimeError ? err : new Error(extractErrorMessage(err, t)));\n initializationAttemptedRef.current = false;\n }\n };\n\n /**\n * Initialize the flow and handle cleanup of stale flow state.\n */\n useEffect(() => {\n const urlParams: any = getUrlParams();\n\n // Check for OAuth error in URL\n if (urlParams.error) {\n handleOAuthError(urlParams.error, urlParams.errorDescription);\n return;\n }\n\n handleAuthId(urlParams.authId);\n\n // Skip OAuth code processing - let the dedicated OAuth useEffect handle it\n // No action needed here as the dedicated useEffect will handle it\n }, []);\n\n useEffect(() => {\n // Only initialize if we're not processing an OAuth callback or submission.\n // Wait for isStorageReady so the challenge token is restored from storage before\n // we attempt to resume a persisted executionId — the server requires it.\n const currentUrlParams: any = getUrlParams();\n if (\n isInitialized &&\n isStorageReady &&\n !isLoading &&\n !isFlowInitialized &&\n !initializationAttemptedRef.current &&\n !currentExecutionId &&\n !currentUrlParams.code &&\n !currentUrlParams.state &&\n !isSubmitting &&\n !oauthCodeProcessedRef.current\n ) {\n initializationAttemptedRef.current = true;\n initializeFlow();\n }\n }, [isInitialized, isStorageReady, isLoading, isFlowInitialized, currentExecutionId]);\n\n /**\n * Handle form submission from BaseSignIn or render props.\n */\n const handleSubmit = async (payload: EmbeddedSignInFlowRequest): Promise<void> => {\n // Use executionId from payload if available, otherwise fall back to currentExecutionId\n const effectiveExecutionId: any = payload.executionId || currentExecutionId;\n\n if (!effectiveExecutionId) {\n throw new Error('No active flow ID');\n }\n\n let processedInputs: Record<string, any> = {...payload.inputs};\n\n // Read and strip the sentinel up front so it can never reach the wire as an input\n const consentReason: string | undefined = processedInputs[CONSENT_REASON_KEY];\n delete processedInputs[CONSENT_REASON_KEY];\n\n // Auto-compile consent decisions if we are currently on a consent prompt step\n if (additionalData?.['consentPrompt']) {\n try {\n const consentPromptRawData: any = additionalData['consentPrompt'];\n const purposes: any[] =\n typeof consentPromptRawData === 'string'\n ? JSON.parse(consentPromptRawData)\n : consentPromptRawData.purposes || consentPromptRawData;\n\n // Find the action component to determine if it was a deny action\n let isDeny = false;\n if (payload.action) {\n // Flatten components to find the action\n const findAction = (comps: any[]): any => {\n if (!comps || comps.length === 0) return null;\n\n const found: any = comps.find((c: any) => c.id === payload.action);\n if (found) return found;\n\n return comps.reduce((acc: any, c: any) => {\n if (acc) return acc;\n if (c.components) return findAction(c.components);\n return null;\n }, null);\n };\n\n const submitAction: any = findAction(components);\n\n if (submitAction && submitAction.variant?.toLowerCase() !== 'primary') {\n isDeny = true;\n }\n }\n\n // An expired prompt is never an approval, whichever action carried the submission\n if (consentReason === ConsentConstants.REASON_TIMEOUT) {\n isDeny = true;\n }\n\n // Approval waits while an approved authorization detail shows a value that cannot be submitted\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n if (!isDeny && isConsentApprovalBlocked(purposes, processedInputs)) {\n return;\n }\n\n // An explicit denial carries a reason too, so the server never has to infer one\n const reason: string | undefined = consentReason ?? (isDeny ? ConsentConstants.REASON_USER_DENIED : undefined);\n\n processedInputs = compileConsentDecisions(processedInputs, purposes, {\n approved: !isDeny,\n ...(reason ? {reason} : {}),\n });\n } catch (e) {\n // Failed to construct consent_decisions payload automatically\n }\n }\n\n try {\n setIsSubmitting(true);\n setFlowError(null);\n // Clear any field errors from the previous response before the new round-trip.\n setServerFieldErrors(null);\n\n const response: EmbeddedSignInFlowResponse = (await signIn({\n executionId: effectiveExecutionId,\n ...payload,\n inputs: processedInputs,\n ...(challengeTokenRef.current ? {challengeToken: challengeTokenRef.current} : {}),\n })) as EmbeddedSignInFlowResponse;\n\n if (await handleRedirection(response)) {\n return;\n }\n if (\n response.data?.additionalData?.['passkeyChallenge'] ||\n response.data?.additionalData?.['passkeyCreationOptions']\n ) {\n const {passkeyChallenge, passkeyCreationOptions}: any = response.data.additionalData;\n const effectiveExecutionIdForPasskey: any = response.executionId || effectiveExecutionId;\n\n // Reset passkey processed ref to allow processing\n passkeyProcessedRef.current = false;\n\n await setChallengeToken(response.challengeToken ?? null);\n\n // Set passkey state to trigger the passkey\n setPasskeyState({\n actionId: 'submit',\n challenge: passkeyChallenge,\n creationOptions: passkeyCreationOptions,\n error: null,\n executionId: effectiveExecutionIdForPasskey,\n isActive: true,\n });\n setIsSubmitting(false);\n\n return;\n }\n\n // Handle terminal flow statuses before normalization.\n if (await handleTerminalResponse(response)) {\n return;\n }\n\n const {\n executionId: normalizedExecutionId,\n components: normalizedComponents,\n additionalData: normalizedAdditionalData,\n } = normalizeFlowResponse(\n response,\n t,\n {\n resolveTranslations: false,\n },\n meta,\n );\n\n // Always update challenge token on any INCOMPLETE response — token rotates every step.\n await setChallengeToken(response.challengeToken ?? null);\n\n // Update executionId if response contains a new one\n if (normalizedExecutionId && normalizedComponents) {\n setExecutionId(normalizedExecutionId);\n setComponents(normalizedComponents);\n setAdditionalData(normalizedAdditionalData ?? {});\n setIsTimeoutDisabled(false);\n // Ensure flow is marked as initialized when we have components\n setIsFlowInitialized(true);\n // Clean up executionId from URL after setting it in state\n cleanupFlowUrlParams();\n\n // Surface server-side validation failures so BaseSignIn can inject them into\n // the form-level fieldErrors state used by the render-prop / default UI.\n const responseFieldErrors: FieldError[] | undefined = (response.data as any)?.fieldErrors;\n if (responseFieldErrors && responseFieldErrors.length > 0) {\n setServerFieldErrors(responseFieldErrors);\n }\n\n // Display error from INCOMPLETE response\n if ((response as any)?.error) {\n setFlowError(new Error(extractErrorMessage(response, t)));\n }\n }\n } catch (error) {\n const err: any = error;\n await clearFlowState();\n\n setError(err instanceof ThunderIDRuntimeError ? err : new Error(extractErrorMessage(err, t)));\n return;\n } finally {\n setIsSubmitting(false);\n }\n };\n\n /**\n * Handle step timeout if configured in additionalData.\n *\n * An expired consent prompt is auto-submitted as a denial carrying the timeout reason, because its\n * actions no longer lead anywhere and the user would otherwise be stranded on the prompt. The\n * server discards those decisions and records nothing. Every other kind of step surfaces the\n * expiry error instead.\n */\n timeoutContextRef.current = {\n components,\n hasConsentPrompt: Boolean(additionalData?.['consentPrompt']),\n submit: handleSubmit,\n };\n\n useEffect(() => {\n const timeoutMs: number = Number(additionalData?.['stepTimeout']) || 0;\n if (timeoutMs <= 0 || !isFlowInitialized) {\n setIsTimeoutDisabled(false);\n return undefined;\n }\n\n const handleTimeout = (): void => {\n setIsTimeoutDisabled(true);\n\n const expiredError = (): Error =>\n new Error(t('errors.signin.timeout') || 'Time allowed to complete the step has expired.');\n\n // Read through the ref so the timer always sees the step that is on screen when it fires\n const context = timeoutContextRef.current;\n const actionId: string | undefined = context?.hasConsentPrompt\n ? findConsentSubmitActionId(context.components)\n : undefined;\n\n // Without an action the prompt node cannot be routed, so there is nothing to submit\n if (actionId && context && timeoutSubmittedForRef.current !== timeoutMs) {\n timeoutSubmittedForRef.current = timeoutMs;\n context\n .submit({action: actionId, inputs: {[CONSENT_REASON_KEY]: ConsentConstants.REASON_TIMEOUT}})\n .catch(() => setError(expiredError()));\n return;\n }\n\n setError(expiredError());\n };\n\n const timerId: ReturnType<typeof setTimeout> = setTimeout(handleTimeout, Math.max(0, timeoutMs - Date.now()));\n\n return () => clearTimeout(timerId);\n }, [additionalData?.['stepTimeout'], isFlowInitialized, t]);\n\n /**\n * Handle authentication errors.\n */\n const handleError = (error: Error): void => {\n setError(error);\n };\n\n useOAuthCallback({\n currentExecutionId,\n executionIdStorageKey: `${vendor}_execution_id`,\n isInitialized: isInitialized && !isLoading && isStorageReady,\n isSubmitting,\n onError: (err: any) => {\n clearFlowState();\n setError(err instanceof Error ? err : new Error(String(err)));\n },\n onSubmit: async (payload: any) => handleSubmit({executionId: payload.executionId, inputs: payload.inputs}),\n processedRef: oauthCodeProcessedRef,\n setExecutionId,\n });\n\n /**\n * Handle passkey authentication/registration when passkey state becomes active.\n * This effect auto-triggers the browser passkey popup and submits the result.\n */\n useEffect(() => {\n if (\n !passkeyState.isActive ||\n (!passkeyState.challenge && !passkeyState.creationOptions) ||\n !passkeyState.executionId\n ) {\n return;\n }\n\n // Prevent re-processing\n if (passkeyProcessedRef.current) {\n return;\n }\n passkeyProcessedRef.current = true;\n\n const performPasskeyProcess = async (): Promise<void> => {\n let inputs: Record<string, string>;\n\n if (passkeyState.challenge) {\n const passkeyResponse: any = await handlePasskeyAuthentication(passkeyState.challenge);\n const passkeyResponseObj: any = JSON.parse(passkeyResponse);\n\n inputs = {\n authenticatorData: passkeyResponseObj.response.authenticatorData,\n clientDataJSON: passkeyResponseObj.response.clientDataJSON,\n credentialId: passkeyResponseObj.id,\n signature: passkeyResponseObj.response.signature,\n userHandle: passkeyResponseObj.response.userHandle,\n };\n } else if (passkeyState.creationOptions) {\n const passkeyResponse: any = await handlePasskeyRegistration(passkeyState.creationOptions);\n const passkeyResponseObj: any = JSON.parse(passkeyResponse);\n\n inputs = {\n attestationObject: passkeyResponseObj.response.attestationObject,\n clientDataJSON: passkeyResponseObj.response.clientDataJSON,\n credentialId: passkeyResponseObj.id,\n };\n } else {\n throw new Error('No passkey challenge or creation options available');\n }\n\n await handleSubmit({\n executionId: passkeyState.executionId ?? undefined,\n inputs,\n });\n };\n\n performPasskeyProcess()\n .then(() => {\n setPasskeyState({\n actionId: null,\n challenge: null,\n creationOptions: null,\n error: null,\n executionId: null,\n isActive: false,\n });\n })\n .catch((error: any) => {\n setPasskeyState((prev: any) => ({...prev, error: error as Error, isActive: false}));\n setFlowError(error as Error);\n onError?.(error as Error);\n });\n }, [passkeyState.isActive, passkeyState.challenge, passkeyState.creationOptions, passkeyState.executionId]);\n\n if (children) {\n // Collapse the server FieldError[] array to a single message per field map for\n // render-prop consumers. First error per field wins. Multi-error cases per\n // field are rare in practice (server typically returns one rule failure per\n // field in current flows) and consumers needing the full array can still read\n // it from the raw flow response.\n const renderPropFieldErrors: Record<string, string> = {};\n if (serverFieldErrors) {\n for (const fe of serverFieldErrors) {\n if (!(fe.identifier in renderPropFieldErrors)) {\n renderPropFieldErrors[fe.identifier] = fe.message;\n }\n }\n }\n\n const renderProps: SignInRenderProps = {\n additionalData,\n components,\n error: flowError,\n fieldErrors: renderPropFieldErrors,\n initialize: initializeFlow,\n isInitialized: isFlowInitialized,\n isLoading: isLoading || isSubmitting || !isInitialized,\n isTimeoutDisabled,\n meta,\n onSubmit: handleSubmit,\n };\n\n return <>{children(renderProps)}</>;\n }\n // Otherwise, render the default BaseSignIn component\n return (\n <BaseSignIn\n additionalData={additionalData}\n components={components}\n isLoading={isLoading || !isInitialized || !isFlowInitialized}\n isTimeoutDisabled={isTimeoutDisabled}\n onSubmit={handleSubmit}\n onError={handleError}\n error={flowError}\n className={className}\n size={size}\n variant={variant}\n preferences={preferences}\n revalidateOnChangeAfterBlur={revalidateOnChangeAfterBlur}\n serverFieldErrors={serverFieldErrors}\n />\n );\n};\n\nexport default SignIn;\n"],"mappings":";;;;;;;;;;;;;;;;;AA+JA,MAAM,qBAAqB;;AAG3B,MAAM,qBAAqB,WACxB,SAAS,EAAE,EAAE,SAAS,SAAgC,CAAC,MAAM,GAAG,kBAAkB,KAAK,WAAW,CAAC,CAAC;;;;;;AAOvG,MAAM,6BAA6B,UAAmE;CACpG,MAAMA,gBAAyC,kBAAkB,MAAM,CAAC,QACrE,SAAgC,KAAK,MAAM,KAAK,WAAW,aAAa,KAAK,SAC/E;AAKD,SAJsD,cAAc,MACjE,SAAgC,KAAK,SAAS,aAAa,KAAK,UAClE,IAEqB,cAAc,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgE3C,MAAMC,UAA2B,EAC/B,WACA,aACA,OAAO,UACP,WACA,SACA,SACA,UACA,kCAC+B;CAC/B,MAAM,EAAC,eAAe,gBAAgB,QAAQ,eAAe,WAAW,MAAM,mBAAmB,QAAQ,WACvGC,sBAAc;CAChB,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAG7C,MAAM,CAAC,YAAY,iBAAiB,SAAkC,EAAE,CAAC;CACzE,MAAM,CAAC,gBAAgB,qBAAqB,SAA8B,EAAE,CAAC;CAG7E,MAAM,CAAC,mBAAmB,wBAAwB,SAA8B,KAAK;CACrF,MAAM,CAAC,oBAAoB,yBAAyB,SAAwB,KAAK;CACjF,MAAMC,oBAAyB,OAAsB,KAAK;CAC1D,MAAM,CAAC,gBAAgB,qBAAqB,SAAS,MAAM;CAC3D,MAAM,CAAC,mBAAmB,wBAAwB,SAAS,MAAM;CACjE,MAAM,CAAC,WAAW,gBAAgB,SAAuB,KAAK;CAC9D,MAAM,CAAC,cAAc,mBAAmB,SAAS,MAAM;CACvD,MAAM,CAAC,mBAAmB,wBAAwB,SAAkB,MAAM;CAC1E,MAAM,CAAC,cAAc,mBAAmB,SAAuB;EAC7D,UAAU;EACV,WAAW;EACX,iBAAiB;EACjB,OAAO;EACP,aAAa;EACb,UAAU;EACX,CAAC;CACF,MAAMC,6BAAkC,OAAO,MAAM;CACrD,MAAMC,wBAA6B,OAAO,MAAM;CAChD,MAAMC,sBAA2B,OAAO,MAAM;CAG9C,MAAM,yBAAyB,OAAsB,KAAK;CAG1D,MAAM,oBAAoB,OAIhB,KAAK;;;;;CAKf,MAAM,kBAAkB,gBAAqC;AAC3D,wBAAsB,YAAY;AAClC,MAAI,YACF,gBAAe,QAAQ,GAAG,OAAO,gBAAgB,YAAY;MAE7D,gBAAe,WAAW,GAAG,OAAO,eAAe;;;;;;AAQvD,iBAAgB;AACd,MAAI,CAAC,cAAe;AAEpB,GAAC,YAA2B;AAC1B,OAAI;IAEF,MAAMC,WAAgB,OADM,MAAM,mBAAmB,GACT,kBAAkB;AAC9D,QAAI,UAAU,eACZ,mBAAkB,UAAU,SAAS;aAE/B;AACR,sBAAkB,KAAK;;MAEvB;IACH,CAAC,cAAc,CAAC;;;;;CAMnB,MAAM,oBAAoB,OAAO,mBAAiD;AAChF,oBAAkB,UAAU;AAC5B,MAAI;GACF,MAAMC,iBAAsB,MAAM,mBAAmB;AACrD,OAAI,eACF,KAAI,eACF,OAAM,eAAe,0BAA0B,kBAAkB,eAAe;OAEhF,OAAM,eAAe,6BAA6B,iBAAiB;UAGjE;AACN,UAAO,KAAK,gDAAgD;;;;;;CAOhE,MAAM,iBAAiB,YAA2B;AAIhD,iBAAe,KAAK;AACpB,gBAAc,EAAE,CAAC;AACjB,oBAAkB,EAAE,CAAC;AACrB,uBAAqB,MAAM;AAC3B,QAAM,kBAAkB,KAAK;AAC7B,MAAI;AAEF,UAD4B,MAAM,mBAAmB,GAC/B,4BAA4B,SAAS;UACrD;AACN,UAAO,KAAK,8CAA8C;;AAE5D,uBAAqB,MAAM;AAE3B,wBAAsB,UAAU;;;;;CAMlC,MAAM,qBAA0B;EAC9B,MAAMC,YAAiB,IAAI,IAAI,QAAQ,UAAU,QAAQ,GAAG,CAAC;AAE7D,SAAO;GACL,eAAe,UAAU,IAAI,gBAAgB;GAC7C,QAAQ,UAAU,IAAI,SAAS;GAC/B,MAAM,UAAU,IAAI,OAAO;GAC3B,OAAO,UAAU,IAAI,QAAQ;GAC7B,kBAAkB,UAAU,IAAI,oBAAoB;GACpD,aAAa,UAAU,IAAI,cAAc;GACzC,OAAO,UAAU,IAAI,QAAQ;GAC7B,OAAO,UAAU,IAAI,QAAQ;GAC9B;;;;;;;CAQH,MAAM,eAAe,OAAO,WAAyC;AACnE,MAAI,OACF,KAAI;AAEF,UAD4B,MAAM,mBAAmB,GAC/B,yBAAyB,UAAU,OAAO;UAC1D;AACN,UAAO,KAAK,4CAA4C;;;;;;CAQ9D,MAAM,yBAAyB,eAAe,UAAgB;AAC5D,MAAI,CAAC,QAAQ,UAAU,KAAM;EAC7B,MAAMC,MAAW,IAAI,IAAI,OAAO,SAAS,KAAK;AAC9C,MAAI,aAAa,OAAO,QAAQ;AAChC,MAAI,aAAa,OAAO,oBAAoB;AAC5C,MAAI,aAAa,OAAO,OAAO;AAC/B,MAAI,aAAa,OAAO,QAAQ;AAChC,MAAI,aACF,KAAI,aAAa,OAAO,QAAQ;AAElC,UAAQ,SAAS,aAAa,EAAE,EAAE,IAAI,IAAI,UAAU,CAAC;;;;;;CAOvD,MAAM,6BAAmC;AACvC,MAAI,CAAC,QAAQ,UAAU,KAAM;EAC7B,MAAMA,MAAW,IAAI,IAAI,OAAO,SAAS,KAAK;AAC9C,MAAI,aAAa,OAAO,cAAc;AACtC,MAAI,aAAa,OAAO,SAAS;AACjC,MAAI,aAAa,OAAO,gBAAgB;AACxC,UAAQ,SAAS,aAAa,EAAE,EAAE,IAAI,IAAI,UAAU,CAAC;;;;;;CAOvD,MAAM,YAAY,UAAuB;AACvC,eAAa,MAAM;AACnB,uBAAqB,KAAK;AAC1B,YAAU,MAAM;;;;;;CAOlB,MAAM,oBAAoB,OAAe,qBAA0C;AACjF,kBAAgB;AAGhB,WADiB,IAAI,sBADK,oBAAoB,gBAAgB,SACL,iBAAiB,QAAQ,CACrE;AACb,wBAAsB,KAAK;;;;;CAM7B,MAAM,oBAAoB,OAAO,aAA2D;AAC1F,MAAI,SAAS,SAAS,uBAAuB,aAAa;GACxD,MAAMC,cAAoB,SAAS,MAAc,eAAgB,UAAkB;AAEnF,OAAI,eAAe,QAAQ,UAAU;AACnC,QAAI,SAAS,YACX,gBAAe,SAAS,YAAY;AAEtC,UAAM,kBAAkB,SAAS,kBAAkB,KAAK;AAGxD,UAAM,aADiB,cAAc,CACR,OAAO;AAEpC,0BAAsB,aAAa,OAAO;AAC1C,WAAO;;;AAGX,SAAO;;;;;;;CAQT,MAAM,yBAAyB,OAAO,aAA2D;AAC/F,MAAI,SAAS,eAAe,yBAAyB,OAAO;AAE1D,OAAI,SAAS,eAAe,QAAQ,UAAU;AAC5C,oBAAgB,MAAM;AACtB,UAAM,gBAAgB;AACtB,0BAAsB,KAAK;AAC3B,cAAU,IAAI,MAAM,oBAAoB,UAAU,EAAE,CAAC,CAAC;AACtD,WAAO,SAAS,OAAO,SAAS;AAEhC,WAAO;;AAGT,OAAI,SAAS,aAAa;AAExB,mBAAe,SAAS,YAAY;AACpC,UAAM,kBAAkB,SAAS,kBAAkB,KAAK;AACxD,yBAAqB,KAAK;AAC1B,iBAAa,IAAI,MAAM,oBAAoB,UAAU,EAAE,CAAC,CAAC;AACzD,WAAO;;AAGT,SAAM,gBAAgB;AACtB,YAAS,IAAI,MAAM,oBAAoB,UAAU,EAAE,CAAC,CAAC;AACrD,yBAAsB;AACtB,UAAO;;AAGT,MAAI,SAAS,eAAe,yBAAyB,UAAU;GAG7D,MAAMC,mBADoB,UAAkB,eAAgB,UAAkB,gBACjC;AAG7C,mBAAgB,MAAM;AAGtB,kBAAe,KAAK;AACpB,SAAM,kBAAkB,KAAK;AAC7B,wBAAqB,MAAM;AAC3B,kBAAe,WAAW,GAAG,OAAO,eAAe;AACnD,OAAI;AAEF,WAD4B,MAAM,mBAAmB,GAC/B,4BAA4B,SAAS;WACrD;AACN,WAAO,KAAK,+DAA+D;;AAI7E,yBAAsB,KAAK;AAE3B,OAAI,UACF,WAAU;IACR,aAAa;IACb,GAAI,SAAS,QAAQ,EAAE;IACxB,CAAC;AAGJ,OAAI,oBAAoB,QAAQ,SAC9B,QAAO,SAAS,OAAO;AAGzB,UAAO;;AAGT,SAAO;;;;;;CAOT,MAAM,iBAAiB,YAA2B;EAChD,MAAMH,YAAiB,cAAc;AAGrC,wBAAsB,UAAU;AAEhC,uBAAqB,KAAK;AAE1B,QAAM,aAAa,UAAU,OAAO;EAEpC,MAAMI,yBAA8B,iBAAiB,UAAU;EAO/D,MAAMC,oBAAyB,CAAC,UAAU,cAAc,eAAe,QAAQ,GAAG,OAAO,eAAe,GAAG;EAC3G,MAAMC,oBAAyB,UAAU,eAAe;AAExD,MAAI,CAAC,qBAAqB,CAAC,wBAAwB;AAMjD,YALmB,IAAI,sBACrB,sEACA,iBACA,QACD,CACc;AAEf;;AAGF,MAAI;AACF,gBAAa,KAAK;GAElB,IAAIC;AAEJ,OAAI,kBACF,KAAI;AACF,eAAY,MAAM,OAAO;KACvB,aAAa;KACb,GAAI,kBAAkB,UAAU,EAAC,gBAAgB,kBAAkB,SAAQ,GAAG,EAAE;KACjF,CAAC;YACK,aAAa;AAUpB,QALE,qBACA,sBAAsB,qBACtB,uBAAuB,qBACvB,YAAY,eAAe,KAET;AAClB,oBAAe,KAAK;AACpB,SAAI;AAEF,aAD4B,MAAM,mBAAmB,GAC/B,4BAA4B,SAAS;aACrD;AACN,aAAO,KAAK,8CAA8C;;AAE5D,SAAI,CAAC,wBAAwB;AAO3B,eAN0B,IAAI,sBAC5B,EAAE,gCAAgC,IAChC,iFACF,iBACA,QACD,CACqB;AACtB;;AAEF,gBAAY,MAAM,OAAO;MACvB,eAAe;MACf,UAAU,iBAAiB;MAC3B,GAAI,UAAU,EAAC,QAAO;MACvB,CAAC;UAEF,OAAM;;OAIV,YAAY,MAAM,OAAO;IACvB,eAAe;IACf,UAAU,iBAAiB;IAC3B,GAAI,UAAU,EAAC,QAAO;IACvB,CAAC;AAGJ,OAAI,MAAM,kBAAkB,SAAS,CACnC;AAMF,OAAI,MAAM,uBAAuB,SAAS,EAAE;AAG1C,QAAI,SAAS,eAAe,yBAAyB,SAAS,CAAC,SAAS,YACtE,4BAA2B,UAAU;AAEvC;;GAGF,MAAM,EACJ,aAAa,uBACb,YAAY,sBACZ,gBAAgB,6BACd,sBACF,UACA,GACA,EACE,qBAAqB,OACtB,EACD,KACD;AAED,SAAM,kBAAkB,SAAS,kBAAkB,KAAK;AAExD,OAAI,yBAAyB,sBAAsB;AACjD,mBAAe,sBAAsB;AACrC,kBAAc,qBAAqB;AACnC,sBAAkB,4BAA4B,EAAE,CAAC;AACjD,yBAAqB,KAAK;AAC1B,yBAAqB,MAAM;AAE3B,0BAAsB;;WAEjB,OAAO;GACd,MAAMC,MAAW;AACjB,SAAM,gBAAgB;AAEtB,YAAS,eAAe,wBAAwB,MAAM,IAAI,MAAM,oBAAoB,KAAK,EAAE,CAAC,CAAC;AAC7F,8BAA2B,UAAU;;;;;;AAOzC,iBAAgB;EACd,MAAMR,YAAiB,cAAc;AAGrC,MAAI,UAAU,OAAO;AACnB,oBAAiB,UAAU,OAAO,UAAU,iBAAiB;AAC7D;;AAGF,eAAa,UAAU,OAAO;IAI7B,EAAE,CAAC;AAEN,iBAAgB;EAId,MAAMS,mBAAwB,cAAc;AAC5C,MACE,iBACA,kBACA,CAAC,aACD,CAAC,qBACD,CAAC,2BAA2B,WAC5B,CAAC,sBACD,CAAC,iBAAiB,QAClB,CAAC,iBAAiB,SAClB,CAAC,gBACD,CAAC,sBAAsB,SACvB;AACA,8BAA2B,UAAU;AACrC,mBAAgB;;IAEjB;EAAC;EAAe;EAAgB;EAAW;EAAmB;EAAmB,CAAC;;;;CAKrF,MAAM,eAAe,OAAO,YAAsD;EAEhF,MAAMC,uBAA4B,QAAQ,eAAe;AAEzD,MAAI,CAAC,qBACH,OAAM,IAAI,MAAM,oBAAoB;EAGtC,IAAIC,kBAAuC,EAAC,GAAG,QAAQ,QAAO;EAG9D,MAAMC,gBAAoC,gBAAgB;AAC1D,SAAO,gBAAgB;AAGvB,MAAI,iBAAiB,iBACnB,KAAI;GACF,MAAMC,uBAA4B,eAAe;GACjD,MAAMC,WACJ,OAAO,yBAAyB,WAC5B,KAAK,MAAM,qBAAqB,GAChC,qBAAqB,YAAY;GAGvC,IAAI,SAAS;AACb,OAAI,QAAQ,QAAQ;IAElB,MAAM,cAAc,UAAsB;AACxC,SAAI,CAAC,SAAS,MAAM,WAAW,EAAG,QAAO;KAEzC,MAAMC,QAAa,MAAM,MAAM,MAAW,EAAE,OAAO,QAAQ,OAAO;AAClE,SAAI,MAAO,QAAO;AAElB,YAAO,MAAM,QAAQ,KAAU,MAAW;AACxC,UAAI,IAAK,QAAO;AAChB,UAAI,EAAE,WAAY,QAAO,WAAW,EAAE,WAAW;AACjD,aAAO;QACN,KAAK;;IAGV,MAAMC,eAAoB,WAAW,WAAW;AAEhD,QAAI,gBAAgB,aAAa,SAAS,aAAa,KAAK,UAC1D,UAAS;;AAKb,OAAI,kBAAkB,iBAAiB,eACrC,UAAS;AAKX,OAAI,CAAC,UAAUC,iCAAyB,UAAU,gBAAgB,CAChE;GAIF,MAAMC,SAA6B,kBAAkB,SAAS,iBAAiB,qBAAqB;AAEpG,qBAAkB,wBAAwB,iBAAiB,UAAU;IACnE,UAAU,CAAC;IACX,GAAI,SAAS,EAAC,QAAO,GAAG,EAAE;IAC3B,CAAC;WACK,GAAG;AAKd,MAAI;AACF,mBAAgB,KAAK;AACrB,gBAAa,KAAK;AAElB,wBAAqB,KAAK;GAE1B,MAAMX,WAAwC,MAAM,OAAO;IACzD,aAAa;IACb,GAAG;IACH,QAAQ;IACR,GAAI,kBAAkB,UAAU,EAAC,gBAAgB,kBAAkB,SAAQ,GAAG,EAAE;IACjF,CAAC;AAEF,OAAI,MAAM,kBAAkB,SAAS,CACnC;AAEF,OACE,SAAS,MAAM,iBAAiB,uBAChC,SAAS,MAAM,iBAAiB,2BAChC;IACA,MAAM,EAAC,kBAAkB,2BAA+B,SAAS,KAAK;IACtE,MAAMY,iCAAsC,SAAS,eAAe;AAGpE,wBAAoB,UAAU;AAE9B,UAAM,kBAAkB,SAAS,kBAAkB,KAAK;AAGxD,oBAAgB;KACd,UAAU;KACV,WAAW;KACX,iBAAiB;KACjB,OAAO;KACP,aAAa;KACb,UAAU;KACX,CAAC;AACF,oBAAgB,MAAM;AAEtB;;AAIF,OAAI,MAAM,uBAAuB,SAAS,CACxC;GAGF,MAAM,EACJ,aAAa,uBACb,YAAY,sBACZ,gBAAgB,6BACd,sBACF,UACA,GACA,EACE,qBAAqB,OACtB,EACD,KACD;AAGD,SAAM,kBAAkB,SAAS,kBAAkB,KAAK;AAGxD,OAAI,yBAAyB,sBAAsB;AACjD,mBAAe,sBAAsB;AACrC,kBAAc,qBAAqB;AACnC,sBAAkB,4BAA4B,EAAE,CAAC;AACjD,yBAAqB,MAAM;AAE3B,yBAAqB,KAAK;AAE1B,0BAAsB;IAItB,MAAMC,sBAAiD,SAAS,MAAc;AAC9E,QAAI,uBAAuB,oBAAoB,SAAS,EACtD,sBAAqB,oBAAoB;AAI3C,QAAK,UAAkB,MACrB,cAAa,IAAI,MAAM,oBAAoB,UAAU,EAAE,CAAC,CAAC;;WAGtD,OAAO;GACd,MAAMZ,MAAW;AACjB,SAAM,gBAAgB;AAEtB,YAAS,eAAe,wBAAwB,MAAM,IAAI,MAAM,oBAAoB,KAAK,EAAE,CAAC,CAAC;AAC7F;YACQ;AACR,mBAAgB,MAAM;;;;;;;;;;;AAY1B,mBAAkB,UAAU;EAC1B;EACA,kBAAkB,QAAQ,iBAAiB,iBAAiB;EAC5D,QAAQ;EACT;AAED,iBAAgB;EACd,MAAMa,YAAoB,OAAO,iBAAiB,eAAe,IAAI;AACrE,MAAI,aAAa,KAAK,CAAC,mBAAmB;AACxC,wBAAqB,MAAM;AAC3B;;EAGF,MAAM,sBAA4B;AAChC,wBAAqB,KAAK;GAE1B,MAAM,qBACJ,IAAI,MAAM,EAAE,wBAAwB,IAAI,iDAAiD;GAG3F,MAAM,UAAU,kBAAkB;GAClC,MAAMC,WAA+B,SAAS,mBAC1C,0BAA0B,QAAQ,WAAW,GAC7C;AAGJ,OAAI,YAAY,WAAW,uBAAuB,YAAY,WAAW;AACvE,2BAAuB,UAAU;AACjC,YACG,OAAO;KAAC,QAAQ;KAAU,QAAQ,GAAE,qBAAqB,iBAAiB,gBAAe;KAAC,CAAC,CAC3F,YAAY,SAAS,cAAc,CAAC,CAAC;AACxC;;AAGF,YAAS,cAAc,CAAC;;EAG1B,MAAMC,UAAyC,WAAW,eAAe,KAAK,IAAI,GAAG,YAAY,KAAK,KAAK,CAAC,CAAC;AAE7G,eAAa,aAAa,QAAQ;IACjC;EAAC,iBAAiB;EAAgB;EAAmB;EAAE,CAAC;;;;CAK3D,MAAM,eAAe,UAAuB;AAC1C,WAAS,MAAM;;AAGjB,kBAAiB;EACf;EACA,uBAAuB,GAAG,OAAO;EACjC,eAAe,iBAAiB,CAAC,aAAa;EAC9C;EACA,UAAU,QAAa;AACrB,mBAAgB;AAChB,YAAS,eAAe,QAAQ,MAAM,IAAI,MAAM,OAAO,IAAI,CAAC,CAAC;;EAE/D,UAAU,OAAO,YAAiB,aAAa;GAAC,aAAa,QAAQ;GAAa,QAAQ,QAAQ;GAAO,CAAC;EAC1G,cAAc;EACd;EACD,CAAC;;;;;AAMF,iBAAgB;AACd,MACE,CAAC,aAAa,YACb,CAAC,aAAa,aAAa,CAAC,aAAa,mBAC1C,CAAC,aAAa,YAEd;AAIF,MAAI,oBAAoB,QACtB;AAEF,sBAAoB,UAAU;EAE9B,MAAM,wBAAwB,YAA2B;GACvD,IAAIC;AAEJ,OAAI,aAAa,WAAW;IAC1B,MAAMC,kBAAuB,MAAM,4BAA4B,aAAa,UAAU;IACtF,MAAMC,qBAA0B,KAAK,MAAM,gBAAgB;AAE3D,aAAS;KACP,mBAAmB,mBAAmB,SAAS;KAC/C,gBAAgB,mBAAmB,SAAS;KAC5C,cAAc,mBAAmB;KACjC,WAAW,mBAAmB,SAAS;KACvC,YAAY,mBAAmB,SAAS;KACzC;cACQ,aAAa,iBAAiB;IACvC,MAAMD,kBAAuB,MAAM,0BAA0B,aAAa,gBAAgB;IAC1F,MAAMC,qBAA0B,KAAK,MAAM,gBAAgB;AAE3D,aAAS;KACP,mBAAmB,mBAAmB,SAAS;KAC/C,gBAAgB,mBAAmB,SAAS;KAC5C,cAAc,mBAAmB;KAClC;SAED,OAAM,IAAI,MAAM,qDAAqD;AAGvE,SAAM,aAAa;IACjB,aAAa,aAAa,eAAe;IACzC;IACD,CAAC;;AAGJ,yBAAuB,CACpB,WAAW;AACV,mBAAgB;IACd,UAAU;IACV,WAAW;IACX,iBAAiB;IACjB,OAAO;IACP,aAAa;IACb,UAAU;IACX,CAAC;IACF,CACD,OAAO,UAAe;AACrB,oBAAiB,UAAe;IAAC,GAAG;IAAa;IAAgB,UAAU;IAAM,EAAE;AACnF,gBAAa,MAAe;AAC5B,aAAU,MAAe;IACzB;IACH;EAAC,aAAa;EAAU,aAAa;EAAW,aAAa;EAAiB,aAAa;EAAY,CAAC;AAE3G,KAAI,UAAU;EAMZ,MAAMC,wBAAgD,EAAE;AACxD,MAAI,mBACF;QAAK,MAAM,MAAM,kBACf,KAAI,EAAE,GAAG,cAAc,uBACrB,uBAAsB,GAAG,cAAc,GAAG;;AAkBhD,SAAO,4CAAG,SAb6B;GACrC;GACA;GACA,OAAO;GACP,aAAa;GACb,YAAY;GACZ,eAAe;GACf,WAAW,aAAa,gBAAgB,CAAC;GACzC;GACA;GACA,UAAU;GACX,CAE8B,GAAI;;AAGrC,QACE,oBAACC;EACiB;EACJ;EACZ,WAAW,aAAa,CAAC,iBAAiB,CAAC;EACxB;EACnB,UAAU;EACV,SAAS;EACT,OAAO;EACI;EACL;EACG;EACI;EACgB;EACV;GACnB;;AAIN,qBAAe"}
1
+ {"version":3,"file":"SignIn.js","names":["submitActions: EmbeddedFlowComponent[]","SignIn: FC<SignInProps>","useThunderID","useTranslation","challengeTokenRef: any","flowError: Error | null","initializationAttemptedRef: any","oauthCodeProcessedRef: any","passkeyProcessedRef: any","tempData: any","storageManager: any","urlParams: any","url: any","redirectURL: any","finalRedirectUrl: any","effectiveApplicationId: any","storedExecutionId: any","resumeExecutionId: any","response: EmbeddedSignInFlowResponse","expiredError: FlowErrorBuilder","err: any","currentUrlParams: any","effectiveExecutionId: any","processedInputs: Record<string, any>","consentReason: string | undefined","consentPromptRawData: any","purposes: any[]","found: any","submitAction: any","isConsentApprovalBlocked","reason: string | undefined","effectiveExecutionIdForPasskey: any","responseFieldErrors: FieldError[] | undefined","timeoutMs: number","actionId: string | undefined","timerId: ReturnType<typeof setTimeout>","inputs: Record<string, string>","passkeyResponse: any","passkeyResponseObj: any","renderPropFieldErrors: Record<string, string>","BaseSignIn"],"sources":["../../../../src/components/auth/SignIn/SignIn.tsx"],"sourcesContent":["// Copyright 2025-2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n ThunderIDRuntimeError,\n ThunderIDAPIError,\n ConsentConstants,\n EmbeddedFlowComponent,\n EmbeddedFlowType,\n EmbeddedSignInFlowResponse,\n EmbeddedSignInFlowRequest,\n EmbeddedSignInFlowStatus,\n EmbeddedSignInFlowType,\n FieldError,\n FlowMetadataResponse,\n Preferences,\n logger,\n compileConsentDecisions,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useState, useEffect, useMemo, useRef, ReactNode} from 'react';\n// eslint-disable-next-line import/no-named-as-default\nimport BaseSignIn, {BaseSignInProps} from './BaseSignIn';\nimport useThunderID from '../../../contexts/ThunderID/useThunderID';\nimport {useOAuthCallback} from '../../../hooks/auth/useOAuthCallback';\nimport useTranslation from '../../../hooks/useTranslation';\nimport {\n extractErrorMessage,\n FlowErrorBuilder,\n normalizeFlowResponse,\n resolveFlowError,\n} from '../../../utils/flowTransformer';\nimport isConsentApprovalBlocked from '../../../utils/isConsentApprovalBlocked';\nimport {initiateOAuthRedirect} from '../../../utils/oauth';\nimport {handlePasskeyAuthentication, handlePasskeyRegistration} from '../../../utils/passkey';\n\n/**\n * Render props function parameters\n */\nexport interface SignInRenderProps {\n /**\n * Additional data from the flow response containing contextual information\n * like consent prompt details and session timeouts.\n */\n additionalData?: Record<string, any>;\n\n /**\n * Current flow components\n */\n components: EmbeddedFlowComponent[];\n\n /**\n * Current error if any\n */\n error: Error | null;\n\n /**\n * Server-side field-level validation errors from the most recent flow response,\n * collapsed to one message per field (first error wins). Empty when no validation\n * failures are active. Render-prop consumers should display these alongside their\n * own client-side validation errors.\n */\n fieldErrors: Record<string, string>;\n\n /**\n * Function to manually initialize the flow\n */\n initialize: () => Promise<void>;\n\n /**\n * Whether the flow has been initialized\n */\n isInitialized: boolean;\n\n /**\n * Loading state indicator\n */\n isLoading: boolean;\n\n /**\n * Flag indicating whether the flow step timeout has expired.\n * Consuming components can use this to disable submit buttons.\n */\n isTimeoutDisabled?: boolean;\n\n /**\n * Flow metadata returned by the platform (v2 only). `null` while loading or unavailable.\n */\n meta: FlowMetadataResponse | null;\n\n /**\n * Function to submit authentication data (primary)\n */\n onSubmit: (payload: EmbeddedSignInFlowRequest) => Promise<void>;\n}\n\n/**\n * Props for the SignIn component.\n * Matches the interface from the main SignIn component for consistency.\n */\nexport interface SignInProps {\n /**\n * Render props function for custom UI\n */\n children?: (props: SignInRenderProps) => ReactNode;\n\n /**\n * Custom CSS class name for the form container.\n */\n className?: string;\n\n /**\n * Bounds the sign-in to this organization unit. Sent as `ouId` on the request that starts the\n * `AUTHENTICATION` flow only, never on a continuation.\n */\n organizationUnitId?: string;\n\n /**\n * Callback function called when authentication fails.\n * @param error - The error that occurred during authentication.\n */\n onError?: (error: Error) => void;\n\n /**\n * Callback function called when authentication is successful.\n * @param authData - The authentication data returned upon successful completion.\n */\n onSuccess?: (authData: Record<string, any>) => void;\n\n /**\n * Component-level preferences to override global i18n and theme settings.\n * Preferences are deep-merged with global ones, with component preferences\n * taking precedence. Affects this component and all its descendants.\n */\n preferences?: Preferences;\n\n /**\n * When a field has been blurred at least once, re-run validation on every subsequent\n * keystroke so a rendered error clears the moment the value becomes valid. Doesn't\n * affect fields that have never been blurred — the user isn't shown errors while\n * initially typing. Default `false` preserves prior behavior.\n */\n revalidateOnChangeAfterBlur?: boolean;\n\n /**\n * Size variant for the component.\n */\n size?: 'small' | 'medium' | 'large';\n\n /**\n * Theme variant for the component.\n */\n variant?: BaseSignInProps['variant'];\n}\n\n/**\n * State for tracking passkey registration\n */\ninterface PasskeyState {\n actionId: string | null;\n challenge: string | null;\n creationOptions: string | null;\n error: Error | null;\n executionId: string | null;\n isActive: boolean;\n}\n\n/**\n * Sentinel input key carrying the reason a consent prompt was submitted. It is folded into the\n * compiled `consent_decisions` payload and stripped from the inputs, like `__consent_opt__` keys.\n */\nconst CONSENT_REASON_KEY = '__consent_reason__';\n\n/** Flattens a component tree into a single list, parents before their children. */\nconst flattenComponents = (comps: EmbeddedFlowComponent[] | undefined): EmbeddedFlowComponent[] =>\n (comps ?? []).flatMap((comp: EmbeddedFlowComponent) => [comp, ...flattenComponents(comp.components)]);\n\n/**\n * Finds the action to submit an expired consent prompt with. A non-primary submit action is\n * preferred so the payload reads as a denial, falling back to any submit action because the server\n * needs an action to route the prompt node. Returns undefined when the view has neither.\n */\nconst findConsentSubmitActionId = (comps: EmbeddedFlowComponent[] | undefined): string | undefined => {\n const submitActions: EmbeddedFlowComponent[] = flattenComponents(comps).filter(\n (comp: EmbeddedFlowComponent) => comp.id && comp.eventType?.toUpperCase() === 'SUBMIT',\n );\n const denyAction: EmbeddedFlowComponent | undefined = submitActions.find(\n (comp: EmbeddedFlowComponent) => comp.variant?.toLowerCase() !== 'primary',\n );\n\n return (denyAction ?? submitActions[0])?.id;\n};\n\n/**\n * A component-driven SignIn component that provides authentication flow with pre-built styling.\n * This component handles the flow API calls for authentication and delegates UI logic to BaseSignIn.\n * It automatically transforms simple input-based responses into component-driven UI format.\n *\n * @example\n * // Default UI\n * ```tsx\n * import { SignIn } from '@thunderid/react/component-driven';\n *\n * const App = () => {\n * return (\n * <SignIn\n * onSuccess={(authData) => {\n * console.log('Authentication successful:', authData);\n * }}\n * onError={(error) => {\n * console.error('Authentication failed:', error);\n * }}\n * size=\"medium\"\n * variant=\"outlined\"\n * />\n * );\n * };\n * ```\n *\n * @example\n * // Custom UI with render props\n * ```tsx\n * import { SignIn } from '@thunderid/react/component-driven';\n *\n * const App = () => {\n * return (\n * <SignIn\n * onSuccess={(authData) => console.log('Success:', authData)}\n * onError={(error) => console.error('Error:', error)}\n * >\n * {({signIn, isLoading, components, error, isInitialized}) => (\n * <div className=\"custom-signin\">\n * <h1>Custom Sign In</h1>\n * {!isInitialized ? (\n * <p>Initializing...</p>\n * ) : error ? (\n * <div className=\"error\">{error.message}</div>\n * ) : (\n * <form onSubmit={(e) => {\n * e.preventDefault();\n * signIn({inputs: {username: 'user', password: 'pass'}});\n * }}>\n * <button type=\"submit\" disabled={isLoading}>\n * {isLoading ? 'Signing in...' : 'Sign In'}\n * </button>\n * </form>\n * )}\n * </div>\n * )}\n * </SignIn>\n * );\n * };\n * ```\n */\nconst SignIn: FC<SignInProps> = ({\n className,\n preferences,\n size = 'medium',\n onSuccess,\n onError,\n variant,\n children,\n revalidateOnChangeAfterBlur,\n organizationUnitId,\n}: SignInProps): ReactElement => {\n const {applicationId, afterSignInUrl, signIn, isInitialized, isLoading, meta, getStorageManager, scopes, vendor} =\n useThunderID();\n const {t} = useTranslation(preferences?.i18n);\n\n // State management for the flow\n const [components, setComponents] = useState<EmbeddedFlowComponent[]>([]);\n const [additionalData, setAdditionalData] = useState<Record<string, any>>({});\n // Server-side validation errors from the most recent flow response. Updated on every\n // submission; cleared when the next submission begins so stale errors don't linger.\n const [serverFieldErrors, setServerFieldErrors] = useState<FieldError[] | null>(null);\n const [currentExecutionId, setCurrentExecutionId] = useState<string | null>(null);\n const challengeTokenRef: any = useRef<string | null>(null);\n const [isStorageReady, setIsStorageReady] = useState(false);\n const [isFlowInitialized, setIsFlowInitialized] = useState(false);\n // Raw banner error source, resolved on render so the message follows a language change.\n const [flowErrorSource, setFlowErrorSource] = useState<unknown>(null);\n const flowError: Error | null = useMemo(\n () => (flowErrorSource === null ? null : resolveFlowError(flowErrorSource, t)),\n [flowErrorSource, t],\n );\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [isTimeoutDisabled, setIsTimeoutDisabled] = useState<boolean>(false);\n const [passkeyState, setPasskeyState] = useState<PasskeyState>({\n actionId: null,\n challenge: null,\n creationOptions: null,\n error: null,\n executionId: null,\n isActive: false,\n });\n const initializationAttemptedRef: any = useRef(false);\n const oauthCodeProcessedRef: any = useRef(false);\n const passkeyProcessedRef: any = useRef(false);\n // Deadline this component has already auto-submitted for, so a re-run of the timeout effect\n // cannot submit the same expired step twice.\n const timeoutSubmittedForRef = useRef<number | null>(null);\n // The timeout effect is keyed on the deadline alone, so a step that arrives carrying the same\n // deadline would otherwise leave the pending timer holding the previous step's context.\n const timeoutContextRef = useRef<{\n components: EmbeddedFlowComponent[];\n hasConsentPrompt: boolean;\n submit: (payload: EmbeddedSignInFlowRequest) => Promise<void>;\n } | null>(null);\n /**\n * Sets executionId between sessionStorage and state.\n * This ensures both are always in sync.\n */\n const setExecutionId = (executionId: string | null): void => {\n setCurrentExecutionId(executionId);\n if (executionId) {\n sessionStorage.setItem(`${vendor}_execution_id`, executionId);\n } else {\n sessionStorage.removeItem(`${vendor}_execution_id`);\n }\n };\n\n /**\n * Restore any challenge token persisted before an OAuth redirect.\n * Waits for SDK initialization before reading from storage.\n */\n useEffect(() => {\n if (!isInitialized) return;\n\n (async (): Promise<void> => {\n try {\n const storageManager: any = await getStorageManager();\n const tempData: any = await storageManager?.getTemporaryData();\n if (tempData?.challengeToken) {\n challengeTokenRef.current = tempData.challengeToken as string;\n }\n } finally {\n setIsStorageReady(true);\n }\n })();\n }, [isInitialized]);\n\n /**\n * Updates challengeTokenRef immediately (stale-closure safe) and persists via\n * the provider's StorageManager so the token survives OAuth redirects.\n */\n const setChallengeToken = async (challengeToken: string | null): Promise<void> => {\n challengeTokenRef.current = challengeToken;\n try {\n const storageManager: any = await getStorageManager();\n if (storageManager) {\n if (challengeToken) {\n await storageManager.setTemporaryDataParameter('challengeToken', challengeToken);\n } else {\n await storageManager.removeTemporaryDataParameter('challengeToken');\n }\n }\n } catch {\n logger.warn('Failed to persist challenge token in storage.');\n }\n };\n\n /**\n * Clear all flow-related storage and state.\n */\n const clearFlowState = async (): Promise<void> => {\n // Clear the expired flow state to prevent rendering a stale form with a null executionId.\n // Kept before the first await so callers that do not await this function still apply the\n // reset in one batch, ahead of the setError that follows.\n setExecutionId(null);\n setComponents([]);\n setAdditionalData({});\n setIsFlowInitialized(false);\n await setChallengeToken(null);\n try {\n const storageManager: any = await getStorageManager();\n await storageManager?.removeHybridDataParameter?.('authId');\n } catch {\n logger.warn('Failed to clear authId from hybrid storage.');\n }\n setIsTimeoutDisabled(false);\n // Reset refs to allow new flows to start properly\n oauthCodeProcessedRef.current = false;\n };\n\n /**\n * Parse URL parameters used in flows.\n */\n const getUrlParams = (): any => {\n const urlParams: any = new URL(window?.location?.href ?? '').searchParams;\n\n return {\n applicationId: urlParams.get('applicationId'),\n authId: urlParams.get('authId'),\n code: urlParams.get('code'),\n error: urlParams.get('error'),\n errorDescription: urlParams.get('error_description'),\n executionId: urlParams.get('executionId'),\n nonce: urlParams.get('nonce'),\n state: urlParams.get('state'),\n };\n };\n\n /**\n * Handle authId from URL and persist it via the storage manager so it survives URL cleanup.\n * ThunderIDReactClient.signIn() reads authId from storageManager.getHybridDataParameter('authId'),\n * not from raw sessionStorage, so we must use the same storage path here.\n */\n const handleAuthId = async (authId: string | null): Promise<void> => {\n if (authId) {\n try {\n const storageManager: any = await getStorageManager();\n await storageManager?.setHybridDataParameter?.('authId', authId);\n } catch {\n logger.warn('Failed to store authId in hybrid storage.');\n }\n }\n };\n\n /**\n * Clean up OAuth-related URL parameters from the browser URL.\n */\n const cleanupOAuthUrlParams = (includeNonce = false): void => {\n if (!window?.location?.href) return;\n const url: any = new URL(window.location.href);\n url.searchParams.delete('error');\n url.searchParams.delete('error_description');\n url.searchParams.delete('code');\n url.searchParams.delete('state');\n if (includeNonce) {\n url.searchParams.delete('nonce');\n }\n window?.history?.replaceState({}, '', url.toString());\n };\n\n /**\n * Clean up flow-related URL parameters (executionId, authId) from the browser URL.\n * Used after executionId is set in state to prevent using invalidated executionId from URL.\n */\n const cleanupFlowUrlParams = (): void => {\n if (!window?.location?.href) return;\n const url: any = new URL(window.location.href);\n url.searchParams.delete('executionId');\n url.searchParams.delete('authId');\n url.searchParams.delete('applicationId');\n window?.history?.replaceState({}, '', url.toString());\n };\n\n /**\n * Set error state and call onError callback.\n * Ensures isFlowInitialized is true so errors can be displayed in the UI.\n */\n const setError = (source: unknown): void => {\n // Updater form, so React stores a FlowErrorBuilder instead of calling it.\n setFlowErrorSource(() => source);\n setIsFlowInitialized(true);\n onError?.(resolveFlowError(source, t));\n };\n\n /**\n * Handle OAuth error from URL parameters.\n * Clears flow state, creates error, and cleans up URL.\n */\n const handleOAuthError = (error: string, errorDescription: string | null): void => {\n clearFlowState();\n const errorMessage: any = errorDescription || `OAuth error: ${error}`;\n const err: any = new ThunderIDRuntimeError(errorMessage, 'SIGN_IN_ERROR', 'react');\n setError(err);\n cleanupOAuthUrlParams(true);\n };\n\n /**\n * Handle REDIRECTION response by storing flow state and redirecting to OAuth provider.\n */\n const handleRedirection = async (response: EmbeddedSignInFlowResponse): Promise<boolean> => {\n if (response.type === EmbeddedSignInFlowType.Redirection) {\n const redirectURL: any = (response.data as any)?.redirectURL || (response as any)?.redirectURL;\n\n if (redirectURL && window?.location) {\n if (response.executionId) {\n setExecutionId(response.executionId);\n }\n await setChallengeToken(response.challengeToken ?? null);\n\n const urlParams: any = getUrlParams();\n await handleAuthId(urlParams.authId);\n\n initiateOAuthRedirect(redirectURL, vendor);\n return true;\n }\n }\n return false;\n };\n\n /**\n * Handle ERROR and COMPLETE responses. Returns true if fully handled.\n * ERROR + executionId: recoverable — session preserved for retry.\n * ERROR + no executionId: terminal — clear state and surface the error.\n */\n const handleTerminalResponse = async (response: EmbeddedSignInFlowResponse): Promise<boolean> => {\n if (response.flowStatus === EmbeddedSignInFlowStatus.Error) {\n // Propagate OAuth error to the client\n if (response.redirectUrl && window?.location) {\n setIsSubmitting(false);\n await clearFlowState();\n cleanupOAuthUrlParams(true);\n onError?.(new Error(extractErrorMessage(response, t)));\n window.location.href = response.redirectUrl;\n\n return true;\n }\n\n if (response.executionId) {\n // Recoverable: session still alive. Show inline error without firing onError.\n setExecutionId(response.executionId);\n await setChallengeToken(response.challengeToken ?? null);\n setIsFlowInitialized(true);\n setFlowErrorSource(response);\n return true;\n }\n // Terminal: backend invalidated the session — clear all state.\n await clearFlowState();\n setError(response);\n cleanupFlowUrlParams();\n return true;\n }\n\n if (response.flowStatus === EmbeddedSignInFlowStatus.Complete) {\n // Get redirectUrl from response (from /oauth2/auth/callback) or fall back to afterSignInUrl\n const redirectUrl: any = (response as any)?.redirectUrl || (response as any)?.redirect_uri;\n const finalRedirectUrl: any = redirectUrl || afterSignInUrl;\n\n // Clear submitting state before redirect\n setIsSubmitting(false);\n\n // Clear all OAuth-related storage on successful completion\n setExecutionId(null);\n await setChallengeToken(null);\n setIsFlowInitialized(false);\n sessionStorage.removeItem(`${vendor}_execution_id`);\n try {\n const storageManager: any = await getStorageManager();\n await storageManager?.removeHybridDataParameter?.('authId');\n } catch {\n logger.warn('Failed to clear authId from hybrid storage after completion.');\n }\n\n // Clean up OAuth URL params before redirect\n cleanupOAuthUrlParams(true);\n\n if (onSuccess) {\n onSuccess({\n redirectUrl: finalRedirectUrl,\n ...(response.data || {}),\n });\n }\n\n if (finalRedirectUrl && window?.location) {\n window.location.href = finalRedirectUrl;\n }\n\n return true;\n }\n\n return false;\n };\n\n /**\n * Initialize the authentication flow.\n * Priority: executionId > applicationId (from context) > applicationId (from URL)\n */\n const initializeFlow = async (): Promise<void> => {\n const urlParams: any = getUrlParams();\n\n // Reset OAuth code processed ref when starting a new flow\n oauthCodeProcessedRef.current = false;\n // Clear stale serverFieldErrors so the new flow doesn't inherit them via render-prop.\n setServerFieldErrors(null);\n\n await handleAuthId(urlParams.authId);\n\n const effectiveApplicationId: any = applicationId || urlParams.applicationId;\n\n // On a page refresh the executionId is no longer in the URL (it is scrubbed by\n // cleanupFlowUrlParams after the first load). Fall back to the executionId persisted in\n // sessionStorage so the in-progress flow can be resumed instead of starting a new flow.\n // This is required for authorization_code apps where direct new-flow initiation is blocked\n // server-side and the flow must be initiated through the OAuth /authorize endpoint.\n const storedExecutionId: any = !urlParams.executionId ? sessionStorage.getItem(`${vendor}_execution_id`) : null;\n const resumeExecutionId: any = urlParams.executionId || storedExecutionId;\n\n if (!resumeExecutionId && !effectiveApplicationId) {\n const error: any = new ThunderIDRuntimeError(\n 'Either executionId or applicationId is required for authentication',\n 'SIGN_IN_ERROR',\n 'react',\n );\n setError(error);\n\n return;\n }\n\n try {\n setFlowErrorSource(null);\n\n let response: EmbeddedSignInFlowResponse;\n\n if (resumeExecutionId) {\n try {\n response = (await signIn({\n executionId: resumeExecutionId,\n ...(challengeTokenRef.current ? {challengeToken: challengeTokenRef.current} : {}),\n })) as EmbeddedSignInFlowResponse;\n } catch (resumeError) {\n // Only treat a stale/expired session (HTTP 400 from the server, meaning the stored\n // executionId is no longer valid) as a recoverable condition. Transient failures\n // such as 5xx server errors or network errors are rethrown so they surface correctly.\n const isStaleSession: boolean =\n storedExecutionId &&\n resumeExecutionId === storedExecutionId &&\n resumeError instanceof ThunderIDAPIError &&\n resumeError.statusCode === 400;\n\n if (isStaleSession) {\n setExecutionId(null);\n try {\n const storageManager: any = await getStorageManager();\n await storageManager?.removeHybridDataParameter?.('authId');\n } catch {\n logger.warn('Failed to clear authId from hybrid storage.');\n }\n if (!effectiveApplicationId) {\n const expiredError: FlowErrorBuilder = (translate) =>\n new ThunderIDRuntimeError(\n translate('errors.signin.session.expired') ||\n 'Your session has expired. Please return to the application and sign in again.',\n 'SIGN_IN_ERROR',\n 'react',\n );\n setError(expiredError);\n return;\n }\n response = (await signIn({\n applicationId: effectiveApplicationId,\n flowType: EmbeddedFlowType.Authentication,\n ...(scopes && {scopes}),\n ...(organizationUnitId && {ouId: organizationUnitId}),\n })) as EmbeddedSignInFlowResponse;\n } else {\n throw resumeError;\n }\n }\n } else {\n response = (await signIn({\n applicationId: effectiveApplicationId,\n flowType: EmbeddedFlowType.Authentication,\n ...(scopes && {scopes}),\n ...(organizationUnitId && {ouId: organizationUnitId}),\n })) as EmbeddedSignInFlowResponse;\n }\n\n if (await handleRedirection(response)) {\n return;\n }\n\n // Handle a flow that completes (or errors) on the very first step — e.g. a reused SSO\n // session lets the backend return COMPLETE immediately with no UI components. Without\n // this the UI would fall through with no components and spin forever.\n if (await handleTerminalResponse(response)) {\n // Only reset the init gate for unrecoverable Error responses so the user can retry;\n // Complete-without-redirect would otherwise kick off a fresh flow unintentionally.\n if (response.flowStatus === EmbeddedSignInFlowStatus.Error && !response.executionId) {\n initializationAttemptedRef.current = false;\n }\n return;\n }\n\n const {\n executionId: normalizedExecutionId,\n components: normalizedComponents,\n additionalData: normalizedAdditionalData,\n } = normalizeFlowResponse(\n response,\n t,\n {\n resolveTranslations: false,\n },\n meta,\n );\n\n await setChallengeToken(response.challengeToken ?? null);\n\n if (normalizedExecutionId && normalizedComponents) {\n setExecutionId(normalizedExecutionId);\n setComponents(normalizedComponents);\n setAdditionalData(normalizedAdditionalData ?? {});\n setIsFlowInitialized(true);\n setIsTimeoutDisabled(false);\n // Clean up executionId from URL after setting it in state\n cleanupFlowUrlParams();\n }\n } catch (error) {\n const err: any = error;\n await clearFlowState();\n\n setError(err);\n initializationAttemptedRef.current = false;\n }\n };\n\n /**\n * Initialize the flow and handle cleanup of stale flow state.\n */\n useEffect(() => {\n const urlParams: any = getUrlParams();\n\n // Check for OAuth error in URL\n if (urlParams.error) {\n handleOAuthError(urlParams.error, urlParams.errorDescription);\n return;\n }\n\n handleAuthId(urlParams.authId);\n\n // Skip OAuth code processing - let the dedicated OAuth useEffect handle it\n // No action needed here as the dedicated useEffect will handle it\n }, []);\n\n useEffect(() => {\n // Only initialize if we're not processing an OAuth callback or submission.\n // Wait for isStorageReady so the challenge token is restored from storage before\n // we attempt to resume a persisted executionId — the server requires it.\n const currentUrlParams: any = getUrlParams();\n if (\n isInitialized &&\n isStorageReady &&\n !isLoading &&\n !isFlowInitialized &&\n !initializationAttemptedRef.current &&\n !currentExecutionId &&\n !currentUrlParams.code &&\n !currentUrlParams.state &&\n !isSubmitting &&\n !oauthCodeProcessedRef.current\n ) {\n initializationAttemptedRef.current = true;\n initializeFlow();\n }\n }, [isInitialized, isStorageReady, isLoading, isFlowInitialized, currentExecutionId]);\n\n /**\n * Handle form submission from BaseSignIn or render props.\n */\n const handleSubmit = async (payload: EmbeddedSignInFlowRequest): Promise<void> => {\n // Use executionId from payload if available, otherwise fall back to currentExecutionId\n const effectiveExecutionId: any = payload.executionId || currentExecutionId;\n\n if (!effectiveExecutionId) {\n throw new Error('No active flow ID');\n }\n\n let processedInputs: Record<string, any> = {...payload.inputs};\n\n // Read and strip the sentinel up front so it can never reach the wire as an input\n const consentReason: string | undefined = processedInputs[CONSENT_REASON_KEY];\n delete processedInputs[CONSENT_REASON_KEY];\n\n // Auto-compile consent decisions if we are currently on a consent prompt step\n if (additionalData?.['consentPrompt']) {\n try {\n const consentPromptRawData: any = additionalData['consentPrompt'];\n const purposes: any[] =\n typeof consentPromptRawData === 'string'\n ? JSON.parse(consentPromptRawData)\n : consentPromptRawData.purposes || consentPromptRawData;\n\n // Find the action component to determine if it was a deny action\n let isDeny = false;\n if (payload.action) {\n // Flatten components to find the action\n const findAction = (comps: any[]): any => {\n if (!comps || comps.length === 0) return null;\n\n const found: any = comps.find((c: any) => c.id === payload.action);\n if (found) return found;\n\n return comps.reduce((acc: any, c: any) => {\n if (acc) return acc;\n if (c.components) return findAction(c.components);\n return null;\n }, null);\n };\n\n const submitAction: any = findAction(components);\n\n if (submitAction && submitAction.variant?.toLowerCase() !== 'primary') {\n isDeny = true;\n }\n }\n\n // An expired prompt is never an approval, whichever action carried the submission\n if (consentReason === ConsentConstants.REASON_TIMEOUT) {\n isDeny = true;\n }\n\n // Approval waits while an approved authorization detail shows a value that cannot be submitted\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n if (!isDeny && isConsentApprovalBlocked(purposes, processedInputs)) {\n return;\n }\n\n // An explicit denial carries a reason too, so the server never has to infer one\n const reason: string | undefined = consentReason ?? (isDeny ? ConsentConstants.REASON_USER_DENIED : undefined);\n\n processedInputs = compileConsentDecisions(processedInputs, purposes, {\n approved: !isDeny,\n ...(reason ? {reason} : {}),\n });\n } catch (e) {\n // Failed to construct consent_decisions payload automatically\n }\n }\n\n try {\n setIsSubmitting(true);\n setFlowErrorSource(null);\n // Clear any field errors from the previous response before the new round-trip.\n setServerFieldErrors(null);\n\n const response: EmbeddedSignInFlowResponse = (await signIn({\n executionId: effectiveExecutionId,\n ...payload,\n inputs: processedInputs,\n ...(challengeTokenRef.current ? {challengeToken: challengeTokenRef.current} : {}),\n })) as EmbeddedSignInFlowResponse;\n\n if (await handleRedirection(response)) {\n return;\n }\n if (\n response.data?.additionalData?.['passkeyChallenge'] ||\n response.data?.additionalData?.['passkeyCreationOptions']\n ) {\n const {passkeyChallenge, passkeyCreationOptions}: any = response.data.additionalData;\n const effectiveExecutionIdForPasskey: any = response.executionId || effectiveExecutionId;\n\n // Reset passkey processed ref to allow processing\n passkeyProcessedRef.current = false;\n\n await setChallengeToken(response.challengeToken ?? null);\n\n // Set passkey state to trigger the passkey\n setPasskeyState({\n actionId: 'submit',\n challenge: passkeyChallenge,\n creationOptions: passkeyCreationOptions,\n error: null,\n executionId: effectiveExecutionIdForPasskey,\n isActive: true,\n });\n setIsSubmitting(false);\n\n return;\n }\n\n // Handle terminal flow statuses before normalization.\n if (await handleTerminalResponse(response)) {\n return;\n }\n\n const {\n executionId: normalizedExecutionId,\n components: normalizedComponents,\n additionalData: normalizedAdditionalData,\n } = normalizeFlowResponse(\n response,\n t,\n {\n resolveTranslations: false,\n },\n meta,\n );\n\n // Always update challenge token on any INCOMPLETE response — token rotates every step.\n await setChallengeToken(response.challengeToken ?? null);\n\n // Update executionId if response contains a new one\n if (normalizedExecutionId && normalizedComponents) {\n setExecutionId(normalizedExecutionId);\n setComponents(normalizedComponents);\n setAdditionalData(normalizedAdditionalData ?? {});\n setIsTimeoutDisabled(false);\n // Ensure flow is marked as initialized when we have components\n setIsFlowInitialized(true);\n // Clean up executionId from URL after setting it in state\n cleanupFlowUrlParams();\n\n // Surface server-side validation failures so BaseSignIn can inject them into\n // the form-level fieldErrors state used by the render-prop / default UI.\n const responseFieldErrors: FieldError[] | undefined = (response.data as any)?.fieldErrors;\n if (responseFieldErrors && responseFieldErrors.length > 0) {\n setServerFieldErrors(responseFieldErrors);\n }\n\n // Display error from INCOMPLETE response\n if ((response as any)?.error) {\n setFlowErrorSource(response);\n }\n }\n } catch (error) {\n const err: any = error;\n await clearFlowState();\n\n setError(err);\n return;\n } finally {\n setIsSubmitting(false);\n }\n };\n\n /**\n * Handle step timeout if configured in additionalData.\n *\n * An expired consent prompt is auto-submitted as a denial carrying the timeout reason, because its\n * actions no longer lead anywhere and the user would otherwise be stranded on the prompt. The\n * server discards those decisions and records nothing. Every other kind of step surfaces the\n * expiry error instead.\n */\n timeoutContextRef.current = {\n components,\n hasConsentPrompt: Boolean(additionalData?.['consentPrompt']),\n submit: handleSubmit,\n };\n\n useEffect(() => {\n const timeoutMs: number = Number(additionalData?.['stepTimeout']) || 0;\n if (timeoutMs <= 0 || !isFlowInitialized) {\n setIsTimeoutDisabled(false);\n return undefined;\n }\n\n const handleTimeout = (): void => {\n setIsTimeoutDisabled(true);\n\n const expiredError: FlowErrorBuilder = (translate) =>\n new Error(translate('errors.signin.timeout') || 'Time allowed to complete the step has expired.');\n\n // Read through the ref so the timer always sees the step that is on screen when it fires\n const context = timeoutContextRef.current;\n const actionId: string | undefined = context?.hasConsentPrompt\n ? findConsentSubmitActionId(context.components)\n : undefined;\n\n // Without an action the prompt node cannot be routed, so there is nothing to submit\n if (actionId && context && timeoutSubmittedForRef.current !== timeoutMs) {\n timeoutSubmittedForRef.current = timeoutMs;\n context\n .submit({action: actionId, inputs: {[CONSENT_REASON_KEY]: ConsentConstants.REASON_TIMEOUT}})\n .catch(() => setError(expiredError));\n return;\n }\n\n setError(expiredError);\n };\n\n const timerId: ReturnType<typeof setTimeout> = setTimeout(handleTimeout, Math.max(0, timeoutMs - Date.now()));\n\n return () => clearTimeout(timerId);\n }, [additionalData?.['stepTimeout'], isFlowInitialized, t]);\n\n /**\n * Handle authentication errors.\n */\n const handleError = (error: Error): void => {\n setError(error);\n };\n\n useOAuthCallback({\n currentExecutionId,\n executionIdStorageKey: `${vendor}_execution_id`,\n isInitialized: isInitialized && !isLoading && isStorageReady,\n isSubmitting,\n onError: (err: any) => {\n clearFlowState();\n setError(err instanceof Error ? err : new Error(String(err)));\n },\n onSubmit: async (payload: any) => handleSubmit({executionId: payload.executionId, inputs: payload.inputs}),\n processedRef: oauthCodeProcessedRef,\n setExecutionId,\n });\n\n /**\n * Handle passkey authentication/registration when passkey state becomes active.\n * This effect auto-triggers the browser passkey popup and submits the result.\n */\n useEffect(() => {\n if (\n !passkeyState.isActive ||\n (!passkeyState.challenge && !passkeyState.creationOptions) ||\n !passkeyState.executionId\n ) {\n return;\n }\n\n // Prevent re-processing\n if (passkeyProcessedRef.current) {\n return;\n }\n passkeyProcessedRef.current = true;\n\n const performPasskeyProcess = async (): Promise<void> => {\n let inputs: Record<string, string>;\n\n if (passkeyState.challenge) {\n const passkeyResponse: any = await handlePasskeyAuthentication(passkeyState.challenge);\n const passkeyResponseObj: any = JSON.parse(passkeyResponse);\n\n inputs = {\n authenticatorData: passkeyResponseObj.response.authenticatorData,\n clientDataJSON: passkeyResponseObj.response.clientDataJSON,\n credentialId: passkeyResponseObj.id,\n signature: passkeyResponseObj.response.signature,\n userHandle: passkeyResponseObj.response.userHandle,\n };\n } else if (passkeyState.creationOptions) {\n const passkeyResponse: any = await handlePasskeyRegistration(passkeyState.creationOptions);\n const passkeyResponseObj: any = JSON.parse(passkeyResponse);\n\n inputs = {\n attestationObject: passkeyResponseObj.response.attestationObject,\n clientDataJSON: passkeyResponseObj.response.clientDataJSON,\n credentialId: passkeyResponseObj.id,\n };\n } else {\n throw new Error('No passkey challenge or creation options available');\n }\n\n await handleSubmit({\n executionId: passkeyState.executionId ?? undefined,\n inputs,\n });\n };\n\n performPasskeyProcess()\n .then(() => {\n setPasskeyState({\n actionId: null,\n challenge: null,\n creationOptions: null,\n error: null,\n executionId: null,\n isActive: false,\n });\n })\n .catch((error: any) => {\n setPasskeyState((prev: any) => ({...prev, error: error as Error, isActive: false}));\n setError(error);\n });\n }, [passkeyState.isActive, passkeyState.challenge, passkeyState.creationOptions, passkeyState.executionId]);\n\n if (children) {\n // Collapse the server FieldError[] array to a single message per field map for\n // render-prop consumers. First error per field wins. Multi-error cases per\n // field are rare in practice (server typically returns one rule failure per\n // field in current flows) and consumers needing the full array can still read\n // it from the raw flow response.\n const renderPropFieldErrors: Record<string, string> = {};\n if (serverFieldErrors) {\n for (const fe of serverFieldErrors) {\n if (!(fe.identifier in renderPropFieldErrors)) {\n renderPropFieldErrors[fe.identifier] = fe.message;\n }\n }\n }\n\n const renderProps: SignInRenderProps = {\n additionalData,\n components,\n error: flowError,\n fieldErrors: renderPropFieldErrors,\n initialize: initializeFlow,\n isInitialized: isFlowInitialized,\n isLoading: isLoading || isSubmitting || !isInitialized,\n isTimeoutDisabled,\n meta,\n onSubmit: handleSubmit,\n };\n\n return <>{children(renderProps)}</>;\n }\n // Otherwise, render the default BaseSignIn component\n return (\n <BaseSignIn\n additionalData={additionalData}\n components={components}\n isLoading={isLoading || !isInitialized || !isFlowInitialized}\n isTimeoutDisabled={isTimeoutDisabled}\n onSubmit={handleSubmit}\n onError={handleError}\n error={flowError}\n className={className}\n size={size}\n variant={variant}\n preferences={preferences}\n revalidateOnChangeAfterBlur={revalidateOnChangeAfterBlur}\n serverFieldErrors={serverFieldErrors}\n />\n );\n};\n\nexport default SignIn;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseSignUp.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/SignUp/BaseSignUp.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseSignUp.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/SignUp/BaseSignUp.tsx"],"names":[],"mappings":"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"}