@stackframe/stack 1.2.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/dist/components/card-frame.d.ts +7 -0
  2. package/dist/components/card-frame.d.ts.map +1 -0
  3. package/dist/components/card-frame.js +24 -0
  4. package/dist/{elements/CardHeader.d.ts → components/card-header.d.ts} +1 -1
  5. package/dist/components/card-header.d.ts.map +1 -0
  6. package/dist/components/card-header.js +5 -0
  7. package/dist/components/credential-sign-in.d.ts +2 -0
  8. package/dist/components/credential-sign-in.d.ts.map +1 -0
  9. package/dist/components/credential-sign-in.js +56 -0
  10. package/dist/components/credential-sign-up.d.ts +2 -0
  11. package/dist/components/credential-sign-up.d.ts.map +1 -0
  12. package/dist/components/credential-sign-up.js +73 -0
  13. package/dist/{elements/DividerWithText.d.ts → components/divider-with-text.d.ts} +1 -1
  14. package/dist/components/divider-with-text.d.ts.map +1 -0
  15. package/dist/components/divider-with-text.js +6 -0
  16. package/dist/components/email-verification.d.ts +5 -0
  17. package/dist/components/email-verification.d.ts.map +1 -0
  18. package/dist/components/{EmailVerification.js → email-verification.js} +2 -2
  19. package/dist/{elements/ForgotPassword.d.ts → components/forgot-password.d.ts} +1 -1
  20. package/dist/components/forgot-password.d.ts.map +1 -0
  21. package/dist/components/forgot-password.js +32 -0
  22. package/dist/components/form-warning.d.ts +4 -0
  23. package/dist/components/form-warning.d.ts.map +1 -0
  24. package/dist/components/form-warning.js +9 -0
  25. package/dist/{elements/MessageCard.d.ts → components/message-card.d.ts} +1 -1
  26. package/dist/components/message-card.d.ts.map +1 -0
  27. package/dist/components/message-card.js +7 -0
  28. package/dist/components/oauth-button.d.ts +5 -0
  29. package/dist/components/oauth-button.d.ts.map +1 -0
  30. package/dist/components/oauth-button.js +66 -0
  31. package/dist/components/oauth-callback.d.ts +2 -0
  32. package/dist/components/oauth-callback.d.ts.map +1 -0
  33. package/dist/components/oauth-callback.js +17 -0
  34. package/dist/components/oauth-group.d.ts +4 -0
  35. package/dist/components/oauth-group.d.ts.map +1 -0
  36. package/dist/components/oauth-group.js +9 -0
  37. package/dist/components/password-field.d.ts +4 -0
  38. package/dist/components/password-field.d.ts.map +1 -0
  39. package/dist/components/password-field.js +41 -0
  40. package/dist/{elements/PasswordResetInner.d.ts → components/password-reset-inner.d.ts} +1 -1
  41. package/dist/components/password-reset-inner.d.ts.map +1 -0
  42. package/dist/{elements/PasswordResetInner.js → components/password-reset-inner.js} +18 -16
  43. package/dist/components/password-reset.d.ts +5 -0
  44. package/dist/components/password-reset.d.ts.map +1 -0
  45. package/dist/components/{PasswordReset.js → password-reset.js} +6 -5
  46. package/dist/{elements/RedirectMessageCard.d.ts → components/redirect-message-card.d.ts} +1 -1
  47. package/dist/components/redirect-message-card.d.ts.map +1 -0
  48. package/dist/{elements/RedirectMessageCard.js → components/redirect-message-card.js} +19 -15
  49. package/dist/components/sign-in.d.ts +4 -0
  50. package/dist/components/sign-in.d.ts.map +1 -0
  51. package/dist/components/sign-in.js +20 -0
  52. package/dist/components/sign-out.d.ts +2 -0
  53. package/dist/components/sign-out.d.ts.map +1 -0
  54. package/dist/components/{SignOut.js → sign-out.js} +5 -4
  55. package/dist/components/sign-up.d.ts +4 -0
  56. package/dist/components/sign-up.d.ts.map +1 -0
  57. package/dist/components/sign-up.js +20 -0
  58. package/dist/components/stack-handler.d.ts +9 -0
  59. package/dist/components/stack-handler.d.ts.map +1 -0
  60. package/dist/components/stack-handler.js +58 -0
  61. package/dist/components-core/button.d.ts +10 -0
  62. package/dist/components-core/button.d.ts.map +1 -0
  63. package/dist/components-core/button.js +115 -0
  64. package/dist/components-core/container.d.ts +6 -0
  65. package/dist/components-core/container.d.ts.map +1 -0
  66. package/dist/components-core/container.js +19 -0
  67. package/dist/components-core/divider.d.ts +7 -0
  68. package/dist/components-core/divider.d.ts.map +1 -0
  69. package/dist/components-core/divider.js +17 -0
  70. package/dist/components-core/index.d.ts +17 -0
  71. package/dist/components-core/index.d.ts.map +1 -0
  72. package/dist/components-core/index.js +32 -0
  73. package/dist/components-core/input.d.ts +5 -0
  74. package/dist/components-core/input.d.ts.map +1 -0
  75. package/dist/components-core/input.js +45 -0
  76. package/dist/components-core/label.d.ts +6 -0
  77. package/dist/components-core/label.d.ts.map +1 -0
  78. package/dist/components-core/label.js +22 -0
  79. package/dist/components-core/link.d.ts +9 -0
  80. package/dist/components-core/link.d.ts.map +1 -0
  81. package/dist/components-core/link.js +18 -0
  82. package/dist/components-core/text.d.ts +9 -0
  83. package/dist/components-core/text.d.ts.map +1 -0
  84. package/dist/components-core/text.js +42 -0
  85. package/dist/components-core-joy/button.d.ts +3 -0
  86. package/dist/components-core-joy/button.d.ts.map +1 -0
  87. package/dist/components-core-joy/button.js +26 -0
  88. package/dist/components-core-joy/divider.d.ts +3 -0
  89. package/dist/components-core-joy/divider.d.ts.map +1 -0
  90. package/dist/components-core-joy/divider.js +7 -0
  91. package/dist/components-core-joy/input.d.ts +3 -0
  92. package/dist/components-core-joy/input.d.ts.map +1 -0
  93. package/dist/components-core-joy/input.js +7 -0
  94. package/dist/components-core-joy/text.d.ts +3 -0
  95. package/dist/components-core-joy/text.d.ts.map +1 -0
  96. package/dist/components-core-joy/text.js +28 -0
  97. package/dist/{components/EmailVerification.d.ts → components-page/email-verification.d.ts} +1 -2
  98. package/dist/components-page/email-verification.d.ts.map +1 -0
  99. package/dist/components-page/email-verification.js +29 -0
  100. package/dist/{components/ForgotPassword.d.ts → components-page/forgot-password.d.ts} +1 -1
  101. package/dist/components-page/forgot-password.d.ts.map +1 -0
  102. package/dist/{components/ForgotPassword.js → components-page/forgot-password.js} +6 -6
  103. package/dist/{components/OAuthCallback.d.ts → components-page/oauth-callback.d.ts} +1 -1
  104. package/dist/components-page/oauth-callback.d.ts.map +1 -0
  105. package/dist/{components/OAuthCallback.js → components-page/oauth-callback.js} +1 -4
  106. package/dist/{components/PasswordReset.d.ts → components-page/password-reset.d.ts} +1 -1
  107. package/dist/components-page/password-reset.d.ts.map +1 -0
  108. package/dist/components-page/password-reset.js +37 -0
  109. package/dist/components-page/sign-in.d.ts +4 -0
  110. package/dist/components-page/sign-in.d.ts.map +1 -0
  111. package/dist/components-page/sign-in.js +20 -0
  112. package/dist/components-page/sign-out.d.ts +2 -0
  113. package/dist/components-page/sign-out.d.ts.map +1 -0
  114. package/dist/components-page/sign-out.js +13 -0
  115. package/dist/components-page/sign-up.d.ts +4 -0
  116. package/dist/components-page/sign-up.d.ts.map +1 -0
  117. package/dist/components-page/sign-up.js +20 -0
  118. package/dist/{components/StackHandler.d.ts → components-page/stack-handler.d.ts} +1 -1
  119. package/dist/components-page/stack-handler.d.ts.map +1 -0
  120. package/dist/{components/StackHandler.js → components-page/stack-handler.js} +11 -11
  121. package/dist/elements/card-frame.d.ts +7 -0
  122. package/dist/elements/card-frame.d.ts.map +1 -0
  123. package/dist/elements/card-frame.js +24 -0
  124. package/dist/elements/card-header.d.ts +6 -0
  125. package/dist/elements/card-header.d.ts.map +1 -0
  126. package/dist/elements/card-header.js +5 -0
  127. package/dist/elements/credential-sign-in.d.ts +2 -0
  128. package/dist/elements/credential-sign-in.d.ts.map +1 -0
  129. package/dist/elements/credential-sign-in.js +56 -0
  130. package/dist/elements/credential-sign-up.d.ts +2 -0
  131. package/dist/elements/credential-sign-up.d.ts.map +1 -0
  132. package/dist/elements/credential-sign-up.js +73 -0
  133. package/dist/elements/divider-with-text.d.ts +4 -0
  134. package/dist/elements/divider-with-text.d.ts.map +1 -0
  135. package/dist/elements/divider-with-text.js +6 -0
  136. package/dist/elements/forgot-password.d.ts +4 -0
  137. package/dist/elements/forgot-password.d.ts.map +1 -0
  138. package/dist/elements/forgot-password.js +32 -0
  139. package/dist/elements/{FormWarning.d.ts → form-warning.d.ts} +1 -1
  140. package/dist/elements/form-warning.d.ts.map +1 -0
  141. package/dist/elements/{FormWarning.js → form-warning.js} +2 -1
  142. package/dist/elements/message-card.d.ts +7 -0
  143. package/dist/elements/message-card.d.ts.map +1 -0
  144. package/dist/elements/message-card.js +7 -0
  145. package/dist/elements/oauth-button.d.ts +5 -0
  146. package/dist/elements/oauth-button.d.ts.map +1 -0
  147. package/dist/elements/{OAuthButton.js → oauth-button.js} +8 -10
  148. package/dist/elements/oauth-group.d.ts +4 -0
  149. package/dist/elements/oauth-group.d.ts.map +1 -0
  150. package/dist/elements/oauth-group.js +8 -0
  151. package/dist/elements/{PasswordField.d.ts → password-field.d.ts} +1 -1
  152. package/dist/elements/password-field.d.ts.map +1 -0
  153. package/dist/elements/password-field.js +38 -0
  154. package/dist/elements/password-reset-inner.d.ts +5 -0
  155. package/dist/elements/password-reset-inner.d.ts.map +1 -0
  156. package/dist/elements/password-reset-inner.js +63 -0
  157. package/dist/elements/redirect-message-card.d.ts +5 -0
  158. package/dist/elements/redirect-message-card.d.ts.map +1 -0
  159. package/dist/elements/redirect-message-card.js +54 -0
  160. package/dist/index.d.ts +17 -8
  161. package/dist/index.d.ts.map +1 -1
  162. package/dist/index.js +17 -9
  163. package/dist/lib/auth.d.ts +1 -13
  164. package/dist/lib/auth.d.ts.map +1 -1
  165. package/dist/lib/auth.js +6 -30
  166. package/dist/lib/hooks.js +1 -1
  167. package/dist/lib/stack-app.d.ts +6 -8
  168. package/dist/lib/stack-app.d.ts.map +1 -1
  169. package/dist/lib/stack-app.js +43 -35
  170. package/dist/providers/component-provider.d.ts +25 -0
  171. package/dist/providers/component-provider.d.ts.map +1 -0
  172. package/dist/providers/component-provider.js +29 -0
  173. package/dist/providers/design-provider.d.ts +41 -0
  174. package/dist/providers/design-provider.d.ts.map +1 -0
  175. package/dist/providers/design-provider.js +65 -0
  176. package/dist/providers/joy-provider.d.ts +17 -0
  177. package/dist/providers/joy-provider.d.ts.map +1 -0
  178. package/dist/providers/joy-provider.js +27 -0
  179. package/dist/providers/{StackProviderClient.d.ts → stack-provider-client.d.ts} +1 -1
  180. package/dist/providers/stack-provider-client.d.ts.map +1 -0
  181. package/dist/providers/{StackProvider.d.ts → stack-provider.d.ts} +3 -3
  182. package/dist/providers/stack-provider.d.ts.map +1 -0
  183. package/dist/providers/{StackProvider.js → stack-provider.js} +1 -1
  184. package/dist/providers/styled-components-registry.d.ts +5 -0
  185. package/dist/providers/styled-components-registry.d.ts.map +1 -0
  186. package/dist/providers/styled-components-registry.js +18 -0
  187. package/dist/providers/theme-provider.d.ts +11 -0
  188. package/dist/providers/theme-provider.d.ts.map +1 -0
  189. package/dist/providers/theme-provider.js +20 -0
  190. package/dist/providers/ui-provider.d.ts +10 -0
  191. package/dist/providers/ui-provider.js +20 -0
  192. package/dist/utils/constants.d.ts +41 -0
  193. package/dist/utils/constants.d.ts.map +1 -0
  194. package/dist/utils/constants.js +22 -0
  195. package/dist/utils/email.d.ts.map +1 -1
  196. package/dist/utils/next.d.ts.map +1 -1
  197. package/dist/utils/react.d.ts.map +1 -1
  198. package/dist/utils/results.d.ts.map +1 -1
  199. package/dist/utils/url.d.ts.map +1 -1
  200. package/package.json +22 -27
  201. package/dist/components/EmailVerification.d.ts.map +0 -1
  202. package/dist/components/ForgotPassword.d.ts.map +0 -1
  203. package/dist/components/OAuthCallback.d.ts.map +0 -1
  204. package/dist/components/PasswordReset.d.ts.map +0 -1
  205. package/dist/components/SignIn.d.ts +0 -5
  206. package/dist/components/SignIn.d.ts.map +0 -1
  207. package/dist/components/SignIn.js +0 -20
  208. package/dist/components/SignOut.d.ts +0 -4
  209. package/dist/components/SignOut.d.ts.map +0 -1
  210. package/dist/components/SignUp.d.ts +0 -5
  211. package/dist/components/SignUp.d.ts.map +0 -1
  212. package/dist/components/SignUp.js +0 -19
  213. package/dist/components/StackHandler.d.ts.map +0 -1
  214. package/dist/elements/Button.d.ts +0 -11
  215. package/dist/elements/Button.d.ts.map +0 -1
  216. package/dist/elements/Button.js +0 -18
  217. package/dist/elements/CardFrame.d.ts +0 -6
  218. package/dist/elements/CardFrame.d.ts.map +0 -1
  219. package/dist/elements/CardFrame.js +0 -10
  220. package/dist/elements/CardHeader.d.ts.map +0 -1
  221. package/dist/elements/CardHeader.js +0 -4
  222. package/dist/elements/CredentialSignIn.d.ts +0 -4
  223. package/dist/elements/CredentialSignIn.d.ts.map +0 -1
  224. package/dist/elements/CredentialSignIn.js +0 -57
  225. package/dist/elements/CredentialSignUp.d.ts +0 -4
  226. package/dist/elements/CredentialSignUp.d.ts.map +0 -1
  227. package/dist/elements/CredentialSignUp.js +0 -73
  228. package/dist/elements/DividerWithText.d.ts.map +0 -1
  229. package/dist/elements/DividerWithText.js +0 -5
  230. package/dist/elements/ForgotPassword.d.ts.map +0 -1
  231. package/dist/elements/ForgotPassword.js +0 -32
  232. package/dist/elements/FormWarning.d.ts.map +0 -1
  233. package/dist/elements/MessageCard.d.ts.map +0 -1
  234. package/dist/elements/MessageCard.js +0 -5
  235. package/dist/elements/OAuthButton.d.ts +0 -6
  236. package/dist/elements/OAuthButton.d.ts.map +0 -1
  237. package/dist/elements/OAuthGroup.d.ts +0 -5
  238. package/dist/elements/OAuthGroup.d.ts.map +0 -1
  239. package/dist/elements/OAuthGroup.js +0 -8
  240. package/dist/elements/PasswordField.d.ts.map +0 -1
  241. package/dist/elements/PasswordField.js +0 -27
  242. package/dist/elements/PasswordResetInner.d.ts.map +0 -1
  243. package/dist/elements/RedirectMessageCard.d.ts.map +0 -1
  244. package/dist/providers/StackProvider.d.ts.map +0 -1
  245. package/dist/providers/StackProviderClient.d.ts.map +0 -1
  246. package/dist/tailwind.css +0 -1293
  247. package/dist/utils/types.d.ts +0 -4
  248. package/dist/utils/types.d.ts.map +0 -1
  249. package/dist/utils/types.js +0 -1
  250. /package/dist/providers/{StackProviderClient.js → stack-provider-client.js} +0 -0
@@ -0,0 +1,73 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { PasswordField } from "./password-field";
5
+ import { FormWarningText } from "./form-warning";
6
+ import { validateEmail } from "../utils/email";
7
+ import { getPasswordError } from "@stackframe/stack-shared/dist/helpers/password";
8
+ import { useStackApp } from "..";
9
+ import { runAsynchronously } from "@stackframe/stack-shared/dist/utils/promises";
10
+ import { UserAlreadyExistErrorCode } from "@stackframe/stack-shared/dist/utils/types";
11
+ import { Button, Label, Input } from "@stackframe/stack-ui";
12
+ export default function CredentialSignUp() {
13
+ const [email, setEmail] = useState('');
14
+ const [emailError, setEmailError] = useState('');
15
+ const [password, setPassword] = useState('');
16
+ const [passwordError, setPasswordError] = useState('');
17
+ const [passwordRepeat, setPasswordRepeat] = useState('');
18
+ const [passwordRepeatError, setPasswordRepeatError] = useState('');
19
+ const [loading, setLoading] = useState(false);
20
+ const app = useStackApp();
21
+ const onSubmit = async () => {
22
+ if (!email) {
23
+ setEmailError('Please enter your email');
24
+ return;
25
+ }
26
+ if (!validateEmail(email)) {
27
+ setEmailError('Please enter a valid email');
28
+ return;
29
+ }
30
+ if (!password) {
31
+ setPasswordError('Please enter your password');
32
+ return;
33
+ }
34
+ if (!passwordRepeat) {
35
+ setPasswordRepeatError('Please repeat your password');
36
+ return;
37
+ }
38
+ if (password !== passwordRepeat) {
39
+ setPasswordRepeatError('Passwords do not match');
40
+ return;
41
+ }
42
+ const errorMessage = getPasswordError(password);
43
+ if (errorMessage) {
44
+ setPasswordError(errorMessage);
45
+ return;
46
+ }
47
+ setLoading(true);
48
+ const errorCode = await app.signUpWithCredential({ email, password });
49
+ setLoading(false);
50
+ switch (errorCode) {
51
+ case UserAlreadyExistErrorCode: {
52
+ setEmailError('User already exists');
53
+ break;
54
+ }
55
+ case undefined: {
56
+ // success
57
+ break;
58
+ }
59
+ }
60
+ };
61
+ return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', alignItems: 'stretch' }, children: [_jsx(Label, { htmlFor: "email", children: "Email" }), _jsx(Input, { id: "email", type: "email", name: "email", value: email, onChange: (e) => {
62
+ setEmail(e.target.value);
63
+ setEmailError('');
64
+ } }), _jsx(FormWarningText, { text: emailError }), _jsx(Label, { htmlFor: "password", style: { marginTop: '1rem' }, children: "Password" }), _jsx(PasswordField, { id: "password", name: "password", value: password, onChange: (e) => {
65
+ setPassword(e.target.value);
66
+ setPasswordError('');
67
+ setPasswordRepeatError('');
68
+ } }), _jsx(FormWarningText, { text: passwordError }), _jsx(Label, { htmlFor: "repeat-password", style: { marginTop: '1rem' }, children: "Repeat Password" }), _jsx(PasswordField, { id: "repeat-password", name: "repeat-password", value: passwordRepeat, onChange: (e) => {
69
+ setPasswordRepeat(e.target.value);
70
+ setPasswordError('');
71
+ setPasswordRepeatError('');
72
+ } }), _jsx(FormWarningText, { text: passwordRepeatError }), _jsx(Button, { style: { marginTop: '1.5rem' }, onClick: () => runAsynchronously(onSubmit), loading: loading, children: "Sign Up" })] }));
73
+ }
@@ -0,0 +1,4 @@
1
+ export default function DividerWithText({ text }: {
2
+ text: string;
3
+ }): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=divider-with-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divider-with-text.d.ts","sourceRoot":"","sources":["../../src/elements/divider-with-text.tsx"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,2CAYjE"}
@@ -0,0 +1,6 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Divider, Text } from "@stackframe/stack-ui";
4
+ export default function DividerWithText({ text }) {
5
+ return (_jsxs("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'center', marginTop: '16px', marginBottom: '16px' }, children: [_jsx("div", { style: { flex: 1 }, children: _jsx(Divider, {}) }), _jsx(Text, { style: { padding: '0 16px' }, variant: "secondary", children: text }), _jsx("div", { style: { flex: 1 }, children: _jsx(Divider, {}) })] }));
6
+ }
@@ -0,0 +1,4 @@
1
+ export default function ForgotPassword({ onSent }: {
2
+ onSent?: () => void;
3
+ }): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=forgot-password.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forgot-password.d.ts","sourceRoot":"","sources":["../../src/elements/forgot-password.tsx"],"names":[],"mappings":"AAUA,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,2CA8CzE"}
@@ -0,0 +1,32 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { FormWarningText } from "./form-warning";
5
+ import { validateEmail } from "../utils/email";
6
+ import { useStackApp } from "..";
7
+ import { runAsynchronously } from "@stackframe/stack-shared/dist/utils/promises";
8
+ import { Button, Input, Label } from "@stackframe/stack-ui";
9
+ export default function ForgotPassword({ onSent }) {
10
+ const [email, setEmail] = useState('');
11
+ const [emailError, setEmailError] = useState('');
12
+ const [sending, setSending] = useState(false);
13
+ const stackApp = useStackApp();
14
+ const onSubmit = async () => {
15
+ if (!email) {
16
+ setEmailError('Please enter your email');
17
+ return;
18
+ }
19
+ if (!validateEmail(email)) {
20
+ setEmailError('Please enter a valid email');
21
+ return;
22
+ }
23
+ setSending(true);
24
+ await stackApp.sendForgotPasswordEmail(email);
25
+ setSending(false);
26
+ onSent?.();
27
+ };
28
+ return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', alignItems: 'stretch' }, children: [_jsx(Label, { htmlFor: "email", children: "Your Email" }), _jsx(Input, { id: "email", type: "email", name: "email", value: email, onChange: (e) => {
29
+ setEmail(e.target.value);
30
+ setEmailError('');
31
+ } }), _jsx(FormWarningText, { text: emailError }), _jsx(Button, { style: { marginTop: '1.5rem' }, onClick: () => runAsynchronously(onSubmit()), loading: sending, children: "Send Email" })] }));
32
+ }
@@ -1,4 +1,4 @@
1
1
  export declare function FormWarningText({ text }: {
2
2
  text?: string;
3
3
  }): import("react/jsx-runtime").JSX.Element | null;
4
- //# sourceMappingURL=FormWarning.d.ts.map
4
+ //# sourceMappingURL=form-warning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-warning.d.ts","sourceRoot":"","sources":["../../src/elements/form-warning.tsx"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,kDAS1D"}
@@ -1,7 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Text } from "@stackframe/stack-ui";
2
3
  export function FormWarningText({ text }) {
3
4
  if (!text) {
4
5
  return null;
5
6
  }
6
- return (_jsx("p", { className: "wl_text-sm wl_text-red-500", children: text }));
7
+ return (_jsx(Text, { size: "sm", variant: "warning", children: text }));
7
8
  }
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ export default function MessageCard({ children, title, fullPage }: {
3
+ children?: React.ReactNode;
4
+ title: string;
5
+ fullPage?: boolean;
6
+ }): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=message-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-card.d.ts","sourceRoot":"","sources":["../../src/elements/message-card.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,CAAC,OAAO,UAAU,WAAW,CACjC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAc,EAAE,EACnC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAC,2CAUjE"}
@@ -0,0 +1,7 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import CardFrame from "./card-frame";
4
+ import { Text } from "@stackframe/stack-ui";
5
+ export default function MessageCard({ children, title, fullPage = false }) {
6
+ return (_jsx(CardFrame, { fullPage: fullPage, children: _jsxs("div", { style: { textAlign: 'center' }, children: [_jsx(Text, { size: "xl", as: 'h2', style: { marginBottom: '24px' }, children: title }), children] }) }));
7
+ }
@@ -0,0 +1,5 @@
1
+ export default function OAuthButton({ provider, type, }: {
2
+ provider: string;
3
+ type: 'signin' | 'signup';
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=oauth-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-button.d.ts","sourceRoot":"","sources":["../../src/elements/oauth-button.tsx"],"names":[],"mappings":"AAUA,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,QAAQ,EACR,IAAI,GACL,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC3B,2CA6GA"}
@@ -3,17 +3,19 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { FaGithub, FaFacebook, FaApple } from 'react-icons/fa';
4
4
  import { useStackApp } from '..';
5
5
  import { runAsynchronously } from "@stackframe/stack-shared/dist/utils/promises";
6
- import Button from './Button';
7
- const iconSize = 24;
8
- export default function OAuthButton({ provider, type, redirectUrl }) {
6
+ import { Button, useDesign } from '@stackframe/stack-ui';
7
+ import Color from 'color';
8
+ const iconSize = 22;
9
+ export default function OAuthButton({ provider, type, }) {
10
+ const { colors } = useDesign();
9
11
  const stackApp = useStackApp();
10
12
  let style;
11
13
  switch (provider) {
12
14
  case 'google': {
13
15
  style = {
14
16
  backgroundColor: '#fff',
15
- textColor: '#000',
16
17
  name: 'Google',
18
+ border: Color(colors.primaryBgColor).isDark() ? undefined : '1px solid #ccc',
17
19
  icon: (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: iconSize, height: iconSize, viewBox: "0 0 24 24", children: [_jsx("path", { fill: "#4285F4", d: "M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z" }), _jsx("path", { fill: "#34A853", d: "M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z" }), _jsx("path", { fill: "#FBBC05", d: "M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z" }), _jsx("path", { fill: "#EA4335", d: "M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z" }), _jsx("path", { fill: "none", d: "M1 1h22v22H1z" })] })),
18
20
  };
19
21
  break;
@@ -21,7 +23,7 @@ export default function OAuthButton({ provider, type, redirectUrl }) {
21
23
  case 'github': {
22
24
  style = {
23
25
  backgroundColor: '#111',
24
- textColor: '#fff',
26
+ border: Color(colors.primaryBgColor).isDark() ? '1px solid #666' : undefined,
25
27
  name: 'GitHub',
26
28
  icon: (_jsx(FaGithub, { color: "#fff", size: iconSize })),
27
29
  };
@@ -30,7 +32,6 @@ export default function OAuthButton({ provider, type, redirectUrl }) {
30
32
  case 'facebook': {
31
33
  style = {
32
34
  backgroundColor: '#1877F2',
33
- textColor: '#fff',
34
35
  name: 'Facebook',
35
36
  icon: (_jsx(FaFacebook, { color: "#fff", size: iconSize })),
36
37
  };
@@ -39,7 +40,6 @@ export default function OAuthButton({ provider, type, redirectUrl }) {
39
40
  case 'apple': {
40
41
  style = {
41
42
  backgroundColor: '#000',
42
- textColor: '#fff',
43
43
  name: 'Apple',
44
44
  icon: (_jsx(FaApple, { color: "#fff", size: iconSize })),
45
45
  };
@@ -48,7 +48,6 @@ export default function OAuthButton({ provider, type, redirectUrl }) {
48
48
  case 'microsoft': {
49
49
  style = {
50
50
  backgroundColor: '#2f2f2f',
51
- textColor: '#fff',
52
51
  name: 'Microsoft',
53
52
  icon: (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: iconSize, height: iconSize, viewBox: "0 0 21 21", children: [_jsx("title", { children: "MS-SymbolLockup" }), _jsx("path", { fill: "#f25022", d: "M1 1h9v9H1z" }), _jsx("path", { fill: "#00a4ef", d: "M1 11h9v9H1z" }), _jsx("path", { fill: "#7fba00", d: "M11 1h9v9h-9z" }), _jsx("path", { fill: "#ffb900", d: "M11 11h9v9h-9z" })] })),
54
53
  };
@@ -57,11 +56,10 @@ export default function OAuthButton({ provider, type, redirectUrl }) {
57
56
  default: {
58
57
  style = {
59
58
  backgroundColor: '#000',
60
- textColor: '#fff',
61
59
  name: provider,
62
60
  icon: null
63
61
  };
64
62
  }
65
63
  }
66
- return (_jsxs(Button, { style: { backgroundColor: style.backgroundColor, color: style.textColor }, onClick: () => runAsynchronously(stackApp.signInWithOAuth(provider)), leftIcon: style.icon, children: [type === 'signup' ? 'Sign up with ' : 'Sign in with ', style.name] }));
64
+ return (_jsx(Button, { color: style.backgroundColor, style: { border: style.border }, onClick: () => runAsynchronously(stackApp.signInWithOAuth(provider)), children: _jsxs("div", { style: { display: 'flex', alignItems: 'center', width: '100%' }, children: [style.icon, _jsxs("span", { style: { flexGrow: 1 }, children: [type === 'signup' ? 'Sign up with ' : 'Sign in with ', style.name] }), _jsx("div", { style: { visibility: 'hidden' }, children: style.icon })] }) }));
67
65
  }
@@ -0,0 +1,4 @@
1
+ export default function OAuthGroup({ type, }: {
2
+ type: 'signin' | 'signup';
3
+ }): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=oauth-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-group.d.ts","sourceRoot":"","sources":["../../src/elements/oauth-group.tsx"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,GACL,EAAE;IACD,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC3B,2CAWA"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useStackApp } from "..";
3
+ import OAuthButton from "./oauth-button";
4
+ export default function OAuthGroup({ type, }) {
5
+ const stackApp = useStackApp();
6
+ const project = stackApp.useProject();
7
+ return (_jsx("div", { style: { gap: '16px', display: 'flex', flexDirection: 'column', alignItems: 'stretch' }, children: project.oauthProviders.filter(p => p.enabled).map(p => (_jsx(OAuthButton, { provider: p.id, type: type }, p.id))) }));
8
+ }
@@ -1,3 +1,3 @@
1
1
  /// <reference types="react" />
2
2
  export declare const PasswordField: import("react").ForwardRefExoticComponent<import("react").InputHTMLAttributes<HTMLInputElement> & import("react").RefAttributes<HTMLInputElement>>;
3
- //# sourceMappingURL=PasswordField.d.ts.map
3
+ //# sourceMappingURL=password-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"password-field.d.ts","sourceRoot":"","sources":["../../src/elements/password-field.tsx"],"names":[],"mappings":";AAIA,eAAO,MAAM,aAAa,oJAwDxB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Input } from '@stackframe/stack-ui';
3
+ import { forwardRef, useRef, useState } from 'react';
4
+ import { HiEye, HiEyeOff } from 'react-icons/hi';
5
+ export const PasswordField = forwardRef(({ id, name, ...props }, ref) => {
6
+ const [isOpen, setIsOpen] = useState(false);
7
+ const inputRef = useRef(null);
8
+ const mergeRef = (node) => {
9
+ if (ref) {
10
+ if (typeof ref === 'function') {
11
+ ref(node);
12
+ }
13
+ else {
14
+ ref.current = node;
15
+ }
16
+ }
17
+ inputRef.current = node;
18
+ };
19
+ const onClickReveal = () => {
20
+ setIsOpen(!isOpen);
21
+ const currentInput = inputRef.current;
22
+ if (currentInput) {
23
+ currentInput.focus({ preventScroll: true });
24
+ }
25
+ };
26
+ return (_jsxs("div", { style: { position: 'relative', display: 'flex' }, children: [_jsx(Input, { id: id, ref: mergeRef, name: name, type: isOpen ? 'text' : 'password', autoComplete: "current-password", required: true, style: { flex: 1 }, ...props }), _jsx("button", { tabIndex: -1, type: "button", style: {
27
+ position: 'absolute',
28
+ backgroundColor: 'transparent',
29
+ border: 'none',
30
+ top: 0,
31
+ right: 0,
32
+ bottom: 0,
33
+ display: 'flex',
34
+ alignItems: 'center',
35
+ paddingRight: '12px'
36
+ }, onClick: onClickReveal, "aria-label": isOpen ? 'Mask password' : 'Reveal password', children: isOpen ? _jsx(HiEyeOff, {}) : _jsx(HiEye, {}) })] }));
37
+ });
38
+ PasswordField.displayName = 'PasswordField';
@@ -0,0 +1,5 @@
1
+ export default function PasswordResetInner({ code, fullPage }: {
2
+ code: string;
3
+ fullPage?: boolean;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=password-reset-inner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"password-reset-inner.d.ts","sourceRoot":"","sources":["../../src/elements/password-reset-inner.tsx"],"names":[],"mappings":"AAeA,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,EAAE,IAAI,EAAE,QAAgB,EAAE,EAC1B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,2CAyFrC"}
@@ -0,0 +1,63 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { getPasswordError } from "@stackframe/stack-shared/dist/helpers/password";
5
+ import { useStackApp } from "..";
6
+ import { PasswordField } from "./password-field";
7
+ import { FormWarningText } from "./form-warning";
8
+ import RedirectMessageCard from "./redirect-message-card";
9
+ import MessageCard from "./message-card";
10
+ import CardFrame from "./card-frame";
11
+ import CardHeader from "./card-header";
12
+ import { Button, Label, Text } from "@stackframe/stack-ui";
13
+ import { runAsynchronously } from "@stackframe/stack-shared/dist/utils/promises";
14
+ export default function PasswordResetInner({ code, fullPage = false }) {
15
+ const [password, setPassword] = useState('');
16
+ const [passwordError, setPasswordError] = useState('');
17
+ const [passwordRepeat, setPasswordRepeat] = useState('');
18
+ const [passwordRepeatError, setPasswordRepeatError] = useState('');
19
+ const [finished, setFinished] = useState(false);
20
+ const [resetError, setResetError] = useState(false);
21
+ const stackApp = useStackApp();
22
+ const onSubmit = async () => {
23
+ if (!password) {
24
+ setPasswordError('Please enter your password');
25
+ return;
26
+ }
27
+ if (!passwordRepeat) {
28
+ setPasswordRepeatError('Please repeat your password');
29
+ return;
30
+ }
31
+ if (password !== passwordRepeat) {
32
+ setPasswordRepeatError('Passwords do not match');
33
+ return;
34
+ }
35
+ const errorMessage = getPasswordError(password);
36
+ if (errorMessage) {
37
+ setPasswordError(errorMessage);
38
+ return;
39
+ }
40
+ const errorCode = await stackApp.resetPassword({ password, code });
41
+ // this should not happen, the outer component should verify the code before rendering this component
42
+ if (errorCode) {
43
+ setResetError(true);
44
+ return;
45
+ }
46
+ setFinished(true);
47
+ };
48
+ if (finished) {
49
+ return _jsx(RedirectMessageCard, { type: 'passwordReset', fullPage: fullPage });
50
+ }
51
+ if (resetError) {
52
+ return (_jsx(MessageCard, { title: "Failed to reset password", fullPage: fullPage, children: _jsx(Text, { children: "Failed to reset password. Please request a new password reset link" }) }));
53
+ }
54
+ return (_jsxs(CardFrame, { fullPage: fullPage, children: [_jsx(CardHeader, { title: "Reset Your Password" }), _jsxs("div", { style: { display: 'flex', flexDirection: 'column', alignItems: 'stretch' }, children: [_jsx(Label, { htmlFor: "password", children: "New Password" }), _jsx(PasswordField, { id: "password", name: "password", value: password, onChange: (e) => {
55
+ setPassword(e.target.value);
56
+ setPasswordError('');
57
+ setPasswordRepeatError('');
58
+ } }), _jsx(FormWarningText, { text: passwordError }), _jsx(Label, { htmlFor: "repeat-password", style: { marginTop: "1rem" }, children: "Repeat New Password" }), _jsx(PasswordField, { id: "repeat-password", name: "repeat-password", value: passwordRepeat, onChange: (e) => {
59
+ setPasswordRepeat(e.target.value);
60
+ setPasswordError('');
61
+ setPasswordRepeatError('');
62
+ } }), _jsx(FormWarningText, { text: passwordRepeatError }), _jsx(Button, { style: { marginTop: '1.5rem' }, onClick: () => runAsynchronously(onSubmit()), children: "Reset Password" })] })] }));
63
+ }
@@ -0,0 +1,5 @@
1
+ export default function RedirectMessageCard({ type, fullPage, }: {
2
+ type: 'signedIn' | 'signedOut' | 'emailSent' | 'passwordReset' | 'emailVerified';
3
+ fullPage?: boolean;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=redirect-message-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redirect-message-card.d.ts","sourceRoot":"","sources":["../../src/elements/redirect-message-card.tsx"],"names":[],"mappings":"AAOA,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,IAAI,EACJ,QAAc,GACf,EAAE;IACD,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,eAAe,GAAG,eAAe,CAAC;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,2CAoEA"}
@@ -0,0 +1,54 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useRouter } from "next/navigation";
4
+ import { useStackApp } from "..";
5
+ import MessageCard from "./message-card";
6
+ import { Text, Button } from "@stackframe/stack-ui";
7
+ export default function RedirectMessageCard({ type, fullPage = false, }) {
8
+ const stackApp = useStackApp();
9
+ const router = useRouter();
10
+ let title;
11
+ let primaryUrl;
12
+ let secondaryUrl = null;
13
+ let message = null;
14
+ let primaryButton;
15
+ let secondaryButton = null;
16
+ switch (type) {
17
+ case 'signedIn': {
18
+ title = "You are already signed in";
19
+ primaryUrl = stackApp.urls.home;
20
+ secondaryUrl = stackApp.urls.signOut;
21
+ primaryButton = "Go to Home";
22
+ secondaryButton = "Sign Out";
23
+ break;
24
+ }
25
+ case 'signedOut': {
26
+ title = "You are not currently signed in.";
27
+ primaryUrl = stackApp.urls.home;
28
+ primaryButton = "Go to Home";
29
+ break;
30
+ }
31
+ case 'emailSent': {
32
+ title = "Email sent!";
33
+ message = 'Please check your inbox. Make sure to check your spam folder.';
34
+ primaryUrl = stackApp.urls.home;
35
+ primaryButton = "Go to Home";
36
+ break;
37
+ }
38
+ case 'passwordReset': {
39
+ title = "Password reset successfully!";
40
+ message = 'Your password has been reset. You can now sign in with your new password.';
41
+ primaryUrl = stackApp.urls.signIn;
42
+ primaryButton = "Go to Sign In";
43
+ break;
44
+ }
45
+ case 'emailVerified': {
46
+ title = "Email verified!";
47
+ message = 'Your have successfully verified your email.';
48
+ primaryUrl = stackApp.urls.home;
49
+ primaryButton = "Go to Home";
50
+ break;
51
+ }
52
+ }
53
+ return (_jsxs(MessageCard, { title: title, fullPage: fullPage, children: [message && _jsx(Text, { children: message }), _jsxs("div", { style: { display: 'flex', flexDirection: 'row', alignItems: 'center', justifyContent: 'center', gap: '16px', marginTop: 20 }, children: [secondaryButton && (_jsx(Button, { variant: "secondary", onClick: () => router.push(stackApp.urls.signOut.toString()), children: secondaryButton })), _jsx(Button, { onClick: () => router.push(primaryUrl.toString()), children: primaryButton })] })] }));
54
+ }
package/dist/index.d.ts CHANGED
@@ -1,11 +1,20 @@
1
- export { default as StackProvider } from "./providers/StackProvider";
1
+ export { default as StackProvider } from "./providers/stack-provider";
2
2
  export { useUser, useStackApp } from "./lib/hooks";
3
3
  export { StackClientApp, StackServerApp, StackAdminApp } from "./lib/stack-app";
4
- export { default as SignIn } from "./components/SignIn";
5
- export { default as SignUp } from "./components/SignUp";
6
- export { default as StackHandler } from "./components/StackHandler";
7
- export { default as EmailVerification } from "./components/EmailVerification";
8
- export { default as PasswordReset } from "./components/PasswordReset";
9
- export { default as ForgotPassword } from "./components/ForgotPassword";
10
- import '../dist/tailwind.css';
4
+ export { default as StackHandler } from "./components-page/stack-handler";
5
+ export { default as SignIn } from "./components-page/sign-in";
6
+ export { default as SignUp } from "./components-page/sign-up";
7
+ export { default as EmailVerification } from "./components-page/email-verification";
8
+ export { default as PasswordReset } from "./components-page/password-reset";
9
+ export { default as ForgotPassword } from "./components-page/forgot-password";
10
+ export { default as CredentialSignIn } from "./components/credential-sign-in";
11
+ export { default as CredentialSignUp } from "./components/credential-sign-up";
12
+ export { default as OAuthButton } from "./components/oauth-button";
13
+ export { default as OAuthGroup } from "./components/oauth-group";
14
+ export { default as PasswordField } from "./components/password-field";
15
+ export { useDesign } from './providers/design-provider';
16
+ export { useComponents } from './providers/component-provider';
17
+ export { StackTheme, ThemeConfig } from './providers/theme-provider';
18
+ export { StackJoyTheme } from './providers/joy-provider';
19
+ export * from './components-core';
11
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAGxE,OAAO,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAE9E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,11 +1,19 @@
1
- export { default as StackProvider } from "./providers/StackProvider";
1
+ export { default as StackProvider } from "./providers/stack-provider";
2
2
  export { useUser, useStackApp } from "./lib/hooks";
3
3
  export { StackClientApp, StackServerApp, StackAdminApp } from "./lib/stack-app";
4
- export { default as SignIn } from "./components/SignIn";
5
- export { default as SignUp } from "./components/SignUp";
6
- export { default as StackHandler } from "./components/StackHandler";
7
- export { default as EmailVerification } from "./components/EmailVerification";
8
- export { default as PasswordReset } from "./components/PasswordReset";
9
- export { default as ForgotPassword } from "./components/ForgotPassword";
10
- // TODO we can't import it like this
11
- import '../dist/tailwind.css';
4
+ export { default as StackHandler } from "./components-page/stack-handler";
5
+ export { default as SignIn } from "./components-page/sign-in";
6
+ export { default as SignUp } from "./components-page/sign-up";
7
+ export { default as EmailVerification } from "./components-page/email-verification";
8
+ export { default as PasswordReset } from "./components-page/password-reset";
9
+ export { default as ForgotPassword } from "./components-page/forgot-password";
10
+ export { default as CredentialSignIn } from "./components/credential-sign-in";
11
+ export { default as CredentialSignUp } from "./components/credential-sign-up";
12
+ export { default as OAuthButton } from "./components/oauth-button";
13
+ export { default as OAuthGroup } from "./components/oauth-group";
14
+ export { default as PasswordField } from "./components/password-field";
15
+ export { useDesign } from './providers/design-provider';
16
+ export { useComponents } from './providers/component-provider';
17
+ export { StackTheme } from './providers/theme-provider';
18
+ export { StackJoyTheme } from './providers/joy-provider';
19
+ export * from './components-core';
@@ -1,20 +1,8 @@
1
1
  import { StackClientInterface } from "@stackframe/stack-shared";
2
2
  import { TokenStore } from "@stackframe/stack-shared/dist/interface/clientInterface";
3
- import { SignInErrorCode, SignUpErrorCode } from "@stackframe/stack-shared/dist/utils/types";
4
3
  export declare function signInWithOAuth(iface: StackClientInterface, { provider, redirectUrl, }: {
5
4
  provider: string;
6
5
  redirectUrl?: string;
7
6
  }): Promise<void>;
8
- export declare function callOAuthCallback(iface: StackClientInterface, tokenStore: TokenStore, redirectUrl?: string): Promise<void>;
9
- export declare function signInWithCredential(iface: StackClientInterface, tokenStore: TokenStore, { email, password, redirectUrl, }: {
10
- email: string;
11
- password: string;
12
- redirectUrl?: string;
13
- }): Promise<SignInErrorCode | undefined>;
14
- export declare function signUpWithCredential(iface: StackClientInterface, tokenStore: TokenStore, { email, password, redirectUrl, emailVerificationRedirectUrl }: {
15
- email: string;
16
- password: string;
17
- redirectUrl?: string;
18
- emailVerificationRedirectUrl?: string;
19
- }): Promise<SignUpErrorCode | undefined>;
7
+ export declare function callOAuthCallback(iface: StackClientInterface, tokenStore: TokenStore, redirectUrl: string): Promise<import("oauth4webapi").OAuth2TokenEndpointResponse>;
20
8
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,EAAE,UAAU,EAAE,MAAM,yDAAyD,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAE7F,wBAAsB,eAAe,CACnC,KAAK,EAAE,oBAAoB,EAC3B,EACE,QAAQ,EACR,WAAW,GACZ,EAAG;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,iBAWF;AA0CD,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,oBAAoB,EAC3B,UAAU,EAAE,UAAU,EACtB,WAAW,CAAC,EAAE,MAAM,iBAyCrB;AAED,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,oBAAoB,EAC3B,UAAU,EAAE,UAAU,EACtB,EACE,KAAK,EACL,QAAQ,EACR,WAAW,GACZ,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACA,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAOtC;AAED,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,oBAAoB,EAC3B,UAAU,EAAE,UAAU,EACtB,EACE,KAAK,EACL,QAAQ,EACR,WAAW,EACX,4BAAkC,EACnC,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B,CAAC,EAAE,MAAM,CAAC;CACvC,GACA,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAQtC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,EAAE,UAAU,EAAE,MAAM,yDAAyD,CAAC;AAErF,wBAAsB,eAAe,CACnC,KAAK,EAAE,oBAAoB,EAC3B,EACE,QAAQ,EACR,WAAW,GACZ,EAAG;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,iBAWF;AAuCD,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,oBAAoB,EAC3B,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,MAAM,+DA6BpB"}