@stackframe/stack 2.4.28 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. package/CHANGELOG.md +13 -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 +10 -16
  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 +11 -17
  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 +12 -8
  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 +3 -3
  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 +3 -3
  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 +8 -8
  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.js +3 -6
  195. package/dist/lib/stack-app.js.map +1 -1
  196. package/dist/providers/stack-provider-client.d.mts +3 -3
  197. package/dist/providers/stack-provider-client.d.ts +3 -3
  198. package/dist/providers/stack-provider.d.mts +2 -2
  199. package/dist/providers/stack-provider.d.ts +2 -2
  200. package/dist/providers/styled-components-registry.d.mts +2 -2
  201. package/dist/providers/styled-components-registry.d.ts +2 -2
  202. package/dist/providers/theme-provider.d.mts +34 -17
  203. package/dist/providers/theme-provider.d.ts +34 -17
  204. package/dist/providers/theme-provider.js +43 -4
  205. package/dist/providers/theme-provider.js.map +1 -1
  206. package/dist/utils/browser-script.js +2 -1
  207. package/dist/utils/browser-script.js.map +1 -1
  208. package/dist/utils/constants.d.mts +43 -12
  209. package/dist/utils/constants.d.ts +43 -12
  210. package/dist/utils/constants.js +44 -13
  211. package/dist/utils/constants.js.map +1 -1
  212. package/package.json +25 -32
  213. package/dist/components/credential-sign-in.d.mts +0 -5
  214. package/dist/components/credential-sign-in.d.ts +0 -5
  215. package/dist/components/credential-sign-in.js.map +0 -1
  216. package/dist/components/credential-sign-up.d.mts +0 -5
  217. package/dist/components/credential-sign-up.d.ts +0 -5
  218. package/dist/components/credential-sign-up.js.map +0 -1
  219. package/dist/components/forgot-password.js.map +0 -1
  220. package/dist/components/form-warning.js.map +0 -1
  221. package/dist/components/magic-link-sign-in.d.mts +0 -5
  222. package/dist/components/magic-link-sign-in.d.ts +0 -5
  223. package/dist/components/magic-link-sign-in.js.map +0 -1
  224. package/dist/components/maybe-full-page.js.map +0 -1
  225. package/dist/components/oauth-group.js +0 -49
  226. package/dist/components/oauth-group.js.map +0 -1
  227. package/dist/components/password-field.d.mts +0 -5
  228. package/dist/components/password-field.d.ts +0 -5
  229. package/dist/components/password-field.js +0 -111
  230. package/dist/components/password-field.js.map +0 -1
  231. package/dist/components/password-reset-inner.js.map +0 -1
  232. package/dist/components/separator-with-text.js.map +0 -1
  233. package/dist/components/user-avatar.js +0 -56
  234. package/dist/components/user-avatar.js.map +0 -1
  235. package/dist/components-core/avatar.d.mts +0 -8
  236. package/dist/components-core/avatar.d.ts +0 -8
  237. package/dist/components-core/avatar.js +0 -94
  238. package/dist/components-core/avatar.js.map +0 -1
  239. package/dist/components-core/button.d.mts +0 -13
  240. package/dist/components-core/button.d.ts +0 -13
  241. package/dist/components-core/button.js +0 -217
  242. package/dist/components-core/button.js.map +0 -1
  243. package/dist/components-core/card.d.mts +0 -8
  244. package/dist/components-core/card.d.ts +0 -8
  245. package/dist/components-core/card.js +0 -89
  246. package/dist/components-core/card.js.map +0 -1
  247. package/dist/components-core/collapsible.d.mts +0 -8
  248. package/dist/components-core/collapsible.d.ts +0 -8
  249. package/dist/components-core/collapsible.js +0 -50
  250. package/dist/components-core/collapsible.js.map +0 -1
  251. package/dist/components-core/container.d.mts +0 -8
  252. package/dist/components-core/container.d.ts +0 -8
  253. package/dist/components-core/container.js +0 -70
  254. package/dist/components-core/container.js.map +0 -1
  255. package/dist/components-core/dropdown.d.mts +0 -15
  256. package/dist/components-core/dropdown.d.ts +0 -15
  257. package/dist/components-core/dropdown.js +0 -149
  258. package/dist/components-core/dropdown.js.map +0 -1
  259. package/dist/components-core/index.d.mts +0 -59
  260. package/dist/components-core/index.d.ts +0 -59
  261. package/dist/components-core/index.js +0 -148
  262. package/dist/components-core/index.js.map +0 -1
  263. package/dist/components-core/input.d.mts +0 -6
  264. package/dist/components-core/input.d.ts +0 -6
  265. package/dist/components-core/input.js +0 -119
  266. package/dist/components-core/input.js.map +0 -1
  267. package/dist/components-core/label.d.mts +0 -6
  268. package/dist/components-core/label.d.ts +0 -6
  269. package/dist/components-core/label.js +0 -72
  270. package/dist/components-core/label.js.map +0 -1
  271. package/dist/components-core/link.d.mts +0 -10
  272. package/dist/components-core/link.d.ts +0 -10
  273. package/dist/components-core/link.js +0 -73
  274. package/dist/components-core/link.js.map +0 -1
  275. package/dist/components-core/popover.d.mts +0 -8
  276. package/dist/components-core/popover.d.ts +0 -8
  277. package/dist/components-core/popover.js +0 -81
  278. package/dist/components-core/popover.js.map +0 -1
  279. package/dist/components-core/separator.d.mts +0 -6
  280. package/dist/components-core/separator.d.ts +0 -6
  281. package/dist/components-core/separator.js +0 -71
  282. package/dist/components-core/separator.js.map +0 -1
  283. package/dist/components-core/skeleton.d.mts +0 -7
  284. package/dist/components-core/skeleton.d.ts +0 -7
  285. package/dist/components-core/skeleton.js +0 -87
  286. package/dist/components-core/skeleton.js.map +0 -1
  287. package/dist/components-core/tabs.d.mts +0 -9
  288. package/dist/components-core/tabs.d.ts +0 -9
  289. package/dist/components-core/tabs.js +0 -124
  290. package/dist/components-core/tabs.js.map +0 -1
  291. package/dist/components-core/text.d.mts +0 -10
  292. package/dist/components-core/text.d.ts +0 -10
  293. package/dist/components-core/text.js +0 -98
  294. package/dist/components-core/text.js.map +0 -1
  295. package/dist/components-core-joy/button.d.mts +0 -6
  296. package/dist/components-core-joy/button.d.ts +0 -6
  297. package/dist/components-core-joy/button.js +0 -88
  298. package/dist/components-core-joy/button.js.map +0 -1
  299. package/dist/components-core-joy/input.d.mts +0 -5
  300. package/dist/components-core-joy/input.d.ts +0 -5
  301. package/dist/components-core-joy/input.js +0 -53
  302. package/dist/components-core-joy/input.js.map +0 -1
  303. package/dist/components-core-joy/separator.d.mts +0 -6
  304. package/dist/components-core-joy/separator.d.ts +0 -6
  305. package/dist/components-core-joy/separator.js +0 -52
  306. package/dist/components-core-joy/separator.js.map +0 -1
  307. package/dist/components-core-joy/tabs.d.mts +0 -9
  308. package/dist/components-core-joy/tabs.d.ts +0 -9
  309. package/dist/components-core-joy/tabs.js +0 -67
  310. package/dist/components-core-joy/tabs.js.map +0 -1
  311. package/dist/components-core-joy/text.d.mts +0 -9
  312. package/dist/components-core-joy/text.d.ts +0 -9
  313. package/dist/components-core-joy/text.js +0 -70
  314. package/dist/components-core-joy/text.js.map +0 -1
  315. package/dist/esm/components/credential-sign-in.js.map +0 -1
  316. package/dist/esm/components/credential-sign-up.js.map +0 -1
  317. package/dist/esm/components/forgot-password.js.map +0 -1
  318. package/dist/esm/components/form-warning.js +0 -16
  319. package/dist/esm/components/form-warning.js.map +0 -1
  320. package/dist/esm/components/magic-link-sign-in.js.map +0 -1
  321. package/dist/esm/components/maybe-full-page.js.map +0 -1
  322. package/dist/esm/components/oauth-group.js +0 -19
  323. package/dist/esm/components/oauth-group.js.map +0 -1
  324. package/dist/esm/components/password-field.js +0 -81
  325. package/dist/esm/components/password-field.js.map +0 -1
  326. package/dist/esm/components/password-reset-inner.js.map +0 -1
  327. package/dist/esm/components/separator-with-text.js +0 -17
  328. package/dist/esm/components/separator-with-text.js.map +0 -1
  329. package/dist/esm/components/user-avatar.js +0 -25
  330. package/dist/esm/components/user-avatar.js.map +0 -1
  331. package/dist/esm/components-core/avatar.js +0 -57
  332. package/dist/esm/components-core/avatar.js.map +0 -1
  333. package/dist/esm/components-core/button.js +0 -183
  334. package/dist/esm/components-core/button.js.map +0 -1
  335. package/dist/esm/components-core/card.js +0 -52
  336. package/dist/esm/components-core/card.js.map +0 -1
  337. package/dist/esm/components-core/collapsible.js +0 -14
  338. package/dist/esm/components-core/collapsible.js.map +0 -1
  339. package/dist/esm/components-core/container.js +0 -36
  340. package/dist/esm/components-core/container.js.map +0 -1
  341. package/dist/esm/components-core/dropdown.js +0 -110
  342. package/dist/esm/components-core/dropdown.js.map +0 -1
  343. package/dist/esm/components-core/index.js +0 -94
  344. package/dist/esm/components-core/index.js.map +0 -1
  345. package/dist/esm/components-core/input.js +0 -85
  346. package/dist/esm/components-core/input.js.map +0 -1
  347. package/dist/esm/components-core/label.js +0 -38
  348. package/dist/esm/components-core/label.js.map +0 -1
  349. package/dist/esm/components-core/link.js +0 -39
  350. package/dist/esm/components-core/link.js.map +0 -1
  351. package/dist/esm/components-core/popover.js +0 -44
  352. package/dist/esm/components-core/popover.js.map +0 -1
  353. package/dist/esm/components-core/separator.js +0 -37
  354. package/dist/esm/components-core/separator.js.map +0 -1
  355. package/dist/esm/components-core/skeleton.js +0 -53
  356. package/dist/esm/components-core/skeleton.js.map +0 -1
  357. package/dist/esm/components-core/tabs.js +0 -86
  358. package/dist/esm/components-core/tabs.js.map +0 -1
  359. package/dist/esm/components-core/text.js +0 -64
  360. package/dist/esm/components-core/text.js.map +0 -1
  361. package/dist/esm/components-core-joy/button.js +0 -54
  362. package/dist/esm/components-core-joy/button.js.map +0 -1
  363. package/dist/esm/components-core-joy/input.js +0 -19
  364. package/dist/esm/components-core-joy/input.js.map +0 -1
  365. package/dist/esm/components-core-joy/separator.js +0 -18
  366. package/dist/esm/components-core-joy/separator.js.map +0 -1
  367. package/dist/esm/components-core-joy/tabs.js +0 -30
  368. package/dist/esm/components-core-joy/tabs.js.map +0 -1
  369. package/dist/esm/components-core-joy/text.js +0 -36
  370. package/dist/esm/components-core-joy/text.js.map +0 -1
  371. package/dist/esm/joy.js +0 -6
  372. package/dist/esm/joy.js.map +0 -1
  373. package/dist/esm/providers/component-provider.js +0 -77
  374. package/dist/esm/providers/component-provider.js.map +0 -1
  375. package/dist/esm/providers/design-provider.js +0 -37
  376. package/dist/esm/providers/design-provider.js.map +0 -1
  377. package/dist/esm/providers/joy-provider.js +0 -36
  378. package/dist/esm/providers/joy-provider.js.map +0 -1
  379. package/dist/joy.d.mts +0 -16
  380. package/dist/joy.d.ts +0 -16
  381. package/dist/joy.js.map +0 -1
  382. package/dist/providers/component-provider.d.mts +0 -113
  383. package/dist/providers/component-provider.d.ts +0 -113
  384. package/dist/providers/component-provider.js +0 -96
  385. package/dist/providers/component-provider.js.map +0 -1
  386. package/dist/providers/design-provider.d.mts +0 -34
  387. package/dist/providers/design-provider.d.ts +0 -34
  388. package/dist/providers/design-provider.js +0 -62
  389. package/dist/providers/design-provider.js.map +0 -1
  390. package/dist/providers/joy-provider.d.mts +0 -36
  391. package/dist/providers/joy-provider.d.ts +0 -36
  392. package/dist/providers/joy-provider.js +0 -61
  393. package/dist/providers/joy-provider.js.map +0 -1
@@ -1,16 +0,0 @@
1
- "use client";
2
- "use client";
3
-
4
- // src/components/form-warning.tsx
5
- import { Text } from "../components-core";
6
- import { jsx } from "react/jsx-runtime";
7
- function FormWarningText({ text }) {
8
- if (!text) {
9
- return null;
10
- }
11
- return /* @__PURE__ */ jsx(Text, { size: "sm", variant: "warning", children: text });
12
- }
13
- export {
14
- FormWarningText as default
15
- };
16
- //# sourceMappingURL=form-warning.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/form-warning.tsx"],"sourcesContent":["'use client';\n\nimport { Text } from \"../components-core\";\n\nexport default function FormWarningText({ text }: { text?: string }) {\n if (!text) {\n return null;\n }\n return (\n <Text size=\"sm\" variant=\"warning\">\n {text}\n </Text>\n );\n}\n"],"mappings":";;;AAEA,SAAS,YAAY;AAOjB;AALW,SAAR,gBAAiC,EAAE,KAAK,GAAsB;AACnE,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AACA,SACE,oBAAC,QAAK,MAAK,MAAK,SAAQ,WACrB,gBACH;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/magic-link-sign-in.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 \"./form-warning\";\nimport { useStackApp } from \"..\";\nimport { Button, Input, Label } from \"../components-core\";\nimport { runAsynchronouslyWithAlert } from \"@stackframe/stack-shared/dist/utils/promises\";\n\nconst schema = yup.object().shape({\n email: yup.string().email('Please enter a valid email').required('Please enter your email')\n});\n\nexport default function MagicLinkSignIn() {\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\n const onSubmit = async (data: yup.InferType<typeof schema>) => {\n const { email } = data;\n\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 };\n\n return (\n <form \n style={{ display: 'flex', flexDirection: 'column', alignItems: 'stretch' }} \n onSubmit={e => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e))}\n noValidate\n >\n <Label htmlFor=\"email\">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} style={{ marginTop: '1.5rem' }} type=\"submit\">\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,OAAO,qBAAqB;AAC5B,SAAS,mBAAmB;AAC5B,SAAS,QAAQ,OAAO,aAAa;AACrC,SAAS,kCAAkC;AAyBvC,SAKE,KALF;AAvBJ,IAAM,SAAa,WAAO,EAAE,MAAM;AAAA,EAChC,OAAW,WAAO,EAAE,MAAM,4BAA4B,EAAE,SAAS,yBAAyB;AAC5F,CAAC;AAEc,SAAR,kBAAmC;AACxC,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;AAExB,QAAM,WAAW,OAAO,SAAuC;AAC7D,UAAM,EAAE,MAAM,IAAI;AAElB,UAAM,QAAQ,MAAM,IAAI,mBAAmB,KAAK;AAChD,QAAI,OAAO;AACT,eAAS,SAAS,EAAE,MAAM,UAAU,SAAS,MAAM,QAAQ,CAAC;AAC5D;AAAA,IACF;AACA,YAAQ,IAAI;AAAA,EACd;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,EAAE,SAAS,QAAQ,eAAe,UAAU,YAAY,UAAU;AAAA,MACzE,UAAU,OAAK,2BAA2B,aAAa,QAAQ,EAAE,CAAC,CAAC;AAAA,MACnE,YAAU;AAAA,MAEV;AAAA,4BAAC,SAAM,SAAQ,SAAQ,mBAAK;AAAA,QAC5B;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,OAAO,EAAE,WAAW,SAAS,GAAG,MAAK,UAC1D,iBAAO,gBAAgB,mBAC1B;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/maybe-full-page.tsx"],"sourcesContent":["\"use client\";\n\nimport { Container } from \"../components-core\";\nimport React, { useEffect, useId } from \"react\";\n\nexport default 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 useEffect(() => {\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)(scriptString);\n }, []);\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 >\n <Container size={380} style={{ padding: '1rem 1rem' }}>\n {children}\n </Container>\n </div>\n <script dangerouslySetInnerHTML={{\n __html: scriptString,\n }} />\n </>\n );\n } else {\n return <>\n {children}\n </>;\n }\n \n}\n"],"mappings":";;;AAEA,SAAS,iBAAiB;AAC1B,SAAgB,WAAW,aAAa;AA+BlC,mBAYI,KAZJ;AA7BS,SAAR,cAA+B;AAAA,EACpC;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,YAAU,MAAM;AAId,KAAC,GAAG,MAAM,YAAY;AAAA,EACxB,GAAG,CAAC,CAAC;AAEL,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,UAEA,8BAAC,aAAU,MAAM,KAAK,OAAO,EAAE,SAAS,YAAY,GACjD,UACH;AAAA;AAAA,MACF;AAAA,MACA,oBAAC,YAAO,yBAAyB;AAAA,QAC/B,QAAQ;AAAA,MACV,GAAG;AAAA,OACL;AAAA,EAEJ,OAAO;AACL,WAAO,gCACJ,UACH;AAAA,EACF;AAEF;","names":[]}
@@ -1,19 +0,0 @@
1
- "use client";
2
- "use client";
3
-
4
- // src/components/oauth-group.tsx
5
- import { useStackApp } from "../lib/hooks";
6
- import OAuthButton from "./oauth-button";
7
- import { jsx } from "react/jsx-runtime";
8
- function OAuthGroup({
9
- type,
10
- mockProject
11
- }) {
12
- const stackApp = useStackApp();
13
- const project = mockProject || stackApp.useProject();
14
- return /* @__PURE__ */ jsx("div", { style: { gap: "16px", display: "flex", flexDirection: "column", alignItems: "stretch" }, children: project.oauthProviders.filter((p) => p.enabled).map((p) => /* @__PURE__ */ jsx(OAuthButton, { provider: p.id, type }, p.id)) });
15
- }
16
- export {
17
- OAuthGroup as default
18
- };
19
- //# sourceMappingURL=oauth-group.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/oauth-group.tsx"],"sourcesContent":["'use client';\n\nimport { ClientProjectJson } from \"@stackframe/stack-shared\";\nimport { useStackApp } from \"../lib/hooks\";\nimport OAuthButton from \"./oauth-button\";\n\nexport default function OAuthGroup({\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 style={{ gap: '16px', display: 'flex', flexDirection: 'column', alignItems: 'stretch' }}>\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,OAAO,iBAAiB;AAehB;AAbO,SAAR,WAA4B;AAAA,EACjC;AAAA,EACA;AACF,GAGG;AACD,QAAM,WAAW,YAAY;AAC7B,QAAM,UAAU,eAAe,SAAS,WAAW;AAEnD,SACE,oBAAC,SAAI,OAAO,EAAE,KAAK,QAAQ,SAAS,QAAQ,eAAe,UAAU,YAAY,UAAU,GACxF,kBAAQ,eAAe,OAAO,OAAK,EAAE,OAAO,EAAE,IAAI,OACjD,oBAAC,eAAuB,UAAU,EAAE,IAAI,QAAtB,EAAE,EAA+B,CACpD,GACH;AAEJ;","names":[]}
@@ -1,81 +0,0 @@
1
- "use client";
2
- "use client";
3
-
4
- // src/components/password-field.tsx
5
- import { Input } from "../components-core";
6
- import { forwardRef, useRef, useState } from "react";
7
- import { useDesign } from "..";
8
- import styled from "styled-components";
9
- import { Eye, EyeOff } from "lucide-react";
10
- import { jsx, jsxs } from "react/jsx-runtime";
11
- var getIconStyle = (colors) => `
12
- height: 1rem;
13
- width: 1rem;
14
- color: #808080
15
- `;
16
- var StyledEyeOff = styled(EyeOff)`${(props) => getIconStyle(props.colors)}`;
17
- var StyledEye = styled(Eye)`${(props) => getIconStyle(props.colors)}`;
18
- var PasswordField = forwardRef(({ id, name, ...props }, ref) => {
19
- const [isOpen, setIsOpen] = useState(false);
20
- const { colors } = useDesign();
21
- const inputRef = useRef(null);
22
- const mergeRef = (node) => {
23
- if (ref) {
24
- if (typeof ref === "function") {
25
- ref(node);
26
- } else {
27
- ref.current = node;
28
- }
29
- }
30
- inputRef.current = node;
31
- };
32
- const onClickReveal = () => {
33
- setIsOpen(!isOpen);
34
- const currentInput = inputRef.current;
35
- if (currentInput) {
36
- currentInput.focus({ preventScroll: true });
37
- }
38
- };
39
- return /* @__PURE__ */ jsxs("div", { style: { position: "relative", display: "flex" }, children: [
40
- /* @__PURE__ */ jsx(
41
- Input,
42
- {
43
- id,
44
- ref: mergeRef,
45
- name,
46
- type: isOpen ? "text" : "password",
47
- autoComplete: "current-password",
48
- required: true,
49
- style: { flex: 1 },
50
- ...props
51
- }
52
- ),
53
- /* @__PURE__ */ jsx(
54
- "button",
55
- {
56
- tabIndex: -1,
57
- type: "button",
58
- style: {
59
- position: "absolute",
60
- backgroundColor: "transparent",
61
- border: "none",
62
- top: 0,
63
- right: 0,
64
- bottom: 0,
65
- display: "flex",
66
- alignItems: "center",
67
- paddingRight: "12px"
68
- },
69
- onClick: onClickReveal,
70
- "aria-label": isOpen ? "Mask password" : "Reveal password",
71
- children: isOpen ? /* @__PURE__ */ jsx(StyledEyeOff, { colors }) : /* @__PURE__ */ jsx(StyledEye, { colors })
72
- }
73
- )
74
- ] });
75
- });
76
- PasswordField.displayName = "PasswordField";
77
- var password_field_default = PasswordField;
78
- export {
79
- password_field_default as default
80
- };
81
- //# sourceMappingURL=password-field.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/password-field.tsx"],"sourcesContent":["'use client';\n\nimport { Input } from \"../components-core\";\nimport { forwardRef, useRef, useState } from 'react';\nimport { useDesign } from \"..\";\nimport styled from \"styled-components\";\nimport { ColorPalette } from \"../providers/design-provider\";\nimport { Eye, EyeOff } from 'lucide-react';\n\nconst getIconStyle = (colors: ColorPalette) => `\n height: 1rem;\n width: 1rem;\n color: #808080\n`;\nconst StyledEyeOff = styled(EyeOff)<{ colors: ColorPalette }>`${props => getIconStyle(props.colors)}`;\nconst StyledEye = styled(Eye)<{ colors: ColorPalette }>`${props => getIconStyle(props.colors)}`;\n\nconst PasswordField = forwardRef<\n HTMLInputElement, \n React.InputHTMLAttributes<HTMLInputElement>\n>(({ id, name, ...props }, ref) => {\n const [isOpen, setIsOpen] = useState(false);\n const { colors } = useDesign();\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const mergeRef = (node: HTMLInputElement) => {\n if (ref) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n }\n inputRef.current = node;\n };\n\n const onClickReveal = () => {\n setIsOpen(!isOpen);\n const currentInput = inputRef.current;\n if (currentInput) {\n currentInput.focus({ preventScroll: true });\n }\n };\n\n return (\n <div style={{ position: 'relative', display: 'flex' }}>\n <Input\n id={id}\n ref={mergeRef}\n name={name}\n type={isOpen ? 'text' : 'password'}\n autoComplete=\"current-password\"\n required\n style={{ flex: 1 }}\n {...props}\n />\n <button\n tabIndex={-1}\n type=\"button\"\n style={{ \n position: 'absolute', \n backgroundColor: 'transparent',\n border: 'none',\n top: 0, \n right: 0, \n bottom: 0, \n display: 'flex', \n alignItems: 'center', \n paddingRight: '12px' \n }}\n onClick={onClickReveal}\n aria-label={isOpen ? 'Mask password' : 'Reveal password'}\n >\n {isOpen ? <StyledEyeOff colors={colors} /> : <StyledEye colors={colors} />}\n </button>\n </div>\n );\n});\n\nPasswordField.displayName = 'PasswordField';\n\nexport default PasswordField;\n"],"mappings":";;;AAEA,SAAS,aAAa;AACtB,SAAS,YAAY,QAAQ,gBAAgB;AAC7C,SAAS,iBAAiB;AAC1B,OAAO,YAAY;AAEnB,SAAS,KAAK,cAAc;AAsCxB,SACE,KADF;AApCJ,IAAM,eAAe,CAAC,WAAyB;AAAA;AAAA;AAAA;AAAA;AAK/C,IAAM,eAAe,OAAO,MAAM,IAA8B,WAAS,aAAa,MAAM,MAAM,CAAC;AACnG,IAAM,YAAY,OAAO,GAAG,IAA8B,WAAS,aAAa,MAAM,MAAM,CAAC;AAE7F,IAAM,gBAAgB,WAGpB,CAAC,EAAE,IAAI,MAAM,GAAG,MAAM,GAAG,QAAQ;AACjC,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,KAAK;AAC1C,QAAM,EAAE,OAAO,IAAI,UAAU;AAC7B,QAAM,WAAW,OAAgC,IAAI;AAErD,QAAM,WAAW,CAAC,SAA2B;AAC3C,QAAI,KAAK;AACP,UAAI,OAAO,QAAQ,YAAY;AAC7B,YAAI,IAAI;AAAA,MACV,OAAO;AACL,YAAI,UAAU;AAAA,MAChB;AAAA,IACF;AACA,aAAS,UAAU;AAAA,EACrB;AAEA,QAAM,gBAAgB,MAAM;AAC1B,cAAU,CAAC,MAAM;AACjB,UAAM,eAAe,SAAS;AAC9B,QAAI,cAAc;AAChB,mBAAa,MAAM,EAAE,eAAe,KAAK,CAAC;AAAA,IAC5C;AAAA,EACF;AAEA,SACE,qBAAC,SAAI,OAAO,EAAE,UAAU,YAAY,SAAS,OAAO,GAClD;AAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,KAAK;AAAA,QACL;AAAA,QACA,MAAM,SAAS,SAAS;AAAA,QACxB,cAAa;AAAA,QACb,UAAQ;AAAA,QACR,OAAO,EAAE,MAAM,EAAE;AAAA,QAChB,GAAG;AAAA;AAAA,IACN;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,UAAU;AAAA,QACV,MAAK;AAAA,QACL,OAAO;AAAA,UACL,UAAU;AAAA,UACV,iBAAiB;AAAA,UACjB,QAAQ;AAAA,UACR,KAAK;AAAA,UACL,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,cAAc;AAAA,QAChB;AAAA,QACA,SAAS;AAAA,QACT,cAAY,SAAS,kBAAkB;AAAA,QAEtC,mBAAS,oBAAC,gBAAa,QAAgB,IAAK,oBAAC,aAAU,QAAgB;AAAA;AAAA,IAC1E;AAAA,KACF;AAEJ,CAAC;AAED,cAAc,cAAc;AAE5B,IAAO,yBAAQ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/password-reset-inner.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 { getPasswordError } from \"@stackframe/stack-shared/dist/helpers/password\";\nimport { useStackApp } from \"..\";\nimport PasswordField from \"./password-field\";\nimport FormWarningText from \"./form-warning\";\nimport PredefinedMessageCard from \"./message-cards/predefined-message-card\";\nimport MessageCard from \"./message-cards/message-card\";\nimport MaybeFullPage from \"./maybe-full-page\";\nimport { Button, Label, Text } from \"../components-core\";\nimport { runAsynchronouslyWithAlert } from \"@stackframe/stack-shared/dist/utils/promises\";\n\nconst schema = yup.object().shape({\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 default function PasswordResetInner(\n { code, fullPage = false }:\n { code: string, fullPage?: boolean }\n) {\n const { register, handleSubmit, formState: { errors }, clearErrors } = useForm({\n resolver: yupResolver(schema)\n });\n const stackApp = useStackApp();\n const [finished, setFinished] = useState(false);\n const [resetError, setResetError] = useState(false);\n\n const onSubmit = async (data: yup.InferType<typeof schema>) => {\n const { password } = data;\n const errorCode = await stackApp.resetPassword({ password, code });\n if (errorCode) {\n setResetError(true);\n return;\n }\n\n setFinished(true);\n };\n\n if (finished) {\n return <PredefinedMessageCard type='passwordReset' fullPage={fullPage} />;\n }\n\n if (resetError) {\n return (\n <MessageCard title=\"Failed to reset password\" fullPage={fullPage}>\n <Text>Failed to reset password. Please request a new password reset link</Text>\n </MessageCard>\n );\n }\n\n return (\n <MaybeFullPage fullPage={fullPage}>\n <div style={{ textAlign: 'center', marginBottom: '1.5rem' }}>\n <Text size=\"xl\" as='h2'>Reset Your Password</Text>\n </div>\n\n <form \n style={{ display: 'flex', flexDirection: 'column', alignItems: 'stretch' }} \n onSubmit={e => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e))}\n noValidate\n >\n <Label htmlFor=\"password\">New Password</Label>\n <PasswordField\n id=\"password\"\n {...register('password')}\n onChange={() => {\n clearErrors('password');\n clearErrors('passwordRepeat');\n }}\n />\n <FormWarningText text={errors.password?.message?.toString()} />\n\n <Label htmlFor=\"repeat-password\" style={{ marginTop: \"1rem\" }}>Repeat New Password</Label>\n <PasswordField\n id=\"repeat-password\"\n {...register('passwordRepeat')}\n onChange={() => {\n clearErrors('password');\n clearErrors('passwordRepeat');\n }}\n />\n <FormWarningText text={errors.passwordRepeat?.message?.toString()} />\n\n <Button style={{ marginTop: '1.5rem' }} type=\"submit\">\n Reset Password\n </Button>\n </form>\n </MaybeFullPage>\n ); \n}\n"],"mappings":"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","names":[]}
@@ -1,17 +0,0 @@
1
- "use client";
2
- "use client";
3
-
4
- // src/components/separator-with-text.tsx
5
- import { Separator, Text } from "../components-core";
6
- import { jsx, jsxs } from "react/jsx-runtime";
7
- function SeparatorWithText({ text }) {
8
- return /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", justifyContent: "center", marginTop: "1.5rem", marginBottom: "1.5rem" }, children: [
9
- /* @__PURE__ */ jsx("div", { style: { flex: 1 }, children: /* @__PURE__ */ jsx(Separator, {}) }),
10
- /* @__PURE__ */ jsx(Text, { style: { padding: "0 16px" }, variant: "secondary", size: "sm", children: text }),
11
- /* @__PURE__ */ jsx("div", { style: { flex: 1 }, children: /* @__PURE__ */ jsx(Separator, {}) })
12
- ] });
13
- }
14
- export {
15
- SeparatorWithText as default
16
- };
17
- //# sourceMappingURL=separator-with-text.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/separator-with-text.tsx"],"sourcesContent":["'use client';\n\nimport { Separator, Text } from \"../components-core\";\n\nexport default function SeparatorWithText({ text }: { text: string }) {\n return (\n <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', marginTop: '1.5rem', marginBottom: '1.5rem' }}>\n <div style={{ flex: 1 }}>\n <Separator />\n </div>\n <Text style={{ padding: '0 16px' }} variant=\"secondary\" size='sm'>{text}</Text>\n <div style={{ flex: 1 }}>\n <Separator />\n </div>\n </div>\n );\n}\n"],"mappings":";;;AAEA,SAAS,WAAW,YAAY;AAI5B,SAEI,KAFJ;AAFW,SAAR,kBAAmC,EAAE,KAAK,GAAqB;AACpE,SACE,qBAAC,SAAI,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,gBAAgB,UAAU,WAAW,UAAU,cAAc,SAAS,GACzH;AAAA,wBAAC,SAAI,OAAO,EAAE,MAAM,EAAE,GACpB,8BAAC,aAAU,GACb;AAAA,IACA,oBAAC,QAAK,OAAO,EAAE,SAAS,SAAS,GAAG,SAAQ,aAAY,MAAK,MAAM,gBAAK;AAAA,IACxE,oBAAC,SAAI,OAAO,EAAE,MAAM,EAAE,GACpB,8BAAC,aAAU,GACb;AAAA,KACF;AAEJ;","names":[]}
@@ -1,25 +0,0 @@
1
- // src/components/user-avatar.tsx
2
- import { UserRound } from "lucide-react";
3
- import { Avatar, AvatarFallback, AvatarImage, Text } from "..";
4
- import styled from "styled-components";
5
- import { jsx, jsxs } from "react/jsx-runtime";
6
- var StyledIcon = styled(UserRound)`
7
- height: 1.25rem;
8
- width: 1.25rem;
9
- color: #666666;
10
-
11
- html[data-stack-theme='dark'] & {
12
- color: #999999;
13
- }
14
- `;
15
- function UserAvatar(props) {
16
- const user = props.user;
17
- return /* @__PURE__ */ jsxs(Avatar, { style: { height: props.size, width: props.size }, children: [
18
- /* @__PURE__ */ jsx(AvatarImage, { src: user?.profileImageUrl || "" }),
19
- /* @__PURE__ */ jsx(AvatarFallback, { children: user ? /* @__PURE__ */ jsx(Text, { style: { fontWeight: 500 }, children: (user.displayName || user.primaryEmail)?.slice(0, 2).toUpperCase() }) : /* @__PURE__ */ jsx(StyledIcon, { size: props.size }) })
20
- ] });
21
- }
22
- export {
23
- UserAvatar as default
24
- };
25
- //# sourceMappingURL=user-avatar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/user-avatar.tsx"],"sourcesContent":["import { UserRound } from \"lucide-react\";\nimport { Avatar, AvatarFallback, AvatarImage, Text } from \"..\";\nimport { User } from \"../lib/stack-app\";\nimport styled from \"styled-components\";\n\nconst StyledIcon = styled(UserRound)`\n height: 1.25rem;\n width: 1.25rem;\n color: #666666;\n\n html[data-stack-theme='dark'] & {\n color: #999999;\n }\n`;\n\nexport default function UserAvatar(props: { size?: number, user: User | null }) {\n const user = props.user;\n return (\n <Avatar style={{ height: props.size, width: props.size }}>\n <AvatarImage src={user?.profileImageUrl || ''} />\n <AvatarFallback>\n {user ? \n <Text style={{ fontWeight: 500 }}>\n {(user.displayName || user.primaryEmail)?.slice(0, 2).toUpperCase()}\n </Text> :\n <StyledIcon size={props.size} />}\n </AvatarFallback>\n </Avatar>\n );\n}\n"],"mappings":";AAAA,SAAS,iBAAiB;AAC1B,SAAS,QAAQ,gBAAgB,aAAa,YAAY;AAE1D,OAAO,YAAY;AAef,SACE,KADF;AAbJ,IAAM,aAAa,OAAO,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUpB,SAAR,WAA4B,OAA6C;AAC9E,QAAM,OAAO,MAAM;AACnB,SACE,qBAAC,UAAO,OAAO,EAAE,QAAQ,MAAM,MAAM,OAAO,MAAM,KAAK,GACrD;AAAA,wBAAC,eAAY,KAAK,MAAM,mBAAmB,IAAI;AAAA,IAC/C,oBAAC,kBACE,iBACC,oBAAC,QAAK,OAAO,EAAE,YAAY,IAAI,GAC3B,gBAAK,eAAe,KAAK,eAAe,MAAM,GAAG,CAAC,EAAE,YAAY,GACpE,IACA,oBAAC,cAAW,MAAM,MAAM,MAAM,GAClC;AAAA,KACF;AAEJ;","names":[]}
@@ -1,57 +0,0 @@
1
- // src/components-core/avatar.tsx
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
- import { jsx } from "react/jsx-runtime";
7
- var StyledAvatar = styled(AvatarPrimitive.Root)`
8
- position: relative;
9
- display: flex;
10
- height: 2rem;
11
- width: 2rem;
12
- flex-shrink: 0;
13
- overflow: hidden;
14
- border-radius: 9999px;
15
- `;
16
- var Avatar = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(StyledAvatar, { ref, className, ...props }));
17
- Avatar.displayName = "Avatar";
18
- var StyledAvatarImage = styled(AvatarPrimitive.Image)`
19
- aspect-ratio: 1 / 1;
20
- height: 100%;
21
- width: 100%;
22
- `;
23
- var AvatarImage = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(StyledAvatarImage, { ref, className, ...props }));
24
- AvatarImage.displayName = "AvatarImage";
25
- var StyledAvatarFallback = styled(AvatarPrimitive.Fallback)`
26
- display: flex;
27
- height: 100%;
28
- width: 100%;
29
- align-items: center;
30
- justify-content: center;
31
- border-radius: 9999px;
32
-
33
- background-color: ${({ $colors }) => $colors.light.secondaryColor};
34
-
35
- html[data-stack-theme='dark'] & {
36
- background-color: ${({ $colors }) => $colors.dark.secondaryColor};
37
- }
38
- `;
39
- var AvatarFallback = React.forwardRef(({ className, ...props }, ref) => {
40
- const { colors } = useDesign();
41
- return /* @__PURE__ */ jsx(
42
- StyledAvatarFallback,
43
- {
44
- ref,
45
- className,
46
- $colors: colors,
47
- ...props
48
- }
49
- );
50
- });
51
- AvatarFallback.displayName = "AvatarFallback";
52
- export {
53
- Avatar,
54
- AvatarFallback,
55
- AvatarImage
56
- };
57
- //# sourceMappingURL=avatar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components-core/avatar.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as AvatarPrimitive from '@radix-ui/react-avatar';\nimport styled from 'styled-components';\nimport { useDesign } from '..';\nimport { ColorPalette } from '../providers/design-provider';\n\nconst StyledAvatar = styled(AvatarPrimitive.Root)`\n position: relative;\n display: flex;\n height: 2rem;\n width: 2rem;\n flex-shrink: 0;\n overflow: hidden;\n border-radius: 9999px;\n`;\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <StyledAvatar ref={ref} className={className} {...props} />\n));\nAvatar.displayName = 'Avatar';\n\nconst StyledAvatarImage = styled(AvatarPrimitive.Image)`\n aspect-ratio: 1 / 1;\n height: 100%;\n width: 100%;\n`;\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <StyledAvatarImage ref={ref} className={className} {...props} />\n));\nAvatarImage.displayName = 'AvatarImage';\n\nconst StyledAvatarFallback = styled(AvatarPrimitive.Fallback)<{\n $colors: ColorPalette,\n}>`\n display: flex;\n height: 100%;\n width: 100%;\n align-items: center;\n justify-content: center;\n border-radius: 9999px;\n \n background-color: ${({ $colors }) => $colors.light.secondaryColor};\n\n html[data-stack-theme='dark'] & {\n background-color: ${({ $colors }) => $colors.dark.secondaryColor};\n }\n`;\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => {\n const { colors } = useDesign();\n return <StyledAvatarFallback \n ref={ref} \n className={className} \n $colors={colors}\n {...props} \n />;\n});\nAvatarFallback.displayName = 'AvatarFallback';\n\nexport { Avatar, AvatarImage, AvatarFallback };\n"],"mappings":";AAAA,YAAY,WAAW;AACvB,YAAY,qBAAqB;AACjC,OAAO,YAAY;AACnB,SAAS,iBAAiB;AAiBxB;AAdF,IAAM,eAAe,OAAuB,oBAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUhD,IAAM,SAAe,iBAGnB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,oBAAC,gBAAa,KAAU,WAAuB,GAAG,OAAO,CAC1D;AACD,OAAO,cAAc;AAErB,IAAM,oBAAoB,OAAuB,qBAAK;AAAA;AAAA;AAAA;AAAA;AAMtD,IAAM,cAAoB,iBAGxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,oBAAC,qBAAkB,KAAU,WAAuB,GAAG,OAAO,CAC/D;AACD,YAAY,cAAc;AAE1B,IAAM,uBAAuB,OAAuB,wBAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAUtC,CAAC,EAAE,QAAQ,MAAM,QAAQ,MAAM,cAAc;AAAA;AAAA;AAAA,wBAG3C,CAAC,EAAE,QAAQ,MAAM,QAAQ,KAAK,cAAc;AAAA;AAAA;AAIpE,IAAM,iBAAuB,iBAG3B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,QAAM,EAAE,OAAO,IAAI,UAAU;AAC7B,SAAO;AAAA,IAAC;AAAA;AAAA,MACN;AAAA,MACA;AAAA,MACA,SAAS;AAAA,MACR,GAAG;AAAA;AAAA,EACN;AACF,CAAC;AACD,eAAe,cAAc;","names":[]}
@@ -1,183 +0,0 @@
1
- "use client";
2
- "use client";
3
-
4
- // src/components-core/button.tsx
5
- import React, { useMemo } from "react";
6
- import { useDesign } from "../providers/design-provider";
7
- import Color from "color";
8
- import styled, { keyframes } from "styled-components";
9
- import { FONT_FAMILY, FONT_SIZES, LINE_HEIGHTS } from "../utils/constants";
10
- import { ReloadIcon } from "@radix-ui/react-icons";
11
- import { jsx, jsxs } from "react/jsx-runtime";
12
- function getColors({
13
- propsColor,
14
- colors,
15
- variant
16
- }) {
17
- let bgColor;
18
- switch (variant) {
19
- case "primary": {
20
- bgColor = colors.primaryColor;
21
- break;
22
- }
23
- case "secondary": {
24
- bgColor = colors.secondaryColor;
25
- break;
26
- }
27
- case "warning": {
28
- bgColor = "#ff4500";
29
- break;
30
- }
31
- }
32
- if (propsColor) {
33
- bgColor = propsColor;
34
- }
35
- const c = Color(bgColor);
36
- const pc = Color(colors.primaryColor);
37
- const changeColor = (value) => {
38
- return c.hsl(c.hue(), c.saturationl(), c.lightness() + value).toString();
39
- };
40
- const getAlpha = (alpha) => {
41
- return Color(
42
- pc.isDark() ? "white" : "black"
43
- ).alpha(alpha).toString();
44
- };
45
- if (c.alpha() === 0) {
46
- return {
47
- bgColor: "transparent",
48
- hoverBgColor: getAlpha(0.1),
49
- activeBgColor: getAlpha(0.2),
50
- textColor: colors.primaryColor
51
- };
52
- } else if (c.isLight()) {
53
- return {
54
- bgColor,
55
- hoverBgColor: changeColor(-10),
56
- activeBgColor: changeColor(-20),
57
- textColor: "black"
58
- };
59
- } else {
60
- return {
61
- bgColor,
62
- hoverBgColor: changeColor(10),
63
- activeBgColor: changeColor(20),
64
- textColor: "white"
65
- };
66
- }
67
- }
68
- var StyledButton = styled.button`
69
- display: inline-flex;
70
- justify-content: center;
71
- align-items: center;
72
- border: 0;
73
- border-radius: 0.375rem;
74
- font-family: ${FONT_FAMILY};
75
- font-size: ${FONT_SIZES.sm};
76
- font-weight: 500;
77
- line-height: ${LINE_HEIGHTS.sm};
78
- cursor: pointer;
79
- padding: ${(props) => {
80
- switch (props.$size) {
81
- case "sm": {
82
- return "0rem 0.75rem";
83
- }
84
- case "md": {
85
- return "0.5rem 1rem";
86
- }
87
- case "lg": {
88
- return "0.5rem 2rem";
89
- }
90
- }
91
- }};
92
- height: ${(props) => {
93
- switch (props.$size) {
94
- case "sm": {
95
- return "2rem";
96
- }
97
- case "md": {
98
- return "2.25rem;";
99
- }
100
- case "lg": {
101
- return "2.5rem;";
102
- }
103
- }
104
- }};
105
- &:disabled {
106
- cursor: auto;
107
- opacity: 0.5;
108
- }
109
-
110
- background-color: ${(props) => props.$colors.light.bgColor};
111
- color: ${(props) => props.$colors.light.textColor};
112
- &:not([disabled]) {
113
- &:active,&:hover:active {
114
- background-color: ${(props) => props.$colors.light.activeBgColor};
115
- }
116
- &:hover {
117
- background-color: ${(props) => props.$colors.light.hoverBgColor};
118
- }
119
- }
120
-
121
- html[data-stack-theme='dark'] & {
122
- background-color: ${(props) => props.$colors.dark.bgColor};
123
- color: ${(props) => props.$colors.dark.textColor};
124
- &:not([disabled]) {
125
- &:active,&:hover:active {
126
- background-color: ${(props) => props.$colors.dark.activeBgColor};
127
- }
128
- &:hover {
129
- background-color: ${(props) => props.$colors.dark.hoverBgColor};
130
- }
131
- }
132
- }
133
- `;
134
- var spin = keyframes`
135
- 0% {
136
- transform: rotate(0deg);
137
- }
138
- 100% {
139
- transform: rotate(360deg);
140
- }
141
- `;
142
- var StyledReloadIcon = styled(ReloadIcon)`
143
- margin-right: 0.5rem; /* mr-2 */
144
- height: 1rem; /* h-4 */
145
- width: 1rem; /* w-4 */
146
- animation: ${spin} 1s linear infinite; /* animate-spin */
147
- `;
148
- var Button = React.forwardRef(
149
- ({
150
- variant = "primary",
151
- size = "md",
152
- loading = false,
153
- ...props
154
- }, ref) => {
155
- const { colors } = useDesign();
156
- const { dark, light } = useMemo(() => {
157
- return {
158
- dark: getColors({ propsColor: props.color, colors: colors.dark, variant }),
159
- light: getColors({ propsColor: props.color, colors: colors.light, variant })
160
- };
161
- }, [props.color, colors, variant]);
162
- return /* @__PURE__ */ jsxs(
163
- StyledButton,
164
- {
165
- ref,
166
- $size: size,
167
- $loading: loading,
168
- $colors: { dark, light },
169
- ...props,
170
- disabled: props.disabled || loading,
171
- children: [
172
- loading && /* @__PURE__ */ jsx(StyledReloadIcon, {}),
173
- props.children
174
- ]
175
- }
176
- );
177
- }
178
- );
179
- Button.displayName = "Button";
180
- export {
181
- Button
182
- };
183
- //# sourceMappingURL=button.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components-core/button.tsx"],"sourcesContent":["'use client';\n\nimport React, { useMemo } from \"react\";\nimport { useDesign } from \"../providers/design-provider\";\nimport Color from 'color';\nimport styled, { keyframes } from 'styled-components';\nimport { FONT_FAMILY, FONT_SIZES, LINE_HEIGHTS } from \"../utils/constants\";\nimport { ReloadIcon } from \"@radix-ui/react-icons\";\n\nfunction getColors({\n propsColor, \n colors, \n variant,\n}: {\n propsColor?: string, \n colors: { primaryColor: string, secondaryColor: string, backgroundColor: string },\n variant: 'primary' | 'secondary' | 'warning',\n}): {\n bgColor: string, \n hoverBgColor: string,\n activeBgColor: string,\n textColor: string,\n} {\n let bgColor;\n switch (variant) {\n case 'primary': {\n bgColor = colors.primaryColor;\n break;\n }\n case 'secondary': {\n bgColor = colors.secondaryColor;\n break;\n }\n case 'warning': {\n bgColor = '#ff4500';\n break;\n }\n }\n if (propsColor) {\n bgColor = propsColor;\n }\n\n const c = Color(bgColor);\n const pc = Color(colors.primaryColor);\n\n const changeColor = (value: number) => {\n return c.hsl(c.hue(), c.saturationl(), c.lightness() + value).toString();\n };\n \n const getAlpha = (alpha: number) => {\n return Color(\n pc.isDark() ? 'white' : 'black'\n ).alpha(alpha).toString();\n };\n\n if (c.alpha() === 0) {\n return {\n bgColor: 'transparent',\n hoverBgColor: getAlpha(0.1),\n activeBgColor: getAlpha(0.2),\n textColor: colors.primaryColor,\n };\n } else if (c.isLight()) {\n return {\n bgColor,\n hoverBgColor: changeColor(-10),\n activeBgColor: changeColor(-20),\n textColor: 'black',\n };\n } else {\n return {\n bgColor,\n hoverBgColor: changeColor(10),\n activeBgColor: changeColor(20),\n textColor: 'white',\n };\n }\n}\n\nexport type ButtonProps = {\n variant?: 'primary' | 'secondary' | 'warning',\n color?: string,\n size?: 'sm' | 'md' | 'lg',\n type?: 'button' | 'submit' | 'reset',\n loading?: boolean,\n onClick?: (() => void) | (() => Promise<void>),\n} & Omit<React.HTMLProps<HTMLButtonElement>, 'size' | 'type' | 'onClick'>\n\ntype ButtonColors = {\n bgColor: string, \n hoverBgColor: string,\n activeBgColor: string,\n textColor: string,\n}\n\nconst StyledButton = styled.button<{\n $size: 'sm' | 'md' | 'lg',\n $loading: boolean,\n $colors: {\n dark: ButtonColors,\n light: ButtonColors,\n },\n}>`\n display: inline-flex;\n justify-content: center;\n align-items: center;\n border: 0;\n border-radius: 0.375rem;\n font-family: ${FONT_FAMILY};\n font-size: ${FONT_SIZES.sm};\n font-weight: 500;\n line-height: ${LINE_HEIGHTS.sm};\n cursor: pointer;\n padding: ${props => {\n switch (props.$size) {\n case 'sm': { return '0rem 0.75rem'; }\n case 'md': { return '0.5rem 1rem'; }\n case 'lg': { return '0.5rem 2rem'; }\n }\n }};\n height: ${props => {\n switch (props.$size) {\n case 'sm': { return '2rem'; }\n case 'md': { return '2.25rem;'; }\n case 'lg': { return '2.5rem;'; }\n }\n }};\n &:disabled {\n cursor: auto;\n opacity: 0.5;\n }\n\n background-color: ${props => props.$colors.light.bgColor};\n color: ${props => props.$colors.light.textColor};\n &:not([disabled]) {\n &:active,&:hover:active {\n background-color: ${props => props.$colors.light.activeBgColor};\n }\n &:hover {\n background-color: ${props => props.$colors.light.hoverBgColor};\n }\n }\n\n html[data-stack-theme='dark'] & {\n background-color: ${props => props.$colors.dark.bgColor};\n color: ${props => props.$colors.dark.textColor};\n &:not([disabled]) {\n &:active,&:hover:active {\n background-color: ${props => props.$colors.dark.activeBgColor};\n }\n &:hover {\n background-color: ${props => props.$colors.dark.hoverBgColor};\n }\n }\n }\n`;\n\nconst spin = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n`;\n\nconst StyledReloadIcon = styled(ReloadIcon)`\n margin-right: 0.5rem; /* mr-2 */\n height: 1rem; /* h-4 */\n width: 1rem; /* w-4 */\n animation: ${spin} 1s linear infinite; /* animate-spin */\n`;\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({\n variant='primary',\n size='md',\n loading=false,\n ...props\n }, ref) => {\n const { colors } = useDesign();\n\n const { dark, light } = useMemo(() => {\n return {\n dark: getColors({ propsColor: props.color, colors: colors.dark, variant }),\n light: getColors({ propsColor: props.color, colors: colors.light, variant }),\n };\n }, [props.color, colors, variant]);\n\n return (\n <StyledButton\n ref={ref}\n $size={size}\n $loading={loading}\n $colors={{ dark, light }}\n {...props}\n disabled={props.disabled || loading}\n >\n {loading && <StyledReloadIcon />}\n {props.children}\n </StyledButton>\n );\n }\n);\n\nButton.displayName = 'Button';\n\nexport {\n Button,\n};\n"],"mappings":"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","names":[]}
@@ -1,52 +0,0 @@
1
- "use client";
2
- "use client";
3
-
4
- // src/components-core/card.tsx
5
- import * as React from "react";
6
- import styled from "styled-components";
7
- import { useDesign } from "..";
8
- import { SHADOW } from "../utils/constants";
9
- import { jsx } from "react/jsx-runtime";
10
- var StyledCard = styled.div`
11
- border-radius: 0.75rem;
12
- box-shadow: ${SHADOW};
13
- padding: 1.5rem;
14
-
15
- border: 1px solid ${(props) => props.$colors.light.neutralColor};
16
- background-color: ${(props) => props.$colors.light.backgroundColor};
17
-
18
- html[data-stack-theme='dark'] & {
19
- border-color: ${(props) => props.$colors.dark.neutralColor};
20
- background-color: ${(props) => props.$colors.dark.backgroundColor};
21
- }
22
- `;
23
- var StyledCardHeader = styled.div`
24
- display: flex;
25
- flex-direction: column;
26
- margin-bottom: 1.5rem;
27
- `;
28
- var StyledCardContent = styled.div`
29
- `;
30
- var StyledCardFooter = styled.div`
31
- display: flex;
32
- align-items: center;
33
- margin-top: 1.5rem;
34
- `;
35
- var Card = React.forwardRef((props, ref) => {
36
- const { colors } = useDesign();
37
- return /* @__PURE__ */ jsx(StyledCard, { ref, ...props, $colors: colors });
38
- });
39
- Card.displayName = "Card";
40
- var CardHeader = React.forwardRef((props, ref) => /* @__PURE__ */ jsx(StyledCardHeader, { ref, ...props }));
41
- CardHeader.displayName = "CardHeader";
42
- var CardContent = React.forwardRef((props, ref) => /* @__PURE__ */ jsx(StyledCardContent, { ref, ...props }));
43
- CardContent.displayName = "CardContent";
44
- var CardFooter = React.forwardRef((props, ref) => /* @__PURE__ */ jsx(StyledCardFooter, { ref, ...props }));
45
- CardFooter.displayName = "CardFooter";
46
- export {
47
- Card,
48
- CardContent,
49
- CardFooter,
50
- CardHeader
51
- };
52
- //# sourceMappingURL=card.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components-core/card.tsx"],"sourcesContent":["'use client';\n\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport { useDesign } from \"..\";\nimport { ColorPalette } from \"../providers/design-provider\";\nimport { SHADOW } from \"../utils/constants\";\n\nconst StyledCard = styled.div<{ \n $colors: ColorPalette,\n}>`\n border-radius: 0.75rem;\n box-shadow: ${SHADOW};\n padding: 1.5rem;\n\n border: 1px solid ${props => props.$colors.light.neutralColor};\n background-color: ${props => props.$colors.light.backgroundColor};\n\n html[data-stack-theme='dark'] & {\n border-color: ${props => props.$colors.dark.neutralColor};\n background-color: ${props => props.$colors.dark.backgroundColor};\n }\n`;\n\nconst StyledCardHeader = styled.div`\n display: flex;\n flex-direction: column;\n margin-bottom: 1.5rem;\n`;\n\nconst StyledCardContent = styled.div`\n`;\n\nconst StyledCardFooter = styled.div`\n display: flex;\n align-items: center;\n margin-top: 1.5rem;\n`;\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>((props, ref) => {\n const { colors } = useDesign();\n return <StyledCard ref={ref} {...props} $colors={colors} />;\n});\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>((props, ref) => (\n <StyledCardHeader ref={ref} {...props} />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>((props, ref) => (\n <StyledCardContent ref={ref} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>((props, ref) => (\n <StyledCardFooter ref={ref} {...props} />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport { \n Card, \n CardHeader, \n CardFooter, \n CardContent,\n};\n"],"mappings":";;;AAEA,YAAY,WAAW;AACvB,OAAO,YAAY;AACnB,SAAS,iBAAiB;AAE1B,SAAS,cAAc;AAmCd;AAjCT,IAAM,aAAa,OAAO;AAAA;AAAA,gBAIV,MAAM;AAAA;AAAA;AAAA,sBAGA,WAAS,MAAM,QAAQ,MAAM,YAAY;AAAA,sBACzC,WAAS,MAAM,QAAQ,MAAM,eAAe;AAAA;AAAA;AAAA,oBAG9C,WAAS,MAAM,QAAQ,KAAK,YAAY;AAAA,wBACpC,WAAS,MAAM,QAAQ,KAAK,eAAe;AAAA;AAAA;AAInE,IAAM,mBAAmB,OAAO;AAAA;AAAA;AAAA;AAAA;AAMhC,IAAM,oBAAoB,OAAO;AAAA;AAGjC,IAAM,mBAAmB,OAAO;AAAA;AAAA;AAAA;AAAA;AAMhC,IAAM,OAAa,iBAAiE,CAAC,OAAO,QAAQ;AAClG,QAAM,EAAE,OAAO,IAAI,UAAU;AAC7B,SAAO,oBAAC,cAAW,KAAW,GAAG,OAAO,SAAS,QAAQ;AAC3D,CAAC;AACD,KAAK,cAAc;AAEnB,IAAM,aAAmB,iBAAiE,CAAC,OAAO,QAChG,oBAAC,oBAAiB,KAAW,GAAG,OAAO,CACxC;AACD,WAAW,cAAc;AAEzB,IAAM,cAAoB,iBAAiE,CAAC,OAAO,QACjG,oBAAC,qBAAkB,KAAW,GAAG,OAAO,CACzC;AACD,YAAY,cAAc;AAE1B,IAAM,aAAmB,iBAAiE,CAAC,OAAO,QAChG,oBAAC,oBAAiB,KAAW,GAAG,OAAO,CACxC;AACD,WAAW,cAAc;","names":[]}
@@ -1,14 +0,0 @@
1
- "use client";
2
- "use client";
3
-
4
- // src/components-core/collapsible.tsx
5
- import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
6
- var Collapsible = CollapsiblePrimitive.Root;
7
- var CollapsibleTrigger2 = CollapsiblePrimitive.CollapsibleTrigger;
8
- var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
9
- export {
10
- Collapsible,
11
- CollapsibleContent2 as CollapsibleContent,
12
- CollapsibleTrigger2 as CollapsibleTrigger
13
- };
14
- //# sourceMappingURL=collapsible.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components-core/collapsible.tsx"],"sourcesContent":["\"use client\";\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\n\nconst Collapsible = CollapsiblePrimitive.Root;\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n"],"mappings":";;;AAEA,YAAY,0BAA0B;AAEtC,IAAM,cAAmC;AACzC,IAAMA,sBAA0C;AAChD,IAAMC,sBAA0C;","names":["CollapsibleTrigger","CollapsibleContent"]}
@@ -1,36 +0,0 @@
1
- "use client";
2
- "use client";
3
-
4
- // src/components-core/container.tsx
5
- import { useDesign } from "../providers/design-provider";
6
- import styled from "styled-components";
7
- import { jsx } from "react/jsx-runtime";
8
- var OuterContainer = styled.div`
9
- display: flex;
10
- justify-content: center;
11
- width: 100%;
12
- `;
13
- var InnerContainer = styled.div`
14
- width: 100%;
15
- @media (min-width: ${(props) => props.$breakpoint}px) {
16
- width: ${(props) => props.$breakpoint}px;
17
- }
18
- `;
19
- function Container({
20
- size = "md",
21
- ...props
22
- }) {
23
- const { breakpoints } = useDesign();
24
- return /* @__PURE__ */ jsx(OuterContainer, { children: /* @__PURE__ */ jsx(
25
- InnerContainer,
26
- {
27
- $breakpoint: typeof size === "number" ? size : breakpoints[size],
28
- ...props,
29
- children: props.children
30
- }
31
- ) });
32
- }
33
- export {
34
- Container
35
- };
36
- //# sourceMappingURL=container.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components-core/container.tsx"],"sourcesContent":["'use client';\n\nimport { useDesign } from \"../providers/design-provider\";\nimport styled from 'styled-components';\n\ntype ContainerProps = {\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number,\n} & Omit<React.HTMLProps<HTMLDivElement>, 'size'>\n\nconst OuterContainer = styled.div`\n display: flex;\n justify-content: center;\n width: 100%;\n`;\n\nconst InnerContainer = styled.div<{ $breakpoint: number }>`\n width: 100%;\n @media (min-width: ${props => props.$breakpoint}px) {\n width: ${props => props.$breakpoint}px;\n }\n`;\n\nexport function Container({\n size='md',\n ...props\n} : ContainerProps) {\n const { breakpoints } = useDesign();\n return (\n <OuterContainer>\n <InnerContainer\n $breakpoint={typeof size === 'number' ? size : breakpoints[size]}\n {...props}\n >\n {props.children}\n </InnerContainer>\n </OuterContainer>\n );\n}"],"mappings":";;;AAEA,SAAS,iBAAiB;AAC1B,OAAO,YAAY;AA0Bb;AApBN,IAAM,iBAAiB,OAAO;AAAA;AAAA;AAAA;AAAA;AAM9B,IAAM,iBAAiB,OAAO;AAAA;AAAA,uBAEP,WAAS,MAAM,WAAW;AAAA,aACpC,WAAS,MAAM,WAAW;AAAA;AAAA;AAIhC,SAAS,UAAU;AAAA,EACxB,OAAK;AAAA,EACL,GAAG;AACL,GAAoB;AAClB,QAAM,EAAE,YAAY,IAAI,UAAU;AAClC,SACE,oBAAC,kBACC;AAAA,IAAC;AAAA;AAAA,MACC,aAAa,OAAO,SAAS,WAAW,OAAO,YAAY,IAAI;AAAA,MAC9D,GAAG;AAAA,MAEH,gBAAM;AAAA;AAAA,EACT,GACF;AAEJ;","names":[]}