@workos-inc/widgets 1.4.2 → 1.5.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 (870) hide show
  1. package/CHANGELOG.md +19 -8
  2. package/dist/cjs/admin-portal-domain-verification.client.cjs +114 -0
  3. package/dist/cjs/admin-portal-domain-verification.client.cjs.map +1 -0
  4. package/dist/cjs/admin-portal-domain-verification.client.d.cts +14 -0
  5. package/dist/cjs/admin-portal-sso-connection-client.cjs +268 -0
  6. package/dist/cjs/admin-portal-sso-connection-client.cjs.map +1 -0
  7. package/dist/cjs/admin-portal-sso-connection-client.d.cts +12 -0
  8. package/dist/cjs/api/api-provider.cjs +126 -0
  9. package/dist/cjs/api/api-provider.cjs.map +1 -0
  10. package/dist/cjs/api/api-provider.d.cts +32 -0
  11. package/dist/cjs/api/constants.cjs +29 -0
  12. package/dist/cjs/api/constants.cjs.map +1 -0
  13. package/dist/cjs/api/constants.d.cts +3 -0
  14. package/dist/cjs/api/endpoint.cjs +1648 -0
  15. package/dist/cjs/api/endpoint.cjs.map +1 -0
  16. package/dist/cjs/api/endpoint.d.cts +1687 -0
  17. package/dist/cjs/api/errors.cjs +57 -0
  18. package/dist/cjs/api/errors.cjs.map +1 -0
  19. package/dist/cjs/api/{errors.d.ts → errors.d.cts} +5 -5
  20. package/dist/cjs/api/utils.cjs +78 -0
  21. package/dist/cjs/api/utils.cjs.map +1 -0
  22. package/dist/cjs/api/utils.d.cts +16 -0
  23. package/dist/cjs/api/widgets-api-client.cjs +92 -0
  24. package/dist/cjs/api/widgets-api-client.cjs.map +1 -0
  25. package/dist/cjs/api/{widgets-api-client.d.ts → widgets-api-client.d.cts} +8 -7
  26. package/dist/cjs/api-keys-client.cjs +77 -0
  27. package/dist/cjs/api-keys-client.cjs.map +1 -0
  28. package/dist/cjs/api-keys-client.d.cts +10 -0
  29. package/dist/cjs/index.cjs +67 -0
  30. package/dist/cjs/index.cjs.map +1 -0
  31. package/dist/cjs/index.d.cts +26 -0
  32. package/dist/cjs/lib/add-mfa-dialog.cjs +335 -0
  33. package/dist/cjs/lib/add-mfa-dialog.cjs.map +1 -0
  34. package/dist/cjs/lib/add-mfa-dialog.d.cts +11 -0
  35. package/dist/cjs/lib/admin-portal-domain-verification.cjs +133 -0
  36. package/dist/cjs/lib/admin-portal-domain-verification.cjs.map +1 -0
  37. package/dist/cjs/lib/admin-portal-domain-verification.d.cts +20 -0
  38. package/dist/cjs/lib/admin-portal-sso-connection.cjs +312 -0
  39. package/dist/cjs/lib/admin-portal-sso-connection.cjs.map +1 -0
  40. package/dist/cjs/lib/admin-portal-sso-connection.d.cts +42 -0
  41. package/dist/cjs/lib/api/api-key.cjs +65 -0
  42. package/dist/cjs/lib/api/api-key.cjs.map +1 -0
  43. package/dist/cjs/lib/api/api-key.d.cts +16 -0
  44. package/dist/cjs/lib/api/config.cjs +38 -0
  45. package/dist/cjs/lib/api/config.cjs.map +1 -0
  46. package/dist/cjs/lib/api/{config.d.ts → config.d.cts} +4 -3
  47. package/dist/cjs/lib/api/user.cjs +113 -0
  48. package/dist/cjs/lib/api/user.cjs.map +1 -0
  49. package/dist/cjs/lib/api/user.d.cts +26 -0
  50. package/dist/cjs/lib/api-keys/api-key-details-card.cjs +61 -0
  51. package/dist/cjs/lib/api-keys/api-key-details-card.cjs.map +1 -0
  52. package/dist/cjs/lib/api-keys/api-key-details-card.d.cts +11 -0
  53. package/dist/cjs/lib/api-keys/api-key-details-dialog.cjs +79 -0
  54. package/dist/cjs/lib/api-keys/api-key-details-dialog.cjs.map +1 -0
  55. package/dist/cjs/lib/api-keys/api-key-details-dialog.d.cts +13 -0
  56. package/dist/cjs/lib/api-keys/api-keys-context.cjs +85 -0
  57. package/dist/cjs/lib/api-keys/api-keys-context.cjs.map +1 -0
  58. package/dist/cjs/lib/api-keys/api-keys-context.d.cts +19 -0
  59. package/dist/cjs/lib/api-keys/api-keys-search-provider.cjs +79 -0
  60. package/dist/cjs/lib/api-keys/api-keys-search-provider.cjs.map +1 -0
  61. package/dist/cjs/lib/api-keys/api-keys-search-provider.d.cts +12 -0
  62. package/dist/cjs/lib/api-keys/api-keys-search.cjs +99 -0
  63. package/dist/cjs/lib/api-keys/api-keys-search.cjs.map +1 -0
  64. package/dist/cjs/lib/api-keys/api-keys-search.d.cts +6 -0
  65. package/dist/cjs/lib/api-keys/api-keys-state.cjs +157 -0
  66. package/dist/cjs/lib/api-keys/api-keys-state.cjs.map +1 -0
  67. package/dist/cjs/lib/api-keys/api-keys-state.d.cts +31 -0
  68. package/dist/cjs/lib/api-keys/api-keys-table.cjs +180 -0
  69. package/dist/cjs/lib/api-keys/api-keys-table.cjs.map +1 -0
  70. package/dist/cjs/lib/api-keys/api-keys-table.d.cts +10 -0
  71. package/dist/cjs/lib/api-keys/api-keys.cjs +111 -0
  72. package/dist/cjs/lib/api-keys/api-keys.cjs.map +1 -0
  73. package/dist/cjs/lib/api-keys/api-keys.d.cts +11 -0
  74. package/dist/cjs/lib/api-keys/create-api-key.cjs +365 -0
  75. package/dist/cjs/lib/api-keys/create-api-key.cjs.map +1 -0
  76. package/dist/cjs/lib/api-keys/create-api-key.d.cts +6 -0
  77. package/dist/cjs/lib/api-keys/relative-time.cjs +42 -0
  78. package/dist/cjs/lib/api-keys/relative-time.cjs.map +1 -0
  79. package/dist/cjs/lib/api-keys/relative-time.d.cts +7 -0
  80. package/dist/cjs/lib/api-keys/revoke-api-key-dialog.cjs +86 -0
  81. package/dist/cjs/lib/api-keys/revoke-api-key-dialog.cjs.map +1 -0
  82. package/dist/cjs/lib/api-keys/revoke-api-key-dialog.d.cts +12 -0
  83. package/dist/cjs/lib/api-keys/skeleton-table.cjs +39 -0
  84. package/dist/cjs/lib/api-keys/skeleton-table.cjs.map +1 -0
  85. package/dist/cjs/lib/api-keys/skeleton-table.d.cts +9 -0
  86. package/dist/cjs/lib/card-list.cjs +47 -0
  87. package/dist/cjs/lib/card-list.cjs.map +1 -0
  88. package/dist/cjs/lib/card-list.d.cts +9 -0
  89. package/dist/cjs/lib/change-password-dialog.cjs +238 -0
  90. package/dist/cjs/lib/change-password-dialog.cjs.map +1 -0
  91. package/dist/cjs/lib/change-password-dialog.d.cts +10 -0
  92. package/dist/cjs/lib/constants.cjs +35 -0
  93. package/dist/cjs/lib/constants.cjs.map +1 -0
  94. package/dist/cjs/lib/constants.d.cts +5 -0
  95. package/dist/cjs/lib/copy-button.cjs +74 -0
  96. package/dist/cjs/lib/copy-button.cjs.map +1 -0
  97. package/dist/cjs/lib/copy-button.d.cts +10 -0
  98. package/dist/cjs/lib/delete-domain-dialog.cjs +72 -0
  99. package/dist/cjs/lib/delete-domain-dialog.cjs.map +1 -0
  100. package/dist/cjs/lib/delete-domain-dialog.d.cts +16 -0
  101. package/dist/cjs/lib/delete-user-dialog.cjs +96 -0
  102. package/dist/cjs/lib/delete-user-dialog.cjs.map +1 -0
  103. package/dist/cjs/lib/delete-user-dialog.d.cts +16 -0
  104. package/dist/cjs/lib/domain-actions.cjs +89 -0
  105. package/dist/cjs/lib/domain-actions.cjs.map +1 -0
  106. package/dist/cjs/lib/domain-actions.d.cts +13 -0
  107. package/dist/cjs/lib/domain-item.cjs +86 -0
  108. package/dist/cjs/lib/domain-item.cjs.map +1 -0
  109. package/dist/cjs/lib/domain-item.d.cts +13 -0
  110. package/dist/cjs/lib/edit-user-profile-dialog.cjs +170 -0
  111. package/dist/cjs/lib/edit-user-profile-dialog.cjs.map +1 -0
  112. package/dist/cjs/lib/edit-user-profile-dialog.d.cts +14 -0
  113. package/dist/cjs/lib/edit-user-role-dialog.cjs +321 -0
  114. package/dist/cjs/lib/edit-user-role-dialog.cjs.map +1 -0
  115. package/dist/cjs/lib/edit-user-role-dialog.d.cts +27 -0
  116. package/dist/cjs/lib/elements.cjs +396 -0
  117. package/dist/cjs/lib/elements.cjs.map +1 -0
  118. package/dist/cjs/lib/elements.d.cts +47 -0
  119. package/dist/cjs/lib/elevated-access.cjs +208 -0
  120. package/dist/cjs/lib/elevated-access.cjs.map +1 -0
  121. package/dist/cjs/lib/elevated-access.d.cts +10 -0
  122. package/dist/cjs/lib/empty-state.cjs +39 -0
  123. package/dist/cjs/lib/empty-state.cjs.map +1 -0
  124. package/dist/cjs/lib/empty-state.d.cts +10 -0
  125. package/dist/cjs/lib/error-boundary.cjs +115 -0
  126. package/dist/cjs/lib/error-boundary.cjs.map +1 -0
  127. package/dist/cjs/lib/{error-boundary.d.ts → error-boundary.d.cts} +13 -11
  128. package/dist/cjs/lib/errors.cjs +66 -0
  129. package/dist/cjs/lib/errors.cjs.map +1 -0
  130. package/dist/cjs/lib/{errors.d.ts → errors.d.cts} +6 -6
  131. package/dist/cjs/lib/generic-error.cjs +98 -0
  132. package/dist/cjs/lib/generic-error.cjs.map +1 -0
  133. package/dist/cjs/lib/generic-error.d.cts +11 -0
  134. package/dist/cjs/lib/icon-panel.cjs +53 -0
  135. package/dist/cjs/lib/icon-panel.cjs.map +1 -0
  136. package/dist/cjs/lib/icon-panel.d.cts +8 -0
  137. package/dist/cjs/lib/icons.cjs +51 -0
  138. package/dist/cjs/lib/icons.cjs.map +1 -0
  139. package/dist/cjs/lib/icons.d.cts +6 -0
  140. package/dist/cjs/lib/identity-providers.cjs +111 -0
  141. package/dist/cjs/lib/identity-providers.cjs.map +1 -0
  142. package/dist/cjs/lib/identity-providers.d.cts +7 -0
  143. package/dist/cjs/lib/invite-user-dialog.cjs +277 -0
  144. package/dist/cjs/lib/invite-user-dialog.cjs.map +1 -0
  145. package/dist/cjs/lib/invite-user-dialog.d.cts +9 -0
  146. package/dist/cjs/lib/logout-all-sessions-dialog.cjs +97 -0
  147. package/dist/cjs/lib/logout-all-sessions-dialog.cjs.map +1 -0
  148. package/dist/cjs/lib/logout-all-sessions-dialog.d.cts +11 -0
  149. package/dist/cjs/lib/logout-dialog.cjs +109 -0
  150. package/dist/cjs/lib/logout-dialog.cjs.map +1 -0
  151. package/dist/cjs/lib/logout-dialog.d.cts +14 -0
  152. package/dist/cjs/lib/marker.cjs +56 -0
  153. package/dist/cjs/lib/marker.cjs.map +1 -0
  154. package/dist/cjs/lib/{marker.d.ts → marker.d.cts} +7 -6
  155. package/dist/cjs/lib/name-server-icon.cjs +101 -0
  156. package/dist/cjs/lib/name-server-icon.cjs.map +1 -0
  157. package/dist/cjs/lib/name-server-icon.d.cts +11 -0
  158. package/dist/cjs/lib/oauth-icons.cjs +175 -0
  159. package/dist/cjs/lib/oauth-icons.cjs.map +1 -0
  160. package/dist/cjs/lib/oauth-icons.d.cts +6 -0
  161. package/dist/cjs/lib/organization-switcher.cjs +188 -0
  162. package/dist/cjs/lib/organization-switcher.cjs.map +1 -0
  163. package/dist/cjs/lib/{organization-switcher.d.ts → organization-switcher.d.cts} +12 -8
  164. package/dist/cjs/lib/otp-input.cjs +246 -0
  165. package/dist/cjs/lib/otp-input.cjs.map +1 -0
  166. package/dist/cjs/lib/otp-input.d.cts +22 -0
  167. package/dist/cjs/lib/provider-icon.cjs +69 -0
  168. package/dist/cjs/lib/provider-icon.cjs.map +1 -0
  169. package/dist/cjs/lib/{provider-icon.d.ts → provider-icon.d.cts} +5 -4
  170. package/dist/cjs/lib/resend-invite-dialog.cjs +149 -0
  171. package/dist/cjs/lib/resend-invite-dialog.cjs.map +1 -0
  172. package/dist/cjs/lib/resend-invite-dialog.d.cts +14 -0
  173. package/dist/cjs/lib/reset-mfa-dialog.cjs +111 -0
  174. package/dist/cjs/lib/reset-mfa-dialog.cjs.map +1 -0
  175. package/dist/cjs/lib/reset-mfa-dialog.d.cts +11 -0
  176. package/dist/cjs/lib/revoke-invite-dialog.cjs +103 -0
  177. package/dist/cjs/lib/revoke-invite-dialog.cjs.map +1 -0
  178. package/dist/cjs/lib/revoke-invite-dialog.d.cts +14 -0
  179. package/dist/cjs/lib/save-button.cjs +119 -0
  180. package/dist/cjs/lib/save-button.cjs.map +1 -0
  181. package/dist/cjs/lib/save-button.d.cts +13 -0
  182. package/dist/cjs/lib/search-provider.cjs +79 -0
  183. package/dist/cjs/lib/search-provider.cjs.map +1 -0
  184. package/dist/cjs/lib/search-provider.d.cts +12 -0
  185. package/dist/cjs/lib/set-password-dialog.cjs +165 -0
  186. package/dist/cjs/lib/set-password-dialog.cjs.map +1 -0
  187. package/dist/cjs/lib/set-password-dialog.d.cts +10 -0
  188. package/dist/cjs/lib/status.cjs +72 -0
  189. package/dist/cjs/lib/status.cjs.map +1 -0
  190. package/dist/cjs/lib/status.d.cts +11 -0
  191. package/dist/cjs/lib/use-dialog-close.cjs +53 -0
  192. package/dist/cjs/lib/use-dialog-close.cjs.map +1 -0
  193. package/dist/cjs/lib/use-dialog-close.d.cts +3 -0
  194. package/dist/cjs/lib/use-is-hydrated.cjs +50 -0
  195. package/dist/cjs/lib/use-is-hydrated.cjs.map +1 -0
  196. package/dist/cjs/lib/use-is-hydrated.d.cts +3 -0
  197. package/dist/cjs/lib/use-layout-effect.cjs +31 -0
  198. package/dist/cjs/lib/use-layout-effect.cjs.map +1 -0
  199. package/dist/cjs/lib/{use-layout-effect.d.ts → use-layout-effect.d.cts} +3 -2
  200. package/dist/cjs/lib/use-permissions.cjs +48 -0
  201. package/dist/cjs/lib/use-permissions.cjs.map +1 -0
  202. package/dist/cjs/lib/use-permissions.d.cts +6 -0
  203. package/dist/cjs/lib/use-security-settings.cjs +59 -0
  204. package/dist/cjs/lib/use-security-settings.cjs.map +1 -0
  205. package/dist/cjs/lib/{use-security-settings.d.ts → use-security-settings.d.cts} +3 -3
  206. package/dist/cjs/lib/user-actions-dropdown.cjs +168 -0
  207. package/dist/cjs/lib/user-actions-dropdown.cjs.map +1 -0
  208. package/dist/cjs/lib/user-actions-dropdown.d.cts +13 -0
  209. package/dist/cjs/lib/user-profile.cjs +175 -0
  210. package/dist/cjs/lib/user-profile.cjs.map +1 -0
  211. package/dist/cjs/lib/user-profile.d.cts +15 -0
  212. package/dist/cjs/lib/user-security.cjs +135 -0
  213. package/dist/cjs/lib/user-security.cjs.map +1 -0
  214. package/dist/cjs/lib/user-security.d.cts +15 -0
  215. package/dist/cjs/lib/user-sessions.cjs +178 -0
  216. package/dist/cjs/lib/user-sessions.cjs.map +1 -0
  217. package/dist/cjs/lib/user-sessions.d.cts +16 -0
  218. package/dist/cjs/lib/users-filter.cjs +85 -0
  219. package/dist/cjs/lib/users-filter.cjs.map +1 -0
  220. package/dist/cjs/lib/users-filter.d.cts +13 -0
  221. package/dist/cjs/lib/users-management-context.cjs +81 -0
  222. package/dist/cjs/lib/users-management-context.cjs.map +1 -0
  223. package/dist/cjs/lib/users-management-context.d.cts +19 -0
  224. package/dist/cjs/lib/users-management-state.cjs +154 -0
  225. package/dist/cjs/lib/users-management-state.cjs.map +1 -0
  226. package/dist/cjs/lib/users-management-state.d.cts +26 -0
  227. package/dist/cjs/lib/users-management.cjs +485 -0
  228. package/dist/cjs/lib/users-management.cjs.map +1 -0
  229. package/dist/cjs/lib/users-management.d.cts +22 -0
  230. package/dist/cjs/lib/users-search.cjs +101 -0
  231. package/dist/cjs/lib/users-search.cjs.map +1 -0
  232. package/dist/cjs/lib/users-search.d.cts +6 -0
  233. package/dist/cjs/lib/utils.cjs +148 -0
  234. package/dist/cjs/lib/utils.cjs.map +1 -0
  235. package/dist/cjs/lib/utils.d.cts +31 -0
  236. package/dist/cjs/lib/view-dns-record-dialog.cjs +101 -0
  237. package/dist/cjs/lib/view-dns-record-dialog.cjs.map +1 -0
  238. package/dist/cjs/lib/view-dns-record-dialog.d.cts +16 -0
  239. package/dist/cjs/lib/widgets-context.cjs +59 -0
  240. package/dist/cjs/lib/widgets-context.cjs.map +1 -0
  241. package/dist/cjs/lib/widgets-context.d.cts +15 -0
  242. package/dist/cjs/organization-switcher.client.cjs +79 -0
  243. package/dist/cjs/organization-switcher.client.cjs.map +1 -0
  244. package/dist/cjs/organization-switcher.client.d.cts +15 -0
  245. package/dist/cjs/user-profile.client.cjs +61 -0
  246. package/dist/cjs/user-profile.client.cjs.map +1 -0
  247. package/dist/cjs/user-profile.client.d.cts +14 -0
  248. package/dist/cjs/user-security.client.cjs +68 -0
  249. package/dist/cjs/user-security.client.cjs.map +1 -0
  250. package/dist/cjs/user-security.client.d.cts +14 -0
  251. package/dist/cjs/user-sessions.client.cjs +94 -0
  252. package/dist/cjs/user-sessions.client.cjs.map +1 -0
  253. package/dist/cjs/user-sessions.client.d.cts +18 -0
  254. package/dist/cjs/users-management.client.cjs +82 -0
  255. package/dist/cjs/users-management.client.cjs.map +1 -0
  256. package/dist/cjs/users-management.client.d.cts +14 -0
  257. package/dist/cjs/workos-widgets.client.cjs +106 -0
  258. package/dist/cjs/workos-widgets.client.cjs.map +1 -0
  259. package/dist/cjs/{workos-widgets.client.d.ts → workos-widgets.client.d.cts} +10 -7
  260. package/dist/css/lib/api-keys/api-keys.css +3 -0
  261. package/dist/css/lib/provider-icon.css +87 -9
  262. package/dist/css/styles.css +1 -0
  263. package/dist/esm/admin-portal-domain-verification.client.d.ts +12 -7
  264. package/dist/esm/admin-portal-domain-verification.client.js +88 -55
  265. package/dist/esm/admin-portal-domain-verification.client.js.map +1 -1
  266. package/dist/esm/admin-portal-sso-connection-client.d.ts +10 -7
  267. package/dist/esm/admin-portal-sso-connection-client.js +222 -176
  268. package/dist/esm/admin-portal-sso-connection-client.js.map +1 -1
  269. package/dist/esm/api/api-provider.d.ts +13 -10
  270. package/dist/esm/api/api-provider.js +83 -95
  271. package/dist/esm/api/api-provider.js.map +1 -1
  272. package/dist/esm/api/constants.d.ts +3 -2
  273. package/dist/esm/api/constants.js +4 -1
  274. package/dist/esm/api/constants.js.map +1 -1
  275. package/dist/esm/api/endpoint.d.ts +836 -449
  276. package/dist/esm/api/endpoint.js +1456 -1024
  277. package/dist/esm/api/endpoint.js.map +1 -1
  278. package/dist/esm/api/errors.d.ts +5 -5
  279. package/dist/esm/api/errors.js +27 -30
  280. package/dist/esm/api/errors.js.map +1 -1
  281. package/dist/esm/api/utils.d.ts +11 -5
  282. package/dist/esm/api/utils.js +41 -27
  283. package/dist/esm/api/utils.js.map +1 -1
  284. package/dist/esm/api/widgets-api-client.d.ts +8 -7
  285. package/dist/esm/api/widgets-api-client.js +60 -50
  286. package/dist/esm/api/widgets-api-client.js.map +1 -1
  287. package/dist/esm/api-keys-client.d.ts +10 -0
  288. package/dist/esm/api-keys-client.js +60 -0
  289. package/dist/esm/api-keys-client.js.map +1 -0
  290. package/dist/esm/index.d.ts +26 -9
  291. package/dist/esm/index.js +50 -8
  292. package/dist/esm/index.js.map +1 -1
  293. package/dist/esm/lib/add-mfa-dialog.d.ts +7 -5
  294. package/dist/esm/lib/add-mfa-dialog.js +290 -86
  295. package/dist/esm/lib/add-mfa-dialog.js.map +1 -1
  296. package/dist/esm/lib/admin-portal-domain-verification.d.ts +12 -8
  297. package/dist/esm/lib/admin-portal-domain-verification.js +84 -10
  298. package/dist/esm/lib/admin-portal-domain-verification.js.map +1 -1
  299. package/dist/esm/lib/admin-portal-sso-connection.d.ts +14 -12
  300. package/dist/esm/lib/admin-portal-sso-connection.js +258 -153
  301. package/dist/esm/lib/admin-portal-sso-connection.js.map +1 -1
  302. package/dist/esm/lib/api/api-key.d.ts +16 -0
  303. package/dist/esm/lib/api/api-key.js +46 -0
  304. package/dist/esm/lib/api/api-key.js.map +1 -0
  305. package/dist/esm/lib/api/config.d.ts +4 -3
  306. package/dist/esm/lib/api/config.js +11 -7
  307. package/dist/esm/lib/api/config.js.map +1 -1
  308. package/dist/esm/lib/api/user.d.ts +19 -10
  309. package/dist/esm/lib/api/user.js +85 -62
  310. package/dist/esm/lib/api/user.js.map +1 -1
  311. package/dist/esm/lib/api-keys/api-key-details-card.d.ts +11 -0
  312. package/dist/esm/lib/api-keys/api-key-details-card.js +37 -0
  313. package/dist/esm/lib/api-keys/api-key-details-card.js.map +1 -0
  314. package/dist/esm/lib/api-keys/api-key-details-dialog.d.ts +13 -0
  315. package/dist/esm/lib/api-keys/api-key-details-dialog.js +57 -0
  316. package/dist/esm/lib/api-keys/api-key-details-dialog.js.map +1 -0
  317. package/dist/esm/lib/api-keys/api-keys-context.d.ts +19 -0
  318. package/dist/esm/lib/api-keys/api-keys-context.js +52 -0
  319. package/dist/esm/lib/api-keys/api-keys-context.js.map +1 -0
  320. package/dist/esm/lib/api-keys/api-keys-search-provider.d.ts +12 -0
  321. package/dist/esm/lib/api-keys/api-keys-search-provider.js +44 -0
  322. package/dist/esm/lib/api-keys/api-keys-search-provider.js.map +1 -0
  323. package/dist/esm/lib/api-keys/api-keys-search.d.ts +6 -0
  324. package/dist/esm/lib/api-keys/api-keys-search.js +65 -0
  325. package/dist/esm/lib/api-keys/api-keys-search.js.map +1 -0
  326. package/dist/esm/lib/api-keys/api-keys-state.d.ts +31 -0
  327. package/dist/esm/lib/api-keys/api-keys-state.js +123 -0
  328. package/dist/esm/lib/api-keys/api-keys-state.js.map +1 -0
  329. package/dist/esm/lib/api-keys/api-keys-table.d.ts +10 -0
  330. package/dist/esm/lib/api-keys/api-keys-table.js +169 -0
  331. package/dist/esm/lib/api-keys/api-keys-table.js.map +1 -0
  332. package/dist/esm/lib/api-keys/api-keys.d.ts +11 -0
  333. package/dist/esm/lib/api-keys/api-keys.js +74 -0
  334. package/dist/esm/lib/api-keys/api-keys.js.map +1 -0
  335. package/dist/esm/lib/api-keys/create-api-key.d.ts +6 -0
  336. package/dist/esm/lib/api-keys/create-api-key.js +352 -0
  337. package/dist/esm/lib/api-keys/create-api-key.js.map +1 -0
  338. package/dist/esm/lib/api-keys/relative-time.d.ts +7 -0
  339. package/dist/esm/lib/api-keys/relative-time.js +18 -0
  340. package/dist/esm/lib/api-keys/relative-time.js.map +1 -0
  341. package/dist/esm/lib/api-keys/revoke-api-key-dialog.d.ts +12 -0
  342. package/dist/esm/lib/api-keys/revoke-api-key-dialog.js +64 -0
  343. package/dist/esm/lib/api-keys/revoke-api-key-dialog.js.map +1 -0
  344. package/dist/esm/lib/api-keys/skeleton-table.d.ts +9 -0
  345. package/dist/esm/lib/api-keys/skeleton-table.js +15 -0
  346. package/dist/esm/lib/api-keys/skeleton-table.js.map +1 -0
  347. package/dist/esm/lib/card-list.d.ts +9 -0
  348. package/dist/esm/lib/card-list.js +22 -0
  349. package/dist/esm/lib/card-list.js.map +1 -0
  350. package/dist/esm/lib/change-password-dialog.d.ts +7 -5
  351. package/dist/esm/lib/change-password-dialog.js +197 -58
  352. package/dist/esm/lib/change-password-dialog.js.map +1 -1
  353. package/dist/esm/lib/constants.d.ts +5 -4
  354. package/dist/esm/lib/constants.js +8 -3
  355. package/dist/esm/lib/constants.js.map +1 -1
  356. package/dist/esm/lib/copy-button.d.ts +6 -4
  357. package/dist/esm/lib/copy-button.js +29 -25
  358. package/dist/esm/lib/copy-button.js.map +1 -1
  359. package/dist/esm/lib/delete-domain-dialog.d.ts +9 -5
  360. package/dist/esm/lib/delete-domain-dialog.js +44 -18
  361. package/dist/esm/lib/delete-domain-dialog.js.map +1 -1
  362. package/dist/esm/lib/delete-user-dialog.d.ts +10 -6
  363. package/dist/esm/lib/delete-user-dialog.js +75 -26
  364. package/dist/esm/lib/delete-user-dialog.js.map +1 -1
  365. package/dist/esm/lib/domain-actions.d.ts +8 -4
  366. package/dist/esm/lib/domain-actions.js +57 -10
  367. package/dist/esm/lib/domain-actions.js.map +1 -1
  368. package/dist/esm/lib/domain-item.d.ts +8 -4
  369. package/dist/esm/lib/domain-item.js +49 -21
  370. package/dist/esm/lib/domain-item.js.map +1 -1
  371. package/dist/esm/lib/edit-user-profile-dialog.d.ts +10 -6
  372. package/dist/esm/lib/edit-user-profile-dialog.js +128 -45
  373. package/dist/esm/lib/edit-user-profile-dialog.js.map +1 -1
  374. package/dist/esm/lib/edit-user-role-dialog.d.ts +11 -7
  375. package/dist/esm/lib/edit-user-role-dialog.js +294 -102
  376. package/dist/esm/lib/edit-user-role-dialog.js.map +1 -1
  377. package/dist/esm/lib/elements.d.ts +27 -26
  378. package/dist/esm/lib/elements.js +325 -88
  379. package/dist/esm/lib/elements.js.map +1 -1
  380. package/dist/esm/lib/elevated-access.d.ts +6 -4
  381. package/dist/esm/lib/elevated-access.js +159 -90
  382. package/dist/esm/lib/elevated-access.js.map +1 -1
  383. package/dist/esm/lib/empty-state.d.ts +10 -0
  384. package/dist/esm/lib/empty-state.js +15 -0
  385. package/dist/esm/lib/empty-state.js.map +1 -0
  386. package/dist/esm/lib/error-boundary.d.ts +13 -11
  387. package/dist/esm/lib/error-boundary.js +69 -74
  388. package/dist/esm/lib/error-boundary.js.map +1 -1
  389. package/dist/esm/lib/errors.d.ts +6 -6
  390. package/dist/esm/lib/errors.js +34 -37
  391. package/dist/esm/lib/errors.js.map +1 -1
  392. package/dist/esm/lib/generic-error.d.ts +10 -3
  393. package/dist/esm/lib/generic-error.js +63 -30
  394. package/dist/esm/lib/generic-error.js.map +1 -1
  395. package/dist/esm/lib/icon-panel.d.ts +7 -4
  396. package/dist/esm/lib/icon-panel.js +25 -10
  397. package/dist/esm/lib/icon-panel.js.map +1 -1
  398. package/dist/esm/lib/icons.d.ts +6 -3
  399. package/dist/esm/lib/icons.js +25 -3
  400. package/dist/esm/lib/icons.js.map +1 -1
  401. package/dist/esm/lib/identity-providers.d.ts +6 -6
  402. package/dist/esm/lib/identity-providers.js +82 -63
  403. package/dist/esm/lib/identity-providers.js.map +1 -1
  404. package/dist/esm/lib/invite-user-dialog.d.ts +6 -4
  405. package/dist/esm/lib/invite-user-dialog.js +236 -117
  406. package/dist/esm/lib/invite-user-dialog.js.map +1 -1
  407. package/dist/esm/lib/logout-all-sessions-dialog.d.ts +7 -5
  408. package/dist/esm/lib/logout-all-sessions-dialog.js +59 -18
  409. package/dist/esm/lib/logout-all-sessions-dialog.js.map +1 -1
  410. package/dist/esm/lib/logout-dialog.d.ts +10 -6
  411. package/dist/esm/lib/logout-dialog.js +74 -24
  412. package/dist/esm/lib/logout-dialog.js.map +1 -1
  413. package/dist/esm/lib/marker.d.ts +7 -6
  414. package/dist/esm/lib/marker.js +17 -4
  415. package/dist/esm/lib/marker.js.map +1 -1
  416. package/dist/esm/lib/name-server-icon.d.ts +8 -4
  417. package/dist/esm/lib/name-server-icon.js +60 -4
  418. package/dist/esm/lib/name-server-icon.js.map +1 -1
  419. package/dist/esm/lib/oauth-icons.d.ts +6 -4
  420. package/dist/esm/lib/oauth-icons.js +132 -31
  421. package/dist/esm/lib/oauth-icons.js.map +1 -1
  422. package/dist/esm/lib/organization-switcher.d.ts +12 -8
  423. package/dist/esm/lib/organization-switcher.js +155 -40
  424. package/dist/esm/lib/organization-switcher.js.map +1 -1
  425. package/dist/esm/lib/otp-input.d.ts +9 -7
  426. package/dist/esm/lib/otp-input.js +163 -100
  427. package/dist/esm/lib/otp-input.js.map +1 -1
  428. package/dist/esm/lib/provider-icon.d.ts +5 -4
  429. package/dist/esm/lib/provider-icon.js +29 -8
  430. package/dist/esm/lib/provider-icon.js.map +1 -1
  431. package/dist/esm/lib/resend-invite-dialog.d.ts +10 -6
  432. package/dist/esm/lib/resend-invite-dialog.js +120 -36
  433. package/dist/esm/lib/resend-invite-dialog.js.map +1 -1
  434. package/dist/esm/lib/reset-mfa-dialog.d.ts +7 -5
  435. package/dist/esm/lib/reset-mfa-dialog.js +70 -23
  436. package/dist/esm/lib/reset-mfa-dialog.js.map +1 -1
  437. package/dist/esm/lib/revoke-invite-dialog.d.ts +10 -6
  438. package/dist/esm/lib/revoke-invite-dialog.js +82 -26
  439. package/dist/esm/lib/revoke-invite-dialog.js.map +1 -1
  440. package/dist/esm/lib/save-button.d.ts +6 -4
  441. package/dist/esm/lib/save-button.js +92 -35
  442. package/dist/esm/lib/save-button.js.map +1 -1
  443. package/dist/esm/lib/search-provider.d.ts +7 -6
  444. package/dist/esm/lib/search-provider.js +37 -20
  445. package/dist/esm/lib/search-provider.js.map +1 -1
  446. package/dist/esm/lib/set-password-dialog.d.ts +7 -5
  447. package/dist/esm/lib/set-password-dialog.js +122 -39
  448. package/dist/esm/lib/set-password-dialog.js.map +1 -1
  449. package/dist/esm/lib/status.d.ts +7 -6
  450. package/dist/esm/lib/status.js +31 -12
  451. package/dist/esm/lib/status.js.map +1 -1
  452. package/dist/esm/lib/use-dialog-close.d.ts +3 -2
  453. package/dist/esm/lib/use-dialog-close.js +16 -14
  454. package/dist/esm/lib/use-dialog-close.js.map +1 -1
  455. package/dist/esm/lib/use-is-hydrated.d.ts +3 -2
  456. package/dist/esm/lib/use-is-hydrated.js +11 -3
  457. package/dist/esm/lib/use-is-hydrated.js.map +1 -1
  458. package/dist/esm/lib/use-layout-effect.d.ts +3 -2
  459. package/dist/esm/lib/use-layout-effect.js +3 -1
  460. package/dist/esm/lib/use-layout-effect.js.map +1 -1
  461. package/dist/esm/lib/use-permissions.d.ts +6 -4
  462. package/dist/esm/lib/use-permissions.js +21 -28
  463. package/dist/esm/lib/use-permissions.js.map +1 -1
  464. package/dist/esm/lib/use-security-settings.d.ts +3 -3
  465. package/dist/esm/lib/use-security-settings.js +33 -32
  466. package/dist/esm/lib/use-security-settings.js.map +1 -1
  467. package/dist/esm/lib/user-actions-dropdown.d.ts +9 -5
  468. package/dist/esm/lib/user-actions-dropdown.js +126 -42
  469. package/dist/esm/lib/user-actions-dropdown.js.map +1 -1
  470. package/dist/esm/lib/user-profile.d.ts +11 -7
  471. package/dist/esm/lib/user-profile.js +136 -15
  472. package/dist/esm/lib/user-profile.js.map +1 -1
  473. package/dist/esm/lib/user-security.d.ts +12 -8
  474. package/dist/esm/lib/user-security.js +81 -14
  475. package/dist/esm/lib/user-security.js.map +1 -1
  476. package/dist/esm/lib/user-sessions.d.ts +11 -7
  477. package/dist/esm/lib/user-sessions.js +131 -25
  478. package/dist/esm/lib/user-sessions.js.map +1 -1
  479. package/dist/esm/lib/users-filter.d.ts +9 -6
  480. package/dist/esm/lib/users-filter.js +42 -20
  481. package/dist/esm/lib/users-filter.js.map +1 -1
  482. package/dist/esm/lib/users-management-context.d.ts +11 -6
  483. package/dist/esm/lib/users-management-context.js +37 -31
  484. package/dist/esm/lib/users-management-context.js.map +1 -1
  485. package/dist/esm/lib/users-management-state.d.ts +10 -6
  486. package/dist/esm/lib/users-management-state.js +108 -105
  487. package/dist/esm/lib/users-management-state.js.map +1 -1
  488. package/dist/esm/lib/users-management.d.ts +12 -8
  489. package/dist/esm/lib/users-management.js +441 -148
  490. package/dist/esm/lib/users-management.js.map +1 -1
  491. package/dist/esm/lib/users-search.d.ts +6 -3
  492. package/dist/esm/lib/users-search.js +48 -15
  493. package/dist/esm/lib/users-search.js.map +1 -1
  494. package/dist/esm/lib/utils.d.ts +18 -14
  495. package/dist/esm/lib/utils.js +90 -86
  496. package/dist/esm/lib/utils.js.map +1 -1
  497. package/dist/esm/lib/view-dns-record-dialog.d.ts +9 -5
  498. package/dist/esm/lib/view-dns-record-dialog.js +80 -14
  499. package/dist/esm/lib/view-dns-record-dialog.js.map +1 -1
  500. package/dist/esm/lib/widgets-context.d.ts +11 -7
  501. package/dist/esm/lib/widgets-context.js +17 -11
  502. package/dist/esm/lib/widgets-context.js.map +1 -1
  503. package/dist/esm/organization-switcher.client.d.ts +13 -7
  504. package/dist/esm/organization-switcher.client.js +47 -24
  505. package/dist/esm/organization-switcher.client.js.map +1 -1
  506. package/dist/esm/user-profile.client.d.ts +12 -7
  507. package/dist/esm/user-profile.client.js +32 -21
  508. package/dist/esm/user-profile.client.js.map +1 -1
  509. package/dist/esm/user-security.client.d.ts +12 -7
  510. package/dist/esm/user-security.client.js +39 -17
  511. package/dist/esm/user-security.client.js.map +1 -1
  512. package/dist/esm/user-sessions.client.d.ts +11 -6
  513. package/dist/esm/user-sessions.client.js +63 -36
  514. package/dist/esm/user-sessions.client.js.map +1 -1
  515. package/dist/esm/users-management.client.d.ts +12 -7
  516. package/dist/esm/users-management.client.js +49 -30
  517. package/dist/esm/users-management.client.js.map +1 -1
  518. package/dist/esm/workos-widgets.client.d.ts +10 -7
  519. package/dist/esm/workos-widgets.client.js +64 -38
  520. package/dist/esm/workos-widgets.client.js.map +1 -1
  521. package/package.json +19 -15
  522. package/dist/cjs/admin-portal-domain-verification.client.d.ts +0 -9
  523. package/dist/cjs/admin-portal-domain-verification.client.d.ts.map +0 -1
  524. package/dist/cjs/admin-portal-domain-verification.client.js +0 -70
  525. package/dist/cjs/admin-portal-domain-verification.client.js.map +0 -1
  526. package/dist/cjs/admin-portal-sso-connection-client.d.ts +0 -9
  527. package/dist/cjs/admin-portal-sso-connection-client.d.ts.map +0 -1
  528. package/dist/cjs/admin-portal-sso-connection-client.js +0 -222
  529. package/dist/cjs/admin-portal-sso-connection-client.js.map +0 -1
  530. package/dist/cjs/api/api-provider.d.ts +0 -29
  531. package/dist/cjs/api/api-provider.d.ts.map +0 -1
  532. package/dist/cjs/api/api-provider.js +0 -130
  533. package/dist/cjs/api/api-provider.js.map +0 -1
  534. package/dist/cjs/api/constants.d.ts +0 -2
  535. package/dist/cjs/api/constants.d.ts.map +0 -1
  536. package/dist/cjs/api/constants.js +0 -5
  537. package/dist/cjs/api/constants.js.map +0 -1
  538. package/dist/cjs/api/endpoint.d.ts +0 -1300
  539. package/dist/cjs/api/endpoint.d.ts.map +0 -1
  540. package/dist/cjs/api/endpoint.js +0 -1143
  541. package/dist/cjs/api/endpoint.js.map +0 -1
  542. package/dist/cjs/api/errors.d.ts.map +0 -1
  543. package/dist/cjs/api/errors.js +0 -40
  544. package/dist/cjs/api/errors.js.map +0 -1
  545. package/dist/cjs/api/utils.d.ts +0 -10
  546. package/dist/cjs/api/utils.d.ts.map +0 -1
  547. package/dist/cjs/api/utils.js +0 -42
  548. package/dist/cjs/api/utils.js.map +0 -1
  549. package/dist/cjs/api/widgets-api-client.d.ts.map +0 -1
  550. package/dist/cjs/api/widgets-api-client.js +0 -62
  551. package/dist/cjs/api/widgets-api-client.js.map +0 -1
  552. package/dist/cjs/card-list.d.ts +0 -6
  553. package/dist/cjs/card-list.d.ts.map +0 -1
  554. package/dist/cjs/card-list.js +0 -13
  555. package/dist/cjs/card-list.js.map +0 -1
  556. package/dist/cjs/index.d.ts +0 -9
  557. package/dist/cjs/index.d.ts.map +0 -1
  558. package/dist/cjs/index.js +0 -27
  559. package/dist/cjs/index.js.map +0 -1
  560. package/dist/cjs/lib/add-mfa-dialog.d.ts +0 -9
  561. package/dist/cjs/lib/add-mfa-dialog.d.ts.map +0 -1
  562. package/dist/cjs/lib/add-mfa-dialog.js +0 -136
  563. package/dist/cjs/lib/add-mfa-dialog.js.map +0 -1
  564. package/dist/cjs/lib/admin-portal-domain-verification.d.ts +0 -16
  565. package/dist/cjs/lib/admin-portal-domain-verification.d.ts.map +0 -1
  566. package/dist/cjs/lib/admin-portal-domain-verification.js +0 -55
  567. package/dist/cjs/lib/admin-portal-domain-verification.js.map +0 -1
  568. package/dist/cjs/lib/admin-portal-sso-connection.d.ts +0 -40
  569. package/dist/cjs/lib/admin-portal-sso-connection.d.ts.map +0 -1
  570. package/dist/cjs/lib/admin-portal-sso-connection.js +0 -209
  571. package/dist/cjs/lib/admin-portal-sso-connection.js.map +0 -1
  572. package/dist/cjs/lib/api/config.d.ts.map +0 -1
  573. package/dist/cjs/lib/api/config.js +0 -12
  574. package/dist/cjs/lib/api/config.js.map +0 -1
  575. package/dist/cjs/lib/api/user.d.ts +0 -17
  576. package/dist/cjs/lib/api/user.d.ts.map +0 -1
  577. package/dist/cjs/lib/api/user.js +0 -80
  578. package/dist/cjs/lib/api/user.js.map +0 -1
  579. package/dist/cjs/lib/change-password-dialog.d.ts +0 -8
  580. package/dist/cjs/lib/change-password-dialog.d.ts.map +0 -1
  581. package/dist/cjs/lib/change-password-dialog.js +0 -97
  582. package/dist/cjs/lib/change-password-dialog.js.map +0 -1
  583. package/dist/cjs/lib/constants.d.ts +0 -4
  584. package/dist/cjs/lib/constants.d.ts.map +0 -1
  585. package/dist/cjs/lib/constants.js +0 -7
  586. package/dist/cjs/lib/constants.js.map +0 -1
  587. package/dist/cjs/lib/copy-button.d.ts +0 -8
  588. package/dist/cjs/lib/copy-button.d.ts.map +0 -1
  589. package/dist/cjs/lib/copy-button.js +0 -62
  590. package/dist/cjs/lib/copy-button.js.map +0 -1
  591. package/dist/cjs/lib/delete-domain-dialog.d.ts +0 -12
  592. package/dist/cjs/lib/delete-domain-dialog.d.ts.map +0 -1
  593. package/dist/cjs/lib/delete-domain-dialog.js +0 -26
  594. package/dist/cjs/lib/delete-domain-dialog.js.map +0 -1
  595. package/dist/cjs/lib/delete-user-dialog.d.ts +0 -12
  596. package/dist/cjs/lib/delete-user-dialog.d.ts.map +0 -1
  597. package/dist/cjs/lib/delete-user-dialog.js +0 -36
  598. package/dist/cjs/lib/delete-user-dialog.js.map +0 -1
  599. package/dist/cjs/lib/domain-actions.d.ts +0 -9
  600. package/dist/cjs/lib/domain-actions.d.ts.map +0 -1
  601. package/dist/cjs/lib/domain-actions.js +0 -22
  602. package/dist/cjs/lib/domain-actions.js.map +0 -1
  603. package/dist/cjs/lib/domain-item.d.ts +0 -9
  604. package/dist/cjs/lib/domain-item.d.ts.map +0 -1
  605. package/dist/cjs/lib/domain-item.js +0 -38
  606. package/dist/cjs/lib/domain-item.js.map +0 -1
  607. package/dist/cjs/lib/edit-user-profile-dialog.d.ts +0 -10
  608. package/dist/cjs/lib/edit-user-profile-dialog.d.ts.map +0 -1
  609. package/dist/cjs/lib/edit-user-profile-dialog.js +0 -85
  610. package/dist/cjs/lib/edit-user-profile-dialog.js.map +0 -1
  611. package/dist/cjs/lib/edit-user-role-dialog.d.ts +0 -23
  612. package/dist/cjs/lib/edit-user-role-dialog.d.ts.map +0 -1
  613. package/dist/cjs/lib/edit-user-role-dialog.js +0 -143
  614. package/dist/cjs/lib/edit-user-role-dialog.js.map +0 -1
  615. package/dist/cjs/lib/elements.d.ts +0 -46
  616. package/dist/cjs/lib/elements.d.ts.map +0 -1
  617. package/dist/cjs/lib/elements.js +0 -148
  618. package/dist/cjs/lib/elements.js.map +0 -1
  619. package/dist/cjs/lib/elevated-access.d.ts +0 -8
  620. package/dist/cjs/lib/elevated-access.d.ts.map +0 -1
  621. package/dist/cjs/lib/elevated-access.js +0 -131
  622. package/dist/cjs/lib/elevated-access.js.map +0 -1
  623. package/dist/cjs/lib/error-boundary.d.ts.map +0 -1
  624. package/dist/cjs/lib/error-boundary.js +0 -113
  625. package/dist/cjs/lib/error-boundary.js.map +0 -1
  626. package/dist/cjs/lib/errors.d.ts.map +0 -1
  627. package/dist/cjs/lib/errors.js +0 -49
  628. package/dist/cjs/lib/errors.js.map +0 -1
  629. package/dist/cjs/lib/generic-error.d.ts +0 -4
  630. package/dist/cjs/lib/generic-error.d.ts.map +0 -1
  631. package/dist/cjs/lib/generic-error.js +0 -60
  632. package/dist/cjs/lib/generic-error.js.map +0 -1
  633. package/dist/cjs/lib/icon-panel.d.ts +0 -5
  634. package/dist/cjs/lib/icon-panel.d.ts.map +0 -1
  635. package/dist/cjs/lib/icon-panel.js +0 -17
  636. package/dist/cjs/lib/icon-panel.js.map +0 -1
  637. package/dist/cjs/lib/icons.d.ts +0 -3
  638. package/dist/cjs/lib/icons.d.ts.map +0 -1
  639. package/dist/cjs/lib/icons.js +0 -8
  640. package/dist/cjs/lib/icons.js.map +0 -1
  641. package/dist/cjs/lib/identity-providers.d.ts +0 -7
  642. package/dist/cjs/lib/identity-providers.d.ts.map +0 -1
  643. package/dist/cjs/lib/identity-providers.js +0 -71
  644. package/dist/cjs/lib/identity-providers.js.map +0 -1
  645. package/dist/cjs/lib/invite-user-dialog.d.ts +0 -7
  646. package/dist/cjs/lib/invite-user-dialog.d.ts.map +0 -1
  647. package/dist/cjs/lib/invite-user-dialog.js +0 -165
  648. package/dist/cjs/lib/invite-user-dialog.js.map +0 -1
  649. package/dist/cjs/lib/logout-all-sessions-dialog.d.ts +0 -9
  650. package/dist/cjs/lib/logout-all-sessions-dialog.d.ts.map +0 -1
  651. package/dist/cjs/lib/logout-all-sessions-dialog.js +0 -52
  652. package/dist/cjs/lib/logout-all-sessions-dialog.js.map +0 -1
  653. package/dist/cjs/lib/logout-dialog.d.ts +0 -10
  654. package/dist/cjs/lib/logout-dialog.d.ts.map +0 -1
  655. package/dist/cjs/lib/logout-dialog.js +0 -58
  656. package/dist/cjs/lib/logout-dialog.js.map +0 -1
  657. package/dist/cjs/lib/marker.d.ts.map +0 -1
  658. package/dist/cjs/lib/marker.js +0 -38
  659. package/dist/cjs/lib/marker.js.map +0 -1
  660. package/dist/cjs/lib/name-server-icon.d.ts +0 -7
  661. package/dist/cjs/lib/name-server-icon.d.ts.map +0 -1
  662. package/dist/cjs/lib/name-server-icon.js +0 -38
  663. package/dist/cjs/lib/name-server-icon.js.map +0 -1
  664. package/dist/cjs/lib/oauth-icons.d.ts +0 -4
  665. package/dist/cjs/lib/oauth-icons.d.ts.map +0 -1
  666. package/dist/cjs/lib/oauth-icons.js +0 -67
  667. package/dist/cjs/lib/oauth-icons.js.map +0 -1
  668. package/dist/cjs/lib/organization-switcher.d.ts.map +0 -1
  669. package/dist/cjs/lib/organization-switcher.js +0 -62
  670. package/dist/cjs/lib/organization-switcher.js.map +0 -1
  671. package/dist/cjs/lib/otp-input.d.ts +0 -20
  672. package/dist/cjs/lib/otp-input.d.ts.map +0 -1
  673. package/dist/cjs/lib/otp-input.js +0 -174
  674. package/dist/cjs/lib/otp-input.js.map +0 -1
  675. package/dist/cjs/lib/provider-icon.d.ts.map +0 -1
  676. package/dist/cjs/lib/provider-icon.js +0 -45
  677. package/dist/cjs/lib/provider-icon.js.map +0 -1
  678. package/dist/cjs/lib/resend-invite-dialog.d.ts +0 -10
  679. package/dist/cjs/lib/resend-invite-dialog.d.ts.map +0 -1
  680. package/dist/cjs/lib/resend-invite-dialog.js +0 -70
  681. package/dist/cjs/lib/resend-invite-dialog.js.map +0 -1
  682. package/dist/cjs/lib/reset-mfa-dialog.d.ts +0 -9
  683. package/dist/cjs/lib/reset-mfa-dialog.d.ts.map +0 -1
  684. package/dist/cjs/lib/reset-mfa-dialog.js +0 -60
  685. package/dist/cjs/lib/reset-mfa-dialog.js.map +0 -1
  686. package/dist/cjs/lib/revoke-invite-dialog.d.ts +0 -10
  687. package/dist/cjs/lib/revoke-invite-dialog.d.ts.map +0 -1
  688. package/dist/cjs/lib/revoke-invite-dialog.js +0 -36
  689. package/dist/cjs/lib/revoke-invite-dialog.js.map +0 -1
  690. package/dist/cjs/lib/save-button.d.ts +0 -11
  691. package/dist/cjs/lib/save-button.d.ts.map +0 -1
  692. package/dist/cjs/lib/save-button.js +0 -47
  693. package/dist/cjs/lib/save-button.js.map +0 -1
  694. package/dist/cjs/lib/search-provider.d.ts +0 -11
  695. package/dist/cjs/lib/search-provider.d.ts.map +0 -1
  696. package/dist/cjs/lib/search-provider.js +0 -55
  697. package/dist/cjs/lib/search-provider.js.map +0 -1
  698. package/dist/cjs/lib/set-password-dialog.d.ts +0 -8
  699. package/dist/cjs/lib/set-password-dialog.d.ts.map +0 -1
  700. package/dist/cjs/lib/set-password-dialog.js +0 -80
  701. package/dist/cjs/lib/set-password-dialog.js.map +0 -1
  702. package/dist/cjs/lib/status.d.ts +0 -10
  703. package/dist/cjs/lib/status.d.ts.map +0 -1
  704. package/dist/cjs/lib/status.js +0 -48
  705. package/dist/cjs/lib/status.js.map +0 -1
  706. package/dist/cjs/lib/use-dialog-close.d.ts +0 -2
  707. package/dist/cjs/lib/use-dialog-close.d.ts.map +0 -1
  708. package/dist/cjs/lib/use-dialog-close.js +0 -43
  709. package/dist/cjs/lib/use-dialog-close.js.map +0 -1
  710. package/dist/cjs/lib/use-is-hydrated.d.ts +0 -2
  711. package/dist/cjs/lib/use-is-hydrated.d.ts.map +0 -1
  712. package/dist/cjs/lib/use-is-hydrated.js +0 -34
  713. package/dist/cjs/lib/use-is-hydrated.js.map +0 -1
  714. package/dist/cjs/lib/use-layout-effect.d.ts.map +0 -1
  715. package/dist/cjs/lib/use-layout-effect.js +0 -8
  716. package/dist/cjs/lib/use-layout-effect.js.map +0 -1
  717. package/dist/cjs/lib/use-permissions.d.ts +0 -4
  718. package/dist/cjs/lib/use-permissions.d.ts.map +0 -1
  719. package/dist/cjs/lib/use-permissions.js +0 -34
  720. package/dist/cjs/lib/use-permissions.js.map +0 -1
  721. package/dist/cjs/lib/use-security-settings.d.ts.map +0 -1
  722. package/dist/cjs/lib/use-security-settings.js +0 -39
  723. package/dist/cjs/lib/use-security-settings.js.map +0 -1
  724. package/dist/cjs/lib/user-actions-dropdown.d.ts +0 -9
  725. package/dist/cjs/lib/user-actions-dropdown.d.ts.map +0 -1
  726. package/dist/cjs/lib/user-actions-dropdown.js +0 -81
  727. package/dist/cjs/lib/user-actions-dropdown.js.map +0 -1
  728. package/dist/cjs/lib/user-profile.d.ts +0 -11
  729. package/dist/cjs/lib/user-profile.d.ts.map +0 -1
  730. package/dist/cjs/lib/user-profile.js +0 -36
  731. package/dist/cjs/lib/user-profile.js.map +0 -1
  732. package/dist/cjs/lib/user-security.d.ts +0 -11
  733. package/dist/cjs/lib/user-security.d.ts.map +0 -1
  734. package/dist/cjs/lib/user-security.js +0 -64
  735. package/dist/cjs/lib/user-security.js.map +0 -1
  736. package/dist/cjs/lib/user-sessions.d.ts +0 -12
  737. package/dist/cjs/lib/user-sessions.d.ts.map +0 -1
  738. package/dist/cjs/lib/user-sessions.js +0 -72
  739. package/dist/cjs/lib/user-sessions.js.map +0 -1
  740. package/dist/cjs/lib/users-filter.d.ts +0 -10
  741. package/dist/cjs/lib/users-filter.d.ts.map +0 -1
  742. package/dist/cjs/lib/users-filter.js +0 -56
  743. package/dist/cjs/lib/users-filter.js.map +0 -1
  744. package/dist/cjs/lib/users-management-context.d.ts +0 -14
  745. package/dist/cjs/lib/users-management-context.d.ts.map +0 -1
  746. package/dist/cjs/lib/users-management-context.js +0 -70
  747. package/dist/cjs/lib/users-management-context.js.map +0 -1
  748. package/dist/cjs/lib/users-management-state.d.ts +0 -22
  749. package/dist/cjs/lib/users-management-state.d.ts.map +0 -1
  750. package/dist/cjs/lib/users-management-state.js +0 -143
  751. package/dist/cjs/lib/users-management-state.js.map +0 -1
  752. package/dist/cjs/lib/users-management.d.ts +0 -18
  753. package/dist/cjs/lib/users-management.d.ts.map +0 -1
  754. package/dist/cjs/lib/users-management.js +0 -209
  755. package/dist/cjs/lib/users-management.js.map +0 -1
  756. package/dist/cjs/lib/users-search.d.ts +0 -3
  757. package/dist/cjs/lib/users-search.d.ts.map +0 -1
  758. package/dist/cjs/lib/users-search.js +0 -63
  759. package/dist/cjs/lib/users-search.js.map +0 -1
  760. package/dist/cjs/lib/utils.d.ts +0 -27
  761. package/dist/cjs/lib/utils.d.ts.map +0 -1
  762. package/dist/cjs/lib/utils.js +0 -116
  763. package/dist/cjs/lib/utils.js.map +0 -1
  764. package/dist/cjs/lib/view-dns-record-dialog.d.ts +0 -12
  765. package/dist/cjs/lib/view-dns-record-dialog.d.ts.map +0 -1
  766. package/dist/cjs/lib/view-dns-record-dialog.js +0 -26
  767. package/dist/cjs/lib/view-dns-record-dialog.js.map +0 -1
  768. package/dist/cjs/lib/widgets-context.d.ts +0 -11
  769. package/dist/cjs/lib/widgets-context.d.ts.map +0 -1
  770. package/dist/cjs/lib/widgets-context.js +0 -45
  771. package/dist/cjs/lib/widgets-context.js.map +0 -1
  772. package/dist/cjs/organization-switcher.client.d.ts +0 -9
  773. package/dist/cjs/organization-switcher.client.d.ts.map +0 -1
  774. package/dist/cjs/organization-switcher.client.js +0 -39
  775. package/dist/cjs/organization-switcher.client.js.map +0 -1
  776. package/dist/cjs/user-profile.client.d.ts +0 -9
  777. package/dist/cjs/user-profile.client.d.ts.map +0 -1
  778. package/dist/cjs/user-profile.client.js +0 -33
  779. package/dist/cjs/user-profile.client.js.map +0 -1
  780. package/dist/cjs/user-security.client.d.ts +0 -9
  781. package/dist/cjs/user-security.client.d.ts.map +0 -1
  782. package/dist/cjs/user-security.client.js +0 -29
  783. package/dist/cjs/user-security.client.js.map +0 -1
  784. package/dist/cjs/user-sessions.client.d.ts +0 -13
  785. package/dist/cjs/user-sessions.client.d.ts.map +0 -1
  786. package/dist/cjs/user-sessions.client.js +0 -50
  787. package/dist/cjs/user-sessions.client.js.map +0 -1
  788. package/dist/cjs/users-management.client.d.ts +0 -9
  789. package/dist/cjs/users-management.client.d.ts.map +0 -1
  790. package/dist/cjs/users-management.client.js +0 -46
  791. package/dist/cjs/users-management.client.js.map +0 -1
  792. package/dist/cjs/workos-widgets.client.d.ts.map +0 -1
  793. package/dist/cjs/workos-widgets.client.js +0 -80
  794. package/dist/cjs/workos-widgets.client.js.map +0 -1
  795. package/dist/esm/admin-portal-domain-verification.client.d.ts.map +0 -1
  796. package/dist/esm/admin-portal-sso-connection-client.d.ts.map +0 -1
  797. package/dist/esm/api/api-provider.d.ts.map +0 -1
  798. package/dist/esm/api/constants.d.ts.map +0 -1
  799. package/dist/esm/api/endpoint.d.ts.map +0 -1
  800. package/dist/esm/api/errors.d.ts.map +0 -1
  801. package/dist/esm/api/utils.d.ts.map +0 -1
  802. package/dist/esm/api/widgets-api-client.d.ts.map +0 -1
  803. package/dist/esm/card-list.d.ts +0 -6
  804. package/dist/esm/card-list.d.ts.map +0 -1
  805. package/dist/esm/card-list.js +0 -9
  806. package/dist/esm/card-list.js.map +0 -1
  807. package/dist/esm/index.d.ts.map +0 -1
  808. package/dist/esm/lib/add-mfa-dialog.d.ts.map +0 -1
  809. package/dist/esm/lib/admin-portal-domain-verification.d.ts.map +0 -1
  810. package/dist/esm/lib/admin-portal-sso-connection.d.ts.map +0 -1
  811. package/dist/esm/lib/api/config.d.ts.map +0 -1
  812. package/dist/esm/lib/api/user.d.ts.map +0 -1
  813. package/dist/esm/lib/change-password-dialog.d.ts.map +0 -1
  814. package/dist/esm/lib/constants.d.ts.map +0 -1
  815. package/dist/esm/lib/copy-button.d.ts.map +0 -1
  816. package/dist/esm/lib/delete-domain-dialog.d.ts.map +0 -1
  817. package/dist/esm/lib/delete-user-dialog.d.ts.map +0 -1
  818. package/dist/esm/lib/domain-actions.d.ts.map +0 -1
  819. package/dist/esm/lib/domain-item.d.ts.map +0 -1
  820. package/dist/esm/lib/edit-user-profile-dialog.d.ts.map +0 -1
  821. package/dist/esm/lib/edit-user-role-dialog.d.ts.map +0 -1
  822. package/dist/esm/lib/elements.d.ts.map +0 -1
  823. package/dist/esm/lib/elevated-access.d.ts.map +0 -1
  824. package/dist/esm/lib/error-boundary.d.ts.map +0 -1
  825. package/dist/esm/lib/errors.d.ts.map +0 -1
  826. package/dist/esm/lib/generic-error.d.ts.map +0 -1
  827. package/dist/esm/lib/icon-panel.d.ts.map +0 -1
  828. package/dist/esm/lib/icons.d.ts.map +0 -1
  829. package/dist/esm/lib/identity-providers.d.ts.map +0 -1
  830. package/dist/esm/lib/invite-user-dialog.d.ts.map +0 -1
  831. package/dist/esm/lib/logout-all-sessions-dialog.d.ts.map +0 -1
  832. package/dist/esm/lib/logout-dialog.d.ts.map +0 -1
  833. package/dist/esm/lib/marker.d.ts.map +0 -1
  834. package/dist/esm/lib/name-server-icon.d.ts.map +0 -1
  835. package/dist/esm/lib/oauth-icons.d.ts.map +0 -1
  836. package/dist/esm/lib/organization-switcher.d.ts.map +0 -1
  837. package/dist/esm/lib/otp-input.d.ts.map +0 -1
  838. package/dist/esm/lib/provider-icon.d.ts.map +0 -1
  839. package/dist/esm/lib/resend-invite-dialog.d.ts.map +0 -1
  840. package/dist/esm/lib/reset-mfa-dialog.d.ts.map +0 -1
  841. package/dist/esm/lib/revoke-invite-dialog.d.ts.map +0 -1
  842. package/dist/esm/lib/save-button.d.ts.map +0 -1
  843. package/dist/esm/lib/search-provider.d.ts.map +0 -1
  844. package/dist/esm/lib/set-password-dialog.d.ts.map +0 -1
  845. package/dist/esm/lib/status.d.ts.map +0 -1
  846. package/dist/esm/lib/use-dialog-close.d.ts.map +0 -1
  847. package/dist/esm/lib/use-is-hydrated.d.ts.map +0 -1
  848. package/dist/esm/lib/use-layout-effect.d.ts.map +0 -1
  849. package/dist/esm/lib/use-permissions.d.ts.map +0 -1
  850. package/dist/esm/lib/use-security-settings.d.ts.map +0 -1
  851. package/dist/esm/lib/user-actions-dropdown.d.ts.map +0 -1
  852. package/dist/esm/lib/user-profile.d.ts.map +0 -1
  853. package/dist/esm/lib/user-security.d.ts.map +0 -1
  854. package/dist/esm/lib/user-sessions.d.ts.map +0 -1
  855. package/dist/esm/lib/users-filter.d.ts.map +0 -1
  856. package/dist/esm/lib/users-management-context.d.ts.map +0 -1
  857. package/dist/esm/lib/users-management-state.d.ts.map +0 -1
  858. package/dist/esm/lib/users-management.d.ts.map +0 -1
  859. package/dist/esm/lib/users-search.d.ts.map +0 -1
  860. package/dist/esm/lib/utils.d.ts.map +0 -1
  861. package/dist/esm/lib/view-dns-record-dialog.d.ts.map +0 -1
  862. package/dist/esm/lib/widgets-context.d.ts.map +0 -1
  863. package/dist/esm/organization-switcher.client.d.ts.map +0 -1
  864. package/dist/esm/user-profile.client.d.ts.map +0 -1
  865. package/dist/esm/user-security.client.d.ts.map +0 -1
  866. package/dist/esm/user-sessions.client.d.ts.map +0 -1
  867. package/dist/esm/users-management.client.d.ts.map +0 -1
  868. package/dist/esm/workos-widgets.client.d.ts.map +0 -1
  869. package/dist/tsconfig.cjs.tsbuildinfo +0 -1
  870. package/dist/tsconfig.esm.tsbuildinfo +0 -1
@@ -0,0 +1,65 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { useComposedRefs } from "@radix-ui/react-compose-refs";
4
+ import { Cross2Icon, MagnifyingGlassIcon } from "@radix-ui/react-icons";
5
+ import { IconButton } from "@radix-ui/themes";
6
+ import cx from "clsx";
7
+ import * as React from "react";
8
+ import { useDebouncedCallback } from "use-debounce";
9
+ import { TextField, TextFieldSlot } from "../elements.js";
10
+ import { useApiKeysSearchContext } from "./api-keys-search-provider.js";
11
+ import { useApiKeysContext } from "./api-keys-context.js";
12
+ import { namespaceClassNames } from "../utils.js";
13
+ const ApiKeysSearch = React.forwardRef(({ className, ...props }, ref) => {
14
+ const { inputRef, clearSearch, searchValue, setSearchValue } = useApiKeysSearchContext();
15
+ const { dispatch } = useApiKeysContext();
16
+ const filter = useDebouncedCallback((value) => {
17
+ dispatch({ type: "FILTER_BY_SEARCH", searchQuery: value });
18
+ }, 200);
19
+ const resetSearch = () => {
20
+ clearSearch();
21
+ filter.cancel();
22
+ };
23
+ return /* @__PURE__ */ jsxs(
24
+ TextField,
25
+ {
26
+ ref: useComposedRefs(inputRef, ref),
27
+ className: cx(namespaceClassNames("api-keys-search"), className),
28
+ autoComplete: "off",
29
+ placeholder: "Search by name",
30
+ value: searchValue,
31
+ onChange: (event) => {
32
+ const value = event.target.value;
33
+ setSearchValue(value);
34
+ filter(value);
35
+ },
36
+ onKeyDown: (event) => {
37
+ if (event.key === "Escape") {
38
+ event.preventDefault();
39
+ resetSearch();
40
+ }
41
+ },
42
+ ...props,
43
+ children: [
44
+ /* @__PURE__ */ jsx(TextFieldSlot, { side: "left", children: /* @__PURE__ */ jsx(MagnifyingGlassIcon, { "aria-hidden": "true", height: "16", width: "16" }) }),
45
+ /* @__PURE__ */ jsx(TextFieldSlot, { side: "right", children: searchValue && /* @__PURE__ */ jsx(
46
+ IconButton,
47
+ {
48
+ size: "1",
49
+ color: "gray",
50
+ variant: "ghost",
51
+ radius: "full",
52
+ onClick: resetSearch,
53
+ "aria-label": "Clear search",
54
+ title: "Clear search",
55
+ children: /* @__PURE__ */ jsx(Cross2Icon, { "aria-hidden": "true" })
56
+ }
57
+ ) })
58
+ ]
59
+ }
60
+ );
61
+ });
62
+ export {
63
+ ApiKeysSearch
64
+ };
65
+ //# sourceMappingURL=api-keys-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/api-keys/api-keys-search.tsx"],"sourcesContent":["\"use client\";\n\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Cross2Icon, MagnifyingGlassIcon } from \"@radix-ui/react-icons\";\nimport { IconButton } from \"@radix-ui/themes\";\nimport cx from \"clsx\";\nimport * as React from \"react\";\nimport { useDebouncedCallback } from \"use-debounce\";\nimport { TextField, TextFieldSlot } from \"../elements.js\";\nimport { useApiKeysSearchContext } from \"./api-keys-search-provider.js\";\nimport { useApiKeysContext } from \"./api-keys-context.js\";\nimport { namespaceClassNames } from \"../utils.js\";\n\ntype ApiKeysSearchProps = React.ComponentPropsWithoutRef<typeof TextField>;\n\nexport const ApiKeysSearch = React.forwardRef<\n HTMLInputElement,\n ApiKeysSearchProps\n>(({ className, ...props }, ref) => {\n const { inputRef, clearSearch, searchValue, setSearchValue } =\n useApiKeysSearchContext();\n const { dispatch } = useApiKeysContext();\n\n const filter = useDebouncedCallback((value) => {\n dispatch({ type: \"FILTER_BY_SEARCH\", searchQuery: value });\n }, 200);\n\n const resetSearch = () => {\n clearSearch();\n filter.cancel();\n };\n\n return (\n <TextField\n ref={useComposedRefs(inputRef, ref)}\n className={cx(namespaceClassNames(\"api-keys-search\"), className)}\n autoComplete=\"off\"\n placeholder=\"Search by name\"\n value={searchValue}\n onChange={(event) => {\n const value = event.target.value;\n setSearchValue(value);\n filter(value);\n }}\n onKeyDown={(event) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n resetSearch();\n }\n }}\n {...props}\n >\n <TextFieldSlot side=\"left\">\n <MagnifyingGlassIcon aria-hidden=\"true\" height=\"16\" width=\"16\" />\n </TextFieldSlot>\n\n <TextFieldSlot side=\"right\">\n {searchValue && (\n <IconButton\n size=\"1\"\n color=\"gray\"\n variant=\"ghost\"\n radius=\"full\"\n onClick={resetSearch}\n aria-label=\"Clear search\"\n title=\"Clear search\"\n >\n <Cross2Icon aria-hidden=\"true\" />\n </IconButton>\n )}\n </TextFieldSlot>\n </TextField>\n );\n});\n"],"mappings":";AAiCI,SAoBI,KApBJ;AA/BJ,SAAS,uBAAuB;AAChC,SAAS,YAAY,2BAA2B;AAChD,SAAS,kBAAkB;AAC3B,OAAO,QAAQ;AACf,YAAY,WAAW;AACvB,SAAS,4BAA4B;AACrC,SAAS,WAAW,qBAAqB;AACzC,SAAS,+BAA+B;AACxC,SAAS,yBAAyB;AAClC,SAAS,2BAA2B;AAI7B,MAAM,gBAAgB,MAAM,WAGjC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,QAAM,EAAE,UAAU,aAAa,aAAa,eAAe,IACzD,wBAAwB;AAC1B,QAAM,EAAE,SAAS,IAAI,kBAAkB;AAEvC,QAAM,SAAS,qBAAqB,CAAC,UAAU;AAC7C,aAAS,EAAE,MAAM,oBAAoB,aAAa,MAAM,CAAC;AAAA,EAC3D,GAAG,GAAG;AAEN,QAAM,cAAc,MAAM;AACxB,gBAAY;AACZ,WAAO,OAAO;AAAA,EAChB;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,KAAK,gBAAgB,UAAU,GAAG;AAAA,MAClC,WAAW,GAAG,oBAAoB,iBAAiB,GAAG,SAAS;AAAA,MAC/D,cAAa;AAAA,MACb,aAAY;AAAA,MACZ,OAAO;AAAA,MACP,UAAU,CAAC,UAAU;AACnB,cAAM,QAAQ,MAAM,OAAO;AAC3B,uBAAe,KAAK;AACpB,eAAO,KAAK;AAAA,MACd;AAAA,MACA,WAAW,CAAC,UAAU;AACpB,YAAI,MAAM,QAAQ,UAAU;AAC1B,gBAAM,eAAe;AACrB,sBAAY;AAAA,QACd;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,4BAAC,iBAAc,MAAK,QAClB,8BAAC,uBAAoB,eAAY,QAAO,QAAO,MAAK,OAAM,MAAK,GACjE;AAAA,QAEA,oBAAC,iBAAc,MAAK,SACjB,yBACC;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,OAAM;AAAA,YACN,SAAQ;AAAA,YACR,QAAO;AAAA,YACP,SAAS;AAAA,YACT,cAAW;AAAA,YACX,OAAM;AAAA,YAEN,8BAAC,cAAW,eAAY,QAAO;AAAA;AAAA,QACjC,GAEJ;AAAA;AAAA;AAAA,EACF;AAEJ,CAAC;","names":[]}
@@ -0,0 +1,31 @@
1
+ import * as React from 'react';
2
+ import { ListMetadata, CreateOrganizationApiKeyResponse } from '../../api/endpoint.js';
3
+ import '@tanstack/react-query';
4
+ import '../../api/widgets-api-client.js';
5
+
6
+ declare function useApiKeysState(initialState: ApiKeysState): readonly [ApiKeysState, React.ActionDispatch<[action: ApiKeysAction]>];
7
+ interface ApiKeysState {
8
+ searchQuery: string | null;
9
+ pagination: ListMetadata | null;
10
+ createDialogOpen: boolean;
11
+ createdApiKey: CreateOrganizationApiKeyResponse | null;
12
+ }
13
+ type ApiKeysAction = {
14
+ type: "INIT";
15
+ params: URLSearchParams;
16
+ } | {
17
+ type: "FILTER_BY_SEARCH";
18
+ searchQuery: string | null;
19
+ } | {
20
+ type: "SET_PAGINATION";
21
+ pagination: ListMetadata;
22
+ } | {
23
+ type: "OPEN_CREATE_DIALOG";
24
+ } | {
25
+ type: "CLOSE_CREATE_DIALOG";
26
+ } | {
27
+ type: "SET_CREATED_API_KEY";
28
+ apiKey: CreateOrganizationApiKeyResponse;
29
+ };
30
+
31
+ export { type ApiKeysAction, type ApiKeysState, useApiKeysState };
@@ -0,0 +1,123 @@
1
+ import * as React from "react";
2
+ import { canUseDOM } from "../utils.js";
3
+ function useApiKeysState(initialState) {
4
+ const [[state, effects], dispatch] = React.useReducer(reducer, [
5
+ initialState,
6
+ []
7
+ ]);
8
+ React.useEffect(() => {
9
+ if (window !== window.top) {
10
+ return;
11
+ }
12
+ const params = new URLSearchParams(window.location.search);
13
+ dispatch({ type: "INIT", params });
14
+ }, []);
15
+ React.useEffect(() => {
16
+ for (const effect of effects) {
17
+ effect();
18
+ }
19
+ }, [effects]);
20
+ return [state, dispatch];
21
+ }
22
+ function reducer(current, action) {
23
+ const effects = [];
24
+ const exec = (fn) => {
25
+ const effect = () => {
26
+ if (!effect.disposed) {
27
+ effect.disposed = true;
28
+ fn();
29
+ }
30
+ };
31
+ effect.disposed = false;
32
+ effects.push(effect);
33
+ };
34
+ const [currentState] = current;
35
+ switch (action.type) {
36
+ case "INIT": {
37
+ const { params } = action;
38
+ let searchQuery;
39
+ if (searchQuery = params.get("ak_q")) {
40
+ return [{ ...currentState, searchQuery }, effects];
41
+ }
42
+ return current;
43
+ }
44
+ case "SET_PAGINATION": {
45
+ const { pagination } = action;
46
+ if (pagination.after && pagination.after === currentState.pagination?.after || pagination.before && pagination.before === currentState.pagination?.before) {
47
+ return current;
48
+ }
49
+ return [{ ...currentState, pagination }, effects];
50
+ }
51
+ case "FILTER_BY_SEARCH": {
52
+ if (action.searchQuery === currentState.searchQuery) {
53
+ return current;
54
+ }
55
+ const { searchQuery } = action;
56
+ exec(
57
+ () => updateQueryParams({ ak_q: searchQuery }, { replaceState: true })
58
+ );
59
+ return [{ ...currentState, pagination: null, searchQuery }, effects];
60
+ }
61
+ case "OPEN_CREATE_DIALOG": {
62
+ return [
63
+ {
64
+ ...currentState,
65
+ createDialogOpen: true,
66
+ createdApiKey: null
67
+ },
68
+ effects
69
+ ];
70
+ }
71
+ case "CLOSE_CREATE_DIALOG": {
72
+ return [
73
+ {
74
+ ...currentState,
75
+ createDialogOpen: false,
76
+ createdApiKey: null
77
+ },
78
+ effects
79
+ ];
80
+ }
81
+ case "SET_CREATED_API_KEY": {
82
+ return [
83
+ {
84
+ ...currentState,
85
+ createdApiKey: action.apiKey
86
+ },
87
+ effects
88
+ ];
89
+ }
90
+ default:
91
+ return current;
92
+ }
93
+ }
94
+ function updateQueryParams(newParams, args = {}) {
95
+ if (!canUseDOM) {
96
+ throw new Error("Cannot update query params on the server");
97
+ }
98
+ if (window !== window.top) {
99
+ return;
100
+ }
101
+ const initialSearch = window.location.search;
102
+ const params = new URLSearchParams(initialSearch);
103
+ Object.entries(newParams).forEach(([key, value]) => {
104
+ if (value != null && value !== "") {
105
+ params.set(key, String(value));
106
+ } else {
107
+ params.delete(key);
108
+ }
109
+ });
110
+ if (initialSearch === `?${params.toString()}`) {
111
+ return;
112
+ }
113
+ const newUrl = params.toString() ? `${window.location.pathname}?${params}` : window.location.pathname;
114
+ if (args.replaceState) {
115
+ window.history.replaceState({}, "", newUrl);
116
+ } else {
117
+ window.history.pushState({}, "", newUrl);
118
+ }
119
+ }
120
+ export {
121
+ useApiKeysState
122
+ };
123
+ //# sourceMappingURL=api-keys-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/api-keys/api-keys-state.ts"],"sourcesContent":["import * as React from \"react\";\nimport { canUseDOM } from \"../utils.js\";\nimport {\n CreateOrganizationApiKeyResponse,\n ListMetadata,\n} from \"../../api/endpoint.js\";\n\nexport function useApiKeysState(initialState: ApiKeysState) {\n const [[state, effects], dispatch] = React.useReducer(reducer, [\n initialState,\n [],\n ]);\n\n React.useEffect(() => {\n if (window !== window.top) {\n // do not use query params if widget is rendered in an iframe\n return;\n }\n const params = new URLSearchParams(window.location.search);\n dispatch({ type: \"INIT\", params });\n }, []);\n\n React.useEffect(() => {\n for (const effect of effects) {\n effect();\n }\n }, [effects]);\n\n return [state, dispatch] as const;\n}\n\nfunction reducer(\n current: StateWithEffects<ApiKeysState>,\n action: ApiKeysAction,\n): StateWithEffects<ApiKeysState> {\n const effects: EffectFn[] = [];\n const exec = (fn: () => void) => {\n const effect = () => {\n if (!effect.disposed) {\n effect.disposed = true;\n fn();\n }\n };\n effect.disposed = false;\n effects.push(effect);\n };\n\n const [currentState] = current;\n switch (action.type) {\n case \"INIT\": {\n const { params } = action;\n let searchQuery;\n if ((searchQuery = params.get(\"ak_q\"))) {\n return [{ ...currentState, searchQuery }, effects];\n }\n return current;\n }\n case \"SET_PAGINATION\": {\n const { pagination } = action;\n if (\n (pagination.after &&\n pagination.after === currentState.pagination?.after) ||\n (pagination.before &&\n pagination.before === currentState.pagination?.before)\n ) {\n return current;\n }\n\n return [{ ...currentState, pagination }, effects];\n }\n case \"FILTER_BY_SEARCH\": {\n if (action.searchQuery === currentState.searchQuery) {\n return current;\n }\n const { searchQuery } = action;\n exec(() =>\n updateQueryParams({ ak_q: searchQuery }, { replaceState: true }),\n );\n return [{ ...currentState, pagination: null, searchQuery }, effects];\n }\n case \"OPEN_CREATE_DIALOG\": {\n return [\n {\n ...currentState,\n createDialogOpen: true,\n createdApiKey: null,\n },\n effects,\n ];\n }\n case \"CLOSE_CREATE_DIALOG\": {\n return [\n {\n ...currentState,\n createDialogOpen: false,\n createdApiKey: null,\n },\n effects,\n ];\n }\n case \"SET_CREATED_API_KEY\": {\n return [\n {\n ...currentState,\n createdApiKey: action.apiKey,\n },\n effects,\n ];\n }\n default:\n return current;\n }\n}\n\nexport interface ApiKeysState {\n searchQuery: string | null;\n pagination: ListMetadata | null;\n createDialogOpen: boolean;\n createdApiKey: CreateOrganizationApiKeyResponse | null;\n}\n\nexport type ApiKeysAction =\n | { type: \"INIT\"; params: URLSearchParams }\n | { type: \"FILTER_BY_SEARCH\"; searchQuery: string | null }\n | { type: \"SET_PAGINATION\"; pagination: ListMetadata }\n | { type: \"OPEN_CREATE_DIALOG\" }\n | { type: \"CLOSE_CREATE_DIALOG\" }\n | { type: \"SET_CREATED_API_KEY\"; apiKey: CreateOrganizationApiKeyResponse };\n\ntype EffectFn = {\n (): void;\n disposed: boolean;\n};\n\ntype StateWithEffects<State> = [State, EffectFn[]];\n\nfunction updateQueryParams(\n newParams: { [key: string]: { toString(): string } | null },\n args: { replaceState?: boolean } = {},\n) {\n if (!canUseDOM) {\n throw new Error(\"Cannot update query params on the server\");\n }\n\n if (window !== window.top) {\n // do not update query params if widget is rendered in an iframe\n return;\n }\n\n const initialSearch = window.location.search;\n const params = new URLSearchParams(initialSearch);\n Object.entries(newParams).forEach(([key, value]) => {\n if (value != null && value !== \"\") {\n params.set(key, String(value));\n } else {\n params.delete(key);\n }\n });\n\n if (initialSearch === `?${params.toString()}`) {\n return;\n }\n\n const newUrl = params.toString()\n ? `${window.location.pathname}?${params}`\n : window.location.pathname;\n\n if (args.replaceState) {\n window.history.replaceState({}, \"\", newUrl);\n } else {\n window.history.pushState({}, \"\", newUrl);\n }\n}\n"],"mappings":"AAAA,YAAY,WAAW;AACvB,SAAS,iBAAiB;AAMnB,SAAS,gBAAgB,cAA4B;AAC1D,QAAM,CAAC,CAAC,OAAO,OAAO,GAAG,QAAQ,IAAI,MAAM,WAAW,SAAS;AAAA,IAC7D;AAAA,IACA,CAAC;AAAA,EACH,CAAC;AAED,QAAM,UAAU,MAAM;AACpB,QAAI,WAAW,OAAO,KAAK;AAEzB;AAAA,IACF;AACA,UAAM,SAAS,IAAI,gBAAgB,OAAO,SAAS,MAAM;AACzD,aAAS,EAAE,MAAM,QAAQ,OAAO,CAAC;AAAA,EACnC,GAAG,CAAC,CAAC;AAEL,QAAM,UAAU,MAAM;AACpB,eAAW,UAAU,SAAS;AAC5B,aAAO;AAAA,IACT;AAAA,EACF,GAAG,CAAC,OAAO,CAAC;AAEZ,SAAO,CAAC,OAAO,QAAQ;AACzB;AAEA,SAAS,QACP,SACA,QACgC;AAChC,QAAM,UAAsB,CAAC;AAC7B,QAAM,OAAO,CAAC,OAAmB;AAC/B,UAAM,SAAS,MAAM;AACnB,UAAI,CAAC,OAAO,UAAU;AACpB,eAAO,WAAW;AAClB,WAAG;AAAA,MACL;AAAA,IACF;AACA,WAAO,WAAW;AAClB,YAAQ,KAAK,MAAM;AAAA,EACrB;AAEA,QAAM,CAAC,YAAY,IAAI;AACvB,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,QAAQ;AACX,YAAM,EAAE,OAAO,IAAI;AACnB,UAAI;AACJ,UAAK,cAAc,OAAO,IAAI,MAAM,GAAI;AACtC,eAAO,CAAC,EAAE,GAAG,cAAc,YAAY,GAAG,OAAO;AAAA,MACnD;AACA,aAAO;AAAA,IACT;AAAA,IACA,KAAK,kBAAkB;AACrB,YAAM,EAAE,WAAW,IAAI;AACvB,UACG,WAAW,SACV,WAAW,UAAU,aAAa,YAAY,SAC/C,WAAW,UACV,WAAW,WAAW,aAAa,YAAY,QACjD;AACA,eAAO;AAAA,MACT;AAEA,aAAO,CAAC,EAAE,GAAG,cAAc,WAAW,GAAG,OAAO;AAAA,IAClD;AAAA,IACA,KAAK,oBAAoB;AACvB,UAAI,OAAO,gBAAgB,aAAa,aAAa;AACnD,eAAO;AAAA,MACT;AACA,YAAM,EAAE,YAAY,IAAI;AACxB;AAAA,QAAK,MACH,kBAAkB,EAAE,MAAM,YAAY,GAAG,EAAE,cAAc,KAAK,CAAC;AAAA,MACjE;AACA,aAAO,CAAC,EAAE,GAAG,cAAc,YAAY,MAAM,YAAY,GAAG,OAAO;AAAA,IACrE;AAAA,IACA,KAAK,sBAAsB;AACzB,aAAO;AAAA,QACL;AAAA,UACE,GAAG;AAAA,UACH,kBAAkB;AAAA,UAClB,eAAe;AAAA,QACjB;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA,KAAK,uBAAuB;AAC1B,aAAO;AAAA,QACL;AAAA,UACE,GAAG;AAAA,UACH,kBAAkB;AAAA,UAClB,eAAe;AAAA,QACjB;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA,KAAK,uBAAuB;AAC1B,aAAO;AAAA,QACL;AAAA,UACE,GAAG;AAAA,UACH,eAAe,OAAO;AAAA,QACxB;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AACE,aAAO;AAAA,EACX;AACF;AAwBA,SAAS,kBACP,WACA,OAAmC,CAAC,GACpC;AACA,MAAI,CAAC,WAAW;AACd,UAAM,IAAI,MAAM,0CAA0C;AAAA,EAC5D;AAEA,MAAI,WAAW,OAAO,KAAK;AAEzB;AAAA,EACF;AAEA,QAAM,gBAAgB,OAAO,SAAS;AACtC,QAAM,SAAS,IAAI,gBAAgB,aAAa;AAChD,SAAO,QAAQ,SAAS,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAClD,QAAI,SAAS,QAAQ,UAAU,IAAI;AACjC,aAAO,IAAI,KAAK,OAAO,KAAK,CAAC;AAAA,IAC/B,OAAO;AACL,aAAO,OAAO,GAAG;AAAA,IACnB;AAAA,EACF,CAAC;AAED,MAAI,kBAAkB,IAAI,OAAO,SAAS,CAAC,IAAI;AAC7C;AAAA,EACF;AAEA,QAAM,SAAS,OAAO,SAAS,IAC3B,GAAG,OAAO,SAAS,QAAQ,IAAI,MAAM,KACrC,OAAO,SAAS;AAEpB,MAAI,KAAK,cAAc;AACrB,WAAO,QAAQ,aAAa,CAAC,GAAG,IAAI,MAAM;AAAA,EAC5C,OAAO;AACL,WAAO,QAAQ,UAAU,CAAC,GAAG,IAAI,MAAM;AAAA,EACzC;AACF;","names":[]}
@@ -0,0 +1,10 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ListOrganizationApiKeysResponse } from '../../api/endpoint.js';
3
+ import '@tanstack/react-query';
4
+ import '../../api/widgets-api-client.js';
5
+
6
+ declare function ApiKeysTable({ apiKeys, }: {
7
+ apiKeys: ListOrganizationApiKeysResponse;
8
+ }): react_jsx_runtime.JSX.Element;
9
+
10
+ export { ApiKeysTable };
@@ -0,0 +1,169 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import {
3
+ Button,
4
+ Flex,
5
+ Text,
6
+ IconButton,
7
+ Table,
8
+ Code,
9
+ DropdownMenu,
10
+ Heading
11
+ } from "@radix-ui/themes";
12
+ import {
13
+ DestructiveMenuItem,
14
+ DropdownMenuContent,
15
+ SecondaryButton
16
+ } from "../elements.js";
17
+ import { DotsHorizontalIcon, MagnifyingGlassIcon } from "@radix-ui/react-icons";
18
+ import { useState } from "react";
19
+ import { RevokeApiKeyDialog } from "./revoke-api-key-dialog.js";
20
+ import { CreateApiKeyButton } from "./create-api-key.js";
21
+ import { ApiKeyDetailsDialog } from "./api-key-details-dialog.js";
22
+ import { useIsHydrated } from "../use-is-hydrated.js";
23
+ import { RelativeTime } from "./relative-time.js";
24
+ import { useApiKeysContext } from "./api-keys-context.js";
25
+ import { useApiKeysSearchContext } from "./api-keys-search-provider.js";
26
+ import { ApiKeysSearch } from "./api-keys-search.js";
27
+ function NoApiKeys() {
28
+ const { clearSearch } = useApiKeysSearchContext();
29
+ return /* @__PURE__ */ jsxs(Flex, { p: "6", gap: "4", justify: "center", align: "center", direction: "column", children: [
30
+ /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: "1", maxWidth: "420px", align: "center", children: [
31
+ /* @__PURE__ */ jsx(
32
+ MagnifyingGlassIcon,
33
+ {
34
+ style: { color: "var(--gray-9)" },
35
+ width: "32px",
36
+ height: "32px"
37
+ }
38
+ ),
39
+ /* @__PURE__ */ jsx(Heading, { size: "5", mb: "1", wrap: "balance", as: "h3", children: "No API keys match your search" })
40
+ ] }),
41
+ /* @__PURE__ */ jsx(Button, { variant: "outline", color: "gray", onClick: clearSearch, children: "Clear search" })
42
+ ] });
43
+ }
44
+ function ApiKeysTableHeader() {
45
+ return /* @__PURE__ */ jsxs(Flex, { justify: "between", align: "center", children: [
46
+ /* @__PURE__ */ jsx(ApiKeysSearch, { name: "api-keys-widget-search", style: { width: "390px" } }),
47
+ /* @__PURE__ */ jsx(CreateApiKeyButton, {})
48
+ ] });
49
+ }
50
+ function CreatedOn({ createdOn }) {
51
+ const isHydrated = useIsHydrated();
52
+ return /* @__PURE__ */ jsx(Fragment, { children: createdOn.toLocaleDateString("en-US", {
53
+ timeZone: isHydrated ? void 0 : "UTC",
54
+ month: "short",
55
+ day: "numeric",
56
+ year: "numeric"
57
+ }) });
58
+ }
59
+ function ApiKeyRow({ apiKey }) {
60
+ const [revokeDialogOpen, setRevokeDialogOpen] = useState(false);
61
+ const [detailsOpen, setDetailsOpen] = useState(false);
62
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
63
+ /* @__PURE__ */ jsx(
64
+ RevokeApiKeyDialog,
65
+ {
66
+ open: revokeDialogOpen,
67
+ onOpenChange: setRevokeDialogOpen,
68
+ apiKey
69
+ },
70
+ `${revokeDialogOpen}`
71
+ ),
72
+ /* @__PURE__ */ jsx(
73
+ ApiKeyDetailsDialog,
74
+ {
75
+ open: detailsOpen,
76
+ onOpenChange: setDetailsOpen,
77
+ apiKey,
78
+ permissions: apiKey.permissions
79
+ }
80
+ ),
81
+ /* @__PURE__ */ jsxs(Table.Row, { children: [
82
+ /* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Text, { children: apiKey.name }) }),
83
+ /* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Code, { color: "gray", children: apiKey.obfuscatedValue }) }),
84
+ /* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(
85
+ Text,
86
+ {
87
+ style: apiKey.lastUsedAt ? void 0 : { color: "var(--gray-10)" },
88
+ children: /* @__PURE__ */ jsx(
89
+ RelativeTime,
90
+ {
91
+ date: apiKey.lastUsedAt ? new Date(apiKey.lastUsedAt) : void 0
92
+ }
93
+ )
94
+ }
95
+ ) }),
96
+ /* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Text, { children: /* @__PURE__ */ jsx(CreatedOn, { createdOn: new Date(apiKey.createdAt) }) }) }),
97
+ /* @__PURE__ */ jsx(Table.Cell, { justify: "end", children: /* @__PURE__ */ jsxs(DropdownMenu.Root, { children: [
98
+ /* @__PURE__ */ jsx(DropdownMenu.Trigger, { children: /* @__PURE__ */ jsx(
99
+ IconButton,
100
+ {
101
+ radius: "full",
102
+ style: { verticalAlign: "middle" },
103
+ variant: "ghost",
104
+ color: "gray",
105
+ title: "API key actions",
106
+ children: /* @__PURE__ */ jsx(DotsHorizontalIcon, {})
107
+ }
108
+ ) }),
109
+ /* @__PURE__ */ jsxs(DropdownMenuContent, { size: "2", align: "end", children: [
110
+ /* @__PURE__ */ jsx(DropdownMenu.Item, { onSelect: () => setDetailsOpen(true), children: "View details" }),
111
+ /* @__PURE__ */ jsx(DestructiveMenuItem, { onSelect: () => setRevokeDialogOpen(true), children: "Revoke key" })
112
+ ] })
113
+ ] }) })
114
+ ] })
115
+ ] });
116
+ }
117
+ function ApiKeysTable({
118
+ apiKeys
119
+ }) {
120
+ const { dispatch } = useApiKeysContext();
121
+ const hasPagination = apiKeys.listMetadata.before || apiKeys.listMetadata.after;
122
+ const hasPreviousPage = apiKeys.listMetadata.after;
123
+ const hasNextPage = apiKeys.listMetadata.before;
124
+ return /* @__PURE__ */ jsxs(Flex, { direction: "column", align: "stretch", gap: "3", children: [
125
+ /* @__PURE__ */ jsx(ApiKeysTableHeader, {}),
126
+ apiKeys.data.length === 0 ? /* @__PURE__ */ jsx(NoApiKeys, {}) : /* @__PURE__ */ jsxs(Fragment, { children: [
127
+ /* @__PURE__ */ jsxs(Table.Root, { variant: "ghost", size: "2", children: [
128
+ /* @__PURE__ */ jsx(Table.Header, { children: /* @__PURE__ */ jsxs(Table.Row, { children: [
129
+ /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "25%", children: "Name" }),
130
+ /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "25%", children: "Secret key" }),
131
+ /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "25%", children: "Last used" }),
132
+ /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "25%", children: "Created" }),
133
+ /* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "28px" })
134
+ ] }) }),
135
+ /* @__PURE__ */ jsx(Table.Body, { children: apiKeys.data.map((apiKey) => /* @__PURE__ */ jsx(ApiKeyRow, { apiKey }, apiKey.id)) })
136
+ ] }),
137
+ hasPagination && /* @__PURE__ */ jsxs(Flex, { gap: "2", justify: "end", children: [
138
+ /* @__PURE__ */ jsx(
139
+ SecondaryButton,
140
+ {
141
+ disabled: !hasPreviousPage,
142
+ size: "1",
143
+ onClick: () => dispatch({
144
+ type: "SET_PAGINATION",
145
+ pagination: { after: apiKeys.listMetadata.after }
146
+ }),
147
+ children: "Previous"
148
+ }
149
+ ),
150
+ /* @__PURE__ */ jsx(
151
+ SecondaryButton,
152
+ {
153
+ disabled: !hasNextPage,
154
+ size: "1",
155
+ onClick: () => dispatch({
156
+ type: "SET_PAGINATION",
157
+ pagination: { before: apiKeys.listMetadata.before }
158
+ }),
159
+ children: "Next"
160
+ }
161
+ )
162
+ ] })
163
+ ] })
164
+ ] });
165
+ }
166
+ export {
167
+ ApiKeysTable
168
+ };
169
+ //# sourceMappingURL=api-keys-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/api-keys/api-keys-table.tsx"],"sourcesContent":["import {\n Button,\n Flex,\n Text,\n IconButton,\n Table,\n Code,\n DropdownMenu,\n Heading,\n} from \"@radix-ui/themes\";\nimport {\n DestructiveMenuItem,\n DropdownMenuContent,\n SecondaryButton,\n} from \"../elements.js\";\nimport { DotsHorizontalIcon, MagnifyingGlassIcon } from \"@radix-ui/react-icons\";\nimport { useState } from \"react\";\nimport { RevokeApiKeyDialog } from \"./revoke-api-key-dialog.js\";\nimport { CreateApiKeyButton } from \"./create-api-key.js\";\nimport { ApiKeyDetailsDialog } from \"./api-key-details-dialog.js\";\nimport { useIsHydrated } from \"../use-is-hydrated.js\";\nimport { RelativeTime } from \"./relative-time.js\";\nimport {\n ListOrganizationApiKeysResponse,\n ListOrganizationApiKeysResponseData,\n} from \"../../api/endpoint.js\";\nimport { useApiKeysContext } from \"./api-keys-context.js\";\nimport { useApiKeysSearchContext } from \"./api-keys-search-provider.js\";\nimport { ApiKeysSearch } from \"./api-keys-search.js\";\n\nfunction NoApiKeys() {\n const { clearSearch } = useApiKeysSearchContext();\n return (\n <Flex p=\"6\" gap=\"4\" justify=\"center\" align=\"center\" direction=\"column\">\n <Flex direction=\"column\" gap=\"1\" maxWidth=\"420px\" align=\"center\">\n <MagnifyingGlassIcon\n style={{ color: \"var(--gray-9)\" }}\n width=\"32px\"\n height=\"32px\"\n />\n <Heading size=\"5\" mb=\"1\" wrap=\"balance\" as=\"h3\">\n No API keys match your search\n </Heading>\n </Flex>\n\n <Button variant=\"outline\" color=\"gray\" onClick={clearSearch}>\n Clear search\n </Button>\n </Flex>\n );\n}\n\nfunction ApiKeysTableHeader() {\n return (\n <Flex justify=\"between\" align=\"center\">\n <ApiKeysSearch name=\"api-keys-widget-search\" style={{ width: \"390px\" }} />\n <CreateApiKeyButton />\n </Flex>\n );\n}\n\nfunction CreatedOn({ createdOn }: { createdOn: Date }) {\n const isHydrated = useIsHydrated();\n return (\n <>\n {createdOn.toLocaleDateString(\"en-US\", {\n timeZone: isHydrated ? undefined : \"UTC\",\n month: \"short\",\n day: \"numeric\",\n year: \"numeric\",\n })}\n </>\n );\n}\n\ninterface ApiKeyRowProps {\n apiKey: ListOrganizationApiKeysResponseData;\n}\n\nfunction ApiKeyRow({ apiKey }: ApiKeyRowProps) {\n const [revokeDialogOpen, setRevokeDialogOpen] = useState(false);\n const [detailsOpen, setDetailsOpen] = useState(false);\n return (\n <>\n <RevokeApiKeyDialog\n // always remount the form when the dialog is opened to reset the validation errors\n key={`${revokeDialogOpen}`}\n open={revokeDialogOpen}\n onOpenChange={setRevokeDialogOpen}\n apiKey={apiKey}\n />\n <ApiKeyDetailsDialog\n open={detailsOpen}\n onOpenChange={setDetailsOpen}\n apiKey={apiKey}\n permissions={apiKey.permissions}\n />\n <Table.Row>\n <Table.Cell>\n <Text>{apiKey.name}</Text>\n </Table.Cell>\n <Table.Cell>\n <Code color=\"gray\">{apiKey.obfuscatedValue}</Code>\n </Table.Cell>\n <Table.Cell>\n <Text\n style={apiKey.lastUsedAt ? undefined : { color: \"var(--gray-10)\" }}\n >\n <RelativeTime\n date={apiKey.lastUsedAt ? new Date(apiKey.lastUsedAt) : undefined}\n />\n </Text>\n </Table.Cell>\n <Table.Cell>\n <Text>\n <CreatedOn createdOn={new Date(apiKey.createdAt)} />\n </Text>\n </Table.Cell>\n <Table.Cell justify=\"end\">\n <DropdownMenu.Root>\n <DropdownMenu.Trigger>\n <IconButton\n radius=\"full\"\n style={{ verticalAlign: \"middle\" }}\n variant=\"ghost\"\n color=\"gray\"\n title=\"API key actions\"\n >\n <DotsHorizontalIcon />\n </IconButton>\n </DropdownMenu.Trigger>\n <DropdownMenuContent size=\"2\" align=\"end\">\n <DropdownMenu.Item onSelect={() => setDetailsOpen(true)}>\n View details\n </DropdownMenu.Item>\n <DestructiveMenuItem onSelect={() => setRevokeDialogOpen(true)}>\n Revoke key\n </DestructiveMenuItem>\n </DropdownMenuContent>\n </DropdownMenu.Root>\n </Table.Cell>\n </Table.Row>\n </>\n );\n}\n\nexport function ApiKeysTable({\n apiKeys,\n}: {\n apiKeys: ListOrganizationApiKeysResponse;\n}) {\n const { dispatch } = useApiKeysContext();\n const hasPagination =\n apiKeys.listMetadata.before || apiKeys.listMetadata.after;\n const hasPreviousPage = apiKeys.listMetadata.after;\n const hasNextPage = apiKeys.listMetadata.before;\n\n return (\n <Flex direction=\"column\" align=\"stretch\" gap=\"3\">\n <ApiKeysTableHeader />\n {apiKeys.data.length === 0 ? (\n <NoApiKeys />\n ) : (\n <>\n <Table.Root variant=\"ghost\" size=\"2\">\n <Table.Header>\n <Table.Row>\n <Table.ColumnHeaderCell width=\"25%\">\n Name\n </Table.ColumnHeaderCell>\n <Table.ColumnHeaderCell width=\"25%\">\n Secret key\n </Table.ColumnHeaderCell>\n <Table.ColumnHeaderCell width=\"25%\">\n Last used\n </Table.ColumnHeaderCell>\n <Table.ColumnHeaderCell width=\"25%\">\n Created\n </Table.ColumnHeaderCell>\n <Table.ColumnHeaderCell width=\"28px\" />\n </Table.Row>\n </Table.Header>\n <Table.Body>\n {apiKeys.data.map((apiKey) => (\n <ApiKeyRow key={apiKey.id} apiKey={apiKey} />\n ))}\n </Table.Body>\n </Table.Root>\n {hasPagination && (\n <Flex gap=\"2\" justify=\"end\">\n <SecondaryButton\n disabled={!hasPreviousPage}\n size=\"1\"\n onClick={() =>\n dispatch({\n type: \"SET_PAGINATION\",\n pagination: { after: apiKeys.listMetadata.after },\n })\n }\n >\n Previous\n </SecondaryButton>\n <SecondaryButton\n disabled={!hasNextPage}\n size=\"1\"\n onClick={() =>\n dispatch({\n type: \"SET_PAGINATION\",\n pagination: { before: apiKeys.listMetadata.before },\n })\n }\n >\n Next\n </SecondaryButton>\n </Flex>\n )}\n </>\n )}\n </Flex>\n );\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,11 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { Flex } from '@radix-ui/themes';
3
+
4
+ declare function ApiKeysError({ error }: {
5
+ error: unknown;
6
+ }): react_jsx_runtime.JSX.Element;
7
+ declare function ApiKeysEmptyState(): react_jsx_runtime.JSX.Element;
8
+ declare function ApiKeysLoading(): react_jsx_runtime.JSX.Element;
9
+ declare function ApiKeysRoot({ className, children, ...props }: React.ComponentProps<typeof Flex>): react_jsx_runtime.JSX.Element;
10
+
11
+ export { ApiKeysEmptyState, ApiKeysError, ApiKeysLoading, ApiKeysRoot };
@@ -0,0 +1,74 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import { Button, Flex, Skeleton } from "@radix-ui/themes";
3
+ import { TextField, TextFieldSlot } from "../elements.js";
4
+ import { GenericError } from "../generic-error.js";
5
+ import { EmptyState } from "../empty-state.js";
6
+ import { MagnifyingGlassIcon } from "@radix-ui/react-icons";
7
+ import { SkeletonTable } from "./skeleton-table.js";
8
+ import { CreateApiKeyButton } from "./create-api-key.js";
9
+ import clsx from "clsx";
10
+ function ApiKeysError({ error }) {
11
+ return /* @__PURE__ */ jsx(GenericError, { error });
12
+ }
13
+ function ApiKeysEmptyState() {
14
+ return /* @__PURE__ */ jsx(
15
+ EmptyState,
16
+ {
17
+ heading: "No API keys yet",
18
+ message: "Generate an API key to authenticate and interact with our API.",
19
+ action: /* @__PURE__ */ jsx(CreateApiKeyButton, {})
20
+ }
21
+ );
22
+ }
23
+ function ApiKeysLoading() {
24
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
25
+ /* @__PURE__ */ jsxs(Flex, { justify: "between", align: "center", children: [
26
+ /* @__PURE__ */ jsx(Skeleton, { children: /* @__PURE__ */ jsx(
27
+ TextField,
28
+ {
29
+ name: "api-keys-widget-search",
30
+ style: { width: "390px" },
31
+ placeholder: "Search by name",
32
+ children: /* @__PURE__ */ jsx(TextFieldSlot, { side: "left", children: /* @__PURE__ */ jsx(MagnifyingGlassIcon, { "aria-hidden": "true", height: "16", width: "16" }) })
33
+ }
34
+ ) }),
35
+ /* @__PURE__ */ jsx(Skeleton, { children: /* @__PURE__ */ jsx(Button, { children: "Create API key" }) })
36
+ ] }),
37
+ /* @__PURE__ */ jsx(
38
+ SkeletonTable,
39
+ {
40
+ numRows: 5,
41
+ columns: [
42
+ { children: "Name", width: "25%" },
43
+ { children: "Secret key", width: "25%" },
44
+ { children: "Last used", width: "25%" },
45
+ { children: "Created", width: "25%" }
46
+ ]
47
+ }
48
+ )
49
+ ] });
50
+ }
51
+ function ApiKeysRoot({
52
+ className,
53
+ children,
54
+ ...props
55
+ }) {
56
+ return /* @__PURE__ */ jsx(
57
+ Flex,
58
+ {
59
+ className: clsx("woswidgets-widget", className),
60
+ "data-woswidgets-widget-id": "api-keys",
61
+ direction: "column",
62
+ gap: "3",
63
+ ...props,
64
+ children
65
+ }
66
+ );
67
+ }
68
+ export {
69
+ ApiKeysEmptyState,
70
+ ApiKeysError,
71
+ ApiKeysLoading,
72
+ ApiKeysRoot
73
+ };
74
+ //# sourceMappingURL=api-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/api-keys/api-keys.tsx"],"sourcesContent":["import { Button, Flex, Skeleton } from \"@radix-ui/themes\";\nimport { TextField, TextFieldSlot } from \"../elements.js\";\nimport { GenericError } from \"../generic-error.js\";\nimport { EmptyState } from \"../empty-state.js\";\nimport { MagnifyingGlassIcon } from \"@radix-ui/react-icons\";\nimport { SkeletonTable } from \"./skeleton-table.js\";\nimport { CreateApiKeyButton } from \"./create-api-key.js\";\nimport clsx from \"clsx\";\n\nexport function ApiKeysError({ error }: { error: unknown }) {\n return <GenericError error={error} />;\n}\n\nexport function ApiKeysEmptyState() {\n return (\n <EmptyState\n heading=\"No API keys yet\"\n message=\"Generate an API key to authenticate and interact with our API.\"\n action={<CreateApiKeyButton />}\n />\n );\n}\n\nexport function ApiKeysLoading() {\n return (\n <>\n <Flex justify=\"between\" align=\"center\">\n <Skeleton>\n <TextField\n name=\"api-keys-widget-search\"\n style={{ width: \"390px\" }}\n placeholder=\"Search by name\"\n >\n <TextFieldSlot side=\"left\">\n <MagnifyingGlassIcon aria-hidden=\"true\" height=\"16\" width=\"16\" />\n </TextFieldSlot>\n </TextField>\n </Skeleton>\n <Skeleton>\n <Button>Create API key</Button>\n </Skeleton>\n </Flex>\n <SkeletonTable\n numRows={5}\n columns={[\n { children: \"Name\", width: \"25%\" },\n { children: \"Secret key\", width: \"25%\" },\n { children: \"Last used\", width: \"25%\" },\n { children: \"Created\", width: \"25%\" },\n ]}\n />\n </>\n );\n}\n\nexport function ApiKeysRoot({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof Flex>) {\n return (\n <Flex\n className={clsx(\"woswidgets-widget\", className)}\n data-woswidgets-widget-id=\"api-keys\"\n direction=\"column\"\n gap=\"3\"\n {...props}\n >\n {children}\n </Flex>\n );\n}\n"],"mappings":"AAUS,SAeL,UAfK,KAgBH,YAhBG;AAVT,SAAS,QAAQ,MAAM,gBAAgB;AACvC,SAAS,WAAW,qBAAqB;AACzC,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAC3B,SAAS,2BAA2B;AACpC,SAAS,qBAAqB;AAC9B,SAAS,0BAA0B;AACnC,OAAO,UAAU;AAEV,SAAS,aAAa,EAAE,MAAM,GAAuB;AAC1D,SAAO,oBAAC,gBAAa,OAAc;AACrC;AAEO,SAAS,oBAAoB;AAClC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAQ;AAAA,MACR,QAAQ,oBAAC,sBAAmB;AAAA;AAAA,EAC9B;AAEJ;AAEO,SAAS,iBAAiB;AAC/B,SACE,iCACE;AAAA,yBAAC,QAAK,SAAQ,WAAU,OAAM,UAC5B;AAAA,0BAAC,YACC;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,OAAO,EAAE,OAAO,QAAQ;AAAA,UACxB,aAAY;AAAA,UAEZ,8BAAC,iBAAc,MAAK,QAClB,8BAAC,uBAAoB,eAAY,QAAO,QAAO,MAAK,OAAM,MAAK,GACjE;AAAA;AAAA,MACF,GACF;AAAA,MACA,oBAAC,YACC,8BAAC,UAAO,4BAAc,GACxB;AAAA,OACF;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,SAAS;AAAA,QACT,SAAS;AAAA,UACP,EAAE,UAAU,QAAQ,OAAO,MAAM;AAAA,UACjC,EAAE,UAAU,cAAc,OAAO,MAAM;AAAA,UACvC,EAAE,UAAU,aAAa,OAAO,MAAM;AAAA,UACtC,EAAE,UAAU,WAAW,OAAO,MAAM;AAAA,QACtC;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAEO,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAsC;AACpC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,KAAK,qBAAqB,SAAS;AAAA,MAC9C,6BAA0B;AAAA,MAC1B,WAAU;AAAA,MACV,KAAI;AAAA,MACH,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;","names":[]}
@@ -0,0 +1,6 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function CreateApiKeyDialog(): react_jsx_runtime.JSX.Element;
4
+ declare function CreateApiKeyButton(): react_jsx_runtime.JSX.Element;
5
+
6
+ export { CreateApiKeyButton, CreateApiKeyDialog };