@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
@@ -30,16 +30,21 @@ import { useIsHydrated } from "./use-is-hydrated.js";
30
30
  import { UserActionsDropdown } from "./user-actions-dropdown.js";
31
31
  import { UsersFilter } from "./users-filter.js";
32
32
  import { UsersSearch } from "./users-search.js";
33
- import { getBestName, getComparativeReadableDate, pluralize } from "./utils.js";
33
+ import {
34
+ getBestName,
35
+ getComparativeReadableDate,
36
+ getDomProps,
37
+ pluralize
38
+ } from "./utils.js";
34
39
  import { USER_ROW_LIMIT } from "./constants.js";
35
40
  import { useUsersManagementContext } from "./users-management-context.js";
36
- import clsx from "clsx";
37
41
  import { GenericError } from "./generic-error.js";
38
42
  const UsersManagement = ({
39
43
  userData,
40
44
  rolesData,
41
45
  isPending,
42
- disableRolesFilter
46
+ disableRolesFilter,
47
+ ...domProps
43
48
  }) => {
44
49
  const users = userData?.data ?? [];
45
50
  const usersCount = users?.length ?? 0;
@@ -61,237 +66,237 @@ const UsersManagement = ({
61
66
  }
62
67
  }, [isPending]);
63
68
  const showPagination = !!(pagination.before || pagination.after);
64
- return /* @__PURE__ */ jsx(SearchProvider, { children: /* @__PURE__ */ jsxs(UsersManagementRoot, { children: [
65
- /* @__PURE__ */ jsxs(Grid, { columns: "1fr auto", gap: "2", children: [
66
- /* @__PURE__ */ jsxs(Flex, { gap: "2", align: "center", children: [
67
- /* @__PURE__ */ jsx(Box, { flexBasis: "380px", flexGrow: "0", flexShrink: "1", children: /* @__PURE__ */ jsx(UsersSearch, {}) }),
68
- /* @__PURE__ */ jsx(Box, { flexGrow: "0", flexShrink: "0", children: /* @__PURE__ */ jsx(
69
- UsersFilter,
70
- {
71
- roles: rolesData.roles,
72
- disabled: disableRolesFilter
73
- }
74
- ) })
75
- ] }),
76
- /* @__PURE__ */ jsx(Box, { flexGrow: "0", flexShrink: "0", style: { placeSelf: "flex-end" }, children: /* @__PURE__ */ jsx(InviteUserDialog, { children: /* @__PURE__ */ jsx(PrimaryButton, { children: "Invite user" }) }) })
77
- ] }),
78
- /* @__PURE__ */ jsxs(Table.Root, { variant: "ghost", size: "1", children: [
79
- /* @__PURE__ */ jsx(Table.Header, { children: /* @__PURE__ */ jsxs(Table.Row, { children: [
80
- /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "260px", children: "User" }),
81
- /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "100px", children: `Role${isMultipleRolesEnabled ? "s" : ""}` }),
82
- /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "140px", children: "Last active" }),
83
- /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "28px" })
84
- ] }) }),
85
- /* @__PURE__ */ jsx(
86
- Table.Body,
87
- {
88
- style: {
89
- transition: `opacity 0.2s ease-out ${isPending ? "0.2s" : "0s"}`,
90
- opacity: isPending && usersCount > 0 ? 0.5 : 1
91
- },
92
- children: users.length > 0 ? users.map((user) => {
93
- const userDisplayName = getBestName(user);
94
- const dimText = user.status === "InviteRevoked" || user.status === "InviteExpired";
95
- return /* @__PURE__ */ jsxs(Table.Row, { align: "center", children: [
96
- /* @__PURE__ */ jsx(Table.RowHeaderCell, { children: /* @__PURE__ */ jsxs(
97
- Flex,
98
- {
99
- align: "center",
100
- gap: "3",
101
- overflow: "hidden",
102
- height: "var(--space-7)",
103
- children: [
69
+ return /* @__PURE__ */ jsx(SearchProvider, { children: /* @__PURE__ */ jsxs(
70
+ Flex,
71
+ {
72
+ direction: "column",
73
+ gap: "3",
74
+ ...getWidgetRootDomProps("resolved", domProps),
75
+ children: [
76
+ /* @__PURE__ */ jsxs(Grid, { columns: "1fr auto", gap: "2", children: [
77
+ /* @__PURE__ */ jsxs(Flex, { gap: "2", align: "center", children: [
78
+ /* @__PURE__ */ jsx(Box, { flexBasis: "380px", flexGrow: "0", flexShrink: "1", children: /* @__PURE__ */ jsx(UsersSearch, {}) }),
79
+ /* @__PURE__ */ jsx(Box, { flexGrow: "0", flexShrink: "0", children: /* @__PURE__ */ jsx(
80
+ UsersFilter,
81
+ {
82
+ roles: rolesData.roles,
83
+ disabled: disableRolesFilter
84
+ }
85
+ ) })
86
+ ] }),
87
+ /* @__PURE__ */ jsx(Box, { flexGrow: "0", flexShrink: "0", style: { placeSelf: "flex-end" }, children: /* @__PURE__ */ jsx(InviteUserDialog, { children: /* @__PURE__ */ jsx(PrimaryButton, { children: "Invite user" }) }) })
88
+ ] }),
89
+ /* @__PURE__ */ jsxs(Table.Root, { variant: "ghost", size: "1", children: [
90
+ /* @__PURE__ */ jsx(Table.Header, { children: /* @__PURE__ */ jsxs(Table.Row, { children: [
91
+ /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "260px", children: "User" }),
92
+ /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "100px", children: `Role${isMultipleRolesEnabled ? "s" : ""}` }),
93
+ /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "140px", children: "Last active" }),
94
+ /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "28px" })
95
+ ] }) }),
96
+ /* @__PURE__ */ jsx(
97
+ Table.Body,
98
+ {
99
+ style: {
100
+ transition: `opacity 0.2s ease-out ${isPending ? "0.2s" : "0s"}`,
101
+ opacity: isPending && usersCount > 0 ? 0.5 : 1
102
+ },
103
+ children: users.length > 0 ? users.map((user) => {
104
+ const userDisplayName = getBestName(user);
105
+ const dimText = user.status === "InviteRevoked" || user.status === "InviteExpired";
106
+ return /* @__PURE__ */ jsxs(Table.Row, { align: "center", children: [
107
+ /* @__PURE__ */ jsx(Table.RowHeaderCell, { children: /* @__PURE__ */ jsxs(
108
+ Flex,
109
+ {
110
+ align: "center",
111
+ gap: "3",
112
+ overflow: "hidden",
113
+ height: "var(--space-7)",
114
+ children: [
115
+ /* @__PURE__ */ jsx(
116
+ Avatar,
117
+ {
118
+ size: "2",
119
+ fallback: /* @__PURE__ */ jsx(FallbackUserIcon, {}),
120
+ src: user.profilePictureUrl ?? void 0,
121
+ dim: dimText
122
+ }
123
+ ),
124
+ userDisplayName ? /* @__PURE__ */ jsxs(
125
+ Flex,
126
+ {
127
+ direction: "column",
128
+ align: "start",
129
+ height: "var(--space-7)",
130
+ justify: "center",
131
+ overflow: "hidden",
132
+ children: [
133
+ /* @__PURE__ */ jsxs(Flex, { gap: "2", align: "center", minWidth: "0", children: [
134
+ /* @__PURE__ */ jsx(TableCellText, { dim: dimText, children: userDisplayName }),
135
+ /* @__PURE__ */ jsx(UserBadge, { user })
136
+ ] }),
137
+ /* @__PURE__ */ jsx(
138
+ TableCellText,
139
+ {
140
+ level: "secondary",
141
+ title: user.email,
142
+ dim: dimText,
143
+ children: user.email
144
+ }
145
+ )
146
+ ]
147
+ }
148
+ ) : /* @__PURE__ */ jsxs(Flex, { gap: "2", align: "center", minWidth: "0", children: [
149
+ /* @__PURE__ */ jsx(TableCellText, { dim: dimText, title: user.email, children: user.email }),
150
+ /* @__PURE__ */ jsx(UserBadge, { user })
151
+ ] })
152
+ ]
153
+ }
154
+ ) }),
155
+ /* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(
156
+ UserRolesCellContent,
157
+ {
158
+ user,
159
+ isMultipleRolesEnabled,
160
+ dimText
161
+ }
162
+ ) }),
163
+ /* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(LastActive, { user, isHydrated }) }),
164
+ /* @__PURE__ */ jsx(Table.Cell, { justify: "end", children: /* @__PURE__ */ jsx(UserActionsDropdown, { user, children: /* @__PURE__ */ jsxs(IconButton, { title: "User actions", children: [
165
+ /* @__PURE__ */ jsx(VisuallyHidden, { children: "User actions" }),
104
166
  /* @__PURE__ */ jsx(
105
- Avatar,
167
+ "svg",
106
168
  {
107
- size: "2",
108
- fallback: /* @__PURE__ */ jsx(FallbackUserIcon, {}),
109
- src: user.profilePictureUrl ?? void 0,
110
- dim: dimText
111
- }
112
- ),
113
- userDisplayName ? /* @__PURE__ */ jsxs(
114
- Flex,
115
- {
116
- direction: "column",
117
- align: "start",
118
- height: "var(--space-7)",
119
- justify: "center",
120
- overflow: "hidden",
121
- children: [
122
- /* @__PURE__ */ jsxs(Flex, { gap: "2", align: "center", minWidth: "0", children: [
123
- /* @__PURE__ */ jsx(TableCellText, { dim: dimText, children: userDisplayName }),
124
- /* @__PURE__ */ jsx(UserBadge, { user })
125
- ] }),
126
- /* @__PURE__ */ jsx(
127
- TableCellText,
128
- {
129
- level: "secondary",
130
- title: user.email,
131
- dim: dimText,
132
- children: user.email
133
- }
134
- )
135
- ]
136
- }
137
- ) : /* @__PURE__ */ jsxs(Flex, { gap: "2", align: "center", minWidth: "0", children: [
138
- /* @__PURE__ */ jsx(TableCellText, { dim: dimText, title: user.email, children: user.email }),
139
- /* @__PURE__ */ jsx(UserBadge, { user })
140
- ] })
141
- ]
142
- }
143
- ) }),
144
- /* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(
145
- UserRolesCellContent,
146
- {
147
- user,
148
- isMultipleRolesEnabled,
149
- dimText
150
- }
151
- ) }),
152
- /* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(LastActive, { user, isHydrated }) }),
153
- /* @__PURE__ */ jsx(Table.Cell, { justify: "end", children: /* @__PURE__ */ jsx(UserActionsDropdown, { user, children: /* @__PURE__ */ jsxs(IconButton, { title: "User actions", children: [
154
- /* @__PURE__ */ jsx(VisuallyHidden, { children: "User actions" }),
155
- /* @__PURE__ */ jsx(
156
- "svg",
157
- {
158
- xmlns: "http://www.w3.org/2000/svg",
159
- fill: "none",
160
- viewBox: "0 0 24 24",
161
- width: "16",
162
- height: "16",
163
- strokeWidth: 1.5,
164
- stroke: "currentColor",
165
- "aria-hidden": true,
166
- children: /* @__PURE__ */ jsx(
167
- "path",
168
- {
169
- strokeLinecap: "round",
170
- strokeLinejoin: "round",
171
- 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"
169
+ xmlns: "http://www.w3.org/2000/svg",
170
+ fill: "none",
171
+ viewBox: "0 0 24 24",
172
+ width: "16",
173
+ height: "16",
174
+ strokeWidth: 1.5,
175
+ stroke: "currentColor",
176
+ "aria-hidden": true,
177
+ children: /* @__PURE__ */ jsx(
178
+ "path",
179
+ {
180
+ strokeLinecap: "round",
181
+ strokeLinejoin: "round",
182
+ 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"
183
+ }
184
+ )
172
185
  }
173
186
  )
174
- }
175
- )
176
- ] }) }) })
177
- ] }, user.id);
178
- }) : /* @__PURE__ */ jsx(Table.Row, { align: "center", children: /* @__PURE__ */ jsx(Table.Cell, { colSpan: 4, children: /* @__PURE__ */ jsx(UsersManagementEmptyState, { isPending }) }) })
179
- }
180
- )
181
- ] }),
182
- showPagination ? /* @__PURE__ */ jsxs(Flex, { gap: "2", justify: "end", children: [
183
- /* @__PURE__ */ jsx(
184
- SecondaryButton,
185
- {
186
- size: "1",
187
- disabled: !pagination.after || isPending || void 0,
188
- loading: deferredLoading,
189
- onClick: () => {
190
- if (pagination.after) {
191
- dispatch({
192
- type: "SET_PAGINATION",
193
- pagination: { after: pagination.after }
194
- });
187
+ ] }) }) })
188
+ ] }, user.id);
189
+ }) : /* @__PURE__ */ jsx(Table.Row, { align: "center", children: /* @__PURE__ */ jsx(Table.Cell, { colSpan: 4, children: /* @__PURE__ */ jsx(UsersManagementEmptyState, { isPending }) }) })
195
190
  }
196
- },
197
- children: "Previous"
198
- }
199
- ),
200
- /* @__PURE__ */ jsx(
201
- SecondaryButton,
202
- {
203
- size: "1",
204
- disabled: !pagination.before || isPending || void 0,
205
- loading: deferredLoading,
206
- onClick: () => {
207
- if (pagination.before) {
208
- dispatch({
209
- type: "SET_PAGINATION",
210
- pagination: { before: pagination.before }
211
- });
191
+ )
192
+ ] }),
193
+ showPagination ? /* @__PURE__ */ jsxs(Flex, { gap: "2", justify: "end", children: [
194
+ /* @__PURE__ */ jsx(
195
+ SecondaryButton,
196
+ {
197
+ size: "1",
198
+ disabled: !pagination.after || isPending || void 0,
199
+ loading: deferredLoading,
200
+ onClick: () => {
201
+ if (pagination.after) {
202
+ dispatch({
203
+ type: "SET_PAGINATION",
204
+ pagination: { after: pagination.after }
205
+ });
206
+ }
207
+ },
208
+ children: "Previous"
212
209
  }
213
- },
214
- children: "Next"
215
- }
216
- )
217
- ] }) : null
218
- ] }) });
219
- };
220
- const UsersManagementLoading = () => {
221
- return /* @__PURE__ */ jsxs(UsersManagementRoot, { children: [
222
- /* @__PURE__ */ jsxs(Grid, { columns: "1fr auto", gap: "2", children: [
223
- /* @__PURE__ */ jsxs(Flex, { gap: "2", align: "center", children: [
224
- /* @__PURE__ */ jsx(Skeleton, { loading: true, children: /* @__PURE__ */ jsx(Box, { flexBasis: "380px", flexGrow: "0", flexShrink: "1", children: /* @__PURE__ */ jsx(TextField, {}) }) }),
225
- /* @__PURE__ */ jsx(Skeleton, { loading: true, children: /* @__PURE__ */ jsx(Box, { flexGrow: "0", flexShrink: "0", children: /* @__PURE__ */ jsxs(Select.Root, { value: "all", onValueChange: () => void 0, children: [
226
- /* @__PURE__ */ jsx(SelectTrigger, { children: "All" }),
227
- /* @__PURE__ */ jsx(SelectContent, { children: /* @__PURE__ */ jsx(SelectItem, { value: "all", children: "All" }) })
228
- ] }) }) })
229
- ] }),
230
- /* @__PURE__ */ jsx(Skeleton, { loading: true, children: /* @__PURE__ */ jsx(Box, { flexGrow: "0", flexShrink: "0", style: { placeSelf: "flex-end" }, children: /* @__PURE__ */ jsx(PrimaryButton, { children: "Invite user" }) }) })
231
- ] }),
232
- /* @__PURE__ */ jsxs(Table.Root, { variant: "ghost", size: "1", children: [
233
- /* @__PURE__ */ jsx(Table.Header, { children: /* @__PURE__ */ jsxs(Table.Row, { children: [
234
- /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "260px", children: /* @__PURE__ */ jsx(Skeleton, { loading: true, children: "User" }) }),
235
- /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "100px", children: /* @__PURE__ */ jsx(Skeleton, { children: "Role" }) }),
236
- /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "140px", children: /* @__PURE__ */ jsx(Skeleton, { children: "Last active" }) }),
237
- /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "28px" })
238
- ] }) }),
239
- /* @__PURE__ */ jsx(Table.Body, { children: Array.from({ length: USER_ROW_LIMIT }, (_, index) => /* @__PURE__ */ jsxs(Table.Row, { align: "center", children: [
240
- /* @__PURE__ */ jsx(Table.RowHeaderCell, { children: /* @__PURE__ */ jsxs(Flex, { align: "center", gap: "3", children: [
241
- /* @__PURE__ */ jsx(Skeleton, { children: /* @__PURE__ */ jsx(Avatar, { size: "2", fallback: "F" }) }),
242
- /* @__PURE__ */ jsxs(
243
- Flex,
210
+ ),
211
+ /* @__PURE__ */ jsx(
212
+ SecondaryButton,
244
213
  {
245
- direction: "column",
246
- height: "var(--space-7)",
247
- justify: "center",
248
- children: [
249
- /* @__PURE__ */ jsx(Skeleton, { width: "180px", height: "var(--space-4)" }),
250
- /* @__PURE__ */ jsx(Skeleton, { width: "90px", height: "var(--space-3)", mt: "1" })
251
- ]
214
+ size: "1",
215
+ disabled: !pagination.before || isPending || void 0,
216
+ loading: deferredLoading,
217
+ onClick: () => {
218
+ if (pagination.before) {
219
+ dispatch({
220
+ type: "SET_PAGINATION",
221
+ pagination: { before: pagination.before }
222
+ });
223
+ }
224
+ },
225
+ children: "Next"
252
226
  }
253
227
  )
254
- ] }) }),
255
- /* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Flex, { wrap: "wrap", gap: "1", children: /* @__PURE__ */ jsx(Skeleton, { width: "75px", height: "var(--space-4)" }) }) }),
256
- /* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Skeleton, { width: "120px", height: "var(--space-4)" }) }),
257
- /* @__PURE__ */ jsx(Table.Cell, { justify: "end" })
258
- ] }, index)) })
259
- ] }),
260
- /* @__PURE__ */ jsxs(Flex, { gap: "2", justify: "end", children: [
261
- /* @__PURE__ */ jsx(Skeleton, { loading: true, children: /* @__PURE__ */ jsx(SecondaryButton, { size: "1", children: "Previous" }) }),
262
- /* @__PURE__ */ jsx(Skeleton, { loading: true, children: /* @__PURE__ */ jsx(SecondaryButton, { size: "1", children: "Next" }) })
263
- ] })
264
- ] });
228
+ ] }) : null
229
+ ]
230
+ }
231
+ ) });
265
232
  };
266
- function UsersManagementError({ error }) {
267
- return /* @__PURE__ */ jsx(
268
- UsersManagementRoot,
233
+ const UsersManagementLoading = (props) => {
234
+ return /* @__PURE__ */ jsxs(
235
+ Flex,
269
236
  {
270
- direction: "row",
271
- justify: "center",
272
- align: "center",
273
- minHeight: "676px",
274
- children: /* @__PURE__ */ jsx(GenericError, { error })
237
+ direction: "column",
238
+ gap: "3",
239
+ ...getWidgetRootDomProps("loading", props),
240
+ children: [
241
+ /* @__PURE__ */ jsxs(Grid, { columns: "1fr auto", gap: "2", children: [
242
+ /* @__PURE__ */ jsxs(Flex, { gap: "2", align: "center", children: [
243
+ /* @__PURE__ */ jsx(Skeleton, { loading: true, children: /* @__PURE__ */ jsx(Box, { flexBasis: "380px", flexGrow: "0", flexShrink: "1", children: /* @__PURE__ */ jsx(TextField, {}) }) }),
244
+ /* @__PURE__ */ jsx(Skeleton, { loading: true, children: /* @__PURE__ */ jsx(Box, { flexGrow: "0", flexShrink: "0", children: /* @__PURE__ */ jsxs(Select.Root, { value: "all", onValueChange: () => void 0, children: [
245
+ /* @__PURE__ */ jsx(SelectTrigger, { children: "All" }),
246
+ /* @__PURE__ */ jsx(SelectContent, { children: /* @__PURE__ */ jsx(SelectItem, { value: "all", children: "All" }) })
247
+ ] }) }) })
248
+ ] }),
249
+ /* @__PURE__ */ jsx(Skeleton, { loading: true, children: /* @__PURE__ */ jsx(Box, { flexGrow: "0", flexShrink: "0", style: { placeSelf: "flex-end" }, children: /* @__PURE__ */ jsx(PrimaryButton, { children: "Invite user" }) }) })
250
+ ] }),
251
+ /* @__PURE__ */ jsxs(Table.Root, { variant: "ghost", size: "1", children: [
252
+ /* @__PURE__ */ jsx(Table.Header, { children: /* @__PURE__ */ jsxs(Table.Row, { children: [
253
+ /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "260px", children: /* @__PURE__ */ jsx(Skeleton, { loading: true, children: "User" }) }),
254
+ /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "100px", children: /* @__PURE__ */ jsx(Skeleton, { children: "Role" }) }),
255
+ /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "140px", children: /* @__PURE__ */ jsx(Skeleton, { children: "Last active" }) }),
256
+ /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "28px" })
257
+ ] }) }),
258
+ /* @__PURE__ */ jsx(Table.Body, { children: Array.from({ length: USER_ROW_LIMIT }, (_, index) => /* @__PURE__ */ jsxs(Table.Row, { align: "center", children: [
259
+ /* @__PURE__ */ jsx(Table.RowHeaderCell, { children: /* @__PURE__ */ jsxs(Flex, { align: "center", gap: "3", children: [
260
+ /* @__PURE__ */ jsx(Skeleton, { children: /* @__PURE__ */ jsx(Avatar, { size: "2", fallback: "F" }) }),
261
+ /* @__PURE__ */ jsxs(
262
+ Flex,
263
+ {
264
+ direction: "column",
265
+ height: "var(--space-7)",
266
+ justify: "center",
267
+ children: [
268
+ /* @__PURE__ */ jsx(Skeleton, { width: "180px", height: "var(--space-4)" }),
269
+ /* @__PURE__ */ jsx(Skeleton, { width: "90px", height: "var(--space-3)", mt: "1" })
270
+ ]
271
+ }
272
+ )
273
+ ] }) }),
274
+ /* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Flex, { wrap: "wrap", gap: "1", children: /* @__PURE__ */ jsx(Skeleton, { width: "75px", height: "var(--space-4)" }) }) }),
275
+ /* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Skeleton, { width: "120px", height: "var(--space-4)" }) }),
276
+ /* @__PURE__ */ jsx(Table.Cell, { justify: "end" })
277
+ ] }, index)) })
278
+ ] }),
279
+ /* @__PURE__ */ jsxs(Flex, { gap: "2", justify: "end", children: [
280
+ /* @__PURE__ */ jsx(Skeleton, { loading: true, children: /* @__PURE__ */ jsx(SecondaryButton, { size: "1", children: "Previous" }) }),
281
+ /* @__PURE__ */ jsx(Skeleton, { loading: true, children: /* @__PURE__ */ jsx(SecondaryButton, { size: "1", children: "Next" }) })
282
+ ] })
283
+ ]
275
284
  }
276
285
  );
277
- }
278
- function UsersManagementRoot({
279
- className,
280
- children,
281
- ...props
282
- }) {
286
+ };
287
+ const UsersManagementError = ({
288
+ error,
289
+ ...domProps
290
+ }) => {
283
291
  return /* @__PURE__ */ jsx(
284
- Flex,
292
+ GenericError,
285
293
  {
286
- className: clsx("woswidgets-widget", className),
287
- "data-woswidgets-widget-id": "users-management",
288
- direction: "column",
289
- gap: "3",
290
- ...props,
291
- children
294
+ error,
295
+ minHeight: "676px",
296
+ ...getWidgetRootDomProps("error", domProps)
292
297
  }
293
298
  );
294
- }
299
+ };
295
300
  function UserBadge({ user }) {
296
301
  if (user.isLoggedInUser) {
297
302
  return /* @__PURE__ */ jsx(Badge, { color: "gray", style: { userSelect: "none" }, children: "You" });
@@ -462,6 +467,14 @@ function UserRolesCellContent({
462
467
  }
463
468
  return /* @__PURE__ */ jsx(TableCellText, { dim: dimText, children: user.roles?.[0]?.name });
464
469
  }
470
+ function getWidgetRootDomProps(state, domProps) {
471
+ return getDomProps({
472
+ ...domProps,
473
+ isWidgetRoot: true,
474
+ widgetId: "users-management",
475
+ widgetState: state
476
+ });
477
+ }
465
478
  export {
466
479
  UsersManagement,
467
480
  UsersManagementError,