@better-auth-ui/heroui 1.6.3 → 1.6.4

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 (204) hide show
  1. package/dist/components/auth/additional-field.d.ts +4 -0
  2. package/dist/components/auth/additional-field.js +270 -0
  3. package/dist/components/auth/auth-provider.d.ts +4 -6
  4. package/dist/components/auth/auth.d.ts +1 -1
  5. package/dist/components/auth/auth.js +54 -28
  6. package/dist/components/{settings/security → auth/delete-user}/danger-zone.d.ts +3 -4
  7. package/dist/components/{settings/security → auth/delete-user}/danger-zone.js +1 -1
  8. package/dist/components/auth/delete-user/delete-user.js +95 -0
  9. package/dist/components/{email → auth/email}/email-changed-email.d.ts +2 -2
  10. package/dist/components/{email → auth/email}/email-changed-email.js +7 -7
  11. package/dist/components/{email → auth/email}/email-verification-email.d.ts +2 -2
  12. package/dist/components/{email → auth/email}/email-verification-email.js +7 -7
  13. package/dist/components/auth/email/magic-link-email.d.ts +3 -0
  14. package/dist/components/{email → auth/email}/magic-link-email.js +7 -7
  15. package/dist/components/auth/email/new-device-email.d.ts +3 -0
  16. package/dist/components/{email → auth/email}/new-device-email.js +7 -7
  17. package/dist/components/auth/email/otp-email.d.ts +3 -0
  18. package/dist/components/{email → auth/email}/otp-email.js +6 -6
  19. package/dist/components/{email → auth/email}/password-changed-email.d.ts +2 -2
  20. package/dist/components/{email → auth/email}/password-changed-email.js +7 -7
  21. package/dist/components/{email → auth/email}/reset-password-email.d.ts +2 -2
  22. package/dist/components/{email → auth/email}/reset-password-email.js +7 -7
  23. package/dist/components/auth/forgot-password.d.ts +1 -1
  24. package/dist/components/auth/forgot-password.js +41 -38
  25. package/dist/components/auth/magic-link/magic-link-button.d.ts +11 -0
  26. package/dist/components/auth/magic-link/magic-link-button.js +20 -0
  27. package/dist/components/auth/magic-link/magic-link.d.ts +16 -0
  28. package/dist/components/auth/magic-link/magic-link.js +87 -0
  29. package/dist/components/{settings/account → auth/multi-session}/manage-account.d.ts +2 -6
  30. package/dist/components/auth/multi-session/manage-account.js +49 -0
  31. package/dist/components/auth/multi-session/manage-accounts.js +34 -0
  32. package/dist/components/{user/switch-account-menu.d.ts → auth/multi-session/switch-account-submenu-content.d.ts} +3 -3
  33. package/dist/components/auth/multi-session/switch-account-submenu-content.js +29 -0
  34. package/dist/components/{user/switch-account-item.d.ts → auth/multi-session/switch-account-submenu-item.d.ts} +2 -2
  35. package/dist/components/auth/multi-session/switch-account-submenu-item.js +20 -0
  36. package/dist/components/auth/multi-session/switch-account-submenu.d.ts +13 -0
  37. package/dist/components/auth/multi-session/switch-account-submenu.js +24 -0
  38. package/dist/components/auth/passkey/passkey-button.d.ts +6 -0
  39. package/dist/components/auth/passkey/passkey-button.js +24 -0
  40. package/dist/components/auth/passkey/passkey.js +45 -0
  41. package/dist/components/auth/passkey/passkeys.js +106 -0
  42. package/dist/components/auth/provider-button.d.ts +6 -8
  43. package/dist/components/auth/provider-button.js +16 -20
  44. package/dist/components/auth/provider-buttons.d.ts +3 -4
  45. package/dist/components/auth/provider-buttons.js +9 -10
  46. package/dist/components/auth/reset-password.js +110 -107
  47. package/dist/components/{settings → auth/settings}/account/account-settings.d.ts +5 -2
  48. package/dist/components/auth/settings/account/account-settings.js +20 -0
  49. package/dist/components/auth/settings/account/change-avatar.js +89 -0
  50. package/dist/components/{settings → auth/settings}/account/change-email.js +17 -17
  51. package/dist/components/{settings → auth/settings}/account/user-profile.d.ts +2 -3
  52. package/dist/components/auth/settings/account/user-profile.js +86 -0
  53. package/dist/components/auth/settings/security/active-session.js +59 -0
  54. package/dist/components/{settings → auth/settings}/security/active-sessions.js +4 -4
  55. package/dist/components/auth/settings/security/change-password.js +189 -0
  56. package/dist/components/auth/settings/security/linked-account.js +56 -0
  57. package/dist/components/{settings → auth/settings}/security/linked-accounts.js +5 -5
  58. package/dist/components/{settings → auth/settings}/security/security-settings.d.ts +1 -1
  59. package/dist/components/auth/settings/security/security-settings.js +22 -0
  60. package/dist/components/auth/settings/settings.js +45 -0
  61. package/dist/components/auth/sign-in.js +75 -99
  62. package/dist/components/auth/sign-out.js +11 -11
  63. package/dist/components/auth/sign-up.js +123 -148
  64. package/dist/components/{settings/account → auth/theme}/appearance.d.ts +3 -6
  65. package/dist/components/auth/theme/appearance.js +72 -0
  66. package/dist/components/auth/theme/theme-toggle-item.d.ts +5 -0
  67. package/dist/components/auth/theme/theme-toggle-item.js +58 -0
  68. package/dist/components/auth/user/user-avatar.js +29 -0
  69. package/dist/components/{user → auth/user}/user-button.d.ts +2 -6
  70. package/dist/components/auth/user/user-button.js +55 -0
  71. package/dist/components/auth/user/user-view.js +37 -0
  72. package/dist/components/auth/username/sign-in-username.d.ts +14 -0
  73. package/dist/components/auth/username/sign-in-username.js +142 -0
  74. package/dist/components/auth/username/username-field.d.ts +8 -0
  75. package/dist/components/auth/username/username-field.js +51 -0
  76. package/dist/email.d.ts +7 -0
  77. package/dist/email.js +9 -0
  78. package/dist/index.d.ts +12 -27
  79. package/dist/index.js +20 -35
  80. package/dist/lib/auth/auth-plugin.d.ts +44 -0
  81. package/dist/lib/auth/delete-user-plugin.d.ts +17 -0
  82. package/dist/lib/auth/delete-user-plugin.js +10 -0
  83. package/dist/lib/auth/magic-link-plugin.d.ts +31 -0
  84. package/dist/lib/auth/magic-link-plugin.js +13 -0
  85. package/dist/lib/auth/multi-session-plugin.d.ts +18 -0
  86. package/dist/lib/auth/multi-session-plugin.js +12 -0
  87. package/dist/lib/auth/passkey-plugin.d.ts +20 -0
  88. package/dist/lib/auth/passkey-plugin.js +12 -0
  89. package/dist/lib/auth/theme-plugin.d.ts +68 -0
  90. package/dist/lib/auth/theme-plugin.js +23 -0
  91. package/dist/lib/auth/username-plugin.d.ts +63 -0
  92. package/dist/lib/auth/username-plugin.js +18 -0
  93. package/dist/plugins.d.ts +20 -0
  94. package/dist/plugins.js +21 -0
  95. package/package.json +19 -21
  96. package/src/components/auth/additional-field.tsx +554 -0
  97. package/src/components/auth/auth-provider.tsx +5 -6
  98. package/src/components/auth/auth.tsx +99 -35
  99. package/src/components/{settings/security → auth/delete-user}/danger-zone.tsx +3 -10
  100. package/src/components/{settings/security → auth/delete-user}/delete-user.tsx +30 -20
  101. package/src/components/{email → auth/email}/email-changed-email.tsx +2 -2
  102. package/src/components/{email → auth/email}/email-verification-email.tsx +2 -2
  103. package/src/components/{email → auth/email}/magic-link-email.tsx +2 -2
  104. package/src/components/{email → auth/email}/new-device-email.tsx +2 -2
  105. package/src/components/{email → auth/email}/otp-email.tsx +2 -2
  106. package/src/components/{email → auth/email}/password-changed-email.tsx +2 -2
  107. package/src/components/{email → auth/email}/reset-password-email.tsx +2 -2
  108. package/src/components/auth/forgot-password.tsx +14 -11
  109. package/src/components/auth/magic-link/magic-link-button.tsx +61 -0
  110. package/src/components/auth/{magic-link.tsx → magic-link/magic-link.tsx} +55 -40
  111. package/src/components/{settings/account → auth/multi-session}/manage-account.tsx +16 -13
  112. package/src/components/{settings/account → auth/multi-session}/manage-accounts.tsx +14 -5
  113. package/src/components/{user/switch-account-menu.tsx → auth/multi-session/switch-account-submenu-content.tsx} +18 -11
  114. package/src/components/{user/switch-account-item.tsx → auth/multi-session/switch-account-submenu-item.tsx} +17 -5
  115. package/src/components/auth/multi-session/switch-account-submenu.tsx +50 -0
  116. package/src/components/auth/passkey/passkey-button.tsx +56 -0
  117. package/src/components/{settings/security → auth/passkey}/passkey.tsx +20 -6
  118. package/src/components/auth/passkey/passkeys.tsx +196 -0
  119. package/src/components/auth/provider-button.tsx +27 -29
  120. package/src/components/auth/provider-buttons.tsx +6 -11
  121. package/src/components/auth/reset-password.tsx +13 -7
  122. package/src/components/{settings → auth/settings}/account/account-settings.tsx +15 -13
  123. package/src/components/{settings → auth/settings}/account/change-avatar.tsx +4 -3
  124. package/src/components/{settings → auth/settings}/account/change-email.tsx +3 -3
  125. package/src/components/auth/settings/account/user-profile.tsx +171 -0
  126. package/src/components/{settings → auth/settings}/security/active-session.tsx +8 -5
  127. package/src/components/{settings → auth/settings}/security/active-sessions.tsx +3 -3
  128. package/src/components/{settings → auth/settings}/security/change-password.tsx +14 -9
  129. package/src/components/{settings → auth/settings}/security/linked-account.tsx +12 -8
  130. package/src/components/{settings → auth/settings}/security/linked-accounts.tsx +2 -2
  131. package/src/components/{settings → auth/settings}/security/security-settings.tsx +7 -6
  132. package/src/components/{settings → auth/settings}/settings.tsx +2 -2
  133. package/src/components/auth/sign-in.tsx +38 -61
  134. package/src/components/auth/sign-out.tsx +2 -2
  135. package/src/components/auth/sign-up.tsx +109 -131
  136. package/src/components/{settings/account → auth/theme}/appearance.tsx +17 -24
  137. package/src/components/auth/theme/theme-toggle-item.tsx +110 -0
  138. package/src/components/{user → auth/user}/user-avatar.tsx +12 -4
  139. package/src/components/{user → auth/user}/user-button.tsx +15 -88
  140. package/src/components/{user → auth/user}/user-view.tsx +12 -4
  141. package/src/components/auth/username/sign-in-username.tsx +283 -0
  142. package/src/components/auth/username/username-field.tsx +122 -0
  143. package/src/email.ts +9 -0
  144. package/src/index.tsx +12 -27
  145. package/src/lib/auth/auth-plugin.ts +67 -0
  146. package/src/lib/auth/delete-user-plugin.ts +15 -0
  147. package/src/lib/auth/magic-link-plugin.ts +26 -0
  148. package/src/lib/auth/multi-session-plugin.ts +17 -0
  149. package/src/lib/auth/passkey-plugin.ts +17 -0
  150. package/src/lib/auth/theme-plugin.ts +86 -0
  151. package/src/lib/auth/username-plugin.tsx +30 -0
  152. package/src/plugins.ts +23 -0
  153. package/dist/components/auth/magic-link-button.d.ts +0 -13
  154. package/dist/components/auth/magic-link-button.js +0 -16
  155. package/dist/components/auth/magic-link.d.ts +0 -17
  156. package/dist/components/auth/magic-link.js +0 -99
  157. package/dist/components/auth/passkey-button.d.ts +0 -4
  158. package/dist/components/auth/passkey-button.js +0 -21
  159. package/dist/components/email/magic-link-email.d.ts +0 -3
  160. package/dist/components/email/new-device-email.d.ts +0 -3
  161. package/dist/components/email/otp-email.d.ts +0 -3
  162. package/dist/components/settings/account/account-settings.js +0 -23
  163. package/dist/components/settings/account/appearance.js +0 -71
  164. package/dist/components/settings/account/change-avatar.js +0 -89
  165. package/dist/components/settings/account/manage-account.js +0 -48
  166. package/dist/components/settings/account/manage-accounts.js +0 -33
  167. package/dist/components/settings/account/user-profile.js +0 -103
  168. package/dist/components/settings/security/active-session.js +0 -59
  169. package/dist/components/settings/security/change-password.js +0 -189
  170. package/dist/components/settings/security/delete-user.js +0 -92
  171. package/dist/components/settings/security/linked-account.js +0 -56
  172. package/dist/components/settings/security/passkey.js +0 -43
  173. package/dist/components/settings/security/passkeys.js +0 -53
  174. package/dist/components/settings/security/security-settings.js +0 -25
  175. package/dist/components/settings/settings.js +0 -45
  176. package/dist/components/user/switch-account-item.js +0 -20
  177. package/dist/components/user/switch-account-menu.js +0 -28
  178. package/dist/components/user/user-avatar.js +0 -29
  179. package/dist/components/user/user-button.js +0 -91
  180. package/dist/components/user/user-view.js +0 -37
  181. package/dist/core.d.ts +0 -1
  182. package/dist/core.js +0 -1
  183. package/dist/react-exports.d.ts +0 -1
  184. package/dist/react-exports.js +0 -1
  185. package/src/components/auth/magic-link-button.tsx +0 -43
  186. package/src/components/auth/passkey-button.tsx +0 -35
  187. package/src/components/settings/account/user-profile.tsx +0 -217
  188. package/src/components/settings/security/passkeys.tsx +0 -96
  189. package/src/core.ts +0 -1
  190. package/src/react-exports.ts +0 -1
  191. /package/dist/components/{settings/security → auth/delete-user}/delete-user.d.ts +0 -0
  192. /package/dist/components/{settings/account → auth/multi-session}/manage-accounts.d.ts +0 -0
  193. /package/dist/components/{settings/security → auth/passkey}/passkey.d.ts +0 -0
  194. /package/dist/components/{settings/security → auth/passkey}/passkeys.d.ts +0 -0
  195. /package/dist/components/{settings → auth/settings}/account/change-avatar.d.ts +0 -0
  196. /package/dist/components/{settings → auth/settings}/account/change-email.d.ts +0 -0
  197. /package/dist/components/{settings → auth/settings}/security/active-session.d.ts +0 -0
  198. /package/dist/components/{settings → auth/settings}/security/active-sessions.d.ts +0 -0
  199. /package/dist/components/{settings → auth/settings}/security/change-password.d.ts +0 -0
  200. /package/dist/components/{settings → auth/settings}/security/linked-account.d.ts +0 -0
  201. /package/dist/components/{settings → auth/settings}/security/linked-accounts.d.ts +0 -0
  202. /package/dist/components/{settings → auth/settings}/settings.d.ts +0 -0
  203. /package/dist/components/{user → auth/user}/user-avatar.d.ts +0 -0
  204. /package/dist/components/{user → auth/user}/user-view.d.ts +0 -0
@@ -0,0 +1,72 @@
1
+ import { themePlugin as e } from "../../../lib/auth/theme-plugin.js";
2
+ import { ThemePreviewDark as t, ThemePreviewLight as n, ThemePreviewSystem as r, useAuthPlugin as i } from "@better-auth-ui/react";
3
+ import { Display as a, Moon as o, Sun as s } from "@gravity-ui/icons";
4
+ import { Card as c, Label as l, Radio as u, RadioGroup as d, cn as f, useIsHydrated as p } from "@heroui/react";
5
+ import { jsx as m, jsxs as h } from "react/jsx-runtime";
6
+ //#region src/components/auth/theme/appearance.tsx
7
+ function g({ className: g, variant: _, ...v }) {
8
+ let { useTheme: y, localization: b } = i(e), { theme: x, setTheme: S, themes: C = [] } = y(), w = p();
9
+ return /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("h2", {
10
+ className: f("text-sm font-semibold mb-3"),
11
+ children: b.appearance
12
+ }), /* @__PURE__ */ m(c, {
13
+ className: f("p-4 gap-4", g),
14
+ variant: _,
15
+ ...v,
16
+ children: /* @__PURE__ */ h(c.Content, { children: [/* @__PURE__ */ m(l, { children: b.theme }), /* @__PURE__ */ m(d, {
17
+ variant: _ === "transparent" ? "secondary" : "primary",
18
+ value: w ? x : "",
19
+ onChange: S,
20
+ isDisabled: !w || !x,
21
+ children: /* @__PURE__ */ h("div", {
22
+ className: "grid gap-3 grid-cols-2 sm:grid-cols-3",
23
+ children: [
24
+ C.includes("system") && /* @__PURE__ */ m(u, {
25
+ value: "system",
26
+ className: f("mt-0 px-4 pb-4 pt-3 rounded-xl", "border border-transparent data-[selected=true]:border-accent data-[selected=true]:bg-accent/10", "data-[focus-visible=true]:border-accent data-[focus-visible=true]:bg-accent/10", _ === "transparent" ? "bg-surface" : "bg-surface-secondary"),
27
+ children: /* @__PURE__ */ h(u.Content, {
28
+ className: "gap-2",
29
+ children: [/* @__PURE__ */ h("div", {
30
+ className: "flex gap-2 justify-between",
31
+ children: [/* @__PURE__ */ h(l, {
32
+ className: "flex gap-2 items-center",
33
+ children: [/* @__PURE__ */ m(a, { className: "text-muted" }), b.system]
34
+ }), /* @__PURE__ */ m(u.Control, { children: /* @__PURE__ */ m(u.Indicator, {}) })]
35
+ }), /* @__PURE__ */ m(r, { className: "w-full" })]
36
+ })
37
+ }),
38
+ C.includes("light") && /* @__PURE__ */ m(u, {
39
+ value: "light",
40
+ className: f("mt-0 px-4 pb-4 pt-3 rounded-xl", "border border-transparent data-[selected=true]:border-accent data-[selected=true]:bg-accent/10", "data-[focus-visible=true]:border-accent data-[focus-visible=true]:bg-accent/10", _ === "transparent" ? "bg-surface" : "bg-surface-secondary"),
41
+ children: /* @__PURE__ */ h(u.Content, {
42
+ className: "gap-2",
43
+ children: [/* @__PURE__ */ h("div", {
44
+ className: "flex gap-2 justify-between",
45
+ children: [/* @__PURE__ */ h(l, {
46
+ className: "flex gap-2 items-center",
47
+ children: [/* @__PURE__ */ m(s, { className: "text-muted" }), b.light]
48
+ }), /* @__PURE__ */ m(u.Control, { children: /* @__PURE__ */ m(u.Indicator, {}) })]
49
+ }), /* @__PURE__ */ m(n, { className: "w-full" })]
50
+ })
51
+ }),
52
+ C.includes("dark") && /* @__PURE__ */ m(u, {
53
+ value: "dark",
54
+ className: f("mt-0 px-4 pb-4 pt-3 rounded-xl", "border border-transparent data-[selected=true]:border-accent data-[selected=true]:bg-accent/10", "data-[focus-visible=true]:border-accent data-[focus-visible=true]:bg-accent/10", _ === "transparent" ? "bg-surface" : "bg-surface-secondary"),
55
+ children: /* @__PURE__ */ h(u.Content, {
56
+ className: "gap-2",
57
+ children: [/* @__PURE__ */ h("div", {
58
+ className: "flex gap-2 justify-between",
59
+ children: [/* @__PURE__ */ h(l, {
60
+ className: "flex gap-2 items-center",
61
+ children: [/* @__PURE__ */ m(o, { className: "text-muted" }), b.dark]
62
+ }), /* @__PURE__ */ m(u.Control, { children: /* @__PURE__ */ m(u.Indicator, {}) })]
63
+ }), /* @__PURE__ */ m(t, { className: "w-full" })]
64
+ })
65
+ })
66
+ ]
67
+ })
68
+ })] })
69
+ })] });
70
+ }
71
+ //#endregion
72
+ export { g as Appearance };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Theme toggle dropdown item used inside `UserButton`. Callers are responsible
3
+ * for ensuring theming is configured before rendering this component.
4
+ */
5
+ export declare function ThemeToggleItem(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,58 @@
1
+ import { themePlugin as e } from "../../../lib/auth/theme-plugin.js";
2
+ import { useAuthPlugin as t } from "@better-auth-ui/react";
3
+ import { Display as n, Moon as r, Sun as i } from "@gravity-ui/icons";
4
+ import { Dropdown as a, Label as o, Tabs as s } from "@heroui/react";
5
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
6
+ //#region src/components/auth/theme/theme-toggle-item.tsx
7
+ var u = "[role=\"tab\"][aria-selected=\"true\"]";
8
+ function d() {
9
+ let { useTheme: d, localization: f } = t(e), { theme: p, setTheme: m, themes: h = [] } = d();
10
+ return /* @__PURE__ */ l(a.Item, {
11
+ className: "py-1 pe-2",
12
+ onFocus: (e) => {
13
+ e.target === e.currentTarget && e.currentTarget.querySelector(u)?.focus({ preventScroll: !0 });
14
+ },
15
+ shouldCloseOnSelect: !1,
16
+ children: [/* @__PURE__ */ c(o, { children: f.theme }), /* @__PURE__ */ c(s, {
17
+ className: "ml-auto",
18
+ selectedKey: p,
19
+ onSelectionChange: (e) => m(e),
20
+ children: /* @__PURE__ */ c(s.ListContainer, {
21
+ onKeyDown: (e) => {
22
+ if (e.key !== "ArrowUp" && e.key !== "ArrowDown") return;
23
+ let t = e.target;
24
+ if (t.getAttribute("role") !== "tab") return;
25
+ let n = t.closest("[role=\"menuitem\"]"), r = n?.closest("[role=\"menu\"]");
26
+ if (!n || !r) return;
27
+ let i = Array.from(r.querySelectorAll("[role=\"menuitem\"]:not([data-disabled])")), a = i.indexOf(n);
28
+ if (a === -1) return;
29
+ let o = i[e.key === "ArrowDown" ? a + 1 : a - 1];
30
+ o && (e.preventDefault(), o.focus());
31
+ },
32
+ children: /* @__PURE__ */ l(s.List, {
33
+ "aria-label": f.theme,
34
+ className: "*:h-5 *:w-5 *:p-0",
35
+ children: [
36
+ h.includes("system") && /* @__PURE__ */ l(s.Tab, {
37
+ id: "system",
38
+ "aria-label": f.system,
39
+ children: [/* @__PURE__ */ c(n, { className: "size-3" }), /* @__PURE__ */ c(s.Indicator, {})]
40
+ }),
41
+ h.includes("light") && /* @__PURE__ */ l(s.Tab, {
42
+ id: "light",
43
+ "aria-label": f.light,
44
+ children: [/* @__PURE__ */ c(i, { className: "size-3" }), /* @__PURE__ */ c(s.Indicator, {})]
45
+ }),
46
+ h.includes("dark") && /* @__PURE__ */ l(s.Tab, {
47
+ id: "dark",
48
+ "aria-label": f.dark,
49
+ children: [/* @__PURE__ */ c(r, { className: "size-3" }), /* @__PURE__ */ c(s.Indicator, {})]
50
+ })
51
+ ]
52
+ })
53
+ })
54
+ })]
55
+ });
56
+ }
57
+ //#endregion
58
+ export { d as ThemeToggleItem };
@@ -0,0 +1,29 @@
1
+ import { useAuth as e, useSession as t } from "@better-auth-ui/react";
2
+ import { Person as n } from "@gravity-ui/icons";
3
+ import { Avatar as r, Skeleton as i, cn as a } from "@heroui/react";
4
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
5
+ //#region src/components/auth/user/user-avatar.tsx
6
+ function c({ className: c, fallback: l, isPending: u, user: d, size: f = "sm", style: p, ...m }) {
7
+ let { authClient: h } = e(), { data: g, isPending: _ } = t(h, { enabled: !d && !u });
8
+ if ((u || _) && !d) return /* @__PURE__ */ o(i, {
9
+ className: a("rounded-full", f === "sm" ? "size-8" : f === "md" ? "size-10" : "size-12", c),
10
+ style: p
11
+ });
12
+ let v = d ?? g?.user, y = (v?.username || v?.name || v?.email)?.slice(0, 2).toUpperCase();
13
+ return /* @__PURE__ */ s(r, {
14
+ size: f,
15
+ className: a("rounded-full", c),
16
+ style: p,
17
+ ...m,
18
+ children: [/* @__PURE__ */ o(r.Image, {
19
+ alt: v?.displayUsername || v?.name || v?.email,
20
+ src: v?.image ?? void 0
21
+ }), /* @__PURE__ */ o(r.Fallback, {
22
+ className: a(f === "lg" ? "text-xl" : f === "md" ? "text-base" : "text-sm"),
23
+ delayMs: v?.image ? 600 : void 0,
24
+ children: l || y || /* @__PURE__ */ o(n, { className: "size-4" })
25
+ })]
26
+ });
27
+ }
28
+ //#endregion
29
+ export { c as UserAvatar };
@@ -7,19 +7,15 @@ export type UserButtonProps = {
7
7
  * @default "bottom"
8
8
  */
9
9
  placement?: DropdownPopoverProps["placement"];
10
- themeToggle?: boolean;
11
10
  variant?: ButtonProps["variant"];
12
11
  };
13
12
  /**
14
- * Render a user account dropdown button that shows account actions, session switching, and theme controls.
15
- *
16
- * Renders either an icon-only trigger or a full button showing the current user state; its dropdown contains account settings, multi-session switching (when enabled), theme selection (when enabled), and sign-in/sign-out flows depending on authentication state.
13
+ * Render a user account dropdown button that shows account actions.
17
14
  *
18
15
  * @param className - Additional CSS classes applied to the trigger element
19
16
  * @param placement - Dropdown popover placement (e.g., "bottom", "top-start", "bottom-end")
20
17
  * @param size - "icon" renders an avatar-only trigger; "default" renders a button with label and chevron
21
18
  * @param variant - Button visual variant passed to the underlying Button component
22
- * @param themeToggle - When true and theming is available, show theme selection controls in the menu
23
19
  * @returns The user button and its dropdown menu as a JSX element
24
20
  */
25
- export declare function UserButton({ className, placement, size, variant, themeToggle }: UserButtonProps): import("react/jsx-runtime").JSX.Element;
21
+ export declare function UserButton({ className, placement, size, variant }: UserButtonProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,55 @@
1
+ import { UserAvatar as e } from "./user-avatar.js";
2
+ import { UserView as t } from "./user-view.js";
3
+ import { useAuth as n, useSession as r } from "@better-auth-ui/react";
4
+ import { ArrowRightFromSquare as i, ArrowRightToSquare as a, ChevronsExpandVertical as o, Gear as s, PersonPlus as c } from "@gravity-ui/icons";
5
+ import { Button as l, Dropdown as u, Label as d, Separator as f, cn as p } from "@heroui/react";
6
+ import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
7
+ //#region src/components/auth/user/user-button.tsx
8
+ function _({ className: _, placement: v = "bottom", size: y = "default", variant: b = "ghost" }) {
9
+ let { authClient: x, basePaths: S, viewPaths: C, localization: w, plugins: T } = n(), { data: E, isPending: D } = r(x), O = T.flatMap((e) => e.userMenuItems?.map((t, n) => /* @__PURE__ */ h(t, {}, `${e.id}-${n.toString()}`)) ?? []);
10
+ return /* @__PURE__ */ g(u, { children: [y === "icon" ? /* @__PURE__ */ h(u.Trigger, {
11
+ className: p("rounded-full", _),
12
+ children: /* @__PURE__ */ h(e, {})
13
+ }) : /* @__PURE__ */ g(l, {
14
+ variant: b,
15
+ className: p("h-auto font-normal justify-start px-3 py-2 text-left", _),
16
+ children: [E || D ? /* @__PURE__ */ h(t, { isPending: D }) : /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ h(e, {}), /* @__PURE__ */ h("p", {
17
+ className: "text-sm font-medium",
18
+ children: w.auth.account
19
+ })] }), /* @__PURE__ */ h(o, { className: "ml-auto size-3.5" })]
20
+ }), /* @__PURE__ */ g(u.Popover, {
21
+ placement: v,
22
+ className: "min-w-40 md:min-w-56 max-w-[48svw]",
23
+ children: [E && /* @__PURE__ */ h("div", {
24
+ className: "px-3 pt-3 pb-1",
25
+ children: /* @__PURE__ */ h(t, {})
26
+ }), /* @__PURE__ */ h(u.Menu, { children: E ? /* @__PURE__ */ g(m, { children: [
27
+ /* @__PURE__ */ g(u.Item, {
28
+ textValue: w.settings.settings,
29
+ href: `${S.settings}/${C.settings.account}`,
30
+ children: [/* @__PURE__ */ h(s, { className: "text-muted" }), /* @__PURE__ */ h(d, { children: w.settings.settings })]
31
+ }),
32
+ O,
33
+ /* @__PURE__ */ h(f, {}),
34
+ /* @__PURE__ */ g(u.Item, {
35
+ textValue: w.auth.signOut,
36
+ href: `${S.auth}/${C.auth.signOut}`,
37
+ children: [/* @__PURE__ */ h(i, { className: "text-muted" }), /* @__PURE__ */ h(d, { children: w.auth.signOut })]
38
+ })
39
+ ] }) : /* @__PURE__ */ g(m, { children: [
40
+ /* @__PURE__ */ g(u.Item, {
41
+ textValue: w.auth.signIn,
42
+ href: `${S.auth}/${C.auth.signIn}`,
43
+ children: [/* @__PURE__ */ h(a, { className: "text-muted" }), /* @__PURE__ */ h(d, { children: w.auth.signIn })]
44
+ }),
45
+ /* @__PURE__ */ g(u.Item, {
46
+ textValue: w.auth.signUp,
47
+ href: `${S.auth}/${C.auth.signUp}`,
48
+ children: [/* @__PURE__ */ h(c, { className: "text-muted" }), /* @__PURE__ */ h(d, { children: w.auth.signUp })]
49
+ }),
50
+ O
51
+ ] }) })]
52
+ })] });
53
+ }
54
+ //#endregion
55
+ export { _ as UserButton };
@@ -0,0 +1,37 @@
1
+ import { UserAvatar as e } from "./user-avatar.js";
2
+ import { useAuth as t, useSession as n } from "@better-auth-ui/react";
3
+ import { Skeleton as r, cn as i } from "@heroui/react";
4
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
5
+ //#region src/components/auth/user/user-view.tsx
6
+ function s({ className: s, isPending: c, size: l = "sm", user: u, ...d }) {
7
+ let { authClient: f } = t(), { data: p, isPending: m } = n(f, { enabled: !u && !c }), h = u ?? p?.user;
8
+ return (c || m) && !u ? /* @__PURE__ */ o("div", {
9
+ className: i("flex items-center gap-2 min-w-0", s),
10
+ ...d,
11
+ children: [/* @__PURE__ */ a(e, {
12
+ isPending: !0,
13
+ size: l
14
+ }), /* @__PURE__ */ o("div", {
15
+ className: "flex flex-col gap-1 min-w-0",
16
+ children: [/* @__PURE__ */ a(r, { className: "h-3.5 w-24 rounded-lg" }), /* @__PURE__ */ a(r, { className: "h-3 w-32 rounded-lg" })]
17
+ })]
18
+ }) : /* @__PURE__ */ o("div", {
19
+ className: i("flex items-center gap-2 min-w-0", s),
20
+ ...d,
21
+ children: [/* @__PURE__ */ a(e, {
22
+ user: h,
23
+ size: l
24
+ }), /* @__PURE__ */ o("div", {
25
+ className: "min-w-0",
26
+ children: [/* @__PURE__ */ a("p", {
27
+ className: "text-sm font-medium truncate leading-tight",
28
+ children: h?.displayUsername || h?.name || h?.email
29
+ }), (h?.displayUsername || h?.name) && /* @__PURE__ */ a("p", {
30
+ className: "text-muted text-xs mb-0.5 truncate overflow-x-hidden",
31
+ children: h?.email
32
+ })]
33
+ })]
34
+ });
35
+ }
36
+ //#endregion
37
+ export { s as UserView };
@@ -0,0 +1,14 @@
1
+ import { CardProps } from '@heroui/react';
2
+ import { SocialLayout } from '../provider-buttons';
3
+ export interface SignInUsernameProps {
4
+ className?: string;
5
+ socialLayout?: SocialLayout;
6
+ socialPosition?: "top" | "bottom";
7
+ variant?: CardProps["variant"];
8
+ }
9
+ /**
10
+ * Render the username-based sign-in UI.
11
+ *
12
+ * @returns The sign-in JSX element containing username/password fields, optional magic-link button, and social provider buttons.
13
+ */
14
+ export declare function SignInUsername({ className, socialLayout, socialPosition, variant, ...props }: SignInUsernameProps & Omit<CardProps, "children">): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,142 @@
1
+ import { FieldSeparator as e } from "../field-separator.js";
2
+ import { ProviderButtons as t } from "../provider-buttons.js";
3
+ import { usernamePlugin as n } from "../../../lib/auth/username-plugin.js";
4
+ import { authMutationKeys as r } from "@better-auth-ui/core";
5
+ import { useAuth as i, useAuthPlugin as a, useSendVerificationEmail as o, useSignInEmail as s, useSignInUsername as c } from "@better-auth-ui/react";
6
+ import { Button as l, Card as u, Checkbox as d, Description as f, FieldError as p, Form as m, Input as h, Label as g, Link as _, Spinner as v, TextField as y, cn as b, toast as x } from "@heroui/react";
7
+ import { useState as S } from "react";
8
+ import { Fragment as C, jsx as w, jsxs as T } from "react/jsx-runtime";
9
+ import { useIsMutating as E } from "@tanstack/react-query";
10
+ //#region src/components/auth/username/sign-in-username.tsx
11
+ function D({ className: D, socialLayout: O, socialPosition: k = "bottom", variant: A, ...j }) {
12
+ let { authClient: M, basePaths: N, baseURL: P, emailAndPassword: F, localization: I, plugins: L, redirectTo: R, socialProviders: z, viewPaths: B, navigate: V } = i(), { localization: H } = a(n), [U, W] = S(""), { mutate: G } = o(M, { onSuccess: () => x.success(I.auth.verificationEmailSent) });
13
+ function K(e) {
14
+ return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e);
15
+ }
16
+ let { mutate: q } = s(M, {
17
+ onError: (e, { email: t }) => {
18
+ W(""), e.error?.code === "EMAIL_NOT_VERIFIED" ? x.danger(e.error?.message || e.message, { actionProps: {
19
+ children: I.auth.resend,
20
+ onClick: () => G({
21
+ email: t,
22
+ callbackURL: `${P}${R}`
23
+ })
24
+ } }) : x.danger(e.error?.message || e.message);
25
+ },
26
+ onSuccess: () => V({ to: R })
27
+ }), { mutate: J, isPending: Y } = c(M, {
28
+ onError: (e) => {
29
+ W(""), x.danger(e.error?.message || e.message);
30
+ },
31
+ onSuccess: () => V({ to: R })
32
+ }), X = (e) => {
33
+ e.preventDefault();
34
+ let t = new FormData(e.currentTarget), n = t.get("email"), r = t.get("rememberMe") === "on";
35
+ K(n) ? q({
36
+ email: n,
37
+ password: U,
38
+ ...F?.rememberMe ? { rememberMe: r } : {}
39
+ }) : J({
40
+ username: n,
41
+ password: U,
42
+ ...F?.rememberMe ? { rememberMe: r } : {}
43
+ });
44
+ }, Z = E({ mutationKey: r.signIn.all }) + E({ mutationKey: r.signUp.all }) > 0, Q = F?.enabled && !!z?.length;
45
+ return /* @__PURE__ */ T(u, {
46
+ className: b("w-full max-w-sm gap-4 md:p-6", D),
47
+ variant: A,
48
+ ...j,
49
+ children: [
50
+ /* @__PURE__ */ w(u.Header, { children: /* @__PURE__ */ w(u.Title, {
51
+ className: "text-xl font-semibold mb-1",
52
+ children: I.auth.signIn
53
+ }) }),
54
+ /* @__PURE__ */ T(u.Content, {
55
+ className: "gap-4",
56
+ children: [
57
+ k === "top" && /* @__PURE__ */ T(C, { children: [!!z?.length && /* @__PURE__ */ w(t, { socialLayout: O }), Q && /* @__PURE__ */ w(e, { children: I.auth.or })] }),
58
+ F?.enabled && /* @__PURE__ */ T(m, {
59
+ onSubmit: X,
60
+ className: "flex flex-col gap-4",
61
+ children: [
62
+ /* @__PURE__ */ T(y, {
63
+ name: "email",
64
+ type: "text",
65
+ autoComplete: "username email",
66
+ isDisabled: Z,
67
+ children: [
68
+ /* @__PURE__ */ w(g, { children: H.username }),
69
+ /* @__PURE__ */ w(h, {
70
+ placeholder: H.usernameOrEmailPlaceholder,
71
+ variant: A === "transparent" ? "primary" : "secondary",
72
+ required: !0
73
+ }),
74
+ /* @__PURE__ */ w(p, {})
75
+ ]
76
+ }),
77
+ /* @__PURE__ */ T(y, {
78
+ minLength: F?.minPasswordLength,
79
+ maxLength: F?.maxPasswordLength,
80
+ name: "password",
81
+ type: "password",
82
+ autoComplete: "current-password",
83
+ isDisabled: Z,
84
+ value: U,
85
+ onChange: W,
86
+ children: [
87
+ /* @__PURE__ */ w(g, { children: I.auth.password }),
88
+ /* @__PURE__ */ w(h, {
89
+ placeholder: I.auth.passwordPlaceholder,
90
+ variant: A === "transparent" ? "primary" : "secondary",
91
+ required: !0
92
+ }),
93
+ /* @__PURE__ */ w(p, {})
94
+ ]
95
+ }),
96
+ F?.rememberMe && /* @__PURE__ */ T(d, {
97
+ name: "rememberMe",
98
+ isDisabled: Z,
99
+ variant: A === "transparent" ? "primary" : "secondary",
100
+ children: [/* @__PURE__ */ w(d.Control, { children: /* @__PURE__ */ w(d.Indicator, {}) }), /* @__PURE__ */ w(d.Content, { children: /* @__PURE__ */ w(g, { children: I.auth.rememberMe }) })]
101
+ }),
102
+ /* @__PURE__ */ T("div", {
103
+ className: "flex flex-col gap-3",
104
+ children: [/* @__PURE__ */ T(l, {
105
+ type: "submit",
106
+ className: "w-full",
107
+ isPending: Y || Z,
108
+ children: [Y && /* @__PURE__ */ w(v, {
109
+ color: "current",
110
+ size: "sm"
111
+ }), I.auth.signIn]
112
+ }), L.flatMap((e) => e.authButtons?.map((t, n) => /* @__PURE__ */ w(t, { view: "signIn" }, `${e.id}-${n.toString()}`)))]
113
+ })
114
+ ]
115
+ }),
116
+ k === "bottom" && /* @__PURE__ */ T(C, { children: [Q && /* @__PURE__ */ w(e, { children: I.auth.or }), !!z?.length && /* @__PURE__ */ w(t, { socialLayout: O })] })
117
+ ]
118
+ }),
119
+ /* @__PURE__ */ T(u.Footer, {
120
+ className: "flex-col gap-3",
121
+ children: [F?.forgotPassword && /* @__PURE__ */ w(_, {
122
+ href: `${N.auth}/${B.auth.forgotPassword}`,
123
+ className: "no-underline hover:underline",
124
+ children: I.auth.forgotPasswordLink
125
+ }), F?.enabled && /* @__PURE__ */ T(f, {
126
+ className: "text-sm",
127
+ children: [
128
+ I.auth.needToCreateAnAccount,
129
+ " ",
130
+ /* @__PURE__ */ w(_, {
131
+ href: `${N.auth}/${B.auth.signUp}`,
132
+ className: "text-accent no-underline hover:underline decoration-accent-hover",
133
+ children: I.auth.signUp
134
+ })
135
+ ]
136
+ })]
137
+ })
138
+ ]
139
+ });
140
+ }
141
+ //#endregion
142
+ export { D as SignInUsername };
@@ -0,0 +1,8 @@
1
+ import { AdditionalFieldProps } from '../additional-field';
2
+ /**
3
+ * Renderer for the `username` additional field. Owns availability checking,
4
+ * length limits, and visual indicators. `FieldError` automatically surfaces
5
+ * native validation messages. Availability feedback is shown via the icon and
6
+ * aria-label without affecting the field's invalid state.
7
+ */
8
+ export declare function UsernameField({ name, field, isPending, variant }: AdditionalFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,51 @@
1
+ import { usernamePlugin as e } from "../../../lib/auth/username-plugin.js";
2
+ import { useAuth as t, useAuthPlugin as n, useIsUsernameAvailable as r } from "@better-auth-ui/react";
3
+ import { Check as i, Xmark as a } from "@gravity-ui/icons";
4
+ import { FieldError as o, InputGroup as s, Label as c, Spinner as l, TextField as u } from "@heroui/react";
5
+ import { useState as d } from "react";
6
+ import { jsx as f, jsxs as p } from "react/jsx-runtime";
7
+ import { useDebouncer as m } from "@tanstack/react-pacer";
8
+ //#region src/components/auth/username/username-field.tsx
9
+ function h({ name: h, field: g, isPending: _, variant: v }) {
10
+ let { authClient: y } = t(), { localization: b, minUsernameLength: x, maxUsernameLength: S, isUsernameAvailable: C } = n(e), w = String(g.defaultValue ?? ""), [T, E] = d(w), { mutate: D, data: O, error: k, reset: A } = r(y, { onError: () => {} }), j = m((e) => {
11
+ let t = e.trim();
12
+ if (!t || t === w) {
13
+ A();
14
+ return;
15
+ }
16
+ D({ username: t });
17
+ }, { wait: 500 });
18
+ function M(e) {
19
+ E(e), A(), C && j.maybeExecute(e);
20
+ }
21
+ let N = !!C && !!T.trim() && T.trim() !== w;
22
+ return /* @__PURE__ */ p(u, {
23
+ name: h,
24
+ type: "text",
25
+ autoComplete: "username",
26
+ minLength: x,
27
+ maxLength: S,
28
+ isDisabled: _,
29
+ isRequired: g.required,
30
+ isReadOnly: g.readOnly,
31
+ value: T,
32
+ onChange: M,
33
+ children: [
34
+ /* @__PURE__ */ f(c, { children: g.label }),
35
+ /* @__PURE__ */ p(s, {
36
+ variant: v === "transparent" ? "primary" : "secondary",
37
+ children: [/* @__PURE__ */ f(s.Input, { placeholder: g.placeholder }), N && /* @__PURE__ */ f(s.Suffix, {
38
+ "aria-label": O?.available ? b.usernameAvailable : O?.available === !1 ? b.usernameTaken : void 0,
39
+ className: "px-2",
40
+ children: O?.available ? /* @__PURE__ */ f(i, { className: "text-success" }) : k || O?.available === !1 ? /* @__PURE__ */ f(a, { className: "text-danger" }) : /* @__PURE__ */ f(l, {
41
+ size: "sm",
42
+ color: "current"
43
+ })
44
+ })]
45
+ }),
46
+ /* @__PURE__ */ f(o, {})
47
+ ]
48
+ });
49
+ }
50
+ //#endregion
51
+ export { h as UsernameField };
@@ -0,0 +1,7 @@
1
+ export * from './components/auth/email/email-changed-email';
2
+ export * from './components/auth/email/email-verification-email';
3
+ export * from './components/auth/email/magic-link-email';
4
+ export * from './components/auth/email/new-device-email';
5
+ export * from './components/auth/email/otp-email';
6
+ export * from './components/auth/email/password-changed-email';
7
+ export * from './components/auth/email/reset-password-email';
package/dist/email.js ADDED
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import { EmailChangedEmail as e } from "./components/auth/email/email-changed-email.js";
3
+ import { EmailVerificationEmail as t } from "./components/auth/email/email-verification-email.js";
4
+ import { MagicLinkEmail as n } from "./components/auth/email/magic-link-email.js";
5
+ import { NewDeviceEmail as r } from "./components/auth/email/new-device-email.js";
6
+ import { OtpEmail as i } from "./components/auth/email/otp-email.js";
7
+ import { PasswordChangedEmail as a } from "./components/auth/email/password-changed-email.js";
8
+ import { ResetPasswordEmail as o } from "./components/auth/email/reset-password-email.js";
9
+ export { e as EmailChangedEmail, t as EmailVerificationEmail, n as MagicLinkEmail, r as NewDeviceEmail, i as OtpEmail, a as PasswordChangedEmail, o as ResetPasswordEmail };
package/dist/index.d.ts CHANGED
@@ -1,36 +1,21 @@
1
+ export * from './components/auth/additional-field';
1
2
  export * from './components/auth/auth';
2
3
  export * from './components/auth/auth-provider';
3
4
  export * from './components/auth/forgot-password';
4
- export * from './components/auth/magic-link';
5
- export * from './components/auth/magic-link-button';
6
- export * from './components/auth/passkey-button';
7
5
  export * from './components/auth/provider-button';
8
6
  export * from './components/auth/provider-buttons';
9
7
  export * from './components/auth/reset-password';
8
+ export * from './components/auth/settings/account/account-settings';
9
+ export * from './components/auth/settings/account/change-email';
10
+ export * from './components/auth/settings/account/user-profile';
11
+ export * from './components/auth/settings/security/active-sessions';
12
+ export * from './components/auth/settings/security/change-password';
13
+ export * from './components/auth/settings/security/linked-accounts';
14
+ export * from './components/auth/settings/security/security-settings';
15
+ export * from './components/auth/settings/settings';
10
16
  export * from './components/auth/sign-in';
11
17
  export * from './components/auth/sign-out';
12
18
  export * from './components/auth/sign-up';
13
- export * from './components/email/email-changed-email';
14
- export * from './components/email/email-verification-email';
15
- export * from './components/email/magic-link-email';
16
- export * from './components/email/new-device-email';
17
- export * from './components/email/otp-email';
18
- export * from './components/email/password-changed-email';
19
- export * from './components/email/reset-password-email';
20
- export * from './components/settings/account/account-settings';
21
- export * from './components/settings/account/appearance';
22
- export * from './components/settings/account/change-email';
23
- export * from './components/settings/account/manage-account';
24
- export * from './components/settings/account/manage-accounts';
25
- export * from './components/settings/account/user-profile';
26
- export * from './components/settings/security/active-sessions';
27
- export * from './components/settings/security/change-password';
28
- export * from './components/settings/security/danger-zone';
29
- export * from './components/settings/security/delete-user';
30
- export * from './components/settings/security/linked-accounts';
31
- export * from './components/settings/security/passkeys';
32
- export * from './components/settings/security/security-settings';
33
- export * from './components/settings/settings';
34
- export * from './components/user/user-avatar';
35
- export * from './components/user/user-button';
36
- export * from './components/user/user-view';
19
+ export * from './components/auth/user/user-avatar';
20
+ export * from './components/auth/user/user-button';
21
+ export * from './components/auth/user/user-view';
package/dist/index.js CHANGED
@@ -1,38 +1,23 @@
1
1
  "use client";
2
- import { ForgotPassword as e } from "./components/auth/forgot-password.js";
3
- import { MagicLinkButton as t } from "./components/auth/magic-link-button.js";
4
- import { PasskeyButton as n } from "./components/auth/passkey-button.js";
2
+ import { AdditionalField as e } from "./components/auth/additional-field.js";
3
+ import { ForgotPassword as t } from "./components/auth/forgot-password.js";
4
+ import { ResetPassword as n } from "./components/auth/reset-password.js";
5
5
  import { ProviderButton as r } from "./components/auth/provider-button.js";
6
6
  import { ProviderButtons as i } from "./components/auth/provider-buttons.js";
7
- import { MagicLink as a } from "./components/auth/magic-link.js";
8
- import { ResetPassword as o } from "./components/auth/reset-password.js";
9
- import { SignIn as s } from "./components/auth/sign-in.js";
10
- import { SignOut as c } from "./components/auth/sign-out.js";
11
- import { SignUp as l } from "./components/auth/sign-up.js";
12
- import { Auth as u } from "./components/auth/auth.js";
13
- import { AuthProvider as d } from "./components/auth/auth-provider.js";
14
- import { EmailChangedEmail as f } from "./components/email/email-changed-email.js";
15
- import { EmailVerificationEmail as p } from "./components/email/email-verification-email.js";
16
- import { MagicLinkEmail as m } from "./components/email/magic-link-email.js";
17
- import { NewDeviceEmail as h } from "./components/email/new-device-email.js";
18
- import { OtpEmail as g } from "./components/email/otp-email.js";
19
- import { PasswordChangedEmail as _ } from "./components/email/password-changed-email.js";
20
- import { ResetPasswordEmail as v } from "./components/email/reset-password-email.js";
21
- import { Appearance as y } from "./components/settings/account/appearance.js";
22
- import { ChangeEmail as b } from "./components/settings/account/change-email.js";
23
- import { UserAvatar as x } from "./components/user/user-avatar.js";
24
- import { UserView as S } from "./components/user/user-view.js";
25
- import { ManageAccount as C } from "./components/settings/account/manage-account.js";
26
- import { ManageAccounts as w } from "./components/settings/account/manage-accounts.js";
27
- import { UserProfile as T } from "./components/settings/account/user-profile.js";
28
- import { AccountSettings as E } from "./components/settings/account/account-settings.js";
29
- import { ActiveSessions as D } from "./components/settings/security/active-sessions.js";
30
- import { ChangePassword as O } from "./components/settings/security/change-password.js";
31
- import { DeleteUser as k } from "./components/settings/security/delete-user.js";
32
- import { DangerZone as A } from "./components/settings/security/danger-zone.js";
33
- import { LinkedAccounts as j } from "./components/settings/security/linked-accounts.js";
34
- import { Passkeys as M } from "./components/settings/security/passkeys.js";
35
- import { SecuritySettings as N } from "./components/settings/security/security-settings.js";
36
- import { Settings as P } from "./components/settings/settings.js";
37
- import { UserButton as F } from "./components/user/user-button.js";
38
- export { E as AccountSettings, D as ActiveSessions, y as Appearance, u as Auth, d as AuthProvider, b as ChangeEmail, O as ChangePassword, A as DangerZone, k as DeleteUser, f as EmailChangedEmail, p as EmailVerificationEmail, e as ForgotPassword, j as LinkedAccounts, a as MagicLink, t as MagicLinkButton, m as MagicLinkEmail, C as ManageAccount, w as ManageAccounts, h as NewDeviceEmail, g as OtpEmail, n as PasskeyButton, M as Passkeys, _ as PasswordChangedEmail, r as ProviderButton, i as ProviderButtons, o as ResetPassword, v as ResetPasswordEmail, N as SecuritySettings, P as Settings, s as SignIn, c as SignOut, l as SignUp, x as UserAvatar, F as UserButton, T as UserProfile, S as UserView };
7
+ import { SignIn as a } from "./components/auth/sign-in.js";
8
+ import { SignOut as o } from "./components/auth/sign-out.js";
9
+ import { SignUp as s } from "./components/auth/sign-up.js";
10
+ import { Auth as c } from "./components/auth/auth.js";
11
+ import { AuthProvider as l } from "./components/auth/auth-provider.js";
12
+ import { ChangeEmail as u } from "./components/auth/settings/account/change-email.js";
13
+ import { UserAvatar as d } from "./components/auth/user/user-avatar.js";
14
+ import { UserProfile as f } from "./components/auth/settings/account/user-profile.js";
15
+ import { AccountSettings as p } from "./components/auth/settings/account/account-settings.js";
16
+ import { ActiveSessions as m } from "./components/auth/settings/security/active-sessions.js";
17
+ import { ChangePassword as h } from "./components/auth/settings/security/change-password.js";
18
+ import { LinkedAccounts as g } from "./components/auth/settings/security/linked-accounts.js";
19
+ import { SecuritySettings as _ } from "./components/auth/settings/security/security-settings.js";
20
+ import { Settings as v } from "./components/auth/settings/settings.js";
21
+ import { UserView as y } from "./components/auth/user/user-view.js";
22
+ import { UserButton as b } from "./components/auth/user/user-button.js";
23
+ export { p as AccountSettings, m as ActiveSessions, e as AdditionalField, c as Auth, l as AuthProvider, u as ChangeEmail, h as ChangePassword, t as ForgotPassword, g as LinkedAccounts, r as ProviderButton, i as ProviderButtons, n as ResetPassword, _ as SecuritySettings, v as Settings, a as SignIn, o as SignOut, s as SignUp, d as UserAvatar, b as UserButton, f as UserProfile, y as UserView };