@hexclave/next 1.0.40 → 1.0.42

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 (1114) hide show
  1. package/dist/account-settings-cTsj8rpJ.d.ts +56 -0
  2. package/dist/account-settings-cTsj8rpJ.d.ts.map +1 -0
  3. package/dist/admin-app-impl-B4i11dbJ.d.ts +1282 -0
  4. package/dist/admin-app-impl-B4i11dbJ.d.ts.map +1 -0
  5. package/dist/auth-page-YnM_LtbN.d.ts +24 -0
  6. package/dist/auth-page-YnM_LtbN.d.ts.map +1 -0
  7. package/dist/cli-auth-confirm-BW3PYpKb.d.ts +19 -0
  8. package/dist/cli-auth-confirm-BW3PYpKb.d.ts.map +1 -0
  9. package/dist/clickmap/clickmap-core.d.ts +1 -2
  10. package/dist/clickmap/clickmap-core.d.ts.map +1 -1
  11. package/dist/clickmap/clickmap-core.js +2 -4
  12. package/dist/clickmap/clickmap-core.js.map +1 -1
  13. package/dist/clickmap/clickmap-styles.js +3 -6
  14. package/dist/clickmap/clickmap-styles.js.map +1 -1
  15. package/dist/clickmap/index.d.ts +1 -2
  16. package/dist/clickmap/index.d.ts.map +1 -1
  17. package/dist/clickmap/index.js +2 -4
  18. package/dist/clickmap/index.js.map +1 -1
  19. package/dist/client-app-Bi8p4lxS.d.ts +1359 -0
  20. package/dist/client-app-Bi8p4lxS.d.ts.map +1 -0
  21. package/dist/common-B2gkWlXX.d.ts +183 -0
  22. package/dist/common-B2gkWlXX.d.ts.map +1 -0
  23. package/dist/common-BK_sydxF.d.ts +66 -0
  24. package/dist/common-BK_sydxF.d.ts.map +1 -0
  25. package/dist/components/api-key-dialogs.d.ts +3 -4
  26. package/dist/components/api-key-dialogs.d.ts.map +1 -1
  27. package/dist/components/api-key-dialogs.js +3 -6
  28. package/dist/components/api-key-dialogs.js.map +1 -1
  29. package/dist/components/api-key-table.d.ts +2 -3
  30. package/dist/components/api-key-table.d.ts.map +1 -1
  31. package/dist/components/api-key-table.js +3 -6
  32. package/dist/components/api-key-table.js.map +1 -1
  33. package/dist/components/credential-sign-in.d.ts +2 -7
  34. package/dist/components/credential-sign-in.js +3 -6
  35. package/dist/components/credential-sign-in.js.map +1 -1
  36. package/dist/components/credential-sign-up.d.ts +2 -9
  37. package/dist/components/credential-sign-up.js +6 -8
  38. package/dist/components/credential-sign-up.js.map +1 -1
  39. package/dist/components/elements/form-warning.d.ts +1 -3
  40. package/dist/components/elements/form-warning.d.ts.map +1 -1
  41. package/dist/components/elements/form-warning.js +3 -6
  42. package/dist/components/elements/form-warning.js.map +1 -1
  43. package/dist/components/elements/maybe-full-page.d.ts +1 -2
  44. package/dist/components/elements/maybe-full-page.d.ts.map +1 -1
  45. package/dist/components/elements/maybe-full-page.js +4 -6
  46. package/dist/components/elements/maybe-full-page.js.map +1 -1
  47. package/dist/components/elements/separator-with-text.d.ts +1 -3
  48. package/dist/components/elements/separator-with-text.d.ts.map +1 -1
  49. package/dist/components/elements/separator-with-text.js +3 -6
  50. package/dist/components/elements/separator-with-text.js.map +1 -1
  51. package/dist/components/elements/sidebar-layout.d.ts +1 -2
  52. package/dist/components/elements/sidebar-layout.d.ts.map +1 -1
  53. package/dist/components/elements/sidebar-layout.js +5 -7
  54. package/dist/components/elements/sidebar-layout.js.map +1 -1
  55. package/dist/components/elements/ssr-layout-effect.d.ts +1 -3
  56. package/dist/components/elements/ssr-layout-effect.d.ts.map +1 -1
  57. package/dist/components/elements/ssr-layout-effect.js +2 -5
  58. package/dist/components/elements/ssr-layout-effect.js.map +1 -1
  59. package/dist/components/elements/user-avatar.d.ts +2 -15
  60. package/dist/components/elements/user-avatar.js +2 -4
  61. package/dist/components/elements/user-avatar.js.map +1 -1
  62. package/dist/components/link.d.ts +2 -4
  63. package/dist/components/link.d.ts.map +1 -1
  64. package/dist/components/link.js +5 -7
  65. package/dist/components/link.js.map +1 -1
  66. package/dist/components/magic-link-sign-in.d.ts +2 -7
  67. package/dist/components/magic-link-sign-in.js +3 -6
  68. package/dist/components/magic-link-sign-in.js.map +1 -1
  69. package/dist/components/message-cards/known-error-message-card.d.ts +1 -2
  70. package/dist/components/message-cards/known-error-message-card.d.ts.map +1 -1
  71. package/dist/components/message-cards/known-error-message-card.js +2 -5
  72. package/dist/components/message-cards/known-error-message-card.js.map +1 -1
  73. package/dist/components/message-cards/message-card.d.ts +2 -19
  74. package/dist/components/message-cards/message-card.js +5 -7
  75. package/dist/components/message-cards/message-card.js.map +1 -1
  76. package/dist/components/message-cards/predefined-message-card.d.ts +1 -3
  77. package/dist/components/message-cards/predefined-message-card.d.ts.map +1 -1
  78. package/dist/components/message-cards/predefined-message-card.js +2 -5
  79. package/dist/components/message-cards/predefined-message-card.js.map +1 -1
  80. package/dist/components/oauth-button-group.d.ts +2 -19
  81. package/dist/components/oauth-button-group.js +3 -6
  82. package/dist/components/oauth-button-group.js.map +1 -1
  83. package/dist/components/oauth-button.d.ts +2 -17
  84. package/dist/components/oauth-button.js +5 -7
  85. package/dist/components/oauth-button.js.map +1 -1
  86. package/dist/components/passkey-button.d.ts +1 -3
  87. package/dist/components/passkey-button.d.ts.map +1 -1
  88. package/dist/components/passkey-button.js +3 -6
  89. package/dist/components/passkey-button.js.map +1 -1
  90. package/dist/components/profile-image-editor.d.ts +2 -3
  91. package/dist/components/profile-image-editor.d.ts.map +1 -1
  92. package/dist/components/profile-image-editor.js +5 -6
  93. package/dist/components/profile-image-editor.js.map +1 -1
  94. package/dist/components/selected-team-switcher.d.ts +2 -31
  95. package/dist/components/selected-team-switcher.js +3 -6
  96. package/dist/components/selected-team-switcher.js.map +1 -1
  97. package/dist/components/team-icon.d.ts +2 -4
  98. package/dist/components/team-icon.d.ts.map +1 -1
  99. package/dist/components/team-icon.js +2 -4
  100. package/dist/components/team-icon.js.map +1 -1
  101. package/dist/components/team-switcher.d.ts +2 -31
  102. package/dist/components/team-switcher.js +3 -6
  103. package/dist/components/team-switcher.js.map +1 -1
  104. package/dist/components/use-in-iframe.d.ts.map +1 -1
  105. package/dist/components/use-in-iframe.js +3 -6
  106. package/dist/components/use-in-iframe.js.map +1 -1
  107. package/dist/components/user-button.d.ts +2 -22
  108. package/dist/components/user-button.js +5 -7
  109. package/dist/components/user-button.js.map +1 -1
  110. package/dist/components-page/account-settings/active-sessions/active-sessions-page.d.ts +1 -3
  111. package/dist/components-page/account-settings/active-sessions/active-sessions-page.d.ts.map +1 -1
  112. package/dist/components-page/account-settings/active-sessions/active-sessions-page.js +2 -4
  113. package/dist/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
  114. package/dist/components-page/account-settings/api-keys/api-keys-page.d.ts +1 -3
  115. package/dist/components-page/account-settings/api-keys/api-keys-page.d.ts.map +1 -1
  116. package/dist/components-page/account-settings/api-keys/api-keys-page.js +2 -4
  117. package/dist/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
  118. package/dist/components-page/account-settings/editable-text.d.ts +1 -3
  119. package/dist/components-page/account-settings/editable-text.d.ts.map +1 -1
  120. package/dist/components-page/account-settings/editable-text.js +2 -4
  121. package/dist/components-page/account-settings/editable-text.js.map +1 -1
  122. package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.d.ts +1 -3
  123. package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.d.ts.map +1 -1
  124. package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.js +2 -4
  125. package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  126. package/dist/components-page/account-settings/email-and-auth/emails-section.d.ts +1 -3
  127. package/dist/components-page/account-settings/email-and-auth/emails-section.d.ts.map +1 -1
  128. package/dist/components-page/account-settings/email-and-auth/emails-section.js +2 -4
  129. package/dist/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  130. package/dist/components-page/account-settings/email-and-auth/mfa-section.d.ts +1 -3
  131. package/dist/components-page/account-settings/email-and-auth/mfa-section.d.ts.map +1 -1
  132. package/dist/components-page/account-settings/email-and-auth/mfa-section.js +5 -6
  133. package/dist/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  134. package/dist/components-page/account-settings/email-and-auth/otp-section.d.ts +1 -3
  135. package/dist/components-page/account-settings/email-and-auth/otp-section.d.ts.map +1 -1
  136. package/dist/components-page/account-settings/email-and-auth/otp-section.js +2 -4
  137. package/dist/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  138. package/dist/components-page/account-settings/email-and-auth/passkey-section.d.ts +1 -3
  139. package/dist/components-page/account-settings/email-and-auth/passkey-section.d.ts.map +1 -1
  140. package/dist/components-page/account-settings/email-and-auth/passkey-section.js +2 -4
  141. package/dist/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  142. package/dist/components-page/account-settings/email-and-auth/password-section.d.ts +1 -3
  143. package/dist/components-page/account-settings/email-and-auth/password-section.d.ts.map +1 -1
  144. package/dist/components-page/account-settings/email-and-auth/password-section.js +4 -5
  145. package/dist/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  146. package/dist/components-page/account-settings/notifications/notifications-page.d.ts +1 -3
  147. package/dist/components-page/account-settings/notifications/notifications-page.d.ts.map +1 -1
  148. package/dist/components-page/account-settings/notifications/notifications-page.js +2 -4
  149. package/dist/components-page/account-settings/notifications/notifications-page.js.map +1 -1
  150. package/dist/components-page/account-settings/page-layout.d.ts +1 -3
  151. package/dist/components-page/account-settings/page-layout.d.ts.map +1 -1
  152. package/dist/components-page/account-settings/page-layout.js +2 -4
  153. package/dist/components-page/account-settings/page-layout.js.map +1 -1
  154. package/dist/components-page/account-settings/payments/payments-page.d.ts +2 -4
  155. package/dist/components-page/account-settings/payments/payments-page.d.ts.map +1 -1
  156. package/dist/components-page/account-settings/payments/payments-page.js +3 -6
  157. package/dist/components-page/account-settings/payments/payments-page.js.map +1 -1
  158. package/dist/components-page/account-settings/payments/payments-panel.d.ts +2 -3
  159. package/dist/components-page/account-settings/payments/payments-panel.d.ts.map +1 -1
  160. package/dist/components-page/account-settings/payments/payments-panel.js +3 -6
  161. package/dist/components-page/account-settings/payments/payments-panel.js.map +1 -1
  162. package/dist/components-page/account-settings/profile-page/profile-page.d.ts +1 -3
  163. package/dist/components-page/account-settings/profile-page/profile-page.d.ts.map +1 -1
  164. package/dist/components-page/account-settings/profile-page/profile-page.js +2 -4
  165. package/dist/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  166. package/dist/components-page/account-settings/section.d.ts +1 -3
  167. package/dist/components-page/account-settings/section.d.ts.map +1 -1
  168. package/dist/components-page/account-settings/section.js +2 -4
  169. package/dist/components-page/account-settings/section.js.map +1 -1
  170. package/dist/components-page/account-settings/settings/delete-account-section.d.ts +1 -3
  171. package/dist/components-page/account-settings/settings/delete-account-section.d.ts.map +1 -1
  172. package/dist/components-page/account-settings/settings/delete-account-section.js +2 -4
  173. package/dist/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  174. package/dist/components-page/account-settings/settings/settings-page.d.ts +1 -3
  175. package/dist/components-page/account-settings/settings/settings-page.d.ts.map +1 -1
  176. package/dist/components-page/account-settings/settings/settings-page.js +2 -4
  177. package/dist/components-page/account-settings/settings/settings-page.js.map +1 -1
  178. package/dist/components-page/account-settings/settings/sign-out-section.d.ts +1 -3
  179. package/dist/components-page/account-settings/settings/sign-out-section.d.ts.map +1 -1
  180. package/dist/components-page/account-settings/settings/sign-out-section.js +2 -4
  181. package/dist/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  182. package/dist/components-page/account-settings/teams/leave-team-section.d.ts +2 -4
  183. package/dist/components-page/account-settings/teams/leave-team-section.d.ts.map +1 -1
  184. package/dist/components-page/account-settings/teams/leave-team-section.js +2 -4
  185. package/dist/components-page/account-settings/teams/leave-team-section.js.map +1 -1
  186. package/dist/components-page/account-settings/teams/team-api-keys-section.d.ts +2 -3
  187. package/dist/components-page/account-settings/teams/team-api-keys-section.d.ts.map +1 -1
  188. package/dist/components-page/account-settings/teams/team-api-keys-section.js +2 -4
  189. package/dist/components-page/account-settings/teams/team-api-keys-section.js.map +1 -1
  190. package/dist/components-page/account-settings/teams/team-creation-page.d.ts +1 -3
  191. package/dist/components-page/account-settings/teams/team-creation-page.d.ts.map +1 -1
  192. package/dist/components-page/account-settings/teams/team-creation-page.js +2 -4
  193. package/dist/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  194. package/dist/components-page/account-settings/teams/team-display-name-section.d.ts +2 -4
  195. package/dist/components-page/account-settings/teams/team-display-name-section.d.ts.map +1 -1
  196. package/dist/components-page/account-settings/teams/team-display-name-section.js +2 -4
  197. package/dist/components-page/account-settings/teams/team-display-name-section.js.map +1 -1
  198. package/dist/components-page/account-settings/teams/team-member-invitation-section.d.ts +2 -4
  199. package/dist/components-page/account-settings/teams/team-member-invitation-section.d.ts.map +1 -1
  200. package/dist/components-page/account-settings/teams/team-member-invitation-section.js +2 -4
  201. package/dist/components-page/account-settings/teams/team-member-invitation-section.js.map +1 -1
  202. package/dist/components-page/account-settings/teams/team-member-list-section.d.ts +2 -4
  203. package/dist/components-page/account-settings/teams/team-member-list-section.d.ts.map +1 -1
  204. package/dist/components-page/account-settings/teams/team-member-list-section.js +2 -4
  205. package/dist/components-page/account-settings/teams/team-member-list-section.js.map +1 -1
  206. package/dist/components-page/account-settings/teams/team-page.d.ts +2 -4
  207. package/dist/components-page/account-settings/teams/team-page.d.ts.map +1 -1
  208. package/dist/components-page/account-settings/teams/team-page.js +2 -4
  209. package/dist/components-page/account-settings/teams/team-page.js.map +1 -1
  210. package/dist/components-page/account-settings/teams/team-profile-image-section.d.ts +2 -4
  211. package/dist/components-page/account-settings/teams/team-profile-image-section.d.ts.map +1 -1
  212. package/dist/components-page/account-settings/teams/team-profile-image-section.js +2 -4
  213. package/dist/components-page/account-settings/teams/team-profile-image-section.js.map +1 -1
  214. package/dist/components-page/account-settings/teams/team-profile-user-section.d.ts +2 -4
  215. package/dist/components-page/account-settings/teams/team-profile-user-section.d.ts.map +1 -1
  216. package/dist/components-page/account-settings/teams/team-profile-user-section.js +2 -4
  217. package/dist/components-page/account-settings/teams/team-profile-user-section.js.map +1 -1
  218. package/dist/components-page/account-settings.d.ts +2 -58
  219. package/dist/components-page/account-settings.js +5 -7
  220. package/dist/components-page/account-settings.js.map +1 -1
  221. package/dist/components-page/auth-page.d.ts +2 -26
  222. package/dist/components-page/auth-page.js +3 -6
  223. package/dist/components-page/auth-page.js.map +1 -1
  224. package/dist/components-page/cli-auth-confirm.d.ts +2 -21
  225. package/dist/components-page/cli-auth-confirm.js +3 -6
  226. package/dist/components-page/cli-auth-confirm.js.map +1 -1
  227. package/dist/components-page/cli-auth-confirm.test.js +3 -4
  228. package/dist/components-page/cli-auth-confirm.test.js.map +1 -1
  229. package/dist/components-page/email-verification.d.ts +2 -10
  230. package/dist/components-page/email-verification.js +5 -7
  231. package/dist/components-page/email-verification.js.map +1 -1
  232. package/dist/components-page/error-page.d.ts +2 -10
  233. package/dist/components-page/error-page.js +3 -6
  234. package/dist/components-page/error-page.js.map +1 -1
  235. package/dist/components-page/forgot-password.d.ts +2 -14
  236. package/dist/components-page/forgot-password.js +3 -6
  237. package/dist/components-page/forgot-password.js.map +1 -1
  238. package/dist/components-page/hexclave-handler-client.d.ts +2 -62
  239. package/dist/components-page/hexclave-handler-client.js +2 -5
  240. package/dist/components-page/hexclave-handler-client.js.map +1 -1
  241. package/dist/components-page/hexclave-handler-client.test.js +1 -3
  242. package/dist/components-page/hexclave-handler-client.test.js.map +1 -1
  243. package/dist/components-page/hexclave-handler.d.ts +2 -37
  244. package/dist/components-page/hexclave-handler.js +5 -4
  245. package/dist/components-page/hexclave-handler.js.map +1 -1
  246. package/dist/components-page/magic-link-callback.d.ts +2 -10
  247. package/dist/components-page/magic-link-callback.js +6 -9
  248. package/dist/components-page/magic-link-callback.js.map +1 -1
  249. package/dist/components-page/mfa.d.ts +2 -11
  250. package/dist/components-page/mfa.js +2 -5
  251. package/dist/components-page/mfa.js.map +1 -1
  252. package/dist/components-page/oauth-callback.d.ts +2 -11
  253. package/dist/components-page/oauth-callback.js +3 -6
  254. package/dist/components-page/oauth-callback.js.map +1 -1
  255. package/dist/components-page/oauth-callback.test.js +3 -4
  256. package/dist/components-page/oauth-callback.test.js.map +1 -1
  257. package/dist/components-page/onboarding.d.ts +2 -9
  258. package/dist/components-page/onboarding.js +3 -6
  259. package/dist/components-page/onboarding.js.map +1 -1
  260. package/dist/components-page/password-reset.d.ts +2 -17
  261. package/dist/components-page/password-reset.js +8 -7
  262. package/dist/components-page/password-reset.js.map +1 -1
  263. package/dist/components-page/section.js +2 -2
  264. package/dist/components-page/sign-in.d.ts +2 -23
  265. package/dist/components-page/sign-in.js +2 -4
  266. package/dist/components-page/sign-in.js.map +1 -1
  267. package/dist/components-page/sign-out.d.ts +2 -10
  268. package/dist/components-page/sign-out.js +3 -6
  269. package/dist/components-page/sign-out.js.map +1 -1
  270. package/dist/components-page/sign-up.d.ts +2 -13
  271. package/dist/components-page/sign-up.js +3 -6
  272. package/dist/components-page/sign-up.js.map +1 -1
  273. package/dist/components-page/team-creation.d.ts +1 -3
  274. package/dist/components-page/team-creation.d.ts.map +1 -1
  275. package/dist/components-page/team-creation.js +3 -6
  276. package/dist/components-page/team-creation.js.map +1 -1
  277. package/dist/components-page/team-invitation.d.ts +2 -13
  278. package/dist/components-page/team-invitation.js +5 -7
  279. package/dist/components-page/team-invitation.js.map +1 -1
  280. package/dist/config.js +17 -19
  281. package/dist/convex-D2mFhYyd.d.ts +13 -0
  282. package/dist/convex-D2mFhYyd.d.ts.map +1 -0
  283. package/dist/cookie-DTOQvCYn.d.ts +42 -0
  284. package/dist/cookie-DTOQvCYn.d.ts.map +1 -0
  285. package/dist/credential-sign-in-BxCi9NEV.d.ts +5 -0
  286. package/dist/credential-sign-in-BxCi9NEV.d.ts.map +1 -0
  287. package/dist/credential-sign-up-tYm5rV86.d.ts +7 -0
  288. package/dist/credential-sign-up-tYm5rV86.d.ts.map +1 -0
  289. package/dist/dev-tool/dev-tool-core.d.ts +1 -2
  290. package/dist/dev-tool/dev-tool-core.d.ts.map +1 -1
  291. package/dist/dev-tool/dev-tool-core.js +3 -5
  292. package/dist/dev-tool/dev-tool-core.js.map +1 -1
  293. package/dist/dev-tool/dev-tool-styles.js +3 -6
  294. package/dist/dev-tool/dev-tool-styles.js.map +1 -1
  295. package/dist/dev-tool/dev-tool-trigger-position.d.ts.map +1 -1
  296. package/dist/dev-tool/dev-tool-trigger-position.js +6 -7
  297. package/dist/dev-tool/dev-tool-trigger-position.js.map +1 -1
  298. package/dist/dev-tool/dev-tool-trigger-position.test.js +1 -3
  299. package/dist/dev-tool/dev-tool-trigger-position.test.js.map +1 -1
  300. package/dist/dev-tool/index.d.ts +1 -2
  301. package/dist/dev-tool/index.d.ts.map +1 -1
  302. package/dist/dev-tool/index.js +2 -4
  303. package/dist/dev-tool/index.js.map +1 -1
  304. package/dist/email-verification-Cr_KKvtQ.d.ts +8 -0
  305. package/dist/email-verification-Cr_KKvtQ.d.ts.map +1 -0
  306. package/dist/error-page-D0KwN73t.d.ts +8 -0
  307. package/dist/error-page-D0KwN73t.d.ts.map +1 -0
  308. package/dist/esm/clickmap/clickmap-core.d.ts +1 -1
  309. package/dist/esm/clickmap/clickmap-core.d.ts.map +1 -1
  310. package/dist/esm/clickmap/clickmap-core.js +1 -2
  311. package/dist/esm/clickmap/clickmap-core.js.map +1 -1
  312. package/dist/esm/clickmap/clickmap-styles.js +1 -2
  313. package/dist/esm/clickmap/clickmap-styles.js.map +1 -1
  314. package/dist/esm/clickmap/index.d.ts +1 -1
  315. package/dist/esm/clickmap/index.d.ts.map +1 -1
  316. package/dist/esm/clickmap/index.js +1 -2
  317. package/dist/esm/clickmap/index.js.map +1 -1
  318. package/dist/esm/components/api-key-dialogs.d.ts +3 -4
  319. package/dist/esm/components/api-key-dialogs.d.ts.map +1 -1
  320. package/dist/esm/components/api-key-dialogs.js +2 -4
  321. package/dist/esm/components/api-key-dialogs.js.map +1 -1
  322. package/dist/esm/components/api-key-table.d.ts +2 -3
  323. package/dist/esm/components/api-key-table.d.ts.map +1 -1
  324. package/dist/esm/components/api-key-table.js +2 -4
  325. package/dist/esm/components/api-key-table.js.map +1 -1
  326. package/dist/esm/components/credential-sign-in.d.ts +1 -3
  327. package/dist/esm/components/credential-sign-in.d.ts.map +1 -1
  328. package/dist/esm/components/credential-sign-in.js +2 -4
  329. package/dist/esm/components/credential-sign-in.js.map +1 -1
  330. package/dist/esm/components/credential-sign-up.d.ts +1 -3
  331. package/dist/esm/components/credential-sign-up.d.ts.map +1 -1
  332. package/dist/esm/components/credential-sign-up.js +3 -5
  333. package/dist/esm/components/credential-sign-up.js.map +1 -1
  334. package/dist/esm/components/elements/form-warning.d.ts +1 -3
  335. package/dist/esm/components/elements/form-warning.d.ts.map +1 -1
  336. package/dist/esm/components/elements/form-warning.js +2 -4
  337. package/dist/esm/components/elements/form-warning.js.map +1 -1
  338. package/dist/esm/components/elements/maybe-full-page.d.ts +1 -2
  339. package/dist/esm/components/elements/maybe-full-page.d.ts.map +1 -1
  340. package/dist/esm/components/elements/maybe-full-page.js +2 -4
  341. package/dist/esm/components/elements/maybe-full-page.js.map +1 -1
  342. package/dist/esm/components/elements/separator-with-text.d.ts +1 -3
  343. package/dist/esm/components/elements/separator-with-text.d.ts.map +1 -1
  344. package/dist/esm/components/elements/separator-with-text.js +2 -4
  345. package/dist/esm/components/elements/separator-with-text.js.map +1 -1
  346. package/dist/esm/components/elements/sidebar-layout.d.ts +1 -2
  347. package/dist/esm/components/elements/sidebar-layout.d.ts.map +1 -1
  348. package/dist/esm/components/elements/sidebar-layout.js +3 -5
  349. package/dist/esm/components/elements/sidebar-layout.js.map +1 -1
  350. package/dist/esm/components/elements/ssr-layout-effect.d.ts +1 -3
  351. package/dist/esm/components/elements/ssr-layout-effect.d.ts.map +1 -1
  352. package/dist/esm/components/elements/ssr-layout-effect.js +1 -3
  353. package/dist/esm/components/elements/ssr-layout-effect.js.map +1 -1
  354. package/dist/esm/components/elements/user-avatar.d.ts +1 -3
  355. package/dist/esm/components/elements/user-avatar.d.ts.map +1 -1
  356. package/dist/esm/components/elements/user-avatar.js +1 -2
  357. package/dist/esm/components/elements/user-avatar.js.map +1 -1
  358. package/dist/esm/components/link.d.ts +2 -4
  359. package/dist/esm/components/link.d.ts.map +1 -1
  360. package/dist/esm/components/link.js +2 -4
  361. package/dist/esm/components/link.js.map +1 -1
  362. package/dist/esm/components/magic-link-sign-in.d.ts +1 -3
  363. package/dist/esm/components/magic-link-sign-in.d.ts.map +1 -1
  364. package/dist/esm/components/magic-link-sign-in.js +2 -4
  365. package/dist/esm/components/magic-link-sign-in.js.map +1 -1
  366. package/dist/esm/components/message-cards/known-error-message-card.d.ts +1 -2
  367. package/dist/esm/components/message-cards/known-error-message-card.d.ts.map +1 -1
  368. package/dist/esm/components/message-cards/known-error-message-card.js +1 -3
  369. package/dist/esm/components/message-cards/known-error-message-card.js.map +1 -1
  370. package/dist/esm/components/message-cards/message-card.d.ts +1 -2
  371. package/dist/esm/components/message-cards/message-card.d.ts.map +1 -1
  372. package/dist/esm/components/message-cards/message-card.js +3 -5
  373. package/dist/esm/components/message-cards/message-card.js.map +1 -1
  374. package/dist/esm/components/message-cards/predefined-message-card.d.ts +1 -3
  375. package/dist/esm/components/message-cards/predefined-message-card.d.ts.map +1 -1
  376. package/dist/esm/components/message-cards/predefined-message-card.js +1 -3
  377. package/dist/esm/components/message-cards/predefined-message-card.js.map +1 -1
  378. package/dist/esm/components/oauth-button-group.d.ts +1 -3
  379. package/dist/esm/components/oauth-button-group.d.ts.map +1 -1
  380. package/dist/esm/components/oauth-button-group.js +2 -4
  381. package/dist/esm/components/oauth-button-group.js.map +1 -1
  382. package/dist/esm/components/oauth-button.d.ts +1 -3
  383. package/dist/esm/components/oauth-button.d.ts.map +1 -1
  384. package/dist/esm/components/oauth-button.js +2 -4
  385. package/dist/esm/components/oauth-button.js.map +1 -1
  386. package/dist/esm/components/passkey-button.d.ts +1 -3
  387. package/dist/esm/components/passkey-button.d.ts.map +1 -1
  388. package/dist/esm/components/passkey-button.js +2 -4
  389. package/dist/esm/components/passkey-button.js.map +1 -1
  390. package/dist/esm/components/profile-image-editor.d.ts +2 -3
  391. package/dist/esm/components/profile-image-editor.d.ts.map +1 -1
  392. package/dist/esm/components/profile-image-editor.js +1 -2
  393. package/dist/esm/components/profile-image-editor.js.map +1 -1
  394. package/dist/esm/components/selected-team-switcher.d.ts +2 -3
  395. package/dist/esm/components/selected-team-switcher.d.ts.map +1 -1
  396. package/dist/esm/components/selected-team-switcher.js +2 -4
  397. package/dist/esm/components/selected-team-switcher.js.map +1 -1
  398. package/dist/esm/components/team-icon.d.ts +2 -3
  399. package/dist/esm/components/team-icon.d.ts.map +1 -1
  400. package/dist/esm/components/team-icon.js +1 -2
  401. package/dist/esm/components/team-icon.js.map +1 -1
  402. package/dist/esm/components/team-switcher.d.ts +2 -3
  403. package/dist/esm/components/team-switcher.d.ts.map +1 -1
  404. package/dist/esm/components/team-switcher.js +2 -4
  405. package/dist/esm/components/team-switcher.js.map +1 -1
  406. package/dist/esm/components/use-in-iframe.d.ts.map +1 -1
  407. package/dist/esm/components/use-in-iframe.js +2 -4
  408. package/dist/esm/components/use-in-iframe.js.map +1 -1
  409. package/dist/esm/components/user-button.d.ts +1 -2
  410. package/dist/esm/components/user-button.d.ts.map +1 -1
  411. package/dist/esm/components/user-button.js +3 -5
  412. package/dist/esm/components/user-button.js.map +1 -1
  413. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.d.ts +1 -3
  414. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.d.ts.map +1 -1
  415. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js +1 -2
  416. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
  417. package/dist/esm/components-page/account-settings/api-keys/api-keys-page.d.ts +1 -3
  418. package/dist/esm/components-page/account-settings/api-keys/api-keys-page.d.ts.map +1 -1
  419. package/dist/esm/components-page/account-settings/api-keys/api-keys-page.js +1 -2
  420. package/dist/esm/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
  421. package/dist/esm/components-page/account-settings/editable-text.d.ts +1 -3
  422. package/dist/esm/components-page/account-settings/editable-text.d.ts.map +1 -1
  423. package/dist/esm/components-page/account-settings/editable-text.js +1 -2
  424. package/dist/esm/components-page/account-settings/editable-text.js.map +1 -1
  425. package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.d.ts +1 -3
  426. package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.d.ts.map +1 -1
  427. package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.js +1 -2
  428. package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  429. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.d.ts +1 -3
  430. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.d.ts.map +1 -1
  431. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js +1 -2
  432. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  433. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.d.ts +1 -3
  434. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.d.ts.map +1 -1
  435. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js +2 -3
  436. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  437. package/dist/esm/components-page/account-settings/email-and-auth/otp-section.d.ts +1 -3
  438. package/dist/esm/components-page/account-settings/email-and-auth/otp-section.d.ts.map +1 -1
  439. package/dist/esm/components-page/account-settings/email-and-auth/otp-section.js +1 -2
  440. package/dist/esm/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  441. package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.d.ts +1 -3
  442. package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.d.ts.map +1 -1
  443. package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.js +1 -2
  444. package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  445. package/dist/esm/components-page/account-settings/email-and-auth/password-section.d.ts +1 -3
  446. package/dist/esm/components-page/account-settings/email-and-auth/password-section.d.ts.map +1 -1
  447. package/dist/esm/components-page/account-settings/email-and-auth/password-section.js +1 -2
  448. package/dist/esm/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  449. package/dist/esm/components-page/account-settings/notifications/notifications-page.d.ts +1 -3
  450. package/dist/esm/components-page/account-settings/notifications/notifications-page.d.ts.map +1 -1
  451. package/dist/esm/components-page/account-settings/notifications/notifications-page.js +1 -2
  452. package/dist/esm/components-page/account-settings/notifications/notifications-page.js.map +1 -1
  453. package/dist/esm/components-page/account-settings/page-layout.d.ts +1 -3
  454. package/dist/esm/components-page/account-settings/page-layout.d.ts.map +1 -1
  455. package/dist/esm/components-page/account-settings/page-layout.js +1 -2
  456. package/dist/esm/components-page/account-settings/page-layout.js.map +1 -1
  457. package/dist/esm/components-page/account-settings/payments/payments-page.d.ts +2 -3
  458. package/dist/esm/components-page/account-settings/payments/payments-page.d.ts.map +1 -1
  459. package/dist/esm/components-page/account-settings/payments/payments-page.js +2 -4
  460. package/dist/esm/components-page/account-settings/payments/payments-page.js.map +1 -1
  461. package/dist/esm/components-page/account-settings/payments/payments-panel.d.ts +2 -3
  462. package/dist/esm/components-page/account-settings/payments/payments-panel.d.ts.map +1 -1
  463. package/dist/esm/components-page/account-settings/payments/payments-panel.js +2 -4
  464. package/dist/esm/components-page/account-settings/payments/payments-panel.js.map +1 -1
  465. package/dist/esm/components-page/account-settings/profile-page/profile-page.d.ts +1 -3
  466. package/dist/esm/components-page/account-settings/profile-page/profile-page.d.ts.map +1 -1
  467. package/dist/esm/components-page/account-settings/profile-page/profile-page.js +1 -2
  468. package/dist/esm/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  469. package/dist/esm/components-page/account-settings/section.d.ts +1 -3
  470. package/dist/esm/components-page/account-settings/section.d.ts.map +1 -1
  471. package/dist/esm/components-page/account-settings/section.js +1 -2
  472. package/dist/esm/components-page/account-settings/section.js.map +1 -1
  473. package/dist/esm/components-page/account-settings/settings/delete-account-section.d.ts +1 -3
  474. package/dist/esm/components-page/account-settings/settings/delete-account-section.d.ts.map +1 -1
  475. package/dist/esm/components-page/account-settings/settings/delete-account-section.js +1 -2
  476. package/dist/esm/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  477. package/dist/esm/components-page/account-settings/settings/settings-page.d.ts +1 -3
  478. package/dist/esm/components-page/account-settings/settings/settings-page.d.ts.map +1 -1
  479. package/dist/esm/components-page/account-settings/settings/settings-page.js +1 -2
  480. package/dist/esm/components-page/account-settings/settings/settings-page.js.map +1 -1
  481. package/dist/esm/components-page/account-settings/settings/sign-out-section.d.ts +1 -3
  482. package/dist/esm/components-page/account-settings/settings/sign-out-section.d.ts.map +1 -1
  483. package/dist/esm/components-page/account-settings/settings/sign-out-section.js +1 -2
  484. package/dist/esm/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  485. package/dist/esm/components-page/account-settings/teams/leave-team-section.d.ts +2 -3
  486. package/dist/esm/components-page/account-settings/teams/leave-team-section.d.ts.map +1 -1
  487. package/dist/esm/components-page/account-settings/teams/leave-team-section.js +1 -2
  488. package/dist/esm/components-page/account-settings/teams/leave-team-section.js.map +1 -1
  489. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.d.ts +2 -3
  490. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.d.ts.map +1 -1
  491. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.js +1 -2
  492. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.js.map +1 -1
  493. package/dist/esm/components-page/account-settings/teams/team-creation-page.d.ts +1 -3
  494. package/dist/esm/components-page/account-settings/teams/team-creation-page.d.ts.map +1 -1
  495. package/dist/esm/components-page/account-settings/teams/team-creation-page.js +1 -2
  496. package/dist/esm/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  497. package/dist/esm/components-page/account-settings/teams/team-display-name-section.d.ts +2 -3
  498. package/dist/esm/components-page/account-settings/teams/team-display-name-section.d.ts.map +1 -1
  499. package/dist/esm/components-page/account-settings/teams/team-display-name-section.js +1 -2
  500. package/dist/esm/components-page/account-settings/teams/team-display-name-section.js.map +1 -1
  501. package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.d.ts +2 -3
  502. package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.d.ts.map +1 -1
  503. package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.js +1 -2
  504. package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.js.map +1 -1
  505. package/dist/esm/components-page/account-settings/teams/team-member-list-section.d.ts +2 -3
  506. package/dist/esm/components-page/account-settings/teams/team-member-list-section.d.ts.map +1 -1
  507. package/dist/esm/components-page/account-settings/teams/team-member-list-section.js +1 -2
  508. package/dist/esm/components-page/account-settings/teams/team-member-list-section.js.map +1 -1
  509. package/dist/esm/components-page/account-settings/teams/team-page.d.ts +2 -3
  510. package/dist/esm/components-page/account-settings/teams/team-page.d.ts.map +1 -1
  511. package/dist/esm/components-page/account-settings/teams/team-page.js +1 -2
  512. package/dist/esm/components-page/account-settings/teams/team-page.js.map +1 -1
  513. package/dist/esm/components-page/account-settings/teams/team-profile-image-section.d.ts +2 -3
  514. package/dist/esm/components-page/account-settings/teams/team-profile-image-section.d.ts.map +1 -1
  515. package/dist/esm/components-page/account-settings/teams/team-profile-image-section.js +1 -2
  516. package/dist/esm/components-page/account-settings/teams/team-profile-image-section.js.map +1 -1
  517. package/dist/esm/components-page/account-settings/teams/team-profile-user-section.d.ts +2 -3
  518. package/dist/esm/components-page/account-settings/teams/team-profile-user-section.d.ts.map +1 -1
  519. package/dist/esm/components-page/account-settings/teams/team-profile-user-section.js +1 -2
  520. package/dist/esm/components-page/account-settings/teams/team-profile-user-section.js.map +1 -1
  521. package/dist/esm/components-page/account-settings.d.ts +9 -11
  522. package/dist/esm/components-page/account-settings.d.ts.map +1 -1
  523. package/dist/esm/components-page/account-settings.js +3 -5
  524. package/dist/esm/components-page/account-settings.js.map +1 -1
  525. package/dist/esm/components-page/auth-page.d.ts +1 -3
  526. package/dist/esm/components-page/auth-page.d.ts.map +1 -1
  527. package/dist/esm/components-page/auth-page.js +2 -4
  528. package/dist/esm/components-page/auth-page.js.map +1 -1
  529. package/dist/esm/components-page/cli-auth-confirm.d.ts +1 -3
  530. package/dist/esm/components-page/cli-auth-confirm.d.ts.map +1 -1
  531. package/dist/esm/components-page/cli-auth-confirm.js +2 -4
  532. package/dist/esm/components-page/cli-auth-confirm.js.map +1 -1
  533. package/dist/esm/components-page/cli-auth-confirm.test.js +3 -4
  534. package/dist/esm/components-page/cli-auth-confirm.test.js.map +1 -1
  535. package/dist/esm/components-page/email-verification.d.ts +1 -3
  536. package/dist/esm/components-page/email-verification.d.ts.map +1 -1
  537. package/dist/esm/components-page/email-verification.js +2 -4
  538. package/dist/esm/components-page/email-verification.js.map +1 -1
  539. package/dist/esm/components-page/error-page.d.ts +1 -3
  540. package/dist/esm/components-page/error-page.d.ts.map +1 -1
  541. package/dist/esm/components-page/error-page.js +2 -4
  542. package/dist/esm/components-page/error-page.js.map +1 -1
  543. package/dist/esm/components-page/forgot-password.d.ts +2 -4
  544. package/dist/esm/components-page/forgot-password.d.ts.map +1 -1
  545. package/dist/esm/components-page/forgot-password.js +2 -4
  546. package/dist/esm/components-page/forgot-password.js.map +1 -1
  547. package/dist/esm/components-page/hexclave-handler-client.d.ts +14 -14
  548. package/dist/esm/components-page/hexclave-handler-client.d.ts.map +1 -1
  549. package/dist/esm/components-page/hexclave-handler-client.js +1 -3
  550. package/dist/esm/components-page/hexclave-handler-client.js.map +1 -1
  551. package/dist/esm/components-page/hexclave-handler-client.test.js +2 -3
  552. package/dist/esm/components-page/hexclave-handler-client.test.js.map +1 -1
  553. package/dist/esm/components-page/hexclave-handler.d.ts +2 -3
  554. package/dist/esm/components-page/hexclave-handler.d.ts.map +1 -1
  555. package/dist/esm/components-page/hexclave-handler.js +1 -2
  556. package/dist/esm/components-page/hexclave-handler.js.map +1 -1
  557. package/dist/esm/components-page/magic-link-callback.d.ts +1 -3
  558. package/dist/esm/components-page/magic-link-callback.d.ts.map +1 -1
  559. package/dist/esm/components-page/magic-link-callback.js +2 -4
  560. package/dist/esm/components-page/magic-link-callback.js.map +1 -1
  561. package/dist/esm/components-page/mfa.d.ts +1 -3
  562. package/dist/esm/components-page/mfa.d.ts.map +1 -1
  563. package/dist/esm/components-page/mfa.js +1 -3
  564. package/dist/esm/components-page/mfa.js.map +1 -1
  565. package/dist/esm/components-page/oauth-callback.d.ts +1 -3
  566. package/dist/esm/components-page/oauth-callback.d.ts.map +1 -1
  567. package/dist/esm/components-page/oauth-callback.js +2 -4
  568. package/dist/esm/components-page/oauth-callback.js.map +1 -1
  569. package/dist/esm/components-page/oauth-callback.test.js +3 -4
  570. package/dist/esm/components-page/oauth-callback.test.js.map +1 -1
  571. package/dist/esm/components-page/onboarding.d.ts +1 -3
  572. package/dist/esm/components-page/onboarding.d.ts.map +1 -1
  573. package/dist/esm/components-page/onboarding.js +2 -4
  574. package/dist/esm/components-page/onboarding.js.map +1 -1
  575. package/dist/esm/components-page/password-reset.d.ts +2 -4
  576. package/dist/esm/components-page/password-reset.d.ts.map +1 -1
  577. package/dist/esm/components-page/password-reset.js +2 -4
  578. package/dist/esm/components-page/password-reset.js.map +1 -1
  579. package/dist/esm/components-page/section.js +3 -4
  580. package/dist/esm/components-page/sign-in.d.ts +1 -3
  581. package/dist/esm/components-page/sign-in.d.ts.map +1 -1
  582. package/dist/esm/components-page/sign-in.js +1 -2
  583. package/dist/esm/components-page/sign-in.js.map +1 -1
  584. package/dist/esm/components-page/sign-out.d.ts +1 -3
  585. package/dist/esm/components-page/sign-out.d.ts.map +1 -1
  586. package/dist/esm/components-page/sign-out.js +2 -4
  587. package/dist/esm/components-page/sign-out.js.map +1 -1
  588. package/dist/esm/components-page/sign-up.d.ts +1 -3
  589. package/dist/esm/components-page/sign-up.d.ts.map +1 -1
  590. package/dist/esm/components-page/sign-up.js +2 -4
  591. package/dist/esm/components-page/sign-up.js.map +1 -1
  592. package/dist/esm/components-page/team-creation.d.ts +1 -3
  593. package/dist/esm/components-page/team-creation.d.ts.map +1 -1
  594. package/dist/esm/components-page/team-creation.js +2 -4
  595. package/dist/esm/components-page/team-creation.js.map +1 -1
  596. package/dist/esm/components-page/team-invitation.d.ts +1 -3
  597. package/dist/esm/components-page/team-invitation.d.ts.map +1 -1
  598. package/dist/esm/components-page/team-invitation.js +2 -4
  599. package/dist/esm/components-page/team-invitation.js.map +1 -1
  600. package/dist/esm/config.js +1 -2
  601. package/dist/esm/dev-tool/dev-tool-core.d.ts +1 -1
  602. package/dist/esm/dev-tool/dev-tool-core.d.ts.map +1 -1
  603. package/dist/esm/dev-tool/dev-tool-core.js +2 -3
  604. package/dist/esm/dev-tool/dev-tool-core.js.map +1 -1
  605. package/dist/esm/dev-tool/dev-tool-styles.js +1 -2
  606. package/dist/esm/dev-tool/dev-tool-styles.js.map +1 -1
  607. package/dist/esm/dev-tool/dev-tool-trigger-position.d.ts.map +1 -1
  608. package/dist/esm/dev-tool/dev-tool-trigger-position.js +5 -5
  609. package/dist/esm/dev-tool/dev-tool-trigger-position.js.map +1 -1
  610. package/dist/esm/dev-tool/dev-tool-trigger-position.test.js +2 -3
  611. package/dist/esm/dev-tool/dev-tool-trigger-position.test.js.map +1 -1
  612. package/dist/esm/dev-tool/index.d.ts +1 -1
  613. package/dist/esm/dev-tool/index.d.ts.map +1 -1
  614. package/dist/esm/dev-tool/index.js +1 -2
  615. package/dist/esm/dev-tool/index.js.map +1 -1
  616. package/dist/esm/generated/env.js +1 -1
  617. package/dist/esm/generated/env.js.map +1 -1
  618. package/dist/esm/generated/global-css.js +1 -1
  619. package/dist/esm/generated/quetzal-translations.d.ts +2 -2
  620. package/dist/esm/generated/quetzal-translations.js +1 -2
  621. package/dist/esm/generated/quetzal-translations.js.map +1 -1
  622. package/dist/esm/global.d.ts.map +1 -1
  623. package/dist/esm/in-page-ui/base-styles.d.ts.map +1 -1
  624. package/dist/esm/in-page-ui/base-styles.js +1 -1
  625. package/dist/esm/in-page-ui/base-styles.js.map +1 -1
  626. package/dist/esm/in-page-ui/dom.d.ts.map +1 -1
  627. package/dist/esm/in-page-ui/dom.js +1 -1
  628. package/dist/esm/in-page-ui/dom.js.map +1 -1
  629. package/dist/esm/index.d.ts +25 -25
  630. package/dist/esm/index.js +2 -4
  631. package/dist/esm/integrations/convex/component/convex.config.d.ts +1 -3
  632. package/dist/esm/integrations/convex/component/convex.config.d.ts.map +1 -1
  633. package/dist/esm/integrations/convex/component/convex.config.js +1 -2
  634. package/dist/esm/integrations/convex/component/convex.config.js.map +1 -1
  635. package/dist/esm/integrations/convex.js +1 -2
  636. package/dist/esm/integrations/convex.js.map +1 -1
  637. package/dist/esm/lib/auth.js +1 -2
  638. package/dist/esm/lib/auth.js.map +1 -1
  639. package/dist/esm/lib/auth.test.js +2 -3
  640. package/dist/esm/lib/auth.test.js.map +1 -1
  641. package/dist/esm/lib/cookie.d.ts.map +1 -1
  642. package/dist/esm/lib/cookie.js +4 -22
  643. package/dist/esm/lib/cookie.js.map +1 -1
  644. package/dist/esm/lib/hexclave-app/api-keys/index.d.ts.map +1 -1
  645. package/dist/esm/lib/hexclave-app/api-keys/index.js +1 -2
  646. package/dist/esm/lib/hexclave-app/api-keys/index.js.map +1 -1
  647. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts +34 -42
  648. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -1
  649. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.js +1 -2
  650. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -1
  651. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js +2 -3
  652. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -1
  653. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts +26 -28
  654. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -1
  655. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js +1 -2
  656. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -1
  657. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js +2 -3
  658. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +1 -1
  659. package/dist/esm/lib/hexclave-app/apps/implementations/common.d.ts +1 -1
  660. package/dist/esm/lib/hexclave-app/apps/implementations/common.d.ts.map +1 -1
  661. package/dist/esm/lib/hexclave-app/apps/implementations/common.js +7 -8
  662. package/dist/esm/lib/hexclave-app/apps/implementations/common.js.map +1 -1
  663. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.d.ts.map +1 -1
  664. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.js +1 -2
  665. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -1
  666. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.test.js +2 -3
  667. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -1
  668. package/dist/esm/lib/hexclave-app/apps/implementations/index.d.ts +3 -3
  669. package/dist/esm/lib/hexclave-app/apps/implementations/index.d.ts.map +1 -1
  670. package/dist/esm/lib/hexclave-app/apps/implementations/index.js +1 -2
  671. package/dist/esm/lib/hexclave-app/apps/implementations/index.js.map +1 -1
  672. package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts +1 -1
  673. package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts.map +1 -1
  674. package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.js +1 -2
  675. package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.js.map +1 -1
  676. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.d.ts +13 -13
  677. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.d.ts.map +1 -1
  678. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.js +1 -2
  679. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -1
  680. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.d.ts.map +1 -1
  681. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.js +1 -1
  682. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.js.map +1 -1
  683. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js +2 -3
  684. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js.map +1 -1
  685. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.d.ts.map +1 -1
  686. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.js +13 -7
  687. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.js.map +1 -1
  688. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.test.js +134 -3
  689. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.test.js.map +1 -1
  690. package/dist/esm/lib/hexclave-app/apps/index.d.ts +3 -3
  691. package/dist/esm/lib/hexclave-app/apps/index.js +1 -2
  692. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.d.ts +8 -8
  693. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.d.ts.map +1 -1
  694. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.js +1 -2
  695. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -1
  696. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.d.ts +6 -6
  697. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.d.ts.map +1 -1
  698. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.js +1 -2
  699. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -1
  700. package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.d.ts +7 -7
  701. package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.d.ts.map +1 -1
  702. package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.js +1 -2
  703. package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.js.map +1 -1
  704. package/dist/esm/lib/hexclave-app/common.d.ts.map +1 -1
  705. package/dist/esm/lib/hexclave-app/common.js +1 -1
  706. package/dist/esm/lib/hexclave-app/common.js.map +1 -1
  707. package/dist/esm/lib/hexclave-app/connected-accounts/index.d.ts.map +1 -1
  708. package/dist/esm/lib/hexclave-app/connected-accounts/index.js +1 -1
  709. package/dist/esm/lib/hexclave-app/contact-channels/index.d.ts.map +1 -1
  710. package/dist/esm/lib/hexclave-app/contact-channels/index.js +1 -1
  711. package/dist/esm/lib/hexclave-app/contact-channels/index.js.map +1 -1
  712. package/dist/esm/lib/hexclave-app/customers/index.d.ts +1 -1
  713. package/dist/esm/lib/hexclave-app/customers/index.d.ts.map +1 -1
  714. package/dist/esm/lib/hexclave-app/customers/index.js +1 -1
  715. package/dist/esm/lib/hexclave-app/data-vault/index.d.ts +1 -1
  716. package/dist/esm/lib/hexclave-app/data-vault/index.d.ts.map +1 -1
  717. package/dist/esm/lib/hexclave-app/data-vault/index.js +1 -1
  718. package/dist/esm/lib/hexclave-app/email/index.d.ts.map +1 -1
  719. package/dist/esm/lib/hexclave-app/email/index.js +1 -1
  720. package/dist/esm/lib/hexclave-app/email-templates/index.d.ts.map +1 -1
  721. package/dist/esm/lib/hexclave-app/email-templates/index.js +1 -1
  722. package/dist/esm/lib/hexclave-app/email-templates/index.js.map +1 -1
  723. package/dist/esm/lib/hexclave-app/index.d.ts +14 -14
  724. package/dist/esm/lib/hexclave-app/index.js +1 -2
  725. package/dist/esm/lib/hexclave-app/internal-api-keys/index.d.ts.map +1 -1
  726. package/dist/esm/lib/hexclave-app/internal-api-keys/index.js +1 -1
  727. package/dist/esm/lib/hexclave-app/internal-api-keys/index.js.map +1 -1
  728. package/dist/esm/lib/hexclave-app/notification-categories/index.d.ts.map +1 -1
  729. package/dist/esm/lib/hexclave-app/notification-categories/index.js +1 -1
  730. package/dist/esm/lib/hexclave-app/permissions/index.d.ts.map +1 -1
  731. package/dist/esm/lib/hexclave-app/permissions/index.js +1 -1
  732. package/dist/esm/lib/hexclave-app/permissions/index.js.map +1 -1
  733. package/dist/esm/lib/hexclave-app/plan-usage/index.d.ts.map +1 -1
  734. package/dist/esm/lib/hexclave-app/plan-usage/index.js +1 -1
  735. package/dist/esm/lib/hexclave-app/project-configs/index.d.ts +1 -1
  736. package/dist/esm/lib/hexclave-app/project-configs/index.d.ts.map +1 -1
  737. package/dist/esm/lib/hexclave-app/project-configs/index.js +1 -1
  738. package/dist/esm/lib/hexclave-app/projects/index.d.ts +2 -2
  739. package/dist/esm/lib/hexclave-app/projects/index.d.ts.map +1 -1
  740. package/dist/esm/lib/hexclave-app/projects/index.js +5 -1
  741. package/dist/esm/lib/hexclave-app/projects/index.js.map +1 -1
  742. package/dist/esm/lib/hexclave-app/session-replays/index.d.ts.map +1 -1
  743. package/dist/esm/lib/hexclave-app/session-replays/index.js +1 -1
  744. package/dist/esm/lib/hexclave-app/teams/index.d.ts +4 -4
  745. package/dist/esm/lib/hexclave-app/teams/index.d.ts.map +1 -1
  746. package/dist/esm/lib/hexclave-app/teams/index.js +1 -1
  747. package/dist/esm/lib/hexclave-app/teams/index.js.map +1 -1
  748. package/dist/esm/lib/hexclave-app/url-targets.d.ts +1 -1
  749. package/dist/esm/lib/hexclave-app/url-targets.d.ts.map +1 -1
  750. package/dist/esm/lib/hexclave-app/url-targets.js +2 -3
  751. package/dist/esm/lib/hexclave-app/url-targets.js.map +1 -1
  752. package/dist/esm/lib/hexclave-app/url-targets.test.js +2 -3
  753. package/dist/esm/lib/hexclave-app/url-targets.test.js.map +1 -1
  754. package/dist/esm/lib/hexclave-app/users/index.d.ts +9 -9
  755. package/dist/esm/lib/hexclave-app/users/index.d.ts.map +1 -1
  756. package/dist/esm/lib/hexclave-app/users/index.js +1 -2
  757. package/dist/esm/lib/hexclave-app/users/index.js.map +1 -1
  758. package/dist/esm/lib/hooks.d.ts +1 -1
  759. package/dist/esm/lib/hooks.d.ts.map +1 -1
  760. package/dist/esm/lib/hooks.js +1 -2
  761. package/dist/esm/lib/hooks.js.map +1 -1
  762. package/dist/esm/lib/translations.d.ts.map +1 -1
  763. package/dist/esm/lib/translations.js +1 -2
  764. package/dist/esm/lib/translations.js.map +1 -1
  765. package/dist/esm/providers/hexclave-context.d.ts +1 -1
  766. package/dist/esm/providers/hexclave-context.d.ts.map +1 -1
  767. package/dist/esm/providers/hexclave-context.js +1 -3
  768. package/dist/esm/providers/hexclave-context.js.map +1 -1
  769. package/dist/esm/providers/hexclave-provider-client.d.ts +2 -3
  770. package/dist/esm/providers/hexclave-provider-client.d.ts.map +1 -1
  771. package/dist/esm/providers/hexclave-provider-client.js +2 -4
  772. package/dist/esm/providers/hexclave-provider-client.js.map +1 -1
  773. package/dist/esm/providers/hexclave-provider.d.ts +3 -4
  774. package/dist/esm/providers/hexclave-provider.d.ts.map +1 -1
  775. package/dist/esm/providers/hexclave-provider.js +2 -3
  776. package/dist/esm/providers/hexclave-provider.js.map +1 -1
  777. package/dist/esm/providers/theme-provider.d.ts +1 -2
  778. package/dist/esm/providers/theme-provider.d.ts.map +1 -1
  779. package/dist/esm/providers/theme-provider.js +3 -5
  780. package/dist/esm/providers/theme-provider.js.map +1 -1
  781. package/dist/esm/providers/translation-provider-client.d.ts +1 -2
  782. package/dist/esm/providers/translation-provider-client.d.ts.map +1 -1
  783. package/dist/esm/providers/translation-provider-client.js +1 -3
  784. package/dist/esm/providers/translation-provider-client.js.map +1 -1
  785. package/dist/esm/providers/translation-provider.d.ts +2 -3
  786. package/dist/esm/providers/translation-provider.d.ts.map +1 -1
  787. package/dist/esm/providers/translation-provider.js +1 -2
  788. package/dist/esm/providers/translation-provider.js.map +1 -1
  789. package/dist/esm/pushed-config-error-overlay/index.d.ts +1 -1
  790. package/dist/esm/pushed-config-error-overlay/index.d.ts.map +1 -1
  791. package/dist/esm/pushed-config-error-overlay/index.js +1 -2
  792. package/dist/esm/pushed-config-error-overlay/index.js.map +1 -1
  793. package/dist/esm/pushed-config-error-overlay/index.test.js +2 -3
  794. package/dist/esm/pushed-config-error-overlay/index.test.js.map +1 -1
  795. package/dist/esm/tanstack-start-server-context.d.ts +1 -3
  796. package/dist/esm/tanstack-start-server-context.d.ts.map +1 -1
  797. package/dist/esm/utils/browser-script.d.ts +1 -3
  798. package/dist/esm/utils/browser-script.d.ts.map +1 -1
  799. package/dist/esm/utils/browser-script.js +1 -2
  800. package/dist/esm/utils/browser-script.js.map +1 -1
  801. package/dist/esm/utils/constants.js +1 -1
  802. package/dist/esm/utils/constants.js.map +1 -1
  803. package/dist/esm/utils/url.d.ts.map +1 -1
  804. package/dist/esm/utils/url.js +1 -2
  805. package/dist/esm/utils/url.js.map +1 -1
  806. package/dist/forgot-password-B7RLLsC2.d.ts +12 -0
  807. package/dist/forgot-password-B7RLLsC2.d.ts.map +1 -0
  808. package/dist/generated/env.js +2 -3
  809. package/dist/generated/env.js.map +1 -1
  810. package/dist/generated/global-css.js +2 -3
  811. package/dist/generated/global-css.js.map +1 -1
  812. package/dist/generated/quetzal-translations.d.ts +2 -6
  813. package/dist/generated/quetzal-translations.js +2 -4
  814. package/dist/generated/quetzal-translations.js.map +1 -1
  815. package/dist/global.d.ts.map +1 -1
  816. package/dist/hexclave-provider-BdiqjaCz.d.ts +29 -0
  817. package/dist/hexclave-provider-BdiqjaCz.d.ts.map +1 -0
  818. package/dist/hooks-psPwqxZ4.d.ts +43 -0
  819. package/dist/hooks-psPwqxZ4.d.ts.map +1 -0
  820. package/dist/in-page-ui/base-styles.d.ts.map +1 -1
  821. package/dist/in-page-ui/base-styles.js +2 -3
  822. package/dist/in-page-ui/base-styles.js.map +1 -1
  823. package/dist/in-page-ui/dom.d.ts.map +1 -1
  824. package/dist/in-page-ui/dom.js +2 -3
  825. package/dist/in-page-ui/dom.js.map +1 -1
  826. package/dist/index-BKZ67WMa.d.ts +1 -0
  827. package/dist/index-BSr2pd22.d.ts +14 -0
  828. package/dist/index-BSr2pd22.d.ts.map +1 -0
  829. package/dist/index-BVVgDSdq.d.ts +1 -0
  830. package/dist/index-Bo5DpPFH.d.ts +17 -0
  831. package/dist/index-Bo5DpPFH.d.ts.map +1 -0
  832. package/dist/index-CBDR4cNg.d.ts +206 -0
  833. package/dist/index-CBDR4cNg.d.ts.map +1 -0
  834. package/dist/index-C_kxyHao.d.ts +57 -0
  835. package/dist/{lib/hexclave-app/connected-accounts/index.d.ts.map → index-C_kxyHao.d.ts.map} +1 -1
  836. package/dist/index-D7Vdg30O.d.ts +27 -0
  837. package/dist/index-D7Vdg30O.d.ts.map +1 -0
  838. package/dist/index-DN04TjLM.d.ts +43 -0
  839. package/dist/index-DN04TjLM.d.ts.map +1 -0
  840. package/dist/index-DSzMf-rS.d.ts +43 -0
  841. package/dist/index-DSzMf-rS.d.ts.map +1 -0
  842. package/dist/index-DbiyXho6.d.ts +129 -0
  843. package/dist/index-DbiyXho6.d.ts.map +1 -0
  844. package/dist/index-Dq4xsW7_.d.ts +106 -0
  845. package/dist/index-Dq4xsW7_.d.ts.map +1 -0
  846. package/dist/index-O3hJsHSl.d.ts +11 -0
  847. package/dist/index-O3hJsHSl.d.ts.map +1 -0
  848. package/dist/index-TUtJOdMm.d.ts +42 -0
  849. package/dist/index-TUtJOdMm.d.ts.map +1 -0
  850. package/dist/index-fOYcs4NH.d.ts +53 -0
  851. package/dist/{lib/hexclave-app/api-keys/index.d.ts.map → index-fOYcs4NH.d.ts.map} +1 -1
  852. package/dist/index-hYjsGKNc.d.ts +66 -0
  853. package/dist/index-hYjsGKNc.d.ts.map +1 -0
  854. package/dist/index-p0N9MbE5.d.ts +147 -0
  855. package/dist/index-p0N9MbE5.d.ts.map +1 -0
  856. package/dist/index.d.ts +33 -41
  857. package/dist/index.js +193 -193
  858. package/dist/integrations/convex/component/convex.config.d.ts +1 -1
  859. package/dist/integrations/convex/component/convex.config.d.ts.map +1 -1
  860. package/dist/integrations/convex/component/convex.config.js +2 -5
  861. package/dist/integrations/convex/component/convex.config.js.map +1 -1
  862. package/dist/integrations/convex.d.ts +2 -13
  863. package/dist/integrations/convex.js +2 -4
  864. package/dist/integrations/convex.js.map +1 -1
  865. package/dist/lib/auth.js +2 -4
  866. package/dist/lib/auth.js.map +1 -1
  867. package/dist/lib/auth.test.js +1 -3
  868. package/dist/lib/auth.test.js.map +1 -1
  869. package/dist/lib/cookie.d.ts +2 -42
  870. package/dist/lib/cookie.js +7 -25
  871. package/dist/lib/cookie.js.map +1 -1
  872. package/dist/lib/hexclave-app/api-keys/index.d.ts +2 -53
  873. package/dist/lib/hexclave-app/api-keys/index.js +2 -4
  874. package/dist/lib/hexclave-app/api-keys/index.js.map +1 -1
  875. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts +2 -449
  876. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.js +2 -4
  877. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -1
  878. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js +1 -3
  879. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -1
  880. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts +2 -611
  881. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js +7 -8
  882. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -1
  883. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js +1 -3
  884. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +1 -1
  885. package/dist/lib/hexclave-app/apps/implementations/common.d.ts +2 -66
  886. package/dist/lib/hexclave-app/apps/implementations/common.js +9 -10
  887. package/dist/lib/hexclave-app/apps/implementations/common.js.map +1 -1
  888. package/dist/lib/hexclave-app/apps/implementations/event-tracker.d.ts.map +1 -1
  889. package/dist/lib/hexclave-app/apps/implementations/event-tracker.js +2 -4
  890. package/dist/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -1
  891. package/dist/lib/hexclave-app/apps/implementations/event-tracker.test.js +1 -3
  892. package/dist/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -1
  893. package/dist/lib/hexclave-app/apps/implementations/index.d.ts +1 -3
  894. package/dist/lib/hexclave-app/apps/implementations/index.d.ts.map +1 -1
  895. package/dist/lib/hexclave-app/apps/implementations/index.js +2 -4
  896. package/dist/lib/hexclave-app/apps/implementations/index.js.map +1 -1
  897. package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts +2 -35
  898. package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.js +2 -4
  899. package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.js.map +1 -1
  900. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.d.ts +2 -274
  901. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.js +2 -4
  902. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -1
  903. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.d.ts.map +1 -1
  904. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.js +2 -3
  905. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.js.map +1 -1
  906. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js +1 -3
  907. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js.map +1 -1
  908. package/dist/lib/hexclave-app/apps/implementations/session-replay.d.ts +2 -122
  909. package/dist/lib/hexclave-app/apps/implementations/session-replay.js +14 -9
  910. package/dist/lib/hexclave-app/apps/implementations/session-replay.js.map +1 -1
  911. package/dist/lib/hexclave-app/apps/implementations/session-replay.test.js +135 -3
  912. package/dist/lib/hexclave-app/apps/implementations/session-replay.test.js.map +1 -1
  913. package/dist/lib/hexclave-app/apps/index.d.ts +1 -3
  914. package/dist/lib/hexclave-app/apps/index.js +32 -34
  915. package/dist/lib/hexclave-app/apps/interfaces/admin-app.d.ts +3 -272
  916. package/dist/lib/hexclave-app/apps/interfaces/admin-app.js +3 -6
  917. package/dist/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -1
  918. package/dist/lib/hexclave-app/apps/interfaces/client-app.d.ts +2 -237
  919. package/dist/lib/hexclave-app/apps/interfaces/client-app.js +3 -6
  920. package/dist/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -1
  921. package/dist/lib/hexclave-app/apps/interfaces/server-app.d.ts +2 -174
  922. package/dist/lib/hexclave-app/apps/interfaces/server-app.js +3 -6
  923. package/dist/lib/hexclave-app/apps/interfaces/server-app.js.map +1 -1
  924. package/dist/lib/hexclave-app/common.d.ts +2 -183
  925. package/dist/lib/hexclave-app/common.js +2 -3
  926. package/dist/lib/hexclave-app/common.js.map +1 -1
  927. package/dist/lib/hexclave-app/connected-accounts/index.d.ts +2 -57
  928. package/dist/lib/hexclave-app/contact-channels/index.d.ts +2 -43
  929. package/dist/lib/hexclave-app/contact-channels/index.js +2 -3
  930. package/dist/lib/hexclave-app/contact-channels/index.js.map +1 -1
  931. package/dist/lib/hexclave-app/customers/index.d.ts +2 -129
  932. package/dist/lib/hexclave-app/data-vault/index.d.ts +2 -14
  933. package/dist/lib/hexclave-app/email/index.d.ts +2 -206
  934. package/dist/lib/hexclave-app/email-templates/index.d.ts +2 -17
  935. package/dist/lib/hexclave-app/email-templates/index.js +2 -3
  936. package/dist/lib/hexclave-app/email-templates/index.js.map +1 -1
  937. package/dist/lib/hexclave-app/index.d.ts +10 -15
  938. package/dist/lib/hexclave-app/index.js +49 -51
  939. package/dist/lib/hexclave-app/internal-api-keys/index.d.ts +2 -42
  940. package/dist/lib/hexclave-app/internal-api-keys/index.js +2 -3
  941. package/dist/lib/hexclave-app/internal-api-keys/index.js.map +1 -1
  942. package/dist/lib/hexclave-app/notification-categories/index.d.ts +2 -11
  943. package/dist/lib/hexclave-app/permissions/index.d.ts +2 -43
  944. package/dist/lib/hexclave-app/permissions/index.js +2 -3
  945. package/dist/lib/hexclave-app/permissions/index.js.map +1 -1
  946. package/dist/lib/hexclave-app/plan-usage/index.d.ts +2 -27
  947. package/dist/lib/hexclave-app/project-configs/index.d.ts +2 -106
  948. package/dist/lib/hexclave-app/projects/index.d.ts +2 -154
  949. package/dist/lib/hexclave-app/projects/index.js +6 -3
  950. package/dist/lib/hexclave-app/projects/index.js.map +1 -1
  951. package/dist/lib/hexclave-app/session-replays/index.d.ts +2 -66
  952. package/dist/lib/hexclave-app/teams/index.d.ts +2 -167
  953. package/dist/lib/hexclave-app/teams/index.js +2 -3
  954. package/dist/lib/hexclave-app/teams/index.js.map +1 -1
  955. package/dist/lib/hexclave-app/url-targets.d.ts +2 -39
  956. package/dist/lib/hexclave-app/url-targets.js +3 -5
  957. package/dist/lib/hexclave-app/url-targets.js.map +1 -1
  958. package/dist/lib/hexclave-app/url-targets.test.js +1 -3
  959. package/dist/lib/hexclave-app/url-targets.test.js.map +1 -1
  960. package/dist/lib/hexclave-app/users/index.d.ts +2 -400
  961. package/dist/lib/hexclave-app/users/index.js +2 -4
  962. package/dist/lib/hexclave-app/users/index.js.map +1 -1
  963. package/dist/lib/hooks.d.ts +2 -45
  964. package/dist/lib/hooks.js +2 -4
  965. package/dist/lib/hooks.js.map +1 -1
  966. package/dist/lib/translations.d.ts.map +1 -1
  967. package/dist/lib/translations.js +4 -5
  968. package/dist/lib/translations.js.map +1 -1
  969. package/dist/magic-link-callback-DOfNLydt.d.ts +8 -0
  970. package/dist/magic-link-callback-DOfNLydt.d.ts.map +1 -0
  971. package/dist/magic-link-sign-in-D5MFDeWQ.d.ts +5 -0
  972. package/dist/magic-link-sign-in-D5MFDeWQ.d.ts.map +1 -0
  973. package/dist/message-card-C0AQX5-y.d.ts +18 -0
  974. package/dist/message-card-C0AQX5-y.d.ts.map +1 -0
  975. package/dist/mfa-CwYuxAd-.d.ts +9 -0
  976. package/dist/mfa-CwYuxAd-.d.ts.map +1 -0
  977. package/dist/oauth-button-PE3z60ay.d.ts +15 -0
  978. package/dist/oauth-button-PE3z60ay.d.ts.map +1 -0
  979. package/dist/oauth-button-group-slCOrSxK.d.ts +17 -0
  980. package/dist/oauth-button-group-slCOrSxK.d.ts.map +1 -0
  981. package/dist/oauth-callback-tCVTRbF2.d.ts +9 -0
  982. package/dist/oauth-callback-tCVTRbF2.d.ts.map +1 -0
  983. package/dist/onboarding-CdpQNCZF.d.ts +7 -0
  984. package/dist/onboarding-CdpQNCZF.d.ts.map +1 -0
  985. package/dist/password-reset-CxIuXeIx.d.ts +15 -0
  986. package/dist/password-reset-CxIuXeIx.d.ts.map +1 -0
  987. package/dist/providers/hexclave-context.d.ts +1 -1
  988. package/dist/providers/hexclave-context.d.ts.map +1 -1
  989. package/dist/providers/hexclave-context.js +5 -8
  990. package/dist/providers/hexclave-context.js.map +1 -1
  991. package/dist/providers/hexclave-provider-client.d.ts +2 -3
  992. package/dist/providers/hexclave-provider-client.d.ts.map +1 -1
  993. package/dist/providers/hexclave-provider-client.js +4 -6
  994. package/dist/providers/hexclave-provider-client.js.map +1 -1
  995. package/dist/providers/hexclave-provider.d.ts +2 -32
  996. package/dist/providers/hexclave-provider.js +7 -5
  997. package/dist/providers/hexclave-provider.js.map +1 -1
  998. package/dist/providers/theme-provider.d.ts +2 -50
  999. package/dist/providers/theme-provider.js +6 -8
  1000. package/dist/providers/theme-provider.js.map +1 -1
  1001. package/dist/providers/translation-provider-client.d.ts +1 -2
  1002. package/dist/providers/translation-provider-client.d.ts.map +1 -1
  1003. package/dist/providers/translation-provider-client.js +5 -8
  1004. package/dist/providers/translation-provider-client.js.map +1 -1
  1005. package/dist/providers/translation-provider.d.ts +2 -16
  1006. package/dist/providers/translation-provider.js +2 -4
  1007. package/dist/providers/translation-provider.js.map +1 -1
  1008. package/dist/pushed-config-error-overlay/index.d.ts +1 -2
  1009. package/dist/pushed-config-error-overlay/index.d.ts.map +1 -1
  1010. package/dist/pushed-config-error-overlay/index.js +2 -4
  1011. package/dist/pushed-config-error-overlay/index.js.map +1 -1
  1012. package/dist/pushed-config-error-overlay/index.test.js +1 -3
  1013. package/dist/pushed-config-error-overlay/index.test.js.map +1 -1
  1014. package/dist/quetzal-translations-XeH3zQ9l.d.ts +6 -0
  1015. package/dist/quetzal-translations-XeH3zQ9l.d.ts.map +1 -0
  1016. package/dist/redirect-page-urls-NUHUchgR.d.ts +35 -0
  1017. package/dist/redirect-page-urls-NUHUchgR.d.ts.map +1 -0
  1018. package/dist/{chunk-BE-pF4vm.js → rolldown-runtime-D6vf50IK.js} +12 -18
  1019. package/dist/session-replay-CQ849yH1.d.ts +122 -0
  1020. package/dist/session-replay-CQ849yH1.d.ts.map +1 -0
  1021. package/dist/sign-in-BT45jb_W.d.ts +21 -0
  1022. package/dist/sign-in-BT45jb_W.d.ts.map +1 -0
  1023. package/dist/sign-out-DBnSkfDz.d.ts +8 -0
  1024. package/dist/sign-out-DBnSkfDz.d.ts.map +1 -0
  1025. package/dist/sign-up-BjE_0DB4.d.ts +11 -0
  1026. package/dist/sign-up-BjE_0DB4.d.ts.map +1 -0
  1027. package/dist/{storage-ksajV_p6.d.ts → storage-kputlpQY.d.ts} +1 -1
  1028. package/dist/storage-kputlpQY.d.ts.map +1 -0
  1029. package/dist/tanstack-start-server-context.d.ts +2635 -2
  1030. package/dist/tanstack-start-server-context.d.ts.map +1 -1
  1031. package/dist/team-invitation-B5Ol7vdd.d.ts +11 -0
  1032. package/dist/team-invitation-B5Ol7vdd.d.ts.map +1 -0
  1033. package/dist/theme-provider-D9_ngSbi.d.ts +49 -0
  1034. package/dist/theme-provider-D9_ngSbi.d.ts.map +1 -0
  1035. package/dist/translation-provider-WOaZXqAz.d.ts +15 -0
  1036. package/dist/translation-provider-WOaZXqAz.d.ts.map +1 -0
  1037. package/dist/url-targets-CWO0mjTr.d.ts +39 -0
  1038. package/dist/url-targets-CWO0mjTr.d.ts.map +1 -0
  1039. package/dist/user-avatar-CTyDsibI.d.ts +13 -0
  1040. package/dist/user-avatar-CTyDsibI.d.ts.map +1 -0
  1041. package/dist/user-button-CykqVKoH.d.ts +21 -0
  1042. package/dist/user-button-CykqVKoH.d.ts.map +1 -0
  1043. package/dist/utils/browser-script.d.ts +1 -3
  1044. package/dist/utils/browser-script.d.ts.map +1 -1
  1045. package/dist/utils/browser-script.js +2 -4
  1046. package/dist/utils/browser-script.js.map +1 -1
  1047. package/dist/utils/constants.js +2 -3
  1048. package/dist/utils/constants.js.map +1 -1
  1049. package/dist/utils/url.d.ts.map +1 -1
  1050. package/dist/utils/url.js +2 -4
  1051. package/dist/utils/url.js.map +1 -1
  1052. package/package.json +6 -6
  1053. package/src/lib/hexclave-app/apps/implementations/session-replay.test.ts +160 -1
  1054. package/src/lib/hexclave-app/apps/implementations/session-replay.ts +38 -12
  1055. package/dist/components/credential-sign-in.d.ts.map +0 -1
  1056. package/dist/components/credential-sign-up.d.ts.map +0 -1
  1057. package/dist/components/elements/user-avatar.d.ts.map +0 -1
  1058. package/dist/components/magic-link-sign-in.d.ts.map +0 -1
  1059. package/dist/components/message-cards/message-card.d.ts.map +0 -1
  1060. package/dist/components/oauth-button-group.d.ts.map +0 -1
  1061. package/dist/components/oauth-button.d.ts.map +0 -1
  1062. package/dist/components/selected-team-switcher.d.ts.map +0 -1
  1063. package/dist/components/team-switcher.d.ts.map +0 -1
  1064. package/dist/components/user-button.d.ts.map +0 -1
  1065. package/dist/components-page/account-settings.d.ts.map +0 -1
  1066. package/dist/components-page/auth-page.d.ts.map +0 -1
  1067. package/dist/components-page/cli-auth-confirm.d.ts.map +0 -1
  1068. package/dist/components-page/email-verification.d.ts.map +0 -1
  1069. package/dist/components-page/error-page.d.ts.map +0 -1
  1070. package/dist/components-page/forgot-password.d.ts.map +0 -1
  1071. package/dist/components-page/hexclave-handler-client.d.ts.map +0 -1
  1072. package/dist/components-page/hexclave-handler.d.ts.map +0 -1
  1073. package/dist/components-page/magic-link-callback.d.ts.map +0 -1
  1074. package/dist/components-page/mfa.d.ts.map +0 -1
  1075. package/dist/components-page/oauth-callback.d.ts.map +0 -1
  1076. package/dist/components-page/onboarding.d.ts.map +0 -1
  1077. package/dist/components-page/password-reset.d.ts.map +0 -1
  1078. package/dist/components-page/sign-in.d.ts.map +0 -1
  1079. package/dist/components-page/sign-out.d.ts.map +0 -1
  1080. package/dist/components-page/sign-up.d.ts.map +0 -1
  1081. package/dist/components-page/team-invitation.d.ts.map +0 -1
  1082. package/dist/generated/quetzal-translations.d.ts.map +0 -1
  1083. package/dist/integrations/convex.d.ts.map +0 -1
  1084. package/dist/lib/cookie.d.ts.map +0 -1
  1085. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +0 -1
  1086. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +0 -1
  1087. package/dist/lib/hexclave-app/apps/implementations/common.d.ts.map +0 -1
  1088. package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts.map +0 -1
  1089. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.d.ts.map +0 -1
  1090. package/dist/lib/hexclave-app/apps/implementations/session-replay.d.ts.map +0 -1
  1091. package/dist/lib/hexclave-app/apps/interfaces/admin-app.d.ts.map +0 -1
  1092. package/dist/lib/hexclave-app/apps/interfaces/client-app.d.ts.map +0 -1
  1093. package/dist/lib/hexclave-app/apps/interfaces/server-app.d.ts.map +0 -1
  1094. package/dist/lib/hexclave-app/common.d.ts.map +0 -1
  1095. package/dist/lib/hexclave-app/contact-channels/index.d.ts.map +0 -1
  1096. package/dist/lib/hexclave-app/customers/index.d.ts.map +0 -1
  1097. package/dist/lib/hexclave-app/data-vault/index.d.ts.map +0 -1
  1098. package/dist/lib/hexclave-app/email/index.d.ts.map +0 -1
  1099. package/dist/lib/hexclave-app/email-templates/index.d.ts.map +0 -1
  1100. package/dist/lib/hexclave-app/internal-api-keys/index.d.ts.map +0 -1
  1101. package/dist/lib/hexclave-app/notification-categories/index.d.ts.map +0 -1
  1102. package/dist/lib/hexclave-app/permissions/index.d.ts.map +0 -1
  1103. package/dist/lib/hexclave-app/plan-usage/index.d.ts.map +0 -1
  1104. package/dist/lib/hexclave-app/project-configs/index.d.ts.map +0 -1
  1105. package/dist/lib/hexclave-app/projects/index.d.ts.map +0 -1
  1106. package/dist/lib/hexclave-app/session-replays/index.d.ts.map +0 -1
  1107. package/dist/lib/hexclave-app/teams/index.d.ts.map +0 -1
  1108. package/dist/lib/hexclave-app/url-targets.d.ts.map +0 -1
  1109. package/dist/lib/hexclave-app/users/index.d.ts.map +0 -1
  1110. package/dist/lib/hooks.d.ts.map +0 -1
  1111. package/dist/providers/hexclave-provider.d.ts.map +0 -1
  1112. package/dist/providers/theme-provider.d.ts.map +0 -1
  1113. package/dist/providers/translation-provider.d.ts.map +0 -1
  1114. package/dist/storage-ksajV_p6.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"payments-panel.js","names":[],"sources":["../../../../../src/components-page/account-settings/payments/payments-panel.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 { runAsynchronously } from \"@hexclave/shared/dist/utils/promises\";\nimport { ActionDialog, Button, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Separator, Skeleton, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, toast, Typography } from \"@hexclave/ui\";\nimport { CardElement, Elements, useElements, useStripe } from \"@stripe/react-stripe-js\";\nimport { loadStripe } from \"@stripe/stripe-js\";\nimport { useMemo, useState } from \"react\";\nimport { useStackApp } from \"../../..\";\nimport { envVars } from \"../../../generated/env\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { Section } from \"../section\";\nimport { Result } from \"@hexclave/shared/dist/utils/results\";\nimport type { CustomerInvoiceStatus, CustomerInvoicesList, CustomerInvoicesListOptions } from \"../../../lib/hexclave-app/customers\";\n\ntype PaymentMethodSummary = {\n id: string,\n brand: string | null,\n last4: string | null,\n exp_month: number | null,\n exp_year: number | null,\n} | null;\n\nfunction formatPaymentMethod(pm: NonNullable<PaymentMethodSummary>) {\n const details = [\n pm.brand ? pm.brand.toUpperCase() : null,\n pm.last4 ? `•••• ${pm.last4}` : null,\n pm.exp_month && pm.exp_year ? `exp ${pm.exp_month}/${pm.exp_year}` : null,\n ].filter(Boolean);\n return details.join(\" · \");\n}\n\nconst formatInvoiceStatus = (status: CustomerInvoiceStatus, t: (value: string) => string) => {\n if (!status) {\n return t(\"Unknown\");\n }\n switch (status) {\n case \"draft\": {\n return t(\"Draft\");\n }\n case \"open\": {\n return t(\"Open\");\n }\n case \"paid\": {\n return t(\"Paid\");\n }\n case \"uncollectible\": {\n return t(\"Uncollectible\");\n }\n case \"void\": {\n return t(\"Void\");\n }\n default: {\n return t(\"Unknown\");\n }\n }\n};\n\nconst formatInvoiceAmount = (amountTotal: number | null | undefined, t: (value: string) => string) => {\n if (typeof amountTotal !== \"number\" || Number.isNaN(amountTotal)) {\n return t(\"Unknown\");\n }\n const normalized = amountTotal / 100;\n const formatted = new Intl.NumberFormat(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(normalized);\n return `$${formatted}`;\n};\n\nconst formatInvoiceDate = (date: Date | null | undefined, t: (value: string) => string) => {\n if (!date || Number.isNaN(date.getTime())) {\n return t(\"Unknown\");\n }\n return new Intl.DateTimeFormat(undefined, { year: \"numeric\", month: \"short\", day: \"numeric\" }).format(date);\n};\n\ntype CustomerBilling = {\n hasCustomer: boolean,\n defaultPaymentMethod: PaymentMethodSummary,\n};\n\ntype CustomerPaymentMethodSetupIntent = {\n clientSecret: string,\n stripeAccountId: string,\n};\n\ntype CustomerLike = {\n id: string,\n useBilling: () => CustomerBilling,\n useProducts: () => Array<{\n id: string | null,\n quantity: number,\n displayName: string,\n customerType: \"user\" | \"team\" | \"custom\",\n type?: \"one_time\" | \"subscription\",\n switchOptions?: Array<{\n productId: string,\n displayName: string,\n prices: Record<string, { interval?: [number, \"day\" | \"week\" | \"month\" | \"year\"] }>,\n }>,\n subscription: null | {\n subscriptionId: string | null,\n currentPeriodEnd: Date | null,\n cancelAtPeriodEnd: boolean,\n isCancelable: boolean,\n },\n }>,\n useInvoices: (options?: CustomerInvoicesListOptions) => CustomerInvoicesList,\n createPaymentMethodSetupIntent: () => Promise<CustomerPaymentMethodSetupIntent>,\n setDefaultPaymentMethodFromSetupIntent: (setupIntentId: string) => Promise<PaymentMethodSummary>,\n switchSubscription: (options: { fromProductId: string, toProductId: string, priceId?: string, quantity?: number }) => Promise<void>,\n};\n\nfunction SetDefaultPaymentMethodForm(props: {\n clientSecret: string,\n onSetupIntentSucceeded: (setupIntentId: string) => Promise<void>,\n}) {\n const stripe = useStripe();\n const elements = useElements();\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n const darkMode = \"color-scheme\" in document.documentElement.style && document.documentElement.style[\"color-scheme\"] === \"dark\";\n\n return (\n <div className=\"space-y-4\">\n <div className=\"space-y-2\">\n <Typography className=\"font-medium\">Card details</Typography>\n <div className=\"rounded-md border border-input p-3\">\n <CardElement options={{ hidePostalCode: true, style: { base: { color: darkMode ? \"white\" : \"black\" } } }} />\n </div>\n </div>\n {errorMessage && (\n <Typography variant=\"secondary\" type=\"footnote\">\n {errorMessage}\n </Typography>\n )}\n <Button\n onClick={async () => {\n if (!stripe || !elements) {\n setErrorMessage(\"Stripe is still loading. Please try again.\");\n return;\n }\n const card = elements.getElement(CardElement);\n if (!card) {\n setErrorMessage(\"Card element not found.\");\n return;\n }\n\n const result = await stripe.confirmCardSetup(props.clientSecret, {\n payment_method: { card },\n });\n if (result.error) {\n setErrorMessage(result.error.message ?? \"Failed to save payment method.\");\n return;\n }\n if (!result.setupIntent.id) {\n setErrorMessage(\"No setup intent returned from Stripe.\");\n return;\n }\n await props.onSetupIntentSucceeded(result.setupIntent.id);\n }}\n >\n Save payment method\n </Button>\n </div>\n );\n}\n\nexport function PaymentsPanel(props: {\n title?: string,\n customer?: CustomerLike,\n customerType?: \"user\" | \"team\",\n mockMode?: boolean,\n}) {\n if (props.mockMode) {\n return <MockPaymentsPanel title={props.title} />;\n }\n if (!props.customer) {\n return null;\n }\n return <RealPaymentsPanel title={props.title} customer={props.customer} customerType={props.customerType ?? \"user\"} />;\n}\n\nfunction MockPaymentsPanel(props: { title?: string }) {\n const { t } = useTranslation();\n const defaultPaymentMethod: PaymentMethodSummary = {\n id: \"pm_mock\",\n brand: \"visa\",\n last4: \"4242\",\n exp_month: 12,\n exp_year: 2030,\n };\n\n return (\n <div className=\"space-y-4\">\n {props.title && <Typography className=\"font-medium\">{props.title}</Typography>}\n <Section\n title={t(\"Payment method\")}\n description={t(\"Manage the default payment method used for subscriptions and invoices.\")}\n >\n <Typography>{formatPaymentMethod(defaultPaymentMethod)}</Typography>\n <Button disabled>\n {t(\"Update payment method\")}\n </Button>\n </Section>\n\n <Section\n title={t(\"Active plans\")}\n description={t(\"View your active plans and purchases.\")}\n >\n <div className=\"space-y-3\">\n <div className=\"flex items-start justify-between gap-4\">\n <div className=\"min-w-0\">\n <Typography className=\"truncate\">{t(\"Pro\")}</Typography>\n <Typography variant=\"secondary\" type=\"footnote\">{t(\"Renews on\")} Jan 1, 2030</Typography>\n </div>\n <Button disabled variant=\"secondary\" color=\"neutral\">\n {t(\"Cancel subscription\")}\n </Button>\n </div>\n <div className=\"flex items-start justify-between gap-4\">\n <div className=\"min-w-0\">\n <Typography className=\"truncate\">{t(\"Credits pack\")}</Typography>\n <Typography variant=\"secondary\" type=\"footnote\">{t(\"One-time purchase\")}</Typography>\n </div>\n </div>\n </div>\n </Section>\n </div>\n );\n}\n\nfunction RealPaymentsPanel(props: { title?: string, customer: CustomerLike, customerType: \"user\" | \"team\" }) {\n const { t } = useTranslation();\n const hexclaveApp = useStackApp();\n const billing = props.customer.useBilling();\n const defaultPaymentMethod = billing.defaultPaymentMethod;\n const products = props.customer.useProducts();\n const invoices = props.customer.useInvoices({ limit: 10 });\n const productsForCustomerType = products.filter(product => product.customerType === props.customerType);\n\n const [paymentDialogOpen, setPaymentDialogOpen] = useState(false);\n const [setupIntentClientSecret, setSetupIntentClientSecret] = useState<string | null>(null);\n const [setupIntentStripeAccountId, setSetupIntentStripeAccountId] = useState<string | null>(null);\n const [cancelTarget, setCancelTarget] = useState<{ productId: string, subscriptionId?: string } | null>(null);\n const [switchFromProductId, setSwitchFromProductId] = useState<string | null>(null);\n const [switchToProductId, setSwitchToProductId] = useState<string | null>(null);\n\n const stripePromise = useMemo(() => {\n if (!setupIntentStripeAccountId) return null;\n const publishableKey = envVars.HEXCLAVE_STRIPE_PUBLISHABLE_KEY;\n if (!publishableKey) return null;\n return loadStripe(publishableKey, { stripeAccount: setupIntentStripeAccountId });\n }, [setupIntentStripeAccountId]);\n\n const handleAsyncError = (error: unknown) => {\n if (error instanceof KnownErrors.DefaultPaymentMethodRequired) {\n toast({\n title: t(\"No default payment method\"),\n description: t(\"Add a payment method before switching plans.\"),\n variant: \"destructive\",\n });\n return;\n }\n alert(`An unhandled error occurred. Please ${envVars.NODE_ENV === \"development\" ? \"check the browser console for the full error.\" : \"report this to the developer.\"}\\n\\n${error}`);\n };\n\n const openPaymentDialog = () => {\n runAsynchronously(async () => {\n setPaymentDialogOpen(true);\n const res = await props.customer.createPaymentMethodSetupIntent();\n setSetupIntentClientSecret(res.clientSecret);\n setSetupIntentStripeAccountId(res.stripeAccountId);\n }, { onError: handleAsyncError });\n };\n\n const closePaymentDialog = () => {\n setPaymentDialogOpen(false);\n setSetupIntentClientSecret(null);\n setSetupIntentStripeAccountId(null);\n };\n\n const openSwitchDialog = (productId: string, firstOptionId: string | null) => {\n setSwitchFromProductId(productId);\n setSwitchToProductId(firstOptionId);\n };\n\n const closeSwitchDialog = () => {\n setSwitchFromProductId(null);\n setSwitchToProductId(null);\n };\n\n const switchSourceProduct = switchFromProductId\n ? productsForCustomerType.find((product) => product.id === switchFromProductId) ?? null\n : null;\n const switchOptions = switchSourceProduct?.switchOptions ?? [];\n const selectedSwitchOption = switchOptions.find((option) => option.productId === switchToProductId) ?? null;\n const selectedPriceId = selectedSwitchOption ? (Object.keys(selectedSwitchOption.prices)[0] ?? null) : null;\n\n return (\n <div className=\"space-y-4\">\n {props.title && <Typography className=\"font-medium\">{props.title}</Typography>}\n\n {defaultPaymentMethod && (\n <Section\n title={t(\"Payment method\")}\n description={t(\"Manage the default payment method used for subscriptions and invoices.\")}\n >\n <Typography>{formatPaymentMethod(defaultPaymentMethod)}</Typography>\n\n <Button onClick={openPaymentDialog}>\n {t(\"Update payment method\")}\n </Button>\n\n <ActionDialog\n open={paymentDialogOpen}\n onOpenChange={(open) => {\n if (!open) {\n closePaymentDialog();\n } else {\n setPaymentDialogOpen(true);\n }\n }}\n title={t(\"Update payment method\")}\n >\n {!setupIntentClientSecret || !setupIntentStripeAccountId || !stripePromise ? (\n <Skeleton className=\"h-10 w-full\" />\n ) : (\n <Elements\n stripe={stripePromise}\n options={{\n clientSecret: setupIntentClientSecret,\n }}\n >\n <SetDefaultPaymentMethodForm\n clientSecret={setupIntentClientSecret}\n onSetupIntentSucceeded={async (setupIntentId) => {\n await props.customer.setDefaultPaymentMethodFromSetupIntent(setupIntentId);\n closePaymentDialog();\n }}\n />\n </Elements>\n )}\n </ActionDialog>\n </Section>\n )}\n\n {productsForCustomerType.length > 0 && (\n <Section\n title={t(\"Active plans\")}\n description={t(\"View your active plans and purchases.\")}\n >\n <div className=\"space-y-3\">\n {productsForCustomerType.map((product, index) => {\n const quantitySuffix = product.quantity !== 1 ? ` ×${product.quantity}` : \"\";\n const isSubscription = product.type === \"subscription\";\n const isCancelable = isSubscription && !!product.subscription?.isCancelable;\n const canSwitchPlans = isSubscription && defaultPaymentMethod && !!product.id && (product.switchOptions?.length ?? 0) > 0;\n const renewsAt = isSubscription ? (product.subscription?.currentPeriodEnd ?? null) : null;\n const subtitle =\n product.type === \"one_time\"\n ? t(\"One-time purchase\")\n : renewsAt\n ? `${t(\"Renews on\")} ${new Intl.DateTimeFormat(undefined, { year: \"numeric\", month: \"short\", day: \"numeric\" }).format(renewsAt)}`\n : t(\"Subscription\");\n\n return (\n <div key={product.id ?? `${product.displayName}-${index}`} className=\"flex items-start justify-between gap-4\">\n <div className=\"min-w-0\">\n <Typography className=\"truncate\">{product.displayName}{quantitySuffix}</Typography>\n <Typography variant=\"secondary\" type=\"footnote\">{subtitle}</Typography>\n </div>\n\n <div className=\"flex flex-col items-end gap-2\">\n {canSwitchPlans && (\n <Button\n variant=\"secondary\"\n color=\"neutral\"\n onClick={() => openSwitchDialog(product.id!, product.switchOptions?.[0]?.productId ?? null)}\n >\n {t(\"Change plan\")}\n </Button>\n )}\n {isCancelable && (\n <Button\n variant=\"secondary\"\n color=\"neutral\"\n onClick={() => setCancelTarget({ productId: product.id ?? \"_inline\", subscriptionId: product.subscription?.subscriptionId ?? undefined })}\n >\n {t(\"Cancel subscription\")}\n </Button>\n )}\n </div>\n </div>\n );\n })}\n </div>\n\n <ActionDialog\n open={cancelTarget !== null}\n onOpenChange={(open) => {\n if (!open) setCancelTarget(null);\n }}\n title={t(\"Cancel subscription\")}\n description={t(\"Canceling will stop future renewals for this subscription.\")}\n danger\n cancelButton\n okButton={{\n label: t(\"Cancel subscription\"),\n onClick: async () => {\n if (!cancelTarget) return;\n const { productId, subscriptionId } = cancelTarget;\n if (props.customerType === \"team\") {\n await hexclaveApp.cancelSubscription({ teamId: props.customer.id, productId, subscriptionId });\n } else {\n await hexclaveApp.cancelSubscription({ productId, subscriptionId });\n }\n setCancelTarget(null);\n },\n }}\n />\n\n <ActionDialog\n open={switchFromProductId !== null}\n onOpenChange={(open) => {\n if (!open) closeSwitchDialog();\n }}\n title={t(\"Change plan\")}\n description={t(\"Select a new plan from the same product line.\")}\n cancelButton\n okButton={{\n label: t(\"Switch plan\"),\n onClick: async () => {\n const fromProductId = switchFromProductId;\n const toProductId = switchToProductId;\n if (!fromProductId || !toProductId) return;\n if (!selectedPriceId) return;\n const result = await Result.fromThrowingAsync(() => props.customer.switchSubscription({\n fromProductId,\n toProductId,\n priceId: selectedPriceId,\n }));\n if (result.status === \"error\") {\n handleAsyncError(result.error);\n return \"prevent-close\";\n }\n closeSwitchDialog();\n },\n props: {\n disabled: !switchFromProductId || !switchToProductId || !selectedPriceId,\n },\n }}\n >\n <div className=\"space-y-2\">\n {switchOptions.length === 0 ? (\n <Typography variant=\"secondary\" type=\"footnote\">\n {t(\"No other plans available for this subscription.\")}\n </Typography>\n ) : (\n <>\n <Typography type=\"footnote\">{t(\"Choose a plan\")}</Typography>\n <Select\n value={switchToProductId ?? undefined}\n onValueChange={(value) => setSwitchToProductId(value || null)}\n >\n <SelectTrigger className=\"w-full\">\n <SelectValue placeholder={t(\"Choose a plan\")} />\n </SelectTrigger>\n <SelectContent>\n {switchOptions.map((option: NonNullable<typeof switchOptions>[number]) => (\n <SelectItem key={option.productId} value={option.productId}>\n {option.displayName}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </>\n )}\n </div>\n </ActionDialog>\n </Section>\n )\n }\n {invoices.length > 0 && (\n <>\n <Separator />\n <div className=\"space-y-2\">\n <div className=\"space-y-1\">\n <Typography className=\"font-medium\">{t(\"Invoices\")}</Typography>\n <Typography variant=\"secondary\" type=\"footnote\">{t(\"Review past invoices and receipts.\")}</Typography>\n </div>\n <div className=\"border rounded-md\">\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead className=\"w-[140px]\">{t(\"Date\")}</TableHead>\n <TableHead className=\"w-[120px]\">{t(\"Status\")}</TableHead>\n <TableHead className=\"w-[120px]\">{t(\"Amount\")}</TableHead>\n <TableHead className=\"w-[120px] text-right\">{t(\"Invoice\")}</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {invoices.map((invoice, index) => {\n const createdAtTime = invoice.createdAt.getTime();\n const invoiceKey = Number.isNaN(createdAtTime) ? `invoice-${index}` : `invoice-${createdAtTime}-${index}`;\n return (\n <TableRow key={invoiceKey}>\n <TableCell>\n <Typography>{formatInvoiceDate(invoice.createdAt, t)}</Typography>\n </TableCell>\n <TableCell>\n <Typography>{formatInvoiceStatus(invoice.status, t)}</Typography>\n </TableCell>\n <TableCell>\n <Typography>{formatInvoiceAmount(invoice.amountTotal, t)}</Typography>\n </TableCell>\n <TableCell align=\"right\">\n {invoice.hostedInvoiceUrl ? (\n <Button asChild variant=\"secondary\" color=\"neutral\" size=\"sm\">\n <a href={invoice.hostedInvoiceUrl} target=\"_blank\" rel=\"noreferrer\">\n {t(\"View\")}\n </a>\n </Button>\n ) : (\n <Typography variant=\"secondary\" type=\"footnote\">\n {t(\"Unavailable\")}\n </Typography>\n )}\n </TableCell>\n </TableRow>\n );\n })}\n </TableBody>\n </Table>\n </div>\n </div>\n </>\n )}\n </div >\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"payments-panel.js","names":[],"sources":["../../../../../src/components-page/account-settings/payments/payments-panel.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 { runAsynchronously } from \"@hexclave/shared/dist/utils/promises\";\nimport { ActionDialog, Button, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Separator, Skeleton, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, toast, Typography } from \"@hexclave/ui\";\nimport { CardElement, Elements, useElements, useStripe } from \"@stripe/react-stripe-js\";\nimport { loadStripe } from \"@stripe/stripe-js\";\nimport { useMemo, useState } from \"react\";\nimport { useStackApp } from \"../../..\";\nimport { envVars } from \"../../../generated/env\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { Section } from \"../section\";\nimport { Result } from \"@hexclave/shared/dist/utils/results\";\nimport type { CustomerInvoiceStatus, CustomerInvoicesList, CustomerInvoicesListOptions } from \"../../../lib/hexclave-app/customers\";\n\ntype PaymentMethodSummary = {\n id: string,\n brand: string | null,\n last4: string | null,\n exp_month: number | null,\n exp_year: number | null,\n} | null;\n\nfunction formatPaymentMethod(pm: NonNullable<PaymentMethodSummary>) {\n const details = [\n pm.brand ? pm.brand.toUpperCase() : null,\n pm.last4 ? `•••• ${pm.last4}` : null,\n pm.exp_month && pm.exp_year ? `exp ${pm.exp_month}/${pm.exp_year}` : null,\n ].filter(Boolean);\n return details.join(\" · \");\n}\n\nconst formatInvoiceStatus = (status: CustomerInvoiceStatus, t: (value: string) => string) => {\n if (!status) {\n return t(\"Unknown\");\n }\n switch (status) {\n case \"draft\": {\n return t(\"Draft\");\n }\n case \"open\": {\n return t(\"Open\");\n }\n case \"paid\": {\n return t(\"Paid\");\n }\n case \"uncollectible\": {\n return t(\"Uncollectible\");\n }\n case \"void\": {\n return t(\"Void\");\n }\n default: {\n return t(\"Unknown\");\n }\n }\n};\n\nconst formatInvoiceAmount = (amountTotal: number | null | undefined, t: (value: string) => string) => {\n if (typeof amountTotal !== \"number\" || Number.isNaN(amountTotal)) {\n return t(\"Unknown\");\n }\n const normalized = amountTotal / 100;\n const formatted = new Intl.NumberFormat(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(normalized);\n return `$${formatted}`;\n};\n\nconst formatInvoiceDate = (date: Date | null | undefined, t: (value: string) => string) => {\n if (!date || Number.isNaN(date.getTime())) {\n return t(\"Unknown\");\n }\n return new Intl.DateTimeFormat(undefined, { year: \"numeric\", month: \"short\", day: \"numeric\" }).format(date);\n};\n\ntype CustomerBilling = {\n hasCustomer: boolean,\n defaultPaymentMethod: PaymentMethodSummary,\n};\n\ntype CustomerPaymentMethodSetupIntent = {\n clientSecret: string,\n stripeAccountId: string,\n};\n\ntype CustomerLike = {\n id: string,\n useBilling: () => CustomerBilling,\n useProducts: () => Array<{\n id: string | null,\n quantity: number,\n displayName: string,\n customerType: \"user\" | \"team\" | \"custom\",\n type?: \"one_time\" | \"subscription\",\n switchOptions?: Array<{\n productId: string,\n displayName: string,\n prices: Record<string, { interval?: [number, \"day\" | \"week\" | \"month\" | \"year\"] }>,\n }>,\n subscription: null | {\n subscriptionId: string | null,\n currentPeriodEnd: Date | null,\n cancelAtPeriodEnd: boolean,\n isCancelable: boolean,\n },\n }>,\n useInvoices: (options?: CustomerInvoicesListOptions) => CustomerInvoicesList,\n createPaymentMethodSetupIntent: () => Promise<CustomerPaymentMethodSetupIntent>,\n setDefaultPaymentMethodFromSetupIntent: (setupIntentId: string) => Promise<PaymentMethodSummary>,\n switchSubscription: (options: { fromProductId: string, toProductId: string, priceId?: string, quantity?: number }) => Promise<void>,\n};\n\nfunction SetDefaultPaymentMethodForm(props: {\n clientSecret: string,\n onSetupIntentSucceeded: (setupIntentId: string) => Promise<void>,\n}) {\n const stripe = useStripe();\n const elements = useElements();\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n const darkMode = \"color-scheme\" in document.documentElement.style && document.documentElement.style[\"color-scheme\"] === \"dark\";\n\n return (\n <div className=\"space-y-4\">\n <div className=\"space-y-2\">\n <Typography className=\"font-medium\">Card details</Typography>\n <div className=\"rounded-md border border-input p-3\">\n <CardElement options={{ hidePostalCode: true, style: { base: { color: darkMode ? \"white\" : \"black\" } } }} />\n </div>\n </div>\n {errorMessage && (\n <Typography variant=\"secondary\" type=\"footnote\">\n {errorMessage}\n </Typography>\n )}\n <Button\n onClick={async () => {\n if (!stripe || !elements) {\n setErrorMessage(\"Stripe is still loading. Please try again.\");\n return;\n }\n const card = elements.getElement(CardElement);\n if (!card) {\n setErrorMessage(\"Card element not found.\");\n return;\n }\n\n const result = await stripe.confirmCardSetup(props.clientSecret, {\n payment_method: { card },\n });\n if (result.error) {\n setErrorMessage(result.error.message ?? \"Failed to save payment method.\");\n return;\n }\n if (!result.setupIntent.id) {\n setErrorMessage(\"No setup intent returned from Stripe.\");\n return;\n }\n await props.onSetupIntentSucceeded(result.setupIntent.id);\n }}\n >\n Save payment method\n </Button>\n </div>\n );\n}\n\nexport function PaymentsPanel(props: {\n title?: string,\n customer?: CustomerLike,\n customerType?: \"user\" | \"team\",\n mockMode?: boolean,\n}) {\n if (props.mockMode) {\n return <MockPaymentsPanel title={props.title} />;\n }\n if (!props.customer) {\n return null;\n }\n return <RealPaymentsPanel title={props.title} customer={props.customer} customerType={props.customerType ?? \"user\"} />;\n}\n\nfunction MockPaymentsPanel(props: { title?: string }) {\n const { t } = useTranslation();\n const defaultPaymentMethod: PaymentMethodSummary = {\n id: \"pm_mock\",\n brand: \"visa\",\n last4: \"4242\",\n exp_month: 12,\n exp_year: 2030,\n };\n\n return (\n <div className=\"space-y-4\">\n {props.title && <Typography className=\"font-medium\">{props.title}</Typography>}\n <Section\n title={t(\"Payment method\")}\n description={t(\"Manage the default payment method used for subscriptions and invoices.\")}\n >\n <Typography>{formatPaymentMethod(defaultPaymentMethod)}</Typography>\n <Button disabled>\n {t(\"Update payment method\")}\n </Button>\n </Section>\n\n <Section\n title={t(\"Active plans\")}\n description={t(\"View your active plans and purchases.\")}\n >\n <div className=\"space-y-3\">\n <div className=\"flex items-start justify-between gap-4\">\n <div className=\"min-w-0\">\n <Typography className=\"truncate\">{t(\"Pro\")}</Typography>\n <Typography variant=\"secondary\" type=\"footnote\">{t(\"Renews on\")} Jan 1, 2030</Typography>\n </div>\n <Button disabled variant=\"secondary\" color=\"neutral\">\n {t(\"Cancel subscription\")}\n </Button>\n </div>\n <div className=\"flex items-start justify-between gap-4\">\n <div className=\"min-w-0\">\n <Typography className=\"truncate\">{t(\"Credits pack\")}</Typography>\n <Typography variant=\"secondary\" type=\"footnote\">{t(\"One-time purchase\")}</Typography>\n </div>\n </div>\n </div>\n </Section>\n </div>\n );\n}\n\nfunction RealPaymentsPanel(props: { title?: string, customer: CustomerLike, customerType: \"user\" | \"team\" }) {\n const { t } = useTranslation();\n const hexclaveApp = useStackApp();\n const billing = props.customer.useBilling();\n const defaultPaymentMethod = billing.defaultPaymentMethod;\n const products = props.customer.useProducts();\n const invoices = props.customer.useInvoices({ limit: 10 });\n const productsForCustomerType = products.filter(product => product.customerType === props.customerType);\n\n const [paymentDialogOpen, setPaymentDialogOpen] = useState(false);\n const [setupIntentClientSecret, setSetupIntentClientSecret] = useState<string | null>(null);\n const [setupIntentStripeAccountId, setSetupIntentStripeAccountId] = useState<string | null>(null);\n const [cancelTarget, setCancelTarget] = useState<{ productId: string, subscriptionId?: string } | null>(null);\n const [switchFromProductId, setSwitchFromProductId] = useState<string | null>(null);\n const [switchToProductId, setSwitchToProductId] = useState<string | null>(null);\n\n const stripePromise = useMemo(() => {\n if (!setupIntentStripeAccountId) return null;\n const publishableKey = envVars.HEXCLAVE_STRIPE_PUBLISHABLE_KEY;\n if (!publishableKey) return null;\n return loadStripe(publishableKey, { stripeAccount: setupIntentStripeAccountId });\n }, [setupIntentStripeAccountId]);\n\n const handleAsyncError = (error: unknown) => {\n if (error instanceof KnownErrors.DefaultPaymentMethodRequired) {\n toast({\n title: t(\"No default payment method\"),\n description: t(\"Add a payment method before switching plans.\"),\n variant: \"destructive\",\n });\n return;\n }\n alert(`An unhandled error occurred. Please ${envVars.NODE_ENV === \"development\" ? \"check the browser console for the full error.\" : \"report this to the developer.\"}\\n\\n${error}`);\n };\n\n const openPaymentDialog = () => {\n runAsynchronously(async () => {\n setPaymentDialogOpen(true);\n const res = await props.customer.createPaymentMethodSetupIntent();\n setSetupIntentClientSecret(res.clientSecret);\n setSetupIntentStripeAccountId(res.stripeAccountId);\n }, { onError: handleAsyncError });\n };\n\n const closePaymentDialog = () => {\n setPaymentDialogOpen(false);\n setSetupIntentClientSecret(null);\n setSetupIntentStripeAccountId(null);\n };\n\n const openSwitchDialog = (productId: string, firstOptionId: string | null) => {\n setSwitchFromProductId(productId);\n setSwitchToProductId(firstOptionId);\n };\n\n const closeSwitchDialog = () => {\n setSwitchFromProductId(null);\n setSwitchToProductId(null);\n };\n\n const switchSourceProduct = switchFromProductId\n ? productsForCustomerType.find((product) => product.id === switchFromProductId) ?? null\n : null;\n const switchOptions = switchSourceProduct?.switchOptions ?? [];\n const selectedSwitchOption = switchOptions.find((option) => option.productId === switchToProductId) ?? null;\n const selectedPriceId = selectedSwitchOption ? (Object.keys(selectedSwitchOption.prices)[0] ?? null) : null;\n\n return (\n <div className=\"space-y-4\">\n {props.title && <Typography className=\"font-medium\">{props.title}</Typography>}\n\n {defaultPaymentMethod && (\n <Section\n title={t(\"Payment method\")}\n description={t(\"Manage the default payment method used for subscriptions and invoices.\")}\n >\n <Typography>{formatPaymentMethod(defaultPaymentMethod)}</Typography>\n\n <Button onClick={openPaymentDialog}>\n {t(\"Update payment method\")}\n </Button>\n\n <ActionDialog\n open={paymentDialogOpen}\n onOpenChange={(open) => {\n if (!open) {\n closePaymentDialog();\n } else {\n setPaymentDialogOpen(true);\n }\n }}\n title={t(\"Update payment method\")}\n >\n {!setupIntentClientSecret || !setupIntentStripeAccountId || !stripePromise ? (\n <Skeleton className=\"h-10 w-full\" />\n ) : (\n <Elements\n stripe={stripePromise}\n options={{\n clientSecret: setupIntentClientSecret,\n }}\n >\n <SetDefaultPaymentMethodForm\n clientSecret={setupIntentClientSecret}\n onSetupIntentSucceeded={async (setupIntentId) => {\n await props.customer.setDefaultPaymentMethodFromSetupIntent(setupIntentId);\n closePaymentDialog();\n }}\n />\n </Elements>\n )}\n </ActionDialog>\n </Section>\n )}\n\n {productsForCustomerType.length > 0 && (\n <Section\n title={t(\"Active plans\")}\n description={t(\"View your active plans and purchases.\")}\n >\n <div className=\"space-y-3\">\n {productsForCustomerType.map((product, index) => {\n const quantitySuffix = product.quantity !== 1 ? ` ×${product.quantity}` : \"\";\n const isSubscription = product.type === \"subscription\";\n const isCancelable = isSubscription && !!product.subscription?.isCancelable;\n const canSwitchPlans = isSubscription && defaultPaymentMethod && !!product.id && (product.switchOptions?.length ?? 0) > 0;\n const renewsAt = isSubscription ? (product.subscription?.currentPeriodEnd ?? null) : null;\n const subtitle =\n product.type === \"one_time\"\n ? t(\"One-time purchase\")\n : renewsAt\n ? `${t(\"Renews on\")} ${new Intl.DateTimeFormat(undefined, { year: \"numeric\", month: \"short\", day: \"numeric\" }).format(renewsAt)}`\n : t(\"Subscription\");\n\n return (\n <div key={product.id ?? `${product.displayName}-${index}`} className=\"flex items-start justify-between gap-4\">\n <div className=\"min-w-0\">\n <Typography className=\"truncate\">{product.displayName}{quantitySuffix}</Typography>\n <Typography variant=\"secondary\" type=\"footnote\">{subtitle}</Typography>\n </div>\n\n <div className=\"flex flex-col items-end gap-2\">\n {canSwitchPlans && (\n <Button\n variant=\"secondary\"\n color=\"neutral\"\n onClick={() => openSwitchDialog(product.id!, product.switchOptions?.[0]?.productId ?? null)}\n >\n {t(\"Change plan\")}\n </Button>\n )}\n {isCancelable && (\n <Button\n variant=\"secondary\"\n color=\"neutral\"\n onClick={() => setCancelTarget({ productId: product.id ?? \"_inline\", subscriptionId: product.subscription?.subscriptionId ?? undefined })}\n >\n {t(\"Cancel subscription\")}\n </Button>\n )}\n </div>\n </div>\n );\n })}\n </div>\n\n <ActionDialog\n open={cancelTarget !== null}\n onOpenChange={(open) => {\n if (!open) setCancelTarget(null);\n }}\n title={t(\"Cancel subscription\")}\n description={t(\"Canceling will stop future renewals for this subscription.\")}\n danger\n cancelButton\n okButton={{\n label: t(\"Cancel subscription\"),\n onClick: async () => {\n if (!cancelTarget) return;\n const { productId, subscriptionId } = cancelTarget;\n if (props.customerType === \"team\") {\n await hexclaveApp.cancelSubscription({ teamId: props.customer.id, productId, subscriptionId });\n } else {\n await hexclaveApp.cancelSubscription({ productId, subscriptionId });\n }\n setCancelTarget(null);\n },\n }}\n />\n\n <ActionDialog\n open={switchFromProductId !== null}\n onOpenChange={(open) => {\n if (!open) closeSwitchDialog();\n }}\n title={t(\"Change plan\")}\n description={t(\"Select a new plan from the same product line.\")}\n cancelButton\n okButton={{\n label: t(\"Switch plan\"),\n onClick: async () => {\n const fromProductId = switchFromProductId;\n const toProductId = switchToProductId;\n if (!fromProductId || !toProductId) return;\n if (!selectedPriceId) return;\n const result = await Result.fromThrowingAsync(() => props.customer.switchSubscription({\n fromProductId,\n toProductId,\n priceId: selectedPriceId,\n }));\n if (result.status === \"error\") {\n handleAsyncError(result.error);\n return \"prevent-close\";\n }\n closeSwitchDialog();\n },\n props: {\n disabled: !switchFromProductId || !switchToProductId || !selectedPriceId,\n },\n }}\n >\n <div className=\"space-y-2\">\n {switchOptions.length === 0 ? (\n <Typography variant=\"secondary\" type=\"footnote\">\n {t(\"No other plans available for this subscription.\")}\n </Typography>\n ) : (\n <>\n <Typography type=\"footnote\">{t(\"Choose a plan\")}</Typography>\n <Select\n value={switchToProductId ?? undefined}\n onValueChange={(value) => setSwitchToProductId(value || null)}\n >\n <SelectTrigger className=\"w-full\">\n <SelectValue placeholder={t(\"Choose a plan\")} />\n </SelectTrigger>\n <SelectContent>\n {switchOptions.map((option: NonNullable<typeof switchOptions>[number]) => (\n <SelectItem key={option.productId} value={option.productId}>\n {option.displayName}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </>\n )}\n </div>\n </ActionDialog>\n </Section>\n )\n }\n {invoices.length > 0 && (\n <>\n <Separator />\n <div className=\"space-y-2\">\n <div className=\"space-y-1\">\n <Typography className=\"font-medium\">{t(\"Invoices\")}</Typography>\n <Typography variant=\"secondary\" type=\"footnote\">{t(\"Review past invoices and receipts.\")}</Typography>\n </div>\n <div className=\"border rounded-md\">\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead className=\"w-[140px]\">{t(\"Date\")}</TableHead>\n <TableHead className=\"w-[120px]\">{t(\"Status\")}</TableHead>\n <TableHead className=\"w-[120px]\">{t(\"Amount\")}</TableHead>\n <TableHead className=\"w-[120px] text-right\">{t(\"Invoice\")}</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {invoices.map((invoice, index) => {\n const createdAtTime = invoice.createdAt.getTime();\n const invoiceKey = Number.isNaN(createdAtTime) ? `invoice-${index}` : `invoice-${createdAtTime}-${index}`;\n return (\n <TableRow key={invoiceKey}>\n <TableCell>\n <Typography>{formatInvoiceDate(invoice.createdAt, t)}</Typography>\n </TableCell>\n <TableCell>\n <Typography>{formatInvoiceStatus(invoice.status, t)}</Typography>\n </TableCell>\n <TableCell>\n <Typography>{formatInvoiceAmount(invoice.amountTotal, t)}</Typography>\n </TableCell>\n <TableCell align=\"right\">\n {invoice.hostedInvoiceUrl ? (\n <Button asChild variant=\"secondary\" color=\"neutral\" size=\"sm\">\n <a href={invoice.hostedInvoiceUrl} target=\"_blank\" rel=\"noreferrer\">\n {t(\"View\")}\n </a>\n </Button>\n ) : (\n <Typography variant=\"secondary\" type=\"footnote\">\n {t(\"Unavailable\")}\n </Typography>\n )}\n </TableCell>\n </TableRow>\n );\n })}\n </TableBody>\n </Table>\n </div>\n </div>\n </>\n )}\n </div >\n );\n}\n"],"mappings":"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"}
@@ -1,12 +1,10 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
-
3
1
  //#region src/components-page/account-settings/profile-page/profile-page.d.ts
4
2
  declare function ProfilePage(props?: {
5
3
  mockUser?: {
6
4
  displayName?: string;
7
5
  profileImageUrl?: string;
8
6
  };
9
- }): react_jsx_runtime0.JSX.Element | null;
7
+ }): import("react/jsx-runtime").JSX.Element | null;
10
8
  //#endregion
11
9
  export { ProfilePage };
12
10
  //# sourceMappingURL=profile-page.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile-page.d.ts","names":[],"sources":["../../../../../src/components-page/account-settings/profile-page/profile-page.tsx"],"mappings":";;;iBAWgB,WAAA,CAAY,KAAA;EAC1B,QAAA;IACE,WAAA;IACA,eAAA;EAAA;AAAA,IAEH,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"profile-page.d.ts","names":[],"sources":["../../../../../src/components-page/account-settings/profile-page/profile-page.tsx"],"mappings":";iBAWgB,WAAA,CAAY,KAAA;EAC1B,QAAA;IACE,WAAA;IACA,eAAA;EAAA;AAAA,gCAEH,GAAA,CAAA,OAAA"}
@@ -5,7 +5,6 @@ import { PageLayout } from "../page-layout.js";
5
5
  import { Section } from "../section.js";
6
6
  import { ProfileImageEditor } from "../../../components/profile-image-editor.js";
7
7
  import { EditableText } from "../editable-text.js";
8
-
9
8
  //#region src/components-page/account-settings/profile-page/profile-page.tsx
10
9
  function ProfilePage(props) {
11
10
  const { t } = useTranslation();
@@ -38,7 +37,7 @@ function ProfilePage(props) {
38
37
  })
39
38
  })] });
40
39
  }
41
-
42
40
  //#endregion
43
41
  export { ProfilePage };
42
+
44
43
  //# sourceMappingURL=profile-page.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile-page.js","names":[],"sources":["../../../../../src/components-page/account-settings/profile-page/profile-page.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 { ProfileImageEditor } from \"../../../components/profile-image-editor\";\nimport { useUser } from \"../../../lib/hooks\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { EditableText } from \"../editable-text\";\nimport { PageLayout } from \"../page-layout\";\nimport { Section } from \"../section\";\n\nexport function ProfilePage(props?: {\n mockUser?: {\n displayName?: string,\n profileImageUrl?: string,\n },\n}) {\n const { t } = useTranslation();\n const userFromHook = useUser({ or: props?.mockUser ? 'return-null' : 'redirect' });\n\n // Use mock data if provided, otherwise use real user\n const user = props?.mockUser ? {\n displayName: props.mockUser.displayName || 'John Doe',\n profileImageUrl: props.mockUser.profileImageUrl || null,\n update: async () => {\n // Mock update - do nothing in demo mode\n console.log('Mock update called');\n }\n } : userFromHook;\n\n if (!user) {\n return null; // This shouldn't happen in practice\n }\n\n return (\n <PageLayout>\n <Section\n title={t(\"User name\")}\n description={t(\"This is a display name and is not used for authentication\")}\n >\n <EditableText\n value={user.displayName || ''}\n onSave={async (newDisplayName) => {\n await user.update({ displayName: newDisplayName });\n }}/>\n </Section>\n\n <Section\n title={t(\"Profile image\")}\n description={t(\"Upload your own image as your avatar\")}\n >\n <ProfileImageEditor\n user={user as any}\n onProfileImageUrlChange={async (profileImageUrl: string | null) => {\n await user.update({ profileImageUrl });\n }}\n />\n </Section>\n </PageLayout>\n );\n}\n"],"mappings":";;;;;;;;;AAWA,SAAgB,YAAY,OAKzB;CACD,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,eAAe,QAAQ,EAAE,IAAI,OAAO,WAAW,gBAAgB,YAAY,CAAC;CAGlF,MAAM,OAAO,OAAO,WAAW;EAC7B,aAAa,MAAM,SAAS,eAAe;EAC3C,iBAAiB,MAAM,SAAS,mBAAmB;EACnD,QAAQ,YAAY;AAElB,WAAQ,IAAI,qBAAqB;;EAEpC,GAAG;AAEJ,KAAI,CAAC,KACH,QAAO;AAGT,QACE,qBAAC,yBACC,oBAAC;EACC,OAAO,EAAE,YAAY;EACrB,aAAa,EAAE,4DAA4D;YAE3E,oBAAC;GACC,OAAO,KAAK,eAAe;GAC3B,QAAQ,OAAO,mBAAmB;AAChC,UAAM,KAAK,OAAO,EAAE,aAAa,gBAAgB,CAAC;;IAChD;GACE,EAEV,oBAAC;EACC,OAAO,EAAE,gBAAgB;EACzB,aAAa,EAAE,uCAAuC;YAEtD,oBAAC;GACO;GACN,yBAAyB,OAAO,oBAAmC;AACjE,UAAM,KAAK,OAAO,EAAE,iBAAiB,CAAC;;IAExC;GACM,IACC"}
1
+ {"version":3,"file":"profile-page.js","names":[],"sources":["../../../../../src/components-page/account-settings/profile-page/profile-page.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 { ProfileImageEditor } from \"../../../components/profile-image-editor\";\nimport { useUser } from \"../../../lib/hooks\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { EditableText } from \"../editable-text\";\nimport { PageLayout } from \"../page-layout\";\nimport { Section } from \"../section\";\n\nexport function ProfilePage(props?: {\n mockUser?: {\n displayName?: string,\n profileImageUrl?: string,\n },\n}) {\n const { t } = useTranslation();\n const userFromHook = useUser({ or: props?.mockUser ? 'return-null' : 'redirect' });\n\n // Use mock data if provided, otherwise use real user\n const user = props?.mockUser ? {\n displayName: props.mockUser.displayName || 'John Doe',\n profileImageUrl: props.mockUser.profileImageUrl || null,\n update: async () => {\n // Mock update - do nothing in demo mode\n console.log('Mock update called');\n }\n } : userFromHook;\n\n if (!user) {\n return null; // This shouldn't happen in practice\n }\n\n return (\n <PageLayout>\n <Section\n title={t(\"User name\")}\n description={t(\"This is a display name and is not used for authentication\")}\n >\n <EditableText\n value={user.displayName || ''}\n onSave={async (newDisplayName) => {\n await user.update({ displayName: newDisplayName });\n }}/>\n </Section>\n\n <Section\n title={t(\"Profile image\")}\n description={t(\"Upload your own image as your avatar\")}\n >\n <ProfileImageEditor\n user={user as any}\n onProfileImageUrlChange={async (profileImageUrl: string | null) => {\n await user.update({ profileImageUrl });\n }}\n />\n </Section>\n </PageLayout>\n );\n}\n"],"mappings":";;;;;;;;AAWA,SAAgB,YAAY,OAKzB;CACD,MAAM,EAAE,MAAM,eAAe;CAC7B,MAAM,eAAe,QAAQ,EAAE,IAAI,OAAO,WAAW,gBAAgB,WAAW,CAAC;CAGjF,MAAM,OAAO,OAAO,WAAW;EAC7B,aAAa,MAAM,SAAS,eAAe;EAC3C,iBAAiB,MAAM,SAAS,mBAAmB;EACnD,QAAQ,YAAY;GAElB,QAAQ,IAAI,oBAAoB;EAClC;CACF,IAAI;CAEJ,IAAI,CAAC,MACH,OAAO;CAGT,OACE,qBAAC,YAAD,EAAA,UAAA,CACE,oBAAC,SAAD;EACE,OAAO,EAAE,WAAW;EACpB,aAAa,EAAE,2DAA2D;YAE1E,oBAAC,cAAD;GACE,OAAO,KAAK,eAAe;GAC3B,QAAQ,OAAO,mBAAmB;IAChC,MAAM,KAAK,OAAO,EAAE,aAAa,eAAe,CAAC;GACnD;EAAG,CAAA;CACE,CAAA,GAET,oBAAC,SAAD;EACE,OAAO,EAAE,eAAe;EACxB,aAAa,EAAE,sCAAsC;YAErD,oBAAC,oBAAD;GACQ;GACN,yBAAyB,OAAO,oBAAmC;IACjE,MAAM,KAAK,OAAO,EAAE,gBAAgB,CAAC;GACvC;EACD,CAAA;CACM,CAAA,CACC,EAAA,CAAA;AAEhB"}
@@ -1,11 +1,9 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
-
3
1
  //#region src/components-page/account-settings/section.d.ts
4
2
  declare function Section(props: {
5
3
  title: string;
6
4
  description?: string;
7
5
  children: React.ReactNode;
8
- }): react_jsx_runtime0.JSX.Element;
6
+ }): import("react/jsx-runtime").JSX.Element;
9
7
  //#endregion
10
8
  export { Section };
11
9
  //# sourceMappingURL=section.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"section.d.ts","names":[],"sources":["../../../../src/components-page/account-settings/section.tsx"],"mappings":";;;iBAMgB,OAAA,CAAQ,KAAA;EAAS,KAAA;EAAe,WAAA;EAAsB,QAAA,EAAU,KAAA,CAAM,SAAA;AAAA,IAAW,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"section.d.ts","names":[],"sources":["../../../../src/components-page/account-settings/section.tsx"],"mappings":";iBAMgB,OAAA,CAAQ,KAAA;EAAS,KAAA;EAAe,WAAA;EAAsB,QAAA,EAAU,KAAA,CAAM,SAAS;AAAA,gCAAE,GAAA,CAAA,OAAA"}
@@ -1,6 +1,5 @@
1
1
  import { Separator, Typography } from "@hexclave/ui";
2
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
-
4
3
  //#region src/components-page/account-settings/section.tsx
5
4
  function Section(props) {
6
5
  return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Separator, {}), /* @__PURE__ */ jsxs("div", {
@@ -21,7 +20,7 @@ function Section(props) {
21
20
  })]
22
21
  })] });
23
22
  }
24
-
25
23
  //#endregion
26
24
  export { Section };
25
+
27
26
  //# sourceMappingURL=section.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"section.js","names":[],"sources":["../../../../src/components-page/account-settings/section.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 { Separator, Typography } from \"@hexclave/ui\";\n\nexport function Section(props: { title: string, description?: string, children: React.ReactNode }) {\n return (\n <>\n <Separator />\n <div className='flex flex-col sm:flex-row gap-2'>\n <div className='sm:flex-1 flex flex-col justify-center'>\n <Typography className='font-medium'>\n {props.title}\n </Typography>\n {props.description && <Typography variant='secondary' type='footnote'>\n {props.description}\n </Typography>}\n </div>\n <div className='sm:flex-1 sm:items-end flex flex-col gap-2 '>\n {props.children}\n </div>\n </div>\n </>\n );\n}\n"],"mappings":";;;;AAMA,SAAgB,QAAQ,OAA2E;AACjG,QACE,4CACE,oBAAC,cAAY,EACb,qBAAC;EAAI,WAAU;aACb,qBAAC;GAAI,WAAU;cACb,oBAAC;IAAW,WAAU;cACnB,MAAM;KACI,EACZ,MAAM,eAAe,oBAAC;IAAW,SAAQ;IAAY,MAAK;cACxD,MAAM;KACI;IACT,EACN,oBAAC;GAAI,WAAU;aACZ,MAAM;IACH;GACF,IACL"}
1
+ {"version":3,"file":"section.js","names":[],"sources":["../../../../src/components-page/account-settings/section.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 { Separator, Typography } from \"@hexclave/ui\";\n\nexport function Section(props: { title: string, description?: string, children: React.ReactNode }) {\n return (\n <>\n <Separator />\n <div className='flex flex-col sm:flex-row gap-2'>\n <div className='sm:flex-1 flex flex-col justify-center'>\n <Typography className='font-medium'>\n {props.title}\n </Typography>\n {props.description && <Typography variant='secondary' type='footnote'>\n {props.description}\n </Typography>}\n </div>\n <div className='sm:flex-1 sm:items-end flex flex-col gap-2 '>\n {props.children}\n </div>\n </div>\n </>\n );\n}\n"],"mappings":";;;AAMA,SAAgB,QAAQ,OAA2E;CACjG,OACE,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,WAAD,CAAY,CAAA,GACZ,qBAAC,OAAD;EAAK,WAAU;YAAf,CACE,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,oBAAC,YAAD;IAAY,WAAU;cACnB,MAAM;GACG,CAAA,GACX,MAAM,eAAe,oBAAC,YAAD;IAAY,SAAQ;IAAY,MAAK;cACxD,MAAM;GACG,CAAA,CACT;MACL,oBAAC,OAAD;GAAK,WAAU;aACZ,MAAM;EACJ,CAAA,CACF;GACL,EAAA,CAAA;AAEN"}
@@ -1,9 +1,7 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
-
3
1
  //#region src/components-page/account-settings/settings/delete-account-section.d.ts
4
2
  declare function DeleteAccountSection(props?: {
5
3
  mockMode?: boolean;
6
- }): react_jsx_runtime0.JSX.Element | null;
4
+ }): import("react/jsx-runtime").JSX.Element | null;
7
5
  //#endregion
8
6
  export { DeleteAccountSection };
9
7
  //# sourceMappingURL=delete-account-section.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delete-account-section.d.ts","names":[],"sources":["../../../../../src/components-page/account-settings/settings/delete-account-section.tsx"],"mappings":";;;iBAUgB,oBAAA,CAAqB,KAAA;EAAU,QAAA;AAAA,IAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"delete-account-section.d.ts","names":[],"sources":["../../../../../src/components-page/account-settings/settings/delete-account-section.tsx"],"mappings":";iBAUgB,oBAAA,CAAqB,KAAA;EAAU,QAAA;AAAA,gCAAoB,GAAA,CAAA,OAAA"}
@@ -4,7 +4,6 @@ import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { useStackApp, useUser } from "../../../lib/hooks.js";
5
5
  import { useTranslation } from "../../../lib/translations.js";
6
6
  import { Section } from "../section.js";
7
-
8
7
  //#region src/components-page/account-settings/settings/delete-account-section.tsx
9
8
  function DeleteAccountSection(props) {
10
9
  const { t } = useTranslation();
@@ -62,7 +61,7 @@ function DeleteAccountSection(props) {
62
61
  })
63
62
  });
64
63
  }
65
-
66
64
  //#endregion
67
65
  export { DeleteAccountSection };
66
+
68
67
  //# sourceMappingURL=delete-account-section.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"delete-account-section.js","names":[],"sources":["../../../../../src/components-page/account-settings/settings/delete-account-section.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 { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Button, Typography } from \"@hexclave/ui\";\nimport { useState } from \"react\";\nimport { useStackApp, useUser } from \"../../../lib/hooks\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { Section } from \"../section\";\n\nexport function DeleteAccountSection(props?: { mockMode?: boolean }) {\n const { t } = useTranslation();\n const user = useUser({ or: props?.mockMode ? 'return-null' : 'redirect' });\n const app = useStackApp();\n const project = app.useProject();\n const [deleting, setDeleting] = useState(false);\n\n // In mock mode, always show the delete section\n const showDeleteSection = props?.mockMode || project.config.clientUserDeletionEnabled;\n\n if (!showDeleteSection) {\n return null;\n }\n\n const handleDeleteAccount = async () => {\n if (props?.mockMode) {\n // Mock mode - just show an alert\n alert(\"Mock mode: Account deletion clicked\");\n setDeleting(false);\n return;\n }\n\n if (user) {\n await user.delete();\n await app.redirectToHome();\n }\n };\n\n return (\n <Section\n title={t(\"Delete Account\")}\n description={t(\"Permanently remove your account and all associated data\")}\n >\n <div className='stack-scope flex flex-col items-stretch'>\n <Accordion type=\"single\" collapsible className=\"w-full\">\n <AccordionItem value=\"item-1\">\n <AccordionTrigger>{t(\"Danger zone\")}</AccordionTrigger>\n <AccordionContent>\n {!deleting ? (\n <div>\n <Button\n variant='destructive'\n onClick={() => setDeleting(true)}\n >\n {t(\"Delete account\")}\n </Button>\n </div>\n ) : (\n <div className='flex flex-col gap-2'>\n <Typography variant='destructive'>\n {t(\"Are you sure you want to delete your account? This action is IRREVERSIBLE and will delete ALL associated data.\")}\n </Typography>\n <div className='flex gap-2'>\n <Button\n variant='destructive'\n onClick={handleDeleteAccount}\n >\n {t(\"Delete Account\")}\n </Button>\n <Button\n variant='secondary'\n onClick={() => setDeleting(false)}\n >\n {t(\"Cancel\")}\n </Button>\n </div>\n </div>\n )}\n </AccordionContent>\n </AccordionItem>\n </Accordion>\n </div>\n </Section>\n );\n}\n"],"mappings":";;;;;;;;AAUA,SAAgB,qBAAqB,OAAgC;CACnE,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,OAAO,QAAQ,EAAE,IAAI,OAAO,WAAW,gBAAgB,YAAY,CAAC;CAC1E,MAAM,MAAM,aAAa;CACzB,MAAM,UAAU,IAAI,YAAY;CAChC,MAAM,CAAC,UAAU,eAAe,SAAS,MAAM;AAK/C,KAAI,EAFsB,OAAO,YAAY,QAAQ,OAAO,2BAG1D,QAAO;CAGT,MAAM,sBAAsB,YAAY;AACtC,MAAI,OAAO,UAAU;AAEnB,SAAM,sCAAsC;AAC5C,eAAY,MAAM;AAClB;;AAGF,MAAI,MAAM;AACR,SAAM,KAAK,QAAQ;AACnB,SAAM,IAAI,gBAAgB;;;AAI9B,QACE,oBAAC;EACC,OAAO,EAAE,iBAAiB;EAC1B,aAAa,EAAE,0DAA0D;YAEzE,oBAAC;GAAI,WAAU;aACb,oBAAC;IAAU,MAAK;IAAS;IAAY,WAAU;cAC7C,qBAAC;KAAc,OAAM;gBACnB,oBAAC,8BAAkB,EAAE,cAAc,GAAoB,EACvD,oBAAC,8BACE,CAAC,WACA,oBAAC,mBACC,oBAAC;MACC,SAAQ;MACR,eAAe,YAAY,KAAK;gBAE/B,EAAE,iBAAiB;OACb,GACL,GAEN,qBAAC;MAAI,WAAU;iBACb,oBAAC;OAAW,SAAQ;iBACjB,EAAE,iHAAiH;QACzG,EACb,qBAAC;OAAI,WAAU;kBACb,oBAAC;QACC,SAAQ;QACR,SAAS;kBAER,EAAE,iBAAiB;SACb,EACT,oBAAC;QACC,SAAQ;QACR,eAAe,YAAY,MAAM;kBAEhC,EAAE,SAAS;SACL;QACL;OACF,GAES;MACL;KACN;IACR;GACE"}
1
+ {"version":3,"file":"delete-account-section.js","names":[],"sources":["../../../../../src/components-page/account-settings/settings/delete-account-section.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 { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Button, Typography } from \"@hexclave/ui\";\nimport { useState } from \"react\";\nimport { useStackApp, useUser } from \"../../../lib/hooks\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { Section } from \"../section\";\n\nexport function DeleteAccountSection(props?: { mockMode?: boolean }) {\n const { t } = useTranslation();\n const user = useUser({ or: props?.mockMode ? 'return-null' : 'redirect' });\n const app = useStackApp();\n const project = app.useProject();\n const [deleting, setDeleting] = useState(false);\n\n // In mock mode, always show the delete section\n const showDeleteSection = props?.mockMode || project.config.clientUserDeletionEnabled;\n\n if (!showDeleteSection) {\n return null;\n }\n\n const handleDeleteAccount = async () => {\n if (props?.mockMode) {\n // Mock mode - just show an alert\n alert(\"Mock mode: Account deletion clicked\");\n setDeleting(false);\n return;\n }\n\n if (user) {\n await user.delete();\n await app.redirectToHome();\n }\n };\n\n return (\n <Section\n title={t(\"Delete Account\")}\n description={t(\"Permanently remove your account and all associated data\")}\n >\n <div className='stack-scope flex flex-col items-stretch'>\n <Accordion type=\"single\" collapsible className=\"w-full\">\n <AccordionItem value=\"item-1\">\n <AccordionTrigger>{t(\"Danger zone\")}</AccordionTrigger>\n <AccordionContent>\n {!deleting ? (\n <div>\n <Button\n variant='destructive'\n onClick={() => setDeleting(true)}\n >\n {t(\"Delete account\")}\n </Button>\n </div>\n ) : (\n <div className='flex flex-col gap-2'>\n <Typography variant='destructive'>\n {t(\"Are you sure you want to delete your account? This action is IRREVERSIBLE and will delete ALL associated data.\")}\n </Typography>\n <div className='flex gap-2'>\n <Button\n variant='destructive'\n onClick={handleDeleteAccount}\n >\n {t(\"Delete Account\")}\n </Button>\n <Button\n variant='secondary'\n onClick={() => setDeleting(false)}\n >\n {t(\"Cancel\")}\n </Button>\n </div>\n </div>\n )}\n </AccordionContent>\n </AccordionItem>\n </Accordion>\n </div>\n </Section>\n );\n}\n"],"mappings":";;;;;;;AAUA,SAAgB,qBAAqB,OAAgC;CACnE,MAAM,EAAE,MAAM,eAAe;CAC7B,MAAM,OAAO,QAAQ,EAAE,IAAI,OAAO,WAAW,gBAAgB,WAAW,CAAC;CACzE,MAAM,MAAM,YAAY;CACxB,MAAM,UAAU,IAAI,WAAW;CAC/B,MAAM,CAAC,UAAU,eAAe,SAAS,KAAK;CAK9C,IAAI,EAFsB,OAAO,YAAY,QAAQ,OAAO,4BAG1D,OAAO;CAGT,MAAM,sBAAsB,YAAY;EACtC,IAAI,OAAO,UAAU;GAEnB,MAAM,qCAAqC;GAC3C,YAAY,KAAK;GACjB;EACF;EAEA,IAAI,MAAM;GACR,MAAM,KAAK,OAAO;GAClB,MAAM,IAAI,eAAe;EAC3B;CACF;CAEA,OACE,oBAAC,SAAD;EACE,OAAO,EAAE,gBAAgB;EACzB,aAAa,EAAE,yDAAyD;YAExE,oBAAC,OAAD;GAAK,WAAU;aACb,oBAAC,WAAD;IAAW,MAAK;IAAS,aAAA;IAAY,WAAU;cAC7C,qBAAC,eAAD;KAAe,OAAM;eAArB,CACE,oBAAC,kBAAD,EAAA,UAAmB,EAAE,aAAa,EAAoB,CAAA,GACtD,oBAAC,kBAAD,EAAA,UACG,CAAC,WACA,oBAAC,OAAD,EAAA,UACE,oBAAC,QAAD;MACE,SAAQ;MACR,eAAe,YAAY,IAAI;gBAE9B,EAAE,gBAAgB;KACb,CAAA,EACL,CAAA,IAEL,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,YAAD;OAAY,SAAQ;iBACjB,EAAE,gHAAgH;MACzG,CAAA,GACZ,qBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,oBAAC,QAAD;QACE,SAAQ;QACR,SAAS;kBAER,EAAE,gBAAgB;OACb,CAAA,GACR,oBAAC,QAAD;QACE,SAAQ;QACR,eAAe,YAAY,KAAK;kBAE/B,EAAE,QAAQ;OACL,CAAA,CACL;QACF;QAES,CAAA,CACL;;GACN,CAAA;EACR,CAAA;CACE,CAAA;AAEb"}
@@ -1,9 +1,7 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
-
3
1
  //#region src/components-page/account-settings/settings/settings-page.d.ts
4
2
  declare function SettingsPage(props?: {
5
3
  mockMode?: boolean;
6
- }): react_jsx_runtime0.JSX.Element;
4
+ }): import("react/jsx-runtime").JSX.Element;
7
5
  //#endregion
8
6
  export { SettingsPage };
9
7
  //# sourceMappingURL=settings-page.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings-page.d.ts","names":[],"sources":["../../../../../src/components-page/account-settings/settings/settings-page.tsx"],"mappings":";;;iBASgB,YAAA,CAAa,KAAA;EAC3B,QAAA;AAAA,IACD,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"settings-page.d.ts","names":[],"sources":["../../../../../src/components-page/account-settings/settings/settings-page.tsx"],"mappings":";iBASgB,YAAA,CAAa,KAAA;EAC3B,QAAA;AAAA,gCACD,GAAA,CAAA,OAAA"}
@@ -2,12 +2,11 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { PageLayout } from "../page-layout.js";
3
3
  import { DeleteAccountSection } from "./delete-account-section.js";
4
4
  import { SignOutSection } from "./sign-out-section.js";
5
-
6
5
  //#region src/components-page/account-settings/settings/settings-page.tsx
7
6
  function SettingsPage(props) {
8
7
  return /* @__PURE__ */ jsxs(PageLayout, { children: [/* @__PURE__ */ jsx(DeleteAccountSection, { mockMode: props?.mockMode }), /* @__PURE__ */ jsx(SignOutSection, { mockMode: props?.mockMode })] });
9
8
  }
10
-
11
9
  //#endregion
12
10
  export { SettingsPage };
11
+
13
12
  //# sourceMappingURL=settings-page.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings-page.js","names":[],"sources":["../../../../../src/components-page/account-settings/settings/settings-page.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 { PageLayout } from \"../page-layout\";\nimport { DeleteAccountSection } from \"./delete-account-section\";\nimport { SignOutSection } from \"./sign-out-section\";\n\n\nexport function SettingsPage(props?: {\n mockMode?: boolean,\n}) {\n return (\n <PageLayout>\n <DeleteAccountSection mockMode={props?.mockMode} />\n <SignOutSection mockMode={props?.mockMode} />\n </PageLayout>\n );\n}\n"],"mappings":";;;;;;AASA,SAAgB,aAAa,OAE1B;AACD,QACE,qBAAC,yBACC,oBAAC,wBAAqB,UAAU,OAAO,WAAY,EACnD,oBAAC,kBAAe,UAAU,OAAO,WAAY,IAClC"}
1
+ {"version":3,"file":"settings-page.js","names":[],"sources":["../../../../../src/components-page/account-settings/settings/settings-page.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 { PageLayout } from \"../page-layout\";\nimport { DeleteAccountSection } from \"./delete-account-section\";\nimport { SignOutSection } from \"./sign-out-section\";\n\n\nexport function SettingsPage(props?: {\n mockMode?: boolean,\n}) {\n return (\n <PageLayout>\n <DeleteAccountSection mockMode={props?.mockMode} />\n <SignOutSection mockMode={props?.mockMode} />\n </PageLayout>\n );\n}\n"],"mappings":";;;;;AASA,SAAgB,aAAa,OAE1B;CACD,OACE,qBAAC,YAAD,EAAA,UAAA,CACE,oBAAC,sBAAD,EAAsB,UAAU,OAAO,SAAW,CAAA,GAClD,oBAAC,gBAAD,EAAgB,UAAU,OAAO,SAAW,CAAA,CAClC,EAAA,CAAA;AAEhB"}
@@ -1,9 +1,7 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
-
3
1
  //#region src/components-page/account-settings/settings/sign-out-section.d.ts
4
2
  declare function SignOutSection(props?: {
5
3
  mockMode?: boolean;
6
- }): react_jsx_runtime0.JSX.Element;
4
+ }): import("react/jsx-runtime").JSX.Element;
7
5
  //#endregion
8
6
  export { SignOutSection };
9
7
  //# sourceMappingURL=sign-out-section.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sign-out-section.d.ts","names":[],"sources":["../../../../../src/components-page/account-settings/settings/sign-out-section.tsx"],"mappings":";;;iBASgB,cAAA,CAAe,KAAA;EAAU,QAAA;AAAA,IAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"sign-out-section.d.ts","names":[],"sources":["../../../../../src/components-page/account-settings/settings/sign-out-section.tsx"],"mappings":";iBASgB,cAAA,CAAe,KAAA;EAAU,QAAA;AAAA,gCAAoB,GAAA,CAAA,OAAA"}
@@ -3,7 +3,6 @@ import { jsx } from "react/jsx-runtime";
3
3
  import { useUser } from "../../../lib/hooks.js";
4
4
  import { useTranslation } from "../../../lib/translations.js";
5
5
  import { Section } from "../section.js";
6
-
7
6
  //#region src/components-page/account-settings/settings/sign-out-section.tsx
8
7
  function SignOutSection(props) {
9
8
  const { t } = useTranslation();
@@ -25,7 +24,7 @@ function SignOutSection(props) {
25
24
  }) })
26
25
  });
27
26
  }
28
-
29
27
  //#endregion
30
28
  export { SignOutSection };
29
+
31
30
  //# sourceMappingURL=sign-out-section.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sign-out-section.js","names":[],"sources":["../../../../../src/components-page/account-settings/settings/sign-out-section.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 { Button } from \"@hexclave/ui\";\nimport { useUser } from \"../../../lib/hooks\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { Section } from \"../section\";\n\nexport function SignOutSection(props?: { mockMode?: boolean }) {\n const { t } = useTranslation();\n const user = useUser({ or: props?.mockMode ? \"return-null\" : \"throw\" });\n\n const handleSignOut = async () => {\n if (props?.mockMode) {\n // Mock mode - just show an alert or do nothing\n alert(\"Mock mode: Sign out clicked\");\n return;\n }\n if (user) {\n await user.signOut();\n }\n };\n\n return (\n <Section\n title={t(\"Sign out\")}\n description={t(\"End your current session\")}\n >\n <div>\n <Button\n variant='secondary'\n onClick={handleSignOut}\n >\n {t(\"Sign out\")}\n </Button>\n </div>\n </Section>\n );\n}\n"],"mappings":";;;;;;;AASA,SAAgB,eAAe,OAAgC;CAC7D,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,OAAO,QAAQ,EAAE,IAAI,OAAO,WAAW,gBAAgB,SAAS,CAAC;CAEvE,MAAM,gBAAgB,YAAY;AAChC,MAAI,OAAO,UAAU;AAEnB,SAAM,8BAA8B;AACpC;;AAEF,MAAI,KACF,OAAM,KAAK,SAAS;;AAIxB,QACE,oBAAC;EACC,OAAO,EAAE,WAAW;EACpB,aAAa,EAAE,2BAA2B;YAE1C,oBAAC,mBACC,oBAAC;GACC,SAAQ;GACR,SAAS;aAER,EAAE,WAAW;IACP,GACL;GACE"}
1
+ {"version":3,"file":"sign-out-section.js","names":[],"sources":["../../../../../src/components-page/account-settings/settings/sign-out-section.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 { Button } from \"@hexclave/ui\";\nimport { useUser } from \"../../../lib/hooks\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { Section } from \"../section\";\n\nexport function SignOutSection(props?: { mockMode?: boolean }) {\n const { t } = useTranslation();\n const user = useUser({ or: props?.mockMode ? \"return-null\" : \"throw\" });\n\n const handleSignOut = async () => {\n if (props?.mockMode) {\n // Mock mode - just show an alert or do nothing\n alert(\"Mock mode: Sign out clicked\");\n return;\n }\n if (user) {\n await user.signOut();\n }\n };\n\n return (\n <Section\n title={t(\"Sign out\")}\n description={t(\"End your current session\")}\n >\n <div>\n <Button\n variant='secondary'\n onClick={handleSignOut}\n >\n {t(\"Sign out\")}\n </Button>\n </div>\n </Section>\n );\n}\n"],"mappings":";;;;;;AASA,SAAgB,eAAe,OAAgC;CAC7D,MAAM,EAAE,MAAM,eAAe;CAC7B,MAAM,OAAO,QAAQ,EAAE,IAAI,OAAO,WAAW,gBAAgB,QAAQ,CAAC;CAEtE,MAAM,gBAAgB,YAAY;EAChC,IAAI,OAAO,UAAU;GAEnB,MAAM,6BAA6B;GACnC;EACF;EACA,IAAI,MACF,MAAM,KAAK,QAAQ;CAEvB;CAEA,OACE,oBAAC,SAAD;EACE,OAAO,EAAE,UAAU;EACnB,aAAa,EAAE,0BAA0B;YAEzC,oBAAC,OAAD,EAAA,UACE,oBAAC,QAAD;GACE,SAAQ;GACR,SAAS;aAER,EAAE,UAAU;EACP,CAAA,EACL,CAAA;CACE,CAAA;AAEb"}
@@ -1,10 +1,9 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
- import { Team } from "../../..";
1
+ import { Team } from "../../../index.js";
3
2
 
4
3
  //#region src/components-page/account-settings/teams/leave-team-section.d.ts
5
4
  declare function LeaveTeamSection(props: {
6
5
  team: Team;
7
- }): react_jsx_runtime0.JSX.Element;
6
+ }): import("react/jsx-runtime").JSX.Element;
8
7
  //#endregion
9
8
  export { LeaveTeamSection };
10
9
  //# sourceMappingURL=leave-team-section.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"leave-team-section.d.ts","names":[],"sources":["../../../../../src/components-page/account-settings/teams/leave-team-section.tsx"],"mappings":";;;;iBAWgB,gBAAA,CAAiB,KAAA;EAAS,IAAA,EAAM,IAAA;AAAA,IAAM,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"leave-team-section.d.ts","names":[],"sources":["../../../../../src/components-page/account-settings/teams/leave-team-section.tsx"],"mappings":";;;iBAWgB,gBAAA,CAAiB,KAAA;EAAS,IAAA,EAAM,IAAI;AAAA,gCAAE,GAAA,CAAA,OAAA"}
@@ -4,7 +4,6 @@ import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { useUser } from "../../../lib/hooks.js";
5
5
  import { useTranslation } from "../../../lib/translations.js";
6
6
  import { Section } from "../section.js";
7
-
8
7
  //#region src/components-page/account-settings/teams/leave-team-section.tsx
9
8
  function LeaveTeamSection(props) {
10
9
  const { t } = useTranslation();
@@ -40,7 +39,7 @@ function LeaveTeamSection(props) {
40
39
  })
41
40
  });
42
41
  }
43
-
44
42
  //#endregion
45
43
  export { LeaveTeamSection };
44
+
46
45
  //# sourceMappingURL=leave-team-section.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"leave-team-section.js","names":[],"sources":["../../../../../src/components-page/account-settings/teams/leave-team-section.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 { Button, Typography } from \"@hexclave/ui\";\nimport { useState } from \"react\";\nimport { Team } from \"../../..\";\nimport { useUser } from \"../../../lib/hooks\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { Section } from \"../section\";\n\nexport function LeaveTeamSection(props: { team: Team }) {\n const { t } = useTranslation();\n const user = useUser({ or: 'redirect' });\n const [leaving, setLeaving] = useState(false);\n\n return (\n <Section\n title={t(\"Leave Team\")}\n description={t(\"leave this team and remove your team profile\")}\n >\n {!leaving ? (\n <div>\n <Button\n variant='secondary'\n onClick={() => setLeaving(true)}\n >\n {t(\"Leave team\")}\n </Button>\n </div>\n ) : (\n <div className='flex flex-col gap-2'>\n <Typography variant='destructive'>\n {t(\"Are you sure you want to leave the team?\")}\n </Typography>\n <div className='flex gap-2'>\n <Button\n variant='destructive'\n onClick={async () => {\n await user.leaveTeam(props.team);\n window.location.reload();\n }}\n >\n {t(\"Leave\")}\n </Button>\n <Button\n variant='secondary'\n onClick={() => setLeaving(false)}\n >\n {t(\"Cancel\")}\n </Button>\n </div>\n </div>\n )}\n </Section>\n );\n}\n"],"mappings":";;;;;;;;AAWA,SAAgB,iBAAiB,OAAuB;CACtD,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,OAAO,QAAQ,EAAE,IAAI,YAAY,CAAC;CACxC,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM;AAE7C,QACE,oBAAC;EACC,OAAO,EAAE,aAAa;EACtB,aAAa,EAAE,+CAA+C;YAE7D,CAAC,UACA,oBAAC,mBACC,oBAAC;GACC,SAAQ;GACR,eAAe,WAAW,KAAK;aAE9B,EAAE,aAAa;IACT,GACL,GAEN,qBAAC;GAAI,WAAU;cACb,oBAAC;IAAW,SAAQ;cACjB,EAAE,2CAA2C;KACnC,EACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KACC,SAAQ;KACR,SAAS,YAAY;AACnB,YAAM,KAAK,UAAU,MAAM,KAAK;AAChC,aAAO,SAAS,QAAQ;;eAGzB,EAAE,QAAQ;MACJ,EACT,oBAAC;KACC,SAAQ;KACR,eAAe,WAAW,MAAM;eAE/B,EAAE,SAAS;MACL;KACL;IACF;GAEA"}
1
+ {"version":3,"file":"leave-team-section.js","names":[],"sources":["../../../../../src/components-page/account-settings/teams/leave-team-section.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 { Button, Typography } from \"@hexclave/ui\";\nimport { useState } from \"react\";\nimport { Team } from \"../../..\";\nimport { useUser } from \"../../../lib/hooks\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { Section } from \"../section\";\n\nexport function LeaveTeamSection(props: { team: Team }) {\n const { t } = useTranslation();\n const user = useUser({ or: 'redirect' });\n const [leaving, setLeaving] = useState(false);\n\n return (\n <Section\n title={t(\"Leave Team\")}\n description={t(\"leave this team and remove your team profile\")}\n >\n {!leaving ? (\n <div>\n <Button\n variant='secondary'\n onClick={() => setLeaving(true)}\n >\n {t(\"Leave team\")}\n </Button>\n </div>\n ) : (\n <div className='flex flex-col gap-2'>\n <Typography variant='destructive'>\n {t(\"Are you sure you want to leave the team?\")}\n </Typography>\n <div className='flex gap-2'>\n <Button\n variant='destructive'\n onClick={async () => {\n await user.leaveTeam(props.team);\n window.location.reload();\n }}\n >\n {t(\"Leave\")}\n </Button>\n <Button\n variant='secondary'\n onClick={() => setLeaving(false)}\n >\n {t(\"Cancel\")}\n </Button>\n </div>\n </div>\n )}\n </Section>\n );\n}\n"],"mappings":";;;;;;;AAWA,SAAgB,iBAAiB,OAAuB;CACtD,MAAM,EAAE,MAAM,eAAe;CAC7B,MAAM,OAAO,QAAQ,EAAE,IAAI,WAAW,CAAC;CACvC,MAAM,CAAC,SAAS,cAAc,SAAS,KAAK;CAE5C,OACE,oBAAC,SAAD;EACE,OAAO,EAAE,YAAY;EACrB,aAAa,EAAE,8CAA8C;YAE5D,CAAC,UACA,oBAAC,OAAD,EAAA,UACE,oBAAC,QAAD;GACE,SAAQ;GACR,eAAe,WAAW,IAAI;aAE7B,EAAE,YAAY;EACT,CAAA,EACL,CAAA,IAEL,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,oBAAC,YAAD;IAAY,SAAQ;cACjB,EAAE,0CAA0C;GACnC,CAAA,GACZ,qBAAC,OAAD;IAAK,WAAU;cAAf,CACE,oBAAC,QAAD;KACE,SAAQ;KACR,SAAS,YAAY;MACnB,MAAM,KAAK,UAAU,MAAM,IAAI;MAC/B,OAAO,SAAS,OAAO;KACzB;eAEC,EAAE,OAAO;IACJ,CAAA,GACR,oBAAC,QAAD;KACE,SAAQ;KACR,eAAe,WAAW,KAAK;eAE9B,EAAE,QAAQ;IACL,CAAA,CACL;KACF;;CAEA,CAAA;AAEb"}
@@ -1,10 +1,9 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
- import { Team } from "../../../lib/hexclave-app/teams";
1
+ import { Team } from "../../../lib/hexclave-app/teams/index.js";
3
2
 
4
3
  //#region src/components-page/account-settings/teams/team-api-keys-section.d.ts
5
4
  declare function TeamApiKeysSection(props: {
6
5
  team: Team;
7
- }): react_jsx_runtime0.JSX.Element | null;
6
+ }): import("react/jsx-runtime").JSX.Element | null;
8
7
  //#endregion
9
8
  export { TeamApiKeysSection };
10
9
  //# sourceMappingURL=team-api-keys-section.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"team-api-keys-section.d.ts","names":[],"sources":["../../../../../src/components-page/account-settings/teams/team-api-keys-section.tsx"],"mappings":";;;;iBAgBgB,kBAAA,CAAmB,KAAA;EAAS,IAAA,EAAM,IAAA;AAAA,IAAM,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"team-api-keys-section.d.ts","names":[],"sources":["../../../../../src/components-page/account-settings/teams/team-api-keys-section.tsx"],"mappings":";;;iBAgBgB,kBAAA,CAAmB,KAAA;EAAS,IAAA,EAAM,IAAI;AAAA,gCAAE,GAAA,CAAA,OAAA"}
@@ -7,7 +7,6 @@ import { useTranslation } from "../../../lib/translations.js";
7
7
  import { CreateApiKeyDialog, ShowApiKeyDialog } from "../../../components/api-key-dialogs.js";
8
8
  import { ApiKeyTable } from "../../../components/api-key-table.js";
9
9
  import { Section } from "../section.js";
10
-
11
10
  //#region src/components-page/account-settings/teams/team-api-keys-section.tsx
12
11
  function TeamApiKeysSection(props) {
13
12
  const user = useUser({ or: "redirect" });
@@ -49,7 +48,7 @@ function TeamApiKeysSectionInner(props) {
49
48
  })
50
49
  ] });
51
50
  }
52
-
53
51
  //#endregion
54
52
  export { TeamApiKeysSection };
53
+
55
54
  //# sourceMappingURL=team-api-keys-section.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"team-api-keys-section.js","names":[],"sources":["../../../../../src/components-page/account-settings/teams/team-api-keys-section.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 { HexclaveAssertionError } from \"@hexclave/shared/dist/utils/errors\";\nimport { Button } from \"@hexclave/ui\";\nimport { useState } from \"react\";\nimport { CreateApiKeyDialog, ShowApiKeyDialog } from \"../../../components/api-key-dialogs\";\nimport { ApiKeyTable } from \"../../../components/api-key-table\";\nimport { useStackApp, useUser } from \"../../../lib/hooks\";\nimport { TeamApiKeyFirstView } from \"../../../lib/hexclave-app/api-keys\";\nimport { Team } from \"../../../lib/hexclave-app/teams\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { Section } from \"../section\";\n\n\nexport function TeamApiKeysSection(props: { team: Team }) {\n const user = useUser({ or: 'redirect' });\n const team = user.useTeam(props.team.id);\n const hexclaveApp = useStackApp();\n const project = hexclaveApp.useProject();\n\n if (!team) {\n throw new HexclaveAssertionError(\"Team not found\");\n }\n\n const teamApiKeysEnabled = project.config.allowTeamApiKeys;\n const manageApiKeysPermission = user.usePermission(props.team, '$manage_api_keys');\n if (!manageApiKeysPermission || !teamApiKeysEnabled) {\n return null;\n }\n\n return <TeamApiKeysSectionInner team={props.team} />;\n}\n\nfunction TeamApiKeysSectionInner(props: { team: Team }) {\n const { t } = useTranslation();\n\n const [isNewApiKeyDialogOpen, setIsNewApiKeyDialogOpen] = useState(false);\n const [returnedApiKey, setReturnedApiKey] = useState<TeamApiKeyFirstView | null>(null);\n\n const apiKeys = props.team.useApiKeys();\n\n const CreateDialog = CreateApiKeyDialog<\"team\">;\n const ShowDialog = ShowApiKeyDialog<\"team\">;\n\n return (\n <>\n <Section\n title={t(\"API Keys\")}\n description={t(\"API keys grant programmatic access to your team.\")}\n >\n <Button onClick={() => setIsNewApiKeyDialogOpen(true)}>\n {t(\"Create API Key\")}\n </Button>\n </Section>\n <ApiKeyTable apiKeys={apiKeys} />\n\n <CreateDialog\n open={isNewApiKeyDialogOpen}\n onOpenChange={setIsNewApiKeyDialogOpen}\n onKeyCreated={setReturnedApiKey}\n createApiKey={async (data) => {\n const apiKey = await props.team.createApiKey(data);\n return apiKey;\n }}\n />\n <ShowDialog\n apiKey={returnedApiKey}\n onClose={() => setReturnedApiKey(null)}\n />\n </>\n );\n}\n"],"mappings":";;;;;;;;;;;AAgBA,SAAgB,mBAAmB,OAAuB;CACxD,MAAM,OAAO,QAAQ,EAAE,IAAI,YAAY,CAAC;CACxC,MAAM,OAAO,KAAK,QAAQ,MAAM,KAAK,GAAG;CAExC,MAAM,UADc,aAAa,CACL,YAAY;AAExC,KAAI,CAAC,KACH,OAAM,IAAI,uBAAuB,iBAAiB;CAGpD,MAAM,qBAAqB,QAAQ,OAAO;AAE1C,KAAI,CAD4B,KAAK,cAAc,MAAM,MAAM,mBAAmB,IAClD,CAAC,mBAC/B,QAAO;AAGT,QAAO,oBAAC,2BAAwB,MAAM,MAAM,OAAQ;;AAGtD,SAAS,wBAAwB,OAAuB;CACtD,MAAM,EAAE,MAAM,gBAAgB;CAE9B,MAAM,CAAC,uBAAuB,4BAA4B,SAAS,MAAM;CACzE,MAAM,CAAC,gBAAgB,qBAAqB,SAAqC,KAAK;CAEtF,MAAM,UAAU,MAAM,KAAK,YAAY;CAEvC,MAAM,eAAe;CACrB,MAAM,aAAa;AAEnB,QACE;EACE,oBAAC;GACC,OAAO,EAAE,WAAW;GACpB,aAAa,EAAE,mDAAmD;aAElE,oBAAC;IAAO,eAAe,yBAAyB,KAAK;cAClD,EAAE,iBAAiB;KACb;IACD;EACV,oBAAC,eAAqB,UAAW;EAEjC,oBAAC;GACC,MAAM;GACN,cAAc;GACd,cAAc;GACd,cAAc,OAAO,SAAS;AAE5B,WADe,MAAM,MAAM,KAAK,aAAa,KAAK;;IAGpD;EACF,oBAAC;GACC,QAAQ;GACR,eAAe,kBAAkB,KAAK;IACtC;KACD"}
1
+ {"version":3,"file":"team-api-keys-section.js","names":[],"sources":["../../../../../src/components-page/account-settings/teams/team-api-keys-section.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 { HexclaveAssertionError } from \"@hexclave/shared/dist/utils/errors\";\nimport { Button } from \"@hexclave/ui\";\nimport { useState } from \"react\";\nimport { CreateApiKeyDialog, ShowApiKeyDialog } from \"../../../components/api-key-dialogs\";\nimport { ApiKeyTable } from \"../../../components/api-key-table\";\nimport { useStackApp, useUser } from \"../../../lib/hooks\";\nimport { TeamApiKeyFirstView } from \"../../../lib/hexclave-app/api-keys\";\nimport { Team } from \"../../../lib/hexclave-app/teams\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { Section } from \"../section\";\n\n\nexport function TeamApiKeysSection(props: { team: Team }) {\n const user = useUser({ or: 'redirect' });\n const team = user.useTeam(props.team.id);\n const hexclaveApp = useStackApp();\n const project = hexclaveApp.useProject();\n\n if (!team) {\n throw new HexclaveAssertionError(\"Team not found\");\n }\n\n const teamApiKeysEnabled = project.config.allowTeamApiKeys;\n const manageApiKeysPermission = user.usePermission(props.team, '$manage_api_keys');\n if (!manageApiKeysPermission || !teamApiKeysEnabled) {\n return null;\n }\n\n return <TeamApiKeysSectionInner team={props.team} />;\n}\n\nfunction TeamApiKeysSectionInner(props: { team: Team }) {\n const { t } = useTranslation();\n\n const [isNewApiKeyDialogOpen, setIsNewApiKeyDialogOpen] = useState(false);\n const [returnedApiKey, setReturnedApiKey] = useState<TeamApiKeyFirstView | null>(null);\n\n const apiKeys = props.team.useApiKeys();\n\n const CreateDialog = CreateApiKeyDialog<\"team\">;\n const ShowDialog = ShowApiKeyDialog<\"team\">;\n\n return (\n <>\n <Section\n title={t(\"API Keys\")}\n description={t(\"API keys grant programmatic access to your team.\")}\n >\n <Button onClick={() => setIsNewApiKeyDialogOpen(true)}>\n {t(\"Create API Key\")}\n </Button>\n </Section>\n <ApiKeyTable apiKeys={apiKeys} />\n\n <CreateDialog\n open={isNewApiKeyDialogOpen}\n onOpenChange={setIsNewApiKeyDialogOpen}\n onKeyCreated={setReturnedApiKey}\n createApiKey={async (data) => {\n const apiKey = await props.team.createApiKey(data);\n return apiKey;\n }}\n />\n <ShowDialog\n apiKey={returnedApiKey}\n onClose={() => setReturnedApiKey(null)}\n />\n </>\n );\n}\n"],"mappings":";;;;;;;;;;AAgBA,SAAgB,mBAAmB,OAAuB;CACxD,MAAM,OAAO,QAAQ,EAAE,IAAI,WAAW,CAAC;CACvC,MAAM,OAAO,KAAK,QAAQ,MAAM,KAAK,EAAE;CAEvC,MAAM,UADc,YACM,CAAC,CAAC,WAAW;CAEvC,IAAI,CAAC,MACH,MAAM,IAAI,uBAAuB,gBAAgB;CAGnD,MAAM,qBAAqB,QAAQ,OAAO;CAE1C,IAAI,CAD4B,KAAK,cAAc,MAAM,MAAM,kBACpC,KAAK,CAAC,oBAC/B,OAAO;CAGT,OAAO,oBAAC,yBAAD,EAAyB,MAAM,MAAM,KAAO,CAAA;AACrD;AAEA,SAAS,wBAAwB,OAAuB;CACtD,MAAM,EAAE,MAAM,eAAe;CAE7B,MAAM,CAAC,uBAAuB,4BAA4B,SAAS,KAAK;CACxE,MAAM,CAAC,gBAAgB,qBAAqB,SAAqC,IAAI;CAErF,MAAM,UAAU,MAAM,KAAK,WAAW;CAEtC,MAAM,eAAe;CACrB,MAAM,aAAa;CAEnB,OACE,qBAAA,UAAA,EAAA,UAAA;EACE,oBAAC,SAAD;GACE,OAAO,EAAE,UAAU;GACnB,aAAa,EAAE,kDAAkD;aAEjE,oBAAC,QAAD;IAAQ,eAAe,yBAAyB,IAAI;cACjD,EAAE,gBAAgB;GACb,CAAA;EACD,CAAA;EACT,oBAAC,aAAD,EAAsB,QAAU,CAAA;EAEhC,oBAAC,cAAD;GACE,MAAM;GACN,cAAc;GACd,cAAc;GACd,cAAc,OAAO,SAAS;IAE5B,OAAO,MADc,MAAM,KAAK,aAAa,IAAI;GAEnD;EACD,CAAA;EACD,oBAAC,YAAD;GACE,QAAQ;GACR,eAAe,kBAAkB,IAAI;EACtC,CAAA;CACD,EAAA,CAAA;AAEN"}
@@ -1,9 +1,7 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
-
3
1
  //#region src/components-page/account-settings/teams/team-creation-page.d.ts
4
2
  declare function TeamCreationPage(props?: {
5
3
  mockMode?: boolean;
6
- }): react_jsx_runtime0.JSX.Element;
4
+ }): import("react/jsx-runtime").JSX.Element;
7
5
  //#endregion
8
6
  export { TeamCreationPage };
9
7
  //# sourceMappingURL=team-creation-page.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"team-creation-page.d.ts","names":[],"sources":["../../../../../src/components-page/account-settings/teams/team-creation-page.tsx"],"mappings":";;;iBAkBgB,gBAAA,CAAiB,KAAA;EAC/B,QAAA;AAAA,IACD,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"team-creation-page.d.ts","names":[],"sources":["../../../../../src/components-page/account-settings/teams/team-creation-page.tsx"],"mappings":";iBAkBgB,gBAAA,CAAiB,KAAA;EAC/B,QAAA;AAAA,gCACD,GAAA,CAAA,OAAA"}
@@ -11,7 +11,6 @@ import { PageLayout } from "../page-layout.js";
11
11
  import { FormWarningText } from "../../../components/elements/form-warning.js";
12
12
  import { Section } from "../section.js";
13
13
  import { MessageCard } from "../../../components/message-cards/message-card.js";
14
-
15
14
  //#region src/components-page/account-settings/teams/team-creation-page.tsx
16
15
  function TeamCreationPage(props) {
17
16
  const { t } = useTranslation();
@@ -59,7 +58,7 @@ function TeamCreationPage(props) {
59
58
  })
60
59
  }) });
61
60
  }
62
-
63
61
  //#endregion
64
62
  export { TeamCreationPage };
63
+
65
64
  //# sourceMappingURL=team-creation-page.js.map