@hexclave/next 1.0.3 → 1.0.5

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 (837) hide show
  1. package/dist/components/api-key-dialogs.d.ts +1 -1
  2. package/dist/components/api-key-dialogs.js.map +1 -1
  3. package/dist/components/api-key-table.d.ts +1 -1
  4. package/dist/components/api-key-table.js.map +1 -1
  5. package/dist/components/credential-sign-in.js.map +1 -1
  6. package/dist/components/credential-sign-up.js.map +1 -1
  7. package/dist/components/elements/form-warning.js.map +1 -1
  8. package/dist/components/elements/maybe-full-page.js.map +1 -1
  9. package/dist/components/elements/separator-with-text.js.map +1 -1
  10. package/dist/components/elements/sidebar-layout.js.map +1 -1
  11. package/dist/components/elements/ssr-layout-effect.js.map +1 -1
  12. package/dist/components/elements/user-avatar.js.map +1 -1
  13. package/dist/components/link.js.map +1 -1
  14. package/dist/components/magic-link-sign-in.js +2 -2
  15. package/dist/components/magic-link-sign-in.js.map +1 -1
  16. package/dist/components/message-cards/known-error-message-card.js +2 -2
  17. package/dist/components/message-cards/known-error-message-card.js.map +1 -1
  18. package/dist/components/message-cards/message-card.js.map +1 -1
  19. package/dist/components/message-cards/predefined-message-card.js +9 -9
  20. package/dist/components/message-cards/predefined-message-card.js.map +1 -1
  21. package/dist/components/oauth-button-group.js +2 -2
  22. package/dist/components/oauth-button-group.js.map +1 -1
  23. package/dist/components/oauth-button.js +2 -2
  24. package/dist/components/oauth-button.js.map +1 -1
  25. package/dist/components/passkey-button.js +2 -2
  26. package/dist/components/passkey-button.js.map +1 -1
  27. package/dist/components/profile-image-editor.js.map +1 -1
  28. package/dist/components/selected-team-switcher.d.ts +1 -1
  29. package/dist/components/selected-team-switcher.js.map +1 -1
  30. package/dist/components/team-icon.d.ts +1 -1
  31. package/dist/components/team-icon.js.map +1 -1
  32. package/dist/components/team-switcher.d.ts +1 -1
  33. package/dist/components/team-switcher.js.map +1 -1
  34. package/dist/components/use-in-iframe.js.map +1 -1
  35. package/dist/components/user-button.js.map +1 -1
  36. package/dist/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
  37. package/dist/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
  38. package/dist/components-page/account-settings/editable-text.js.map +1 -1
  39. package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  40. package/dist/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  41. package/dist/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  42. package/dist/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  43. package/dist/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  44. package/dist/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  45. package/dist/components-page/account-settings/notifications/notifications-page.js.map +1 -1
  46. package/dist/components-page/account-settings/page-layout.js.map +1 -1
  47. package/dist/components-page/account-settings/payments/payments-page.d.ts +1 -1
  48. package/dist/components-page/account-settings/payments/payments-page.js.map +1 -1
  49. package/dist/components-page/account-settings/payments/payments-panel.d.ts +1 -1
  50. package/dist/components-page/account-settings/payments/payments-panel.js +3 -3
  51. package/dist/components-page/account-settings/payments/payments-panel.js.map +1 -1
  52. package/dist/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  53. package/dist/components-page/account-settings/section.js.map +1 -1
  54. package/dist/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  55. package/dist/components-page/account-settings/settings/settings-page.js.map +1 -1
  56. package/dist/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  57. package/dist/components-page/account-settings/teams/leave-team-section.d.ts +1 -1
  58. package/dist/components-page/account-settings/teams/leave-team-section.js.map +1 -1
  59. package/dist/components-page/account-settings/teams/team-api-keys-section.d.ts +1 -1
  60. package/dist/components-page/account-settings/teams/team-api-keys-section.js.map +1 -1
  61. package/dist/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  62. package/dist/components-page/account-settings/teams/team-display-name-section.d.ts +1 -1
  63. package/dist/components-page/account-settings/teams/team-display-name-section.js.map +1 -1
  64. package/dist/components-page/account-settings/teams/team-member-invitation-section.d.ts +1 -1
  65. package/dist/components-page/account-settings/teams/team-member-invitation-section.js.map +1 -1
  66. package/dist/components-page/account-settings/teams/team-member-list-section.d.ts +1 -1
  67. package/dist/components-page/account-settings/teams/team-member-list-section.js.map +1 -1
  68. package/dist/components-page/account-settings/teams/team-page.d.ts +1 -1
  69. package/dist/components-page/account-settings/teams/team-page.js.map +1 -1
  70. package/dist/components-page/account-settings/teams/team-profile-image-section.d.ts +1 -1
  71. package/dist/components-page/account-settings/teams/team-profile-image-section.js.map +1 -1
  72. package/dist/components-page/account-settings/teams/team-profile-user-section.d.ts +1 -1
  73. package/dist/components-page/account-settings/teams/team-profile-user-section.js.map +1 -1
  74. package/dist/components-page/account-settings.js.map +1 -1
  75. package/dist/components-page/auth-page.d.ts.map +1 -1
  76. package/dist/components-page/auth-page.js +55 -10
  77. package/dist/components-page/auth-page.js.map +1 -1
  78. package/dist/components-page/cli-auth-confirm.js +3 -3
  79. package/dist/components-page/cli-auth-confirm.js.map +1 -1
  80. package/dist/components-page/cli-auth-confirm.test.js +4 -4
  81. package/dist/components-page/cli-auth-confirm.test.js.map +1 -1
  82. package/dist/components-page/email-verification.js +4 -4
  83. package/dist/components-page/email-verification.js.map +1 -1
  84. package/dist/components-page/error-page.js +9 -9
  85. package/dist/components-page/error-page.js.map +1 -1
  86. package/dist/components-page/forgot-password.js +4 -4
  87. package/dist/components-page/forgot-password.js.map +1 -1
  88. package/dist/components-page/{stack-handler-client.d.ts → hexclave-handler-client.d.ts} +4 -4
  89. package/dist/components-page/hexclave-handler-client.d.ts.map +1 -0
  90. package/dist/components-page/{stack-handler-client.js → hexclave-handler-client.js} +19 -18
  91. package/dist/components-page/hexclave-handler-client.js.map +1 -0
  92. package/dist/components-page/{stack-handler.d.ts → hexclave-handler.d.ts} +5 -5
  93. package/dist/components-page/hexclave-handler.d.ts.map +1 -0
  94. package/dist/components-page/{stack-handler.js → hexclave-handler.js} +4 -4
  95. package/dist/components-page/hexclave-handler.js.map +1 -0
  96. package/dist/components-page/magic-link-callback.js +7 -7
  97. package/dist/components-page/magic-link-callback.js.map +1 -1
  98. package/dist/components-page/mfa.js +4 -4
  99. package/dist/components-page/mfa.js.map +1 -1
  100. package/dist/components-page/oauth-callback.js +3 -3
  101. package/dist/components-page/oauth-callback.js.map +1 -1
  102. package/dist/components-page/onboarding.js +3 -3
  103. package/dist/components-page/onboarding.js.map +1 -1
  104. package/dist/components-page/password-reset.js +8 -8
  105. package/dist/components-page/password-reset.js.map +1 -1
  106. package/dist/components-page/sign-in.js.map +1 -1
  107. package/dist/components-page/sign-out.d.ts +1 -0
  108. package/dist/components-page/sign-out.d.ts.map +1 -1
  109. package/dist/components-page/sign-out.js +11 -5
  110. package/dist/components-page/sign-out.js.map +1 -1
  111. package/dist/components-page/sign-up.js.map +1 -1
  112. package/dist/components-page/team-creation.js.map +1 -1
  113. package/dist/components-page/team-invitation.js +16 -16
  114. package/dist/components-page/team-invitation.js.map +1 -1
  115. package/dist/dev-tool/dev-tool-core.d.ts +1 -1
  116. package/dist/dev-tool/dev-tool-core.js +11 -11
  117. package/dist/dev-tool/dev-tool-core.js.map +1 -1
  118. package/dist/dev-tool/dev-tool-styles.d.ts +1 -1
  119. package/dist/dev-tool/dev-tool-styles.js +371 -371
  120. package/dist/dev-tool/dev-tool-styles.js.map +1 -1
  121. package/dist/dev-tool/dev-tool-trigger-position.js.map +1 -1
  122. package/dist/dev-tool/dev-tool-trigger-position.test.js.map +1 -1
  123. package/dist/dev-tool/index.d.ts +4 -4
  124. package/dist/dev-tool/index.js +4 -4
  125. package/dist/dev-tool/index.js.map +1 -1
  126. package/dist/esm/components/api-key-dialogs.d.ts +1 -1
  127. package/dist/esm/components/api-key-dialogs.js.map +1 -1
  128. package/dist/esm/components/api-key-table.d.ts +1 -1
  129. package/dist/esm/components/api-key-table.js.map +1 -1
  130. package/dist/esm/components/credential-sign-in.js.map +1 -1
  131. package/dist/esm/components/credential-sign-up.js.map +1 -1
  132. package/dist/esm/components/elements/form-warning.js.map +1 -1
  133. package/dist/esm/components/elements/maybe-full-page.js.map +1 -1
  134. package/dist/esm/components/elements/separator-with-text.js.map +1 -1
  135. package/dist/esm/components/elements/sidebar-layout.js.map +1 -1
  136. package/dist/esm/components/elements/ssr-layout-effect.js.map +1 -1
  137. package/dist/esm/components/elements/user-avatar.js.map +1 -1
  138. package/dist/esm/components/link.js.map +1 -1
  139. package/dist/esm/components/magic-link-sign-in.js +2 -2
  140. package/dist/esm/components/magic-link-sign-in.js.map +1 -1
  141. package/dist/esm/components/message-cards/known-error-message-card.js +2 -2
  142. package/dist/esm/components/message-cards/known-error-message-card.js.map +1 -1
  143. package/dist/esm/components/message-cards/message-card.js.map +1 -1
  144. package/dist/esm/components/message-cards/predefined-message-card.js +9 -9
  145. package/dist/esm/components/message-cards/predefined-message-card.js.map +1 -1
  146. package/dist/esm/components/oauth-button-group.js +2 -2
  147. package/dist/esm/components/oauth-button-group.js.map +1 -1
  148. package/dist/esm/components/oauth-button.js +2 -2
  149. package/dist/esm/components/oauth-button.js.map +1 -1
  150. package/dist/esm/components/passkey-button.js +2 -2
  151. package/dist/esm/components/passkey-button.js.map +1 -1
  152. package/dist/esm/components/profile-image-editor.js.map +1 -1
  153. package/dist/esm/components/selected-team-switcher.js.map +1 -1
  154. package/dist/esm/components/team-icon.js.map +1 -1
  155. package/dist/esm/components/team-switcher.js.map +1 -1
  156. package/dist/esm/components/use-in-iframe.js.map +1 -1
  157. package/dist/esm/components/user-button.js.map +1 -1
  158. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
  159. package/dist/esm/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
  160. package/dist/esm/components-page/account-settings/editable-text.js.map +1 -1
  161. package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  162. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  163. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  164. package/dist/esm/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  165. package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  166. package/dist/esm/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  167. package/dist/esm/components-page/account-settings/notifications/notifications-page.js.map +1 -1
  168. package/dist/esm/components-page/account-settings/page-layout.js.map +1 -1
  169. package/dist/esm/components-page/account-settings/payments/payments-page.js.map +1 -1
  170. package/dist/esm/components-page/account-settings/payments/payments-panel.d.ts +1 -1
  171. package/dist/esm/components-page/account-settings/payments/payments-panel.js +3 -3
  172. package/dist/esm/components-page/account-settings/payments/payments-panel.js.map +1 -1
  173. package/dist/esm/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  174. package/dist/esm/components-page/account-settings/section.js.map +1 -1
  175. package/dist/esm/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  176. package/dist/esm/components-page/account-settings/settings/settings-page.js.map +1 -1
  177. package/dist/esm/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  178. package/dist/esm/components-page/account-settings/teams/leave-team-section.js.map +1 -1
  179. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.d.ts +1 -1
  180. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.js.map +1 -1
  181. package/dist/esm/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  182. package/dist/esm/components-page/account-settings/teams/team-display-name-section.js.map +1 -1
  183. package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.js.map +1 -1
  184. package/dist/esm/components-page/account-settings/teams/team-member-list-section.js.map +1 -1
  185. package/dist/esm/components-page/account-settings/teams/team-page.js.map +1 -1
  186. package/dist/esm/components-page/account-settings/teams/team-profile-image-section.js.map +1 -1
  187. package/dist/esm/components-page/account-settings/teams/team-profile-user-section.js.map +1 -1
  188. package/dist/esm/components-page/account-settings.js.map +1 -1
  189. package/dist/esm/components-page/auth-page.d.ts.map +1 -1
  190. package/dist/esm/components-page/auth-page.js +56 -11
  191. package/dist/esm/components-page/auth-page.js.map +1 -1
  192. package/dist/esm/components-page/cli-auth-confirm.js +3 -3
  193. package/dist/esm/components-page/cli-auth-confirm.js.map +1 -1
  194. package/dist/esm/components-page/cli-auth-confirm.test.js +4 -4
  195. package/dist/esm/components-page/cli-auth-confirm.test.js.map +1 -1
  196. package/dist/esm/components-page/email-verification.js +4 -4
  197. package/dist/esm/components-page/email-verification.js.map +1 -1
  198. package/dist/esm/components-page/error-page.js +9 -9
  199. package/dist/esm/components-page/error-page.js.map +1 -1
  200. package/dist/esm/components-page/forgot-password.js +4 -4
  201. package/dist/esm/components-page/forgot-password.js.map +1 -1
  202. package/dist/esm/components-page/{stack-handler-client.d.ts → hexclave-handler-client.d.ts} +4 -4
  203. package/dist/esm/components-page/hexclave-handler-client.d.ts.map +1 -0
  204. package/dist/esm/components-page/{stack-handler-client.js → hexclave-handler-client.js} +17 -16
  205. package/dist/esm/components-page/hexclave-handler-client.js.map +1 -0
  206. package/dist/esm/components-page/{stack-handler.d.ts → hexclave-handler.d.ts} +5 -5
  207. package/dist/esm/components-page/hexclave-handler.d.ts.map +1 -0
  208. package/dist/esm/components-page/{stack-handler.js → hexclave-handler.js} +4 -4
  209. package/dist/esm/components-page/hexclave-handler.js.map +1 -0
  210. package/dist/esm/components-page/magic-link-callback.js +7 -7
  211. package/dist/esm/components-page/magic-link-callback.js.map +1 -1
  212. package/dist/esm/components-page/mfa.js +4 -4
  213. package/dist/esm/components-page/mfa.js.map +1 -1
  214. package/dist/esm/components-page/oauth-callback.js +3 -3
  215. package/dist/esm/components-page/oauth-callback.js.map +1 -1
  216. package/dist/esm/components-page/onboarding.js +3 -3
  217. package/dist/esm/components-page/onboarding.js.map +1 -1
  218. package/dist/esm/components-page/password-reset.js +8 -8
  219. package/dist/esm/components-page/password-reset.js.map +1 -1
  220. package/dist/esm/components-page/sign-in.js.map +1 -1
  221. package/dist/esm/components-page/sign-out.d.ts +1 -0
  222. package/dist/esm/components-page/sign-out.d.ts.map +1 -1
  223. package/dist/esm/components-page/sign-out.js +11 -5
  224. package/dist/esm/components-page/sign-out.js.map +1 -1
  225. package/dist/esm/components-page/sign-up.js.map +1 -1
  226. package/dist/esm/components-page/team-creation.js.map +1 -1
  227. package/dist/esm/components-page/team-invitation.js +16 -16
  228. package/dist/esm/components-page/team-invitation.js.map +1 -1
  229. package/dist/esm/dev-tool/dev-tool-core.d.ts +1 -1
  230. package/dist/esm/dev-tool/dev-tool-core.js +10 -10
  231. package/dist/esm/dev-tool/dev-tool-core.js.map +1 -1
  232. package/dist/esm/dev-tool/dev-tool-styles.d.ts +1 -1
  233. package/dist/esm/dev-tool/dev-tool-styles.js +371 -371
  234. package/dist/esm/dev-tool/dev-tool-styles.js.map +1 -1
  235. package/dist/esm/dev-tool/dev-tool-trigger-position.js.map +1 -1
  236. package/dist/esm/dev-tool/dev-tool-trigger-position.test.js.map +1 -1
  237. package/dist/esm/dev-tool/index.d.ts +4 -4
  238. package/dist/esm/dev-tool/index.js +4 -4
  239. package/dist/esm/dev-tool/index.js.map +1 -1
  240. package/dist/esm/generated/global-css.d.ts +1 -1
  241. package/dist/esm/generated/global-css.js +1 -1
  242. package/dist/esm/generated/global-css.js.map +1 -1
  243. package/dist/esm/generated/quetzal-translations.js.map +1 -1
  244. package/dist/esm/index.d.ts +4 -4
  245. package/dist/esm/index.js +3 -3
  246. package/dist/esm/integrations/convex/component/convex.config.js.map +1 -1
  247. package/dist/esm/integrations/convex.js +1 -1
  248. package/dist/esm/integrations/convex.js.map +1 -1
  249. package/dist/esm/lib/auth.js.map +1 -1
  250. package/dist/esm/lib/auth.test.js.map +1 -1
  251. package/dist/esm/lib/cookie.js +2 -2
  252. package/dist/esm/lib/cookie.js.map +1 -1
  253. package/dist/esm/lib/env.js.map +1 -1
  254. package/dist/{lib/stack-app → esm/lib/hexclave-app}/api-keys/index.d.ts +2 -2
  255. package/dist/esm/lib/hexclave-app/api-keys/index.d.ts.map +1 -0
  256. package/dist/esm/lib/{stack-app → hexclave-app}/api-keys/index.js +1 -1
  257. package/dist/esm/lib/hexclave-app/api-keys/index.js.map +1 -0
  258. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.d.ts +6 -6
  259. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -0
  260. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.js +7 -7
  261. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -0
  262. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.cross-domain.test.js +2 -2
  263. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -0
  264. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.d.ts +13 -13
  265. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -0
  266. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.js +23 -30
  267. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -0
  268. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.js +1 -1
  269. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +1 -0
  270. package/dist/{lib/stack-app → esm/lib/hexclave-app}/apps/implementations/common.d.ts +4 -4
  271. package/dist/esm/lib/hexclave-app/apps/implementations/common.d.ts.map +1 -0
  272. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/common.js +7 -7
  273. package/dist/esm/lib/hexclave-app/apps/implementations/common.js.map +1 -0
  274. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.d.ts +1 -1
  275. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.d.ts.map +1 -0
  276. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.js +1 -1
  277. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -0
  278. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.js +1 -1
  279. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -0
  280. package/dist/esm/lib/hexclave-app/apps/implementations/index.d.ts +9 -0
  281. package/dist/esm/lib/hexclave-app/apps/implementations/index.d.ts.map +1 -0
  282. package/dist/esm/lib/hexclave-app/apps/implementations/index.js +27 -0
  283. package/dist/esm/lib/hexclave-app/apps/implementations/index.js.map +1 -0
  284. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.d.ts +1 -1
  285. package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts.map +1 -0
  286. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.js +1 -1
  287. package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.js.map +1 -0
  288. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.d.ts +4 -4
  289. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.d.ts.map +1 -0
  290. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.js +6 -6
  291. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -0
  292. package/dist/{lib/stack-app → esm/lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts +1 -1
  293. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.d.ts.map +1 -0
  294. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.js +1 -1
  295. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.js.map +1 -0
  296. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.js +1 -1
  297. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js.map +1 -0
  298. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.d.ts +1 -1
  299. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.d.ts.map +1 -0
  300. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.js +1 -1
  301. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.js.map +1 -0
  302. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.js +1 -1
  303. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.test.js.map +1 -0
  304. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.d.ts +1 -1
  305. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.d.ts.map +1 -0
  306. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.js +3 -3
  307. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -0
  308. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.d.ts +4 -4
  309. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.d.ts.map +1 -0
  310. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.js +3 -3
  311. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -0
  312. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.d.ts +1 -1
  313. package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.d.ts.map +1 -0
  314. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.js +3 -3
  315. package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.js.map +1 -0
  316. package/dist/esm/lib/{stack-app → hexclave-app}/common.d.ts +7 -7
  317. package/dist/esm/lib/hexclave-app/common.d.ts.map +1 -0
  318. package/dist/esm/lib/hexclave-app/common.js +7 -0
  319. package/dist/esm/lib/hexclave-app/common.js.map +1 -0
  320. package/dist/esm/lib/{stack-app → hexclave-app}/connected-accounts/index.d.ts +1 -1
  321. package/dist/esm/lib/hexclave-app/connected-accounts/index.d.ts.map +1 -0
  322. package/dist/esm/lib/{stack-app → hexclave-app}/contact-channels/index.d.ts +1 -1
  323. package/dist/esm/lib/hexclave-app/contact-channels/index.d.ts.map +1 -0
  324. package/dist/esm/lib/{stack-app → hexclave-app}/contact-channels/index.js +1 -1
  325. package/dist/esm/lib/hexclave-app/contact-channels/index.js.map +1 -0
  326. package/dist/esm/lib/{stack-app → hexclave-app}/customers/index.d.ts +1 -1
  327. package/dist/esm/lib/hexclave-app/customers/index.d.ts.map +1 -0
  328. package/dist/esm/lib/{stack-app → hexclave-app}/data-vault/index.d.ts +1 -1
  329. package/dist/esm/lib/hexclave-app/data-vault/index.d.ts.map +1 -0
  330. package/dist/{lib/stack-app → esm/lib/hexclave-app}/email/index.d.ts +1 -1
  331. package/dist/esm/lib/hexclave-app/email/index.d.ts.map +1 -0
  332. package/dist/{lib/stack-app → esm/lib/hexclave-app}/email-templates/index.d.ts +1 -1
  333. package/dist/esm/lib/hexclave-app/email-templates/index.d.ts.map +1 -0
  334. package/dist/esm/lib/{stack-app → hexclave-app}/email-templates/index.js +1 -1
  335. package/dist/esm/lib/hexclave-app/email-templates/index.js.map +1 -0
  336. package/dist/esm/lib/{stack-app → hexclave-app}/index.d.ts +2 -2
  337. package/dist/esm/lib/{stack-app → hexclave-app}/index.js +2 -2
  338. package/dist/{lib/stack-app → esm/lib/hexclave-app}/internal-api-keys/index.d.ts +1 -1
  339. package/dist/esm/lib/hexclave-app/internal-api-keys/index.d.ts.map +1 -0
  340. package/dist/esm/lib/{stack-app → hexclave-app}/internal-api-keys/index.js +1 -1
  341. package/dist/esm/lib/hexclave-app/internal-api-keys/index.js.map +1 -0
  342. package/dist/{lib/stack-app → esm/lib/hexclave-app}/notification-categories/index.d.ts +1 -1
  343. package/dist/esm/lib/hexclave-app/notification-categories/index.d.ts.map +1 -0
  344. package/dist/{lib/stack-app → esm/lib/hexclave-app}/permissions/index.d.ts +1 -1
  345. package/dist/esm/lib/hexclave-app/permissions/index.d.ts.map +1 -0
  346. package/dist/esm/lib/{stack-app → hexclave-app}/permissions/index.js +1 -1
  347. package/dist/esm/lib/hexclave-app/permissions/index.js.map +1 -0
  348. package/dist/esm/lib/{stack-app → hexclave-app}/project-configs/index.d.ts +1 -1
  349. package/dist/esm/lib/hexclave-app/project-configs/index.d.ts.map +1 -0
  350. package/dist/esm/lib/{stack-app → hexclave-app}/projects/index.d.ts +1 -1
  351. package/dist/esm/lib/hexclave-app/projects/index.d.ts.map +1 -0
  352. package/dist/esm/lib/{stack-app → hexclave-app}/projects/index.js +1 -1
  353. package/dist/esm/lib/hexclave-app/projects/index.js.map +1 -0
  354. package/dist/{lib/stack-app → esm/lib/hexclave-app}/session-replays/index.d.ts +1 -1
  355. package/dist/esm/lib/hexclave-app/session-replays/index.d.ts.map +1 -0
  356. package/dist/esm/lib/{stack-app → hexclave-app}/teams/index.d.ts +1 -1
  357. package/dist/esm/lib/hexclave-app/teams/index.d.ts.map +1 -0
  358. package/dist/esm/lib/{stack-app → hexclave-app}/teams/index.js +1 -1
  359. package/dist/esm/lib/hexclave-app/teams/index.js.map +1 -0
  360. package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.d.ts +1 -1
  361. package/dist/esm/lib/hexclave-app/url-targets.d.ts.map +1 -0
  362. package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.js +2 -2
  363. package/dist/esm/lib/hexclave-app/url-targets.js.map +1 -0
  364. package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.test.js +1 -1
  365. package/dist/esm/lib/hexclave-app/url-targets.test.js.map +1 -0
  366. package/dist/esm/lib/{stack-app → hexclave-app}/users/index.d.ts +1 -1
  367. package/dist/esm/lib/hexclave-app/users/index.d.ts.map +1 -0
  368. package/dist/esm/lib/{stack-app → hexclave-app}/users/index.js +1 -1
  369. package/dist/esm/lib/hexclave-app/users/index.js.map +1 -0
  370. package/dist/esm/lib/hooks.d.ts +1 -1
  371. package/dist/esm/lib/hooks.js +9 -9
  372. package/dist/esm/lib/hooks.js.map +1 -1
  373. package/dist/esm/lib/translations.js.map +1 -1
  374. package/dist/esm/providers/hexclave-context.d.ts +11 -0
  375. package/dist/esm/providers/hexclave-context.d.ts.map +1 -0
  376. package/dist/esm/providers/hexclave-context.js +12 -0
  377. package/dist/esm/providers/hexclave-context.js.map +1 -0
  378. package/dist/esm/providers/{stack-provider-client.d.ts → hexclave-provider-client.d.ts} +5 -5
  379. package/dist/esm/providers/hexclave-provider-client.d.ts.map +1 -0
  380. package/dist/esm/providers/hexclave-provider-client.js +30 -0
  381. package/dist/esm/providers/hexclave-provider-client.js.map +1 -0
  382. package/dist/esm/providers/{stack-provider.d.ts → hexclave-provider.d.ts} +3 -3
  383. package/dist/esm/providers/hexclave-provider.d.ts.map +1 -0
  384. package/dist/esm/providers/{stack-provider.js → hexclave-provider.js} +6 -6
  385. package/dist/esm/providers/hexclave-provider.js.map +1 -0
  386. package/dist/esm/providers/theme-provider.js.map +1 -1
  387. package/dist/esm/providers/translation-provider-client.js.map +1 -1
  388. package/dist/esm/providers/translation-provider.js.map +1 -1
  389. package/dist/esm/tanstack-start-server-context.d.ts +1 -1
  390. package/dist/esm/utils/browser-script.js.map +1 -1
  391. package/dist/esm/utils/constants.js.map +1 -1
  392. package/dist/esm/utils/url.js.map +1 -1
  393. package/dist/generated/global-css.d.ts +1 -1
  394. package/dist/generated/global-css.js +1 -1
  395. package/dist/generated/global-css.js.map +1 -1
  396. package/dist/generated/quetzal-translations.js.map +1 -1
  397. package/dist/index.d.ts +18 -18
  398. package/dist/index.js +9 -9
  399. package/dist/integrations/convex/component/convex.config.d.ts +2 -2
  400. package/dist/integrations/convex/component/convex.config.d.ts.map +1 -1
  401. package/dist/integrations/convex/component/convex.config.js.map +1 -1
  402. package/dist/integrations/convex.js +2 -2
  403. package/dist/integrations/convex.js.map +1 -1
  404. package/dist/lib/auth.js.map +1 -1
  405. package/dist/lib/auth.test.js.map +1 -1
  406. package/dist/lib/cookie.js +2 -2
  407. package/dist/lib/cookie.js.map +1 -1
  408. package/dist/lib/env.js.map +1 -1
  409. package/dist/{esm/lib/stack-app → lib/hexclave-app}/api-keys/index.d.ts +2 -2
  410. package/dist/{esm/lib/stack-app → lib/hexclave-app}/api-keys/index.d.ts.map +1 -1
  411. package/dist/lib/{stack-app → hexclave-app}/api-keys/index.js +1 -1
  412. package/dist/lib/hexclave-app/api-keys/index.js.map +1 -0
  413. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.d.ts +6 -6
  414. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -0
  415. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.js +5 -5
  416. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -0
  417. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.cross-domain.test.js +2 -2
  418. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -0
  419. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.d.ts +13 -13
  420. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -0
  421. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.js +22 -29
  422. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -0
  423. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.js +1 -1
  424. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +1 -0
  425. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/common.d.ts +4 -4
  426. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/common.d.ts.map +1 -1
  427. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/common.js +6 -6
  428. package/dist/lib/hexclave-app/apps/implementations/common.js.map +1 -0
  429. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.d.ts +1 -1
  430. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/event-tracker.d.ts.map +1 -1
  431. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.js +1 -1
  432. package/dist/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -0
  433. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.js +1 -1
  434. package/dist/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -0
  435. package/dist/lib/hexclave-app/apps/implementations/index.d.ts +9 -0
  436. package/dist/lib/hexclave-app/apps/implementations/index.d.ts.map +1 -0
  437. package/dist/lib/hexclave-app/apps/implementations/index.js +31 -0
  438. package/dist/lib/hexclave-app/apps/implementations/index.js.map +1 -0
  439. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.d.ts +1 -1
  440. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/redirect-page-urls.d.ts.map +1 -1
  441. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.js +1 -1
  442. package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.js.map +1 -0
  443. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.d.ts +4 -4
  444. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/server-app-impl.d.ts.map +1 -1
  445. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.js +5 -5
  446. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -0
  447. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts +1 -1
  448. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts.map +1 -1
  449. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.js +1 -1
  450. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.js.map +1 -0
  451. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.js +1 -1
  452. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js.map +1 -0
  453. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.d.ts +1 -1
  454. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-replay.d.ts.map +1 -1
  455. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.js +1 -1
  456. package/dist/lib/hexclave-app/apps/implementations/session-replay.js.map +1 -0
  457. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.js +1 -1
  458. package/dist/lib/hexclave-app/apps/implementations/session-replay.test.js.map +1 -0
  459. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.d.ts +1 -1
  460. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/admin-app.d.ts.map +1 -1
  461. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.js +2 -2
  462. package/dist/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -0
  463. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.d.ts +4 -4
  464. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/client-app.d.ts.map +1 -1
  465. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.js +2 -2
  466. package/dist/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -0
  467. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.d.ts +2 -2
  468. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/server-app.d.ts.map +1 -1
  469. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.js +2 -2
  470. package/dist/lib/hexclave-app/apps/interfaces/server-app.js.map +1 -0
  471. package/dist/lib/{stack-app → hexclave-app}/common.d.ts +8 -8
  472. package/dist/{esm/lib/stack-app → lib/hexclave-app}/common.d.ts.map +1 -1
  473. package/dist/lib/hexclave-app/common.js +9 -0
  474. package/dist/lib/hexclave-app/common.js.map +1 -0
  475. package/dist/lib/{stack-app → hexclave-app}/connected-accounts/index.d.ts +1 -1
  476. package/dist/{esm/lib/stack-app → lib/hexclave-app}/connected-accounts/index.d.ts.map +1 -1
  477. package/dist/lib/{stack-app → hexclave-app}/contact-channels/index.d.ts +1 -1
  478. package/dist/{esm/lib/stack-app → lib/hexclave-app}/contact-channels/index.d.ts.map +1 -1
  479. package/dist/lib/{stack-app → hexclave-app}/contact-channels/index.js +1 -1
  480. package/dist/lib/hexclave-app/contact-channels/index.js.map +1 -0
  481. package/dist/lib/{stack-app → hexclave-app}/customers/index.d.ts +1 -1
  482. package/dist/{esm/lib/stack-app → lib/hexclave-app}/customers/index.d.ts.map +1 -1
  483. package/dist/lib/{stack-app → hexclave-app}/data-vault/index.d.ts +1 -1
  484. package/dist/{esm/lib/stack-app → lib/hexclave-app}/data-vault/index.d.ts.map +1 -1
  485. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email/index.d.ts +1 -1
  486. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email/index.d.ts.map +1 -1
  487. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email-templates/index.d.ts +1 -1
  488. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email-templates/index.d.ts.map +1 -1
  489. package/dist/lib/{stack-app → hexclave-app}/email-templates/index.js +1 -1
  490. package/dist/lib/hexclave-app/email-templates/index.js.map +1 -0
  491. package/dist/lib/{stack-app → hexclave-app}/index.d.ts +2 -2
  492. package/dist/lib/{stack-app → hexclave-app}/index.js +2 -2
  493. package/dist/{esm/lib/stack-app → lib/hexclave-app}/internal-api-keys/index.d.ts +1 -1
  494. package/dist/{esm/lib/stack-app → lib/hexclave-app}/internal-api-keys/index.d.ts.map +1 -1
  495. package/dist/lib/{stack-app → hexclave-app}/internal-api-keys/index.js +1 -1
  496. package/dist/lib/hexclave-app/internal-api-keys/index.js.map +1 -0
  497. package/dist/{esm/lib/stack-app → lib/hexclave-app}/notification-categories/index.d.ts +1 -1
  498. package/dist/{esm/lib/stack-app → lib/hexclave-app}/notification-categories/index.d.ts.map +1 -1
  499. package/dist/{esm/lib/stack-app → lib/hexclave-app}/permissions/index.d.ts +1 -1
  500. package/dist/{esm/lib/stack-app → lib/hexclave-app}/permissions/index.d.ts.map +1 -1
  501. package/dist/lib/{stack-app → hexclave-app}/permissions/index.js +1 -1
  502. package/dist/lib/hexclave-app/permissions/index.js.map +1 -0
  503. package/dist/lib/{stack-app → hexclave-app}/project-configs/index.d.ts +1 -1
  504. package/dist/{esm/lib/stack-app → lib/hexclave-app}/project-configs/index.d.ts.map +1 -1
  505. package/dist/lib/{stack-app → hexclave-app}/projects/index.d.ts +1 -1
  506. package/dist/{esm/lib/stack-app → lib/hexclave-app}/projects/index.d.ts.map +1 -1
  507. package/dist/lib/{stack-app → hexclave-app}/projects/index.js +1 -1
  508. package/dist/lib/hexclave-app/projects/index.js.map +1 -0
  509. package/dist/{esm/lib/stack-app → lib/hexclave-app}/session-replays/index.d.ts +1 -1
  510. package/dist/{esm/lib/stack-app → lib/hexclave-app}/session-replays/index.d.ts.map +1 -1
  511. package/dist/lib/{stack-app → hexclave-app}/teams/index.d.ts +1 -1
  512. package/dist/{esm/lib/stack-app → lib/hexclave-app}/teams/index.d.ts.map +1 -1
  513. package/dist/lib/{stack-app → hexclave-app}/teams/index.js +1 -1
  514. package/dist/lib/hexclave-app/teams/index.js.map +1 -0
  515. package/dist/lib/{stack-app → hexclave-app}/url-targets.d.ts +1 -1
  516. package/dist/{esm/lib/stack-app → lib/hexclave-app}/url-targets.d.ts.map +1 -1
  517. package/dist/lib/{stack-app → hexclave-app}/url-targets.js +2 -2
  518. package/dist/lib/hexclave-app/url-targets.js.map +1 -0
  519. package/dist/lib/{stack-app → hexclave-app}/url-targets.test.js +1 -1
  520. package/dist/lib/hexclave-app/url-targets.test.js.map +1 -0
  521. package/dist/lib/{stack-app → hexclave-app}/users/index.d.ts +1 -1
  522. package/dist/{esm/lib/stack-app → lib/hexclave-app}/users/index.d.ts.map +1 -1
  523. package/dist/lib/{stack-app → hexclave-app}/users/index.js +1 -1
  524. package/dist/lib/hexclave-app/users/index.js.map +1 -0
  525. package/dist/lib/hooks.d.ts +3 -3
  526. package/dist/lib/hooks.d.ts.map +1 -1
  527. package/dist/lib/hooks.js +9 -9
  528. package/dist/lib/hooks.js.map +1 -1
  529. package/dist/lib/translations.js.map +1 -1
  530. package/dist/providers/hexclave-context.d.ts +11 -0
  531. package/dist/providers/hexclave-context.d.ts.map +1 -0
  532. package/dist/providers/hexclave-context.js +15 -0
  533. package/dist/providers/hexclave-context.js.map +1 -0
  534. package/dist/providers/{stack-provider-client.d.ts → hexclave-provider-client.d.ts} +5 -5
  535. package/dist/providers/hexclave-provider-client.d.ts.map +1 -0
  536. package/dist/providers/{stack-provider-client.js → hexclave-provider-client.js} +9 -9
  537. package/dist/providers/hexclave-provider-client.js.map +1 -0
  538. package/dist/providers/{stack-provider.d.ts → hexclave-provider.d.ts} +5 -5
  539. package/dist/providers/hexclave-provider.d.ts.map +1 -0
  540. package/dist/providers/{stack-provider.js → hexclave-provider.js} +6 -6
  541. package/dist/providers/hexclave-provider.js.map +1 -0
  542. package/dist/providers/theme-provider.js.map +1 -1
  543. package/dist/providers/translation-provider-client.js.map +1 -1
  544. package/dist/providers/translation-provider.js.map +1 -1
  545. package/dist/{storage-kTmOAWHW.d.ts → storage-CKzvsBxG.d.ts} +18 -18
  546. package/dist/{storage-kTmOAWHW.d.ts.map → storage-CKzvsBxG.d.ts.map} +1 -1
  547. package/dist/tanstack-start-server-context.d.ts +1 -1
  548. package/dist/utils/browser-script.js.map +1 -1
  549. package/dist/utils/constants.js.map +1 -1
  550. package/dist/utils/url.js.map +1 -1
  551. package/package.json +6 -5
  552. package/src/components/api-key-dialogs.tsx +173 -0
  553. package/src/components/api-key-table.tsx +127 -0
  554. package/src/components/credential-sign-in.tsx +83 -0
  555. package/src/components/credential-sign-up.tsx +108 -0
  556. package/src/components/elements/form-warning.tsx +17 -0
  557. package/src/components/elements/maybe-full-page.tsx +60 -0
  558. package/src/components/elements/separator-with-text.tsx +22 -0
  559. package/src/components/elements/sidebar-layout.tsx +136 -0
  560. package/src/components/elements/ssr-layout-effect.tsx +24 -0
  561. package/src/components/elements/user-avatar.tsx +32 -0
  562. package/src/components/link.tsx +40 -0
  563. package/src/components/magic-link-sign-in.tsx +143 -0
  564. package/src/components/message-cards/known-error-message-card.tsx +33 -0
  565. package/src/components/message-cards/message-card.tsx +46 -0
  566. package/src/components/message-cards/predefined-message-card.tsx +88 -0
  567. package/src/components/oauth-button-group.tsx +35 -0
  568. package/src/components/oauth-button.tsx +222 -0
  569. package/src/components/passkey-button.tsx +43 -0
  570. package/src/components/profile-image-editor.tsx +194 -0
  571. package/src/components/selected-team-switcher.tsx +97 -0
  572. package/src/components/team-icon.tsx +30 -0
  573. package/src/components/team-switcher.tsx +191 -0
  574. package/src/components/use-in-iframe.tsx +18 -0
  575. package/src/components/user-button.tsx +157 -0
  576. package/src/components-page/account-settings/active-sessions/active-sessions-page.tsx +238 -0
  577. package/src/components-page/account-settings/api-keys/api-keys-page.tsx +157 -0
  578. package/src/components-page/account-settings/editable-text.tsx +53 -0
  579. package/src/components-page/account-settings/email-and-auth/email-and-auth-page.tsx +24 -0
  580. package/src/components-page/account-settings/email-and-auth/emails-section.tsx +201 -0
  581. package/src/components-page/account-settings/email-and-auth/mfa-section.tsx +139 -0
  582. package/src/components-page/account-settings/email-and-auth/otp-section.tsx +102 -0
  583. package/src/components-page/account-settings/email-and-auth/passkey-section.tsx +112 -0
  584. package/src/components-page/account-settings/email-and-auth/password-section.tsx +174 -0
  585. package/src/components-page/account-settings/notifications/notifications-page.tsx +44 -0
  586. package/src/components-page/account-settings/page-layout.tsx +11 -0
  587. package/src/components-page/account-settings/payments/payments-page.tsx +73 -0
  588. package/src/components-page/account-settings/payments/payments-panel.tsx +543 -0
  589. package/src/components-page/account-settings/profile-page/profile-page.tsx +61 -0
  590. package/src/components-page/account-settings/section.tsx +26 -0
  591. package/src/components-page/account-settings/settings/delete-account-section.tsx +85 -0
  592. package/src/components-page/account-settings/settings/settings-page.tsx +19 -0
  593. package/src/components-page/account-settings/settings/sign-out-section.tsx +40 -0
  594. package/src/components-page/account-settings/teams/leave-team-section.tsx +57 -0
  595. package/src/components-page/account-settings/teams/team-api-keys-section.tsx +74 -0
  596. package/src/components-page/account-settings/teams/team-creation-page.tsx +92 -0
  597. package/src/components-page/account-settings/teams/team-display-name-section.tsx +31 -0
  598. package/src/components-page/account-settings/teams/team-member-invitation-section.tsx +128 -0
  599. package/src/components-page/account-settings/teams/team-member-list-section.tsx +59 -0
  600. package/src/components-page/account-settings/teams/team-page.tsx +28 -0
  601. package/src/components-page/account-settings/teams/team-profile-image-section.tsx +33 -0
  602. package/src/components-page/account-settings/teams/team-profile-user-section.tsx +29 -0
  603. package/src/components-page/account-settings.tsx +343 -0
  604. package/src/components-page/auth-page.tsx +206 -0
  605. package/src/components-page/cli-auth-confirm.test.tsx +204 -0
  606. package/src/components-page/cli-auth-confirm.tsx +278 -0
  607. package/src/components-page/email-verification.tsx +76 -0
  608. package/src/components-page/error-page.tsx +105 -0
  609. package/src/components-page/forgot-password.tsx +105 -0
  610. package/src/components-page/hexclave-handler-client.tsx +325 -0
  611. package/src/components-page/hexclave-handler.tsx +48 -0
  612. package/src/components-page/magic-link-callback.tsx +92 -0
  613. package/src/components-page/mfa.tsx +222 -0
  614. package/src/components-page/oauth-callback.tsx +78 -0
  615. package/src/components-page/onboarding.tsx +176 -0
  616. package/src/components-page/password-reset.tsx +185 -0
  617. package/src/components-page/section.tsx +27 -0
  618. package/src/components-page/sign-in.tsx +34 -0
  619. package/src/components-page/sign-out.tsx +37 -0
  620. package/src/components-page/sign-up.tsx +24 -0
  621. package/src/components-page/team-creation.tsx +78 -0
  622. package/src/components-page/team-invitation.tsx +150 -0
  623. package/src/dev-tool/dev-tool-core.ts +2460 -0
  624. package/src/dev-tool/dev-tool-styles.ts +2758 -0
  625. package/src/dev-tool/dev-tool-trigger-position.test.ts +113 -0
  626. package/src/dev-tool/dev-tool-trigger-position.ts +109 -0
  627. package/src/dev-tool/index.ts +149 -0
  628. package/src/generated/.gitignore +3 -0
  629. package/src/generated/quetzal-translations.ts +4312 -0
  630. package/src/global.css +13 -0
  631. package/src/global.d.ts +5 -0
  632. package/src/index.ts +39 -0
  633. package/src/integrations/convex/component/README.md +74 -0
  634. package/src/integrations/convex/component/convex.config.ts +9 -0
  635. package/src/integrations/convex.ts +28 -0
  636. package/src/lib/auth.test.ts +67 -0
  637. package/src/lib/auth.ts +175 -0
  638. package/src/lib/cookie.ts +421 -0
  639. package/src/lib/env.ts +93 -0
  640. package/src/lib/hexclave-app/api-keys/index.ts +73 -0
  641. package/src/lib/hexclave-app/apps/implementations/admin-app-impl.ts +1261 -0
  642. package/src/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.ts +141 -0
  643. package/src/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.ts +36 -0
  644. package/src/lib/hexclave-app/apps/implementations/client-app-impl.ts +3912 -0
  645. package/src/lib/hexclave-app/apps/implementations/common.ts +244 -0
  646. package/src/lib/hexclave-app/apps/implementations/event-tracker.test.ts +105 -0
  647. package/src/lib/hexclave-app/apps/implementations/event-tracker.ts +306 -0
  648. package/src/lib/hexclave-app/apps/implementations/index.ts +35 -0
  649. package/src/lib/hexclave-app/apps/implementations/redirect-page-urls.ts +342 -0
  650. package/src/lib/hexclave-app/apps/implementations/server-app-impl.ts +1619 -0
  651. package/src/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.ts +106 -0
  652. package/src/lib/hexclave-app/apps/implementations/session-refresh-subscription.ts +52 -0
  653. package/src/lib/hexclave-app/apps/implementations/session-replay.test.ts +33 -0
  654. package/src/lib/hexclave-app/apps/implementations/session-replay.ts +356 -0
  655. package/src/lib/hexclave-app/apps/index.ts +40 -0
  656. package/src/lib/hexclave-app/apps/interfaces/admin-app.ts +192 -0
  657. package/src/lib/hexclave-app/apps/interfaces/client-app.ts +180 -0
  658. package/src/lib/hexclave-app/apps/interfaces/server-app.ts +129 -0
  659. package/src/lib/hexclave-app/common.ts +216 -0
  660. package/src/lib/hexclave-app/connected-accounts/index.ts +49 -0
  661. package/src/lib/hexclave-app/contact-channels/index.ts +80 -0
  662. package/src/lib/hexclave-app/customers/index.ts +158 -0
  663. package/src/lib/hexclave-app/data-vault/index.ts +12 -0
  664. package/src/lib/hexclave-app/email/index.ts +280 -0
  665. package/src/lib/hexclave-app/email-templates/index.ts +24 -0
  666. package/src/lib/hexclave-app/index.ts +146 -0
  667. package/src/lib/hexclave-app/internal-api-keys/index.ts +55 -0
  668. package/src/lib/hexclave-app/notification-categories/index.ts +12 -0
  669. package/src/lib/hexclave-app/permissions/index.ts +75 -0
  670. package/src/lib/hexclave-app/project-configs/index.ts +103 -0
  671. package/src/lib/hexclave-app/projects/index.ts +236 -0
  672. package/src/lib/hexclave-app/session-replays/index.ts +72 -0
  673. package/src/lib/hexclave-app/teams/index.ts +206 -0
  674. package/src/lib/hexclave-app/url-targets.test.ts +253 -0
  675. package/src/lib/hexclave-app/url-targets.ts +395 -0
  676. package/src/lib/hexclave-app/users/index.ts +523 -0
  677. package/src/lib/hooks.tsx +63 -0
  678. package/src/lib/translations.tsx +23 -0
  679. package/src/providers/hexclave-context.tsx +20 -0
  680. package/src/providers/hexclave-provider-client.tsx +39 -0
  681. package/src/providers/hexclave-provider.tsx +48 -0
  682. package/src/providers/theme-provider.tsx +121 -0
  683. package/src/providers/translation-provider-client.tsx +35 -0
  684. package/src/providers/translation-provider.tsx +25 -0
  685. package/src/tanstack-start-server-context.d.ts +13 -0
  686. package/src/utils/browser-script.tsx +135 -0
  687. package/src/utils/constants.tsx +58 -0
  688. package/src/utils/url.ts +24 -0
  689. package/dist/components-page/stack-handler-client.d.ts.map +0 -1
  690. package/dist/components-page/stack-handler-client.js.map +0 -1
  691. package/dist/components-page/stack-handler.d.ts.map +0 -1
  692. package/dist/components-page/stack-handler.js.map +0 -1
  693. package/dist/esm/components-page/stack-handler-client.d.ts.map +0 -1
  694. package/dist/esm/components-page/stack-handler-client.js.map +0 -1
  695. package/dist/esm/components-page/stack-handler.d.ts.map +0 -1
  696. package/dist/esm/components-page/stack-handler.js.map +0 -1
  697. package/dist/esm/lib/stack-app/api-keys/index.js.map +0 -1
  698. package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.d.ts.map +0 -1
  699. package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.js.map +0 -1
  700. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js.map +0 -1
  701. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.d.ts.map +0 -1
  702. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js.map +0 -1
  703. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +0 -1
  704. package/dist/esm/lib/stack-app/apps/implementations/common.js.map +0 -1
  705. package/dist/esm/lib/stack-app/apps/implementations/event-tracker.js.map +0 -1
  706. package/dist/esm/lib/stack-app/apps/implementations/event-tracker.test.js.map +0 -1
  707. package/dist/esm/lib/stack-app/apps/implementations/index.d.ts +0 -9
  708. package/dist/esm/lib/stack-app/apps/implementations/index.d.ts.map +0 -1
  709. package/dist/esm/lib/stack-app/apps/implementations/index.js +0 -27
  710. package/dist/esm/lib/stack-app/apps/implementations/index.js.map +0 -1
  711. package/dist/esm/lib/stack-app/apps/implementations/redirect-page-urls.js.map +0 -1
  712. package/dist/esm/lib/stack-app/apps/implementations/server-app-impl.js.map +0 -1
  713. package/dist/esm/lib/stack-app/apps/implementations/session-refresh-subscription.js.map +0 -1
  714. package/dist/esm/lib/stack-app/apps/implementations/session-refresh-subscription.test.js.map +0 -1
  715. package/dist/esm/lib/stack-app/apps/implementations/session-replay.js.map +0 -1
  716. package/dist/esm/lib/stack-app/apps/implementations/session-replay.test.js.map +0 -1
  717. package/dist/esm/lib/stack-app/apps/interfaces/admin-app.js.map +0 -1
  718. package/dist/esm/lib/stack-app/apps/interfaces/client-app.js.map +0 -1
  719. package/dist/esm/lib/stack-app/apps/interfaces/server-app.js.map +0 -1
  720. package/dist/esm/lib/stack-app/common.js +0 -7
  721. package/dist/esm/lib/stack-app/common.js.map +0 -1
  722. package/dist/esm/lib/stack-app/contact-channels/index.js.map +0 -1
  723. package/dist/esm/lib/stack-app/email-templates/index.js.map +0 -1
  724. package/dist/esm/lib/stack-app/internal-api-keys/index.js.map +0 -1
  725. package/dist/esm/lib/stack-app/permissions/index.js.map +0 -1
  726. package/dist/esm/lib/stack-app/projects/index.js.map +0 -1
  727. package/dist/esm/lib/stack-app/teams/index.js.map +0 -1
  728. package/dist/esm/lib/stack-app/url-targets.js.map +0 -1
  729. package/dist/esm/lib/stack-app/url-targets.test.js.map +0 -1
  730. package/dist/esm/lib/stack-app/users/index.js.map +0 -1
  731. package/dist/esm/providers/stack-context.d.ts +0 -11
  732. package/dist/esm/providers/stack-context.d.ts.map +0 -1
  733. package/dist/esm/providers/stack-context.js +0 -12
  734. package/dist/esm/providers/stack-context.js.map +0 -1
  735. package/dist/esm/providers/stack-provider-client.d.ts.map +0 -1
  736. package/dist/esm/providers/stack-provider-client.js +0 -30
  737. package/dist/esm/providers/stack-provider-client.js.map +0 -1
  738. package/dist/esm/providers/stack-provider.d.ts.map +0 -1
  739. package/dist/esm/providers/stack-provider.js.map +0 -1
  740. package/dist/lib/stack-app/api-keys/index.d.ts.map +0 -1
  741. package/dist/lib/stack-app/api-keys/index.js.map +0 -1
  742. package/dist/lib/stack-app/apps/implementations/admin-app-impl.d.ts.map +0 -1
  743. package/dist/lib/stack-app/apps/implementations/admin-app-impl.js.map +0 -1
  744. package/dist/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js.map +0 -1
  745. package/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts.map +0 -1
  746. package/dist/lib/stack-app/apps/implementations/client-app-impl.js.map +0 -1
  747. package/dist/lib/stack-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +0 -1
  748. package/dist/lib/stack-app/apps/implementations/common.d.ts.map +0 -1
  749. package/dist/lib/stack-app/apps/implementations/common.js.map +0 -1
  750. package/dist/lib/stack-app/apps/implementations/event-tracker.d.ts.map +0 -1
  751. package/dist/lib/stack-app/apps/implementations/event-tracker.js.map +0 -1
  752. package/dist/lib/stack-app/apps/implementations/event-tracker.test.js.map +0 -1
  753. package/dist/lib/stack-app/apps/implementations/index.d.ts +0 -9
  754. package/dist/lib/stack-app/apps/implementations/index.d.ts.map +0 -1
  755. package/dist/lib/stack-app/apps/implementations/index.js +0 -31
  756. package/dist/lib/stack-app/apps/implementations/index.js.map +0 -1
  757. package/dist/lib/stack-app/apps/implementations/redirect-page-urls.d.ts.map +0 -1
  758. package/dist/lib/stack-app/apps/implementations/redirect-page-urls.js.map +0 -1
  759. package/dist/lib/stack-app/apps/implementations/server-app-impl.d.ts.map +0 -1
  760. package/dist/lib/stack-app/apps/implementations/server-app-impl.js.map +0 -1
  761. package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.d.ts.map +0 -1
  762. package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.js.map +0 -1
  763. package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.test.js.map +0 -1
  764. package/dist/lib/stack-app/apps/implementations/session-replay.d.ts.map +0 -1
  765. package/dist/lib/stack-app/apps/implementations/session-replay.js.map +0 -1
  766. package/dist/lib/stack-app/apps/implementations/session-replay.test.js.map +0 -1
  767. package/dist/lib/stack-app/apps/interfaces/admin-app.d.ts.map +0 -1
  768. package/dist/lib/stack-app/apps/interfaces/admin-app.js.map +0 -1
  769. package/dist/lib/stack-app/apps/interfaces/client-app.d.ts.map +0 -1
  770. package/dist/lib/stack-app/apps/interfaces/client-app.js.map +0 -1
  771. package/dist/lib/stack-app/apps/interfaces/server-app.d.ts.map +0 -1
  772. package/dist/lib/stack-app/apps/interfaces/server-app.js.map +0 -1
  773. package/dist/lib/stack-app/common.d.ts.map +0 -1
  774. package/dist/lib/stack-app/common.js +0 -9
  775. package/dist/lib/stack-app/common.js.map +0 -1
  776. package/dist/lib/stack-app/connected-accounts/index.d.ts.map +0 -1
  777. package/dist/lib/stack-app/contact-channels/index.d.ts.map +0 -1
  778. package/dist/lib/stack-app/contact-channels/index.js.map +0 -1
  779. package/dist/lib/stack-app/customers/index.d.ts.map +0 -1
  780. package/dist/lib/stack-app/data-vault/index.d.ts.map +0 -1
  781. package/dist/lib/stack-app/email/index.d.ts.map +0 -1
  782. package/dist/lib/stack-app/email-templates/index.d.ts.map +0 -1
  783. package/dist/lib/stack-app/email-templates/index.js.map +0 -1
  784. package/dist/lib/stack-app/internal-api-keys/index.d.ts.map +0 -1
  785. package/dist/lib/stack-app/internal-api-keys/index.js.map +0 -1
  786. package/dist/lib/stack-app/notification-categories/index.d.ts.map +0 -1
  787. package/dist/lib/stack-app/permissions/index.d.ts.map +0 -1
  788. package/dist/lib/stack-app/permissions/index.js.map +0 -1
  789. package/dist/lib/stack-app/project-configs/index.d.ts.map +0 -1
  790. package/dist/lib/stack-app/projects/index.d.ts.map +0 -1
  791. package/dist/lib/stack-app/projects/index.js.map +0 -1
  792. package/dist/lib/stack-app/session-replays/index.d.ts.map +0 -1
  793. package/dist/lib/stack-app/teams/index.d.ts.map +0 -1
  794. package/dist/lib/stack-app/teams/index.js.map +0 -1
  795. package/dist/lib/stack-app/url-targets.d.ts.map +0 -1
  796. package/dist/lib/stack-app/url-targets.js.map +0 -1
  797. package/dist/lib/stack-app/url-targets.test.js.map +0 -1
  798. package/dist/lib/stack-app/users/index.d.ts.map +0 -1
  799. package/dist/lib/stack-app/users/index.js.map +0 -1
  800. package/dist/providers/stack-context.d.ts +0 -11
  801. package/dist/providers/stack-context.d.ts.map +0 -1
  802. package/dist/providers/stack-context.js +0 -15
  803. package/dist/providers/stack-context.js.map +0 -1
  804. package/dist/providers/stack-provider-client.d.ts.map +0 -1
  805. package/dist/providers/stack-provider-client.js.map +0 -1
  806. package/dist/providers/stack-provider.d.ts.map +0 -1
  807. package/dist/providers/stack-provider.js.map +0 -1
  808. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.cross-domain.test.d.ts +0 -0
  809. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.d.ts +0 -0
  810. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.d.ts +0 -0
  811. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.d.ts +0 -0
  812. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.d.ts +0 -0
  813. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/index.d.ts +0 -0
  814. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/index.js +0 -0
  815. /package/dist/esm/lib/{stack-app → hexclave-app}/connected-accounts/index.js +0 -0
  816. /package/dist/esm/lib/{stack-app → hexclave-app}/customers/index.js +0 -0
  817. /package/dist/esm/lib/{stack-app → hexclave-app}/data-vault/index.js +0 -0
  818. /package/dist/esm/lib/{stack-app → hexclave-app}/email/index.js +0 -0
  819. /package/dist/esm/lib/{stack-app → hexclave-app}/notification-categories/index.js +0 -0
  820. /package/dist/esm/lib/{stack-app → hexclave-app}/project-configs/index.js +0 -0
  821. /package/dist/esm/lib/{stack-app → hexclave-app}/session-replays/index.js +0 -0
  822. /package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.test.d.ts +0 -0
  823. /package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.cross-domain.test.d.ts +0 -0
  824. /package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.d.ts +0 -0
  825. /package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.d.ts +0 -0
  826. /package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.d.ts +0 -0
  827. /package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.d.ts +0 -0
  828. /package/dist/lib/{stack-app → hexclave-app}/apps/index.d.ts +0 -0
  829. /package/dist/lib/{stack-app → hexclave-app}/apps/index.js +0 -0
  830. /package/dist/lib/{stack-app → hexclave-app}/connected-accounts/index.js +0 -0
  831. /package/dist/lib/{stack-app → hexclave-app}/customers/index.js +0 -0
  832. /package/dist/lib/{stack-app → hexclave-app}/data-vault/index.js +0 -0
  833. /package/dist/lib/{stack-app → hexclave-app}/email/index.js +0 -0
  834. /package/dist/lib/{stack-app → hexclave-app}/notification-categories/index.js +0 -0
  835. /package/dist/lib/{stack-app → hexclave-app}/project-configs/index.js +0 -0
  836. /package/dist/lib/{stack-app → hexclave-app}/session-replays/index.js +0 -0
  837. /package/dist/lib/{stack-app → hexclave-app}/url-targets.test.d.ts +0 -0
@@ -17,17 +17,17 @@ let ___components_message_cards_message_card_js = require("../components/message
17
17
  //#region src/components-page/onboarding.tsx
18
18
  function Onboarding(props) {
19
19
  const { t } = (0, ___lib_translations_js.useTranslation)();
20
- const stackApp = (0, ___index_js.useStackApp)();
20
+ const hexclaveApp = (0, ___index_js.useStackApp)();
21
21
  const user = (0, ___index_js.useUser)({
22
22
  or: "return-null",
23
23
  includeRestricted: true
24
24
  });
25
25
  if (user && !user.isRestricted) {
26
- (0, _hexclave_shared_dist_utils_promises.runAsynchronously)(stackApp.redirectToAfterSignIn());
26
+ (0, _hexclave_shared_dist_utils_promises.runAsynchronously)(hexclaveApp.redirectToAfterSignIn());
27
27
  return null;
28
28
  }
29
29
  if (!user || user.isAnonymous) {
30
- (0, _hexclave_shared_dist_utils_promises.runAsynchronously)(stackApp.redirectToSignIn());
30
+ (0, _hexclave_shared_dist_utils_promises.runAsynchronously)(hexclaveApp.redirectToSignIn());
31
31
  return null;
32
32
  }
33
33
  if (user.restrictedReason?.type === "email_not_verified") {
@@ -1 +1 @@
1
- {"version":3,"file":"onboarding.js","names":["MessageCard","Typography","Input","FormWarningText","Button"],"sources":["../../src/components-page/onboarding.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY, INSTEAD EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport { strictEmailSchema, yupObject } from \"@hexclave/shared/dist/schema-fields\";\nimport { runAsynchronously, runAsynchronouslyWithAlert } from \"@hexclave/shared/dist/utils/promises\";\nimport { Button, Input, Typography } from \"@hexclave/ui\";\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport * as yup from \"yup\";\nimport { useStackApp, useUser } from \"..\";\nimport { FormWarningText } from \"../components/elements/form-warning\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { useTranslation } from \"../lib/translations\";\n\nexport function Onboarding(props: {\n fullPage?: boolean,\n}) {\n const { t } = useTranslation();\n const stackApp = useStackApp();\n const user = useUser({ or: \"return-null\", includeRestricted: true });\n\n // If user is not restricted anymore, redirect to the intended destination\n // redirectToAfterSignIn automatically checks for after_auth_return_to in the URL\n if (user && !user.isRestricted) {\n runAsynchronously(stackApp.redirectToAfterSignIn());\n // TODO: This should return a loading indicator, not just null\n return null;\n }\n\n // If user is anonymous or not logged in, redirect to sign-in\n if (!user || user.isAnonymous) {\n runAsynchronously(stackApp.redirectToSignIn());\n // TODO: This should return a loading indicator, not just null\n return null;\n }\n\n // User is restricted - show appropriate onboarding step based on restricted reason\n const restrictedReason = user.restrictedReason;\n\n if (restrictedReason?.type === \"email_not_verified\") {\n // Check if user has a primary email\n const hasPrimaryEmail = !!user.primaryEmail;\n\n if (!hasPrimaryEmail) {\n // User needs to add an email first\n return <AddEmailForm fullPage={props.fullPage} />;\n }\n\n // User has email but it's not verified\n return <VerifyEmailScreen user={user} email={user.primaryEmail} fullPage={props.fullPage} />;\n }\n\n // Unknown restricted reason - show generic message\n return (\n <MessageCard\n title={t(\"Complete your account setup\")}\n fullPage={!!props.fullPage}\n secondaryButtonText={t(\"Sign out\")}\n secondaryAction={async () => {\n await user.signOut();\n }}\n >\n <p>{t(\"You have not yet completed your account setup. Please reach out to support if you believe this is an error.\")}</p>\n </MessageCard>\n );\n}\n\nfunction AddEmailForm(props: {\n fullPage?: boolean,\n onEmailAdded?: () => void,\n}) {\n const { t } = useTranslation();\n const user = useUser({ or: \"throw\", includeRestricted: true });\n const stackApp = useStackApp();\n const [loading, setLoading] = useState(false);\n\n const emailSchema = yupObject({\n email: strictEmailSchema(t('Please enter a valid email address'))\n .defined()\n .nonEmpty(t('Email is required')),\n });\n\n const { register, handleSubmit, formState: { errors } } = useForm({\n resolver: yupResolver(emailSchema)\n });\n\n const onSubmit = async (data: yup.InferType<typeof emailSchema>) => {\n setLoading(true);\n try {\n await user.update({ primaryEmail: data.email });\n props.onEmailAdded?.();\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <MessageCard\n title={t(\"Add your email address\")}\n fullPage={!!props.fullPage}\n secondaryButtonText={t(\"Sign out\")}\n secondaryAction={async () => {\n await user.signOut();\n }}\n >\n <Typography className=\"mb-4\">\n {t(\"Please add an email address to complete your account setup. We'll send you a verification email.\")}\n </Typography>\n <form\n onSubmit={e => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e))}\n noValidate\n className='flex flex-col gap-2'\n >\n <Input\n {...register(\"email\")}\n placeholder={t(\"Enter your email\")}\n type=\"email\"\n />\n {errors.email && <FormWarningText text={errors.email.message} />}\n <Button type=\"submit\" loading={loading} className=\"w-full\">\n {t(\"Continue\")}\n </Button>\n </form>\n </MessageCard>\n );\n}\n\nfunction VerifyEmailScreen(props: {\n user: NonNullable<ReturnType<typeof useUser>>,\n email: string,\n fullPage?: boolean,\n}) {\n const { t } = useTranslation();\n const { user, email } = props;\n const [changingEmail, setChangingEmail] = useState(false);\n\n if (changingEmail) {\n return <AddEmailForm fullPage={props.fullPage} onEmailAdded={() => setChangingEmail(false)} />;\n }\n\n return (\n <MessageCard\n title={t(\"Please check your email inbox\")}\n fullPage={!!props.fullPage}\n primaryButtonText={t(\"Resend verification email\")}\n primaryAction={async () => {\n await user.sendVerificationEmail();\n }}\n secondaryButtonText={t(\"Sign out\")}\n secondaryAction={async () => {\n await user.signOut();\n }}\n >\n <Typography>\n {t(\"Please verify your email address \")}\n <span className=\"font-semibold\">{email}</span>\n {\" (\"}\n <button\n type=\"button\"\n className=\"text-primary hover:underline\"\n onClick={() => setChangingEmail(true)}\n >\n {t(\"change\")}\n </button>\n {\"). \"}\n {t(\"Click the button below to resend the verification link.\")}\n </Typography>\n </MessageCard>\n );\n}\n\n"],"mappings":"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"}
1
+ {"version":3,"file":"onboarding.js","names":["MessageCard","Typography","Input","FormWarningText","Button"],"sources":["../../src/components-page/onboarding.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport { strictEmailSchema, yupObject } from \"@hexclave/shared/dist/schema-fields\";\nimport { runAsynchronously, runAsynchronouslyWithAlert } from \"@hexclave/shared/dist/utils/promises\";\nimport { Button, Input, Typography } from \"@hexclave/ui\";\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport * as yup from \"yup\";\nimport { useStackApp, useUser } from \"..\";\nimport { FormWarningText } from \"../components/elements/form-warning\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { useTranslation } from \"../lib/translations\";\n\nexport function Onboarding(props: {\n fullPage?: boolean,\n}) {\n const { t } = useTranslation();\n const hexclaveApp = useStackApp();\n const user = useUser({ or: \"return-null\", includeRestricted: true });\n\n // If user is not restricted anymore, redirect to the intended destination\n // redirectToAfterSignIn automatically checks for after_auth_return_to in the URL\n if (user && !user.isRestricted) {\n runAsynchronously(hexclaveApp.redirectToAfterSignIn());\n // TODO: This should return a loading indicator, not just null\n return null;\n }\n\n // If user is anonymous or not logged in, redirect to sign-in\n if (!user || user.isAnonymous) {\n runAsynchronously(hexclaveApp.redirectToSignIn());\n // TODO: This should return a loading indicator, not just null\n return null;\n }\n\n // User is restricted - show appropriate onboarding step based on restricted reason\n const restrictedReason = user.restrictedReason;\n\n if (restrictedReason?.type === \"email_not_verified\") {\n // Check if user has a primary email\n const hasPrimaryEmail = !!user.primaryEmail;\n\n if (!hasPrimaryEmail) {\n // User needs to add an email first\n return <AddEmailForm fullPage={props.fullPage} />;\n }\n\n // User has email but it's not verified\n return <VerifyEmailScreen user={user} email={user.primaryEmail} fullPage={props.fullPage} />;\n }\n\n // Unknown restricted reason - show generic message\n return (\n <MessageCard\n title={t(\"Complete your account setup\")}\n fullPage={!!props.fullPage}\n secondaryButtonText={t(\"Sign out\")}\n secondaryAction={async () => {\n await user.signOut();\n }}\n >\n <p>{t(\"You have not yet completed your account setup. Please reach out to support if you believe this is an error.\")}</p>\n </MessageCard>\n );\n}\n\nfunction AddEmailForm(props: {\n fullPage?: boolean,\n onEmailAdded?: () => void,\n}) {\n const { t } = useTranslation();\n const user = useUser({ or: \"throw\", includeRestricted: true });\n const hexclaveApp = useStackApp();\n const [loading, setLoading] = useState(false);\n\n const emailSchema = yupObject({\n email: strictEmailSchema(t('Please enter a valid email address'))\n .defined()\n .nonEmpty(t('Email is required')),\n });\n\n const { register, handleSubmit, formState: { errors } } = useForm({\n resolver: yupResolver(emailSchema)\n });\n\n const onSubmit = async (data: yup.InferType<typeof emailSchema>) => {\n setLoading(true);\n try {\n await user.update({ primaryEmail: data.email });\n props.onEmailAdded?.();\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <MessageCard\n title={t(\"Add your email address\")}\n fullPage={!!props.fullPage}\n secondaryButtonText={t(\"Sign out\")}\n secondaryAction={async () => {\n await user.signOut();\n }}\n >\n <Typography className=\"mb-4\">\n {t(\"Please add an email address to complete your account setup. We'll send you a verification email.\")}\n </Typography>\n <form\n onSubmit={e => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e))}\n noValidate\n className='flex flex-col gap-2'\n >\n <Input\n {...register(\"email\")}\n placeholder={t(\"Enter your email\")}\n type=\"email\"\n />\n {errors.email && <FormWarningText text={errors.email.message} />}\n <Button type=\"submit\" loading={loading} className=\"w-full\">\n {t(\"Continue\")}\n </Button>\n </form>\n </MessageCard>\n );\n}\n\nfunction VerifyEmailScreen(props: {\n user: NonNullable<ReturnType<typeof useUser>>,\n email: string,\n fullPage?: boolean,\n}) {\n const { t } = useTranslation();\n const { user, email } = props;\n const [changingEmail, setChangingEmail] = useState(false);\n\n if (changingEmail) {\n return <AddEmailForm fullPage={props.fullPage} onEmailAdded={() => setChangingEmail(false)} />;\n }\n\n return (\n <MessageCard\n title={t(\"Please check your email inbox\")}\n fullPage={!!props.fullPage}\n primaryButtonText={t(\"Resend verification email\")}\n primaryAction={async () => {\n await user.sendVerificationEmail();\n }}\n secondaryButtonText={t(\"Sign out\")}\n secondaryAction={async () => {\n await user.signOut();\n }}\n >\n <Typography>\n {t(\"Please verify your email address \")}\n <span className=\"font-semibold\">{email}</span>\n {\" (\"}\n <button\n type=\"button\"\n className=\"text-primary hover:underline\"\n onClick={() => setChangingEmail(true)}\n >\n {t(\"change\")}\n </button>\n {\"). \"}\n {t(\"Click the button below to resend the verification link.\")}\n </Typography>\n </MessageCard>\n );\n}\n\n"],"mappings":"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"}
@@ -17,10 +17,10 @@ let yup = require("yup");
17
17
  yup = require_chunk.__toESM(yup);
18
18
  let _hexclave_shared = require("@hexclave/shared");
19
19
  let ___components_elements_maybe_full_page_js = require("../components/elements/maybe-full-page.js");
20
- let ___components_message_cards_predefined_message_card_js = require("../components/message-cards/predefined-message-card.js");
20
+ let _hexclave_shared_dist_utils_react = require("@hexclave/shared/dist/utils/react");
21
21
  let ___components_message_cards_message_card_js = require("../components/message-cards/message-card.js");
22
+ let ___components_message_cards_predefined_message_card_js = require("../components/message-cards/predefined-message-card.js");
22
23
  let _hexclave_shared_dist_utils_caches = require("@hexclave/shared/dist/utils/caches");
23
- let _hexclave_shared_dist_utils_react = require("@hexclave/shared/dist/utils/react");
24
24
 
25
25
  //#region src/components-page/password-reset.tsx
26
26
  function PasswordResetForm(props) {
@@ -36,7 +36,7 @@ function PasswordResetForm(props) {
36
36
  }),
37
37
  passwordRepeat: (0, _hexclave_shared_dist_schema_fields.yupString)().nullable().oneOf([yup.ref("password"), null], t("Passwords do not match")).defined().nonEmpty(t("Please repeat your password"))
38
38
  })) });
39
- const stackApp = (0, ___index_js.useStackApp)();
39
+ const hexclaveApp = (0, ___index_js.useStackApp)();
40
40
  const [finished, setFinished] = (0, react.useState)(false);
41
41
  const [resetError, setResetError] = (0, react.useState)(false);
42
42
  const [loading, setLoading] = (0, react.useState)(false);
@@ -44,7 +44,7 @@ function PasswordResetForm(props) {
44
44
  setLoading(true);
45
45
  try {
46
46
  const { password } = data;
47
- if ((await stackApp.resetPassword({
47
+ if ((await hexclaveApp.resetPassword({
48
48
  password,
49
49
  code: props.code
50
50
  })).status === "error") {
@@ -121,12 +121,12 @@ function PasswordResetForm(props) {
121
121
  })
122
122
  });
123
123
  }
124
- const cachedVerifyPasswordResetCode = (0, _hexclave_shared_dist_utils_caches.cacheFunction)(async (stackApp, code) => {
125
- return await stackApp.verifyPasswordResetCode(code);
124
+ const cachedVerifyPasswordResetCode = (0, _hexclave_shared_dist_utils_caches.cacheFunction)(async (hexclaveApp, code) => {
125
+ return await hexclaveApp.verifyPasswordResetCode(code);
126
126
  });
127
127
  function PasswordReset({ searchParams, fullPage = false }) {
128
128
  const { t } = (0, ___lib_translations_js.useTranslation)();
129
- const stackApp = (0, ___index_js.useStackApp)();
129
+ const hexclaveApp = (0, ___index_js.useStackApp)();
130
130
  const invalidJsx = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(___components_message_cards_message_card_js.MessageCard, {
131
131
  title: t("Invalid Password Reset Link"),
132
132
  fullPage,
@@ -144,7 +144,7 @@ function PasswordReset({ searchParams, fullPage = false }) {
144
144
  });
145
145
  const code = searchParams.code;
146
146
  if (!code) return invalidJsx;
147
- const result = (0, _hexclave_shared_dist_utils_react.use)(cachedVerifyPasswordResetCode(stackApp, code));
147
+ const result = (0, _hexclave_shared_dist_utils_react.use)(cachedVerifyPasswordResetCode(hexclaveApp, code));
148
148
  if (result.status === "error") if (_hexclave_shared.KnownErrors.VerificationCodeNotFound.isInstance(result.error)) return invalidJsx;
149
149
  else if (_hexclave_shared.KnownErrors.VerificationCodeExpired.isInstance(result.error)) return expiredJsx;
150
150
  else if (_hexclave_shared.KnownErrors.VerificationCodeAlreadyUsed.isInstance(result.error)) return usedJsx;
@@ -1 +1 @@
1
- {"version":3,"file":"password-reset.js","names":["passwordSchema","PredefinedMessageCard","MessageCard","MaybeFullPage","Typography","Label","PasswordInput","FormWarningText","Button","KnownErrors"],"sources":["../../src/components-page/password-reset.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY, INSTEAD EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport { KnownErrors } from \"@hexclave/shared\";\nimport { getPasswordError } from \"@hexclave/shared/dist/helpers/password\";\nimport { passwordSchema, yupObject, yupString } from \"@hexclave/shared/dist/schema-fields\";\nimport { cacheFunction } from \"@hexclave/shared/dist/utils/caches\";\nimport { runAsynchronouslyWithAlert } from \"@hexclave/shared/dist/utils/promises\";\nimport { use } from \"@hexclave/shared/dist/utils/react\";\nimport { Button, Label, PasswordInput, Typography, cn } from \"@hexclave/ui\";\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport * as yup from \"yup\";\nimport { StackClientApp, useStackApp } from \"..\";\nimport { FormWarningText } from \"../components/elements/form-warning\";\nimport { MaybeFullPage } from \"../components/elements/maybe-full-page\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { PredefinedMessageCard } from \"../components/message-cards/predefined-message-card\";\nimport { useTranslation } from \"../lib/translations\";\n\nexport default function PasswordResetForm(props: {\n code: string,\n fullPage?: boolean,\n}) {\n const { t } = useTranslation();\n\n const schema = yupObject({\n password: passwordSchema.defined(t(\"Please enter your password\")).nonEmpty(t(\"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: yupString().nullable().oneOf([yup.ref('password'), null], t(\"Passwords do not match\")).defined().nonEmpty(t(\"Please repeat your password\"))\n });\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 const [loading, setLoading] = useState(false);\n\n const onSubmit = async (data: yup.InferType<typeof schema>) => {\n setLoading(true);\n try {\n const { password } = data;\n const result = await stackApp.resetPassword({ password, code: props.code });\n if (result.status === 'error') {\n setResetError(true);\n return;\n }\n\n setFinished(true);\n } finally {\n setLoading(false);\n }\n };\n\n if (finished) {\n return <PredefinedMessageCard type='passwordReset' fullPage={!!props.fullPage} />;\n }\n\n if (resetError) {\n return (\n <MessageCard title={t(\"Failed to reset password\")} fullPage={!!props.fullPage}>\n {t(\"Failed to reset password. Please request a new password reset link\")}\n </MessageCard>\n );\n }\n\n\n return (\n <MaybeFullPage fullPage={!!props.fullPage}>\n <div className={cn(\n \"flex flex-col items-stretch max-w-[380px] flex-basis-[380px]\",\n props.fullPage ? \"p-4\" : \"p-0\"\n )}>\n <div className=\"text-center mb-6\">\n <Typography type='h2'>{t(\"Reset Your Password\")}</Typography>\n </div>\n\n <form\n className=\"flex flex-col items-stretch\"\n onSubmit={e => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e))}\n noValidate\n >\n <Label htmlFor=\"password\" className=\"mb-1\">{t(\"New Password\")}</Label>\n <PasswordInput\n id=\"password\"\n autoComplete=\"new-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\" className=\"mt-4 mb-1\">{t(\"Repeat New Password\")}</Label>\n <PasswordInput\n id=\"repeat-password\"\n autoComplete=\"new-password\"\n {...register('passwordRepeat')}\n onChange={() => {\n clearErrors('password');\n clearErrors('passwordRepeat');\n }}\n />\n <FormWarningText text={errors.passwordRepeat?.message?.toString()} />\n\n <Button type=\"submit\" className=\"mt-6\" loading={loading}>\n {t(\"Reset Password\")}\n </Button>\n </form>\n </div>\n </MaybeFullPage>\n );\n}\n\n\nconst cachedVerifyPasswordResetCode = cacheFunction(async (stackApp: StackClientApp<true>, code: string) => {\n return await stackApp.verifyPasswordResetCode(code);\n});\n\nexport function PasswordReset({\n searchParams,\n fullPage = false,\n}: {\n searchParams: Record<string, string>,\n fullPage?: boolean,\n}) {\n const { t } = useTranslation();\n const stackApp = useStackApp();\n\n const invalidJsx = (\n <MessageCard title={t(\"Invalid Password Reset Link\")} fullPage={fullPage}>\n <Typography>{t(\"Please double check if you have the correct password reset link.\")}</Typography>\n </MessageCard>\n );\n\n const expiredJsx = (\n <MessageCard title={t(\"Expired Password Reset Link\")} fullPage={fullPage}>\n <Typography>{t(\"Your password reset link has expired. Please request a new password reset link from the login page.\")}</Typography>\n </MessageCard>\n );\n\n const usedJsx = (\n <MessageCard title={t(\"Used Password Reset Link\")} fullPage={fullPage}>\n <Typography>{t(\"This password reset link has already been used. If you need to reset your password again, please request a new password reset link from the login page.\")}</Typography>\n </MessageCard>\n );\n\n const code = searchParams.code;\n if (!code) {\n return invalidJsx;\n }\n\n const result = use(cachedVerifyPasswordResetCode(stackApp, code));\n\n if (result.status === 'error') {\n if (KnownErrors.VerificationCodeNotFound.isInstance(result.error)) {\n return invalidJsx;\n } else if (KnownErrors.VerificationCodeExpired.isInstance(result.error)) {\n return expiredJsx;\n } else if (KnownErrors.VerificationCodeAlreadyUsed.isInstance(result.error)) {\n return usedJsx;\n } else {\n throw result.error;\n }\n }\n\n return <PasswordResetForm code={code} fullPage={fullPage} />;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"password-reset.js","names":["passwordSchema","PredefinedMessageCard","MessageCard","MaybeFullPage","Typography","Label","PasswordInput","FormWarningText","Button","KnownErrors"],"sources":["../../src/components-page/password-reset.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport { KnownErrors } from \"@hexclave/shared\";\nimport { getPasswordError } from \"@hexclave/shared/dist/helpers/password\";\nimport { passwordSchema, yupObject, yupString } from \"@hexclave/shared/dist/schema-fields\";\nimport { cacheFunction } from \"@hexclave/shared/dist/utils/caches\";\nimport { runAsynchronouslyWithAlert } from \"@hexclave/shared/dist/utils/promises\";\nimport { use } from \"@hexclave/shared/dist/utils/react\";\nimport { Button, Label, PasswordInput, Typography, cn } from \"@hexclave/ui\";\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport * as yup from \"yup\";\nimport { StackClientApp, useStackApp } from \"..\";\nimport { FormWarningText } from \"../components/elements/form-warning\";\nimport { MaybeFullPage } from \"../components/elements/maybe-full-page\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { PredefinedMessageCard } from \"../components/message-cards/predefined-message-card\";\nimport { useTranslation } from \"../lib/translations\";\n\nexport default function PasswordResetForm(props: {\n code: string,\n fullPage?: boolean,\n}) {\n const { t } = useTranslation();\n\n const schema = yupObject({\n password: passwordSchema.defined(t(\"Please enter your password\")).nonEmpty(t(\"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: yupString().nullable().oneOf([yup.ref('password'), null], t(\"Passwords do not match\")).defined().nonEmpty(t(\"Please repeat your password\"))\n });\n\n const { register, handleSubmit, formState: { errors }, clearErrors } = useForm({\n resolver: yupResolver(schema)\n });\n const hexclaveApp = useStackApp();\n const [finished, setFinished] = useState(false);\n const [resetError, setResetError] = useState(false);\n const [loading, setLoading] = useState(false);\n\n const onSubmit = async (data: yup.InferType<typeof schema>) => {\n setLoading(true);\n try {\n const { password } = data;\n const result = await hexclaveApp.resetPassword({ password, code: props.code });\n if (result.status === 'error') {\n setResetError(true);\n return;\n }\n\n setFinished(true);\n } finally {\n setLoading(false);\n }\n };\n\n if (finished) {\n return <PredefinedMessageCard type='passwordReset' fullPage={!!props.fullPage} />;\n }\n\n if (resetError) {\n return (\n <MessageCard title={t(\"Failed to reset password\")} fullPage={!!props.fullPage}>\n {t(\"Failed to reset password. Please request a new password reset link\")}\n </MessageCard>\n );\n }\n\n\n return (\n <MaybeFullPage fullPage={!!props.fullPage}>\n <div className={cn(\n \"flex flex-col items-stretch max-w-[380px] flex-basis-[380px]\",\n props.fullPage ? \"p-4\" : \"p-0\"\n )}>\n <div className=\"text-center mb-6\">\n <Typography type='h2'>{t(\"Reset Your Password\")}</Typography>\n </div>\n\n <form\n className=\"flex flex-col items-stretch\"\n onSubmit={e => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e))}\n noValidate\n >\n <Label htmlFor=\"password\" className=\"mb-1\">{t(\"New Password\")}</Label>\n <PasswordInput\n id=\"password\"\n autoComplete=\"new-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\" className=\"mt-4 mb-1\">{t(\"Repeat New Password\")}</Label>\n <PasswordInput\n id=\"repeat-password\"\n autoComplete=\"new-password\"\n {...register('passwordRepeat')}\n onChange={() => {\n clearErrors('password');\n clearErrors('passwordRepeat');\n }}\n />\n <FormWarningText text={errors.passwordRepeat?.message?.toString()} />\n\n <Button type=\"submit\" className=\"mt-6\" loading={loading}>\n {t(\"Reset Password\")}\n </Button>\n </form>\n </div>\n </MaybeFullPage>\n );\n}\n\n\nconst cachedVerifyPasswordResetCode = cacheFunction(async (hexclaveApp: StackClientApp<true>, code: string) => {\n return await hexclaveApp.verifyPasswordResetCode(code);\n});\n\nexport function PasswordReset({\n searchParams,\n fullPage = false,\n}: {\n searchParams: Record<string, string>,\n fullPage?: boolean,\n}) {\n const { t } = useTranslation();\n const hexclaveApp = useStackApp();\n\n const invalidJsx = (\n <MessageCard title={t(\"Invalid Password Reset Link\")} fullPage={fullPage}>\n <Typography>{t(\"Please double check if you have the correct password reset link.\")}</Typography>\n </MessageCard>\n );\n\n const expiredJsx = (\n <MessageCard title={t(\"Expired Password Reset Link\")} fullPage={fullPage}>\n <Typography>{t(\"Your password reset link has expired. Please request a new password reset link from the login page.\")}</Typography>\n </MessageCard>\n );\n\n const usedJsx = (\n <MessageCard title={t(\"Used Password Reset Link\")} fullPage={fullPage}>\n <Typography>{t(\"This password reset link has already been used. If you need to reset your password again, please request a new password reset link from the login page.\")}</Typography>\n </MessageCard>\n );\n\n const code = searchParams.code;\n if (!code) {\n return invalidJsx;\n }\n\n const result = use(cachedVerifyPasswordResetCode(hexclaveApp, code));\n\n if (result.status === 'error') {\n if (KnownErrors.VerificationCodeNotFound.isInstance(result.error)) {\n return invalidJsx;\n } else if (KnownErrors.VerificationCodeExpired.isInstance(result.error)) {\n return expiredJsx;\n } else if (KnownErrors.VerificationCodeAlreadyUsed.isInstance(result.error)) {\n return usedJsx;\n } else {\n throw result.error;\n }\n }\n\n return <PasswordResetForm code={code} fullPage={fullPage} />;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sign-in.js","names":["AuthPage"],"sources":["../../src/components-page/sign-in.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY, INSTEAD EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { AuthPage } from \"./auth-page\";\n\nexport function SignIn(props: {\n fullPage?: boolean,\n automaticRedirect?: boolean,\n extraInfo?: React.ReactNode,\n firstTab?: 'magic-link' | 'password',\n mockProject?: {\n config: {\n signUpEnabled: boolean,\n credentialEnabled: boolean,\n passkeyEnabled: boolean,\n magicLinkEnabled: boolean,\n oauthProviders: {\n id: string,\n }[],\n },\n },\n}) {\n return (\n <AuthPage\n fullPage={!!props.fullPage}\n type=\"sign-in\"\n automaticRedirect={!!props.automaticRedirect}\n extraInfo={props.extraInfo}\n firstTab={props.firstTab}\n mockProject={props.mockProject}\n />\n );\n}\n"],"mappings":";;;;;;AAMA,SAAgB,OAAO,OAgBpB;AACD,QACE,2CAACA;EACC,UAAU,CAAC,CAAC,MAAM;EAClB,MAAK;EACL,mBAAmB,CAAC,CAAC,MAAM;EAC3B,WAAW,MAAM;EACjB,UAAU,MAAM;EAChB,aAAa,MAAM;GACnB"}
1
+ {"version":3,"file":"sign-in.js","names":["AuthPage"],"sources":["../../src/components-page/sign-in.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { AuthPage } from \"./auth-page\";\n\nexport function SignIn(props: {\n fullPage?: boolean,\n automaticRedirect?: boolean,\n extraInfo?: React.ReactNode,\n firstTab?: 'magic-link' | 'password',\n mockProject?: {\n config: {\n signUpEnabled: boolean,\n credentialEnabled: boolean,\n passkeyEnabled: boolean,\n magicLinkEnabled: boolean,\n oauthProviders: {\n id: string,\n }[],\n },\n },\n}) {\n return (\n <AuthPage\n fullPage={!!props.fullPage}\n type=\"sign-in\"\n automaticRedirect={!!props.automaticRedirect}\n extraInfo={props.extraInfo}\n firstTab={props.firstTab}\n mockProject={props.mockProject}\n />\n );\n}\n"],"mappings":";;;;;;AAMA,SAAgB,OAAO,OAgBpB;AACD,QACE,2CAACA;EACC,UAAU,CAAC,CAAC,MAAM;EAClB,MAAK;EACL,mBAAmB,CAAC,CAAC,MAAM;EAC3B,WAAW,MAAM;EACjB,UAAU,MAAM;EAChB,aAAa,MAAM;GACnB"}
@@ -3,6 +3,7 @@ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
  //#region src/components-page/sign-out.d.ts
4
4
  declare function SignOut(props: {
5
5
  fullPage?: boolean;
6
+ searchParams?: Record<string, string>;
6
7
  }): react_jsx_runtime0.JSX.Element;
7
8
  //#endregion
8
9
  export { SignOut };
@@ -1 +1 @@
1
- {"version":3,"file":"sign-out.d.ts","names":[],"sources":["../../src/components-page/sign-out.tsx"],"mappings":";;;iBAgBgB,OAAA,CAAQ,KAAA;EAAS,QAAA;AAAA,IAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"sign-out.d.ts","names":[],"sources":["../../src/components-page/sign-out.tsx"],"mappings":";;;iBAyBgB,OAAA,CAAQ,KAAA;EAAS,QAAA;EAAoB,YAAA,GAAe,MAAA;AAAA,IAAwB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -4,17 +4,23 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_chunk = require('../chunk-BE-pF4vm.js');
5
5
  let ___index_js = require("../index.js");
6
6
  let react_jsx_runtime = require("react/jsx-runtime");
7
+ let _hexclave_shared_dist_utils_react = require("@hexclave/shared/dist/utils/react");
7
8
  let ___components_message_cards_predefined_message_card_js = require("../components/message-cards/predefined-message-card.js");
8
9
  let _hexclave_shared_dist_utils_caches = require("@hexclave/shared/dist/utils/caches");
9
- let _hexclave_shared_dist_utils_react = require("@hexclave/shared/dist/utils/react");
10
10
 
11
11
  //#region src/components-page/sign-out.tsx
12
- const cacheSignOut = (0, _hexclave_shared_dist_utils_caches.cacheFunction)(async (user) => {
13
- return await user.signOut();
12
+ const cacheSignOut = (0, _hexclave_shared_dist_utils_caches.cacheFunction)(async (user, redirectUrl) => {
13
+ return await user.signOut({ redirectUrl });
14
+ });
15
+ const cacheRedirectIfAlreadySignedOut = (0, _hexclave_shared_dist_utils_caches.cacheFunction)(async (redirectUrl) => {
16
+ if (redirectUrl == null) return;
17
+ if (typeof window !== "undefined") window.location.replace(redirectUrl);
14
18
  });
15
19
  function SignOut(props) {
16
- const user = (0, ___index_js.useUser)();
17
- if (user) (0, _hexclave_shared_dist_utils_react.use)(cacheSignOut(user));
20
+ const user = (0, ___index_js.useUser)({ or: "return-null" });
21
+ const redirectUrl = props.searchParams?.after_auth_return_to;
22
+ if (user) (0, _hexclave_shared_dist_utils_react.use)(cacheSignOut(user, redirectUrl));
23
+ else (0, _hexclave_shared_dist_utils_react.use)(cacheRedirectIfAlreadySignedOut(redirectUrl));
18
24
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(___components_message_cards_predefined_message_card_js.PredefinedMessageCard, {
19
25
  type: "signedOut",
20
26
  fullPage: props.fullPage
@@ -1 +1 @@
1
- {"version":3,"file":"sign-out.js","names":["PredefinedMessageCard"],"sources":["../../src/components-page/sign-out.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY, INSTEAD EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { cacheFunction } from \"@hexclave/shared/dist/utils/caches\";\nimport { use } from \"@hexclave/shared/dist/utils/react\";\nimport { CurrentUser, useUser } from \"..\";\nimport { PredefinedMessageCard } from \"../components/message-cards/predefined-message-card\";\n\nconst cacheSignOut = cacheFunction(async (user: CurrentUser) => {\n return await user.signOut();\n});\n\nexport function SignOut(props: { fullPage?: boolean }) {\n const user = useUser();\n\n if (user) {\n use(cacheSignOut(user));\n }\n\n return <PredefinedMessageCard type='signedOut' fullPage={props.fullPage} />;\n}\n"],"mappings":";;;;;;;;;;;AAYA,MAAM,qEAA6B,OAAO,SAAsB;AAC9D,QAAO,MAAM,KAAK,SAAS;EAC3B;AAEF,SAAgB,QAAQ,OAA+B;CACrD,MAAM,iCAAgB;AAEtB,KAAI,KACF,4CAAI,aAAa,KAAK,CAAC;AAGzB,QAAO,2CAACA;EAAsB,MAAK;EAAY,UAAU,MAAM;GAAY"}
1
+ {"version":3,"file":"sign-out.js","names":["PredefinedMessageCard"],"sources":["../../src/components-page/sign-out.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { cacheFunction } from \"@hexclave/shared/dist/utils/caches\";\nimport { use } from \"@hexclave/shared/dist/utils/react\";\nimport { CurrentUser, useUser } from \"..\";\nimport { PredefinedMessageCard } from \"../components/message-cards/predefined-message-card\";\n\nconst cacheSignOut = cacheFunction(async (user: CurrentUser, redirectUrl: string | undefined) => {\n return await user.signOut({ redirectUrl });\n});\n\nconst cacheRedirectIfAlreadySignedOut = cacheFunction(async (redirectUrl: string | undefined) => {\n if (redirectUrl == null) {\n return;\n }\n if (typeof window !== \"undefined\") {\n window.location.replace(redirectUrl);\n }\n});\n\nexport function SignOut(props: { fullPage?: boolean, searchParams?: Record<string, string> }) {\n const user = useUser({ or: \"return-null\" });\n const redirectUrl = props.searchParams?.after_auth_return_to;\n\n if (user) {\n use(cacheSignOut(user, redirectUrl));\n } else {\n use(cacheRedirectIfAlreadySignedOut(redirectUrl));\n }\n\n return <PredefinedMessageCard type='signedOut' fullPage={props.fullPage} />;\n}\n"],"mappings":";;;;;;;;;;;AAYA,MAAM,qEAA6B,OAAO,MAAmB,gBAAoC;AAC/F,QAAO,MAAM,KAAK,QAAQ,EAAE,aAAa,CAAC;EAC1C;AAEF,MAAM,wFAAgD,OAAO,gBAAoC;AAC/F,KAAI,eAAe,KACjB;AAEF,KAAI,OAAO,WAAW,YACpB,QAAO,SAAS,QAAQ,YAAY;EAEtC;AAEF,SAAgB,QAAQ,OAAsE;CAC5F,MAAM,gCAAe,EAAE,IAAI,eAAe,CAAC;CAC3C,MAAM,cAAc,MAAM,cAAc;AAExC,KAAI,KACF,4CAAI,aAAa,MAAM,YAAY,CAAC;KAEpC,4CAAI,gCAAgC,YAAY,CAAC;AAGnD,QAAO,2CAACA;EAAsB,MAAK;EAAY,UAAU,MAAM;GAAY"}
@@ -1 +1 @@
1
- {"version":3,"file":"sign-up.js","names":["AuthPage"],"sources":["../../src/components-page/sign-up.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY, INSTEAD EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { AuthPage } from './auth-page';\n\nexport function SignUp(props: {\n fullPage?: boolean,\n automaticRedirect?: boolean,\n noPasswordRepeat?: boolean,\n extraInfo?: React.ReactNode,\n firstTab?: 'magic-link' | 'password',\n}) {\n return <AuthPage\n fullPage={!!props.fullPage}\n type='sign-up'\n automaticRedirect={!!props.automaticRedirect}\n noPasswordRepeat={props.noPasswordRepeat}\n extraInfo={props.extraInfo}\n firstTab={props.firstTab}\n />;\n}\n"],"mappings":";;;;;;;;AAQA,SAAgB,OAAO,OAMpB;AACD,QAAO,2CAACA;EACN,UAAU,CAAC,CAAC,MAAM;EAClB,MAAK;EACL,mBAAmB,CAAC,CAAC,MAAM;EAC3B,kBAAkB,MAAM;EACxB,WAAW,MAAM;EACjB,UAAU,MAAM;GAChB"}
1
+ {"version":3,"file":"sign-up.js","names":["AuthPage"],"sources":["../../src/components-page/sign-up.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { AuthPage } from './auth-page';\n\nexport function SignUp(props: {\n fullPage?: boolean,\n automaticRedirect?: boolean,\n noPasswordRepeat?: boolean,\n extraInfo?: React.ReactNode,\n firstTab?: 'magic-link' | 'password',\n}) {\n return <AuthPage\n fullPage={!!props.fullPage}\n type='sign-up'\n automaticRedirect={!!props.automaticRedirect}\n noPasswordRepeat={props.noPasswordRepeat}\n extraInfo={props.extraInfo}\n firstTab={props.firstTab}\n />;\n}\n"],"mappings":";;;;;;;;AAQA,SAAgB,OAAO,OAMpB;AACD,QAAO,2CAACA;EACN,UAAU,CAAC,CAAC,MAAM;EAClB,MAAK;EACL,mBAAmB,CAAC,CAAC,MAAM;EAC3B,kBAAkB,MAAM;EACxB,WAAW,MAAM;EACjB,UAAU,MAAM;GAChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"team-creation.js","names":["MessageCard","MaybeFullPage","Typography","Label","Input","FormWarningText","Button"],"sources":["../../src/components-page/team-creation.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY, INSTEAD EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport { yupObject, yupString } from \"@hexclave/shared/dist/schema-fields\";\nimport { runAsynchronously } from \"@hexclave/shared/dist/utils/promises\";\nimport { Button, Input, Label, Typography } from \"@hexclave/ui\";\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport * as yup from \"yup\";\nimport { MessageCard, useStackApp, useUser } from \"..\";\nimport { FormWarningText } from \"../components/elements/form-warning\";\nimport { MaybeFullPage } from \"../components/elements/maybe-full-page\";\nimport { useTranslation } from \"../lib/translations\";\n\nexport function TeamCreation(props: { fullPage?: boolean }) {\n const { t } = useTranslation();\n\n const schema = yupObject({\n displayName: yupString().defined().nonEmpty(t('Please enter a team name')),\n });\n\n const { register, handleSubmit, formState: { errors } } = useForm({\n resolver: yupResolver(schema)\n });\n const app = useStackApp();\n const project = app.useProject();\n const user = useUser({ or: 'redirect' });\n const [loading, setLoading] = useState(false);\n const navigate = app.useNavigate();\n\n if (!project.config.clientTeamCreationEnabled) {\n return <MessageCard title={t('Team creation is not enabled')} />;\n }\n\n const onSubmit = async (data: yup.InferType<typeof schema>) => {\n setLoading(true);\n\n try {\n const team = await user.createTeam({ displayName: data.displayName });\n navigate(`${app.urls.handler}/team-settings/${team.id}`);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <MaybeFullPage fullPage={!!props.fullPage}>\n <div className='stack-scope flex flex-col items-stretch' style={{ maxWidth: '380px', flexBasis: '380px', padding: props.fullPage ? '1rem' : 0 }}>\n <div className=\"text-center mb-6\">\n <Typography type='h2'>\n {t('Create a Team')}\n </Typography>\n </div>\n <form\n className=\"flex flex-col items-stretch stack-scope\"\n onSubmit={e => runAsynchronously(handleSubmit(onSubmit)(e))}\n noValidate\n >\n <Label htmlFor=\"display-name\" className=\"mb-1\">{t('Display name')}</Label>\n <Input\n id=\"display-name\"\n {...register('displayName')}\n />\n <FormWarningText text={errors.displayName?.message?.toString()} />\n\n <Button type=\"submit\" className=\"mt-6\" loading={loading}>\n {t('Create')}\n </Button>\n </form>\n </div>\n </MaybeFullPage>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAmBA,SAAgB,aAAa,OAA+B;CAC1D,MAAM,EAAE,kDAAsB;CAM9B,MAAM,EAAE,UAAU,cAAc,WAAW,EAAE,0CAAqB,EAChE,sGALuB,EACvB,iEAAwB,CAAC,SAAS,CAAC,SAAS,EAAE,2BAA2B,CAAC,EAC3E,CAAC,CAG6B,EAC9B,CAAC;CACF,MAAM,oCAAmB;CACzB,MAAM,UAAU,IAAI,YAAY;CAChC,MAAM,gCAAe,EAAE,IAAI,YAAY,CAAC;CACxC,MAAM,CAAC,SAAS,kCAAuB,MAAM;CAC7C,MAAM,WAAW,IAAI,aAAa;AAElC,KAAI,CAAC,QAAQ,OAAO,0BAClB,QAAO,2CAACA,2BAAY,OAAO,EAAE,+BAA+B,GAAI;CAGlE,MAAM,WAAW,OAAO,SAAuC;AAC7D,aAAW,KAAK;AAEhB,MAAI;GACF,MAAM,OAAO,MAAM,KAAK,WAAW,EAAE,aAAa,KAAK,aAAa,CAAC;AACrE,YAAS,GAAG,IAAI,KAAK,QAAQ,iBAAiB,KAAK,KAAK;YAChD;AACR,cAAW,MAAM;;;AAIrB,QACE,2CAACC;EAAc,UAAU,CAAC,CAAC,MAAM;YAC/B,4CAAC;GAAI,WAAU;GAA0C,OAAO;IAAE,UAAU;IAAS,WAAW;IAAS,SAAS,MAAM,WAAW,SAAS;IAAG;cAC7I,2CAAC;IAAI,WAAU;cACb,2CAACC;KAAW,MAAK;eACd,EAAE,gBAAgB;MACR;KACT,EACN,4CAAC;IACC,WAAU;IACV,WAAU,kEAAuB,aAAa,SAAS,CAAC,EAAE,CAAC;IAC3D;;KAEA,2CAACC;MAAM,SAAQ;MAAe,WAAU;gBAAQ,EAAE,eAAe;OAAS;KAC1E,2CAACC;MACC,IAAG;MACH,GAAI,SAAS,cAAc;OAC3B;KACF,2CAACC,0DAAgB,MAAM,OAAO,aAAa,SAAS,UAAU,GAAI;KAElE,2CAACC;MAAO,MAAK;MAAS,WAAU;MAAgB;gBAC7C,EAAE,SAAS;OACL;;KACJ;IACH;GACQ"}
1
+ {"version":3,"file":"team-creation.js","names":["MessageCard","MaybeFullPage","Typography","Label","Input","FormWarningText","Button"],"sources":["../../src/components-page/team-creation.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport { yupObject, yupString } from \"@hexclave/shared/dist/schema-fields\";\nimport { runAsynchronously } from \"@hexclave/shared/dist/utils/promises\";\nimport { Button, Input, Label, Typography } from \"@hexclave/ui\";\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport * as yup from \"yup\";\nimport { MessageCard, useStackApp, useUser } from \"..\";\nimport { FormWarningText } from \"../components/elements/form-warning\";\nimport { MaybeFullPage } from \"../components/elements/maybe-full-page\";\nimport { useTranslation } from \"../lib/translations\";\n\nexport function TeamCreation(props: { fullPage?: boolean }) {\n const { t } = useTranslation();\n\n const schema = yupObject({\n displayName: yupString().defined().nonEmpty(t('Please enter a team name')),\n });\n\n const { register, handleSubmit, formState: { errors } } = useForm({\n resolver: yupResolver(schema)\n });\n const app = useStackApp();\n const project = app.useProject();\n const user = useUser({ or: 'redirect' });\n const [loading, setLoading] = useState(false);\n const navigate = app.useNavigate();\n\n if (!project.config.clientTeamCreationEnabled) {\n return <MessageCard title={t('Team creation is not enabled')} />;\n }\n\n const onSubmit = async (data: yup.InferType<typeof schema>) => {\n setLoading(true);\n\n try {\n const team = await user.createTeam({ displayName: data.displayName });\n navigate(`${app.urls.handler}/team-settings/${team.id}`);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <MaybeFullPage fullPage={!!props.fullPage}>\n <div className='stack-scope flex flex-col items-stretch' style={{ maxWidth: '380px', flexBasis: '380px', padding: props.fullPage ? '1rem' : 0 }}>\n <div className=\"text-center mb-6\">\n <Typography type='h2'>\n {t('Create a Team')}\n </Typography>\n </div>\n <form\n className=\"flex flex-col items-stretch stack-scope\"\n onSubmit={e => runAsynchronously(handleSubmit(onSubmit)(e))}\n noValidate\n >\n <Label htmlFor=\"display-name\" className=\"mb-1\">{t('Display name')}</Label>\n <Input\n id=\"display-name\"\n {...register('displayName')}\n />\n <FormWarningText text={errors.displayName?.message?.toString()} />\n\n <Button type=\"submit\" className=\"mt-6\" loading={loading}>\n {t('Create')}\n </Button>\n </form>\n </div>\n </MaybeFullPage>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAmBA,SAAgB,aAAa,OAA+B;CAC1D,MAAM,EAAE,kDAAsB;CAM9B,MAAM,EAAE,UAAU,cAAc,WAAW,EAAE,0CAAqB,EAChE,sGALuB,EACvB,iEAAwB,CAAC,SAAS,CAAC,SAAS,EAAE,2BAA2B,CAAC,EAC3E,CAAC,CAG6B,EAC9B,CAAC;CACF,MAAM,oCAAmB;CACzB,MAAM,UAAU,IAAI,YAAY;CAChC,MAAM,gCAAe,EAAE,IAAI,YAAY,CAAC;CACxC,MAAM,CAAC,SAAS,kCAAuB,MAAM;CAC7C,MAAM,WAAW,IAAI,aAAa;AAElC,KAAI,CAAC,QAAQ,OAAO,0BAClB,QAAO,2CAACA,2BAAY,OAAO,EAAE,+BAA+B,GAAI;CAGlE,MAAM,WAAW,OAAO,SAAuC;AAC7D,aAAW,KAAK;AAEhB,MAAI;GACF,MAAM,OAAO,MAAM,KAAK,WAAW,EAAE,aAAa,KAAK,aAAa,CAAC;AACrE,YAAS,GAAG,IAAI,KAAK,QAAQ,iBAAiB,KAAK,KAAK;YAChD;AACR,cAAW,MAAM;;;AAIrB,QACE,2CAACC;EAAc,UAAU,CAAC,CAAC,MAAM;YAC/B,4CAAC;GAAI,WAAU;GAA0C,OAAO;IAAE,UAAU;IAAS,WAAW;IAAS,SAAS,MAAM,WAAW,SAAS;IAAG;cAC7I,2CAAC;IAAI,WAAU;cACb,2CAACC;KAAW,MAAK;eACd,EAAE,gBAAgB;MACR;KACT,EACN,4CAAC;IACC,WAAU;IACV,WAAU,kEAAuB,aAAa,SAAS,CAAC,EAAE,CAAC;IAC3D;;KAEA,2CAACC;MAAM,SAAQ;MAAe,WAAU;gBAAQ,EAAE,eAAe;OAAS;KAC1E,2CAACC;MACC,IAAG;MACH,GAAI,SAAS,cAAc;OAC3B;KACF,2CAACC,0DAAgB,MAAM,OAAO,aAAa,SAAS,UAAU,GAAI;KAElE,2CAACC;MAAO,MAAK;MAAS,WAAU;MAAgB;gBAC7C,EAAE,SAAS;OACL;;KACJ;IACH;GACQ"}
@@ -10,23 +10,23 @@ let ___index_js = require("../index.js");
10
10
  let ___lib_translations_js = require("../lib/translations.js");
11
11
  let react_jsx_runtime = require("react/jsx-runtime");
12
12
  let _hexclave_shared = require("@hexclave/shared");
13
+ let _hexclave_shared_dist_utils_react = require("@hexclave/shared/dist/utils/react");
13
14
  let ___components_message_cards_predefined_message_card_js = require("../components/message-cards/predefined-message-card.js");
14
15
  let _hexclave_shared_dist_utils_caches = require("@hexclave/shared/dist/utils/caches");
15
- let _hexclave_shared_dist_utils_react = require("@hexclave/shared/dist/utils/react");
16
16
 
17
17
  //#region src/components-page/team-invitation.tsx
18
- const cachedVerifyInvitation = (0, _hexclave_shared_dist_utils_caches.cacheFunction)(async (stackApp, code) => {
19
- return await stackApp.verifyTeamInvitationCode(code);
18
+ const cachedVerifyInvitation = (0, _hexclave_shared_dist_utils_caches.cacheFunction)(async (hexclaveApp, code) => {
19
+ return await hexclaveApp.verifyTeamInvitationCode(code);
20
20
  });
21
- const cachedGetInvitationDetails = (0, _hexclave_shared_dist_utils_caches.cacheFunction)(async (stackApp, code) => {
22
- return await stackApp.getTeamInvitationDetails(code);
21
+ const cachedGetInvitationDetails = (0, _hexclave_shared_dist_utils_caches.cacheFunction)(async (hexclaveApp, code) => {
22
+ return await hexclaveApp.getTeamInvitationDetails(code);
23
23
  });
24
24
  function TeamInvitationInner(props) {
25
25
  const { t } = (0, ___lib_translations_js.useTranslation)();
26
- const stackApp = (0, ___index_js.useStackApp)();
26
+ const hexclaveApp = (0, ___index_js.useStackApp)();
27
27
  const [success, setSuccess] = react.default.useState(false);
28
28
  const [errorMessage, setErrorMessage] = react.default.useState(null);
29
- const details = (0, _hexclave_shared_dist_utils_react.use)(cachedGetInvitationDetails(stackApp, props.searchParams.code || ""));
29
+ const details = (0, _hexclave_shared_dist_utils_react.use)(cachedGetInvitationDetails(hexclaveApp, props.searchParams.code || ""));
30
30
  if (errorMessage || details.status === "error") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(___components_message_cards_predefined_message_card_js.PredefinedMessageCard, {
31
31
  type: "unknownError",
32
32
  fullPage: props.fullPage
@@ -35,7 +35,7 @@ function TeamInvitationInner(props) {
35
35
  title: t("Team invitation"),
36
36
  fullPage: props.fullPage,
37
37
  primaryButtonText: "Go home",
38
- primaryAction: () => stackApp.redirectToHome(),
38
+ primaryAction: () => hexclaveApp.redirectToHome(),
39
39
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_hexclave_ui.Typography, { children: ["You have successfully joined ", details.data.teamDisplayName] })
40
40
  });
41
41
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(___index_js.MessageCard, {
@@ -43,19 +43,19 @@ function TeamInvitationInner(props) {
43
43
  fullPage: props.fullPage,
44
44
  primaryButtonText: t("Join"),
45
45
  primaryAction: () => (0, _hexclave_shared_dist_utils_promises.runAsynchronouslyWithAlert)(async () => {
46
- const result = await stackApp.acceptTeamInvitation(props.searchParams.code || "");
46
+ const result = await hexclaveApp.acceptTeamInvitation(props.searchParams.code || "");
47
47
  if (result.status === "error") setErrorMessage(result.error.message);
48
48
  else setSuccess(true);
49
49
  }),
50
50
  secondaryButtonText: t("Ignore"),
51
- secondaryAction: () => stackApp.redirectToHome(),
51
+ secondaryAction: () => hexclaveApp.redirectToHome(),
52
52
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_hexclave_ui.Typography, { children: ["You are invited to join ", details.data.teamDisplayName] })
53
53
  });
54
54
  }
55
55
  function TeamInvitation({ fullPage = false, searchParams }) {
56
56
  const { t } = (0, ___lib_translations_js.useTranslation)();
57
57
  const user = (0, ___index_js.useUser)({ includeRestricted: true });
58
- const stackApp = (0, ___index_js.useStackApp)();
58
+ const hexclaveApp = (0, ___index_js.useStackApp)();
59
59
  const invalidJsx = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(___index_js.MessageCard, {
60
60
  title: t("Invalid Team Invitation Link"),
61
61
  fullPage,
@@ -76,21 +76,21 @@ function TeamInvitation({ fullPage = false, searchParams }) {
76
76
  title: t("Team invitation"),
77
77
  fullPage,
78
78
  primaryButtonText: t("Sign in"),
79
- primaryAction: () => stackApp.redirectToSignIn(),
79
+ primaryAction: () => hexclaveApp.redirectToSignIn(),
80
80
  secondaryButtonText: t("Cancel"),
81
- secondaryAction: () => stackApp.redirectToHome(),
81
+ secondaryAction: () => hexclaveApp.redirectToHome(),
82
82
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_hexclave_ui.Typography, { children: t("Sign in or create an account to join the team.") })
83
83
  });
84
84
  if (user.isRestricted) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(___index_js.MessageCard, {
85
85
  title: t("Complete your account setup"),
86
86
  fullPage,
87
87
  primaryButtonText: t("Complete setup"),
88
- primaryAction: () => stackApp.redirectToOnboarding(),
88
+ primaryAction: () => hexclaveApp.redirectToOnboarding(),
89
89
  secondaryButtonText: t("Cancel"),
90
- secondaryAction: () => stackApp.redirectToHome(),
90
+ secondaryAction: () => hexclaveApp.redirectToHome(),
91
91
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_hexclave_ui.Typography, { children: t("Please complete your account setup before joining teams.") })
92
92
  });
93
- const verificationResult = (0, _hexclave_shared_dist_utils_react.use)(cachedVerifyInvitation(stackApp, searchParams.code || ""));
93
+ const verificationResult = (0, _hexclave_shared_dist_utils_react.use)(cachedVerifyInvitation(hexclaveApp, searchParams.code || ""));
94
94
  if (verificationResult.status === "error") {
95
95
  const error = verificationResult.error;
96
96
  if (_hexclave_shared.KnownErrors.VerificationCodeNotFound.isInstance(error)) return invalidJsx;
@@ -1 +1 @@
1
- {"version":3,"file":"team-invitation.js","names":["React","PredefinedMessageCard","MessageCard","Typography","KnownErrors"],"sources":["../../src/components-page/team-invitation.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY, INSTEAD EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { KnownErrors } from \"@hexclave/shared\";\nimport { cacheFunction } from \"@hexclave/shared/dist/utils/caches\";\nimport { runAsynchronouslyWithAlert } from \"@hexclave/shared/dist/utils/promises\";\nimport { use } from \"@hexclave/shared/dist/utils/react\";\nimport { Typography } from \"@hexclave/ui\";\nimport React from \"react\";\nimport { MessageCard, StackClientApp, useStackApp, useUser } from \"..\";\nimport { PredefinedMessageCard } from \"../components/message-cards/predefined-message-card\";\nimport { useTranslation } from \"../lib/translations\";\n\nconst cachedVerifyInvitation = cacheFunction(async (stackApp: StackClientApp<true>, code: string) => {\n return await stackApp.verifyTeamInvitationCode(code);\n});\n\nconst cachedGetInvitationDetails = cacheFunction(async (stackApp: StackClientApp<true>, code: string) => {\n return await stackApp.getTeamInvitationDetails(code);\n});\n\nfunction TeamInvitationInner(props: { fullPage?: boolean, searchParams: Record<string, string> }) {\n const { t } = useTranslation();\n const stackApp = useStackApp();\n const [success, setSuccess] = React.useState(false);\n const [errorMessage, setErrorMessage] = React.useState<string | null>(null);\n const details = use(cachedGetInvitationDetails(stackApp, props.searchParams.code || ''));\n\n if (errorMessage || details.status === 'error') {\n return (\n <PredefinedMessageCard type=\"unknownError\" fullPage={props.fullPage} />\n );\n }\n\n if (success) {\n return (\n <MessageCard\n title={t('Team invitation')}\n fullPage={props.fullPage}\n primaryButtonText=\"Go home\"\n primaryAction={() => stackApp.redirectToHome()}\n >\n <Typography>You have successfully joined {details.data.teamDisplayName}</Typography>\n </MessageCard>\n );\n }\n\n\n return (\n <MessageCard\n title={t('Team invitation')}\n fullPage={props.fullPage}\n primaryButtonText={t('Join')}\n primaryAction={() => runAsynchronouslyWithAlert(async () => {\n const result = await stackApp.acceptTeamInvitation(props.searchParams.code || '');\n if (result.status === 'error') {\n setErrorMessage(result.error.message);\n } else {\n setSuccess(true);\n }\n })}\n secondaryButtonText={t('Ignore')}\n secondaryAction={() => stackApp.redirectToHome()}\n >\n <Typography>You are invited to join {details.data.teamDisplayName}</Typography>\n </MessageCard>\n );\n}\n\nexport function TeamInvitation({ fullPage=false, searchParams }: { fullPage?: boolean, searchParams: Record<string, string> }) {\n const { t } = useTranslation();\n // Include restricted users to detect if user needs to complete onboarding\n const user = useUser({ includeRestricted: true });\n const stackApp = useStackApp();\n\n const invalidJsx = (\n <MessageCard title={t('Invalid Team Invitation Link')} fullPage={fullPage}>\n <Typography>{t('Please double check if you have the correct team invitation link.')}</Typography>\n </MessageCard>\n );\n\n const expiredJsx = (\n <MessageCard title={t('Expired Team Invitation Link')} fullPage={fullPage}>\n <Typography>{t('Your team invitation link has expired. Please request a new team invitation link ')}</Typography>\n </MessageCard>\n );\n\n const usedJsx = (\n <MessageCard title={t('Used Team Invitation Link')} fullPage={fullPage}>\n <Typography>{t('This team invitation link has already been used.')}</Typography>\n </MessageCard>\n );\n\n const code = searchParams.code;\n if (!code) {\n return invalidJsx;\n }\n\n if (!user) {\n return (\n <MessageCard\n title={t('Team invitation')}\n fullPage={fullPage}\n primaryButtonText={t('Sign in')}\n primaryAction={() => stackApp.redirectToSignIn()}\n secondaryButtonText={t('Cancel')}\n secondaryAction={() => stackApp.redirectToHome()}\n >\n <Typography>{t('Sign in or create an account to join the team.')}</Typography>\n </MessageCard>\n );\n }\n\n // User is restricted (needs to complete onboarding) - redirect to onboarding\n if (user.isRestricted) {\n return (\n <MessageCard\n title={t('Complete your account setup')}\n fullPage={fullPage}\n primaryButtonText={t('Complete setup')}\n primaryAction={() => stackApp.redirectToOnboarding()}\n secondaryButtonText={t('Cancel')}\n secondaryAction={() => stackApp.redirectToHome()}\n >\n <Typography>{t('Please complete your account setup before joining teams.')}</Typography>\n </MessageCard>\n );\n }\n\n const verificationResult = use(cachedVerifyInvitation(stackApp, searchParams.code || ''));\n\n if (verificationResult.status === 'error') {\n const error = verificationResult.error;\n if (KnownErrors.VerificationCodeNotFound.isInstance(error)) {\n return invalidJsx;\n } else if (KnownErrors.VerificationCodeExpired.isInstance(error)) {\n return expiredJsx;\n } else if (KnownErrors.VerificationCodeAlreadyUsed.isInstance(error)) {\n return usedJsx;\n } else {\n throw error;\n }\n }\n\n return <TeamInvitationInner fullPage={fullPage} searchParams={searchParams} />;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"team-invitation.js","names":["React","PredefinedMessageCard","MessageCard","Typography","KnownErrors"],"sources":["../../src/components-page/team-invitation.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { KnownErrors } from \"@hexclave/shared\";\nimport { cacheFunction } from \"@hexclave/shared/dist/utils/caches\";\nimport { runAsynchronouslyWithAlert } from \"@hexclave/shared/dist/utils/promises\";\nimport { use } from \"@hexclave/shared/dist/utils/react\";\nimport { Typography } from \"@hexclave/ui\";\nimport React from \"react\";\nimport { MessageCard, StackClientApp, useStackApp, useUser } from \"..\";\nimport { PredefinedMessageCard } from \"../components/message-cards/predefined-message-card\";\nimport { useTranslation } from \"../lib/translations\";\n\nconst cachedVerifyInvitation = cacheFunction(async (hexclaveApp: StackClientApp<true>, code: string) => {\n return await hexclaveApp.verifyTeamInvitationCode(code);\n});\n\nconst cachedGetInvitationDetails = cacheFunction(async (hexclaveApp: StackClientApp<true>, code: string) => {\n return await hexclaveApp.getTeamInvitationDetails(code);\n});\n\nfunction TeamInvitationInner(props: { fullPage?: boolean, searchParams: Record<string, string> }) {\n const { t } = useTranslation();\n const hexclaveApp = useStackApp();\n const [success, setSuccess] = React.useState(false);\n const [errorMessage, setErrorMessage] = React.useState<string | null>(null);\n const details = use(cachedGetInvitationDetails(hexclaveApp, props.searchParams.code || ''));\n\n if (errorMessage || details.status === 'error') {\n return (\n <PredefinedMessageCard type=\"unknownError\" fullPage={props.fullPage} />\n );\n }\n\n if (success) {\n return (\n <MessageCard\n title={t('Team invitation')}\n fullPage={props.fullPage}\n primaryButtonText=\"Go home\"\n primaryAction={() => hexclaveApp.redirectToHome()}\n >\n <Typography>You have successfully joined {details.data.teamDisplayName}</Typography>\n </MessageCard>\n );\n }\n\n\n return (\n <MessageCard\n title={t('Team invitation')}\n fullPage={props.fullPage}\n primaryButtonText={t('Join')}\n primaryAction={() => runAsynchronouslyWithAlert(async () => {\n const result = await hexclaveApp.acceptTeamInvitation(props.searchParams.code || '');\n if (result.status === 'error') {\n setErrorMessage(result.error.message);\n } else {\n setSuccess(true);\n }\n })}\n secondaryButtonText={t('Ignore')}\n secondaryAction={() => hexclaveApp.redirectToHome()}\n >\n <Typography>You are invited to join {details.data.teamDisplayName}</Typography>\n </MessageCard>\n );\n}\n\nexport function TeamInvitation({ fullPage=false, searchParams }: { fullPage?: boolean, searchParams: Record<string, string> }) {\n const { t } = useTranslation();\n // Include restricted users to detect if user needs to complete onboarding\n const user = useUser({ includeRestricted: true });\n const hexclaveApp = useStackApp();\n\n const invalidJsx = (\n <MessageCard title={t('Invalid Team Invitation Link')} fullPage={fullPage}>\n <Typography>{t('Please double check if you have the correct team invitation link.')}</Typography>\n </MessageCard>\n );\n\n const expiredJsx = (\n <MessageCard title={t('Expired Team Invitation Link')} fullPage={fullPage}>\n <Typography>{t('Your team invitation link has expired. Please request a new team invitation link ')}</Typography>\n </MessageCard>\n );\n\n const usedJsx = (\n <MessageCard title={t('Used Team Invitation Link')} fullPage={fullPage}>\n <Typography>{t('This team invitation link has already been used.')}</Typography>\n </MessageCard>\n );\n\n const code = searchParams.code;\n if (!code) {\n return invalidJsx;\n }\n\n if (!user) {\n return (\n <MessageCard\n title={t('Team invitation')}\n fullPage={fullPage}\n primaryButtonText={t('Sign in')}\n primaryAction={() => hexclaveApp.redirectToSignIn()}\n secondaryButtonText={t('Cancel')}\n secondaryAction={() => hexclaveApp.redirectToHome()}\n >\n <Typography>{t('Sign in or create an account to join the team.')}</Typography>\n </MessageCard>\n );\n }\n\n // User is restricted (needs to complete onboarding) - redirect to onboarding\n if (user.isRestricted) {\n return (\n <MessageCard\n title={t('Complete your account setup')}\n fullPage={fullPage}\n primaryButtonText={t('Complete setup')}\n primaryAction={() => hexclaveApp.redirectToOnboarding()}\n secondaryButtonText={t('Cancel')}\n secondaryAction={() => hexclaveApp.redirectToHome()}\n >\n <Typography>{t('Please complete your account setup before joining teams.')}</Typography>\n </MessageCard>\n );\n }\n\n const verificationResult = use(cachedVerifyInvitation(hexclaveApp, searchParams.code || ''));\n\n if (verificationResult.status === 'error') {\n const error = verificationResult.error;\n if (KnownErrors.VerificationCodeNotFound.isInstance(error)) {\n return invalidJsx;\n } else if (KnownErrors.VerificationCodeExpired.isInstance(error)) {\n return expiredJsx;\n } else if (KnownErrors.VerificationCodeAlreadyUsed.isInstance(error)) {\n return usedJsx;\n } else {\n throw error;\n }\n }\n\n return <TeamInvitationInner fullPage={fullPage} searchParams={searchParams} />;\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { StackClientApp } from "../lib/stack-app/apps/interfaces/client-app.js";
1
+ import { StackClientApp } from "../lib/hexclave-app/apps/interfaces/client-app.js";
2
2
 
3
3
  //#region src/dev-tool/dev-tool-core.d.ts
4
4
  declare function createDevTool(app: StackClientApp<true>): () => void;
@@ -1,11 +1,11 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  const require_chunk = require('../chunk-BE-pF4vm.js');
3
3
  let _hexclave_shared_dist_utils_promises = require("@hexclave/shared/dist/utils/promises");
4
- let ___lib_stack_app_common_js = require("../lib/stack-app/common.js");
4
+ let ___lib_hexclave_app_common_js = require("../lib/hexclave-app/common.js");
5
5
  let _hexclave_shared_dist_utils_urls = require("@hexclave/shared/dist/utils/urls");
6
- let ___lib_stack_app_url_targets_js = require("../lib/stack-app/url-targets.js");
6
+ let ___lib_hexclave_app_url_targets_js = require("../lib/hexclave-app/url-targets.js");
7
7
  let ___lib_env_js = require("../lib/env.js");
8
- let ___lib_stack_app_apps_implementations_common_js = require("../lib/stack-app/apps/implementations/common.js");
8
+ let ___lib_hexclave_app_apps_implementations_common_js = require("../lib/hexclave-app/apps/implementations/common.js");
9
9
  let __dev_tool_styles_js = require("./dev-tool-styles.js");
10
10
  let __dev_tool_trigger_position_js = require("./dev-tool-trigger-position.js");
11
11
 
@@ -148,7 +148,7 @@ function nextId() {
148
148
  return `sdt-${++_idCounter}-${Date.now()}`;
149
149
  }
150
150
  function resolveApiBaseUrl(app) {
151
- return (0, ___lib_stack_app_apps_implementations_common_js.getBaseUrl)(app[___lib_stack_app_common_js.stackAppInternalsSymbol].getConstructorOptions().baseUrl);
151
+ return (0, ___lib_hexclave_app_apps_implementations_common_js.getBaseUrl)(app[___lib_hexclave_app_common_js.hexclaveAppInternalsSymbol].getConstructorOptions().baseUrl);
152
152
  }
153
153
  function shouldShowDashboardTab(app) {
154
154
  return ___lib_env_js.envVars.NEXT_PUBLIC_STACK_IS_LOCAL_EMULATOR === "true" && (0, _hexclave_shared_dist_utils_urls.isLocalhost)(resolveApiBaseUrl(app));
@@ -942,7 +942,7 @@ function createConsoleTab(logStore) {
942
942
  const url = URL.createObjectURL(blob);
943
943
  const link = h("a", {
944
944
  href: url,
945
- download: `stack-auth-dev-tool-logs-${(/* @__PURE__ */ new Date()).toISOString()}.txt`
945
+ download: `hexclave-dev-tool-logs-${(/* @__PURE__ */ new Date()).toISOString()}.txt`
946
946
  });
947
947
  document.body.appendChild(link);
948
948
  link.click();
@@ -991,7 +991,7 @@ function createAITab(app) {
991
991
  }
992
992
  ];
993
993
  function getHeaders() {
994
- const opts = app[___lib_stack_app_common_js.stackAppInternalsSymbol].getConstructorOptions();
994
+ const opts = app[___lib_hexclave_app_common_js.hexclaveAppInternalsSymbol].getConstructorOptions();
995
995
  const headers = {
996
996
  "X-Hexclave-Access-Type": "client",
997
997
  "X-Hexclave-Project-Id": app.projectId
@@ -1662,7 +1662,7 @@ function createComponentsTab(app) {
1662
1662
  const container = h("div", { className: "sdt-pg-layout" });
1663
1663
  const apiBaseUrl = resolveApiBaseUrl(app);
1664
1664
  const urls = app.urls;
1665
- const urlOptions = app[___lib_stack_app_common_js.stackAppInternalsSymbol].getConstructorOptions().urls ?? {};
1665
+ const urlOptions = app[___lib_hexclave_app_common_js.hexclaveAppInternalsSymbol].getConstructorOptions().urls ?? {};
1666
1666
  const PAGE_ENTRIES = [
1667
1667
  {
1668
1668
  key: "signIn",
@@ -1811,7 +1811,7 @@ function createComponentsTab(app) {
1811
1811
  }, getCompactUrl(page.url)));
1812
1812
  if (page.versionStatus === "outdated") headerTop.appendChild(h("span", { className: "sdt-pg-badge sdt-pg-badge-outdated" }, "Outdated"));
1813
1813
  header.appendChild(headerTop);
1814
- const redirectMethod = `stackApp.redirectTo${page.key.charAt(0).toUpperCase()}${page.key.slice(1)}()`;
1814
+ const redirectMethod = `hexclaveApp.redirectTo${page.key.charAt(0).toUpperCase()}${page.key.slice(1)}()`;
1815
1815
  const codeRow = h("div", { className: "sdt-pg-code-inline" });
1816
1816
  codeRow.appendChild(h("code", { className: "sdt-pg-code" }, redirectMethod));
1817
1817
  const openBtn = h("button", { className: "sdt-pg-copy-btn sdt-pg-open-btn" });
@@ -1823,7 +1823,7 @@ function createComponentsTab(app) {
1823
1823
  codeRow.appendChild(openBtn);
1824
1824
  header.appendChild(codeRow);
1825
1825
  detail.appendChild(header);
1826
- const prompt = (0, ___lib_stack_app_url_targets_js.getPagePrompt)(page.key, page.version ?? void 0);
1826
+ const prompt = (0, ___lib_hexclave_app_url_targets_js.getPagePrompt)(page.key, page.version ?? void 0);
1827
1827
  if (prompt) {
1828
1828
  const isOutdated = page.versionStatus === "outdated";
1829
1829
  if (page.classification === "handler-component" || page.classification === "hosted" || isOutdated) {
@@ -2034,7 +2034,7 @@ function createDevTool(app) {
2034
2034
  const root = document.createElement("div");
2035
2035
  root.id = ROOT_ID;
2036
2036
  body.appendChild(root);
2037
- const wrapper = h("div", { className: "stack-devtool" });
2037
+ const wrapper = h("div", { className: "hexclave-devtool" });
2038
2038
  root.appendChild(wrapper);
2039
2039
  const style = document.createElement("style");
2040
2040
  style.textContent = __dev_tool_styles_js.devToolCSS;
@@ -2071,7 +2071,7 @@ function createDevTool(app) {
2071
2071
  const trigger = createTrigger(togglePanel);
2072
2072
  wrapper.appendChild(trigger.element);
2073
2073
  if (state.get().isOpen) openPanel();
2074
- const removeRequestListener = app[___lib_stack_app_common_js.stackAppInternalsSymbol].addRequestListener((entry) => {
2074
+ const removeRequestListener = app[___lib_hexclave_app_common_js.hexclaveAppInternalsSymbol].addRequestListener((entry) => {
2075
2075
  const timestamp = Date.now();
2076
2076
  logStore.addApiLog({
2077
2077
  id: nextId(),