@stackframe/stack 2.3.5 → 2.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/dist/components/card-frame.d.mts +9 -0
  2. package/dist/components/card-frame.d.ts +8 -5
  3. package/dist/components/card-frame.js +58 -23
  4. package/dist/components/credential-sign-in.d.mts +5 -0
  5. package/dist/components/credential-sign-in.d.ts +5 -1
  6. package/dist/components/credential-sign-in.js +109 -41
  7. package/dist/components/credential-sign-up.d.mts +5 -0
  8. package/dist/components/credential-sign-up.d.ts +5 -1
  9. package/dist/components/credential-sign-up.js +140 -62
  10. package/dist/components/forgot-password.d.mts +7 -0
  11. package/dist/components/forgot-password.d.ts +6 -2
  12. package/dist/components/forgot-password.js +83 -26
  13. package/dist/components/form-warning.d.mts +7 -0
  14. package/dist/components/form-warning.d.ts +6 -2
  15. package/dist/components/form-warning.js +34 -8
  16. package/dist/components/magic-link-sign-in.d.mts +5 -0
  17. package/dist/components/magic-link-sign-in.d.ts +5 -1
  18. package/dist/components/magic-link-sign-in.js +89 -31
  19. package/dist/components/message-card.d.mts +10 -0
  20. package/dist/components/message-card.d.ts +8 -4
  21. package/dist/components/message-card.js +45 -6
  22. package/dist/components/oauth-button.d.mts +8 -0
  23. package/dist/components/oauth-button.d.ts +6 -2
  24. package/dist/components/oauth-button.js +142 -63
  25. package/dist/components/oauth-group.d.mts +7 -0
  26. package/dist/components/oauth-group.d.ts +6 -2
  27. package/dist/components/oauth-group.js +46 -8
  28. package/dist/components/password-field.d.mts +5 -0
  29. package/dist/components/password-field.d.ts +5 -3
  30. package/dist/components/password-field.js +111 -41
  31. package/dist/components/password-reset-inner.d.mts +8 -0
  32. package/dist/components/password-reset-inner.d.ts +6 -2
  33. package/dist/components/password-reset-inner.js +120 -58
  34. package/dist/components/redirect-message-card.d.mts +8 -0
  35. package/dist/components/redirect-message-card.d.ts +6 -2
  36. package/dist/components/redirect-message-card.js +110 -58
  37. package/dist/components/separator-with-text.d.mts +7 -0
  38. package/dist/components/separator-with-text.d.ts +6 -2
  39. package/dist/components/separator-with-text.js +35 -5
  40. package/dist/components/user-avatar.d.mts +13 -0
  41. package/dist/components/user-avatar.d.ts +11 -3
  42. package/dist/components/user-avatar.js +34 -6
  43. package/dist/components/user-button.d.mts +15 -0
  44. package/dist/components/user-button.d.ts +12 -3
  45. package/dist/components/user-button.js +156 -26
  46. package/dist/components-core/avatar.d.mts +8 -0
  47. package/dist/components-core/avatar.d.ts +7 -5
  48. package/dist/components-core/avatar.js +73 -18
  49. package/dist/components-core/button.d.mts +12 -0
  50. package/dist/components-core/button.d.ts +8 -6
  51. package/dist/components-core/button.js +177 -113
  52. package/dist/components-core/card.d.mts +8 -0
  53. package/dist/components-core/card.d.ts +4 -2
  54. package/dist/components-core/card.js +73 -22
  55. package/dist/components-core/collapsible.d.mts +8 -0
  56. package/dist/components-core/collapsible.d.ts +8 -6
  57. package/dist/components-core/collapsible.js +48 -5
  58. package/dist/components-core/container.d.mts +8 -0
  59. package/dist/components-core/container.d.ts +5 -3
  60. package/dist/components-core/container.js +61 -11
  61. package/dist/components-core/dropdown.d.mts +15 -0
  62. package/dist/components-core/dropdown.d.ts +10 -8
  63. package/dist/components-core/dropdown.js +108 -36
  64. package/dist/components-core/index.d.mts +59 -0
  65. package/dist/components-core/index.d.ts +51 -40
  66. package/dist/components-core/index.js +144 -46
  67. package/dist/components-core/input.d.mts +6 -0
  68. package/dist/components-core/input.d.ts +5 -3
  69. package/dist/components-core/input.js +97 -28
  70. package/dist/components-core/label.d.mts +6 -0
  71. package/dist/components-core/label.d.ts +5 -3
  72. package/dist/components-core/label.js +65 -15
  73. package/dist/components-core/link.d.mts +10 -0
  74. package/dist/components-core/link.d.ts +7 -6
  75. package/dist/components-core/link.js +72 -18
  76. package/dist/components-core/loading-indicator.d.mts +13 -0
  77. package/dist/components-core/loading-indicator.d.ts +11 -4
  78. package/dist/components-core/loading-indicator.js +46 -6
  79. package/dist/components-core/popover.d.mts +8 -0
  80. package/dist/components-core/popover.d.ts +8 -6
  81. package/dist/components-core/popover.js +72 -16
  82. package/dist/components-core/separator.d.mts +6 -0
  83. package/dist/components-core/separator.d.ts +5 -3
  84. package/dist/components-core/separator.js +66 -16
  85. package/dist/components-core/skeleton.d.mts +7 -0
  86. package/dist/components-core/skeleton.d.ts +5 -3
  87. package/dist/components-core/skeleton.js +75 -21
  88. package/dist/components-core/tabs.d.mts +9 -0
  89. package/dist/components-core/tabs.d.ts +8 -6
  90. package/dist/components-core/tabs.js +87 -20
  91. package/dist/components-core/text.d.mts +10 -0
  92. package/dist/components-core/text.d.ts +5 -3
  93. package/dist/components-core/text.js +95 -40
  94. package/dist/components-core-joy/button.d.mts +6 -0
  95. package/dist/components-core-joy/button.d.ts +6 -2
  96. package/dist/components-core-joy/button.js +86 -28
  97. package/dist/components-core-joy/input.d.mts +5 -0
  98. package/dist/components-core-joy/input.d.ts +5 -2
  99. package/dist/components-core-joy/input.js +51 -6
  100. package/dist/components-core-joy/separator.d.mts +6 -0
  101. package/dist/components-core-joy/separator.d.ts +6 -2
  102. package/dist/components-core-joy/separator.js +50 -6
  103. package/dist/components-core-joy/tabs.d.mts +9 -0
  104. package/dist/components-core-joy/tabs.d.ts +9 -5
  105. package/dist/components-core-joy/tabs.js +62 -16
  106. package/dist/components-core-joy/text.d.mts +9 -0
  107. package/dist/components-core-joy/text.d.ts +6 -3
  108. package/dist/components-core-joy/text.js +68 -28
  109. package/dist/components-page/account-settings.d.mts +7 -0
  110. package/dist/components-page/account-settings.d.ts +6 -2
  111. package/dist/components-page/account-settings.js +213 -81
  112. package/dist/components-page/auth-page.d.mts +8 -0
  113. package/dist/components-page/auth-page.d.ts +6 -2
  114. package/dist/components-page/auth-page.js +79 -19
  115. package/dist/components-page/email-verification.d.mts +8 -0
  116. package/dist/components-page/email-verification.d.ts +6 -2
  117. package/dist/components-page/email-verification.js +65 -28
  118. package/dist/components-page/forgot-password.d.mts +7 -0
  119. package/dist/components-page/forgot-password.d.ts +6 -2
  120. package/dist/components-page/forgot-password.js +64 -20
  121. package/dist/components-page/magic-link-callback.d.mts +8 -0
  122. package/dist/components-page/magic-link-callback.d.ts +6 -2
  123. package/dist/components-page/magic-link-callback.js +72 -34
  124. package/dist/components-page/oauth-callback.d.mts +5 -0
  125. package/dist/components-page/oauth-callback.d.ts +5 -1
  126. package/dist/components-page/oauth-callback.js +52 -16
  127. package/dist/components-page/password-reset.d.mts +8 -0
  128. package/dist/components-page/password-reset.d.ts +6 -2
  129. package/dist/components-page/password-reset.js +70 -34
  130. package/dist/components-page/sign-in.d.mts +7 -0
  131. package/dist/components-page/sign-in.d.ts +6 -2
  132. package/dist/components-page/sign-in.js +41 -5
  133. package/dist/components-page/sign-out.d.mts +5 -0
  134. package/dist/components-page/sign-out.d.ts +5 -1
  135. package/dist/components-page/sign-out.js +47 -11
  136. package/dist/components-page/sign-up.d.mts +7 -0
  137. package/dist/components-page/sign-up.d.ts +6 -2
  138. package/dist/components-page/sign-up.js +41 -5
  139. package/dist/components-page/stack-handler.d.mts +16 -0
  140. package/dist/components-page/stack-handler.d.ts +11 -3
  141. package/dist/components-page/stack-handler.js +102 -64
  142. package/dist/esm/components/card-frame.js +39 -0
  143. package/dist/esm/components/credential-sign-in.js +82 -0
  144. package/dist/esm/components/credential-sign-up.js +114 -0
  145. package/dist/esm/components/forgot-password.js +55 -0
  146. package/dist/esm/components/form-warning.js +15 -0
  147. package/dist/esm/components/magic-link-sign-in.js +61 -0
  148. package/dist/esm/components/message-card.js +16 -0
  149. package/dist/esm/components/oauth-button.js +124 -0
  150. package/dist/esm/components/oauth-group.js +17 -0
  151. package/dist/esm/components/password-field.js +82 -0
  152. package/dist/esm/components/password-reset-inner.js +93 -0
  153. package/dist/esm/components/redirect-message-card.js +83 -0
  154. package/dist/esm/components/separator-with-text.js +16 -0
  155. package/dist/esm/components/user-avatar.js +14 -0
  156. package/dist/esm/components/user-button.js +133 -0
  157. package/dist/esm/components-core/avatar.js +56 -0
  158. package/dist/esm/components-core/button.js +165 -0
  159. package/dist/esm/components-core/card.js +51 -0
  160. package/dist/esm/components-core/collapsible.js +13 -0
  161. package/dist/esm/components-core/container.js +35 -0
  162. package/dist/esm/components-core/dropdown.js +106 -0
  163. package/dist/esm/components-core/index.js +93 -0
  164. package/dist/esm/components-core/input.js +80 -0
  165. package/dist/esm/components-core/label.js +38 -0
  166. package/dist/esm/components-core/link.js +38 -0
  167. package/dist/esm/components-core/loading-indicator.js +27 -0
  168. package/dist/esm/components-core/popover.js +43 -0
  169. package/dist/esm/components-core/separator.js +36 -0
  170. package/dist/esm/components-core/skeleton.js +52 -0
  171. package/dist/esm/components-core/tabs.js +79 -0
  172. package/dist/esm/components-core/text.js +63 -0
  173. package/dist/esm/components-core-joy/button.js +53 -0
  174. package/dist/esm/components-core-joy/input.js +18 -0
  175. package/dist/esm/components-core-joy/separator.js +17 -0
  176. package/dist/esm/components-core-joy/tabs.js +29 -0
  177. package/dist/esm/components-core-joy/text.js +35 -0
  178. package/dist/esm/components-page/account-settings.js +197 -0
  179. package/dist/esm/components-page/auth-page.js +50 -0
  180. package/dist/esm/components-page/email-verification.js +36 -0
  181. package/dist/esm/components-page/forgot-password.js +35 -0
  182. package/dist/esm/components-page/magic-link-callback.js +43 -0
  183. package/dist/esm/components-page/oauth-callback.js +23 -0
  184. package/dist/esm/components-page/password-reset.js +42 -0
  185. package/dist/esm/components-page/sign-in.js +12 -0
  186. package/dist/esm/components-page/sign-out.js +18 -0
  187. package/dist/esm/components-page/sign-up.js +12 -0
  188. package/dist/esm/components-page/stack-handler.js +75 -0
  189. package/dist/esm/index.js +47 -0
  190. package/dist/esm/joy.js +5 -0
  191. package/dist/esm/lib/auth.js +62 -0
  192. package/dist/esm/lib/cookie.js +185 -0
  193. package/dist/esm/lib/hooks.js +29 -0
  194. package/dist/esm/lib/stack-app.js +940 -0
  195. package/dist/esm/providers/component-provider.js +76 -0
  196. package/dist/esm/providers/design-provider.js +36 -0
  197. package/dist/esm/providers/joy-provider.js +35 -0
  198. package/dist/esm/providers/stack-provider-client.js +31 -0
  199. package/dist/esm/providers/stack-provider.js +21 -0
  200. package/dist/esm/providers/styled-components-registry.js +24 -0
  201. package/dist/esm/providers/theme-provider.js +22 -0
  202. package/dist/esm/utils/browser-script.js +25 -0
  203. package/dist/esm/utils/constants.js +34 -0
  204. package/dist/esm/utils/email.js +10 -0
  205. package/dist/esm/utils/next.js +7 -0
  206. package/dist/esm/utils/url.js +21 -0
  207. package/dist/index.d.mts +37 -0
  208. package/dist/index.d.ts +37 -22
  209. package/dist/index.js +106 -21
  210. package/dist/joy.d.mts +16 -0
  211. package/dist/joy.d.ts +16 -1
  212. package/dist/joy.js +30 -1
  213. package/dist/lib/auth.d.mts +11 -0
  214. package/dist/lib/auth.d.ts +8 -4
  215. package/dist/lib/auth.js +83 -57
  216. package/dist/lib/cookie.d.mts +14 -0
  217. package/dist/lib/cookie.d.ts +8 -6
  218. package/dist/lib/cookie.js +217 -45
  219. package/dist/lib/hooks.d.mts +35 -0
  220. package/dist/lib/hooks.d.ts +14 -8
  221. package/dist/lib/hooks.js +53 -28
  222. package/dist/lib/stack-app.d.mts +227 -0
  223. package/dist/lib/stack-app.d.ts +43 -41
  224. package/dist/lib/stack-app.js +937 -849
  225. package/dist/providers/component-provider.d.mts +113 -0
  226. package/dist/providers/component-provider.d.ts +95 -77
  227. package/dist/providers/component-provider.js +92 -58
  228. package/dist/providers/design-provider.d.mts +34 -0
  229. package/dist/providers/design-provider.d.ts +16 -21
  230. package/dist/providers/design-provider.js +57 -58
  231. package/dist/providers/joy-provider.d.mts +36 -0
  232. package/dist/providers/joy-provider.d.ts +30 -14
  233. package/dist/providers/joy-provider.js +58 -30
  234. package/dist/providers/stack-provider-client.d.mts +20 -0
  235. package/dist/providers/stack-provider-client.d.ts +15 -8
  236. package/dist/providers/stack-provider-client.js +64 -20
  237. package/dist/providers/stack-provider.d.mts +14 -0
  238. package/dist/providers/stack-provider.d.ts +13 -5
  239. package/dist/providers/stack-provider.js +39 -8
  240. package/dist/providers/styled-components-registry.d.mts +8 -0
  241. package/dist/providers/styled-components-registry.d.ts +8 -4
  242. package/dist/providers/styled-components-registry.js +43 -17
  243. package/dist/providers/theme-provider.d.mts +22 -0
  244. package/dist/providers/theme-provider.d.ts +21 -9
  245. package/dist/providers/theme-provider.js +55 -19
  246. package/dist/utils/browser-script.d.mts +5 -0
  247. package/dist/utils/browser-script.d.ts +5 -0
  248. package/dist/utils/browser-script.js +50 -0
  249. package/dist/utils/constants.d.mts +48 -0
  250. package/dist/utils/constants.d.ts +11 -9
  251. package/dist/utils/constants.js +66 -21
  252. package/dist/utils/email.d.mts +3 -0
  253. package/dist/utils/email.d.ts +3 -1
  254. package/dist/utils/email.js +44 -6
  255. package/dist/utils/next.d.mts +3 -0
  256. package/dist/utils/next.d.ts +3 -1
  257. package/dist/utils/next.js +31 -3
  258. package/dist/utils/url.d.mts +4 -0
  259. package/dist/utils/url.d.ts +4 -2
  260. package/dist/utils/url.js +44 -13
  261. package/package.json +20 -10
@@ -1,5 +1,13 @@
1
- import { User } from "../lib/stack-app";
2
- export default function UserAvatar(props: {
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { User } from '../lib/stack-app.js';
3
+ import '@stackframe/stack-shared';
4
+ import '@stackframe/stack-shared/dist/interface/clientInterface';
5
+ import '@stackframe/stack-shared/dist/utils/json';
6
+ import '@stackframe/stack-shared/dist/interface/adminInterface';
7
+
8
+ declare function UserAvatar(props: {
3
9
  size?: number;
4
10
  user: User | null;
5
- }): import("react/jsx-runtime").JSX.Element;
11
+ }): react_jsx_runtime.JSX.Element;
12
+
13
+ export { UserAvatar as default };
@@ -1,7 +1,35 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Avatar, AvatarFallback, AvatarImage, Text } from "..";
3
- const anonUserDataUrl = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='-100 -1060 1160 1160' width='24'%3E%3Crect x='-100' y='-1060' width='100%25' height='100%25' fill='%23d8d8d8' /%3E%3Cpath d='M480-480q-66 0-113-47t-47-113q0-66 47-113t113-47q66 0 113 47t47 113q0 66-47 113t-113 47ZM160-160v-112q0-34 17.5-62.5T224-378q62-31 126-46.5T480-440q66 0 130 15.5T736-378q29 15 46.5 43.5T800-272v112H160Zm80-80h480v-32q0-11-5.5-20T700-306q-54-27-109-40.5T480-360q-56 0-111 13.5T260-306q-9 5-14.5 14t-5.5 20v32Zm240-320q33 0 56.5-23.5T560-640q0-33-23.5-56.5T480-720q-33 0-56.5 23.5T400-640q0 33 23.5 56.5T480-560Zm0-80Zm0 400Z'/%3E%3C/svg%3E";
4
- export default function UserAvatar(props) {
5
- const user = props.user;
6
- return (_jsxs(Avatar, { style: { height: props.size, width: props.size }, children: [_jsx(AvatarImage, { src: user ? user.profileImageUrl || '' : anonUserDataUrl }), _jsx(AvatarFallback, { children: _jsx(Text, { style: { fontWeight: 500 }, children: (user?.displayName || user?.primaryEmail)?.slice(0, 2).toUpperCase() ?? "?" }) })] }));
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/components/user-avatar.tsx
21
+ var user_avatar_exports = {};
22
+ __export(user_avatar_exports, {
23
+ default: () => UserAvatar
24
+ });
25
+ module.exports = __toCommonJS(user_avatar_exports);
26
+ var import_rx = require("react-icons/rx");
27
+ var import__ = require("..");
28
+ var import_jsx_runtime = require("react/jsx-runtime");
29
+ function UserAvatar(props) {
30
+ const user = props.user;
31
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import__.Avatar, { style: { height: props.size, width: props.size }, children: [
32
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.AvatarImage, { src: user?.profileImageUrl || "" }),
33
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.AvatarFallback, { children: user ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.Text, { style: { fontWeight: 500 }, children: (user?.displayName || user?.primaryEmail)?.slice(0, 2).toUpperCase() }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_rx.RxPerson, { size: props.size }) })
34
+ ] });
7
35
  }
@@ -0,0 +1,15 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import React__default from 'react';
3
+
4
+ type UserButtonProps = {
5
+ showUserInfo?: boolean;
6
+ colorModeToggle?: () => void | Promise<void>;
7
+ extraItems?: {
8
+ text: string;
9
+ icon: React__default.ReactNode;
10
+ onClick: () => void | Promise<void>;
11
+ }[];
12
+ };
13
+ declare function UserButton(props: UserButtonProps): react_jsx_runtime.JSX.Element;
14
+
15
+ export { UserButton as default };
@@ -1,6 +1,15 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import React__default from 'react';
3
+
1
4
  type UserButtonProps = {
2
5
  showUserInfo?: boolean;
3
- showColorMode?: boolean;
6
+ colorModeToggle?: () => void | Promise<void>;
7
+ extraItems?: {
8
+ text: string;
9
+ icon: React__default.ReactNode;
10
+ onClick: () => void | Promise<void>;
11
+ }[];
4
12
  };
5
- export default function UserButton({ showUserInfo, showColorMode, }: UserButtonProps): import("react/jsx-runtime").JSX.Element;
6
- export {};
13
+ declare function UserButton(props: UserButtonProps): react_jsx_runtime.JSX.Element;
14
+
15
+ export { UserButton as default };
@@ -1,33 +1,163 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { Suspense } from "react";
4
- import { useUser, Text, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, DropdownMenuLabel, DropdownMenuSeparator, useStackApp, useDesign, Skeleton } from "..";
5
- import { RxPerson, RxEnter, RxSun, RxShadow, RxFilePlus } from "react-icons/rx";
6
- import { runAsynchronously } from "@stackframe/stack-shared/dist/utils/promises";
7
- import { SECONDARY_FONT_COLORS } from "../utils/constants";
8
- import UserAvatar from "./user-avatar";
9
- import { useRouter } from "next/navigation";
1
+ "use client";
2
+ "use strict";
3
+ "use client";
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __export = (target, all) => {
11
+ for (var name in all)
12
+ __defProp(target, name, { get: all[name], enumerable: true });
13
+ };
14
+ var __copyProps = (to, from, except, desc) => {
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from))
17
+ if (!__hasOwnProp.call(to, key) && key !== except)
18
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
19
+ }
20
+ return to;
21
+ };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
28
+ mod
29
+ ));
30
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
31
+
32
+ // src/components/user-button.tsx
33
+ var user_button_exports = {};
34
+ __export(user_button_exports, {
35
+ default: () => UserButton
36
+ });
37
+ module.exports = __toCommonJS(user_button_exports);
38
+ var import_react = __toESM(require("react"));
39
+ var import__ = require("..");
40
+ var import_rx = require("react-icons/rx");
41
+ var import_promises = require("@stackframe/stack-shared/dist/utils/promises");
42
+ var import_constants = require("../utils/constants");
43
+ var import_user_avatar = __toESM(require("./user-avatar"));
44
+ var import_navigation = require("next/navigation");
45
+ var import_objects = require("@stackframe/stack-shared/dist/utils/objects");
46
+ var import_styled_components = __toESM(require("styled-components"));
47
+ var import_jsx_runtime = require("react/jsx-runtime");
48
+ var icons = (0, import_objects.typedFromEntries)((0, import_objects.typedEntries)({
49
+ RxPencil2: import_rx.RxPencil2,
50
+ RxPerson: import_rx.RxPerson,
51
+ RxEnter: import_rx.RxEnter,
52
+ RxHalf2: import_rx.RxHalf2,
53
+ RxFilePlus: import_rx.RxFilePlus
54
+ }).map(([key, value]) => {
55
+ const styledComponent = (0, import_styled_components.default)(value)`
56
+ color: ${import_constants.SECONDARY_FONT_COLORS.light};
57
+
58
+ html[data-theme='dark'] & {
59
+ color: ${import_constants.SECONDARY_FONT_COLORS.dark};
60
+ }
61
+ `;
62
+ return [
63
+ key,
64
+ import_react.default.createElement(styledComponent, { size: 20 })
65
+ ];
66
+ }));
10
67
  function Item(props) {
11
- return (_jsxs(DropdownMenuItem, { onClick: () => runAsynchronously(props.onClick), style: { display: 'flex', gap: '0.5rem', alignItems: 'center' }, children: [props.icon, _jsx(Text, { children: props.text })] }));
68
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
69
+ import__.DropdownMenuItem,
70
+ {
71
+ onClick: () => (0, import_promises.runAsynchronously)(props.onClick),
72
+ style: { display: "flex", gap: "0.5rem", alignItems: "center" },
73
+ children: [
74
+ props.icon,
75
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.Text, { children: props.text })
76
+ ]
77
+ }
78
+ );
12
79
  }
13
- export default function UserButton({ showUserInfo = false, showColorMode = false, }) {
14
- return (_jsx(Suspense, { fallback: _jsx(Skeleton, { children: _jsx(UserButtonInnerInner, { showUserInfo: showUserInfo, showColorMode: showColorMode, user: null }) }), children: _jsx(UserButtonInner, { showUserInfo: showUserInfo, showColorMode: showColorMode }) }));
80
+ function UserButton(props) {
81
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
82
+ import_react.Suspense,
83
+ {
84
+ fallback: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UserButtonInnerInner, { ...props, user: null }) }),
85
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UserButtonInner, { ...props })
86
+ }
87
+ );
15
88
  }
16
89
  function UserButtonInner(props) {
17
- const user = useUser();
18
- return _jsx(UserButtonInnerInner, { showUserInfo: props.showUserInfo, showColorMode: props.showColorMode, user: user });
90
+ const user = (0, import__.useUser)();
91
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UserButtonInnerInner, { ...props, user });
19
92
  }
20
93
  function UserButtonInnerInner(props) {
21
- const { colorMode, setColorMode } = useDesign();
22
- const user = props.user;
23
- const app = useStackApp();
24
- const router = useRouter();
25
- const textStyles = {
26
- textOverflow: 'ellipsis',
27
- whiteSpace: 'nowrap',
28
- overflow: 'hidden'
29
- };
30
- return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { children: _jsxs("div", { style: { display: 'flex', gap: '0.5rem', alignItems: 'center' }, children: [_jsx(UserAvatar, { user: user }), user && props.showUserInfo && _jsxs("div", { style: { display: 'flex', flexDirection: 'column', justifyContent: 'center' }, children: [_jsx(Text, { style: textStyles, children: user.displayName }), _jsx(Text, { style: { ...textStyles, fontWeight: 400 }, variant: "secondary", size: "sm", children: user.primaryEmail })] })] }) }), _jsxs(DropdownMenuContent, { style: { zIndex: 1500 }, children: [_jsx(DropdownMenuLabel, { children: _jsxs("div", { style: { display: 'flex', gap: '0.5rem', alignItems: 'center' }, children: [_jsx(UserAvatar, { user: user }), _jsxs("div", { children: [user && _jsx(Text, { children: user.displayName }), user && _jsx(Text, { variant: "secondary", size: "sm", style: { fontWeight: 400 }, children: user.primaryEmail }), !user && _jsx(Text, { variant: "secondary", children: "Not logged in" })] })] }) }), _jsx(DropdownMenuSeparator, {}), user && _jsx(Item, { text: "Account settings", onClick: () => runAsynchronously(router.push(app.urls.accountSettings)), icon: _jsx(RxPerson, { size: 22, color: SECONDARY_FONT_COLORS[colorMode] }) }), !user && _jsx(Item, { text: "Sign in", onClick: () => runAsynchronously(router.push(app.urls.signIn)), icon: _jsx(RxEnter, { size: 22, color: SECONDARY_FONT_COLORS[colorMode] }) }), !user && _jsx(Item, { text: "Sign up", onClick: () => runAsynchronously(router.push(app.urls.signUp)), icon: _jsx(RxFilePlus, { size: 22, color: SECONDARY_FONT_COLORS[colorMode] }) }), props.showColorMode && _jsx(Item, { text: colorMode === 'dark' ? 'Light theme' : 'Dark theme', onClick: () => setColorMode(colorMode === 'dark' ? 'light' : 'dark'), icon: colorMode === 'dark' ?
31
- _jsx(RxSun, { size: 22, color: SECONDARY_FONT_COLORS[colorMode] }) :
32
- _jsx(RxShadow, { size: 22, color: SECONDARY_FONT_COLORS[colorMode] }) }), user && _jsx(Item, { text: "Sign out", onClick: () => user.signOut(), icon: _jsx(RxEnter, { size: 22, color: SECONDARY_FONT_COLORS[colorMode] }) })] })] }));
94
+ const user = props.user;
95
+ const app = (0, import__.useStackApp)();
96
+ const router = (0, import_navigation.useRouter)();
97
+ const textStyles = {
98
+ textOverflow: "ellipsis",
99
+ whiteSpace: "nowrap",
100
+ overflow: "hidden"
101
+ };
102
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import__.DropdownMenu, { children: [
103
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.DropdownMenuTrigger, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", gap: "0.5rem", alignItems: "center" }, children: [
104
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_avatar.default, { user }),
105
+ user && props.showUserInfo && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", flexDirection: "column", justifyContent: "center" }, children: [
106
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.Text, { style: textStyles, children: user.displayName }),
107
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.Text, { style: { ...textStyles, fontWeight: 400 }, variant: "secondary", size: "sm", children: user.primaryEmail })
108
+ ] })
109
+ ] }) }),
110
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import__.DropdownMenuContent, { style: { zIndex: 1500 }, children: [
111
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.DropdownMenuLabel, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", gap: "0.5rem", alignItems: "center" }, children: [
112
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user_avatar.default, { user }),
113
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
114
+ user && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.Text, { children: user.displayName }),
115
+ user && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.Text, { variant: "secondary", size: "sm", style: { fontWeight: 400 }, children: user.primaryEmail }),
116
+ !user && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.Text, { variant: "secondary", children: "Not signed in" })
117
+ ] })
118
+ ] }) }),
119
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.DropdownMenuSeparator, {}),
120
+ user && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
121
+ Item,
122
+ {
123
+ text: "Account settings",
124
+ onClick: () => (0, import_promises.runAsynchronously)(router.push(app.urls.accountSettings)),
125
+ icon: icons.RxPerson
126
+ }
127
+ ),
128
+ !user && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
129
+ Item,
130
+ {
131
+ text: "Sign in",
132
+ onClick: () => (0, import_promises.runAsynchronously)(router.push(app.urls.signIn)),
133
+ icon: icons.RxPerson
134
+ }
135
+ ),
136
+ !user && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
137
+ Item,
138
+ {
139
+ text: "Sign up",
140
+ onClick: () => (0, import_promises.runAsynchronously)(router.push(app.urls.signUp)),
141
+ icon: icons.RxPencil2
142
+ }
143
+ ),
144
+ user && props.extraItems && props.extraItems.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Item, { ...item }, index)),
145
+ props.colorModeToggle && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
146
+ Item,
147
+ {
148
+ text: "Toggle theme",
149
+ onClick: props.colorModeToggle,
150
+ icon: icons.RxHalf2
151
+ }
152
+ ),
153
+ user && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
154
+ Item,
155
+ {
156
+ text: "Sign out",
157
+ onClick: () => user.signOut(),
158
+ icon: icons.RxEnter
159
+ }
160
+ )
161
+ ] })
162
+ ] });
33
163
  }
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import * as _radix_ui_react_avatar from '@radix-ui/react-avatar';
3
+
4
+ declare const Avatar: React.ForwardRefExoticComponent<Omit<_radix_ui_react_avatar.AvatarProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
5
+ declare const AvatarImage: React.ForwardRefExoticComponent<Omit<_radix_ui_react_avatar.AvatarImageProps & React.RefAttributes<HTMLImageElement>, "ref"> & React.RefAttributes<HTMLImageElement>>;
6
+ declare const AvatarFallback: React.ForwardRefExoticComponent<Omit<_radix_ui_react_avatar.AvatarFallbackProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
7
+
8
+ export { Avatar, AvatarFallback, AvatarImage };
@@ -1,6 +1,8 @@
1
1
  import * as React from 'react';
2
- import * as AvatarPrimitive from '@radix-ui/react-avatar';
3
- declare const Avatar: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
4
- declare const AvatarImage: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarImageProps & React.RefAttributes<HTMLImageElement>, "ref"> & React.RefAttributes<HTMLImageElement>>;
5
- declare const AvatarFallback: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarFallbackProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
6
- export { Avatar, AvatarImage, AvatarFallback };
2
+ import * as _radix_ui_react_avatar from '@radix-ui/react-avatar';
3
+
4
+ declare const Avatar: React.ForwardRefExoticComponent<Omit<_radix_ui_react_avatar.AvatarProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
5
+ declare const AvatarImage: React.ForwardRefExoticComponent<Omit<_radix_ui_react_avatar.AvatarImageProps & React.RefAttributes<HTMLImageElement>, "ref"> & React.RefAttributes<HTMLImageElement>>;
6
+ declare const AvatarFallback: React.ForwardRefExoticComponent<Omit<_radix_ui_react_avatar.AvatarFallbackProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
7
+
8
+ export { Avatar, AvatarFallback, AvatarImage };
@@ -1,9 +1,46 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import * as React from 'react';
3
- import * as AvatarPrimitive from '@radix-ui/react-avatar';
4
- import styled from 'styled-components';
5
- import { useDesign } from '..';
6
- const StyledAvatar = styled(AvatarPrimitive.Root) `
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/components-core/avatar.tsx
31
+ var avatar_exports = {};
32
+ __export(avatar_exports, {
33
+ Avatar: () => Avatar,
34
+ AvatarFallback: () => AvatarFallback,
35
+ AvatarImage: () => AvatarImage
36
+ });
37
+ module.exports = __toCommonJS(avatar_exports);
38
+ var React = __toESM(require("react"));
39
+ var AvatarPrimitive = __toESM(require("@radix-ui/react-avatar"));
40
+ var import_styled_components = __toESM(require("styled-components"));
41
+ var import__ = require("..");
42
+ var import_jsx_runtime = require("react/jsx-runtime");
43
+ var StyledAvatar = (0, import_styled_components.default)(AvatarPrimitive.Root)`
7
44
  position: relative;
8
45
  display: flex;
9
46
  height: 2rem;
@@ -12,27 +49,45 @@ const StyledAvatar = styled(AvatarPrimitive.Root) `
12
49
  overflow: hidden;
13
50
  border-radius: 9999px;
14
51
  `;
15
- const Avatar = React.forwardRef(({ className, ...props }, ref) => (_jsx(StyledAvatar, { ref: ref, className: className, ...props })));
16
- Avatar.displayName = 'Avatar';
17
- const StyledAvatarImage = styled(AvatarPrimitive.Image) `
52
+ var Avatar = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledAvatar, { ref, className, ...props }));
53
+ Avatar.displayName = "Avatar";
54
+ var StyledAvatarImage = (0, import_styled_components.default)(AvatarPrimitive.Image)`
18
55
  aspect-ratio: 1 / 1;
19
56
  height: 100%;
20
57
  width: 100%;
21
58
  `;
22
- const AvatarImage = React.forwardRef(({ className, ...props }, ref) => (_jsx(StyledAvatarImage, { ref: ref, className: className, ...props })));
23
- AvatarImage.displayName = 'AvatarImage';
24
- const StyledAvatarFallback = styled(AvatarPrimitive.Fallback) `
59
+ var AvatarImage = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledAvatarImage, { ref, className, ...props }));
60
+ AvatarImage.displayName = "AvatarImage";
61
+ var StyledAvatarFallback = (0, import_styled_components.default)(AvatarPrimitive.Fallback)`
25
62
  display: flex;
26
63
  height: 100%;
27
64
  width: 100%;
28
65
  align-items: center;
29
66
  justify-content: center;
30
67
  border-radius: 9999px;
31
- background-color: ${(p) => p.$backgroundColor};
68
+
69
+ background-color: ${({ $colors }) => $colors.light.secondaryColor};
70
+
71
+ html[data-theme='dark'] & {
72
+ background-color: ${({ $colors }) => $colors.dark.secondaryColor};
73
+ }
32
74
  `;
33
- const AvatarFallback = React.forwardRef(({ className, ...props }, ref) => {
34
- const { colors } = useDesign();
35
- return _jsx(StyledAvatarFallback, { ref: ref, className: className, "$backgroundColor": colors.secondaryColor, ...props });
75
+ var AvatarFallback = React.forwardRef(({ className, ...props }, ref) => {
76
+ const { colors } = (0, import__.useDesign)();
77
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
78
+ StyledAvatarFallback,
79
+ {
80
+ ref,
81
+ className,
82
+ $colors: colors,
83
+ ...props
84
+ }
85
+ );
86
+ });
87
+ AvatarFallback.displayName = "AvatarFallback";
88
+ // Annotate the CommonJS export names for ESM import in node:
89
+ 0 && (module.exports = {
90
+ Avatar,
91
+ AvatarFallback,
92
+ AvatarImage
36
93
  });
37
- AvatarFallback.displayName = 'AvatarFallback';
38
- export { Avatar, AvatarImage, AvatarFallback };
@@ -0,0 +1,12 @@
1
+ import React__default from 'react';
2
+
3
+ type ButtonProps = {
4
+ variant?: 'primary' | 'secondary' | 'warning';
5
+ color?: string;
6
+ size?: 'sm' | 'md' | 'lg';
7
+ loading?: boolean;
8
+ onClick?: (() => void) | (() => Promise<void>);
9
+ } & Omit<React__default.HTMLProps<HTMLButtonElement>, 'size' | 'type' | 'onClick'>;
10
+ declare const Button: React__default.ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & React__default.RefAttributes<HTMLButtonElement>>;
11
+
12
+ export { Button, type ButtonProps };
@@ -1,10 +1,12 @@
1
- import React from "react";
2
- export type ButtonProps = {
3
- variant?: 'primary' | 'secondary' | 'warning' | "link";
1
+ import React__default from 'react';
2
+
3
+ type ButtonProps = {
4
+ variant?: 'primary' | 'secondary' | 'warning';
4
5
  color?: string;
5
6
  size?: 'sm' | 'md' | 'lg';
6
7
  loading?: boolean;
7
8
  onClick?: (() => void) | (() => Promise<void>);
8
- } & Omit<React.HTMLProps<HTMLButtonElement>, 'size' | 'type' | 'onClick'>;
9
- declare const Button: React.ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
10
- export { Button, };
9
+ } & Omit<React__default.HTMLProps<HTMLButtonElement>, 'size' | 'type' | 'onClick'>;
10
+ declare const Button: React__default.ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & React__default.RefAttributes<HTMLButtonElement>>;
11
+
12
+ export { Button, type ButtonProps };