@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
@@ -1 +1 @@
1
- {"version":3,"file":"BaseUserProfile.styles.cjs","names":["valuePlaceholder: string","editButton: string","fieldInner: string","fieldActions: string","complexTextarea: string","objectKey: string","objectValue: string","root: string","card: string","header: string","profileInfo: string","name: string","profileSummary: string","sectionRow: string","sectionLabel: string","sectionValue: string","infoContainer: string","info: string","field: string","lastField: string","label: string","value: string","popup: string"],"sources":["../../../../../src/components/account/UserProfile/BaseUserProfile.styles.ts"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {Theme, withVendorCSSClassPrefix} from '@thunderid/browser';\nimport {useMemo} from 'react';\nimport {css} from '../../../styles/emotion';\n\n/**\n * Creates styles for the BaseUserProfile component\n * @param theme - The theme object containing design tokens\n * @param colorScheme - The current color scheme (used for memoization)\n * @returns Object containing CSS class names for component styling\n */\nconst useStyles = (theme: Theme, colorScheme: string): Record<string, string> => {\n const valuePlaceholder: string = css`\n font-style: italic;\n opacity: 0.7;\n `;\n\n const editButton: string = css`\n font-style: italic;\n text-decoration: underline;\n opacity: 0.7;\n padding: 0;\n min-height: auto;\n\n &:hover:not(:disabled) {\n background-color: transparent;\n }\n `;\n\n const fieldInner: string = css`\n flex: 1;\n display: flex;\n align-items: center;\n gap: ${theme.vars.spacing.unit};\n min-width: 0;\n `;\n\n const fieldActions: string = css`\n display: flex;\n gap: calc(${theme.vars.spacing.unit} / 2);\n align-items: center;\n margin-inline-start: calc(${theme.vars.spacing.unit} * 4);\n `;\n\n const complexTextarea: string = css`\n min-height: 60px;\n width: 100%;\n padding: 8px;\n border: 1px solid ${theme.vars.colors.border};\n border-radius: ${theme.vars.borderRadius.small};\n resize: vertical;\n `;\n\n const objectKey: string = css`\n padding: ${theme.vars.spacing.unit};\n vertical-align: top;\n `;\n\n const objectValue: string = css`\n padding: ${theme.vars.spacing.unit};\n vertical-align: top;\n `;\n\n return useMemo(() => {\n const root: string = css`\n padding: calc(${theme.vars.spacing.unit} * 4);\n min-width: 600px;\n margin: 0 auto;\n font-family: ${theme.vars.typography.fontFamily};\n `;\n\n const card: string = css`\n background: ${theme.vars.colors.background.surface};\n border-radius: ${theme.vars.borderRadius.large};\n `;\n\n const header: string = css`\n display: flex;\n align-items: center;\n gap: calc(${theme.vars.spacing.unit} * 1.5);\n margin-bottom: calc(${theme.vars.spacing.unit} * 1.5);\n `;\n\n const profileInfo: string = css`\n flex: 1;\n `;\n\n const name: string = css`\n font-size: 1.5rem;\n font-weight: 600;\n margin: 0;\n color: ${theme.vars.colors.text.primary};\n `;\n\n const profileSummary: string = css`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n `;\n\n const sectionRow: string = css`\n display: flex;\n align-items: center;\n padding: calc(${theme.vars.spacing.unit} * 1) 0;\n `;\n\n const sectionLabel: string = css`\n font-size: 0.875rem;\n font-weight: 600;\n color: ${theme.vars.colors.text.primary};\n width: 160px;\n flex-shrink: 0;\n `;\n\n const sectionValue: string = css`\n flex: 1;\n display: flex;\n align-items: center;\n gap: calc(${theme.vars.spacing.unit} * 1.5);\n font-size: 0.875rem;\n color: ${theme.vars.colors.text.primary};\n `;\n\n const infoContainer: string = css`\n display: flex;\n flex-direction: column;\n `;\n\n const info: string = css`\n padding: calc(${theme.vars.spacing.unit} * 1.5) 0;\n border-bottom: 1px solid ${theme.vars.colors.border};\n `;\n\n const field: string = css`\n display: flex;\n align-items: center;\n padding: calc(${theme.vars.spacing.unit} / 2) 0;\n min-height: 28px;\n `;\n\n const lastField: string = css`\n border-bottom: none;\n `;\n\n const label: string = css`\n font-size: 0.875rem;\n font-weight: 500;\n color: ${theme.vars.colors.text.secondary};\n width: 120px;\n flex-shrink: 0;\n line-height: 28px;\n text-align: start;\n `;\n\n const value: string = css`\n color: ${theme.vars.colors.text.primary};\n flex: 1;\n display: inline-block;\n align-items: center;\n gap: ${theme.vars.spacing.unit};\n overflow: hidden;\n min-width: 0;\n min-height: 28px;\n line-height: 28px;\n word-break: break-word;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 350px;\n text-align: start;\n\n .${withVendorCSSClassPrefix('form-control')} {\n margin-bottom: 0;\n }\n\n input {\n margin: 0;\n }\n\n table {\n background-color: ${theme.vars.colors.background.surface};\n border-radius: ${theme.vars.borderRadius.medium};\n white-space: normal;\n }\n\n td {\n border-color: ${theme.vars.colors.border};\n }\n `;\n\n const popup: string = css`\n padding: calc(${theme.vars.spacing.unit} * 2);\n `;\n\n const alert: string = css`\n margin-bottom: calc(${theme.vars.spacing.unit} * 3);\n `;\n\n return {\n alert,\n card,\n complexTextarea,\n editButton,\n field,\n fieldActions,\n fieldInner,\n header,\n info,\n infoContainer,\n label,\n lastField,\n name,\n objectKey,\n objectValue,\n popup,\n profileInfo,\n profileSummary,\n root,\n sectionLabel,\n sectionRow,\n sectionValue,\n value,\n valuePlaceholder,\n };\n }, [\n theme.vars.colors.background.surface,\n theme.vars.colors.text.primary,\n theme.vars.colors.text.secondary,\n theme.vars.colors.border,\n theme.vars.borderRadius.large,\n theme.vars.borderRadius.medium,\n theme.vars.spacing.unit,\n theme.vars.typography.fontFamily,\n colorScheme,\n ]);\n};\n\nexport default useStyles;\n"],"mappings":";;;;;;;;;;;;;;AAaA,MAAM,aAAa,OAAc,gBAAgD;CAC/E,MAAMA,mBAA2B,mBAAG;;;;CAKpC,MAAMC,aAAqB,mBAAG;;;;;;;;;;;CAY9B,MAAMC,aAAqB,mBAAG;;;;WAIrB,MAAM,KAAK,QAAQ,KAAK;;;CAIjC,MAAMC,eAAuB,mBAAG;;gBAElB,MAAM,KAAK,QAAQ,KAAK;;gCAER,MAAM,KAAK,QAAQ,KAAK;;CAGtD,MAAMC,kBAA0B,mBAAG;;;;wBAIb,MAAM,KAAK,OAAO,OAAO;qBAC5B,MAAM,KAAK,aAAa,MAAM;;;CAIjD,MAAMC,YAAoB,mBAAG;eAChB,MAAM,KAAK,QAAQ,KAAK;;;CAIrC,MAAMC,cAAsB,mBAAG;eAClB,MAAM,KAAK,QAAQ,KAAK;;;AAIrC,iCAAqB;EACnB,MAAMC,OAAe,mBAAG;sBACN,MAAM,KAAK,QAAQ,KAAK;;;qBAGzB,MAAM,KAAK,WAAW,WAAW;;EAGlD,MAAMC,OAAe,mBAAG;oBACR,MAAM,KAAK,OAAO,WAAW,QAAQ;uBAClC,MAAM,KAAK,aAAa,MAAM;;EAGjD,MAAMC,SAAiB,mBAAG;;;kBAGZ,MAAM,KAAK,QAAQ,KAAK;4BACd,MAAM,KAAK,QAAQ,KAAK;;EAGhD,MAAMC,cAAsB,mBAAG;;;EAI/B,MAAMC,OAAe,mBAAG;;;;eAIb,MAAM,KAAK,OAAO,KAAK,QAAQ;;EAG1C,MAAMC,iBAAyB,mBAAG;;;;;EAMlC,MAAMC,aAAqB,mBAAG;;;sBAGZ,MAAM,KAAK,QAAQ,KAAK;;EAG1C,MAAMC,eAAuB,mBAAG;;;eAGrB,MAAM,KAAK,OAAO,KAAK,QAAQ;;;;EAK1C,MAAMC,eAAuB,mBAAG;;;;kBAIlB,MAAM,KAAK,QAAQ,KAAK;;eAE3B,MAAM,KAAK,OAAO,KAAK,QAAQ;;EAG1C,MAAMC,gBAAwB,mBAAG;;;;EAKjC,MAAMC,OAAe,mBAAG;sBACN,MAAM,KAAK,QAAQ,KAAK;iCACb,MAAM,KAAK,OAAO,OAAO;;EAGtD,MAAMC,QAAgB,mBAAG;;;sBAGP,MAAM,KAAK,QAAQ,KAAK;;;EAI1C,MAAMC,YAAoB,mBAAG;;;EAI7B,MAAMC,QAAgB,mBAAG;;;eAGd,MAAM,KAAK,OAAO,KAAK,UAAU;;;;;;EAO5C,MAAMC,QAAgB,mBAAG;eACd,MAAM,KAAK,OAAO,KAAK,QAAQ;;;;aAIjC,MAAM,KAAK,QAAQ,KAAK;;;;;;;;;;;2DAWH,eAAe,CAAC;;;;;;;;;4BAStB,MAAM,KAAK,OAAO,WAAW,QAAQ;yBACxC,MAAM,KAAK,aAAa,OAAO;;;;;wBAKhC,MAAM,KAAK,OAAO,OAAO;;;EAI7C,MAAMC,QAAgB,mBAAG;sBACP,MAAM,KAAK,QAAQ,KAAK;;AAO1C,SAAO;GACL,OALoB,mBAAG;4BACD,MAAM,KAAK,QAAQ,KAAK;;GAK9C;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;IACA;EACD,MAAM,KAAK,OAAO,WAAW;EAC7B,MAAM,KAAK,OAAO,KAAK;EACvB,MAAM,KAAK,OAAO,KAAK;EACvB,MAAM,KAAK,OAAO;EAClB,MAAM,KAAK,aAAa;EACxB,MAAM,KAAK,aAAa;EACxB,MAAM,KAAK,QAAQ;EACnB,MAAM,KAAK,WAAW;EACtB;EACD,CAAC;;AAGJ,qCAAe"}
1
+ {"version":3,"file":"BaseUserProfile.styles.cjs","names":["valuePlaceholder: string","editButton: string","fieldInner: string","fieldActions: string","complexTextarea: string","objectKey: string","objectValue: string","root: string","card: string","header: string","profileInfo: string","name: string","profileSummary: string","sectionRow: string","sectionLabel: string","sectionValue: string","infoContainer: string","info: string","field: string","lastField: string","label: string","value: string","popup: string","alert: string","verificationStatus: string","verified: string","unverified: string","verification: string","verificationInline: string"],"sources":["../../../../../src/components/account/UserProfile/BaseUserProfile.styles.ts"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {Theme, withVendorCSSClassPrefix} from '@thunderid/browser';\nimport {useMemo} from 'react';\nimport {css} from '../../../styles/emotion';\n\n/**\n * Creates styles for the BaseUserProfile component\n * @param theme - The theme object containing design tokens\n * @param colorScheme - The current color scheme (used for memoization)\n * @returns Object containing CSS class names for component styling\n */\nconst useStyles = (theme: Theme, colorScheme: string): Record<string, string> => {\n const valuePlaceholder: string = css`\n font-style: italic;\n opacity: 0.7;\n `;\n\n const editButton: string = css`\n font-style: italic;\n text-decoration: underline;\n opacity: 0.7;\n padding: 0;\n min-height: auto;\n\n &:hover:not(:disabled) {\n background-color: transparent;\n }\n `;\n\n const fieldInner: string = css`\n flex: 1;\n display: flex;\n align-items: center;\n gap: ${theme.vars.spacing.unit};\n min-width: 0;\n `;\n\n const fieldActions: string = css`\n display: flex;\n gap: calc(${theme.vars.spacing.unit} / 2);\n align-items: center;\n margin-inline-start: calc(${theme.vars.spacing.unit} * 4);\n `;\n\n const complexTextarea: string = css`\n min-height: 60px;\n width: 100%;\n padding: 8px;\n border: 1px solid ${theme.vars.colors.border};\n border-radius: ${theme.vars.borderRadius.small};\n resize: vertical;\n `;\n\n const objectKey: string = css`\n padding: ${theme.vars.spacing.unit};\n vertical-align: top;\n `;\n\n const objectValue: string = css`\n padding: ${theme.vars.spacing.unit};\n vertical-align: top;\n `;\n\n return useMemo(() => {\n const root: string = css`\n padding: calc(${theme.vars.spacing.unit} * 4);\n min-width: 600px;\n margin: 0 auto;\n font-family: ${theme.vars.typography.fontFamily};\n `;\n\n const card: string = css`\n background: ${theme.vars.colors.background.surface};\n border-radius: ${theme.vars.borderRadius.large};\n `;\n\n const header: string = css`\n display: flex;\n align-items: center;\n gap: calc(${theme.vars.spacing.unit} * 1.5);\n margin-bottom: calc(${theme.vars.spacing.unit} * 1.5);\n `;\n\n const profileInfo: string = css`\n flex: 1;\n `;\n\n const name: string = css`\n font-size: 1.5rem;\n font-weight: 600;\n margin: 0;\n color: ${theme.vars.colors.text.primary};\n `;\n\n const profileSummary: string = css`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n `;\n\n const sectionRow: string = css`\n display: flex;\n align-items: center;\n padding: calc(${theme.vars.spacing.unit} * 1) 0;\n `;\n\n const sectionLabel: string = css`\n font-size: 0.875rem;\n font-weight: 600;\n color: ${theme.vars.colors.text.primary};\n width: 160px;\n flex-shrink: 0;\n `;\n\n const sectionValue: string = css`\n flex: 1;\n display: flex;\n align-items: center;\n gap: calc(${theme.vars.spacing.unit} * 1.5);\n font-size: 0.875rem;\n color: ${theme.vars.colors.text.primary};\n `;\n\n const infoContainer: string = css`\n display: flex;\n flex-direction: column;\n `;\n\n const info: string = css`\n padding: calc(${theme.vars.spacing.unit} * 1.5) 0;\n border-bottom: 1px solid ${theme.vars.colors.border};\n `;\n\n const field: string = css`\n display: flex;\n align-items: center;\n padding: calc(${theme.vars.spacing.unit} / 2) 0;\n min-height: 28px;\n `;\n\n const lastField: string = css`\n border-bottom: none;\n `;\n\n const label: string = css`\n font-size: 0.875rem;\n font-weight: 500;\n color: ${theme.vars.colors.text.secondary};\n width: 120px;\n flex-shrink: 0;\n line-height: 28px;\n text-align: start;\n `;\n\n const value: string = css`\n color: ${theme.vars.colors.text.primary};\n flex: 1;\n display: inline-block;\n align-items: center;\n gap: ${theme.vars.spacing.unit};\n overflow: hidden;\n min-width: 0;\n min-height: 28px;\n line-height: 28px;\n word-break: break-word;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 350px;\n text-align: start;\n\n .${withVendorCSSClassPrefix('form-control')} {\n margin-bottom: 0;\n }\n\n input {\n margin: 0;\n }\n\n table {\n background-color: ${theme.vars.colors.background.surface};\n border-radius: ${theme.vars.borderRadius.medium};\n white-space: normal;\n }\n\n td {\n border-color: ${theme.vars.colors.border};\n }\n `;\n\n const popup: string = css`\n padding: calc(${theme.vars.spacing.unit} * 2);\n `;\n\n const alert: string = css`\n margin-bottom: calc(${theme.vars.spacing.unit} * 3);\n `;\n\n const verificationStatus: string = css`\n display: inline-flex;\n flex-shrink: 0;\n gap: calc(${theme.vars.spacing.unit} / 2);\n align-items: center;\n padding: 0 ${theme.vars.spacing.unit};\n border-radius: 999px;\n font-size: 0.75rem;\n font-weight: 500;\n line-height: 22px;\n white-space: nowrap;\n `;\n\n const verified: string = css`\n color: ${theme.vars.colors.success.dark ?? theme.vars.colors.success.main};\n background: color-mix(in srgb, ${theme.vars.colors.success.main} 12%, transparent);\n `;\n\n // Amber marks an action the user can take.\n const unverified: string = css`\n color: ${theme.vars.colors.warning.contrastText};\n background: color-mix(in srgb, ${theme.vars.colors.warning.main} 14%, transparent);\n `;\n\n const verification: string = css`\n padding: ${theme.vars.spacing.unit} 0;\n `;\n\n // Starts where the value column starts: the label's width plus the row gap.\n const verificationInline: string = css`\n margin-inline-start: calc(120px + ${theme.vars.spacing.unit});\n `;\n\n const verificationDialog: string = css`\n box-sizing: border-box;\n width: min(448px, calc(100vw - calc(${theme.vars.spacing.unit} * 4)));\n padding: calc(${theme.vars.spacing.unit} * 2);\n `;\n\n // Hidden from sight, read by assistive technology.\n const visuallyHidden: string = css`\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n `;\n\n return {\n alert,\n card,\n complexTextarea,\n editButton,\n field,\n fieldActions,\n fieldInner,\n header,\n info,\n infoContainer,\n label,\n lastField,\n name,\n objectKey,\n objectValue,\n popup,\n profileInfo,\n profileSummary,\n root,\n sectionLabel,\n sectionRow,\n sectionValue,\n unverified,\n value,\n valuePlaceholder,\n verification,\n verificationDialog,\n verificationInline,\n verificationStatus,\n verified,\n visuallyHidden,\n };\n }, [\n theme.vars.colors.background.surface,\n theme.vars.colors.text.primary,\n theme.vars.colors.text.secondary,\n theme.vars.colors.border,\n theme.vars.colors.success.main,\n theme.vars.colors.success.dark,\n theme.vars.colors.warning.contrastText,\n theme.vars.colors.warning.main,\n theme.vars.borderRadius.large,\n theme.vars.borderRadius.small,\n theme.vars.borderRadius.medium,\n theme.vars.spacing.unit,\n theme.vars.typography.fontFamily,\n colorScheme,\n ]);\n};\n\nexport default useStyles;\n"],"mappings":"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"}
@@ -4,6 +4,7 @@ const require_useUser = require('../../../contexts/User/useUser.cjs');
4
4
  const require_useTranslation = require('../../../hooks/useTranslation.cjs');
5
5
  const require_BaseUserProfile = require('./BaseUserProfile.cjs');
6
6
  const require_updateMeProfile = require('../../../api/account/updateMeProfile.cjs');
7
+ const require_VerifyAttribute = require('../VerifyAttribute/VerifyAttribute.cjs');
7
8
  let __thunderid_browser = require("@thunderid/browser");
8
9
  __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
9
10
  let react = require("react");
@@ -45,7 +46,7 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
45
46
  * />
46
47
  * ```
47
48
  */
48
- const UserProfile = ({ preferences, editable = true,...rest }) => {
49
+ const UserProfile = ({ preferences, editable = true, verificationFlowHandle = __thunderid_browser.AttributeVerificationConstants.DEFAULT_FLOW_HANDLE,...rest }) => {
49
50
  const { baseUrl, endpoints, instanceId, preferences: contextPreferences } = require_useThunderID.default();
50
51
  const { profile, flattenedProfile, onUpdateProfile, userSchema } = require_useUser.default();
51
52
  const resolvedPreferences = {
@@ -78,7 +79,18 @@ const UserProfile = ({ preferences, editable = true,...rest }) => {
78
79
  setError(message);
79
80
  }
80
81
  };
82
+ const renderVerification = ({ attribute, attributeDisplayName, onCancel, onComplete }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_VerifyAttribute.default, {
83
+ attribute,
84
+ attributeDisplayName,
85
+ flowHandle: verificationFlowHandle,
86
+ preferences: resolvedPreferences,
87
+ variant: rest.mode === "popup" ? "outlined" : "flat",
88
+ onCancel,
89
+ onComplete,
90
+ onDone: onCancel
91
+ }, attribute);
81
92
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BaseUserProfile.default, {
93
+ renderVerification: isEditableProfile ? renderVerification : void 0,
82
94
  profile: profile ?? void 0,
83
95
  flattenedProfile: flattenedProfile ?? void 0,
84
96
  userSchema: userSchema ?? void 0,
@@ -1 +1 @@
1
- {"version":3,"file":"UserProfile.cjs","names":["UserProfile: FC<UserProfileProps>","useThunderID","useUser","useTranslation","isEditableProfile: boolean","updatedAttributes: Record<string, unknown>","updateMeProfile","caughtError: unknown","message: string","ThunderIDError","BaseUserProfile"],"sources":["../../../../../src/components/account/UserProfile/UserProfile.tsx"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {ThunderIDError, User, deepMerge, resolveResourceEndpoint} from '@thunderid/browser';\nimport {FC, ReactElement, useState} from 'react';\n// eslint-disable-next-line import/no-named-as-default\nimport BaseUserProfile, {BaseUserProfileProps} from './BaseUserProfile';\nimport updateMeProfile from '../../../api/account/updateMeProfile';\nimport useThunderID from '../../../contexts/ThunderID/useThunderID';\nimport useUser from '../../../contexts/User/useUser';\nimport useTranslation from '../../../hooks/useTranslation';\n\n/**\n * Props for the UserProfile component.\n * Extends BaseUserProfileProps but makes the user prop optional since it will be obtained from useThunderID\n */\nexport type UserProfileProps = Omit<BaseUserProfileProps, 'user' | 'profile' | 'flattenedProfile'>;\n\n/**\n * UserProfile component displays the authenticated user's profile information in a\n * structured and styled format. It shows user details such as display name, email,\n * username, and other available profile information from ThunderID.\n *\n * This component is the React-specific implementation that uses the BaseUserProfile\n * and automatically retrieves the user data from ThunderID context if not provided.\n *\n * @example\n * ```tsx\n * // Basic usage - will use user from ThunderID context\n * <UserProfile />\n *\n * // With explicit user data\n * <UserProfile user={specificUser} />\n *\n * // With card layout and custom fallback\n * <UserProfile\n * cardLayout={true}\n * fallback={<div>Please sign in to view your profile</div>}\n * />\n *\n * // With field filtering - only show specific fields\n * <UserProfile\n * showFields={['name.givenName', 'name.familyName', 'emails']}\n * />\n *\n * // With field hiding - hide specific fields\n * <UserProfile\n * hideFields={['phoneNumbers', 'addresses']}\n * />\n * ```\n */\nconst UserProfile: FC<UserProfileProps> = ({preferences, editable = true, ...rest}: UserProfileProps): ReactElement => {\n const {baseUrl, endpoints, instanceId, preferences: contextPreferences} = useThunderID();\n const {profile, flattenedProfile, onUpdateProfile, userSchema} = useUser();\n const resolvedPreferences = {\n ...contextPreferences,\n ...preferences,\n user: {\n ...contextPreferences?.user,\n ...preferences?.user,\n },\n };\n const {t} = useTranslation(resolvedPreferences?.i18n);\n const isEditableProfile: boolean = resolvedPreferences?.user?.fetchUserProfile === false ? false : editable;\n\n const [error, setError] = useState<string | null>(null);\n\n const handleProfileUpdate = async (payload: Record<string, unknown>): Promise<void> => {\n setError(null);\n\n try {\n const updatedAttributes: Record<string, unknown> = deepMerge(\n (profile?.['attributes'] as Record<string, unknown>) ?? {},\n payload,\n );\n\n Object.keys(updatedAttributes).forEach((key) => {\n if (updatedAttributes[key] === undefined || updatedAttributes[key] === null) {\n delete updatedAttributes[key];\n }\n });\n\n const response: User = await updateMeProfile({\n baseUrl,\n url: resolveResourceEndpoint('usersMe', {endpoints}),\n instanceId,\n payload: updatedAttributes,\n });\n onUpdateProfile(response);\n } catch (caughtError: unknown) {\n let message: string = t('user.profile.update.generic.error');\n\n if (caughtError instanceof ThunderIDError) {\n message = caughtError?.message;\n }\n\n setError(message);\n }\n };\n\n return (\n <BaseUserProfile\n profile={profile ?? undefined}\n flattenedProfile={flattenedProfile ?? undefined}\n userSchema={userSchema ?? undefined}\n editable={isEditableProfile}\n onUpdate={isEditableProfile ? handleProfileUpdate : undefined}\n error={error}\n preferences={resolvedPreferences}\n {...rest}\n />\n );\n};\n\nexport default UserProfile;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDA,MAAMA,eAAqC,EAAC,aAAa,WAAW,KAAM,GAAG,WAA0C;CACrH,MAAM,EAAC,SAAS,WAAW,YAAY,aAAa,uBAAsBC,8BAAc;CACxF,MAAM,EAAC,SAAS,kBAAkB,iBAAiB,eAAcC,yBAAS;CAC1E,MAAM,sBAAsB;EAC1B,GAAG;EACH,GAAG;EACH,MAAM;GACJ,GAAG,oBAAoB;GACvB,GAAG,aAAa;GACjB;EACF;CACD,MAAM,EAAC,MAAKC,+BAAe,qBAAqB,KAAK;CACrD,MAAMC,oBAA6B,qBAAqB,MAAM,qBAAqB,QAAQ,QAAQ;CAEnG,MAAM,CAAC,OAAO,gCAAoC,KAAK;CAEvD,MAAM,sBAAsB,OAAO,YAAoD;AACrF,WAAS,KAAK;AAEd,MAAI;GACF,MAAMC,uDACH,UAAU,iBAA6C,EAAE,EAC1D,QACD;AAED,UAAO,KAAK,kBAAkB,CAAC,SAAS,QAAQ;AAC9C,QAAI,kBAAkB,SAAS,UAAa,kBAAkB,SAAS,KACrE,QAAO,kBAAkB;KAE3B;AAQF,mBANuB,MAAMC,gCAAgB;IAC3C;IACA,sDAA6B,WAAW,EAAC,WAAU,CAAC;IACpD;IACA,SAAS;IACV,CAAC,CACuB;WAClBC,aAAsB;GAC7B,IAAIC,UAAkB,EAAE,oCAAoC;AAE5D,OAAI,uBAAuBC,mCACzB,WAAU,aAAa;AAGzB,YAAS,QAAQ;;;AAIrB,QACE,2CAACC;EACC,SAAS,WAAW;EACpB,kBAAkB,oBAAoB;EACtC,YAAY,cAAc;EAC1B,UAAU;EACV,UAAU,oBAAoB,sBAAsB;EAC7C;EACP,aAAa;EACb,GAAI;GACJ;;AAIN,0BAAe"}
1
+ {"version":3,"file":"UserProfile.cjs","names":["UserProfile: FC<UserProfileProps>","AttributeVerificationConstants","useThunderID","useUser","useTranslation","isEditableProfile: boolean","updatedAttributes: Record<string, unknown>","updateMeProfile","caughtError: unknown","message: string","ThunderIDError","VerifyAttribute","BaseUserProfile"],"sources":["../../../../../src/components/account/UserProfile/UserProfile.tsx"],"sourcesContent":["// Copyright 2025-2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AttributeVerificationConstants,\n ThunderIDError,\n User,\n deepMerge,\n resolveResourceEndpoint,\n} from '@thunderid/browser';\nimport {FC, ReactElement, ReactNode, useState} from 'react';\n// eslint-disable-next-line import/no-named-as-default\nimport BaseUserProfile, {BaseUserProfileProps, BaseUserProfileVerificationRenderProps} from './BaseUserProfile';\nimport updateMeProfile from '../../../api/account/updateMeProfile';\nimport useThunderID from '../../../contexts/ThunderID/useThunderID';\nimport useUser from '../../../contexts/User/useUser';\nimport useTranslation from '../../../hooks/useTranslation';\nimport VerifyAttribute from '../VerifyAttribute/VerifyAttribute';\n\n/**\n * Props for the UserProfile component.\n * Extends BaseUserProfileProps but makes the user prop optional since it will be obtained from useThunderID\n */\nexport type UserProfileProps = Omit<BaseUserProfileProps, 'user' | 'profile' | 'flattenedProfile'> & {\n /**\n * Handle of the `SELF` flow that verifies an attribute. Defaults to the server's shipped\n * `default-self-attribute-verification-flow`.\n */\n verificationFlowHandle?: string;\n};\n\n/**\n * UserProfile component displays the authenticated user's profile information in a\n * structured and styled format. It shows user details such as display name, email,\n * username, and other available profile information from ThunderID.\n *\n * This component is the React-specific implementation that uses the BaseUserProfile\n * and automatically retrieves the user data from ThunderID context if not provided.\n *\n * @example\n * ```tsx\n * // Basic usage - will use user from ThunderID context\n * <UserProfile />\n *\n * // With explicit user data\n * <UserProfile user={specificUser} />\n *\n * // With card layout and custom fallback\n * <UserProfile\n * cardLayout={true}\n * fallback={<div>Please sign in to view your profile</div>}\n * />\n *\n * // With field filtering - only show specific fields\n * <UserProfile\n * showFields={['name.givenName', 'name.familyName', 'emails']}\n * />\n *\n * // With field hiding - hide specific fields\n * <UserProfile\n * hideFields={['phoneNumbers', 'addresses']}\n * />\n * ```\n */\nconst UserProfile: FC<UserProfileProps> = ({\n preferences,\n editable = true,\n verificationFlowHandle = AttributeVerificationConstants.DEFAULT_FLOW_HANDLE,\n ...rest\n}: UserProfileProps): ReactElement => {\n const {baseUrl, endpoints, instanceId, preferences: contextPreferences} = useThunderID();\n const {profile, flattenedProfile, onUpdateProfile, userSchema} = useUser();\n const resolvedPreferences = {\n ...contextPreferences,\n ...preferences,\n user: {\n ...contextPreferences?.user,\n ...preferences?.user,\n },\n };\n const {t} = useTranslation(resolvedPreferences?.i18n);\n const isEditableProfile: boolean = resolvedPreferences?.user?.fetchUserProfile === false ? false : editable;\n\n const [error, setError] = useState<string | null>(null);\n\n const handleProfileUpdate = async (payload: Record<string, unknown>): Promise<void> => {\n setError(null);\n\n try {\n const updatedAttributes: Record<string, unknown> = deepMerge(\n (profile?.['attributes'] as Record<string, unknown>) ?? {},\n payload,\n );\n\n Object.keys(updatedAttributes).forEach((key) => {\n if (updatedAttributes[key] === undefined || updatedAttributes[key] === null) {\n delete updatedAttributes[key];\n }\n });\n\n const response: User = await updateMeProfile({\n baseUrl,\n url: resolveResourceEndpoint('usersMe', {endpoints}),\n instanceId,\n payload: updatedAttributes,\n });\n onUpdateProfile(response);\n } catch (caughtError: unknown) {\n let message: string = t('user.profile.update.generic.error');\n\n if (caughtError instanceof ThunderIDError) {\n message = caughtError?.message;\n }\n\n setError(message);\n }\n };\n\n const renderVerification = ({\n attribute,\n attributeDisplayName,\n onCancel,\n onComplete,\n }: BaseUserProfileVerificationRenderProps): ReactNode => (\n <VerifyAttribute\n key={attribute}\n attribute={attribute}\n attributeDisplayName={attributeDisplayName}\n flowHandle={verificationFlowHandle}\n preferences={resolvedPreferences}\n // Popup mode shows the panel under the row as a card; inline mode shows it in a dialog.\n variant={rest.mode === 'popup' ? 'outlined' : 'flat'}\n onCancel={onCancel}\n onComplete={onComplete}\n onDone={onCancel}\n />\n );\n\n return (\n <BaseUserProfile\n renderVerification={isEditableProfile ? renderVerification : undefined}\n profile={profile ?? undefined}\n flattenedProfile={flattenedProfile ?? undefined}\n userSchema={userSchema ?? undefined}\n editable={isEditableProfile}\n onUpdate={isEditableProfile ? handleProfileUpdate : undefined}\n error={error}\n preferences={resolvedPreferences}\n {...rest}\n />\n );\n};\n\nexport default UserProfile;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgEA,MAAMA,eAAqC,EACzC,aACA,WAAW,MACX,yBAAyBC,mDAA+B,oBACxD,GAAG,WACiC;CACpC,MAAM,EAAC,SAAS,WAAW,YAAY,aAAa,uBAAsBC,8BAAc;CACxF,MAAM,EAAC,SAAS,kBAAkB,iBAAiB,eAAcC,yBAAS;CAC1E,MAAM,sBAAsB;EAC1B,GAAG;EACH,GAAG;EACH,MAAM;GACJ,GAAG,oBAAoB;GACvB,GAAG,aAAa;GACjB;EACF;CACD,MAAM,EAAC,MAAKC,+BAAe,qBAAqB,KAAK;CACrD,MAAMC,oBAA6B,qBAAqB,MAAM,qBAAqB,QAAQ,QAAQ;CAEnG,MAAM,CAAC,OAAO,gCAAoC,KAAK;CAEvD,MAAM,sBAAsB,OAAO,YAAoD;AACrF,WAAS,KAAK;AAEd,MAAI;GACF,MAAMC,uDACH,UAAU,iBAA6C,EAAE,EAC1D,QACD;AAED,UAAO,KAAK,kBAAkB,CAAC,SAAS,QAAQ;AAC9C,QAAI,kBAAkB,SAAS,UAAa,kBAAkB,SAAS,KACrE,QAAO,kBAAkB;KAE3B;AAQF,mBANuB,MAAMC,gCAAgB;IAC3C;IACA,sDAA6B,WAAW,EAAC,WAAU,CAAC;IACpD;IACA,SAAS;IACV,CAAC,CACuB;WAClBC,aAAsB;GAC7B,IAAIC,UAAkB,EAAE,oCAAoC;AAE5D,OAAI,uBAAuBC,mCACzB,WAAU,aAAa;AAGzB,YAAS,QAAQ;;;CAIrB,MAAM,sBAAsB,EAC1B,WACA,sBACA,UACA,iBAEA,2CAACC;EAEY;EACW;EACtB,YAAY;EACZ,aAAa;EAEb,SAAS,KAAK,SAAS,UAAU,aAAa;EACpC;EACE;EACZ,QAAQ;IATH,UAUL;AAGJ,QACE,2CAACC;EACC,oBAAoB,oBAAoB,qBAAqB;EAC7D,SAAS,WAAW;EACpB,kBAAkB,oBAAoB;EACtC,YAAY,cAAc;EAC1B,UAAU;EACV,UAAU,oBAAoB,sBAAsB;EAC7C;EACP,aAAa;EACb,GAAI;GACJ;;AAIN,0BAAe"}
@@ -0,0 +1,358 @@
1
+ const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
+ const require_emotion = require('../../../styles/emotion.cjs');
3
+ const require_ComponentRendererContext = require('../../../contexts/ComponentRenderer/ComponentRendererContext.cjs');
4
+ const require_useThunderID = require('../../../contexts/ThunderID/useThunderID.cjs');
5
+ const require_useTheme = require('../../../contexts/Theme/useTheme.cjs');
6
+ const require_ComponentPreferencesContext = require('../../../contexts/I18n/ComponentPreferencesContext.cjs');
7
+ const require_useTranslation = require('../../../hooks/useTranslation.cjs');
8
+ const require_flowTransformer = require('../../../utils/flowTransformer.cjs');
9
+ const require_useForm = require('../../../hooks/useForm.cjs');
10
+ const require_Spinner = require('../../primitives/Spinner/Spinner.cjs');
11
+ const require_Button = require('../../primitives/Button/Button.cjs');
12
+ const require_Typography = require('../../primitives/Typography/Typography.cjs');
13
+ const require_composeAffixedInputs = require('../../../utils/composeAffixedInputs.cjs');
14
+ const require_Alert = require('../../primitives/Alert/Alert.cjs');
15
+ const require_AuthOptionFactory = require('../../auth/flow/AuthOptionFactory.cjs');
16
+ const require_getAuthComponentHeadings = require('../../../utils/getAuthComponentHeadings.cjs');
17
+ const require_BaseVerifyAttribute_styles = require('./BaseVerifyAttribute.styles.cjs');
18
+ let __thunderid_browser = require("@thunderid/browser");
19
+ __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
20
+ let react = require("react");
21
+ react = require_rolldown_runtime.__toESM(react);
22
+ let react_jsx_runtime = require("react/jsx-runtime");
23
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
24
+
25
+ //#region src/components/account/VerifyAttribute/BaseVerifyAttribute.tsx
26
+ const collectFlowIds = ({ actions, inputs }) => ({
27
+ actions: new Set(actions.map((component) => component.id)),
28
+ fields: new Map(inputs.map((component) => [component.ref ?? component.id, component.type]))
29
+ });
30
+ const withFlowTestIds = (node, ids) => {
31
+ if (Array.isArray(node)) return node.map((child) => withFlowTestIds(child, ids));
32
+ if (!(0, react.isValidElement)(node)) return node;
33
+ const props = node.props;
34
+ if (typeof props.name === "string" && ids.fields.has(props.name)) {
35
+ const testId$1 = `thunderid-field-${props.name}`;
36
+ if (ids.fields.get(props.name) === __thunderid_browser.EmbeddedFlowComponentType.OtpInput) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
37
+ "data-testid": testId$1,
38
+ children: node
39
+ }, node.key);
40
+ return (0, react.cloneElement)(node, { "data-testid": testId$1 });
41
+ }
42
+ const testId = node.key !== null && ids.actions.has(String(node.key)) ? `thunderid-action-${String(node.key)}` : void 0;
43
+ const children = props.children === void 0 ? void 0 : withFlowTestIds(props.children, ids);
44
+ if (!testId && children === props.children) return node;
45
+ return (0, react.cloneElement)(node, {
46
+ ...testId && { "data-testid": testId },
47
+ ...props.children !== void 0 && { children }
48
+ });
49
+ };
50
+ /**
51
+ * Internal component that renders the verification steps and manages flow state.
52
+ *
53
+ * @internal
54
+ */
55
+ const BaseVerifyAttributeContent = ({ attributeDisplayName = "", buttonClassName = "", children = void 0, className = "", inputClassName = "", isInitialized = true, onCancel = void 0, onComplete = void 0, onDone = void 0, onError = void 0, onFlowChange = void 0, onInitialize = void 0, onSubmit = void 0, showSubtitle = true, showTitle = true, size = "medium", variant = "outlined" }) => {
56
+ const { theme, colorScheme } = require_useTheme.default();
57
+ const customRenderers = (0, react.useContext)(require_ComponentRendererContext.default);
58
+ const { t } = require_useTranslation.default();
59
+ const { meta, vendor } = require_useThunderID.default();
60
+ const styles = require_BaseVerifyAttribute_styles.default(theme, colorScheme);
61
+ const [state, setState] = (0, react.useState)("loading");
62
+ const [isSubmitting, setIsSubmitting] = (0, react.useState)(false);
63
+ const [currentFlow, setCurrentFlow] = (0, react.useState)(null);
64
+ const [error, setError] = (0, react.useState)(null);
65
+ const isSubmittingRef = (0, react.useRef)(false);
66
+ const initializationAttemptedRef = (0, react.useRef)(false);
67
+ const challengeTokenRef = (0, react.useRef)(null);
68
+ const labelParams = { attribute: attributeDisplayName };
69
+ const normalize = (0, react.useCallback)((response) => {
70
+ if (!response?.data || Array.isArray(response.data.components)) return response;
71
+ const { components } = require_flowTransformer.normalizeFlowResponse(response, t, {
72
+ defaultErrorKey: "user.verification.error",
73
+ resolveTranslations: false,
74
+ throwOnError: false
75
+ }, meta);
76
+ return {
77
+ ...response,
78
+ data: {
79
+ ...response.data,
80
+ components
81
+ }
82
+ };
83
+ }, [t, meta]);
84
+ const extractFormFields = (0, react.useCallback)((components) => (0, __thunderid_browser.getFlowStepComponents)(components).inputs.map((component) => {
85
+ const ruleValidator = (0, __thunderid_browser.buildValidatorFromRules)(component.validation);
86
+ return {
87
+ initialValue: "",
88
+ name: component.ref ?? component.id,
89
+ required: component.required ?? false,
90
+ validator: (value) => {
91
+ if (component.required && (!value || value.trim() === "")) return t("validations.required.field.error");
92
+ if (ruleValidator && value) {
93
+ const ruleMessage = ruleValidator(value);
94
+ if (ruleMessage) return t(ruleMessage);
95
+ }
96
+ return null;
97
+ }
98
+ };
99
+ }), [t]);
100
+ const formFields = (0, react.useMemo)(() => extractFormFields(currentFlow?.data?.components ?? []), [currentFlow, extractFormFields]);
101
+ const { values: formValues, touched: touchedFields, errors: formErrors, isValid: isFormValid, setValue: setFormValue, setTouched: setFormTouched, setTouchedFields, setErrors: setFormErrors, clearErrors: clearFormErrors, validateForm, touchAllFields, reset: resetForm } = require_useForm.useForm({
102
+ fields: formFields,
103
+ initialValues: {},
104
+ requiredMessage: t("validations.required.field.error"),
105
+ validateOnBlur: true,
106
+ validateOnChange: false
107
+ });
108
+ (0, react.useEffect)(() => {
109
+ clearFormErrors();
110
+ const responseFieldErrors = currentFlow?.data?.fieldErrors;
111
+ if (!responseFieldErrors || responseFieldErrors.length === 0) return;
112
+ const errors = {};
113
+ const touched = {};
114
+ responseFieldErrors.forEach((fe) => {
115
+ if (!(fe.identifier in errors)) {
116
+ errors[fe.identifier] = fe.message;
117
+ touched[fe.identifier] = true;
118
+ }
119
+ });
120
+ setTouchedFields(touched);
121
+ setFormErrors(errors);
122
+ }, [
123
+ currentFlow,
124
+ setFormErrors,
125
+ setTouchedFields,
126
+ clearFormErrors
127
+ ]);
128
+ const handleResponse = (0, react.useCallback)((rawResponse) => {
129
+ const response = normalize(rawResponse);
130
+ onFlowChange?.(response);
131
+ if (response.challengeToken !== void 0) challengeTokenRef.current = response.challengeToken ?? null;
132
+ if (response.flowStatus === __thunderid_browser.EmbeddedSelfFlowStatus.Error) {
133
+ const message = require_flowTransformer.extractErrorMessage(response, t, "user.verification.error");
134
+ setError(message);
135
+ setState("failed");
136
+ onError?.(new Error(message));
137
+ return;
138
+ }
139
+ if (response.flowStatus === __thunderid_browser.EmbeddedSelfFlowStatus.Complete) {
140
+ setError(null);
141
+ setState("complete");
142
+ onComplete?.(response);
143
+ return;
144
+ }
145
+ setCurrentFlow((previous) => response.data?.additionalData || !previous?.data?.additionalData ? response : {
146
+ ...response,
147
+ data: {
148
+ ...response.data,
149
+ additionalData: previous.data.additionalData
150
+ }
151
+ });
152
+ resetForm();
153
+ setError(response.error ? require_flowTransformer.extractErrorMessage(response, t, "user.verification.error") : null);
154
+ setState("active");
155
+ }, [
156
+ normalize,
157
+ onFlowChange,
158
+ onError,
159
+ onComplete,
160
+ resetForm,
161
+ t
162
+ ]);
163
+ const handleFailure = (0, react.useCallback)((caughtError) => {
164
+ setError(t("user.verification.error"));
165
+ setState("failed");
166
+ onError?.(caughtError instanceof Error ? caughtError : new Error(String(caughtError)));
167
+ }, [onError, t]);
168
+ (0, react.useEffect)(() => {
169
+ if (!isInitialized || initializationAttemptedRef.current) return;
170
+ initializationAttemptedRef.current = true;
171
+ (async () => {
172
+ try {
173
+ const response = await onInitialize?.();
174
+ if (response) handleResponse(response);
175
+ } catch (caughtError) {
176
+ handleFailure(caughtError);
177
+ }
178
+ })();
179
+ }, [
180
+ isInitialized,
181
+ onInitialize,
182
+ handleResponse,
183
+ handleFailure
184
+ ]);
185
+ const handleInputChange = (name, value) => {
186
+ setFormValue(name, value);
187
+ };
188
+ const handleInputBlur = (name) => {
189
+ setFormTouched(name, true);
190
+ };
191
+ const handleSubmit = async (component, data, skipValidation) => {
192
+ if (!currentFlow || isSubmittingRef.current) return;
193
+ if (!skipValidation) {
194
+ touchAllFields();
195
+ if (!validateForm().isValid) return;
196
+ }
197
+ isSubmittingRef.current = true;
198
+ setIsSubmitting(true);
199
+ setError(null);
200
+ try {
201
+ const composedData = data ? require_composeAffixedInputs.default(data, vendor) : {};
202
+ const inputs = Object.fromEntries(Object.entries(composedData).filter(([, value]) => value !== null && value !== void 0 && value !== ""));
203
+ const response = await onSubmit?.({
204
+ executionId: currentFlow.executionId,
205
+ ...component.id && { action: component.id },
206
+ ...challengeTokenRef.current ? { challengeToken: challengeTokenRef.current } : {},
207
+ inputs
208
+ });
209
+ if (response) handleResponse(response);
210
+ } catch (caughtError) {
211
+ handleFailure(caughtError);
212
+ } finally {
213
+ isSubmittingRef.current = false;
214
+ setIsSubmitting(false);
215
+ }
216
+ };
217
+ const additionalData = currentFlow?.data?.additionalData ?? {};
218
+ const maskedDestination = additionalData[__thunderid_browser.AttributeVerificationConstants.MASKED_DESTINATION_KEY];
219
+ const destination = typeof maskedDestination === "string" && maskedDestination ? maskedDestination : null;
220
+ const headings = require_getAuthComponentHeadings.default(currentFlow?.data?.components ?? [], void 0, void 0, t("user.verification.heading", labelParams), t("user.verification.subheading.generic"));
221
+ const { componentsWithoutHeadings } = headings;
222
+ const step = (0, __thunderid_browser.getFlowStepComponents)(componentsWithoutHeadings ?? []);
223
+ const isAwaitingLink = state === "active" && formFields.length === 0 && step.actions.length === 0;
224
+ const title = (0, __thunderid_browser.resolveFlowTemplateLiterals)(headings.title, {
225
+ meta,
226
+ t
227
+ });
228
+ const hasFlowSubtitle = !!headings.headingComponents.subheading;
229
+ let subtitle = (0, __thunderid_browser.resolveFlowTemplateLiterals)(headings.subtitle, {
230
+ meta,
231
+ t
232
+ });
233
+ let destinationText = null;
234
+ if (destination && hasFlowSubtitle) destinationText = t("user.verification.destination", { destination });
235
+ else if (destination) subtitle = t(isAwaitingLink ? "user.verification.subheading.link" : "user.verification.subheading", { destination });
236
+ const isLoading = state === "loading" || isSubmitting;
237
+ const containerClasses = require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)("verify-attribute"), (0, __thunderid_browser.withVendorCSSClassPrefix)(`verify-attribute--${size}`), (0, __thunderid_browser.withVendorCSSClassPrefix)(`verify-attribute--${variant}`), styles["root"], variant === "outlined" ? styles["card"] : "", className);
238
+ if (children) {
239
+ const resend = state === "active" ? step.resend : void 0;
240
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
241
+ className: containerClasses,
242
+ children: children({
243
+ additionalData,
244
+ components: componentsWithoutHeadings ?? [],
245
+ destination,
246
+ destinationText,
247
+ error,
248
+ fieldErrors: formErrors,
249
+ handleInputChange,
250
+ handleResend: resend ? () => handleSubmit(resend, void 0, true) : void 0,
251
+ handleSubmit,
252
+ isAwaitingLink,
253
+ isComplete: state === "complete",
254
+ isFailed: state === "failed",
255
+ isLoading,
256
+ isValid: isFormValid,
257
+ onCancel,
258
+ onDone: isAwaitingLink ? onDone : void 0,
259
+ subtitle,
260
+ successMessage: t("user.verification.success", labelParams),
261
+ title,
262
+ touched: touchedFields,
263
+ values: formValues
264
+ })
265
+ });
266
+ }
267
+ const alertClasses = require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)("verify-attribute", "alert")), styles["alert"]);
268
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
269
+ className: containerClasses,
270
+ "aria-busy": isLoading,
271
+ children: [
272
+ state === "active" && (showTitle || showSubtitle) && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
273
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)("verify-attribute", "header")), styles["header"]),
274
+ children: [showTitle && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Typography.default, {
275
+ variant: "h5",
276
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)("verify-attribute", "heading")), styles["heading"]),
277
+ children: title
278
+ }), showSubtitle && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Typography.default, {
279
+ variant: "body2",
280
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)("verify-attribute", "subheading")), styles["subheading"]),
281
+ children: [subtitle, destinationText && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
282
+ className: (0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)("verify-attribute", "destination")),
283
+ children: ` ${destinationText}`
284
+ })]
285
+ })]
286
+ }),
287
+ state === "loading" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
288
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)("verify-attribute", "loading")), styles["loading"]),
289
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Spinner.default, { size: "medium" })
290
+ }),
291
+ error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Alert.default, {
292
+ variant: "error",
293
+ className: alertClasses,
294
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Alert.default.Description, { children: error })
295
+ }),
296
+ state === "complete" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Alert.default, {
297
+ variant: "success",
298
+ className: alertClasses,
299
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Alert.default.Description, { children: t("user.verification.success", labelParams) })
300
+ }),
301
+ state === "active" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
302
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)("verify-attribute", "content")), styles["content"]),
303
+ children: withFlowTestIds(require_AuthOptionFactory.renderVerificationComponents(componentsWithoutHeadings ?? [], formValues, touchedFields, formErrors, isLoading, isFormValid, resetForm, handleInputChange, {
304
+ _customRenderers: customRenderers,
305
+ _theme: theme,
306
+ additionalData,
307
+ buttonClassName: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)("verify-attribute", "button")), buttonClassName),
308
+ inputClassName: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)("verify-attribute", "input")), inputClassName),
309
+ meta,
310
+ onInputBlur: handleInputBlur,
311
+ onSubmit: (component, data, skip) => {
312
+ handleSubmit(component, data, skip);
313
+ },
314
+ size,
315
+ t,
316
+ variant,
317
+ vendor
318
+ }), collectFlowIds(step))
319
+ }),
320
+ (!!onCancel || isAwaitingLink && !!onDone) && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
321
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)("verify-attribute", "actions")), styles["actions"]),
322
+ children: [isAwaitingLink && onDone && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.default, {
323
+ size: "small",
324
+ color: "primary",
325
+ variant: "solid",
326
+ onClick: onDone,
327
+ "data-testid": "thunderid-action-verificationDone",
328
+ children: t("user.verification.buttons.done.text")
329
+ }), onCancel && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.default, {
330
+ size: "small",
331
+ color: "secondary",
332
+ variant: "outline",
333
+ onClick: onCancel,
334
+ disabled: isSubmitting,
335
+ "data-testid": "thunderid-action-verificationCancel",
336
+ children: state === "active" || state === "loading" ? t("user.verification.buttons.cancel.text") : t("user.verification.buttons.close.text")
337
+ })]
338
+ })
339
+ ]
340
+ });
341
+ };
342
+ /**
343
+ * BaseVerifyAttribute renders the server-described steps of a self attribute verification flow.
344
+ * Accepts API functions as props to stay framework independent.
345
+ */
346
+ const BaseVerifyAttribute = ({ preferences = void 0,...rest }) => {
347
+ const content = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(BaseVerifyAttributeContent, { ...rest });
348
+ if (!preferences) return content;
349
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ComponentPreferencesContext.default.Provider, {
350
+ value: preferences,
351
+ children: content
352
+ });
353
+ };
354
+ var BaseVerifyAttribute_default = BaseVerifyAttribute;
355
+
356
+ //#endregion
357
+ exports.default = BaseVerifyAttribute_default;
358
+ //# sourceMappingURL=BaseVerifyAttribute.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseVerifyAttribute.cjs","names":["props: {children?: ReactNode; name?: unknown}","testId","EmbeddedFlowComponentType","testId: string | undefined","children: ReactNode","BaseVerifyAttributeContent: FC<Omit<BaseVerifyAttributeProps, 'preferences'>>","useTheme","customRenderers: ComponentRendererMap","ComponentRendererContext","useTranslation","useThunderID","styles: Record<string, string>","useStyles","isSubmittingRef: MutableRefObject<boolean>","initializationAttemptedRef: MutableRefObject<boolean>","challengeTokenRef: MutableRefObject<string | null>","labelParams: Record<string, string>","normalizeFlowResponse","formFields: FormField[]","useForm","responseFieldErrors: FieldError[] | undefined","errors: Record<string, string>","touched: Record<string, boolean>","response: EmbeddedSelfFlowResponse","EmbeddedSelfFlowStatus","message: string","extractErrorMessage","response: EmbeddedSelfFlowResponse | undefined","composedData: Record<string, string>","composeAffixedInputs","inputs: Record<string, string>","additionalData: Record<string, unknown>","maskedDestination: unknown","AttributeVerificationConstants","destination: string | null","headings: ReturnType<typeof getAuthComponentHeadings>","getAuthComponentHeadings","step: FlowStepComponents","isAwaitingLink: boolean","title: string","subtitle: string","destinationText: string | null","isLoading: boolean","containerClasses: string","cx","resend: EmbeddedFlowComponent | undefined","alertClasses: string","Typography","Spinner","AlertPrimitive","renderVerificationComponents","Button","BaseVerifyAttribute: FC<BaseVerifyAttributeProps>","content: ReactElement","ComponentPreferencesContext"],"sources":["../../../../../src/components/account/VerifyAttribute/BaseVerifyAttribute.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AttributeVerificationConstants,\n EmbeddedFlowComponent,\n EmbeddedFlowComponentType,\n EmbeddedSelfFlowRequest,\n EmbeddedSelfFlowResponse,\n EmbeddedSelfFlowStatus,\n FieldError,\n FlowStepComponents,\n Preferences,\n bem,\n buildValidatorFromRules,\n getFlowStepComponents,\n resolveFlowTemplateLiterals,\n withVendorCSSClassPrefix,\n} from '@thunderid/browser';\nimport {\n FC,\n MutableRefObject,\n ReactElement,\n ReactNode,\n cloneElement,\n isValidElement,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport useStyles from './BaseVerifyAttribute.styles';\nimport ComponentRendererContext, {\n ComponentRendererMap,\n} from '../../../contexts/ComponentRenderer/ComponentRendererContext';\nimport ComponentPreferencesContext from '../../../contexts/I18n/ComponentPreferencesContext';\nimport useTheme from '../../../contexts/Theme/useTheme';\nimport useThunderID from '../../../contexts/ThunderID/useThunderID';\nimport {FormField, useForm} from '../../../hooks/useForm';\nimport useTranslation from '../../../hooks/useTranslation';\nimport {cx} from '../../../styles/emotion';\nimport composeAffixedInputs from '../../../utils/composeAffixedInputs';\nimport {extractErrorMessage, normalizeFlowResponse} from '../../../utils/flowTransformer';\nimport getAuthComponentHeadings from '../../../utils/getAuthComponentHeadings';\nimport {renderVerificationComponents} from '../../auth/flow/AuthOptionFactory';\nimport AlertPrimitive from '../../primitives/Alert/Alert';\nimport Button from '../../primitives/Button/Button';\nimport Spinner from '../../primitives/Spinner/Spinner';\nimport Typography from '../../primitives/Typography/Typography';\n\ntype VerificationState = 'loading' | 'active' | 'complete' | 'failed';\n\ninterface FlowIds {\n actions: Set<string>;\n // Input name (`ref`, else `id`) to component type.\n fields: Map<string, string>;\n}\n\n// Flow identifiers of the step's inputs and actions.\nconst collectFlowIds = ({actions, inputs}: FlowStepComponents): FlowIds => ({\n actions: new Set(actions.map((component: EmbeddedFlowComponent) => component.id)),\n fields: new Map(inputs.map((component: EmbeddedFlowComponent) => [component.ref ?? component.id, component.type])),\n});\n\n// Tags the elements rendered from the flow with `thunderid-field-<ref>` and `thunderid-action-<id>`.\n// The shared factory keys an element by its component id and names an input by its ref.\nconst withFlowTestIds = (node: ReactNode, ids: FlowIds): ReactNode => {\n if (Array.isArray(node)) return node.map((child: ReactNode) => withFlowTestIds(child, ids));\n if (!isValidElement(node)) return node;\n\n const props: {children?: ReactNode; name?: unknown} = node.props as {children?: ReactNode; name?: unknown};\n if (typeof props.name === 'string' && ids.fields.has(props.name)) {\n const testId = `thunderid-field-${props.name}`;\n\n // The OTP field renders one input per character and takes no test identifier, so wrap it.\n if (ids.fields.get(props.name) === EmbeddedFlowComponentType.OtpInput) {\n return (\n <div key={node.key} data-testid={testId}>\n {node}\n </div>\n );\n }\n\n return cloneElement(node as ReactElement<Record<string, unknown>>, {'data-testid': testId});\n }\n\n const testId: string | undefined =\n node.key !== null && ids.actions.has(String(node.key)) ? `thunderid-action-${String(node.key)}` : undefined;\n const children: ReactNode = props.children === undefined ? undefined : withFlowTestIds(props.children, ids);\n if (!testId && children === props.children) return node;\n\n return cloneElement(node as ReactElement<Record<string, unknown>>, {\n ...(testId && {'data-testid': testId}),\n ...(props.children !== undefined && {children}),\n });\n};\n\n/**\n * What {@link BaseVerifyAttribute} hands its `children` render function, so the steps can be drawn\n * with any UI.\n */\nexport interface BaseVerifyAttributeRenderProps {\n additionalData: Record<string, unknown>;\n /**\n * The step's components, without its headings.\n */\n components: EmbeddedFlowComponent[];\n /**\n * Masked destination the code or link was sent to, when the flow reports it.\n */\n destination: string | null;\n /**\n * Translated \"Sent to …\" line, set when the flow has its own prompt in `subtitle`.\n */\n destinationText: string | null;\n /**\n * Translated error of the last request, or the refusal.\n */\n error: string | null;\n fieldErrors: Record<string, string>;\n handleInputChange: (name: string, value: string) => void;\n /**\n * Sends a new code. Set only while the step has a resend action.\n */\n handleResend?: () => Promise<void>;\n /**\n * Submits a step. Pass `skipValidation` for an action, such as a resend, that sends no inputs.\n */\n handleSubmit: (\n component: EmbeddedFlowComponent,\n data?: Record<string, string>,\n skipValidation?: boolean,\n ) => Promise<void>;\n isAwaitingLink: boolean;\n isComplete: boolean;\n /**\n * Whether the server refused the verification or the request failed; the flow cannot continue.\n */\n isFailed: boolean;\n isLoading: boolean;\n isValid: boolean;\n /**\n * Closes the panel. Set only when the app passes `onCancel`.\n */\n onCancel?: () => void;\n /**\n * Confirms a link the user opened outside the app. Set only while the step waits for a link and\n * the app passes `onDone`.\n */\n onDone?: () => void;\n subtitle: string;\n /**\n * Translated message for a recorded verification.\n */\n successMessage: string;\n title: string;\n touched: Record<string, boolean>;\n values: Record<string, string>;\n}\n\n/**\n * Props for the BaseVerifyAttribute component.\n */\nexport interface BaseVerifyAttributeProps {\n /**\n * Label of the attribute being verified, used in the default heading and success message.\n */\n attributeDisplayName?: string;\n buttonClassName?: string;\n /**\n * Renders custom UI in place of the default steps. Receives the step, the values and their setters,\n * submit, resend, cancel, the destination, and the loading, error and completed state.\n */\n children?: (props: BaseVerifyAttributeRenderProps) => ReactNode;\n className?: string;\n inputClassName?: string;\n isInitialized?: boolean;\n /**\n * Called when the user closes the panel. The close action is shown only when this is set.\n */\n onCancel?: () => void;\n /**\n * Called once the server has recorded the verification.\n */\n onComplete?: (response: EmbeddedSelfFlowResponse) => void;\n /**\n * Called when the user selects Done after the flow sent a link, which they confirm outside the app.\n * The Done action is shown only when this is set.\n */\n onDone?: () => void;\n /**\n * Called when the server refuses the verification or the request fails.\n */\n onError?: (error: Error) => void;\n onFlowChange?: (response: EmbeddedSelfFlowResponse) => void;\n onInitialize?: () => Promise<EmbeddedSelfFlowResponse>;\n onSubmit?: (payload: EmbeddedSelfFlowRequest) => Promise<EmbeddedSelfFlowResponse>;\n /**\n * Component-level preferences to override global i18n and theme settings.\n */\n preferences?: Preferences;\n showSubtitle?: boolean;\n showTitle?: boolean;\n size?: 'small' | 'medium' | 'large';\n variant?: 'outlined' | 'flat';\n}\n\n/**\n * Internal component that renders the verification steps and manages flow state.\n *\n * @internal\n */\nconst BaseVerifyAttributeContent: FC<Omit<BaseVerifyAttributeProps, 'preferences'>> = ({\n attributeDisplayName = '',\n buttonClassName = '',\n children = undefined,\n className = '',\n inputClassName = '',\n isInitialized = true,\n onCancel = undefined,\n onComplete = undefined,\n onDone = undefined,\n onError = undefined,\n onFlowChange = undefined,\n onInitialize = undefined,\n onSubmit = undefined,\n showSubtitle = true,\n showTitle = true,\n size = 'medium',\n variant = 'outlined',\n}: Omit<BaseVerifyAttributeProps, 'preferences'>): ReactElement => {\n const {theme, colorScheme} = useTheme();\n const customRenderers: ComponentRendererMap = useContext(ComponentRendererContext);\n const {t} = useTranslation();\n const {meta, vendor} = useThunderID();\n const styles: Record<string, string> = useStyles(theme, colorScheme);\n\n const [state, setState] = useState<VerificationState>('loading');\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [currentFlow, setCurrentFlow] = useState<EmbeddedSelfFlowResponse | null>(null);\n const [error, setError] = useState<string | null>(null);\n // Set before the first await, so a second call from a custom render cannot send a second code.\n const isSubmittingRef: MutableRefObject<boolean> = useRef(false);\n\n // Guards against a second initiation, which would send a second code.\n const initializationAttemptedRef: MutableRefObject<boolean> = useRef(false);\n const challengeTokenRef: MutableRefObject<string | null> = useRef<string | null>(null);\n\n const labelParams: Record<string, string> = {attribute: attributeDisplayName};\n\n const normalize = useCallback(\n (response: EmbeddedSelfFlowResponse): EmbeddedSelfFlowResponse => {\n if (!response?.data || Array.isArray(response.data.components)) {\n return response;\n }\n\n const {components} = normalizeFlowResponse(\n response,\n t,\n {defaultErrorKey: 'user.verification.error', resolveTranslations: false, throwOnError: false},\n meta,\n );\n\n return {...response, data: {...response.data, components}};\n },\n [t, meta],\n );\n\n const extractFormFields = useCallback(\n (components: EmbeddedFlowComponent[]): FormField[] =>\n getFlowStepComponents(components).inputs.map((component: EmbeddedFlowComponent) => {\n const ruleValidator = buildValidatorFromRules(component.validation);\n return {\n initialValue: '',\n name: component.ref ?? component.id,\n required: component.required ?? false,\n validator: (value: string) => {\n if (component.required && (!value || value.trim() === '')) {\n return t('validations.required.field.error');\n }\n if (ruleValidator && value) {\n const ruleMessage = ruleValidator(value);\n if (ruleMessage) {\n return t(ruleMessage);\n }\n }\n return null;\n },\n };\n }),\n [t],\n );\n\n const formFields: FormField[] = useMemo(\n () => extractFormFields(currentFlow?.data?.components ?? []),\n [currentFlow, extractFormFields],\n );\n\n const {\n values: formValues,\n touched: touchedFields,\n errors: formErrors,\n isValid: isFormValid,\n setValue: setFormValue,\n setTouched: setFormTouched,\n setTouchedFields,\n setErrors: setFormErrors,\n clearErrors: clearFormErrors,\n validateForm,\n touchAllFields,\n reset: resetForm,\n } = useForm<Record<string, string>>({\n fields: formFields,\n initialValues: {},\n requiredMessage: t('validations.required.field.error'),\n validateOnBlur: true,\n validateOnChange: false,\n });\n\n // Project server-side field errors into form state.\n useEffect(() => {\n clearFormErrors();\n const responseFieldErrors: FieldError[] | undefined = currentFlow?.data?.fieldErrors;\n if (!responseFieldErrors || responseFieldErrors.length === 0) {\n return;\n }\n const errors: Record<string, string> = {};\n const touched: Record<string, boolean> = {};\n responseFieldErrors.forEach((fe: FieldError) => {\n if (!(fe.identifier in errors)) {\n errors[fe.identifier] = fe.message;\n touched[fe.identifier] = true;\n }\n });\n setTouchedFields(touched);\n setFormErrors(errors);\n }, [currentFlow, setFormErrors, setTouchedFields, clearFormErrors]);\n\n const handleResponse = useCallback(\n (rawResponse: EmbeddedSelfFlowResponse): void => {\n const response: EmbeddedSelfFlowResponse = normalize(rawResponse);\n onFlowChange?.(response);\n\n if (response.challengeToken !== undefined) {\n challengeTokenRef.current = response.challengeToken ?? null;\n }\n\n if (response.flowStatus === EmbeddedSelfFlowStatus.Error) {\n const message: string = extractErrorMessage(response, t, 'user.verification.error');\n setError(message);\n setState('failed');\n onError?.(new Error(message));\n return;\n }\n\n if (response.flowStatus === EmbeddedSelfFlowStatus.Complete) {\n setError(null);\n setState('complete');\n onComplete?.(response);\n return;\n }\n\n // INCOMPLETE: render the step; a rejected code comes back with an error and without\n // additionalData, so keep the destination and code length of the step that sent the code.\n setCurrentFlow(\n (previous: EmbeddedSelfFlowResponse | null): EmbeddedSelfFlowResponse =>\n response.data?.additionalData || !previous?.data?.additionalData\n ? response\n : {...response, data: {...response.data, additionalData: previous.data.additionalData}},\n );\n resetForm();\n setError(response.error ? extractErrorMessage(response, t, 'user.verification.error') : null);\n setState('active');\n },\n [normalize, onFlowChange, onError, onComplete, resetForm, t],\n );\n\n const handleFailure = useCallback(\n (caughtError: unknown): void => {\n // Show a generic message; an API error body is not meant for the user.\n setError(t('user.verification.error'));\n setState('failed');\n onError?.(caughtError instanceof Error ? caughtError : new Error(String(caughtError)));\n },\n [onError, t],\n );\n\n useEffect(() => {\n if (!isInitialized || initializationAttemptedRef.current) {\n return;\n }\n initializationAttemptedRef.current = true;\n\n void (async (): Promise<void> => {\n try {\n const response: EmbeddedSelfFlowResponse | undefined = await onInitialize?.();\n if (response) {\n handleResponse(response);\n }\n } catch (caughtError) {\n handleFailure(caughtError);\n }\n })();\n }, [isInitialized, onInitialize, handleResponse, handleFailure]);\n\n const handleInputChange = (name: string, value: string): void => {\n setFormValue(name, value);\n };\n\n const handleInputBlur = (name: string): void => {\n setFormTouched(name, true);\n };\n\n const handleSubmit = async (\n component: EmbeddedFlowComponent,\n data?: Record<string, string>,\n skipValidation?: boolean,\n ): Promise<void> => {\n if (!currentFlow || isSubmittingRef.current) return;\n\n if (!skipValidation) {\n touchAllFields();\n if (!validateForm().isValid) return;\n }\n\n isSubmittingRef.current = true;\n setIsSubmitting(true);\n setError(null);\n\n try {\n const composedData: Record<string, string> = data ? composeAffixedInputs(data, vendor) : {};\n const inputs: Record<string, string> = Object.fromEntries(\n Object.entries(composedData).filter(\n ([, value]: [string, string]) => value !== null && value !== undefined && value !== '',\n ),\n );\n\n const response: EmbeddedSelfFlowResponse | undefined = await onSubmit?.({\n executionId: currentFlow.executionId,\n ...(component.id && {action: component.id}),\n ...(challengeTokenRef.current ? {challengeToken: challengeTokenRef.current} : {}),\n inputs,\n });\n\n if (response) {\n handleResponse(response);\n }\n } catch (caughtError) {\n handleFailure(caughtError);\n } finally {\n isSubmittingRef.current = false;\n setIsSubmitting(false);\n }\n };\n\n const additionalData: Record<string, unknown> = currentFlow?.data?.additionalData ?? {};\n const maskedDestination: unknown = additionalData[AttributeVerificationConstants.MASKED_DESTINATION_KEY];\n const destination: string | null =\n typeof maskedDestination === 'string' && maskedDestination ? maskedDestination : null;\n const headings: ReturnType<typeof getAuthComponentHeadings> = getAuthComponentHeadings(\n currentFlow?.data?.components ?? [],\n undefined,\n undefined,\n t('user.verification.heading', labelParams),\n t('user.verification.subheading.generic'),\n );\n const {componentsWithoutHeadings} = headings;\n const step: FlowStepComponents = getFlowStepComponents(componentsWithoutHeadings ?? []);\n // A step with nothing to enter or submit waits for the user to open a link sent to them.\n const isAwaitingLink: boolean = state === 'active' && formFields.length === 0 && step.actions.length === 0;\n const title: string = resolveFlowTemplateLiterals(headings.title, {meta, t});\n // The flow's own prompt wins; the destination is added beside it, or fills in when the flow has none.\n const hasFlowSubtitle = !!headings.headingComponents.subheading;\n let subtitle: string = resolveFlowTemplateLiterals(headings.subtitle, {meta, t});\n let destinationText: string | null = null;\n if (destination && hasFlowSubtitle) {\n destinationText = t('user.verification.destination', {destination});\n } else if (destination) {\n subtitle = t(isAwaitingLink ? 'user.verification.subheading.link' : 'user.verification.subheading', {destination});\n }\n\n const isLoading: boolean = state === 'loading' || isSubmitting;\n\n const containerClasses: string = cx(\n withVendorCSSClassPrefix('verify-attribute'),\n withVendorCSSClassPrefix(`verify-attribute--${size}`),\n withVendorCSSClassPrefix(`verify-attribute--${variant}`),\n styles['root'],\n variant === 'outlined' ? styles['card'] : '',\n className,\n );\n\n if (children) {\n const resend: EmbeddedFlowComponent | undefined = state === 'active' ? step.resend : undefined;\n\n return (\n <div className={containerClasses}>\n {children({\n additionalData,\n components: componentsWithoutHeadings ?? [],\n destination,\n destinationText,\n error,\n fieldErrors: formErrors,\n handleInputChange,\n handleResend: resend ? (): Promise<void> => handleSubmit(resend, undefined, true) : undefined,\n handleSubmit,\n isAwaitingLink,\n isComplete: state === 'complete',\n isFailed: state === 'failed',\n isLoading,\n isValid: isFormValid,\n onCancel,\n onDone: isAwaitingLink ? onDone : undefined,\n subtitle,\n successMessage: t('user.verification.success', labelParams),\n title,\n touched: touchedFields,\n values: formValues,\n })}\n </div>\n );\n }\n\n const alertClasses: string = cx(withVendorCSSClassPrefix(bem('verify-attribute', 'alert')), styles['alert']);\n\n return (\n <div className={containerClasses} aria-busy={isLoading}>\n {state === 'active' && (showTitle || showSubtitle) && (\n <div className={cx(withVendorCSSClassPrefix(bem('verify-attribute', 'header')), styles['header'])}>\n {showTitle && (\n <Typography\n variant=\"h5\"\n className={cx(withVendorCSSClassPrefix(bem('verify-attribute', 'heading')), styles['heading'])}\n >\n {title}\n </Typography>\n )}\n {showSubtitle && (\n <Typography\n variant=\"body2\"\n className={cx(withVendorCSSClassPrefix(bem('verify-attribute', 'subheading')), styles['subheading'])}\n >\n {subtitle}\n {destinationText && (\n <span className={withVendorCSSClassPrefix(bem('verify-attribute', 'destination'))}>\n {` ${destinationText}`}\n </span>\n )}\n </Typography>\n )}\n </div>\n )}\n\n {state === 'loading' && (\n <div className={cx(withVendorCSSClassPrefix(bem('verify-attribute', 'loading')), styles['loading'])}>\n <Spinner size=\"medium\" />\n </div>\n )}\n\n {error && (\n <AlertPrimitive variant=\"error\" className={alertClasses}>\n <AlertPrimitive.Description>{error}</AlertPrimitive.Description>\n </AlertPrimitive>\n )}\n\n {state === 'complete' && (\n <AlertPrimitive variant=\"success\" className={alertClasses}>\n <AlertPrimitive.Description>{t('user.verification.success', labelParams)}</AlertPrimitive.Description>\n </AlertPrimitive>\n )}\n\n {state === 'active' && (\n <div className={cx(withVendorCSSClassPrefix(bem('verify-attribute', 'content')), styles['content'])}>\n {withFlowTestIds(\n renderVerificationComponents(\n componentsWithoutHeadings ?? [],\n formValues,\n touchedFields,\n formErrors,\n isLoading,\n isFormValid,\n resetForm,\n handleInputChange,\n {\n _customRenderers: customRenderers,\n _theme: theme,\n additionalData,\n buttonClassName: cx(withVendorCSSClassPrefix(bem('verify-attribute', 'button')), buttonClassName),\n inputClassName: cx(withVendorCSSClassPrefix(bem('verify-attribute', 'input')), inputClassName),\n meta,\n onInputBlur: handleInputBlur,\n onSubmit: (component: EmbeddedFlowComponent, data?: Record<string, string>, skip?: boolean): void => {\n void handleSubmit(component, data, skip);\n },\n size,\n t,\n variant,\n vendor,\n },\n ),\n collectFlowIds(step),\n )}\n </div>\n )}\n\n {(!!onCancel || (isAwaitingLink && !!onDone)) && (\n <div className={cx(withVendorCSSClassPrefix(bem('verify-attribute', 'actions')), styles['actions'])}>\n {isAwaitingLink && onDone && (\n <Button\n size=\"small\"\n color=\"primary\"\n variant=\"solid\"\n onClick={onDone}\n data-testid=\"thunderid-action-verificationDone\"\n >\n {t('user.verification.buttons.done.text')}\n </Button>\n )}\n {onCancel && (\n <Button\n size=\"small\"\n color=\"secondary\"\n variant=\"outline\"\n onClick={onCancel}\n disabled={isSubmitting}\n data-testid=\"thunderid-action-verificationCancel\"\n >\n {state === 'active' || state === 'loading'\n ? t('user.verification.buttons.cancel.text')\n : t('user.verification.buttons.close.text')}\n </Button>\n )}\n </div>\n )}\n </div>\n );\n};\n\n/**\n * BaseVerifyAttribute renders the server-described steps of a self attribute verification flow.\n * Accepts API functions as props to stay framework independent.\n */\nconst BaseVerifyAttribute: FC<BaseVerifyAttributeProps> = ({\n preferences = undefined,\n ...rest\n}: BaseVerifyAttributeProps): ReactElement => {\n const content: ReactElement = <BaseVerifyAttributeContent {...rest} />;\n\n if (!preferences) return content;\n\n return <ComponentPreferencesContext.Provider value={preferences}>{content}</ComponentPreferencesContext.Provider>;\n};\n\nexport default BaseVerifyAttribute;\n"],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
+ const require_emotion = require('../../../styles/emotion.cjs');
3
+ let __thunderid_browser = require("@thunderid/browser");
4
+ __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
5
+
6
+ //#region src/components/account/VerifyAttribute/BaseVerifyAttribute.styles.ts
7
+ /**
8
+ * Creates styles for the BaseVerifyAttribute component
9
+ * @param theme - The theme object containing design tokens
10
+ * @param colorScheme - The current color scheme (used for memoization)
11
+ * @returns Object containing CSS class names for component styling
12
+ */
13
+ const useStyles = (theme, colorScheme) => {
14
+ const root = require_emotion.css`
15
+ display: flex;
16
+ flex-direction: column;
17
+ gap: calc(${theme.vars.spacing.unit} * 2);
18
+ width: 100%;
19
+ font-family: ${theme.vars.typography.fontFamily};
20
+ `;
21
+ const card = require_emotion.css`
22
+ padding: calc(${theme.vars.spacing.unit} * 2);
23
+ border: 1px solid ${theme.vars.colors.border};
24
+ border-radius: ${theme.vars.borderRadius.medium};
25
+ `;
26
+ const header = require_emotion.css`
27
+ display: flex;
28
+ flex-direction: column;
29
+ gap: calc(${theme.vars.spacing.unit} / 2);
30
+ `;
31
+ const heading = require_emotion.css`
32
+ margin: 0;
33
+ `;
34
+ const subheading = require_emotion.css`
35
+ margin: 0;
36
+ color: ${theme.vars.colors.text.secondary};
37
+ `;
38
+ const content = require_emotion.css`
39
+ display: flex;
40
+ flex-direction: column;
41
+ gap: calc(${theme.vars.spacing.unit} * 1.5);
42
+
43
+ .${(0, __thunderid_browser.withVendorCSSClassPrefix)("otp-field__input-container")} {
44
+ justify-content: flex-start;
45
+
46
+ > input {
47
+ box-sizing: border-box;
48
+ flex: 1 1 calc(${theme.vars.spacing.unit} * 4);
49
+ max-width: calc(${theme.vars.spacing.unit} * 6);
50
+ min-width: 0;
51
+ }
52
+ }
53
+ `;
54
+ const alert = require_emotion.css`
55
+ width: 100%;
56
+ `;
57
+ const loading = require_emotion.css`
58
+ display: flex;
59
+ justify-content: center;
60
+ padding: calc(${theme.vars.spacing.unit} * 2);
61
+ `;
62
+ return {
63
+ actions: require_emotion.css`
64
+ display: flex;
65
+ gap: ${theme.vars.spacing.unit};
66
+ align-items: center;
67
+ justify-content: flex-end;
68
+ `,
69
+ alert,
70
+ card,
71
+ colorScheme,
72
+ content,
73
+ header,
74
+ heading,
75
+ loading,
76
+ root,
77
+ subheading
78
+ };
79
+ };
80
+ var BaseVerifyAttribute_styles_default = useStyles;
81
+
82
+ //#endregion
83
+ exports.default = BaseVerifyAttribute_styles_default;
84
+ //# sourceMappingURL=BaseVerifyAttribute.styles.cjs.map