@stackframe/stack 2.8.12 → 2.8.17

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 (248) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/components/api-key-dialogs.js +5 -4
  3. package/dist/components/api-key-dialogs.js.map +1 -1
  4. package/dist/components/credential-sign-in.js +4 -4
  5. package/dist/components/credential-sign-up.js +3 -3
  6. package/dist/components/elements/maybe-full-page.js +1 -1
  7. package/dist/components/elements/sidebar-layout.js +1 -1
  8. package/dist/components/magic-link-sign-in.js +3 -3
  9. package/dist/components/message-cards/known-error-message-card.js +2 -2
  10. package/dist/components/message-cards/message-card.js +1 -1
  11. package/dist/components/message-cards/predefined-message-card.js +3 -3
  12. package/dist/components/oauth-button-group.js +2 -2
  13. package/dist/components/oauth-button.js +27 -16
  14. package/dist/components/oauth-button.js.map +1 -1
  15. package/dist/components/passkey-button.js +2 -2
  16. package/dist/components/profile-image-editor.js +87 -34
  17. package/dist/components/profile-image-editor.js.map +1 -1
  18. package/dist/components/selected-team-switcher.js +60 -14
  19. package/dist/components/selected-team-switcher.js.map +1 -1
  20. package/dist/components/team-icon.js +4 -0
  21. package/dist/components/team-icon.js.map +1 -1
  22. package/dist/components/{iframe-preventer.js → use-in-iframe.js} +9 -19
  23. package/dist/components/use-in-iframe.js.map +1 -0
  24. package/dist/components/user-button.js +41 -8
  25. package/dist/components/user-button.js.map +1 -1
  26. package/dist/components-page/account-settings/active-sessions/active-sessions-page.js +57 -12
  27. package/dist/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
  28. package/dist/components-page/account-settings/api-keys/api-keys-page.js +100 -12
  29. package/dist/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
  30. package/dist/components-page/account-settings/editable-text.js +1 -1
  31. package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.js +12 -12
  32. package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  33. package/dist/components-page/account-settings/email-and-auth/emails-section.js +14 -5
  34. package/dist/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  35. package/dist/components-page/account-settings/email-and-auth/mfa-section.js +18 -5
  36. package/dist/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  37. package/dist/components-page/account-settings/email-and-auth/otp-section.js +18 -5
  38. package/dist/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  39. package/dist/components-page/account-settings/email-and-auth/passkey-section.js +19 -6
  40. package/dist/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  41. package/dist/components-page/account-settings/email-and-auth/password-section.js +20 -7
  42. package/dist/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  43. package/dist/components-page/account-settings/notifications/notifications-page.js +59 -0
  44. package/dist/components-page/account-settings/notifications/notifications-page.js.map +1 -0
  45. package/dist/components-page/account-settings/profile-page/profile-page.js +18 -8
  46. package/dist/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  47. package/dist/components-page/account-settings/settings/delete-account-section.js +19 -10
  48. package/dist/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  49. package/dist/components-page/account-settings/settings/settings-page.js +6 -6
  50. package/dist/components-page/account-settings/settings/settings-page.js.map +1 -1
  51. package/dist/components-page/account-settings/settings/sign-out-section.js +15 -6
  52. package/dist/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  53. package/dist/components-page/account-settings/teams/leave-team-section.js +3 -3
  54. package/dist/components-page/account-settings/teams/team-api-keys-section.js +5 -5
  55. package/dist/components-page/account-settings/teams/team-creation-page.js +19 -10
  56. package/dist/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  57. package/dist/components-page/account-settings/teams/team-display-name-section.js +4 -4
  58. package/dist/components-page/account-settings/teams/team-member-invitation-section.js +4 -4
  59. package/dist/components-page/account-settings/teams/team-member-list-section.js +3 -3
  60. package/dist/components-page/account-settings/teams/team-page.js +8 -8
  61. package/dist/components-page/account-settings/teams/team-profile-image-section.js +4 -4
  62. package/dist/components-page/account-settings/teams/team-profile-user-section.js +4 -4
  63. package/dist/components-page/account-settings.js +43 -21
  64. package/dist/components-page/account-settings.js.map +1 -1
  65. package/dist/components-page/auth-page.js +11 -12
  66. package/dist/components-page/auth-page.js.map +1 -1
  67. package/dist/components-page/cli-auth-confirm.js +3 -3
  68. package/dist/components-page/email-verification.js +3 -3
  69. package/dist/components-page/error-page.js +6 -6
  70. package/dist/components-page/error-page.js.map +1 -1
  71. package/dist/components-page/forgot-password.js +6 -6
  72. package/dist/components-page/magic-link-callback.js +4 -4
  73. package/dist/components-page/mfa.js +190 -0
  74. package/dist/components-page/mfa.js.map +1 -0
  75. package/dist/components-page/oauth-callback.js +4 -4
  76. package/dist/components-page/password-reset.js +6 -6
  77. package/dist/components-page/sign-in.js +3 -2
  78. package/dist/components-page/sign-in.js.map +1 -1
  79. package/dist/components-page/sign-out.js +2 -2
  80. package/dist/components-page/sign-up.js +1 -1
  81. package/dist/components-page/stack-handler.js +25 -14
  82. package/dist/components-page/stack-handler.js.map +1 -1
  83. package/dist/components-page/team-creation.js +4 -4
  84. package/dist/components-page/team-invitation.js +3 -3
  85. package/dist/esm/components/api-key-dialogs.js +5 -4
  86. package/dist/esm/components/api-key-dialogs.js.map +1 -1
  87. package/dist/esm/components/credential-sign-in.js +4 -4
  88. package/dist/esm/components/credential-sign-up.js +3 -3
  89. package/dist/esm/components/elements/maybe-full-page.js +1 -1
  90. package/dist/esm/components/elements/sidebar-layout.js +1 -1
  91. package/dist/esm/components/magic-link-sign-in.js +3 -3
  92. package/dist/esm/components/message-cards/known-error-message-card.js +2 -2
  93. package/dist/esm/components/message-cards/message-card.js +1 -1
  94. package/dist/esm/components/message-cards/predefined-message-card.js +3 -3
  95. package/dist/esm/components/oauth-button-group.js +2 -2
  96. package/dist/esm/components/oauth-button.js +28 -17
  97. package/dist/esm/components/oauth-button.js.map +1 -1
  98. package/dist/esm/components/passkey-button.js +2 -2
  99. package/dist/esm/components/profile-image-editor.js +86 -34
  100. package/dist/esm/components/profile-image-editor.js.map +1 -1
  101. package/dist/esm/components/selected-team-switcher.js +60 -14
  102. package/dist/esm/components/selected-team-switcher.js.map +1 -1
  103. package/dist/esm/components/team-icon.js +4 -0
  104. package/dist/esm/components/team-icon.js.map +1 -1
  105. package/dist/esm/components/use-in-iframe.js +18 -0
  106. package/dist/esm/components/use-in-iframe.js.map +1 -0
  107. package/dist/esm/components/user-button.js +41 -8
  108. package/dist/esm/components/user-button.js.map +1 -1
  109. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js +57 -12
  110. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
  111. package/dist/esm/components-page/account-settings/api-keys/api-keys-page.js +100 -12
  112. package/dist/esm/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
  113. package/dist/esm/components-page/account-settings/editable-text.js +1 -1
  114. package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.js +12 -12
  115. package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  116. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js +14 -5
  117. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  118. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js +18 -5
  119. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  120. package/dist/esm/components-page/account-settings/email-and-auth/otp-section.js +18 -5
  121. package/dist/esm/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  122. package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.js +19 -6
  123. package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  124. package/dist/esm/components-page/account-settings/email-and-auth/password-section.js +20 -7
  125. package/dist/esm/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  126. package/dist/esm/components-page/account-settings/notifications/notifications-page.js +34 -0
  127. package/dist/esm/components-page/account-settings/notifications/notifications-page.js.map +1 -0
  128. package/dist/esm/components-page/account-settings/profile-page/profile-page.js +18 -8
  129. package/dist/esm/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  130. package/dist/esm/components-page/account-settings/settings/delete-account-section.js +19 -10
  131. package/dist/esm/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  132. package/dist/esm/components-page/account-settings/settings/settings-page.js +6 -6
  133. package/dist/esm/components-page/account-settings/settings/settings-page.js.map +1 -1
  134. package/dist/esm/components-page/account-settings/settings/sign-out-section.js +15 -6
  135. package/dist/esm/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  136. package/dist/esm/components-page/account-settings/teams/leave-team-section.js +3 -3
  137. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.js +5 -5
  138. package/dist/esm/components-page/account-settings/teams/team-creation-page.js +19 -10
  139. package/dist/esm/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  140. package/dist/esm/components-page/account-settings/teams/team-display-name-section.js +4 -4
  141. package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.js +4 -4
  142. package/dist/esm/components-page/account-settings/teams/team-member-list-section.js +3 -3
  143. package/dist/esm/components-page/account-settings/teams/team-page.js +8 -8
  144. package/dist/esm/components-page/account-settings/teams/team-profile-image-section.js +4 -4
  145. package/dist/esm/components-page/account-settings/teams/team-profile-user-section.js +4 -4
  146. package/dist/esm/components-page/account-settings.js +43 -21
  147. package/dist/esm/components-page/account-settings.js.map +1 -1
  148. package/dist/esm/components-page/auth-page.js +11 -12
  149. package/dist/esm/components-page/auth-page.js.map +1 -1
  150. package/dist/esm/components-page/cli-auth-confirm.js +3 -3
  151. package/dist/esm/components-page/email-verification.js +3 -3
  152. package/dist/esm/components-page/error-page.js +6 -6
  153. package/dist/esm/components-page/error-page.js.map +1 -1
  154. package/dist/esm/components-page/forgot-password.js +6 -6
  155. package/dist/esm/components-page/magic-link-callback.js +4 -4
  156. package/dist/esm/components-page/mfa.js +174 -0
  157. package/dist/esm/components-page/mfa.js.map +1 -0
  158. package/dist/esm/components-page/oauth-callback.js +4 -4
  159. package/dist/esm/components-page/password-reset.js +6 -6
  160. package/dist/esm/components-page/sign-in.js +3 -2
  161. package/dist/esm/components-page/sign-in.js.map +1 -1
  162. package/dist/esm/components-page/sign-out.js +2 -2
  163. package/dist/esm/components-page/sign-up.js +1 -1
  164. package/dist/esm/components-page/stack-handler.js +25 -14
  165. package/dist/esm/components-page/stack-handler.js.map +1 -1
  166. package/dist/esm/components-page/team-creation.js +4 -4
  167. package/dist/esm/components-page/team-invitation.js +3 -3
  168. package/dist/esm/generated/global-css.js +1 -1
  169. package/dist/esm/generated/global-css.js.map +1 -1
  170. package/dist/esm/generated/quetzal-translations.js +3616 -2364
  171. package/dist/esm/generated/quetzal-translations.js.map +1 -1
  172. package/dist/esm/index.js +22 -22
  173. package/dist/esm/lib/auth.js +2 -2
  174. package/dist/esm/lib/cookie.js +1 -129
  175. package/dist/esm/lib/cookie.js.map +1 -1
  176. package/dist/esm/lib/hooks.js +1 -1
  177. package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.js +11 -8
  178. package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.js.map +1 -1
  179. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js +79 -21
  180. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js.map +1 -1
  181. package/dist/esm/lib/stack-app/apps/implementations/common.js +2 -1
  182. package/dist/esm/lib/stack-app/apps/implementations/common.js.map +1 -1
  183. package/dist/esm/lib/stack-app/apps/implementations/index.js +3 -3
  184. package/dist/esm/lib/stack-app/apps/implementations/server-app-impl.js +34 -8
  185. package/dist/esm/lib/stack-app/apps/implementations/server-app-impl.js.map +1 -1
  186. package/dist/esm/lib/stack-app/apps/index.js +3 -3
  187. package/dist/esm/lib/stack-app/apps/interfaces/admin-app.js +1 -1
  188. package/dist/esm/lib/stack-app/apps/interfaces/admin-app.js.map +1 -1
  189. package/dist/esm/lib/stack-app/apps/interfaces/client-app.js +1 -1
  190. package/dist/esm/lib/stack-app/apps/interfaces/client-app.js.map +1 -1
  191. package/dist/esm/lib/stack-app/apps/interfaces/server-app.js +1 -1
  192. package/dist/esm/lib/stack-app/common.js.map +1 -1
  193. package/dist/esm/lib/stack-app/contact-channels/index.js.map +1 -1
  194. package/dist/esm/lib/stack-app/index.js +2 -2
  195. package/dist/esm/lib/stack-app/internal-api-keys/index.js.map +1 -1
  196. package/dist/esm/lib/stack-app/notification-categories/index.js +1 -0
  197. package/dist/esm/lib/stack-app/notification-categories/index.js.map +1 -0
  198. package/dist/esm/lib/stack-app/users/index.js.map +1 -1
  199. package/dist/esm/lib/translations.js +1 -1
  200. package/dist/esm/providers/stack-provider-client.js +2 -2
  201. package/dist/esm/providers/stack-provider.js +3 -3
  202. package/dist/esm/providers/theme-provider.js +3 -3
  203. package/dist/esm/providers/translation-provider.js +2 -2
  204. package/dist/esm/utils/browser-script.js +1 -1
  205. package/dist/generated/global-css.js +1 -1
  206. package/dist/generated/global-css.js.map +1 -1
  207. package/dist/generated/quetzal-translations.js +3616 -2364
  208. package/dist/generated/quetzal-translations.js.map +1 -1
  209. package/dist/index.d.mts +91 -6
  210. package/dist/index.d.ts +91 -6
  211. package/dist/index.js +23 -23
  212. package/dist/index.js.map +1 -1
  213. package/dist/lib/auth.js +2 -2
  214. package/dist/lib/cookie.js +4 -132
  215. package/dist/lib/cookie.js.map +1 -1
  216. package/dist/lib/hooks.js +1 -1
  217. package/dist/lib/stack-app/apps/implementations/admin-app-impl.js +11 -8
  218. package/dist/lib/stack-app/apps/implementations/admin-app-impl.js.map +1 -1
  219. package/dist/lib/stack-app/apps/implementations/client-app-impl.js +79 -21
  220. package/dist/lib/stack-app/apps/implementations/client-app-impl.js.map +1 -1
  221. package/dist/lib/stack-app/apps/implementations/common.js +2 -1
  222. package/dist/lib/stack-app/apps/implementations/common.js.map +1 -1
  223. package/dist/lib/stack-app/apps/implementations/index.js +3 -3
  224. package/dist/lib/stack-app/apps/implementations/server-app-impl.js +34 -8
  225. package/dist/lib/stack-app/apps/implementations/server-app-impl.js.map +1 -1
  226. package/dist/lib/stack-app/apps/index.js +3 -3
  227. package/dist/lib/stack-app/apps/interfaces/admin-app.js +1 -1
  228. package/dist/lib/stack-app/apps/interfaces/admin-app.js.map +1 -1
  229. package/dist/lib/stack-app/apps/interfaces/client-app.js +1 -1
  230. package/dist/lib/stack-app/apps/interfaces/client-app.js.map +1 -1
  231. package/dist/lib/stack-app/apps/interfaces/server-app.js +1 -1
  232. package/dist/lib/stack-app/common.js.map +1 -1
  233. package/dist/lib/stack-app/contact-channels/index.js.map +1 -1
  234. package/dist/lib/stack-app/index.js +2 -2
  235. package/dist/lib/stack-app/internal-api-keys/index.js.map +1 -1
  236. package/dist/lib/stack-app/notification-categories/index.js +19 -0
  237. package/dist/lib/stack-app/notification-categories/index.js.map +1 -0
  238. package/dist/lib/stack-app/users/index.js.map +1 -1
  239. package/dist/lib/translations.js +1 -1
  240. package/dist/providers/stack-provider-client.js +2 -2
  241. package/dist/providers/stack-provider.js +3 -3
  242. package/dist/providers/theme-provider.js +3 -3
  243. package/dist/providers/translation-provider.js +2 -2
  244. package/dist/utils/browser-script.js +1 -1
  245. package/package.json +5 -5
  246. package/dist/components/iframe-preventer.js.map +0 -1
  247. package/dist/esm/components/iframe-preventer.js +0 -28
  248. package/dist/esm/components/iframe-preventer.js.map +0 -1
@@ -6,10 +6,10 @@ import { captureError } from "@stackframe/stack-shared/dist/utils/errors";
6
6
  import { runAsynchronously } from "@stackframe/stack-shared/dist/utils/promises";
7
7
  import { Spinner, cn } from "@stackframe/stack-ui";
8
8
  import { useEffect, useRef, useState } from "react";
9
- import { useStackApp } from "..";
10
- import { MaybeFullPage } from "../components/elements/maybe-full-page";
11
- import { StyledLink } from "../components/link";
12
- import { useTranslation } from "../lib/translations";
9
+ import { useStackApp } from "../index.js";
10
+ import { MaybeFullPage } from "../components/elements/maybe-full-page.js";
11
+ import { StyledLink } from "../components/link.js";
12
+ import { useTranslation } from "../lib/translations.js";
13
13
  import { jsx, jsxs } from "react/jsx-runtime";
14
14
  function OAuthCallback({ fullPage }) {
15
15
  const { t } = useTranslation();
@@ -12,12 +12,12 @@ import { Button, Label, PasswordInput, Typography, cn } from "@stackframe/stack-
12
12
  import React, { useState } from "react";
13
13
  import { useForm } from "react-hook-form";
14
14
  import * as yup from "yup";
15
- import { useStackApp } from "..";
16
- import { FormWarningText } from "../components/elements/form-warning";
17
- import { MaybeFullPage } from "../components/elements/maybe-full-page";
18
- import { MessageCard } from "../components/message-cards/message-card";
19
- import { PredefinedMessageCard } from "../components/message-cards/predefined-message-card";
20
- import { useTranslation } from "../lib/translations";
15
+ import { useStackApp } from "../index.js";
16
+ import { FormWarningText } from "../components/elements/form-warning.js";
17
+ import { MaybeFullPage } from "../components/elements/maybe-full-page.js";
18
+ import { MessageCard } from "../components/message-cards/message-card.js";
19
+ import { PredefinedMessageCard } from "../components/message-cards/predefined-message-card.js";
20
+ import { useTranslation } from "../lib/translations.js";
21
21
  import { jsx, jsxs } from "react/jsx-runtime";
22
22
  function PasswordResetForm(props) {
23
23
  const { t } = useTranslation();
@@ -1,5 +1,5 @@
1
1
  // src/components-page/sign-in.tsx
2
- import { AuthPage } from "./auth-page";
2
+ import { AuthPage } from "./auth-page.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  function SignIn(props) {
5
5
  return /* @__PURE__ */ jsx(
@@ -9,7 +9,8 @@ function SignIn(props) {
9
9
  type: "sign-in",
10
10
  automaticRedirect: !!props.automaticRedirect,
11
11
  extraInfo: props.extraInfo,
12
- firstTab: props.firstTab
12
+ firstTab: props.firstTab,
13
+ mockProject: props.mockProject
13
14
  }
14
15
  );
15
16
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components-page/sign-in.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\nimport { AuthPage } from \"./auth-page\";\n\nexport function SignIn(props: {\n fullPage?: boolean,\n automaticRedirect?: boolean,\n extraInfo?: React.ReactNode,\n firstTab?: 'magic-link' | 'password',\n}) {\n return (\n <AuthPage\n fullPage={!!props.fullPage}\n type=\"sign-in\"\n automaticRedirect={!!props.automaticRedirect}\n extraInfo={props.extraInfo}\n firstTab={props.firstTab}\n />\n );\n}\n"],"mappings":";AAIA,SAAS,gBAAgB;AASrB;AAPG,SAAS,OAAO,OAKpB;AACD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAU,CAAC,CAAC,MAAM;AAAA,MAClB,MAAK;AAAA,MACL,mBAAmB,CAAC,CAAC,MAAM;AAAA,MAC3B,WAAW,MAAM;AAAA,MACjB,UAAU,MAAM;AAAA;AAAA,EAClB;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/components-page/sign-in.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\nimport { AuthPage } from \"./auth-page\";\n\nexport function SignIn(props: {\n fullPage?: boolean,\n automaticRedirect?: boolean,\n extraInfo?: React.ReactNode,\n firstTab?: 'magic-link' | 'password',\n mockProject?: {\n config: {\n signUpEnabled: boolean,\n credentialEnabled: boolean,\n passkeyEnabled: boolean,\n magicLinkEnabled: boolean,\n oauthProviders: {\n id: string,\n }[],\n },\n },\n}) {\n return (\n <AuthPage\n fullPage={!!props.fullPage}\n type=\"sign-in\"\n automaticRedirect={!!props.automaticRedirect}\n extraInfo={props.extraInfo}\n firstTab={props.firstTab}\n mockProject={props.mockProject}\n />\n );\n}\n"],"mappings":";AAIA,SAAS,gBAAgB;AAoBrB;AAlBG,SAAS,OAAO,OAgBpB;AACD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAU,CAAC,CAAC,MAAM;AAAA,MAClB,MAAK;AAAA,MACL,mBAAmB,CAAC,CAAC,MAAM;AAAA,MAC3B,WAAW,MAAM;AAAA,MACjB,UAAU,MAAM;AAAA,MAChB,aAAa,MAAM;AAAA;AAAA,EACrB;AAEJ;","names":[]}
@@ -4,8 +4,8 @@
4
4
  // src/components-page/sign-out.tsx
5
5
  import { cacheFunction } from "@stackframe/stack-shared/dist/utils/caches";
6
6
  import React from "react";
7
- import { useUser } from "..";
8
- import { PredefinedMessageCard } from "../components/message-cards/predefined-message-card";
7
+ import { useUser } from "../index.js";
8
+ import { PredefinedMessageCard } from "../components/message-cards/predefined-message-card.js";
9
9
  import { jsx } from "react/jsx-runtime";
10
10
  var cacheSignOut = cacheFunction(async (user) => {
11
11
  return await user.signOut();
@@ -2,7 +2,7 @@
2
2
  "use client";
3
3
 
4
4
  // src/components-page/sign-up.tsx
5
- import { AuthPage } from "./auth-page";
5
+ import { AuthPage } from "./auth-page.js";
6
6
  import { jsx } from "react/jsx-runtime";
7
7
  function SignUp(props) {
8
8
  return /* @__PURE__ */ jsx(
@@ -3,19 +3,19 @@ import { StackAssertionError } from "@stackframe/stack-shared/dist/utils/errors"
3
3
  import { filterUndefined, pick } from "@stackframe/stack-shared/dist/utils/objects";
4
4
  import { getRelativePart } from "@stackframe/stack-shared/dist/utils/urls";
5
5
  import { RedirectType, notFound, redirect } from "next/navigation";
6
- import { SignIn, SignUp } from "..";
7
- import { IframePreventer } from "../components/iframe-preventer";
8
- import { MessageCard } from "../components/message-cards/message-card";
9
- import { AccountSettings } from "./account-settings";
10
- import { CliAuthConfirmation } from "./cli-auth-confirm";
11
- import { EmailVerification } from "./email-verification";
12
- import { ErrorPage } from "./error-page";
13
- import { ForgotPassword } from "./forgot-password";
14
- import { MagicLinkCallback } from "./magic-link-callback";
15
- import { OAuthCallback } from "./oauth-callback";
16
- import { PasswordReset } from "./password-reset";
17
- import { SignOut } from "./sign-out";
18
- import { TeamInvitation } from "./team-invitation";
6
+ import { SignIn, SignUp } from "../index.js";
7
+ import { MessageCard } from "../components/message-cards/message-card.js";
8
+ import { AccountSettings } from "./account-settings.js";
9
+ import { CliAuthConfirmation } from "./cli-auth-confirm.js";
10
+ import { EmailVerification } from "./email-verification.js";
11
+ import { ErrorPage } from "./error-page.js";
12
+ import { ForgotPassword } from "./forgot-password.js";
13
+ import { MagicLinkCallback } from "./magic-link-callback.js";
14
+ import { OAuthCallback } from "./oauth-callback.js";
15
+ import { MFA } from "./mfa.js";
16
+ import { PasswordReset } from "./password-reset.js";
17
+ import { SignOut } from "./sign-out.js";
18
+ import { TeamInvitation } from "./team-invitation.js";
19
19
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
20
20
  var next15DeprecationWarning = "DEPRECATION WARNING: Next.js 15 disallows spreading the props argument of <StackHandler /> like `{...props}`, so you must now explicitly pass them in the `routeProps` argument: `routeProps={props}`. You can fix this by updating the code in the file `app/handler/[...stack]/route.tsx`.";
21
21
  var availablePaths = {
@@ -30,6 +30,7 @@ var availablePaths = {
30
30
  teamInvitation: "team-invitation",
31
31
  accountSettings: "account-settings",
32
32
  cliAuthConfirm: "cli-auth-confirm",
33
+ mfa: "mfa",
33
34
  error: "error"
34
35
  };
35
36
  var pathAliases = {
@@ -165,6 +166,16 @@ function renderComponent(props) {
165
166
  }
166
167
  );
167
168
  }
169
+ case availablePaths.mfa: {
170
+ redirectIfNotHandler?.("mfa");
171
+ return /* @__PURE__ */ jsx(
172
+ MFA,
173
+ {
174
+ fullPage,
175
+ ...filterUndefinedINU(componentProps?.MFA)
176
+ }
177
+ );
178
+ }
168
179
  default: {
169
180
  if (Object.values(availablePaths).includes(path)) {
170
181
  throw new StackAssertionError(`Path alias ${path} not included in switch statement, but in availablePaths?`, { availablePaths });
@@ -225,7 +236,7 @@ async function NextStackHandler(props) {
225
236
  next15DeprecationWarning,
226
237
  ". This warning will not be shown in production."
227
238
  ] }),
228
- /* @__PURE__ */ jsx(IframePreventer, { children: result })
239
+ result
229
240
  ] });
230
241
  }
231
242
  var stack_handler_default = NextStackHandler;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components-page/stack-handler.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\nimport { StackAssertionError } from \"@stackframe/stack-shared/dist/utils/errors\";\nimport { FilterUndefined, filterUndefined, pick } from \"@stackframe/stack-shared/dist/utils/objects\";\nimport { getRelativePart } from \"@stackframe/stack-shared/dist/utils/urls\";\nimport { RedirectType, notFound, redirect } from 'next/navigation'; // THIS_LINE_PLATFORM next\nimport { useMemo } from 'react';\nimport { SignIn, SignUp, StackServerApp } from \"..\";\nimport { IframePreventer } from \"../components/iframe-preventer\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { HandlerUrls, StackClientApp } from \"../lib/stack-app\";\nimport { AccountSettings } from \"./account-settings\";\nimport { CliAuthConfirmation } from \"./cli-auth-confirm\";\nimport { EmailVerification } from \"./email-verification\";\nimport { ErrorPage } from \"./error-page\";\nimport { ForgotPassword } from \"./forgot-password\";\nimport { MagicLinkCallback } from \"./magic-link-callback\";\nimport { OAuthCallback } from \"./oauth-callback\";\nimport { PasswordReset } from \"./password-reset\";\nimport { SignOut } from \"./sign-out\";\nimport { TeamInvitation } from \"./team-invitation\";\n\ntype Components = {\n SignIn: typeof SignIn,\n SignUp: typeof SignUp,\n EmailVerification: typeof EmailVerification,\n PasswordReset: typeof PasswordReset,\n ForgotPassword: typeof ForgotPassword,\n SignOut: typeof SignOut,\n OAuthCallback: typeof OAuthCallback,\n MagicLinkCallback: typeof MagicLinkCallback,\n TeamInvitation: typeof TeamInvitation,\n ErrorPage: typeof ErrorPage,\n AccountSettings: typeof AccountSettings,\n CliAuthConfirmation: typeof CliAuthConfirmation,\n};\n\ntype RouteProps = {\n params: Promise<{ stack?: string[] }> | { stack?: string[] },\n searchParams: Promise<Record<string, string>> | Record<string, string>,\n};\n\nconst next15DeprecationWarning = \"DEPRECATION WARNING: Next.js 15 disallows spreading the props argument of <StackHandler /> like `{...props}`, so you must now explicitly pass them in the `routeProps` argument: `routeProps={props}`. You can fix this by updating the code in the file `app/handler/[...stack]/route.tsx`.\";\n\nconst availablePaths = {\n signIn: 'sign-in',\n signUp: 'sign-up',\n emailVerification: 'email-verification',\n passwordReset: 'password-reset',\n forgotPassword: 'forgot-password',\n signOut: 'sign-out',\n oauthCallback: 'oauth-callback',\n magicLinkCallback: 'magic-link-callback',\n teamInvitation: 'team-invitation',\n accountSettings: 'account-settings',\n cliAuthConfirm: 'cli-auth-confirm',\n error: 'error',\n} as const;\n\nconst pathAliases = {\n // also includes the uppercase and non-dashed versions\n ...Object.fromEntries(Object.entries(availablePaths).map(([key, value]) => [value, value])),\n \"log-in\": availablePaths.signIn,\n \"register\": availablePaths.signUp,\n} as const;\n\ntype BaseHandlerProps = {\n fullPage: boolean,\n componentProps?: {\n [K in keyof Components]?: Parameters<Components[K]>[0];\n },\n};\n\nfunction renderComponent(props: {\n path: string,\n searchParams: Record<string, string>,\n fullPage: boolean,\n componentProps?: BaseHandlerProps['componentProps'],\n redirectIfNotHandler?: (name: keyof HandlerUrls) => void,\n onNotFound: () => any,\n app: StackClientApp<any> | StackServerApp<any>,\n}) {\n const { path, searchParams, fullPage, componentProps, redirectIfNotHandler, onNotFound, app } = props;\n\n switch (path) {\n case availablePaths.signIn: {\n redirectIfNotHandler?.('signIn');\n return <SignIn\n fullPage={fullPage}\n automaticRedirect\n {...filterUndefinedINU(componentProps?.SignIn)}\n />;\n }\n case availablePaths.signUp: {\n redirectIfNotHandler?.('signUp');\n return <SignUp\n fullPage={fullPage}\n automaticRedirect\n {...filterUndefinedINU(componentProps?.SignUp)}\n />;\n }\n case availablePaths.emailVerification: {\n redirectIfNotHandler?.('emailVerification');\n return <EmailVerification\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.EmailVerification)}\n />;\n }\n case availablePaths.passwordReset: {\n redirectIfNotHandler?.('passwordReset');\n return <PasswordReset\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.PasswordReset)}\n />;\n }\n case availablePaths.forgotPassword: {\n redirectIfNotHandler?.('forgotPassword');\n return <ForgotPassword\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.ForgotPassword)}\n />;\n }\n case availablePaths.signOut: {\n redirectIfNotHandler?.('signOut');\n return <SignOut\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.SignOut)}\n />;\n }\n case availablePaths.oauthCallback: {\n redirectIfNotHandler?.('oauthCallback');\n return <OAuthCallback\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.OAuthCallback)}\n />;\n }\n case availablePaths.magicLinkCallback: {\n redirectIfNotHandler?.('magicLinkCallback');\n return <MagicLinkCallback\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.MagicLinkCallback)}\n />;\n }\n case availablePaths.teamInvitation: {\n redirectIfNotHandler?.('teamInvitation');\n return <TeamInvitation\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.TeamInvitation)}\n />;\n }\n case availablePaths.accountSettings: {\n return <AccountSettings\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.AccountSettings)}\n />;\n }\n case availablePaths.error: {\n return <ErrorPage\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.ErrorPage)}\n />;\n }\n case availablePaths.cliAuthConfirm: {\n return <CliAuthConfirmation\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.CliAuthConfirmation)}\n />;\n }\n default: {\n if (Object.values(availablePaths).includes(path as any)) {\n throw new StackAssertionError(`Path alias ${path} not included in switch statement, but in availablePaths?`, { availablePaths });\n }\n for (const [key, value] of Object.entries(pathAliases)) {\n if (path === key.toLowerCase().replaceAll('-', '')) {\n const redirectUrl = `${app.urls.handler}/${value}?${new URLSearchParams(searchParams).toString()}`;\n return { redirect: redirectUrl };\n }\n }\n return onNotFound();\n }\n }\n}\n\nasync function NextStackHandler<HasTokenStore extends boolean>(props: BaseHandlerProps & {\n app: StackServerApp<HasTokenStore>,\n} & (\n | Partial<RouteProps>\n | {\n routeProps: RouteProps | unknown,\n }\n)): Promise<any> {\n if (!(\"routeProps\" in props)) {\n console.warn(next15DeprecationWarning);\n }\n\n const routeProps = \"routeProps\" in props ? props.routeProps as RouteProps : pick(props, [\"params\", \"searchParams\"] as any);\n const params = await routeProps.params;\n const searchParams = await routeProps.searchParams;\n\n if (!params?.stack) {\n return (\n <MessageCard title=\"Invalid Stack Handler Setup\" fullPage={props.fullPage}>\n <p>Can't use {\"<StackHandler />\"} at this location. Make sure that the file is in a folder called [...stack] and you are passing the routeProps prop.</p>\n </MessageCard>\n );\n }\n\n const path = params.stack.join('/');\n\n const redirectIfNotHandler = (name: keyof HandlerUrls) => {\n const url = props.app.urls[name];\n const handlerUrl = props.app.urls.handler;\n\n if (url !== handlerUrl && url.startsWith(handlerUrl + \"/\")) {\n return;\n }\n\n const urlObj = new URL(url, \"http://example.com\");\n if (searchParams) {\n for (const [key, value] of Object.entries(searchParams)) {\n urlObj.searchParams.set(key, value);\n }\n }\n\n redirect(getRelativePart(urlObj), RedirectType.replace);\n };\n\n const result = renderComponent({\n path,\n searchParams: searchParams ?? {},\n fullPage: props.fullPage,\n componentProps: props.componentProps,\n redirectIfNotHandler,\n onNotFound: () => notFound(),\n app: props.app,\n });\n\n if (result && 'redirect' in result) {\n redirect(result.redirect, RedirectType.replace);\n }\n\n return <>\n {process.env.NODE_ENV === \"development\" && !(\"routeProps\" in props) && (\n <span style={{ color: \"red\" }}>\n {next15DeprecationWarning}. This warning will not be shown in production.\n </span>\n )}\n <IframePreventer>\n {result}\n </IframePreventer>\n </>;\n}\n\n\nexport default NextStackHandler;\n\n// filter undefined values in object. if object itself is undefined, return undefined\nfunction filterUndefinedINU<T extends {}>(value: T | undefined): FilterUndefined<T> | undefined {\n return value === undefined ? value : filterUndefined(value);\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/components-page/stack-handler.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\nimport { StackAssertionError } from \"@stackframe/stack-shared/dist/utils/errors\";\nimport { FilterUndefined, filterUndefined, pick } from \"@stackframe/stack-shared/dist/utils/objects\";\nimport { getRelativePart } from \"@stackframe/stack-shared/dist/utils/urls\";\nimport { RedirectType, notFound, redirect } from 'next/navigation'; // THIS_LINE_PLATFORM next\nimport { useMemo } from 'react';\nimport { SignIn, SignUp, StackServerApp } from \"..\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { HandlerUrls, StackClientApp } from \"../lib/stack-app\";\nimport { AccountSettings } from \"./account-settings\";\nimport { CliAuthConfirmation } from \"./cli-auth-confirm\";\nimport { EmailVerification } from \"./email-verification\";\nimport { ErrorPage } from \"./error-page\";\nimport { ForgotPassword } from \"./forgot-password\";\nimport { MagicLinkCallback } from \"./magic-link-callback\";\nimport { OAuthCallback } from \"./oauth-callback\";\nimport { MFA } from \"./mfa\";\nimport { PasswordReset } from \"./password-reset\";\nimport { SignOut } from \"./sign-out\";\nimport { TeamInvitation } from \"./team-invitation\";\n\ntype Components = {\n SignIn: typeof SignIn,\n SignUp: typeof SignUp,\n EmailVerification: typeof EmailVerification,\n PasswordReset: typeof PasswordReset,\n ForgotPassword: typeof ForgotPassword,\n SignOut: typeof SignOut,\n OAuthCallback: typeof OAuthCallback,\n MagicLinkCallback: typeof MagicLinkCallback,\n TeamInvitation: typeof TeamInvitation,\n ErrorPage: typeof ErrorPage,\n AccountSettings: typeof AccountSettings,\n CliAuthConfirmation: typeof CliAuthConfirmation,\n MFA: typeof MFA,\n};\n\ntype RouteProps = {\n params: Promise<{ stack?: string[] }> | { stack?: string[] },\n searchParams: Promise<Record<string, string>> | Record<string, string>,\n};\n\nconst next15DeprecationWarning = \"DEPRECATION WARNING: Next.js 15 disallows spreading the props argument of <StackHandler /> like `{...props}`, so you must now explicitly pass them in the `routeProps` argument: `routeProps={props}`. You can fix this by updating the code in the file `app/handler/[...stack]/route.tsx`.\";\n\nconst availablePaths = {\n signIn: 'sign-in',\n signUp: 'sign-up',\n emailVerification: 'email-verification',\n passwordReset: 'password-reset',\n forgotPassword: 'forgot-password',\n signOut: 'sign-out',\n oauthCallback: 'oauth-callback',\n magicLinkCallback: 'magic-link-callback',\n teamInvitation: 'team-invitation',\n accountSettings: 'account-settings',\n cliAuthConfirm: 'cli-auth-confirm',\n mfa: 'mfa',\n error: 'error',\n} as const;\n\nconst pathAliases = {\n // also includes the uppercase and non-dashed versions\n ...Object.fromEntries(Object.entries(availablePaths).map(([key, value]) => [value, value])),\n \"log-in\": availablePaths.signIn,\n \"register\": availablePaths.signUp,\n} as const;\n\ntype BaseHandlerProps = {\n fullPage: boolean,\n componentProps?: {\n [K in keyof Components]?: Parameters<Components[K]>[0];\n },\n};\n\nfunction renderComponent(props: {\n path: string,\n searchParams: Record<string, string>,\n fullPage: boolean,\n componentProps?: BaseHandlerProps['componentProps'],\n redirectIfNotHandler?: (name: keyof HandlerUrls) => void,\n onNotFound: () => any,\n app: StackClientApp<any> | StackServerApp<any>,\n}) {\n const { path, searchParams, fullPage, componentProps, redirectIfNotHandler, onNotFound, app } = props;\n\n switch (path) {\n case availablePaths.signIn: {\n redirectIfNotHandler?.('signIn');\n return <SignIn\n fullPage={fullPage}\n automaticRedirect\n {...filterUndefinedINU(componentProps?.SignIn)}\n />;\n }\n case availablePaths.signUp: {\n redirectIfNotHandler?.('signUp');\n return <SignUp\n fullPage={fullPage}\n automaticRedirect\n {...filterUndefinedINU(componentProps?.SignUp)}\n />;\n }\n case availablePaths.emailVerification: {\n redirectIfNotHandler?.('emailVerification');\n return <EmailVerification\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.EmailVerification)}\n />;\n }\n case availablePaths.passwordReset: {\n redirectIfNotHandler?.('passwordReset');\n return <PasswordReset\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.PasswordReset)}\n />;\n }\n case availablePaths.forgotPassword: {\n redirectIfNotHandler?.('forgotPassword');\n return <ForgotPassword\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.ForgotPassword)}\n />;\n }\n case availablePaths.signOut: {\n redirectIfNotHandler?.('signOut');\n return <SignOut\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.SignOut)}\n />;\n }\n case availablePaths.oauthCallback: {\n redirectIfNotHandler?.('oauthCallback');\n return <OAuthCallback\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.OAuthCallback)}\n />;\n }\n case availablePaths.magicLinkCallback: {\n redirectIfNotHandler?.('magicLinkCallback');\n return <MagicLinkCallback\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.MagicLinkCallback)}\n />;\n }\n case availablePaths.teamInvitation: {\n redirectIfNotHandler?.('teamInvitation');\n return <TeamInvitation\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.TeamInvitation)}\n />;\n }\n case availablePaths.accountSettings: {\n return <AccountSettings\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.AccountSettings)}\n />;\n }\n case availablePaths.error: {\n return <ErrorPage\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.ErrorPage)}\n />;\n }\n case availablePaths.cliAuthConfirm: {\n return <CliAuthConfirmation\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.CliAuthConfirmation)}\n />;\n }\n case availablePaths.mfa: {\n redirectIfNotHandler?.('mfa');\n return <MFA\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.MFA)}\n />;\n }\n default: {\n if (Object.values(availablePaths).includes(path as any)) {\n throw new StackAssertionError(`Path alias ${path} not included in switch statement, but in availablePaths?`, { availablePaths });\n }\n for (const [key, value] of Object.entries(pathAliases)) {\n if (path === key.toLowerCase().replaceAll('-', '')) {\n const redirectUrl = `${app.urls.handler}/${value}?${new URLSearchParams(searchParams).toString()}`;\n return { redirect: redirectUrl };\n }\n }\n return onNotFound();\n }\n }\n}\n\nasync function NextStackHandler<HasTokenStore extends boolean>(props: BaseHandlerProps & {\n app: StackServerApp<HasTokenStore>,\n} & (\n | Partial<RouteProps>\n | {\n routeProps: RouteProps | unknown,\n }\n)): Promise<any> {\n if (!(\"routeProps\" in props)) {\n console.warn(next15DeprecationWarning);\n }\n\n const routeProps = \"routeProps\" in props ? props.routeProps as RouteProps : pick(props, [\"params\", \"searchParams\"] as any);\n const params = await routeProps.params;\n const searchParams = await routeProps.searchParams;\n\n if (!params?.stack) {\n return (\n <MessageCard title=\"Invalid Stack Handler Setup\" fullPage={props.fullPage}>\n <p>Can't use {\"<StackHandler />\"} at this location. Make sure that the file is in a folder called [...stack] and you are passing the routeProps prop.</p>\n </MessageCard>\n );\n }\n\n const path = params.stack.join('/');\n\n const redirectIfNotHandler = (name: keyof HandlerUrls) => {\n const url = props.app.urls[name];\n const handlerUrl = props.app.urls.handler;\n\n if (url !== handlerUrl && url.startsWith(handlerUrl + \"/\")) {\n return;\n }\n\n const urlObj = new URL(url, \"http://example.com\");\n if (searchParams) {\n for (const [key, value] of Object.entries(searchParams)) {\n urlObj.searchParams.set(key, value);\n }\n }\n\n redirect(getRelativePart(urlObj), RedirectType.replace);\n };\n\n const result = renderComponent({\n path,\n searchParams: searchParams ?? {},\n fullPage: props.fullPage,\n componentProps: props.componentProps,\n redirectIfNotHandler,\n onNotFound: () => notFound(),\n app: props.app,\n });\n\n if (result && 'redirect' in result) {\n redirect(result.redirect, RedirectType.replace);\n }\n\n return <>\n {process.env.NODE_ENV === \"development\" && !(\"routeProps\" in props) && (\n <span style={{ color: \"red\" }}>\n {next15DeprecationWarning}. This warning will not be shown in production.\n </span>\n )}\n {result}\n </>;\n}\n\n\nexport default NextStackHandler;\n\n// filter undefined values in object. if object itself is undefined, return undefined\nfunction filterUndefinedINU<T extends {}>(value: T | undefined): FilterUndefined<T> | undefined {\n return value === undefined ? value : filterUndefined(value);\n}\n"],"mappings":"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","names":[]}
@@ -8,10 +8,10 @@ import { runAsynchronously } from "@stackframe/stack-shared/dist/utils/promises"
8
8
  import { Button, Input, Label, Typography } from "@stackframe/stack-ui";
9
9
  import { useState } from "react";
10
10
  import { useForm } from "react-hook-form";
11
- import { MessageCard, useStackApp, useUser } from "..";
12
- import { FormWarningText } from "../components/elements/form-warning";
13
- import { MaybeFullPage } from "../components/elements/maybe-full-page";
14
- import { useTranslation } from "../lib/translations";
11
+ import { MessageCard, useStackApp, useUser } from "../index.js";
12
+ import { FormWarningText } from "../components/elements/form-warning.js";
13
+ import { MaybeFullPage } from "../components/elements/maybe-full-page.js";
14
+ import { useTranslation } from "../lib/translations.js";
15
15
  import { jsx, jsxs } from "react/jsx-runtime";
16
16
  function TeamCreation(props) {
17
17
  const { t } = useTranslation();
@@ -7,9 +7,9 @@ import { cacheFunction } from "@stackframe/stack-shared/dist/utils/caches";
7
7
  import { runAsynchronouslyWithAlert } from "@stackframe/stack-shared/dist/utils/promises";
8
8
  import { Typography } from "@stackframe/stack-ui";
9
9
  import React from "react";
10
- import { MessageCard, useStackApp, useUser } from "..";
11
- import { PredefinedMessageCard } from "../components/message-cards/predefined-message-card";
12
- import { useTranslation } from "../lib/translations";
10
+ import { MessageCard, useStackApp, useUser } from "../index.js";
11
+ import { PredefinedMessageCard } from "../components/message-cards/predefined-message-card.js";
12
+ import { useTranslation } from "../lib/translations.js";
13
13
  import { jsx, jsxs } from "react/jsx-runtime";
14
14
  var cachedVerifyInvitation = cacheFunction(async (stackApp, code) => {
15
15
  return await stackApp.verifyTeamInvitationCode(code);