@workos-inc/widgets 1.6.1 → 1.7.0-pre.1

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 (281) hide show
  1. package/CHANGELOG.md +3 -1
  2. package/dist/cjs/admin-portal-domain-verification.client.d.cts +11 -0
  3. package/dist/cjs/admin-portal-sso-connection.client.d.cts +11 -0
  4. package/dist/cjs/alert-dialog-BlG3_awx.d.cts +25 -0
  5. package/dist/cjs/api-keys.client.d.cts +11 -0
  6. package/dist/cjs/dialog-C15qCLN3.d.cts +23 -0
  7. package/dist/cjs/dropdown-menu-BQ5LtvdR.d.cts +48 -0
  8. package/dist/cjs/index.d.cts +8 -0
  9. package/dist/cjs/lib/add-mfa-dialog.cjs +22 -14
  10. package/dist/cjs/lib/add-mfa-dialog.cjs.map +1 -1
  11. package/dist/cjs/lib/add-mfa-dialog.d.cts +2 -2
  12. package/dist/cjs/lib/admin-portal-domain-verification.cjs +6 -8
  13. package/dist/cjs/lib/admin-portal-domain-verification.cjs.map +1 -1
  14. package/dist/cjs/lib/admin-portal-domain-verification.d.cts +11 -0
  15. package/dist/cjs/lib/admin-portal-sso-connection.cjs +7 -8
  16. package/dist/cjs/lib/admin-portal-sso-connection.cjs.map +1 -1
  17. package/dist/cjs/lib/admin-portal-sso-connection.d.cts +11 -0
  18. package/dist/cjs/lib/api-keys/api-key-details-dialog.cjs +3 -3
  19. package/dist/cjs/lib/api-keys/api-key-details-dialog.cjs.map +1 -1
  20. package/dist/cjs/lib/api-keys/api-keys-search.cjs +2 -6
  21. package/dist/cjs/lib/api-keys/api-keys-search.cjs.map +1 -1
  22. package/dist/cjs/lib/api-keys/api-keys-table.cjs +18 -19
  23. package/dist/cjs/lib/api-keys/api-keys-table.cjs.map +1 -1
  24. package/dist/cjs/lib/api-keys/api-keys.cjs +2 -2
  25. package/dist/cjs/lib/api-keys/api-keys.cjs.map +1 -1
  26. package/dist/cjs/lib/api-keys/api-keys.d.cts +12 -0
  27. package/dist/cjs/lib/api-keys/create-api-key.cjs +20 -14
  28. package/dist/cjs/lib/api-keys/create-api-key.cjs.map +1 -1
  29. package/dist/cjs/lib/api-keys/revoke-api-key-dialog.cjs +7 -7
  30. package/dist/cjs/lib/api-keys/revoke-api-key-dialog.cjs.map +1 -1
  31. package/dist/cjs/lib/api-keys/skeleton-table.cjs +3 -2
  32. package/dist/cjs/lib/api-keys/skeleton-table.cjs.map +1 -1
  33. package/dist/cjs/lib/change-password-dialog.cjs +11 -9
  34. package/dist/cjs/lib/change-password-dialog.cjs.map +1 -1
  35. package/dist/cjs/lib/change-password-dialog.d.cts +2 -2
  36. package/dist/cjs/lib/copy-button.cjs +51 -29
  37. package/dist/cjs/lib/copy-button.cjs.map +1 -1
  38. package/dist/cjs/lib/copy-button.d.cts +22 -4
  39. package/dist/cjs/lib/delete-domain-dialog.cjs +8 -7
  40. package/dist/cjs/lib/delete-domain-dialog.cjs.map +1 -1
  41. package/dist/cjs/lib/delete-user-dialog.cjs +15 -7
  42. package/dist/cjs/lib/delete-user-dialog.cjs.map +1 -1
  43. package/dist/cjs/lib/delete-user-dialog.d.cts +2 -2
  44. package/dist/cjs/lib/domain-actions.cjs +8 -8
  45. package/dist/cjs/lib/domain-actions.cjs.map +1 -1
  46. package/dist/cjs/lib/edit-user-profile-dialog.cjs +10 -9
  47. package/dist/cjs/lib/edit-user-profile-dialog.cjs.map +1 -1
  48. package/dist/cjs/lib/edit-user-profile-dialog.d.cts +2 -2
  49. package/dist/cjs/lib/edit-user-role-dialog.cjs +15 -15
  50. package/dist/cjs/lib/edit-user-role-dialog.cjs.map +1 -1
  51. package/dist/cjs/lib/edit-user-role-dialog.d.cts +2 -2
  52. package/dist/cjs/lib/elements/alert-dialog.cjs +76 -0
  53. package/dist/cjs/lib/elements/alert-dialog.cjs.map +1 -0
  54. package/dist/cjs/lib/elements/alert-dialog.d.cts +3 -0
  55. package/dist/cjs/lib/elements/dialog.cjs +74 -0
  56. package/dist/cjs/lib/elements/dialog.cjs.map +1 -0
  57. package/dist/cjs/lib/elements/dialog.d.cts +3 -0
  58. package/dist/cjs/lib/elements/dropdown-menu.cjs +162 -0
  59. package/dist/cjs/lib/elements/dropdown-menu.cjs.map +1 -0
  60. package/dist/cjs/lib/elements/dropdown-menu.d.cts +3 -0
  61. package/dist/cjs/lib/elements/select.cjs +112 -0
  62. package/dist/cjs/lib/elements/select.cjs.map +1 -0
  63. package/dist/cjs/lib/elements/select.d.cts +4 -0
  64. package/dist/cjs/lib/elements/utils.cjs +54 -0
  65. package/dist/cjs/lib/elements/utils.cjs.map +1 -0
  66. package/dist/cjs/lib/elements/utils.d.cts +15 -0
  67. package/dist/cjs/lib/elements.cjs +73 -219
  68. package/dist/cjs/lib/elements.cjs.map +1 -1
  69. package/dist/cjs/lib/elements.d.cts +16 -13
  70. package/dist/cjs/lib/elevated-access.cjs +18 -10
  71. package/dist/cjs/lib/elevated-access.cjs.map +1 -1
  72. package/dist/cjs/lib/empty-state.d.cts +12 -0
  73. package/dist/cjs/lib/invite-user-dialog.cjs +13 -12
  74. package/dist/cjs/lib/invite-user-dialog.cjs.map +1 -1
  75. package/dist/cjs/lib/logout-all-sessions-dialog.cjs +7 -6
  76. package/dist/cjs/lib/logout-all-sessions-dialog.cjs.map +1 -1
  77. package/dist/cjs/lib/logout-all-sessions-dialog.d.cts +2 -2
  78. package/dist/cjs/lib/logout-dialog.cjs +7 -6
  79. package/dist/cjs/lib/logout-dialog.cjs.map +1 -1
  80. package/dist/cjs/lib/logout-dialog.d.cts +2 -2
  81. package/dist/cjs/lib/organization-switcher.cjs +38 -20
  82. package/dist/cjs/lib/organization-switcher.cjs.map +1 -1
  83. package/dist/cjs/lib/organization-switcher.d.cts +16 -2
  84. package/dist/cjs/lib/otp-input.d.cts +8 -0
  85. package/dist/cjs/lib/pipes.cjs +31 -42
  86. package/dist/cjs/lib/pipes.cjs.map +1 -1
  87. package/dist/cjs/lib/pipes.d.cts +12 -0
  88. package/dist/cjs/lib/resend-invite-dialog.cjs +23 -13
  89. package/dist/cjs/lib/resend-invite-dialog.cjs.map +1 -1
  90. package/dist/cjs/lib/resend-invite-dialog.d.cts +2 -2
  91. package/dist/cjs/lib/reset-mfa-dialog.cjs +9 -8
  92. package/dist/cjs/lib/reset-mfa-dialog.cjs.map +1 -1
  93. package/dist/cjs/lib/reset-mfa-dialog.d.cts +2 -2
  94. package/dist/cjs/lib/revoke-invite-dialog.cjs +17 -8
  95. package/dist/cjs/lib/revoke-invite-dialog.cjs.map +1 -1
  96. package/dist/cjs/lib/revoke-invite-dialog.d.cts +2 -2
  97. package/dist/cjs/lib/save-button.cjs +3 -2
  98. package/dist/cjs/lib/save-button.cjs.map +1 -1
  99. package/dist/cjs/lib/save-button.d.cts +12 -1
  100. package/dist/cjs/lib/set-password-dialog.cjs +11 -9
  101. package/dist/cjs/lib/set-password-dialog.cjs.map +1 -1
  102. package/dist/cjs/lib/set-password-dialog.d.cts +2 -2
  103. package/dist/cjs/lib/user-actions-dropdown.cjs +9 -8
  104. package/dist/cjs/lib/user-actions-dropdown.cjs.map +1 -1
  105. package/dist/cjs/lib/user-profile.cjs +1 -1
  106. package/dist/cjs/lib/user-profile.cjs.map +1 -1
  107. package/dist/cjs/lib/user-profile.d.cts +11 -0
  108. package/dist/cjs/lib/user-security.cjs +3 -3
  109. package/dist/cjs/lib/user-security.cjs.map +1 -1
  110. package/dist/cjs/lib/user-security.d.cts +12 -0
  111. package/dist/cjs/lib/user-sessions.cjs +3 -11
  112. package/dist/cjs/lib/user-sessions.cjs.map +1 -1
  113. package/dist/cjs/lib/user-sessions.d.cts +12 -0
  114. package/dist/cjs/lib/users-filter.cjs +5 -6
  115. package/dist/cjs/lib/users-filter.cjs.map +1 -1
  116. package/dist/cjs/lib/users-filter.d.cts +2 -2
  117. package/dist/cjs/lib/users-management.cjs +22 -34
  118. package/dist/cjs/lib/users-management.cjs.map +1 -1
  119. package/dist/cjs/lib/users-management.d.cts +11 -0
  120. package/dist/cjs/lib/users-search.cjs +2 -6
  121. package/dist/cjs/lib/users-search.cjs.map +1 -1
  122. package/dist/cjs/lib/utils.cjs +25 -2
  123. package/dist/cjs/lib/utils.cjs.map +1 -1
  124. package/dist/cjs/lib/utils.d.cts +17 -3
  125. package/dist/cjs/lib/view-dns-record-dialog.cjs +9 -8
  126. package/dist/cjs/lib/view-dns-record-dialog.cjs.map +1 -1
  127. package/dist/cjs/lib/widgets-context.d.cts +8 -0
  128. package/dist/cjs/organization-switcher.client.cjs +33 -5
  129. package/dist/cjs/organization-switcher.client.cjs.map +1 -1
  130. package/dist/cjs/organization-switcher.client.d.cts +11 -0
  131. package/dist/cjs/pipes.client.d.cts +11 -0
  132. package/dist/cjs/select-KR89Qnvm.d.cts +30 -0
  133. package/dist/cjs/user-profile.client.d.cts +11 -0
  134. package/dist/cjs/user-security.client.d.cts +11 -0
  135. package/dist/cjs/user-sessions.client.d.cts +11 -0
  136. package/dist/cjs/users-management.client.d.cts +11 -0
  137. package/dist/cjs/utils.cjs +59 -0
  138. package/dist/cjs/utils.cjs.map +1 -0
  139. package/dist/cjs/utils.d.cts +3 -0
  140. package/dist/cjs/workos-widgets.client.d.cts +8 -0
  141. package/dist/css/lib/provider-icon.css +6 -0
  142. package/dist/esm/admin-portal-domain-verification.client.d.ts +11 -0
  143. package/dist/esm/admin-portal-sso-connection.client.d.ts +11 -0
  144. package/dist/esm/alert-dialog-BlG3_awx.d.ts +25 -0
  145. package/dist/esm/api-keys.client.d.ts +11 -0
  146. package/dist/esm/dialog-C15qCLN3.d.ts +23 -0
  147. package/dist/esm/dropdown-menu-BQ5LtvdR.d.ts +48 -0
  148. package/dist/esm/index.d.ts +8 -0
  149. package/dist/esm/lib/add-mfa-dialog.d.ts +2 -2
  150. package/dist/esm/lib/add-mfa-dialog.js +16 -9
  151. package/dist/esm/lib/add-mfa-dialog.js.map +1 -1
  152. package/dist/esm/lib/admin-portal-domain-verification.d.ts +11 -0
  153. package/dist/esm/lib/admin-portal-domain-verification.js +6 -8
  154. package/dist/esm/lib/admin-portal-domain-verification.js.map +1 -1
  155. package/dist/esm/lib/admin-portal-sso-connection.d.ts +11 -0
  156. package/dist/esm/lib/admin-portal-sso-connection.js +8 -9
  157. package/dist/esm/lib/admin-portal-sso-connection.js.map +1 -1
  158. package/dist/esm/lib/api-keys/api-key-details-dialog.js +3 -3
  159. package/dist/esm/lib/api-keys/api-key-details-dialog.js.map +1 -1
  160. package/dist/esm/lib/api-keys/api-keys-search.js +2 -6
  161. package/dist/esm/lib/api-keys/api-keys-search.js.map +1 -1
  162. package/dist/esm/lib/api-keys/api-keys-table.js +18 -32
  163. package/dist/esm/lib/api-keys/api-keys-table.js.map +1 -1
  164. package/dist/esm/lib/api-keys/api-keys.d.ts +12 -0
  165. package/dist/esm/lib/api-keys/api-keys.js +2 -2
  166. package/dist/esm/lib/api-keys/api-keys.js.map +1 -1
  167. package/dist/esm/lib/api-keys/create-api-key.js +17 -14
  168. package/dist/esm/lib/api-keys/create-api-key.js.map +1 -1
  169. package/dist/esm/lib/api-keys/revoke-api-key-dialog.js +4 -4
  170. package/dist/esm/lib/api-keys/revoke-api-key-dialog.js.map +1 -1
  171. package/dist/esm/lib/api-keys/skeleton-table.js +2 -1
  172. package/dist/esm/lib/api-keys/skeleton-table.js.map +1 -1
  173. package/dist/esm/lib/change-password-dialog.d.ts +2 -2
  174. package/dist/esm/lib/change-password-dialog.js +8 -12
  175. package/dist/esm/lib/change-password-dialog.js.map +1 -1
  176. package/dist/esm/lib/copy-button.d.ts +22 -4
  177. package/dist/esm/lib/copy-button.js +49 -28
  178. package/dist/esm/lib/copy-button.js.map +1 -1
  179. package/dist/esm/lib/delete-domain-dialog.js +4 -3
  180. package/dist/esm/lib/delete-domain-dialog.js.map +1 -1
  181. package/dist/esm/lib/delete-user-dialog.d.ts +2 -2
  182. package/dist/esm/lib/delete-user-dialog.js +13 -15
  183. package/dist/esm/lib/delete-user-dialog.js.map +1 -1
  184. package/dist/esm/lib/domain-actions.js +4 -4
  185. package/dist/esm/lib/domain-actions.js.map +1 -1
  186. package/dist/esm/lib/edit-user-profile-dialog.d.ts +2 -2
  187. package/dist/esm/lib/edit-user-profile-dialog.js +7 -12
  188. package/dist/esm/lib/edit-user-profile-dialog.js.map +1 -1
  189. package/dist/esm/lib/edit-user-role-dialog.d.ts +2 -2
  190. package/dist/esm/lib/edit-user-role-dialog.js +9 -19
  191. package/dist/esm/lib/edit-user-role-dialog.js.map +1 -1
  192. package/dist/esm/lib/elements/alert-dialog.d.ts +3 -0
  193. package/dist/esm/lib/elements/alert-dialog.js +45 -0
  194. package/dist/esm/lib/elements/alert-dialog.js.map +1 -0
  195. package/dist/esm/lib/elements/dialog.d.ts +3 -0
  196. package/dist/esm/lib/elements/dialog.js +43 -0
  197. package/dist/esm/lib/elements/dialog.js.map +1 -0
  198. package/dist/esm/lib/elements/dropdown-menu.d.ts +3 -0
  199. package/dist/esm/lib/elements/dropdown-menu.js +131 -0
  200. package/dist/esm/lib/elements/dropdown-menu.js.map +1 -0
  201. package/dist/esm/lib/elements/select.d.ts +4 -0
  202. package/dist/esm/lib/elements/select.js +77 -0
  203. package/dist/esm/lib/elements/select.js.map +1 -0
  204. package/dist/esm/lib/elements/utils.d.ts +15 -0
  205. package/dist/esm/lib/elements/utils.js +20 -0
  206. package/dist/esm/lib/elements/utils.js.map +1 -0
  207. package/dist/esm/lib/elements.d.ts +16 -13
  208. package/dist/esm/lib/elements.js +71 -215
  209. package/dist/esm/lib/elements.js.map +1 -1
  210. package/dist/esm/lib/elevated-access.js +14 -6
  211. package/dist/esm/lib/elevated-access.js.map +1 -1
  212. package/dist/esm/lib/empty-state.d.ts +12 -0
  213. package/dist/esm/lib/invite-user-dialog.js +10 -24
  214. package/dist/esm/lib/invite-user-dialog.js.map +1 -1
  215. package/dist/esm/lib/logout-all-sessions-dialog.d.ts +2 -2
  216. package/dist/esm/lib/logout-all-sessions-dialog.js +6 -9
  217. package/dist/esm/lib/logout-all-sessions-dialog.js.map +1 -1
  218. package/dist/esm/lib/logout-dialog.d.ts +2 -2
  219. package/dist/esm/lib/logout-dialog.js +6 -9
  220. package/dist/esm/lib/logout-dialog.js.map +1 -1
  221. package/dist/esm/lib/organization-switcher.d.ts +16 -2
  222. package/dist/esm/lib/organization-switcher.js +33 -13
  223. package/dist/esm/lib/organization-switcher.js.map +1 -1
  224. package/dist/esm/lib/otp-input.d.ts +8 -0
  225. package/dist/esm/lib/pipes.d.ts +12 -0
  226. package/dist/esm/lib/pipes.js +27 -47
  227. package/dist/esm/lib/pipes.js.map +1 -1
  228. package/dist/esm/lib/resend-invite-dialog.d.ts +2 -2
  229. package/dist/esm/lib/resend-invite-dialog.js +17 -20
  230. package/dist/esm/lib/resend-invite-dialog.js.map +1 -1
  231. package/dist/esm/lib/reset-mfa-dialog.d.ts +2 -2
  232. package/dist/esm/lib/reset-mfa-dialog.js +6 -9
  233. package/dist/esm/lib/reset-mfa-dialog.js.map +1 -1
  234. package/dist/esm/lib/revoke-invite-dialog.d.ts +2 -2
  235. package/dist/esm/lib/revoke-invite-dialog.js +14 -15
  236. package/dist/esm/lib/revoke-invite-dialog.js.map +1 -1
  237. package/dist/esm/lib/save-button.d.ts +12 -1
  238. package/dist/esm/lib/save-button.js +4 -9
  239. package/dist/esm/lib/save-button.js.map +1 -1
  240. package/dist/esm/lib/set-password-dialog.d.ts +2 -2
  241. package/dist/esm/lib/set-password-dialog.js +8 -12
  242. package/dist/esm/lib/set-password-dialog.js.map +1 -1
  243. package/dist/esm/lib/user-actions-dropdown.js +8 -11
  244. package/dist/esm/lib/user-actions-dropdown.js.map +1 -1
  245. package/dist/esm/lib/user-profile.d.ts +11 -0
  246. package/dist/esm/lib/user-profile.js +2 -2
  247. package/dist/esm/lib/user-profile.js.map +1 -1
  248. package/dist/esm/lib/user-security.d.ts +12 -0
  249. package/dist/esm/lib/user-security.js +4 -4
  250. package/dist/esm/lib/user-security.js.map +1 -1
  251. package/dist/esm/lib/user-sessions.d.ts +12 -0
  252. package/dist/esm/lib/user-sessions.js +5 -13
  253. package/dist/esm/lib/user-sessions.js.map +1 -1
  254. package/dist/esm/lib/users-filter.d.ts +2 -2
  255. package/dist/esm/lib/users-filter.js +5 -6
  256. package/dist/esm/lib/users-filter.js.map +1 -1
  257. package/dist/esm/lib/users-management.d.ts +11 -0
  258. package/dist/esm/lib/users-management.js +23 -39
  259. package/dist/esm/lib/users-management.js.map +1 -1
  260. package/dist/esm/lib/users-search.js +2 -6
  261. package/dist/esm/lib/users-search.js.map +1 -1
  262. package/dist/esm/lib/utils.d.ts +17 -3
  263. package/dist/esm/lib/utils.js +24 -2
  264. package/dist/esm/lib/utils.js.map +1 -1
  265. package/dist/esm/lib/view-dns-record-dialog.js +7 -17
  266. package/dist/esm/lib/view-dns-record-dialog.js.map +1 -1
  267. package/dist/esm/lib/widgets-context.d.ts +8 -0
  268. package/dist/esm/organization-switcher.client.d.ts +11 -0
  269. package/dist/esm/organization-switcher.client.js +33 -5
  270. package/dist/esm/organization-switcher.client.js.map +1 -1
  271. package/dist/esm/pipes.client.d.ts +11 -0
  272. package/dist/esm/select-KR89Qnvm.d.ts +30 -0
  273. package/dist/esm/user-profile.client.d.ts +11 -0
  274. package/dist/esm/user-security.client.d.ts +11 -0
  275. package/dist/esm/user-sessions.client.d.ts +11 -0
  276. package/dist/esm/users-management.client.d.ts +11 -0
  277. package/dist/esm/utils.d.ts +3 -0
  278. package/dist/esm/utils.js +25 -0
  279. package/dist/esm/utils.js.map +1 -0
  280. package/dist/esm/workos-widgets.client.d.ts +8 -0
  281. package/package.json +11 -1
@@ -2,6 +2,14 @@ import { Grid } from '@radix-ui/themes';
2
2
  import * as React from 'react';
3
3
  import { TextField } from './elements.cjs';
4
4
  import '@radix-ui/themes/props';
5
+ import '../dialog-C15qCLN3.cjs';
6
+ import '@radix-ui/themes/components/dialog';
7
+ import '../alert-dialog-BlG3_awx.cjs';
8
+ import '@radix-ui/themes/components/alert-dialog';
9
+ import '../dropdown-menu-BQ5LtvdR.cjs';
10
+ import '@radix-ui/themes/components/dropdown-menu';
11
+ import '../select-KR89Qnvm.cjs';
12
+ import '@radix-ui/themes/components/select';
5
13
 
6
14
  type OtpRootProps = React.ComponentPropsWithoutRef<typeof Grid> & {
7
15
  onValueChange?: (value: string) => void;
@@ -64,17 +64,15 @@ function ConnectIntegrationButton({
64
64
  }) {
65
65
  const eventHandler = useOpenDataIntegrationAuthorizeUrl(integration);
66
66
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
67
- import_themes.Button,
67
+ import_elements.Button,
68
68
  {
69
+ variant: "secondary",
69
70
  onClick: async () => {
70
71
  try {
71
72
  await eventHandler();
72
73
  } catch {
73
74
  }
74
75
  },
75
- variant: "outline",
76
- size: "2",
77
- color: "gray",
78
76
  children: "Connect"
79
77
  }
80
78
  );
@@ -88,7 +86,7 @@ function SharedCredentialsConnectIntegrationButton({
88
86
  const logo = settings.data?.logoDarkPath ?? settings.data?.logoLightPath;
89
87
  const appName = settings.data?.teamName ?? "This application";
90
88
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
91
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Dialog.Root, { open, onOpenChange: setOpen, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.Dialog.Content, { maxWidth: "430px", children: [
89
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Dialog.Root, { open, onOpenChange: setOpen, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_elements.Dialog.Content, { maxWidth: "430px", children: [
92
90
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.Flex, { justify: "center", align: "center", gap: "2", mt: "2", children: [
93
91
  logo && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
94
92
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -123,7 +121,7 @@ function SharedCredentialsConnectIntegrationButton({
123
121
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_icons.DotsHorizontalIcon, {}),
124
122
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icon_panel.IconPanel, { color: "panel", style: { width: "48px", height: "48px" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_provider_icon.ProviderIcon, { size: "2", provider: integration.integrationType }) })
125
123
  ] }),
126
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.Dialog.Title, { size: "2", mt: "5", mb: "5", weight: "bold", align: "center", children: [
124
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_elements.Dialog.Title, { size: "2", mt: "5", mb: "5", weight: "bold", align: "center", children: [
127
125
  appName,
128
126
  " uses WorkOS to connect to ",
129
127
  integration.name,
@@ -164,10 +162,11 @@ function SharedCredentialsConnectIntegrationButton({
164
162
  ] })
165
163
  ] }) }),
166
164
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.Flex, { justify: "end", gap: "3", mt: "5", children: [
167
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Dialog.Close, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.SecondaryButton, { children: "Cancel" }) }),
165
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Dialog.Close, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Button, { variant: "secondary", children: "Cancel" }) }),
168
166
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
169
- import_elements.PrimaryButton,
167
+ import_elements.Button,
170
168
  {
169
+ type: "button",
171
170
  onClick: async () => {
172
171
  try {
173
172
  await eventHandler();
@@ -177,22 +176,13 @@ function SharedCredentialsConnectIntegrationButton({
177
176
  },
178
177
  children: [
179
178
  "Connect ",
180
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_icons.ExternalLinkIcon, {})
179
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_icons.ExternalLinkIcon, { "aria-hidden": true })
181
180
  ]
182
181
  }
183
182
  )
184
183
  ] })
185
184
  ] }) }),
186
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
187
- import_themes.Button,
188
- {
189
- onClick: () => setOpen(true),
190
- variant: "outline",
191
- size: "2",
192
- color: "gray",
193
- children: "Connect"
194
- }
195
- )
185
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Button, { variant: "secondary", onClick: () => setOpen(true), children: "Connect" })
196
186
  ] });
197
187
  }
198
188
  function ProviderStatus({ integration }) {
@@ -218,20 +208,11 @@ function ProviderStatus({ integration }) {
218
208
  children: text
219
209
  }
220
210
  ),
221
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.DropdownMenu.Root, { children: [
222
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.DropdownMenu.Trigger, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
223
- import_themes.IconButton,
224
- {
225
- radius: "full",
226
- variant: "ghost",
227
- color: "gray",
228
- title: "Pipe actions",
229
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_icons.DotsHorizontalIcon, {})
230
- }
231
- ) }),
232
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.DropdownMenu.Content, { align: "end", children: [
211
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_elements.DropdownMenu.Root, { children: [
212
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.DropdownMenu.Trigger, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.IconButton, { "aria-label": "Pipe actions", title: "Pipe actions", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_icons.DotsHorizontalIcon, {}) }) }),
213
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_elements.DropdownMenu.Content, { align: "end", children: [
233
214
  integration.installation.state === import_endpoint.DataInstallationState.needs_reauthorization && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
234
- import_themes.DropdownMenu.Item,
215
+ import_elements.DropdownMenu.Item,
235
216
  {
236
217
  onClick: async () => {
237
218
  try {
@@ -241,11 +222,18 @@ function ProviderStatus({ integration }) {
241
222
  },
242
223
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.Flex, { gap: "4", width: "100%", justify: "between", align: "center", children: [
243
224
  "Reauthorize",
244
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_icons.ExternalLinkIcon, {})
225
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_icons.ExternalLinkIcon, { "aria-hidden": true })
245
226
  ] })
246
227
  }
247
228
  ),
248
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.DestructiveMenuItem, { onClick: () => setDisconnectOpen(true), children: "Disconnect account" })
229
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
230
+ import_elements.DropdownMenu.Item,
231
+ {
232
+ variant: "destructive",
233
+ onClick: () => setDisconnectOpen(true),
234
+ children: "Disconnect account"
235
+ }
236
+ )
249
237
  ] })
250
238
  ] })
251
239
  ] })
@@ -283,10 +271,10 @@ function DisconnectAccountDialog({
283
271
  reset();
284
272
  }
285
273
  }, [open, reset]);
286
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.AlertDialog.Root, { open, onOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.AlertDialog.Content, { style: { width: "80vw", maxWidth: "520px" }, children: [
287
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.AlertDialog.Title, { children: "Disconnect account" }),
274
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Root, { open, onOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_elements.AlertDialog.Content, { style: { width: "80vw", maxWidth: "520px" }, children: [
275
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Title, { children: "Disconnect account" }),
288
276
  error && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Callout.Root, { my: "5", color: "red", role: "alert", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Callout.Text, { children: "An error occurred while disconnecting your account. Please refresh the page and try again." }) }),
289
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.AlertDialog.Description, { children: [
277
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_elements.AlertDialog.Description, { children: [
290
278
  "Are you sure you want to disconnect your",
291
279
  " ",
292
280
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Text, { as: "span", weight: "bold", children: integration.name }),
@@ -294,10 +282,11 @@ function DisconnectAccountDialog({
294
282
  "account?"
295
283
  ] }),
296
284
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.Flex, { gap: "3", justify: "end", mt: "5", children: [
297
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.AlertDialog.Cancel, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.SecondaryButton, { children: "Cancel" }) }),
285
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Cancel, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Button, { variant: "secondary", children: "Cancel" }) }),
298
286
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
299
- import_elements.DestructiveButton,
287
+ import_elements.Button,
300
288
  {
289
+ variant: "destructive",
301
290
  disabled: isPending,
302
291
  loading: isPending,
303
292
  onClick: () => deleteDataInstallation({ installationId: installation.id }),
@@ -310,10 +299,10 @@ function DisconnectAccountDialog({
310
299
  const PipesLoading = ({ count, ...domProps }) => {
311
300
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CardList.Root, { ...getWidgetRootDomProps("loading", domProps), children: Array.from({ length: count }).map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CardList.Item, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.Flex, { direction: "row", justify: "between", align: "center", gap: "2", children: [
312
301
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.Flex, { gap: "4", align: "center", children: [
313
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icon_panel.IconPanel, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_provider_icon.ProviderIcon, { provider: "google" }) }) }),
314
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Text, { size: "2", weight: "bold", children: "Google Drive" }) })
302
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icon_panel.IconPanel, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_provider_icon.ProviderIcon, { provider: "google" }) }) }),
303
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Text, { size: "2", weight: "bold", children: "Google Drive" }) })
315
304
  ] }),
316
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Button, { disabled: true, children: "Connect" }) })
305
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Button, { variant: "secondary", disabled: true, children: "Connect" }) })
317
306
  ] }) }, index)) });
318
307
  };
319
308
  const Pipes = ({ integrations, ...domProps }) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/pipes.tsx"],"sourcesContent":["\"use client\";\nimport {\n AlertDialog,\n Button,\n Callout,\n Card,\n Dialog,\n DropdownMenu,\n Flex,\n IconButton,\n Skeleton,\n Text,\n} from \"@radix-ui/themes\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport * as CardList from \"./card-list.js\";\nimport { ProviderIcon } from \"./provider-icon.js\";\nimport {\n DotsHorizontalIcon,\n ExternalLinkIcon,\n GlobeIcon,\n LockClosedIcon,\n} from \"@radix-ui/react-icons\";\nimport {\n DestructiveButton,\n DestructiveMenuItem,\n PrimaryButton,\n SecondaryButton,\n} from \"./elements.js\";\nimport { IconPanel } from \"./icon-panel.js\";\nimport { Status } from \"./status.js\";\nimport {\n DataIntegration,\n DataInstallation,\n useDeleteDataInstallation,\n useGetDataIntegrationAuthorizeUrlHook,\n getMyDataIntegrationsQueryKey,\n DataInstallationState,\n useSettings,\n} from \"../api/endpoint.js\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { GenericError } from \"./generic-error.js\";\nimport { getDomProps, WidgetRootDomProps, WidgetRootState } from \"./utils.js\";\n\ninterface PipesProps extends WidgetRootDomProps {\n integrations: DataIntegration[];\n}\n\nconst useOpenDataIntegrationAuthorizeUrl = (integration: DataIntegration) => {\n const getDataIntegrationAuthorizeUrl =\n useGetDataIntegrationAuthorizeUrlHook();\n const settings = useSettings();\n const baseUrl = settings.data?.authkitOrigin ?? \"\";\n\n return useCallback(async () => {\n // need to do this synchronously in the event handler to avoid popup blocker notifications\n const win = window.open(`${baseUrl}/pipes/redirecting`, \"_blank\");\n // caller will catch\n const { url } = await getDataIntegrationAuthorizeUrl(integration.slug);\n if (win) {\n win.location = url;\n }\n }, [getDataIntegrationAuthorizeUrl, integration.slug, baseUrl]);\n};\n\nfunction ConnectIntegrationButton({\n integration,\n}: {\n integration: DataIntegration;\n}) {\n const eventHandler = useOpenDataIntegrationAuthorizeUrl(integration);\n\n return (\n <Button\n onClick={async () => {\n try {\n await eventHandler();\n } catch {\n // pass - error displayed in new tab\n }\n }}\n variant=\"outline\"\n size=\"2\"\n color=\"gray\"\n >\n Connect\n </Button>\n );\n}\n\nfunction SharedCredentialsConnectIntegrationButton({\n integration,\n}: {\n integration: DataIntegration;\n}) {\n const settings = useSettings();\n const [open, setOpen] = useState(false);\n const eventHandler = useOpenDataIntegrationAuthorizeUrl(integration);\n\n const logo = settings.data?.logoDarkPath ?? settings.data?.logoLightPath;\n const appName = settings.data?.teamName ?? \"This application\";\n\n return (\n <>\n <Dialog.Root open={open} onOpenChange={setOpen}>\n <Dialog.Content maxWidth=\"430px\">\n <Flex justify=\"center\" align=\"center\" gap=\"2\" mt=\"2\">\n {logo && (\n <>\n <IconPanel\n color=\"panel\"\n style={{ width: \"48px\", height: \"48px\" }}\n >\n <ProviderIcon\n size=\"2\"\n provider=\"workos\"\n style={{ backgroundImage: `url(${logo})` }}\n />\n </IconPanel>\n <DotsHorizontalIcon />\n </>\n )}\n <IconPanel\n color=\"panel\"\n style={{\n ...(logo ? { borderWidth: 0 } : undefined),\n width: \"48px\",\n height: \"48px\",\n }}\n >\n <ProviderIcon size=\"2\" provider=\"workos\" />\n </IconPanel>\n <DotsHorizontalIcon />\n <IconPanel color=\"panel\" style={{ width: \"48px\", height: \"48px\" }}>\n <ProviderIcon size=\"2\" provider={integration.integrationType} />\n </IconPanel>\n </Flex>\n <Dialog.Title size=\"2\" mt=\"5\" mb=\"5\" weight={\"bold\"} align=\"center\">\n {appName} uses WorkOS to connect to {integration.name}.\n </Dialog.Title>\n <Card>\n <Flex direction=\"column\" gap=\"4\">\n <Flex gap=\"2\" align=\"center\">\n <IconPanel\n color=\"gray\"\n style={{ width: \"32px\", height: \"32px\" }}\n >\n <GlobeIcon />\n </IconPanel>\n <Flex direction=\"column\">\n <Text size=\"1\" weight=\"bold\">\n You&apos;ll be redirected to sign in with {integration.name}\n .\n </Text>\n <Text size=\"1\">\n Authorize access to connect your account.\n </Text>\n </Flex>\n </Flex>\n <Flex gap=\"2\" align=\"center\">\n <IconPanel\n color=\"gray\"\n style={{ width: \"32px\", height: \"32px\" }}\n >\n <LockClosedIcon />\n </IconPanel>\n <Flex direction=\"column\">\n <Text size=\"1\" weight=\"bold\">\n Your credentials remain secure.\n </Text>\n <Text size=\"1\">WorkOS never sees your credentials.</Text>\n </Flex>\n </Flex>\n </Flex>\n </Card>\n <Flex justify=\"end\" gap=\"3\" mt=\"5\">\n <Dialog.Close>\n <SecondaryButton>Cancel</SecondaryButton>\n </Dialog.Close>\n <PrimaryButton\n onClick={async () => {\n try {\n await eventHandler();\n setOpen(false);\n } catch {\n // pass - error displayed in new tab\n }\n }}\n >\n Connect <ExternalLinkIcon />\n </PrimaryButton>\n </Flex>\n </Dialog.Content>\n </Dialog.Root>\n <Button\n onClick={() => setOpen(true)}\n variant=\"outline\"\n size=\"2\"\n color=\"gray\"\n >\n Connect\n </Button>\n </>\n );\n}\n\nfunction ProviderStatus({ integration }: { integration: DataIntegration }) {\n const [disconnectOpen, setDisconnectOpen] = useState(false);\n const authorizeEventHandler = useOpenDataIntegrationAuthorizeUrl(integration);\n\n if (integration.installation) {\n const text =\n integration.installation.state === DataInstallationState.connected\n ? \"Connected\"\n : \"Requires reauthorization\";\n\n return (\n <>\n <DisconnectAccountDialog\n integration={integration}\n installation={integration.installation}\n open={disconnectOpen}\n onOpenChange={setDisconnectOpen}\n />\n <Flex align=\"center\" gap=\"4\">\n <Status\n state={\n integration.installation.state === DataInstallationState.connected\n ? \"success\"\n : \"error\"\n }\n >\n {text}\n </Status>\n <DropdownMenu.Root>\n <DropdownMenu.Trigger>\n <IconButton\n radius=\"full\"\n variant=\"ghost\"\n color=\"gray\"\n title=\"Pipe actions\"\n >\n <DotsHorizontalIcon />\n </IconButton>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"end\">\n {integration.installation.state ===\n DataInstallationState.needs_reauthorization && (\n <DropdownMenu.Item\n onClick={async () => {\n try {\n await authorizeEventHandler();\n } catch {\n // pass - error displayed in new tab\n }\n }}\n >\n <Flex gap=\"4\" width=\"100%\" justify=\"between\" align=\"center\">\n Reauthorize\n <ExternalLinkIcon />\n </Flex>\n </DropdownMenu.Item>\n )}\n <DestructiveMenuItem onClick={() => setDisconnectOpen(true)}>\n Disconnect account\n </DestructiveMenuItem>\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n </Flex>\n </>\n );\n }\n\n if (integration.credentialsType === \"shared\") {\n return (\n <SharedCredentialsConnectIntegrationButton integration={integration} />\n );\n }\n\n return <ConnectIntegrationButton integration={integration} />;\n}\n\nfunction DisconnectAccountDialog({\n integration,\n installation,\n open,\n onOpenChange,\n}: {\n integration: DataIntegration;\n installation: DataInstallation;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}) {\n const queryClient = useQueryClient();\n const {\n mutate: deleteDataInstallation,\n error,\n reset,\n isPending,\n } = useDeleteDataInstallation({\n mutation: {\n onSuccess: () => {\n onOpenChange(false);\n queryClient.invalidateQueries({\n queryKey: getMyDataIntegrationsQueryKey(),\n });\n },\n },\n });\n\n useEffect(() => {\n if (open) {\n reset();\n }\n }, [open, reset]);\n\n return (\n <AlertDialog.Root open={open} onOpenChange={onOpenChange}>\n <AlertDialog.Content style={{ width: \"80vw\", maxWidth: \"520px\" }}>\n <AlertDialog.Title>Disconnect account</AlertDialog.Title>\n {error && (\n <Callout.Root my=\"5\" color=\"red\" role=\"alert\">\n <Callout.Text>\n An error occurred while disconnecting your account. Please refresh\n the page and try again.\n </Callout.Text>\n </Callout.Root>\n )}\n <AlertDialog.Description>\n Are you sure you want to disconnect your{\" \"}\n <Text as=\"span\" weight=\"bold\">\n {integration.name}\n </Text>{\" \"}\n account?\n </AlertDialog.Description>\n <Flex gap=\"3\" justify=\"end\" mt=\"5\">\n <AlertDialog.Cancel>\n <SecondaryButton>Cancel</SecondaryButton>\n </AlertDialog.Cancel>\n <DestructiveButton\n disabled={isPending}\n loading={isPending}\n onClick={() =>\n deleteDataInstallation({ installationId: installation.id })\n }\n >\n Disconnect\n </DestructiveButton>\n </Flex>\n </AlertDialog.Content>\n </AlertDialog.Root>\n );\n}\n\ninterface PipesLoadingProps extends WidgetRootDomProps {\n count: number;\n}\n\nconst PipesLoading: React.FC<PipesLoadingProps> = ({ count, ...domProps }) => {\n return (\n <CardList.Root {...getWidgetRootDomProps(\"loading\", domProps)}>\n {Array.from({ length: count }).map((_, index) => (\n <CardList.Item key={index}>\n <Flex direction=\"row\" justify=\"between\" align=\"center\" gap=\"2\">\n <Flex gap=\"4\" align=\"center\">\n <Skeleton>\n <IconPanel>\n <ProviderIcon provider=\"google\" />\n </IconPanel>\n </Skeleton>\n <Skeleton>\n <Text size=\"2\" weight=\"bold\">\n Google Drive\n </Text>\n </Skeleton>\n </Flex>\n <Skeleton>\n <Button disabled>Connect</Button>\n </Skeleton>\n </Flex>\n </CardList.Item>\n ))}\n </CardList.Root>\n );\n};\n\nconst Pipes: React.FC<PipesProps> = ({ integrations, ...domProps }) => {\n return (\n <CardList.Root {...getWidgetRootDomProps(\"resolved\", domProps)}>\n {integrations.map((integration) => (\n <CardList.Item key={integration.id}>\n <Flex direction=\"row\" justify=\"between\" align=\"center\" gap=\"2\">\n <Flex gap=\"4\" align=\"center\">\n <IconPanel color=\"panel\">\n <ProviderIcon provider={integration.integrationType} />\n </IconPanel>\n <Text size=\"2\" weight=\"bold\">\n {integration.name}\n </Text>\n </Flex>\n <ProviderStatus integration={integration} />\n </Flex>\n </CardList.Item>\n ))}\n </CardList.Root>\n );\n};\n\ninterface PipesErrorProps extends WidgetRootDomProps {\n error: unknown;\n}\n\nconst PipesError: React.FC<PipesErrorProps> = ({ error, ...domProps }) => {\n return (\n <Card size=\"2\" {...getWidgetRootDomProps(\"error\", domProps)}>\n <GenericError error={error} />\n </Card>\n );\n};\n\nfunction getWidgetRootDomProps(\n state: WidgetRootState,\n domProps: WidgetRootDomProps,\n) {\n return getDomProps({\n ...domProps,\n isWidgetRoot: true,\n widgetId: \"pipes\",\n widgetState: state,\n });\n}\n\nexport type { PipesProps, PipesLoadingProps, PipesErrorProps };\nexport { Pipes, PipesLoading, PipesError };\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/lib/pipes.tsx"],"sourcesContent":["\"use client\";\nimport { Callout, Card, Flex, Text } from \"@radix-ui/themes\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport * as CardList from \"./card-list.js\";\nimport { ProviderIcon } from \"./provider-icon.js\";\nimport {\n DotsHorizontalIcon,\n ExternalLinkIcon,\n GlobeIcon,\n LockClosedIcon,\n} from \"@radix-ui/react-icons\";\nimport {\n AlertDialog,\n Button,\n Dialog,\n DropdownMenu,\n IconButton,\n Skeleton,\n} from \"./elements.js\";\nimport { IconPanel } from \"./icon-panel.js\";\nimport { Status } from \"./status.js\";\nimport {\n DataIntegration,\n DataInstallation,\n useDeleteDataInstallation,\n useGetDataIntegrationAuthorizeUrlHook,\n getMyDataIntegrationsQueryKey,\n DataInstallationState,\n useSettings,\n} from \"../api/endpoint.js\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { GenericError } from \"./generic-error.js\";\nimport { getDomProps, WidgetRootDomProps, WidgetRootState } from \"./utils.js\";\n\ninterface PipesProps extends WidgetRootDomProps {\n integrations: DataIntegration[];\n}\n\nconst useOpenDataIntegrationAuthorizeUrl = (integration: DataIntegration) => {\n const getDataIntegrationAuthorizeUrl =\n useGetDataIntegrationAuthorizeUrlHook();\n const settings = useSettings();\n const baseUrl = settings.data?.authkitOrigin ?? \"\";\n\n return useCallback(async () => {\n // need to do this synchronously in the event handler to avoid popup blocker notifications\n const win = window.open(`${baseUrl}/pipes/redirecting`, \"_blank\");\n // caller will catch\n const { url } = await getDataIntegrationAuthorizeUrl(integration.slug);\n if (win) {\n win.location = url;\n }\n }, [getDataIntegrationAuthorizeUrl, integration.slug, baseUrl]);\n};\n\nfunction ConnectIntegrationButton({\n integration,\n}: {\n integration: DataIntegration;\n}) {\n const eventHandler = useOpenDataIntegrationAuthorizeUrl(integration);\n\n return (\n <Button\n variant=\"secondary\"\n onClick={async () => {\n try {\n await eventHandler();\n } catch {\n // pass - error displayed in new tab\n }\n }}\n >\n Connect\n </Button>\n );\n}\n\nfunction SharedCredentialsConnectIntegrationButton({\n integration,\n}: {\n integration: DataIntegration;\n}) {\n const settings = useSettings();\n const [open, setOpen] = useState(false);\n const eventHandler = useOpenDataIntegrationAuthorizeUrl(integration);\n\n const logo = settings.data?.logoDarkPath ?? settings.data?.logoLightPath;\n const appName = settings.data?.teamName ?? \"This application\";\n\n return (\n <>\n <Dialog.Root open={open} onOpenChange={setOpen}>\n <Dialog.Content maxWidth=\"430px\">\n <Flex justify=\"center\" align=\"center\" gap=\"2\" mt=\"2\">\n {logo && (\n <>\n <IconPanel\n color=\"panel\"\n style={{ width: \"48px\", height: \"48px\" }}\n >\n <ProviderIcon\n size=\"2\"\n provider=\"workos\"\n style={{ backgroundImage: `url(${logo})` }}\n />\n </IconPanel>\n <DotsHorizontalIcon />\n </>\n )}\n <IconPanel\n color=\"panel\"\n style={{\n ...(logo ? { borderWidth: 0 } : undefined),\n width: \"48px\",\n height: \"48px\",\n }}\n >\n <ProviderIcon size=\"2\" provider=\"workos\" />\n </IconPanel>\n <DotsHorizontalIcon />\n <IconPanel color=\"panel\" style={{ width: \"48px\", height: \"48px\" }}>\n <ProviderIcon size=\"2\" provider={integration.integrationType} />\n </IconPanel>\n </Flex>\n <Dialog.Title size=\"2\" mt=\"5\" mb=\"5\" weight={\"bold\"} align=\"center\">\n {appName} uses WorkOS to connect to {integration.name}.\n </Dialog.Title>\n <Card>\n <Flex direction=\"column\" gap=\"4\">\n <Flex gap=\"2\" align=\"center\">\n <IconPanel\n color=\"gray\"\n style={{ width: \"32px\", height: \"32px\" }}\n >\n <GlobeIcon />\n </IconPanel>\n <Flex direction=\"column\">\n <Text size=\"1\" weight=\"bold\">\n You&apos;ll be redirected to sign in with {integration.name}\n .\n </Text>\n <Text size=\"1\">\n Authorize access to connect your account.\n </Text>\n </Flex>\n </Flex>\n <Flex gap=\"2\" align=\"center\">\n <IconPanel\n color=\"gray\"\n style={{ width: \"32px\", height: \"32px\" }}\n >\n <LockClosedIcon />\n </IconPanel>\n <Flex direction=\"column\">\n <Text size=\"1\" weight=\"bold\">\n Your credentials remain secure.\n </Text>\n <Text size=\"1\">WorkOS never sees your credentials.</Text>\n </Flex>\n </Flex>\n </Flex>\n </Card>\n <Flex justify=\"end\" gap=\"3\" mt=\"5\">\n <Dialog.Close>\n <Button variant=\"secondary\">Cancel</Button>\n </Dialog.Close>\n <Button\n type=\"button\"\n onClick={async () => {\n try {\n await eventHandler();\n setOpen(false);\n } catch {\n // pass - error displayed in new tab\n }\n }}\n >\n Connect <ExternalLinkIcon aria-hidden />\n </Button>\n </Flex>\n </Dialog.Content>\n </Dialog.Root>\n <Button variant=\"secondary\" onClick={() => setOpen(true)}>\n Connect\n </Button>\n </>\n );\n}\n\nfunction ProviderStatus({ integration }: { integration: DataIntegration }) {\n const [disconnectOpen, setDisconnectOpen] = useState(false);\n const authorizeEventHandler = useOpenDataIntegrationAuthorizeUrl(integration);\n\n if (integration.installation) {\n const text =\n integration.installation.state === DataInstallationState.connected\n ? \"Connected\"\n : \"Requires reauthorization\";\n\n return (\n <>\n <DisconnectAccountDialog\n integration={integration}\n installation={integration.installation}\n open={disconnectOpen}\n onOpenChange={setDisconnectOpen}\n />\n <Flex align=\"center\" gap=\"4\">\n <Status\n state={\n integration.installation.state === DataInstallationState.connected\n ? \"success\"\n : \"error\"\n }\n >\n {text}\n </Status>\n <DropdownMenu.Root>\n <DropdownMenu.Trigger>\n <IconButton aria-label=\"Pipe actions\" title=\"Pipe actions\">\n <DotsHorizontalIcon />\n </IconButton>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"end\">\n {integration.installation.state ===\n DataInstallationState.needs_reauthorization && (\n <DropdownMenu.Item\n onClick={async () => {\n try {\n await authorizeEventHandler();\n } catch {\n // pass - error displayed in new tab\n }\n }}\n >\n <Flex gap=\"4\" width=\"100%\" justify=\"between\" align=\"center\">\n Reauthorize\n <ExternalLinkIcon aria-hidden />\n </Flex>\n </DropdownMenu.Item>\n )}\n <DropdownMenu.Item\n variant=\"destructive\"\n onClick={() => setDisconnectOpen(true)}\n >\n Disconnect account\n </DropdownMenu.Item>\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n </Flex>\n </>\n );\n }\n\n if (integration.credentialsType === \"shared\") {\n return (\n <SharedCredentialsConnectIntegrationButton integration={integration} />\n );\n }\n\n return <ConnectIntegrationButton integration={integration} />;\n}\n\nfunction DisconnectAccountDialog({\n integration,\n installation,\n open,\n onOpenChange,\n}: {\n integration: DataIntegration;\n installation: DataInstallation;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}) {\n const queryClient = useQueryClient();\n const {\n mutate: deleteDataInstallation,\n error,\n reset,\n isPending,\n } = useDeleteDataInstallation({\n mutation: {\n onSuccess: () => {\n onOpenChange(false);\n queryClient.invalidateQueries({\n queryKey: getMyDataIntegrationsQueryKey(),\n });\n },\n },\n });\n\n useEffect(() => {\n if (open) {\n reset();\n }\n }, [open, reset]);\n\n return (\n <AlertDialog.Root open={open} onOpenChange={onOpenChange}>\n <AlertDialog.Content style={{ width: \"80vw\", maxWidth: \"520px\" }}>\n <AlertDialog.Title>Disconnect account</AlertDialog.Title>\n {error && (\n <Callout.Root my=\"5\" color=\"red\" role=\"alert\">\n <Callout.Text>\n An error occurred while disconnecting your account. Please refresh\n the page and try again.\n </Callout.Text>\n </Callout.Root>\n )}\n <AlertDialog.Description>\n Are you sure you want to disconnect your{\" \"}\n <Text as=\"span\" weight=\"bold\">\n {integration.name}\n </Text>{\" \"}\n account?\n </AlertDialog.Description>\n <Flex gap=\"3\" justify=\"end\" mt=\"5\">\n <AlertDialog.Cancel>\n <Button variant=\"secondary\">Cancel</Button>\n </AlertDialog.Cancel>\n <Button\n variant=\"destructive\"\n disabled={isPending}\n loading={isPending}\n onClick={() =>\n deleteDataInstallation({ installationId: installation.id })\n }\n >\n Disconnect\n </Button>\n </Flex>\n </AlertDialog.Content>\n </AlertDialog.Root>\n );\n}\n\ninterface PipesLoadingProps extends WidgetRootDomProps {\n count: number;\n}\n\nconst PipesLoading: React.FC<PipesLoadingProps> = ({ count, ...domProps }) => {\n return (\n <CardList.Root {...getWidgetRootDomProps(\"loading\", domProps)}>\n {Array.from({ length: count }).map((_, index) => (\n <CardList.Item key={index}>\n <Flex direction=\"row\" justify=\"between\" align=\"center\" gap=\"2\">\n <Flex gap=\"4\" align=\"center\">\n <Skeleton>\n <IconPanel>\n <ProviderIcon provider=\"google\" />\n </IconPanel>\n </Skeleton>\n <Skeleton>\n <Text size=\"2\" weight=\"bold\">\n Google Drive\n </Text>\n </Skeleton>\n </Flex>\n <Skeleton>\n <Button variant=\"secondary\" disabled>\n Connect\n </Button>\n </Skeleton>\n </Flex>\n </CardList.Item>\n ))}\n </CardList.Root>\n );\n};\n\nconst Pipes: React.FC<PipesProps> = ({ integrations, ...domProps }) => {\n return (\n <CardList.Root {...getWidgetRootDomProps(\"resolved\", domProps)}>\n {integrations.map((integration) => (\n <CardList.Item key={integration.id}>\n <Flex direction=\"row\" justify=\"between\" align=\"center\" gap=\"2\">\n <Flex gap=\"4\" align=\"center\">\n <IconPanel color=\"panel\">\n <ProviderIcon provider={integration.integrationType} />\n </IconPanel>\n <Text size=\"2\" weight=\"bold\">\n {integration.name}\n </Text>\n </Flex>\n <ProviderStatus integration={integration} />\n </Flex>\n </CardList.Item>\n ))}\n </CardList.Root>\n );\n};\n\ninterface PipesErrorProps extends WidgetRootDomProps {\n error: unknown;\n}\n\nconst PipesError: React.FC<PipesErrorProps> = ({ error, ...domProps }) => {\n return (\n <Card size=\"2\" {...getWidgetRootDomProps(\"error\", domProps)}>\n <GenericError error={error} />\n </Card>\n );\n};\n\nfunction getWidgetRootDomProps(\n state: WidgetRootState,\n domProps: WidgetRootDomProps,\n) {\n return getDomProps({\n ...domProps,\n isWidgetRoot: true,\n widgetId: \"pipes\",\n widgetState: state,\n });\n}\n\nexport type { PipesProps, PipesLoadingProps, PipesErrorProps };\nexport { Pipes, PipesLoading, PipesError };\n"],"mappings":"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","names":[]}
@@ -2,6 +2,18 @@ import { DataIntegration } from '../api/endpoint.cjs';
2
2
  import { WidgetRootDomProps } from './utils.cjs';
3
3
  import '@tanstack/react-query';
4
4
  import '../api/widgets-api-client.cjs';
5
+ import './elements.cjs';
6
+ import 'react';
7
+ import '@radix-ui/themes';
8
+ import '@radix-ui/themes/props';
9
+ import '../dialog-C15qCLN3.cjs';
10
+ import '@radix-ui/themes/components/dialog';
11
+ import '../alert-dialog-BlG3_awx.cjs';
12
+ import '@radix-ui/themes/components/alert-dialog';
13
+ import '../dropdown-menu-BQ5LtvdR.cjs';
14
+ import '@radix-ui/themes/components/dropdown-menu';
15
+ import '../select-KR89Qnvm.cjs';
16
+ import '@radix-ui/themes/components/select';
5
17
 
6
18
  interface PipesProps extends WidgetRootDomProps {
7
19
  integrations: DataIntegration[];
@@ -57,10 +57,10 @@ function ResendInviteDialog({
57
57
  );
58
58
  };
59
59
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
60
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.AlertDialog.Root, { ...props, children: [
61
- children && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.AlertDialog.Trigger, { children }),
60
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_elements.AlertDialog.Root, { ...props, children: [
61
+ children && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Trigger, { children }),
62
62
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
63
- import_elements.AlertDialogContent,
63
+ import_elements.AlertDialog.Content,
64
64
  {
65
65
  maxWidth: "480px",
66
66
  onOpenAutoFocus: () => {
@@ -69,8 +69,8 @@ function ResendInviteDialog({
69
69
  });
70
70
  },
71
71
  children: [
72
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.AlertDialog.Title, { children: "Resend invite?" }),
73
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Flex, { mb: "4", direction: "column", gap: "3", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.AlertDialog.Description, { children: [
72
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Title, { children: "Resend invite?" }),
73
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Flex, { mb: "4", direction: "column", gap: "3", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_elements.AlertDialog.Description, { children: [
74
74
  "Are you sure you want to resend the invite to",
75
75
  " ",
76
76
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Text, { weight: "bold", children: user.email }),
@@ -85,15 +85,25 @@ function ResendInviteDialog({
85
85
  onSubmitForm();
86
86
  },
87
87
  children: [
88
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.AlertDialog.Cancel, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
89
- import_elements.SecondaryButton,
88
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Cancel, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
89
+ import_elements.Button,
90
90
  {
91
+ type: "button",
92
+ variant: "secondary",
91
93
  ref: cancelButtonRef,
92
94
  disabled: resendInvite.isPending,
93
95
  children: "Cancel"
94
96
  }
95
97
  ) }),
96
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.DestructiveButton, { type: "submit", loading: resendInvite.isPending, children: "Resend" })
98
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
99
+ import_elements.Button,
100
+ {
101
+ variant: "destructive",
102
+ type: "submit",
103
+ loading: resendInvite.isPending,
104
+ children: "Resend"
105
+ }
106
+ )
97
107
  ]
98
108
  }
99
109
  ) })
@@ -103,7 +113,7 @@ function ResendInviteDialog({
103
113
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.VisuallyHidden, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("section", { "aria-live": "polite", children: getMutationErrorMessage(resendInvite.error) }) })
104
114
  ] }),
105
115
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
106
- import_themes.Dialog.Root,
116
+ import_elements.Dialog.Root,
107
117
  {
108
118
  open: successDialogIsOpen,
109
119
  onOpenChange: (isOpen) => {
@@ -113,7 +123,7 @@ function ResendInviteDialog({
113
123
  setSuccessDialogIsOpen(isOpen);
114
124
  },
115
125
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
116
- import_elements.DialogContent,
126
+ import_elements.Dialog.Content,
117
127
  {
118
128
  maxWidth: "360px",
119
129
  onOpenAutoFocus: () => {
@@ -122,13 +132,13 @@ function ResendInviteDialog({
122
132
  });
123
133
  },
124
134
  children: [
125
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Dialog.Title, { children: "Invite sent" }),
126
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.Dialog.Description, { children: [
135
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Dialog.Title, { children: "Invite sent" }),
136
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_elements.Dialog.Description, { children: [
127
137
  "The invite email has been resent to",
128
138
  " ",
129
139
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Text, { weight: "bold", children: user.email })
130
140
  ] }),
131
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Flex, { gap: "3", justify: "end", mt: "5", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Dialog.Close, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.PrimaryButton, { ref: successButtonRef, children: "Close" }) }) })
141
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Flex, { gap: "3", justify: "end", mt: "5", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Dialog.Close, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Button, { ref: successButtonRef, children: "Close" }) }) })
132
142
  ]
133
143
  }
134
144
  )
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/resend-invite-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n AlertDialog,\n Callout,\n Dialog,\n Flex,\n Text,\n VisuallyHidden,\n} from \"@radix-ui/themes\";\nimport * as React from \"react\";\nimport { useResendUserInvite } from \"./api/user.js\";\nimport {\n AlertDialogContent,\n DestructiveButton,\n DialogContent,\n PrimaryButton,\n SecondaryButton,\n} from \"./elements.js\";\nimport { Member } from \"../api/endpoint.js\";\n\ninterface ResendInviteDialogProps extends AlertDialog.RootProps {\n user: Member;\n children?: React.ReactNode;\n}\n\nexport function ResendInviteDialog({\n children,\n user,\n ...props\n}: ResendInviteDialogProps) {\n const resendInvite = useResendUserInvite();\n const cancelButtonRef = React.useRef<HTMLButtonElement>(null);\n const successButtonRef = React.useRef<HTMLButtonElement>(null);\n const [successDialogIsOpen, setSuccessDialogIsOpen] = React.useState(false);\n\n const onSubmitForm = () => {\n resendInvite.mutate(\n { userId: user.id },\n {\n onSuccess: () => {\n setSuccessDialogIsOpen(true);\n },\n },\n );\n };\n\n return (\n <>\n <AlertDialog.Root {...props}>\n {children && <AlertDialog.Trigger>{children}</AlertDialog.Trigger>}\n\n <AlertDialogContent\n maxWidth=\"480px\"\n onOpenAutoFocus={() => {\n requestAnimationFrame(() => {\n cancelButtonRef.current?.focus();\n });\n }}\n >\n <AlertDialog.Title>Resend invite?</AlertDialog.Title>\n <Flex mb=\"4\" direction=\"column\" gap=\"3\">\n <AlertDialog.Description>\n Are you sure you want to resend the invite to{\" \"}\n <Text weight=\"bold\">{user.email}</Text>?\n </AlertDialog.Description>\n </Flex>\n\n {resendInvite.error ? (\n <Callout.Root color=\"red\" mt=\"4\" mb=\"-2\">\n <Callout.Text>\n {getMutationErrorMessage(resendInvite.error)}\n </Callout.Text>\n </Callout.Root>\n ) : null}\n\n <Flex gap=\"3\" justify=\"end\" mt=\"5\" asChild>\n <form\n onSubmit={(event) => {\n event.preventDefault();\n onSubmitForm();\n }}\n >\n <AlertDialog.Cancel>\n <SecondaryButton\n ref={cancelButtonRef}\n disabled={resendInvite.isPending}\n >\n Cancel\n </SecondaryButton>\n </AlertDialog.Cancel>\n <DestructiveButton type=\"submit\" loading={resendInvite.isPending}>\n Resend\n </DestructiveButton>\n </form>\n </Flex>\n </AlertDialogContent>\n\n {/* mirror errors in a live region */}\n <VisuallyHidden asChild>\n <section aria-live=\"polite\">\n {getMutationErrorMessage(resendInvite.error)}\n </section>\n </VisuallyHidden>\n </AlertDialog.Root>\n <Dialog.Root\n open={successDialogIsOpen}\n onOpenChange={(isOpen) => {\n if (!isOpen) {\n props.onOpenChange?.(false);\n }\n setSuccessDialogIsOpen(isOpen);\n }}\n >\n <DialogContent\n maxWidth=\"360px\"\n onOpenAutoFocus={() => {\n requestAnimationFrame(() => {\n successButtonRef.current?.focus();\n });\n }}\n >\n <Dialog.Title>Invite sent</Dialog.Title>\n <Dialog.Description>\n The invite email has been resent to{\" \"}\n <Text weight=\"bold\">{user.email}</Text>\n </Dialog.Description>\n <Flex gap=\"3\" justify=\"end\" mt=\"5\">\n <Dialog.Close>\n <PrimaryButton ref={successButtonRef}>Close</PrimaryButton>\n </Dialog.Close>\n </Flex>\n </DialogContent>\n </Dialog.Root>\n </>\n );\n}\n\nfunction getMutationErrorMessage(error: unknown) {\n if (!error) {\n return \"\";\n }\n // TODO Handle server errors\n return \"There was an error sending the invite. Please try again.\";\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/lib/resend-invite-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport { Callout, Flex, Text, VisuallyHidden } from \"@radix-ui/themes\";\nimport * as React from \"react\";\nimport { useResendUserInvite } from \"./api/user.js\";\nimport { AlertDialog, Button, Dialog } from \"./elements.js\";\nimport { Member } from \"../api/endpoint.js\";\n\ninterface ResendInviteDialogProps extends AlertDialog.RootProps {\n user: Member;\n children?: React.ReactNode;\n}\n\nexport function ResendInviteDialog({\n children,\n user,\n ...props\n}: ResendInviteDialogProps) {\n const resendInvite = useResendUserInvite();\n const cancelButtonRef = React.useRef<HTMLButtonElement>(null);\n const successButtonRef = React.useRef<HTMLButtonElement>(null);\n const [successDialogIsOpen, setSuccessDialogIsOpen] = React.useState(false);\n\n const onSubmitForm = () => {\n resendInvite.mutate(\n { userId: user.id },\n {\n onSuccess: () => {\n setSuccessDialogIsOpen(true);\n },\n },\n );\n };\n\n return (\n <>\n <AlertDialog.Root {...props}>\n {children && <AlertDialog.Trigger>{children}</AlertDialog.Trigger>}\n\n <AlertDialog.Content\n maxWidth=\"480px\"\n onOpenAutoFocus={() => {\n requestAnimationFrame(() => {\n cancelButtonRef.current?.focus();\n });\n }}\n >\n <AlertDialog.Title>Resend invite?</AlertDialog.Title>\n <Flex mb=\"4\" direction=\"column\" gap=\"3\">\n <AlertDialog.Description>\n Are you sure you want to resend the invite to{\" \"}\n <Text weight=\"bold\">{user.email}</Text>?\n </AlertDialog.Description>\n </Flex>\n\n {resendInvite.error ? (\n <Callout.Root color=\"red\" mt=\"4\" mb=\"-2\">\n <Callout.Text>\n {getMutationErrorMessage(resendInvite.error)}\n </Callout.Text>\n </Callout.Root>\n ) : null}\n\n <Flex gap=\"3\" justify=\"end\" mt=\"5\" asChild>\n <form\n onSubmit={(event) => {\n event.preventDefault();\n onSubmitForm();\n }}\n >\n <AlertDialog.Cancel>\n <Button\n type=\"button\"\n variant=\"secondary\"\n ref={cancelButtonRef}\n disabled={resendInvite.isPending}\n >\n Cancel\n </Button>\n </AlertDialog.Cancel>\n <Button\n variant=\"destructive\"\n type=\"submit\"\n loading={resendInvite.isPending}\n >\n Resend\n </Button>\n </form>\n </Flex>\n </AlertDialog.Content>\n\n {/* mirror errors in a live region */}\n <VisuallyHidden asChild>\n <section aria-live=\"polite\">\n {getMutationErrorMessage(resendInvite.error)}\n </section>\n </VisuallyHidden>\n </AlertDialog.Root>\n <Dialog.Root\n open={successDialogIsOpen}\n onOpenChange={(isOpen) => {\n if (!isOpen) {\n props.onOpenChange?.(false);\n }\n setSuccessDialogIsOpen(isOpen);\n }}\n >\n <Dialog.Content\n maxWidth=\"360px\"\n onOpenAutoFocus={() => {\n requestAnimationFrame(() => {\n successButtonRef.current?.focus();\n });\n }}\n >\n <Dialog.Title>Invite sent</Dialog.Title>\n <Dialog.Description>\n The invite email has been resent to{\" \"}\n <Text weight=\"bold\">{user.email}</Text>\n </Dialog.Description>\n <Flex gap=\"3\" justify=\"end\" mt=\"5\">\n <Dialog.Close>\n <Button ref={successButtonRef}>Close</Button>\n </Dialog.Close>\n </Flex>\n </Dialog.Content>\n </Dialog.Root>\n </>\n );\n}\n\nfunction getMutationErrorMessage(error: unknown) {\n if (!error) {\n return \"\";\n }\n // TODO Handle server errors\n return \"There was an error sending the invite. Please try again.\";\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAmCI;AAjCJ,oBAAoD;AACpD,YAAuB;AACvB,kBAAoC;AACpC,sBAA4C;AAQrC,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA4B;AAC1B,QAAM,mBAAe,iCAAoB;AACzC,QAAM,kBAAkB,MAAM,OAA0B,IAAI;AAC5D,QAAM,mBAAmB,MAAM,OAA0B,IAAI;AAC7D,QAAM,CAAC,qBAAqB,sBAAsB,IAAI,MAAM,SAAS,KAAK;AAE1E,QAAM,eAAe,MAAM;AACzB,iBAAa;AAAA,MACX,EAAE,QAAQ,KAAK,GAAG;AAAA,MAClB;AAAA,QACE,WAAW,MAAM;AACf,iCAAuB,IAAI;AAAA,QAC7B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SACE,4EACE;AAAA,iDAAC,4BAAY,MAAZ,EAAkB,GAAG,OACnB;AAAA,kBAAY,4CAAC,4BAAY,SAAZ,EAAqB,UAAS;AAAA,MAE5C;AAAA,QAAC,4BAAY;AAAA,QAAZ;AAAA,UACC,UAAS;AAAA,UACT,iBAAiB,MAAM;AACrB,kCAAsB,MAAM;AAC1B,8BAAgB,SAAS,MAAM;AAAA,YACjC,CAAC;AAAA,UACH;AAAA,UAEA;AAAA,wDAAC,4BAAY,OAAZ,EAAkB,4BAAc;AAAA,YACjC,4CAAC,sBAAK,IAAG,KAAI,WAAU,UAAS,KAAI,KAClC,uDAAC,4BAAY,aAAZ,EAAwB;AAAA;AAAA,cACuB;AAAA,cAC9C,4CAAC,sBAAK,QAAO,QAAQ,eAAK,OAAM;AAAA,cAAO;AAAA,eACzC,GACF;AAAA,YAEC,aAAa,QACZ,4CAAC,sBAAQ,MAAR,EAAa,OAAM,OAAM,IAAG,KAAI,IAAG,MAClC,sDAAC,sBAAQ,MAAR,EACE,kCAAwB,aAAa,KAAK,GAC7C,GACF,IACE;AAAA,YAEJ,4CAAC,sBAAK,KAAI,KAAI,SAAQ,OAAM,IAAG,KAAI,SAAO,MACxC;AAAA,cAAC;AAAA;AAAA,gBACC,UAAU,CAAC,UAAU;AACnB,wBAAM,eAAe;AACrB,+BAAa;AAAA,gBACf;AAAA,gBAEA;AAAA,8DAAC,4BAAY,QAAZ,EACC;AAAA,oBAAC;AAAA;AAAA,sBACC,MAAK;AAAA,sBACL,SAAQ;AAAA,sBACR,KAAK;AAAA,sBACL,UAAU,aAAa;AAAA,sBACxB;AAAA;AAAA,kBAED,GACF;AAAA,kBACA;AAAA,oBAAC;AAAA;AAAA,sBACC,SAAQ;AAAA,sBACR,MAAK;AAAA,sBACL,SAAS,aAAa;AAAA,sBACvB;AAAA;AAAA,kBAED;AAAA;AAAA;AAAA,YACF,GACF;AAAA;AAAA;AAAA,MACF;AAAA,MAGA,4CAAC,gCAAe,SAAO,MACrB,sDAAC,aAAQ,aAAU,UAChB,kCAAwB,aAAa,KAAK,GAC7C,GACF;AAAA,OACF;AAAA,IACA;AAAA,MAAC,uBAAO;AAAA,MAAP;AAAA,QACC,MAAM;AAAA,QACN,cAAc,CAAC,WAAW;AACxB,cAAI,CAAC,QAAQ;AACX,kBAAM,eAAe,KAAK;AAAA,UAC5B;AACA,iCAAuB,MAAM;AAAA,QAC/B;AAAA,QAEA;AAAA,UAAC,uBAAO;AAAA,UAAP;AAAA,YACC,UAAS;AAAA,YACT,iBAAiB,MAAM;AACrB,oCAAsB,MAAM;AAC1B,iCAAiB,SAAS,MAAM;AAAA,cAClC,CAAC;AAAA,YACH;AAAA,YAEA;AAAA,0DAAC,uBAAO,OAAP,EAAa,yBAAW;AAAA,cACzB,6CAAC,uBAAO,aAAP,EAAmB;AAAA;AAAA,gBACkB;AAAA,gBACpC,4CAAC,sBAAK,QAAO,QAAQ,eAAK,OAAM;AAAA,iBAClC;AAAA,cACA,4CAAC,sBAAK,KAAI,KAAI,SAAQ,OAAM,IAAG,KAC7B,sDAAC,uBAAO,OAAP,EACC,sDAAC,0BAAO,KAAK,kBAAkB,mBAAK,GACtC,GACF;AAAA;AAAA;AAAA,QACF;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAEA,SAAS,wBAAwB,OAAgB;AAC/C,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AAEA,SAAO;AACT;","names":[]}
@@ -1,11 +1,11 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { AlertDialog } from '@radix-ui/themes';
3
2
  import * as React from 'react';
3
+ import { RootProps } from '@radix-ui/themes/components/alert-dialog';
4
4
  import { Member } from '../api/endpoint.cjs';
5
5
  import '@tanstack/react-query';
6
6
  import '../api/widgets-api-client.cjs';
7
7
 
8
- interface ResendInviteDialogProps extends AlertDialog.RootProps {
8
+ interface ResendInviteDialogProps extends RootProps {
9
9
  user: Member;
10
10
  children?: React.ReactNode;
11
11
  }
@@ -50,9 +50,9 @@ function ResetMfaDialog({
50
50
  const handleClose = React.useCallback(() => {
51
51
  setOpen(false);
52
52
  }, []);
53
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.AlertDialog.Root, { ...props, open, onOpenChange: setOpen, children: [
54
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.AlertDialog.Trigger, { children }),
55
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialogContent, { maxWidth: "480px", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elevated_access.ElevatedAccess, { type: "alert", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Content, { onClose: handleClose, isPasswordSet }) }) })
53
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_elements.AlertDialog.Root, { ...props, open, onOpenChange: setOpen, children: [
54
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Trigger, { children }),
55
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Content, { maxWidth: "480px", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elevated_access.ElevatedAccess, { type: "alert", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Content, { onClose: handleClose, isPasswordSet }) }) })
56
56
  ] });
57
57
  }
58
58
  function Content({
@@ -68,8 +68,8 @@ function Content({
68
68
  securitySettings.update("Mfa", false);
69
69
  });
70
70
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
71
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.AlertDialog.Title, { children: "Disable multi-factor authentication?" }),
72
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.AlertDialog.Description, { children: [
71
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Title, { children: "Disable multi-factor authentication?" }),
72
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_elements.AlertDialog.Description, { children: [
73
73
  "Turning off MFA will remove the additional layer of security on your account.",
74
74
  " ",
75
75
  isPasswordSet ? "We will only ask for your password during sign-in." : "We will not ask for additional verification during sign-in."
@@ -82,9 +82,10 @@ function Content({
82
82
  onSubmitForm();
83
83
  },
84
84
  children: [
85
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.AlertDialog.Cancel, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
86
- import_elements.SecondaryButton,
85
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Cancel, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
86
+ import_elements.Button,
87
87
  {
88
+ variant: "secondary",
88
89
  disabled: resetMfa.isPending || resetMfa.isSuccess,
89
90
  children: "Cancel"
90
91
  }
@@ -96,7 +97,7 @@ function Content({
96
97
  loading: resetMfa.isPending,
97
98
  done: resetMfa.isSuccess,
98
99
  onDone: onClose,
99
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.DestructiveButton, { type: "submit", children: "Disable" })
100
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Button, { variant: "destructive", type: "submit", children: "Disable" })
100
101
  }
101
102
  )
102
103
  ]
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/reset-mfa-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { AlertDialog, Flex } from \"@radix-ui/themes\";\nimport { type ReactNode } from \"react\";\nimport {\n AlertDialogContent,\n DestructiveButton,\n SecondaryButton,\n} from \"./elements.js\";\nimport { useDeleteTotpFactors } from \"../api/endpoint.js\";\nimport { useSecuritySettings } from \"./use-security-settings.js\";\nimport { ElevatedAccess } from \"./elevated-access.js\";\nimport { SaveButton } from \"./save-button.js\";\nimport { useDialogClose } from \"./use-dialog-close.js\";\n\ninterface ResetMfaDialogProps extends AlertDialog.RootProps {\n children?: ReactNode;\n isPasswordSet: boolean;\n}\n\nexport function ResetMfaDialog({\n children,\n isPasswordSet,\n ...props\n}: ResetMfaDialogProps) {\n const [open, setOpen] = React.useState(false);\n\n const handleClose = React.useCallback(() => {\n setOpen(false);\n }, []);\n\n return (\n <AlertDialog.Root {...props} open={open} onOpenChange={setOpen}>\n <AlertDialog.Trigger>{children}</AlertDialog.Trigger>\n\n <AlertDialogContent maxWidth=\"480px\">\n <ElevatedAccess type=\"alert\">\n <Content onClose={handleClose} isPasswordSet={isPasswordSet} />\n </ElevatedAccess>\n </AlertDialogContent>\n </AlertDialog.Root>\n );\n}\n\nfunction Content({\n onClose,\n isPasswordSet,\n}: {\n onClose: () => void;\n isPasswordSet: boolean;\n}) {\n const securitySettings = useSecuritySettings();\n const resetMfa = useDeleteTotpFactors();\n\n const onSubmitForm = () => {\n resetMfa.mutate();\n };\n\n useDialogClose(resetMfa.isSuccess, () => {\n securitySettings.update(\"Mfa\", false);\n });\n\n return (\n <>\n <AlertDialog.Title>\n Disable multi-factor authentication?\n </AlertDialog.Title>\n <AlertDialog.Description>\n Turning off MFA will remove the additional layer of security on your\n account.{\" \"}\n {isPasswordSet\n ? \"We will only ask for your password during sign-in.\"\n : \"We will not ask for additional verification during sign-in.\"}\n </AlertDialog.Description>\n\n <Flex gap=\"3\" justify=\"end\" mt=\"5\" asChild>\n <form\n onSubmit={(event) => {\n event.preventDefault();\n onSubmitForm();\n }}\n >\n <AlertDialog.Cancel>\n <SecondaryButton\n disabled={resetMfa.isPending || resetMfa.isSuccess}\n >\n Cancel\n </SecondaryButton>\n </AlertDialog.Cancel>\n\n <SaveButton\n asChild\n loading={resetMfa.isPending}\n done={resetMfa.isSuccess}\n onDone={onClose}\n >\n <DestructiveButton type=\"submit\">Disable</DestructiveButton>\n </SaveButton>\n </form>\n </Flex>\n </>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAiCI;AA/BJ,YAAuB;AACvB,oBAAkC;AAElC,sBAIO;AACP,sBAAqC;AACrC,mCAAoC;AACpC,6BAA+B;AAC/B,yBAA2B;AAC3B,8BAA+B;AAOxB,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAwB;AACtB,QAAM,CAAC,MAAM,OAAO,IAAI,MAAM,SAAS,KAAK;AAE5C,QAAM,cAAc,MAAM,YAAY,MAAM;AAC1C,YAAQ,KAAK;AAAA,EACf,GAAG,CAAC,CAAC;AAEL,SACE,6CAAC,0BAAY,MAAZ,EAAkB,GAAG,OAAO,MAAY,cAAc,SACrD;AAAA,gDAAC,0BAAY,SAAZ,EAAqB,UAAS;AAAA,IAE/B,4CAAC,sCAAmB,UAAS,SAC3B,sDAAC,yCAAe,MAAK,SACnB,sDAAC,WAAQ,SAAS,aAAa,eAA8B,GAC/D,GACF;AAAA,KACF;AAEJ;AAEA,SAAS,QAAQ;AAAA,EACf;AAAA,EACA;AACF,GAGG;AACD,QAAM,uBAAmB,kDAAoB;AAC7C,QAAM,eAAW,sCAAqB;AAEtC,QAAM,eAAe,MAAM;AACzB,aAAS,OAAO;AAAA,EAClB;AAEA,8CAAe,SAAS,WAAW,MAAM;AACvC,qBAAiB,OAAO,OAAO,KAAK;AAAA,EACtC,CAAC;AAED,SACE,4EACE;AAAA,gDAAC,0BAAY,OAAZ,EAAkB,kDAEnB;AAAA,IACA,6CAAC,0BAAY,aAAZ,EAAwB;AAAA;AAAA,MAEd;AAAA,MACR,gBACG,uDACA;AAAA,OACN;AAAA,IAEA,4CAAC,sBAAK,KAAI,KAAI,SAAQ,OAAM,IAAG,KAAI,SAAO,MACxC;AAAA,MAAC;AAAA;AAAA,QACC,UAAU,CAAC,UAAU;AACnB,gBAAM,eAAe;AACrB,uBAAa;AAAA,QACf;AAAA,QAEA;AAAA,sDAAC,0BAAY,QAAZ,EACC;AAAA,YAAC;AAAA;AAAA,cACC,UAAU,SAAS,aAAa,SAAS;AAAA,cAC1C;AAAA;AAAA,UAED,GACF;AAAA,UAEA;AAAA,YAAC;AAAA;AAAA,cACC,SAAO;AAAA,cACP,SAAS,SAAS;AAAA,cAClB,MAAM,SAAS;AAAA,cACf,QAAQ;AAAA,cAER,sDAAC,qCAAkB,MAAK,UAAS,qBAAO;AAAA;AAAA,UAC1C;AAAA;AAAA;AAAA,IACF,GACF;AAAA,KACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/lib/reset-mfa-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Flex } from \"@radix-ui/themes\";\nimport { type ReactNode } from \"react\";\nimport { AlertDialog, Button } from \"./elements.js\";\nimport { useDeleteTotpFactors } from \"../api/endpoint.js\";\nimport { useSecuritySettings } from \"./use-security-settings.js\";\nimport { ElevatedAccess } from \"./elevated-access.js\";\nimport { SaveButton } from \"./save-button.js\";\nimport { useDialogClose } from \"./use-dialog-close.js\";\n\ninterface ResetMfaDialogProps extends AlertDialog.RootProps {\n children?: ReactNode;\n isPasswordSet: boolean;\n}\n\nexport function ResetMfaDialog({\n children,\n isPasswordSet,\n ...props\n}: ResetMfaDialogProps) {\n const [open, setOpen] = React.useState(false);\n\n const handleClose = React.useCallback(() => {\n setOpen(false);\n }, []);\n\n return (\n <AlertDialog.Root {...props} open={open} onOpenChange={setOpen}>\n <AlertDialog.Trigger>{children}</AlertDialog.Trigger>\n\n <AlertDialog.Content maxWidth=\"480px\">\n <ElevatedAccess type=\"alert\">\n <Content onClose={handleClose} isPasswordSet={isPasswordSet} />\n </ElevatedAccess>\n </AlertDialog.Content>\n </AlertDialog.Root>\n );\n}\n\nfunction Content({\n onClose,\n isPasswordSet,\n}: {\n onClose: () => void;\n isPasswordSet: boolean;\n}) {\n const securitySettings = useSecuritySettings();\n const resetMfa = useDeleteTotpFactors();\n\n const onSubmitForm = () => {\n resetMfa.mutate();\n };\n\n useDialogClose(resetMfa.isSuccess, () => {\n securitySettings.update(\"Mfa\", false);\n });\n\n return (\n <>\n <AlertDialog.Title>\n Disable multi-factor authentication?\n </AlertDialog.Title>\n <AlertDialog.Description>\n Turning off MFA will remove the additional layer of security on your\n account.{\" \"}\n {isPasswordSet\n ? \"We will only ask for your password during sign-in.\"\n : \"We will not ask for additional verification during sign-in.\"}\n </AlertDialog.Description>\n\n <Flex gap=\"3\" justify=\"end\" mt=\"5\" asChild>\n <form\n onSubmit={(event) => {\n event.preventDefault();\n onSubmitForm();\n }}\n >\n <AlertDialog.Cancel>\n <Button\n variant=\"secondary\"\n disabled={resetMfa.isPending || resetMfa.isSuccess}\n >\n Cancel\n </Button>\n </AlertDialog.Cancel>\n\n <SaveButton\n asChild\n loading={resetMfa.isPending}\n done={resetMfa.isSuccess}\n onDone={onClose}\n >\n <Button variant=\"destructive\" type=\"submit\">\n Disable\n </Button>\n </SaveButton>\n </form>\n </Flex>\n </>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA6BI;AA3BJ,YAAuB;AACvB,oBAAqB;AAErB,sBAAoC;AACpC,sBAAqC;AACrC,mCAAoC;AACpC,6BAA+B;AAC/B,yBAA2B;AAC3B,8BAA+B;AAOxB,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAwB;AACtB,QAAM,CAAC,MAAM,OAAO,IAAI,MAAM,SAAS,KAAK;AAE5C,QAAM,cAAc,MAAM,YAAY,MAAM;AAC1C,YAAQ,KAAK;AAAA,EACf,GAAG,CAAC,CAAC;AAEL,SACE,6CAAC,4BAAY,MAAZ,EAAkB,GAAG,OAAO,MAAY,cAAc,SACrD;AAAA,gDAAC,4BAAY,SAAZ,EAAqB,UAAS;AAAA,IAE/B,4CAAC,4BAAY,SAAZ,EAAoB,UAAS,SAC5B,sDAAC,yCAAe,MAAK,SACnB,sDAAC,WAAQ,SAAS,aAAa,eAA8B,GAC/D,GACF;AAAA,KACF;AAEJ;AAEA,SAAS,QAAQ;AAAA,EACf;AAAA,EACA;AACF,GAGG;AACD,QAAM,uBAAmB,kDAAoB;AAC7C,QAAM,eAAW,sCAAqB;AAEtC,QAAM,eAAe,MAAM;AACzB,aAAS,OAAO;AAAA,EAClB;AAEA,8CAAe,SAAS,WAAW,MAAM;AACvC,qBAAiB,OAAO,OAAO,KAAK;AAAA,EACtC,CAAC;AAED,SACE,4EACE;AAAA,gDAAC,4BAAY,OAAZ,EAAkB,kDAEnB;AAAA,IACA,6CAAC,4BAAY,aAAZ,EAAwB;AAAA;AAAA,MAEd;AAAA,MACR,gBACG,uDACA;AAAA,OACN;AAAA,IAEA,4CAAC,sBAAK,KAAI,KAAI,SAAQ,OAAM,IAAG,KAAI,SAAO,MACxC;AAAA,MAAC;AAAA;AAAA,QACC,UAAU,CAAC,UAAU;AACnB,gBAAM,eAAe;AACrB,uBAAa;AAAA,QACf;AAAA,QAEA;AAAA,sDAAC,4BAAY,QAAZ,EACC;AAAA,YAAC;AAAA;AAAA,cACC,SAAQ;AAAA,cACR,UAAU,SAAS,aAAa,SAAS;AAAA,cAC1C;AAAA;AAAA,UAED,GACF;AAAA,UAEA;AAAA,YAAC;AAAA;AAAA,cACC,SAAO;AAAA,cACP,SAAS,SAAS;AAAA,cAClB,MAAM,SAAS;AAAA,cACf,QAAQ;AAAA,cAER,sDAAC,0BAAO,SAAQ,eAAc,MAAK,UAAS,qBAE5C;AAAA;AAAA,UACF;AAAA;AAAA;AAAA,IACF,GACF;AAAA,KACF;AAEJ;","names":[]}
@@ -1,8 +1,8 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { AlertDialog } from '@radix-ui/themes';
3
2
  import { ReactNode } from 'react';
3
+ import { RootProps } from '@radix-ui/themes/components/alert-dialog';
4
4
 
5
- interface ResetMfaDialogProps extends AlertDialog.RootProps {
5
+ interface ResetMfaDialogProps extends RootProps {
6
6
  children?: ReactNode;
7
7
  isPasswordSet: boolean;
8
8
  }
@@ -44,10 +44,10 @@ function RevokeInviteDialog({
44
44
  }
45
45
  );
46
46
  };
47
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.AlertDialog.Root, { ...props, children: [
48
- children && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.AlertDialog.Trigger, { children }),
47
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_elements.AlertDialog.Root, { ...props, children: [
48
+ children && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Trigger, { children }),
49
49
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
50
- import_elements.AlertDialogContent,
50
+ import_elements.AlertDialog.Content,
51
51
  {
52
52
  maxWidth: "480px",
53
53
  onOpenAutoFocus: () => {
@@ -56,8 +56,8 @@ function RevokeInviteDialog({
56
56
  });
57
57
  },
58
58
  children: [
59
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.AlertDialog.Title, { children: "Revoke invite?" }),
60
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Flex, { mb: "4", direction: "column", gap: "3", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.AlertDialog.Description, { children: [
59
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Title, { children: "Revoke invite?" }),
60
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Flex, { mb: "4", direction: "column", gap: "3", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_elements.AlertDialog.Description, { children: [
61
61
  "Are you sure you want to revoke the invite to",
62
62
  " ",
63
63
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Text, { weight: "bold", children: user.email }),
@@ -72,15 +72,24 @@ function RevokeInviteDialog({
72
72
  onSubmitForm();
73
73
  },
74
74
  children: [
75
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.AlertDialog.Cancel, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
76
- import_elements.SecondaryButton,
75
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Cancel, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
76
+ import_elements.Button,
77
77
  {
78
+ variant: "secondary",
78
79
  ref: cancelButtonRef,
79
80
  disabled: revokeInvite.isPending,
80
81
  children: "Cancel"
81
82
  }
82
83
  ) }),
83
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.DestructiveButton, { type: "submit", loading: revokeInvite.isPending, children: "Revoke" })
84
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
85
+ import_elements.Button,
86
+ {
87
+ variant: "destructive",
88
+ type: "submit",
89
+ loading: revokeInvite.isPending,
90
+ children: "Revoke"
91
+ }
92
+ )
84
93
  ]
85
94
  }
86
95
  ) })