@thunderid/react 1.13.0 → 1.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (668) hide show
  1. package/dist/ThunderIDReactClient.d.ts.map +1 -1
  2. package/dist/ThunderIDReactClient.js +6 -2
  3. package/dist/ThunderIDReactClient.js.map +1 -1
  4. package/dist/api/account/getAccessibleOrganizationUnits.d.ts +27 -0
  5. package/dist/api/account/getAccessibleOrganizationUnits.d.ts.map +1 -0
  6. package/dist/api/account/getAccessibleOrganizationUnits.js +24 -0
  7. package/dist/api/account/getAccessibleOrganizationUnits.js.map +1 -0
  8. package/dist/api/auth/executeEmbeddedSelfFlow.d.ts +36 -0
  9. package/dist/api/auth/executeEmbeddedSelfFlow.d.ts.map +1 -0
  10. package/dist/api/auth/executeEmbeddedSelfFlow.js +30 -0
  11. package/dist/api/auth/executeEmbeddedSelfFlow.js.map +1 -0
  12. package/dist/cjs/ThunderIDReactClient.cjs +6 -2
  13. package/dist/cjs/ThunderIDReactClient.cjs.map +1 -1
  14. package/dist/cjs/api/account/getAccessibleOrganizationUnits.cjs +26 -0
  15. package/dist/cjs/api/account/getAccessibleOrganizationUnits.cjs.map +1 -0
  16. package/dist/cjs/api/auth/executeEmbeddedSelfFlow.cjs +32 -0
  17. package/dist/cjs/api/auth/executeEmbeddedSelfFlow.cjs.map +1 -0
  18. package/dist/cjs/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.cjs +214 -0
  19. package/dist/cjs/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.cjs.map +1 -0
  20. package/dist/cjs/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.cjs +184 -0
  21. package/dist/cjs/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.cjs.map +1 -0
  22. package/dist/cjs/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.cjs +139 -0
  23. package/dist/cjs/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.cjs.map +1 -0
  24. package/dist/cjs/components/account/UserProfile/BaseUserProfile.cjs +195 -46
  25. package/dist/cjs/components/account/UserProfile/BaseUserProfile.cjs.map +1 -1
  26. package/dist/cjs/components/account/UserProfile/BaseUserProfile.styles.cjs +57 -4
  27. package/dist/cjs/components/account/UserProfile/BaseUserProfile.styles.cjs.map +1 -1
  28. package/dist/cjs/components/account/UserProfile/UserProfile.cjs +13 -1
  29. package/dist/cjs/components/account/UserProfile/UserProfile.cjs.map +1 -1
  30. package/dist/cjs/components/account/VerifyAttribute/BaseVerifyAttribute.cjs +358 -0
  31. package/dist/cjs/components/account/VerifyAttribute/BaseVerifyAttribute.cjs.map +1 -0
  32. package/dist/cjs/components/account/VerifyAttribute/BaseVerifyAttribute.styles.cjs +84 -0
  33. package/dist/cjs/components/account/VerifyAttribute/BaseVerifyAttribute.styles.cjs.map +1 -0
  34. package/dist/cjs/components/account/VerifyAttribute/VerifyAttribute.cjs +94 -0
  35. package/dist/cjs/components/account/VerifyAttribute/VerifyAttribute.cjs.map +1 -0
  36. package/dist/cjs/components/auth/SignIn/SignIn.cjs +23 -20
  37. package/dist/cjs/components/auth/SignIn/SignIn.cjs.map +1 -1
  38. package/dist/cjs/components/auth/SignUp/BaseSignUp.cjs +13 -9
  39. package/dist/cjs/components/auth/SignUp/BaseSignUp.cjs.map +1 -1
  40. package/dist/cjs/components/auth/flow/AuthOptionFactory.cjs +22 -2
  41. package/dist/cjs/components/auth/flow/AuthOptionFactory.cjs.map +1 -1
  42. package/dist/cjs/components/common/LanguageSwitcher/BaseLanguageSwitcher.cjs +1 -1
  43. package/dist/cjs/components/{admin → management}/AgentCreate/AgentCreate.cjs +8 -7
  44. package/dist/cjs/components/management/AgentCreate/AgentCreate.cjs.map +1 -0
  45. package/dist/cjs/components/{admin → management}/AgentCreate/BaseAgentCreate.cjs +1 -1
  46. package/dist/cjs/components/management/AgentCreate/BaseAgentCreate.cjs.map +1 -0
  47. package/dist/cjs/components/{admin → management}/AgentDetails/AgentDetails.cjs +1 -1
  48. package/dist/cjs/components/management/AgentDetails/AgentDetails.cjs.map +1 -0
  49. package/dist/cjs/components/{admin → management}/AgentDetails/BaseAgentDetails.cjs +1 -1
  50. package/dist/cjs/components/management/AgentDetails/BaseAgentDetails.cjs.map +1 -0
  51. package/dist/cjs/components/{admin → management}/AgentList/AgentList.cjs +11 -6
  52. package/dist/cjs/components/management/AgentList/AgentList.cjs.map +1 -0
  53. package/dist/cjs/components/{admin → management}/AgentList/BaseAgentList.cjs +1 -1
  54. package/dist/cjs/components/management/AgentList/BaseAgentList.cjs.map +1 -0
  55. package/dist/cjs/components/{admin → management}/ApplicationCreate/ApplicationCreate.cjs +10 -5
  56. package/dist/cjs/components/management/ApplicationCreate/ApplicationCreate.cjs.map +1 -0
  57. package/dist/cjs/components/{admin → management}/ApplicationCreate/BaseApplicationCreate.cjs +1 -1
  58. package/dist/cjs/components/management/ApplicationCreate/BaseApplicationCreate.cjs.map +1 -0
  59. package/dist/cjs/components/{admin → management}/ApplicationDetails/ApplicationDetails.cjs +1 -1
  60. package/dist/cjs/components/management/ApplicationDetails/ApplicationDetails.cjs.map +1 -0
  61. package/dist/cjs/components/{admin → management}/ApplicationDetails/BaseApplicationDetails.cjs +1 -1
  62. package/dist/cjs/components/management/ApplicationDetails/BaseApplicationDetails.cjs.map +1 -0
  63. package/dist/cjs/components/{admin → management}/ApplicationList/ApplicationList.cjs +9 -4
  64. package/dist/cjs/components/management/ApplicationList/ApplicationList.cjs.map +1 -0
  65. package/dist/cjs/components/{admin → management}/ApplicationList/BaseApplicationList.cjs +1 -1
  66. package/dist/cjs/components/management/ApplicationList/BaseApplicationList.cjs.map +1 -0
  67. package/dist/cjs/components/{admin → management}/GroupCreate/BaseGroupCreate.cjs +1 -1
  68. package/dist/cjs/components/management/GroupCreate/BaseGroupCreate.cjs.map +1 -0
  69. package/dist/cjs/components/{admin → management}/GroupCreate/GroupCreate.cjs +1 -1
  70. package/dist/cjs/components/management/GroupCreate/GroupCreate.cjs.map +1 -0
  71. package/dist/cjs/components/management/GroupDetails/BaseGroupDetails.cjs +86 -0
  72. package/dist/cjs/components/management/GroupDetails/BaseGroupDetails.cjs.map +1 -0
  73. package/dist/cjs/components/management/GroupDetails/GroupDetails.cjs +60 -0
  74. package/dist/cjs/components/management/GroupDetails/GroupDetails.cjs.map +1 -0
  75. package/dist/cjs/components/{admin → management}/GroupList/BaseGroupList.cjs +1 -1
  76. package/dist/cjs/components/management/GroupList/BaseGroupList.cjs.map +1 -0
  77. package/dist/cjs/components/{admin → management}/GroupList/GroupList.cjs +1 -1
  78. package/dist/cjs/components/management/GroupList/GroupList.cjs.map +1 -0
  79. package/dist/cjs/components/{admin → management}/GroupMembers/BaseGroupMembers.cjs +1 -1
  80. package/dist/cjs/components/management/GroupMembers/BaseGroupMembers.cjs.map +1 -0
  81. package/dist/cjs/components/{admin → management}/GroupMembers/GroupMembers.cjs +1 -1
  82. package/dist/cjs/components/management/GroupMembers/GroupMembers.cjs.map +1 -0
  83. package/dist/cjs/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.cjs +140 -0
  84. package/dist/cjs/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.cjs.map +1 -0
  85. package/dist/cjs/components/management/OrganizationUnitCreate/OrganizationUnitCreate.cjs +83 -0
  86. package/dist/cjs/components/management/OrganizationUnitCreate/OrganizationUnitCreate.cjs.map +1 -0
  87. package/dist/cjs/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.cjs +276 -0
  88. package/dist/cjs/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.cjs.map +1 -0
  89. package/dist/cjs/components/management/OrganizationUnitDetails/OrganizationUnitDetails.cjs +142 -0
  90. package/dist/cjs/components/management/OrganizationUnitDetails/OrganizationUnitDetails.cjs.map +1 -0
  91. package/dist/cjs/components/management/OrganizationUnitList/BaseOrganizationUnitList.cjs +78 -0
  92. package/dist/cjs/components/management/OrganizationUnitList/BaseOrganizationUnitList.cjs.map +1 -0
  93. package/dist/cjs/components/management/OrganizationUnitList/OrganizationUnitList.cjs +69 -0
  94. package/dist/cjs/components/management/OrganizationUnitList/OrganizationUnitList.cjs.map +1 -0
  95. package/dist/cjs/components/management/ProjectCreate/BaseProjectCreate.cjs +116 -0
  96. package/dist/cjs/components/management/ProjectCreate/BaseProjectCreate.cjs.map +1 -0
  97. package/dist/cjs/components/management/ProjectCreate/ProjectCreate.cjs +43 -0
  98. package/dist/cjs/components/management/ProjectCreate/ProjectCreate.cjs.map +1 -0
  99. package/dist/cjs/components/management/ProjectDetails/BaseProjectDetails.cjs +172 -0
  100. package/dist/cjs/components/management/ProjectDetails/BaseProjectDetails.cjs.map +1 -0
  101. package/dist/cjs/components/management/ProjectDetails/ProjectDetails.cjs +68 -0
  102. package/dist/cjs/components/management/ProjectDetails/ProjectDetails.cjs.map +1 -0
  103. package/dist/cjs/components/management/ProjectList/BaseProjectList.cjs +78 -0
  104. package/dist/cjs/components/management/ProjectList/BaseProjectList.cjs.map +1 -0
  105. package/dist/cjs/components/management/ProjectList/ProjectList.cjs +51 -0
  106. package/dist/cjs/components/management/ProjectList/ProjectList.cjs.map +1 -0
  107. package/dist/cjs/components/management/ProjectSwitcher/BaseProjectSwitcher.cjs +58 -0
  108. package/dist/cjs/components/management/ProjectSwitcher/BaseProjectSwitcher.cjs.map +1 -0
  109. package/dist/cjs/components/management/ProjectSwitcher/ProjectSwitcher.cjs +72 -0
  110. package/dist/cjs/components/management/ProjectSwitcher/ProjectSwitcher.cjs.map +1 -0
  111. package/dist/cjs/components/{admin → management}/RoleAssignments/BaseRoleAssignments.cjs +1 -1
  112. package/dist/cjs/components/management/RoleAssignments/BaseRoleAssignments.cjs.map +1 -0
  113. package/dist/cjs/components/{admin → management}/RoleAssignments/RoleAssignments.cjs +1 -1
  114. package/dist/cjs/components/management/RoleAssignments/RoleAssignments.cjs.map +1 -0
  115. package/dist/cjs/components/{admin → management}/RoleCreate/BaseRoleCreate.cjs +1 -1
  116. package/dist/cjs/components/management/RoleCreate/BaseRoleCreate.cjs.map +1 -0
  117. package/dist/cjs/components/{admin → management}/RoleCreate/RoleCreate.cjs +1 -1
  118. package/dist/cjs/components/management/RoleCreate/RoleCreate.cjs.map +1 -0
  119. package/dist/cjs/components/management/RoleDetails/BaseRoleDetails.cjs +87 -0
  120. package/dist/cjs/components/management/RoleDetails/BaseRoleDetails.cjs.map +1 -0
  121. package/dist/cjs/components/management/RoleDetails/RoleDetails.cjs +68 -0
  122. package/dist/cjs/components/management/RoleDetails/RoleDetails.cjs.map +1 -0
  123. package/dist/cjs/components/{admin → management}/RoleList/BaseRoleList.cjs +1 -1
  124. package/dist/cjs/components/management/RoleList/BaseRoleList.cjs.map +1 -0
  125. package/dist/cjs/components/{admin → management}/RoleList/RoleList.cjs +1 -1
  126. package/dist/cjs/components/management/RoleList/RoleList.cjs.map +1 -0
  127. package/dist/cjs/components/management/RolePermissions/BaseRolePermissions.cjs +181 -0
  128. package/dist/cjs/components/management/RolePermissions/BaseRolePermissions.cjs.map +1 -0
  129. package/dist/cjs/components/management/RolePermissions/RolePermissions.cjs +112 -0
  130. package/dist/cjs/components/management/RolePermissions/RolePermissions.cjs.map +1 -0
  131. package/dist/cjs/components/management/SharingPolicies/BaseSharingPolicies.cjs +308 -0
  132. package/dist/cjs/components/management/SharingPolicies/BaseSharingPolicies.cjs.map +1 -0
  133. package/dist/cjs/components/management/SharingPolicies/SharingPolicies.cjs +126 -0
  134. package/dist/cjs/components/management/SharingPolicies/SharingPolicies.cjs.map +1 -0
  135. package/dist/cjs/components/{admin → management}/UserCreate/BaseUserCreate.cjs +1 -1
  136. package/dist/cjs/components/management/UserCreate/BaseUserCreate.cjs.map +1 -0
  137. package/dist/cjs/components/{admin → management}/UserCreate/UserCreate.cjs +1 -1
  138. package/dist/cjs/components/management/UserCreate/UserCreate.cjs.map +1 -0
  139. package/dist/cjs/components/{admin → management}/UserCreate/userCreateFields.cjs +1 -1
  140. package/dist/cjs/components/management/UserCreate/userCreateFields.cjs.map +1 -0
  141. package/dist/cjs/components/{admin → management}/UserDetails/BaseUserDetails.cjs +1 -1
  142. package/dist/cjs/components/management/UserDetails/BaseUserDetails.cjs.map +1 -0
  143. package/dist/cjs/components/{admin → management}/UserDetails/UserDetails.cjs +1 -1
  144. package/dist/cjs/components/management/UserDetails/UserDetails.cjs.map +1 -0
  145. package/dist/cjs/components/{admin → management}/UserList/BaseUserList.cjs +1 -1
  146. package/dist/cjs/components/management/UserList/BaseUserList.cjs.map +1 -0
  147. package/dist/cjs/components/{admin → management}/UserList/UserList.cjs +1 -1
  148. package/dist/cjs/components/management/UserList/UserList.cjs.map +1 -0
  149. package/dist/cjs/components/{admin → management}/shared/AccountLifecycleParts.cjs +1 -1
  150. package/dist/cjs/components/management/shared/AccountLifecycleParts.cjs.map +1 -0
  151. package/dist/cjs/components/{admin → management}/shared/AdminParts.cjs +1 -1
  152. package/dist/cjs/components/management/shared/AdminParts.cjs.map +1 -0
  153. package/dist/cjs/components/{admin → management}/shared/AdminParts.styles.cjs +1 -1
  154. package/dist/cjs/components/management/shared/AdminParts.styles.cjs.map +1 -0
  155. package/dist/cjs/components/{admin → management}/shared/AdminSearch.cjs +1 -1
  156. package/dist/cjs/components/management/shared/AdminSearch.cjs.map +1 -0
  157. package/dist/cjs/components/{admin → management}/shared/AdminSection.cjs +1 -1
  158. package/dist/cjs/components/management/shared/AdminSection.cjs.map +1 -0
  159. package/dist/cjs/components/{admin → management}/shared/AdminSection.styles.cjs +1 -1
  160. package/dist/cjs/components/management/shared/AdminSection.styles.cjs.map +1 -0
  161. package/dist/cjs/components/{admin → management}/shared/ApplicationFormFields.cjs +1 -1
  162. package/dist/cjs/components/management/shared/ApplicationFormFields.cjs.map +1 -0
  163. package/dist/cjs/components/{admin → management}/shared/ClientSecretNotice.cjs +1 -1
  164. package/dist/cjs/components/management/shared/ClientSecretNotice.cjs.map +1 -0
  165. package/dist/cjs/components/{admin → management}/shared/IdentityPicker.cjs +1 -1
  166. package/dist/cjs/components/management/shared/IdentityPicker.cjs.map +1 -0
  167. package/dist/cjs/components/management/shared/formatTimestamp.cjs +18 -0
  168. package/dist/cjs/components/management/shared/formatTimestamp.cjs.map +1 -0
  169. package/dist/cjs/components/{admin → management}/shared/useAdminPartStyles.cjs +1 -1
  170. package/dist/cjs/components/management/shared/useAdminPartStyles.cjs.map +1 -0
  171. package/dist/cjs/components/{admin → management}/shared/useDefaultOuId.cjs +1 -1
  172. package/dist/cjs/components/management/shared/useDefaultOuId.cjs.map +1 -0
  173. package/dist/cjs/components/management/shared/useProjectPlacement.cjs +23 -0
  174. package/dist/cjs/components/management/shared/useProjectPlacement.cjs.map +1 -0
  175. package/dist/cjs/contexts/ComponentRenderer/ComponentRendererContext.cjs.map +1 -1
  176. package/dist/cjs/contexts/ThunderID/ThunderIDContext.cjs +5 -0
  177. package/dist/cjs/contexts/ThunderID/ThunderIDContext.cjs.map +1 -1
  178. package/dist/cjs/contexts/ThunderID/ThunderIDProvider.cjs +41 -1
  179. package/dist/cjs/contexts/ThunderID/ThunderIDProvider.cjs.map +1 -1
  180. package/dist/cjs/contexts/ThunderID/useCurrentProjectState.cjs +33 -0
  181. package/dist/cjs/contexts/ThunderID/useCurrentProjectState.cjs.map +1 -0
  182. package/dist/cjs/hooks/management/useManagementEndpoint.cjs.map +1 -1
  183. package/dist/cjs/index.cjs +407 -33
  184. package/dist/cjs/utils/flowTransformer.cjs +9 -0
  185. package/dist/cjs/utils/flowTransformer.cjs.map +1 -1
  186. package/dist/cjs/utils/getOrganizationUnitSwitchErrorKey.cjs +24 -0
  187. package/dist/cjs/utils/getOrganizationUnitSwitchErrorKey.cjs.map +1 -0
  188. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.d.ts +85 -0
  189. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.d.ts.map +1 -0
  190. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.js +209 -0
  191. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.js.map +1 -0
  192. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.d.ts +11 -0
  193. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.d.ts.map +1 -0
  194. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.js +184 -0
  195. package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.js.map +1 -0
  196. package/dist/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.d.ts +54 -0
  197. package/dist/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.d.ts.map +1 -0
  198. package/dist/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.js +135 -0
  199. package/dist/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.js.map +1 -0
  200. package/dist/components/account/UserProfile/BaseUserProfile.d.ts +27 -1
  201. package/dist/components/account/UserProfile/BaseUserProfile.d.ts.map +1 -1
  202. package/dist/components/account/UserProfile/BaseUserProfile.js +197 -48
  203. package/dist/components/account/UserProfile/BaseUserProfile.js.map +1 -1
  204. package/dist/components/account/UserProfile/BaseUserProfile.styles.d.ts.map +1 -1
  205. package/dist/components/account/UserProfile/BaseUserProfile.styles.js +57 -4
  206. package/dist/components/account/UserProfile/BaseUserProfile.styles.js.map +1 -1
  207. package/dist/components/account/UserProfile/UserProfile.d.ts +7 -1
  208. package/dist/components/account/UserProfile/UserProfile.d.ts.map +1 -1
  209. package/dist/components/account/UserProfile/UserProfile.js +14 -2
  210. package/dist/components/account/UserProfile/UserProfile.js.map +1 -1
  211. package/dist/components/account/VerifyAttribute/BaseVerifyAttribute.d.ts +113 -0
  212. package/dist/components/account/VerifyAttribute/BaseVerifyAttribute.d.ts.map +1 -0
  213. package/dist/components/account/VerifyAttribute/BaseVerifyAttribute.js +354 -0
  214. package/dist/components/account/VerifyAttribute/BaseVerifyAttribute.js.map +1 -0
  215. package/dist/components/account/VerifyAttribute/BaseVerifyAttribute.styles.d.ts +10 -0
  216. package/dist/components/account/VerifyAttribute/BaseVerifyAttribute.styles.d.ts.map +1 -0
  217. package/dist/components/account/VerifyAttribute/BaseVerifyAttribute.styles.js +82 -0
  218. package/dist/components/account/VerifyAttribute/BaseVerifyAttribute.styles.js.map +1 -0
  219. package/dist/components/account/VerifyAttribute/VerifyAttribute.d.ts +41 -0
  220. package/dist/components/account/VerifyAttribute/VerifyAttribute.d.ts.map +1 -0
  221. package/dist/components/account/VerifyAttribute/VerifyAttribute.js +90 -0
  222. package/dist/components/account/VerifyAttribute/VerifyAttribute.js.map +1 -0
  223. package/dist/components/auth/SignIn/SignIn.d.ts +5 -0
  224. package/dist/components/auth/SignIn/SignIn.d.ts.map +1 -1
  225. package/dist/components/auth/SignIn/SignIn.js +25 -22
  226. package/dist/components/auth/SignIn/SignIn.js.map +1 -1
  227. package/dist/components/auth/SignUp/BaseSignUp.d.ts.map +1 -1
  228. package/dist/components/auth/SignUp/BaseSignUp.js +14 -10
  229. package/dist/components/auth/SignUp/BaseSignUp.js.map +1 -1
  230. package/dist/components/auth/flow/AuthOptionFactory.d.ts +5 -1
  231. package/dist/components/auth/flow/AuthOptionFactory.d.ts.map +1 -1
  232. package/dist/components/auth/flow/AuthOptionFactory.js +22 -3
  233. package/dist/components/auth/flow/AuthOptionFactory.js.map +1 -1
  234. package/dist/components/common/LanguageSwitcher/BaseLanguageSwitcher.js +1 -1
  235. package/dist/components/{admin → management}/AgentCreate/AgentCreate.d.ts +2 -1
  236. package/dist/components/management/AgentCreate/AgentCreate.d.ts.map +1 -0
  237. package/dist/components/{admin → management}/AgentCreate/AgentCreate.js +8 -7
  238. package/dist/components/management/AgentCreate/AgentCreate.js.map +1 -0
  239. package/dist/components/management/AgentCreate/BaseAgentCreate.d.ts.map +1 -0
  240. package/dist/components/{admin → management}/AgentCreate/BaseAgentCreate.js +1 -1
  241. package/dist/components/management/AgentCreate/BaseAgentCreate.js.map +1 -0
  242. package/dist/components/management/AgentDetails/AgentDetails.d.ts.map +1 -0
  243. package/dist/components/{admin → management}/AgentDetails/AgentDetails.js +1 -1
  244. package/dist/components/management/AgentDetails/AgentDetails.js.map +1 -0
  245. package/dist/components/management/AgentDetails/BaseAgentDetails.d.ts.map +1 -0
  246. package/dist/components/{admin → management}/AgentDetails/BaseAgentDetails.js +1 -1
  247. package/dist/components/management/AgentDetails/BaseAgentDetails.js.map +1 -0
  248. package/dist/components/{admin → management}/AgentList/AgentList.d.ts +7 -1
  249. package/dist/components/management/AgentList/AgentList.d.ts.map +1 -0
  250. package/dist/components/{admin → management}/AgentList/AgentList.js +11 -6
  251. package/dist/components/management/AgentList/AgentList.js.map +1 -0
  252. package/dist/components/management/AgentList/BaseAgentList.d.ts.map +1 -0
  253. package/dist/components/{admin → management}/AgentList/BaseAgentList.js +1 -1
  254. package/dist/components/management/AgentList/BaseAgentList.js.map +1 -0
  255. package/dist/components/{admin → management}/ApplicationCreate/ApplicationCreate.d.ts +2 -1
  256. package/dist/components/management/ApplicationCreate/ApplicationCreate.d.ts.map +1 -0
  257. package/dist/components/{admin → management}/ApplicationCreate/ApplicationCreate.js +10 -5
  258. package/dist/components/management/ApplicationCreate/ApplicationCreate.js.map +1 -0
  259. package/dist/components/management/ApplicationCreate/BaseApplicationCreate.d.ts.map +1 -0
  260. package/dist/components/{admin → management}/ApplicationCreate/BaseApplicationCreate.js +1 -1
  261. package/dist/components/management/ApplicationCreate/BaseApplicationCreate.js.map +1 -0
  262. package/dist/components/management/ApplicationDetails/ApplicationDetails.d.ts.map +1 -0
  263. package/dist/components/{admin → management}/ApplicationDetails/ApplicationDetails.js +1 -1
  264. package/dist/components/management/ApplicationDetails/ApplicationDetails.js.map +1 -0
  265. package/dist/components/management/ApplicationDetails/BaseApplicationDetails.d.ts.map +1 -0
  266. package/dist/components/{admin → management}/ApplicationDetails/BaseApplicationDetails.js +1 -1
  267. package/dist/components/management/ApplicationDetails/BaseApplicationDetails.js.map +1 -0
  268. package/dist/components/{admin → management}/ApplicationList/ApplicationList.d.ts +7 -1
  269. package/dist/components/management/ApplicationList/ApplicationList.d.ts.map +1 -0
  270. package/dist/components/{admin → management}/ApplicationList/ApplicationList.js +9 -4
  271. package/dist/components/management/ApplicationList/ApplicationList.js.map +1 -0
  272. package/dist/components/management/ApplicationList/BaseApplicationList.d.ts.map +1 -0
  273. package/dist/components/{admin → management}/ApplicationList/BaseApplicationList.js +1 -1
  274. package/dist/components/management/ApplicationList/BaseApplicationList.js.map +1 -0
  275. package/dist/components/management/GroupCreate/BaseGroupCreate.d.ts.map +1 -0
  276. package/dist/components/{admin → management}/GroupCreate/BaseGroupCreate.js +1 -1
  277. package/dist/components/management/GroupCreate/BaseGroupCreate.js.map +1 -0
  278. package/dist/components/management/GroupCreate/GroupCreate.d.ts.map +1 -0
  279. package/dist/components/{admin → management}/GroupCreate/GroupCreate.js +1 -1
  280. package/dist/components/management/GroupCreate/GroupCreate.js.map +1 -0
  281. package/dist/components/management/GroupDetails/BaseGroupDetails.d.ts +47 -0
  282. package/dist/components/management/GroupDetails/BaseGroupDetails.d.ts.map +1 -0
  283. package/dist/components/management/GroupDetails/BaseGroupDetails.js +84 -0
  284. package/dist/components/management/GroupDetails/BaseGroupDetails.js.map +1 -0
  285. package/dist/components/management/GroupDetails/GroupDetails.d.ts +37 -0
  286. package/dist/components/management/GroupDetails/GroupDetails.d.ts.map +1 -0
  287. package/dist/components/management/GroupDetails/GroupDetails.js +57 -0
  288. package/dist/components/management/GroupDetails/GroupDetails.js.map +1 -0
  289. package/dist/components/management/GroupList/BaseGroupList.d.ts.map +1 -0
  290. package/dist/components/{admin → management}/GroupList/BaseGroupList.js +1 -1
  291. package/dist/components/management/GroupList/BaseGroupList.js.map +1 -0
  292. package/dist/components/management/GroupList/GroupList.d.ts.map +1 -0
  293. package/dist/components/{admin → management}/GroupList/GroupList.js +1 -1
  294. package/dist/components/management/GroupList/GroupList.js.map +1 -0
  295. package/dist/components/management/GroupMembers/BaseGroupMembers.d.ts.map +1 -0
  296. package/dist/components/{admin → management}/GroupMembers/BaseGroupMembers.js +1 -1
  297. package/dist/components/management/GroupMembers/BaseGroupMembers.js.map +1 -0
  298. package/dist/components/management/GroupMembers/GroupMembers.d.ts.map +1 -0
  299. package/dist/components/{admin → management}/GroupMembers/GroupMembers.js +1 -1
  300. package/dist/components/management/GroupMembers/GroupMembers.js.map +1 -0
  301. package/dist/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.d.ts +85 -0
  302. package/dist/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.d.ts.map +1 -0
  303. package/dist/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.js +137 -0
  304. package/dist/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.js.map +1 -0
  305. package/dist/components/management/OrganizationUnitCreate/OrganizationUnitCreate.d.ts +21 -0
  306. package/dist/components/management/OrganizationUnitCreate/OrganizationUnitCreate.d.ts.map +1 -0
  307. package/dist/components/management/OrganizationUnitCreate/OrganizationUnitCreate.js +79 -0
  308. package/dist/components/management/OrganizationUnitCreate/OrganizationUnitCreate.js.map +1 -0
  309. package/dist/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.d.ts +105 -0
  310. package/dist/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.d.ts.map +1 -0
  311. package/dist/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.js +273 -0
  312. package/dist/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.js.map +1 -0
  313. package/dist/components/management/OrganizationUnitDetails/OrganizationUnitDetails.d.ts +42 -0
  314. package/dist/components/management/OrganizationUnitDetails/OrganizationUnitDetails.d.ts.map +1 -0
  315. package/dist/components/management/OrganizationUnitDetails/OrganizationUnitDetails.js +139 -0
  316. package/dist/components/management/OrganizationUnitDetails/OrganizationUnitDetails.js.map +1 -0
  317. package/dist/components/management/OrganizationUnitList/BaseOrganizationUnitList.d.ts +54 -0
  318. package/dist/components/management/OrganizationUnitList/BaseOrganizationUnitList.d.ts.map +1 -0
  319. package/dist/components/management/OrganizationUnitList/BaseOrganizationUnitList.js +76 -0
  320. package/dist/components/management/OrganizationUnitList/BaseOrganizationUnitList.js.map +1 -0
  321. package/dist/components/management/OrganizationUnitList/OrganizationUnitList.d.ts +19 -0
  322. package/dist/components/management/OrganizationUnitList/OrganizationUnitList.d.ts.map +1 -0
  323. package/dist/components/management/OrganizationUnitList/OrganizationUnitList.js +65 -0
  324. package/dist/components/management/OrganizationUnitList/OrganizationUnitList.js.map +1 -0
  325. package/dist/components/management/ProjectCreate/BaseProjectCreate.d.ts +60 -0
  326. package/dist/components/management/ProjectCreate/BaseProjectCreate.d.ts.map +1 -0
  327. package/dist/components/management/ProjectCreate/BaseProjectCreate.js +113 -0
  328. package/dist/components/management/ProjectCreate/BaseProjectCreate.js.map +1 -0
  329. package/dist/components/management/ProjectCreate/ProjectCreate.d.ts +20 -0
  330. package/dist/components/management/ProjectCreate/ProjectCreate.d.ts.map +1 -0
  331. package/dist/components/management/ProjectCreate/ProjectCreate.js +40 -0
  332. package/dist/components/management/ProjectCreate/ProjectCreate.js.map +1 -0
  333. package/dist/components/management/ProjectDetails/BaseProjectDetails.d.ts +60 -0
  334. package/dist/components/management/ProjectDetails/BaseProjectDetails.d.ts.map +1 -0
  335. package/dist/components/management/ProjectDetails/BaseProjectDetails.js +169 -0
  336. package/dist/components/management/ProjectDetails/BaseProjectDetails.js.map +1 -0
  337. package/dist/components/management/ProjectDetails/ProjectDetails.d.ts +36 -0
  338. package/dist/components/management/ProjectDetails/ProjectDetails.d.ts.map +1 -0
  339. package/dist/components/management/ProjectDetails/ProjectDetails.js +65 -0
  340. package/dist/components/management/ProjectDetails/ProjectDetails.js.map +1 -0
  341. package/dist/components/management/ProjectList/BaseProjectList.d.ts +53 -0
  342. package/dist/components/management/ProjectList/BaseProjectList.d.ts.map +1 -0
  343. package/dist/components/management/ProjectList/BaseProjectList.js +76 -0
  344. package/dist/components/management/ProjectList/BaseProjectList.js.map +1 -0
  345. package/dist/components/management/ProjectList/ProjectList.d.ts +14 -0
  346. package/dist/components/management/ProjectList/ProjectList.d.ts.map +1 -0
  347. package/dist/components/management/ProjectList/ProjectList.js +47 -0
  348. package/dist/components/management/ProjectList/ProjectList.js.map +1 -0
  349. package/dist/components/management/ProjectSwitcher/BaseProjectSwitcher.d.ts +69 -0
  350. package/dist/components/management/ProjectSwitcher/BaseProjectSwitcher.d.ts.map +1 -0
  351. package/dist/components/management/ProjectSwitcher/BaseProjectSwitcher.js +55 -0
  352. package/dist/components/management/ProjectSwitcher/BaseProjectSwitcher.js.map +1 -0
  353. package/dist/components/management/ProjectSwitcher/ProjectSwitcher.d.ts +25 -0
  354. package/dist/components/management/ProjectSwitcher/ProjectSwitcher.d.ts.map +1 -0
  355. package/dist/components/management/ProjectSwitcher/ProjectSwitcher.js +68 -0
  356. package/dist/components/management/ProjectSwitcher/ProjectSwitcher.js.map +1 -0
  357. package/dist/components/management/RoleAssignments/BaseRoleAssignments.d.ts.map +1 -0
  358. package/dist/components/{admin → management}/RoleAssignments/BaseRoleAssignments.js +1 -1
  359. package/dist/components/management/RoleAssignments/BaseRoleAssignments.js.map +1 -0
  360. package/dist/components/management/RoleAssignments/RoleAssignments.d.ts.map +1 -0
  361. package/dist/components/{admin → management}/RoleAssignments/RoleAssignments.js +1 -1
  362. package/dist/components/management/RoleAssignments/RoleAssignments.js.map +1 -0
  363. package/dist/components/management/RoleCreate/BaseRoleCreate.d.ts.map +1 -0
  364. package/dist/components/{admin → management}/RoleCreate/BaseRoleCreate.js +1 -1
  365. package/dist/components/management/RoleCreate/BaseRoleCreate.js.map +1 -0
  366. package/dist/components/management/RoleCreate/RoleCreate.d.ts.map +1 -0
  367. package/dist/components/{admin → management}/RoleCreate/RoleCreate.js +1 -1
  368. package/dist/components/management/RoleCreate/RoleCreate.js.map +1 -0
  369. package/dist/components/management/RoleDetails/BaseRoleDetails.d.ts +51 -0
  370. package/dist/components/management/RoleDetails/BaseRoleDetails.d.ts.map +1 -0
  371. package/dist/components/management/RoleDetails/BaseRoleDetails.js +85 -0
  372. package/dist/components/management/RoleDetails/BaseRoleDetails.js.map +1 -0
  373. package/dist/components/management/RoleDetails/RoleDetails.d.ts +39 -0
  374. package/dist/components/management/RoleDetails/RoleDetails.d.ts.map +1 -0
  375. package/dist/components/management/RoleDetails/RoleDetails.js +65 -0
  376. package/dist/components/management/RoleDetails/RoleDetails.js.map +1 -0
  377. package/dist/components/management/RoleList/BaseRoleList.d.ts.map +1 -0
  378. package/dist/components/{admin → management}/RoleList/BaseRoleList.js +1 -1
  379. package/dist/components/management/RoleList/BaseRoleList.js.map +1 -0
  380. package/dist/components/management/RoleList/RoleList.d.ts.map +1 -0
  381. package/dist/components/{admin → management}/RoleList/RoleList.js +1 -1
  382. package/dist/components/management/RoleList/RoleList.js.map +1 -0
  383. package/dist/components/management/RolePermissions/BaseRolePermissions.d.ts +104 -0
  384. package/dist/components/management/RolePermissions/BaseRolePermissions.d.ts.map +1 -0
  385. package/dist/components/management/RolePermissions/BaseRolePermissions.js +178 -0
  386. package/dist/components/management/RolePermissions/BaseRolePermissions.js.map +1 -0
  387. package/dist/components/management/RolePermissions/RolePermissions.d.ts +29 -0
  388. package/dist/components/management/RolePermissions/RolePermissions.d.ts.map +1 -0
  389. package/dist/components/management/RolePermissions/RolePermissions.js +108 -0
  390. package/dist/components/management/RolePermissions/RolePermissions.js.map +1 -0
  391. package/dist/components/management/SharingPolicies/BaseSharingPolicies.d.ts +124 -0
  392. package/dist/components/management/SharingPolicies/BaseSharingPolicies.d.ts.map +1 -0
  393. package/dist/components/management/SharingPolicies/BaseSharingPolicies.js +304 -0
  394. package/dist/components/management/SharingPolicies/BaseSharingPolicies.js.map +1 -0
  395. package/dist/components/management/SharingPolicies/SharingPolicies.d.ts +36 -0
  396. package/dist/components/management/SharingPolicies/SharingPolicies.d.ts.map +1 -0
  397. package/dist/components/management/SharingPolicies/SharingPolicies.js +122 -0
  398. package/dist/components/management/SharingPolicies/SharingPolicies.js.map +1 -0
  399. package/dist/components/management/UserCreate/BaseUserCreate.d.ts.map +1 -0
  400. package/dist/components/{admin → management}/UserCreate/BaseUserCreate.js +1 -1
  401. package/dist/components/management/UserCreate/BaseUserCreate.js.map +1 -0
  402. package/dist/components/management/UserCreate/UserCreate.d.ts.map +1 -0
  403. package/dist/components/{admin → management}/UserCreate/UserCreate.js +1 -1
  404. package/dist/components/management/UserCreate/UserCreate.js.map +1 -0
  405. package/dist/components/management/UserCreate/userCreateFields.d.ts.map +1 -0
  406. package/dist/components/{admin → management}/UserCreate/userCreateFields.js +1 -1
  407. package/dist/components/management/UserCreate/userCreateFields.js.map +1 -0
  408. package/dist/components/management/UserDetails/BaseUserDetails.d.ts.map +1 -0
  409. package/dist/components/{admin → management}/UserDetails/BaseUserDetails.js +1 -1
  410. package/dist/components/management/UserDetails/BaseUserDetails.js.map +1 -0
  411. package/dist/components/management/UserDetails/UserDetails.d.ts.map +1 -0
  412. package/dist/components/{admin → management}/UserDetails/UserDetails.js +1 -1
  413. package/dist/components/management/UserDetails/UserDetails.js.map +1 -0
  414. package/dist/components/management/UserList/BaseUserList.d.ts.map +1 -0
  415. package/dist/components/{admin → management}/UserList/BaseUserList.js +1 -1
  416. package/dist/components/management/UserList/BaseUserList.js.map +1 -0
  417. package/dist/components/management/UserList/UserList.d.ts.map +1 -0
  418. package/dist/components/{admin → management}/UserList/UserList.js +1 -1
  419. package/dist/components/management/UserList/UserList.js.map +1 -0
  420. package/dist/components/management/shared/AccountLifecycleParts.d.ts.map +1 -0
  421. package/dist/components/{admin → management}/shared/AccountLifecycleParts.js +1 -1
  422. package/dist/components/management/shared/AccountLifecycleParts.js.map +1 -0
  423. package/dist/components/management/shared/AdminListRenderProps.d.ts.map +1 -0
  424. package/dist/components/management/shared/AdminParts.d.ts.map +1 -0
  425. package/dist/components/{admin → management}/shared/AdminParts.js +1 -1
  426. package/dist/components/management/shared/AdminParts.js.map +1 -0
  427. package/dist/components/management/shared/AdminParts.styles.d.ts.map +1 -0
  428. package/dist/components/{admin → management}/shared/AdminParts.styles.js +1 -1
  429. package/dist/components/management/shared/AdminParts.styles.js.map +1 -0
  430. package/dist/components/management/shared/AdminSearch.d.ts.map +1 -0
  431. package/dist/components/{admin → management}/shared/AdminSearch.js +1 -1
  432. package/dist/components/management/shared/AdminSearch.js.map +1 -0
  433. package/dist/components/management/shared/AdminSection.d.ts.map +1 -0
  434. package/dist/components/{admin → management}/shared/AdminSection.js +1 -1
  435. package/dist/components/management/shared/AdminSection.js.map +1 -0
  436. package/dist/components/management/shared/AdminSection.styles.d.ts.map +1 -0
  437. package/dist/components/{admin → management}/shared/AdminSection.styles.js +1 -1
  438. package/dist/components/management/shared/AdminSection.styles.js.map +1 -0
  439. package/dist/components/management/shared/ApplicationFormFields.d.ts.map +1 -0
  440. package/dist/components/{admin → management}/shared/ApplicationFormFields.js +1 -1
  441. package/dist/components/management/shared/ApplicationFormFields.js.map +1 -0
  442. package/dist/components/management/shared/ClientSecretNotice.d.ts.map +1 -0
  443. package/dist/components/{admin → management}/shared/ClientSecretNotice.js +1 -1
  444. package/dist/components/management/shared/ClientSecretNotice.js.map +1 -0
  445. package/dist/components/management/shared/IdentityPicker.d.ts.map +1 -0
  446. package/dist/components/{admin → management}/shared/IdentityPicker.js +1 -1
  447. package/dist/components/management/shared/IdentityPicker.js.map +1 -0
  448. package/dist/components/management/shared/formatTimestamp.d.ts +9 -0
  449. package/dist/components/management/shared/formatTimestamp.d.ts.map +1 -0
  450. package/dist/components/management/shared/formatTimestamp.js +17 -0
  451. package/dist/components/management/shared/formatTimestamp.js.map +1 -0
  452. package/dist/components/management/shared/useAdminPartStyles.d.ts.map +1 -0
  453. package/dist/components/{admin → management}/shared/useAdminPartStyles.js +1 -1
  454. package/dist/components/management/shared/useAdminPartStyles.js.map +1 -0
  455. package/dist/components/management/shared/useDefaultOuId.d.ts.map +1 -0
  456. package/dist/components/{admin → management}/shared/useDefaultOuId.js +1 -1
  457. package/dist/components/management/shared/useDefaultOuId.js.map +1 -0
  458. package/dist/components/management/shared/useProjectPlacement.d.ts +26 -0
  459. package/dist/components/management/shared/useProjectPlacement.d.ts.map +1 -0
  460. package/dist/components/management/shared/useProjectPlacement.js +23 -0
  461. package/dist/components/management/shared/useProjectPlacement.js.map +1 -0
  462. package/dist/contexts/ComponentRenderer/ComponentRendererContext.d.ts +1 -1
  463. package/dist/contexts/ComponentRenderer/ComponentRendererContext.d.ts.map +1 -1
  464. package/dist/contexts/ComponentRenderer/ComponentRendererContext.js.map +1 -1
  465. package/dist/contexts/ThunderID/ThunderIDContext.d.ts +27 -1
  466. package/dist/contexts/ThunderID/ThunderIDContext.d.ts.map +1 -1
  467. package/dist/contexts/ThunderID/ThunderIDContext.js +5 -0
  468. package/dist/contexts/ThunderID/ThunderIDContext.js.map +1 -1
  469. package/dist/contexts/ThunderID/ThunderIDProvider.d.ts.map +1 -1
  470. package/dist/contexts/ThunderID/ThunderIDProvider.js +42 -2
  471. package/dist/contexts/ThunderID/ThunderIDProvider.js.map +1 -1
  472. package/dist/contexts/ThunderID/useCurrentProjectState.d.ts +26 -0
  473. package/dist/contexts/ThunderID/useCurrentProjectState.d.ts.map +1 -0
  474. package/dist/contexts/ThunderID/useCurrentProjectState.js +30 -0
  475. package/dist/contexts/ThunderID/useCurrentProjectState.js.map +1 -0
  476. package/dist/hooks/management/useManagementEndpoint.d.ts +1 -1
  477. package/dist/hooks/management/useManagementEndpoint.d.ts.map +1 -1
  478. package/dist/hooks/management/useManagementEndpoint.js.map +1 -1
  479. package/dist/index.d.ts +127 -70
  480. package/dist/index.d.ts.map +1 -1
  481. package/dist/index.js +62 -34
  482. package/dist/utils/flowTransformer.d.ts +7 -0
  483. package/dist/utils/flowTransformer.d.ts.map +1 -1
  484. package/dist/utils/flowTransformer.js +9 -1
  485. package/dist/utils/flowTransformer.js.map +1 -1
  486. package/dist/utils/getOrganizationUnitSwitchErrorKey.d.ts +11 -0
  487. package/dist/utils/getOrganizationUnitSwitchErrorKey.d.ts.map +1 -0
  488. package/dist/utils/getOrganizationUnitSwitchErrorKey.js +22 -0
  489. package/dist/utils/getOrganizationUnitSwitchErrorKey.js.map +1 -0
  490. package/package.json +2 -2
  491. package/dist/cjs/components/admin/AgentCreate/AgentCreate.cjs.map +0 -1
  492. package/dist/cjs/components/admin/AgentCreate/BaseAgentCreate.cjs.map +0 -1
  493. package/dist/cjs/components/admin/AgentDetails/AgentDetails.cjs.map +0 -1
  494. package/dist/cjs/components/admin/AgentDetails/BaseAgentDetails.cjs.map +0 -1
  495. package/dist/cjs/components/admin/AgentList/AgentList.cjs.map +0 -1
  496. package/dist/cjs/components/admin/AgentList/BaseAgentList.cjs.map +0 -1
  497. package/dist/cjs/components/admin/ApplicationCreate/ApplicationCreate.cjs.map +0 -1
  498. package/dist/cjs/components/admin/ApplicationCreate/BaseApplicationCreate.cjs.map +0 -1
  499. package/dist/cjs/components/admin/ApplicationDetails/ApplicationDetails.cjs.map +0 -1
  500. package/dist/cjs/components/admin/ApplicationDetails/BaseApplicationDetails.cjs.map +0 -1
  501. package/dist/cjs/components/admin/ApplicationList/ApplicationList.cjs.map +0 -1
  502. package/dist/cjs/components/admin/ApplicationList/BaseApplicationList.cjs.map +0 -1
  503. package/dist/cjs/components/admin/GroupCreate/BaseGroupCreate.cjs.map +0 -1
  504. package/dist/cjs/components/admin/GroupCreate/GroupCreate.cjs.map +0 -1
  505. package/dist/cjs/components/admin/GroupList/BaseGroupList.cjs.map +0 -1
  506. package/dist/cjs/components/admin/GroupList/GroupList.cjs.map +0 -1
  507. package/dist/cjs/components/admin/GroupMembers/BaseGroupMembers.cjs.map +0 -1
  508. package/dist/cjs/components/admin/GroupMembers/GroupMembers.cjs.map +0 -1
  509. package/dist/cjs/components/admin/RoleAssignments/BaseRoleAssignments.cjs.map +0 -1
  510. package/dist/cjs/components/admin/RoleAssignments/RoleAssignments.cjs.map +0 -1
  511. package/dist/cjs/components/admin/RoleCreate/BaseRoleCreate.cjs.map +0 -1
  512. package/dist/cjs/components/admin/RoleCreate/RoleCreate.cjs.map +0 -1
  513. package/dist/cjs/components/admin/RoleList/BaseRoleList.cjs.map +0 -1
  514. package/dist/cjs/components/admin/RoleList/RoleList.cjs.map +0 -1
  515. package/dist/cjs/components/admin/RolePermissions/BaseRolePermissions.cjs +0 -69
  516. package/dist/cjs/components/admin/RolePermissions/BaseRolePermissions.cjs.map +0 -1
  517. package/dist/cjs/components/admin/RolePermissions/RolePermissions.cjs +0 -40
  518. package/dist/cjs/components/admin/RolePermissions/RolePermissions.cjs.map +0 -1
  519. package/dist/cjs/components/admin/UserCreate/BaseUserCreate.cjs.map +0 -1
  520. package/dist/cjs/components/admin/UserCreate/UserCreate.cjs.map +0 -1
  521. package/dist/cjs/components/admin/UserCreate/userCreateFields.cjs.map +0 -1
  522. package/dist/cjs/components/admin/UserDetails/BaseUserDetails.cjs.map +0 -1
  523. package/dist/cjs/components/admin/UserDetails/UserDetails.cjs.map +0 -1
  524. package/dist/cjs/components/admin/UserList/BaseUserList.cjs.map +0 -1
  525. package/dist/cjs/components/admin/UserList/UserList.cjs.map +0 -1
  526. package/dist/cjs/components/admin/shared/AccountLifecycleParts.cjs.map +0 -1
  527. package/dist/cjs/components/admin/shared/AdminParts.cjs.map +0 -1
  528. package/dist/cjs/components/admin/shared/AdminParts.styles.cjs.map +0 -1
  529. package/dist/cjs/components/admin/shared/AdminSearch.cjs.map +0 -1
  530. package/dist/cjs/components/admin/shared/AdminSection.cjs.map +0 -1
  531. package/dist/cjs/components/admin/shared/AdminSection.styles.cjs.map +0 -1
  532. package/dist/cjs/components/admin/shared/ApplicationFormFields.cjs.map +0 -1
  533. package/dist/cjs/components/admin/shared/ClientSecretNotice.cjs.map +0 -1
  534. package/dist/cjs/components/admin/shared/IdentityPicker.cjs.map +0 -1
  535. package/dist/cjs/components/admin/shared/useAdminPartStyles.cjs.map +0 -1
  536. package/dist/cjs/components/admin/shared/useDefaultOuId.cjs.map +0 -1
  537. package/dist/components/admin/AgentCreate/AgentCreate.d.ts.map +0 -1
  538. package/dist/components/admin/AgentCreate/AgentCreate.js.map +0 -1
  539. package/dist/components/admin/AgentCreate/BaseAgentCreate.d.ts.map +0 -1
  540. package/dist/components/admin/AgentCreate/BaseAgentCreate.js.map +0 -1
  541. package/dist/components/admin/AgentDetails/AgentDetails.d.ts.map +0 -1
  542. package/dist/components/admin/AgentDetails/AgentDetails.js.map +0 -1
  543. package/dist/components/admin/AgentDetails/BaseAgentDetails.d.ts.map +0 -1
  544. package/dist/components/admin/AgentDetails/BaseAgentDetails.js.map +0 -1
  545. package/dist/components/admin/AgentList/AgentList.d.ts.map +0 -1
  546. package/dist/components/admin/AgentList/AgentList.js.map +0 -1
  547. package/dist/components/admin/AgentList/BaseAgentList.d.ts.map +0 -1
  548. package/dist/components/admin/AgentList/BaseAgentList.js.map +0 -1
  549. package/dist/components/admin/ApplicationCreate/ApplicationCreate.d.ts.map +0 -1
  550. package/dist/components/admin/ApplicationCreate/ApplicationCreate.js.map +0 -1
  551. package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.d.ts.map +0 -1
  552. package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.js.map +0 -1
  553. package/dist/components/admin/ApplicationDetails/ApplicationDetails.d.ts.map +0 -1
  554. package/dist/components/admin/ApplicationDetails/ApplicationDetails.js.map +0 -1
  555. package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.d.ts.map +0 -1
  556. package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.js.map +0 -1
  557. package/dist/components/admin/ApplicationList/ApplicationList.d.ts.map +0 -1
  558. package/dist/components/admin/ApplicationList/ApplicationList.js.map +0 -1
  559. package/dist/components/admin/ApplicationList/BaseApplicationList.d.ts.map +0 -1
  560. package/dist/components/admin/ApplicationList/BaseApplicationList.js.map +0 -1
  561. package/dist/components/admin/GroupCreate/BaseGroupCreate.d.ts.map +0 -1
  562. package/dist/components/admin/GroupCreate/BaseGroupCreate.js.map +0 -1
  563. package/dist/components/admin/GroupCreate/GroupCreate.d.ts.map +0 -1
  564. package/dist/components/admin/GroupCreate/GroupCreate.js.map +0 -1
  565. package/dist/components/admin/GroupList/BaseGroupList.d.ts.map +0 -1
  566. package/dist/components/admin/GroupList/BaseGroupList.js.map +0 -1
  567. package/dist/components/admin/GroupList/GroupList.d.ts.map +0 -1
  568. package/dist/components/admin/GroupList/GroupList.js.map +0 -1
  569. package/dist/components/admin/GroupMembers/BaseGroupMembers.d.ts.map +0 -1
  570. package/dist/components/admin/GroupMembers/BaseGroupMembers.js.map +0 -1
  571. package/dist/components/admin/GroupMembers/GroupMembers.d.ts.map +0 -1
  572. package/dist/components/admin/GroupMembers/GroupMembers.js.map +0 -1
  573. package/dist/components/admin/RoleAssignments/BaseRoleAssignments.d.ts.map +0 -1
  574. package/dist/components/admin/RoleAssignments/BaseRoleAssignments.js.map +0 -1
  575. package/dist/components/admin/RoleAssignments/RoleAssignments.d.ts.map +0 -1
  576. package/dist/components/admin/RoleAssignments/RoleAssignments.js.map +0 -1
  577. package/dist/components/admin/RoleCreate/BaseRoleCreate.d.ts.map +0 -1
  578. package/dist/components/admin/RoleCreate/BaseRoleCreate.js.map +0 -1
  579. package/dist/components/admin/RoleCreate/RoleCreate.d.ts.map +0 -1
  580. package/dist/components/admin/RoleCreate/RoleCreate.js.map +0 -1
  581. package/dist/components/admin/RoleList/BaseRoleList.d.ts.map +0 -1
  582. package/dist/components/admin/RoleList/BaseRoleList.js.map +0 -1
  583. package/dist/components/admin/RoleList/RoleList.d.ts.map +0 -1
  584. package/dist/components/admin/RoleList/RoleList.js.map +0 -1
  585. package/dist/components/admin/RolePermissions/BaseRolePermissions.d.ts +0 -42
  586. package/dist/components/admin/RolePermissions/BaseRolePermissions.d.ts.map +0 -1
  587. package/dist/components/admin/RolePermissions/BaseRolePermissions.js +0 -67
  588. package/dist/components/admin/RolePermissions/BaseRolePermissions.js.map +0 -1
  589. package/dist/components/admin/RolePermissions/RolePermissions.d.ts +0 -16
  590. package/dist/components/admin/RolePermissions/RolePermissions.d.ts.map +0 -1
  591. package/dist/components/admin/RolePermissions/RolePermissions.js +0 -37
  592. package/dist/components/admin/RolePermissions/RolePermissions.js.map +0 -1
  593. package/dist/components/admin/UserCreate/BaseUserCreate.d.ts.map +0 -1
  594. package/dist/components/admin/UserCreate/BaseUserCreate.js.map +0 -1
  595. package/dist/components/admin/UserCreate/UserCreate.d.ts.map +0 -1
  596. package/dist/components/admin/UserCreate/UserCreate.js.map +0 -1
  597. package/dist/components/admin/UserCreate/userCreateFields.d.ts.map +0 -1
  598. package/dist/components/admin/UserCreate/userCreateFields.js.map +0 -1
  599. package/dist/components/admin/UserDetails/BaseUserDetails.d.ts.map +0 -1
  600. package/dist/components/admin/UserDetails/BaseUserDetails.js.map +0 -1
  601. package/dist/components/admin/UserDetails/UserDetails.d.ts.map +0 -1
  602. package/dist/components/admin/UserDetails/UserDetails.js.map +0 -1
  603. package/dist/components/admin/UserList/BaseUserList.d.ts.map +0 -1
  604. package/dist/components/admin/UserList/BaseUserList.js.map +0 -1
  605. package/dist/components/admin/UserList/UserList.d.ts.map +0 -1
  606. package/dist/components/admin/UserList/UserList.js.map +0 -1
  607. package/dist/components/admin/shared/AccountLifecycleParts.d.ts.map +0 -1
  608. package/dist/components/admin/shared/AccountLifecycleParts.js.map +0 -1
  609. package/dist/components/admin/shared/AdminListRenderProps.d.ts.map +0 -1
  610. package/dist/components/admin/shared/AdminParts.d.ts.map +0 -1
  611. package/dist/components/admin/shared/AdminParts.js.map +0 -1
  612. package/dist/components/admin/shared/AdminParts.styles.d.ts.map +0 -1
  613. package/dist/components/admin/shared/AdminParts.styles.js.map +0 -1
  614. package/dist/components/admin/shared/AdminSearch.d.ts.map +0 -1
  615. package/dist/components/admin/shared/AdminSearch.js.map +0 -1
  616. package/dist/components/admin/shared/AdminSection.d.ts.map +0 -1
  617. package/dist/components/admin/shared/AdminSection.js.map +0 -1
  618. package/dist/components/admin/shared/AdminSection.styles.d.ts.map +0 -1
  619. package/dist/components/admin/shared/AdminSection.styles.js.map +0 -1
  620. package/dist/components/admin/shared/ApplicationFormFields.d.ts.map +0 -1
  621. package/dist/components/admin/shared/ApplicationFormFields.js.map +0 -1
  622. package/dist/components/admin/shared/ClientSecretNotice.d.ts.map +0 -1
  623. package/dist/components/admin/shared/ClientSecretNotice.js.map +0 -1
  624. package/dist/components/admin/shared/IdentityPicker.d.ts.map +0 -1
  625. package/dist/components/admin/shared/IdentityPicker.js.map +0 -1
  626. package/dist/components/admin/shared/useAdminPartStyles.d.ts.map +0 -1
  627. package/dist/components/admin/shared/useAdminPartStyles.js.map +0 -1
  628. package/dist/components/admin/shared/useDefaultOuId.d.ts.map +0 -1
  629. package/dist/components/admin/shared/useDefaultOuId.js.map +0 -1
  630. /package/dist/components/{admin → management}/AgentCreate/BaseAgentCreate.d.ts +0 -0
  631. /package/dist/components/{admin → management}/AgentDetails/AgentDetails.d.ts +0 -0
  632. /package/dist/components/{admin → management}/AgentDetails/BaseAgentDetails.d.ts +0 -0
  633. /package/dist/components/{admin → management}/AgentList/BaseAgentList.d.ts +0 -0
  634. /package/dist/components/{admin → management}/ApplicationCreate/BaseApplicationCreate.d.ts +0 -0
  635. /package/dist/components/{admin → management}/ApplicationDetails/ApplicationDetails.d.ts +0 -0
  636. /package/dist/components/{admin → management}/ApplicationDetails/BaseApplicationDetails.d.ts +0 -0
  637. /package/dist/components/{admin → management}/ApplicationList/BaseApplicationList.d.ts +0 -0
  638. /package/dist/components/{admin → management}/GroupCreate/BaseGroupCreate.d.ts +0 -0
  639. /package/dist/components/{admin → management}/GroupCreate/GroupCreate.d.ts +0 -0
  640. /package/dist/components/{admin → management}/GroupList/BaseGroupList.d.ts +0 -0
  641. /package/dist/components/{admin → management}/GroupList/GroupList.d.ts +0 -0
  642. /package/dist/components/{admin → management}/GroupMembers/BaseGroupMembers.d.ts +0 -0
  643. /package/dist/components/{admin → management}/GroupMembers/GroupMembers.d.ts +0 -0
  644. /package/dist/components/{admin → management}/RoleAssignments/BaseRoleAssignments.d.ts +0 -0
  645. /package/dist/components/{admin → management}/RoleAssignments/RoleAssignments.d.ts +0 -0
  646. /package/dist/components/{admin → management}/RoleCreate/BaseRoleCreate.d.ts +0 -0
  647. /package/dist/components/{admin → management}/RoleCreate/RoleCreate.d.ts +0 -0
  648. /package/dist/components/{admin → management}/RoleList/BaseRoleList.d.ts +0 -0
  649. /package/dist/components/{admin → management}/RoleList/RoleList.d.ts +0 -0
  650. /package/dist/components/{admin → management}/UserCreate/BaseUserCreate.d.ts +0 -0
  651. /package/dist/components/{admin → management}/UserCreate/UserCreate.d.ts +0 -0
  652. /package/dist/components/{admin → management}/UserCreate/userCreateFields.d.ts +0 -0
  653. /package/dist/components/{admin → management}/UserDetails/BaseUserDetails.d.ts +0 -0
  654. /package/dist/components/{admin → management}/UserDetails/UserDetails.d.ts +0 -0
  655. /package/dist/components/{admin → management}/UserList/BaseUserList.d.ts +0 -0
  656. /package/dist/components/{admin → management}/UserList/UserList.d.ts +0 -0
  657. /package/dist/components/{admin → management}/shared/AccountLifecycleParts.d.ts +0 -0
  658. /package/dist/components/{admin → management}/shared/AdminListRenderProps.d.ts +0 -0
  659. /package/dist/components/{admin → management}/shared/AdminParts.d.ts +0 -0
  660. /package/dist/components/{admin → management}/shared/AdminParts.styles.d.ts +0 -0
  661. /package/dist/components/{admin → management}/shared/AdminSearch.d.ts +0 -0
  662. /package/dist/components/{admin → management}/shared/AdminSection.d.ts +0 -0
  663. /package/dist/components/{admin → management}/shared/AdminSection.styles.d.ts +0 -0
  664. /package/dist/components/{admin → management}/shared/ApplicationFormFields.d.ts +0 -0
  665. /package/dist/components/{admin → management}/shared/ClientSecretNotice.d.ts +0 -0
  666. /package/dist/components/{admin → management}/shared/IdentityPicker.d.ts +0 -0
  667. /package/dist/components/{admin → management}/shared/useAdminPartStyles.d.ts +0 -0
  668. /package/dist/components/{admin → management}/shared/useDefaultOuId.d.ts +0 -0
@@ -0,0 +1,214 @@
1
+ const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
+ const require_emotion = require('../../../styles/emotion.cjs');
3
+ const require_useTheme = require('../../../contexts/Theme/useTheme.cjs');
4
+ const require_useTranslation = require('../../../hooks/useTranslation.cjs');
5
+ const require_Spinner = require('../../primitives/Spinner/Spinner.cjs');
6
+ const require_Button = require('../../primitives/Button/Button.cjs');
7
+ const require_Check = require('../../primitives/Icons/Check.cjs');
8
+ const require_BaseOrganizationUnitSwitcher_styles = require('./BaseOrganizationUnitSwitcher.styles.cjs');
9
+ const require_ChevronDown = require('../../primitives/Icons/ChevronDown.cjs');
10
+ let __thunderid_browser = require("@thunderid/browser");
11
+ __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
12
+ let react = require("react");
13
+ react = require_rolldown_runtime.__toESM(react);
14
+ let react_jsx_runtime = require("react/jsx-runtime");
15
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
16
+ let __floating_ui_react = require("@floating-ui/react");
17
+ __floating_ui_react = require_rolldown_runtime.__toESM(__floating_ui_react);
18
+
19
+ //#region src/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.tsx
20
+ const BLOCK = "organization-unit-switcher";
21
+ /**
22
+ * Presentational organization unit picker: a field showing the current unit under a small label, which
23
+ * opens a menu of the units the signed-in user can access. Holds no SDK state and makes no request: pass
24
+ * the units and the callbacks. Use {@link OrganizationUnitSwitcher} for the variant wired to the SDK.
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * <BaseOrganizationUnitSwitcher
29
+ * organizationUnits={units}
30
+ * current={currentId}
31
+ * totalResults={units.length}
32
+ * onSwitch={(unit) => switchTo(unit.id)}
33
+ * />
34
+ * ```
35
+ */
36
+ const BaseOrganizationUnitSwitcher = ({ children = void 0, className = "", current = null, currentName = null, error = null, isLoading = false, limit = 10, offset = 0, onPageChange = () => void 0, onSwitch = () => void 0, organizationUnits = [], preferences = void 0, switchingId = null, title = void 0, totalResults = void 0 }) => {
37
+ const { theme, colorScheme } = require_useTheme.default();
38
+ const styles = require_BaseOrganizationUnitSwitcher_styles.default(theme, colorScheme);
39
+ const { t } = require_useTranslation.default(preferences?.i18n);
40
+ const [isOpen, setIsOpen] = (0, react.useState)(false);
41
+ const [activeIndex, setActiveIndex] = (0, react.useState)(null);
42
+ const listRef = (0, react.useRef)([]);
43
+ const listId = (0, react.useId)();
44
+ const isSwitching = switchingId !== null;
45
+ const open = isOpen && !isSwitching;
46
+ const currentIndex = organizationUnits.findIndex((unit) => unit.id === current);
47
+ const resolvedCurrentName = organizationUnits[currentIndex]?.name ?? currentName;
48
+ const resolvedTotal = totalResults ?? organizationUnits.length;
49
+ const { context, floatingStyles, refs } = (0, __floating_ui_react.useFloating)({
50
+ middleware: [
51
+ (0, __floating_ui_react.offset)(4),
52
+ (0, __floating_ui_react.flip)(),
53
+ (0, __floating_ui_react.shift)({ padding: 8 }),
54
+ (0, __floating_ui_react.size)({ apply({ elements, rects }) {
55
+ elements.floating.style.minWidth = `${rects.reference.width}px`;
56
+ } })
57
+ ],
58
+ onOpenChange: setIsOpen,
59
+ open,
60
+ placement: "bottom-start",
61
+ whileElementsMounted: __floating_ui_react.autoUpdate
62
+ });
63
+ const { getFloatingProps, getItemProps, getReferenceProps } = (0, __floating_ui_react.useInteractions)([
64
+ (0, __floating_ui_react.useClick)(context, { enabled: !isSwitching }),
65
+ (0, __floating_ui_react.useDismiss)(context),
66
+ (0, __floating_ui_react.useListNavigation)(context, {
67
+ activeIndex,
68
+ listRef,
69
+ loop: true,
70
+ onNavigate: setActiveIndex,
71
+ selectedIndex: currentIndex >= 0 ? currentIndex : null
72
+ })
73
+ ]);
74
+ const renderProps = {
75
+ current,
76
+ currentName: resolvedCurrentName,
77
+ error,
78
+ isLoading,
79
+ limit,
80
+ offset,
81
+ onPageChange,
82
+ onSwitch,
83
+ organizationUnits,
84
+ switchingId,
85
+ totalResults: resolvedTotal
86
+ };
87
+ if (children) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: children(renderProps) });
88
+ const label = title ?? t("organization_unit.switcher.label");
89
+ const hasPrevious = offset > 0;
90
+ const hasNext = offset + organizationUnits.length < resolvedTotal;
91
+ const fieldValue = () => {
92
+ if (isSwitching) return t("organization_unit.switcher.switching", { name: organizationUnits.find((unit) => unit.id === switchingId)?.name ?? switchingId ?? "" });
93
+ if (resolvedCurrentName) return resolvedCurrentName;
94
+ return isLoading ? t("organization_unit.switcher.loading") : t("organization_unit.switcher.placeholder");
95
+ };
96
+ const pick = (unit) => {
97
+ setIsOpen(false);
98
+ if (unit.id !== current) onSwitch(unit);
99
+ };
100
+ const menuContent = () => {
101
+ if (isLoading) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
102
+ role: "status",
103
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)(BLOCK, "loading")), styles["status"]),
104
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
105
+ "aria-hidden": "true",
106
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Spinner.default, { size: "small" })
107
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: t("organization_unit.switcher.loading") })]
108
+ });
109
+ if (organizationUnits.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
110
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)(BLOCK, "empty")), styles["status"]),
111
+ children: error ?? t("organization_unit.switcher.empty")
112
+ });
113
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
114
+ id: listId,
115
+ role: "listbox",
116
+ "aria-label": label || t("organization_unit.switcher.label"),
117
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)(BLOCK, "list")), styles["list"]),
118
+ children: organizationUnits.map((unit, index) => {
119
+ const isCurrent = unit.id === current;
120
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
121
+ ref: (node) => {
122
+ listRef.current[index] = node;
123
+ },
124
+ type: "button",
125
+ role: "option",
126
+ "aria-selected": isCurrent,
127
+ tabIndex: index === activeIndex ? 0 : -1,
128
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)(BLOCK, "option", isCurrent ? "current" : void 0)), styles["option"], isCurrent ? styles["optionCurrent"] : ""),
129
+ ...getItemProps({ onClick: () => pick(unit) }),
130
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
131
+ className: styles["optionText"],
132
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
133
+ className: styles["optionName"],
134
+ children: unit.name
135
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
136
+ className: styles["optionHandle"],
137
+ children: unit.handle
138
+ })]
139
+ }), isCurrent && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
140
+ "aria-hidden": "true",
141
+ className: styles["check"],
142
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Check.default, {})
143
+ })]
144
+ }, unit.id);
145
+ })
146
+ });
147
+ };
148
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
149
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)(BLOCK), styles["root"], className),
150
+ children: [
151
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
152
+ ref: refs.setReference,
153
+ type: "button",
154
+ "aria-controls": open ? listId : void 0,
155
+ "aria-expanded": open,
156
+ "aria-haspopup": "listbox",
157
+ disabled: isSwitching,
158
+ ...getReferenceProps(),
159
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)(BLOCK, "field")), styles["field"]),
160
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
161
+ className: styles["fieldText"],
162
+ children: [label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
163
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)(BLOCK, "label")), styles["label"]),
164
+ children: label
165
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
166
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)(BLOCK, "value")), styles["value"]),
167
+ children: fieldValue()
168
+ })]
169
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
170
+ "aria-hidden": "true",
171
+ className: require_emotion.cx(styles["chevron"], open ? styles["chevronOpen"] : ""),
172
+ children: isSwitching ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Spinner.default, { size: "small" }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ChevronDown.default, {})
173
+ })]
174
+ }),
175
+ error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
176
+ role: "alert",
177
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)(BLOCK, "error")), styles["error"]),
178
+ children: error
179
+ }),
180
+ open && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__floating_ui_react.FloatingPortal, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__floating_ui_react.FloatingFocusManager, {
181
+ context,
182
+ initialFocus: -1,
183
+ modal: false,
184
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
185
+ ref: refs.setFloating,
186
+ style: floatingStyles,
187
+ ...getFloatingProps(),
188
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)(BLOCK, "menu")), styles["menu"]),
189
+ children: [menuContent(), (hasPrevious || hasNext) && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
190
+ className: require_emotion.cx((0, __thunderid_browser.withVendorCSSClassPrefix)((0, __thunderid_browser.bem)(BLOCK, "pagination")), styles["pagination"]),
191
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.default, {
192
+ size: "small",
193
+ variant: "text",
194
+ disabled: !hasPrevious || isLoading,
195
+ onClick: () => onPageChange(Math.max(0, offset - limit)),
196
+ children: t("organization_unit.switcher.previous")
197
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.default, {
198
+ size: "small",
199
+ variant: "text",
200
+ disabled: !hasNext || isLoading,
201
+ onClick: () => onPageChange(offset + limit),
202
+ children: t("organization_unit.switcher.next")
203
+ })]
204
+ })]
205
+ })
206
+ }) })
207
+ ]
208
+ });
209
+ };
210
+ var BaseOrganizationUnitSwitcher_default = BaseOrganizationUnitSwitcher;
211
+
212
+ //#endregion
213
+ exports.default = BaseOrganizationUnitSwitcher_default;
214
+ //# sourceMappingURL=BaseOrganizationUnitSwitcher.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseOrganizationUnitSwitcher.cjs","names":["BaseOrganizationUnitSwitcher: FC<BaseOrganizationUnitSwitcherProps>","useTheme","styles: Record<string, string>","useStyles","useTranslation","listId: string","isSwitching: boolean","open: boolean","currentIndex: number","resolvedCurrentName: string | null","resolvedTotal: number","autoUpdate","renderProps: OrganizationUnitSwitcherRenderProps","label: string","hasPrevious: boolean","hasNext: boolean","cx","Spinner","isCurrent: boolean","Check","ChevronDown","FloatingPortal","FloatingFocusManager","Button"],"sources":["../../../../../src/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingPortal,\n type MiddlewareState,\n offset as floatingOffset,\n shift,\n size,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useListNavigation,\n} from '@floating-ui/react';\nimport {AccessibleOrganizationUnit, Preferences, bem, withVendorCSSClassPrefix} from '@thunderid/browser';\nimport {FC, ReactElement, ReactNode, useId, useRef, useState} from 'react';\nimport useStyles from './BaseOrganizationUnitSwitcher.styles';\nimport useTheme from '../../../contexts/Theme/useTheme';\nimport useTranslation from '../../../hooks/useTranslation';\nimport {cx} from '../../../styles/emotion';\nimport Button from '../../primitives/Button/Button';\nimport Check from '../../primitives/Icons/Check';\nimport ChevronDown from '../../primitives/Icons/ChevronDown';\nimport Spinner from '../../primitives/Spinner/Spinner';\n\nconst BLOCK = 'organization-unit-switcher';\n\nexport interface OrganizationUnitSwitcherRenderProps {\n /**\n * Identifier of the unit the session is in, or `null` when it is not known.\n */\n current: string | null;\n /**\n * Name of the unit the session is in, from the page or the session, or `null` when it is not known.\n */\n currentName: string | null;\n /**\n * A translated message for the last failure, or `null`.\n */\n error: string | null;\n /**\n * Whether the units are loading.\n */\n isLoading: boolean;\n /**\n * The page size.\n */\n limit: number;\n /**\n * The zero-based offset of the page.\n */\n offset: number;\n /**\n * Moves to the page that starts at `offset`.\n */\n onPageChange: (offset: number) => void;\n /**\n * Switches to `unit` (or hands it to the app's `onSelect`).\n */\n onSwitch: (unit: AccessibleOrganizationUnit) => void;\n /**\n * The units of the page.\n */\n organizationUnits: AccessibleOrganizationUnit[];\n /**\n * Identifier of the unit a switch is in progress to, or `null`.\n */\n switchingId: string | null;\n /**\n * Number of units the listing matches.\n */\n totalResults: number;\n}\n\nexport interface BaseOrganizationUnitSwitcherProps extends Partial<OrganizationUnitSwitcherRenderProps> {\n /**\n * Custom render. Replaces the built-in UI and receives the units, the current one, the loading and\n * error state, the paging and `onSwitch`.\n */\n children?: (props: OrganizationUnitSwitcherRenderProps) => ReactNode;\n /**\n * Additional CSS class names.\n */\n className?: string;\n /**\n * Component-level preference overrides, including i18n.\n */\n preferences?: Preferences;\n /**\n * Overrides the small label above the current unit. Pass an empty string to omit it.\n */\n title?: string;\n}\n\n/**\n * Presentational organization unit picker: a field showing the current unit under a small label, which\n * opens a menu of the units the signed-in user can access. Holds no SDK state and makes no request: pass\n * the units and the callbacks. Use {@link OrganizationUnitSwitcher} for the variant wired to the SDK.\n *\n * @example\n * ```tsx\n * <BaseOrganizationUnitSwitcher\n * organizationUnits={units}\n * current={currentId}\n * totalResults={units.length}\n * onSwitch={(unit) => switchTo(unit.id)}\n * />\n * ```\n */\nconst BaseOrganizationUnitSwitcher: FC<BaseOrganizationUnitSwitcherProps> = ({\n children = undefined,\n className = '',\n current = null,\n currentName = null,\n error = null,\n isLoading = false,\n limit = 10,\n offset = 0,\n onPageChange = (): void => undefined,\n onSwitch = (): void => undefined,\n organizationUnits = [],\n preferences = undefined,\n switchingId = null,\n title = undefined,\n totalResults = undefined,\n}: BaseOrganizationUnitSwitcherProps): ReactElement => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme);\n const {t} = useTranslation(preferences?.i18n);\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n const listRef = useRef<(HTMLElement | null)[]>([]);\n const listId: string = useId();\n\n const isSwitching: boolean = switchingId !== null;\n const open: boolean = isOpen && !isSwitching;\n const currentIndex: number = organizationUnits.findIndex((unit: AccessibleOrganizationUnit) => unit.id === current);\n const resolvedCurrentName: string | null = organizationUnits[currentIndex]?.name ?? currentName;\n const resolvedTotal: number = totalResults ?? organizationUnits.length;\n\n const {context, floatingStyles, refs} = useFloating({\n middleware: [\n floatingOffset(4),\n flip(),\n shift({padding: 8}),\n size({\n apply({elements, rects}: MiddlewareState): void {\n elements.floating.style.minWidth = `${rects.reference.width}px`;\n },\n }),\n ],\n onOpenChange: setIsOpen,\n open,\n placement: 'bottom-start',\n whileElementsMounted: autoUpdate,\n });\n const click: ReturnType<typeof useClick> = useClick(context, {enabled: !isSwitching});\n const dismiss: ReturnType<typeof useDismiss> = useDismiss(context);\n const listNavigation: ReturnType<typeof useListNavigation> = useListNavigation(context, {\n activeIndex,\n listRef,\n loop: true,\n onNavigate: setActiveIndex,\n selectedIndex: currentIndex >= 0 ? currentIndex : null,\n });\n const {getFloatingProps, getItemProps, getReferenceProps} = useInteractions([click, dismiss, listNavigation]);\n\n const renderProps: OrganizationUnitSwitcherRenderProps = {\n current,\n currentName: resolvedCurrentName,\n error,\n isLoading,\n limit,\n offset,\n onPageChange,\n onSwitch,\n organizationUnits,\n switchingId,\n totalResults: resolvedTotal,\n };\n\n if (children) {\n return <>{children(renderProps)}</>;\n }\n\n const label: string = title ?? t('organization_unit.switcher.label');\n const hasPrevious: boolean = offset > 0;\n const hasNext: boolean = offset + organizationUnits.length < resolvedTotal;\n\n const fieldValue = (): string => {\n if (isSwitching) {\n const target: AccessibleOrganizationUnit | undefined = organizationUnits.find(\n (unit: AccessibleOrganizationUnit) => unit.id === switchingId,\n );\n\n return t('organization_unit.switcher.switching', {name: target?.name ?? switchingId ?? ''});\n }\n\n if (resolvedCurrentName) {\n return resolvedCurrentName;\n }\n\n return isLoading ? t('organization_unit.switcher.loading') : t('organization_unit.switcher.placeholder');\n };\n\n const pick = (unit: AccessibleOrganizationUnit): void => {\n setIsOpen(false);\n\n if (unit.id !== current) {\n onSwitch(unit);\n }\n };\n\n const menuContent = (): ReactNode => {\n if (isLoading) {\n return (\n <div role=\"status\" className={cx(withVendorCSSClassPrefix(bem(BLOCK, 'loading')), styles['status'])}>\n <span aria-hidden=\"true\">\n <Spinner size=\"small\" />\n </span>\n <span>{t('organization_unit.switcher.loading')}</span>\n </div>\n );\n }\n\n if (organizationUnits.length === 0) {\n return (\n <p className={cx(withVendorCSSClassPrefix(bem(BLOCK, 'empty')), styles['status'])}>\n {error ?? t('organization_unit.switcher.empty')}\n </p>\n );\n }\n\n return (\n <div\n id={listId}\n role=\"listbox\"\n aria-label={label || t('organization_unit.switcher.label')}\n className={cx(withVendorCSSClassPrefix(bem(BLOCK, 'list')), styles['list'])}\n >\n {organizationUnits.map((unit: AccessibleOrganizationUnit, index: number) => {\n const isCurrent: boolean = unit.id === current;\n\n return (\n <button\n key={unit.id}\n ref={(node: HTMLButtonElement | null): void => {\n listRef.current[index] = node;\n }}\n type=\"button\"\n role=\"option\"\n aria-selected={isCurrent}\n tabIndex={index === activeIndex ? 0 : -1}\n className={cx(\n withVendorCSSClassPrefix(bem(BLOCK, 'option', isCurrent ? 'current' : undefined)),\n styles['option'],\n isCurrent ? styles['optionCurrent'] : '',\n )}\n {...getItemProps({onClick: (): void => pick(unit)})}\n >\n <span className={styles['optionText']}>\n <span className={styles['optionName']}>{unit.name}</span>\n <span className={styles['optionHandle']}>{unit.handle}</span>\n </span>\n {isCurrent && (\n <span aria-hidden=\"true\" className={styles['check']}>\n <Check />\n </span>\n )}\n </button>\n );\n })}\n </div>\n );\n };\n\n return (\n <div className={cx(withVendorCSSClassPrefix(BLOCK), styles['root'], className)}>\n <button\n ref={refs.setReference}\n type=\"button\"\n aria-controls={open ? listId : undefined}\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n disabled={isSwitching}\n {...getReferenceProps()}\n className={cx(withVendorCSSClassPrefix(bem(BLOCK, 'field')), styles['field'])}\n >\n <span className={styles['fieldText']}>\n {label && <span className={cx(withVendorCSSClassPrefix(bem(BLOCK, 'label')), styles['label'])}>{label}</span>}\n <span className={cx(withVendorCSSClassPrefix(bem(BLOCK, 'value')), styles['value'])}>{fieldValue()}</span>\n </span>\n <span aria-hidden=\"true\" className={cx(styles['chevron'], open ? styles['chevronOpen'] : '')}>\n {isSwitching ? <Spinner size=\"small\" /> : <ChevronDown />}\n </span>\n </button>\n\n {error && (\n <div role=\"alert\" className={cx(withVendorCSSClassPrefix(bem(BLOCK, 'error')), styles['error'])}>\n {error}\n </div>\n )}\n\n {open && (\n <FloatingPortal>\n <FloatingFocusManager context={context} initialFocus={-1} modal={false}>\n <div\n ref={refs.setFloating}\n style={floatingStyles}\n {...getFloatingProps()}\n className={cx(withVendorCSSClassPrefix(bem(BLOCK, 'menu')), styles['menu'])}\n >\n {menuContent()}\n {(hasPrevious || hasNext) && (\n <div className={cx(withVendorCSSClassPrefix(bem(BLOCK, 'pagination')), styles['pagination'])}>\n <Button\n size=\"small\"\n variant=\"text\"\n disabled={!hasPrevious || isLoading}\n onClick={(): void => onPageChange(Math.max(0, offset - limit))}\n >\n {t('organization_unit.switcher.previous')}\n </Button>\n <Button\n size=\"small\"\n variant=\"text\"\n disabled={!hasNext || isLoading}\n onClick={(): void => onPageChange(offset + limit)}\n >\n {t('organization_unit.switcher.next')}\n </Button>\n </div>\n )}\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </div>\n );\n};\n\nexport default BaseOrganizationUnitSwitcher;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AA6BA,MAAM,QAAQ;;;;;;;;;;;;;;;;AAoFd,MAAMA,gCAAuE,EAC3E,WAAW,QACX,YAAY,IACZ,UAAU,MACV,cAAc,MACd,QAAQ,MACR,YAAY,OACZ,QAAQ,IACR,SAAS,GACT,qBAA2B,QAC3B,iBAAuB,QACvB,oBAAoB,EAAE,EACtB,cAAc,QACd,cAAc,MACd,QAAQ,QACR,eAAe,aACsC;CACrD,MAAM,EAAC,OAAO,gBAA4CC,0BAAU;CACpE,MAAMC,SAAiCC,oDAAU,OAAO,YAAY;CACpE,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,QAAQ,iCAA+B,MAAM;CACpD,MAAM,CAAC,aAAa,sCAA0C,KAAK;CACnE,MAAM,4BAAyC,EAAE,CAAC;CAClD,MAAMC,2BAAwB;CAE9B,MAAMC,cAAuB,gBAAgB;CAC7C,MAAMC,OAAgB,UAAU,CAAC;CACjC,MAAMC,eAAuB,kBAAkB,WAAW,SAAqC,KAAK,OAAO,QAAQ;CACnH,MAAMC,sBAAqC,kBAAkB,eAAe,QAAQ;CACpF,MAAMC,gBAAwB,gBAAgB,kBAAkB;CAEhE,MAAM,EAAC,SAAS,gBAAgB,8CAAoB;EAClD,YAAY;mCACK,EAAE;kCACX;kCACA,EAAC,SAAS,GAAE,CAAC;iCACd,EACH,MAAM,EAAC,UAAU,SAA+B;AAC9C,aAAS,SAAS,MAAM,WAAW,GAAG,MAAM,UAAU,MAAM;MAE/D,CAAC;GACH;EACD,cAAc;EACd;EACA,WAAW;EACX,sBAAsBC;EACvB,CAAC;CAUF,MAAM,EAAC,kBAAkB,cAAc,+DAAqC;oCATxB,SAAS,EAAC,SAAS,CAAC,aAAY,CAAC;sCAC3B,QAAQ;6CACa,SAAS;GACtF;GACA;GACA,MAAM;GACN,YAAY;GACZ,eAAe,gBAAgB,IAAI,eAAe;GACnD,CAAC;EAC0G,CAAC;CAE7G,MAAMC,cAAmD;EACvD;EACA,aAAa;EACb;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,cAAc;EACf;AAED,KAAI,SACF,QAAO,mFAAG,SAAS,YAAY,GAAI;CAGrC,MAAMC,QAAgB,SAAS,EAAE,mCAAmC;CACpE,MAAMC,cAAuB,SAAS;CACtC,MAAMC,UAAmB,SAAS,kBAAkB,SAAS;CAE7D,MAAM,mBAA2B;AAC/B,MAAI,YAKF,QAAO,EAAE,wCAAwC,EAAC,MAJK,kBAAkB,MACtE,SAAqC,KAAK,OAAO,YACnD,EAE+D,QAAQ,eAAe,IAAG,CAAC;AAG7F,MAAI,oBACF,QAAO;AAGT,SAAO,YAAY,EAAE,qCAAqC,GAAG,EAAE,yCAAyC;;CAG1G,MAAM,QAAQ,SAA2C;AACvD,YAAU,MAAM;AAEhB,MAAI,KAAK,OAAO,QACd,UAAS,KAAK;;CAIlB,MAAM,oBAA+B;AACnC,MAAI,UACF,QACE,4CAAC;GAAI,MAAK;GAAS,WAAWC,kGAAgC,OAAO,UAAU,CAAC,EAAE,OAAO,UAAU;cACjG,2CAAC;IAAK,eAAY;cAChB,2CAACC,2BAAQ,MAAK,UAAU;KACnB,EACP,2CAAC,oBAAM,EAAE,qCAAqC,GAAQ;IAClD;AAIV,MAAI,kBAAkB,WAAW,EAC/B,QACE,2CAAC;GAAE,WAAWD,kGAAgC,OAAO,QAAQ,CAAC,EAAE,OAAO,UAAU;aAC9E,SAAS,EAAE,mCAAmC;IAC7C;AAIR,SACE,2CAAC;GACC,IAAI;GACJ,MAAK;GACL,cAAY,SAAS,EAAE,mCAAmC;GAC1D,WAAWA,kGAAgC,OAAO,OAAO,CAAC,EAAE,OAAO,QAAQ;aAE1E,kBAAkB,KAAK,MAAkC,UAAkB;IAC1E,MAAME,YAAqB,KAAK,OAAO;AAEvC,WACE,4CAAC;KAEC,MAAM,SAAyC;AAC7C,cAAQ,QAAQ,SAAS;;KAE3B,MAAK;KACL,MAAK;KACL,iBAAe;KACf,UAAU,UAAU,cAAc,IAAI;KACtC,WAAWF,kGACoB,OAAO,UAAU,YAAY,YAAY,OAAU,CAAC,EACjF,OAAO,WACP,YAAY,OAAO,mBAAmB,GACvC;KACD,GAAI,aAAa,EAAC,eAAqB,KAAK,KAAK,EAAC,CAAC;gBAEnD,4CAAC;MAAK,WAAW,OAAO;iBACtB,2CAAC;OAAK,WAAW,OAAO;iBAAgB,KAAK;QAAY,EACzD,2CAAC;OAAK,WAAW,OAAO;iBAAkB,KAAK;QAAc;OACxD,EACN,aACC,2CAAC;MAAK,eAAY;MAAO,WAAW,OAAO;gBACzC,2CAACG,0BAAQ;OACJ;OAtBJ,KAAK,GAwBH;KAEX;IACE;;AAIV,QACE,4CAAC;EAAI,WAAWH,qEAA4B,MAAM,EAAE,OAAO,SAAS,UAAU;;GAC5E,4CAAC;IACC,KAAK,KAAK;IACV,MAAK;IACL,iBAAe,OAAO,SAAS;IAC/B,iBAAe;IACf,iBAAc;IACd,UAAU;IACV,GAAI,mBAAmB;IACvB,WAAWA,kGAAgC,OAAO,QAAQ,CAAC,EAAE,OAAO,SAAS;eAE7E,4CAAC;KAAK,WAAW,OAAO;gBACrB,SAAS,2CAAC;MAAK,WAAWA,kGAAgC,OAAO,QAAQ,CAAC,EAAE,OAAO,SAAS;gBAAG;OAAa,EAC7G,2CAAC;MAAK,WAAWA,kGAAgC,OAAO,QAAQ,CAAC,EAAE,OAAO,SAAS;gBAAG,YAAY;OAAQ;MACrG,EACP,2CAAC;KAAK,eAAY;KAAO,WAAWA,mBAAG,OAAO,YAAY,OAAO,OAAO,iBAAiB,GAAG;eACzF,cAAc,2CAACC,2BAAQ,MAAK,UAAU,GAAG,2CAACG,gCAAc;MACpD;KACA;GAER,SACC,2CAAC;IAAI,MAAK;IAAQ,WAAWJ,kGAAgC,OAAO,QAAQ,CAAC,EAAE,OAAO,SAAS;cAC5F;KACG;GAGP,QACC,2CAACK,gDACC,2CAACC;IAA8B;IAAS,cAAc;IAAI,OAAO;cAC/D,4CAAC;KACC,KAAK,KAAK;KACV,OAAO;KACP,GAAI,kBAAkB;KACtB,WAAWN,kGAAgC,OAAO,OAAO,CAAC,EAAE,OAAO,QAAQ;gBAE1E,aAAa,GACZ,eAAe,YACf,4CAAC;MAAI,WAAWA,kGAAgC,OAAO,aAAa,CAAC,EAAE,OAAO,cAAc;iBAC1F,2CAACO;OACC,MAAK;OACL,SAAQ;OACR,UAAU,CAAC,eAAe;OAC1B,eAAqB,aAAa,KAAK,IAAI,GAAG,SAAS,MAAM,CAAC;iBAE7D,EAAE,sCAAsC;QAClC,EACT,2CAACA;OACC,MAAK;OACL,SAAQ;OACR,UAAU,CAAC,WAAW;OACtB,eAAqB,aAAa,SAAS,MAAM;iBAEhD,EAAE,kCAAkC;QAC9B;OACL;MAEJ;KACe,GACR;;GAEf;;AAIV,2CAAe"}
@@ -0,0 +1,184 @@
1
+ const require_emotion = require('../../../styles/emotion.cjs');
2
+
3
+ //#region src/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.ts
4
+ /**
5
+ * Creates styles for the BaseOrganizationUnitSwitcher component.
6
+ *
7
+ * @param theme - The theme object containing design tokens
8
+ * @param colorScheme - The current color scheme (used for memoization)
9
+ * @returns Object containing CSS class names for component styling
10
+ */
11
+ const useStyles = (theme, colorScheme) => {
12
+ const hover = theme.vars.colors.action?.hover || "rgba(0, 0, 0, 0.04)";
13
+ const root = require_emotion.css`
14
+ display: inline-flex;
15
+ flex-direction: column;
16
+ gap: calc(${theme.vars.spacing.unit} * 0.5);
17
+ min-width: 240px;
18
+ max-width: 100%;
19
+ font-family: ${theme.vars.typography.fontFamily};
20
+ `;
21
+ const field = require_emotion.css`
22
+ display: flex;
23
+ align-items: center;
24
+ justify-content: space-between;
25
+ gap: calc(${theme.vars.spacing.unit} * 1.5);
26
+ width: 100%;
27
+ box-sizing: border-box;
28
+ padding: calc(${theme.vars.spacing.unit} * 0.75) calc(${theme.vars.spacing.unit} * 1.5);
29
+ border: 1px solid ${theme.vars.colors.border};
30
+ border-radius: ${theme.vars.borderRadius.medium};
31
+ background: ${theme.vars.colors.background.surface};
32
+ color: ${theme.vars.colors.text.primary};
33
+ font: inherit;
34
+ text-align: start;
35
+ cursor: pointer;
36
+
37
+ &:hover:not(:disabled) {
38
+ background-color: ${hover};
39
+ }
40
+
41
+ &:focus-visible {
42
+ outline: 2px solid ${theme.vars.colors.primary.main};
43
+ outline-offset: 1px;
44
+ }
45
+
46
+ &:disabled {
47
+ cursor: default;
48
+ opacity: 0.7;
49
+ }
50
+ `;
51
+ const fieldText = require_emotion.css`
52
+ display: flex;
53
+ flex-direction: column;
54
+ min-width: 0;
55
+ `;
56
+ const label = require_emotion.css`
57
+ display: block;
58
+ font-size: 0.75rem;
59
+ line-height: 1rem;
60
+ color: ${theme.vars.colors.text.secondary};
61
+ `;
62
+ const value = require_emotion.css`
63
+ display: block;
64
+ overflow: hidden;
65
+ font-size: 1rem;
66
+ line-height: 1.375rem;
67
+ text-overflow: ellipsis;
68
+ white-space: nowrap;
69
+ `;
70
+ const chevron = require_emotion.css`
71
+ display: flex;
72
+ flex-shrink: 0;
73
+ color: ${theme.vars.colors.text.secondary};
74
+ transition: transform 0.12s ease-in-out;
75
+ `;
76
+ const chevronOpen = require_emotion.css`
77
+ transform: rotate(180deg);
78
+ `;
79
+ const error = require_emotion.css`
80
+ font-size: 0.75rem;
81
+ color: ${theme.vars.colors.error.main};
82
+ `;
83
+ const menu = require_emotion.css`
84
+ box-sizing: border-box;
85
+ max-height: 320px;
86
+ overflow-y: auto;
87
+ padding: calc(${theme.vars.spacing.unit} * 0.5);
88
+ border: 1px solid ${theme.vars.colors.border};
89
+ border-radius: ${theme.vars.borderRadius.medium};
90
+ background-color: ${theme.vars.colors.background.surface};
91
+ box-shadow: ${theme.vars.shadows.medium};
92
+ font-family: ${theme.vars.typography.fontFamily};
93
+ outline: none;
94
+ z-index: 1000;
95
+ `;
96
+ const list = require_emotion.css`
97
+ display: flex;
98
+ flex-direction: column;
99
+ `;
100
+ const option = require_emotion.css`
101
+ display: flex;
102
+ align-items: center;
103
+ justify-content: space-between;
104
+ gap: ${theme.vars.spacing.unit};
105
+ width: 100%;
106
+ padding: ${theme.vars.spacing.unit} calc(${theme.vars.spacing.unit} * 1.25);
107
+ border: none;
108
+ border-radius: ${theme.vars.borderRadius.small};
109
+ background-color: transparent;
110
+ color: ${theme.vars.colors.text.primary};
111
+ font: inherit;
112
+ text-align: start;
113
+ cursor: pointer;
114
+ outline: none;
115
+
116
+ &:hover,
117
+ &:focus-visible {
118
+ background-color: ${hover};
119
+ }
120
+ `;
121
+ const optionCurrent = require_emotion.css`
122
+ font-weight: 600;
123
+ `;
124
+ const optionText = require_emotion.css`
125
+ display: flex;
126
+ flex-direction: column;
127
+ min-width: 0;
128
+ `;
129
+ const optionName = require_emotion.css`
130
+ font-size: 0.875rem;
131
+ `;
132
+ const optionHandle = require_emotion.css`
133
+ font-size: 0.75rem;
134
+ font-weight: 400;
135
+ color: ${theme.vars.colors.text.secondary};
136
+ `;
137
+ const check = require_emotion.css`
138
+ display: flex;
139
+ flex-shrink: 0;
140
+ color: ${theme.vars.colors.primary.main};
141
+ `;
142
+ const status = require_emotion.css`
143
+ display: flex;
144
+ align-items: center;
145
+ gap: ${theme.vars.spacing.unit};
146
+ margin: 0;
147
+ padding: ${theme.vars.spacing.unit} calc(${theme.vars.spacing.unit} * 1.25);
148
+ font-size: 0.875rem;
149
+ color: ${theme.vars.colors.text.secondary};
150
+ `;
151
+ return {
152
+ check,
153
+ chevron,
154
+ chevronOpen,
155
+ colorScheme,
156
+ error,
157
+ field,
158
+ fieldText,
159
+ label,
160
+ list,
161
+ menu,
162
+ option,
163
+ optionCurrent,
164
+ optionHandle,
165
+ optionName,
166
+ optionText,
167
+ pagination: require_emotion.css`
168
+ display: flex;
169
+ justify-content: flex-end;
170
+ gap: ${theme.vars.spacing.unit};
171
+ margin-top: calc(${theme.vars.spacing.unit} * 0.5);
172
+ padding-top: calc(${theme.vars.spacing.unit} * 0.5);
173
+ border-top: 1px solid ${theme.vars.colors.border};
174
+ `,
175
+ root,
176
+ status,
177
+ value
178
+ };
179
+ };
180
+ var BaseOrganizationUnitSwitcher_styles_default = useStyles;
181
+
182
+ //#endregion
183
+ exports.default = BaseOrganizationUnitSwitcher_styles_default;
184
+ //# sourceMappingURL=BaseOrganizationUnitSwitcher.styles.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseOrganizationUnitSwitcher.styles.cjs","names":["hover: string","root: string","field: string","fieldText: string","label: string","value: string","chevron: string","chevronOpen: string","error: string","menu: string","list: string","option: string","optionCurrent: string","optionText: string","optionName: string","optionHandle: string","check: string","status: string"],"sources":["../../../../../src/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.ts"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {Theme} from '@thunderid/browser';\nimport {css} from '../../../styles/emotion';\n\n/**\n * Creates styles for the BaseOrganizationUnitSwitcher component.\n *\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 hover: string = theme.vars.colors.action?.hover || 'rgba(0, 0, 0, 0.04)';\n\n const root: string = css`\n display: inline-flex;\n flex-direction: column;\n gap: calc(${theme.vars.spacing.unit} * 0.5);\n min-width: 240px;\n max-width: 100%;\n font-family: ${theme.vars.typography.fontFamily};\n `;\n\n const field: string = css`\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: calc(${theme.vars.spacing.unit} * 1.5);\n width: 100%;\n box-sizing: border-box;\n padding: calc(${theme.vars.spacing.unit} * 0.75) calc(${theme.vars.spacing.unit} * 1.5);\n border: 1px solid ${theme.vars.colors.border};\n border-radius: ${theme.vars.borderRadius.medium};\n background: ${theme.vars.colors.background.surface};\n color: ${theme.vars.colors.text.primary};\n font: inherit;\n text-align: start;\n cursor: pointer;\n\n &:hover:not(:disabled) {\n background-color: ${hover};\n }\n\n &:focus-visible {\n outline: 2px solid ${theme.vars.colors.primary.main};\n outline-offset: 1px;\n }\n\n &:disabled {\n cursor: default;\n opacity: 0.7;\n }\n `;\n\n const fieldText: string = css`\n display: flex;\n flex-direction: column;\n min-width: 0;\n `;\n\n const label: string = css`\n display: block;\n font-size: 0.75rem;\n line-height: 1rem;\n color: ${theme.vars.colors.text.secondary};\n `;\n\n const value: string = css`\n display: block;\n overflow: hidden;\n font-size: 1rem;\n line-height: 1.375rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n `;\n\n const chevron: string = css`\n display: flex;\n flex-shrink: 0;\n color: ${theme.vars.colors.text.secondary};\n transition: transform 0.12s ease-in-out;\n `;\n\n const chevronOpen: string = css`\n transform: rotate(180deg);\n `;\n\n const error: string = css`\n font-size: 0.75rem;\n color: ${theme.vars.colors.error.main};\n `;\n\n const menu: string = css`\n box-sizing: border-box;\n max-height: 320px;\n overflow-y: auto;\n padding: calc(${theme.vars.spacing.unit} * 0.5);\n border: 1px solid ${theme.vars.colors.border};\n border-radius: ${theme.vars.borderRadius.medium};\n background-color: ${theme.vars.colors.background.surface};\n box-shadow: ${theme.vars.shadows.medium};\n font-family: ${theme.vars.typography.fontFamily};\n outline: none;\n z-index: 1000;\n `;\n\n const list: string = css`\n display: flex;\n flex-direction: column;\n `;\n\n const option: string = css`\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: ${theme.vars.spacing.unit};\n width: 100%;\n padding: ${theme.vars.spacing.unit} calc(${theme.vars.spacing.unit} * 1.25);\n border: none;\n border-radius: ${theme.vars.borderRadius.small};\n background-color: transparent;\n color: ${theme.vars.colors.text.primary};\n font: inherit;\n text-align: start;\n cursor: pointer;\n outline: none;\n\n &:hover,\n &:focus-visible {\n background-color: ${hover};\n }\n `;\n\n const optionCurrent: string = css`\n font-weight: 600;\n `;\n\n const optionText: string = css`\n display: flex;\n flex-direction: column;\n min-width: 0;\n `;\n\n const optionName: string = css`\n font-size: 0.875rem;\n `;\n\n const optionHandle: string = css`\n font-size: 0.75rem;\n font-weight: 400;\n color: ${theme.vars.colors.text.secondary};\n `;\n\n const check: string = css`\n display: flex;\n flex-shrink: 0;\n color: ${theme.vars.colors.primary.main};\n `;\n\n const status: string = css`\n display: flex;\n align-items: center;\n gap: ${theme.vars.spacing.unit};\n margin: 0;\n padding: ${theme.vars.spacing.unit} calc(${theme.vars.spacing.unit} * 1.25);\n font-size: 0.875rem;\n color: ${theme.vars.colors.text.secondary};\n `;\n\n const pagination: string = css`\n display: flex;\n justify-content: flex-end;\n gap: ${theme.vars.spacing.unit};\n margin-top: calc(${theme.vars.spacing.unit} * 0.5);\n padding-top: calc(${theme.vars.spacing.unit} * 0.5);\n border-top: 1px solid ${theme.vars.colors.border};\n `;\n\n return {\n check,\n chevron,\n chevronOpen,\n colorScheme,\n error,\n field,\n fieldText,\n label,\n list,\n menu,\n option,\n optionCurrent,\n optionHandle,\n optionName,\n optionText,\n pagination,\n root,\n status,\n value,\n };\n};\n\nexport default useStyles;\n"],"mappings":";;;;;;;;;;AAaA,MAAM,aAAa,OAAc,gBAAgD;CAC/E,MAAMA,QAAgB,MAAM,KAAK,OAAO,QAAQ,SAAS;CAEzD,MAAMC,OAAe,mBAAG;;;gBAGV,MAAM,KAAK,QAAQ,KAAK;;;mBAGrB,MAAM,KAAK,WAAW,WAAW;;CAGlD,MAAMC,QAAgB,mBAAG;;;;gBAIX,MAAM,KAAK,QAAQ,KAAK;;;oBAGpB,MAAM,KAAK,QAAQ,KAAK,gBAAgB,MAAM,KAAK,QAAQ,KAAK;wBAC5D,MAAM,KAAK,OAAO,OAAO;qBAC5B,MAAM,KAAK,aAAa,OAAO;kBAClC,MAAM,KAAK,OAAO,WAAW,QAAQ;aAC1C,MAAM,KAAK,OAAO,KAAK,QAAQ;;;;;;0BAMlB,MAAM;;;;2BAIL,MAAM,KAAK,OAAO,QAAQ,KAAK;;;;;;;;;CAUxD,MAAMC,YAAoB,mBAAG;;;;;CAM7B,MAAMC,QAAgB,mBAAG;;;;aAId,MAAM,KAAK,OAAO,KAAK,UAAU;;CAG5C,MAAMC,QAAgB,mBAAG;;;;;;;;CASzB,MAAMC,UAAkB,mBAAG;;;aAGhB,MAAM,KAAK,OAAO,KAAK,UAAU;;;CAI5C,MAAMC,cAAsB,mBAAG;;;CAI/B,MAAMC,QAAgB,mBAAG;;aAEd,MAAM,KAAK,OAAO,MAAM,KAAK;;CAGxC,MAAMC,OAAe,mBAAG;;;;oBAIN,MAAM,KAAK,QAAQ,KAAK;wBACpB,MAAM,KAAK,OAAO,OAAO;qBAC5B,MAAM,KAAK,aAAa,OAAO;wBAC5B,MAAM,KAAK,OAAO,WAAW,QAAQ;kBAC3C,MAAM,KAAK,QAAQ,OAAO;mBACzB,MAAM,KAAK,WAAW,WAAW;;;;CAKlD,MAAMC,OAAe,mBAAG;;;;CAKxB,MAAMC,SAAiB,mBAAG;;;;WAIjB,MAAM,KAAK,QAAQ,KAAK;;eAEpB,MAAM,KAAK,QAAQ,KAAK,QAAQ,MAAM,KAAK,QAAQ,KAAK;;qBAElD,MAAM,KAAK,aAAa,MAAM;;aAEtC,MAAM,KAAK,OAAO,KAAK,QAAQ;;;;;;;;0BAQlB,MAAM;;;CAI9B,MAAMC,gBAAwB,mBAAG;;;CAIjC,MAAMC,aAAqB,mBAAG;;;;;CAM9B,MAAMC,aAAqB,mBAAG;;;CAI9B,MAAMC,eAAuB,mBAAG;;;aAGrB,MAAM,KAAK,OAAO,KAAK,UAAU;;CAG5C,MAAMC,QAAgB,mBAAG;;;aAGd,MAAM,KAAK,OAAO,QAAQ,KAAK;;CAG1C,MAAMC,SAAiB,mBAAG;;;WAGjB,MAAM,KAAK,QAAQ,KAAK;;eAEpB,MAAM,KAAK,QAAQ,KAAK,QAAQ,MAAM,KAAK,QAAQ,KAAK;;aAE1D,MAAM,KAAK,OAAO,KAAK,UAAU;;AAY5C,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YAzByB,mBAAG;;;WAGrB,MAAM,KAAK,QAAQ,KAAK;uBACZ,MAAM,KAAK,QAAQ,KAAK;wBACvB,MAAM,KAAK,QAAQ,KAAK;4BACpB,MAAM,KAAK,OAAO,OAAO;;EAoBjD;EACA;EACA;EACD;;AAGH,kDAAe"}
@@ -0,0 +1,139 @@
1
+ const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
+ const require_useThunderID = require('../../../contexts/ThunderID/useThunderID.cjs');
3
+ const require_useTranslation = require('../../../hooks/useTranslation.cjs');
4
+ const require_BaseOrganizationUnitSwitcher = require('./BaseOrganizationUnitSwitcher.cjs');
5
+ const require_getAccessibleOrganizationUnits = require('../../../api/account/getAccessibleOrganizationUnits.cjs');
6
+ const require_getOrganizationUnitSwitchErrorKey = require('../../../utils/getOrganizationUnitSwitchErrorKey.cjs');
7
+ let __thunderid_browser = require("@thunderid/browser");
8
+ __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
9
+ let react = require("react");
10
+ react = require_rolldown_runtime.__toESM(react);
11
+ let react_jsx_runtime = require("react/jsx-runtime");
12
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
13
+
14
+ //#region src/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.tsx
15
+ /**
16
+ * Shows the current organization unit in a field that opens a menu of the units the signed-in user can
17
+ * access (`/users/me/ous`), and switches the session to the one picked: it signs in again bounded to that unit through
18
+ * `switchOrganizationUnit`, which reuses the SSO session so normally no credentials are asked. A failed
19
+ * switch keeps the session as it was and shows a translated message.
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * <OrganizationUnitSwitcher scope="siblings" />
24
+ *
25
+ * // Let the app take over the pick
26
+ * <OrganizationUnitSwitcher onSelect={(unit) => navigate(`/orgs/${unit.handle}`)} />
27
+ *
28
+ * // Custom rendering
29
+ * <OrganizationUnitSwitcher>
30
+ * {({organizationUnits, current, onSwitch}) => (
31
+ * <select value={current ?? ''} onChange={(e) => onSwitch(organizationUnits.find((u) => u.id === e.target.value)!)}>
32
+ * {organizationUnits.map((u) => <option key={u.id} value={u.id}>{u.name}</option>)}
33
+ * </select>
34
+ * )}
35
+ * </OrganizationUnitSwitcher>
36
+ * ```
37
+ */
38
+ const OrganizationUnitSwitcher = ({ limit = 10, onError = void 0, onSelect = void 0, onSwitch = void 0, preferences = void 0, scope = void 0, switchOptions = void 0,...rest }) => {
39
+ const { baseUrl, currentOrganizationUnit, endpoints, instanceId, isSignedIn, preferences: contextPreferences, switchOrganizationUnit } = require_useThunderID.default();
40
+ const resolvedPreferences = (0, react.useMemo)(() => ({
41
+ ...contextPreferences,
42
+ ...preferences
43
+ }), [contextPreferences, preferences]);
44
+ const { t } = require_useTranslation.default(resolvedPreferences?.i18n);
45
+ const [list, setList] = (0, react.useState)(null);
46
+ const [offset, setOffset] = (0, react.useState)(0);
47
+ const [isLoading, setIsLoading] = (0, react.useState)(false);
48
+ const [error, setError] = (0, react.useState)(null);
49
+ const [switchingId, setSwitchingId] = (0, react.useState)(null);
50
+ const requestRef = (0, react.useRef)(0);
51
+ const latestRef = (0, react.useRef)({
52
+ onError,
53
+ t
54
+ });
55
+ latestRef.current = {
56
+ onError,
57
+ t
58
+ };
59
+ const load = (0, react.useCallback)(async (pageOffset) => {
60
+ const request = requestRef.current + 1;
61
+ requestRef.current = request;
62
+ setIsLoading(true);
63
+ setError(null);
64
+ try {
65
+ const page = await require_getAccessibleOrganizationUnits.default({
66
+ baseUrl,
67
+ instanceId,
68
+ limit,
69
+ offset: pageOffset,
70
+ scope,
71
+ url: (0, __thunderid_browser.resolveResourceEndpoint)("usersMeOrganizationUnits", { endpoints })
72
+ });
73
+ if (requestRef.current === request) setList(page);
74
+ } catch (caught) {
75
+ if (requestRef.current === request) {
76
+ setError(latestRef.current.t("organization_unit.switcher.error.load"));
77
+ latestRef.current.onError?.(caught);
78
+ }
79
+ } finally {
80
+ if (requestRef.current === request) setIsLoading(false);
81
+ }
82
+ }, [
83
+ baseUrl,
84
+ endpoints,
85
+ instanceId,
86
+ limit,
87
+ scope
88
+ ]);
89
+ (0, react.useEffect)(() => {
90
+ if (isSignedIn) load(offset);
91
+ }, [
92
+ isSignedIn,
93
+ load,
94
+ offset
95
+ ]);
96
+ const handleSwitch = async (unit) => {
97
+ if (onSelect) {
98
+ onSelect(unit);
99
+ return;
100
+ }
101
+ setError(null);
102
+ setSwitchingId(unit.id);
103
+ try {
104
+ const user = await switchOrganizationUnit(unit.id, switchOptions);
105
+ if (user) {
106
+ onSwitch?.(unit, user);
107
+ await load(offset);
108
+ }
109
+ } catch (caught) {
110
+ setError(t(require_getOrganizationUnitSwitchErrorKey.default(caught), { name: unit.name }));
111
+ onError?.(caught);
112
+ } finally {
113
+ setSwitchingId(null);
114
+ }
115
+ };
116
+ const current = (list?.current === "" ? void 0 : list?.current) ?? currentOrganizationUnit?.id ?? null;
117
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BaseOrganizationUnitSwitcher.default, {
118
+ ...rest,
119
+ current,
120
+ currentName: currentOrganizationUnit?.id === current ? currentOrganizationUnit?.name ?? null : null,
121
+ error,
122
+ isLoading,
123
+ limit,
124
+ offset,
125
+ organizationUnits: list?.organizationUnits ?? [],
126
+ preferences: resolvedPreferences,
127
+ switchingId,
128
+ totalResults: list?.totalResults ?? 0,
129
+ onPageChange: setOffset,
130
+ onSwitch: (unit) => {
131
+ handleSwitch(unit);
132
+ }
133
+ });
134
+ };
135
+ var OrganizationUnitSwitcher_default = OrganizationUnitSwitcher;
136
+
137
+ //#endregion
138
+ exports.default = OrganizationUnitSwitcher_default;
139
+ //# sourceMappingURL=OrganizationUnitSwitcher.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrganizationUnitSwitcher.cjs","names":["OrganizationUnitSwitcher: FC<OrganizationUnitSwitcherProps>","useThunderID","useTranslation","request: number","page: AccessibleOrganizationUnitList","getAccessibleOrganizationUnits","caught: unknown","user: User | undefined","getOrganizationUnitSwitchErrorKey","current: string | null","BaseOrganizationUnitSwitcher"],"sources":["../../../../../src/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AccessibleOrganizationUnit,\n AccessibleOrganizationUnitList,\n AccessibleOrganizationUnitScope,\n SwitchOrganizationUnitOptions,\n User,\n resolveResourceEndpoint,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport BaseOrganizationUnitSwitcher, {BaseOrganizationUnitSwitcherProps} from './BaseOrganizationUnitSwitcher';\nimport getAccessibleOrganizationUnits from '../../../api/account/getAccessibleOrganizationUnits';\nimport useThunderID from '../../../contexts/ThunderID/useThunderID';\nimport useTranslation from '../../../hooks/useTranslation';\nimport getOrganizationUnitSwitchErrorKey from '../../../utils/getOrganizationUnitSwitchErrorKey';\n\nexport interface OrganizationUnitSwitcherProps\n extends Omit<\n BaseOrganizationUnitSwitcherProps,\n | 'current'\n | 'currentName'\n | 'error'\n | 'isLoading'\n | 'offset'\n | 'onPageChange'\n | 'onSwitch'\n | 'organizationUnits'\n | 'switchingId'\n | 'totalResults'\n > {\n /**\n * Called when a switch or a load fails, with the SDK error. The message is shown either way.\n */\n onError?: (error: unknown) => void;\n /**\n * Takes over a pick: called with the unit instead of switching to it, so the app decides what\n * happens (for example navigating to a unit-specific entry point).\n */\n onSelect?: (unit: AccessibleOrganizationUnit) => void;\n /**\n * Called after a switch completed in place, with the refreshed user. A switch that leaves the page\n * completes on the callback instead.\n */\n onSwitch?: (unit: AccessibleOrganizationUnit, user: User) => void;\n /**\n * Narrows the list relative to the current unit. `siblings` lists the current unit and the units that\n * share its parent. Omit to list every accessible unit.\n */\n scope?: AccessibleOrganizationUnitScope;\n /**\n * Options passed to `switchOrganizationUnit`, such as `redirect: false`.\n */\n switchOptions?: SwitchOrganizationUnitOptions;\n}\n\n/**\n * Shows the current organization unit in a field that opens a menu of the units the signed-in user can\n * access (`/users/me/ous`), and switches the session to the one picked: it signs in again bounded to that unit through\n * `switchOrganizationUnit`, which reuses the SSO session so normally no credentials are asked. A failed\n * switch keeps the session as it was and shows a translated message.\n *\n * @example\n * ```tsx\n * <OrganizationUnitSwitcher scope=\"siblings\" />\n *\n * // Let the app take over the pick\n * <OrganizationUnitSwitcher onSelect={(unit) => navigate(`/orgs/${unit.handle}`)} />\n *\n * // Custom rendering\n * <OrganizationUnitSwitcher>\n * {({organizationUnits, current, onSwitch}) => (\n * <select value={current ?? ''} onChange={(e) => onSwitch(organizationUnits.find((u) => u.id === e.target.value)!)}>\n * {organizationUnits.map((u) => <option key={u.id} value={u.id}>{u.name}</option>)}\n * </select>\n * )}\n * </OrganizationUnitSwitcher>\n * ```\n */\nconst OrganizationUnitSwitcher: FC<OrganizationUnitSwitcherProps> = ({\n limit = 10,\n onError = undefined,\n onSelect = undefined,\n onSwitch = undefined,\n preferences = undefined,\n scope = undefined,\n switchOptions = undefined,\n ...rest\n}: OrganizationUnitSwitcherProps): ReactElement => {\n const {\n baseUrl,\n currentOrganizationUnit,\n endpoints,\n instanceId,\n isSignedIn,\n preferences: contextPreferences,\n switchOrganizationUnit,\n } = useThunderID();\n\n const resolvedPreferences = useMemo(\n () => ({...contextPreferences, ...preferences}),\n [contextPreferences, preferences],\n );\n const {t} = useTranslation(resolvedPreferences?.i18n);\n\n const [list, setList] = useState<AccessibleOrganizationUnitList | null>(null);\n const [offset, setOffset] = useState<number>(0);\n const [isLoading, setIsLoading] = useState<boolean>(false);\n const [error, setError] = useState<string | null>(null);\n const [switchingId, setSwitchingId] = useState<string | null>(null);\n const requestRef = useRef<number>(0);\n // The latest callbacks, read when a load settles, so a new `onError` on each render does not reload.\n const latestRef = useRef<{onError?: (error: unknown) => void; t: typeof t}>({onError, t});\n latestRef.current = {onError, t};\n\n const load = useCallback(\n async (pageOffset: number): Promise<void> => {\n const request: number = requestRef.current + 1;\n requestRef.current = request;\n setIsLoading(true);\n setError(null);\n\n try {\n const page: AccessibleOrganizationUnitList = await getAccessibleOrganizationUnits({\n baseUrl,\n instanceId,\n limit,\n offset: pageOffset,\n scope,\n url: resolveResourceEndpoint('usersMeOrganizationUnits', {endpoints}),\n });\n\n if (requestRef.current === request) {\n setList(page);\n }\n } catch (caught: unknown) {\n if (requestRef.current === request) {\n setError(latestRef.current.t('organization_unit.switcher.error.load'));\n latestRef.current.onError?.(caught);\n }\n } finally {\n if (requestRef.current === request) {\n setIsLoading(false);\n }\n }\n },\n [baseUrl, endpoints, instanceId, limit, scope],\n );\n\n useEffect(() => {\n if (isSignedIn) {\n void load(offset);\n }\n }, [isSignedIn, load, offset]);\n\n const handleSwitch = async (unit: AccessibleOrganizationUnit): Promise<void> => {\n if (onSelect) {\n onSelect(unit);\n\n return;\n }\n\n setError(null);\n setSwitchingId(unit.id);\n\n try {\n const user: User | undefined = await switchOrganizationUnit(unit.id, switchOptions);\n\n if (user) {\n onSwitch?.(unit, user);\n await load(offset);\n }\n } catch (caught: unknown) {\n setError(t(getOrganizationUnitSwitchErrorKey(caught), {name: unit.name}));\n onError?.(caught);\n } finally {\n setSwitchingId(null);\n }\n };\n\n const current: string | null =\n (list?.current === '' ? undefined : list?.current) ?? currentOrganizationUnit?.id ?? null;\n\n return (\n <BaseOrganizationUnitSwitcher\n {...rest}\n current={current}\n // The session's unit names the field when the page does not list the current unit.\n currentName={currentOrganizationUnit?.id === current ? (currentOrganizationUnit?.name ?? null) : null}\n error={error}\n isLoading={isLoading}\n limit={limit}\n offset={offset}\n organizationUnits={list?.organizationUnits ?? []}\n preferences={resolvedPreferences}\n switchingId={switchingId}\n totalResults={list?.totalResults ?? 0}\n onPageChange={setOffset}\n onSwitch={(unit: AccessibleOrganizationUnit): void => {\n void handleSwitch(unit);\n }}\n />\n );\n};\n\nexport default OrganizationUnitSwitcher;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgFA,MAAMA,4BAA+D,EACnE,QAAQ,IACR,UAAU,QACV,WAAW,QACX,WAAW,QACX,cAAc,QACd,QAAQ,QACR,gBAAgB,OAChB,GAAG,WAC8C;CACjD,MAAM,EACJ,SACA,yBACA,WACA,YACA,YACA,aAAa,oBACb,2BACEC,8BAAc;CAElB,MAAM,gDACG;EAAC,GAAG;EAAoB,GAAG;EAAY,GAC9C,CAAC,oBAAoB,YAAY,CAClC;CACD,MAAM,EAAC,MAAKC,+BAAe,qBAAqB,KAAK;CAErD,MAAM,CAAC,MAAM,+BAA2D,KAAK;CAC7E,MAAM,CAAC,QAAQ,iCAA8B,EAAE;CAC/C,MAAM,CAAC,WAAW,oCAAkC,MAAM;CAC1D,MAAM,CAAC,OAAO,gCAAoC,KAAK;CACvD,MAAM,CAAC,aAAa,sCAA0C,KAAK;CACnE,MAAM,+BAA4B,EAAE;CAEpC,MAAM,8BAAsE;EAAC;EAAS;EAAE,CAAC;AACzF,WAAU,UAAU;EAAC;EAAS;EAAE;CAEhC,MAAM,8BACJ,OAAO,eAAsC;EAC3C,MAAMC,UAAkB,WAAW,UAAU;AAC7C,aAAW,UAAU;AACrB,eAAa,KAAK;AAClB,WAAS,KAAK;AAEd,MAAI;GACF,MAAMC,OAAuC,MAAMC,+CAA+B;IAChF;IACA;IACA;IACA,QAAQ;IACR;IACA,sDAA6B,4BAA4B,EAAC,WAAU,CAAC;IACtE,CAAC;AAEF,OAAI,WAAW,YAAY,QACzB,SAAQ,KAAK;WAERC,QAAiB;AACxB,OAAI,WAAW,YAAY,SAAS;AAClC,aAAS,UAAU,QAAQ,EAAE,wCAAwC,CAAC;AACtE,cAAU,QAAQ,UAAU,OAAO;;YAE7B;AACR,OAAI,WAAW,YAAY,QACzB,cAAa,MAAM;;IAIzB;EAAC;EAAS;EAAW;EAAY;EAAO;EAAM,CAC/C;AAED,4BAAgB;AACd,MAAI,WACF,CAAK,KAAK,OAAO;IAElB;EAAC;EAAY;EAAM;EAAO,CAAC;CAE9B,MAAM,eAAe,OAAO,SAAoD;AAC9E,MAAI,UAAU;AACZ,YAAS,KAAK;AAEd;;AAGF,WAAS,KAAK;AACd,iBAAe,KAAK,GAAG;AAEvB,MAAI;GACF,MAAMC,OAAyB,MAAM,uBAAuB,KAAK,IAAI,cAAc;AAEnF,OAAI,MAAM;AACR,eAAW,MAAM,KAAK;AACtB,UAAM,KAAK,OAAO;;WAEbD,QAAiB;AACxB,YAAS,EAAEE,kDAAkC,OAAO,EAAE,EAAC,MAAM,KAAK,MAAK,CAAC,CAAC;AACzE,aAAU,OAAO;YACT;AACR,kBAAe,KAAK;;;CAIxB,MAAMC,WACH,MAAM,YAAY,KAAK,SAAY,MAAM,YAAY,yBAAyB,MAAM;AAEvF,QACE,2CAACC;EACC,GAAI;EACK;EAET,aAAa,yBAAyB,OAAO,UAAW,yBAAyB,QAAQ,OAAQ;EAC1F;EACI;EACJ;EACC;EACR,mBAAmB,MAAM,qBAAqB,EAAE;EAChD,aAAa;EACA;EACb,cAAc,MAAM,gBAAgB;EACpC,cAAc;EACd,WAAW,SAA2C;AACpD,GAAK,aAAa,KAAK;;GAEzB;;AAIN,uCAAe"}