@stackframe/stack 2.4.28 → 2.5.1

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 (395) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/components/credential-sign-in-form.d.mts +5 -0
  3. package/dist/components/credential-sign-in-form.d.ts +5 -0
  4. package/dist/components/{credential-sign-in.js → credential-sign-in-form.js} +33 -23
  5. package/dist/components/credential-sign-in-form.js.map +1 -0
  6. package/dist/components/credential-sign-up-form.d.mts +5 -0
  7. package/dist/components/credential-sign-up-form.d.ts +5 -0
  8. package/dist/components/{credential-sign-up.js → credential-sign-up-form.js} +34 -24
  9. package/dist/components/credential-sign-up-form.js.map +1 -0
  10. package/dist/components/{form-warning.d.mts → elements/form-warning.d.mts} +1 -1
  11. package/dist/components/{form-warning.d.ts → elements/form-warning.d.ts} +1 -1
  12. package/dist/components/{form-warning.js → elements/form-warning.js} +7 -4
  13. package/dist/components/elements/form-warning.js.map +1 -0
  14. package/dist/components/{maybe-full-page.d.mts → elements/maybe-full-page.d.mts} +3 -3
  15. package/dist/components/{maybe-full-page.d.ts → elements/maybe-full-page.d.ts} +3 -3
  16. package/dist/components/{maybe-full-page.js → elements/maybe-full-page.js} +11 -10
  17. package/dist/components/elements/maybe-full-page.js.map +1 -0
  18. package/dist/components/{separator-with-text.d.mts → elements/separator-with-text.d.mts} +1 -1
  19. package/dist/components/{separator-with-text.d.ts → elements/separator-with-text.d.ts} +1 -1
  20. package/dist/components/{separator-with-text.js → elements/separator-with-text.js} +11 -7
  21. package/dist/components/elements/separator-with-text.js.map +1 -0
  22. package/dist/components/elements/ssr-layout-effect.d.mts +7 -0
  23. package/dist/components/elements/ssr-layout-effect.d.ts +7 -0
  24. package/dist/{joy.js → components/elements/ssr-layout-effect.js} +17 -8
  25. package/dist/components/elements/ssr-layout-effect.js.map +1 -0
  26. package/dist/components/{user-avatar.d.mts → elements/user-avatar.d.mts} +2 -2
  27. package/dist/components/{user-avatar.d.ts → elements/user-avatar.d.ts} +2 -2
  28. package/dist/components/elements/user-avatar.js +40 -0
  29. package/dist/components/elements/user-avatar.js.map +1 -0
  30. package/dist/components/{forgot-password.d.mts → forgot-password-form.d.mts} +2 -2
  31. package/dist/components/{forgot-password.d.ts → forgot-password-form.d.ts} +2 -2
  32. package/dist/components/{forgot-password.js → forgot-password-form.js} +28 -24
  33. package/dist/components/forgot-password-form.js.map +1 -0
  34. package/dist/components/magic-link-sign-in-form.d.mts +5 -0
  35. package/dist/components/magic-link-sign-in-form.d.ts +5 -0
  36. package/dist/components/{magic-link-sign-in.js → magic-link-sign-in-form.js} +30 -20
  37. package/dist/components/magic-link-sign-in-form.js.map +1 -0
  38. package/dist/components/message-cards/known-error-message-card.d.mts +1 -1
  39. package/dist/components/message-cards/known-error-message-card.d.ts +1 -1
  40. package/dist/components/message-cards/known-error-message-card.js +10 -16
  41. package/dist/components/message-cards/known-error-message-card.js.map +1 -1
  42. package/dist/components/message-cards/message-card.d.mts +3 -3
  43. package/dist/components/message-cards/message-card.d.ts +3 -3
  44. package/dist/components/message-cards/message-card.js +11 -17
  45. package/dist/components/message-cards/message-card.js.map +1 -1
  46. package/dist/components/message-cards/predefined-message-card.d.mts +1 -1
  47. package/dist/components/message-cards/predefined-message-card.d.ts +1 -1
  48. package/dist/components/message-cards/predefined-message-card.js +9 -15
  49. package/dist/components/message-cards/predefined-message-card.js.map +1 -1
  50. package/dist/components/{oauth-group.d.mts → oauth-button-group.d.mts} +2 -2
  51. package/dist/components/{oauth-group.d.ts → oauth-button-group.d.ts} +2 -2
  52. package/dist/components/oauth-button-group.js +43 -0
  53. package/dist/components/oauth-button-group.js.map +1 -0
  54. package/dist/components/oauth-button.d.mts +1 -1
  55. package/dist/components/oauth-button.d.ts +1 -1
  56. package/dist/components/oauth-button.js +40 -7
  57. package/dist/components/oauth-button.js.map +1 -1
  58. package/dist/components/{password-reset-inner.d.mts → password-reset-form.d.mts} +2 -2
  59. package/dist/components/{password-reset-inner.d.ts → password-reset-form.d.ts} +2 -2
  60. package/dist/components/{password-reset-inner.js → password-reset-form.js} +35 -30
  61. package/dist/components/password-reset-form.js.map +1 -0
  62. package/dist/components/selected-team-switcher.d.mts +12 -2
  63. package/dist/components/selected-team-switcher.d.ts +12 -2
  64. package/dist/components/selected-team-switcher.js +43 -35
  65. package/dist/components/selected-team-switcher.js.map +1 -1
  66. package/dist/components/user-button.d.mts +3 -3
  67. package/dist/components/user-button.d.ts +3 -3
  68. package/dist/components/user-button.js +32 -59
  69. package/dist/components/user-button.js.map +1 -1
  70. package/dist/components-page/account-settings.d.mts +1 -1
  71. package/dist/components-page/account-settings.d.ts +1 -1
  72. package/dist/components-page/account-settings.js +39 -45
  73. package/dist/components-page/account-settings.js.map +1 -1
  74. package/dist/components-page/auth-page.d.mts +1 -1
  75. package/dist/components-page/auth-page.d.ts +1 -1
  76. package/dist/components-page/auth-page.js +31 -36
  77. package/dist/components-page/auth-page.js.map +1 -1
  78. package/dist/components-page/email-verification.d.mts +1 -1
  79. package/dist/components-page/email-verification.d.ts +1 -1
  80. package/dist/components-page/email-verification.js +13 -19
  81. package/dist/components-page/email-verification.js.map +1 -1
  82. package/dist/components-page/error-page.d.mts +1 -1
  83. package/dist/components-page/error-page.d.ts +1 -1
  84. package/dist/components-page/error-page.js +15 -20
  85. package/dist/components-page/error-page.js.map +1 -1
  86. package/dist/components-page/forgot-password.d.mts +1 -1
  87. package/dist/components-page/forgot-password.d.ts +1 -1
  88. package/dist/components-page/forgot-password.js +17 -23
  89. package/dist/components-page/forgot-password.js.map +1 -1
  90. package/dist/components-page/magic-link-callback.d.mts +1 -1
  91. package/dist/components-page/magic-link-callback.d.ts +1 -1
  92. package/dist/components-page/magic-link-callback.js +14 -20
  93. package/dist/components-page/magic-link-callback.js.map +1 -1
  94. package/dist/components-page/oauth-callback.d.mts +1 -1
  95. package/dist/components-page/oauth-callback.d.ts +1 -1
  96. package/dist/components-page/oauth-callback.js +10 -16
  97. package/dist/components-page/oauth-callback.js.map +1 -1
  98. package/dist/components-page/password-reset.d.mts +1 -1
  99. package/dist/components-page/password-reset.d.ts +1 -1
  100. package/dist/components-page/password-reset.js +15 -11
  101. package/dist/components-page/password-reset.js.map +1 -1
  102. package/dist/components-page/sign-in.d.mts +1 -1
  103. package/dist/components-page/sign-in.d.ts +1 -1
  104. package/dist/components-page/sign-in.js +7 -13
  105. package/dist/components-page/sign-in.js.map +1 -1
  106. package/dist/components-page/sign-out.d.mts +1 -1
  107. package/dist/components-page/sign-out.d.ts +1 -1
  108. package/dist/components-page/sign-out.js +7 -13
  109. package/dist/components-page/sign-out.js.map +1 -1
  110. package/dist/components-page/sign-up.d.mts +1 -1
  111. package/dist/components-page/sign-up.d.ts +1 -1
  112. package/dist/components-page/sign-up.js +7 -13
  113. package/dist/components-page/sign-up.js.map +1 -1
  114. package/dist/components-page/stack-handler.js +22 -32
  115. package/dist/components-page/stack-handler.js.map +1 -1
  116. package/dist/esm/components/{credential-sign-in.js → credential-sign-in-form.js} +23 -17
  117. package/dist/esm/components/credential-sign-in-form.js.map +1 -0
  118. package/dist/esm/components/{credential-sign-up.js → credential-sign-up-form.js} +23 -17
  119. package/dist/esm/components/credential-sign-up-form.js.map +1 -0
  120. package/dist/esm/components/elements/form-warning.js +15 -0
  121. package/dist/esm/components/elements/form-warning.js.map +1 -0
  122. package/dist/esm/components/{maybe-full-page.js → elements/maybe-full-page.js} +7 -10
  123. package/dist/esm/components/elements/maybe-full-page.js.map +1 -0
  124. package/dist/esm/components/elements/separator-with-text.js +17 -0
  125. package/dist/esm/components/elements/separator-with-text.js.map +1 -0
  126. package/dist/esm/components/elements/ssr-layout-effect.js +16 -0
  127. package/dist/esm/components/elements/ssr-layout-effect.js.map +1 -0
  128. package/dist/esm/components/elements/user-avatar.js +15 -0
  129. package/dist/esm/components/elements/user-avatar.js.map +1 -0
  130. package/dist/esm/components/{forgot-password.js → forgot-password-form.js} +19 -19
  131. package/dist/esm/components/forgot-password-form.js.map +1 -0
  132. package/dist/esm/components/{magic-link-sign-in.js → magic-link-sign-in-form.js} +21 -15
  133. package/dist/esm/components/magic-link-sign-in-form.js.map +1 -0
  134. package/dist/esm/components/message-cards/known-error-message-card.js +5 -5
  135. package/dist/esm/components/message-cards/known-error-message-card.js.map +1 -1
  136. package/dist/esm/components/message-cards/message-card.js +4 -4
  137. package/dist/esm/components/message-cards/message-card.js.map +1 -1
  138. package/dist/esm/components/message-cards/predefined-message-card.js +4 -4
  139. package/dist/esm/components/message-cards/predefined-message-card.js.map +1 -1
  140. package/dist/esm/components/oauth-button-group.js +19 -0
  141. package/dist/esm/components/oauth-button-group.js.map +1 -0
  142. package/dist/esm/components/oauth-button.js +26 -7
  143. package/dist/esm/components/oauth-button.js.map +1 -1
  144. package/dist/esm/components/{password-reset-inner.js → password-reset-form.js} +28 -23
  145. package/dist/esm/components/password-reset-form.js.map +1 -0
  146. package/dist/esm/components/selected-team-switcher.js +50 -45
  147. package/dist/esm/components/selected-team-switcher.js.map +1 -1
  148. package/dist/esm/components/user-button.js +23 -52
  149. package/dist/esm/components/user-button.js.map +1 -1
  150. package/dist/esm/components-page/account-settings.js +29 -29
  151. package/dist/esm/components-page/account-settings.js.map +1 -1
  152. package/dist/esm/components-page/auth-page.js +25 -24
  153. package/dist/esm/components-page/auth-page.js.map +1 -1
  154. package/dist/esm/components-page/email-verification.js +6 -6
  155. package/dist/esm/components-page/email-verification.js.map +1 -1
  156. package/dist/esm/components-page/error-page.js +8 -7
  157. package/dist/esm/components-page/error-page.js.map +1 -1
  158. package/dist/esm/components-page/forgot-password.js +10 -10
  159. package/dist/esm/components-page/forgot-password.js.map +1 -1
  160. package/dist/esm/components-page/magic-link-callback.js +6 -6
  161. package/dist/esm/components-page/magic-link-callback.js.map +1 -1
  162. package/dist/esm/components-page/oauth-callback.js +5 -5
  163. package/dist/esm/components-page/oauth-callback.js.map +1 -1
  164. package/dist/esm/components-page/password-reset.js +11 -11
  165. package/dist/esm/components-page/password-reset.js.map +1 -1
  166. package/dist/esm/components-page/sign-in.js +2 -2
  167. package/dist/esm/components-page/sign-in.js.map +1 -1
  168. package/dist/esm/components-page/sign-out.js +3 -3
  169. package/dist/esm/components-page/sign-out.js.map +1 -1
  170. package/dist/esm/components-page/sign-up.js +2 -2
  171. package/dist/esm/components-page/sign-up.js.map +1 -1
  172. package/dist/esm/components-page/stack-handler.js +11 -11
  173. package/dist/esm/components-page/stack-handler.js.map +1 -1
  174. package/dist/esm/generated/global-css.js +6 -0
  175. package/dist/esm/generated/global-css.js.map +1 -0
  176. package/dist/esm/index.js +33 -40
  177. package/dist/esm/index.js.map +1 -1
  178. package/dist/esm/lib/stack-app.js +3 -6
  179. package/dist/esm/lib/stack-app.js.map +1 -1
  180. package/dist/esm/providers/theme-provider.js +43 -4
  181. package/dist/esm/providers/theme-provider.js.map +1 -1
  182. package/dist/esm/utils/browser-script.js +2 -1
  183. package/dist/esm/utils/browser-script.js.map +1 -1
  184. package/dist/esm/utils/constants.js +43 -12
  185. package/dist/esm/utils/constants.js.map +1 -1
  186. package/dist/generated/global-css.d.mts +3 -0
  187. package/dist/generated/global-css.d.ts +3 -0
  188. package/dist/generated/global-css.js +31 -0
  189. package/dist/generated/global-css.js.map +1 -0
  190. package/dist/index.d.mts +16 -30
  191. package/dist/index.d.ts +16 -30
  192. package/dist/index.js +33 -45
  193. package/dist/index.js.map +1 -1
  194. package/dist/lib/stack-app.d.mts +4 -4
  195. package/dist/lib/stack-app.d.ts +4 -4
  196. package/dist/lib/stack-app.js +3 -6
  197. package/dist/lib/stack-app.js.map +1 -1
  198. package/dist/providers/stack-provider-client.d.mts +3 -3
  199. package/dist/providers/stack-provider-client.d.ts +3 -3
  200. package/dist/providers/stack-provider.d.mts +2 -2
  201. package/dist/providers/stack-provider.d.ts +2 -2
  202. package/dist/providers/styled-components-registry.d.mts +2 -2
  203. package/dist/providers/styled-components-registry.d.ts +2 -2
  204. package/dist/providers/theme-provider.d.mts +34 -17
  205. package/dist/providers/theme-provider.d.ts +34 -17
  206. package/dist/providers/theme-provider.js +43 -4
  207. package/dist/providers/theme-provider.js.map +1 -1
  208. package/dist/utils/browser-script.js +2 -1
  209. package/dist/utils/browser-script.js.map +1 -1
  210. package/dist/utils/constants.d.mts +43 -12
  211. package/dist/utils/constants.d.ts +43 -12
  212. package/dist/utils/constants.js +44 -13
  213. package/dist/utils/constants.js.map +1 -1
  214. package/package.json +25 -32
  215. package/dist/components/credential-sign-in.d.mts +0 -5
  216. package/dist/components/credential-sign-in.d.ts +0 -5
  217. package/dist/components/credential-sign-in.js.map +0 -1
  218. package/dist/components/credential-sign-up.d.mts +0 -5
  219. package/dist/components/credential-sign-up.d.ts +0 -5
  220. package/dist/components/credential-sign-up.js.map +0 -1
  221. package/dist/components/forgot-password.js.map +0 -1
  222. package/dist/components/form-warning.js.map +0 -1
  223. package/dist/components/magic-link-sign-in.d.mts +0 -5
  224. package/dist/components/magic-link-sign-in.d.ts +0 -5
  225. package/dist/components/magic-link-sign-in.js.map +0 -1
  226. package/dist/components/maybe-full-page.js.map +0 -1
  227. package/dist/components/oauth-group.js +0 -49
  228. package/dist/components/oauth-group.js.map +0 -1
  229. package/dist/components/password-field.d.mts +0 -5
  230. package/dist/components/password-field.d.ts +0 -5
  231. package/dist/components/password-field.js +0 -111
  232. package/dist/components/password-field.js.map +0 -1
  233. package/dist/components/password-reset-inner.js.map +0 -1
  234. package/dist/components/separator-with-text.js.map +0 -1
  235. package/dist/components/user-avatar.js +0 -56
  236. package/dist/components/user-avatar.js.map +0 -1
  237. package/dist/components-core/avatar.d.mts +0 -8
  238. package/dist/components-core/avatar.d.ts +0 -8
  239. package/dist/components-core/avatar.js +0 -94
  240. package/dist/components-core/avatar.js.map +0 -1
  241. package/dist/components-core/button.d.mts +0 -13
  242. package/dist/components-core/button.d.ts +0 -13
  243. package/dist/components-core/button.js +0 -217
  244. package/dist/components-core/button.js.map +0 -1
  245. package/dist/components-core/card.d.mts +0 -8
  246. package/dist/components-core/card.d.ts +0 -8
  247. package/dist/components-core/card.js +0 -89
  248. package/dist/components-core/card.js.map +0 -1
  249. package/dist/components-core/collapsible.d.mts +0 -8
  250. package/dist/components-core/collapsible.d.ts +0 -8
  251. package/dist/components-core/collapsible.js +0 -50
  252. package/dist/components-core/collapsible.js.map +0 -1
  253. package/dist/components-core/container.d.mts +0 -8
  254. package/dist/components-core/container.d.ts +0 -8
  255. package/dist/components-core/container.js +0 -70
  256. package/dist/components-core/container.js.map +0 -1
  257. package/dist/components-core/dropdown.d.mts +0 -15
  258. package/dist/components-core/dropdown.d.ts +0 -15
  259. package/dist/components-core/dropdown.js +0 -149
  260. package/dist/components-core/dropdown.js.map +0 -1
  261. package/dist/components-core/index.d.mts +0 -59
  262. package/dist/components-core/index.d.ts +0 -59
  263. package/dist/components-core/index.js +0 -148
  264. package/dist/components-core/index.js.map +0 -1
  265. package/dist/components-core/input.d.mts +0 -6
  266. package/dist/components-core/input.d.ts +0 -6
  267. package/dist/components-core/input.js +0 -119
  268. package/dist/components-core/input.js.map +0 -1
  269. package/dist/components-core/label.d.mts +0 -6
  270. package/dist/components-core/label.d.ts +0 -6
  271. package/dist/components-core/label.js +0 -72
  272. package/dist/components-core/label.js.map +0 -1
  273. package/dist/components-core/link.d.mts +0 -10
  274. package/dist/components-core/link.d.ts +0 -10
  275. package/dist/components-core/link.js +0 -73
  276. package/dist/components-core/link.js.map +0 -1
  277. package/dist/components-core/popover.d.mts +0 -8
  278. package/dist/components-core/popover.d.ts +0 -8
  279. package/dist/components-core/popover.js +0 -81
  280. package/dist/components-core/popover.js.map +0 -1
  281. package/dist/components-core/separator.d.mts +0 -6
  282. package/dist/components-core/separator.d.ts +0 -6
  283. package/dist/components-core/separator.js +0 -71
  284. package/dist/components-core/separator.js.map +0 -1
  285. package/dist/components-core/skeleton.d.mts +0 -7
  286. package/dist/components-core/skeleton.d.ts +0 -7
  287. package/dist/components-core/skeleton.js +0 -87
  288. package/dist/components-core/skeleton.js.map +0 -1
  289. package/dist/components-core/tabs.d.mts +0 -9
  290. package/dist/components-core/tabs.d.ts +0 -9
  291. package/dist/components-core/tabs.js +0 -124
  292. package/dist/components-core/tabs.js.map +0 -1
  293. package/dist/components-core/text.d.mts +0 -10
  294. package/dist/components-core/text.d.ts +0 -10
  295. package/dist/components-core/text.js +0 -98
  296. package/dist/components-core/text.js.map +0 -1
  297. package/dist/components-core-joy/button.d.mts +0 -6
  298. package/dist/components-core-joy/button.d.ts +0 -6
  299. package/dist/components-core-joy/button.js +0 -88
  300. package/dist/components-core-joy/button.js.map +0 -1
  301. package/dist/components-core-joy/input.d.mts +0 -5
  302. package/dist/components-core-joy/input.d.ts +0 -5
  303. package/dist/components-core-joy/input.js +0 -53
  304. package/dist/components-core-joy/input.js.map +0 -1
  305. package/dist/components-core-joy/separator.d.mts +0 -6
  306. package/dist/components-core-joy/separator.d.ts +0 -6
  307. package/dist/components-core-joy/separator.js +0 -52
  308. package/dist/components-core-joy/separator.js.map +0 -1
  309. package/dist/components-core-joy/tabs.d.mts +0 -9
  310. package/dist/components-core-joy/tabs.d.ts +0 -9
  311. package/dist/components-core-joy/tabs.js +0 -67
  312. package/dist/components-core-joy/tabs.js.map +0 -1
  313. package/dist/components-core-joy/text.d.mts +0 -9
  314. package/dist/components-core-joy/text.d.ts +0 -9
  315. package/dist/components-core-joy/text.js +0 -70
  316. package/dist/components-core-joy/text.js.map +0 -1
  317. package/dist/esm/components/credential-sign-in.js.map +0 -1
  318. package/dist/esm/components/credential-sign-up.js.map +0 -1
  319. package/dist/esm/components/forgot-password.js.map +0 -1
  320. package/dist/esm/components/form-warning.js +0 -16
  321. package/dist/esm/components/form-warning.js.map +0 -1
  322. package/dist/esm/components/magic-link-sign-in.js.map +0 -1
  323. package/dist/esm/components/maybe-full-page.js.map +0 -1
  324. package/dist/esm/components/oauth-group.js +0 -19
  325. package/dist/esm/components/oauth-group.js.map +0 -1
  326. package/dist/esm/components/password-field.js +0 -81
  327. package/dist/esm/components/password-field.js.map +0 -1
  328. package/dist/esm/components/password-reset-inner.js.map +0 -1
  329. package/dist/esm/components/separator-with-text.js +0 -17
  330. package/dist/esm/components/separator-with-text.js.map +0 -1
  331. package/dist/esm/components/user-avatar.js +0 -25
  332. package/dist/esm/components/user-avatar.js.map +0 -1
  333. package/dist/esm/components-core/avatar.js +0 -57
  334. package/dist/esm/components-core/avatar.js.map +0 -1
  335. package/dist/esm/components-core/button.js +0 -183
  336. package/dist/esm/components-core/button.js.map +0 -1
  337. package/dist/esm/components-core/card.js +0 -52
  338. package/dist/esm/components-core/card.js.map +0 -1
  339. package/dist/esm/components-core/collapsible.js +0 -14
  340. package/dist/esm/components-core/collapsible.js.map +0 -1
  341. package/dist/esm/components-core/container.js +0 -36
  342. package/dist/esm/components-core/container.js.map +0 -1
  343. package/dist/esm/components-core/dropdown.js +0 -110
  344. package/dist/esm/components-core/dropdown.js.map +0 -1
  345. package/dist/esm/components-core/index.js +0 -94
  346. package/dist/esm/components-core/index.js.map +0 -1
  347. package/dist/esm/components-core/input.js +0 -85
  348. package/dist/esm/components-core/input.js.map +0 -1
  349. package/dist/esm/components-core/label.js +0 -38
  350. package/dist/esm/components-core/label.js.map +0 -1
  351. package/dist/esm/components-core/link.js +0 -39
  352. package/dist/esm/components-core/link.js.map +0 -1
  353. package/dist/esm/components-core/popover.js +0 -44
  354. package/dist/esm/components-core/popover.js.map +0 -1
  355. package/dist/esm/components-core/separator.js +0 -37
  356. package/dist/esm/components-core/separator.js.map +0 -1
  357. package/dist/esm/components-core/skeleton.js +0 -53
  358. package/dist/esm/components-core/skeleton.js.map +0 -1
  359. package/dist/esm/components-core/tabs.js +0 -86
  360. package/dist/esm/components-core/tabs.js.map +0 -1
  361. package/dist/esm/components-core/text.js +0 -64
  362. package/dist/esm/components-core/text.js.map +0 -1
  363. package/dist/esm/components-core-joy/button.js +0 -54
  364. package/dist/esm/components-core-joy/button.js.map +0 -1
  365. package/dist/esm/components-core-joy/input.js +0 -19
  366. package/dist/esm/components-core-joy/input.js.map +0 -1
  367. package/dist/esm/components-core-joy/separator.js +0 -18
  368. package/dist/esm/components-core-joy/separator.js.map +0 -1
  369. package/dist/esm/components-core-joy/tabs.js +0 -30
  370. package/dist/esm/components-core-joy/tabs.js.map +0 -1
  371. package/dist/esm/components-core-joy/text.js +0 -36
  372. package/dist/esm/components-core-joy/text.js.map +0 -1
  373. package/dist/esm/joy.js +0 -6
  374. package/dist/esm/joy.js.map +0 -1
  375. package/dist/esm/providers/component-provider.js +0 -77
  376. package/dist/esm/providers/component-provider.js.map +0 -1
  377. package/dist/esm/providers/design-provider.js +0 -37
  378. package/dist/esm/providers/design-provider.js.map +0 -1
  379. package/dist/esm/providers/joy-provider.js +0 -36
  380. package/dist/esm/providers/joy-provider.js.map +0 -1
  381. package/dist/joy.d.mts +0 -16
  382. package/dist/joy.d.ts +0 -16
  383. package/dist/joy.js.map +0 -1
  384. package/dist/providers/component-provider.d.mts +0 -113
  385. package/dist/providers/component-provider.d.ts +0 -113
  386. package/dist/providers/component-provider.js +0 -96
  387. package/dist/providers/component-provider.js.map +0 -1
  388. package/dist/providers/design-provider.d.mts +0 -34
  389. package/dist/providers/design-provider.d.ts +0 -34
  390. package/dist/providers/design-provider.js +0 -62
  391. package/dist/providers/design-provider.js.map +0 -1
  392. package/dist/providers/joy-provider.d.mts +0 -36
  393. package/dist/providers/joy-provider.d.ts +0 -36
  394. package/dist/providers/joy-provider.js +0 -61
  395. package/dist/providers/joy-provider.js.map +0 -1
@@ -1,16 +1,16 @@
1
1
  "use client";
2
2
  "use client";
3
3
 
4
- // src/components/credential-sign-up.tsx
4
+ // src/components/credential-sign-up-form.tsx
5
5
  import { useForm } from "react-hook-form";
6
6
  import { yupResolver } from "@hookform/resolvers/yup";
7
7
  import * as yup from "yup";
8
- import PasswordField from "./password-field";
9
- import FormWarningText from "./form-warning";
8
+ import { FormWarningText } from "./elements/form-warning";
10
9
  import { useStackApp } from "..";
11
- import { Label, Input, Button } from "../components-core";
12
10
  import { runAsynchronouslyWithAlert } from "@stackframe/stack-shared/dist/utils/promises";
13
11
  import { getPasswordError } from "@stackframe/stack-shared/dist/helpers/password";
12
+ import { Button, Input, Label, PasswordInput } from "@stackframe/stack-ui";
13
+ import { useState } from "react";
14
14
  import { jsx, jsxs } from "react/jsx-runtime";
15
15
  var schema = yup.object().shape({
16
16
  email: yup.string().email("Please enter a valid email").required("Please enter your email"),
@@ -27,24 +27,30 @@ var schema = yup.object().shape({
27
27
  }),
28
28
  passwordRepeat: yup.string().nullable().oneOf([yup.ref("password"), null], "Passwords do not match").required("Please repeat your password")
29
29
  });
30
- function CredentialSignUp() {
30
+ function CredentialSignUpForm() {
31
31
  const { register, handleSubmit, setError, formState: { errors }, clearErrors } = useForm({
32
32
  resolver: yupResolver(schema)
33
33
  });
34
34
  const app = useStackApp();
35
+ const [loading, setLoading] = useState(false);
35
36
  const onSubmit = async (data) => {
36
- const { email, password } = data;
37
- const error = await app.signUpWithCredential({ email, password });
38
- setError("email", { type: "manual", message: error?.message });
37
+ setLoading(true);
38
+ try {
39
+ const { email, password } = data;
40
+ const error = await app.signUpWithCredential({ email, password });
41
+ setError("email", { type: "manual", message: error?.message });
42
+ } finally {
43
+ setLoading(false);
44
+ }
39
45
  };
40
46
  return /* @__PURE__ */ jsxs(
41
47
  "form",
42
48
  {
43
- style: { display: "flex", flexDirection: "column", alignItems: "stretch" },
49
+ className: "flex flex-col items-stretch stack-scope",
44
50
  onSubmit: (e) => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e)),
45
51
  noValidate: true,
46
52
  children: [
47
- /* @__PURE__ */ jsx(Label, { htmlFor: "email", children: "Email" }),
53
+ /* @__PURE__ */ jsx(Label, { htmlFor: "email", className: "mb-1", children: "Email" }),
48
54
  /* @__PURE__ */ jsx(
49
55
  Input,
50
56
  {
@@ -54,9 +60,9 @@ function CredentialSignUp() {
54
60
  }
55
61
  ),
56
62
  /* @__PURE__ */ jsx(FormWarningText, { text: errors.email?.message?.toString() }),
57
- /* @__PURE__ */ jsx(Label, { htmlFor: "password", style: { marginTop: "1rem" }, children: "Password" }),
63
+ /* @__PURE__ */ jsx(Label, { htmlFor: "password", className: "mt-4 mb-1", children: "Password" }),
58
64
  /* @__PURE__ */ jsx(
59
- PasswordField,
65
+ PasswordInput,
60
66
  {
61
67
  id: "password",
62
68
  ...register("password"),
@@ -67,9 +73,9 @@ function CredentialSignUp() {
67
73
  }
68
74
  ),
69
75
  /* @__PURE__ */ jsx(FormWarningText, { text: errors.password?.message?.toString() }),
70
- /* @__PURE__ */ jsx(Label, { htmlFor: "repeat-password", style: { marginTop: "1rem" }, children: "Repeat Password" }),
76
+ /* @__PURE__ */ jsx(Label, { htmlFor: "repeat-password", className: "mt-4 mb-1", children: "Repeat Password" }),
71
77
  /* @__PURE__ */ jsx(
72
- PasswordField,
78
+ PasswordInput,
73
79
  {
74
80
  id: "repeat-password",
75
81
  ...register("passwordRepeat"),
@@ -80,12 +86,12 @@ function CredentialSignUp() {
80
86
  }
81
87
  ),
82
88
  /* @__PURE__ */ jsx(FormWarningText, { text: errors.passwordRepeat?.message?.toString() }),
83
- /* @__PURE__ */ jsx(Button, { type: "submit", style: { marginTop: "1.5rem" }, children: "Sign Up" })
89
+ /* @__PURE__ */ jsx(Button, { type: "submit", className: "mt-6", children: "Sign Up" })
84
90
  ]
85
91
  }
86
92
  );
87
93
  }
88
94
  export {
89
- CredentialSignUp as default
95
+ CredentialSignUpForm
90
96
  };
91
- //# sourceMappingURL=credential-sign-up.js.map
97
+ //# sourceMappingURL=credential-sign-up-form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/credential-sign-up-form.tsx"],"sourcesContent":["'use client';\n\nimport { useForm } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as yup from \"yup\";\nimport { FormWarningText } from \"./elements/form-warning\";\nimport { useStackApp } from \"..\";\nimport { runAsynchronouslyWithAlert } from \"@stackframe/stack-shared/dist/utils/promises\";\nimport { getPasswordError } from \"@stackframe/stack-shared/dist/helpers/password\";\nimport { Button, Input, Label, PasswordInput } from \"@stackframe/stack-ui\";\nimport { useState } from \"react\";\n\nconst schema = yup.object().shape({\n email: yup.string().email('Please enter a valid email').required('Please enter your email'),\n password: yup.string().required('Please enter your password').test({\n name: 'is-valid-password',\n test: (value, ctx) => {\n const error = getPasswordError(value);\n if (error) {\n return ctx.createError({ message: error.message });\n } else {\n return true;\n }\n }\n }),\n passwordRepeat: yup.string().nullable().oneOf([yup.ref('password'), null], 'Passwords do not match').required('Please repeat your password')\n});\n\nexport function CredentialSignUpForm() {\n const { register, handleSubmit, setError, formState: { errors }, clearErrors } = useForm({\n resolver: yupResolver(schema)\n });\n const app = useStackApp();\n const [loading, setLoading] = useState(false);\n\n const onSubmit = async (data: yup.InferType<typeof schema>) => {\n setLoading(true);\n try {\n const { email, password } = data;\n const error = await app.signUpWithCredential({ email, password });\n setError('email', { type: 'manual', message: error?.message });\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <form \n className=\"flex flex-col items-stretch stack-scope\"\n onSubmit={e => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e))}\n noValidate\n >\n <Label htmlFor=\"email\" className=\"mb-1\">Email</Label>\n <Input\n id=\"email\"\n type=\"email\"\n {...register('email')}\n />\n <FormWarningText text={errors.email?.message?.toString()} />\n\n <Label htmlFor=\"password\" className=\"mt-4 mb-1\">Password</Label>\n <PasswordInput\n id=\"password\"\n {...register('password')}\n onChange={(e) => {\n clearErrors('password');\n clearErrors('passwordRepeat');\n }}\n />\n <FormWarningText text={errors.password?.message?.toString()} />\n \n <Label htmlFor=\"repeat-password\" className=\"mt-4 mb-1\">Repeat Password</Label>\n <PasswordInput\n id=\"repeat-password\"\n {...register('passwordRepeat')}\n onChange={(e) => {\n clearErrors('password');\n clearErrors('passwordRepeat');\n }}\n />\n <FormWarningText text={errors.passwordRepeat?.message?.toString()} />\n \n <Button type=\"submit\" className=\"mt-6\">\n Sign Up\n </Button>\n </form>\n );\n}\n"],"mappings":";;;AAEA,SAAS,eAAe;AACxB,SAAS,mBAAmB;AAC5B,YAAY,SAAS;AACrB,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAC5B,SAAS,kCAAkC;AAC3C,SAAS,wBAAwB;AACjC,SAAS,QAAQ,OAAO,OAAO,qBAAqB;AACpD,SAAS,gBAAgB;AAqCrB,SAKE,KALF;AAnCJ,IAAM,SAAa,WAAO,EAAE,MAAM;AAAA,EAChC,OAAW,WAAO,EAAE,MAAM,4BAA4B,EAAE,SAAS,yBAAyB;AAAA,EAC1F,UAAc,WAAO,EAAE,SAAS,4BAA4B,EAAE,KAAK;AAAA,IACjE,MAAM;AAAA,IACN,MAAM,CAAC,OAAO,QAAQ;AACpB,YAAM,QAAQ,iBAAiB,KAAK;AACpC,UAAI,OAAO;AACT,eAAO,IAAI,YAAY,EAAE,SAAS,MAAM,QAAQ,CAAC;AAAA,MACnD,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF,CAAC;AAAA,EACD,gBAAoB,WAAO,EAAE,SAAS,EAAE,MAAM,CAAK,QAAI,UAAU,GAAG,IAAI,GAAG,wBAAwB,EAAE,SAAS,6BAA6B;AAC7I,CAAC;AAEM,SAAS,uBAAuB;AACrC,QAAM,EAAE,UAAU,cAAc,UAAU,WAAW,EAAE,OAAO,GAAG,YAAY,IAAI,QAAQ;AAAA,IACvF,UAAU,YAAY,MAAM;AAAA,EAC9B,CAAC;AACD,QAAM,MAAM,YAAY;AACxB,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAE5C,QAAM,WAAW,OAAO,SAAuC;AAC7D,eAAW,IAAI;AACf,QAAI;AACF,YAAM,EAAE,OAAO,SAAS,IAAI;AAC5B,YAAM,QAAQ,MAAM,IAAI,qBAAqB,EAAE,OAAO,SAAS,CAAC;AAClE,eAAS,SAAS,EAAE,MAAM,UAAU,SAAS,OAAO,QAAQ,CAAC;AAAA,IAC7D,UAAE;AACA,iBAAW,KAAK;AAAA,IAClB;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,UAAU,OAAK,2BAA2B,aAAa,QAAQ,EAAE,CAAC,CAAC;AAAA,MACnE,YAAU;AAAA,MAEV;AAAA,4BAAC,SAAM,SAAQ,SAAQ,WAAU,QAAO,mBAAK;AAAA,QAC7C;AAAA,UAAC;AAAA;AAAA,YACC,IAAG;AAAA,YACH,MAAK;AAAA,YACJ,GAAG,SAAS,OAAO;AAAA;AAAA,QACtB;AAAA,QACA,oBAAC,mBAAgB,MAAM,OAAO,OAAO,SAAS,SAAS,GAAG;AAAA,QAE1D,oBAAC,SAAM,SAAQ,YAAW,WAAU,aAAY,sBAAQ;AAAA,QACxD;AAAA,UAAC;AAAA;AAAA,YACC,IAAG;AAAA,YACF,GAAG,SAAS,UAAU;AAAA,YACvB,UAAU,CAAC,MAAM;AACf,0BAAY,UAAU;AACtB,0BAAY,gBAAgB;AAAA,YAC9B;AAAA;AAAA,QACF;AAAA,QACA,oBAAC,mBAAgB,MAAM,OAAO,UAAU,SAAS,SAAS,GAAG;AAAA,QAE7D,oBAAC,SAAM,SAAQ,mBAAkB,WAAU,aAAY,6BAAe;AAAA,QACtE;AAAA,UAAC;AAAA;AAAA,YACC,IAAG;AAAA,YACF,GAAG,SAAS,gBAAgB;AAAA,YAC7B,UAAU,CAAC,MAAM;AACf,0BAAY,UAAU;AACtB,0BAAY,gBAAgB;AAAA,YAC9B;AAAA;AAAA,QACF;AAAA,QACA,oBAAC,mBAAgB,MAAM,OAAO,gBAAgB,SAAS,SAAS,GAAG;AAAA,QAEnE,oBAAC,UAAO,MAAK,UAAS,WAAU,QAAO,qBAEvC;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -0,0 +1,15 @@
1
+ "use client";
2
+ "use client";
3
+
4
+ // src/components/elements/form-warning.tsx
5
+ import { jsx } from "react/jsx-runtime";
6
+ function FormWarningText({ text }) {
7
+ if (!text) {
8
+ return null;
9
+ }
10
+ return /* @__PURE__ */ jsx("div", { className: "text-red-500 text-sm mt-1", children: text });
11
+ }
12
+ export {
13
+ FormWarningText
14
+ };
15
+ //# sourceMappingURL=form-warning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/elements/form-warning.tsx"],"sourcesContent":["'use client';\n\nexport function FormWarningText({ text }: { text?: string }) {\n if (!text) {\n return null;\n }\n return (\n <div className=\"text-red-500 text-sm mt-1\">\n {text}\n </div>\n );\n}\n"],"mappings":";;;AAOI;AALG,SAAS,gBAAgB,EAAE,KAAK,GAAsB;AAC3D,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AACA,SACE,oBAAC,SAAI,WAAU,6BACZ,gBACH;AAEJ;","names":[]}
@@ -1,9 +1,10 @@
1
1
  "use client";
2
2
  "use client";
3
3
 
4
- // src/components/maybe-full-page.tsx
5
- import { Container } from "../components-core";
6
- import { useEffect, useId } from "react";
4
+ // src/components/elements/maybe-full-page.tsx
5
+ import { Container } from "@stackframe/stack-ui";
6
+ import { useId } from "react";
7
+ import { SsrScript } from "./ssr-layout-effect";
7
8
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
9
  function MaybeFullPage({
9
10
  children,
@@ -20,9 +21,6 @@ function MaybeFullPage({
20
21
  const offset = el.getBoundingClientRect().top + document.documentElement.scrollTop;
21
22
  el.style.minHeight = \`calc(100vh - \${offset}px)\`;
22
23
  })(${JSON.stringify([id])})`;
23
- useEffect(() => {
24
- (0, eval)(scriptString);
25
- }, []);
26
24
  if (fullPage) {
27
25
  return /* @__PURE__ */ jsxs(Fragment, { children: [
28
26
  /* @__PURE__ */ jsx(
@@ -37,18 +35,17 @@ function MaybeFullPage({
37
35
  alignItems: "center",
38
36
  justifyContent: "center"
39
37
  },
38
+ className: "stack-scope",
40
39
  children: /* @__PURE__ */ jsx(Container, { size: 380, style: { padding: "1rem 1rem" }, children })
41
40
  }
42
41
  ),
43
- /* @__PURE__ */ jsx("script", { dangerouslySetInnerHTML: {
44
- __html: scriptString
45
- } })
42
+ /* @__PURE__ */ jsx(SsrScript, { script: scriptString })
46
43
  ] });
47
44
  } else {
48
45
  return /* @__PURE__ */ jsx(Fragment, { children });
49
46
  }
50
47
  }
51
48
  export {
52
- MaybeFullPage as default
49
+ MaybeFullPage
53
50
  };
54
51
  //# sourceMappingURL=maybe-full-page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/elements/maybe-full-page.tsx"],"sourcesContent":["\"use client\";\n\nimport { Container } from \"@stackframe/stack-ui\";\nimport React, { useId } from \"react\";\nimport { SsrScript } from \"./ssr-layout-effect\";\n\nexport function MaybeFullPage({ \n children, \n fullPage=true\n}: { \n children: React.ReactNode, \n fullPage?: boolean, \n}) {\n const uniqueId = useId();\n const id = `stack-card-frame-${uniqueId}`;\n\n const scriptString = `(([id]) => {\n const el = document.getElementById(id);\n if (!el) {\n // component is not full page\n return;\n }\n const offset = el.getBoundingClientRect().top + document.documentElement.scrollTop;\n el.style.minHeight = \\`calc(100vh - \\${offset}px)\\`;\n })(${JSON.stringify([id])})`;\n\n if (fullPage) {\n return (\n <>\n <div \n id={id}\n suppressHydrationWarning\n style={{ \n minHeight: '100vh',\n alignSelf: 'stretch',\n display: 'flex', \n alignItems: 'center', \n justifyContent: 'center',\n }}\n className=\"stack-scope\"\n >\n <Container size={380} style={{ padding: '1rem 1rem' }}>\n {children}\n </Container>\n </div>\n <SsrScript script={scriptString} />\n </>\n );\n } else {\n return <>\n {children}\n </>;\n }\n \n}\n"],"mappings":";;;AAEA,SAAS,iBAAiB;AAC1B,SAAgB,aAAa;AAC7B,SAAS,iBAAiB;AAwBpB,mBAaI,KAbJ;AAtBC,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA,WAAS;AACX,GAGG;AACD,QAAM,WAAW,MAAM;AACvB,QAAM,KAAK,oBAAoB,QAAQ;AAEvC,QAAM,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAQhB,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC;AAEzB,MAAI,UAAU;AACZ,WACE,iCACE;AAAA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,0BAAwB;AAAA,UACxB,OAAO;AAAA,YACL,WAAW;AAAA,YACX,WAAW;AAAA,YACX,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,gBAAgB;AAAA,UAClB;AAAA,UACA,WAAU;AAAA,UAEV,8BAAC,aAAU,MAAM,KAAK,OAAO,EAAE,SAAS,YAAY,GACjD,UACH;AAAA;AAAA,MACF;AAAA,MACA,oBAAC,aAAU,QAAQ,cAAc;AAAA,OACnC;AAAA,EAEJ,OAAO;AACL,WAAO,gCACJ,UACH;AAAA,EACF;AAEF;","names":[]}
@@ -0,0 +1,17 @@
1
+ "use client";
2
+ "use client";
3
+
4
+ // src/components/elements/separator-with-text.tsx
5
+ import { Separator } from "@stackframe/stack-ui";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ function SeparatorWithText({ text }) {
8
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-center my-6 stack-scope", children: [
9
+ /* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(Separator, {}) }),
10
+ /* @__PURE__ */ jsx("div", { className: "mx-2 text-sm text-zinc-500", children: text }),
11
+ /* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(Separator, {}) })
12
+ ] });
13
+ }
14
+ export {
15
+ SeparatorWithText
16
+ };
17
+ //# sourceMappingURL=separator-with-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/elements/separator-with-text.tsx"],"sourcesContent":["'use client';\n\nimport { Separator } from \"@stackframe/stack-ui\";\n\nexport function SeparatorWithText({ text }: { text: string }) {\n return (\n <div className=\"flex items-center justify-center my-6 stack-scope\">\n <div className=\"flex-1\">\n <Separator />\n </div>\n <div className=\"mx-2 text-sm text-zinc-500\">{text}</div>\n <div className=\"flex-1\">\n <Separator />\n </div>\n </div>\n );\n}\n"],"mappings":";;;AAEA,SAAS,iBAAiB;AAItB,SAEI,KAFJ;AAFG,SAAS,kBAAkB,EAAE,KAAK,GAAqB;AAC5D,SACE,qBAAC,SAAI,WAAU,qDACb;AAAA,wBAAC,SAAI,WAAU,UACb,8BAAC,aAAU,GACb;AAAA,IACA,oBAAC,SAAI,WAAU,8BAA8B,gBAAK;AAAA,IAClD,oBAAC,SAAI,WAAU,UACb,8BAAC,aAAU,GACb;AAAA,KACF;AAEJ;","names":[]}
@@ -0,0 +1,16 @@
1
+ "use client";
2
+ "use client";
3
+
4
+ // src/components/elements/ssr-layout-effect.tsx
5
+ import { useLayoutEffect } from "react";
6
+ import { jsx } from "react/jsx-runtime";
7
+ function SsrScript(props) {
8
+ useLayoutEffect(() => {
9
+ (0, eval)(props.script);
10
+ }, []);
11
+ return /* @__PURE__ */ jsx("script", { dangerouslySetInnerHTML: { __html: props.script } });
12
+ }
13
+ export {
14
+ SsrScript
15
+ };
16
+ //# sourceMappingURL=ssr-layout-effect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/elements/ssr-layout-effect.tsx"],"sourcesContent":["\"use client\";\nimport { useLayoutEffect } from \"react\";\n\nexport function SsrScript(props: { script: string }) {\n useLayoutEffect(() => {\n // TODO fix workaround: React has a bug where it doesn't run the script on the first CSR render if SSR has been skipped due to suspense\n // As a workaround, we run the script in the <script> tag again after the first render\n // Note that we do an indirect eval as described here: https://esbuild.github.io/content-types/#direct-eval\n (0, eval)(props.script);\n }, []);\n\n return <script dangerouslySetInnerHTML={{ __html: props.script }} />;\n}\n"],"mappings":";;;AACA,SAAS,uBAAuB;AAUvB;AARF,SAAS,UAAU,OAA2B;AACnD,kBAAgB,MAAM;AAIpB,KAAC,GAAG,MAAM,MAAM,MAAM;AAAA,EACxB,GAAG,CAAC,CAAC;AAEL,SAAO,oBAAC,YAAO,yBAAyB,EAAE,QAAQ,MAAM,OAAO,GAAG;AACpE;","names":[]}
@@ -0,0 +1,15 @@
1
+ // src/components/elements/user-avatar.tsx
2
+ import { UserRound } from "lucide-react";
3
+ import { Avatar, AvatarFallback, AvatarImage } from "@stackframe/stack-ui";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ function UserAvatar(props) {
6
+ const user = props.user;
7
+ return /* @__PURE__ */ jsxs(Avatar, { style: { height: props.size || "34px", width: props.size || "34px" }, children: [
8
+ /* @__PURE__ */ jsx(AvatarImage, { src: user?.profileImageUrl || "" }),
9
+ /* @__PURE__ */ jsx(AvatarFallback, { children: user ? /* @__PURE__ */ jsx("div", { className: "font-medium", children: (user.displayName || user.primaryEmail)?.slice(0, 2).toUpperCase() }) : /* @__PURE__ */ jsx(UserRound, { className: "h-5 w-5 text-zinc-500" }) })
10
+ ] });
11
+ }
12
+ export {
13
+ UserAvatar
14
+ };
15
+ //# sourceMappingURL=user-avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/elements/user-avatar.tsx"],"sourcesContent":["import { UserRound } from \"lucide-react\";\nimport { User } from \"../../lib/stack-app\";\nimport { Avatar, AvatarFallback, AvatarImage } from \"@stackframe/stack-ui\";\n\nexport function UserAvatar(props: { size?: number, user: User | null }) {\n const user = props.user;\n return (\n <Avatar style={{ height: props.size || '34px', width: props.size || '34px' }}>\n <AvatarImage src={user?.profileImageUrl || ''} />\n <AvatarFallback>\n {user ? \n <div className='font-medium'>\n {(user.displayName || user.primaryEmail)?.slice(0, 2).toUpperCase()}\n </div> :\n <UserRound className=\"h-5 w-5 text-zinc-500\" />}\n </AvatarFallback>\n </Avatar>\n );\n}\n"],"mappings":";AAAA,SAAS,iBAAiB;AAE1B,SAAS,QAAQ,gBAAgB,mBAAmB;AAKhD,SACE,KADF;AAHG,SAAS,WAAW,OAA6C;AACtE,QAAM,OAAO,MAAM;AACnB,SACE,qBAAC,UAAO,OAAO,EAAE,QAAQ,MAAM,QAAQ,QAAQ,OAAO,MAAM,QAAQ,OAAO,GACzE;AAAA,wBAAC,eAAY,KAAK,MAAM,mBAAmB,IAAI;AAAA,IAC/C,oBAAC,kBACE,iBACC,oBAAC,SAAI,WAAU,eACX,gBAAK,eAAe,KAAK,eAAe,MAAM,GAAG,CAAC,EAAE,YAAY,GACpE,IACA,oBAAC,aAAU,WAAU,yBAAwB,GACjD;AAAA,KACF;AAEJ;","names":[]}
@@ -1,36 +1,43 @@
1
1
  "use client";
2
2
  "use client";
3
3
 
4
- // src/components/forgot-password.tsx
4
+ // src/components/forgot-password-form.tsx
5
5
  import { useForm } from "react-hook-form";
6
6
  import { yupResolver } from "@hookform/resolvers/yup";
7
7
  import * as yup from "yup";
8
- import FormWarningText from "./form-warning";
8
+ import { FormWarningText } from "./elements/form-warning";
9
9
  import { useStackApp } from "..";
10
- import { Button, Input, Label } from "../components-core";
11
10
  import { runAsynchronouslyWithAlert } from "@stackframe/stack-shared/dist/utils/promises";
11
+ import { Button, Input, Label } from "@stackframe/stack-ui";
12
+ import { useState } from "react";
12
13
  import { jsx, jsxs } from "react/jsx-runtime";
13
14
  var schema = yup.object().shape({
14
15
  email: yup.string().email("Please enter a valid email").required("Please enter your email")
15
16
  });
16
- function ForgotPassword({ onSent }) {
17
+ function ForgotPasswordForm({ onSent }) {
17
18
  const { register, handleSubmit, formState: { errors }, clearErrors } = useForm({
18
19
  resolver: yupResolver(schema)
19
20
  });
20
21
  const stackApp = useStackApp();
22
+ const [loading, setLoading] = useState(false);
21
23
  const onSubmit = async (data) => {
22
- const { email } = data;
23
- await stackApp.sendForgotPasswordEmail(email);
24
- onSent?.();
24
+ setLoading(true);
25
+ try {
26
+ const { email } = data;
27
+ await stackApp.sendForgotPasswordEmail(email);
28
+ onSent?.();
29
+ } finally {
30
+ setLoading(false);
31
+ }
25
32
  };
26
33
  return /* @__PURE__ */ jsxs(
27
34
  "form",
28
35
  {
29
- style: { display: "flex", flexDirection: "column", alignItems: "stretch" },
36
+ className: "flex flex-col items-stretch stack-scope",
30
37
  onSubmit: (e) => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e)),
31
38
  noValidate: true,
32
39
  children: [
33
- /* @__PURE__ */ jsx(Label, { htmlFor: "email", children: "Your Email" }),
40
+ /* @__PURE__ */ jsx(Label, { htmlFor: "email", className: "mb-1", children: "Your Email" }),
34
41
  /* @__PURE__ */ jsx(
35
42
  Input,
36
43
  {
@@ -41,19 +48,12 @@ function ForgotPassword({ onSent }) {
41
48
  }
42
49
  ),
43
50
  /* @__PURE__ */ jsx(FormWarningText, { text: errors.email?.message?.toString() }),
44
- /* @__PURE__ */ jsx(
45
- Button,
46
- {
47
- type: "submit",
48
- style: { marginTop: "1.5rem" },
49
- children: "Send Email"
50
- }
51
- )
51
+ /* @__PURE__ */ jsx(Button, { type: "submit", className: "mt-6", loading, children: "Send Email" })
52
52
  ]
53
53
  }
54
54
  );
55
55
  }
56
56
  export {
57
- ForgotPassword as default
57
+ ForgotPasswordForm
58
58
  };
59
- //# sourceMappingURL=forgot-password.js.map
59
+ //# sourceMappingURL=forgot-password-form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/forgot-password-form.tsx"],"sourcesContent":["'use client';\n\nimport { useForm } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as yup from \"yup\";\nimport { FormWarningText } from \"./elements/form-warning\";\nimport { useStackApp } from \"..\";\nimport { runAsynchronouslyWithAlert } from \"@stackframe/stack-shared/dist/utils/promises\";\nimport { Button, Input, Label } from \"@stackframe/stack-ui\";\nimport { useState } from \"react\";\n\nconst schema = yup.object().shape({\n email: yup.string().email('Please enter a valid email').required('Please enter your email')\n});\n\nexport function ForgotPasswordForm({ onSent }: { onSent?: () => void }) {\n const { register, handleSubmit, formState: { errors }, clearErrors } = useForm({\n resolver: yupResolver(schema)\n });\n const stackApp = useStackApp();\n const [loading, setLoading] = useState(false);\n\n const onSubmit = async (data: yup.InferType<typeof schema>) => {\n setLoading(true);\n try {\n const { email } = data;\n await stackApp.sendForgotPasswordEmail(email);\n onSent?.();\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <form\n className=\"flex flex-col items-stretch stack-scope\" \n onSubmit={e => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e))}\n noValidate\n >\n <Label htmlFor=\"email\" className=\"mb-1\">Your Email</Label>\n <Input\n id=\"email\"\n type=\"email\"\n {...register('email')}\n onChange={() => clearErrors('email')}\n />\n <FormWarningText text={errors.email?.message?.toString()} />\n\n <Button type=\"submit\" className=\"mt-6\" loading={loading}>\n Send Email\n </Button>\n </form>\n );\n}\n"],"mappings":";;;AAEA,SAAS,eAAe;AACxB,SAAS,mBAAmB;AAC5B,YAAY,SAAS;AACrB,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAC5B,SAAS,kCAAkC;AAC3C,SAAS,QAAQ,OAAO,aAAa;AACrC,SAAS,gBAAgB;AAyBrB,SAKE,KALF;AAvBJ,IAAM,SAAa,WAAO,EAAE,MAAM;AAAA,EAChC,OAAW,WAAO,EAAE,MAAM,4BAA4B,EAAE,SAAS,yBAAyB;AAC5F,CAAC;AAEM,SAAS,mBAAmB,EAAE,OAAO,GAA4B;AACtE,QAAM,EAAE,UAAU,cAAc,WAAW,EAAE,OAAO,GAAG,YAAY,IAAI,QAAQ;AAAA,IAC7E,UAAU,YAAY,MAAM;AAAA,EAC9B,CAAC;AACD,QAAM,WAAW,YAAY;AAC7B,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAE5C,QAAM,WAAW,OAAO,SAAuC;AAC7D,eAAW,IAAI;AACf,QAAI;AACF,YAAM,EAAE,MAAM,IAAI;AAClB,YAAM,SAAS,wBAAwB,KAAK;AAC9C,eAAS;AAAA,IACT,UAAE;AACA,iBAAW,KAAK;AAAA,IAClB;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,UAAU,OAAK,2BAA2B,aAAa,QAAQ,EAAE,CAAC,CAAC;AAAA,MACnE,YAAU;AAAA,MAEV;AAAA,4BAAC,SAAM,SAAQ,SAAQ,WAAU,QAAO,wBAAU;AAAA,QAClD;AAAA,UAAC;AAAA;AAAA,YACC,IAAG;AAAA,YACH,MAAK;AAAA,YACJ,GAAG,SAAS,OAAO;AAAA,YACpB,UAAU,MAAM,YAAY,OAAO;AAAA;AAAA,QACrC;AAAA,QACA,oBAAC,mBAAgB,MAAM,OAAO,OAAO,SAAS,SAAS,GAAG;AAAA,QAE1D,oBAAC,UAAO,MAAK,UAAS,WAAU,QAAO,SAAkB,wBAEzD;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -1,42 +1,48 @@
1
1
  "use client";
2
2
  "use client";
3
3
 
4
- // src/components/magic-link-sign-in.tsx
4
+ // src/components/magic-link-sign-in-form.tsx
5
5
  import { useState } from "react";
6
6
  import { useForm } from "react-hook-form";
7
7
  import { yupResolver } from "@hookform/resolvers/yup";
8
8
  import * as yup from "yup";
9
- import FormWarningText from "./form-warning";
9
+ import { FormWarningText } from "./elements/form-warning";
10
10
  import { useStackApp } from "..";
11
- import { Button, Input, Label } from "../components-core";
12
11
  import { runAsynchronouslyWithAlert } from "@stackframe/stack-shared/dist/utils/promises";
12
+ import { Button, Input, Label } from "@stackframe/stack-ui";
13
13
  import { jsx, jsxs } from "react/jsx-runtime";
14
14
  var schema = yup.object().shape({
15
15
  email: yup.string().email("Please enter a valid email").required("Please enter your email")
16
16
  });
17
- function MagicLinkSignIn() {
17
+ function MagicLinkSignInForm() {
18
18
  const { register, handleSubmit, setError, formState: { errors }, clearErrors } = useForm({
19
19
  resolver: yupResolver(schema)
20
20
  });
21
21
  const [sent, setSent] = useState(false);
22
22
  const app = useStackApp();
23
+ const [loading, setLoading] = useState(false);
23
24
  const onSubmit = async (data) => {
24
- const { email } = data;
25
- const error = await app.sendMagicLinkEmail(email);
26
- if (error) {
27
- setError("email", { type: "manual", message: error.message });
28
- return;
25
+ setLoading(true);
26
+ try {
27
+ const { email } = data;
28
+ const error = await app.sendMagicLinkEmail(email);
29
+ if (error) {
30
+ setError("email", { type: "manual", message: error.message });
31
+ return;
32
+ }
33
+ setSent(true);
34
+ } finally {
35
+ setLoading(false);
29
36
  }
30
- setSent(true);
31
37
  };
32
38
  return /* @__PURE__ */ jsxs(
33
39
  "form",
34
40
  {
35
- style: { display: "flex", flexDirection: "column", alignItems: "stretch" },
41
+ className: "flex flex-col items-stretch stack-scope",
36
42
  onSubmit: (e) => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e)),
37
43
  noValidate: true,
38
44
  children: [
39
- /* @__PURE__ */ jsx(Label, { htmlFor: "email", children: "Email" }),
45
+ /* @__PURE__ */ jsx(Label, { htmlFor: "email", className: "mb-1", children: "Email" }),
40
46
  /* @__PURE__ */ jsx(
41
47
  Input,
42
48
  {
@@ -47,12 +53,12 @@ function MagicLinkSignIn() {
47
53
  }
48
54
  ),
49
55
  /* @__PURE__ */ jsx(FormWarningText, { text: errors.email?.message?.toString() }),
50
- /* @__PURE__ */ jsx(Button, { disabled: sent, style: { marginTop: "1.5rem" }, type: "submit", children: sent ? "Email sent!" : "Send magic link" })
56
+ /* @__PURE__ */ jsx(Button, { disabled: sent, type: "submit", className: "mt-6", loading, children: sent ? "Email sent!" : "Send magic link" })
51
57
  ]
52
58
  }
53
59
  );
54
60
  }
55
61
  export {
56
- MagicLinkSignIn as default
62
+ MagicLinkSignInForm
57
63
  };
58
- //# sourceMappingURL=magic-link-sign-in.js.map
64
+ //# sourceMappingURL=magic-link-sign-in-form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/magic-link-sign-in-form.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as yup from \"yup\";\nimport { FormWarningText } from \"./elements/form-warning\";\nimport { useStackApp } from \"..\";\nimport { runAsynchronouslyWithAlert } from \"@stackframe/stack-shared/dist/utils/promises\";\nimport { Button, Input, Label } from \"@stackframe/stack-ui\";\n\nconst schema = yup.object().shape({\n email: yup.string().email('Please enter a valid email').required('Please enter your email')\n});\n\nexport function MagicLinkSignInForm() {\n const { register, handleSubmit, setError, formState: { errors }, clearErrors } = useForm({\n resolver: yupResolver(schema)\n });\n const [sent, setSent] = useState(false);\n const app = useStackApp();\n const [loading, setLoading] = useState(false);\n\n const onSubmit = async (data: yup.InferType<typeof schema>) => {\n setLoading(true);\n try {\n const { email } = data;\n const error = await app.sendMagicLinkEmail(email);\n if (error) {\n setError('email', { type: 'manual', message: error.message });\n return;\n }\n setSent(true);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <form \n className=\"flex flex-col items-stretch stack-scope\"\n onSubmit={e => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e))}\n noValidate\n >\n <Label htmlFor=\"email\" className=\"mb-1\">Email</Label>\n <Input\n id=\"email\"\n type=\"email\"\n {...register('email')}\n disabled={sent}\n />\n <FormWarningText text={errors.email?.message?.toString()} />\n\n <Button disabled={sent} type=\"submit\" className=\"mt-6\" loading={loading}>\n {sent ? 'Email sent!' : 'Send magic link'}\n </Button>\n </form>\n );\n}\n"],"mappings":";;;AAEA,SAAS,gBAAgB;AACzB,SAAS,eAAe;AACxB,SAAS,mBAAmB;AAC5B,YAAY,SAAS;AACrB,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAC5B,SAAS,kCAAkC;AAC3C,SAAS,QAAQ,OAAO,aAAa;AA8BjC,SAKE,KALF;AA5BJ,IAAM,SAAa,WAAO,EAAE,MAAM;AAAA,EAChC,OAAW,WAAO,EAAE,MAAM,4BAA4B,EAAE,SAAS,yBAAyB;AAC5F,CAAC;AAEM,SAAS,sBAAsB;AACpC,QAAM,EAAE,UAAU,cAAc,UAAU,WAAW,EAAE,OAAO,GAAG,YAAY,IAAI,QAAQ;AAAA,IACvF,UAAU,YAAY,MAAM;AAAA,EAC9B,CAAC;AACD,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,KAAK;AACtC,QAAM,MAAM,YAAY;AACxB,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAE5C,QAAM,WAAW,OAAO,SAAuC;AAC7D,eAAW,IAAI;AACf,QAAI;AACF,YAAM,EAAE,MAAM,IAAI;AAClB,YAAM,QAAQ,MAAM,IAAI,mBAAmB,KAAK;AAChD,UAAI,OAAO;AACT,iBAAS,SAAS,EAAE,MAAM,UAAU,SAAS,MAAM,QAAQ,CAAC;AAC5D;AAAA,MACF;AACF,cAAQ,IAAI;AAAA,IACZ,UAAE;AACA,iBAAW,KAAK;AAAA,IAClB;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,UAAU,OAAK,2BAA2B,aAAa,QAAQ,EAAE,CAAC,CAAC;AAAA,MACnE,YAAU;AAAA,MAEV;AAAA,4BAAC,SAAM,SAAQ,SAAQ,WAAU,QAAO,mBAAK;AAAA,QAC7C;AAAA,UAAC;AAAA;AAAA,YACC,IAAG;AAAA,YACH,MAAK;AAAA,YACJ,GAAG,SAAS,OAAO;AAAA,YACpB,UAAU;AAAA;AAAA,QACZ;AAAA,QACA,oBAAC,mBAAgB,MAAM,OAAO,OAAO,SAAS,SAAS,GAAG;AAAA,QAE1D,oBAAC,UAAO,UAAU,MAAM,MAAK,UAAS,WAAU,QAAO,SACpD,iBAAO,gBAAgB,mBAC1B;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -3,8 +3,8 @@
3
3
 
4
4
  // src/components/message-cards/known-error-message-card.tsx
5
5
  import { useStackApp } from "../..";
6
- import MessageCard from "./message-card";
7
- import { Text } from "../../components-core";
6
+ import { Typography } from "@stackframe/stack-ui";
7
+ import { MessageCard } from "./message-card";
8
8
  import { jsxs } from "react/jsx-runtime";
9
9
  function KnownErrorMessageCard({
10
10
  error,
@@ -19,11 +19,11 @@ function KnownErrorMessageCard({
19
19
  primaryButtonText: "Go to Home",
20
20
  primaryAction: () => stackApp.redirectToHome(),
21
21
  children: [
22
- /* @__PURE__ */ jsxs(Text, { children: [
22
+ /* @__PURE__ */ jsxs(Typography, { children: [
23
23
  "Error Code: ",
24
24
  error.errorCode
25
25
  ] }),
26
- /* @__PURE__ */ jsxs(Text, { children: [
26
+ /* @__PURE__ */ jsxs(Typography, { children: [
27
27
  "Error Message: ",
28
28
  error.message
29
29
  ] })
@@ -32,6 +32,6 @@ function KnownErrorMessageCard({
32
32
  );
33
33
  }
34
34
  export {
35
- KnownErrorMessageCard as default
35
+ KnownErrorMessageCard
36
36
  };
37
37
  //# sourceMappingURL=known-error-message-card.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/message-cards/known-error-message-card.tsx"],"sourcesContent":["\"use client\";\n\nimport { useStackApp } from \"../..\";\nimport MessageCard from \"./message-card\";\nimport { Text } from \"../../components-core\";\nimport { KnownError } from \"@stackframe/stack-shared\";\n\nexport default function KnownErrorMessageCard({ \n error,\n fullPage=false,\n}: { \n error: KnownError,\n fullPage?: boolean, \n}) {\n const stackApp = useStackApp();\n\n return (\n <MessageCard \n title={\"An error occurred\"}\n fullPage={fullPage} \n primaryButtonText={\"Go to Home\"}\n primaryAction={() => stackApp.redirectToHome()}\n >\n {<Text>Error Code: {error.errorCode}</Text>}\n {<Text>Error Message: {error.message}</Text>}\n </MessageCard>\n );\n}\n"],"mappings":";;;AAEA,SAAS,mBAAmB;AAC5B,OAAO,iBAAiB;AACxB,SAAS,YAAY;AAmBd;AAhBQ,SAAR,sBAAuC;AAAA,EAC5C;AAAA,EACA,WAAS;AACX,GAGG;AACD,QAAM,WAAW,YAAY;AAE7B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP;AAAA,MACA,mBAAmB;AAAA,MACnB,eAAe,MAAM,SAAS,eAAe;AAAA,MAE5C;AAAA,6BAAC,QAAK;AAAA;AAAA,UAAa,MAAM;AAAA,WAAU;AAAA,QACnC,qBAAC,QAAK;AAAA;AAAA,UAAgB,MAAM;AAAA,WAAQ;AAAA;AAAA;AAAA,EACvC;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/message-cards/known-error-message-card.tsx"],"sourcesContent":["\"use client\";\n\nimport { useStackApp } from \"../..\";\nimport { Typography } from \"@stackframe/stack-ui\";\nimport { MessageCard } from \"./message-card\";\nimport { KnownError } from \"@stackframe/stack-shared\";\n\nexport function KnownErrorMessageCard({ \n error,\n fullPage=false,\n}: { \n error: KnownError,\n fullPage?: boolean, \n}) {\n const stackApp = useStackApp();\n\n return (\n <MessageCard \n title={\"An error occurred\"}\n fullPage={fullPage} \n primaryButtonText={\"Go to Home\"}\n primaryAction={() => stackApp.redirectToHome()}\n >\n {<Typography>Error Code: {error.errorCode}</Typography>}\n {<Typography>Error Message: {error.message}</Typography>}\n </MessageCard>\n );\n}\n"],"mappings":";;;AAEA,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAmBrB;AAhBA,SAAS,sBAAsB;AAAA,EACpC;AAAA,EACA,WAAS;AACX,GAGG;AACD,QAAM,WAAW,YAAY;AAE7B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP;AAAA,MACA,mBAAmB;AAAA,MACnB,eAAe,MAAM,SAAS,eAAe;AAAA,MAE5C;AAAA,6BAAC,cAAW;AAAA;AAAA,UAAa,MAAM;AAAA,WAAU;AAAA,QACzC,qBAAC,cAAW;AAAA;AAAA,UAAgB,MAAM;AAAA,WAAQ;AAAA;AAAA;AAAA,EAC7C;AAEJ;","names":[]}
@@ -2,12 +2,12 @@
2
2
  "use client";
3
3
 
4
4
  // src/components/message-cards/message-card.tsx
5
- import MaybeFullPage from "../maybe-full-page";
6
- import { Button, Text } from "../../components-core";
5
+ import { MaybeFullPage } from "../elements/maybe-full-page";
6
+ import { Button, Typography } from "@stackframe/stack-ui";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
  function MessageCard({ fullPage = false, ...props }) {
9
9
  return /* @__PURE__ */ jsx(MaybeFullPage, { fullPage, children: /* @__PURE__ */ jsxs("div", { style: { textAlign: "center" }, children: [
10
- /* @__PURE__ */ jsx(Text, { size: "xl", as: "h2", style: { marginBottom: "24px" }, children: props.title }),
10
+ /* @__PURE__ */ jsx(Typography, { type: "h3", className: "mb-6", children: props.title }),
11
11
  props.children,
12
12
  (props.primaryButtonText || props.secondaryButtonText) && /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "row", alignItems: "center", justifyContent: "center", gap: "16px", marginTop: 20 }, children: [
13
13
  props.secondaryButtonText && /* @__PURE__ */ jsx(Button, { variant: "secondary", onClick: props.secondaryAction, children: props.secondaryButtonText }),
@@ -16,6 +16,6 @@ function MessageCard({ fullPage = false, ...props }) {
16
16
  ] }) });
17
17
  }
18
18
  export {
19
- MessageCard as default
19
+ MessageCard
20
20
  };
21
21
  //# sourceMappingURL=message-card.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/message-cards/message-card.tsx"],"sourcesContent":["'use client';\n\nimport React from \"react\";\nimport MaybeFullPage from \"../maybe-full-page\";\nimport { Button, Text } from \"../../components-core\";\n\nexport default function MessageCard(\n { fullPage=false, ...props }: \n { \n children?: React.ReactNode, \n title: string, \n fullPage?: boolean,\n primaryButtonText?: string,\n primaryAction?: () => Promise<void> | void,\n secondaryButtonText?: string,\n secondaryAction?: () => Promise<void> | void,\n }\n) {\n return (\n <MaybeFullPage fullPage={fullPage}>\n <div style={{ textAlign: 'center' }}>\n <Text size=\"xl\" as='h2' style={{ marginBottom: '24px' }}>{props.title}</Text>\n {props.children}\n {(props.primaryButtonText || props.secondaryButtonText) && (\n <div style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', justifyContent: 'center', gap: '16px', marginTop: 20 }}>\n {props.secondaryButtonText && (\n <Button variant=\"secondary\" onClick={props.secondaryAction}>\n {props.secondaryButtonText}\n </Button>\n )}\n {props.primaryButtonText && (\n <Button onClick={props.primaryAction}>\n {props.primaryButtonText}\n </Button>\n )}\n </div>\n )}\n </div>\n </MaybeFullPage>\n );\n}\n"],"mappings":";;;AAGA,OAAO,mBAAmB;AAC1B,SAAS,QAAQ,YAAY;AAiBrB,cAGE,YAHF;AAfO,SAAR,YACL,EAAE,WAAS,OAAO,GAAG,MAAM,GAU3B;AACA,SACE,oBAAC,iBAAc,UACb,+BAAC,SAAI,OAAO,EAAE,WAAW,SAAS,GAChC;AAAA,wBAAC,QAAK,MAAK,MAAK,IAAG,MAAK,OAAO,EAAE,cAAc,OAAO,GAAI,gBAAM,OAAM;AAAA,IACrE,MAAM;AAAA,KACL,MAAM,qBAAqB,MAAM,wBACjC,qBAAC,SAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,OAAO,YAAY,UAAU,gBAAgB,UAAU,KAAK,QAAQ,WAAW,GAAG,GAC7H;AAAA,YAAM,uBACL,oBAAC,UAAO,SAAQ,aAAY,SAAS,MAAM,iBACxC,gBAAM,qBACT;AAAA,MAED,MAAM,qBACL,oBAAC,UAAO,SAAS,MAAM,eACpB,gBAAM,mBACT;AAAA,OAEJ;AAAA,KAEJ,GACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/message-cards/message-card.tsx"],"sourcesContent":["'use client';\n\nimport React from \"react\";\nimport { MaybeFullPage } from \"../elements/maybe-full-page\";\nimport { Button, Typography } from \"@stackframe/stack-ui\";\n\nexport function MessageCard(\n { fullPage=false, ...props }: \n { \n children?: React.ReactNode, \n title: string, \n fullPage?: boolean,\n primaryButtonText?: string,\n primaryAction?: () => Promise<void> | void,\n secondaryButtonText?: string,\n secondaryAction?: () => Promise<void> | void,\n }\n) {\n return (\n <MaybeFullPage fullPage={fullPage}>\n <div style={{ textAlign: 'center' }}>\n <Typography type='h3' className=\"mb-6\">{props.title}</Typography>\n {props.children}\n {(props.primaryButtonText || props.secondaryButtonText) && (\n <div style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', justifyContent: 'center', gap: '16px', marginTop: 20 }}>\n {props.secondaryButtonText && (\n <Button variant=\"secondary\" onClick={props.secondaryAction}>\n {props.secondaryButtonText}\n </Button>\n )}\n {props.primaryButtonText && (\n <Button onClick={props.primaryAction}>\n {props.primaryButtonText}\n </Button>\n )}\n </div>\n )}\n </div>\n </MaybeFullPage>\n );\n}\n"],"mappings":";;;AAGA,SAAS,qBAAqB;AAC9B,SAAS,QAAQ,kBAAkB;AAiB3B,cAGE,YAHF;AAfD,SAAS,YACd,EAAE,WAAS,OAAO,GAAG,MAAM,GAU3B;AACA,SACE,oBAAC,iBAAc,UACb,+BAAC,SAAI,OAAO,EAAE,WAAW,SAAS,GAChC;AAAA,wBAAC,cAAW,MAAK,MAAK,WAAU,QAAQ,gBAAM,OAAM;AAAA,IACnD,MAAM;AAAA,KACL,MAAM,qBAAqB,MAAM,wBACjC,qBAAC,SAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,OAAO,YAAY,UAAU,gBAAgB,UAAU,KAAK,QAAQ,WAAW,GAAG,GAC7H;AAAA,YAAM,uBACL,oBAAC,UAAO,SAAQ,aAAY,SAAS,MAAM,iBACxC,gBAAM,qBACT;AAAA,MAED,MAAM,qBACL,oBAAC,UAAO,SAAS,MAAM,eACpB,gBAAM,mBACT;AAAA,OAEJ;AAAA,KAEJ,GACF;AAEJ;","names":[]}
@@ -2,9 +2,9 @@
2
2
  "use client";
3
3
 
4
4
  // src/components/message-cards/predefined-message-card.tsx
5
+ import { Typography } from "@stackframe/stack-ui";
5
6
  import { useStackApp } from "../..";
6
- import MessageCard from "./message-card";
7
- import { Text } from "../../components-core";
7
+ import { MessageCard } from "./message-card";
8
8
  import { jsx } from "react/jsx-runtime";
9
9
  function PredefinedMessageCard({
10
10
  type,
@@ -70,11 +70,11 @@ function PredefinedMessageCard({
70
70
  primaryAction,
71
71
  secondaryButtonText: secondaryButton || void 0,
72
72
  secondaryAction: secondaryAction || void 0,
73
- children: message && /* @__PURE__ */ jsx(Text, { children: message })
73
+ children: message && /* @__PURE__ */ jsx(Typography, { children: message })
74
74
  }
75
75
  );
76
76
  }
77
77
  export {
78
- PredefinedMessageCard as default
78
+ PredefinedMessageCard
79
79
  };
80
80
  //# sourceMappingURL=predefined-message-card.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/message-cards/predefined-message-card.tsx"],"sourcesContent":["\"use client\";\n\nimport { useStackApp } from \"../..\";\nimport MessageCard from \"./message-card\";\nimport { Text } from \"../../components-core\";\n\nexport default function PredefinedMessageCard({ \n type,\n fullPage=false,\n}: { \n type: 'signedIn' | 'signedOut' | 'emailSent' | 'passwordReset' | 'emailVerified' | 'unknownError',\n fullPage?: boolean, \n}) {\n const stackApp = useStackApp();\n\n let title: string;\n let message: string | null = null;\n let primaryButton: string | null = null;\n let secondaryButton: string | null = null;\n let primaryAction: (() => Promise<void> | void) | null = null;\n let secondaryAction: (() => Promise<void> | void) | null = null;\n\n switch (type) {\n case 'signedIn': {\n title = \"You are already signed in\";\n primaryAction = () => stackApp.redirectToAfterSignOut();\n secondaryAction = () => stackApp.redirectToSignOut();\n primaryButton = \"Go to Home\";\n secondaryButton = \"Sign Out\";\n break;\n }\n case 'signedOut': {\n title = \"You are not currently signed in.\";\n primaryAction = () => stackApp.redirectToSignIn();\n primaryButton = \"Go to Home\";\n break;\n }\n case 'emailSent': {\n title = \"Email sent!\";\n message = 'Please check your inbox. Make sure to check your spam folder.';\n primaryAction = () => stackApp.redirectToHome();\n primaryButton = \"Go to Home\";\n break;\n }\n case 'passwordReset': {\n title = \"Password reset successfully!\";\n message = 'Your password has been reset. You can now sign in with your new password.';\n primaryAction = () => stackApp.redirectToSignIn();\n primaryButton = \"Go to Sign In\";\n break;\n }\n case 'emailVerified': {\n title = \"Email verified!\";\n message = 'Your have successfully verified your email.';\n primaryAction = () => stackApp.redirectToSignIn();\n primaryButton = \"Go to Home\";\n break;\n }\n case 'unknownError': {\n title = \"An unknown error occurred\";\n message = 'Please try again and if the problem persists, contact support.';\n primaryAction = () => stackApp.redirectToHome();\n primaryButton = \"Go to Home\";\n break;\n }\n }\n\n return (\n <MessageCard \n title={title} \n fullPage={fullPage} \n primaryButtonText={primaryButton} \n primaryAction={primaryAction} \n secondaryButtonText={secondaryButton || undefined} \n secondaryAction={secondaryAction || undefined}\n >\n {message && <Text>{message}</Text>}\n </MessageCard>\n );\n}\n"],"mappings":";;;AAEA,SAAS,mBAAmB;AAC5B,OAAO,iBAAiB;AACxB,SAAS,YAAY;AAwEH;AAtEH,SAAR,sBAAuC;AAAA,EAC5C;AAAA,EACA,WAAS;AACX,GAGG;AACD,QAAM,WAAW,YAAY;AAE7B,MAAI;AACJ,MAAI,UAAyB;AAC7B,MAAI,gBAA+B;AACnC,MAAI,kBAAiC;AACrC,MAAI,gBAAqD;AACzD,MAAI,kBAAuD;AAE3D,UAAQ,MAAM;AAAA,IACZ,KAAK,YAAY;AACf,cAAQ;AACR,sBAAgB,MAAM,SAAS,uBAAuB;AACtD,wBAAkB,MAAM,SAAS,kBAAkB;AACnD,sBAAgB;AAChB,wBAAkB;AAClB;AAAA,IACF;AAAA,IACA,KAAK,aAAa;AAChB,cAAQ;AACR,sBAAgB,MAAM,SAAS,iBAAiB;AAChD,sBAAgB;AAChB;AAAA,IACF;AAAA,IACA,KAAK,aAAa;AAChB,cAAQ;AACR,gBAAU;AACV,sBAAgB,MAAM,SAAS,eAAe;AAC9C,sBAAgB;AAChB;AAAA,IACF;AAAA,IACA,KAAK,iBAAiB;AACpB,cAAQ;AACR,gBAAU;AACV,sBAAgB,MAAM,SAAS,iBAAiB;AAChD,sBAAgB;AAChB;AAAA,IACF;AAAA,IACA,KAAK,iBAAiB;AACpB,cAAQ;AACR,gBAAU;AACV,sBAAgB,MAAM,SAAS,iBAAiB;AAChD,sBAAgB;AAChB;AAAA,IACF;AAAA,IACA,KAAK,gBAAgB;AACnB,cAAQ;AACR,gBAAU;AACV,sBAAgB,MAAM,SAAS,eAAe;AAC9C,sBAAgB;AAChB;AAAA,IACF;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,mBAAmB;AAAA,MACnB;AAAA,MACA,qBAAqB,mBAAmB;AAAA,MACxC,iBAAiB,mBAAmB;AAAA,MAEnC,qBAAW,oBAAC,QAAM,mBAAQ;AAAA;AAAA,EAC7B;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/message-cards/predefined-message-card.tsx"],"sourcesContent":["\"use client\";\n\nimport { Typography } from \"@stackframe/stack-ui\";\nimport { useStackApp } from \"../..\";\nimport { MessageCard } from \"./message-card\";\n\nexport function PredefinedMessageCard({ \n type,\n fullPage=false,\n}: { \n type: 'signedIn' | 'signedOut' | 'emailSent' | 'passwordReset' | 'emailVerified' | 'unknownError',\n fullPage?: boolean, \n}) {\n const stackApp = useStackApp();\n\n let title: string;\n let message: string | null = null;\n let primaryButton: string | null = null;\n let secondaryButton: string | null = null;\n let primaryAction: (() => Promise<void> | void) | null = null;\n let secondaryAction: (() => Promise<void> | void) | null = null;\n\n switch (type) {\n case 'signedIn': {\n title = \"You are already signed in\";\n primaryAction = () => stackApp.redirectToAfterSignOut();\n secondaryAction = () => stackApp.redirectToSignOut();\n primaryButton = \"Go to Home\";\n secondaryButton = \"Sign Out\";\n break;\n }\n case 'signedOut': {\n title = \"You are not currently signed in.\";\n primaryAction = () => stackApp.redirectToSignIn();\n primaryButton = \"Go to Home\";\n break;\n }\n case 'emailSent': {\n title = \"Email sent!\";\n message = 'Please check your inbox. Make sure to check your spam folder.';\n primaryAction = () => stackApp.redirectToHome();\n primaryButton = \"Go to Home\";\n break;\n }\n case 'passwordReset': {\n title = \"Password reset successfully!\";\n message = 'Your password has been reset. You can now sign in with your new password.';\n primaryAction = () => stackApp.redirectToSignIn();\n primaryButton = \"Go to Sign In\";\n break;\n }\n case 'emailVerified': {\n title = \"Email verified!\";\n message = 'Your have successfully verified your email.';\n primaryAction = () => stackApp.redirectToSignIn();\n primaryButton = \"Go to Home\";\n break;\n }\n case 'unknownError': {\n title = \"An unknown error occurred\";\n message = 'Please try again and if the problem persists, contact support.';\n primaryAction = () => stackApp.redirectToHome();\n primaryButton = \"Go to Home\";\n break;\n }\n }\n\n return (\n <MessageCard\n title={title} \n fullPage={fullPage} \n primaryButtonText={primaryButton} \n primaryAction={primaryAction} \n secondaryButtonText={secondaryButton || undefined} \n secondaryAction={secondaryAction || undefined}\n >\n {message && <Typography>{message}</Typography>}\n </MessageCard>\n );\n}\n"],"mappings":";;;AAEA,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAwEV;AAtEX,SAAS,sBAAsB;AAAA,EACpC;AAAA,EACA,WAAS;AACX,GAGG;AACD,QAAM,WAAW,YAAY;AAE7B,MAAI;AACJ,MAAI,UAAyB;AAC7B,MAAI,gBAA+B;AACnC,MAAI,kBAAiC;AACrC,MAAI,gBAAqD;AACzD,MAAI,kBAAuD;AAE3D,UAAQ,MAAM;AAAA,IACZ,KAAK,YAAY;AACf,cAAQ;AACR,sBAAgB,MAAM,SAAS,uBAAuB;AACtD,wBAAkB,MAAM,SAAS,kBAAkB;AACnD,sBAAgB;AAChB,wBAAkB;AAClB;AAAA,IACF;AAAA,IACA,KAAK,aAAa;AAChB,cAAQ;AACR,sBAAgB,MAAM,SAAS,iBAAiB;AAChD,sBAAgB;AAChB;AAAA,IACF;AAAA,IACA,KAAK,aAAa;AAChB,cAAQ;AACR,gBAAU;AACV,sBAAgB,MAAM,SAAS,eAAe;AAC9C,sBAAgB;AAChB;AAAA,IACF;AAAA,IACA,KAAK,iBAAiB;AACpB,cAAQ;AACR,gBAAU;AACV,sBAAgB,MAAM,SAAS,iBAAiB;AAChD,sBAAgB;AAChB;AAAA,IACF;AAAA,IACA,KAAK,iBAAiB;AACpB,cAAQ;AACR,gBAAU;AACV,sBAAgB,MAAM,SAAS,iBAAiB;AAChD,sBAAgB;AAChB;AAAA,IACF;AAAA,IACA,KAAK,gBAAgB;AACnB,cAAQ;AACR,gBAAU;AACV,sBAAgB,MAAM,SAAS,eAAe;AAC9C,sBAAgB;AAChB;AAAA,IACF;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,mBAAmB;AAAA,MACnB;AAAA,MACA,qBAAqB,mBAAmB;AAAA,MACxC,iBAAiB,mBAAmB;AAAA,MAEnC,qBAAW,oBAAC,cAAY,mBAAQ;AAAA;AAAA,EACnC;AAEJ;","names":[]}
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ "use client";
3
+
4
+ // src/components/oauth-button-group.tsx
5
+ import { useStackApp } from "../lib/hooks";
6
+ import { OAuthButton } from "./oauth-button";
7
+ import { jsx } from "react/jsx-runtime";
8
+ function OAuthButtonGroup({
9
+ type,
10
+ mockProject
11
+ }) {
12
+ const stackApp = useStackApp();
13
+ const project = mockProject || stackApp.useProject();
14
+ return /* @__PURE__ */ jsx("div", { className: "gap-4 flex flex-col items-stretch stack-scope", children: project.oauthProviders.filter((p) => p.enabled).map((p) => /* @__PURE__ */ jsx(OAuthButton, { provider: p.id, type }, p.id)) });
15
+ }
16
+ export {
17
+ OAuthButtonGroup
18
+ };
19
+ //# sourceMappingURL=oauth-button-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/oauth-button-group.tsx"],"sourcesContent":["'use client';\n\nimport { ClientProjectJson } from \"@stackframe/stack-shared\";\nimport { useStackApp } from \"../lib/hooks\";\nimport { OAuthButton } from \"./oauth-button\";\n\nexport function OAuthButtonGroup({\n type,\n mockProject,\n}: {\n type: 'sign-in' | 'sign-up',\n mockProject?: ClientProjectJson,\n}) {\n const stackApp = useStackApp();\n const project = mockProject || stackApp.useProject();\n\n return (\n <div className='gap-4 flex flex-col items-stretch stack-scope'>\n {project.oauthProviders.filter(p => p.enabled).map(p => (\n <OAuthButton key={p.id} provider={p.id} type={type}/>\n ))}\n </div>\n );\n}\n"],"mappings":";;;AAGA,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAepB;AAbD,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AACF,GAGG;AACD,QAAM,WAAW,YAAY;AAC7B,QAAM,UAAU,eAAe,SAAS,WAAW;AAEnD,SACE,oBAAC,SAAI,WAAU,iDACZ,kBAAQ,eAAe,OAAO,OAAK,EAAE,OAAO,EAAE,IAAI,OACjD,oBAAC,eAAuB,UAAU,EAAE,IAAI,QAAtB,EAAE,EAA+B,CACpD,GACH;AAEJ;","names":[]}