@workos-inc/widgets 1.0.0 → 1.1.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 (397) hide show
  1. package/README.md +68 -1
  2. package/dist/cjs/card-list.d.ts +6 -0
  3. package/dist/cjs/card-list.d.ts.map +1 -0
  4. package/dist/cjs/card-list.js +13 -0
  5. package/dist/cjs/card-list.js.map +1 -0
  6. package/dist/cjs/index.d.ts +3 -0
  7. package/dist/cjs/index.d.ts.map +1 -1
  8. package/dist/cjs/index.js +7 -1
  9. package/dist/cjs/index.js.map +1 -1
  10. package/dist/cjs/lib/add-mfa-dialog.d.ts +9 -0
  11. package/dist/cjs/lib/add-mfa-dialog.d.ts.map +1 -0
  12. package/dist/cjs/lib/add-mfa-dialog.js +135 -0
  13. package/dist/cjs/lib/add-mfa-dialog.js.map +1 -0
  14. package/dist/cjs/lib/api/user.d.ts +13 -57
  15. package/dist/cjs/lib/api/user.d.ts.map +1 -1
  16. package/dist/cjs/lib/api/user.js +44 -314
  17. package/dist/cjs/lib/api/user.js.map +1 -1
  18. package/dist/cjs/lib/change-password-dialog.d.ts +8 -0
  19. package/dist/cjs/lib/change-password-dialog.d.ts.map +1 -0
  20. package/dist/cjs/lib/change-password-dialog.js +97 -0
  21. package/dist/cjs/lib/change-password-dialog.js.map +1 -0
  22. package/dist/cjs/lib/copy-button.d.ts +8 -0
  23. package/dist/cjs/lib/copy-button.d.ts.map +1 -0
  24. package/dist/cjs/lib/copy-button.js +63 -0
  25. package/dist/cjs/lib/copy-button.js.map +1 -0
  26. package/dist/cjs/lib/delete-user-dialog.d.ts +2 -2
  27. package/dist/cjs/lib/delete-user-dialog.d.ts.map +1 -1
  28. package/dist/cjs/lib/delete-user-dialog.js +1 -1
  29. package/dist/cjs/lib/delete-user-dialog.js.map +1 -1
  30. package/dist/cjs/lib/edit-user-profile-dialog.d.ts +10 -0
  31. package/dist/cjs/lib/edit-user-profile-dialog.d.ts.map +1 -0
  32. package/dist/cjs/lib/edit-user-profile-dialog.js +85 -0
  33. package/dist/cjs/lib/edit-user-profile-dialog.js.map +1 -0
  34. package/dist/cjs/lib/edit-user-role-dialog.d.ts +12 -0
  35. package/dist/cjs/lib/edit-user-role-dialog.d.ts.map +1 -0
  36. package/dist/cjs/lib/{edit-user-details-dialog.js → edit-user-role-dialog.js} +11 -7
  37. package/dist/cjs/lib/edit-user-role-dialog.js.map +1 -0
  38. package/dist/cjs/lib/elements.d.ts +1 -0
  39. package/dist/cjs/lib/elements.d.ts.map +1 -1
  40. package/dist/cjs/lib/elements.js +10 -4
  41. package/dist/cjs/lib/elements.js.map +1 -1
  42. package/dist/cjs/lib/elevated-access.d.ts +8 -0
  43. package/dist/cjs/lib/elevated-access.d.ts.map +1 -0
  44. package/dist/cjs/lib/elevated-access.js +130 -0
  45. package/dist/cjs/lib/elevated-access.js.map +1 -0
  46. package/dist/cjs/lib/generic-error.d.ts +4 -0
  47. package/dist/cjs/lib/generic-error.d.ts.map +1 -0
  48. package/dist/cjs/lib/generic-error.js +57 -0
  49. package/dist/cjs/lib/generic-error.js.map +1 -0
  50. package/dist/cjs/lib/icon-panel.d.ts +3 -0
  51. package/dist/cjs/lib/icon-panel.d.ts.map +1 -0
  52. package/dist/cjs/lib/icon-panel.js +16 -0
  53. package/dist/cjs/lib/icon-panel.js.map +1 -0
  54. package/dist/cjs/lib/icons.d.ts +3 -0
  55. package/dist/cjs/lib/icons.d.ts.map +1 -0
  56. package/dist/cjs/lib/icons.js +8 -0
  57. package/dist/cjs/lib/icons.js.map +1 -0
  58. package/dist/cjs/lib/invite-user-dialog.d.ts.map +1 -1
  59. package/dist/cjs/lib/invite-user-dialog.js +7 -5
  60. package/dist/cjs/lib/invite-user-dialog.js.map +1 -1
  61. package/dist/cjs/lib/logout-all-sessions-dialog.d.ts +9 -0
  62. package/dist/cjs/lib/logout-all-sessions-dialog.d.ts.map +1 -0
  63. package/dist/cjs/lib/logout-all-sessions-dialog.js +52 -0
  64. package/dist/cjs/lib/logout-all-sessions-dialog.js.map +1 -0
  65. package/dist/cjs/lib/logout-dialog.d.ts +10 -0
  66. package/dist/cjs/lib/logout-dialog.d.ts.map +1 -0
  67. package/dist/cjs/lib/logout-dialog.js +58 -0
  68. package/dist/cjs/lib/logout-dialog.js.map +1 -0
  69. package/dist/cjs/lib/marker.d.ts +14 -0
  70. package/dist/cjs/lib/marker.d.ts.map +1 -0
  71. package/dist/cjs/lib/marker.js +38 -0
  72. package/dist/cjs/lib/marker.js.map +1 -0
  73. package/dist/cjs/lib/oauth-icons.d.ts +4 -0
  74. package/dist/cjs/lib/oauth-icons.d.ts.map +1 -0
  75. package/dist/cjs/lib/oauth-icons.js +67 -0
  76. package/dist/cjs/lib/oauth-icons.js.map +1 -0
  77. package/dist/cjs/lib/organization-switcher.d.ts +24 -0
  78. package/dist/cjs/lib/organization-switcher.d.ts.map +1 -0
  79. package/dist/cjs/lib/organization-switcher.js +35 -0
  80. package/dist/cjs/lib/organization-switcher.js.map +1 -0
  81. package/dist/cjs/lib/otp-input.d.ts +20 -0
  82. package/dist/cjs/lib/otp-input.d.ts.map +1 -0
  83. package/dist/cjs/lib/otp-input.js +174 -0
  84. package/dist/cjs/lib/otp-input.js.map +1 -0
  85. package/dist/cjs/lib/resend-invite-dialog.d.ts +2 -2
  86. package/dist/cjs/lib/resend-invite-dialog.d.ts.map +1 -1
  87. package/dist/cjs/lib/resend-invite-dialog.js +1 -1
  88. package/dist/cjs/lib/resend-invite-dialog.js.map +1 -1
  89. package/dist/cjs/lib/reset-mfa-dialog.d.ts +9 -0
  90. package/dist/cjs/lib/reset-mfa-dialog.d.ts.map +1 -0
  91. package/dist/cjs/lib/reset-mfa-dialog.js +60 -0
  92. package/dist/cjs/lib/reset-mfa-dialog.js.map +1 -0
  93. package/dist/cjs/lib/revoke-invite-dialog.d.ts +2 -2
  94. package/dist/cjs/lib/revoke-invite-dialog.d.ts.map +1 -1
  95. package/dist/cjs/lib/revoke-invite-dialog.js +1 -1
  96. package/dist/cjs/lib/revoke-invite-dialog.js.map +1 -1
  97. package/dist/cjs/lib/save-button.d.ts +11 -0
  98. package/dist/cjs/lib/save-button.d.ts.map +1 -0
  99. package/dist/cjs/lib/save-button.js +47 -0
  100. package/dist/cjs/lib/save-button.js.map +1 -0
  101. package/dist/cjs/lib/set-password-dialog.d.ts +8 -0
  102. package/dist/cjs/lib/set-password-dialog.d.ts.map +1 -0
  103. package/dist/cjs/lib/set-password-dialog.js +80 -0
  104. package/dist/cjs/lib/set-password-dialog.js.map +1 -0
  105. package/dist/cjs/lib/use-dialog-close.d.ts +2 -0
  106. package/dist/cjs/lib/use-dialog-close.d.ts.map +1 -0
  107. package/dist/cjs/lib/use-dialog-close.js +43 -0
  108. package/dist/cjs/lib/use-dialog-close.js.map +1 -0
  109. package/dist/cjs/lib/use-security-settings.d.ts +11 -0
  110. package/dist/cjs/lib/use-security-settings.d.ts.map +1 -0
  111. package/dist/cjs/lib/use-security-settings.js +39 -0
  112. package/dist/cjs/lib/use-security-settings.js.map +1 -0
  113. package/dist/cjs/lib/user-actions-dropdown.d.ts +2 -2
  114. package/dist/cjs/lib/user-actions-dropdown.d.ts.map +1 -1
  115. package/dist/cjs/lib/user-actions-dropdown.js +8 -4
  116. package/dist/cjs/lib/user-actions-dropdown.js.map +1 -1
  117. package/dist/cjs/lib/user-profile.d.ts +11 -0
  118. package/dist/cjs/lib/user-profile.d.ts.map +1 -0
  119. package/dist/cjs/lib/user-profile.js +36 -0
  120. package/dist/cjs/lib/user-profile.js.map +1 -0
  121. package/dist/cjs/lib/user-security.d.ts +11 -0
  122. package/dist/cjs/lib/user-security.d.ts.map +1 -0
  123. package/dist/cjs/lib/user-security.js +64 -0
  124. package/dist/cjs/lib/user-security.js.map +1 -0
  125. package/dist/cjs/lib/user-sessions.d.ts +12 -0
  126. package/dist/cjs/lib/user-sessions.d.ts.map +1 -0
  127. package/dist/cjs/lib/user-sessions.js +72 -0
  128. package/dist/cjs/lib/user-sessions.js.map +1 -0
  129. package/dist/cjs/lib/users-filter.d.ts +2 -2
  130. package/dist/cjs/lib/users-filter.d.ts.map +1 -1
  131. package/dist/cjs/lib/users-filter.js.map +1 -1
  132. package/dist/cjs/lib/users-management-context.d.ts +0 -9
  133. package/dist/cjs/lib/users-management-context.d.ts.map +1 -1
  134. package/dist/cjs/lib/users-management-context.js +13 -26
  135. package/dist/cjs/lib/users-management-context.js.map +1 -1
  136. package/dist/cjs/lib/users-management-state.d.ts +3 -3
  137. package/dist/cjs/lib/users-management-state.d.ts.map +1 -1
  138. package/dist/cjs/lib/users-management-state.js.map +1 -1
  139. package/dist/cjs/lib/users-management.d.ts +3 -4
  140. package/dist/cjs/lib/users-management.d.ts.map +1 -1
  141. package/dist/cjs/lib/users-management.js +8 -26
  142. package/dist/cjs/lib/users-management.js.map +1 -1
  143. package/dist/cjs/lib/utils.d.ts +10 -2
  144. package/dist/cjs/lib/utils.d.ts.map +1 -1
  145. package/dist/cjs/lib/utils.js +18 -0
  146. package/dist/cjs/lib/utils.js.map +1 -1
  147. package/dist/cjs/organization-switcher.client.d.ts +8 -0
  148. package/dist/cjs/organization-switcher.client.d.ts.map +1 -0
  149. package/dist/cjs/organization-switcher.client.js +37 -0
  150. package/dist/cjs/organization-switcher.client.js.map +1 -0
  151. package/dist/cjs/user-profile.client.d.ts +7 -0
  152. package/dist/cjs/user-profile.client.d.ts.map +1 -0
  153. package/dist/cjs/user-profile.client.js +31 -0
  154. package/dist/cjs/user-profile.client.js.map +1 -0
  155. package/dist/cjs/user-security.client.d.ts +7 -0
  156. package/dist/cjs/user-security.client.d.ts.map +1 -0
  157. package/dist/cjs/user-security.client.js +27 -0
  158. package/dist/cjs/user-security.client.js.map +1 -0
  159. package/dist/cjs/user-sessions.client.d.ts +12 -0
  160. package/dist/cjs/user-sessions.client.d.ts.map +1 -0
  161. package/dist/cjs/user-sessions.client.js +48 -0
  162. package/dist/cjs/user-sessions.client.js.map +1 -0
  163. package/dist/cjs/users-management.client.d.ts +2 -1
  164. package/dist/cjs/users-management.client.d.ts.map +1 -1
  165. package/dist/cjs/users-management.client.js +12 -43
  166. package/dist/cjs/users-management.client.js.map +1 -1
  167. package/dist/esm/card-list.d.ts +6 -0
  168. package/dist/esm/card-list.d.ts.map +1 -0
  169. package/dist/esm/card-list.js +9 -0
  170. package/dist/esm/card-list.js.map +1 -0
  171. package/dist/esm/index.d.ts +3 -0
  172. package/dist/esm/index.d.ts.map +1 -1
  173. package/dist/esm/index.js +3 -0
  174. package/dist/esm/index.js.map +1 -1
  175. package/dist/esm/lib/add-mfa-dialog.d.ts +9 -0
  176. package/dist/esm/lib/add-mfa-dialog.d.ts.map +1 -0
  177. package/dist/esm/lib/add-mfa-dialog.js +109 -0
  178. package/dist/esm/lib/add-mfa-dialog.js.map +1 -0
  179. package/dist/esm/lib/api/user.d.ts +13 -57
  180. package/dist/esm/lib/api/user.d.ts.map +1 -1
  181. package/dist/esm/lib/api/user.js +44 -313
  182. package/dist/esm/lib/api/user.js.map +1 -1
  183. package/dist/esm/lib/change-password-dialog.d.ts +8 -0
  184. package/dist/esm/lib/change-password-dialog.d.ts.map +1 -0
  185. package/dist/esm/lib/change-password-dialog.js +71 -0
  186. package/dist/esm/lib/change-password-dialog.js.map +1 -0
  187. package/dist/esm/lib/copy-button.d.ts +8 -0
  188. package/dist/esm/lib/copy-button.d.ts.map +1 -0
  189. package/dist/esm/lib/copy-button.js +37 -0
  190. package/dist/esm/lib/copy-button.js.map +1 -0
  191. package/dist/esm/lib/delete-user-dialog.d.ts +2 -2
  192. package/dist/esm/lib/delete-user-dialog.d.ts.map +1 -1
  193. package/dist/esm/lib/delete-user-dialog.js +1 -1
  194. package/dist/esm/lib/delete-user-dialog.js.map +1 -1
  195. package/dist/esm/lib/edit-user-profile-dialog.d.ts +10 -0
  196. package/dist/esm/lib/edit-user-profile-dialog.d.ts.map +1 -0
  197. package/dist/esm/lib/edit-user-profile-dialog.js +59 -0
  198. package/dist/esm/lib/edit-user-profile-dialog.js.map +1 -0
  199. package/dist/esm/lib/edit-user-role-dialog.d.ts +12 -0
  200. package/dist/esm/lib/edit-user-role-dialog.d.ts.map +1 -0
  201. package/dist/esm/lib/{edit-user-details-dialog.js → edit-user-role-dialog.js} +10 -6
  202. package/dist/esm/lib/edit-user-role-dialog.js.map +1 -0
  203. package/dist/esm/lib/elements.d.ts +1 -0
  204. package/dist/esm/lib/elements.d.ts.map +1 -1
  205. package/dist/esm/lib/elements.js +9 -3
  206. package/dist/esm/lib/elements.js.map +1 -1
  207. package/dist/esm/lib/elevated-access.d.ts +8 -0
  208. package/dist/esm/lib/elevated-access.d.ts.map +1 -0
  209. package/dist/esm/lib/elevated-access.js +104 -0
  210. package/dist/esm/lib/elevated-access.js.map +1 -0
  211. package/dist/esm/lib/generic-error.d.ts +4 -0
  212. package/dist/esm/lib/generic-error.d.ts.map +1 -0
  213. package/dist/esm/lib/generic-error.js +31 -0
  214. package/dist/esm/lib/generic-error.js.map +1 -0
  215. package/dist/esm/lib/icon-panel.d.ts +3 -0
  216. package/dist/esm/lib/icon-panel.d.ts.map +1 -0
  217. package/dist/esm/lib/icon-panel.js +13 -0
  218. package/dist/esm/lib/icon-panel.js.map +1 -0
  219. package/dist/esm/lib/icons.d.ts +3 -0
  220. package/dist/esm/lib/icons.d.ts.map +1 -0
  221. package/dist/esm/lib/icons.js +5 -0
  222. package/dist/esm/lib/icons.js.map +1 -0
  223. package/dist/esm/lib/invite-user-dialog.d.ts.map +1 -1
  224. package/dist/esm/lib/invite-user-dialog.js +7 -5
  225. package/dist/esm/lib/invite-user-dialog.js.map +1 -1
  226. package/dist/esm/lib/logout-all-sessions-dialog.d.ts +9 -0
  227. package/dist/esm/lib/logout-all-sessions-dialog.d.ts.map +1 -0
  228. package/dist/esm/lib/logout-all-sessions-dialog.js +26 -0
  229. package/dist/esm/lib/logout-all-sessions-dialog.js.map +1 -0
  230. package/dist/esm/lib/logout-dialog.d.ts +10 -0
  231. package/dist/esm/lib/logout-dialog.d.ts.map +1 -0
  232. package/dist/esm/lib/logout-dialog.js +32 -0
  233. package/dist/esm/lib/logout-dialog.js.map +1 -0
  234. package/dist/esm/lib/marker.d.ts +14 -0
  235. package/dist/esm/lib/marker.d.ts.map +1 -0
  236. package/dist/esm/lib/marker.js +9 -0
  237. package/dist/esm/lib/marker.js.map +1 -0
  238. package/dist/esm/lib/oauth-icons.d.ts +4 -0
  239. package/dist/esm/lib/oauth-icons.d.ts.map +1 -0
  240. package/dist/esm/lib/oauth-icons.js +39 -0
  241. package/dist/esm/lib/oauth-icons.js.map +1 -0
  242. package/dist/esm/lib/organization-switcher.d.ts +24 -0
  243. package/dist/esm/lib/organization-switcher.d.ts.map +1 -0
  244. package/dist/esm/lib/organization-switcher.js +29 -0
  245. package/dist/esm/lib/organization-switcher.js.map +1 -0
  246. package/dist/esm/lib/otp-input.d.ts +20 -0
  247. package/dist/esm/lib/otp-input.d.ts.map +1 -0
  248. package/dist/esm/lib/otp-input.js +148 -0
  249. package/dist/esm/lib/otp-input.js.map +1 -0
  250. package/dist/esm/lib/resend-invite-dialog.d.ts +2 -2
  251. package/dist/esm/lib/resend-invite-dialog.d.ts.map +1 -1
  252. package/dist/esm/lib/resend-invite-dialog.js +1 -1
  253. package/dist/esm/lib/resend-invite-dialog.js.map +1 -1
  254. package/dist/esm/lib/reset-mfa-dialog.d.ts +9 -0
  255. package/dist/esm/lib/reset-mfa-dialog.d.ts.map +1 -0
  256. package/dist/esm/lib/reset-mfa-dialog.js +34 -0
  257. package/dist/esm/lib/reset-mfa-dialog.js.map +1 -0
  258. package/dist/esm/lib/revoke-invite-dialog.d.ts +2 -2
  259. package/dist/esm/lib/revoke-invite-dialog.d.ts.map +1 -1
  260. package/dist/esm/lib/revoke-invite-dialog.js +1 -1
  261. package/dist/esm/lib/revoke-invite-dialog.js.map +1 -1
  262. package/dist/esm/lib/save-button.d.ts +11 -0
  263. package/dist/esm/lib/save-button.d.ts.map +1 -0
  264. package/dist/esm/lib/save-button.js +44 -0
  265. package/dist/esm/lib/save-button.js.map +1 -0
  266. package/dist/esm/lib/set-password-dialog.d.ts +8 -0
  267. package/dist/esm/lib/set-password-dialog.d.ts.map +1 -0
  268. package/dist/esm/lib/set-password-dialog.js +54 -0
  269. package/dist/esm/lib/set-password-dialog.js.map +1 -0
  270. package/dist/esm/lib/use-dialog-close.d.ts +2 -0
  271. package/dist/esm/lib/use-dialog-close.d.ts.map +1 -0
  272. package/dist/esm/lib/use-dialog-close.js +17 -0
  273. package/dist/esm/lib/use-dialog-close.js.map +1 -0
  274. package/dist/esm/lib/use-security-settings.d.ts +11 -0
  275. package/dist/esm/lib/use-security-settings.d.ts.map +1 -0
  276. package/dist/esm/lib/use-security-settings.js +36 -0
  277. package/dist/esm/lib/use-security-settings.js.map +1 -0
  278. package/dist/esm/lib/user-actions-dropdown.d.ts +2 -2
  279. package/dist/esm/lib/user-actions-dropdown.d.ts.map +1 -1
  280. package/dist/esm/lib/user-actions-dropdown.js +8 -4
  281. package/dist/esm/lib/user-actions-dropdown.js.map +1 -1
  282. package/dist/esm/lib/user-profile.d.ts +11 -0
  283. package/dist/esm/lib/user-profile.d.ts.map +1 -0
  284. package/dist/esm/lib/user-profile.js +27 -0
  285. package/dist/esm/lib/user-profile.js.map +1 -0
  286. package/dist/esm/lib/user-security.d.ts +11 -0
  287. package/dist/esm/lib/user-security.d.ts.map +1 -0
  288. package/dist/esm/lib/user-security.js +32 -0
  289. package/dist/esm/lib/user-security.js.map +1 -0
  290. package/dist/esm/lib/user-sessions.d.ts +12 -0
  291. package/dist/esm/lib/user-sessions.d.ts.map +1 -0
  292. package/dist/esm/lib/user-sessions.js +40 -0
  293. package/dist/esm/lib/user-sessions.js.map +1 -0
  294. package/dist/esm/lib/users-filter.d.ts +2 -2
  295. package/dist/esm/lib/users-filter.d.ts.map +1 -1
  296. package/dist/esm/lib/users-filter.js.map +1 -1
  297. package/dist/esm/lib/users-management-context.d.ts +0 -9
  298. package/dist/esm/lib/users-management-context.d.ts.map +1 -1
  299. package/dist/esm/lib/users-management-context.js +13 -25
  300. package/dist/esm/lib/users-management-context.js.map +1 -1
  301. package/dist/esm/lib/users-management-state.d.ts +3 -3
  302. package/dist/esm/lib/users-management-state.d.ts.map +1 -1
  303. package/dist/esm/lib/users-management-state.js.map +1 -1
  304. package/dist/esm/lib/users-management.d.ts +3 -4
  305. package/dist/esm/lib/users-management.d.ts.map +1 -1
  306. package/dist/esm/lib/users-management.js +9 -27
  307. package/dist/esm/lib/users-management.js.map +1 -1
  308. package/dist/esm/lib/users-search.d.ts +1 -1
  309. package/dist/esm/lib/users-search.d.ts.map +1 -1
  310. package/dist/esm/lib/utils.d.ts +10 -2
  311. package/dist/esm/lib/utils.d.ts.map +1 -1
  312. package/dist/esm/lib/utils.js +16 -0
  313. package/dist/esm/lib/utils.js.map +1 -1
  314. package/dist/esm/organization-switcher.client.d.ts +8 -0
  315. package/dist/esm/organization-switcher.client.d.ts.map +1 -0
  316. package/dist/esm/organization-switcher.client.js +33 -0
  317. package/dist/esm/organization-switcher.client.js.map +1 -0
  318. package/dist/esm/user-profile.client.d.ts +7 -0
  319. package/dist/esm/user-profile.client.d.ts.map +1 -0
  320. package/dist/esm/user-profile.client.js +27 -0
  321. package/dist/esm/user-profile.client.js.map +1 -0
  322. package/dist/esm/user-security.client.d.ts +7 -0
  323. package/dist/esm/user-security.client.d.ts.map +1 -0
  324. package/dist/esm/user-security.client.js +23 -0
  325. package/dist/esm/user-security.client.js.map +1 -0
  326. package/dist/esm/user-sessions.client.d.ts +12 -0
  327. package/dist/esm/user-sessions.client.d.ts.map +1 -0
  328. package/dist/esm/user-sessions.client.js +44 -0
  329. package/dist/esm/user-sessions.client.js.map +1 -0
  330. package/dist/esm/users-management.client.d.ts +2 -1
  331. package/dist/esm/users-management.client.d.ts.map +1 -1
  332. package/dist/esm/users-management.client.js +12 -20
  333. package/dist/esm/users-management.client.js.map +1 -1
  334. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  335. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  336. package/package.json +10 -4
  337. package/src/card-list.tsx +26 -0
  338. package/src/index.ts +3 -0
  339. package/src/lib/add-mfa-dialog.tsx +379 -0
  340. package/src/lib/api/user.ts +54 -458
  341. package/src/lib/card-list.css +3 -0
  342. package/src/lib/change-password-dialog.tsx +290 -0
  343. package/src/lib/copy-button.tsx +53 -0
  344. package/src/lib/delete-user-dialog.tsx +9 -6
  345. package/src/lib/edit-user-profile-dialog.tsx +181 -0
  346. package/src/lib/{edit-user-details-dialog.tsx → edit-user-role-dialog.tsx} +12 -9
  347. package/src/lib/elements.tsx +34 -1
  348. package/src/lib/elevated-access.tsx +261 -0
  349. package/src/lib/generic-error.tsx +70 -0
  350. package/src/lib/icon-panel.tsx +26 -0
  351. package/src/lib/icons.tsx +21 -0
  352. package/src/lib/invite-user-dialog.tsx +15 -10
  353. package/src/lib/logout-all-sessions-dialog.tsx +82 -0
  354. package/src/lib/logout-dialog.tsx +89 -0
  355. package/src/lib/marker.css +81 -0
  356. package/src/lib/marker.tsx +39 -0
  357. package/src/lib/oauth-icons.tsx +138 -0
  358. package/src/lib/organization-switcher.tsx +160 -0
  359. package/src/lib/otp-input.tsx +276 -0
  360. package/src/lib/resend-invite-dialog.tsx +9 -6
  361. package/src/lib/reset-mfa-dialog.tsx +104 -0
  362. package/src/lib/revoke-invite-dialog.tsx +9 -6
  363. package/src/lib/save-button.css +60 -0
  364. package/src/lib/save-button.tsx +113 -0
  365. package/src/lib/set-password-dialog.tsx +204 -0
  366. package/src/lib/use-dialog-close.tsx +19 -0
  367. package/src/lib/use-security-settings.tsx +49 -0
  368. package/src/lib/user-actions-dropdown.tsx +10 -6
  369. package/src/lib/user-profile.tsx +247 -0
  370. package/src/lib/user-security.tsx +187 -0
  371. package/src/lib/user-sessions.tsx +204 -0
  372. package/src/lib/users-filter.tsx +2 -2
  373. package/src/lib/users-management-context.tsx +21 -36
  374. package/src/lib/users-management-state.ts +3 -3
  375. package/src/lib/users-management.tsx +21 -77
  376. package/src/lib/utils.ts +30 -2
  377. package/src/organization-switcher.client.tsx +77 -0
  378. package/src/styles.css +44 -0
  379. package/src/user-profile.client.tsx +51 -0
  380. package/src/user-security.client.tsx +55 -0
  381. package/src/user-sessions.client.tsx +96 -0
  382. package/src/users-management.client.tsx +28 -39
  383. package/dist/cjs/lib/api/role.d.ts +0 -9
  384. package/dist/cjs/lib/api/role.d.ts.map +0 -1
  385. package/dist/cjs/lib/api/role.js +0 -115
  386. package/dist/cjs/lib/api/role.js.map +0 -1
  387. package/dist/cjs/lib/edit-user-details-dialog.d.ts +0 -12
  388. package/dist/cjs/lib/edit-user-details-dialog.d.ts.map +0 -1
  389. package/dist/cjs/lib/edit-user-details-dialog.js.map +0 -1
  390. package/dist/esm/lib/api/role.d.ts +0 -9
  391. package/dist/esm/lib/api/role.d.ts.map +0 -1
  392. package/dist/esm/lib/api/role.js +0 -110
  393. package/dist/esm/lib/api/role.js.map +0 -1
  394. package/dist/esm/lib/edit-user-details-dialog.d.ts +0 -12
  395. package/dist/esm/lib/edit-user-details-dialog.d.ts.map +0 -1
  396. package/dist/esm/lib/edit-user-details-dialog.js.map +0 -1
  397. package/src/lib/api/role.ts +0 -147
@@ -3,13 +3,17 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
3
3
  import { DropdownMenu } from "@radix-ui/themes";
4
4
  import * as React from "react";
5
5
  import { DeleteUserDialog } from "./delete-user-dialog";
6
- import { EditUserDetailsDialog } from "./edit-user-details-dialog";
6
+ import { EditUserRoleDialog } from "./edit-user-role-dialog";
7
7
  import { DestructiveMenuItem, DropdownMenuContent, PrimaryMenuItem, } from "./elements";
8
8
  import { ResendInviteDialog } from "./resend-invite-dialog";
9
9
  import { RevokeInviteDialog } from "./revoke-invite-dialog";
10
- import { useRoles } from "./api/role";
10
+ import { useRoles } from "@repo/api";
11
11
  export const UserActionsDropdown = ({ user, children, }) => {
12
- const rolesQuery = useRoles();
12
+ const rolesQuery = useRoles({
13
+ query: {
14
+ initialData: [],
15
+ },
16
+ });
13
17
  const [openDialog, setOpenDialog] = React.useState(null);
14
18
  /**
15
19
  * Assigns a key for each dialog based on its open state to ensure its
@@ -44,6 +48,6 @@ export const UserActionsDropdown = ({ user, children, }) => {
44
48
  if (user.isLoggedInUser || items.length === 0) {
45
49
  return null;
46
50
  }
47
- return (_jsxs(_Fragment, { children: [_jsxs(DropdownMenu.Root, { children: [_jsx(DropdownMenu.Trigger, { children: children }), _jsx(DropdownMenuContent, { size: "2", align: "end", children: items })] }), actions.has("edit-role") && (_jsx(EditUserDetailsDialog, { user: user, open: openDialog === "edit-role", onOpenChange: (open) => !open && setOpenDialog(null) }, getDialogKey("edit-role"))), actions.has("revoke-membership") && (_jsx(DeleteUserDialog, { user: user, open: openDialog === "revoke-membership", onOpenChange: (open) => !open && setOpenDialog(null) }, getDialogKey("revoke-membership"))), actions.has("revoke-invite") && (_jsx(RevokeInviteDialog, { user: user, open: openDialog === "revoke-invite", onOpenChange: (open) => !open && setOpenDialog(null) }, getDialogKey("revoke-invite"))), actions.has("resend-invite") && (_jsx(ResendInviteDialog, { user: user, open: openDialog === "resend-invite", onOpenChange: (open) => !open && setOpenDialog(null) }, getDialogKey("resend-invite")))] }));
51
+ return (_jsxs(_Fragment, { children: [_jsxs(DropdownMenu.Root, { children: [_jsx(DropdownMenu.Trigger, { children: children }), _jsx(DropdownMenuContent, { size: "2", align: "end", children: items })] }), actions.has("edit-role") && (_jsx(EditUserRoleDialog, { user: user, open: openDialog === "edit-role", onOpenChange: (open) => !open && setOpenDialog(null) }, getDialogKey("edit-role"))), actions.has("revoke-membership") && (_jsx(DeleteUserDialog, { user: user, open: openDialog === "revoke-membership", onOpenChange: (open) => !open && setOpenDialog(null) }, getDialogKey("revoke-membership"))), actions.has("revoke-invite") && (_jsx(RevokeInviteDialog, { user: user, open: openDialog === "revoke-invite", onOpenChange: (open) => !open && setOpenDialog(null) }, getDialogKey("revoke-invite"))), actions.has("resend-invite") && (_jsx(ResendInviteDialog, { user: user, open: openDialog === "resend-invite", onOpenChange: (open) => !open && setOpenDialog(null) }, getDialogKey("resend-invite")))] }));
48
52
  };
49
53
  //# sourceMappingURL=user-actions-dropdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-actions-dropdown.js","sourceRoot":"","sources":["../../../src/lib/user-actions-dropdown.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-actions-dropdown.js","sourceRoot":"","sources":["../../../src/lib/user-actions-dropdown.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Me } from "@repo/api";
2
+ interface UserProfileProps {
3
+ userData: Me;
4
+ }
5
+ export declare const UserProfile: ({ userData: user }: UserProfileProps) => import("react/jsx-runtime").JSX.Element;
6
+ export declare function UserProfileLoading(): import("react/jsx-runtime").JSX.Element;
7
+ export declare function UserProfileError({ error }: {
8
+ error: unknown;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=user-profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-profile.d.ts","sourceRoot":"","sources":["../../../src/lib/user-profile.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAM/B,UAAU,gBAAgB;IACxB,QAAQ,EAAE,EAAE,CAAC;CACd;AAED,eAAO,MAAM,WAAW,uBAAwB,gBAAgB,4CAgG/D,CAAC;AAEF,wBAAgB,kBAAkB,4CA+DjC;AAED,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,2CAM7D"}
@@ -0,0 +1,27 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { Box, Card, DataList, Flex, Inset, Separator, Strong, Text, } from "@radix-ui/themes";
4
+ import clsx from "clsx";
5
+ import { Avatar, SecondaryButton, Skeleton } from "./elements";
6
+ import { EditUserProfileDialog } from "./edit-user-profile-dialog";
7
+ import { getBestName } from "./utils";
8
+ import { getOAuthIcon, getOAuthName } from "./oauth-icons";
9
+ import { GenericError } from "./generic-error";
10
+ export const UserProfile = ({ userData: user }) => {
11
+ const oauthAccounts = Object.entries(user.oauthProfiles || {});
12
+ return (_jsx(Card, { className: clsx("woswidgets-widget"), "data-woswidgets-widget-id": "user-profile", size: "2", children: _jsxs(DataList.Root, { children: [user.profilePictureUrl && (_jsxs(_Fragment, { children: [_jsxs(DataList.Item, { align: "center", children: [_jsx(DataList.Label, { minWidth: "220px", highContrast: true, children: _jsx(Strong, { children: "Profile picture" }) }), _jsx(DataList.Value, { children: _jsx(Avatar, { size: "2", fallback: _jsx(FallbackUserIcon, {}), src: user.profilePictureUrl }) })] }), _jsx(ListSeparator, {})] })), _jsxs(DataList.Item, { align: "center", children: [_jsx(DataList.Label, { highContrast: true, children: _jsx(Strong, { children: "Full name" }) }), _jsx(DataList.Value, { children: _jsxs(Flex, { align: "center", justify: "between", width: "100%", minHeight: "var(--space-6)", children: [_jsx(Text, { size: "2", children: getBestName(user) || (_jsx(Text, { color: "gray", style: { color: "var(--gray-10)", cursor: "default" }, children: "Not set" })) }), _jsx(EditUserProfileDialog, { user: user, children: _jsx(SecondaryButton, { children: "Edit" }) })] }) })] }), _jsx(ListSeparator, {}), _jsxs(DataList.Item, { align: "center", children: [_jsx(DataList.Label, { highContrast: true, children: _jsx(Strong, { children: "Email address" }) }), _jsx(DataList.Value, { children: _jsx(Flex, { align: "center", minHeight: "var(--space-6)", children: _jsx(Text, { size: "2", children: user.email }) }) })] }), oauthAccounts.length > 0 && (_jsxs(_Fragment, { children: [_jsx(ListSeparator, {}), _jsxs(DataList.Item, { children: [_jsx(DataList.Label, { highContrast: true, children: _jsx(Strong, { children: "Connected accounts" }) }), _jsx(DataList.Value, { children: _jsx(Flex, { direction: "column", gap: "2", children: oauthAccounts.map(([account, data]) => (_jsx(OAuthAccount, { account: account, email: data?.email }, account))) }) })] })] }))] }) }));
13
+ };
14
+ export function UserProfileLoading() {
15
+ return (_jsx(Card, { size: "2", children: _jsxs(DataList.Root, { children: [_jsxs(DataList.Item, { align: "center", children: [_jsx(DataList.Label, { minWidth: "220px", highContrast: true, children: _jsx(Strong, { children: "Profile picture" }) }), _jsx(DataList.Value, { children: _jsx(Skeleton, { children: _jsx(Avatar, { size: "2", fallback: _jsx(FallbackUserIcon, {}) }) }) })] }), _jsx(ListSeparator, {}), _jsxs(DataList.Item, { align: "center", children: [_jsx(DataList.Label, { highContrast: true, children: _jsx(Strong, { children: "Full name" }) }), _jsx(DataList.Value, { children: _jsx(Flex, { align: "center", justify: "between", width: "100%", minHeight: "var(--space-6)", children: _jsx(Text, { size: "2", children: _jsx(Skeleton, { children: "Full name" }) }) }) })] }), _jsx(ListSeparator, {}), _jsxs(DataList.Item, { align: "center", children: [_jsx(DataList.Label, { highContrast: true, children: _jsx(Strong, { children: "Email address" }) }), _jsx(DataList.Value, { children: _jsx(Flex, { align: "center", minHeight: "var(--space-6)", children: _jsx(Text, { size: "2", children: _jsx(Skeleton, { children: "Email address" }) }) }) })] }), _jsx(ListSeparator, {}), _jsxs(DataList.Item, { children: [_jsx(DataList.Label, { highContrast: true, children: _jsx(Strong, { children: "Connected accounts" }) }), _jsx(DataList.Value, { children: _jsx(Skeleton, { children: "Connected accounts" }) })] })] }) }));
16
+ }
17
+ export function UserProfileError({ error }) {
18
+ return (_jsx(Card, { size: "2", children: _jsx(GenericError, { error: error }) }));
19
+ }
20
+ const ListSeparator = () => (_jsx(Box, { asChild: true, gridColumn: "span 2", children: _jsx(Inset, { side: "x", children: _jsx(Separator, { size: "4" }) }) }));
21
+ const OAuthAccount = ({ account, email, }) => {
22
+ const Icon = getOAuthIcon(account);
23
+ const name = getOAuthName(account);
24
+ return (_jsxs(Flex, { align: "center", gap: "1", children: [_jsx(Icon, {}), _jsx(Text, { size: "2", ml: "1", children: name }), email && (_jsxs(Box, { display: { initial: "none", sm: "contents" }, children: [_jsx(Text, { size: "2", color: "gray", children: "\u2219" }), _jsx(Text, { size: "2", color: "gray", children: email })] }))] }));
25
+ };
26
+ const FallbackUserIcon = () => (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", fill: "currentColor", viewBox: "0 0 256 256", children: [_jsx("title", { children: "User icon" }), _jsx("path", { d: "M229.19,213c-15.81-27.32-40.63-46.49-69.47-54.62a70,70,0,1,0-63.44,0C67.44,166.5,42.62,185.67,26.81,213a6,6,0,1,0,10.38,6C56.4,185.81,90.34,166,128,166s71.6,19.81,90.81,53a6,6,0,1,0,10.38-6ZM70,96a58,58,0,1,1,58,58A58.07,58.07,0,0,1,70,96Z" })] }));
27
+ //# sourceMappingURL=user-profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-profile.js","sourceRoot":"","sources":["../../../src/lib/user-profile.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,SAAS,EACT,MAAM,EACN,IAAI,GACL,MAAM,kBAAkB,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAM/C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAoB,EAAE,EAAE;IAClE,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;IAE/D,OAAO,CACL,KAAC,IAAI,IACH,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,+BACV,cAAc,EACxC,IAAI,EAAC,GAAG,YAER,MAAC,QAAQ,CAAC,IAAI,eACX,IAAI,CAAC,iBAAiB,IAAI,CACzB,8BACE,MAAC,QAAQ,CAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,aAC3B,KAAC,QAAQ,CAAC,KAAK,IAAC,QAAQ,EAAC,OAAO,EAAC,YAAY,kBAC3C,KAAC,MAAM,kCAAyB,GACjB,EACjB,KAAC,QAAQ,CAAC,KAAK,cACb,KAAC,MAAM,IACL,IAAI,EAAC,GAAG,EACR,QAAQ,EAAE,KAAC,gBAAgB,KAAG,EAC9B,GAAG,EAAE,IAAI,CAAC,iBAAiB,GAC3B,GACa,IACH,EAEhB,KAAC,aAAa,KAAG,IAChB,CACJ,EAED,MAAC,QAAQ,CAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,aAC3B,KAAC,QAAQ,CAAC,KAAK,IAAC,YAAY,kBAC1B,KAAC,MAAM,4BAAmB,GACX,EACjB,KAAC,QAAQ,CAAC,KAAK,cACb,MAAC,IAAI,IACH,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,SAAS,EACjB,KAAK,EAAC,MAAM,EACZ,SAAS,EAAC,gBAAgB,aAE1B,KAAC,IAAI,IAAC,IAAI,EAAC,GAAG,YACX,WAAW,CAAC,IAAI,CAAC,IAAI,CACpB,KAAC,IAAI,IACH,KAAK,EAAC,MAAM,EACZ,KAAK,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,wBAGhD,CACR,GACI,EAEP,KAAC,qBAAqB,IAAC,IAAI,EAAE,IAAI,YAC/B,KAAC,eAAe,uBAAuB,GACjB,IACnB,GACQ,IACH,EAEhB,KAAC,aAAa,KAAG,EAEjB,MAAC,QAAQ,CAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,aAC3B,KAAC,QAAQ,CAAC,KAAK,IAAC,YAAY,kBAC1B,KAAC,MAAM,gCAAuB,GACf,EACjB,KAAC,QAAQ,CAAC,KAAK,cACb,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,SAAS,EAAC,gBAAgB,YAC7C,KAAC,IAAI,IAAC,IAAI,EAAC,GAAG,YAAE,IAAI,CAAC,KAAK,GAAQ,GAC7B,GACQ,IACH,EAEf,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAC3B,8BACE,KAAC,aAAa,KAAG,EAEjB,MAAC,QAAQ,CAAC,IAAI,eACZ,KAAC,QAAQ,CAAC,KAAK,IAAC,YAAY,kBAC1B,KAAC,MAAM,qCAA4B,GACpB,EACjB,KAAC,QAAQ,CAAC,KAAK,cACb,KAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAC,GAAG,YAC7B,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CACtC,KAAC,YAAY,IAEX,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,IAAI,EAAE,KAAK,IAFb,OAAO,CAGZ,CACH,CAAC,GACG,GACQ,IACH,IACf,CACJ,IACa,GACX,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,kBAAkB;IAChC,OAAO,CACL,KAAC,IAAI,IAAC,IAAI,EAAC,GAAG,YACZ,MAAC,QAAQ,CAAC,IAAI,eACZ,MAAC,QAAQ,CAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,aAC3B,KAAC,QAAQ,CAAC,KAAK,IAAC,QAAQ,EAAC,OAAO,EAAC,YAAY,kBAC3C,KAAC,MAAM,kCAAyB,GACjB,EACjB,KAAC,QAAQ,CAAC,KAAK,cACb,KAAC,QAAQ,cACP,KAAC,MAAM,IAAC,IAAI,EAAC,GAAG,EAAC,QAAQ,EAAE,KAAC,gBAAgB,KAAG,GAAI,GAC1C,GACI,IACH,EAEhB,KAAC,aAAa,KAAG,EAEjB,MAAC,QAAQ,CAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,aAC3B,KAAC,QAAQ,CAAC,KAAK,IAAC,YAAY,kBAC1B,KAAC,MAAM,4BAAmB,GACX,EACjB,KAAC,QAAQ,CAAC,KAAK,cACb,KAAC,IAAI,IACH,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,SAAS,EACjB,KAAK,EAAC,MAAM,EACZ,SAAS,EAAC,gBAAgB,YAE1B,KAAC,IAAI,IAAC,IAAI,EAAC,GAAG,YACZ,KAAC,QAAQ,4BAAqB,GACzB,GACF,GACQ,IACH,EAEhB,KAAC,aAAa,KAAG,EAEjB,MAAC,QAAQ,CAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,aAC3B,KAAC,QAAQ,CAAC,KAAK,IAAC,YAAY,kBAC1B,KAAC,MAAM,gCAAuB,GACf,EACjB,KAAC,QAAQ,CAAC,KAAK,cACb,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,SAAS,EAAC,gBAAgB,YAC7C,KAAC,IAAI,IAAC,IAAI,EAAC,GAAG,YACZ,KAAC,QAAQ,gCAAyB,GAC7B,GACF,GACQ,IACH,EAEhB,KAAC,aAAa,KAAG,EAEjB,MAAC,QAAQ,CAAC,IAAI,eACZ,KAAC,QAAQ,CAAC,KAAK,IAAC,YAAY,kBAC1B,KAAC,MAAM,qCAA4B,GACpB,EACjB,KAAC,QAAQ,CAAC,KAAK,cACb,KAAC,QAAQ,qCAA8B,GACxB,IACH,IACF,GACX,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAE,KAAK,EAAsB;IAC5D,OAAO,CACL,KAAC,IAAI,IAAC,IAAI,EAAC,GAAG,YACZ,KAAC,YAAY,IAAC,KAAK,EAAE,KAAK,GAAI,GACzB,CACR,CAAC;AACJ,CAAC;AAED,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,CAC1B,KAAC,GAAG,IAAC,OAAO,QAAC,UAAU,EAAC,QAAQ,YAC9B,KAAC,KAAK,IAAC,IAAI,EAAC,GAAG,YACb,KAAC,SAAS,IAAC,IAAI,EAAC,GAAG,GAAG,GAChB,GACJ,CACP,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,EACpB,OAAO,EACP,KAAK,GAIN,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAEnC,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAC,GAAG,aAC1B,KAAC,IAAI,KAAG,EAER,KAAC,IAAI,IAAC,IAAI,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,YAClB,IAAI,GACA,EAEN,KAAK,IAAI,CACR,MAAC,GAAG,IAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,aAC/C,KAAC,IAAI,IAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,uBAEpB,EACP,KAAC,IAAI,IAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,YACxB,KAAK,GACD,IACH,CACP,IACI,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,CAC7B,eACE,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,IAAI,EAAC,cAAc,EACnB,OAAO,EAAC,aAAa,aAErB,wCAAwB,EACxB,eAAM,CAAC,EAAC,iPAAiP,GAAG,IACxP,CACP,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { AuthenticationInformationResponseData as AuthenticationSettings } from "@repo/api";
2
+ interface UserSecurityProps {
3
+ settings: AuthenticationSettings;
4
+ }
5
+ export declare const UserSecurity: ({ settings }: UserSecurityProps) => import("react/jsx-runtime").JSX.Element;
6
+ export declare function UserSecurityError({ error }: {
7
+ error: unknown;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ export declare function UserSecurityLoading(): import("react/jsx-runtime").JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=user-security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-security.d.ts","sourceRoot":"","sources":["../../../src/lib/user-security.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,qCAAqC,IAAI,sBAAsB,EAGhE,MAAM,WAAW,CAAC;AAMnB,UAAU,iBAAiB;IACzB,QAAQ,EAAE,sBAAsB,CAAC;CAClC;AAED,eAAO,MAAM,YAAY,iBAAkB,iBAAiB,4CAyB3D,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,2CAM9D;AAED,wBAAgB,mBAAmB,4CAyBlC"}
@@ -0,0 +1,32 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { Card, Flex, Grid, Text } from "@radix-ui/themes";
4
+ import clsx from "clsx";
5
+ import { SecondaryButton, Skeleton } from "./elements";
6
+ import { IconPanel } from "./icon-panel";
7
+ import { ButtonIcon, LockClosedIcon } from "@radix-ui/react-icons";
8
+ import { SetPasswordDialog } from "./set-password-dialog";
9
+ import { ChangePasswordDialog } from "./change-password-dialog";
10
+ import { AddMfaDialog } from "./add-mfa-dialog";
11
+ import { ResetMfaDialog } from "./reset-mfa-dialog";
12
+ import * as CardList from "../card-list";
13
+ import { GenericError } from "./generic-error";
14
+ import { getComparativeReadableDate } from "./utils";
15
+ export const UserSecurity = ({ settings }) => {
16
+ const passwordSettings = settings.verificationMethods.Password;
17
+ const mfaSettings = settings.verificationMethods.Mfa;
18
+ return (_jsxs(CardList.Root, { className: clsx("woswidgets-widget"), "data-woswidgets-widget-id": "user-security", children: [passwordSettings && (_jsx(CardList.Item, { children: _jsx(PasswordSettings, { settings: passwordSettings }) })), mfaSettings && (_jsx(CardList.Item, { children: _jsx(MfaSettings, { settings: mfaSettings, isPasswordSet: !!passwordSettings?.isSetUp }) }))] }));
19
+ };
20
+ export function UserSecurityError({ error }) {
21
+ return (_jsx(Card, { size: "2", children: _jsx(GenericError, { error: error }) }));
22
+ }
23
+ export function UserSecurityLoading() {
24
+ return (_jsx(Card, { size: "2", children: _jsxs(Grid, { columns: "auto 1fr auto", align: "center", gap: "4", children: [_jsx(Skeleton, { children: _jsx(IconPanel, {}) }), _jsxs(Flex, { direction: "column", children: [_jsx(Text, { size: "2", highContrast: true, weight: "bold", as: "p", mb: "-2px", children: _jsx(Skeleton, { children: "Password" }) }), _jsx(Text, { as: "p", size: "2", color: "gray", children: _jsx(Skeleton, { children: "Set a password to access your account" }) })] }), _jsx(ChangePasswordDialog, { children: _jsx(Skeleton, { children: _jsx(SecondaryButton, { children: "Change" }) }) })] }) }));
25
+ }
26
+ function PasswordSettings({ settings, }) {
27
+ return (_jsxs(Grid, { columns: "auto 1fr auto", align: "center", gap: "4", children: [_jsx(IconPanel, { children: _jsx(LockClosedIcon, {}) }), _jsxs(Flex, { direction: "column", children: [_jsx(Text, { size: "2", highContrast: true, weight: "bold", as: "p", mb: "-2px", children: "Password" }), settings.isSetUp ? (settings.lastUsed && (_jsxs(Text, { size: "2", color: "gray", children: ["Last used", " ", getComparativeReadableDate(new Date(), new Date(settings.lastUsed))] }))) : (_jsx(Text, { as: "p", size: "2", color: "gray", children: "Set a password to access your account" }))] }), settings.isSetUp ? (_jsx(ChangePasswordDialog, { children: _jsx(SecondaryButton, { children: "Change" }) })) : (_jsx(SetPasswordDialog, { children: _jsx(SecondaryButton, { children: "Set a password" }) }))] }));
28
+ }
29
+ function MfaSettings({ settings, isPasswordSet, }) {
30
+ return (_jsxs(Grid, { columns: "auto 1fr auto", align: "center", gap: "4", children: [_jsx(IconPanel, { children: _jsx(ButtonIcon, {}) }), _jsxs(Flex, { direction: "column", children: [_jsx(Text, { size: "2", highContrast: true, weight: "bold", as: "p", mb: "-2px", children: "Multi-factor authentication" }), settings.isSetUp ? (_jsxs(Text, { size: "2", children: ["Authenticator app", settings.lastUsed && (_jsxs(_Fragment, { children: [_jsx(Text, { size: "2", color: "gray", mx: "1", children: "\u2219" }), _jsxs(Text, { size: "2", color: "gray", children: ["Last used", " ", getComparativeReadableDate(new Date(), new Date(settings.lastUsed))] })] }))] })) : (_jsx(Text, { as: "p", size: "2", color: "gray", children: "Secure your account with an extra verification step" }))] }), settings.isSetUp ? (_jsx(ResetMfaDialog, { isPasswordSet: isPasswordSet, children: _jsx(SecondaryButton, { children: "Disable" }) })) : (_jsx(AddMfaDialog, { children: _jsx(SecondaryButton, { children: "Set up authenticator app" }) }))] }));
31
+ }
32
+ //# sourceMappingURL=user-security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-security.js","sourceRoot":"","sources":["../../../src/lib/user-security.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAMhD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,QAAQ,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAMrD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,QAAQ,EAAqB,EAAE,EAAE;IAC9D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC;IAC/D,MAAM,WAAW,GAAG,QAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC;IAErD,OAAO,CACL,MAAC,QAAQ,CAAC,IAAI,IACZ,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,+BACV,eAAe,aAExC,gBAAgB,IAAI,CACnB,KAAC,QAAQ,CAAC,IAAI,cACZ,KAAC,gBAAgB,IAAC,QAAQ,EAAE,gBAAgB,GAAI,GAClC,CACjB,EAEA,WAAW,IAAI,CACd,KAAC,QAAQ,CAAC,IAAI,cACZ,KAAC,WAAW,IACV,QAAQ,EAAE,WAAW,EACrB,aAAa,EAAE,CAAC,CAAC,gBAAgB,EAAE,OAAO,GAC1C,GACY,CACjB,IACa,CACjB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,EAAE,KAAK,EAAsB;IAC7D,OAAO,CACL,KAAC,IAAI,IAAC,IAAI,EAAC,GAAG,YACZ,KAAC,YAAY,IAAC,KAAK,EAAE,KAAK,GAAI,GACzB,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,CACL,KAAC,IAAI,IAAC,IAAI,EAAC,GAAG,YACZ,MAAC,IAAI,IAAC,OAAO,EAAC,eAAe,EAAC,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAC,GAAG,aAClD,KAAC,QAAQ,cACP,KAAC,SAAS,KAAG,GACJ,EAEX,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,aACtB,KAAC,IAAI,IAAC,IAAI,EAAC,GAAG,EAAC,YAAY,QAAC,MAAM,EAAC,MAAM,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,MAAM,YACxD,KAAC,QAAQ,2BAAoB,GACxB,EACP,KAAC,IAAI,IAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,YAChC,KAAC,QAAQ,wDAAiD,GACrD,IACF,EAEP,KAAC,oBAAoB,cACnB,KAAC,QAAQ,cACP,KAAC,eAAe,yBAAyB,GAChC,GACU,IAClB,GACF,CACR,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,EACxB,QAAQ,GAGT;IACC,OAAO,CACL,MAAC,IAAI,IAAC,OAAO,EAAC,eAAe,EAAC,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAC,GAAG,aAClD,KAAC,SAAS,cACR,KAAC,cAAc,KAAG,GACR,EAEZ,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,aACtB,KAAC,IAAI,IAAC,IAAI,EAAC,GAAG,EAAC,YAAY,QAAC,MAAM,EAAC,MAAM,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,MAAM,yBAEnD,EAEN,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAClB,QAAQ,CAAC,QAAQ,IAAI,CACnB,MAAC,IAAI,IAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,0BACf,GAAG,EACZ,0BAA0B,CACzB,IAAI,IAAI,EAAE,EACV,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC5B,IACI,CACR,CACF,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,sDAE3B,CACR,IACI,EAEN,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAClB,KAAC,oBAAoB,cACnB,KAAC,eAAe,yBAAyB,GACpB,CACxB,CAAC,CAAC,CAAC,CACF,KAAC,iBAAiB,cAChB,KAAC,eAAe,iCAAiC,GAC/B,CACrB,IACI,CACR,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EACnB,QAAQ,EACR,aAAa,GAId;IACC,OAAO,CACL,MAAC,IAAI,IAAC,OAAO,EAAC,eAAe,EAAC,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAC,GAAG,aAClD,KAAC,SAAS,cACR,KAAC,UAAU,KAAG,GACJ,EAEZ,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,aACtB,KAAC,IAAI,IAAC,IAAI,EAAC,GAAG,EAAC,YAAY,QAAC,MAAM,EAAC,MAAM,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,MAAM,4CAEnD,EAEN,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAClB,MAAC,IAAI,IAAC,IAAI,EAAC,GAAG,kCAEX,QAAQ,CAAC,QAAQ,IAAI,CACpB,8BACE,KAAC,IAAI,IAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,EAAC,EAAE,EAAC,GAAG,uBAE3B,EACP,MAAC,IAAI,IAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,0BACf,GAAG,EACZ,0BAA0B,CACzB,IAAI,IAAI,EAAE,EACV,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC5B,IACI,IACN,CACJ,IACI,CACR,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,oEAE3B,CACR,IACI,EAEN,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAClB,KAAC,cAAc,IAAC,aAAa,EAAE,aAAa,YAC1C,KAAC,eAAe,0BAA0B,GAC3B,CAClB,CAAC,CAAC,CAAC,CACF,KAAC,YAAY,cACX,KAAC,eAAe,2CAA2C,GAC9C,CAChB,IACI,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { ActiveSession } from "@repo/api";
2
+ interface UserSessionsProps {
3
+ sessionsData: ActiveSession[];
4
+ currentSessionId: string;
5
+ }
6
+ export declare const UserSessions: ({ sessionsData: sessions, currentSessionId, }: UserSessionsProps) => import("react/jsx-runtime").JSX.Element;
7
+ export declare function UserSessionsLoading(): import("react/jsx-runtime").JSX.Element;
8
+ export declare function UserSessionsError({ error }: {
9
+ error: unknown;
10
+ }): import("react/jsx-runtime").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=user-sessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-sessions.d.ts","sourceRoot":"","sources":["../../../src/lib/user-sessions.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAO1C,UAAU,iBAAiB;IACzB,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,YAAY,kDAGtB,iBAAiB,4CA8EnB,CAAC;AAEF,wBAAgB,mBAAmB,4CAoBlC;AAED,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,2CAM9D"}
@@ -0,0 +1,40 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { Box, Button, Card, Flex, Text } from "@radix-ui/themes";
4
+ import clsx from "clsx";
5
+ import { Badge, SecondaryButton, Skeleton } from "./elements";
6
+ import { getComparativeReadableDate, getUserLocation, parseUserAgent, } from "./utils";
7
+ import { LogoutDialog } from "./logout-dialog";
8
+ import { LogoutAllSessionsDialog } from "./logout-all-sessions-dialog";
9
+ import * as CardList from "../card-list";
10
+ import { IconPanel } from "./icon-panel";
11
+ import { useState } from "react";
12
+ import { GenericError } from "./generic-error";
13
+ import { LaptopIcon, MobileIcon } from "@radix-ui/react-icons";
14
+ export const UserSessions = ({ sessionsData: sessions, currentSessionId, }) => {
15
+ const currentSession = sessions.find((session) => session.id === currentSessionId);
16
+ const otherSessions = sessions.filter((session) => session.id !== currentSessionId);
17
+ const [openLogoutDialog, setOpenLogoutDialog] = useState(false);
18
+ const [sessionToSignOut, setSessionToSignOut] = useState(null);
19
+ const [openLogoutAllSessionsDialog, setOpenLogoutAllSessionsDialog] = useState(false);
20
+ return (_jsxs(Flex, { direction: "column", gap: "4", className: clsx("woswidgets-widget"), "data-woswidgets-widget-id": "user-sessions", children: [_jsxs(CardList.Root, { children: [currentSession && (_jsx(CardList.Item, { children: _jsx(UserSession, { session: currentSession, isCurrentSession: true }) })), otherSessions.map((session) => (_jsx(CardList.Item, { children: _jsx(UserSession, { session: session, onSignOut: () => {
21
+ setSessionToSignOut(session);
22
+ setOpenLogoutDialog(true);
23
+ } }) }, session.id)))] }), sessions.length > 1 && (_jsx(Card, { size: "2", children: _jsxs(Flex, { gap: "2", justify: "between", align: "center", children: [_jsxs(Box, { children: [_jsx(Text, { size: "2", highContrast: true, weight: "bold", as: "p", children: "Sign out of all other devices" }), _jsx(Text, { size: "2", color: "gray", as: "p", children: "Remove access from all devices except this one" })] }), _jsx(SecondaryButton, { onClick: () => {
24
+ setOpenLogoutAllSessionsDialog(true);
25
+ }, children: "Sign out" })] }) })), sessionToSignOut && (_jsx(LogoutDialog, { session: sessionToSignOut, open: openLogoutDialog, onOpenChange: setOpenLogoutDialog })), _jsx(LogoutAllSessionsDialog, { currentSessionId: currentSessionId, open: openLogoutAllSessionsDialog, onOpenChange: setOpenLogoutAllSessionsDialog })] }));
26
+ };
27
+ export function UserSessionsLoading() {
28
+ return (_jsx(Card, { size: "2", children: _jsxs(Flex, { gap: "4", align: "center", children: [_jsx(Skeleton, { children: _jsx(IconPanel, {}) }), _jsxs(Flex, { direction: "column", children: [_jsx(Text, { size: "2", highContrast: true, weight: "bold", as: "p", mb: "-2px", children: _jsx(Skeleton, { children: "The location" }) }), _jsx(Text, { size: "2", color: "gray", as: "p", children: _jsx(Skeleton, { children: "The location" }) })] })] }) }));
29
+ }
30
+ export function UserSessionsError({ error }) {
31
+ return (_jsx(Card, { size: "2", children: _jsx(GenericError, { error: error }) }));
32
+ }
33
+ const UserSession = ({ session, isCurrentSession = false, onSignOut, }) => {
34
+ const userAgent = parseUserAgent(session.userAgent);
35
+ const userLocation = getUserLocation(session.currentLocation, session.ipAddress);
36
+ return (_jsxs(Flex, { gap: "4", align: "center", children: [_jsx(IconPanel, { children: userAgent.isMobile ? _jsx(MobileIcon, {}) : _jsx(LaptopIcon, {}) }), _jsxs(Flex, { direction: "column", children: [_jsx(Text, { size: "2", highContrast: true, weight: "bold", as: "p", mb: "-2px", children: userAgent.pretty }), _jsxs(Flex, { gap: "1", align: "center", children: [_jsx(Text, { size: "2", color: "gray", as: "p", children: userLocation }), isCurrentSession && _jsx(Badge, { ml: "2", children: "This device" }), !isCurrentSession && session.lastActivityAt && (_jsxs(_Fragment, { children: [_jsx(Text, { size: "2", color: "gray", children: "\u2219" }), _jsxs(Text, { size: "2", color: "gray", children: ["Last seen", " ", getComparativeReadableDate(new Date(), new Date(session.lastActivityAt))] })] }))] })] }), !isCurrentSession && (_jsx(Flex, { ml: "auto", mr: "2", children: _jsx(Button, { variant: "ghost", onClick: () => {
37
+ onSignOut?.(session);
38
+ }, children: "Sign out" }) }))] }));
39
+ };
40
+ //# sourceMappingURL=user-sessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-sessions.js","sourceRoot":"","sources":["../../../src/lib/user-sessions.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { Select } from "@radix-ui/themes";
2
2
  import * as React from "react";
3
- import type { Role } from "./api/role";
3
+ import { MemberRole } from "@repo/api";
4
4
  type UsersFilterProps = React.ComponentPropsWithoutRef<typeof Select.Root> & {
5
- roles: Role[] | undefined;
5
+ roles: MemberRole[] | undefined;
6
6
  disabled?: boolean;
7
7
  };
8
8
  export declare const UsersFilter: React.FC<UsersFilterProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"users-filter.d.ts","sourceRoot":"","sources":["../../../src/lib/users-filter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAOvC,KAAK,gBAAgB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG;IAC3E,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA6ClD,CAAC"}
1
+ {"version":3,"file":"users-filter.d.ts","sourceRoot":"","sources":["../../../src/lib/users-filter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAKvC,KAAK,gBAAgB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG;IAC3E,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA6ClD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"users-filter.js","sourceRoot":"","sources":["../../../src/lib/users-filter.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,MAAM,cAAc,GAAG,KAAK,CAAC;AAC7B,MAAM,eAAe,GAAG,MAAM,CAAC;AAO/B,MAAM,CAAC,MAAM,WAAW,GAA+B,CAAC,EACtD,KAAK,EACL,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,EACJ,QAAQ,EACR,KAAK,EAAE,EAAE,IAAI,EAAE,GAChB,GAAG,yBAAyB,EAAE,CAAC;IAEhC,MAAM,eAAe,GAAG,CAAC,KAAoB,EAAE,EAAE;QAC/C,QAAQ,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,KAAc,EAAmB,EAAE,CACtD,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACxE,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;IAChE,MAAM,QAAQ,GACZ,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,IAAI,IAAI,cAAc,CAAC;IAE5E,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,EAAE;QACtC,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;YAC9B,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,eAAe,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,MAAM,CAAC,IAAI,IACV,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,EACpC,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,aAElB,KAAC,aAAa,cAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,GAAiB,EAClE,MAAC,aAAa,eACZ,KAAC,UAAU,IAAC,KAAK,EAAE,eAAe,YAAG,cAAc,GAAc,EAChE,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACpB,KAAC,KAAK,CAAC,QAAQ,cACb,KAAC,UAAU,IAAC,KAAK,EAAE,IAAI,CAAC,IAAI,YAAG,IAAI,CAAC,IAAI,GAAc,IADnC,IAAI,CAAC,IAAI,CAEb,CAClB,CAAC,IACY,IACJ,CACf,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"users-filter.js","sourceRoot":"","sources":["../../../src/lib/users-filter.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAGvE,MAAM,cAAc,GAAG,KAAK,CAAC;AAC7B,MAAM,eAAe,GAAG,MAAM,CAAC;AAO/B,MAAM,CAAC,MAAM,WAAW,GAA+B,CAAC,EACtD,KAAK,EACL,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,EACJ,QAAQ,EACR,KAAK,EAAE,EAAE,IAAI,EAAE,GAChB,GAAG,yBAAyB,EAAE,CAAC;IAEhC,MAAM,eAAe,GAAG,CAAC,KAAoB,EAAE,EAAE;QAC/C,QAAQ,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,KAAc,EAAmB,EAAE,CACtD,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACxE,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;IAChE,MAAM,QAAQ,GACZ,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,IAAI,IAAI,cAAc,CAAC;IAE5E,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,EAAE;QACtC,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;YAC9B,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,eAAe,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,MAAM,CAAC,IAAI,IACV,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,EACpC,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,aAElB,KAAC,aAAa,cAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,GAAiB,EAClE,MAAC,aAAa,eACZ,KAAC,UAAU,IAAC,KAAK,EAAE,eAAe,YAAG,cAAc,GAAc,EAChE,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACpB,KAAC,KAAK,CAAC,QAAQ,cACb,KAAC,UAAU,IAAC,KAAK,EAAE,IAAI,CAAC,IAAI,YAAG,IAAI,CAAC,IAAI,GAAc,IADnC,IAAI,CAAC,IAAI,CAEb,CAClB,CAAC,IACY,IACJ,CACf,CAAC;AACJ,CAAC,CAAC"}
@@ -1,23 +1,14 @@
1
1
  import * as React from "react";
2
2
  import { UsersManagementAction, UsersManagementState } from "./users-management-state";
3
3
  export interface UsersManagementContextType {
4
- authToken: (() => Promise<string>) | null;
5
4
  state: UsersManagementState;
6
5
  dispatch: React.Dispatch<UsersManagementAction>;
7
6
  }
8
7
  export declare const UsersManagementContextProvider: React.FC<{
9
8
  children?: React.ReactNode;
10
- value: UsersManagementContextType;
11
9
  }>;
12
10
  /**
13
11
  * The context may be provided if it is instantiated in the tree above the user.
14
12
  */
15
13
  export declare function useUsersManagementContext(initialContext?: UsersManagementContextType | null): UsersManagementContextType;
16
- /**
17
- * The auth token may be provided if it is instantiated in the tree above the
18
- * user management context. Otherwise we'll use the context value if it exists.
19
- */
20
- export declare function useUsersManagementPagniatoin(args: {
21
- authToken?: string | null;
22
- } | undefined | null): string | (() => Promise<string>) | null;
23
14
  //# sourceMappingURL=users-management-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"users-management-context.d.ts","sourceRoot":"","sources":["../../../src/lib/users-management-context.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAC1C,KAAK,EAAE,oBAAoB,CAAC;IAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;CACjD;AAOD,eAAO,MAAM,8BAA8B,EAAE,KAAK,CAAC,EAAE,CAAC;IACpD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,EAAE,0BAA0B,CAAC;CACnC,CAMA,CAAC;AAKF;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,cAAc,CAAC,EAAE,0BAA0B,GAAG,IAAI,GACjD,0BAA0B,CA6B5B;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,SAAS,GAAG,IAAI,mBAjEpC,OAAO,CAAC,MAAM,CAAC,SA8ElC"}
1
+ {"version":3,"file":"users-management-context.d.ts","sourceRoot":"","sources":["../../../src/lib/users-management-context.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EAErB,MAAM,0BAA0B,CAAC;AAGlC,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;CACjD;AAaD,eAAO,MAAM,8BAA8B,EAAE,KAAK,CAAC,EAAE,CAAC;IACpD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAgBA,CAAC;AAKF;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,cAAc,CAAC,EAAE,0BAA0B,GAAG,IAAI,GACjD,0BAA0B,CAmB5B"}
@@ -1,10 +1,21 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
+ import { useUsersManagementState, } from "./users-management-state";
4
5
  const UsersManagementContext = React.createContext(undefined);
5
6
  UsersManagementContext.displayName = "UsersManagementContext";
6
- export const UsersManagementContextProvider = ({ children, value }) => {
7
- return (_jsx(UsersManagementContext.Provider, { value: value, children: children }));
7
+ const initialState = {
8
+ pagination: null,
9
+ role: null,
10
+ searchQuery: null,
11
+ };
12
+ export const UsersManagementContextProvider = ({ children }) => {
13
+ const [state, dispatch] = useUsersManagementState(initialState);
14
+ const context = React.useMemo(() => ({
15
+ state,
16
+ dispatch,
17
+ }), [state, dispatch]);
18
+ return (_jsx(UsersManagementContext.Provider, { value: context, children: children }));
8
19
  };
9
20
  const NOOP = () => void 0;
10
21
  const EMPTY_PAGINATION = {};
@@ -13,13 +24,6 @@ const EMPTY_PAGINATION = {};
13
24
  */
14
25
  export function useUsersManagementContext(initialContext) {
15
26
  const context = React.useContext(UsersManagementContext);
16
- const providedToken = initialContext?.authToken ?? null;
17
- const hasContext = !!context;
18
- React.useEffect(() => {
19
- if (!providedToken && !hasContext) {
20
- console.error("useUsersManagementContext was called from a component outside of the UsersManagementContext provider without providing an authToken directly. Resulting queries may not run as expected.");
21
- }
22
- }, [providedToken, hasContext]);
23
27
  if (context) {
24
28
  return context;
25
29
  }
@@ -27,7 +31,6 @@ export function useUsersManagementContext(initialContext) {
27
31
  return initialContext;
28
32
  }
29
33
  return {
30
- authToken: null,
31
34
  dispatch: NOOP,
32
35
  state: {
33
36
  pagination: EMPTY_PAGINATION,
@@ -36,19 +39,4 @@ export function useUsersManagementContext(initialContext) {
36
39
  },
37
40
  };
38
41
  }
39
- /**
40
- * The auth token may be provided if it is instantiated in the tree above the
41
- * user management context. Otherwise we'll use the context value if it exists.
42
- */
43
- export function useUsersManagementPagniatoin(args) {
44
- const context = React.useContext(UsersManagementContext);
45
- const providedToken = args?.authToken;
46
- const hasContext = !!context;
47
- React.useEffect(() => {
48
- if (!providedToken && !hasContext) {
49
- console.error("useUsersManagementAuthToken was called from a component outside of the UsersManagementContext provider without providing an authToken directly. Resulting queries may not run as expected.");
50
- }
51
- }, [providedToken, hasContext]);
52
- return providedToken || context?.authToken || null;
53
- }
54
42
  //# sourceMappingURL=users-management-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"users-management-context.js","sourceRoot":"","sources":["../../../src/lib/users-management-context.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,MAAM,sBAAsB,GAAG,KAAK,CAAC,aAAa,CAEhD,SAAS,CAAC,CAAC;AACb,sBAAsB,CAAC,WAAW,GAAG,wBAAwB,CAAC;AAE9D,MAAM,CAAC,MAAM,8BAA8B,GAGtC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;IAC3B,OAAO,CACL,KAAC,sBAAsB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAC1C,QAAQ,GACuB,CACnC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAC1B,MAAM,gBAAgB,GAAmB,EAAE,CAAC;AAE5C;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,cAAkD;IAElD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;IACzD,MAAM,aAAa,GAAG,cAAc,EAAE,SAAS,IAAI,IAAI,CAAC;IACxD,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC;IAC7B,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,aAAa,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CACX,0LAA0L,CAC3L,CAAC;QACJ,CAAC;IACH,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;IAEhC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,OAAO;QACL,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE;YACL,UAAU,EAAE,gBAAgB;YAC5B,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,IAAI;SAClB;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAC1C,IAAsD;IAEtD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;IACzD,MAAM,aAAa,GAAG,IAAI,EAAE,SAAS,CAAC;IACtC,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC;IAC7B,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,aAAa,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CACX,4LAA4L,CAC7L,CAAC;QACJ,CAAC;IACH,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;IAChC,OAAO,aAAa,IAAI,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"users-management-context.js","sourceRoot":"","sources":["../../../src/lib/users-management-context.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAGL,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAQlC,MAAM,sBAAsB,GAAG,KAAK,CAAC,aAAa,CAEhD,SAAS,CAAC,CAAC;AACb,sBAAsB,CAAC,WAAW,GAAG,wBAAwB,CAAC;AAE9D,MAAM,YAAY,GAAyB;IACzC,UAAU,EAAE,IAAI;IAChB,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAEtC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IACpB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAEhE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAC3B,GAAG,EAAE,CAAC,CAAC;QACL,KAAK;QACL,QAAQ;KACT,CAAC,EACF,CAAC,KAAK,EAAE,QAAQ,CAAC,CAClB,CAAC;IAEF,OAAO,CACL,KAAC,sBAAsB,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,YAC5C,QAAQ,GACuB,CACnC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAC1B,MAAM,gBAAgB,GAAiB,EAAE,CAAC;AAE1C;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,cAAkD;IAElD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;IAEzD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE;YACL,UAAU,EAAE,gBAAgB;YAC5B,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,IAAI;SAClB;KACF,CAAC;AACJ,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import * as React from "react";
2
- import type { PaginationData } from "./api/user";
2
+ import { ListMetadata } from "@repo/api";
3
3
  export declare function useUsersManagementState(initialState: UsersManagementState): readonly [UsersManagementState, React.Dispatch<UsersManagementAction>];
4
4
  export interface UsersManagementState {
5
5
  searchQuery: string | null;
6
6
  role: string | null;
7
- pagination: PaginationData | null;
7
+ pagination: ListMetadata | null;
8
8
  }
9
9
  export type UsersManagementAction = {
10
10
  type: "INIT";
@@ -17,6 +17,6 @@ export type UsersManagementAction = {
17
17
  role: string | null;
18
18
  } | {
19
19
  type: "SET_PAGINATION";
20
- pagination: PaginationData;
20
+ pagination: ListMetadata;
21
21
  };
22
22
  //# sourceMappingURL=users-management-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"users-management-state.d.ts","sourceRoot":"","sources":["../../../src/lib/users-management-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,oBAAoB,0EAsBzE;AAmFD,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,cAAc,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"users-management-state.d.ts","sourceRoot":"","sources":["../../../src/lib/users-management-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,oBAAoB,0EAsBzE;AAmFD,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,YAAY,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,YAAY,CAAA;CAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"users-management-state.js","sourceRoot":"","sources":["../../../src/lib/users-management-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"users-management-state.js","sourceRoot":"","sources":["../../../src/lib/users-management-state.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
- import type { Role } from "./api/role";
2
- import type { Paginated, User } from "./api/user";
1
+ import { MemberRole, MembersQueryResult } from "@repo/api";
3
2
  interface UsersManagementProps {
4
- rolesData: Role[];
5
- userData: Paginated<User[]>;
3
+ rolesData: MemberRole[];
4
+ userData: MembersQueryResult;
6
5
  disableRolesFilter?: boolean;
7
6
  isPending: boolean;
8
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"users-management.d.ts","sourceRoot":"","sources":["../../../src/lib/users-management.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAyBlD,UAAU,oBAAoB;IAC5B,SAAS,EAAE,IAAI,EAAE,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,eAAe,4DAKzB,oBAAoB,4CAsNtB,CAAC;AAEF,wBAAgB,sBAAsB,4CAsFrC;AAED,wBAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,2CAsDjE"}
1
+ {"version":3,"file":"users-management.d.ts","sourceRoot":"","sources":["../../../src/lib/users-management.tsx"],"names":[],"mappings":"AAoCA,OAAO,EAAU,UAAU,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGnE,UAAU,oBAAoB;IAC5B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,eAAe,4DAKzB,oBAAoB,4CAkNtB,CAAC;AAEF,wBAAgB,sBAAsB,4CAsFrC;AAED,wBAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,2CAWjE"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
- import { Box, Flex, Grid, Heading, Select, Table, Text, VisuallyHidden, } from "@radix-ui/themes";
4
+ import { Box, Flex, Grid, Select, Separator, Table, Text, VisuallyHidden, } from "@radix-ui/themes";
5
5
  import { Avatar, Badge, IconButton, PrimaryButton, SecondaryButton, SelectContent, SelectItem, SelectTrigger, Skeleton, TextField, } from "./elements";
6
6
  import { InviteUserDialog } from "./invite-user-dialog";
7
7
  import { SearchProvider, useSearchContext } from "./search-provider";
@@ -13,12 +13,12 @@ import { getBestName, getComparativeReadableDate } from "./utils";
13
13
  import { USER_ROW_LIMIT } from "./constants";
14
14
  import { useUsersManagementContext } from "./users-management-context";
15
15
  import clsx from "clsx";
16
- import { ApiError, FetchError, NoAuthTokenError } from "./errors";
16
+ import { GenericError } from "./generic-error";
17
17
  export const UsersManagement = ({ userData, rolesData, isPending, disableRolesFilter, }) => {
18
- const users = userData?.data;
18
+ const users = userData?.data ?? [];
19
19
  const usersCount = users?.length ?? 0;
20
20
  const isHydrated = useIsHydrated();
21
- const { pagination } = userData;
21
+ const { listMetadata: pagination = {} } = userData;
22
22
  const { dispatch } = useUsersManagementContext();
23
23
  // we only want to show the loading indicator for some buttons if the request
24
24
  // is still pending after 500ms. If the request is fast enough the indicator
@@ -43,11 +43,11 @@ export const UsersManagement = ({ userData, rolesData, isPending, disableRolesFi
43
43
  opacity: isPending && usersCount > 0 ? 0.5 : 1,
44
44
  }, children: users.length > 0 ? (users.map((user) => {
45
45
  // TODO only support one role for now
46
- const userRole = user.roles[0]?.name;
46
+ const userRole = user?.roles?.at(0)?.name;
47
47
  const userDisplayName = getBestName(user);
48
48
  const dimText = user.status === "InviteRevoked" ||
49
49
  user.status === "InviteExpired";
50
- return (_jsxs(Table.Row, { align: "center", children: [_jsx(Table.RowHeaderCell, { children: _jsxs(Flex, { align: "center", gap: "3", overflow: "hidden", height: "var(--space-7)", children: [_jsx(Avatar, { size: "2", fallback: _jsx(FallbackUserIcon, {}), src: user.profilePictureUrl ?? undefined, dim: dimText }), userDisplayName ? (_jsxs(Flex, { direction: "column", align: "start", height: "var(--space-7)", justify: "center", overflow: "hidden", children: [_jsxs(Flex, { gap: "2", align: "center", minWidth: "0", children: [_jsx(TableCellText, { dim: dimText, children: userDisplayName }), _jsx(UserBadge, { user: user })] }), _jsx(TableCellText, { level: "secondary", title: user.email, dim: dimText, children: user.email })] })) : (_jsxs(Flex, { gap: "2", align: "center", minWidth: "0", children: [_jsx(TableCellText, { dim: dimText, title: user.email, children: user.email }), _jsx(UserBadge, { user: user })] }))] }) }), _jsx(Table.Cell, { children: _jsx(TableCellText, { dim: dimText, children: userRole || (_jsxs(_Fragment, { children: [_jsx(VisuallyHidden, { children: "No roles assigned" }), _jsx("span", { "aria-hidden": true, style: { userSelect: "none" }, children: "\u2013" })] })) }) }), _jsx(Table.Cell, { children: _jsx(LastActive, { user: user, isHydrated: isHydrated, dim: dimText }) }), _jsx(Table.Cell, { justify: "end", children: _jsx(UserActionsDropdown, { user: user, children: _jsxs(IconButton, { title: "User actions", children: [_jsx(VisuallyHidden, { children: "User actions" }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", width: "16", height: "16", strokeWidth: 1.5, stroke: "currentColor", "aria-hidden": true, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M6.75 12a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM12.75 12a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM18.75 12a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0Z" }) })] }) }) })] }, user.id));
50
+ return (_jsxs(Table.Row, { align: "center", children: [_jsx(Table.RowHeaderCell, { children: _jsxs(Flex, { align: "center", gap: "3", overflow: "hidden", height: "var(--space-7)", children: [_jsx(Avatar, { size: "2", fallback: _jsx(FallbackUserIcon, {}), src: user.profilePictureUrl ?? undefined, dim: dimText }), userDisplayName ? (_jsxs(Flex, { direction: "column", align: "start", height: "var(--space-7)", justify: "center", overflow: "hidden", children: [_jsxs(Flex, { gap: "2", align: "center", minWidth: "0", children: [_jsx(TableCellText, { dim: dimText, children: userDisplayName }), _jsx(UserBadge, { user: user })] }), _jsx(TableCellText, { level: "secondary", title: user.email, dim: dimText, children: user.email })] })) : (_jsxs(Flex, { gap: "2", align: "center", minWidth: "0", children: [_jsx(TableCellText, { dim: dimText, title: user.email, children: user.email }), _jsx(UserBadge, { user: user })] }))] }) }), _jsx(Table.Cell, { children: _jsx(TableCellText, { dim: dimText, children: userRole || (_jsxs(_Fragment, { children: [_jsx(VisuallyHidden, { children: "No roles assigned" }), _jsx("span", { "aria-hidden": true, style: { userSelect: "none" }, children: "\u2013" })] })) }) }), _jsx(Table.Cell, { children: _jsx(LastActive, { user: user, isHydrated: isHydrated }) }), _jsx(Table.Cell, { justify: "end", children: _jsx(UserActionsDropdown, { user: user, children: _jsxs(IconButton, { title: "User actions", children: [_jsx(VisuallyHidden, { children: "User actions" }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", width: "16", height: "16", strokeWidth: 1.5, stroke: "currentColor", "aria-hidden": true, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M6.75 12a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM12.75 12a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM18.75 12a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0Z" }) })] }) }) })] }, user.id));
51
51
  })) : (_jsx(Table.Row, { align: "center", children: _jsx(Table.Cell, { colSpan: 4, children: _jsx(UsersManagementEmptyState, { isPending: isPending }) }) })) })] }), showPagination ? (_jsxs(Flex, { gap: "2", justify: "end", children: [_jsx(SecondaryButton, { size: "1", disabled: !pagination.after || isPending || undefined, loading: deferredLoading, onClick: () => {
52
52
  if (pagination.after) {
53
53
  dispatch({
@@ -68,25 +68,7 @@ export function UsersManagementLoading() {
68
68
  return (_jsxs(UsersManagementRoot, { children: [_jsxs(Grid, { columns: "1fr auto", gap: "2", children: [_jsxs(Flex, { gap: "2", align: "center", children: [_jsx(Skeleton, { loading: true, children: _jsx(Box, { flexBasis: "380px", flexGrow: "0", flexShrink: "1", children: _jsx(TextField, {}) }) }), _jsx(Skeleton, { loading: true, children: _jsx(Box, { flexGrow: "0", flexShrink: "0", children: _jsxs(Select.Root, { value: "all", onValueChange: () => void 0, children: [_jsx(SelectTrigger, { children: "All" }), _jsx(SelectContent, { children: _jsx(SelectItem, { value: "all", children: "All" }) })] }) }) })] }), _jsx(Skeleton, { loading: true, children: _jsx(Box, { flexGrow: "0", flexShrink: "0", style: { placeSelf: "flex-end" }, children: _jsx(PrimaryButton, { children: "Invite user" }) }) })] }), _jsxs(Table.Root, { variant: "ghost", size: "1", children: [_jsx(Table.Header, { children: _jsxs(Table.Row, { children: [_jsx(Table.ColumnHeaderCell, { width: "260px", children: _jsx(Skeleton, { loading: true, children: "User" }) }), _jsx(Table.ColumnHeaderCell, { width: "100px", children: _jsx(Skeleton, { children: "Role" }) }), _jsx(Table.ColumnHeaderCell, { width: "140px", children: _jsx(Skeleton, { children: "Last active" }) }), _jsx(Table.ColumnHeaderCell, { width: "28px" })] }) }), _jsx(Table.Body, { children: Array.from({ length: USER_ROW_LIMIT }, (_, index) => (_jsxs(Table.Row, { align: "center", children: [_jsx(Table.RowHeaderCell, { children: _jsxs(Flex, { align: "center", gap: "3", children: [_jsx(Skeleton, { children: _jsx(Avatar, { size: "2", fallback: "F" }) }), _jsxs(Flex, { direction: "column", height: "var(--space-7)", justify: "center", children: [_jsx(Skeleton, { width: "180px", height: "var(--space-4)" }), _jsx(Skeleton, { width: "90px", height: "var(--space-3)", mt: "1" })] })] }) }), _jsx(Table.Cell, { children: _jsx(Flex, { wrap: "wrap", gap: "1", children: _jsx(Skeleton, { width: "75px", height: "var(--space-4)" }) }) }), _jsx(Table.Cell, { children: _jsx(Skeleton, { width: "120px", height: "var(--space-4)" }) }), _jsx(Table.Cell, { justify: "end" })] }, index))) })] }), _jsxs(Flex, { gap: "2", justify: "end", children: [_jsx(Skeleton, { loading: true, children: _jsx(SecondaryButton, { size: "1", children: "Previous" }) }), _jsx(Skeleton, { loading: true, children: _jsx(SecondaryButton, { size: "1", children: "Next" }) })] })] }));
69
69
  }
70
70
  export function UsersManagementError({ error }) {
71
- React.useEffect(() => {
72
- console.error(error);
73
- }, [error]);
74
- const render = (heading, message) => (_jsx(UsersManagementRoot, { justify: "center", align: "center", minHeight: "676px", children: _jsxs(Flex, { p: "8", justify: "center", align: "center", direction: "column", maxWidth: "520px", children: [_jsx(Heading, { size: "5", align: "center", mb: "1", wrap: "balance", asChild: true, children: _jsx("h3", { children: heading }) }), _jsx(Text, { align: "center", wrap: "balance", children: message })] }) }));
75
- if (error instanceof FetchError) {
76
- return render("Error fetching data", "An error occurred. You may need to configure CORS in the WorkOS Dashboard. " +
77
- "Contact your organization admin for support.");
78
- }
79
- if (error instanceof NoAuthTokenError) {
80
- return render("Error fetching data", "Authorization error. You likely forgot to provide an authorization " +
81
- "token to the Users Management Widget.");
82
- }
83
- if (error instanceof ApiError && error.status === 404) {
84
- // The widgets API treats all authorization errors as 404s. If there is a
85
- // legitimate 404, it's a bug on our end but there's currently no way to
86
- // distinguish between the two.
87
- return render("Error fetching data", "Authorization error. Contact your organization admin for support.");
88
- }
89
- return render("Error fetching data", "Unknown error. Contact your organization admin for support.");
71
+ return (_jsx(UsersManagementRoot, { direction: "row", justify: "center", align: "center", minHeight: "676px", children: _jsx(GenericError, { error: error }) }));
90
72
  }
91
73
  function UsersManagementRoot({ className, children, ...props }) {
92
74
  return (_jsx(Flex, { className: clsx("woswidgets-widget", className), "data-woswidgets-widget-id": "users-management", direction: "column", gap: "3", ...props, children: children }));
@@ -109,7 +91,7 @@ function UserBadge({ user }) {
109
91
  }
110
92
  function LastActive(props) {
111
93
  if (!props.user.lastActivityAt) {
112
- return (_jsxs(_Fragment, { children: [_jsx(VisuallyHidden, { children: props.user.status === "Active" ? "Never" : "Not active" }), _jsx(TableCellText, { dim: props.dim, "aria-hidden": true, style: { userSelect: "none" }, children: "\u2013" })] }));
94
+ return (_jsxs(_Fragment, { children: [_jsx(VisuallyHidden, { children: props.user.status === "Active" ? "Never" : "Not active" }), _jsx(Separator, {})] }));
113
95
  }
114
96
  return _jsx(LastActiveImpl, { ...props, date: props.user.lastActivityAt });
115
97
  }
@@ -142,7 +124,7 @@ function LastActiveImpl({ date, isHydrated, dim, }) {
142
124
  }, [isHydrated, date]);
143
125
  // handle cases where the DB might return an invalid date string
144
126
  if (lastActiveDisplay === "Invalid Date") {
145
- return (_jsxs(_Fragment, { children: [_jsx(VisuallyHidden, { children: "Unknown" }), _jsx(TableCellText, { dim: dim, "aria-hidden": true, style: { userSelect: "none" }, children: "\u2013" })] }));
127
+ return (_jsxs(_Fragment, { children: [_jsx(VisuallyHidden, { children: "Unknown" }), _jsx(Separator, {})] }));
146
128
  }
147
129
  return (_jsx(TableCellText, { asChild: true, dim: dim, children: _jsx("time", { dateTime: date, title: lastActiveDateTime, children: lastActiveDisplay }) }));
148
130
  }