@stackframe/stack 1.2.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/dist/components/card-frame.d.ts +7 -0
  2. package/dist/components/card-frame.d.ts.map +1 -0
  3. package/dist/components/card-frame.js +24 -0
  4. package/dist/{elements/CardHeader.d.ts → components/card-header.d.ts} +1 -1
  5. package/dist/components/card-header.d.ts.map +1 -0
  6. package/dist/components/card-header.js +5 -0
  7. package/dist/components/credential-sign-in.d.ts +2 -0
  8. package/dist/components/credential-sign-in.d.ts.map +1 -0
  9. package/dist/components/credential-sign-in.js +56 -0
  10. package/dist/components/credential-sign-up.d.ts +2 -0
  11. package/dist/components/credential-sign-up.d.ts.map +1 -0
  12. package/dist/components/credential-sign-up.js +73 -0
  13. package/dist/{elements/DividerWithText.d.ts → components/divider-with-text.d.ts} +1 -1
  14. package/dist/components/divider-with-text.d.ts.map +1 -0
  15. package/dist/components/divider-with-text.js +6 -0
  16. package/dist/components/email-verification.d.ts +5 -0
  17. package/dist/components/email-verification.d.ts.map +1 -0
  18. package/dist/components/{EmailVerification.js → email-verification.js} +2 -2
  19. package/dist/{elements/ForgotPassword.d.ts → components/forgot-password.d.ts} +1 -1
  20. package/dist/components/forgot-password.d.ts.map +1 -0
  21. package/dist/components/forgot-password.js +32 -0
  22. package/dist/components/form-warning.d.ts +4 -0
  23. package/dist/components/form-warning.d.ts.map +1 -0
  24. package/dist/components/form-warning.js +9 -0
  25. package/dist/{elements/MessageCard.d.ts → components/message-card.d.ts} +1 -1
  26. package/dist/components/message-card.d.ts.map +1 -0
  27. package/dist/components/message-card.js +7 -0
  28. package/dist/components/oauth-button.d.ts +5 -0
  29. package/dist/components/oauth-button.d.ts.map +1 -0
  30. package/dist/components/oauth-button.js +66 -0
  31. package/dist/components/oauth-callback.d.ts +2 -0
  32. package/dist/components/oauth-callback.d.ts.map +1 -0
  33. package/dist/components/oauth-callback.js +17 -0
  34. package/dist/components/oauth-group.d.ts +4 -0
  35. package/dist/components/oauth-group.d.ts.map +1 -0
  36. package/dist/components/oauth-group.js +9 -0
  37. package/dist/components/password-field.d.ts +4 -0
  38. package/dist/components/password-field.d.ts.map +1 -0
  39. package/dist/components/password-field.js +41 -0
  40. package/dist/{elements/PasswordResetInner.d.ts → components/password-reset-inner.d.ts} +1 -1
  41. package/dist/components/password-reset-inner.d.ts.map +1 -0
  42. package/dist/{elements/PasswordResetInner.js → components/password-reset-inner.js} +18 -16
  43. package/dist/components/password-reset.d.ts +5 -0
  44. package/dist/components/password-reset.d.ts.map +1 -0
  45. package/dist/components/{PasswordReset.js → password-reset.js} +6 -5
  46. package/dist/{elements/RedirectMessageCard.d.ts → components/redirect-message-card.d.ts} +1 -1
  47. package/dist/components/redirect-message-card.d.ts.map +1 -0
  48. package/dist/{elements/RedirectMessageCard.js → components/redirect-message-card.js} +19 -15
  49. package/dist/components/sign-in.d.ts +4 -0
  50. package/dist/components/sign-in.d.ts.map +1 -0
  51. package/dist/components/sign-in.js +20 -0
  52. package/dist/components/sign-out.d.ts +2 -0
  53. package/dist/components/sign-out.d.ts.map +1 -0
  54. package/dist/components/{SignOut.js → sign-out.js} +5 -4
  55. package/dist/components/sign-up.d.ts +4 -0
  56. package/dist/components/sign-up.d.ts.map +1 -0
  57. package/dist/components/sign-up.js +20 -0
  58. package/dist/components/stack-handler.d.ts +9 -0
  59. package/dist/components/stack-handler.d.ts.map +1 -0
  60. package/dist/components/stack-handler.js +58 -0
  61. package/dist/components-core/button.d.ts +10 -0
  62. package/dist/components-core/button.d.ts.map +1 -0
  63. package/dist/components-core/button.js +115 -0
  64. package/dist/components-core/container.d.ts +6 -0
  65. package/dist/components-core/container.d.ts.map +1 -0
  66. package/dist/components-core/container.js +19 -0
  67. package/dist/components-core/divider.d.ts +7 -0
  68. package/dist/components-core/divider.d.ts.map +1 -0
  69. package/dist/components-core/divider.js +17 -0
  70. package/dist/components-core/index.d.ts +17 -0
  71. package/dist/components-core/index.d.ts.map +1 -0
  72. package/dist/components-core/index.js +32 -0
  73. package/dist/components-core/input.d.ts +5 -0
  74. package/dist/components-core/input.d.ts.map +1 -0
  75. package/dist/components-core/input.js +45 -0
  76. package/dist/components-core/label.d.ts +6 -0
  77. package/dist/components-core/label.d.ts.map +1 -0
  78. package/dist/components-core/label.js +22 -0
  79. package/dist/components-core/link.d.ts +9 -0
  80. package/dist/components-core/link.d.ts.map +1 -0
  81. package/dist/components-core/link.js +18 -0
  82. package/dist/components-core/text.d.ts +9 -0
  83. package/dist/components-core/text.d.ts.map +1 -0
  84. package/dist/components-core/text.js +42 -0
  85. package/dist/components-core-joy/button.d.ts +3 -0
  86. package/dist/components-core-joy/button.d.ts.map +1 -0
  87. package/dist/components-core-joy/button.js +26 -0
  88. package/dist/components-core-joy/divider.d.ts +3 -0
  89. package/dist/components-core-joy/divider.d.ts.map +1 -0
  90. package/dist/components-core-joy/divider.js +7 -0
  91. package/dist/components-core-joy/input.d.ts +3 -0
  92. package/dist/components-core-joy/input.d.ts.map +1 -0
  93. package/dist/components-core-joy/input.js +7 -0
  94. package/dist/components-core-joy/text.d.ts +3 -0
  95. package/dist/components-core-joy/text.d.ts.map +1 -0
  96. package/dist/components-core-joy/text.js +28 -0
  97. package/dist/{components/EmailVerification.d.ts → components-page/email-verification.d.ts} +1 -2
  98. package/dist/components-page/email-verification.d.ts.map +1 -0
  99. package/dist/components-page/email-verification.js +29 -0
  100. package/dist/{components/ForgotPassword.d.ts → components-page/forgot-password.d.ts} +1 -1
  101. package/dist/components-page/forgot-password.d.ts.map +1 -0
  102. package/dist/{components/ForgotPassword.js → components-page/forgot-password.js} +6 -6
  103. package/dist/{components/OAuthCallback.d.ts → components-page/oauth-callback.d.ts} +1 -1
  104. package/dist/components-page/oauth-callback.d.ts.map +1 -0
  105. package/dist/{components/OAuthCallback.js → components-page/oauth-callback.js} +1 -4
  106. package/dist/{components/PasswordReset.d.ts → components-page/password-reset.d.ts} +1 -1
  107. package/dist/components-page/password-reset.d.ts.map +1 -0
  108. package/dist/components-page/password-reset.js +37 -0
  109. package/dist/components-page/sign-in.d.ts +4 -0
  110. package/dist/components-page/sign-in.d.ts.map +1 -0
  111. package/dist/components-page/sign-in.js +20 -0
  112. package/dist/components-page/sign-out.d.ts +2 -0
  113. package/dist/components-page/sign-out.d.ts.map +1 -0
  114. package/dist/components-page/sign-out.js +13 -0
  115. package/dist/components-page/sign-up.d.ts +4 -0
  116. package/dist/components-page/sign-up.d.ts.map +1 -0
  117. package/dist/components-page/sign-up.js +20 -0
  118. package/dist/{components/StackHandler.d.ts → components-page/stack-handler.d.ts} +1 -1
  119. package/dist/components-page/stack-handler.d.ts.map +1 -0
  120. package/dist/{components/StackHandler.js → components-page/stack-handler.js} +11 -11
  121. package/dist/elements/card-frame.d.ts +7 -0
  122. package/dist/elements/card-frame.d.ts.map +1 -0
  123. package/dist/elements/card-frame.js +24 -0
  124. package/dist/elements/card-header.d.ts +6 -0
  125. package/dist/elements/card-header.d.ts.map +1 -0
  126. package/dist/elements/card-header.js +5 -0
  127. package/dist/elements/credential-sign-in.d.ts +2 -0
  128. package/dist/elements/credential-sign-in.d.ts.map +1 -0
  129. package/dist/elements/credential-sign-in.js +56 -0
  130. package/dist/elements/credential-sign-up.d.ts +2 -0
  131. package/dist/elements/credential-sign-up.d.ts.map +1 -0
  132. package/dist/elements/credential-sign-up.js +73 -0
  133. package/dist/elements/divider-with-text.d.ts +4 -0
  134. package/dist/elements/divider-with-text.d.ts.map +1 -0
  135. package/dist/elements/divider-with-text.js +6 -0
  136. package/dist/elements/forgot-password.d.ts +4 -0
  137. package/dist/elements/forgot-password.d.ts.map +1 -0
  138. package/dist/elements/forgot-password.js +32 -0
  139. package/dist/elements/{FormWarning.d.ts → form-warning.d.ts} +1 -1
  140. package/dist/elements/form-warning.d.ts.map +1 -0
  141. package/dist/elements/{FormWarning.js → form-warning.js} +2 -1
  142. package/dist/elements/message-card.d.ts +7 -0
  143. package/dist/elements/message-card.d.ts.map +1 -0
  144. package/dist/elements/message-card.js +7 -0
  145. package/dist/elements/oauth-button.d.ts +5 -0
  146. package/dist/elements/oauth-button.d.ts.map +1 -0
  147. package/dist/elements/{OAuthButton.js → oauth-button.js} +8 -10
  148. package/dist/elements/oauth-group.d.ts +4 -0
  149. package/dist/elements/oauth-group.d.ts.map +1 -0
  150. package/dist/elements/oauth-group.js +8 -0
  151. package/dist/elements/{PasswordField.d.ts → password-field.d.ts} +1 -1
  152. package/dist/elements/password-field.d.ts.map +1 -0
  153. package/dist/elements/password-field.js +38 -0
  154. package/dist/elements/password-reset-inner.d.ts +5 -0
  155. package/dist/elements/password-reset-inner.d.ts.map +1 -0
  156. package/dist/elements/password-reset-inner.js +63 -0
  157. package/dist/elements/redirect-message-card.d.ts +5 -0
  158. package/dist/elements/redirect-message-card.d.ts.map +1 -0
  159. package/dist/elements/redirect-message-card.js +54 -0
  160. package/dist/index.d.ts +17 -8
  161. package/dist/index.d.ts.map +1 -1
  162. package/dist/index.js +17 -9
  163. package/dist/lib/auth.d.ts +1 -13
  164. package/dist/lib/auth.d.ts.map +1 -1
  165. package/dist/lib/auth.js +6 -30
  166. package/dist/lib/hooks.js +1 -1
  167. package/dist/lib/stack-app.d.ts +6 -8
  168. package/dist/lib/stack-app.d.ts.map +1 -1
  169. package/dist/lib/stack-app.js +43 -35
  170. package/dist/providers/component-provider.d.ts +25 -0
  171. package/dist/providers/component-provider.d.ts.map +1 -0
  172. package/dist/providers/component-provider.js +29 -0
  173. package/dist/providers/design-provider.d.ts +41 -0
  174. package/dist/providers/design-provider.d.ts.map +1 -0
  175. package/dist/providers/design-provider.js +65 -0
  176. package/dist/providers/joy-provider.d.ts +17 -0
  177. package/dist/providers/joy-provider.d.ts.map +1 -0
  178. package/dist/providers/joy-provider.js +27 -0
  179. package/dist/providers/{StackProviderClient.d.ts → stack-provider-client.d.ts} +1 -1
  180. package/dist/providers/stack-provider-client.d.ts.map +1 -0
  181. package/dist/providers/{StackProvider.d.ts → stack-provider.d.ts} +3 -3
  182. package/dist/providers/stack-provider.d.ts.map +1 -0
  183. package/dist/providers/{StackProvider.js → stack-provider.js} +1 -1
  184. package/dist/providers/styled-components-registry.d.ts +5 -0
  185. package/dist/providers/styled-components-registry.d.ts.map +1 -0
  186. package/dist/providers/styled-components-registry.js +18 -0
  187. package/dist/providers/theme-provider.d.ts +11 -0
  188. package/dist/providers/theme-provider.d.ts.map +1 -0
  189. package/dist/providers/theme-provider.js +20 -0
  190. package/dist/providers/ui-provider.d.ts +10 -0
  191. package/dist/providers/ui-provider.js +20 -0
  192. package/dist/utils/constants.d.ts +41 -0
  193. package/dist/utils/constants.d.ts.map +1 -0
  194. package/dist/utils/constants.js +22 -0
  195. package/dist/utils/email.d.ts.map +1 -1
  196. package/dist/utils/next.d.ts.map +1 -1
  197. package/dist/utils/react.d.ts.map +1 -1
  198. package/dist/utils/results.d.ts.map +1 -1
  199. package/dist/utils/url.d.ts.map +1 -1
  200. package/package.json +22 -27
  201. package/dist/components/EmailVerification.d.ts.map +0 -1
  202. package/dist/components/ForgotPassword.d.ts.map +0 -1
  203. package/dist/components/OAuthCallback.d.ts.map +0 -1
  204. package/dist/components/PasswordReset.d.ts.map +0 -1
  205. package/dist/components/SignIn.d.ts +0 -5
  206. package/dist/components/SignIn.d.ts.map +0 -1
  207. package/dist/components/SignIn.js +0 -20
  208. package/dist/components/SignOut.d.ts +0 -4
  209. package/dist/components/SignOut.d.ts.map +0 -1
  210. package/dist/components/SignUp.d.ts +0 -5
  211. package/dist/components/SignUp.d.ts.map +0 -1
  212. package/dist/components/SignUp.js +0 -19
  213. package/dist/components/StackHandler.d.ts.map +0 -1
  214. package/dist/elements/Button.d.ts +0 -11
  215. package/dist/elements/Button.d.ts.map +0 -1
  216. package/dist/elements/Button.js +0 -18
  217. package/dist/elements/CardFrame.d.ts +0 -6
  218. package/dist/elements/CardFrame.d.ts.map +0 -1
  219. package/dist/elements/CardFrame.js +0 -10
  220. package/dist/elements/CardHeader.d.ts.map +0 -1
  221. package/dist/elements/CardHeader.js +0 -4
  222. package/dist/elements/CredentialSignIn.d.ts +0 -4
  223. package/dist/elements/CredentialSignIn.d.ts.map +0 -1
  224. package/dist/elements/CredentialSignIn.js +0 -57
  225. package/dist/elements/CredentialSignUp.d.ts +0 -4
  226. package/dist/elements/CredentialSignUp.d.ts.map +0 -1
  227. package/dist/elements/CredentialSignUp.js +0 -73
  228. package/dist/elements/DividerWithText.d.ts.map +0 -1
  229. package/dist/elements/DividerWithText.js +0 -5
  230. package/dist/elements/ForgotPassword.d.ts.map +0 -1
  231. package/dist/elements/ForgotPassword.js +0 -32
  232. package/dist/elements/FormWarning.d.ts.map +0 -1
  233. package/dist/elements/MessageCard.d.ts.map +0 -1
  234. package/dist/elements/MessageCard.js +0 -5
  235. package/dist/elements/OAuthButton.d.ts +0 -6
  236. package/dist/elements/OAuthButton.d.ts.map +0 -1
  237. package/dist/elements/OAuthGroup.d.ts +0 -5
  238. package/dist/elements/OAuthGroup.d.ts.map +0 -1
  239. package/dist/elements/OAuthGroup.js +0 -8
  240. package/dist/elements/PasswordField.d.ts.map +0 -1
  241. package/dist/elements/PasswordField.js +0 -27
  242. package/dist/elements/PasswordResetInner.d.ts.map +0 -1
  243. package/dist/elements/RedirectMessageCard.d.ts.map +0 -1
  244. package/dist/providers/StackProvider.d.ts.map +0 -1
  245. package/dist/providers/StackProviderClient.d.ts.map +0 -1
  246. package/dist/tailwind.css +0 -1293
  247. package/dist/utils/types.d.ts +0 -4
  248. package/dist/utils/types.d.ts.map +0 -1
  249. package/dist/utils/types.js +0 -1
  250. /package/dist/providers/{StackProviderClient.js → stack-provider-client.js} +0 -0
package/dist/lib/auth.js CHANGED
@@ -35,51 +35,27 @@ function consumeOAuthCallbackQueryParams(expectedState) {
35
35
  // We use history.replaceState instead of location.assign(...) to
36
36
  // prevent an unnecessary reload
37
37
  window.history.replaceState({}, "", newUrl.toString());
38
- return { newUrl, originalUrl };
38
+ return originalUrl;
39
39
  }
40
40
  export async function callOAuthCallback(iface, tokenStore, redirectUrl) {
41
41
  // note: this part of the function (until the return) needs
42
42
  // to be synchronous, to prevent race conditions when
43
43
  // callOAuthCallback is called multiple times in parallel
44
44
  const { codeVerifier, state } = getVerifierAndState();
45
- const consumeResult = consumeOAuthCallbackQueryParams(state);
46
- if (!consumeResult) {
47
- return;
45
+ const originalUrl = consumeOAuthCallbackQueryParams(state);
46
+ if (!originalUrl) {
47
+ throw new Error("Invalid OAuth callback URL");
48
48
  }
49
49
  if (!codeVerifier || !state) {
50
- return;
50
+ throw new Error("Invalid OAuth callback URL");
51
51
  }
52
52
  // the rest can be asynchronous (we now know that we are the
53
53
  // intended recipient of the callback)
54
- const { newUrl, originalUrl } = consumeResult;
55
- if (!redirectUrl) {
56
- redirectUrl = newUrl.toString();
57
- }
58
- redirectUrl = redirectUrl.split("#")[0]; // remove hash
59
54
  try {
60
- await iface.callOAuthCallback(originalUrl.searchParams, redirectUrl, codeVerifier, state, tokenStore);
61
- // reload/redirect so the server can update now that the user is signed in
62
- window.location.assign(redirectUrl);
55
+ return await iface.callOAuthCallback(originalUrl.searchParams, constructRedirectUrl(redirectUrl), codeVerifier, state, tokenStore);
63
56
  }
64
57
  catch (e) {
65
58
  console.error("Error signing in during OAuth callback", e);
66
59
  throw new Error("Error signing in. Please try again.");
67
60
  }
68
61
  }
69
- export async function signInWithCredential(iface, tokenStore, { email, password, redirectUrl, }) {
70
- const errorCode = await iface.signInWithCredential(email, password, tokenStore);
71
- if (!errorCode) {
72
- redirectUrl = constructRedirectUrl(redirectUrl);
73
- window.location.assign(redirectUrl);
74
- }
75
- return errorCode;
76
- }
77
- export async function signUpWithCredential(iface, tokenStore, { email, password, redirectUrl, emailVerificationRedirectUrl = "/" }) {
78
- emailVerificationRedirectUrl = constructRedirectUrl(emailVerificationRedirectUrl);
79
- const errorCode = await iface.signUpWithCredential(email, password, emailVerificationRedirectUrl, tokenStore);
80
- if (!errorCode) {
81
- redirectUrl = constructRedirectUrl(redirectUrl);
82
- window.location.assign(redirectUrl);
83
- }
84
- return errorCode;
85
- }
package/dist/lib/hooks.js CHANGED
@@ -1,4 +1,4 @@
1
- import { StackContext } from "../providers/StackProviderClient";
1
+ import { StackContext } from "../providers/stack-provider-client";
2
2
  import { useContext } from "react";
3
3
  export function useUser(options) {
4
4
  return useStackApp().useUser(options);
@@ -7,13 +7,15 @@ export type TokenStoreOptions<HasTokenStore extends boolean = boolean> = HasToke
7
7
  export type HandlerUrls = {
8
8
  handler: string;
9
9
  signIn: string;
10
+ afterSignIn: string;
10
11
  signUp: string;
12
+ afterSignUp: string;
11
13
  signOut: string;
14
+ afterSignOut: string;
12
15
  emailVerification: string;
13
16
  passwordReset: string;
14
17
  forgotPassword: string;
15
18
  home: string;
16
- userHome: string;
17
19
  oauthCallback: string;
18
20
  };
19
21
  export type StackClientAppConstructorOptions<HasTokenStore extends boolean, ProjectId extends string> = {
@@ -38,7 +40,7 @@ export declare const stackAppInternalsSymbol: unique symbol;
38
40
  type Auth<T, C> = {
39
41
  readonly tokenStore: ReadonlyTokenStore;
40
42
  update(this: T, user: Partial<C>): Promise<void>;
41
- signOut(this: T, redirectUrl?: string): Promise<never>;
43
+ signOut(this: T): Promise<void>;
42
44
  };
43
45
  export type User = {
44
46
  readonly projectId: string;
@@ -139,16 +141,12 @@ export type StackClientApp<HasTokenStore extends boolean = boolean, ProjectId ex
139
141
  signInWithCredential(options: {
140
142
  email: string;
141
143
  password: string;
142
- redirectUrl?: string;
143
144
  }): Promise<SignInErrorCode | undefined>;
144
145
  signUpWithCredential(options: {
145
146
  email: string;
146
147
  password: string;
147
- redirectUrl?: string;
148
148
  }): Promise<SignUpErrorCode | undefined>;
149
- callOAuthCallback(options?: {
150
- redirectUrl?: string;
151
- }): Promise<void>;
149
+ callOAuthCallback(): Promise<void>;
152
150
  sendForgotPasswordEmail(email: string): Promise<void>;
153
151
  resetPassword(options: {
154
152
  code: string;
@@ -160,7 +158,7 @@ export type StackClientApp<HasTokenStore extends boolean = boolean, ProjectId ex
160
158
  toClientJson(): Promise<StackClientAppJson<HasTokenStore, ProjectId>>;
161
159
  };
162
160
  } & AsyncStoreProperty<"project", ClientProjectJson, false> & {
163
- [K in `redirectTo${Capitalize<keyof Omit<HandlerUrls, 'oauthCallback'>>}`]: () => Promise<never>;
161
+ [K in `redirectTo${Capitalize<keyof Omit<HandlerUrls, 'handler' | 'oauthCallback'>>}`]: () => Promise<never>;
164
162
  } & (HasTokenStore extends false ? {} : {
165
163
  redirectToOAuthCallback(): Promise<never>;
166
164
  useUser(options: GetUserOptions & {
@@ -1 +1 @@
1
- {"version":3,"file":"stack-app.d.ts","sourceRoot":"","sources":["../../src/lib/stack-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stack-app.d.ts","sourceRoot":"","sources":["../../src/lib/stack-app.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import { suspendIfSsr } from "@stackframe/stack-shared/dist/utils/react";
8
8
  import { AsyncStore } from "@stackframe/stack-shared/dist/utils/stores";
9
9
  import { getProductionModeErrors } from "@stackframe/stack-shared/dist/interface/clientInterface";
10
10
  import { isClient } from "../utils/next";
11
- import { callOAuthCallback, signInWithCredential, signInWithOAuth, signUpWithCredential } from "./auth";
11
+ import { callOAuthCallback, signInWithOAuth } from "./auth";
12
12
  import { RedirectType, redirect, useRouter } from "next/navigation";
13
13
  import { constructRedirectUrl } from "../utils/url";
14
14
  import { filterUndefined } from "@stackframe/stack-shared/dist/utils/objects";
@@ -20,14 +20,16 @@ function getUrls(partial) {
20
20
  return {
21
21
  handler,
22
22
  signIn: `${handler}/signin`,
23
+ afterSignIn: "/",
23
24
  signUp: `${handler}/signup`,
25
+ afterSignUp: "/",
24
26
  signOut: `${handler}/signout`,
27
+ afterSignOut: "/",
25
28
  emailVerification: `${handler}/email-verification`,
26
29
  passwordReset: `${handler}/password-reset`,
27
30
  forgotPassword: `${handler}/forgot-password`,
28
31
  oauthCallback: `${handler}/oauth-callback`,
29
32
  home: "/",
30
- userHome: "/",
31
33
  ...filterUndefined(partial),
32
34
  };
33
35
  }
@@ -122,9 +124,9 @@ function getTokenStore(tokenStoreOptions) {
122
124
  return (tokenStoreInitializers.get(tokenStoreOptions) ?? throwErr(`Invalid token store ${tokenStoreOptions}`))();
123
125
  }
124
126
  const loadingSentinel = Symbol("stackAppCacheLoadingSentinel");
125
- function useCache(cache, dependencies) {
127
+ function useCache(cache, dependencies, caller) {
126
128
  // we explicitly don't want to run this hook in SSR
127
- suspendIfSsr();
129
+ suspendIfSsr(caller);
128
130
  const subscribe = useCallback((cb) => {
129
131
  const { unsubscribe } = cache.onChange(dependencies, () => cb());
130
132
  return unsubscribe;
@@ -232,8 +234,8 @@ class _StackClientAppImpl {
232
234
  update(update) {
233
235
  return app._updateUser(update, tokenStore);
234
236
  },
235
- signOut(redirectUrl) {
236
- return app._signOut(tokenStore, redirectUrl);
237
+ signOut() {
238
+ return app._signOut(tokenStore);
237
239
  },
238
240
  };
239
241
  Object.freeze(res);
@@ -302,7 +304,6 @@ class _StackClientAppImpl {
302
304
  window.location.href = this.urls[handlerName];
303
305
  return neverResolve();
304
306
  }
305
- async redirectToHandler() { return await this._redirectTo("handler"); }
306
307
  async redirectToSignIn() { return await this._redirectTo("signIn"); }
307
308
  async redirectToSignUp() { return await this._redirectTo("signUp"); }
308
309
  async redirectToSignOut() { return await this._redirectTo("signOut"); }
@@ -310,8 +311,10 @@ class _StackClientAppImpl {
310
311
  async redirectToPasswordReset() { return await this._redirectTo("passwordReset"); }
311
312
  async redirectToForgotPassword() { return await this._redirectTo("forgotPassword"); }
312
313
  async redirectToHome() { return await this._redirectTo("home"); }
313
- async redirectToUserHome() { return await this._redirectTo("userHome"); }
314
314
  async redirectToOAuthCallback() { return await this._redirectTo("oauthCallback"); }
315
+ async redirectToAfterSignIn() { return await this._redirectTo("afterSignIn"); }
316
+ async redirectToAfterSignUp() { return await this._redirectTo("afterSignUp"); }
317
+ async redirectToAfterSignOut() { return await this._redirectTo("afterSignOut"); }
315
318
  async sendForgotPasswordEmail(email) {
316
319
  const redirectUrl = constructRedirectUrl(this.urls.passwordReset);
317
320
  await this._interface.sendForgotPasswordEmail(email, redirectUrl);
@@ -349,7 +352,7 @@ class _StackClientAppImpl {
349
352
  this._ensurePersistentTokenStore();
350
353
  const router = useRouter();
351
354
  const tokenStore = getTokenStore(this._tokenStoreOptions);
352
- const userJson = useCache(this._currentUserCache, [tokenStore]);
355
+ const userJson = useCache(this._currentUserCache, [tokenStore], "useUser()");
353
356
  if (userJson === null) {
354
357
  switch (options?.or) {
355
358
  case 'redirect': {
@@ -384,45 +387,50 @@ class _StackClientAppImpl {
384
387
  await signInWithOAuth(this._interface, { provider, redirectUrl: this.urls.oauthCallback });
385
388
  }
386
389
  async signInWithCredential(options) {
387
- if (!options.redirectUrl) {
388
- options.redirectUrl = constructRedirectUrl(options.redirectUrl);
389
- }
390
390
  this._ensurePersistentTokenStore();
391
391
  const tokenStore = getTokenStore(this._tokenStoreOptions);
392
- return await signInWithCredential(this._interface, tokenStore, options);
392
+ const errorCode = await this._interface.signInWithCredential(options.email, options.password, tokenStore);
393
+ if (!errorCode) {
394
+ window.location.assign(this.urls.afterSignIn);
395
+ }
396
+ return errorCode;
393
397
  }
394
398
  async signUpWithCredential(options) {
395
- if (!options.redirectUrl) {
396
- options.redirectUrl = constructRedirectUrl(options.redirectUrl);
397
- }
398
399
  this._ensurePersistentTokenStore();
399
400
  const tokenStore = getTokenStore(this._tokenStoreOptions);
400
- return await signUpWithCredential(this._interface, tokenStore, options);
401
+ const emailVerificationRedirectUrl = constructRedirectUrl(this.urls.emailVerification);
402
+ const errorCode = await this._interface.signUpWithCredential(options.email, options.password, emailVerificationRedirectUrl, tokenStore);
403
+ if (!errorCode) {
404
+ window.location.assign(this.urls.afterSignUp);
405
+ }
406
+ return errorCode;
401
407
  }
402
- async callOAuthCallback(options = {}) {
408
+ async callOAuthCallback() {
403
409
  this._ensurePersistentTokenStore();
404
410
  const tokenStore = getTokenStore(this._tokenStoreOptions);
405
- await callOAuthCallback(this._interface, tokenStore, options.redirectUrl);
411
+ const result = await callOAuthCallback(this._interface, tokenStore, this.urls.oauthCallback);
412
+ if (result.newUser) {
413
+ await window.location.replace(this.urls.afterSignUp);
414
+ }
415
+ else {
416
+ await window.location.replace(this.urls.afterSignIn);
417
+ }
406
418
  }
407
- async _signOut(tokenStore, redirectUrl) {
408
- redirectUrl = constructRedirectUrl(redirectUrl);
419
+ async _signOut(tokenStore) {
409
420
  await this._interface.signOut(tokenStore);
410
- window.location.assign(redirectUrl);
411
- return await neverResolve();
421
+ window.location.assign(this.urls.afterSignOut);
412
422
  }
413
- async signOut(redirectUrl) {
423
+ async signOut() {
414
424
  const user = await this.getUser();
415
425
  if (user) {
416
- await user.signOut(redirectUrl);
426
+ await user.signOut();
417
427
  }
418
- window.location.assign(redirectUrl);
419
- return await neverResolve();
420
428
  }
421
429
  async getProject() {
422
430
  return await this._currentProjectCache.getOrWait([], "never");
423
431
  }
424
432
  useProject() {
425
- return useCache(this._currentProjectCache, []);
433
+ return useCache(this._currentProjectCache, [], "useProject()");
426
434
  }
427
435
  onProjectChange(callback) {
428
436
  return this._currentProjectCache.onChange([], callback);
@@ -436,7 +444,7 @@ class _StackClientAppImpl {
436
444
  useOwnedProjects() {
437
445
  this._ensureInternalProject();
438
446
  const tokenStore = getTokenStore(this._tokenStoreOptions);
439
- const json = useCache(this._ownedProjectsCache, [tokenStore]);
447
+ const json = useCache(this._ownedProjectsCache, [tokenStore], "useOwnedProjects()");
440
448
  return json.map((j) => this._projectAdminFromJson(j, this._createAdminInterface(j.id, tokenStore), () => this._refreshOwnedProjects(tokenStore)));
441
449
  }
442
450
  onOwnedProjectsChange(callback) {
@@ -577,8 +585,8 @@ class _StackServerAppImpl extends _StackClientAppImpl {
577
585
  await app._refreshUser(tokenStore);
578
586
  return res;
579
587
  },
580
- signOut(redirectUrl) {
581
- return app._signOut(tokenStore, redirectUrl);
588
+ signOut() {
589
+ return app._signOut(tokenStore);
582
590
  },
583
591
  getClientUser() {
584
592
  return app._currentUserFromJson(json, tokenStore);
@@ -609,7 +617,7 @@ class _StackServerAppImpl extends _StackClientAppImpl {
609
617
  useServerUser(options) {
610
618
  this._ensurePersistentTokenStore();
611
619
  const tokenStore = getTokenStore(this._tokenStoreOptions);
612
- const userJson = useCache(this._currentServerUserCache, [tokenStore]);
620
+ const userJson = useCache(this._currentServerUserCache, [tokenStore], "useServerUser()");
613
621
  if (options?.required && userJson === null) {
614
622
  use(this.redirectToSignIn());
615
623
  }
@@ -627,7 +635,7 @@ class _StackServerAppImpl extends _StackClientAppImpl {
627
635
  return json.map((j) => this._serverUserFromJson(j));
628
636
  }
629
637
  useServerUsers() {
630
- const json = useCache(this._serverUsersCache, []);
638
+ const json = useCache(this._serverUsersCache, [], "useServerUsers()");
631
639
  return json.map((j) => this._serverUserFromJson(j));
632
640
  }
633
641
  onServerUsersChange(callback) {
@@ -717,7 +725,7 @@ class _StackAdminAppImpl extends _StackServerAppImpl {
717
725
  return this._projectAdminFromJson(await this._adminProjectCache.getOrWait([], "never"), this._interface, () => this._refreshProject());
718
726
  }
719
727
  useProjectAdmin() {
720
- return this._projectAdminFromJson(useCache(this._adminProjectCache, []), this._interface, () => this._refreshProject());
728
+ return this._projectAdminFromJson(useCache(this._adminProjectCache, [], "useProjectAdmin()"), this._interface, () => this._refreshProject());
721
729
  }
722
730
  onProjectAdminChange(callback) {
723
731
  return this._adminProjectCache.onChange([], (project) => {
@@ -729,7 +737,7 @@ class _StackAdminAppImpl extends _StackServerAppImpl {
729
737
  return json.map((j) => this._createApiKeySetFromJson(j));
730
738
  }
731
739
  useApiKeySets() {
732
- const json = useCache(this._apiKeySetsCache, []);
740
+ const json = useCache(this._apiKeySetsCache, [], "useApiKeySets()");
733
741
  return json.map((j) => this._createApiKeySetFromJson(j));
734
742
  }
735
743
  onApiKeySetsChange(callback) {
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { ButtonProps } from '../components-core/button';
3
+ import { ContainerProps } from '../components-core/container';
4
+ import { DividerProps } from '../components-core/divider';
5
+ import { InputProps } from '../components-core/input';
6
+ import { LinkProps } from '../components-core/link';
7
+ import { LabelProps } from '../components-core/label';
8
+ import { TextProps } from '../components-core/text';
9
+ export type Components = {
10
+ Button: React.ComponentType<ButtonProps>;
11
+ Container: React.ComponentType<ContainerProps>;
12
+ Divider: React.ComponentType<DividerProps>;
13
+ Input: React.ComponentType<InputProps>;
14
+ Label: React.ComponentType<LabelProps>;
15
+ Link: React.ComponentType<LinkProps>;
16
+ Text: React.ComponentType<TextProps>;
17
+ };
18
+ export type ComponentConfig = {
19
+ components?: Partial<Components>;
20
+ };
21
+ export declare function useComponents(): Components;
22
+ export declare function StackComponentProvider(props: {
23
+ children?: React.ReactNode;
24
+ } & ComponentConfig): import("react/jsx-runtime").JSX.Element;
25
+ //# sourceMappingURL=component-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-provider.d.ts","sourceRoot":"","sources":["../../src/providers/component-provider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAe,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAkB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAgB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAc,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAa,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAc,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAa,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IACzC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IAC/C,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAC3C,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACvC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACvC,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;CACtC,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CAClC,CAAA;AAID,wBAAgB,aAAa,eAM5B;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,GAAG,eAAe,2CAc7F"}
@@ -0,0 +1,29 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { createContext, useContext } from 'react';
4
+ import Button from '../components-core/button';
5
+ import Container from '../components-core/container';
6
+ import Divider from '../components-core/divider';
7
+ import Input from '../components-core/input';
8
+ import Link from '../components-core/link';
9
+ import Label from '../components-core/label';
10
+ import Text from '../components-core/text';
11
+ const ComponentContext = createContext(undefined);
12
+ export function useComponents() {
13
+ const context = useContext(ComponentContext);
14
+ if (!context) {
15
+ throw new Error('Stack UI components must be used within a StackTheme');
16
+ }
17
+ return context;
18
+ }
19
+ export function StackComponentProvider(props) {
20
+ return (_jsx(ComponentContext.Provider, { value: {
21
+ Button: props.components?.Button || Button,
22
+ Container: props.components?.Container || Container,
23
+ Divider: props.components?.Divider || Divider,
24
+ Input: props.components?.Input || Input,
25
+ Label: props.components?.Label || Label,
26
+ Link: props.components?.Link || Link,
27
+ Text: props.components?.Text || Text,
28
+ }, children: props.children }));
29
+ }
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ type ColorPalette = {
3
+ primaryColor: string;
4
+ secondaryColor: string;
5
+ primaryBgColor: string;
6
+ secondaryBgColor: string;
7
+ neutralColor: string;
8
+ };
9
+ type Breakpoints = {
10
+ xs: number;
11
+ sm: number;
12
+ md: number;
13
+ lg: number;
14
+ xl: number;
15
+ };
16
+ type DesignContextValue = {
17
+ colors: ColorPalette;
18
+ breakpoints: Breakpoints;
19
+ colorMode: 'dark' | 'light';
20
+ setColorMode: (theme: 'dark' | 'light') => void;
21
+ };
22
+ export type DesignConfig = {
23
+ colors?: {
24
+ dark: Partial<ColorPalette>;
25
+ light: Partial<ColorPalette>;
26
+ };
27
+ breakpoints?: Partial<Breakpoints>;
28
+ } & ({} | {
29
+ colorMode: 'dark' | 'light';
30
+ setColorMode: (theme: 'dark' | 'light') => void;
31
+ });
32
+ export declare function hasCustomColorMode(config: DesignConfig): config is DesignConfig & {
33
+ colorMode: 'dark' | 'light';
34
+ setColorMode: (theme: 'dark' | 'light') => void;
35
+ };
36
+ export declare function StackDesignProvider(props: {
37
+ children?: React.ReactNode;
38
+ } & DesignConfig): import("react/jsx-runtime").JSX.Element | null;
39
+ export declare function useDesign(): DesignContextValue;
40
+ export {};
41
+ //# sourceMappingURL=design-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-provider.d.ts","sourceRoot":"","sources":["../../src/providers/design-provider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,KAAK,YAAY,GAAG;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,MAAM,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC;CACjD,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC5B,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;KAC9B,CAAC;IACF,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;CACpC,GAAG,CACF,EAAE,GACA;IACA,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC;CACjD,CACF,CAAA;AAYD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,YAAY,GAAG;IACjF,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC;CACjD,CAEA;AA4BD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,GAAG,YAAY,kDA6BvF;AAED,wBAAgB,SAAS,IAAI,kBAAkB,CAM9C"}
@@ -0,0 +1,65 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useTheme } from "next-themes";
4
+ import { createContext, useContext, useEffect, useState } from "react";
5
+ import { DEFAULT_COLORS } from '../utils/constants';
6
+ const DesignContext = createContext(undefined);
7
+ const defaultBreakpoints = {
8
+ xs: 400,
9
+ sm: 600,
10
+ md: 900,
11
+ lg: 1200,
12
+ xl: 1536,
13
+ };
14
+ export function hasCustomColorMode(config) {
15
+ return 'colorMode' in config && 'setColorMode' in config;
16
+ }
17
+ function getColors(theme, colors) {
18
+ return { ...DEFAULT_COLORS[theme], ...colors?.[theme] };
19
+ }
20
+ const useColorMode = (props) => {
21
+ const { resolvedTheme: nextColorMode, setTheme: setNextColorMode } = useTheme();
22
+ const nextColorModeValue = nextColorMode === 'dark' ? 'dark' : 'light';
23
+ if (hasCustomColorMode(props)) {
24
+ return [
25
+ props.colorMode,
26
+ props.setColorMode,
27
+ ];
28
+ }
29
+ else {
30
+ return [
31
+ nextColorModeValue,
32
+ setNextColorMode,
33
+ ];
34
+ }
35
+ };
36
+ export function StackDesignProvider(props) {
37
+ const [mounted, setMounted] = useState(false);
38
+ const [colorMode, setColorMode] = useColorMode(props);
39
+ const [designValue, setDesignValue] = useState({
40
+ colors: getColors(colorMode, props.colors),
41
+ breakpoints: { ...defaultBreakpoints, ...props.breakpoints },
42
+ colorMode,
43
+ setColorMode,
44
+ });
45
+ useEffect(() => {
46
+ setDesignValue((v) => ({
47
+ ...v,
48
+ colors: getColors(colorMode, props.colors),
49
+ colorMode,
50
+ }));
51
+ }, [colorMode]);
52
+ useEffect(() => {
53
+ setMounted(true);
54
+ }, []);
55
+ if (!mounted)
56
+ return null;
57
+ return (_jsx(DesignContext.Provider, { value: designValue, children: props.children }));
58
+ }
59
+ export function useDesign() {
60
+ const context = useContext(DesignContext);
61
+ if (!context) {
62
+ throw new Error("useDesign must be used within a StackTheme");
63
+ }
64
+ return context;
65
+ }
@@ -0,0 +1,17 @@
1
+ /// <reference types="react" />
2
+ import { ThemeConfig } from "./theme-provider";
3
+ import Button from '../components-core-joy/button';
4
+ import Input from '../components-core-joy/input';
5
+ import Text from '../components-core-joy/text';
6
+ import Divider from '../components-core-joy/divider';
7
+ export declare const defaultComponents: {
8
+ Button: typeof Button;
9
+ Input: typeof Input;
10
+ Text: typeof Text;
11
+ Divider: typeof Divider;
12
+ };
13
+ export declare function StackJoyTheme(props: {
14
+ theme?: ThemeConfig;
15
+ children?: React.ReactNode;
16
+ }): import("react/jsx-runtime").JSX.Element;
17
+ //# sourceMappingURL=joy-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"joy-provider.d.ts","sourceRoot":"","sources":["../../src/providers/joy-provider.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAc,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,MAAM,MAAM,+BAA+B,CAAC;AACnD,OAAO,KAAK,MAAM,8BAA8B,CAAC;AACjD,OAAO,IAAI,MAAM,6BAA6B,CAAC;AAC/C,OAAO,OAAO,MAAM,gCAAgC,CAAC;AAErD,eAAO,MAAM,iBAAiB;;;;;CAK7B,CAAC;AAEF,wBAAgB,aAAa,CAAC,KAAK,EAAG;IAAE,KAAK,CAAC,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAiBxF"}
@@ -0,0 +1,27 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { StackTheme } from "./theme-provider";
4
+ import { useColorScheme } from "@mui/joy";
5
+ import Button from '../components-core-joy/button';
6
+ import Input from '../components-core-joy/input';
7
+ import Text from '../components-core-joy/text';
8
+ import Divider from '../components-core-joy/divider';
9
+ export const defaultComponents = {
10
+ Button,
11
+ Input,
12
+ Text,
13
+ Divider
14
+ };
15
+ export function StackJoyTheme(props) {
16
+ const { mode, setMode } = useColorScheme();
17
+ const mergedTheme = {
18
+ components: {
19
+ ...defaultComponents,
20
+ ...props.theme?.components,
21
+ },
22
+ colorMode: mode,
23
+ setColorMode: setMode,
24
+ ...props.theme,
25
+ };
26
+ return (_jsx(StackTheme, { theme: mergedTheme, children: props.children }));
27
+ }
@@ -7,4 +7,4 @@ export declare function StackProviderClient(props: {
7
7
  appJsonPromise: Promise<StackClientAppJson<true, string>>;
8
8
  children?: React.ReactNode;
9
9
  }): import("react/jsx-runtime").JSX.Element;
10
- //# sourceMappingURL=StackProviderClient.d.ts.map
10
+ //# sourceMappingURL=stack-provider-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-provider-client.d.ts","sourceRoot":"","sources":["../../src/providers/stack-provider-client.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAA2B,MAAM,kBAAkB,CAAC;AAC/F,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,eAAO,MAAM,YAAY;SAClB,eAAe,IAAI,CAAC;SACnB,CAAC;AAET,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,cAAc,EAAE,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,2CAaA"}
@@ -1,7 +1,7 @@
1
- import { ReactNode } from 'react';
1
+ import React from 'react';
2
2
  import { StackClientApp } from '../lib/stack-app';
3
3
  export default function StackProvider({ children, app, }: {
4
- children: ReactNode;
4
+ children: React.ReactNode;
5
5
  app: StackClientApp<true>;
6
6
  }): import("react/jsx-runtime").JSX.Element;
7
- //# sourceMappingURL=StackProvider.d.ts.map
7
+ //# sourceMappingURL=stack-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-provider.d.ts","sourceRoot":"","sources":["../../src/providers/stack-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAA2B,MAAM,kBAAkB,CAAC;AAI3E,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,QAAQ,EACR,GAAG,GACJ,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;CAC3B,2CAMA"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { stackAppInternalsSymbol } from '../lib/stack-app';
3
- import { StackProviderClient } from './StackProviderClient';
3
+ import { StackProviderClient } from './stack-provider-client';
4
4
  export default function StackProvider({ children, app, }) {
5
5
  return (_jsx(StackProviderClient, { appJsonPromise: app[stackAppInternalsSymbol].toClientJson(), children: children }));
6
6
  }
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export default function StyledComponentsRegistry({ children, }: {
3
+ children: React.ReactNode;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=styled-components-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styled-components-registry.d.ts","sourceRoot":"","sources":["../../src/providers/styled-components-registry.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAIxC,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,EAC/C,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAkBA"}