@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
@@ -2,4 +2,4 @@ export default function RedirectMessageCard({ type, fullPage, }: {
2
2
  type: 'signedIn' | 'signedOut' | 'emailSent' | 'passwordReset' | 'emailVerified';
3
3
  fullPage?: boolean;
4
4
  }): import("react/jsx-runtime").JSX.Element;
5
- //# sourceMappingURL=RedirectMessageCard.d.ts.map
5
+ //# sourceMappingURL=redirect-message-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redirect-message-card.d.ts","sourceRoot":"","sources":["../../src/components/redirect-message-card.tsx"],"names":[],"mappings":"AAOA,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,IAAI,EACJ,QAAc,GACf,EAAE;IACD,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,eAAe,GAAG,eAAe,CAAC;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,2CAoEA"}
@@ -2,49 +2,53 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useRouter } from "next/navigation";
4
4
  import { useStackApp } from "..";
5
- import MessageCard from "./MessageCard";
5
+ import MessageCard from "./message-card";
6
+ import { Text, Button } from "../components-core";
6
7
  export default function RedirectMessageCard({ type, fullPage = false, }) {
7
8
  const stackApp = useStackApp();
8
9
  const router = useRouter();
9
10
  let title;
10
- let url;
11
+ let primaryUrl;
12
+ let secondaryUrl = null;
11
13
  let message = null;
12
- let buttonText;
14
+ let primaryButton;
15
+ let secondaryButton = null;
13
16
  switch (type) {
14
17
  case 'signedIn': {
15
18
  title = "You are already signed in";
16
- message = 'You are already signed in. You can click the button below to sign out.';
17
- url = stackApp.urls.signOut;
18
- buttonText = "Sign Out";
19
+ primaryUrl = stackApp.urls.home;
20
+ secondaryUrl = stackApp.urls.signOut;
21
+ primaryButton = "Go to Home";
22
+ secondaryButton = "Sign Out";
19
23
  break;
20
24
  }
21
25
  case 'signedOut': {
22
26
  title = "You are not currently signed in.";
23
- url = stackApp.urls.home;
24
- buttonText = "Go to Home";
27
+ primaryUrl = stackApp.urls.home;
28
+ primaryButton = "Go to Home";
25
29
  break;
26
30
  }
27
31
  case 'emailSent': {
28
32
  title = "Email sent!";
29
33
  message = 'Please check your inbox. Make sure to check your spam folder.';
30
- url = stackApp.urls.home;
31
- buttonText = "Go to Home";
34
+ primaryUrl = stackApp.urls.home;
35
+ primaryButton = "Go to Home";
32
36
  break;
33
37
  }
34
38
  case 'passwordReset': {
35
39
  title = "Password reset successfully!";
36
40
  message = 'Your password has been reset. You can now sign in with your new password.';
37
- url = stackApp.urls.signIn;
38
- buttonText = "Go to Sign In";
41
+ primaryUrl = stackApp.urls.signIn;
42
+ primaryButton = "Go to Sign In";
39
43
  break;
40
44
  }
41
45
  case 'emailVerified': {
42
46
  title = "Email verified!";
43
47
  message = 'Your have successfully verified your email.';
44
- url = stackApp.urls.home;
45
- buttonText = "Go to Home";
48
+ primaryUrl = stackApp.urls.home;
49
+ primaryButton = "Go to Home";
46
50
  break;
47
51
  }
48
52
  }
49
- return (_jsxs(MessageCard, { title: title, fullPage: fullPage, children: [message && _jsx("p", { className: 'wl_mb-8', children: message }), _jsx("button", { className: 'wl_btn wl_btn-primary', onClick: () => router.push(url.toString()), children: buttonText })] }));
53
+ return (_jsxs(MessageCard, { title: title, fullPage: fullPage, children: [message && _jsx(Text, { children: message }), _jsxs("div", { style: { display: 'flex', flexDirection: 'row', alignItems: 'center', justifyContent: 'center', gap: '16px', marginTop: 20 }, children: [secondaryButton && (_jsx(Button, { variant: "secondary", onClick: () => router.push(stackApp.urls.signOut.toString()), children: secondaryButton })), _jsx(Button, { onClick: () => router.push(primaryUrl.toString()), children: primaryButton })] })] }));
50
54
  }
@@ -0,0 +1,4 @@
1
+ export default function SignIn({ fullPage }: {
2
+ fullPage?: boolean;
3
+ }): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=sign-in.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign-in.d.ts","sourceRoot":"","sources":["../../src/components/sign-in.tsx"],"names":[],"mappings":"AAWA,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,QAAc,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,2CA0BxE"}
@@ -0,0 +1,20 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import CredentialSignIn from '../elements/credential-sign-in';
4
+ import DividerWithText from '../elements/divider-with-text';
5
+ import OAuthGroup from '../elements/oauth-group';
6
+ import CardFrame from '../elements/card-frame';
7
+ import CardHeader from '../elements/card-header';
8
+ import { useUser, useStackApp } from '..';
9
+ import RedirectMessageCard from '../elements/redirect-message-card';
10
+ import { Link, Text } from '@stackframe/stack-ui';
11
+ export default function SignIn({ fullPage = false }) {
12
+ const stackApp = useStackApp();
13
+ const user = useUser();
14
+ const project = stackApp.useProject();
15
+ if (user) {
16
+ return _jsx(RedirectMessageCard, { type: 'signedIn', fullPage: fullPage });
17
+ }
18
+ const enableDivider = project.credentialEnabled && project.oauthProviders.filter(p => p.enabled).length > 0;
19
+ return (_jsxs(CardFrame, { fullPage: fullPage, children: [_jsx(CardHeader, { title: "Sign In to Your Account", children: _jsxs(Text, { children: ["Don't have an account? ", _jsx(Link, { href: stackApp.urls['signUp'], children: "Sign up" })] }) }), _jsx(OAuthGroup, { type: 'signin' }), enableDivider && _jsx(DividerWithText, { text: 'OR' }), project.credentialEnabled && _jsx(CredentialSignIn, {})] }));
20
+ }
@@ -0,0 +1,2 @@
1
+ export default function Signout(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=sign-out.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign-out.d.ts","sourceRoot":"","sources":["../../src/components/sign-out.tsx"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,UAAU,OAAO,4CAS9B"}
@@ -1,12 +1,13 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { use } from "react";
4
- import { useUser } from "..";
5
- import GoHomeMessageCard from "../elements/RedirectMessageCard";
6
- export default function Signout({ redirectUrl }) {
4
+ import { useStackApp, useUser } from "..";
5
+ import GoHomeMessageCard from "../elements/redirect-message-card";
6
+ export default function Signout() {
7
7
  const user = useUser();
8
+ const app = useStackApp();
8
9
  if (user) {
9
- use(user.signOut(redirectUrl));
10
+ use(user.signOut());
10
11
  }
11
12
  return _jsx(GoHomeMessageCard, { type: 'signedOut', fullPage: true });
12
13
  }
@@ -0,0 +1,4 @@
1
+ export default function SignUp({ fullPage }: {
2
+ fullPage?: boolean;
3
+ }): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=sign-up.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign-up.d.ts","sourceRoot":"","sources":["../../src/components/sign-up.tsx"],"names":[],"mappings":"AAWA,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,QAAc,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,2CA0BxE"}
@@ -0,0 +1,20 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import DividerWithText from '../elements/divider-with-text';
4
+ import OAuthGroup from '../elements/oauth-group';
5
+ import CardFrame from '../elements/card-frame';
6
+ import CredentialSignUp from '../elements/credential-sign-up';
7
+ import CardHeader from '../elements/card-header';
8
+ import { useUser, useStackApp } from '..';
9
+ import RedirectMessageCard from '../elements/redirect-message-card';
10
+ import { Link, Text } from '@stackframe/stack-ui';
11
+ export default function SignUp({ fullPage = false }) {
12
+ const stackApp = useStackApp();
13
+ const user = useUser();
14
+ const project = stackApp.useProject();
15
+ if (user) {
16
+ return _jsx(RedirectMessageCard, { type: 'signedIn', fullPage: fullPage });
17
+ }
18
+ const enableDivider = project.credentialEnabled && project.oauthProviders.filter(p => p.enabled).length > 0;
19
+ return (_jsxs(CardFrame, { fullPage: fullPage, children: [_jsx(CardHeader, { title: "Create a New Account", children: _jsxs(Text, { children: ["Already have an account? ", _jsx(Link, { href: stackApp.urls['signIn'], children: "Sign in" })] }) }), _jsx(OAuthGroup, { type: 'signup' }), enableDivider && _jsx(DividerWithText, { text: 'OR' }), project.credentialEnabled && _jsx(CredentialSignUp, {})] }));
20
+ }
@@ -0,0 +1,9 @@
1
+ import { StackServerApp } from "..";
2
+ export default function StackHandler<HasTokenStore extends boolean>({ app, params: { stack }, searchParams, }: {
3
+ app: StackServerApp<HasTokenStore>;
4
+ params?: {
5
+ stack?: string[];
6
+ };
7
+ searchParams?: Record<string, string>;
8
+ }): Promise<import("react/jsx-runtime").JSX.Element>;
9
+ //# sourceMappingURL=stack-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-handler.d.ts","sourceRoot":"","sources":["../../src/components/stack-handler.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,cAAc,EAAE,MAAM,IAAI,CAAC;AAOnD,wBAA8B,YAAY,CAAC,aAAa,SAAS,OAAO,EAAE,EACxE,GAAG,EACH,MAAM,EAAE,EAAE,KAAK,EAAO,EACtB,YAAiB,GAClB,EAAE;IACD,GAAG,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC,oDAuDA"}
@@ -0,0 +1,58 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import SignUp from "./sign-up";
3
+ import SignIn from "./sign-in";
4
+ import { RedirectType, notFound, redirect } from 'next/navigation';
5
+ import EmailVerification from "./email-verification";
6
+ import { PasswordReset } from "..";
7
+ import MessageCard from "../elements/message-card";
8
+ import Signout from "./sign-out";
9
+ import ForgotPassword from "./forgot-password";
10
+ import OAuthCallback from "./oauth-callback";
11
+ export default async function StackHandler({ app, params: { stack } = {}, searchParams = {}, }) {
12
+ if (!stack) {
13
+ return (_jsx(MessageCard, { title: "Invalid Stack Handler Setup", fullPage: true, children: _jsx("p", { children: "Can't use Stack handler at this location. Make sure that the file is in a folder called [...stack]." }) }));
14
+ }
15
+ function redirectIfNotHandler(name) {
16
+ const url = app.urls[name];
17
+ const handlerUrl = app.urls.handler;
18
+ if (url.startsWith(handlerUrl)) {
19
+ // don't redirect if the url is a handler url
20
+ return;
21
+ }
22
+ redirect(url, RedirectType.replace);
23
+ }
24
+ const path = stack.join('/');
25
+ switch (path) {
26
+ case 'signin': {
27
+ redirectIfNotHandler('signIn');
28
+ return _jsx(SignIn, { fullPage: true });
29
+ }
30
+ case 'signup': {
31
+ redirectIfNotHandler('signUp');
32
+ return _jsx(SignUp, { fullPage: true });
33
+ }
34
+ case 'email-verification': {
35
+ redirectIfNotHandler('emailVerification');
36
+ return _jsx(EmailVerification, { searchParams: searchParams, fullPage: true });
37
+ }
38
+ case 'password-reset': {
39
+ redirectIfNotHandler('passwordReset');
40
+ return _jsx(PasswordReset, { searchParams: searchParams, fullPage: true });
41
+ }
42
+ case 'forgot-password': {
43
+ redirectIfNotHandler('forgotPassword');
44
+ return _jsx(ForgotPassword, { fullPage: true });
45
+ }
46
+ case 'signout': {
47
+ redirectIfNotHandler('signOut');
48
+ return _jsx(Signout, {});
49
+ }
50
+ case 'oauth-callback': {
51
+ redirectIfNotHandler('oauthCallback');
52
+ return _jsx(OAuthCallback, {});
53
+ }
54
+ default: {
55
+ return notFound();
56
+ }
57
+ }
58
+ }
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ export type ButtonProps = {
3
+ variant?: 'primary' | 'secondary' | 'warning';
4
+ color?: string;
5
+ size?: 'sm' | 'md' | 'lg';
6
+ loading?: boolean;
7
+ } & Omit<React.HTMLProps<HTMLButtonElement>, 'size' | 'type'>;
8
+ declare const Button: React.ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
9
+ export default Button;
10
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/components-core/button.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAiD1B,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;AA8C7D,QAAA,MAAM,MAAM,oGA4CX,CAAC;AAIF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,115 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import React from "react";
4
+ import { useDesign } from "../providers/design-provider";
5
+ import Color from 'color';
6
+ import styled from 'styled-components';
7
+ import { BORDER_RADIUS, FONT_FAMILY, FONT_SIZES } from "../utils/constants";
8
+ function getColors(color, primaryBgColor) {
9
+ const c = Color(color);
10
+ const pc = Color(primaryBgColor);
11
+ const changeColor = (value) => {
12
+ return c.hsl(c.hue(), c.saturationl(), c.lightness() + value).toString();
13
+ };
14
+ const getAlpha = (alpha) => {
15
+ return Color(pc.isDark() ? 'white' : 'black').alpha(alpha).toString();
16
+ };
17
+ if (c.alpha() === 0) {
18
+ return {
19
+ bgColor: 'transparent',
20
+ hoverBgColor: getAlpha(0.1),
21
+ activeBgColor: getAlpha(0.2),
22
+ textColor: pc.isLight() ? 'black' : 'white',
23
+ };
24
+ }
25
+ else if (c.isLight()) {
26
+ return {
27
+ bgColor: color,
28
+ hoverBgColor: changeColor(-10),
29
+ activeBgColor: changeColor(-20),
30
+ textColor: 'black',
31
+ };
32
+ }
33
+ else {
34
+ return {
35
+ bgColor: color,
36
+ hoverBgColor: changeColor(10),
37
+ activeBgColor: changeColor(20),
38
+ textColor: 'white',
39
+ };
40
+ }
41
+ }
42
+ const StyledButton = styled.button `
43
+ border: 0;
44
+ border-radius: ${BORDER_RADIUS};
45
+ padding: ${props => {
46
+ switch (props.$size) {
47
+ case 'sm': {
48
+ return '0rem 0.75rem';
49
+ }
50
+ case 'md': {
51
+ return '0rem 1rem';
52
+ }
53
+ case 'lg': {
54
+ return '0rem 2rem';
55
+ }
56
+ }
57
+ }};
58
+ height: ${props => {
59
+ switch (props.$size) {
60
+ case 'sm': {
61
+ return '2rem';
62
+ }
63
+ case 'md': {
64
+ return '2.5rem';
65
+ }
66
+ case 'lg': {
67
+ return '3rem';
68
+ }
69
+ }
70
+ }};
71
+ font-size: ${FONT_SIZES.md};
72
+ background-color: ${props => props.$bgColor};
73
+ color: ${props => props.$textColor};
74
+ opacity: ${props => props.disabled ? 0.5 : 1};
75
+ transition: background-color 0.2s;
76
+ cursor: pointer;
77
+ &:not([disabled]) {
78
+ &:active,&:hover:active {
79
+ background-color: ${props => props.$activeBgColor};
80
+ }
81
+ &:hover {
82
+ background-color: ${props => props.$hoverBgColor};
83
+ }
84
+ }
85
+ &:disabled {
86
+ cursor: auto;
87
+ opacity: 0.5;
88
+ }
89
+ font-family: ${FONT_FAMILY};
90
+ `;
91
+ const Button = React.forwardRef(({ variant = 'primary', size = 'md', loading = false, disabled = false, ...props }, ref) => {
92
+ const { colors } = useDesign();
93
+ let bgColor;
94
+ switch (variant) {
95
+ case 'primary': {
96
+ bgColor = colors.primaryColor;
97
+ break;
98
+ }
99
+ case 'secondary': {
100
+ bgColor = colors.secondaryColor;
101
+ break;
102
+ }
103
+ case 'warning': {
104
+ bgColor = '#ff4500';
105
+ break;
106
+ }
107
+ }
108
+ if (props.color) {
109
+ bgColor = props.color;
110
+ }
111
+ const buttonColors = getColors(bgColor, colors.primaryBgColor);
112
+ return (_jsx(StyledButton, { ref: ref, "$size": size, "$bgColor": buttonColors.bgColor, "$hoverBgColor": buttonColors.hoverBgColor, "$activeBgColor": buttonColors.activeBgColor, "$textColor": buttonColors.textColor, disabled: disabled || loading, ...props, children: props.children }));
113
+ });
114
+ Button.displayName = 'Button';
115
+ export default Button;
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ export type ContainerProps = {
3
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number;
4
+ } & Omit<React.HTMLProps<HTMLDivElement>, 'size'>;
5
+ export default function Container({ size, ...props }: ContainerProps): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/components-core/container.tsx"],"names":[],"mappings":";AAKA,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;CAClD,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAA;AAejD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,IAAS,EACT,GAAG,KAAK,EACT,EAAG,cAAc,2CAYjB"}
@@ -0,0 +1,19 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useDesign } from "../providers/design-provider";
4
+ import styled from 'styled-components';
5
+ const OuterContainer = styled.div `
6
+ display: flex;
7
+ justify-content: center;
8
+ width: 100%;
9
+ `;
10
+ const InnerContainer = styled.div `
11
+ width: 100%;
12
+ @media (min-width: ${props => props.$breakpoint}px) {
13
+ width: ${props => props.$breakpoint}px;
14
+ }
15
+ `;
16
+ export default function Container({ size = 'md', ...props }) {
17
+ const { breakpoints } = useDesign();
18
+ return (_jsx(OuterContainer, { children: _jsx(InnerContainer, { "$breakpoint": typeof size === 'number' ? size : breakpoints[size], ...props, children: props.children }) }));
19
+ }
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ export type DividerProps = {
3
+ direction?: 'horizontal' | 'vertical';
4
+ } & React.HTMLProps<HTMLHRElement>;
5
+ declare const Divider: React.ForwardRefExoticComponent<Omit<DividerProps, "ref"> & React.RefAttributes<HTMLHRElement>>;
6
+ export default Divider;
7
+ //# sourceMappingURL=divider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divider.d.ts","sourceRoot":"","sources":["../../src/components-core/divider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,MAAM,YAAY,GAAG;IAAE,SAAS,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAErG,QAAA,MAAM,OAAO,iGAcZ,CAAC;AAGF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,17 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import React from "react";
4
+ import { useDesign } from "../providers/design-provider";
5
+ const Divider = React.forwardRef(({ direction = 'horizontal' }, ref) => {
6
+ const { colors } = useDesign();
7
+ return _jsx("hr", { ref: ref, style: {
8
+ width: direction === 'horizontal' ? undefined : '1px',
9
+ height: direction === 'horizontal' ? '1px' : undefined,
10
+ border: 'none',
11
+ backgroundColor: colors.neutralColor,
12
+ margin: 0,
13
+ padding: 0,
14
+ } });
15
+ });
16
+ Divider.displayName = 'Divider';
17
+ export default Divider;
@@ -0,0 +1,17 @@
1
+ /// <reference types="react" />
2
+ import { ButtonProps } from './button';
3
+ import { ContainerProps } from './container';
4
+ import { DividerProps } from './divider';
5
+ import { InputProps } from './input';
6
+ import { LabelProps } from './label';
7
+ import { LinkProps } from './link';
8
+ import { TextProps } from './text';
9
+ export { ButtonProps, ContainerProps, DividerProps, InputProps, LabelProps, LinkProps, TextProps, };
10
+ export declare const Button: import("react").ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
11
+ export declare const Container: import("react").ForwardRefExoticComponent<Omit<ContainerProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
12
+ export declare const Divider: import("react").ForwardRefExoticComponent<Omit<DividerProps, "ref"> & import("react").RefAttributes<HTMLHRElement>>;
13
+ export declare const Input: import("react").ForwardRefExoticComponent<Omit<InputProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
14
+ export declare const Label: import("react").ForwardRefExoticComponent<Omit<import("@radix-ui/react-label").LabelProps & import("react").RefAttributes<HTMLLabelElement>, "ref"> & import("react").RefAttributes<HTMLLabelElement>>;
15
+ export declare function Link(props: LinkProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare const Text: import("react").ForwardRefExoticComponent<Omit<TextProps, "ref"> & import("react").RefAttributes<HTMLParagraphElement>>;
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components-core/index.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EACL,WAAW,EACX,cAAc,EACd,YAAY,EACZ,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAS,GACV,CAAC;AAEF,eAAO,MAAM,MAAM,wHAGjB,CAAC;AAEH,eAAO,MAAM,SAAS,wHAGpB,CAAC;AAEH,eAAO,MAAM,OAAO,qHAGlB,CAAC;AAEH,eAAO,MAAM,KAAK,sHAGhB,CAAC;AAEH,eAAO,MAAM,KAAK,wMAGhB,CAAC;AAEH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,2CAGpC;AAED,eAAO,MAAM,IAAI,yHAGf,CAAC"}
@@ -0,0 +1,32 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { useComponents } from '../providers/component-provider';
5
+ export const Button = forwardRef((props, ref) => {
6
+ const { Button } = useComponents();
7
+ return _jsx(Button, { ...props, ref: ref });
8
+ });
9
+ export const Container = forwardRef((props, ref) => {
10
+ const { Container } = useComponents();
11
+ return _jsx(Container, { ...props, ref: ref });
12
+ });
13
+ export const Divider = forwardRef((props, ref) => {
14
+ const { Divider } = useComponents();
15
+ return _jsx(Divider, { ...props, ref: ref });
16
+ });
17
+ export const Input = forwardRef((props, ref) => {
18
+ const { Input } = useComponents();
19
+ return _jsx(Input, { ...props, ref: ref });
20
+ });
21
+ export const Label = forwardRef((props, ref) => {
22
+ const { Label } = useComponents();
23
+ return _jsx(Label, { ...props, ref: ref });
24
+ });
25
+ export function Link(props) {
26
+ const { Link } = useComponents();
27
+ return _jsx(Link, { ...props });
28
+ }
29
+ export const Text = forwardRef((props, ref) => {
30
+ const { Text } = useComponents();
31
+ return _jsx(Text, { ...props, ref: ref });
32
+ });
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ export type InputProps = React.InputHTMLAttributes<HTMLInputElement> & Pick<React.HTMLProps<HTMLInputElement>, 'ref'>;
3
+ declare const Input: React.ForwardRefExoticComponent<Omit<InputProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
4
+ export default Input;
5
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/components-core/input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC,CAAA;AA4CrH,QAAA,MAAM,KAAK,kGAiBV,CAAC;AAGF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,45 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import React from "react";
4
+ import { useDesign } from "../providers/design-provider";
5
+ import styled from 'styled-components';
6
+ import { BORDER_RADIUS, FONT_FAMILY, FONT_SIZES, PRIMARY_FONT_COLORS, SECONDARY_FONT_COLORS } from "../utils/constants";
7
+ const StyledInput = styled.input `
8
+ font-family: ${FONT_FAMILY};
9
+ font-size: ${FONT_SIZES.md};
10
+ height: 2.5rem;
11
+ border-radius: ${BORDER_RADIUS};
12
+ border: 1px solid;
13
+ border-color: ${props => props.$borderColor};
14
+ background-color: ${props => props.$backgroundColor};
15
+ padding: 0rem 1rem;
16
+ color: ${props => props.$textColor};
17
+ &::placeholder {
18
+ color: ${props => props.$placeholderColor};
19
+ }
20
+ &:focus-visible {
21
+ outline: none;
22
+ box-shadow: 0 0 0 2px ${props => props.$focusShadowColor};
23
+ }
24
+ &:disabled {
25
+ cursor: auto;
26
+ opacity: 0.5;
27
+ }
28
+ &[type=file] {
29
+ color: ${props => props.$fileSelectorColor};
30
+ }
31
+ &[type=file]::file-selector-button{
32
+ border: none;
33
+ color: ${props => props.$fileSelectorButtonColor};
34
+ background-color: transparent;
35
+ height: 2.5rem;
36
+ margin-right: 0.5rem;
37
+ padding: 0;
38
+ }
39
+ `;
40
+ const Input = React.forwardRef((props, ref) => {
41
+ const { colors, colorMode } = useDesign();
42
+ return (_jsx(StyledInput, { ref: ref, "$backgroundColor": colors.primaryBgColor, "$borderColor": colors.neutralColor, "$placeholderColor": SECONDARY_FONT_COLORS[colorMode], "$textColor": PRIMARY_FONT_COLORS[colorMode], "$fileSelectorColor": SECONDARY_FONT_COLORS[colorMode], "$fileSelectorButtonColor": PRIMARY_FONT_COLORS[colorMode], "$focusShadowColor": colors.primaryColor, ...props }));
43
+ });
44
+ Input.displayName = 'Input';
45
+ export default Input;
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import * as LabelPrimitive from "@radix-ui/react-label";
3
+ export type LabelProps = React.ComponentProps<typeof LabelPrimitive.Root>;
4
+ declare const Label: React.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & React.RefAttributes<HTMLLabelElement>>;
5
+ export default Label;
6
+ //# sourceMappingURL=label.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../src/components-core/label.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAC;AAexD,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;AAE1E,QAAA,MAAM,KAAK,yJAYV,CAAC;AAGF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import * as LabelPrimitive from "@radix-ui/react-label";
5
+ import styled from 'styled-components';
6
+ import { FONT_FAMILY, FONT_SIZES, SECONDARY_FONT_COLORS } from "../utils/constants";
7
+ import { useDesign } from "../providers/design-provider";
8
+ const Primitive = styled(LabelPrimitive.Root) `
9
+ font-size: ${FONT_SIZES.sm};
10
+ line-height: 1;
11
+ color: ${props => props.color};
12
+ font-weight: 500;
13
+ font-family: ${FONT_FAMILY};
14
+ display: block;
15
+ margin-bottom: 0.5rem;
16
+ `;
17
+ const Label = React.forwardRef((props, ref) => {
18
+ const { colorMode } = useDesign();
19
+ return _jsx(Primitive, { color: colorMode === 'dark' ? SECONDARY_FONT_COLORS.dark : SECONDARY_FONT_COLORS.light, ref: ref, ...props });
20
+ });
21
+ Label.displayName = LabelPrimitive.Root.displayName;
22
+ export default Label;
@@ -0,0 +1,9 @@
1
+ /// <reference types="node" />
2
+ import { Url } from "url";
3
+ import React from "react";
4
+ export type LinkProps = {
5
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
6
+ href: Url | string;
7
+ } & Omit<React.HTMLProps<HTMLLinkElement>, 'size' | 'href'>;
8
+ export default function Link({ size, href, style, ...props }: LinkProps): import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/components-core/link.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACxC,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC;CACpB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;AAE3D,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,IAAS,EACT,IAAI,EACJ,KAAK,EACL,GAAG,KAAK,EACT,EAAG,SAAS,2CAmBZ"}
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import NextLink from "next/link";
4
+ import { FONT_FAMILY, FONT_SIZES, LINE_HEIGHTS } from "../utils/constants";
5
+ import { useDesign } from "..";
6
+ export default function Link({ size = 'md', href, style, ...props }) {
7
+ const { colorMode } = useDesign();
8
+ return (_jsx(NextLink, { href: href, style: {
9
+ fontSize: FONT_SIZES[size],
10
+ lineHeight: LINE_HEIGHTS[size],
11
+ fontFamily: FONT_FAMILY,
12
+ color: colorMode === 'dark' ? '#3B82F6' : '#2563EB',
13
+ textDecoration: 'underline',
14
+ margin: 0,
15
+ padding: 0,
16
+ ...style
17
+ }, children: props.children }));
18
+ }
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ export type TextProps = {
3
+ variant?: 'primary' | 'secondary' | 'warning' | 'success';
4
+ as?: 'p' | 'h6' | 'h5' | 'h4' | 'h3' | 'h2' | 'h1';
5
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
6
+ } & Omit<React.HTMLProps<HTMLParagraphElement>, 'size'>;
7
+ declare const Text: React.ForwardRefExoticComponent<Omit<TextProps, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
8
+ export default Text;
9
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/components-core/text.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1D,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,GAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAClD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CACzC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC,CAAA;AAEvD,QAAA,MAAM,IAAI,qGA8CR,CAAC;AAGH,eAAe,IAAI,CAAC"}