@hexclave/tanstack-start 1.0.3 → 1.0.6

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 (860) hide show
  1. package/dist/components/api-key-dialogs.d.ts +1 -1
  2. package/dist/components/api-key-dialogs.js.map +1 -1
  3. package/dist/components/api-key-table.d.ts +1 -1
  4. package/dist/components/api-key-table.js.map +1 -1
  5. package/dist/components/credential-sign-in.js.map +1 -1
  6. package/dist/components/credential-sign-up.js.map +1 -1
  7. package/dist/components/elements/form-warning.js.map +1 -1
  8. package/dist/components/elements/maybe-full-page.js.map +1 -1
  9. package/dist/components/elements/separator-with-text.js.map +1 -1
  10. package/dist/components/elements/sidebar-layout.js.map +1 -1
  11. package/dist/components/elements/ssr-layout-effect.js.map +1 -1
  12. package/dist/components/elements/user-avatar.js.map +1 -1
  13. package/dist/components/link.js.map +1 -1
  14. package/dist/components/magic-link-sign-in.js +2 -2
  15. package/dist/components/magic-link-sign-in.js.map +1 -1
  16. package/dist/components/message-cards/known-error-message-card.js +2 -2
  17. package/dist/components/message-cards/known-error-message-card.js.map +1 -1
  18. package/dist/components/message-cards/message-card.js.map +1 -1
  19. package/dist/components/message-cards/predefined-message-card.js +9 -9
  20. package/dist/components/message-cards/predefined-message-card.js.map +1 -1
  21. package/dist/components/oauth-button-group.js +2 -2
  22. package/dist/components/oauth-button-group.js.map +1 -1
  23. package/dist/components/oauth-button.js +2 -2
  24. package/dist/components/oauth-button.js.map +1 -1
  25. package/dist/components/passkey-button.js +2 -2
  26. package/dist/components/passkey-button.js.map +1 -1
  27. package/dist/components/profile-image-editor.js.map +1 -1
  28. package/dist/components/selected-team-switcher.d.ts +1 -1
  29. package/dist/components/selected-team-switcher.js.map +1 -1
  30. package/dist/components/team-icon.d.ts +1 -1
  31. package/dist/components/team-icon.js.map +1 -1
  32. package/dist/components/team-switcher.d.ts +1 -1
  33. package/dist/components/team-switcher.js.map +1 -1
  34. package/dist/components/use-in-iframe.js.map +1 -1
  35. package/dist/components/user-button.js.map +1 -1
  36. package/dist/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
  37. package/dist/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
  38. package/dist/components-page/account-settings/editable-text.js.map +1 -1
  39. package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  40. package/dist/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  41. package/dist/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  42. package/dist/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  43. package/dist/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  44. package/dist/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  45. package/dist/components-page/account-settings/notifications/notifications-page.js.map +1 -1
  46. package/dist/components-page/account-settings/page-layout.js.map +1 -1
  47. package/dist/components-page/account-settings/payments/payments-page.d.ts +1 -1
  48. package/dist/components-page/account-settings/payments/payments-page.js.map +1 -1
  49. package/dist/components-page/account-settings/payments/payments-panel.d.ts +1 -1
  50. package/dist/components-page/account-settings/payments/payments-panel.js +6 -6
  51. package/dist/components-page/account-settings/payments/payments-panel.js.map +1 -1
  52. package/dist/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  53. package/dist/components-page/account-settings/section.js.map +1 -1
  54. package/dist/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  55. package/dist/components-page/account-settings/settings/settings-page.js.map +1 -1
  56. package/dist/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  57. package/dist/components-page/account-settings/teams/leave-team-section.d.ts +1 -1
  58. package/dist/components-page/account-settings/teams/leave-team-section.js.map +1 -1
  59. package/dist/components-page/account-settings/teams/team-api-keys-section.d.ts +1 -1
  60. package/dist/components-page/account-settings/teams/team-api-keys-section.js +1 -1
  61. package/dist/components-page/account-settings/teams/team-api-keys-section.js.map +1 -1
  62. package/dist/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  63. package/dist/components-page/account-settings/teams/team-display-name-section.d.ts +1 -1
  64. package/dist/components-page/account-settings/teams/team-display-name-section.js.map +1 -1
  65. package/dist/components-page/account-settings/teams/team-member-invitation-section.d.ts +1 -1
  66. package/dist/components-page/account-settings/teams/team-member-invitation-section.js.map +1 -1
  67. package/dist/components-page/account-settings/teams/team-member-list-section.d.ts +1 -1
  68. package/dist/components-page/account-settings/teams/team-member-list-section.js.map +1 -1
  69. package/dist/components-page/account-settings/teams/team-page.d.ts +1 -1
  70. package/dist/components-page/account-settings/teams/team-page.js.map +1 -1
  71. package/dist/components-page/account-settings/teams/team-profile-image-section.d.ts +1 -1
  72. package/dist/components-page/account-settings/teams/team-profile-image-section.js.map +1 -1
  73. package/dist/components-page/account-settings/teams/team-profile-user-section.d.ts +1 -1
  74. package/dist/components-page/account-settings/teams/team-profile-user-section.js.map +1 -1
  75. package/dist/components-page/account-settings.js.map +1 -1
  76. package/dist/components-page/auth-page.d.ts.map +1 -1
  77. package/dist/components-page/auth-page.js +55 -10
  78. package/dist/components-page/auth-page.js.map +1 -1
  79. package/dist/components-page/cli-auth-confirm.js +3 -3
  80. package/dist/components-page/cli-auth-confirm.js.map +1 -1
  81. package/dist/components-page/cli-auth-confirm.test.js +4 -4
  82. package/dist/components-page/cli-auth-confirm.test.js.map +1 -1
  83. package/dist/components-page/email-verification.js +4 -4
  84. package/dist/components-page/email-verification.js.map +1 -1
  85. package/dist/components-page/error-page.js +9 -9
  86. package/dist/components-page/error-page.js.map +1 -1
  87. package/dist/components-page/forgot-password.js +4 -4
  88. package/dist/components-page/forgot-password.js.map +1 -1
  89. package/dist/components-page/{stack-handler-client.d.ts → hexclave-handler-client.d.ts} +16 -4
  90. package/dist/components-page/hexclave-handler-client.d.ts.map +1 -0
  91. package/dist/components-page/{stack-handler-client.js → hexclave-handler-client.js} +64 -28
  92. package/dist/components-page/hexclave-handler-client.js.map +1 -0
  93. package/dist/components-page/hexclave-handler-client.test.js +51 -0
  94. package/dist/components-page/hexclave-handler-client.test.js.map +1 -0
  95. package/dist/components-page/{stack-handler.d.ts → hexclave-handler.d.ts} +5 -5
  96. package/dist/components-page/hexclave-handler.d.ts.map +1 -0
  97. package/dist/components-page/{stack-handler.js → hexclave-handler.js} +4 -4
  98. package/dist/components-page/hexclave-handler.js.map +1 -0
  99. package/dist/components-page/magic-link-callback.js +7 -7
  100. package/dist/components-page/magic-link-callback.js.map +1 -1
  101. package/dist/components-page/mfa.js +4 -4
  102. package/dist/components-page/mfa.js.map +1 -1
  103. package/dist/components-page/oauth-callback.js +3 -3
  104. package/dist/components-page/oauth-callback.js.map +1 -1
  105. package/dist/components-page/onboarding.js +3 -3
  106. package/dist/components-page/onboarding.js.map +1 -1
  107. package/dist/components-page/password-reset.js +8 -8
  108. package/dist/components-page/password-reset.js.map +1 -1
  109. package/dist/components-page/sign-in.js.map +1 -1
  110. package/dist/components-page/sign-out.d.ts +1 -0
  111. package/dist/components-page/sign-out.d.ts.map +1 -1
  112. package/dist/components-page/sign-out.js +11 -5
  113. package/dist/components-page/sign-out.js.map +1 -1
  114. package/dist/components-page/sign-up.js.map +1 -1
  115. package/dist/components-page/team-creation.js.map +1 -1
  116. package/dist/components-page/team-invitation.js +16 -16
  117. package/dist/components-page/team-invitation.js.map +1 -1
  118. package/dist/dev-tool/dev-tool-core.d.ts +1 -1
  119. package/dist/dev-tool/dev-tool-core.js +13 -13
  120. package/dist/dev-tool/dev-tool-core.js.map +1 -1
  121. package/dist/dev-tool/dev-tool-styles.d.ts +1 -1
  122. package/dist/dev-tool/dev-tool-styles.js +371 -371
  123. package/dist/dev-tool/dev-tool-styles.js.map +1 -1
  124. package/dist/dev-tool/dev-tool-trigger-position.js.map +1 -1
  125. package/dist/dev-tool/dev-tool-trigger-position.test.js.map +1 -1
  126. package/dist/dev-tool/index.d.ts +4 -4
  127. package/dist/dev-tool/index.js +4 -4
  128. package/dist/dev-tool/index.js.map +1 -1
  129. package/dist/esm/components/api-key-dialogs.d.ts +1 -1
  130. package/dist/esm/components/api-key-dialogs.js.map +1 -1
  131. package/dist/esm/components/api-key-table.d.ts +1 -1
  132. package/dist/esm/components/api-key-table.js.map +1 -1
  133. package/dist/esm/components/credential-sign-in.js.map +1 -1
  134. package/dist/esm/components/credential-sign-up.js.map +1 -1
  135. package/dist/esm/components/elements/form-warning.js.map +1 -1
  136. package/dist/esm/components/elements/maybe-full-page.js.map +1 -1
  137. package/dist/esm/components/elements/separator-with-text.js.map +1 -1
  138. package/dist/esm/components/elements/sidebar-layout.js.map +1 -1
  139. package/dist/esm/components/elements/ssr-layout-effect.js.map +1 -1
  140. package/dist/esm/components/elements/user-avatar.js.map +1 -1
  141. package/dist/esm/components/link.js.map +1 -1
  142. package/dist/esm/components/magic-link-sign-in.js +2 -2
  143. package/dist/esm/components/magic-link-sign-in.js.map +1 -1
  144. package/dist/esm/components/message-cards/known-error-message-card.js +2 -2
  145. package/dist/esm/components/message-cards/known-error-message-card.js.map +1 -1
  146. package/dist/esm/components/message-cards/message-card.js.map +1 -1
  147. package/dist/esm/components/message-cards/predefined-message-card.js +9 -9
  148. package/dist/esm/components/message-cards/predefined-message-card.js.map +1 -1
  149. package/dist/esm/components/oauth-button-group.js +2 -2
  150. package/dist/esm/components/oauth-button-group.js.map +1 -1
  151. package/dist/esm/components/oauth-button.js +2 -2
  152. package/dist/esm/components/oauth-button.js.map +1 -1
  153. package/dist/esm/components/passkey-button.js +2 -2
  154. package/dist/esm/components/passkey-button.js.map +1 -1
  155. package/dist/esm/components/profile-image-editor.js.map +1 -1
  156. package/dist/esm/components/selected-team-switcher.js.map +1 -1
  157. package/dist/esm/components/team-icon.js.map +1 -1
  158. package/dist/esm/components/team-switcher.js.map +1 -1
  159. package/dist/esm/components/use-in-iframe.js.map +1 -1
  160. package/dist/esm/components/user-button.js.map +1 -1
  161. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
  162. package/dist/esm/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
  163. package/dist/esm/components-page/account-settings/editable-text.js.map +1 -1
  164. package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  165. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  166. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  167. package/dist/esm/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  168. package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  169. package/dist/esm/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  170. package/dist/esm/components-page/account-settings/notifications/notifications-page.js.map +1 -1
  171. package/dist/esm/components-page/account-settings/page-layout.js.map +1 -1
  172. package/dist/esm/components-page/account-settings/payments/payments-page.js.map +1 -1
  173. package/dist/esm/components-page/account-settings/payments/payments-panel.d.ts +1 -1
  174. package/dist/esm/components-page/account-settings/payments/payments-panel.js +5 -5
  175. package/dist/esm/components-page/account-settings/payments/payments-panel.js.map +1 -1
  176. package/dist/esm/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  177. package/dist/esm/components-page/account-settings/section.js.map +1 -1
  178. package/dist/esm/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  179. package/dist/esm/components-page/account-settings/settings/settings-page.js.map +1 -1
  180. package/dist/esm/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  181. package/dist/esm/components-page/account-settings/teams/leave-team-section.js.map +1 -1
  182. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.d.ts +1 -1
  183. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.js +1 -1
  184. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.js.map +1 -1
  185. package/dist/esm/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  186. package/dist/esm/components-page/account-settings/teams/team-display-name-section.js.map +1 -1
  187. package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.js.map +1 -1
  188. package/dist/esm/components-page/account-settings/teams/team-member-list-section.js.map +1 -1
  189. package/dist/esm/components-page/account-settings/teams/team-page.js.map +1 -1
  190. package/dist/esm/components-page/account-settings/teams/team-profile-image-section.js.map +1 -1
  191. package/dist/esm/components-page/account-settings/teams/team-profile-user-section.js.map +1 -1
  192. package/dist/esm/components-page/account-settings.js.map +1 -1
  193. package/dist/esm/components-page/auth-page.d.ts.map +1 -1
  194. package/dist/esm/components-page/auth-page.js +56 -11
  195. package/dist/esm/components-page/auth-page.js.map +1 -1
  196. package/dist/esm/components-page/cli-auth-confirm.js +3 -3
  197. package/dist/esm/components-page/cli-auth-confirm.js.map +1 -1
  198. package/dist/esm/components-page/cli-auth-confirm.test.js +4 -4
  199. package/dist/esm/components-page/cli-auth-confirm.test.js.map +1 -1
  200. package/dist/esm/components-page/email-verification.js +4 -4
  201. package/dist/esm/components-page/email-verification.js.map +1 -1
  202. package/dist/esm/components-page/error-page.js +9 -9
  203. package/dist/esm/components-page/error-page.js.map +1 -1
  204. package/dist/esm/components-page/forgot-password.js +4 -4
  205. package/dist/esm/components-page/forgot-password.js.map +1 -1
  206. package/dist/esm/components-page/{stack-handler-client.d.ts → hexclave-handler-client.d.ts} +15 -4
  207. package/dist/esm/components-page/hexclave-handler-client.d.ts.map +1 -0
  208. package/dist/esm/components-page/{stack-handler-client.js → hexclave-handler-client.js} +63 -28
  209. package/dist/esm/components-page/hexclave-handler-client.js.map +1 -0
  210. package/dist/esm/components-page/hexclave-handler-client.test.js +51 -0
  211. package/dist/esm/components-page/hexclave-handler-client.test.js.map +1 -0
  212. package/dist/esm/components-page/{stack-handler.d.ts → hexclave-handler.d.ts} +5 -5
  213. package/dist/esm/components-page/hexclave-handler.d.ts.map +1 -0
  214. package/dist/esm/components-page/{stack-handler.js → hexclave-handler.js} +4 -4
  215. package/dist/esm/components-page/hexclave-handler.js.map +1 -0
  216. package/dist/esm/components-page/magic-link-callback.js +7 -7
  217. package/dist/esm/components-page/magic-link-callback.js.map +1 -1
  218. package/dist/esm/components-page/mfa.js +4 -4
  219. package/dist/esm/components-page/mfa.js.map +1 -1
  220. package/dist/esm/components-page/oauth-callback.js +3 -3
  221. package/dist/esm/components-page/oauth-callback.js.map +1 -1
  222. package/dist/esm/components-page/onboarding.js +3 -3
  223. package/dist/esm/components-page/onboarding.js.map +1 -1
  224. package/dist/esm/components-page/password-reset.js +8 -8
  225. package/dist/esm/components-page/password-reset.js.map +1 -1
  226. package/dist/esm/components-page/sign-in.js.map +1 -1
  227. package/dist/esm/components-page/sign-out.d.ts +1 -0
  228. package/dist/esm/components-page/sign-out.d.ts.map +1 -1
  229. package/dist/esm/components-page/sign-out.js +11 -5
  230. package/dist/esm/components-page/sign-out.js.map +1 -1
  231. package/dist/esm/components-page/sign-up.js.map +1 -1
  232. package/dist/esm/components-page/team-creation.js.map +1 -1
  233. package/dist/esm/components-page/team-invitation.js +16 -16
  234. package/dist/esm/components-page/team-invitation.js.map +1 -1
  235. package/dist/esm/dev-tool/dev-tool-core.d.ts +1 -1
  236. package/dist/esm/dev-tool/dev-tool-core.js +12 -12
  237. package/dist/esm/dev-tool/dev-tool-core.js.map +1 -1
  238. package/dist/esm/dev-tool/dev-tool-styles.d.ts +1 -1
  239. package/dist/esm/dev-tool/dev-tool-styles.js +371 -371
  240. package/dist/esm/dev-tool/dev-tool-styles.js.map +1 -1
  241. package/dist/esm/dev-tool/dev-tool-trigger-position.js.map +1 -1
  242. package/dist/esm/dev-tool/dev-tool-trigger-position.test.js.map +1 -1
  243. package/dist/esm/dev-tool/index.d.ts +4 -4
  244. package/dist/esm/dev-tool/index.js +4 -4
  245. package/dist/esm/dev-tool/index.js.map +1 -1
  246. package/dist/esm/generated/env.d.ts +26 -0
  247. package/dist/esm/{lib → generated}/env.d.ts.map +1 -1
  248. package/dist/esm/generated/env.js +67 -0
  249. package/dist/esm/generated/env.js.map +1 -0
  250. package/dist/esm/generated/quetzal-translations.js.map +1 -1
  251. package/dist/esm/global.d.ts +8 -1
  252. package/dist/esm/global.d.ts.map +1 -0
  253. package/dist/esm/index.d.ts +4 -4
  254. package/dist/esm/index.js +3 -3
  255. package/dist/esm/integrations/convex/component/convex.config.js.map +1 -1
  256. package/dist/esm/integrations/convex.js +1 -1
  257. package/dist/esm/integrations/convex.js.map +1 -1
  258. package/dist/esm/lib/auth.js.map +1 -1
  259. package/dist/esm/lib/auth.test.js.map +1 -1
  260. package/dist/esm/lib/cookie.d.ts +0 -8
  261. package/dist/esm/lib/cookie.d.ts.map +1 -1
  262. package/dist/esm/lib/cookie.js +2 -2
  263. package/dist/esm/lib/cookie.js.map +1 -1
  264. package/dist/{lib/stack-app → esm/lib/hexclave-app}/api-keys/index.d.ts +2 -2
  265. package/dist/esm/lib/hexclave-app/api-keys/index.d.ts.map +1 -0
  266. package/dist/esm/lib/{stack-app → hexclave-app}/api-keys/index.js +1 -1
  267. package/dist/esm/lib/hexclave-app/api-keys/index.js.map +1 -0
  268. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.d.ts +6 -6
  269. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -0
  270. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.js +7 -7
  271. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -0
  272. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js +381 -0
  273. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -0
  274. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.d.ts +16 -14
  275. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -0
  276. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.js +76 -56
  277. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -0
  278. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.js +1 -1
  279. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +1 -0
  280. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/common.d.ts +11 -11
  281. package/dist/esm/lib/hexclave-app/apps/implementations/common.d.ts.map +1 -0
  282. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/common.js +34 -20
  283. package/dist/esm/lib/hexclave-app/apps/implementations/common.js.map +1 -0
  284. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.d.ts +1 -1
  285. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.d.ts.map +1 -0
  286. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.js +1 -1
  287. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -0
  288. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.js +1 -1
  289. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -0
  290. package/dist/esm/lib/hexclave-app/apps/implementations/index.d.ts +9 -0
  291. package/dist/esm/lib/hexclave-app/apps/implementations/index.d.ts.map +1 -0
  292. package/dist/esm/lib/hexclave-app/apps/implementations/index.js +27 -0
  293. package/dist/esm/lib/hexclave-app/apps/implementations/index.js.map +1 -0
  294. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.d.ts +1 -1
  295. package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts.map +1 -0
  296. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.js +1 -1
  297. package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.js.map +1 -0
  298. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.d.ts +4 -4
  299. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.d.ts.map +1 -0
  300. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.js +7 -7
  301. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -0
  302. package/dist/{lib/stack-app → esm/lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts +1 -1
  303. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.d.ts.map +1 -0
  304. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.js +1 -1
  305. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.js.map +1 -0
  306. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.js +1 -1
  307. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js.map +1 -0
  308. package/dist/{lib/stack-app → esm/lib/hexclave-app}/apps/implementations/session-replay.d.ts +1 -1
  309. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.d.ts.map +1 -0
  310. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.js +1 -1
  311. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.js.map +1 -0
  312. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.js +1 -1
  313. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.test.js.map +1 -0
  314. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.d.ts +1 -1
  315. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.d.ts.map +1 -0
  316. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.js +3 -3
  317. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -0
  318. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.d.ts +4 -4
  319. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.d.ts.map +1 -0
  320. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.js +3 -3
  321. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -0
  322. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.d.ts +1 -1
  323. package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.d.ts.map +1 -0
  324. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.js +3 -3
  325. package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.js.map +1 -0
  326. package/dist/esm/lib/{stack-app → hexclave-app}/common.d.ts +7 -7
  327. package/dist/esm/lib/hexclave-app/common.d.ts.map +1 -0
  328. package/dist/esm/lib/hexclave-app/common.js +7 -0
  329. package/dist/esm/lib/hexclave-app/common.js.map +1 -0
  330. package/dist/esm/lib/{stack-app → hexclave-app}/connected-accounts/index.d.ts +1 -1
  331. package/dist/esm/lib/hexclave-app/connected-accounts/index.d.ts.map +1 -0
  332. package/dist/esm/lib/{stack-app → hexclave-app}/contact-channels/index.d.ts +1 -1
  333. package/dist/esm/lib/hexclave-app/contact-channels/index.d.ts.map +1 -0
  334. package/dist/esm/lib/{stack-app → hexclave-app}/contact-channels/index.js +1 -1
  335. package/dist/esm/lib/hexclave-app/contact-channels/index.js.map +1 -0
  336. package/dist/esm/lib/{stack-app → hexclave-app}/customers/index.d.ts +1 -1
  337. package/dist/esm/lib/hexclave-app/customers/index.d.ts.map +1 -0
  338. package/dist/esm/lib/{stack-app → hexclave-app}/data-vault/index.d.ts +1 -1
  339. package/dist/esm/lib/hexclave-app/data-vault/index.d.ts.map +1 -0
  340. package/dist/esm/lib/{stack-app → hexclave-app}/email/index.d.ts +1 -1
  341. package/dist/esm/lib/hexclave-app/email/index.d.ts.map +1 -0
  342. package/dist/{lib/stack-app → esm/lib/hexclave-app}/email-templates/index.d.ts +1 -1
  343. package/dist/esm/lib/hexclave-app/email-templates/index.d.ts.map +1 -0
  344. package/dist/esm/lib/{stack-app → hexclave-app}/email-templates/index.js +1 -1
  345. package/dist/esm/lib/hexclave-app/email-templates/index.js.map +1 -0
  346. package/dist/esm/lib/{stack-app → hexclave-app}/index.d.ts +2 -2
  347. package/dist/esm/lib/{stack-app → hexclave-app}/index.js +2 -2
  348. package/dist/{lib/stack-app → esm/lib/hexclave-app}/internal-api-keys/index.d.ts +1 -1
  349. package/dist/esm/lib/hexclave-app/internal-api-keys/index.d.ts.map +1 -0
  350. package/dist/esm/lib/{stack-app → hexclave-app}/internal-api-keys/index.js +1 -1
  351. package/dist/esm/lib/hexclave-app/internal-api-keys/index.js.map +1 -0
  352. package/dist/{lib/stack-app → esm/lib/hexclave-app}/notification-categories/index.d.ts +1 -1
  353. package/dist/esm/lib/hexclave-app/notification-categories/index.d.ts.map +1 -0
  354. package/dist/{lib/stack-app → esm/lib/hexclave-app}/permissions/index.d.ts +1 -1
  355. package/dist/esm/lib/hexclave-app/permissions/index.d.ts.map +1 -0
  356. package/dist/esm/lib/{stack-app → hexclave-app}/permissions/index.js +1 -1
  357. package/dist/esm/lib/hexclave-app/permissions/index.js.map +1 -0
  358. package/dist/esm/lib/{stack-app → hexclave-app}/project-configs/index.d.ts +1 -1
  359. package/dist/esm/lib/hexclave-app/project-configs/index.d.ts.map +1 -0
  360. package/dist/esm/lib/{stack-app → hexclave-app}/projects/index.d.ts +1 -1
  361. package/dist/esm/lib/hexclave-app/projects/index.d.ts.map +1 -0
  362. package/dist/esm/lib/{stack-app → hexclave-app}/projects/index.js +1 -1
  363. package/dist/esm/lib/hexclave-app/projects/index.js.map +1 -0
  364. package/dist/{lib/stack-app → esm/lib/hexclave-app}/session-replays/index.d.ts +1 -1
  365. package/dist/esm/lib/hexclave-app/session-replays/index.d.ts.map +1 -0
  366. package/dist/esm/lib/{stack-app → hexclave-app}/teams/index.d.ts +1 -1
  367. package/dist/esm/lib/hexclave-app/teams/index.d.ts.map +1 -0
  368. package/dist/esm/lib/{stack-app → hexclave-app}/teams/index.js +1 -1
  369. package/dist/esm/lib/hexclave-app/teams/index.js.map +1 -0
  370. package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.d.ts +1 -1
  371. package/dist/esm/lib/hexclave-app/url-targets.d.ts.map +1 -0
  372. package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.js +26 -12
  373. package/dist/esm/lib/hexclave-app/url-targets.js.map +1 -0
  374. package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.test.js +13 -1
  375. package/dist/esm/lib/hexclave-app/url-targets.test.js.map +1 -0
  376. package/dist/esm/lib/{stack-app → hexclave-app}/users/index.d.ts +1 -1
  377. package/dist/esm/lib/hexclave-app/users/index.d.ts.map +1 -0
  378. package/dist/esm/lib/{stack-app → hexclave-app}/users/index.js +1 -1
  379. package/dist/esm/lib/hexclave-app/users/index.js.map +1 -0
  380. package/dist/esm/lib/hooks.d.ts +1 -1
  381. package/dist/esm/lib/hooks.js +9 -9
  382. package/dist/esm/lib/hooks.js.map +1 -1
  383. package/dist/esm/lib/translations.js.map +1 -1
  384. package/dist/esm/providers/hexclave-context.d.ts +11 -0
  385. package/dist/esm/providers/hexclave-context.d.ts.map +1 -0
  386. package/dist/esm/providers/hexclave-context.js +12 -0
  387. package/dist/esm/providers/hexclave-context.js.map +1 -0
  388. package/dist/esm/providers/{stack-provider-client.d.ts → hexclave-provider-client.d.ts} +5 -5
  389. package/dist/esm/providers/hexclave-provider-client.d.ts.map +1 -0
  390. package/dist/esm/providers/hexclave-provider-client.js +30 -0
  391. package/dist/esm/providers/hexclave-provider-client.js.map +1 -0
  392. package/dist/esm/providers/{stack-provider.d.ts → hexclave-provider.d.ts} +3 -3
  393. package/dist/esm/providers/hexclave-provider.d.ts.map +1 -0
  394. package/dist/esm/providers/{stack-provider.js → hexclave-provider.js} +4 -4
  395. package/dist/esm/providers/hexclave-provider.js.map +1 -0
  396. package/dist/esm/providers/theme-provider.js.map +1 -1
  397. package/dist/esm/providers/translation-provider-client.js.map +1 -1
  398. package/dist/esm/providers/translation-provider.js.map +1 -1
  399. package/dist/esm/tanstack-start-server-context.default.js.map +1 -1
  400. package/dist/esm/utils/browser-script.js.map +1 -1
  401. package/dist/esm/utils/constants.js.map +1 -1
  402. package/dist/esm/utils/url.js.map +1 -1
  403. package/dist/generated/env.d.ts +26 -0
  404. package/dist/{lib → generated}/env.d.ts.map +1 -1
  405. package/dist/generated/env.js +69 -0
  406. package/dist/generated/env.js.map +1 -0
  407. package/dist/generated/quetzal-translations.js.map +1 -1
  408. package/dist/global.d.ts +8 -1
  409. package/dist/global.d.ts.map +1 -0
  410. package/dist/index.d.ts +18 -18
  411. package/dist/index.js +9 -9
  412. package/dist/integrations/convex/component/convex.config.js.map +1 -1
  413. package/dist/integrations/convex.js +2 -2
  414. package/dist/integrations/convex.js.map +1 -1
  415. package/dist/lib/auth.js.map +1 -1
  416. package/dist/lib/auth.test.js.map +1 -1
  417. package/dist/lib/cookie.d.ts +0 -8
  418. package/dist/lib/cookie.d.ts.map +1 -1
  419. package/dist/lib/cookie.js +2 -2
  420. package/dist/lib/cookie.js.map +1 -1
  421. package/dist/{esm/lib/stack-app → lib/hexclave-app}/api-keys/index.d.ts +2 -2
  422. package/dist/{esm/lib/stack-app → lib/hexclave-app}/api-keys/index.d.ts.map +1 -1
  423. package/dist/lib/{stack-app → hexclave-app}/api-keys/index.js +1 -1
  424. package/dist/lib/hexclave-app/api-keys/index.js.map +1 -0
  425. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.d.ts +6 -6
  426. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -0
  427. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.js +5 -5
  428. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -0
  429. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js +381 -0
  430. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -0
  431. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.d.ts +16 -14
  432. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -0
  433. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.js +74 -54
  434. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -0
  435. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.js +1 -1
  436. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +1 -0
  437. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/common.d.ts +11 -11
  438. package/dist/lib/hexclave-app/apps/implementations/common.d.ts.map +1 -0
  439. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/common.js +33 -19
  440. package/dist/lib/hexclave-app/apps/implementations/common.js.map +1 -0
  441. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.d.ts +1 -1
  442. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/event-tracker.d.ts.map +1 -1
  443. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.js +1 -1
  444. package/dist/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -0
  445. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.js +1 -1
  446. package/dist/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -0
  447. package/dist/lib/hexclave-app/apps/implementations/index.d.ts +9 -0
  448. package/dist/lib/hexclave-app/apps/implementations/index.d.ts.map +1 -0
  449. package/dist/lib/hexclave-app/apps/implementations/index.js +31 -0
  450. package/dist/lib/hexclave-app/apps/implementations/index.js.map +1 -0
  451. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.d.ts +1 -1
  452. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/redirect-page-urls.d.ts.map +1 -1
  453. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.js +1 -1
  454. package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.js.map +1 -0
  455. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.d.ts +4 -4
  456. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/server-app-impl.d.ts.map +1 -1
  457. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.js +6 -6
  458. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -0
  459. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts +1 -1
  460. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts.map +1 -1
  461. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.js +1 -1
  462. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.js.map +1 -0
  463. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.js +1 -1
  464. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js.map +1 -0
  465. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-replay.d.ts +1 -1
  466. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-replay.d.ts.map +1 -1
  467. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.js +1 -1
  468. package/dist/lib/hexclave-app/apps/implementations/session-replay.js.map +1 -0
  469. package/dist/lib/hexclave-app/apps/implementations/session-replay.test.d.ts +1 -0
  470. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.js +1 -1
  471. package/dist/lib/hexclave-app/apps/implementations/session-replay.test.js.map +1 -0
  472. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.d.ts +1 -1
  473. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/admin-app.d.ts.map +1 -1
  474. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.js +2 -2
  475. package/dist/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -0
  476. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.d.ts +4 -4
  477. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/client-app.d.ts.map +1 -1
  478. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.js +2 -2
  479. package/dist/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -0
  480. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.d.ts +1 -1
  481. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/server-app.d.ts.map +1 -1
  482. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.js +2 -2
  483. package/dist/lib/hexclave-app/apps/interfaces/server-app.js.map +1 -0
  484. package/dist/lib/{stack-app → hexclave-app}/common.d.ts +7 -7
  485. package/dist/{esm/lib/stack-app → lib/hexclave-app}/common.d.ts.map +1 -1
  486. package/dist/lib/hexclave-app/common.js +9 -0
  487. package/dist/lib/hexclave-app/common.js.map +1 -0
  488. package/dist/lib/{stack-app → hexclave-app}/connected-accounts/index.d.ts +1 -1
  489. package/dist/{esm/lib/stack-app → lib/hexclave-app}/connected-accounts/index.d.ts.map +1 -1
  490. package/dist/lib/{stack-app → hexclave-app}/contact-channels/index.d.ts +1 -1
  491. package/dist/{esm/lib/stack-app → lib/hexclave-app}/contact-channels/index.d.ts.map +1 -1
  492. package/dist/lib/{stack-app → hexclave-app}/contact-channels/index.js +1 -1
  493. package/dist/lib/hexclave-app/contact-channels/index.js.map +1 -0
  494. package/dist/lib/{stack-app → hexclave-app}/customers/index.d.ts +1 -1
  495. package/dist/{esm/lib/stack-app → lib/hexclave-app}/customers/index.d.ts.map +1 -1
  496. package/dist/lib/{stack-app → hexclave-app}/data-vault/index.d.ts +1 -1
  497. package/dist/{esm/lib/stack-app → lib/hexclave-app}/data-vault/index.d.ts.map +1 -1
  498. package/dist/lib/{stack-app → hexclave-app}/email/index.d.ts +1 -1
  499. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email/index.d.ts.map +1 -1
  500. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email-templates/index.d.ts +1 -1
  501. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email-templates/index.d.ts.map +1 -1
  502. package/dist/lib/{stack-app → hexclave-app}/email-templates/index.js +1 -1
  503. package/dist/lib/hexclave-app/email-templates/index.js.map +1 -0
  504. package/dist/lib/{stack-app → hexclave-app}/index.d.ts +2 -2
  505. package/dist/lib/{stack-app → hexclave-app}/index.js +2 -2
  506. package/dist/{esm/lib/stack-app → lib/hexclave-app}/internal-api-keys/index.d.ts +1 -1
  507. package/dist/{esm/lib/stack-app → lib/hexclave-app}/internal-api-keys/index.d.ts.map +1 -1
  508. package/dist/lib/{stack-app → hexclave-app}/internal-api-keys/index.js +1 -1
  509. package/dist/lib/hexclave-app/internal-api-keys/index.js.map +1 -0
  510. package/dist/{esm/lib/stack-app → lib/hexclave-app}/notification-categories/index.d.ts +1 -1
  511. package/dist/{esm/lib/stack-app → lib/hexclave-app}/notification-categories/index.d.ts.map +1 -1
  512. package/dist/{esm/lib/stack-app → lib/hexclave-app}/permissions/index.d.ts +1 -1
  513. package/dist/{esm/lib/stack-app → lib/hexclave-app}/permissions/index.d.ts.map +1 -1
  514. package/dist/lib/{stack-app → hexclave-app}/permissions/index.js +1 -1
  515. package/dist/lib/hexclave-app/permissions/index.js.map +1 -0
  516. package/dist/lib/{stack-app → hexclave-app}/project-configs/index.d.ts +1 -1
  517. package/dist/{esm/lib/stack-app → lib/hexclave-app}/project-configs/index.d.ts.map +1 -1
  518. package/dist/lib/{stack-app → hexclave-app}/projects/index.d.ts +1 -1
  519. package/dist/{esm/lib/stack-app → lib/hexclave-app}/projects/index.d.ts.map +1 -1
  520. package/dist/lib/{stack-app → hexclave-app}/projects/index.js +1 -1
  521. package/dist/lib/hexclave-app/projects/index.js.map +1 -0
  522. package/dist/{esm/lib/stack-app → lib/hexclave-app}/session-replays/index.d.ts +1 -1
  523. package/dist/{esm/lib/stack-app → lib/hexclave-app}/session-replays/index.d.ts.map +1 -1
  524. package/dist/lib/{stack-app → hexclave-app}/teams/index.d.ts +1 -1
  525. package/dist/{esm/lib/stack-app → lib/hexclave-app}/teams/index.d.ts.map +1 -1
  526. package/dist/lib/{stack-app → hexclave-app}/teams/index.js +1 -1
  527. package/dist/lib/hexclave-app/teams/index.js.map +1 -0
  528. package/dist/lib/{stack-app → hexclave-app}/url-targets.d.ts +1 -1
  529. package/dist/{esm/lib/stack-app → lib/hexclave-app}/url-targets.d.ts.map +1 -1
  530. package/dist/lib/{stack-app → hexclave-app}/url-targets.js +26 -12
  531. package/dist/lib/hexclave-app/url-targets.js.map +1 -0
  532. package/dist/lib/hexclave-app/url-targets.test.d.ts +1 -0
  533. package/dist/lib/{stack-app → hexclave-app}/url-targets.test.js +13 -1
  534. package/dist/lib/hexclave-app/url-targets.test.js.map +1 -0
  535. package/dist/lib/{stack-app → hexclave-app}/users/index.d.ts +1 -1
  536. package/dist/{esm/lib/stack-app → lib/hexclave-app}/users/index.d.ts.map +1 -1
  537. package/dist/lib/{stack-app → hexclave-app}/users/index.js +1 -1
  538. package/dist/lib/hexclave-app/users/index.js.map +1 -0
  539. package/dist/lib/hooks.d.ts +3 -3
  540. package/dist/lib/hooks.d.ts.map +1 -1
  541. package/dist/lib/hooks.js +9 -9
  542. package/dist/lib/hooks.js.map +1 -1
  543. package/dist/lib/translations.js.map +1 -1
  544. package/dist/providers/hexclave-context.d.ts +11 -0
  545. package/dist/providers/hexclave-context.d.ts.map +1 -0
  546. package/dist/providers/hexclave-context.js +15 -0
  547. package/dist/providers/hexclave-context.js.map +1 -0
  548. package/dist/providers/{stack-provider-client.d.ts → hexclave-provider-client.d.ts} +5 -5
  549. package/dist/providers/hexclave-provider-client.d.ts.map +1 -0
  550. package/dist/providers/{stack-provider-client.js → hexclave-provider-client.js} +9 -9
  551. package/dist/providers/hexclave-provider-client.js.map +1 -0
  552. package/dist/providers/{stack-provider.d.ts → hexclave-provider.d.ts} +3 -3
  553. package/dist/providers/hexclave-provider.d.ts.map +1 -0
  554. package/dist/providers/{stack-provider.js → hexclave-provider.js} +4 -4
  555. package/dist/providers/hexclave-provider.js.map +1 -0
  556. package/dist/providers/theme-provider.js.map +1 -1
  557. package/dist/providers/translation-provider-client.js.map +1 -1
  558. package/dist/providers/translation-provider.js.map +1 -1
  559. package/dist/tanstack-start-server-context.default.js.map +1 -1
  560. package/dist/utils/browser-script.js.map +1 -1
  561. package/dist/utils/constants.js.map +1 -1
  562. package/dist/utils/url.js.map +1 -1
  563. package/package.json +10 -7
  564. package/src/components/api-key-dialogs.tsx +173 -0
  565. package/src/components/api-key-table.tsx +127 -0
  566. package/src/components/credential-sign-in.tsx +83 -0
  567. package/src/components/credential-sign-up.tsx +108 -0
  568. package/src/components/elements/form-warning.tsx +17 -0
  569. package/src/components/elements/maybe-full-page.tsx +60 -0
  570. package/src/components/elements/separator-with-text.tsx +22 -0
  571. package/src/components/elements/sidebar-layout.tsx +136 -0
  572. package/src/components/elements/ssr-layout-effect.tsx +24 -0
  573. package/src/components/elements/user-avatar.tsx +32 -0
  574. package/src/components/link.tsx +38 -0
  575. package/src/components/magic-link-sign-in.tsx +143 -0
  576. package/src/components/message-cards/known-error-message-card.tsx +33 -0
  577. package/src/components/message-cards/message-card.tsx +46 -0
  578. package/src/components/message-cards/predefined-message-card.tsx +88 -0
  579. package/src/components/oauth-button-group.tsx +35 -0
  580. package/src/components/oauth-button.tsx +222 -0
  581. package/src/components/passkey-button.tsx +43 -0
  582. package/src/components/profile-image-editor.tsx +194 -0
  583. package/src/components/selected-team-switcher.tsx +97 -0
  584. package/src/components/team-icon.tsx +30 -0
  585. package/src/components/team-switcher.tsx +191 -0
  586. package/src/components/use-in-iframe.tsx +18 -0
  587. package/src/components/user-button.tsx +157 -0
  588. package/src/components-page/account-settings/active-sessions/active-sessions-page.tsx +238 -0
  589. package/src/components-page/account-settings/api-keys/api-keys-page.tsx +157 -0
  590. package/src/components-page/account-settings/editable-text.tsx +53 -0
  591. package/src/components-page/account-settings/email-and-auth/email-and-auth-page.tsx +24 -0
  592. package/src/components-page/account-settings/email-and-auth/emails-section.tsx +201 -0
  593. package/src/components-page/account-settings/email-and-auth/mfa-section.tsx +139 -0
  594. package/src/components-page/account-settings/email-and-auth/otp-section.tsx +102 -0
  595. package/src/components-page/account-settings/email-and-auth/passkey-section.tsx +112 -0
  596. package/src/components-page/account-settings/email-and-auth/password-section.tsx +174 -0
  597. package/src/components-page/account-settings/notifications/notifications-page.tsx +44 -0
  598. package/src/components-page/account-settings/page-layout.tsx +11 -0
  599. package/src/components-page/account-settings/payments/payments-page.tsx +73 -0
  600. package/src/components-page/account-settings/payments/payments-panel.tsx +543 -0
  601. package/src/components-page/account-settings/profile-page/profile-page.tsx +61 -0
  602. package/src/components-page/account-settings/section.tsx +26 -0
  603. package/src/components-page/account-settings/settings/delete-account-section.tsx +85 -0
  604. package/src/components-page/account-settings/settings/settings-page.tsx +19 -0
  605. package/src/components-page/account-settings/settings/sign-out-section.tsx +40 -0
  606. package/src/components-page/account-settings/teams/leave-team-section.tsx +57 -0
  607. package/src/components-page/account-settings/teams/team-api-keys-section.tsx +74 -0
  608. package/src/components-page/account-settings/teams/team-creation-page.tsx +92 -0
  609. package/src/components-page/account-settings/teams/team-display-name-section.tsx +31 -0
  610. package/src/components-page/account-settings/teams/team-member-invitation-section.tsx +128 -0
  611. package/src/components-page/account-settings/teams/team-member-list-section.tsx +59 -0
  612. package/src/components-page/account-settings/teams/team-page.tsx +28 -0
  613. package/src/components-page/account-settings/teams/team-profile-image-section.tsx +33 -0
  614. package/src/components-page/account-settings/teams/team-profile-user-section.tsx +29 -0
  615. package/src/components-page/account-settings.tsx +343 -0
  616. package/src/components-page/auth-page.tsx +206 -0
  617. package/src/components-page/cli-auth-confirm.test.tsx +204 -0
  618. package/src/components-page/cli-auth-confirm.tsx +278 -0
  619. package/src/components-page/email-verification.tsx +76 -0
  620. package/src/components-page/error-page.tsx +105 -0
  621. package/src/components-page/forgot-password.tsx +105 -0
  622. package/src/components-page/hexclave-handler-client.test.tsx +64 -0
  623. package/src/components-page/hexclave-handler-client.tsx +400 -0
  624. package/src/components-page/hexclave-handler.tsx +48 -0
  625. package/src/components-page/magic-link-callback.tsx +92 -0
  626. package/src/components-page/mfa.tsx +222 -0
  627. package/src/components-page/oauth-callback.tsx +78 -0
  628. package/src/components-page/onboarding.tsx +176 -0
  629. package/src/components-page/password-reset.tsx +185 -0
  630. package/src/components-page/section.tsx +27 -0
  631. package/src/components-page/sign-in.tsx +34 -0
  632. package/src/components-page/sign-out.tsx +37 -0
  633. package/src/components-page/sign-up.tsx +24 -0
  634. package/src/components-page/team-creation.tsx +78 -0
  635. package/src/components-page/team-invitation.tsx +150 -0
  636. package/src/dev-tool/dev-tool-core.ts +2460 -0
  637. package/src/dev-tool/dev-tool-styles.ts +2758 -0
  638. package/src/dev-tool/dev-tool-trigger-position.test.ts +113 -0
  639. package/src/dev-tool/dev-tool-trigger-position.ts +109 -0
  640. package/src/dev-tool/index.ts +149 -0
  641. package/src/generated/.gitignore +3 -0
  642. package/src/generated/quetzal-translations.ts +4312 -0
  643. package/src/global.css +13 -0
  644. package/src/global.d.ts +12 -0
  645. package/src/index.ts +39 -0
  646. package/src/integrations/convex/component/README.md +74 -0
  647. package/src/integrations/convex/component/convex.config.ts +9 -0
  648. package/src/integrations/convex.ts +28 -0
  649. package/src/lib/auth.test.ts +67 -0
  650. package/src/lib/auth.ts +175 -0
  651. package/src/lib/cookie.ts +420 -0
  652. package/src/lib/hexclave-app/api-keys/index.ts +73 -0
  653. package/src/lib/hexclave-app/apps/implementations/admin-app-impl.ts +1261 -0
  654. package/src/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.ts +454 -0
  655. package/src/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.ts +36 -0
  656. package/src/lib/hexclave-app/apps/implementations/client-app-impl.ts +3970 -0
  657. package/src/lib/hexclave-app/apps/implementations/common.ts +270 -0
  658. package/src/lib/hexclave-app/apps/implementations/event-tracker.test.ts +105 -0
  659. package/src/lib/hexclave-app/apps/implementations/event-tracker.ts +306 -0
  660. package/src/lib/hexclave-app/apps/implementations/index.ts +35 -0
  661. package/src/lib/hexclave-app/apps/implementations/redirect-page-urls.ts +342 -0
  662. package/src/lib/hexclave-app/apps/implementations/server-app-impl.ts +1619 -0
  663. package/src/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.ts +106 -0
  664. package/src/lib/hexclave-app/apps/implementations/session-refresh-subscription.ts +52 -0
  665. package/src/lib/hexclave-app/apps/implementations/session-replay.test.ts +33 -0
  666. package/src/lib/hexclave-app/apps/implementations/session-replay.ts +356 -0
  667. package/src/lib/hexclave-app/apps/index.ts +40 -0
  668. package/src/lib/hexclave-app/apps/interfaces/admin-app.ts +192 -0
  669. package/src/lib/hexclave-app/apps/interfaces/client-app.ts +180 -0
  670. package/src/lib/hexclave-app/apps/interfaces/server-app.ts +129 -0
  671. package/src/lib/hexclave-app/common.ts +216 -0
  672. package/src/lib/hexclave-app/connected-accounts/index.ts +49 -0
  673. package/src/lib/hexclave-app/contact-channels/index.ts +80 -0
  674. package/src/lib/hexclave-app/customers/index.ts +158 -0
  675. package/src/lib/hexclave-app/data-vault/index.ts +12 -0
  676. package/src/lib/hexclave-app/email/index.ts +280 -0
  677. package/src/lib/hexclave-app/email-templates/index.ts +24 -0
  678. package/src/lib/hexclave-app/index.ts +146 -0
  679. package/src/lib/hexclave-app/internal-api-keys/index.ts +55 -0
  680. package/src/lib/hexclave-app/notification-categories/index.ts +12 -0
  681. package/src/lib/hexclave-app/permissions/index.ts +75 -0
  682. package/src/lib/hexclave-app/project-configs/index.ts +103 -0
  683. package/src/lib/hexclave-app/projects/index.ts +236 -0
  684. package/src/lib/hexclave-app/session-replays/index.ts +72 -0
  685. package/src/lib/hexclave-app/teams/index.ts +206 -0
  686. package/src/lib/hexclave-app/url-targets.test.ts +270 -0
  687. package/src/lib/hexclave-app/url-targets.ts +413 -0
  688. package/src/lib/hexclave-app/users/index.ts +523 -0
  689. package/src/lib/hooks.tsx +63 -0
  690. package/src/lib/translations.tsx +23 -0
  691. package/src/providers/hexclave-context.tsx +20 -0
  692. package/src/providers/hexclave-provider-client.tsx +39 -0
  693. package/src/providers/hexclave-provider.tsx +49 -0
  694. package/src/providers/theme-provider.tsx +121 -0
  695. package/src/providers/translation-provider-client.tsx +35 -0
  696. package/src/providers/translation-provider.tsx +25 -0
  697. package/src/tanstack-start-server-context.combined.ts +12 -0
  698. package/src/tanstack-start-server-context.default.ts +9 -0
  699. package/src/tanstack-start-server-context.server.ts +11 -0
  700. package/src/utils/browser-script.tsx +135 -0
  701. package/src/utils/constants.tsx +58 -0
  702. package/src/utils/url.ts +24 -0
  703. package/dist/components-page/stack-handler-client.d.ts.map +0 -1
  704. package/dist/components-page/stack-handler-client.js.map +0 -1
  705. package/dist/components-page/stack-handler.d.ts.map +0 -1
  706. package/dist/components-page/stack-handler.js.map +0 -1
  707. package/dist/esm/components-page/stack-handler-client.d.ts.map +0 -1
  708. package/dist/esm/components-page/stack-handler-client.js.map +0 -1
  709. package/dist/esm/components-page/stack-handler.d.ts.map +0 -1
  710. package/dist/esm/components-page/stack-handler.js.map +0 -1
  711. package/dist/esm/lib/env.d.ts +0 -42
  712. package/dist/esm/lib/env.js +0 -93
  713. package/dist/esm/lib/env.js.map +0 -1
  714. package/dist/esm/lib/stack-app/api-keys/index.js.map +0 -1
  715. package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.d.ts.map +0 -1
  716. package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.js.map +0 -1
  717. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js +0 -121
  718. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js.map +0 -1
  719. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.d.ts.map +0 -1
  720. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js.map +0 -1
  721. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +0 -1
  722. package/dist/esm/lib/stack-app/apps/implementations/common.d.ts.map +0 -1
  723. package/dist/esm/lib/stack-app/apps/implementations/common.js.map +0 -1
  724. package/dist/esm/lib/stack-app/apps/implementations/event-tracker.js.map +0 -1
  725. package/dist/esm/lib/stack-app/apps/implementations/event-tracker.test.js.map +0 -1
  726. package/dist/esm/lib/stack-app/apps/implementations/index.d.ts +0 -9
  727. package/dist/esm/lib/stack-app/apps/implementations/index.d.ts.map +0 -1
  728. package/dist/esm/lib/stack-app/apps/implementations/index.js +0 -27
  729. package/dist/esm/lib/stack-app/apps/implementations/index.js.map +0 -1
  730. package/dist/esm/lib/stack-app/apps/implementations/redirect-page-urls.js.map +0 -1
  731. package/dist/esm/lib/stack-app/apps/implementations/server-app-impl.js.map +0 -1
  732. package/dist/esm/lib/stack-app/apps/implementations/session-refresh-subscription.js.map +0 -1
  733. package/dist/esm/lib/stack-app/apps/implementations/session-refresh-subscription.test.js.map +0 -1
  734. package/dist/esm/lib/stack-app/apps/implementations/session-replay.js.map +0 -1
  735. package/dist/esm/lib/stack-app/apps/implementations/session-replay.test.js.map +0 -1
  736. package/dist/esm/lib/stack-app/apps/interfaces/admin-app.js.map +0 -1
  737. package/dist/esm/lib/stack-app/apps/interfaces/client-app.js.map +0 -1
  738. package/dist/esm/lib/stack-app/apps/interfaces/server-app.js.map +0 -1
  739. package/dist/esm/lib/stack-app/common.js +0 -7
  740. package/dist/esm/lib/stack-app/common.js.map +0 -1
  741. package/dist/esm/lib/stack-app/contact-channels/index.js.map +0 -1
  742. package/dist/esm/lib/stack-app/email-templates/index.js.map +0 -1
  743. package/dist/esm/lib/stack-app/internal-api-keys/index.js.map +0 -1
  744. package/dist/esm/lib/stack-app/permissions/index.js.map +0 -1
  745. package/dist/esm/lib/stack-app/projects/index.js.map +0 -1
  746. package/dist/esm/lib/stack-app/teams/index.js.map +0 -1
  747. package/dist/esm/lib/stack-app/url-targets.js.map +0 -1
  748. package/dist/esm/lib/stack-app/url-targets.test.js.map +0 -1
  749. package/dist/esm/lib/stack-app/users/index.js.map +0 -1
  750. package/dist/esm/providers/stack-context.d.ts +0 -11
  751. package/dist/esm/providers/stack-context.d.ts.map +0 -1
  752. package/dist/esm/providers/stack-context.js +0 -12
  753. package/dist/esm/providers/stack-context.js.map +0 -1
  754. package/dist/esm/providers/stack-provider-client.d.ts.map +0 -1
  755. package/dist/esm/providers/stack-provider-client.js +0 -30
  756. package/dist/esm/providers/stack-provider-client.js.map +0 -1
  757. package/dist/esm/providers/stack-provider.d.ts.map +0 -1
  758. package/dist/esm/providers/stack-provider.js.map +0 -1
  759. package/dist/lib/env.d.ts +0 -42
  760. package/dist/lib/env.js +0 -95
  761. package/dist/lib/env.js.map +0 -1
  762. package/dist/lib/stack-app/api-keys/index.d.ts.map +0 -1
  763. package/dist/lib/stack-app/api-keys/index.js.map +0 -1
  764. package/dist/lib/stack-app/apps/implementations/admin-app-impl.d.ts.map +0 -1
  765. package/dist/lib/stack-app/apps/implementations/admin-app-impl.js.map +0 -1
  766. package/dist/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js +0 -121
  767. package/dist/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js.map +0 -1
  768. package/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts.map +0 -1
  769. package/dist/lib/stack-app/apps/implementations/client-app-impl.js.map +0 -1
  770. package/dist/lib/stack-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +0 -1
  771. package/dist/lib/stack-app/apps/implementations/common.d.ts.map +0 -1
  772. package/dist/lib/stack-app/apps/implementations/common.js.map +0 -1
  773. package/dist/lib/stack-app/apps/implementations/event-tracker.d.ts.map +0 -1
  774. package/dist/lib/stack-app/apps/implementations/event-tracker.js.map +0 -1
  775. package/dist/lib/stack-app/apps/implementations/event-tracker.test.js.map +0 -1
  776. package/dist/lib/stack-app/apps/implementations/index.d.ts +0 -9
  777. package/dist/lib/stack-app/apps/implementations/index.d.ts.map +0 -1
  778. package/dist/lib/stack-app/apps/implementations/index.js +0 -31
  779. package/dist/lib/stack-app/apps/implementations/index.js.map +0 -1
  780. package/dist/lib/stack-app/apps/implementations/redirect-page-urls.d.ts.map +0 -1
  781. package/dist/lib/stack-app/apps/implementations/redirect-page-urls.js.map +0 -1
  782. package/dist/lib/stack-app/apps/implementations/server-app-impl.d.ts.map +0 -1
  783. package/dist/lib/stack-app/apps/implementations/server-app-impl.js.map +0 -1
  784. package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.d.ts.map +0 -1
  785. package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.js.map +0 -1
  786. package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.test.js.map +0 -1
  787. package/dist/lib/stack-app/apps/implementations/session-replay.d.ts.map +0 -1
  788. package/dist/lib/stack-app/apps/implementations/session-replay.js.map +0 -1
  789. package/dist/lib/stack-app/apps/implementations/session-replay.test.js.map +0 -1
  790. package/dist/lib/stack-app/apps/interfaces/admin-app.d.ts.map +0 -1
  791. package/dist/lib/stack-app/apps/interfaces/admin-app.js.map +0 -1
  792. package/dist/lib/stack-app/apps/interfaces/client-app.d.ts.map +0 -1
  793. package/dist/lib/stack-app/apps/interfaces/client-app.js.map +0 -1
  794. package/dist/lib/stack-app/apps/interfaces/server-app.d.ts.map +0 -1
  795. package/dist/lib/stack-app/apps/interfaces/server-app.js.map +0 -1
  796. package/dist/lib/stack-app/common.d.ts.map +0 -1
  797. package/dist/lib/stack-app/common.js +0 -9
  798. package/dist/lib/stack-app/common.js.map +0 -1
  799. package/dist/lib/stack-app/connected-accounts/index.d.ts.map +0 -1
  800. package/dist/lib/stack-app/contact-channels/index.d.ts.map +0 -1
  801. package/dist/lib/stack-app/contact-channels/index.js.map +0 -1
  802. package/dist/lib/stack-app/customers/index.d.ts.map +0 -1
  803. package/dist/lib/stack-app/data-vault/index.d.ts.map +0 -1
  804. package/dist/lib/stack-app/email/index.d.ts.map +0 -1
  805. package/dist/lib/stack-app/email-templates/index.d.ts.map +0 -1
  806. package/dist/lib/stack-app/email-templates/index.js.map +0 -1
  807. package/dist/lib/stack-app/internal-api-keys/index.d.ts.map +0 -1
  808. package/dist/lib/stack-app/internal-api-keys/index.js.map +0 -1
  809. package/dist/lib/stack-app/notification-categories/index.d.ts.map +0 -1
  810. package/dist/lib/stack-app/permissions/index.d.ts.map +0 -1
  811. package/dist/lib/stack-app/permissions/index.js.map +0 -1
  812. package/dist/lib/stack-app/project-configs/index.d.ts.map +0 -1
  813. package/dist/lib/stack-app/projects/index.d.ts.map +0 -1
  814. package/dist/lib/stack-app/projects/index.js.map +0 -1
  815. package/dist/lib/stack-app/session-replays/index.d.ts.map +0 -1
  816. package/dist/lib/stack-app/teams/index.d.ts.map +0 -1
  817. package/dist/lib/stack-app/teams/index.js.map +0 -1
  818. package/dist/lib/stack-app/url-targets.d.ts.map +0 -1
  819. package/dist/lib/stack-app/url-targets.js.map +0 -1
  820. package/dist/lib/stack-app/url-targets.test.js.map +0 -1
  821. package/dist/lib/stack-app/users/index.d.ts.map +0 -1
  822. package/dist/lib/stack-app/users/index.js.map +0 -1
  823. package/dist/providers/stack-context.d.ts +0 -11
  824. package/dist/providers/stack-context.d.ts.map +0 -1
  825. package/dist/providers/stack-context.js +0 -15
  826. package/dist/providers/stack-context.js.map +0 -1
  827. package/dist/providers/stack-provider-client.d.ts.map +0 -1
  828. package/dist/providers/stack-provider-client.js.map +0 -1
  829. package/dist/providers/stack-provider.d.ts.map +0 -1
  830. package/dist/providers/stack-provider.js.map +0 -1
  831. /package/dist/{esm/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.d.ts → components-page/hexclave-handler-client.test.d.ts} +0 -0
  832. /package/dist/esm/{lib/stack-app/apps/implementations/client-app-impl.oauth-prefetch.test.d.ts → components-page/hexclave-handler-client.test.d.ts} +0 -0
  833. /package/dist/{lib/stack-app → esm/lib/hexclave-app}/apps/implementations/client-app-impl.cross-domain.test.d.ts +0 -0
  834. /package/dist/{lib/stack-app → esm/lib/hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.d.ts +0 -0
  835. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.d.ts +0 -0
  836. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.d.ts +0 -0
  837. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.d.ts +0 -0
  838. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/index.d.ts +0 -0
  839. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/index.js +0 -0
  840. /package/dist/esm/lib/{stack-app → hexclave-app}/connected-accounts/index.js +0 -0
  841. /package/dist/esm/lib/{stack-app → hexclave-app}/customers/index.js +0 -0
  842. /package/dist/esm/lib/{stack-app → hexclave-app}/data-vault/index.js +0 -0
  843. /package/dist/esm/lib/{stack-app → hexclave-app}/email/index.js +0 -0
  844. /package/dist/esm/lib/{stack-app → hexclave-app}/notification-categories/index.js +0 -0
  845. /package/dist/esm/lib/{stack-app → hexclave-app}/project-configs/index.js +0 -0
  846. /package/dist/esm/lib/{stack-app → hexclave-app}/session-replays/index.js +0 -0
  847. /package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.test.d.ts +0 -0
  848. /package/dist/lib/{stack-app/apps/implementations/event-tracker.test.d.ts → hexclave-app/apps/implementations/client-app-impl.cross-domain.test.d.ts} +0 -0
  849. /package/dist/lib/{stack-app/apps/implementations/session-refresh-subscription.test.d.ts → hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.d.ts} +0 -0
  850. /package/dist/lib/{stack-app/apps/implementations/session-replay.test.d.ts → hexclave-app/apps/implementations/event-tracker.test.d.ts} +0 -0
  851. /package/dist/lib/{stack-app/url-targets.test.d.ts → hexclave-app/apps/implementations/session-refresh-subscription.test.d.ts} +0 -0
  852. /package/dist/lib/{stack-app → hexclave-app}/apps/index.d.ts +0 -0
  853. /package/dist/lib/{stack-app → hexclave-app}/apps/index.js +0 -0
  854. /package/dist/lib/{stack-app → hexclave-app}/connected-accounts/index.js +0 -0
  855. /package/dist/lib/{stack-app → hexclave-app}/customers/index.js +0 -0
  856. /package/dist/lib/{stack-app → hexclave-app}/data-vault/index.js +0 -0
  857. /package/dist/lib/{stack-app → hexclave-app}/email/index.js +0 -0
  858. /package/dist/lib/{stack-app → hexclave-app}/notification-categories/index.js +0 -0
  859. /package/dist/lib/{stack-app → hexclave-app}/project-configs/index.js +0 -0
  860. /package/dist/lib/{stack-app → hexclave-app}/session-replays/index.js +0 -0
@@ -6,15 +6,15 @@ let react = require("react");
6
6
  react = require_chunk.__toESM(react);
7
7
  let react_jsx_runtime = require("react/jsx-runtime");
8
8
  let ___lib_hooks_js = require("../lib/hooks.js");
9
- let ___lib_stack_app_index_js = require("../lib/stack-app/index.js");
9
+ let ___lib_hexclave_app_index_js = require("../lib/hexclave-app/index.js");
10
10
  let _hexclave_shared_dist_utils_globals = require("@hexclave/shared/dist/utils/globals");
11
- let __stack_context_js = require("./stack-context.js");
11
+ let __hexclave_context_js = require("./hexclave-context.js");
12
12
 
13
- //#region src/providers/stack-provider-client.tsx
14
- function StackProviderClient(props) {
15
- const app = props.serialized ? ___lib_stack_app_index_js.StackClientApp[___lib_stack_app_index_js.stackAppInternalsSymbol].fromClientJson(props.app) : props.app;
13
+ //#region src/providers/hexclave-provider-client.tsx
14
+ function HexclaveProviderClient(props) {
15
+ const app = props.serialized ? ___lib_hexclave_app_index_js.StackClientApp[___lib_hexclave_app_index_js.hexclaveAppInternalsSymbol].fromClientJson(props.app) : props.app;
16
16
  _hexclave_shared_dist_utils_globals.globalVar.__STACK_AUTH__ = { app };
17
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__stack_context_js.StackContext.Provider, {
17
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__hexclave_context_js.HexclaveContext.Provider, {
18
18
  value: { app },
19
19
  children: props.children
20
20
  });
@@ -23,12 +23,12 @@ function UserSetter(props) {
23
23
  const app = (0, ___lib_hooks_js.useStackApp)();
24
24
  (0, react.useEffect)(() => {
25
25
  const promise = (async () => await props.userJsonPromise)();
26
- app[___lib_stack_app_index_js.stackAppInternalsSymbol].setCurrentUser(promise);
26
+ app[___lib_hexclave_app_index_js.hexclaveAppInternalsSymbol].setCurrentUser(promise);
27
27
  }, []);
28
28
  return null;
29
29
  }
30
30
 
31
31
  //#endregion
32
- exports.StackProviderClient = StackProviderClient;
32
+ exports.HexclaveProviderClient = HexclaveProviderClient;
33
33
  exports.UserSetter = UserSetter;
34
- //# sourceMappingURL=stack-provider-client.js.map
34
+ //# sourceMappingURL=hexclave-provider-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hexclave-provider-client.js","names":["StackClientApp","hexclaveAppInternalsSymbol","HexclaveContext"],"sources":["../../src/providers/hexclave-provider-client.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 { CurrentUserCrud } from \"@hexclave/shared/dist/interface/crud/current-user\";\nimport { globalVar } from \"@hexclave/shared/dist/utils/globals\";\nimport React, { useEffect } from \"react\";\nimport { useStackApp } from \"../lib/hooks\";\nimport { StackClientApp, StackClientAppJson, hexclaveAppInternalsSymbol } from \"../lib/hexclave-app\";\nimport { HexclaveContext } from \"./hexclave-context\";\n\nexport function HexclaveProviderClient(props: {\n app: StackClientAppJson<true, string> | StackClientApp<true>,\n serialized: boolean,\n children?: React.ReactNode,\n}) {\n const app = props.serialized\n ? StackClientApp[hexclaveAppInternalsSymbol].fromClientJson(props.app as StackClientAppJson<true, string>)\n : props.app as StackClientApp<true>;\n globalVar.__STACK_AUTH__ = { app };\n\n return (\n <HexclaveContext.Provider value={{ app }}>\n {props.children}\n </HexclaveContext.Provider>\n );\n}\n\nexport function UserSetter(props: { userJsonPromise: Promise<CurrentUserCrud['Client']['Read'] | null> }) {\n const app = useStackApp();\n useEffect(() => {\n const promise = (async () => await props.userJsonPromise)(); // there is a Next.js bug where Promises passed by server components return `undefined` as their `then` value, so wrap it in a normal promise\n app[hexclaveAppInternalsSymbol].setCurrentUser(promise);\n }, []);\n return null;\n}\n"],"mappings":";;;;;;;;;;;;;AAcA,SAAgB,uBAAuB,OAIpC;CACD,MAAM,MAAM,MAAM,aACdA,4CAAeC,yDAA4B,eAAe,MAAM,IAAwC,GACxG,MAAM;AACV,+CAAU,iBAAiB,EAAE,KAAK;AAElC,QACE,2CAACC,sCAAgB;EAAS,OAAO,EAAE,KAAK;YACrC,MAAM;GACkB;;AAI/B,SAAgB,WAAW,OAA+E;CACxG,MAAM,wCAAmB;AACzB,4BAAgB;EACd,MAAM,WAAW,YAAY,MAAM,MAAM,kBAAkB;AAC3D,MAAID,yDAA4B,eAAe,QAAQ;IACtD,EAAE,CAAC;AACN,QAAO"}
@@ -1,9 +1,9 @@
1
- import { StackClientApp } from "../lib/stack-app/apps/interfaces/client-app.js";
1
+ import { StackClientApp } from "../lib/hexclave-app/apps/interfaces/client-app.js";
2
2
  import { TranslationProvider } from "./translation-provider.js";
3
3
  import * as react_jsx_runtime0 from "react/jsx-runtime";
4
4
  import React from "react";
5
5
 
6
- //#region src/providers/stack-provider.d.ts
6
+ //#region src/providers/hexclave-provider.d.ts
7
7
  declare function TanStackStartStackProvider({
8
8
  children,
9
9
  app,
@@ -27,4 +27,4 @@ declare const HexclaveProvider: typeof TanStackStartStackProvider;
27
27
  declare const StackProvider: typeof TanStackStartStackProvider;
28
28
  //#endregion
29
29
  export { HexclaveProvider, StackProvider, ActiveProvider as default };
30
- //# sourceMappingURL=stack-provider.d.ts.map
30
+ //# sourceMappingURL=hexclave-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hexclave-provider.d.ts","names":[],"sources":["../../src/providers/hexclave-provider.tsx"],"mappings":";;;;;;iBASS,0BAAA,CAAA;EACP,QAAA;EACA,GAAA;EACA,IAAA;EACA;AAAA;EAEA,IAAA,GAAO,KAAA,CAAM,cAAA,QAAsB,mBAAA;;AARwB;;;;;EAe3D,oBAAA,GAAuB,MAAA;EACvB,QAAA,EAAU,KAAA,CAAM,SAAA;EAEhB,GAAA,EAAK,cAAA;AAAA,IACN,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,cAeK,cAAA,SAAc,0BAAA;AAAA,cAIP,gBAAA,SAAgB,0BAAA;;cAEhB,aAAA,SAAa,0BAAA"}
@@ -3,12 +3,12 @@ const require_chunk = require('../chunk-BE-pF4vm.js');
3
3
  let react = require("react");
4
4
  react = require_chunk.__toESM(react);
5
5
  let react_jsx_runtime = require("react/jsx-runtime");
6
- let __stack_provider_client_js = require("./stack-provider-client.js");
6
+ let __hexclave_provider_client_js = require("./hexclave-provider-client.js");
7
7
  let __translation_provider_js = require("./translation-provider.js");
8
8
 
9
- //#region src/providers/stack-provider.tsx
9
+ //#region src/providers/hexclave-provider.tsx
10
10
  function TanStackStartStackProvider({ children, app, lang, translationOverrides }) {
11
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__stack_provider_client_js.StackProviderClient, {
11
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__hexclave_provider_client_js.HexclaveProviderClient, {
12
12
  app,
13
13
  serialized: false,
14
14
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__translation_provider_js.TranslationProvider, {
@@ -30,4 +30,4 @@ const StackProvider = ActiveProvider;
30
30
  exports.HexclaveProvider = HexclaveProvider;
31
31
  exports.StackProvider = StackProvider;
32
32
  exports.default = ActiveProvider;
33
- //# sourceMappingURL=stack-provider.js.map
33
+ //# sourceMappingURL=hexclave-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hexclave-provider.js","names":["HexclaveProviderClient","TranslationProvider","Suspense"],"sources":["../../src/providers/hexclave-provider.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 React, { Suspense } from 'react';\nimport { StackAdminApp, StackClientApp, StackServerApp, hexclaveAppInternalsSymbol } from '../lib/hexclave-app';\nimport { HexclaveProviderClient } from './hexclave-provider-client';\nimport { TranslationProvider } from './translation-provider';\n\nfunction TanStackStartStackProvider({\n children,\n app,\n lang,\n translationOverrides,\n}: {\n lang?: React.ComponentProps<typeof TranslationProvider>['lang'],\n /**\n * A mapping of English translations to translated equivalents.\n *\n * These will take priority over the translations from the language specified in the `lang` property. Note that the\n * keys are case-sensitive.\n */\n translationOverrides?: Record<string, string>,\n children: React.ReactNode,\n // list all three types of apps even though server and admin are subclasses of client so it's clear that you can pass any\n app: StackClientApp<true>,\n}) {\n return (\n <HexclaveProviderClient app={app} serialized={false}>\n <TranslationProvider lang={lang} translationOverrides={translationOverrides}>\n <Suspense fallback={null}>\n {children}\n </Suspense>\n </TranslationProvider>\n </HexclaveProviderClient>\n );\n}\n\n// Pick the platform-appropriate provider implementation. Only the active branch's\n// line is preserved by the platform-stripping script when generating per-platform SDKs.\n// The /* ... */ block hides the inactive branches from the template's TypeScript compiler.\nconst ActiveProvider = TanStackStartStackProvider;\n\n// Named exports live outside the platform conditional so the @deprecated JSDoc can\n// use a /** ... */ block without colliding with the outer comment terminator.\nexport const HexclaveProvider = ActiveProvider;\n/** @deprecated Use `HexclaveProvider` from the `@hexclave/*` package instead — same symbol, new brand name. See https://docs.hexclave.com/migration. */\nexport const StackProvider = ActiveProvider;\nexport default ActiveProvider;\n"],"mappings":";;;;;;;;;AASA,SAAS,2BAA2B,EAClC,UACA,KACA,MACA,wBAaC;AACD,QACE,2CAACA;EAA4B;EAAK,YAAY;YAC5C,2CAACC;GAA0B;GAA4B;aACrD,2CAACC;IAAS,UAAU;IACjB;KACQ;IACS;GACC;;AAO7B,MAAM,iBAAiB;AAIvB,MAAa,mBAAmB;;AAEhC,MAAa,gBAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"theme-provider.js","names":["color","DEFAULT_THEME","BrowserScript","globalCSS","TooltipProvider"],"sources":["../../src/providers/theme-provider.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY, INSTEAD EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { deindent } from \"@hexclave/shared/dist/utils/strings\";\nimport { TooltipProvider } from \"@hexclave/ui\";\nimport Color from \"color\";\nimport React from \"react\";\nimport { globalCSS } from \"../generated/global-css\";\nimport { BrowserScript } from \"../utils/browser-script\";\nimport { DEFAULT_THEME } from \"../utils/constants\";\n\ntype Colors = {\n background: string,\n foreground: string,\n card: string,\n cardForeground: string,\n popover: string,\n popoverForeground: string,\n primary: string,\n primaryForeground: string,\n secondary: string,\n secondaryForeground: string,\n muted: string,\n mutedForeground: string,\n accent: string,\n accentForeground: string,\n destructive: string,\n destructiveForeground: string,\n border: string,\n input: string,\n ring: string,\n}\n\nexport type Theme = {\n light: Colors,\n dark: Colors,\n radius: string,\n};\n\ntype ThemeConfig = {\n light?: Partial<Colors>,\n dark?: Partial<Colors>,\n} & Partial<Omit<Theme, 'light' | 'dark'>>;\n\nfunction convertColorToCSSVars(obj: Record<string, string>) {\n return Object.fromEntries(Object.entries(obj).map(([key, value]) => {\n const color = Color(value).hsl().array();\n return [\n // Convert camelCase key to dash-case\n key.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`),\n // Convert color to CSS HSL string\n `${color[0]} ${color[1]}% ${color[2]}%`\n ];\n }));\n}\n\nfunction convertColorsToCSS(theme: Theme) {\n const { dark, light, ...rest } = theme;\n const colors = {\n light: { ...convertColorToCSSVars(light), ...rest },\n dark: convertColorToCSSVars(dark),\n };\n\n function colorsToCSSVars(colors: Record<string, string>) {\n return Object.entries(colors).map((params) => {\n return `--${params[0]}: ${params[1]};\\n`;\n }).join('');\n }\n\n return deindent`\n .stack-scope {\n ${colorsToCSSVars(colors.light)}\n }\n html:has(head > [data-stack-theme=\"dark\"]) .stack-scope { \n ${colorsToCSSVars(colors.dark)}\n }\n `;\n}\n\n\nexport function HexclaveTheme({\n theme,\n children,\n nonce,\n} : {\n theme?: ThemeConfig,\n children?: React.ReactNode,\n nonce?: string,\n}) {\n const themeValue: Theme = {\n ...DEFAULT_THEME,\n ...theme,\n dark: { ...DEFAULT_THEME.dark, ...theme?.dark },\n light: { ...DEFAULT_THEME.light, ...theme?.light },\n };\n\n return (\n <>\n <BrowserScript nonce={nonce} />\n <style\n suppressHydrationWarning // we need this since the nonce can differ between client and server\n nonce={nonce}\n dangerouslySetInnerHTML={{\n __html: globalCSS + \"\\n\" + convertColorsToCSS(themeValue),\n }}\n />\n <TooltipProvider>\n {children}\n </TooltipProvider>\n </>\n );\n}\n\n/**\n * @deprecated Use `HexclaveTheme` from the `@hexclave/*` package instead — same symbol, new brand name. See https://docs.hexclave.com/migration.\n */\nexport const StackTheme = HexclaveTheme;\n"],"mappings":";;;;;;;;;;;;;;;;AAgDA,SAAS,sBAAsB,KAA6B;AAC1D,QAAO,OAAO,YAAY,OAAO,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW;EAClE,MAAMA,6BAAc,MAAM,CAAC,KAAK,CAAC,OAAO;AACxC,SAAO,CAEL,IAAI,QAAQ,WAAU,MAAK,IAAI,EAAE,aAAa,GAAG,EAEjD,GAAGA,QAAM,GAAG,GAAGA,QAAM,GAAG,IAAIA,QAAM,GAAG,GACtC;GACD,CAAC;;AAGL,SAAS,mBAAmB,OAAc;CACxC,MAAM,EAAE,MAAM,OAAO,GAAG,SAAS;CACjC,MAAM,SAAS;EACb,OAAO;GAAE,GAAG,sBAAsB,MAAM;GAAE,GAAG;GAAM;EACnD,MAAM,sBAAsB,KAAK;EAClC;CAED,SAAS,gBAAgB,QAAgC;AACvD,SAAO,OAAO,QAAQ,OAAO,CAAC,KAAK,WAAW;AAC5C,UAAO,KAAK,OAAO,GAAG,IAAI,OAAO,GAAG;IACpC,CAAC,KAAK,GAAG;;AAGb,QAAO,4CAAQ;;QAET,gBAAgB,OAAO,MAAM,CAAC;;;QAG9B,gBAAgB,OAAO,KAAK,CAAC;;;;AAMrC,SAAgB,cAAc,EAC5B,OACA,UACA,SAKC;CACD,MAAM,aAAoB;EACxB,GAAGC;EACH,GAAG;EACH,MAAM;GAAE,GAAGA,oCAAc;GAAM,GAAG,OAAO;GAAM;EAC/C,OAAO;GAAE,GAAGA,oCAAc;GAAO,GAAG,OAAO;GAAO;EACnD;AAED,QACE;EACE,2CAACC,4CAAqB,QAAS;EAC/B,2CAAC;GACC;GACO;GACP,yBAAyB,EACvB,QAAQC,uCAAY,OAAO,mBAAmB,WAAW,EAC1D;IACD;EACF,2CAACC,gCACE,WACe;KACjB;;;;;AAOP,MAAa,aAAa"}
1
+ {"version":3,"file":"theme-provider.js","names":["color","DEFAULT_THEME","BrowserScript","globalCSS","TooltipProvider"],"sources":["../../src/providers/theme-provider.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 { deindent } from \"@hexclave/shared/dist/utils/strings\";\nimport { TooltipProvider } from \"@hexclave/ui\";\nimport Color from \"color\";\nimport React from \"react\";\nimport { globalCSS } from \"../generated/global-css\";\nimport { BrowserScript } from \"../utils/browser-script\";\nimport { DEFAULT_THEME } from \"../utils/constants\";\n\ntype Colors = {\n background: string,\n foreground: string,\n card: string,\n cardForeground: string,\n popover: string,\n popoverForeground: string,\n primary: string,\n primaryForeground: string,\n secondary: string,\n secondaryForeground: string,\n muted: string,\n mutedForeground: string,\n accent: string,\n accentForeground: string,\n destructive: string,\n destructiveForeground: string,\n border: string,\n input: string,\n ring: string,\n}\n\nexport type Theme = {\n light: Colors,\n dark: Colors,\n radius: string,\n};\n\ntype ThemeConfig = {\n light?: Partial<Colors>,\n dark?: Partial<Colors>,\n} & Partial<Omit<Theme, 'light' | 'dark'>>;\n\nfunction convertColorToCSSVars(obj: Record<string, string>) {\n return Object.fromEntries(Object.entries(obj).map(([key, value]) => {\n const color = Color(value).hsl().array();\n return [\n // Convert camelCase key to dash-case\n key.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`),\n // Convert color to CSS HSL string\n `${color[0]} ${color[1]}% ${color[2]}%`\n ];\n }));\n}\n\nfunction convertColorsToCSS(theme: Theme) {\n const { dark, light, ...rest } = theme;\n const colors = {\n light: { ...convertColorToCSSVars(light), ...rest },\n dark: convertColorToCSSVars(dark),\n };\n\n function colorsToCSSVars(colors: Record<string, string>) {\n return Object.entries(colors).map((params) => {\n return `--${params[0]}: ${params[1]};\\n`;\n }).join('');\n }\n\n return deindent`\n .stack-scope {\n ${colorsToCSSVars(colors.light)}\n }\n html:has(head > [data-stack-theme=\"dark\"]) .stack-scope { \n ${colorsToCSSVars(colors.dark)}\n }\n `;\n}\n\n\nexport function HexclaveTheme({\n theme,\n children,\n nonce,\n} : {\n theme?: ThemeConfig,\n children?: React.ReactNode,\n nonce?: string,\n}) {\n const themeValue: Theme = {\n ...DEFAULT_THEME,\n ...theme,\n dark: { ...DEFAULT_THEME.dark, ...theme?.dark },\n light: { ...DEFAULT_THEME.light, ...theme?.light },\n };\n\n return (\n <>\n <BrowserScript nonce={nonce} />\n <style\n suppressHydrationWarning // we need this since the nonce can differ between client and server\n nonce={nonce}\n dangerouslySetInnerHTML={{\n __html: globalCSS + \"\\n\" + convertColorsToCSS(themeValue),\n }}\n />\n <TooltipProvider>\n {children}\n </TooltipProvider>\n </>\n );\n}\n\n/**\n * @deprecated Use `HexclaveTheme` from the `@hexclave/*` package instead — same symbol, new brand name. See https://docs.hexclave.com/migration.\n */\nexport const StackTheme = HexclaveTheme;\n"],"mappings":";;;;;;;;;;;;;;;;AAgDA,SAAS,sBAAsB,KAA6B;AAC1D,QAAO,OAAO,YAAY,OAAO,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW;EAClE,MAAMA,6BAAc,MAAM,CAAC,KAAK,CAAC,OAAO;AACxC,SAAO,CAEL,IAAI,QAAQ,WAAU,MAAK,IAAI,EAAE,aAAa,GAAG,EAEjD,GAAGA,QAAM,GAAG,GAAGA,QAAM,GAAG,IAAIA,QAAM,GAAG,GACtC;GACD,CAAC;;AAGL,SAAS,mBAAmB,OAAc;CACxC,MAAM,EAAE,MAAM,OAAO,GAAG,SAAS;CACjC,MAAM,SAAS;EACb,OAAO;GAAE,GAAG,sBAAsB,MAAM;GAAE,GAAG;GAAM;EACnD,MAAM,sBAAsB,KAAK;EAClC;CAED,SAAS,gBAAgB,QAAgC;AACvD,SAAO,OAAO,QAAQ,OAAO,CAAC,KAAK,WAAW;AAC5C,UAAO,KAAK,OAAO,GAAG,IAAI,OAAO,GAAG;IACpC,CAAC,KAAK,GAAG;;AAGb,QAAO,4CAAQ;;QAET,gBAAgB,OAAO,MAAM,CAAC;;;QAG9B,gBAAgB,OAAO,KAAK,CAAC;;;;AAMrC,SAAgB,cAAc,EAC5B,OACA,UACA,SAKC;CACD,MAAM,aAAoB;EACxB,GAAGC;EACH,GAAG;EACH,MAAM;GAAE,GAAGA,oCAAc;GAAM,GAAG,OAAO;GAAM;EAC/C,OAAO;GAAE,GAAGA,oCAAc;GAAO,GAAG,OAAO;GAAO;EACnD;AAED,QACE;EACE,2CAACC,4CAAqB,QAAS;EAC/B,2CAAC;GACC;GACO;GACP,yBAAyB,EACvB,QAAQC,uCAAY,OAAO,mBAAmB,WAAW,EAC1D;IACD;EACF,2CAACC,gCACE,WACe;KACjB;;;;;AAOP,MAAa,aAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"translation-provider-client.js","names":["React"],"sources":["../../src/providers/translation-provider-client.tsx"],"sourcesContent":["\"use client\";\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY, INSTEAD EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport React from \"react\";\nimport { createGlobal } from \"@hexclave/shared/dist/utils/globals\";\n\ntype TranslationContextValue = {\n quetzalKeys: Map<string, string>,\n quetzalLocale: Map<string, string>,\n};\n\nexport const TranslationContext = createGlobal<React.Context<TranslationContextValue | null>>(\n \"TranslationContext\",\n () => React.createContext<TranslationContextValue | null>(null),\n);\nTranslationContext.displayName ??= \"TranslationContext\";\n\nexport function TranslationProviderClient(props: {\n children: React.ReactNode,\n quetzalKeys: Map<string, string>,\n quetzalLocale: Map<string, string>,\n}) {\n return (\n <TranslationContext.Provider value={{\n quetzalKeys: props.quetzalKeys,\n quetzalLocale: props.quetzalLocale,\n }}>\n {props.children}\n </TranslationContext.Provider>\n );\n}\n"],"mappings":";;;;;;;;;;AAeA,MAAa,2EACX,4BACMA,cAAM,cAA8C,KAAK,CAChE;AACD,mBAAmB,gBAAgB;AAEnC,SAAgB,0BAA0B,OAIvC;AACD,QACE,2CAAC,mBAAmB;EAAS,OAAO;GAClC,aAAa,MAAM;GACnB,eAAe,MAAM;GACtB;YACE,MAAM;GACqB"}
1
+ {"version":3,"file":"translation-provider-client.js","names":["React"],"sources":["../../src/providers/translation-provider-client.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 React from \"react\";\nimport { createGlobal } from \"@hexclave/shared/dist/utils/globals\";\n\ntype TranslationContextValue = {\n quetzalKeys: Map<string, string>,\n quetzalLocale: Map<string, string>,\n};\n\nexport const TranslationContext = createGlobal<React.Context<TranslationContextValue | null>>(\n \"TranslationContext\",\n () => React.createContext<TranslationContextValue | null>(null),\n);\nTranslationContext.displayName ??= \"TranslationContext\";\n\nexport function TranslationProviderClient(props: {\n children: React.ReactNode,\n quetzalKeys: Map<string, string>,\n quetzalLocale: Map<string, string>,\n}) {\n return (\n <TranslationContext.Provider value={{\n quetzalKeys: props.quetzalKeys,\n quetzalLocale: props.quetzalLocale,\n }}>\n {props.children}\n </TranslationContext.Provider>\n );\n}\n"],"mappings":";;;;;;;;;;AAeA,MAAa,2EACX,4BACMA,cAAM,cAA8C,KAAK,CAChE;AACD,mBAAmB,gBAAgB;AAEnC,SAAgB,0BAA0B,OAIvC;AACD,QACE,2CAAC,mBAAmB;EAAS,OAAO;GAClC,aAAa,MAAM;GACnB,eAAe,MAAM;GACtB;YACE,MAAM;GACqB"}
@@ -1 +1 @@
1
- {"version":3,"file":"translation-provider.js","names":["quetzalLocales","quetzalKeys","TranslationProviderClient"],"sources":["../../src/providers/translation-provider.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY, INSTEAD EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { throwErr } from \"@hexclave/shared/dist/utils/errors\";\nimport { quetzalKeys, quetzalLocales } from \"../generated/quetzal-translations\";\nimport { TranslationProviderClient } from \"./translation-provider-client\";\n\nexport function TranslationProvider({ lang, translationOverrides, children }: {\n lang: Parameters<typeof quetzalLocales.get>[0] | undefined,\n translationOverrides?: Record<string, string>,\n children: React.ReactNode,\n}) {\n const locale = quetzalLocales.get(lang ?? (undefined as never));\n\n const localeWithOverrides = new Map<string, string>(locale);\n for (const [orig, override] of Object.entries(translationOverrides ?? {})) {\n const key = quetzalKeys.get(orig as never) ?? throwErr(new Error(`Invalid translation override: Original key ${JSON.stringify(orig)} not found. Make sure you are passing the correct values into the translationOverrides property of the component.`));\n localeWithOverrides.set(key, override);\n }\n\n return <TranslationProviderClient quetzalKeys={quetzalKeys} quetzalLocale={localeWithOverrides}>\n {children}\n </TranslationProviderClient>;\n}\n"],"mappings":";;;;;;;;AAQA,SAAgB,oBAAoB,EAAE,MAAM,sBAAsB,YAI/D;CACD,MAAM,SAASA,oDAAe,IAAI,QAAS,OAAoB;CAE/D,MAAM,sBAAsB,IAAI,IAAoB,OAAO;AAC3D,MAAK,MAAM,CAAC,MAAM,aAAa,OAAO,QAAQ,wBAAwB,EAAE,CAAC,EAAE;EACzE,MAAM,MAAMC,iDAAY,IAAI,KAAc,qEAAa,IAAI,MAAM,8CAA8C,KAAK,UAAU,KAAK,CAAC,mHAAmH,CAAC;AACxP,sBAAoB,IAAI,KAAK,SAAS;;AAGxC,QAAO,2CAACC;EAA0B,aAAaD;EAAa,eAAe;EACxE;GACyB"}
1
+ {"version":3,"file":"translation-provider.js","names":["quetzalLocales","quetzalKeys","TranslationProviderClient"],"sources":["../../src/providers/translation-provider.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 { throwErr } from \"@hexclave/shared/dist/utils/errors\";\nimport { quetzalKeys, quetzalLocales } from \"../generated/quetzal-translations\";\nimport { TranslationProviderClient } from \"./translation-provider-client\";\n\nexport function TranslationProvider({ lang, translationOverrides, children }: {\n lang: Parameters<typeof quetzalLocales.get>[0] | undefined,\n translationOverrides?: Record<string, string>,\n children: React.ReactNode,\n}) {\n const locale = quetzalLocales.get(lang ?? (undefined as never));\n\n const localeWithOverrides = new Map<string, string>(locale);\n for (const [orig, override] of Object.entries(translationOverrides ?? {})) {\n const key = quetzalKeys.get(orig as never) ?? throwErr(new Error(`Invalid translation override: Original key ${JSON.stringify(orig)} not found. Make sure you are passing the correct values into the translationOverrides property of the component.`));\n localeWithOverrides.set(key, override);\n }\n\n return <TranslationProviderClient quetzalKeys={quetzalKeys} quetzalLocale={localeWithOverrides}>\n {children}\n </TranslationProviderClient>;\n}\n"],"mappings":";;;;;;;;AAQA,SAAgB,oBAAoB,EAAE,MAAM,sBAAsB,YAI/D;CACD,MAAM,SAASA,oDAAe,IAAI,QAAS,OAAoB;CAE/D,MAAM,sBAAsB,IAAI,IAAoB,OAAO;AAC3D,MAAK,MAAM,CAAC,MAAM,aAAa,OAAO,QAAQ,wBAAwB,EAAE,CAAC,EAAE;EACzE,MAAM,MAAMC,iDAAY,IAAI,KAAc,qEAAa,IAAI,MAAM,8CAA8C,KAAK,UAAU,KAAK,CAAC,mHAAmH,CAAC;AACxP,sBAAoB,IAAI,KAAK,SAAS;;AAGxC,QAAO,2CAACC;EAA0B,aAAaD;EAAa,eAAe;EACxE;GACyB"}
@@ -1 +1 @@
1
- {"version":3,"file":"tanstack-start-server-context.default.js","names":[],"sources":["../src/tanstack-start-server-context.default.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY, INSTEAD EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nexport const getCookie = undefined;\nexport const getCookies = undefined;\nexport const setCookie = undefined;\nexport const deleteCookie = undefined;\nexport const getRequestHeader = undefined;\n"],"mappings":";;;AAIA,MAAa,YAAY;AACzB,MAAa,aAAa;AAC1B,MAAa,YAAY;AACzB,MAAa,eAAe;AAC5B,MAAa,mBAAmB"}
1
+ {"version":3,"file":"tanstack-start-server-context.default.js","names":[],"sources":["../src/tanstack-start-server-context.default.ts"],"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//===========================================\nexport const getCookie = undefined;\nexport const getCookies = undefined;\nexport const setCookie = undefined;\nexport const deleteCookie = undefined;\nexport const getRequestHeader = undefined;\n"],"mappings":";;;AAIA,MAAa,YAAY;AACzB,MAAa,aAAa;AAC1B,MAAa,YAAY;AACzB,MAAa,eAAe;AAC5B,MAAa,mBAAmB"}
@@ -1 +1 @@
1
- {"version":3,"file":"browser-script.js","names":["SsrScript"],"sources":["../../src/utils/browser-script.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY, INSTEAD EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n// Note that this script can not import anything from outside as it will be converted to a string and executed in the browser.\n\nimport { SsrScript } from \"../components/elements/ssr-layout-effect\";\n\nconst script = () => {\n const attributes = ['data-joy-color-scheme', 'data-mui-color-scheme', 'data-theme', 'data-color-scheme', 'class'];\n\n const getColorMode = (value: string) => {\n if (value.includes('dark')) {\n return 'dark';\n }\n if (value.includes('light')) {\n return 'light';\n }\n return null;\n };\n\n const setTheme = (mode: 'dark' | 'light') => {\n let el = document.getElementById(`--stack-theme-mode`);\n if (!el) {\n el = document.createElement(\"style\");\n el.id = `--stack-theme-mode`;\n el.innerHTML = `/* This tag is used by Hexclave to set the theme in the browser without causing a hydration error (since React ignores additional tags in the <head>). We later use the \\`html:has(head > [data-stack-theme=XYZ])\\` selector to apply styles based on the theme. */`;\n document.head.appendChild(el);\n }\n el.setAttribute(\"data-stack-theme\", mode);\n };\n\n const colorToRGB = (color: string): [number, number, number] | null => {\n // Create a temporary element to use for color conversion\n const temp = document.createElement('div');\n temp.style.color = color;\n document.body.appendChild(temp);\n\n // Get the computed style\n const computedColor = getComputedStyle(temp).color;\n document.body.removeChild(temp);\n\n // Parse the RGB values\n const match = computedColor.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/);\n if (match) {\n return [parseInt(match[1]), parseInt(match[2]), parseInt(match[3])];\n }\n\n return null;\n };\n\n const rgbToLuma = (rgb: [number, number, number]) => {\n return (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n };\n\n const copyFromColorScheme = () => {\n const colorScheme = getComputedStyle(document.documentElement).getPropertyValue('color-scheme');\n\n if (colorScheme) {\n const mode = getColorMode(colorScheme);\n if (mode) {\n setTheme(mode);\n return true;\n }\n }\n return false;\n };\n\n const copyFromVariables = () => {\n let backgroundColor = getComputedStyle(document.documentElement).getPropertyValue('--background');\n if (backgroundColor) {\n // shadcn by default uses the hsl values with the format \"123 45% 6.5%\"\n if (/^\\d+\\s\\d+%\\s\\d+(\\.\\d+)?%$/.test(backgroundColor)) {\n backgroundColor = `hsl(${backgroundColor})`;\n }\n\n // convert backgroundColor to luma and check if it's dark\n const rgb = colorToRGB(backgroundColor);\n if (rgb) {\n const luma = rgbToLuma(rgb);\n if (luma < 128) {\n setTheme('dark');\n } else {\n setTheme('light');\n }\n return true;\n }\n }\n return false;\n };\n\n const copyFromAttributes = () => {\n for (const attributeName of attributes) {\n const colorTheme = document.documentElement.getAttribute(attributeName);\n if (colorTheme) {\n const mode = getColorMode(colorTheme);\n if (mode) {\n setTheme(mode);\n return true;\n }\n }\n }\n return false;\n };\n\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (copyFromColorScheme()) {\n return;\n }\n if (mutation.attributeName && attributes.includes(mutation.attributeName) && copyFromAttributes()) {\n return;\n }\n if (copyFromVariables()) {\n return;\n }\n });\n });\n\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: attributes,\n });\n\n // Initial check on page load\n if (!copyFromColorScheme()) {\n if (!copyFromAttributes()) {\n copyFromVariables();\n }\n }\n};\n\nexport function BrowserScript(props : { nonce?: string }) {\n return <SsrScript nonce={props.nonce} script={`(${script.toString()})()`}/>;\n}\n"],"mappings":";;;;;;AAQA,MAAM,eAAe;CACnB,MAAM,aAAa;EAAC;EAAyB;EAAyB;EAAc;EAAqB;EAAQ;CAEjH,MAAM,gBAAgB,UAAkB;AACtC,MAAI,MAAM,SAAS,OAAO,CACxB,QAAO;AAET,MAAI,MAAM,SAAS,QAAQ,CACzB,QAAO;AAET,SAAO;;CAGT,MAAM,YAAY,SAA2B;EAC3C,IAAI,KAAK,SAAS,eAAe,qBAAqB;AACtD,MAAI,CAAC,IAAI;AACP,QAAK,SAAS,cAAc,QAAQ;AACpC,MAAG,KAAK;AACR,MAAG,YAAY;AACf,YAAS,KAAK,YAAY,GAAG;;AAE/B,KAAG,aAAa,oBAAoB,KAAK;;CAG3C,MAAM,cAAc,UAAmD;EAErE,MAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,OAAK,MAAM,QAAQ;AACnB,WAAS,KAAK,YAAY,KAAK;EAG/B,MAAM,gBAAgB,iBAAiB,KAAK,CAAC;AAC7C,WAAS,KAAK,YAAY,KAAK;EAG/B,MAAM,QAAQ,cAAc,MAAM,mCAAmC;AACrE,MAAI,MACF,QAAO;GAAC,SAAS,MAAM,GAAG;GAAE,SAAS,MAAM,GAAG;GAAE,SAAS,MAAM,GAAG;GAAC;AAGrE,SAAO;;CAGT,MAAM,aAAa,QAAkC;AACnD,UAAQ,IAAI,KAAK,MAAM,IAAI,KAAK,MAAM,IAAI,KAAK,OAAO;;CAGxD,MAAM,4BAA4B;EAChC,MAAM,cAAc,iBAAiB,SAAS,gBAAgB,CAAC,iBAAiB,eAAe;AAE/F,MAAI,aAAa;GACf,MAAM,OAAO,aAAa,YAAY;AACtC,OAAI,MAAM;AACR,aAAS,KAAK;AACd,WAAO;;;AAGX,SAAO;;CAGT,MAAM,0BAA0B;EAC9B,IAAI,kBAAkB,iBAAiB,SAAS,gBAAgB,CAAC,iBAAiB,eAAe;AACjG,MAAI,iBAAiB;AAEnB,OAAI,4BAA4B,KAAK,gBAAgB,CACnD,mBAAkB,OAAO,gBAAgB;GAI3C,MAAM,MAAM,WAAW,gBAAgB;AACvC,OAAI,KAAK;AAEP,QADa,UAAU,IAAI,GAChB,IACT,UAAS,OAAO;QAEhB,UAAS,QAAQ;AAEnB,WAAO;;;AAGX,SAAO;;CAGT,MAAM,2BAA2B;AAC/B,OAAK,MAAM,iBAAiB,YAAY;GACtC,MAAM,aAAa,SAAS,gBAAgB,aAAa,cAAc;AACvE,OAAI,YAAY;IACd,MAAM,OAAO,aAAa,WAAW;AACrC,QAAI,MAAM;AACR,cAAS,KAAK;AACd,YAAO;;;;AAIb,SAAO;;AAiBT,CAdiB,IAAI,kBAAkB,cAAc;AACnD,YAAU,SAAS,aAAa;AAC9B,OAAI,qBAAqB,CACvB;AAEF,OAAI,SAAS,iBAAiB,WAAW,SAAS,SAAS,cAAc,IAAI,oBAAoB,CAC/F;AAEF,OAAI,mBAAmB,CACrB;IAEF;GACF,CAEO,QAAQ,SAAS,iBAAiB;EACzC,YAAY;EACZ,iBAAiB;EAClB,CAAC;AAGF,KAAI,CAAC,qBAAqB,EACxB;MAAI,CAAC,oBAAoB,CACvB,oBAAmB;;;AAKzB,SAAgB,cAAc,OAA4B;AACxD,QAAO,2CAACA;EAAU,OAAO,MAAM;EAAO,QAAQ,IAAI,OAAO,UAAU,CAAC;GAAO"}
1
+ {"version":3,"file":"browser-script.js","names":["SsrScript"],"sources":["../../src/utils/browser-script.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//===========================================\n// Note that this script can not import anything from outside as it will be converted to a string and executed in the browser.\n\nimport { SsrScript } from \"../components/elements/ssr-layout-effect\";\n\nconst script = () => {\n const attributes = ['data-joy-color-scheme', 'data-mui-color-scheme', 'data-theme', 'data-color-scheme', 'class'];\n\n const getColorMode = (value: string) => {\n if (value.includes('dark')) {\n return 'dark';\n }\n if (value.includes('light')) {\n return 'light';\n }\n return null;\n };\n\n const setTheme = (mode: 'dark' | 'light') => {\n let el = document.getElementById(`--stack-theme-mode`);\n if (!el) {\n el = document.createElement(\"style\");\n el.id = `--stack-theme-mode`;\n el.innerHTML = `/* This tag is used by Hexclave to set the theme in the browser without causing a hydration error (since React ignores additional tags in the <head>). We later use the \\`html:has(head > [data-stack-theme=XYZ])\\` selector to apply styles based on the theme. */`;\n document.head.appendChild(el);\n }\n el.setAttribute(\"data-stack-theme\", mode);\n };\n\n const colorToRGB = (color: string): [number, number, number] | null => {\n // Create a temporary element to use for color conversion\n const temp = document.createElement('div');\n temp.style.color = color;\n document.body.appendChild(temp);\n\n // Get the computed style\n const computedColor = getComputedStyle(temp).color;\n document.body.removeChild(temp);\n\n // Parse the RGB values\n const match = computedColor.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/);\n if (match) {\n return [parseInt(match[1]), parseInt(match[2]), parseInt(match[3])];\n }\n\n return null;\n };\n\n const rgbToLuma = (rgb: [number, number, number]) => {\n return (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n };\n\n const copyFromColorScheme = () => {\n const colorScheme = getComputedStyle(document.documentElement).getPropertyValue('color-scheme');\n\n if (colorScheme) {\n const mode = getColorMode(colorScheme);\n if (mode) {\n setTheme(mode);\n return true;\n }\n }\n return false;\n };\n\n const copyFromVariables = () => {\n let backgroundColor = getComputedStyle(document.documentElement).getPropertyValue('--background');\n if (backgroundColor) {\n // shadcn by default uses the hsl values with the format \"123 45% 6.5%\"\n if (/^\\d+\\s\\d+%\\s\\d+(\\.\\d+)?%$/.test(backgroundColor)) {\n backgroundColor = `hsl(${backgroundColor})`;\n }\n\n // convert backgroundColor to luma and check if it's dark\n const rgb = colorToRGB(backgroundColor);\n if (rgb) {\n const luma = rgbToLuma(rgb);\n if (luma < 128) {\n setTheme('dark');\n } else {\n setTheme('light');\n }\n return true;\n }\n }\n return false;\n };\n\n const copyFromAttributes = () => {\n for (const attributeName of attributes) {\n const colorTheme = document.documentElement.getAttribute(attributeName);\n if (colorTheme) {\n const mode = getColorMode(colorTheme);\n if (mode) {\n setTheme(mode);\n return true;\n }\n }\n }\n return false;\n };\n\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (copyFromColorScheme()) {\n return;\n }\n if (mutation.attributeName && attributes.includes(mutation.attributeName) && copyFromAttributes()) {\n return;\n }\n if (copyFromVariables()) {\n return;\n }\n });\n });\n\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: attributes,\n });\n\n // Initial check on page load\n if (!copyFromColorScheme()) {\n if (!copyFromAttributes()) {\n copyFromVariables();\n }\n }\n};\n\nexport function BrowserScript(props : { nonce?: string }) {\n return <SsrScript nonce={props.nonce} script={`(${script.toString()})()`}/>;\n}\n"],"mappings":";;;;;;AAQA,MAAM,eAAe;CACnB,MAAM,aAAa;EAAC;EAAyB;EAAyB;EAAc;EAAqB;EAAQ;CAEjH,MAAM,gBAAgB,UAAkB;AACtC,MAAI,MAAM,SAAS,OAAO,CACxB,QAAO;AAET,MAAI,MAAM,SAAS,QAAQ,CACzB,QAAO;AAET,SAAO;;CAGT,MAAM,YAAY,SAA2B;EAC3C,IAAI,KAAK,SAAS,eAAe,qBAAqB;AACtD,MAAI,CAAC,IAAI;AACP,QAAK,SAAS,cAAc,QAAQ;AACpC,MAAG,KAAK;AACR,MAAG,YAAY;AACf,YAAS,KAAK,YAAY,GAAG;;AAE/B,KAAG,aAAa,oBAAoB,KAAK;;CAG3C,MAAM,cAAc,UAAmD;EAErE,MAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,OAAK,MAAM,QAAQ;AACnB,WAAS,KAAK,YAAY,KAAK;EAG/B,MAAM,gBAAgB,iBAAiB,KAAK,CAAC;AAC7C,WAAS,KAAK,YAAY,KAAK;EAG/B,MAAM,QAAQ,cAAc,MAAM,mCAAmC;AACrE,MAAI,MACF,QAAO;GAAC,SAAS,MAAM,GAAG;GAAE,SAAS,MAAM,GAAG;GAAE,SAAS,MAAM,GAAG;GAAC;AAGrE,SAAO;;CAGT,MAAM,aAAa,QAAkC;AACnD,UAAQ,IAAI,KAAK,MAAM,IAAI,KAAK,MAAM,IAAI,KAAK,OAAO;;CAGxD,MAAM,4BAA4B;EAChC,MAAM,cAAc,iBAAiB,SAAS,gBAAgB,CAAC,iBAAiB,eAAe;AAE/F,MAAI,aAAa;GACf,MAAM,OAAO,aAAa,YAAY;AACtC,OAAI,MAAM;AACR,aAAS,KAAK;AACd,WAAO;;;AAGX,SAAO;;CAGT,MAAM,0BAA0B;EAC9B,IAAI,kBAAkB,iBAAiB,SAAS,gBAAgB,CAAC,iBAAiB,eAAe;AACjG,MAAI,iBAAiB;AAEnB,OAAI,4BAA4B,KAAK,gBAAgB,CACnD,mBAAkB,OAAO,gBAAgB;GAI3C,MAAM,MAAM,WAAW,gBAAgB;AACvC,OAAI,KAAK;AAEP,QADa,UAAU,IAAI,GAChB,IACT,UAAS,OAAO;QAEhB,UAAS,QAAQ;AAEnB,WAAO;;;AAGX,SAAO;;CAGT,MAAM,2BAA2B;AAC/B,OAAK,MAAM,iBAAiB,YAAY;GACtC,MAAM,aAAa,SAAS,gBAAgB,aAAa,cAAc;AACvE,OAAI,YAAY;IACd,MAAM,OAAO,aAAa,WAAW;AACrC,QAAI,MAAM;AACR,cAAS,KAAK;AACd,YAAO;;;;AAIb,SAAO;;AAiBT,CAdiB,IAAI,kBAAkB,cAAc;AACnD,YAAU,SAAS,aAAa;AAC9B,OAAI,qBAAqB,CACvB;AAEF,OAAI,SAAS,iBAAiB,WAAW,SAAS,SAAS,cAAc,IAAI,oBAAoB,CAC/F;AAEF,OAAI,mBAAmB,CACrB;IAEF;GACF,CAEO,QAAQ,SAAS,iBAAiB;EACzC,YAAY;EACZ,iBAAiB;EAClB,CAAC;AAGF,KAAI,CAAC,qBAAqB,EACxB;MAAI,CAAC,oBAAoB,CACvB,oBAAmB;;;AAKzB,SAAgB,cAAc,OAA4B;AACxD,QAAO,2CAACA;EAAU,OAAO,MAAM;EAAO,QAAQ,IAAI,OAAO,UAAU,CAAC;GAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":[],"sources":["../../src/utils/constants.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY, INSTEAD EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nexport const FONT_SIZES = { 'xs': '0.75rem', 'sm': '0.875rem', 'md': '1rem', 'lg': '1.125rem', 'xl': '1.25rem' } as const;\nexport const LINE_HEIGHTS = { 'xs': '1rem', 'sm': '1.25rem', 'md': '1.5rem', 'lg': '1.75rem', 'xl': '2rem' } as const;\nexport const FONT_FAMILY = 'ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"';\nexport const PRIMARY_FONT_COLORS = { 'dark': 'white', 'light': 'black' } as const;\nexport const SECONDARY_FONT_COLORS = { 'dark': '#a8a8a8', 'light': '#737373' } as const;\nexport const SELECTED_BACKGROUND_COLORS = { 'dark': 'rgba(255, 255, 255, 0.1)', 'light': 'rgba(0, 0, 0, 0.04)' } as const;\nexport const LINK_COLORS = { 'dark': '#fff', 'light': '#000' } as const;\nexport const SHADOW = '0 1px 2px 0 rgba(0, 0, 0, 0.05)';\n\nexport const DEFAULT_THEME = {\n light: {\n background: 'hsl(0 0% 100%)',\n foreground: 'hsl(240 10% 3.9%)',\n card: 'hsl(0 0% 100%)',\n cardForeground: 'hsl(240 10% 3.9%)',\n popover: 'hsl(0 0% 100%)',\n popoverForeground: 'hsl(240 10% 3.9%)',\n primary: 'hsl(240 5.9% 10%)',\n primaryForeground: 'hsl(0 0% 98%)',\n secondary: 'hsl(240 4.8% 95.9%)',\n secondaryForeground: 'hsl(240 5.9% 10%)',\n muted: 'hsl(240 4.8% 95.9%)',\n mutedForeground: 'hsl(240 3.8% 46.1%)',\n accent: 'hsl(240 4.8% 95.9%)',\n accentForeground: 'hsl(240 5.9% 10%)',\n destructive: 'hsl(0 84.2% 60.2%)',\n destructiveForeground: 'hsl(0 0% 98%)',\n border: 'hsl(240 5.9% 90%)',\n input: 'hsl(240 5.9% 90%)',\n ring: 'hsl(240 10% 3.9%)',\n },\n dark: {\n background: 'hsl(240 10% 3.9%)',\n foreground: 'hsl(0 0% 98%)',\n card: 'hsl(240 10% 3.9%)',\n cardForeground: 'hsl(0 0% 98%)',\n popover: 'hsl(240 10% 3.9%)',\n popoverForeground: 'hsl(0 0% 98%)',\n primary: 'hsl(0 0% 98%)',\n primaryForeground: 'hsl(240 5.9% 10%)',\n secondary: 'hsl(240 3.7% 15.9%)',\n secondaryForeground: 'hsl(0 0% 98%)',\n muted: 'hsl(240 3.7% 15.9%)',\n mutedForeground: 'hsl(240 5% 64.9%)',\n accent: 'hsl(240 3.7% 15.9%)',\n accentForeground: 'hsl(0 0% 98%)',\n destructive: 'hsl(0 62.8% 50%)',\n destructiveForeground: 'hsl(0 0% 98%)',\n border: 'hsl(240 3.7% 15.9%)',\n input: 'hsl(240 3.7% 15.9%)',\n ring: 'hsl(240 4.9% 83.9%)',\n },\n radius: '0.5rem',\n} as const;\n"],"mappings":";;;AAIA,MAAa,aAAa;CAAE,MAAM;CAAW,MAAM;CAAY,MAAM;CAAQ,MAAM;CAAY,MAAM;CAAW;AAChH,MAAa,eAAe;CAAE,MAAM;CAAQ,MAAM;CAAW,MAAM;CAAU,MAAM;CAAW,MAAM;CAAQ;AAC5G,MAAa,cAAc;AAC3B,MAAa,sBAAsB;CAAE,QAAQ;CAAS,SAAS;CAAS;AACxE,MAAa,wBAAwB;CAAE,QAAQ;CAAW,SAAS;CAAW;AAC9E,MAAa,6BAA6B;CAAE,QAAQ;CAA4B,SAAS;CAAuB;AAChH,MAAa,cAAc;CAAE,QAAQ;CAAQ,SAAS;CAAQ;AAC9D,MAAa,SAAS;AAEtB,MAAa,gBAAgB;CAC3B,OAAO;EACL,YAAY;EACZ,YAAY;EACZ,MAAM;EACN,gBAAgB;EAChB,SAAS;EACT,mBAAmB;EACnB,SAAS;EACT,mBAAmB;EACnB,WAAW;EACX,qBAAqB;EACrB,OAAO;EACP,iBAAiB;EACjB,QAAQ;EACR,kBAAkB;EAClB,aAAa;EACb,uBAAuB;EACvB,QAAQ;EACR,OAAO;EACP,MAAM;EACP;CACD,MAAM;EACJ,YAAY;EACZ,YAAY;EACZ,MAAM;EACN,gBAAgB;EAChB,SAAS;EACT,mBAAmB;EACnB,SAAS;EACT,mBAAmB;EACnB,WAAW;EACX,qBAAqB;EACrB,OAAO;EACP,iBAAiB;EACjB,QAAQ;EACR,kBAAkB;EAClB,aAAa;EACb,uBAAuB;EACvB,QAAQ;EACR,OAAO;EACP,MAAM;EACP;CACD,QAAQ;CACT"}
1
+ {"version":3,"file":"constants.js","names":[],"sources":["../../src/utils/constants.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//===========================================\nexport const FONT_SIZES = { 'xs': '0.75rem', 'sm': '0.875rem', 'md': '1rem', 'lg': '1.125rem', 'xl': '1.25rem' } as const;\nexport const LINE_HEIGHTS = { 'xs': '1rem', 'sm': '1.25rem', 'md': '1.5rem', 'lg': '1.75rem', 'xl': '2rem' } as const;\nexport const FONT_FAMILY = 'ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"';\nexport const PRIMARY_FONT_COLORS = { 'dark': 'white', 'light': 'black' } as const;\nexport const SECONDARY_FONT_COLORS = { 'dark': '#a8a8a8', 'light': '#737373' } as const;\nexport const SELECTED_BACKGROUND_COLORS = { 'dark': 'rgba(255, 255, 255, 0.1)', 'light': 'rgba(0, 0, 0, 0.04)' } as const;\nexport const LINK_COLORS = { 'dark': '#fff', 'light': '#000' } as const;\nexport const SHADOW = '0 1px 2px 0 rgba(0, 0, 0, 0.05)';\n\nexport const DEFAULT_THEME = {\n light: {\n background: 'hsl(0 0% 100%)',\n foreground: 'hsl(240 10% 3.9%)',\n card: 'hsl(0 0% 100%)',\n cardForeground: 'hsl(240 10% 3.9%)',\n popover: 'hsl(0 0% 100%)',\n popoverForeground: 'hsl(240 10% 3.9%)',\n primary: 'hsl(240 5.9% 10%)',\n primaryForeground: 'hsl(0 0% 98%)',\n secondary: 'hsl(240 4.8% 95.9%)',\n secondaryForeground: 'hsl(240 5.9% 10%)',\n muted: 'hsl(240 4.8% 95.9%)',\n mutedForeground: 'hsl(240 3.8% 46.1%)',\n accent: 'hsl(240 4.8% 95.9%)',\n accentForeground: 'hsl(240 5.9% 10%)',\n destructive: 'hsl(0 84.2% 60.2%)',\n destructiveForeground: 'hsl(0 0% 98%)',\n border: 'hsl(240 5.9% 90%)',\n input: 'hsl(240 5.9% 90%)',\n ring: 'hsl(240 10% 3.9%)',\n },\n dark: {\n background: 'hsl(240 10% 3.9%)',\n foreground: 'hsl(0 0% 98%)',\n card: 'hsl(240 10% 3.9%)',\n cardForeground: 'hsl(0 0% 98%)',\n popover: 'hsl(240 10% 3.9%)',\n popoverForeground: 'hsl(0 0% 98%)',\n primary: 'hsl(0 0% 98%)',\n primaryForeground: 'hsl(240 5.9% 10%)',\n secondary: 'hsl(240 3.7% 15.9%)',\n secondaryForeground: 'hsl(0 0% 98%)',\n muted: 'hsl(240 3.7% 15.9%)',\n mutedForeground: 'hsl(240 5% 64.9%)',\n accent: 'hsl(240 3.7% 15.9%)',\n accentForeground: 'hsl(0 0% 98%)',\n destructive: 'hsl(0 62.8% 50%)',\n destructiveForeground: 'hsl(0 0% 98%)',\n border: 'hsl(240 3.7% 15.9%)',\n input: 'hsl(240 3.7% 15.9%)',\n ring: 'hsl(240 4.9% 83.9%)',\n },\n radius: '0.5rem',\n} as const;\n"],"mappings":";;;AAIA,MAAa,aAAa;CAAE,MAAM;CAAW,MAAM;CAAY,MAAM;CAAQ,MAAM;CAAY,MAAM;CAAW;AAChH,MAAa,eAAe;CAAE,MAAM;CAAQ,MAAM;CAAW,MAAM;CAAU,MAAM;CAAW,MAAM;CAAQ;AAC5G,MAAa,cAAc;AAC3B,MAAa,sBAAsB;CAAE,QAAQ;CAAS,SAAS;CAAS;AACxE,MAAa,wBAAwB;CAAE,QAAQ;CAAW,SAAS;CAAW;AAC9E,MAAa,6BAA6B;CAAE,QAAQ;CAA4B,SAAS;CAAuB;AAChH,MAAa,cAAc;CAAE,QAAQ;CAAQ,SAAS;CAAQ;AAC9D,MAAa,SAAS;AAEtB,MAAa,gBAAgB;CAC3B,OAAO;EACL,YAAY;EACZ,YAAY;EACZ,MAAM;EACN,gBAAgB;EAChB,SAAS;EACT,mBAAmB;EACnB,SAAS;EACT,mBAAmB;EACnB,WAAW;EACX,qBAAqB;EACrB,OAAO;EACP,iBAAiB;EACjB,QAAQ;EACR,kBAAkB;EAClB,aAAa;EACb,uBAAuB;EACvB,QAAQ;EACR,OAAO;EACP,MAAM;EACP;CACD,MAAM;EACJ,YAAY;EACZ,YAAY;EACZ,MAAM;EACN,gBAAgB;EAChB,SAAS;EACT,mBAAmB;EACnB,SAAS;EACT,mBAAmB;EACnB,WAAW;EACX,qBAAqB;EACrB,OAAO;EACP,iBAAiB;EACjB,QAAQ;EACR,kBAAkB;EAClB,aAAa;EACb,uBAAuB;EACvB,QAAQ;EACR,OAAO;EACP,MAAM;EACP;CACD,QAAQ;CACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"url.js","names":["HexclaveAssertionError"],"sources":["../../src/utils/url.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY, INSTEAD EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { HexclaveAssertionError } from \"@hexclave/shared/dist/utils/errors\";\n\n\nexport function constructRedirectUrl(redirectUrl: URL | string | undefined, callbackUrlName: string) {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (typeof window === 'undefined' || !window.location) {\n throw new HexclaveAssertionError(`${callbackUrlName} option is required in a non-browser environment.`, { redirectUrl });\n }\n\n const retainedQueryParams = [\"after_auth_return_to\"];\n const currentUrl = new URL(window.location.href);\n const url = redirectUrl ? new URL(redirectUrl, window.location.href) : new URL(window.location.href);\n for (const param of retainedQueryParams) {\n if (currentUrl.searchParams.has(param)) {\n url.searchParams.set(param, currentUrl.searchParams.get(param)!);\n }\n }\n url.hash = \"\";\n return url.toString();\n}\n"],"mappings":";;;;;AAOA,SAAgB,qBAAqB,aAAuC,iBAAyB;AAEnG,KAAI,OAAO,WAAW,eAAe,CAAC,OAAO,SAC3C,OAAM,IAAIA,0DAAuB,GAAG,gBAAgB,oDAAoD,EAAE,aAAa,CAAC;CAG1H,MAAM,sBAAsB,CAAC,uBAAuB;CACpD,MAAM,aAAa,IAAI,IAAI,OAAO,SAAS,KAAK;CAChD,MAAM,MAAM,cAAc,IAAI,IAAI,aAAa,OAAO,SAAS,KAAK,GAAG,IAAI,IAAI,OAAO,SAAS,KAAK;AACpG,MAAK,MAAM,SAAS,oBAClB,KAAI,WAAW,aAAa,IAAI,MAAM,CACpC,KAAI,aAAa,IAAI,OAAO,WAAW,aAAa,IAAI,MAAM,CAAE;AAGpE,KAAI,OAAO;AACX,QAAO,IAAI,UAAU"}
1
+ {"version":3,"file":"url.js","names":["HexclaveAssertionError"],"sources":["../../src/utils/url.ts"],"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\";\n\n\nexport function constructRedirectUrl(redirectUrl: URL | string | undefined, callbackUrlName: string) {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (typeof window === 'undefined' || !window.location) {\n throw new HexclaveAssertionError(`${callbackUrlName} option is required in a non-browser environment.`, { redirectUrl });\n }\n\n const retainedQueryParams = [\"after_auth_return_to\"];\n const currentUrl = new URL(window.location.href);\n const url = redirectUrl ? new URL(redirectUrl, window.location.href) : new URL(window.location.href);\n for (const param of retainedQueryParams) {\n if (currentUrl.searchParams.has(param)) {\n url.searchParams.set(param, currentUrl.searchParams.get(param)!);\n }\n }\n url.hash = \"\";\n return url.toString();\n}\n"],"mappings":";;;;;AAOA,SAAgB,qBAAqB,aAAuC,iBAAyB;AAEnG,KAAI,OAAO,WAAW,eAAe,CAAC,OAAO,SAC3C,OAAM,IAAIA,0DAAuB,GAAG,gBAAgB,oDAAoD,EAAE,aAAa,CAAC;CAG1H,MAAM,sBAAsB,CAAC,uBAAuB;CACpD,MAAM,aAAa,IAAI,IAAI,OAAO,SAAS,KAAK;CAChD,MAAM,MAAM,cAAc,IAAI,IAAI,aAAa,OAAO,SAAS,KAAK,GAAG,IAAI,IAAI,OAAO,SAAS,KAAK;AACpG,MAAK,MAAM,SAAS,oBAClB,KAAI,WAAW,aAAa,IAAI,MAAM,CACpC,KAAI,aAAa,IAAI,OAAO,WAAW,aAAa,IAAI,MAAM,CAAE;AAGpE,KAAI,OAAO;AACX,QAAO,IAAI,UAAU"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
- "//": "THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY, INSTEAD EDIT THE CORRESPONDING FILE IN packages/template (FOR package.json FILES, PLEASE EDIT package-template.json)",
2
+ "//": "THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template (FOR package.json FILES, PLEASE EDIT package-template.json)",
3
3
  "name": "@hexclave/tanstack-start",
4
- "version": "1.0.3",
4
+ "version": "1.0.6",
5
5
  "repository": "https://github.com/hexclave/hexclave",
6
6
  "sideEffects": false,
7
7
  "main": "./dist/index.js",
@@ -50,6 +50,7 @@
50
50
  "files": [
51
51
  "README.md",
52
52
  "dist",
53
+ "src",
53
54
  "CHANGELOG.md",
54
55
  "LICENSE"
55
56
  ],
@@ -76,8 +77,8 @@
76
77
  "rrweb": "^1.1.3",
77
78
  "tsx": "^4.21.0",
78
79
  "yup": "^1.7.1",
79
- "@hexclave/shared": "1.0.3",
80
- "@hexclave/ui": "1.0.3"
80
+ "@hexclave/ui": "1.0.6",
81
+ "@hexclave/shared": "1.0.6"
81
82
  },
82
83
  "peerDependencies": {
83
84
  "@types/react": ">=18.0.0",
@@ -118,10 +119,12 @@
118
119
  "typecheck": "tsc --noEmit",
119
120
  "clean": "rimraf dist && rimraf node_modules",
120
121
  "lint": "eslint --ext .tsx,.ts .",
121
- "build": "rimraf dist && pnpm run css && tsdown",
122
+ "build": "rimraf dist && pnpm run codegen && tsdown",
122
123
  "dev": "concurrently -n \"build,codegen\" -k \"tsdown --watch\" \"pnpm run codegen:watch\"",
123
- "codegen": "pnpm run css",
124
- "codegen:watch": "pnpm run css:watch",
124
+ "codegen": "pnpm run env && pnpm run css",
125
+ "codegen:watch": "concurrently -n \"env,css\" -k \"pnpm run env:watch\" \"pnpm run css:watch\"",
126
+ "env": "tsx ./scripts/generate-env.ts",
127
+ "env:watch": "chokidar --silent './scripts/generate-env.ts' -c 'pnpm run env' --throttle 2000",
125
128
  "css": "pnpm run css-tw && pnpm run css-sc",
126
129
  "css:watch": "concurrently -n \"tw,sc\" -k \"pnpm run css-tw:watch\" \"pnpm run css-sc:watch\"",
127
130
  "css-tw:watch": "tailwindcss -i ./src/global.css -o ./src/generated/tailwind.css --watch",
@@ -0,0 +1,173 @@
1
+ 'use client';
2
+
3
+
4
+ //===========================================
5
+ // THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template
6
+ //===========================================
7
+
8
+ import { yupResolver } from "@hookform/resolvers/yup";
9
+ import { yupObject, yupString } from '@hexclave/shared/dist/schema-fields';
10
+ import { captureError } from '@hexclave/shared/dist/utils/errors';
11
+ import { runAsynchronously } from '@hexclave/shared/dist/utils/promises';
12
+ import { ActionDialog, Button, CopyField, Input, Label, Typography } from '@hexclave/ui';
13
+ import { useState } from "react";
14
+ import { useForm } from 'react-hook-form';
15
+ import * as yup from "yup";
16
+ import { useUser } from '..';
17
+ import { FormWarningText } from '../components/elements/form-warning';
18
+ import { ApiKey, ApiKeyCreationOptions, ApiKeyType } from "../lib/hexclave-app/api-keys";
19
+ import { useTranslation } from "../lib/translations";
20
+
21
+ // Constants for expiration options
22
+ export const neverInMs = 1000 * 60 * 60 * 24 * 365 * 200;
23
+ export const expiresInOptions = {
24
+ [1000 * 60 * 60 * 24 * 1]: "1 day",
25
+ [1000 * 60 * 60 * 24 * 7]: "7 days",
26
+ [1000 * 60 * 60 * 24 * 30]: "30 days",
27
+ [1000 * 60 * 60 * 24 * 90]: "90 days",
28
+ [1000 * 60 * 60 * 24 * 365]: "1 year",
29
+ [neverInMs]: "Never",
30
+ } as const;
31
+
32
+ /**
33
+ * Dialog for creating a new API key
34
+ */
35
+ export function CreateApiKeyDialog<Type extends ApiKeyType = ApiKeyType>(props: {
36
+ open: boolean,
37
+ onOpenChange: (open: boolean) => void,
38
+ onKeyCreated?: (key: ApiKey<Type, true>) => void,
39
+ createApiKey: (data: ApiKeyCreationOptions<Type>) => Promise<ApiKey<Type, true>>,
40
+ mockMode?: boolean,
41
+ }) {
42
+ const { t } = useTranslation();
43
+ const user = useUser({ or: props.mockMode ? 'return-null' : 'redirect' });
44
+ const [loading, setLoading] = useState(false);
45
+
46
+ const apiKeySchema = yupObject({
47
+ description: yupString().defined().nonEmpty(t('Description is required')),
48
+ expiresIn: yupString().defined(),
49
+ });
50
+
51
+ const { register, handleSubmit, formState: { errors }, reset } = useForm({
52
+ resolver: yupResolver(apiKeySchema),
53
+ defaultValues: {
54
+ description: '',
55
+ expiresIn: Object.keys(expiresInOptions)[2], // Default to 30 days
56
+ }
57
+ });
58
+
59
+ const onSubmit = async (data: yup.InferType<typeof apiKeySchema>) => {
60
+ setLoading(true);
61
+ try {
62
+ const expiresAt = new Date(Date.now() + parseInt(data.expiresIn));
63
+ const apiKey = await props.createApiKey({
64
+ description: data.description,
65
+ expiresAt,
66
+ });
67
+
68
+ if (props.onKeyCreated) {
69
+ props.onKeyCreated(apiKey);
70
+ }
71
+
72
+ reset();
73
+ props.onOpenChange(false);
74
+ } catch (error) {
75
+ captureError("Failed to create API key", { error });
76
+ } finally {
77
+ setLoading(false);
78
+ }
79
+ };
80
+
81
+ return (
82
+ <ActionDialog
83
+ open={props.open}
84
+ onOpenChange={props.onOpenChange}
85
+ title={t('Create API Key')}
86
+ description={t('API keys grant programmatic access to your account.')}
87
+ >
88
+ <form
89
+ onSubmit={(e) => {
90
+ e.preventDefault();
91
+ runAsynchronously(handleSubmit(onSubmit));
92
+ }}
93
+ className="space-y-4"
94
+ >
95
+ <div className="space-y-2">
96
+ <Label htmlFor="description">{t('Description')}</Label>
97
+ <Input
98
+ id="description"
99
+ placeholder={t('e.g. Development, Production, CI/CD')}
100
+ {...register('description')}
101
+ />
102
+ {errors.description && <FormWarningText text={errors.description.message} />}
103
+ </div>
104
+
105
+ <div className="space-y-2">
106
+ <Label htmlFor="expiresIn">{t('Expires In')}</Label>
107
+ <select
108
+ id="expiresIn"
109
+ className="w-full p-2 border border-input rounded-md bg-background"
110
+ {...register('expiresIn')}
111
+ >
112
+ {Object.entries(expiresInOptions).map(([value, label]) => (
113
+ <option key={value} value={value}>{t(label)}</option>
114
+ ))}
115
+ </select>
116
+ {errors.expiresIn && <FormWarningText text={errors.expiresIn.message} />}
117
+ </div>
118
+
119
+ <div className="flex justify-end gap-2 pt-4">
120
+ <Button
121
+ type="button"
122
+ variant="secondary"
123
+ onClick={() => {
124
+ reset();
125
+ props.onOpenChange(false);
126
+ }}
127
+ >
128
+ {t('Cancel')}
129
+ </Button>
130
+ <Button type="submit" loading={loading}>
131
+ {t('Create')}
132
+ </Button>
133
+ </div>
134
+ </form>
135
+ </ActionDialog>
136
+ );
137
+ }
138
+
139
+ /**
140
+ * Dialog for showing the newly created API key
141
+ */
142
+ export function ShowApiKeyDialog<Type extends ApiKeyType = ApiKeyType>(props: {
143
+ apiKey: ApiKey<Type, true> | null,
144
+ onClose?: () => void,
145
+ }) {
146
+ const { t } = useTranslation();
147
+
148
+ return (
149
+ <ActionDialog
150
+ open={!!props.apiKey}
151
+ title={t("API Key")}
152
+ okButton={{ label: t("Close") }}
153
+ onClose={props.onClose}
154
+ preventClose
155
+ confirmText={t("I understand that I will not be able to view this key again.")}
156
+ >
157
+ <div className="flex flex-col gap-4">
158
+ <Typography>
159
+ {t("Here is your API key.")}{" "}
160
+ <span className="font-bold">
161
+ {t("Copy it to a safe place. You will not be able to view it again.")}
162
+ </span>
163
+ </Typography>
164
+ <CopyField
165
+ type="input"
166
+ monospace
167
+ value={props.apiKey?.value ?? ''}
168
+ label={t("Secret API Key")}
169
+ />
170
+ </div>
171
+ </ActionDialog>
172
+ );
173
+ }
@@ -0,0 +1,127 @@
1
+ 'use client';
2
+
3
+
4
+ //===========================================
5
+ // THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template
6
+ //===========================================
7
+ import { ActionCell, ActionDialog, BadgeCell, DataTable, DataTableColumnHeader, DataTableFacetedFilter, DateCell, SearchToolbarItem, TextCell, standardFilterFn } from "@hexclave/ui";
8
+ import { ColumnDef, Row, Table } from "@tanstack/react-table";
9
+ import { useMemo, useState } from "react";
10
+ import { ApiKey } from "../lib/hexclave-app/api-keys";
11
+
12
+ type ExtendedApiKey = ApiKey & {
13
+ status: 'valid' | 'expired' | 'revoked',
14
+ };
15
+
16
+ function toolbarRender<TData>(table: Table<TData>) {
17
+ return (
18
+ <>
19
+ <SearchToolbarItem table={table} placeholder="Search table" />
20
+ <DataTableFacetedFilter
21
+ column={table.getColumn("status")}
22
+ title="Status"
23
+ options={['valid', 'expired', 'revoked'].map((provider) => ({
24
+ value: provider,
25
+ label: provider,
26
+ }))}
27
+ />
28
+ </>
29
+ );
30
+ }
31
+
32
+ function RevokeDialog(props: {
33
+ apiKey: ExtendedApiKey,
34
+ open: boolean,
35
+ onOpenChange: (open: boolean) => void,
36
+ }) {
37
+ return <ActionDialog
38
+ open={props.open}
39
+ onOpenChange={props.onOpenChange}
40
+ title="Revoke API Key"
41
+ danger
42
+ cancelButton
43
+ okButton={{ label: "Revoke Key", onClick: async () => { await props.apiKey.revoke(); } }}
44
+ confirmText="I understand this will unlink all the apps using this API key"
45
+ >
46
+ {`Are you sure you want to revoke API key *****${props.apiKey.value.lastFour}?`}
47
+ </ActionDialog>;
48
+ }
49
+
50
+ function Actions({ row }: { row: Row<ExtendedApiKey> }) {
51
+ const [isRevokeModalOpen, setIsRevokeModalOpen] = useState(false);
52
+ return (
53
+ <>
54
+ <RevokeDialog apiKey={row.original} open={isRevokeModalOpen} onOpenChange={setIsRevokeModalOpen} />
55
+ <ActionCell
56
+ invisible={row.original.status !== 'valid'}
57
+ items={[{
58
+ item: "Revoke",
59
+ danger: true,
60
+ onClick: () => setIsRevokeModalOpen(true),
61
+ }]}
62
+ />
63
+ </>
64
+ );
65
+ }
66
+
67
+ const columns: ColumnDef<ExtendedApiKey>[] = [
68
+ {
69
+ accessorKey: "description",
70
+ header: ({ column }) => <DataTableColumnHeader column={column} columnTitle="Description" />,
71
+ cell: ({ row }) => <TextCell size={100}>{row.original.description}</TextCell>,
72
+ },
73
+ {
74
+ accessorKey: "status",
75
+ header: ({ column }) => <DataTableColumnHeader column={column} columnTitle="Status" />,
76
+ cell: ({ row }) => <BadgeCell badges={[row.original.status]} />,
77
+ filterFn: standardFilterFn,
78
+ },
79
+ {
80
+ id: "value",
81
+ accessorFn: (row) => row.value.lastFour,
82
+ header: ({ column }) => <DataTableColumnHeader column={column} columnTitle="Client Key" />,
83
+ cell: ({ row }) => <TextCell>*******{row.original.value.lastFour}</TextCell>,
84
+ enableSorting: false,
85
+ },
86
+ {
87
+ accessorKey: "expiresAt",
88
+ header: ({ column }) => <DataTableColumnHeader column={column} columnTitle="Expires At" />,
89
+ cell: ({ row }) => {
90
+ if (row.original.status === 'revoked') return <TextCell>-</TextCell>;
91
+ return row.original.expiresAt ? <DateCell date={row.original.expiresAt} ignoreAfterYears={50} /> : <TextCell>Never</TextCell>;
92
+ },
93
+ },
94
+ {
95
+ accessorKey: "createdAt",
96
+ header: ({ column }) => <DataTableColumnHeader column={column} columnTitle="Created At" />,
97
+ cell: ({ row }) => <DateCell date={row.original.createdAt} ignoreAfterYears={50} />
98
+ },
99
+ {
100
+ id: "actions",
101
+ cell: ({ row }) => <Actions row={row} />,
102
+ },
103
+ ];
104
+
105
+ export function ApiKeyTable(props: { apiKeys: ApiKey[] }) {
106
+ const extendedApiKeys = useMemo(() => {
107
+ const keys = props.apiKeys.map((apiKey) => ({
108
+ ...apiKey,
109
+ status: ({ 'valid': 'valid', 'manually-revoked': 'revoked', 'expired': 'expired' } as const)[apiKey.whyInvalid() || 'valid'],
110
+ } satisfies ExtendedApiKey));
111
+ // first sort based on status, then by createdAt
112
+ return keys.sort((a, b) => {
113
+ if (a.status === b.status) {
114
+ return a.createdAt < b.createdAt ? 1 : -1;
115
+ }
116
+ return a.status === 'valid' ? -1 : 1;
117
+ });
118
+ }, [props.apiKeys]);
119
+
120
+ return <DataTable
121
+ data={extendedApiKeys}
122
+ columns={columns}
123
+ toolbarRender={toolbarRender}
124
+ defaultColumnFilters={[]}
125
+ defaultSorting={[]}
126
+ />;
127
+ }