@better-auth-ui/heroui 1.6.8 → 1.6.9

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 (270) hide show
  1. package/dist/components/auth/additional-field.d.ts +2 -2
  2. package/dist/components/auth/additional-field.js +133 -266
  3. package/dist/components/auth/api-key/api-key-skeleton.js +4 -20
  4. package/dist/components/auth/api-key/api-key.d.ts +6 -2
  5. package/dist/components/auth/api-key/api-key.js +16 -54
  6. package/dist/components/auth/api-key/api-keys-empty.d.ts +3 -1
  7. package/dist/components/auth/api-key/api-keys-empty.js +8 -34
  8. package/dist/components/auth/api-key/api-keys.d.ts +10 -2
  9. package/dist/components/auth/api-key/api-keys.js +21 -40
  10. package/dist/components/auth/api-key/create-api-key-dialog.d.ts +3 -1
  11. package/dist/components/auth/api-key/create-api-key-dialog.js +43 -73
  12. package/dist/components/auth/api-key/delete-api-key-dialog.d.ts +4 -2
  13. package/dist/components/auth/api-key/delete-api-key-dialog.js +16 -50
  14. package/dist/components/auth/api-key/new-api-key-dialog.js +23 -59
  15. package/dist/components/auth/api-key/organization-api-keys.d.ts +14 -0
  16. package/dist/components/auth/api-key/organization-api-keys.js +22 -0
  17. package/dist/components/auth/auth-provider.d.ts +1 -1
  18. package/dist/components/auth/auth-provider.js +10 -16
  19. package/dist/components/auth/auth.d.ts +3 -3
  20. package/dist/components/auth/auth.js +86 -61
  21. package/dist/components/auth/delete-user/danger-zone.d.ts +3 -3
  22. package/dist/components/auth/delete-user/danger-zone.js +11 -17
  23. package/dist/components/auth/delete-user/delete-account.d.ts +9 -0
  24. package/dist/components/auth/delete-user/delete-account.js +50 -0
  25. package/dist/components/auth/email/email-changed-email.d.ts +2 -2
  26. package/dist/components/auth/email/email-changed-email.js +22 -29
  27. package/dist/components/auth/email/email-verification-email.d.ts +2 -2
  28. package/dist/components/auth/email/email-verification-email.js +22 -29
  29. package/dist/components/auth/email/magic-link-email.d.ts +2 -2
  30. package/dist/components/auth/email/magic-link-email.js +22 -29
  31. package/dist/components/auth/email/new-device-email.d.ts +2 -2
  32. package/dist/components/auth/email/new-device-email.js +22 -29
  33. package/dist/components/auth/email/organization-invitation-email.d.ts +3 -0
  34. package/dist/components/auth/email/organization-invitation-email.js +23 -0
  35. package/dist/components/auth/email/otp-email.d.ts +2 -2
  36. package/dist/components/auth/email/otp-email.js +21 -28
  37. package/dist/components/auth/email/password-changed-email.d.ts +2 -2
  38. package/dist/components/auth/email/password-changed-email.js +22 -29
  39. package/dist/components/auth/email/reset-password-email.d.ts +2 -2
  40. package/dist/components/auth/email/reset-password-email.js +22 -29
  41. package/dist/components/auth/error-toaster.js +32 -16
  42. package/dist/components/auth/field-separator.d.ts +1 -1
  43. package/dist/components/auth/field-separator.js +4 -17
  44. package/dist/components/auth/forgot-password.d.ts +1 -1
  45. package/dist/components/auth/forgot-password.js +36 -88
  46. package/dist/components/auth/magic-link/magic-link-button.d.ts +1 -1
  47. package/dist/components/auth/magic-link/magic-link-button.js +33 -19
  48. package/dist/components/auth/magic-link/magic-link.d.ts +2 -2
  49. package/dist/components/auth/magic-link/magic-link.js +39 -86
  50. package/dist/components/auth/multi-session/manage-account.d.ts +1 -1
  51. package/dist/components/auth/multi-session/manage-account.js +32 -48
  52. package/dist/components/auth/multi-session/manage-accounts.d.ts +1 -1
  53. package/dist/components/auth/multi-session/manage-accounts.js +32 -33
  54. package/dist/components/auth/multi-session/switch-account-submenu-content.d.ts +3 -1
  55. package/dist/components/auth/multi-session/switch-account-submenu-content.js +24 -27
  56. package/dist/components/auth/multi-session/switch-account-submenu-item.d.ts +3 -2
  57. package/dist/components/auth/multi-session/switch-account-submenu-item.js +16 -19
  58. package/dist/components/auth/multi-session/switch-account-submenu.d.ts +2 -1
  59. package/dist/components/auth/multi-session/switch-account-submenu.js +23 -23
  60. package/dist/components/auth/organization/change-organization-logo.d.ts +4 -0
  61. package/dist/components/auth/organization/change-organization-logo.js +69 -0
  62. package/dist/components/auth/organization/create-organization-dialog.d.ts +13 -0
  63. package/dist/components/auth/organization/create-organization-dialog.js +37 -0
  64. package/dist/components/auth/organization/delete-organization-dialog.d.ts +7 -0
  65. package/dist/components/auth/organization/delete-organization-dialog.js +25 -0
  66. package/dist/components/auth/organization/delete-organization-skeleton.d.ts +4 -0
  67. package/dist/components/auth/organization/delete-organization-skeleton.js +8 -0
  68. package/dist/components/auth/organization/delete-organization.d.ts +5 -0
  69. package/dist/components/auth/organization/delete-organization.js +27 -0
  70. package/dist/components/auth/organization/invite-member-dialog.d.ts +13 -0
  71. package/dist/components/auth/organization/invite-member-dialog.js +47 -0
  72. package/dist/components/auth/organization/leave-organization-dialog.d.ts +7 -0
  73. package/dist/components/auth/organization/leave-organization-dialog.js +21 -0
  74. package/dist/components/auth/organization/leave-organization.d.ts +4 -0
  75. package/dist/components/auth/organization/leave-organization.js +16 -0
  76. package/dist/components/auth/organization/organization-danger-zone.d.ts +16 -0
  77. package/dist/components/auth/organization/organization-danger-zone.js +23 -0
  78. package/dist/components/auth/organization/organization-invitation-row-skeleton.d.ts +5 -0
  79. package/dist/components/auth/organization/organization-invitation-row-skeleton.js +9 -0
  80. package/dist/components/auth/organization/organization-invitation-row.d.ts +5 -0
  81. package/dist/components/auth/organization/organization-invitation-row.js +31 -0
  82. package/dist/components/auth/organization/organization-invitations-empty.d.ts +8 -0
  83. package/dist/components/auth/organization/organization-invitations-empty.js +13 -0
  84. package/dist/components/auth/organization/organization-invitations.d.ts +9 -0
  85. package/dist/components/auth/organization/organization-invitations.js +66 -0
  86. package/dist/components/auth/organization/organization-logo.d.ts +15 -0
  87. package/dist/components/auth/organization/organization-logo.js +14 -0
  88. package/dist/components/auth/organization/organization-member-row-skeleton.d.ts +4 -0
  89. package/dist/components/auth/organization/organization-member-row-skeleton.js +9 -0
  90. package/dist/components/auth/organization/organization-member-row.d.ts +9 -0
  91. package/dist/components/auth/organization/organization-member-row.js +34 -0
  92. package/dist/components/auth/organization/organization-members.d.ts +9 -0
  93. package/dist/components/auth/organization/organization-members.js +67 -0
  94. package/dist/components/auth/organization/organization-people.d.ts +10 -0
  95. package/dist/components/auth/organization/organization-people.js +11 -0
  96. package/dist/components/auth/organization/organization-profile.d.ts +9 -0
  97. package/dist/components/auth/organization/organization-profile.js +34 -0
  98. package/dist/components/auth/organization/organization-row.d.ts +8 -0
  99. package/dist/components/auth/organization/organization-row.js +31 -0
  100. package/dist/components/auth/organization/organization-settings.d.ts +12 -0
  101. package/dist/components/auth/organization/organization-settings.js +13 -0
  102. package/dist/components/auth/organization/organization-switcher.d.ts +20 -0
  103. package/dist/components/auth/organization/organization-switcher.js +48 -0
  104. package/dist/components/auth/organization/organization-view-skeleton.d.ts +6 -0
  105. package/dist/components/auth/organization/organization-view-skeleton.js +9 -0
  106. package/dist/components/auth/organization/organization-view.d.ts +15 -0
  107. package/dist/components/auth/organization/organization-view.js +31 -0
  108. package/dist/components/auth/organization/organization.d.ts +17 -0
  109. package/dist/components/auth/organization/organization.js +60 -0
  110. package/dist/components/auth/organization/organizations-empty.d.ts +4 -0
  111. package/dist/components/auth/organization/organizations-empty.js +9 -0
  112. package/dist/components/auth/organization/organizations-settings.d.ts +17 -0
  113. package/dist/components/auth/organization/organizations-settings.js +17 -0
  114. package/dist/components/auth/organization/organizations.d.ts +10 -0
  115. package/dist/components/auth/organization/organizations.js +21 -0
  116. package/dist/components/auth/organization/remove-member-dialog.d.ts +9 -0
  117. package/dist/components/auth/organization/remove-member-dialog.js +20 -0
  118. package/dist/components/auth/organization/slug-field.d.ts +19 -0
  119. package/dist/components/auth/organization/slug-field.js +38 -0
  120. package/dist/components/auth/organization/user-invitation-row-skeleton.d.ts +4 -0
  121. package/dist/components/auth/organization/user-invitation-row-skeleton.js +8 -0
  122. package/dist/components/auth/organization/user-invitation-row.d.ts +10 -0
  123. package/dist/components/auth/organization/user-invitation-row.js +22 -0
  124. package/dist/components/auth/organization/user-invitations-empty.d.ts +4 -0
  125. package/dist/components/auth/organization/user-invitations-empty.js +12 -0
  126. package/dist/components/auth/organization/user-invitations.d.ts +10 -0
  127. package/dist/components/auth/organization/user-invitations.js +18 -0
  128. package/dist/components/auth/passkey/add-passkey-dialog.js +21 -64
  129. package/dist/components/auth/passkey/delete-passkey-dialog.js +13 -46
  130. package/dist/components/auth/passkey/passkey-button.d.ts +1 -1
  131. package/dist/components/auth/passkey/passkey-button.js +24 -23
  132. package/dist/components/auth/passkey/passkey-skeleton.js +4 -16
  133. package/dist/components/auth/passkey/passkey.d.ts +1 -1
  134. package/dist/components/auth/passkey/passkey.js +16 -47
  135. package/dist/components/auth/passkey/passkeys-empty.js +8 -34
  136. package/dist/components/auth/passkey/passkeys.d.ts +1 -1
  137. package/dist/components/auth/passkey/passkeys.js +15 -41
  138. package/dist/components/auth/provider-button.d.ts +2 -2
  139. package/dist/components/auth/provider-button.js +28 -24
  140. package/dist/components/auth/provider-buttons.js +28 -18
  141. package/dist/components/auth/reset-password.d.ts +1 -1
  142. package/dist/components/auth/reset-password.js +56 -146
  143. package/dist/components/auth/settings/account/account-settings.d.ts +2 -2
  144. package/dist/components/auth/settings/account/account-settings.js +21 -19
  145. package/dist/components/auth/settings/account/change-avatar.js +53 -88
  146. package/dist/components/auth/settings/account/change-email.d.ts +1 -1
  147. package/dist/components/auth/settings/account/change-email.js +27 -53
  148. package/dist/components/auth/settings/account/user-profile.d.ts +1 -1
  149. package/dist/components/auth/settings/account/user-profile.js +64 -85
  150. package/dist/components/auth/settings/security/active-session.d.ts +1 -1
  151. package/dist/components/auth/settings/security/active-session.js +50 -57
  152. package/dist/components/auth/settings/security/active-sessions.d.ts +1 -1
  153. package/dist/components/auth/settings/security/active-sessions.js +21 -32
  154. package/dist/components/auth/settings/security/change-password.d.ts +1 -1
  155. package/dist/components/auth/settings/security/change-password.js +76 -186
  156. package/dist/components/auth/settings/security/linked-account.d.ts +1 -1
  157. package/dist/components/auth/settings/security/linked-account.js +37 -55
  158. package/dist/components/auth/settings/security/linked-accounts.d.ts +1 -1
  159. package/dist/components/auth/settings/security/linked-accounts.js +34 -43
  160. package/dist/components/auth/settings/security/security-settings.d.ts +2 -2
  161. package/dist/components/auth/settings/security/security-settings.js +19 -21
  162. package/dist/components/auth/settings/settings.d.ts +4 -4
  163. package/dist/components/auth/settings/settings.js +52 -44
  164. package/dist/components/auth/sign-in.d.ts +2 -2
  165. package/dist/components/auth/sign-in.js +63 -132
  166. package/dist/components/auth/sign-out.js +32 -26
  167. package/dist/components/auth/sign-up.d.ts +2 -2
  168. package/dist/components/auth/sign-up.js +97 -211
  169. package/dist/components/auth/theme/appearance.d.ts +1 -1
  170. package/dist/components/auth/theme/appearance.js +23 -71
  171. package/dist/components/auth/theme/theme-toggle-item.js +56 -61
  172. package/dist/components/auth/user/user-avatar.d.ts +4 -4
  173. package/dist/components/auth/user/user-avatar.js +31 -28
  174. package/dist/components/auth/user/user-button.d.ts +6 -7
  175. package/dist/components/auth/user/user-button.js +38 -72
  176. package/dist/components/auth/user/user-view.d.ts +13 -7
  177. package/dist/components/auth/user/user-view.js +26 -36
  178. package/dist/components/auth/username/sign-in-username.d.ts +2 -2
  179. package/dist/components/auth/username/sign-in-username.js +87 -147
  180. package/dist/components/auth/username/username-field.d.ts +1 -1
  181. package/dist/components/auth/username/username-field.js +44 -52
  182. package/dist/email.d.ts +8 -7
  183. package/dist/email.js +8 -8
  184. package/dist/index.d.ts +21 -21
  185. package/dist/index.js +21 -22
  186. package/dist/lib/auth/api-key-plugin.d.ts +7 -4
  187. package/dist/lib/auth/api-key-plugin.js +12 -10
  188. package/dist/lib/auth/auth-plugin.d.ts +10 -6
  189. package/dist/lib/auth/auth-plugin.js +1 -0
  190. package/dist/lib/auth/delete-user-plugin.d.ts +6 -6
  191. package/dist/lib/auth/delete-user-plugin.js +6 -9
  192. package/dist/lib/auth/magic-link-plugin.d.ts +5 -5
  193. package/dist/lib/auth/magic-link-plugin.js +17 -12
  194. package/dist/lib/auth/multi-session-plugin.d.ts +5 -5
  195. package/dist/lib/auth/multi-session-plugin.js +8 -11
  196. package/dist/lib/auth/organization-plugin.d.ts +37 -0
  197. package/dist/lib/auth/organization-plugin.js +19 -0
  198. package/dist/lib/auth/passkey-plugin.d.ts +5 -5
  199. package/dist/lib/auth/passkey-plugin.js +8 -11
  200. package/dist/lib/auth/theme-plugin.d.ts +6 -6
  201. package/dist/lib/auth/theme-plugin.js +25 -22
  202. package/dist/lib/auth/username-plugin.d.ts +11 -11
  203. package/dist/lib/auth/username-plugin.js +18 -17
  204. package/dist/plugins.d.ts +46 -22
  205. package/dist/plugins.js +47 -22
  206. package/package.json +25 -19
  207. package/src/components/auth/api-key/api-key.tsx +25 -16
  208. package/src/components/auth/api-key/api-keys-empty.tsx +8 -4
  209. package/src/components/auth/api-key/api-keys.tsx +52 -14
  210. package/src/components/auth/api-key/create-api-key-dialog.tsx +15 -2
  211. package/src/components/auth/api-key/delete-api-key-dialog.tsx +10 -2
  212. package/src/components/auth/api-key/organization-api-keys.tsx +55 -0
  213. package/src/components/auth/delete-user/danger-zone.tsx +3 -3
  214. package/src/components/auth/delete-user/{delete-user.tsx → delete-account.tsx} +9 -9
  215. package/src/components/auth/email/organization-invitation-email.tsx +38 -0
  216. package/src/components/auth/error-toaster.tsx +28 -10
  217. package/src/components/auth/forgot-password.tsx +10 -2
  218. package/src/components/auth/multi-session/manage-accounts.tsx +1 -1
  219. package/src/components/auth/multi-session/switch-account-submenu-content.tsx +7 -2
  220. package/src/components/auth/multi-session/switch-account-submenu-item.tsx +4 -2
  221. package/src/components/auth/multi-session/switch-account-submenu.tsx +8 -4
  222. package/src/components/auth/organization/change-organization-logo.tsx +171 -0
  223. package/src/components/auth/organization/create-organization-dialog.tsx +133 -0
  224. package/src/components/auth/organization/delete-organization-dialog.tsx +97 -0
  225. package/src/components/auth/organization/delete-organization-skeleton.tsx +17 -0
  226. package/src/components/auth/organization/delete-organization.tsx +77 -0
  227. package/src/components/auth/organization/invite-member-dialog.tsx +177 -0
  228. package/src/components/auth/organization/leave-organization-dialog.tsx +95 -0
  229. package/src/components/auth/organization/leave-organization.tsx +59 -0
  230. package/src/components/auth/organization/organization-danger-zone.tsx +68 -0
  231. package/src/components/auth/organization/organization-invitation-row-skeleton.tsx +29 -0
  232. package/src/components/auth/organization/organization-invitation-row.tsx +97 -0
  233. package/src/components/auth/organization/organization-invitations-empty.tsx +39 -0
  234. package/src/components/auth/organization/organization-invitations.tsx +351 -0
  235. package/src/components/auth/organization/organization-logo.tsx +64 -0
  236. package/src/components/auth/organization/organization-member-row-skeleton.tsx +24 -0
  237. package/src/components/auth/organization/organization-member-row.tsx +157 -0
  238. package/src/components/auth/organization/organization-members.tsx +284 -0
  239. package/src/components/auth/organization/organization-people.tsx +26 -0
  240. package/src/components/auth/organization/organization-profile.tsx +141 -0
  241. package/src/components/auth/organization/organization-row.tsx +66 -0
  242. package/src/components/auth/organization/organization-settings.tsx +38 -0
  243. package/src/components/auth/organization/organization-switcher.tsx +233 -0
  244. package/src/components/auth/organization/organization-view-skeleton.tsx +36 -0
  245. package/src/components/auth/organization/organization-view.tsx +109 -0
  246. package/src/components/auth/organization/organization.tsx +162 -0
  247. package/src/components/auth/organization/organizations-empty.tsx +35 -0
  248. package/src/components/auth/organization/organizations-settings.tsx +36 -0
  249. package/src/components/auth/organization/organizations.tsx +80 -0
  250. package/src/components/auth/organization/remove-member-dialog.tsx +95 -0
  251. package/src/components/auth/organization/slug-field.tsx +111 -0
  252. package/src/components/auth/organization/user-invitation-row-skeleton.tsx +17 -0
  253. package/src/components/auth/organization/user-invitation-row.tsx +90 -0
  254. package/src/components/auth/organization/user-invitations-empty.tsx +30 -0
  255. package/src/components/auth/organization/user-invitations.tsx +59 -0
  256. package/src/components/auth/settings/account/change-email.tsx +1 -1
  257. package/src/components/auth/settings/account/user-profile.tsx +5 -5
  258. package/src/components/auth/settings/security/active-sessions.tsx +6 -4
  259. package/src/components/auth/settings/security/linked-accounts.tsx +2 -2
  260. package/src/components/auth/settings/settings.tsx +77 -14
  261. package/src/components/auth/user/user-avatar.tsx +4 -1
  262. package/src/components/auth/user/user-button.tsx +14 -11
  263. package/src/components/auth/user/user-view.tsx +32 -12
  264. package/src/email.ts +1 -0
  265. package/src/lib/auth/api-key-plugin.ts +10 -4
  266. package/src/lib/auth/auth-plugin.ts +6 -1
  267. package/src/lib/auth/organization-plugin.tsx +32 -0
  268. package/src/plugins.ts +25 -1
  269. package/dist/components/auth/delete-user/delete-user.d.ts +0 -9
  270. package/dist/components/auth/delete-user/delete-user.js +0 -95
@@ -1,23 +1,26 @@
1
- import { ThemeToggleItem as e } from "../../components/auth/theme/theme-toggle-item.js";
2
- import { Appearance as t } from "../../components/auth/theme/appearance.js";
3
- import { createAuthPlugin as n } from "@better-auth-ui/core";
4
- import { themePlugin as r } from "@better-auth-ui/core/plugins";
5
- //#region src/lib/auth/theme-plugin.ts
6
- var i = n(r.id, ({ useTheme: n, ...i }) => {
7
- let a = r({
8
- setTheme: () => {},
9
- ...i
10
- });
11
- return {
12
- ...a,
13
- useTheme: n ?? (() => ({
14
- theme: a.theme,
15
- setTheme: a.setTheme,
16
- themes: a.themes
17
- })),
18
- userMenuItems: [e],
19
- accountCards: [t]
20
- };
1
+ import { createAuthPlugin } from "@better-auth-ui/core";
2
+ import { themePlugin as coreThemePlugin } from "@better-auth-ui/core/plugins";
3
+ import { Appearance } from "../../components/auth/theme/appearance";
4
+ import { ThemeToggleItem } from "../../components/auth/theme/theme-toggle-item";
5
+ export const themePlugin = createAuthPlugin(coreThemePlugin.id, ({ useTheme, ...rest }) => {
6
+ // No-op `setTheme` baseline keeps core's required option satisfied on the
7
+ // hook branch (where the consumer doesn't pass a setter); on the static
8
+ // branch the spread overrides it with the consumer's real setter.
9
+ const base = coreThemePlugin({ setTheme: () => { }, ...rest });
10
+ return {
11
+ ...base,
12
+ // Slot components always call `plugin.useTheme()` — invoking the hook
13
+ // inside their render keeps it in scope of any `<ThemeProvider>` the
14
+ // consumer mounts. On the static branch the factory re-runs on every
15
+ // parent render, so the synthesized closure stays in sync with the
16
+ // consumer's `theme` state.
17
+ useTheme: useTheme ??
18
+ (() => ({
19
+ theme: base.theme,
20
+ setTheme: base.setTheme,
21
+ themes: base.themes
22
+ })),
23
+ userMenuItems: [ThemeToggleItem],
24
+ accountCards: [Appearance]
25
+ };
21
26
  });
22
- //#endregion
23
- export { i as themePlugin };
@@ -1,7 +1,7 @@
1
- import { UsernamePluginOptions } from '@better-auth-ui/core/plugins';
2
- import { SignInUsername } from '../../components/auth/username/sign-in-username';
3
- import { UsernameField } from '../../components/auth/username/username-field';
4
- export declare const usernamePlugin: ((options?: UsernamePluginOptions | undefined) => Omit<{
1
+ import { type UsernamePluginOptions } from "@better-auth-ui/core/plugins";
2
+ import { SignInUsername } from "../../components/auth/username/sign-in-username";
3
+ import { UsernameField } from "../../components/auth/username/username-field";
4
+ export declare const usernamePlugin: ((options?: UsernamePluginOptions | undefined) => {
5
5
  additionalFields: ({
6
6
  name: string;
7
7
  type: "string";
@@ -9,7 +9,7 @@ export declare const usernamePlugin: ((options?: UsernamePluginOptions | undefin
9
9
  placeholder: string;
10
10
  inputType: "input";
11
11
  signUp: "above";
12
- required: boolean;
12
+ required: true;
13
13
  } | {
14
14
  name: string;
15
15
  type: "string";
@@ -26,7 +26,7 @@ export declare const usernamePlugin: ((options?: UsernamePluginOptions | undefin
26
26
  placeholder: string;
27
27
  inputType: "input";
28
28
  signUp: "above";
29
- required: boolean;
29
+ required: true;
30
30
  } | {
31
31
  render: typeof UsernameField;
32
32
  name: string;
@@ -42,6 +42,8 @@ export declare const usernamePlugin: ((options?: UsernamePluginOptions | undefin
42
42
  signIn: typeof SignInUsername;
43
43
  };
44
44
  };
45
+ minUsernameLength: number;
46
+ maxUsernameLength: number;
45
47
  localization: {
46
48
  username: string;
47
49
  usernamePlaceholder: string;
@@ -51,12 +53,10 @@ export declare const usernamePlugin: ((options?: UsernamePluginOptions | undefin
51
53
  displayUsername: string;
52
54
  displayUsernamePlaceholder: string;
53
55
  };
54
- isUsernameAvailable?: boolean | undefined;
55
- displayUsername?: boolean | undefined;
56
- minUsernameLength: number;
57
- maxUsernameLength: number;
56
+ displayUsername?: boolean;
57
+ isUsernameAvailable?: boolean;
58
58
  id: "username";
59
- }, "id"> & {
59
+ } & {
60
60
  id: "username";
61
61
  }) & {
62
62
  id: "username";
@@ -1,18 +1,19 @@
1
- import { UsernameField as e } from "../../components/auth/username/username-field.js";
2
- import { SignInUsername as t } from "../../components/auth/username/sign-in-username.js";
3
- import { createAuthPlugin as n } from "@better-auth-ui/core";
4
- import { usernamePlugin as r } from "@better-auth-ui/core/plugins";
5
- //#region src/lib/auth/username-plugin.tsx
6
- var i = n(r.id, (n = {}) => {
7
- let i = r(n);
8
- return {
9
- ...i,
10
- additionalFields: i.additionalFields?.map((t) => t.name === "username" ? {
11
- ...t,
12
- render: e
13
- } : t),
14
- views: { auth: { signIn: t } }
15
- };
1
+ import { createAuthPlugin } from "@better-auth-ui/core";
2
+ import { usernamePlugin as coreUsernamePlugin } from "@better-auth-ui/core/plugins";
3
+ import { SignInUsername } from "../../components/auth/username/sign-in-username";
4
+ import { UsernameField } from "../../components/auth/username/username-field";
5
+ export const usernamePlugin = createAuthPlugin(coreUsernamePlugin.id, (options = {}) => {
6
+ const core = coreUsernamePlugin(options);
7
+ return {
8
+ ...core,
9
+ additionalFields: core.additionalFields?.map((field) => field.name === "username"
10
+ ? {
11
+ ...field,
12
+ render: UsernameField
13
+ }
14
+ : field),
15
+ views: {
16
+ auth: { signIn: SignInUsername }
17
+ }
18
+ };
16
19
  });
17
- //#endregion
18
- export { i as usernamePlugin };
package/dist/plugins.d.ts CHANGED
@@ -1,22 +1,46 @@
1
- export * from './components/auth/api-key/api-keys';
2
- export * from './components/auth/delete-user/danger-zone';
3
- export * from './components/auth/delete-user/delete-user';
4
- export * from './components/auth/magic-link/magic-link';
5
- export * from './components/auth/multi-session/manage-account';
6
- export * from './components/auth/multi-session/manage-accounts';
7
- export * from './components/auth/multi-session/switch-account-submenu';
8
- export * from './components/auth/multi-session/switch-account-submenu-content';
9
- export * from './components/auth/multi-session/switch-account-submenu-item';
10
- export * from './components/auth/passkey/passkeys';
11
- export * from './components/auth/theme/appearance';
12
- export * from './components/auth/theme/theme-toggle-item';
13
- export * from './components/auth/username/sign-in-username';
14
- export * from './components/auth/username/username-field';
15
- export * from './lib/auth/api-key-plugin';
16
- export * from './lib/auth/auth-plugin';
17
- export * from './lib/auth/delete-user-plugin';
18
- export * from './lib/auth/magic-link-plugin';
19
- export * from './lib/auth/multi-session-plugin';
20
- export * from './lib/auth/passkey-plugin';
21
- export * from './lib/auth/theme-plugin';
22
- export * from './lib/auth/username-plugin';
1
+ export * from "./components/auth/api-key/api-keys";
2
+ export * from "./components/auth/api-key/organization-api-keys";
3
+ export * from "./components/auth/delete-user/danger-zone";
4
+ export * from "./components/auth/delete-user/delete-account";
5
+ export * from "./components/auth/magic-link/magic-link";
6
+ export * from "./components/auth/multi-session/manage-account";
7
+ export * from "./components/auth/multi-session/manage-accounts";
8
+ export * from "./components/auth/multi-session/switch-account-submenu";
9
+ export * from "./components/auth/multi-session/switch-account-submenu-content";
10
+ export * from "./components/auth/multi-session/switch-account-submenu-item";
11
+ export * from "./components/auth/organization/change-organization-logo";
12
+ export * from "./components/auth/organization/create-organization-dialog";
13
+ export * from "./components/auth/organization/delete-organization";
14
+ export * from "./components/auth/organization/delete-organization-skeleton";
15
+ export * from "./components/auth/organization/invite-member-dialog";
16
+ export * from "./components/auth/organization/leave-organization";
17
+ export * from "./components/auth/organization/organization";
18
+ export * from "./components/auth/organization/organization-danger-zone";
19
+ export * from "./components/auth/organization/organization-invitations";
20
+ export * from "./components/auth/organization/organization-invitations-empty";
21
+ export * from "./components/auth/organization/organization-logo";
22
+ export * from "./components/auth/organization/organization-members";
23
+ export * from "./components/auth/organization/organization-people";
24
+ export * from "./components/auth/organization/organization-profile";
25
+ export * from "./components/auth/organization/organization-row";
26
+ export * from "./components/auth/organization/organization-settings";
27
+ export * from "./components/auth/organization/organization-switcher";
28
+ export * from "./components/auth/organization/organization-view";
29
+ export * from "./components/auth/organization/organization-view-skeleton";
30
+ export * from "./components/auth/organization/organizations";
31
+ export * from "./components/auth/organization/organizations-settings";
32
+ export * from "./components/auth/organization/user-invitations";
33
+ export * from "./components/auth/passkey/passkeys";
34
+ export * from "./components/auth/theme/appearance";
35
+ export * from "./components/auth/theme/theme-toggle-item";
36
+ export * from "./components/auth/username/sign-in-username";
37
+ export * from "./components/auth/username/username-field";
38
+ export * from "./lib/auth/api-key-plugin";
39
+ export * from "./lib/auth/auth-plugin";
40
+ export * from "./lib/auth/delete-user-plugin";
41
+ export * from "./lib/auth/magic-link-plugin";
42
+ export * from "./lib/auth/multi-session-plugin";
43
+ export * from "./lib/auth/organization-plugin";
44
+ export * from "./lib/auth/passkey-plugin";
45
+ export * from "./lib/auth/theme-plugin";
46
+ export * from "./lib/auth/username-plugin";
package/dist/plugins.js CHANGED
@@ -1,23 +1,48 @@
1
1
  "use client";
2
- import { apiKeyPlugin as e } from "./lib/auth/api-key-plugin.js";
3
- import { ApiKeys as t } from "./components/auth/api-key/api-keys.js";
4
- import { deleteUserPlugin as n } from "./lib/auth/delete-user-plugin.js";
5
- import { DeleteUser as r } from "./components/auth/delete-user/delete-user.js";
6
- import { DangerZone as i } from "./components/auth/delete-user/danger-zone.js";
7
- import { magicLinkPlugin as a } from "./lib/auth/magic-link-plugin.js";
8
- import { MagicLink as o } from "./components/auth/magic-link/magic-link.js";
9
- import { ManageAccounts as s } from "./components/auth/multi-session/manage-accounts.js";
10
- import { SwitchAccountSubmenuItem as c } from "./components/auth/multi-session/switch-account-submenu-item.js";
11
- import { SwitchAccountSubmenuContent as l } from "./components/auth/multi-session/switch-account-submenu-content.js";
12
- import { SwitchAccountSubmenu as u } from "./components/auth/multi-session/switch-account-submenu.js";
13
- import { multiSessionPlugin as d } from "./lib/auth/multi-session-plugin.js";
14
- import { ManageAccount as f } from "./components/auth/multi-session/manage-account.js";
15
- import { passkeyPlugin as p } from "./lib/auth/passkey-plugin.js";
16
- import { Passkeys as m } from "./components/auth/passkey/passkeys.js";
17
- import { ThemeToggleItem as h } from "./components/auth/theme/theme-toggle-item.js";
18
- import { themePlugin as g } from "./lib/auth/theme-plugin.js";
19
- import { Appearance as _ } from "./components/auth/theme/appearance.js";
20
- import { UsernameField as v } from "./components/auth/username/username-field.js";
21
- import { usernamePlugin as y } from "./lib/auth/username-plugin.js";
22
- import { SignInUsername as b } from "./components/auth/username/sign-in-username.js";
23
- export { t as ApiKeys, _ as Appearance, i as DangerZone, r as DeleteUser, o as MagicLink, f as ManageAccount, s as ManageAccounts, m as Passkeys, b as SignInUsername, u as SwitchAccountSubmenu, l as SwitchAccountSubmenuContent, c as SwitchAccountSubmenuItem, h as ThemeToggleItem, v as UsernameField, e as apiKeyPlugin, n as deleteUserPlugin, a as magicLinkPlugin, d as multiSessionPlugin, p as passkeyPlugin, g as themePlugin, y as usernamePlugin };
2
+ export * from "./components/auth/api-key/api-keys";
3
+ export * from "./components/auth/api-key/organization-api-keys";
4
+ export * from "./components/auth/delete-user/danger-zone";
5
+ export * from "./components/auth/delete-user/delete-account";
6
+ // Plugin-contributed components that may be used standalone
7
+ export * from "./components/auth/magic-link/magic-link";
8
+ export * from "./components/auth/multi-session/manage-account";
9
+ export * from "./components/auth/multi-session/manage-accounts";
10
+ export * from "./components/auth/multi-session/switch-account-submenu";
11
+ export * from "./components/auth/multi-session/switch-account-submenu-content";
12
+ export * from "./components/auth/multi-session/switch-account-submenu-item";
13
+ export * from "./components/auth/organization/change-organization-logo";
14
+ export * from "./components/auth/organization/create-organization-dialog";
15
+ export * from "./components/auth/organization/delete-organization";
16
+ export * from "./components/auth/organization/delete-organization-skeleton";
17
+ export * from "./components/auth/organization/invite-member-dialog";
18
+ export * from "./components/auth/organization/leave-organization";
19
+ export * from "./components/auth/organization/organization";
20
+ export * from "./components/auth/organization/organization-danger-zone";
21
+ export * from "./components/auth/organization/organization-invitations";
22
+ export * from "./components/auth/organization/organization-invitations-empty";
23
+ export * from "./components/auth/organization/organization-logo";
24
+ export * from "./components/auth/organization/organization-members";
25
+ export * from "./components/auth/organization/organization-people";
26
+ export * from "./components/auth/organization/organization-profile";
27
+ export * from "./components/auth/organization/organization-row";
28
+ export * from "./components/auth/organization/organization-settings";
29
+ export * from "./components/auth/organization/organization-switcher";
30
+ export * from "./components/auth/organization/organization-view";
31
+ export * from "./components/auth/organization/organization-view-skeleton";
32
+ export * from "./components/auth/organization/organizations";
33
+ export * from "./components/auth/organization/organizations-settings";
34
+ export * from "./components/auth/organization/user-invitations";
35
+ export * from "./components/auth/passkey/passkeys";
36
+ export * from "./components/auth/theme/appearance";
37
+ export * from "./components/auth/theme/theme-toggle-item";
38
+ export * from "./components/auth/username/sign-in-username";
39
+ export * from "./components/auth/username/username-field";
40
+ export * from "./lib/auth/api-key-plugin";
41
+ export * from "./lib/auth/auth-plugin";
42
+ export * from "./lib/auth/delete-user-plugin";
43
+ export * from "./lib/auth/magic-link-plugin";
44
+ export * from "./lib/auth/multi-session-plugin";
45
+ export * from "./lib/auth/organization-plugin";
46
+ export * from "./lib/auth/passkey-plugin";
47
+ export * from "./lib/auth/theme-plugin";
48
+ export * from "./lib/auth/username-plugin";
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@better-auth-ui/heroui",
3
- "version": "1.6.8",
3
+ "version": "1.6.9",
4
4
  "type": "module",
5
5
  "scripts": {
6
- "build": "vite build",
7
- "dev": "tsc --watch",
6
+ "build": "tsc && bun run styles",
7
+ "styles": "mkdir -p dist && cp src/styles.css dist/styles.css",
8
8
  "test": "vitest"
9
9
  },
10
10
  "files": [
@@ -13,48 +13,54 @@
13
13
  ],
14
14
  "exports": {
15
15
  ".": {
16
+ "development": "./src/index.tsx",
16
17
  "types": "./dist/index.d.ts",
17
18
  "import": "./dist/index.js"
18
19
  },
19
20
  "./email": {
21
+ "development": "./src/email.ts",
20
22
  "types": "./dist/email.d.ts",
21
23
  "import": "./dist/email.js"
22
24
  },
23
25
  "./plugins": {
26
+ "development": "./src/plugins.ts",
24
27
  "types": "./dist/plugins.d.ts",
25
28
  "import": "./dist/plugins.js"
26
29
  },
27
- "./styles": "./dist/styles.css"
30
+ "./styles": {
31
+ "development": "./src/styles.css",
32
+ "default": "./dist/styles.css"
33
+ }
28
34
  },
29
35
  "devDependencies": {
30
36
  "@gravity-ui/icons": "^2.18.0",
31
- "@heroui/react": "^3.0.4",
32
- "@heroui/styles": "^3.0.4",
37
+ "@heroui/react": "^3.1.0",
38
+ "@heroui/styles": "^3.1.0",
33
39
  "@internationalized/date": "^3.12.1",
34
- "@tanstack/react-pacer": "^0.22.0",
35
- "@tanstack/react-query": "^5.100.9",
40
+ "@tanstack/react-pacer": "^0.22.1",
41
+ "@tanstack/react-query": "^5.100.14",
36
42
  "@testing-library/react": "^16.3.2",
37
43
  "@testing-library/user-event": "^14.5.2",
38
- "@types/react": "^19.2.14",
39
- "@vitejs/plugin-react": "^6.0.1",
40
- "@vitest/browser-playwright": "^4.1.5",
41
- "better-auth": "^1.6.10",
44
+ "@types/react": "^19.2.15",
45
+ "@vitejs/plugin-react": "^6.0.2",
46
+ "@vitest/browser-playwright": "^4.1.7",
47
+ "better-auth": "^1.6.11",
42
48
  "bowser": "^2.11.0",
43
- "playwright": "^1.59.1",
49
+ "playwright": "^1.60.0",
44
50
  "react": "^19.2.6",
45
51
  "react-dom": "^19.2.6",
46
- "vitest": "^4.1.5"
52
+ "vitest": "^4.1.7"
47
53
  },
48
54
  "peerDependencies": {
49
55
  "@better-auth-ui/core": "*",
50
56
  "@better-auth-ui/react": "*",
51
57
  "@gravity-ui/icons": ">=2.18.0",
52
- "@heroui/react": ">=3.0.4",
53
- "@heroui/styles": ">=3.0.4",
58
+ "@heroui/react": ">=3.1.0",
59
+ "@heroui/styles": ">=3.1.0",
54
60
  "@internationalized/date": ">=3.12.1",
55
- "@tanstack/react-pacer": ">=0.22.0",
56
- "@tanstack/react-query": ">=5.100.9",
57
- "better-auth": ">=1.6.10",
61
+ "@tanstack/react-pacer": ">=0.22.1",
62
+ "@tanstack/react-query": ">=5.100.14",
63
+ "better-auth": ">=1.6.11",
58
64
  "react": ">=19.2.6",
59
65
  "react-dom": ">=19.2.6",
60
66
  "bowser": ">=2.11.0"
@@ -12,9 +12,13 @@ import { DeleteApiKeyDialog } from "./delete-api-key-dialog"
12
12
 
13
13
  export type ApiKeyProps = {
14
14
  apiKey: ListedApiKey
15
+ /** Hide the row's delete button (e.g., when caller lacks `apiKey:delete`). */
16
+ hideDelete?: boolean
17
+ /** Scope the delete payload to an organization (sets `configId`). */
18
+ organizationId?: string
15
19
  }
16
20
 
17
- export function ApiKey({ apiKey }: ApiKeyProps) {
21
+ export function ApiKey({ apiKey, hideDelete, organizationId }: ApiKeyProps) {
18
22
  const { localization } = useAuth()
19
23
  const { localization: apiKeyLocalization } = useAuthPlugin(apiKeyPlugin)
20
24
  const [deleteOpen, setDeleteOpen] = useState(false)
@@ -42,23 +46,28 @@ export function ApiKey({ apiKey }: ApiKeyProps) {
42
46
  </span>
43
47
  </div>
44
48
 
45
- <Button
46
- className="ml-auto shrink-0"
47
- variant="outline"
48
- size="sm"
49
- onPress={() => setDeleteOpen(true)}
50
- aria-label={apiKeyLocalization.deleteApiKey}
51
- >
52
- <Xmark />
49
+ {!hideDelete && (
50
+ <>
51
+ <Button
52
+ className="ml-auto shrink-0"
53
+ variant="outline"
54
+ size="sm"
55
+ onPress={() => setDeleteOpen(true)}
56
+ aria-label={apiKeyLocalization.deleteApiKey}
57
+ >
58
+ <Xmark />
53
59
 
54
- {localization.settings.delete}
55
- </Button>
60
+ {localization.settings.delete}
61
+ </Button>
56
62
 
57
- <DeleteApiKeyDialog
58
- isOpen={deleteOpen}
59
- onOpenChange={setDeleteOpen}
60
- apiKey={apiKey}
61
- />
63
+ <DeleteApiKeyDialog
64
+ isOpen={deleteOpen}
65
+ onOpenChange={setDeleteOpen}
66
+ apiKey={apiKey}
67
+ organizationId={organizationId}
68
+ />
69
+ </>
70
+ )}
62
71
  </div>
63
72
  )
64
73
  }
@@ -6,9 +6,11 @@ import { apiKeyPlugin } from "../../../lib/auth/api-key-plugin"
6
6
 
7
7
  export type ApiKeysEmptyProps = {
8
8
  onCreatePress: () => void
9
+ /** Hide the empty-state "Create API key" button. */
10
+ hideCreate?: boolean
9
11
  }
10
12
 
11
- export function ApiKeysEmpty({ onCreatePress }: ApiKeysEmptyProps) {
13
+ export function ApiKeysEmpty({ onCreatePress, hideCreate }: ApiKeysEmptyProps) {
12
14
  const { localization: apiKeyLocalization } = useAuthPlugin(apiKeyPlugin)
13
15
 
14
16
  return (
@@ -25,9 +27,11 @@ export function ApiKeysEmpty({ onCreatePress }: ApiKeysEmptyProps) {
25
27
  </p>
26
28
  </div>
27
29
 
28
- <Button size="sm" onPress={onCreatePress}>
29
- {apiKeyLocalization.createApiKey}
30
- </Button>
30
+ {!hideCreate && (
31
+ <Button size="sm" onPress={onCreatePress}>
32
+ {apiKeyLocalization.createApiKey}
33
+ </Button>
34
+ )}
31
35
  </div>
32
36
  )
33
37
  }
@@ -16,16 +16,39 @@ import { CreateApiKeyDialog } from "./create-api-key-dialog"
16
16
  export type ApiKeysProps = {
17
17
  className?: string
18
18
  variant?: CardProps["variant"]
19
+ /** Scope the list and create payload to an organization. */
20
+ organizationId?: string
21
+ /** Force the loading skeleton and disable the list query. */
22
+ isPending?: boolean
23
+ /** Hide the "Create API key" button (header + empty state). */
24
+ hideCreate?: boolean
25
+ /** Hide the per-row delete button on listed keys. */
26
+ hideDelete?: boolean
19
27
  }
20
28
 
21
- export function ApiKeys({ className, variant }: ApiKeysProps) {
29
+ export function ApiKeys({
30
+ className,
31
+ variant,
32
+ organizationId,
33
+ isPending: isPendingProp,
34
+ hideCreate,
35
+ hideDelete
36
+ }: ApiKeysProps) {
22
37
  const { authClient } = useAuth()
23
38
  const { localization: apiKeyLocalization } = useAuthPlugin(apiKeyPlugin)
24
39
 
25
- const { data: listData, isPending } = useListApiKeys(
26
- authClient as ApiKeyAuthClient
40
+ const { data: listData, isPending: isListPending } = useListApiKeys(
41
+ authClient as ApiKeyAuthClient,
42
+ {
43
+ enabled: !isPendingProp,
44
+ ...(organizationId
45
+ ? { query: { organizationId, configId: "organization" } }
46
+ : {})
47
+ }
27
48
  )
28
49
 
50
+ const isPending = isPendingProp || isListPending
51
+
29
52
  const [createOpen, setCreateOpen] = useState(false)
30
53
 
31
54
  return (
@@ -35,14 +58,16 @@ export function ApiKeys({ className, variant }: ApiKeysProps) {
35
58
  {apiKeyLocalization.apiKeys}
36
59
  </h2>
37
60
 
38
- <Button
39
- className="shrink-0"
40
- size="sm"
41
- isDisabled={isPending}
42
- onPress={() => setCreateOpen(true)}
43
- >
44
- {apiKeyLocalization.createApiKey}
45
- </Button>
61
+ {!hideCreate && (
62
+ <Button
63
+ className="shrink-0"
64
+ size="sm"
65
+ isDisabled={isPending}
66
+ onPress={() => setCreateOpen(true)}
67
+ >
68
+ {apiKeyLocalization.createApiKey}
69
+ </Button>
70
+ )}
46
71
  </div>
47
72
 
48
73
  <Card variant={variant}>
@@ -50,7 +75,10 @@ export function ApiKeys({ className, variant }: ApiKeysProps) {
50
75
  {isPending ? (
51
76
  <ApiKeySkeleton />
52
77
  ) : !listData?.apiKeys.length ? (
53
- <ApiKeysEmpty onCreatePress={() => setCreateOpen(true)} />
78
+ <ApiKeysEmpty
79
+ onCreatePress={() => setCreateOpen(true)}
80
+ hideCreate={hideCreate}
81
+ />
54
82
  ) : (
55
83
  listData?.apiKeys.map((key, index) => (
56
84
  <div key={key.id}>
@@ -58,14 +86,24 @@ export function ApiKeys({ className, variant }: ApiKeysProps) {
58
86
  <div className="border-b border-dashed -mx-4 my-4" />
59
87
  )}
60
88
 
61
- <ApiKey apiKey={key} />
89
+ <ApiKey
90
+ apiKey={key}
91
+ hideDelete={hideDelete}
92
+ organizationId={organizationId}
93
+ />
62
94
  </div>
63
95
  ))
64
96
  )}
65
97
  </Card.Content>
66
98
  </Card>
67
99
 
68
- <CreateApiKeyDialog isOpen={createOpen} onOpenChange={setCreateOpen} />
100
+ {!hideCreate && (
101
+ <CreateApiKeyDialog
102
+ isOpen={createOpen}
103
+ onOpenChange={setCreateOpen}
104
+ organizationId={organizationId}
105
+ />
106
+ )}
69
107
  </div>
70
108
  )
71
109
  }
@@ -24,11 +24,14 @@ import { NewApiKeyDialog } from "./new-api-key-dialog"
24
24
  export type CreateApiKeyDialogProps = {
25
25
  isOpen: boolean
26
26
  onOpenChange: (open: boolean) => void
27
+ /** Create an organization-owned key by passing the organization id. */
28
+ organizationId?: string
27
29
  }
28
30
 
29
31
  export function CreateApiKeyDialog({
30
32
  isOpen,
31
- onOpenChange
33
+ onOpenChange,
34
+ organizationId
32
35
  }: CreateApiKeyDialogProps) {
33
36
  const { authClient, localization } = useAuth()
34
37
  const { localization: apiKeyLocalization } = useAuthPlugin(apiKeyPlugin)
@@ -56,7 +59,17 @@ export function CreateApiKeyDialog({
56
59
  const formData = new FormData(e.target as HTMLFormElement)
57
60
  const name = (formData.get("name") as string)?.trim()
58
61
 
59
- createApiKey(name ? { name } : undefined, {
62
+ const payload =
63
+ name || organizationId
64
+ ? {
65
+ ...(name ? { name } : {}),
66
+ ...(organizationId
67
+ ? { organizationId, configId: "organization" }
68
+ : {})
69
+ }
70
+ : undefined
71
+
72
+ createApiKey(payload, {
60
73
  onSuccess: (result) => {
61
74
  handleOpenChange(false)
62
75
  setKeyName(name)
@@ -21,12 +21,15 @@ export type DeleteApiKeyDialogProps = {
21
21
  isOpen: boolean
22
22
  onOpenChange: (open: boolean) => void
23
23
  apiKey: ListedApiKey
24
+ /** Scope the delete payload to an organization (sets `configId`). */
25
+ organizationId?: string
24
26
  }
25
27
 
26
28
  export function DeleteApiKeyDialog({
27
29
  isOpen,
28
30
  onOpenChange,
29
- apiKey
31
+ apiKey,
32
+ organizationId
30
33
  }: DeleteApiKeyDialogProps) {
31
34
  const { authClient, localization } = useAuth()
32
35
  const { localization: apiKeyLocalization } = useAuthPlugin(apiKeyPlugin)
@@ -77,7 +80,12 @@ export function DeleteApiKeyDialog({
77
80
 
78
81
  <Button
79
82
  variant="danger"
80
- onPress={() => deleteApiKey({ keyId: apiKey.id })}
83
+ onPress={() =>
84
+ deleteApiKey({
85
+ keyId: apiKey.id,
86
+ ...(organizationId ? { configId: "organization" } : {})
87
+ })
88
+ }
81
89
  isPending={isDeleting}
82
90
  >
83
91
  {isDeleting && <Spinner color="current" size="sm" />}