@stackframe/stack 2.3.5 → 2.3.7

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 (261) hide show
  1. package/dist/components/card-frame.d.mts +9 -0
  2. package/dist/components/card-frame.d.ts +8 -5
  3. package/dist/components/card-frame.js +58 -23
  4. package/dist/components/credential-sign-in.d.mts +5 -0
  5. package/dist/components/credential-sign-in.d.ts +5 -1
  6. package/dist/components/credential-sign-in.js +109 -41
  7. package/dist/components/credential-sign-up.d.mts +5 -0
  8. package/dist/components/credential-sign-up.d.ts +5 -1
  9. package/dist/components/credential-sign-up.js +140 -62
  10. package/dist/components/forgot-password.d.mts +7 -0
  11. package/dist/components/forgot-password.d.ts +6 -2
  12. package/dist/components/forgot-password.js +83 -26
  13. package/dist/components/form-warning.d.mts +7 -0
  14. package/dist/components/form-warning.d.ts +6 -2
  15. package/dist/components/form-warning.js +34 -8
  16. package/dist/components/magic-link-sign-in.d.mts +5 -0
  17. package/dist/components/magic-link-sign-in.d.ts +5 -1
  18. package/dist/components/magic-link-sign-in.js +89 -31
  19. package/dist/components/message-card.d.mts +10 -0
  20. package/dist/components/message-card.d.ts +8 -4
  21. package/dist/components/message-card.js +45 -6
  22. package/dist/components/oauth-button.d.mts +8 -0
  23. package/dist/components/oauth-button.d.ts +6 -2
  24. package/dist/components/oauth-button.js +142 -63
  25. package/dist/components/oauth-group.d.mts +7 -0
  26. package/dist/components/oauth-group.d.ts +6 -2
  27. package/dist/components/oauth-group.js +46 -8
  28. package/dist/components/password-field.d.mts +5 -0
  29. package/dist/components/password-field.d.ts +5 -3
  30. package/dist/components/password-field.js +111 -41
  31. package/dist/components/password-reset-inner.d.mts +8 -0
  32. package/dist/components/password-reset-inner.d.ts +6 -2
  33. package/dist/components/password-reset-inner.js +120 -58
  34. package/dist/components/redirect-message-card.d.mts +8 -0
  35. package/dist/components/redirect-message-card.d.ts +6 -2
  36. package/dist/components/redirect-message-card.js +110 -58
  37. package/dist/components/separator-with-text.d.mts +7 -0
  38. package/dist/components/separator-with-text.d.ts +6 -2
  39. package/dist/components/separator-with-text.js +35 -5
  40. package/dist/components/user-avatar.d.mts +13 -0
  41. package/dist/components/user-avatar.d.ts +11 -3
  42. package/dist/components/user-avatar.js +34 -6
  43. package/dist/components/user-button.d.mts +15 -0
  44. package/dist/components/user-button.d.ts +12 -3
  45. package/dist/components/user-button.js +156 -26
  46. package/dist/components-core/avatar.d.mts +8 -0
  47. package/dist/components-core/avatar.d.ts +7 -5
  48. package/dist/components-core/avatar.js +73 -18
  49. package/dist/components-core/button.d.mts +12 -0
  50. package/dist/components-core/button.d.ts +8 -6
  51. package/dist/components-core/button.js +177 -113
  52. package/dist/components-core/card.d.mts +8 -0
  53. package/dist/components-core/card.d.ts +4 -2
  54. package/dist/components-core/card.js +73 -22
  55. package/dist/components-core/collapsible.d.mts +8 -0
  56. package/dist/components-core/collapsible.d.ts +8 -6
  57. package/dist/components-core/collapsible.js +48 -5
  58. package/dist/components-core/container.d.mts +8 -0
  59. package/dist/components-core/container.d.ts +5 -3
  60. package/dist/components-core/container.js +61 -11
  61. package/dist/components-core/dropdown.d.mts +15 -0
  62. package/dist/components-core/dropdown.d.ts +10 -8
  63. package/dist/components-core/dropdown.js +108 -36
  64. package/dist/components-core/index.d.mts +59 -0
  65. package/dist/components-core/index.d.ts +51 -40
  66. package/dist/components-core/index.js +144 -46
  67. package/dist/components-core/input.d.mts +6 -0
  68. package/dist/components-core/input.d.ts +5 -3
  69. package/dist/components-core/input.js +97 -28
  70. package/dist/components-core/label.d.mts +6 -0
  71. package/dist/components-core/label.d.ts +5 -3
  72. package/dist/components-core/label.js +65 -15
  73. package/dist/components-core/link.d.mts +10 -0
  74. package/dist/components-core/link.d.ts +7 -6
  75. package/dist/components-core/link.js +72 -18
  76. package/dist/components-core/loading-indicator.d.mts +13 -0
  77. package/dist/components-core/loading-indicator.d.ts +11 -4
  78. package/dist/components-core/loading-indicator.js +46 -6
  79. package/dist/components-core/popover.d.mts +8 -0
  80. package/dist/components-core/popover.d.ts +8 -6
  81. package/dist/components-core/popover.js +72 -16
  82. package/dist/components-core/separator.d.mts +6 -0
  83. package/dist/components-core/separator.d.ts +5 -3
  84. package/dist/components-core/separator.js +66 -16
  85. package/dist/components-core/skeleton.d.mts +7 -0
  86. package/dist/components-core/skeleton.d.ts +5 -3
  87. package/dist/components-core/skeleton.js +75 -21
  88. package/dist/components-core/tabs.d.mts +9 -0
  89. package/dist/components-core/tabs.d.ts +8 -6
  90. package/dist/components-core/tabs.js +87 -20
  91. package/dist/components-core/text.d.mts +10 -0
  92. package/dist/components-core/text.d.ts +5 -3
  93. package/dist/components-core/text.js +95 -40
  94. package/dist/components-core-joy/button.d.mts +6 -0
  95. package/dist/components-core-joy/button.d.ts +6 -2
  96. package/dist/components-core-joy/button.js +86 -28
  97. package/dist/components-core-joy/input.d.mts +5 -0
  98. package/dist/components-core-joy/input.d.ts +5 -2
  99. package/dist/components-core-joy/input.js +51 -6
  100. package/dist/components-core-joy/separator.d.mts +6 -0
  101. package/dist/components-core-joy/separator.d.ts +6 -2
  102. package/dist/components-core-joy/separator.js +50 -6
  103. package/dist/components-core-joy/tabs.d.mts +9 -0
  104. package/dist/components-core-joy/tabs.d.ts +9 -5
  105. package/dist/components-core-joy/tabs.js +62 -16
  106. package/dist/components-core-joy/text.d.mts +9 -0
  107. package/dist/components-core-joy/text.d.ts +6 -3
  108. package/dist/components-core-joy/text.js +68 -28
  109. package/dist/components-page/account-settings.d.mts +7 -0
  110. package/dist/components-page/account-settings.d.ts +6 -2
  111. package/dist/components-page/account-settings.js +213 -81
  112. package/dist/components-page/auth-page.d.mts +8 -0
  113. package/dist/components-page/auth-page.d.ts +6 -2
  114. package/dist/components-page/auth-page.js +79 -19
  115. package/dist/components-page/email-verification.d.mts +8 -0
  116. package/dist/components-page/email-verification.d.ts +6 -2
  117. package/dist/components-page/email-verification.js +65 -28
  118. package/dist/components-page/forgot-password.d.mts +7 -0
  119. package/dist/components-page/forgot-password.d.ts +6 -2
  120. package/dist/components-page/forgot-password.js +64 -20
  121. package/dist/components-page/magic-link-callback.d.mts +8 -0
  122. package/dist/components-page/magic-link-callback.d.ts +6 -2
  123. package/dist/components-page/magic-link-callback.js +72 -34
  124. package/dist/components-page/oauth-callback.d.mts +5 -0
  125. package/dist/components-page/oauth-callback.d.ts +5 -1
  126. package/dist/components-page/oauth-callback.js +52 -16
  127. package/dist/components-page/password-reset.d.mts +8 -0
  128. package/dist/components-page/password-reset.d.ts +6 -2
  129. package/dist/components-page/password-reset.js +70 -34
  130. package/dist/components-page/sign-in.d.mts +7 -0
  131. package/dist/components-page/sign-in.d.ts +6 -2
  132. package/dist/components-page/sign-in.js +41 -5
  133. package/dist/components-page/sign-out.d.mts +5 -0
  134. package/dist/components-page/sign-out.d.ts +5 -1
  135. package/dist/components-page/sign-out.js +47 -11
  136. package/dist/components-page/sign-up.d.mts +7 -0
  137. package/dist/components-page/sign-up.d.ts +6 -2
  138. package/dist/components-page/sign-up.js +41 -5
  139. package/dist/components-page/stack-handler.d.mts +16 -0
  140. package/dist/components-page/stack-handler.d.ts +11 -3
  141. package/dist/components-page/stack-handler.js +102 -64
  142. package/dist/esm/components/card-frame.js +39 -0
  143. package/dist/esm/components/credential-sign-in.js +82 -0
  144. package/dist/esm/components/credential-sign-up.js +114 -0
  145. package/dist/esm/components/forgot-password.js +55 -0
  146. package/dist/esm/components/form-warning.js +15 -0
  147. package/dist/esm/components/magic-link-sign-in.js +61 -0
  148. package/dist/esm/components/message-card.js +16 -0
  149. package/dist/esm/components/oauth-button.js +124 -0
  150. package/dist/esm/components/oauth-group.js +17 -0
  151. package/dist/esm/components/password-field.js +82 -0
  152. package/dist/esm/components/password-reset-inner.js +93 -0
  153. package/dist/esm/components/redirect-message-card.js +83 -0
  154. package/dist/esm/components/separator-with-text.js +16 -0
  155. package/dist/esm/components/user-avatar.js +14 -0
  156. package/dist/esm/components/user-button.js +133 -0
  157. package/dist/esm/components-core/avatar.js +56 -0
  158. package/dist/esm/components-core/button.js +165 -0
  159. package/dist/esm/components-core/card.js +51 -0
  160. package/dist/esm/components-core/collapsible.js +13 -0
  161. package/dist/esm/components-core/container.js +35 -0
  162. package/dist/esm/components-core/dropdown.js +106 -0
  163. package/dist/esm/components-core/index.js +93 -0
  164. package/dist/esm/components-core/input.js +80 -0
  165. package/dist/esm/components-core/label.js +38 -0
  166. package/dist/esm/components-core/link.js +38 -0
  167. package/dist/esm/components-core/loading-indicator.js +27 -0
  168. package/dist/esm/components-core/popover.js +43 -0
  169. package/dist/esm/components-core/separator.js +36 -0
  170. package/dist/esm/components-core/skeleton.js +52 -0
  171. package/dist/esm/components-core/tabs.js +79 -0
  172. package/dist/esm/components-core/text.js +63 -0
  173. package/dist/esm/components-core-joy/button.js +53 -0
  174. package/dist/esm/components-core-joy/input.js +18 -0
  175. package/dist/esm/components-core-joy/separator.js +17 -0
  176. package/dist/esm/components-core-joy/tabs.js +29 -0
  177. package/dist/esm/components-core-joy/text.js +35 -0
  178. package/dist/esm/components-page/account-settings.js +197 -0
  179. package/dist/esm/components-page/auth-page.js +50 -0
  180. package/dist/esm/components-page/email-verification.js +36 -0
  181. package/dist/esm/components-page/forgot-password.js +35 -0
  182. package/dist/esm/components-page/magic-link-callback.js +43 -0
  183. package/dist/esm/components-page/oauth-callback.js +23 -0
  184. package/dist/esm/components-page/password-reset.js +42 -0
  185. package/dist/esm/components-page/sign-in.js +12 -0
  186. package/dist/esm/components-page/sign-out.js +18 -0
  187. package/dist/esm/components-page/sign-up.js +12 -0
  188. package/dist/esm/components-page/stack-handler.js +75 -0
  189. package/dist/esm/index.js +47 -0
  190. package/dist/esm/joy.js +5 -0
  191. package/dist/esm/lib/auth.js +62 -0
  192. package/dist/esm/lib/cookie.js +185 -0
  193. package/dist/esm/lib/hooks.js +29 -0
  194. package/dist/esm/lib/stack-app.js +940 -0
  195. package/dist/esm/providers/component-provider.js +76 -0
  196. package/dist/esm/providers/design-provider.js +36 -0
  197. package/dist/esm/providers/joy-provider.js +35 -0
  198. package/dist/esm/providers/stack-provider-client.js +31 -0
  199. package/dist/esm/providers/stack-provider.js +21 -0
  200. package/dist/esm/providers/styled-components-registry.js +24 -0
  201. package/dist/esm/providers/theme-provider.js +22 -0
  202. package/dist/esm/utils/browser-script.js +25 -0
  203. package/dist/esm/utils/constants.js +34 -0
  204. package/dist/esm/utils/email.js +10 -0
  205. package/dist/esm/utils/next.js +7 -0
  206. package/dist/esm/utils/url.js +21 -0
  207. package/dist/index.d.mts +37 -0
  208. package/dist/index.d.ts +37 -22
  209. package/dist/index.js +106 -21
  210. package/dist/joy.d.mts +16 -0
  211. package/dist/joy.d.ts +16 -1
  212. package/dist/joy.js +30 -1
  213. package/dist/lib/auth.d.mts +11 -0
  214. package/dist/lib/auth.d.ts +8 -4
  215. package/dist/lib/auth.js +83 -57
  216. package/dist/lib/cookie.d.mts +14 -0
  217. package/dist/lib/cookie.d.ts +8 -6
  218. package/dist/lib/cookie.js +217 -45
  219. package/dist/lib/hooks.d.mts +35 -0
  220. package/dist/lib/hooks.d.ts +14 -8
  221. package/dist/lib/hooks.js +53 -28
  222. package/dist/lib/stack-app.d.mts +227 -0
  223. package/dist/lib/stack-app.d.ts +43 -41
  224. package/dist/lib/stack-app.js +937 -849
  225. package/dist/providers/component-provider.d.mts +113 -0
  226. package/dist/providers/component-provider.d.ts +95 -77
  227. package/dist/providers/component-provider.js +92 -58
  228. package/dist/providers/design-provider.d.mts +34 -0
  229. package/dist/providers/design-provider.d.ts +16 -21
  230. package/dist/providers/design-provider.js +57 -58
  231. package/dist/providers/joy-provider.d.mts +36 -0
  232. package/dist/providers/joy-provider.d.ts +30 -14
  233. package/dist/providers/joy-provider.js +58 -30
  234. package/dist/providers/stack-provider-client.d.mts +20 -0
  235. package/dist/providers/stack-provider-client.d.ts +15 -8
  236. package/dist/providers/stack-provider-client.js +64 -20
  237. package/dist/providers/stack-provider.d.mts +14 -0
  238. package/dist/providers/stack-provider.d.ts +13 -5
  239. package/dist/providers/stack-provider.js +39 -8
  240. package/dist/providers/styled-components-registry.d.mts +8 -0
  241. package/dist/providers/styled-components-registry.d.ts +8 -4
  242. package/dist/providers/styled-components-registry.js +43 -17
  243. package/dist/providers/theme-provider.d.mts +22 -0
  244. package/dist/providers/theme-provider.d.ts +21 -9
  245. package/dist/providers/theme-provider.js +55 -19
  246. package/dist/utils/browser-script.d.mts +5 -0
  247. package/dist/utils/browser-script.d.ts +5 -0
  248. package/dist/utils/browser-script.js +50 -0
  249. package/dist/utils/constants.d.mts +48 -0
  250. package/dist/utils/constants.d.ts +11 -9
  251. package/dist/utils/constants.js +66 -21
  252. package/dist/utils/email.d.mts +3 -0
  253. package/dist/utils/email.d.ts +3 -1
  254. package/dist/utils/email.js +44 -6
  255. package/dist/utils/next.d.mts +3 -0
  256. package/dist/utils/next.d.ts +3 -1
  257. package/dist/utils/next.js +31 -3
  258. package/dist/utils/url.d.mts +4 -0
  259. package/dist/utils/url.d.ts +4 -2
  260. package/dist/utils/url.js +44 -13
  261. package/package.json +19 -10
@@ -1,42 +1,112 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { Input } from "../components-core";
4
- import { forwardRef, useRef, useState } from 'react';
5
- import { HiEye, HiEyeOff } from 'react-icons/hi';
6
- import { useDesign } from "..";
7
- const PasswordField = forwardRef(({ id, name, ...props }, ref) => {
8
- const [isOpen, setIsOpen] = useState(false);
9
- const { colors } = useDesign();
10
- const inputRef = useRef(null);
11
- const mergeRef = (node) => {
12
- if (ref) {
13
- if (typeof ref === 'function') {
14
- ref(node);
15
- }
16
- else {
17
- ref.current = node;
18
- }
19
- }
20
- inputRef.current = node;
21
- };
22
- const onClickReveal = () => {
23
- setIsOpen(!isOpen);
24
- const currentInput = inputRef.current;
25
- if (currentInput) {
26
- currentInput.focus({ preventScroll: true });
27
- }
28
- };
29
- 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: {
30
- position: 'absolute',
31
- backgroundColor: 'transparent',
32
- border: 'none',
33
- top: 0,
34
- right: 0,
35
- bottom: 0,
36
- display: 'flex',
37
- alignItems: 'center',
38
- paddingRight: '12px'
39
- }, onClick: onClickReveal, "aria-label": isOpen ? 'Mask password' : 'Reveal password', children: isOpen ? _jsx(HiEyeOff, { color: colors.secondaryColor }) : _jsx(HiEye, { color: colors.secondaryColor }) })] }));
1
+ "use client";
2
+ "use strict";
3
+ "use client";
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __export = (target, all) => {
11
+ for (var name in all)
12
+ __defProp(target, name, { get: all[name], enumerable: true });
13
+ };
14
+ var __copyProps = (to, from, except, desc) => {
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from))
17
+ if (!__hasOwnProp.call(to, key) && key !== except)
18
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
19
+ }
20
+ return to;
21
+ };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
28
+ mod
29
+ ));
30
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
31
+
32
+ // src/components/password-field.tsx
33
+ var password_field_exports = {};
34
+ __export(password_field_exports, {
35
+ default: () => password_field_default
40
36
  });
41
- PasswordField.displayName = 'PasswordField';
42
- export default PasswordField;
37
+ module.exports = __toCommonJS(password_field_exports);
38
+ var import_components_core = require("../components-core");
39
+ var import_react = require("react");
40
+ var import_hi = require("react-icons/hi");
41
+ var import__ = require("..");
42
+ var import_styled_components = __toESM(require("styled-components"));
43
+ var import_jsx_runtime = require("react/jsx-runtime");
44
+ var getIconStyle = (colors) => `
45
+ color: ${colors.light.secondaryColor};
46
+
47
+ html[data-theme='dark'] & {
48
+ color: ${colors.dark.secondaryColor};
49
+ }
50
+ `;
51
+ var StyledEyeOff = (0, import_styled_components.default)(import_hi.HiEyeOff)`${(props) => getIconStyle(props.colors)}`;
52
+ var StyledEye = (0, import_styled_components.default)(import_hi.HiEye)`${(props) => getIconStyle(props.colors)}`;
53
+ var PasswordField = (0, import_react.forwardRef)(({ id, name, ...props }, ref) => {
54
+ const [isOpen, setIsOpen] = (0, import_react.useState)(false);
55
+ const { colors } = (0, import__.useDesign)();
56
+ const inputRef = (0, import_react.useRef)(null);
57
+ const mergeRef = (node) => {
58
+ if (ref) {
59
+ if (typeof ref === "function") {
60
+ ref(node);
61
+ } else {
62
+ ref.current = node;
63
+ }
64
+ }
65
+ inputRef.current = node;
66
+ };
67
+ const onClickReveal = () => {
68
+ setIsOpen(!isOpen);
69
+ const currentInput = inputRef.current;
70
+ if (currentInput) {
71
+ currentInput.focus({ preventScroll: true });
72
+ }
73
+ };
74
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { position: "relative", display: "flex" }, children: [
75
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
76
+ import_components_core.Input,
77
+ {
78
+ id,
79
+ ref: mergeRef,
80
+ name,
81
+ type: isOpen ? "text" : "password",
82
+ autoComplete: "current-password",
83
+ required: true,
84
+ style: { flex: 1 },
85
+ ...props
86
+ }
87
+ ),
88
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
89
+ "button",
90
+ {
91
+ tabIndex: -1,
92
+ type: "button",
93
+ style: {
94
+ position: "absolute",
95
+ backgroundColor: "transparent",
96
+ border: "none",
97
+ top: 0,
98
+ right: 0,
99
+ bottom: 0,
100
+ display: "flex",
101
+ alignItems: "center",
102
+ paddingRight: "12px"
103
+ },
104
+ onClick: onClickReveal,
105
+ "aria-label": isOpen ? "Mask password" : "Reveal password",
106
+ children: isOpen ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledEyeOff, { colors }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledEye, { colors })
107
+ }
108
+ )
109
+ ] });
110
+ });
111
+ PasswordField.displayName = "PasswordField";
112
+ var password_field_default = PasswordField;
@@ -0,0 +1,8 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function PasswordResetInner({ code, fullPage }: {
4
+ code: string;
5
+ fullPage?: boolean;
6
+ }): react_jsx_runtime.JSX.Element;
7
+
8
+ export { PasswordResetInner as default };
@@ -1,4 +1,8 @@
1
- export default function PasswordResetInner({ code, fullPage }: {
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function PasswordResetInner({ code, fullPage }: {
2
4
  code: string;
3
5
  fullPage?: boolean;
4
- }): import("react/jsx-runtime").JSX.Element;
6
+ }): react_jsx_runtime.JSX.Element;
7
+
8
+ export { PasswordResetInner as default };
@@ -1,61 +1,123 @@
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 { Button, Label, Text } from "../components-core";
12
- export default function PasswordResetInner({ code, fullPage = false }) {
13
- const [password, setPassword] = useState('');
14
- const [passwordError, setPasswordError] = useState('');
15
- const [passwordRepeat, setPasswordRepeat] = useState('');
16
- const [passwordRepeatError, setPasswordRepeatError] = useState('');
17
- const [finished, setFinished] = useState(false);
18
- const [resetError, setResetError] = useState(false);
19
- const stackApp = useStackApp();
20
- const onSubmit = async () => {
21
- if (!password) {
22
- setPasswordError('Please enter your password');
23
- return;
24
- }
25
- if (!passwordRepeat) {
26
- setPasswordRepeatError('Please repeat your password');
27
- return;
28
- }
29
- if (password !== passwordRepeat) {
30
- setPasswordRepeatError('Passwords do not match');
31
- return;
32
- }
33
- const passwordError = getPasswordError(password);
34
- if (passwordError) {
35
- setPasswordError(passwordError.message);
36
- return;
37
- }
38
- const errorCode = await stackApp.resetPassword({ password, code });
39
- // this should not happen, the outer component should verify the code before rendering this component
40
- if (errorCode) {
41
- setResetError(true);
42
- return;
43
- }
44
- setFinished(true);
45
- };
46
- if (finished) {
47
- return _jsx(RedirectMessageCard, { type: 'passwordReset', fullPage: fullPage });
1
+ "use client";
2
+ "use strict";
3
+ "use client";
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __export = (target, all) => {
11
+ for (var name in all)
12
+ __defProp(target, name, { get: all[name], enumerable: true });
13
+ };
14
+ var __copyProps = (to, from, except, desc) => {
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from))
17
+ if (!__hasOwnProp.call(to, key) && key !== except)
18
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
19
+ }
20
+ return to;
21
+ };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
28
+ mod
29
+ ));
30
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
31
+
32
+ // src/components/password-reset-inner.tsx
33
+ var password_reset_inner_exports = {};
34
+ __export(password_reset_inner_exports, {
35
+ default: () => PasswordResetInner
36
+ });
37
+ module.exports = __toCommonJS(password_reset_inner_exports);
38
+ var import_react = require("react");
39
+ var import_password = require("@stackframe/stack-shared/dist/helpers/password");
40
+ var import__ = require("..");
41
+ var import_password_field = __toESM(require("./password-field"));
42
+ var import_form_warning = __toESM(require("./form-warning"));
43
+ var import_redirect_message_card = __toESM(require("./redirect-message-card"));
44
+ var import_message_card = __toESM(require("./message-card"));
45
+ var import_card_frame = __toESM(require("./card-frame"));
46
+ var import_components_core = require("../components-core");
47
+ var import_jsx_runtime = require("react/jsx-runtime");
48
+ function PasswordResetInner({ code, fullPage = false }) {
49
+ const [password, setPassword] = (0, import_react.useState)("");
50
+ const [passwordError, setPasswordError] = (0, import_react.useState)("");
51
+ const [passwordRepeat, setPasswordRepeat] = (0, import_react.useState)("");
52
+ const [passwordRepeatError, setPasswordRepeatError] = (0, import_react.useState)("");
53
+ const [finished, setFinished] = (0, import_react.useState)(false);
54
+ const [resetError, setResetError] = (0, import_react.useState)(false);
55
+ const stackApp = (0, import__.useStackApp)();
56
+ const onSubmit = async () => {
57
+ if (!password) {
58
+ setPasswordError("Please enter your password");
59
+ return;
48
60
  }
49
- if (resetError) {
50
- 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" }) }));
61
+ if (!passwordRepeat) {
62
+ setPasswordRepeatError("Please repeat your password");
63
+ return;
51
64
  }
52
- return (_jsxs(CardFrame, { fullPage: fullPage, children: [_jsx("div", { style: { textAlign: 'center', marginBottom: '1.5rem' }, children: _jsx(Text, { size: "xl", as: 'h2', children: "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) => {
53
- setPassword(e.target.value);
54
- setPasswordError('');
55
- setPasswordRepeatError('');
56
- } }), _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) => {
57
- setPasswordRepeat(e.target.value);
58
- setPasswordError('');
59
- setPasswordRepeatError('');
60
- } }), _jsx(FormWarningText, { text: passwordRepeatError }), _jsx(Button, { style: { marginTop: '1.5rem' }, onClick: () => onSubmit(), children: "Reset Password" })] })] }));
65
+ if (password !== passwordRepeat) {
66
+ setPasswordRepeatError("Passwords do not match");
67
+ return;
68
+ }
69
+ const passwordError2 = (0, import_password.getPasswordError)(password);
70
+ if (passwordError2) {
71
+ setPasswordError(passwordError2.message);
72
+ return;
73
+ }
74
+ const errorCode = await stackApp.resetPassword({ password, code });
75
+ if (errorCode) {
76
+ setResetError(true);
77
+ return;
78
+ }
79
+ setFinished(true);
80
+ };
81
+ if (finished) {
82
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_redirect_message_card.default, { type: "passwordReset", fullPage });
83
+ }
84
+ if (resetError) {
85
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_message_card.default, { title: "Failed to reset password", fullPage, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components_core.Text, { children: "Failed to reset password. Please request a new password reset link" }) });
86
+ }
87
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_card_frame.default, { fullPage, children: [
88
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { textAlign: "center", marginBottom: "1.5rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components_core.Text, { size: "xl", as: "h2", children: "Reset Your Password" }) }),
89
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", flexDirection: "column", alignItems: "stretch" }, children: [
90
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components_core.Label, { htmlFor: "password", children: "New Password" }),
91
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
92
+ import_password_field.default,
93
+ {
94
+ id: "password",
95
+ name: "password",
96
+ value: password,
97
+ onChange: (e) => {
98
+ setPassword(e.target.value);
99
+ setPasswordError("");
100
+ setPasswordRepeatError("");
101
+ }
102
+ }
103
+ ),
104
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_form_warning.default, { text: passwordError }),
105
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components_core.Label, { htmlFor: "repeat-password", style: { marginTop: "1rem" }, children: "Repeat New Password" }),
106
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
107
+ import_password_field.default,
108
+ {
109
+ id: "repeat-password",
110
+ name: "repeat-password",
111
+ value: passwordRepeat,
112
+ onChange: (e) => {
113
+ setPasswordRepeat(e.target.value);
114
+ setPasswordError("");
115
+ setPasswordRepeatError("");
116
+ }
117
+ }
118
+ ),
119
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_form_warning.default, { text: passwordRepeatError }),
120
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components_core.Button, { style: { marginTop: "1.5rem" }, onClick: () => onSubmit(), children: "Reset Password" })
121
+ ] })
122
+ ] });
61
123
  }
@@ -0,0 +1,8 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function RedirectMessageCard({ type, fullPage, }: {
4
+ type: 'signedIn' | 'signedOut' | 'emailSent' | 'passwordReset' | 'emailVerified';
5
+ fullPage?: boolean;
6
+ }): react_jsx_runtime.JSX.Element;
7
+
8
+ export { RedirectMessageCard as default };
@@ -1,4 +1,8 @@
1
- export default function RedirectMessageCard({ type, fullPage, }: {
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function RedirectMessageCard({ type, fullPage, }: {
2
4
  type: 'signedIn' | 'signedOut' | 'emailSent' | 'passwordReset' | 'emailVerified';
3
5
  fullPage?: boolean;
4
- }): import("react/jsx-runtime").JSX.Element;
6
+ }): react_jsx_runtime.JSX.Element;
7
+
8
+ export { RedirectMessageCard as default };
@@ -1,61 +1,113 @@
1
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 "../components-core";
7
- import { neverResolve } from "@stackframe/stack-shared/dist/utils/promises";
8
- export default function RedirectMessageCard({ type, fullPage = false, }) {
9
- const stackApp = useStackApp();
10
- const router = useRouter();
11
- let title;
12
- let primaryUrl;
13
- let secondaryUrl = null;
14
- let message = null;
15
- let primaryButton;
16
- let secondaryButton = null;
17
- switch (type) {
18
- case 'signedIn': {
19
- title = "You are already signed in";
20
- primaryUrl = stackApp.urls.home;
21
- secondaryUrl = stackApp.urls.signOut;
22
- primaryButton = "Go to Home";
23
- secondaryButton = "Sign Out";
24
- break;
25
- }
26
- case 'signedOut': {
27
- title = "You are not currently signed in.";
28
- primaryUrl = stackApp.urls.home;
29
- primaryButton = "Go to Home";
30
- break;
31
- }
32
- case 'emailSent': {
33
- title = "Email sent!";
34
- message = 'Please check your inbox. Make sure to check your spam folder.';
35
- primaryUrl = stackApp.urls.home;
36
- primaryButton = "Go to Home";
37
- break;
38
- }
39
- case 'passwordReset': {
40
- title = "Password reset successfully!";
41
- message = 'Your password has been reset. You can now sign in with your new password.';
42
- primaryUrl = stackApp.urls.signIn;
43
- primaryButton = "Go to Sign In";
44
- break;
45
- }
46
- case 'emailVerified': {
47
- title = "Email verified!";
48
- message = 'Your have successfully verified your email.';
49
- primaryUrl = stackApp.urls.home;
50
- primaryButton = "Go to Home";
51
- break;
52
- }
2
+ "use strict";
3
+ "use client";
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __export = (target, all) => {
11
+ for (var name in all)
12
+ __defProp(target, name, { get: all[name], enumerable: true });
13
+ };
14
+ var __copyProps = (to, from, except, desc) => {
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from))
17
+ if (!__hasOwnProp.call(to, key) && key !== except)
18
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
19
+ }
20
+ return to;
21
+ };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
28
+ mod
29
+ ));
30
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
31
+
32
+ // src/components/redirect-message-card.tsx
33
+ var redirect_message_card_exports = {};
34
+ __export(redirect_message_card_exports, {
35
+ default: () => RedirectMessageCard
36
+ });
37
+ module.exports = __toCommonJS(redirect_message_card_exports);
38
+ var import_navigation = require("next/navigation");
39
+ var import__ = require("..");
40
+ var import_message_card = __toESM(require("./message-card"));
41
+ var import_components_core = require("../components-core");
42
+ var import_promises = require("@stackframe/stack-shared/dist/utils/promises");
43
+ var import_jsx_runtime = require("react/jsx-runtime");
44
+ function RedirectMessageCard({
45
+ type,
46
+ fullPage = false
47
+ }) {
48
+ const stackApp = (0, import__.useStackApp)();
49
+ const router = (0, import_navigation.useRouter)();
50
+ let title;
51
+ let primaryUrl;
52
+ let secondaryUrl = null;
53
+ let message = null;
54
+ let primaryButton;
55
+ let secondaryButton = null;
56
+ switch (type) {
57
+ case "signedIn": {
58
+ title = "You are already signed in";
59
+ primaryUrl = stackApp.urls.home;
60
+ secondaryUrl = stackApp.urls.signOut;
61
+ primaryButton = "Go to Home";
62
+ secondaryButton = "Sign Out";
63
+ break;
53
64
  }
54
- 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: async () => {
55
- router.push(stackApp.urls.signOut.toString());
56
- await neverResolve();
57
- }, children: secondaryButton })), _jsx(Button, { onClick: async () => {
58
- router.push(primaryUrl.toString());
59
- await neverResolve();
60
- }, children: primaryButton })] })] }));
65
+ case "signedOut": {
66
+ title = "You are not currently signed in.";
67
+ primaryUrl = stackApp.urls.home;
68
+ primaryButton = "Go to Home";
69
+ break;
70
+ }
71
+ case "emailSent": {
72
+ title = "Email sent!";
73
+ message = "Please check your inbox. Make sure to check your spam folder.";
74
+ primaryUrl = stackApp.urls.home;
75
+ primaryButton = "Go to Home";
76
+ break;
77
+ }
78
+ case "passwordReset": {
79
+ title = "Password reset successfully!";
80
+ message = "Your password has been reset. You can now sign in with your new password.";
81
+ primaryUrl = stackApp.urls.signIn;
82
+ primaryButton = "Go to Sign In";
83
+ break;
84
+ }
85
+ case "emailVerified": {
86
+ title = "Email verified!";
87
+ message = "Your have successfully verified your email.";
88
+ primaryUrl = stackApp.urls.home;
89
+ primaryButton = "Go to Home";
90
+ break;
91
+ }
92
+ }
93
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_message_card.default, { title, fullPage, children: [
94
+ message && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components_core.Text, { children: message }),
95
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", flexDirection: "row", alignItems: "center", justifyContent: "center", gap: "16px", marginTop: 20 }, children: [
96
+ secondaryButton && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
97
+ import_components_core.Button,
98
+ {
99
+ variant: "secondary",
100
+ onClick: async () => {
101
+ router.push(stackApp.urls.signOut.toString());
102
+ await (0, import_promises.neverResolve)();
103
+ },
104
+ children: secondaryButton
105
+ }
106
+ ),
107
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components_core.Button, { onClick: async () => {
108
+ router.push(primaryUrl.toString());
109
+ await (0, import_promises.neverResolve)();
110
+ }, children: primaryButton })
111
+ ] })
112
+ ] });
61
113
  }
@@ -0,0 +1,7 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function SeparatorWithText({ text }: {
4
+ text: string;
5
+ }): react_jsx_runtime.JSX.Element;
6
+
7
+ export { SeparatorWithText as default };
@@ -1,3 +1,7 @@
1
- export default function SeparatorWithText({ text }: {
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function SeparatorWithText({ text }: {
2
4
  text: string;
3
- }): import("react/jsx-runtime").JSX.Element;
5
+ }): react_jsx_runtime.JSX.Element;
6
+
7
+ export { SeparatorWithText as default };
@@ -1,6 +1,36 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { Separator, Text } from "../components-core";
4
- export default function SeparatorWithText({ text }) {
5
- return (_jsxs("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'center', marginTop: '1.5rem', marginBottom: '1.5rem' }, children: [_jsx("div", { style: { flex: 1 }, children: _jsx(Separator, {}) }), _jsx(Text, { style: { padding: '0 16px' }, variant: "secondary", size: 'sm', children: text }), _jsx("div", { style: { flex: 1 }, children: _jsx(Separator, {}) })] }));
1
+ "use client";
2
+ "use strict";
3
+ "use client";
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+
22
+ // src/components/separator-with-text.tsx
23
+ var separator_with_text_exports = {};
24
+ __export(separator_with_text_exports, {
25
+ default: () => SeparatorWithText
26
+ });
27
+ module.exports = __toCommonJS(separator_with_text_exports);
28
+ var import_components_core = require("../components-core");
29
+ var import_jsx_runtime = require("react/jsx-runtime");
30
+ function SeparatorWithText({ text }) {
31
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", alignItems: "center", justifyContent: "center", marginTop: "1.5rem", marginBottom: "1.5rem" }, children: [
32
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { flex: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components_core.Separator, {}) }),
33
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components_core.Text, { style: { padding: "0 16px" }, variant: "secondary", size: "sm", children: text }),
34
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { flex: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components_core.Separator, {}) })
35
+ ] });
6
36
  }
@@ -0,0 +1,13 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { User } from '../lib/stack-app.mjs';
3
+ import '@stackframe/stack-shared';
4
+ import '@stackframe/stack-shared/dist/interface/clientInterface';
5
+ import '@stackframe/stack-shared/dist/utils/json';
6
+ import '@stackframe/stack-shared/dist/interface/adminInterface';
7
+
8
+ declare function UserAvatar(props: {
9
+ size?: number;
10
+ user: User | null;
11
+ }): react_jsx_runtime.JSX.Element;
12
+
13
+ export { UserAvatar as default };