@stackframe/stack 2.0.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) 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 -0
  5. package/dist/components/card-header.d.ts.map +1 -0
  6. package/dist/components/card-header.js +5 -0
  7. package/dist/{elements/CredentialSignIn.d.ts → components/credential-sign-in.d.ts} +1 -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/{elements/CredentialSignUp.d.ts → components/credential-sign-up.d.ts} +1 -0
  11. package/dist/components/credential-sign-up.d.ts.map +1 -0
  12. package/dist/{elements/CredentialSignUp.js → components/credential-sign-up.js} +15 -15
  13. package/dist/{elements/DividerWithText.d.ts → components/divider-with-text.d.ts} +1 -0
  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 -0
  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 -0
  26. package/dist/components/message-card.d.ts.map +1 -0
  27. package/dist/components/message-card.js +7 -0
  28. package/dist/{elements/OAuthButton.d.ts → components/oauth-button.d.ts} +1 -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/{OAuthCallback.js → oauth-callback.js} +1 -1
  34. package/dist/{elements/OAuthGroup.d.ts → components/oauth-group.d.ts} +1 -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 -0
  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 -0
  47. package/dist/components/redirect-message-card.d.ts.map +1 -0
  48. package/dist/{elements/RedirectMessageCard.js → components/redirect-message-card.js} +3 -4
  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} +1 -1
  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/{StackHandler.js → stack-handler.js} +7 -7
  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 -0
  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 -0
  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 -0
  104. package/dist/components-page/oauth-callback.d.ts.map +1 -0
  105. package/dist/components-page/oauth-callback.js +17 -0
  106. package/dist/{components/PasswordReset.d.ts → components-page/password-reset.d.ts} +1 -0
  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/SignIn.d.ts → components-page/sign-in.d.ts} +1 -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/SignOut.d.ts → components-page/sign-out.d.ts} +1 -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/SignUp.d.ts → components-page/sign-up.d.ts} +1 -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 -0
  119. package/dist/components-page/stack-handler.d.ts.map +1 -0
  120. package/dist/components-page/stack-handler.js +58 -0
  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/{CredentialSignIn.js → credential-sign-in.js} +10 -11
  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 -0
  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} +7 -9
  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 -0
  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 +18 -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 -0
  164. package/dist/lib/cookie.d.ts +1 -0
  165. package/dist/lib/hooks.d.ts +1 -0
  166. package/dist/lib/hooks.js +1 -1
  167. package/dist/lib/stack-app.d.ts +1 -0
  168. package/dist/providers/component-provider.d.ts +25 -0
  169. package/dist/providers/component-provider.d.ts.map +1 -0
  170. package/dist/providers/component-provider.js +29 -0
  171. package/dist/providers/design-provider.d.ts +41 -0
  172. package/dist/providers/design-provider.d.ts.map +1 -0
  173. package/dist/providers/design-provider.js +68 -0
  174. package/dist/providers/joy-provider.d.ts +17 -0
  175. package/dist/providers/joy-provider.d.ts.map +1 -0
  176. package/dist/providers/joy-provider.js +27 -0
  177. package/dist/providers/{StackProviderClient.d.ts → stack-provider-client.d.ts} +1 -0
  178. package/dist/providers/stack-provider-client.d.ts.map +1 -0
  179. package/dist/providers/{StackProvider.d.ts → stack-provider.d.ts} +3 -2
  180. package/dist/providers/stack-provider.d.ts.map +1 -0
  181. package/dist/providers/{StackProvider.js → stack-provider.js} +1 -1
  182. package/dist/providers/styled-components-registry.d.ts +5 -0
  183. package/dist/providers/styled-components-registry.d.ts.map +1 -0
  184. package/dist/providers/styled-components-registry.js +18 -0
  185. package/dist/providers/theme-provider.d.ts +11 -0
  186. package/dist/providers/theme-provider.d.ts.map +1 -0
  187. package/dist/providers/theme-provider.js +20 -0
  188. package/dist/providers/ui-provider.d.ts +10 -0
  189. package/dist/providers/ui-provider.js +20 -0
  190. package/dist/utils/constants.d.ts +41 -0
  191. package/dist/utils/constants.d.ts.map +1 -0
  192. package/dist/utils/constants.js +22 -0
  193. package/dist/utils/email.d.ts +1 -0
  194. package/dist/utils/email.d.ts.map +1 -1
  195. package/dist/utils/next.d.ts +1 -0
  196. package/dist/utils/next.d.ts.map +1 -1
  197. package/dist/utils/react.d.ts +1 -0
  198. package/dist/utils/react.d.ts.map +1 -1
  199. package/dist/utils/results.d.ts +1 -0
  200. package/dist/utils/results.d.ts.map +1 -1
  201. package/dist/utils/url.d.ts +1 -0
  202. package/dist/utils/url.d.ts.map +1 -1
  203. package/package.json +19 -24
  204. package/dist/components/EmailVerification.d.ts.map +0 -1
  205. package/dist/components/ForgotPassword.d.ts.map +0 -1
  206. package/dist/components/OAuthCallback.d.ts.map +0 -1
  207. package/dist/components/PasswordReset.d.ts.map +0 -1
  208. package/dist/components/SignIn.d.ts.map +0 -1
  209. package/dist/components/SignIn.js +0 -20
  210. package/dist/components/SignOut.d.ts.map +0 -1
  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 -10
  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 -5
  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.map +0 -1
  223. package/dist/elements/CredentialSignUp.d.ts.map +0 -1
  224. package/dist/elements/DividerWithText.d.ts.map +0 -1
  225. package/dist/elements/DividerWithText.js +0 -5
  226. package/dist/elements/ForgotPassword.d.ts.map +0 -1
  227. package/dist/elements/ForgotPassword.js +0 -32
  228. package/dist/elements/FormWarning.d.ts.map +0 -1
  229. package/dist/elements/MessageCard.d.ts.map +0 -1
  230. package/dist/elements/MessageCard.js +0 -5
  231. package/dist/elements/OAuthButton.d.ts.map +0 -1
  232. package/dist/elements/OAuthGroup.d.ts.map +0 -1
  233. package/dist/elements/OAuthGroup.js +0 -8
  234. package/dist/elements/PasswordField.d.ts.map +0 -1
  235. package/dist/elements/PasswordField.js +0 -27
  236. package/dist/elements/PasswordResetInner.d.ts.map +0 -1
  237. package/dist/elements/RedirectMessageCard.d.ts.map +0 -1
  238. package/dist/providers/StackProvider.d.ts.map +0 -1
  239. package/dist/providers/StackProviderClient.d.ts.map +0 -1
  240. package/dist/tailwind.css +0 -1299
  241. package/dist/utils/types.d.ts +0 -4
  242. package/dist/utils/types.d.ts.map +0 -1
  243. package/dist/utils/types.js +0 -1
  244. /package/dist/providers/{StackProviderClient.js → stack-provider-client.js} +0 -0
@@ -0,0 +1,7 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Divider as JoyDivider } from '@mui/joy';
4
+ export default function Divider(props) {
5
+ const { direction, ref, ...validProps } = props;
6
+ return _jsx(JoyDivider, { ...validProps, orientation: direction });
7
+ }
@@ -0,0 +1,3 @@
1
+ import { InputProps } from "../components-core";
2
+ export default function Input(props: InputProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/components-core-joy/input.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,KAAK,EAAG,UAAU,2CAG/C"}
@@ -0,0 +1,7 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Input as JoyInput } from '@mui/joy';
4
+ export default function Input(props) {
5
+ const { color, size, ref, ...validProps } = props;
6
+ return _jsx(JoyInput, { ...validProps });
7
+ }
@@ -0,0 +1,3 @@
1
+ import { TextProps } from "../components-core";
2
+ export default function Text(props: TextProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/components-core-joy/text.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,KAAK,EAAG,SAAS,2CAyB7C"}
@@ -0,0 +1,28 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Typography as JoyText } from '@mui/joy';
4
+ export default function Text(props) {
5
+ const { color, size, as, variant, ref, ...validProps } = props;
6
+ const muiLevel = {
7
+ h1: 'h1',
8
+ h2: 'h2',
9
+ h3: 'h3',
10
+ h4: 'h4',
11
+ h5: 'h4',
12
+ h6: 'h4',
13
+ p: {
14
+ xl: 'body-lg',
15
+ lg: 'body-lg',
16
+ md: 'body-md',
17
+ sm: 'body-sm',
18
+ xs: 'body-xs'
19
+ }[size || 'md']
20
+ }[as || 'p'];
21
+ const muiColor = {
22
+ primary: undefined,
23
+ secondary: 'neutral',
24
+ success: 'success',
25
+ warning: 'danger',
26
+ }[variant || 'primary'];
27
+ return _jsx(JoyText, { level: muiLevel, color: muiColor, ...validProps });
28
+ }
@@ -2,3 +2,4 @@ export default function EmailVerification({ searchParams: { code, }, fullPage, }
2
2
  searchParams?: Record<string, string>;
3
3
  fullPage?: boolean;
4
4
  }): import("react/jsx-runtime").JSX.Element | null;
5
+ //# sourceMappingURL=email-verification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-verification.d.ts","sourceRoot":"","sources":["../../src/components-page/email-verification.tsx"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,YAAY,EAAE,EACZ,IAAS,GACL,EACN,QAAgB,GACjB,EAAE;IACD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,kDAkCA"}
@@ -0,0 +1,29 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { use } from "react";
4
+ import { useStackApp } from "..";
5
+ import MessageCard from "../components/message-card";
6
+ import RedirectMessageCard from "../components/redirect-message-card";
7
+ import { EmailVerificationLinkExpiredErrorCode, EmailVerificationLinkInvalidErrorCode, EmailVerificationLinkUsedErrorCode } from "@stackframe/stack-shared/dist/utils/types";
8
+ export default function EmailVerification({ searchParams: { code = "", } = {}, fullPage = false, }) {
9
+ const stackApp = useStackApp();
10
+ const invalidJsx = (_jsx(MessageCard, { title: "Invalid Verification Link", fullPage: fullPage, children: _jsx("p", { children: "Please check if you have the correct link. If you continue to have issues, please contact support." }) }));
11
+ const expiredJsx = (_jsx(MessageCard, { title: "Expired Verification Link", fullPage: fullPage, children: _jsx("p", { children: "Your email verification link has expired. Please request a new verification link from your account settings." }) }));
12
+ if (!code) {
13
+ return invalidJsx;
14
+ }
15
+ const errorCode = use(stackApp.verifyEmail(code));
16
+ switch (errorCode) {
17
+ case EmailVerificationLinkInvalidErrorCode: {
18
+ return invalidJsx;
19
+ }
20
+ case EmailVerificationLinkExpiredErrorCode: {
21
+ return expiredJsx;
22
+ }
23
+ case EmailVerificationLinkUsedErrorCode:
24
+ case undefined: {
25
+ return _jsx(RedirectMessageCard, { type: 'emailVerified', fullPage: fullPage });
26
+ }
27
+ }
28
+ return null;
29
+ }
@@ -1,3 +1,4 @@
1
1
  export default function ForgotPassword({ fullPage }: {
2
2
  fullPage?: boolean;
3
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/components-page/forgot-password.tsx"],"names":[],"mappings":"AAWA,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,QAAc,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,2CA0BhF"}
@@ -1,12 +1,12 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import ForgotPasswordElement from "../elements/ForgotPassword";
4
- import CardFrame from "../elements/CardFrame";
5
- import CardHeader from "../elements/CardHeader";
3
+ import ForgotPasswordElement from "../components/forgot-password";
4
+ import CardFrame from "../components/card-frame";
5
+ import CardHeader from "../components/card-header";
6
6
  import { useUser, useStackApp } from "..";
7
- import RedirectMessageCard from "../elements/RedirectMessageCard";
8
- import NextLink from 'next/link';
7
+ import RedirectMessageCard from "../components/redirect-message-card";
9
8
  import { useState } from "react";
9
+ import { Link, Text } from "../components-core";
10
10
  export default function ForgotPassword({ fullPage = false }) {
11
11
  const stackApp = useStackApp();
12
12
  const user = useUser();
@@ -17,6 +17,6 @@ export default function ForgotPassword({ fullPage = false }) {
17
17
  if (sent) {
18
18
  return _jsx(RedirectMessageCard, { type: 'emailSent', fullPage: fullPage });
19
19
  }
20
- return (_jsxs(CardFrame, { fullPage: fullPage, children: [_jsx(CardHeader, { title: "Reset Your Password", children: _jsxs("p", { children: ["Don't need to reset? ", _jsx(NextLink, { href: stackApp.urls['signUp'], passHref: true, className: "wl_text-blue-500", children: "Sign In" })] }) }), _jsx(ForgotPasswordElement, { onSent: () => setSent(true) })] }));
20
+ return (_jsxs(CardFrame, { fullPage: fullPage, children: [_jsx(CardHeader, { title: "Reset Your Password", children: _jsxs(Text, { children: ["Don't need to reset? ", _jsx(Link, { href: stackApp.urls['signUp'], children: "Sign In" })] }) }), _jsx(ForgotPasswordElement, { onSent: () => setSent(true) })] }));
21
21
  }
22
22
  ;
@@ -1 +1,2 @@
1
1
  export default function OAuthCallback(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=oauth-callback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-callback.d.ts","sourceRoot":"","sources":["../../src/components-page/oauth-callback.tsx"],"names":[],"mappings":"AAOA,MAAM,CAAC,OAAO,UAAU,aAAa,4CAWpC"}
@@ -0,0 +1,17 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useRef, useEffect } from "react";
4
+ import { useStackApp } from "..";
5
+ import { runAsynchronously } from "@stackframe/stack-shared/dist/utils/promises";
6
+ import MessageCard from "../components/message-card";
7
+ export default function OAuthCallback() {
8
+ const app = useStackApp();
9
+ const called = useRef(false);
10
+ useEffect(() => runAsynchronously(async () => {
11
+ if (called.current)
12
+ return;
13
+ called.current = true;
14
+ await app.callOAuthCallback();
15
+ }), []);
16
+ return _jsx(MessageCard, { title: 'Redirecting...', fullPage: true });
17
+ }
@@ -2,3 +2,4 @@ export default function PasswordReset({ searchParams, fullPage, }: {
2
2
  searchParams?: Record<string, string>;
3
3
  fullPage?: boolean;
4
4
  }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=password-reset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"password-reset.d.ts","sourceRoot":"","sources":["../../src/components-page/password-reset.tsx"],"names":[],"mappings":"AAcA,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,YAAY,EACZ,QAAgB,GACjB,EAAE;IACD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,2CA0CA"}
@@ -0,0 +1,37 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import MessageCard from "../components/message-card";
4
+ import { useStackApp } from "..";
5
+ import { use } from "react";
6
+ import PasswordResetInner from "../components/password-reset-inner";
7
+ import { PasswordResetLinkExpiredErrorCode, PasswordResetLinkInvalidErrorCode, PasswordResetLinkUsedErrorCode } from "@stackframe/stack-shared/dist/utils/types";
8
+ import { cacheFunction } from "@stackframe/stack-shared/dist/utils/caches";
9
+ import { Text } from "../components-core";
10
+ const cachedVerifyPasswordResetCode = cacheFunction(async (stackApp, code) => {
11
+ return await stackApp.verifyPasswordResetCode(code);
12
+ });
13
+ export default function PasswordReset({ searchParams, fullPage = false, }) {
14
+ const stackApp = useStackApp();
15
+ const invalidJsx = (_jsx(MessageCard, { title: "Invalid Password Reset Link", fullPage: fullPage, children: _jsx(Text, { children: "Please double check if you have the correct password reset link." }) }));
16
+ const expiredJsx = (_jsx(MessageCard, { title: "Expired Password Reset Link", fullPage: fullPage, children: _jsx(Text, { children: "Your password reset link has expired. Please request a new password reset link from the login page." }) }));
17
+ const usedJsx = (_jsx(MessageCard, { title: "Used Password Reset Link", fullPage: fullPage, children: _jsx(Text, { children: "This password reset link has already been used. If you need to reset your password again, please request a new password reset link from the login page." }) }));
18
+ const code = searchParams?.code;
19
+ if (!code) {
20
+ return invalidJsx;
21
+ }
22
+ const errorCode = use(cachedVerifyPasswordResetCode(stackApp, code));
23
+ switch (errorCode) {
24
+ case PasswordResetLinkInvalidErrorCode: {
25
+ return invalidJsx;
26
+ }
27
+ case PasswordResetLinkExpiredErrorCode: {
28
+ return expiredJsx;
29
+ }
30
+ case PasswordResetLinkUsedErrorCode: {
31
+ return usedJsx;
32
+ }
33
+ case undefined: {
34
+ return _jsx(PasswordResetInner, { code: code, fullPage: fullPage });
35
+ }
36
+ }
37
+ }
@@ -1,3 +1,4 @@
1
1
  export default function SignIn({ fullPage }: {
2
2
  fullPage?: boolean;
3
3
  }): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=sign-in.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign-in.d.ts","sourceRoot":"","sources":["../../src/components-page/sign-in.tsx"],"names":[],"mappings":"AAWA,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,QAAc,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,2CA0BxE"}
@@ -0,0 +1,20 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import CredentialSignIn from '../components/credential-sign-in';
4
+ import DividerWithText from '../components/divider-with-text';
5
+ import OAuthGroup from '../components/oauth-group';
6
+ import CardFrame from '../components/card-frame';
7
+ import CardHeader from '../components/card-header';
8
+ import { useUser, useStackApp } from '..';
9
+ import RedirectMessageCard from '../components/redirect-message-card';
10
+ import { Link, Text } from "../components-core";
11
+ export default function SignIn({ fullPage = false }) {
12
+ const stackApp = useStackApp();
13
+ const user = useUser();
14
+ const project = stackApp.useProject();
15
+ if (user) {
16
+ return _jsx(RedirectMessageCard, { type: 'signedIn', fullPage: fullPage });
17
+ }
18
+ const enableDivider = project.credentialEnabled && project.oauthProviders.filter(p => p.enabled).length > 0;
19
+ return (_jsxs(CardFrame, { fullPage: fullPage, children: [_jsx(CardHeader, { title: "Sign In to Your Account", children: _jsxs(Text, { children: ["Don't have an account? ", _jsx(Link, { href: stackApp.urls['signUp'], children: "Sign up" })] }) }), _jsx(OAuthGroup, { type: 'signin' }), enableDivider && _jsx(DividerWithText, { text: 'OR' }), project.credentialEnabled && _jsx(CredentialSignIn, {})] }));
20
+ }
@@ -1 +1,2 @@
1
1
  export default function Signout(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=sign-out.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign-out.d.ts","sourceRoot":"","sources":["../../src/components-page/sign-out.tsx"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,UAAU,OAAO,4CAS9B"}
@@ -0,0 +1,13 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { use } from "react";
4
+ import { useStackApp, useUser } from "..";
5
+ import GoHomeMessageCard from "../components/redirect-message-card";
6
+ export default function Signout() {
7
+ const user = useUser();
8
+ const app = useStackApp();
9
+ if (user) {
10
+ use(user.signOut());
11
+ }
12
+ return _jsx(GoHomeMessageCard, { type: 'signedOut', fullPage: true });
13
+ }
@@ -1,3 +1,4 @@
1
1
  export default function SignUp({ fullPage }: {
2
2
  fullPage?: boolean;
3
3
  }): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=sign-up.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign-up.d.ts","sourceRoot":"","sources":["../../src/components-page/sign-up.tsx"],"names":[],"mappings":"AAWA,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,QAAc,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,2CA0BxE"}
@@ -0,0 +1,20 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import DividerWithText from '../components/divider-with-text';
4
+ import OAuthGroup from '../components/oauth-group';
5
+ import CardFrame from '../components/card-frame';
6
+ import CredentialSignUp from '../components/credential-sign-up';
7
+ import CardHeader from '../components/card-header';
8
+ import { useUser, useStackApp } from '..';
9
+ import RedirectMessageCard from '../components/redirect-message-card';
10
+ import { Link, Text } from "../components-core";
11
+ export default function SignUp({ fullPage = false }) {
12
+ const stackApp = useStackApp();
13
+ const user = useUser();
14
+ const project = stackApp.useProject();
15
+ if (user) {
16
+ return _jsx(RedirectMessageCard, { type: 'signedIn', fullPage: fullPage });
17
+ }
18
+ const enableDivider = project.credentialEnabled && project.oauthProviders.filter(p => p.enabled).length > 0;
19
+ return (_jsxs(CardFrame, { fullPage: fullPage, children: [_jsx(CardHeader, { title: "Create a New Account", children: _jsxs(Text, { children: ["Already have an account? ", _jsx(Link, { href: stackApp.urls['signIn'], children: "Sign in" })] }) }), _jsx(OAuthGroup, { type: 'signup' }), enableDivider && _jsx(DividerWithText, { text: 'OR' }), project.credentialEnabled && _jsx(CredentialSignUp, {})] }));
20
+ }
@@ -6,3 +6,4 @@ export default function StackHandler<HasTokenStore extends boolean>({ app, param
6
6
  };
7
7
  searchParams?: Record<string, string>;
8
8
  }): Promise<import("react/jsx-runtime").JSX.Element>;
9
+ //# sourceMappingURL=stack-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-handler.d.ts","sourceRoot":"","sources":["../../src/components-page/stack-handler.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,cAAc,EAAE,MAAM,IAAI,CAAC;AAOnD,wBAA8B,YAAY,CAAC,aAAa,SAAS,OAAO,EAAE,EACxE,GAAG,EACH,MAAM,EAAE,EAAE,KAAK,EAAO,EACtB,YAAiB,GAClB,EAAE;IACD,GAAG,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC,oDAuDA"}
@@ -0,0 +1,58 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import SignUp from "./sign-up";
3
+ import SignIn from "./sign-in";
4
+ import { RedirectType, notFound, redirect } from 'next/navigation';
5
+ import EmailVerification from "./email-verification";
6
+ import { PasswordReset } from "..";
7
+ import MessageCard from "../components/message-card";
8
+ import Signout from "./sign-out";
9
+ import ForgotPassword from "./forgot-password";
10
+ import OAuthCallback from "./oauth-callback";
11
+ export default async function StackHandler({ app, params: { stack } = {}, searchParams = {}, }) {
12
+ if (!stack) {
13
+ return (_jsx(MessageCard, { title: "Invalid Stack Handler Setup", fullPage: true, children: _jsx("p", { children: "Can't use Stack handler at this location. Make sure that the file is in a folder called [...stack]." }) }));
14
+ }
15
+ function redirectIfNotHandler(name) {
16
+ const url = app.urls[name];
17
+ const handlerUrl = app.urls.handler;
18
+ if (url.startsWith(handlerUrl)) {
19
+ // don't redirect if the url is a handler url
20
+ return;
21
+ }
22
+ redirect(url, RedirectType.replace);
23
+ }
24
+ const path = stack.join('/');
25
+ switch (path) {
26
+ case 'signin': {
27
+ redirectIfNotHandler('signIn');
28
+ return _jsx(SignIn, { fullPage: true });
29
+ }
30
+ case 'signup': {
31
+ redirectIfNotHandler('signUp');
32
+ return _jsx(SignUp, { fullPage: true });
33
+ }
34
+ case 'email-verification': {
35
+ redirectIfNotHandler('emailVerification');
36
+ return _jsx(EmailVerification, { searchParams: searchParams, fullPage: true });
37
+ }
38
+ case 'password-reset': {
39
+ redirectIfNotHandler('passwordReset');
40
+ return _jsx(PasswordReset, { searchParams: searchParams, fullPage: true });
41
+ }
42
+ case 'forgot-password': {
43
+ redirectIfNotHandler('forgotPassword');
44
+ return _jsx(ForgotPassword, { fullPage: true });
45
+ }
46
+ case 'signout': {
47
+ redirectIfNotHandler('signOut');
48
+ return _jsx(Signout, {});
49
+ }
50
+ case 'oauth-callback': {
51
+ redirectIfNotHandler('oauthCallback');
52
+ return _jsx(OAuthCallback, {});
53
+ }
54
+ default: {
55
+ return notFound();
56
+ }
57
+ }
58
+ }
@@ -0,0 +1,7 @@
1
+ /// <reference types="react/experimental" />
2
+ import React from "react";
3
+ export default function CardFrame({ children, fullPage }: {
4
+ children: React.ReactNode;
5
+ fullPage?: boolean;
6
+ }): string | number | boolean | Iterable<React.ReactNode> | Promise<React.AwaitedReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
7
+ //# sourceMappingURL=card-frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card-frame.d.ts","sourceRoot":"","sources":["../../src/elements/card-frame.tsx"],"names":[],"mappings":";AAGA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,QAAQ,EACR,QAAa,EACd,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,wJA4BA"}
@@ -0,0 +1,24 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Container } from "@stackframe/stack-ui";
4
+ import { useEffect, useState } from "react";
5
+ export default function CardFrame({ children, fullPage = true }) {
6
+ const [hasNoParent, setHasNoParent] = useState(false);
7
+ useEffect(() => {
8
+ const component = document.getElementById('stack-card-frame');
9
+ setHasNoParent(!component?.parentElement ||
10
+ component?.parentElement === document.body ||
11
+ component?.parentElement === document.documentElement);
12
+ }, []);
13
+ if (fullPage) {
14
+ return (_jsx("div", { id: 'stack-card-frame', style: {
15
+ height: hasNoParent ? '100vh' : '100%',
16
+ display: 'flex',
17
+ alignItems: 'center',
18
+ justifyContent: 'center'
19
+ }, children: _jsx(Container, { size: 360, children: children }) }));
20
+ }
21
+ else {
22
+ return children;
23
+ }
24
+ }
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ export default function CardHeader({ children, title }: {
3
+ children?: React.ReactNode;
4
+ title: string;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=card-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card-header.d.ts","sourceRoot":"","sources":["../../src/elements/card-header.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,EAAE,QAAQ,EAAE,KAAK,EAAE,EACnB;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,2CAQ9C"}
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Text } from "@stackframe/stack-ui";
3
+ export default function CardHeader({ children, title }) {
4
+ return (_jsxs("div", { style: { textAlign: 'center', marginBottom: '24px' }, children: [_jsx(Text, { size: "xl", as: 'h2', style: { marginBottom: '5px' }, children: title }), children] }));
5
+ }
@@ -0,0 +1,2 @@
1
+ export default function CredentialSignIn(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=credential-sign-in.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-sign-in.d.ts","sourceRoot":"","sources":["../../src/elements/credential-sign-in.tsx"],"names":[],"mappings":"AAUA,MAAM,CAAC,OAAO,UAAU,gBAAgB,4CAkFvC"}
@@ -1,13 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from "react";
3
- import { FormWarningText } from "./FormWarning";
4
- import { PasswordField } from "./PasswordField";
3
+ import { FormWarningText } from "./form-warning";
4
+ import { PasswordField } from "./password-field";
5
5
  import { validateEmail } from "../utils/email";
6
- import NextLink from "next/link";
7
6
  import { useStackApp } from "..";
8
- import Button from "./Button";
9
7
  import { runAsynchronously } from "@stackframe/stack-shared/dist/utils/promises";
10
8
  import { EmailPasswordMissMatchErrorCode, UserNotExistErrorCode } from "@stackframe/stack-shared/dist/utils/types";
9
+ import { Button, Input, Label, Link } from "@stackframe/stack-ui";
11
10
  // Import or define the PasswordField, FormWarningText, and validateEmail utilities if they're custom components or functions.
12
11
  export default function CredentialSignIn() {
13
12
  const [email, setEmail] = useState('');
@@ -47,11 +46,11 @@ export default function CredentialSignIn() {
47
46
  }
48
47
  }
49
48
  };
50
- return (_jsxs("div", { className: "wl_flex wl_flex-col wl_space-y-2 wl_items-stretch", children: [_jsxs("div", { className: "wl_form-control", children: [_jsx("label", { className: "wl_label", htmlFor: "email", children: _jsx("span", { className: "wl_label-text", children: "Email" }) }), _jsx("input", { id: "email", type: "email", name: "email", className: "wl_input wl_input-bordered", value: email, onChange: (e) => {
51
- setEmail(e.target.value);
52
- setEmailError('');
53
- } }), _jsx(FormWarningText, { text: emailError })] }), _jsxs("div", { className: "wl_form-control", children: [_jsx("label", { className: "wl_label", htmlFor: "password", children: _jsx("span", { className: "wl_label-text", children: "Password" }) }), _jsx(PasswordField, { id: "password", name: "password", value: password, onChange: (e) => {
54
- setPassword(e.target.value);
55
- setPasswordError('');
56
- } }), _jsx(FormWarningText, { text: passwordError })] }), _jsx("div", { className: "wl_flex wl_items-center wl_justify-between", children: _jsx(NextLink, { href: app.urls.forgotPassword, className: "wl_text-sm wl_text-blue-500 wl_no-underline wl_hover:wl_underline", children: "Forgot password?" }) }), _jsx("div", { className: "wl_flex wl_flex-col wl_items-stretch", children: _jsx(Button, { className: "wl_btn-primary wl_mt-6", onClick: () => runAsynchronously(onSubmit), loading: loading, children: "Sign In" }) })] }));
49
+ 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) => {
50
+ setEmail(e.target.value);
51
+ setEmailError('');
52
+ } }), _jsx(FormWarningText, { text: emailError }), _jsx(Label, { htmlFor: "password", style: { marginTop: '1rem' }, children: "Password" }), _jsx(PasswordField, { id: "password", name: "password", value: password, onChange: (e) => {
53
+ setPassword(e.target.value);
54
+ setPasswordError('');
55
+ } }), _jsx(FormWarningText, { text: passwordError }), _jsx(Link, { href: app.urls.forgotPassword, size: 'sm', style: { marginTop: '0.5rem' }, children: "Forgot password?" }), _jsx(Button, { style: { marginTop: '1.5rem' }, onClick: () => runAsynchronously(onSubmit), loading: loading, children: "Sign In" })] }));
57
56
  }
@@ -0,0 +1,2 @@
1
+ export default function CredentialSignUp(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=credential-sign-up.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-sign-up.d.ts","sourceRoot":"","sources":["../../src/elements/credential-sign-up.tsx"],"names":[],"mappings":"AAYA,MAAM,CAAC,OAAO,UAAU,gBAAgB,4CAwGvC"}
@@ -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"}