@workos-inc/widgets 1.5.0 → 1.6.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 (224) hide show
  1. package/CHANGELOG.md +30 -8
  2. package/dist/cjs/admin-portal-domain-verification.client.cjs +34 -20
  3. package/dist/cjs/admin-portal-domain-verification.client.cjs.map +1 -1
  4. package/dist/cjs/admin-portal-domain-verification.client.d.cts +3 -2
  5. package/dist/cjs/{admin-portal-sso-connection-client.cjs → admin-portal-sso-connection.client.cjs} +61 -35
  6. package/dist/cjs/admin-portal-sso-connection.client.cjs.map +1 -0
  7. package/dist/cjs/admin-portal-sso-connection.client.d.cts +16 -0
  8. package/dist/cjs/api/api-provider.cjs +27 -19
  9. package/dist/cjs/api/api-provider.cjs.map +1 -1
  10. package/dist/cjs/api/api-provider.d.cts +5 -4
  11. package/dist/cjs/api/endpoint.cjs +62 -2
  12. package/dist/cjs/api/endpoint.cjs.map +1 -1
  13. package/dist/cjs/api/endpoint.d.cts +62 -1
  14. package/dist/cjs/api/utils.cjs +10 -0
  15. package/dist/cjs/api/utils.cjs.map +1 -1
  16. package/dist/cjs/api/utils.d.cts +7 -2
  17. package/dist/cjs/api/widgets-api-client.cjs +11 -5
  18. package/dist/cjs/api/widgets-api-client.cjs.map +1 -1
  19. package/dist/cjs/{api-keys-client.cjs → api-keys.client.cjs} +45 -33
  20. package/dist/cjs/api-keys.client.cjs.map +1 -0
  21. package/dist/cjs/api-keys.client.d.cts +15 -0
  22. package/dist/cjs/index.cjs +9 -2
  23. package/dist/cjs/index.cjs.map +1 -1
  24. package/dist/cjs/index.d.cts +6 -2
  25. package/dist/cjs/lib/add-mfa-dialog.cjs +1 -1
  26. package/dist/cjs/lib/add-mfa-dialog.cjs.map +1 -1
  27. package/dist/cjs/lib/admin-portal-domain-verification.cjs +18 -12
  28. package/dist/cjs/lib/admin-portal-domain-verification.cjs.map +1 -1
  29. package/dist/cjs/lib/admin-portal-domain-verification.d.cts +10 -6
  30. package/dist/cjs/lib/admin-portal-sso-connection.cjs +84 -106
  31. package/dist/cjs/lib/admin-portal-sso-connection.cjs.map +1 -1
  32. package/dist/cjs/lib/admin-portal-sso-connection.d.cts +13 -6
  33. package/dist/cjs/lib/api-keys/api-keys.cjs +70 -66
  34. package/dist/cjs/lib/api-keys/api-keys.cjs.map +1 -1
  35. package/dist/cjs/lib/api-keys/api-keys.d.cts +16 -8
  36. package/dist/cjs/lib/card-list.cjs.map +1 -0
  37. package/dist/cjs/lib/constants.cjs +5 -2
  38. package/dist/cjs/lib/constants.cjs.map +1 -1
  39. package/dist/cjs/lib/constants.d.cts +2 -1
  40. package/dist/cjs/lib/elevated-access.cjs.map +1 -1
  41. package/dist/cjs/lib/empty-state.cjs +24 -8
  42. package/dist/cjs/lib/empty-state.cjs.map +1 -1
  43. package/dist/cjs/lib/empty-state.d.cts +6 -2
  44. package/dist/cjs/lib/errors.cjs +1 -1
  45. package/dist/cjs/lib/errors.cjs.map +1 -1
  46. package/dist/cjs/lib/generic-error.cjs +56 -58
  47. package/dist/cjs/lib/generic-error.cjs.map +1 -1
  48. package/dist/cjs/lib/generic-error.d.cts +10 -3
  49. package/dist/cjs/lib/identity-providers.cjs +2 -1
  50. package/dist/cjs/lib/identity-providers.cjs.map +1 -1
  51. package/dist/cjs/lib/identity-providers.d.cts +2 -2
  52. package/dist/cjs/lib/oauth-icons.cjs +12 -7
  53. package/dist/cjs/lib/oauth-icons.cjs.map +1 -1
  54. package/dist/cjs/lib/oauth-icons.d.cts +7 -3
  55. package/dist/cjs/lib/organization-switcher.cjs +62 -9
  56. package/dist/cjs/lib/organization-switcher.cjs.map +1 -1
  57. package/dist/cjs/lib/organization-switcher.d.cts +12 -9
  58. package/dist/cjs/lib/otp-input.cjs +1 -1
  59. package/dist/cjs/lib/otp-input.cjs.map +1 -1
  60. package/dist/cjs/lib/pipes.cjs +343 -0
  61. package/dist/cjs/lib/pipes.cjs.map +1 -0
  62. package/dist/cjs/lib/pipes.d.cts +19 -0
  63. package/dist/cjs/lib/provider-icon.cjs +0 -6
  64. package/dist/cjs/lib/provider-icon.cjs.map +1 -1
  65. package/dist/cjs/lib/provider-icon.d.cts +4 -1
  66. package/dist/cjs/lib/save-button.cjs.map +1 -1
  67. package/dist/cjs/lib/use-permissions.cjs +7 -14
  68. package/dist/cjs/lib/use-permissions.cjs.map +1 -1
  69. package/dist/cjs/lib/use-permissions.d.cts +1 -1
  70. package/dist/cjs/lib/user-profile.cjs +77 -83
  71. package/dist/cjs/lib/user-profile.cjs.map +1 -1
  72. package/dist/cjs/lib/user-profile.d.cts +11 -7
  73. package/dist/cjs/lib/user-security.cjs +31 -25
  74. package/dist/cjs/lib/user-security.cjs.map +1 -1
  75. package/dist/cjs/lib/user-security.d.cts +10 -7
  76. package/dist/cjs/lib/user-sessions.cjs +20 -10
  77. package/dist/cjs/lib/user-sessions.cjs.map +1 -1
  78. package/dist/cjs/lib/user-sessions.d.cts +10 -6
  79. package/dist/cjs/lib/users-management.cjs +224 -216
  80. package/dist/cjs/lib/users-management.cjs.map +1 -1
  81. package/dist/cjs/lib/users-management.d.cts +10 -7
  82. package/dist/cjs/lib/utils.cjs +43 -0
  83. package/dist/cjs/lib/utils.cjs.map +1 -1
  84. package/dist/cjs/lib/utils.d.cts +29 -2
  85. package/dist/cjs/organization-switcher.client.cjs +47 -20
  86. package/dist/cjs/organization-switcher.client.cjs.map +1 -1
  87. package/dist/cjs/organization-switcher.client.d.cts +2 -1
  88. package/dist/cjs/pipes.client.cjs +64 -0
  89. package/dist/cjs/pipes.client.cjs.map +1 -0
  90. package/dist/cjs/pipes.client.d.cts +15 -0
  91. package/dist/cjs/user-profile.client.cjs +29 -16
  92. package/dist/cjs/user-profile.client.cjs.map +1 -1
  93. package/dist/cjs/user-profile.client.d.cts +4 -3
  94. package/dist/cjs/user-security.client.cjs +32 -14
  95. package/dist/cjs/user-security.client.cjs.map +1 -1
  96. package/dist/cjs/user-security.client.d.cts +3 -2
  97. package/dist/cjs/user-sessions.client.cjs +42 -28
  98. package/dist/cjs/user-sessions.client.cjs.map +1 -1
  99. package/dist/cjs/user-sessions.client.d.cts +4 -2
  100. package/dist/cjs/users-management.client.cjs +38 -27
  101. package/dist/cjs/users-management.client.cjs.map +1 -1
  102. package/dist/cjs/users-management.client.d.cts +3 -2
  103. package/dist/cjs/workos-widgets.client.cjs +7 -12
  104. package/dist/cjs/workos-widgets.client.cjs.map +1 -1
  105. package/dist/css/lib/provider-icon.css +16 -11
  106. package/dist/esm/admin-portal-domain-verification.client.d.ts +3 -2
  107. package/dist/esm/admin-portal-domain-verification.client.js +34 -21
  108. package/dist/esm/admin-portal-domain-verification.client.js.map +1 -1
  109. package/dist/esm/admin-portal-sso-connection.client.d.ts +16 -0
  110. package/dist/esm/{admin-portal-sso-connection-client.js → admin-portal-sso-connection.client.js} +61 -36
  111. package/dist/esm/admin-portal-sso-connection.client.js.map +1 -0
  112. package/dist/esm/api/api-provider.d.ts +5 -4
  113. package/dist/esm/api/api-provider.js +26 -19
  114. package/dist/esm/api/api-provider.js.map +1 -1
  115. package/dist/esm/api/endpoint.d.ts +62 -1
  116. package/dist/esm/api/endpoint.js +56 -2
  117. package/dist/esm/api/endpoint.js.map +1 -1
  118. package/dist/esm/api/utils.d.ts +7 -2
  119. package/dist/esm/api/utils.js +9 -0
  120. package/dist/esm/api/utils.js.map +1 -1
  121. package/dist/esm/api/widgets-api-client.js +11 -5
  122. package/dist/esm/api/widgets-api-client.js.map +1 -1
  123. package/dist/esm/api-keys.client.d.ts +15 -0
  124. package/dist/esm/api-keys.client.js +75 -0
  125. package/dist/esm/api-keys.client.js.map +1 -0
  126. package/dist/esm/index.d.ts +6 -2
  127. package/dist/esm/index.js +9 -2
  128. package/dist/esm/index.js.map +1 -1
  129. package/dist/esm/lib/add-mfa-dialog.js +1 -1
  130. package/dist/esm/lib/add-mfa-dialog.js.map +1 -1
  131. package/dist/esm/lib/admin-portal-domain-verification.d.ts +10 -6
  132. package/dist/esm/lib/admin-portal-domain-verification.js +18 -12
  133. package/dist/esm/lib/admin-portal-domain-verification.js.map +1 -1
  134. package/dist/esm/lib/admin-portal-sso-connection.d.ts +13 -6
  135. package/dist/esm/lib/admin-portal-sso-connection.js +88 -107
  136. package/dist/esm/lib/admin-portal-sso-connection.js.map +1 -1
  137. package/dist/esm/lib/api-keys/api-keys.d.ts +16 -8
  138. package/dist/esm/lib/api-keys/api-keys.js +69 -54
  139. package/dist/esm/lib/api-keys/api-keys.js.map +1 -1
  140. package/dist/esm/lib/card-list.js.map +1 -0
  141. package/dist/esm/lib/constants.d.ts +2 -1
  142. package/dist/esm/lib/constants.js +3 -1
  143. package/dist/esm/lib/constants.js.map +1 -1
  144. package/dist/esm/lib/elevated-access.js.map +1 -1
  145. package/dist/esm/lib/empty-state.d.ts +6 -2
  146. package/dist/esm/lib/empty-state.js +24 -8
  147. package/dist/esm/lib/empty-state.js.map +1 -1
  148. package/dist/esm/lib/errors.js +1 -1
  149. package/dist/esm/lib/errors.js.map +1 -1
  150. package/dist/esm/lib/generic-error.d.ts +10 -3
  151. package/dist/esm/lib/generic-error.js +56 -60
  152. package/dist/esm/lib/generic-error.js.map +1 -1
  153. package/dist/esm/lib/identity-providers.d.ts +2 -2
  154. package/dist/esm/lib/identity-providers.js +2 -1
  155. package/dist/esm/lib/identity-providers.js.map +1 -1
  156. package/dist/esm/lib/oauth-icons.d.ts +7 -3
  157. package/dist/esm/lib/oauth-icons.js +11 -6
  158. package/dist/esm/lib/oauth-icons.js.map +1 -1
  159. package/dist/esm/lib/organization-switcher.d.ts +12 -9
  160. package/dist/esm/lib/organization-switcher.js +54 -9
  161. package/dist/esm/lib/organization-switcher.js.map +1 -1
  162. package/dist/esm/lib/otp-input.js +1 -1
  163. package/dist/esm/lib/otp-input.js.map +1 -1
  164. package/dist/esm/lib/pipes.d.ts +19 -0
  165. package/dist/esm/lib/pipes.js +334 -0
  166. package/dist/esm/lib/pipes.js.map +1 -0
  167. package/dist/esm/lib/provider-icon.d.ts +4 -1
  168. package/dist/esm/lib/provider-icon.js +0 -8
  169. package/dist/esm/lib/provider-icon.js.map +1 -1
  170. package/dist/esm/lib/save-button.js.map +1 -1
  171. package/dist/esm/lib/use-permissions.d.ts +1 -1
  172. package/dist/esm/lib/use-permissions.js +8 -15
  173. package/dist/esm/lib/use-permissions.js.map +1 -1
  174. package/dist/esm/lib/user-profile.d.ts +11 -7
  175. package/dist/esm/lib/user-profile.js +82 -75
  176. package/dist/esm/lib/user-profile.js.map +1 -1
  177. package/dist/esm/lib/user-security.d.ts +10 -7
  178. package/dist/esm/lib/user-security.js +35 -26
  179. package/dist/esm/lib/user-security.js.map +1 -1
  180. package/dist/esm/lib/user-sessions.d.ts +10 -6
  181. package/dist/esm/lib/user-sessions.js +21 -10
  182. package/dist/esm/lib/user-sessions.js.map +1 -1
  183. package/dist/esm/lib/users-management.d.ts +10 -7
  184. package/dist/esm/lib/users-management.js +230 -217
  185. package/dist/esm/lib/users-management.js.map +1 -1
  186. package/dist/esm/lib/utils.d.ts +29 -2
  187. package/dist/esm/lib/utils.js +46 -1
  188. package/dist/esm/lib/utils.js.map +1 -1
  189. package/dist/esm/organization-switcher.client.d.ts +2 -1
  190. package/dist/esm/organization-switcher.client.js +47 -21
  191. package/dist/esm/organization-switcher.client.js.map +1 -1
  192. package/dist/esm/pipes.client.d.ts +15 -0
  193. package/dist/esm/pipes.client.js +42 -0
  194. package/dist/esm/pipes.client.js.map +1 -0
  195. package/dist/esm/user-profile.client.d.ts +4 -3
  196. package/dist/esm/user-profile.client.js +29 -17
  197. package/dist/esm/user-profile.client.js.map +1 -1
  198. package/dist/esm/user-security.client.d.ts +3 -2
  199. package/dist/esm/user-security.client.js +32 -15
  200. package/dist/esm/user-security.client.js.map +1 -1
  201. package/dist/esm/user-sessions.client.d.ts +4 -2
  202. package/dist/esm/user-sessions.client.js +43 -30
  203. package/dist/esm/user-sessions.client.js.map +1 -1
  204. package/dist/esm/users-management.client.d.ts +3 -2
  205. package/dist/esm/users-management.client.js +38 -28
  206. package/dist/esm/users-management.client.js.map +1 -1
  207. package/dist/esm/workos-widgets.client.js +7 -12
  208. package/dist/esm/workos-widgets.client.js.map +1 -1
  209. package/package.json +20 -10
  210. package/dist/cjs/admin-portal-sso-connection-client.cjs.map +0 -1
  211. package/dist/cjs/admin-portal-sso-connection-client.d.cts +0 -12
  212. package/dist/cjs/api-keys-client.cjs.map +0 -1
  213. package/dist/cjs/api-keys-client.d.cts +0 -10
  214. package/dist/cjs/card-list.cjs.map +0 -1
  215. package/dist/esm/admin-portal-sso-connection-client.d.ts +0 -12
  216. package/dist/esm/admin-portal-sso-connection-client.js.map +0 -1
  217. package/dist/esm/api-keys-client.d.ts +0 -10
  218. package/dist/esm/api-keys-client.js +0 -65
  219. package/dist/esm/api-keys-client.js.map +0 -1
  220. package/dist/esm/card-list.js.map +0 -1
  221. /package/dist/cjs/{card-list.cjs → lib/card-list.cjs} +0 -0
  222. /package/dist/cjs/{card-list.d.cts → lib/card-list.d.cts} +0 -0
  223. /package/dist/esm/{card-list.d.ts → lib/card-list.d.ts} +0 -0
  224. /package/dist/esm/{card-list.js → lib/card-list.js} +0 -0
@@ -20,46 +20,59 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  var user_profile_client_exports = {};
21
21
  __export(user_profile_client_exports, {
22
22
  UserProfile: () => UserProfile,
23
+ UserProfileError: () => import_user_profile.UserProfileError,
23
24
  UserProfileLoading: () => import_user_profile.UserProfileLoading
24
25
  });
25
26
  module.exports = __toCommonJS(user_profile_client_exports);
26
27
  var import_jsx_runtime = require("react/jsx-runtime");
27
28
  var import_user_profile = require("./lib/user-profile.js");
28
- var import_use_is_hydrated = require("./lib/use-is-hydrated.js");
29
29
  var import_endpoint = require("./api/endpoint.js");
30
30
  var import_api_provider = require("./api/api-provider.js");
31
31
  var import_widgets_context = require("./lib/widgets-context.js");
32
32
  var import_error_boundary = require("./lib/error-boundary.js");
33
- const UserProfile = ({ authToken }) => {
33
+ const UserProfile = ({
34
+ authToken,
35
+ ...domProps
36
+ }) => {
34
37
  const baseUrl = (0, import_widgets_context.useWorkOsApiUrl)();
35
38
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
36
- import_api_provider.ApiProvider,
39
+ import_error_boundary.ErrorBoundary,
37
40
  {
38
- widgetType: "user-profile",
39
- authToken,
40
- baseUrl,
41
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UserProfileContent, {})
41
+ fallbackRender: ({ error }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_profile.UserProfileError, { ...domProps, error }),
42
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
43
+ import_api_provider.ApiProvider,
44
+ {
45
+ widgetType: "user-profile",
46
+ authToken,
47
+ baseUrl,
48
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UserProfileImpl, { ...domProps })
49
+ }
50
+ )
42
51
  }
43
52
  );
44
53
  };
45
- const UserProfileContent = () => {
46
- const isHydrated = (0, import_use_is_hydrated.useIsHydrated)();
54
+ const UserProfileImpl = (props) => {
55
+ const isApiReady = (0, import_api_provider.useApiReady)();
47
56
  const meQuery = (0, import_endpoint.useMe)();
48
- if (
49
- // render loading state on the server to prevent FOUC or hydration mismatch
50
- !isHydrated || meQuery.isLoading
51
- ) {
52
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_profile.UserProfileLoading, {});
57
+ if (!isApiReady || meQuery.isLoading) {
58
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_profile.UserProfileLoading, { ...props });
53
59
  }
54
60
  if (meQuery.isError) {
55
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_profile.UserProfileError, { error: meQuery.error });
61
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_profile.UserProfileError, { error: meQuery.error, ...props });
56
62
  }
57
63
  const user = meQuery.data;
58
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_error_boundary.ErrorBoundary, { FallbackComponent: import_user_profile.UserProfileError, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_profile.UserProfile, { userData: user }) });
64
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
65
+ import_error_boundary.ErrorBoundary,
66
+ {
67
+ fallbackRender: ({ error }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_profile.UserProfileError, { error, ...props }),
68
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_profile.UserProfile, { userData: user, ...props })
69
+ }
70
+ );
59
71
  };
60
72
  // Annotate the CommonJS export names for ESM import in node:
61
73
  0 && (module.exports = {
62
74
  UserProfile,
75
+ UserProfileError,
63
76
  UserProfileLoading
64
77
  });
65
78
  //# sourceMappingURL=user-profile.client.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/user-profile.client.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n UserProfileError,\n UserProfileLoading,\n UserProfile as UserProfilePresentational,\n} from \"./lib/user-profile.js\";\nimport { useIsHydrated } from \"./lib/use-is-hydrated.js\";\nimport { useMe } from \"./api/endpoint.js\";\nimport { ApiProvider, AuthToken } from \"./api/api-provider.js\";\nimport { useWorkOsApiUrl } from \"./lib/widgets-context.js\";\nimport { ErrorBoundary } from \"./lib/error-boundary.js\";\n\nexport interface UserProfileProps {\n authToken: AuthToken;\n}\n\nexport const UserProfile: React.FC<UserProfileProps> = ({ authToken }) => {\n const baseUrl = useWorkOsApiUrl();\n\n return (\n <ApiProvider\n widgetType=\"user-profile\"\n authToken={authToken}\n baseUrl={baseUrl}\n >\n <UserProfileContent />\n </ApiProvider>\n );\n};\n\nexport { UserProfileLoading };\n\nconst UserProfileContent = () => {\n const isHydrated = useIsHydrated();\n const meQuery = useMe();\n\n if (\n // render loading state on the server to prevent FOUC or hydration mismatch\n !isHydrated ||\n meQuery.isLoading\n ) {\n return <UserProfileLoading />;\n }\n\n if (meQuery.isError) {\n return <UserProfileError error={meQuery.error} />;\n }\n\n const user = meQuery.data!;\n\n return (\n <ErrorBoundary FallbackComponent={UserProfileError}>\n <UserProfilePresentational userData={user} />\n </ErrorBoundary>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BM;AAxBN,0BAIO;AACP,6BAA8B;AAC9B,sBAAsB;AACtB,0BAAuC;AACvC,6BAAgC;AAChC,4BAA8B;AAMvB,MAAM,cAA0C,CAAC,EAAE,UAAU,MAAM;AACxE,QAAM,cAAU,wCAAgB;AAEhC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,YAAW;AAAA,MACX;AAAA,MACA;AAAA,MAEA,sDAAC,sBAAmB;AAAA;AAAA,EACtB;AAEJ;AAIA,MAAM,qBAAqB,MAAM;AAC/B,QAAM,iBAAa,sCAAc;AACjC,QAAM,cAAU,uBAAM;AAEtB;AAAA;AAAA,IAEE,CAAC,cACD,QAAQ;AAAA,IACR;AACA,WAAO,4CAAC,0CAAmB;AAAA,EAC7B;AAEA,MAAI,QAAQ,SAAS;AACnB,WAAO,4CAAC,wCAAiB,OAAO,QAAQ,OAAO;AAAA,EACjD;AAEA,QAAM,OAAO,QAAQ;AAErB,SACE,4CAAC,uCAAc,mBAAmB,sCAChC,sDAAC,oBAAAA,aAAA,EAA0B,UAAU,MAAM,GAC7C;AAEJ;","names":["UserProfilePresentational"]}
1
+ {"version":3,"sources":["../../src/user-profile.client.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n UserProfileError,\n UserProfileLoading,\n UserProfile as UserProfilePresentational,\n} from \"./lib/user-profile.js\";\nimport type {\n UserProfileErrorProps,\n UserProfileLoadingProps,\n} from \"./lib/user-profile.js\";\nimport { useMe } from \"./api/endpoint.js\";\nimport { ApiProvider, AuthToken, useApiReady } from \"./api/api-provider.js\";\nimport { useWorkOsApiUrl } from \"./lib/widgets-context.js\";\nimport { ErrorBoundary } from \"./lib/error-boundary.js\";\nimport type { WidgetRootDomProps } from \"./lib/utils.js\";\n\ninterface UserProfileProps extends WidgetRootDomProps {\n authToken: AuthToken;\n}\n\nconst UserProfile: React.FC<UserProfileProps> = ({\n authToken,\n ...domProps\n}) => {\n const baseUrl = useWorkOsApiUrl();\n\n return (\n <ErrorBoundary\n fallbackRender={({ error }) => (\n <UserProfileError {...domProps} error={error} />\n )}\n >\n <ApiProvider\n widgetType=\"user-profile\"\n authToken={authToken}\n baseUrl={baseUrl}\n >\n <UserProfileImpl {...domProps} />\n </ApiProvider>\n </ErrorBoundary>\n );\n};\n\nconst UserProfileImpl = (props: WidgetRootDomProps) => {\n const isApiReady = useApiReady();\n const meQuery = useMe();\n\n if (!isApiReady || meQuery.isLoading) {\n return <UserProfileLoading {...props} />;\n }\n\n if (meQuery.isError) {\n return <UserProfileError error={meQuery.error} {...props} />;\n }\n\n const user = meQuery.data!;\n\n return (\n <ErrorBoundary\n fallbackRender={({ error }) => (\n <UserProfileError error={error} {...props} />\n )}\n >\n <UserProfilePresentational userData={user} {...props} />\n </ErrorBoundary>\n );\n};\n\nexport type {\n UserProfileProps,\n UserProfileLoadingProps,\n UserProfileErrorProps,\n};\nexport { UserProfile, UserProfileLoading, UserProfileError };\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA+BQ;AA5BR,0BAIO;AAKP,sBAAsB;AACtB,0BAAoD;AACpD,6BAAgC;AAChC,4BAA8B;AAO9B,MAAM,cAA0C,CAAC;AAAA,EAC/C;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,cAAU,wCAAgB;AAEhC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,gBAAgB,CAAC,EAAE,MAAM,MACvB,4CAAC,wCAAkB,GAAG,UAAU,OAAc;AAAA,MAGhD;AAAA,QAAC;AAAA;AAAA,UACC,YAAW;AAAA,UACX;AAAA,UACA;AAAA,UAEA,sDAAC,mBAAiB,GAAG,UAAU;AAAA;AAAA,MACjC;AAAA;AAAA,EACF;AAEJ;AAEA,MAAM,kBAAkB,CAAC,UAA8B;AACrD,QAAM,iBAAa,iCAAY;AAC/B,QAAM,cAAU,uBAAM;AAEtB,MAAI,CAAC,cAAc,QAAQ,WAAW;AACpC,WAAO,4CAAC,0CAAoB,GAAG,OAAO;AAAA,EACxC;AAEA,MAAI,QAAQ,SAAS;AACnB,WAAO,4CAAC,wCAAiB,OAAO,QAAQ,OAAQ,GAAG,OAAO;AAAA,EAC5D;AAEA,QAAM,OAAO,QAAQ;AAErB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,gBAAgB,CAAC,EAAE,MAAM,MACvB,4CAAC,wCAAiB,OAAe,GAAG,OAAO;AAAA,MAG7C,sDAAC,oBAAAA,aAAA,EAA0B,UAAU,MAAO,GAAG,OAAO;AAAA;AAAA,EACxD;AAEJ;","names":["UserProfilePresentational"]}
@@ -1,12 +1,13 @@
1
1
  import * as React from 'react';
2
- export { UserProfileLoading } from './lib/user-profile.cjs';
2
+ export { UserProfileError, UserProfileErrorProps, UserProfileLoading, UserProfileLoadingProps } from './lib/user-profile.cjs';
3
3
  import { AuthToken } from './api/api-provider.cjs';
4
- import 'react/jsx-runtime';
4
+ import { WidgetRootDomProps } from './lib/utils.cjs';
5
5
  import './api/endpoint.cjs';
6
6
  import '@tanstack/react-query';
7
7
  import './api/widgets-api-client.cjs';
8
+ import 'react/jsx-runtime';
8
9
 
9
- interface UserProfileProps {
10
+ interface UserProfileProps extends WidgetRootDomProps {
10
11
  authToken: AuthToken;
11
12
  }
12
13
  declare const UserProfile: React.FC<UserProfileProps>;
@@ -20,6 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  var user_security_client_exports = {};
21
21
  __export(user_security_client_exports, {
22
22
  UserSecurity: () => UserSecurity,
23
+ UserSecurityError: () => import_user_security.UserSecurityError,
23
24
  UserSecurityLoading: () => import_user_security.UserSecurityLoading
24
25
  });
25
26
  module.exports = __toCommonJS(user_security_client_exports);
@@ -27,41 +28,58 @@ var import_jsx_runtime = require("react/jsx-runtime");
27
28
  var import_api_provider = require("./api/api-provider.js");
28
29
  var import_endpoint = require("./api/endpoint.js");
29
30
  var import_user_security = require("./lib/user-security.js");
30
- var import_use_is_hydrated = require("./lib/use-is-hydrated.js");
31
31
  var import_widgets_context = require("./lib/widgets-context.js");
32
32
  var import_error_boundary = require("./lib/error-boundary.js");
33
- const UserSecurity = ({ authToken }) => {
33
+ const UserSecurity = ({
34
+ authToken,
35
+ ...domProps
36
+ }) => {
34
37
  const baseUrl = (0, import_widgets_context.useWorkOsApiUrl)();
35
38
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
36
- import_api_provider.ApiProvider,
39
+ import_error_boundary.ErrorBoundary,
37
40
  {
38
- widgetType: "user-security",
39
- authToken,
40
- baseUrl,
41
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UserSecurityContent, {})
41
+ fallbackRender: ({ error }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_security.UserSecurityError, { error, ...domProps }),
42
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
43
+ import_api_provider.ApiProvider,
44
+ {
45
+ widgetType: "user-security",
46
+ authToken,
47
+ baseUrl,
48
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UserSecurityImpl, { ...domProps })
49
+ }
50
+ )
42
51
  }
43
52
  );
44
53
  };
45
- const UserSecurityContent = () => {
46
- const isHydrated = (0, import_use_is_hydrated.useIsHydrated)();
54
+ const UserSecurityImpl = (props) => {
55
+ const isApiReady = (0, import_api_provider.useApiReady)();
47
56
  const {
48
57
  data: settings,
49
58
  isLoading,
50
59
  isError,
51
60
  isSuccess,
52
61
  error
53
- } = (0, import_endpoint.useAuthenticationInformation)();
54
- if (!isHydrated || isLoading) {
55
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_security.UserSecurityLoading, {});
62
+ } = (0, import_endpoint.useAuthenticationInformation)({
63
+ query: { enabled: isApiReady }
64
+ });
65
+ if (!isApiReady || isLoading) {
66
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_security.UserSecurityLoading, { ...props });
56
67
  }
57
68
  if (isError || !isSuccess) {
58
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_security.UserSecurityError, { error });
69
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_security.UserSecurityError, { error, ...props });
59
70
  }
60
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_error_boundary.ErrorBoundary, { FallbackComponent: import_user_security.UserSecurityError, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_security.UserSecurity, { settings: settings.data }) });
71
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
72
+ import_error_boundary.ErrorBoundary,
73
+ {
74
+ fallbackRender: ({ error: error2 }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_security.UserSecurityError, { error: error2, ...props }),
75
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_security.UserSecurity, { settings: settings.data, ...props })
76
+ }
77
+ );
61
78
  };
62
79
  // Annotate the CommonJS export names for ESM import in node:
63
80
  0 && (module.exports = {
64
81
  UserSecurity,
82
+ UserSecurityError,
65
83
  UserSecurityLoading
66
84
  });
67
85
  //# sourceMappingURL=user-security.client.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/user-security.client.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { ApiProvider, AuthToken } from \"./api/api-provider.js\";\nimport { useAuthenticationInformation } from \"./api/endpoint.js\";\nimport {\n UserSecurityError,\n UserSecurityLoading,\n UserSecurity as UserSecurityPresentational,\n} from \"./lib/user-security.js\";\nimport { useIsHydrated } from \"./lib/use-is-hydrated.js\";\nimport { useWorkOsApiUrl } from \"./lib/widgets-context.js\";\nimport { ErrorBoundary } from \"./lib/error-boundary.js\";\n\nexport interface UserSecurityProps {\n authToken: AuthToken;\n}\n\nexport const UserSecurity: React.FC<UserSecurityProps> = ({ authToken }) => {\n const baseUrl = useWorkOsApiUrl();\n\n return (\n <ApiProvider\n widgetType=\"user-security\"\n authToken={authToken}\n baseUrl={baseUrl}\n >\n <UserSecurityContent />\n </ApiProvider>\n );\n};\n\nexport { UserSecurityLoading };\n\nconst UserSecurityContent = () => {\n const isHydrated = useIsHydrated();\n const {\n data: settings,\n isLoading,\n isError,\n isSuccess,\n error,\n } = useAuthenticationInformation();\n\n if (!isHydrated || isLoading) {\n return <UserSecurityLoading />;\n }\n\n if (isError || !isSuccess) {\n return <UserSecurityError error={error} />;\n }\n\n return (\n <ErrorBoundary FallbackComponent={UserSecurityError}>\n <UserSecurityPresentational settings={settings.data} />\n </ErrorBoundary>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BM;AAxBN,0BAAuC;AACvC,sBAA6C;AAC7C,2BAIO;AACP,6BAA8B;AAC9B,6BAAgC;AAChC,4BAA8B;AAMvB,MAAM,eAA4C,CAAC,EAAE,UAAU,MAAM;AAC1E,QAAM,cAAU,wCAAgB;AAEhC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,YAAW;AAAA,MACX;AAAA,MACA;AAAA,MAEA,sDAAC,uBAAoB;AAAA;AAAA,EACvB;AAEJ;AAIA,MAAM,sBAAsB,MAAM;AAChC,QAAM,iBAAa,sCAAc;AACjC,QAAM;AAAA,IACJ,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,8CAA6B;AAEjC,MAAI,CAAC,cAAc,WAAW;AAC5B,WAAO,4CAAC,4CAAoB;AAAA,EAC9B;AAEA,MAAI,WAAW,CAAC,WAAW;AACzB,WAAO,4CAAC,0CAAkB,OAAc;AAAA,EAC1C;AAEA,SACE,4CAAC,uCAAc,mBAAmB,wCAChC,sDAAC,qBAAAA,cAAA,EAA2B,UAAU,SAAS,MAAM,GACvD;AAEJ;","names":["UserSecurityPresentational"]}
1
+ {"version":3,"sources":["../../src/user-security.client.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { ApiProvider, AuthToken, useApiReady } from \"./api/api-provider.js\";\nimport { useAuthenticationInformation } from \"./api/endpoint.js\";\nimport {\n UserSecurityError,\n UserSecurityLoading,\n UserSecurity as UserSecurityPresentational,\n} from \"./lib/user-security.js\";\nimport type {\n UserSecurityErrorProps,\n UserSecurityLoadingProps,\n} from \"./lib/user-security.js\";\nimport { useWorkOsApiUrl } from \"./lib/widgets-context.js\";\nimport { ErrorBoundary } from \"./lib/error-boundary.js\";\nimport type { WidgetRootDomProps } from \"./lib/utils.js\";\n\ninterface UserSecurityProps extends WidgetRootDomProps {\n authToken: AuthToken;\n}\n\nconst UserSecurity: React.FC<UserSecurityProps> = ({\n authToken,\n ...domProps\n}) => {\n const baseUrl = useWorkOsApiUrl();\n\n return (\n <ErrorBoundary\n fallbackRender={({ error }) => (\n <UserSecurityError error={error} {...domProps} />\n )}\n >\n <ApiProvider\n widgetType=\"user-security\"\n authToken={authToken}\n baseUrl={baseUrl}\n >\n <UserSecurityImpl {...domProps} />\n </ApiProvider>\n </ErrorBoundary>\n );\n};\n\nconst UserSecurityImpl = (props: WidgetRootDomProps) => {\n const isApiReady = useApiReady();\n const {\n data: settings,\n isLoading,\n isError,\n isSuccess,\n error,\n } = useAuthenticationInformation({\n query: { enabled: isApiReady },\n });\n\n if (!isApiReady || isLoading) {\n return <UserSecurityLoading {...props} />;\n }\n\n if (isError || !isSuccess) {\n return <UserSecurityError error={error} {...props} />;\n }\n\n return (\n <ErrorBoundary\n fallbackRender={({ error }) => (\n <UserSecurityError error={error} {...props} />\n )}\n >\n <UserSecurityPresentational settings={settings.data} {...props} />\n </ErrorBoundary>\n );\n};\n\nexport type {\n UserSecurityProps,\n UserSecurityLoadingProps,\n UserSecurityErrorProps,\n};\nexport { UserSecurity, UserSecurityLoading, UserSecurityError };\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA+BQ;AA5BR,0BAAoD;AACpD,sBAA6C;AAC7C,2BAIO;AAKP,6BAAgC;AAChC,4BAA8B;AAO9B,MAAM,eAA4C,CAAC;AAAA,EACjD;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,cAAU,wCAAgB;AAEhC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,gBAAgB,CAAC,EAAE,MAAM,MACvB,4CAAC,0CAAkB,OAAe,GAAG,UAAU;AAAA,MAGjD;AAAA,QAAC;AAAA;AAAA,UACC,YAAW;AAAA,UACX;AAAA,UACA;AAAA,UAEA,sDAAC,oBAAkB,GAAG,UAAU;AAAA;AAAA,MAClC;AAAA;AAAA,EACF;AAEJ;AAEA,MAAM,mBAAmB,CAAC,UAA8B;AACtD,QAAM,iBAAa,iCAAY;AAC/B,QAAM;AAAA,IACJ,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,8CAA6B;AAAA,IAC/B,OAAO,EAAE,SAAS,WAAW;AAAA,EAC/B,CAAC;AAED,MAAI,CAAC,cAAc,WAAW;AAC5B,WAAO,4CAAC,4CAAqB,GAAG,OAAO;AAAA,EACzC;AAEA,MAAI,WAAW,CAAC,WAAW;AACzB,WAAO,4CAAC,0CAAkB,OAAe,GAAG,OAAO;AAAA,EACrD;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,gBAAgB,CAAC,EAAE,OAAAA,OAAM,MACvB,4CAAC,0CAAkB,OAAOA,QAAQ,GAAG,OAAO;AAAA,MAG9C,sDAAC,qBAAAC,cAAA,EAA2B,UAAU,SAAS,MAAO,GAAG,OAAO;AAAA;AAAA,EAClE;AAEJ;","names":["error","UserSecurityPresentational"]}
@@ -1,12 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import { AuthToken } from './api/api-provider.cjs';
3
- export { UserSecurityLoading } from './lib/user-security.cjs';
3
+ export { UserSecurityError, UserSecurityErrorProps, UserSecurityLoading, UserSecurityLoadingProps } from './lib/user-security.cjs';
4
+ import { WidgetRootDomProps } from './lib/utils.cjs';
4
5
  import 'react/jsx-runtime';
5
6
  import './api/endpoint.cjs';
6
7
  import '@tanstack/react-query';
7
8
  import './api/widgets-api-client.cjs';
8
9
 
9
- interface UserSecurityProps {
10
+ interface UserSecurityProps extends WidgetRootDomProps {
10
11
  authToken: AuthToken;
11
12
  }
12
13
  declare const UserSecurity: React.FC<UserSecurityProps>;
@@ -20,79 +20,93 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  var user_sessions_client_exports = {};
21
21
  __export(user_sessions_client_exports, {
22
22
  UserSessions: () => UserSessions,
23
+ UserSessionsError: () => import_user_sessions.UserSessionsError,
23
24
  UserSessionsLoading: () => import_user_sessions.UserSessionsLoading
24
25
  });
25
26
  module.exports = __toCommonJS(user_sessions_client_exports);
26
27
  var import_jsx_runtime = require("react/jsx-runtime");
27
28
  var import_user_sessions = require("./lib/user-sessions.js");
28
- var import_use_is_hydrated = require("./lib/use-is-hydrated.js");
29
29
  var import_endpoint = require("./api/endpoint.js");
30
30
  var import_api_provider = require("./api/api-provider.js");
31
31
  var import_widgets_context = require("./lib/widgets-context.js");
32
32
  var import_error_boundary = require("./lib/error-boundary.js");
33
33
  var import_react_query = require("@tanstack/react-query");
34
- const UserSessions = (props) => {
34
+ var import_utils = require("./api/utils.js");
35
+ const UserSessions = ({
36
+ authToken,
37
+ ...passthroughProps
38
+ }) => {
35
39
  const baseUrl = (0, import_widgets_context.useWorkOsApiUrl)();
36
40
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
37
- import_api_provider.ApiProvider,
41
+ import_error_boundary.ErrorBoundary,
38
42
  {
39
- widgetType: "user-sessions",
40
- authToken: props.authToken,
41
- baseUrl,
43
+ fallbackRender: ({ error }) => {
44
+ const { currentSessionId, ...domProps } = passthroughProps;
45
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_sessions.UserSessionsError, { error, ...domProps });
46
+ },
42
47
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
43
- UserSessionsContent,
48
+ import_api_provider.ApiProvider,
44
49
  {
45
- currentSessionId: "currentSessionId" in props ? props.currentSessionId : void 0
50
+ widgetType: "user-sessions",
51
+ authToken,
52
+ baseUrl,
53
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UserSessionsImpl, { ...passthroughProps })
46
54
  }
47
55
  )
48
56
  }
49
57
  );
50
58
  };
51
- const UserSessionsContent = ({
52
- currentSessionId
59
+ const UserSessionsImpl = ({
60
+ currentSessionId,
61
+ ...domProps
53
62
  }) => {
54
- const isHydrated = (0, import_use_is_hydrated.useIsHydrated)();
63
+ const isApiReady = (0, import_api_provider.useApiReady)();
55
64
  const sessionsQuery = (0, import_endpoint.useSessions)();
56
65
  const currentSessionIdQuery = useCurrentSessionIdQuery(currentSessionId);
57
- if (!isHydrated || sessionsQuery.isLoading || currentSessionIdQuery.isLoading) {
58
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_sessions.UserSessionsLoading, {});
66
+ if (!isApiReady || sessionsQuery.isLoading || currentSessionIdQuery.isLoading) {
67
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_sessions.UserSessionsLoading, { ...domProps });
59
68
  }
60
69
  if (sessionsQuery.isError || currentSessionIdQuery.isError) {
61
70
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
62
71
  import_user_sessions.UserSessionsError,
63
72
  {
64
- error: sessionsQuery.error || currentSessionIdQuery.error
73
+ error: sessionsQuery.error || currentSessionIdQuery.error,
74
+ ...domProps
65
75
  }
66
76
  );
67
77
  }
68
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_error_boundary.ErrorBoundary, { FallbackComponent: import_user_sessions.UserSessionsError, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
69
- import_user_sessions.UserSessions,
78
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
79
+ import_error_boundary.ErrorBoundary,
70
80
  {
71
- sessionsData: sessionsQuery.data?.data || [],
72
- currentSessionId: currentSessionIdQuery.data ?? ""
81
+ fallbackRender: ({ error }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_sessions.UserSessionsError, { error, ...domProps }),
82
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
83
+ import_user_sessions.UserSessions,
84
+ {
85
+ sessionsData: sessionsQuery.data?.data || [],
86
+ currentSessionId: currentSessionIdQuery.data ?? "",
87
+ ...domProps
88
+ }
89
+ )
73
90
  }
74
- ) });
91
+ );
75
92
  };
76
93
  function useCurrentSessionIdQuery(currentSessionId) {
77
94
  const { authToken } = (0, import_api_provider.useApi)();
78
95
  return (0, import_react_query.useQuery)({
79
- queryKey: ["authToken"],
80
- queryFn: async () => {
96
+ queryKey: ["authToken", authToken],
97
+ queryFn: authToken ? async () => {
81
98
  if (currentSessionId) {
82
99
  return currentSessionId;
83
100
  }
84
- const res = await Promise.resolve(authToken);
85
- const claims = getClaims(res);
86
- return claims.sid;
87
- }
101
+ const { sid } = (0, import_utils.getClaims)(authToken);
102
+ return sid;
103
+ } : import_react_query.skipToken
88
104
  });
89
105
  }
90
- function getClaims(accessToken) {
91
- return JSON.parse(atob(accessToken.split(".")[1]));
92
- }
93
106
  // Annotate the CommonJS export names for ESM import in node:
94
107
  0 && (module.exports = {
95
108
  UserSessions,
109
+ UserSessionsError,
96
110
  UserSessionsLoading
97
111
  });
98
112
  //# sourceMappingURL=user-sessions.client.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/user-sessions.client.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n UserSessionsError,\n UserSessionsLoading,\n UserSessions as UserSessionsPresentational,\n} from \"./lib/user-sessions.js\";\nimport { useIsHydrated } from \"./lib/use-is-hydrated.js\";\nimport { useSessions } from \"./api/endpoint.js\";\nimport { ApiProvider, useApi } from \"./api/api-provider.js\";\nimport { useWorkOsApiUrl } from \"./lib/widgets-context.js\";\nimport { ErrorBoundary } from \"./lib/error-boundary.js\";\nimport { useQuery } from \"@tanstack/react-query\";\n\ntype UserSessionsWithoutCurrentSessionIdProps = {\n authToken: () => Promise<string>;\n};\n\ntype UserSessionsWithCurrentSessionIdProps = {\n authToken: string;\n currentSessionId: string;\n};\n\nexport type UserSessionsProps =\n | UserSessionsWithoutCurrentSessionIdProps\n | UserSessionsWithCurrentSessionIdProps;\n\nexport const UserSessions: React.FC<UserSessionsProps> = (props) => {\n const baseUrl = useWorkOsApiUrl();\n\n return (\n <ApiProvider\n widgetType=\"user-sessions\"\n authToken={props.authToken}\n baseUrl={baseUrl}\n >\n <UserSessionsContent\n currentSessionId={\n \"currentSessionId\" in props ? props.currentSessionId : undefined\n }\n />\n </ApiProvider>\n );\n};\n\nexport { UserSessionsLoading };\n\nconst UserSessionsContent = ({\n currentSessionId,\n}: {\n currentSessionId?: string;\n}) => {\n const isHydrated = useIsHydrated();\n const sessionsQuery = useSessions();\n const currentSessionIdQuery = useCurrentSessionIdQuery(currentSessionId);\n\n if (\n !isHydrated ||\n sessionsQuery.isLoading ||\n currentSessionIdQuery.isLoading\n ) {\n return <UserSessionsLoading />;\n }\n\n if (sessionsQuery.isError || currentSessionIdQuery.isError) {\n return (\n <UserSessionsError\n error={sessionsQuery.error || currentSessionIdQuery.error}\n />\n );\n }\n\n return (\n <ErrorBoundary FallbackComponent={UserSessionsError}>\n <UserSessionsPresentational\n sessionsData={sessionsQuery.data?.data || []}\n currentSessionId={currentSessionIdQuery.data ?? \"\"}\n />\n </ErrorBoundary>\n );\n};\n\nfunction useCurrentSessionIdQuery(currentSessionId?: string) {\n const { authToken } = useApi();\n\n return useQuery({\n queryKey: [\"authToken\"],\n queryFn: async () => {\n if (currentSessionId) {\n return currentSessionId;\n }\n\n const res = await Promise.resolve(authToken);\n const claims = getClaims(res);\n return claims.sid;\n },\n });\n}\n\nfunction getClaims(accessToken: string) {\n return JSON.parse(atob(accessToken.split(\".\")[1])) as { sid: string };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqCM;AAlCN,2BAIO;AACP,6BAA8B;AAC9B,sBAA4B;AAC5B,0BAAoC;AACpC,6BAAgC;AAChC,4BAA8B;AAC9B,yBAAyB;AAelB,MAAM,eAA4C,CAAC,UAAU;AAClE,QAAM,cAAU,wCAAgB;AAEhC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,YAAW;AAAA,MACX,WAAW,MAAM;AAAA,MACjB;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,kBACE,sBAAsB,QAAQ,MAAM,mBAAmB;AAAA;AAAA,MAE3D;AAAA;AAAA,EACF;AAEJ;AAIA,MAAM,sBAAsB,CAAC;AAAA,EAC3B;AACF,MAEM;AACJ,QAAM,iBAAa,sCAAc;AACjC,QAAM,oBAAgB,6BAAY;AAClC,QAAM,wBAAwB,yBAAyB,gBAAgB;AAEvE,MACE,CAAC,cACD,cAAc,aACd,sBAAsB,WACtB;AACA,WAAO,4CAAC,4CAAoB;AAAA,EAC9B;AAEA,MAAI,cAAc,WAAW,sBAAsB,SAAS;AAC1D,WACE;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,cAAc,SAAS,sBAAsB;AAAA;AAAA,IACtD;AAAA,EAEJ;AAEA,SACE,4CAAC,uCAAc,mBAAmB,wCAChC;AAAA,IAAC,qBAAAA;AAAA,IAAA;AAAA,MACC,cAAc,cAAc,MAAM,QAAQ,CAAC;AAAA,MAC3C,kBAAkB,sBAAsB,QAAQ;AAAA;AAAA,EAClD,GACF;AAEJ;AAEA,SAAS,yBAAyB,kBAA2B;AAC3D,QAAM,EAAE,UAAU,QAAI,4BAAO;AAE7B,aAAO,6BAAS;AAAA,IACd,UAAU,CAAC,WAAW;AAAA,IACtB,SAAS,YAAY;AACnB,UAAI,kBAAkB;AACpB,eAAO;AAAA,MACT;AAEA,YAAM,MAAM,MAAM,QAAQ,QAAQ,SAAS;AAC3C,YAAM,SAAS,UAAU,GAAG;AAC5B,aAAO,OAAO;AAAA,IAChB;AAAA,EACF,CAAC;AACH;AAEA,SAAS,UAAU,aAAqB;AACtC,SAAO,KAAK,MAAM,KAAK,YAAY,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;AACnD;","names":["UserSessionsPresentational"]}
1
+ {"version":3,"sources":["../../src/user-sessions.client.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n UserSessionsError,\n UserSessionsLoading,\n UserSessions as UserSessionsPresentational,\n} from \"./lib/user-sessions.js\";\nimport type {\n UserSessionsErrorProps,\n UserSessionsLoadingProps,\n} from \"./lib/user-sessions.js\";\nimport { useSessions } from \"./api/endpoint.js\";\nimport { ApiProvider, useApi, useApiReady } from \"./api/api-provider.js\";\nimport { useWorkOsApiUrl } from \"./lib/widgets-context.js\";\nimport { ErrorBoundary } from \"./lib/error-boundary.js\";\nimport { useQuery, skipToken } from \"@tanstack/react-query\";\nimport { getClaims } from \"./api/utils.js\";\nimport { WidgetRootDomProps } from \"./lib/utils.js\";\n\ntype UserSessionsWithoutCurrentSessionIdProps = {\n authToken: () => Promise<string>;\n currentSessionId?: never;\n};\n\ntype UserSessionsWithCurrentSessionIdProps = {\n authToken: string;\n currentSessionId: string;\n};\n\ntype UserSessionsProps = WidgetRootDomProps &\n (\n | UserSessionsWithoutCurrentSessionIdProps\n | UserSessionsWithCurrentSessionIdProps\n );\n\nconst UserSessions: React.FC<UserSessionsProps> = ({\n authToken,\n ...passthroughProps\n}) => {\n const baseUrl = useWorkOsApiUrl();\n return (\n <ErrorBoundary\n fallbackRender={({ error }) => {\n const { currentSessionId, ...domProps } = passthroughProps;\n return <UserSessionsError error={error} {...domProps} />;\n }}\n >\n <ApiProvider\n widgetType=\"user-sessions\"\n authToken={authToken}\n baseUrl={baseUrl}\n >\n <UserSessionsImpl {...passthroughProps} />\n </ApiProvider>\n </ErrorBoundary>\n );\n};\n\ninterface UserSessionsImplProps extends WidgetRootDomProps {\n currentSessionId?: string;\n}\n\nconst UserSessionsImpl: React.FC<UserSessionsImplProps> = ({\n currentSessionId,\n ...domProps\n}) => {\n const isApiReady = useApiReady();\n const sessionsQuery = useSessions();\n const currentSessionIdQuery = useCurrentSessionIdQuery(currentSessionId);\n\n if (\n !isApiReady ||\n sessionsQuery.isLoading ||\n currentSessionIdQuery.isLoading\n ) {\n return <UserSessionsLoading {...domProps} />;\n }\n\n if (sessionsQuery.isError || currentSessionIdQuery.isError) {\n return (\n <UserSessionsError\n error={sessionsQuery.error || currentSessionIdQuery.error}\n {...domProps}\n />\n );\n }\n\n return (\n <ErrorBoundary\n fallbackRender={({ error }) => (\n <UserSessionsError error={error} {...domProps} />\n )}\n >\n <UserSessionsPresentational\n sessionsData={sessionsQuery.data?.data || []}\n currentSessionId={currentSessionIdQuery.data ?? \"\"}\n {...domProps}\n />\n </ErrorBoundary>\n );\n};\n\nfunction useCurrentSessionIdQuery(currentSessionId?: string) {\n const { authToken } = useApi();\n\n return useQuery({\n queryKey: [\"authToken\", authToken],\n queryFn: authToken\n ? async () => {\n if (currentSessionId) {\n return currentSessionId;\n }\n\n const { sid } = getClaims(authToken);\n return sid;\n }\n : skipToken,\n });\n}\n\nexport type {\n UserSessionsProps,\n UserSessionsLoadingProps,\n UserSessionsErrorProps,\n};\nexport { UserSessions, UserSessionsLoading, UserSessionsError };\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6Ce;AA1Cf,2BAIO;AAKP,sBAA4B;AAC5B,0BAAiD;AACjD,6BAAgC;AAChC,4BAA8B;AAC9B,yBAAoC;AACpC,mBAA0B;AAmB1B,MAAM,eAA4C,CAAC;AAAA,EACjD;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,cAAU,wCAAgB;AAChC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,gBAAgB,CAAC,EAAE,MAAM,MAAM;AAC7B,cAAM,EAAE,kBAAkB,GAAG,SAAS,IAAI;AAC1C,eAAO,4CAAC,0CAAkB,OAAe,GAAG,UAAU;AAAA,MACxD;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,YAAW;AAAA,UACX;AAAA,UACA;AAAA,UAEA,sDAAC,oBAAkB,GAAG,kBAAkB;AAAA;AAAA,MAC1C;AAAA;AAAA,EACF;AAEJ;AAMA,MAAM,mBAAoD,CAAC;AAAA,EACzD;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,iBAAa,iCAAY;AAC/B,QAAM,oBAAgB,6BAAY;AAClC,QAAM,wBAAwB,yBAAyB,gBAAgB;AAEvE,MACE,CAAC,cACD,cAAc,aACd,sBAAsB,WACtB;AACA,WAAO,4CAAC,4CAAqB,GAAG,UAAU;AAAA,EAC5C;AAEA,MAAI,cAAc,WAAW,sBAAsB,SAAS;AAC1D,WACE;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,cAAc,SAAS,sBAAsB;AAAA,QACnD,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,gBAAgB,CAAC,EAAE,MAAM,MACvB,4CAAC,0CAAkB,OAAe,GAAG,UAAU;AAAA,MAGjD;AAAA,QAAC,qBAAAA;AAAA,QAAA;AAAA,UACC,cAAc,cAAc,MAAM,QAAQ,CAAC;AAAA,UAC3C,kBAAkB,sBAAsB,QAAQ;AAAA,UAC/C,GAAG;AAAA;AAAA,MACN;AAAA;AAAA,EACF;AAEJ;AAEA,SAAS,yBAAyB,kBAA2B;AAC3D,QAAM,EAAE,UAAU,QAAI,4BAAO;AAE7B,aAAO,6BAAS;AAAA,IACd,UAAU,CAAC,aAAa,SAAS;AAAA,IACjC,SAAS,YACL,YAAY;AACV,UAAI,kBAAkB;AACpB,eAAO;AAAA,MACT;AAEA,YAAM,EAAE,IAAI,QAAI,wBAAU,SAAS;AACnC,aAAO;AAAA,IACT,IACA;AAAA,EACN,CAAC;AACH;","names":["UserSessionsPresentational"]}
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
- export { UserSessionsLoading } from './lib/user-sessions.cjs';
2
+ export { UserSessionsError, UserSessionsErrorProps, UserSessionsLoading, UserSessionsLoadingProps } from './lib/user-sessions.cjs';
3
+ import { WidgetRootDomProps } from './lib/utils.cjs';
3
4
  import 'react/jsx-runtime';
4
5
  import './api/endpoint.cjs';
5
6
  import '@tanstack/react-query';
@@ -7,12 +8,13 @@ import './api/widgets-api-client.cjs';
7
8
 
8
9
  type UserSessionsWithoutCurrentSessionIdProps = {
9
10
  authToken: () => Promise<string>;
11
+ currentSessionId?: never;
10
12
  };
11
13
  type UserSessionsWithCurrentSessionIdProps = {
12
14
  authToken: string;
13
15
  currentSessionId: string;
14
16
  };
15
- type UserSessionsProps = UserSessionsWithoutCurrentSessionIdProps | UserSessionsWithCurrentSessionIdProps;
17
+ type UserSessionsProps = WidgetRootDomProps & (UserSessionsWithoutCurrentSessionIdProps | UserSessionsWithCurrentSessionIdProps);
16
18
  declare const UserSessions: React.FC<UserSessionsProps>;
17
19
 
18
20
  export { UserSessions, type UserSessionsProps };
@@ -20,6 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  var users_management_client_exports = {};
21
21
  __export(users_management_client_exports, {
22
22
  UsersManagement: () => UsersManagement,
23
+ UsersManagementError: () => import_users_management.UsersManagementError,
23
24
  UsersManagementLoading: () => import_users_management.UsersManagementLoading
24
25
  });
25
26
  module.exports = __toCommonJS(users_management_client_exports);
@@ -27,62 +28,72 @@ var import_jsx_runtime = require("react/jsx-runtime");
27
28
  var import_endpoint = require("./api/endpoint.js");
28
29
  var import_api_provider = require("./api/api-provider.js");
29
30
  var import_user = require("./lib/api/user.js");
30
- var import_use_is_hydrated = require("./lib/use-is-hydrated.js");
31
31
  var import_users_management = require("./lib/users-management.js");
32
32
  var import_users_management_context = require("./lib/users-management-context.js");
33
33
  var import_widgets_context = require("./lib/widgets-context.js");
34
34
  var import_error_boundary = require("./lib/error-boundary.js");
35
35
  var import_use_permissions = require("./lib/use-permissions.js");
36
36
  const UsersManagement = ({
37
- authToken
37
+ authToken,
38
+ ...domProps
38
39
  }) => {
39
40
  const baseUrl = (0, import_widgets_context.useWorkOsApiUrl)();
40
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_error_boundary.ErrorBoundary, { FallbackComponent: import_users_management.UsersManagementError, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
41
- import_api_provider.ApiProvider,
41
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
42
+ import_error_boundary.ErrorBoundary,
42
43
  {
43
- widgetType: "user-management",
44
- authToken,
45
- baseUrl,
46
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_users_management_context.UsersManagementContextProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsersManagementContent, {}) })
44
+ fallbackRender: ({ error }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_users_management.UsersManagementError, { error, ...domProps }),
45
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
46
+ import_api_provider.ApiProvider,
47
+ {
48
+ widgetType: "user-management",
49
+ authToken,
50
+ baseUrl,
51
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_users_management_context.UsersManagementContextProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsersManagementImpl, { ...domProps }) })
52
+ }
53
+ )
47
54
  }
48
- ) });
55
+ );
49
56
  };
50
- const UsersManagementContent = () => {
51
- const isHydrated = (0, import_use_is_hydrated.useIsHydrated)();
57
+ const UsersManagementImpl = (props) => {
58
+ const isApiReady = (0, import_api_provider.useApiReady)();
52
59
  const rolesAndConfigQuery = (0, import_endpoint.useRolesAndConfig)({
53
60
  query: { initialData: { roles: [], multipleRolesEnabled: false } }
54
61
  });
55
62
  const usersQuery = (0, import_user.useUsers)();
56
- const context = (0, import_api_provider.useApi)();
57
- const permissionsQuery = (0, import_use_permissions.usePermissions)(
58
- "widgets:users-table:manage",
59
- context.authToken
60
- );
61
- if (permissionsQuery.isLoading || usersQuery.isLoading || rolesAndConfigQuery.isLoading || usersQuery.isPending || // render loading state on the server to prevent FOUC or hydration mismatch
62
- !isHydrated) {
63
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_users_management.UsersManagementLoading, {});
63
+ const permissionsQuery = (0, import_use_permissions.usePermissions)("widgets:users-table:manage");
64
+ if (permissionsQuery.isLoading || usersQuery.isLoading || rolesAndConfigQuery.isLoading || usersQuery.isPending || !isApiReady) {
65
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_users_management.UsersManagementLoading, { ...props });
64
66
  }
65
67
  if (permissionsQuery.isError || usersQuery.isError || rolesAndConfigQuery.isError) {
66
68
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
67
69
  import_users_management.UsersManagementError,
68
70
  {
69
- error: permissionsQuery.error || usersQuery.error || rolesAndConfigQuery.error
71
+ error: permissionsQuery.error || usersQuery.error || rolesAndConfigQuery.error,
72
+ ...props
70
73
  }
71
74
  );
72
75
  }
73
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_error_boundary.ErrorBoundary, { FallbackComponent: import_users_management.UsersManagementError, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
74
- import_users_management.UsersManagement,
76
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
77
+ import_error_boundary.ErrorBoundary,
75
78
  {
76
- userData: usersQuery.data,
77
- rolesData: rolesAndConfigQuery.data,
78
- isPending: usersQuery.isFetching,
79
- disableRolesFilter: rolesAndConfigQuery.isPending || rolesAndConfigQuery.isFetching
79
+ fallbackRender: ({ error }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_users_management.UsersManagementError, { error, ...props }),
80
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
81
+ import_users_management.UsersManagement,
82
+ {
83
+ userData: usersQuery.data,
84
+ rolesData: rolesAndConfigQuery.data,
85
+ isPending: usersQuery.isFetching,
86
+ disableRolesFilter: rolesAndConfigQuery.isPending || rolesAndConfigQuery.isFetching,
87
+ ...props
88
+ }
89
+ )
80
90
  }
81
- ) });
91
+ );
82
92
  };
83
93
  // Annotate the CommonJS export names for ESM import in node:
84
94
  0 && (module.exports = {
85
95
  UsersManagement,
96
+ UsersManagementError,
86
97
  UsersManagementLoading
87
98
  });
88
99
  //# sourceMappingURL=users-management.client.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/users-management.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { useRolesAndConfig } from \"./api/endpoint.js\";\nimport { ApiProvider, AuthToken, useApi } from \"./api/api-provider.js\";\nimport * as React from \"react\";\nimport { useUsers } from \"./lib/api/user.js\";\nimport { useIsHydrated } from \"./lib/use-is-hydrated.js\";\nimport {\n UsersManagementError,\n UsersManagementLoading,\n UsersManagement as UsersManagementPresentational,\n} from \"./lib/users-management.js\";\nimport { UsersManagementContextProvider } from \"./lib/users-management-context.js\";\nimport { useWorkOsApiUrl } from \"./lib/widgets-context.js\";\nimport { ErrorBoundary } from \"./lib/error-boundary.js\";\nimport { usePermissions } from \"./lib/use-permissions.js\";\n\nexport interface UsersManagementProps {\n authToken: AuthToken;\n}\n\nexport const UsersManagement: React.FC<UsersManagementProps> = ({\n authToken,\n}) => {\n const baseUrl = useWorkOsApiUrl();\n\n return (\n <ErrorBoundary FallbackComponent={UsersManagementError}>\n <ApiProvider\n widgetType=\"user-management\"\n authToken={authToken}\n baseUrl={baseUrl}\n >\n <UsersManagementContextProvider>\n <UsersManagementContent />\n </UsersManagementContextProvider>\n </ApiProvider>\n </ErrorBoundary>\n );\n};\n\nexport { UsersManagementLoading };\n\nconst UsersManagementContent = () => {\n const isHydrated = useIsHydrated();\n const rolesAndConfigQuery = useRolesAndConfig({\n query: { initialData: { roles: [], multipleRolesEnabled: false } },\n });\n const usersQuery = useUsers();\n const context = useApi();\n const permissionsQuery = usePermissions(\n \"widgets:users-table:manage\",\n context.authToken,\n );\n\n if (\n permissionsQuery.isLoading ||\n usersQuery.isLoading ||\n rolesAndConfigQuery.isLoading ||\n usersQuery.isPending ||\n // render loading state on the server to prevent FOUC or hydration mismatch\n !isHydrated\n ) {\n return <UsersManagementLoading />;\n }\n\n if (\n permissionsQuery.isError ||\n usersQuery.isError ||\n rolesAndConfigQuery.isError\n ) {\n return (\n <UsersManagementError\n error={\n permissionsQuery.error ||\n usersQuery.error ||\n rolesAndConfigQuery.error\n }\n />\n );\n }\n\n return (\n <ErrorBoundary FallbackComponent={UsersManagementError}>\n <UsersManagementPresentational\n userData={usersQuery.data}\n rolesData={rolesAndConfigQuery.data}\n isPending={usersQuery.isFetching}\n disableRolesFilter={\n rolesAndConfigQuery.isPending || rolesAndConfigQuery.isFetching\n }\n />\n </ErrorBoundary>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkCU;AAhCV,sBAAkC;AAClC,0BAA+C;AAE/C,kBAAyB;AACzB,6BAA8B;AAC9B,8BAIO;AACP,sCAA+C;AAC/C,6BAAgC;AAChC,4BAA8B;AAC9B,6BAA+B;AAMxB,MAAM,kBAAkD,CAAC;AAAA,EAC9D;AACF,MAAM;AACJ,QAAM,cAAU,wCAAgB;AAEhC,SACE,4CAAC,uCAAc,mBAAmB,8CAChC;AAAA,IAAC;AAAA;AAAA,MACC,YAAW;AAAA,MACX;AAAA,MACA;AAAA,MAEA,sDAAC,kEACC,sDAAC,0BAAuB,GAC1B;AAAA;AAAA,EACF,GACF;AAEJ;AAIA,MAAM,yBAAyB,MAAM;AACnC,QAAM,iBAAa,sCAAc;AACjC,QAAM,0BAAsB,mCAAkB;AAAA,IAC5C,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,GAAG,sBAAsB,MAAM,EAAE;AAAA,EACnE,CAAC;AACD,QAAM,iBAAa,sBAAS;AAC5B,QAAM,cAAU,4BAAO;AACvB,QAAM,uBAAmB;AAAA,IACvB;AAAA,IACA,QAAQ;AAAA,EACV;AAEA,MACE,iBAAiB,aACjB,WAAW,aACX,oBAAoB,aACpB,WAAW;AAAA,EAEX,CAAC,YACD;AACA,WAAO,4CAAC,kDAAuB;AAAA,EACjC;AAEA,MACE,iBAAiB,WACjB,WAAW,WACX,oBAAoB,SACpB;AACA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,OACE,iBAAiB,SACjB,WAAW,SACX,oBAAoB;AAAA;AAAA,IAExB;AAAA,EAEJ;AAEA,SACE,4CAAC,uCAAc,mBAAmB,8CAChC;AAAA,IAAC,wBAAAA;AAAA,IAAA;AAAA,MACC,UAAU,WAAW;AAAA,MACrB,WAAW,oBAAoB;AAAA,MAC/B,WAAW,WAAW;AAAA,MACtB,oBACE,oBAAoB,aAAa,oBAAoB;AAAA;AAAA,EAEzD,GACF;AAEJ;","names":["UsersManagementPresentational"]}
1
+ {"version":3,"sources":["../../src/users-management.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { useRolesAndConfig } from \"./api/endpoint.js\";\nimport { ApiProvider, AuthToken, useApiReady } from \"./api/api-provider.js\";\nimport * as React from \"react\";\nimport { useUsers } from \"./lib/api/user.js\";\nimport {\n UsersManagementError,\n UsersManagementLoading,\n UsersManagement as UsersManagementPresentational,\n} from \"./lib/users-management.js\";\nimport type {\n UsersManagementErrorProps,\n UsersManagementLoadingProps,\n} from \"./lib/users-management.js\";\nimport { UsersManagementContextProvider } from \"./lib/users-management-context.js\";\nimport { useWorkOsApiUrl } from \"./lib/widgets-context.js\";\nimport { ErrorBoundary } from \"./lib/error-boundary.js\";\nimport { usePermissions } from \"./lib/use-permissions.js\";\nimport type { WidgetRootDomProps } from \"./lib/utils.js\";\n\ninterface UsersManagementProps extends WidgetRootDomProps {\n authToken: AuthToken;\n}\n\nconst UsersManagement: React.FC<UsersManagementProps> = ({\n authToken,\n ...domProps\n}) => {\n const baseUrl = useWorkOsApiUrl();\n\n return (\n <ErrorBoundary\n fallbackRender={({ error }) => (\n <UsersManagementError error={error} {...domProps} />\n )}\n >\n <ApiProvider\n widgetType=\"user-management\"\n authToken={authToken}\n baseUrl={baseUrl}\n >\n <UsersManagementContextProvider>\n <UsersManagementImpl {...domProps} />\n </UsersManagementContextProvider>\n </ApiProvider>\n </ErrorBoundary>\n );\n};\n\nconst UsersManagementImpl = (props: WidgetRootDomProps) => {\n const isApiReady = useApiReady();\n const rolesAndConfigQuery = useRolesAndConfig({\n query: { initialData: { roles: [], multipleRolesEnabled: false } },\n });\n const usersQuery = useUsers();\n const permissionsQuery = usePermissions(\"widgets:users-table:manage\");\n\n if (\n permissionsQuery.isLoading ||\n usersQuery.isLoading ||\n rolesAndConfigQuery.isLoading ||\n usersQuery.isPending ||\n !isApiReady\n ) {\n return <UsersManagementLoading {...props} />;\n }\n\n if (\n permissionsQuery.isError ||\n usersQuery.isError ||\n rolesAndConfigQuery.isError\n ) {\n return (\n <UsersManagementError\n error={\n permissionsQuery.error ||\n usersQuery.error ||\n rolesAndConfigQuery.error\n }\n {...props}\n />\n );\n }\n\n return (\n <ErrorBoundary\n fallbackRender={({ error }) => (\n <UsersManagementError error={error} {...props} />\n )}\n >\n <UsersManagementPresentational\n userData={usersQuery.data}\n rolesData={rolesAndConfigQuery.data}\n isPending={usersQuery.isFetching}\n disableRolesFilter={\n rolesAndConfigQuery.isPending || rolesAndConfigQuery.isFetching\n }\n {...props}\n />\n </ErrorBoundary>\n );\n};\n\nexport type {\n UsersManagementProps,\n UsersManagementLoadingProps,\n UsersManagementErrorProps,\n};\nexport { UsersManagement, UsersManagementLoading, UsersManagementError };\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkCQ;AAhCR,sBAAkC;AAClC,0BAAoD;AAEpD,kBAAyB;AACzB,8BAIO;AAKP,sCAA+C;AAC/C,6BAAgC;AAChC,4BAA8B;AAC9B,6BAA+B;AAO/B,MAAM,kBAAkD,CAAC;AAAA,EACvD;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,cAAU,wCAAgB;AAEhC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,gBAAgB,CAAC,EAAE,MAAM,MACvB,4CAAC,gDAAqB,OAAe,GAAG,UAAU;AAAA,MAGpD;AAAA,QAAC;AAAA;AAAA,UACC,YAAW;AAAA,UACX;AAAA,UACA;AAAA,UAEA,sDAAC,kEACC,sDAAC,uBAAqB,GAAG,UAAU,GACrC;AAAA;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;AAEA,MAAM,sBAAsB,CAAC,UAA8B;AACzD,QAAM,iBAAa,iCAAY;AAC/B,QAAM,0BAAsB,mCAAkB;AAAA,IAC5C,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,GAAG,sBAAsB,MAAM,EAAE;AAAA,EACnE,CAAC;AACD,QAAM,iBAAa,sBAAS;AAC5B,QAAM,uBAAmB,uCAAe,4BAA4B;AAEpE,MACE,iBAAiB,aACjB,WAAW,aACX,oBAAoB,aACpB,WAAW,aACX,CAAC,YACD;AACA,WAAO,4CAAC,kDAAwB,GAAG,OAAO;AAAA,EAC5C;AAEA,MACE,iBAAiB,WACjB,WAAW,WACX,oBAAoB,SACpB;AACA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,OACE,iBAAiB,SACjB,WAAW,SACX,oBAAoB;AAAA,QAErB,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,gBAAgB,CAAC,EAAE,MAAM,MACvB,4CAAC,gDAAqB,OAAe,GAAG,OAAO;AAAA,MAGjD;AAAA,QAAC,wBAAAA;AAAA,QAAA;AAAA,UACC,UAAU,WAAW;AAAA,UACrB,WAAW,oBAAoB;AAAA,UAC/B,WAAW,WAAW;AAAA,UACtB,oBACE,oBAAoB,aAAa,oBAAoB;AAAA,UAEtD,GAAG;AAAA;AAAA,MACN;AAAA;AAAA,EACF;AAEJ;","names":["UsersManagementPresentational"]}
@@ -1,12 +1,13 @@
1
1
  import { AuthToken } from './api/api-provider.cjs';
2
2
  import * as React from 'react';
3
- export { UsersManagementLoading } from './lib/users-management.cjs';
3
+ export { UsersManagementError, UsersManagementErrorProps, UsersManagementLoading, UsersManagementLoadingProps } from './lib/users-management.cjs';
4
+ import { WidgetRootDomProps } from './lib/utils.cjs';
4
5
  import 'react/jsx-runtime';
5
6
  import './api/endpoint.cjs';
6
7
  import '@tanstack/react-query';
7
8
  import './api/widgets-api-client.cjs';
8
9
 
9
- interface UsersManagementProps {
10
+ interface UsersManagementProps extends WidgetRootDomProps {
10
11
  authToken: AuthToken;
11
12
  }
12
13
  declare const UsersManagement: React.FC<UsersManagementProps>;
@@ -40,17 +40,17 @@ var React = __toESM(require("react"), 1);
40
40
  var import_utils = require("./lib/utils.js");
41
41
  var import_config = require("./lib/api/config.js");
42
42
  var import_widgets_context = require("./lib/widgets-context.js");
43
- let queryClientInternal;
43
+ var import_constants = require("./lib/constants.js");
44
44
  const WorkOsWidgets = ({
45
45
  elements = {},
46
- className,
47
46
  theme: { fontFamily, ...radixThemesProps } = {},
48
47
  style = {},
49
48
  children,
50
49
  apiHostname = import_config.DEFAULT_API_HOSTNAME,
51
50
  port = null,
52
51
  https = true,
53
- queryClient
52
+ queryClient,
53
+ className
54
54
  }) => {
55
55
  const customStyle = fontFamily ? {
56
56
  "--default-font-family": fontFamily,
@@ -74,6 +74,7 @@ const WorkOsWidgets = ({
74
74
  import_themes.Theme,
75
75
  {
76
76
  ...radixThemesProps,
77
+ ...{ [`data-${import_constants.WIDGETS_DATA_ATTRIBUTE_NAMESPACE}-root`]: true },
77
78
  style: customStyle,
78
79
  className: (0, import_clsx.default)((0, import_utils.namespaceClassNames)("root"), className),
79
80
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_widgets_context.WidgetsContext.Provider, { value: { elements, apiBaseUrl }, children })
@@ -84,15 +85,9 @@ const QueryClientProviderImpl = ({
84
85
  client: providedClient,
85
86
  children
86
87
  }) => {
87
- let queryClient;
88
- if (providedClient) {
89
- queryClient = providedClient;
90
- } else if (queryClientInternal) {
91
- queryClient = queryClientInternal;
92
- } else {
93
- queryClientInternal = new import_react_query.QueryClient();
94
- queryClient = queryClientInternal;
95
- }
88
+ const [queryClient] = React.useState(
89
+ () => providedClient ?? new import_react_query.QueryClient()
90
+ );
96
91
  const client = (0, import_react_query.useQueryClient)(queryClient);
97
92
  if (Object.is(client, providedClient)) {
98
93
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children });