@hexclave/cli 1.0.20 → 1.0.21

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 (326) hide show
  1. package/dist/dashboard/apps/dashboard/.next/BUILD_ID +1 -1
  2. package/dist/dashboard/apps/dashboard/.next/build-manifest.json +5 -5
  3. package/dist/dashboard/apps/dashboard/.next/prerender-manifest.json +3 -3
  4. package/dist/dashboard/apps/dashboard/.next/required-server-files.json +1 -1
  5. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/(outside-dashboard)/new-project/page/build-manifest.json +2 -2
  6. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/(outside-dashboard)/new-project/page_client-reference-manifest.js +1 -1
  7. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/(outside-dashboard)/playground/page/build-manifest.json +2 -2
  8. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/(outside-dashboard)/playground/page_client-reference-manifest.js +1 -1
  9. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/(outside-dashboard)/projects/page/build-manifest.json +2 -2
  10. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/(outside-dashboard)/projects/page/server-reference-manifest.json +3 -3
  11. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/(outside-dashboard)/projects/page_client-reference-manifest.js +1 -1
  12. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/-selector-/[...path]/page/build-manifest.json +2 -2
  13. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/-selector-/[...path]/page_client-reference-manifest.js +1 -1
  14. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/(overview)/page/build-manifest.json +2 -2
  15. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/(overview)/page_client-reference-manifest.js +1 -1
  16. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/@modal/(.)apps/[appId]/page/build-manifest.json +2 -2
  17. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/@modal/(.)apps/[appId]/page_client-reference-manifest.js +1 -1
  18. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/analytics/clickmaps/page/build-manifest.json +2 -2
  19. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/analytics/clickmaps/page_client-reference-manifest.js +1 -1
  20. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/analytics/overview/page/build-manifest.json +2 -2
  21. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/analytics/overview/page_client-reference-manifest.js +1 -1
  22. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/analytics/page/build-manifest.json +2 -2
  23. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/analytics/page_client-reference-manifest.js +1 -1
  24. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/analytics/queries/page/build-manifest.json +2 -2
  25. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/analytics/queries/page_client-reference-manifest.js +1 -1
  26. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/analytics/tables/page/build-manifest.json +2 -2
  27. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/analytics/tables/page_client-reference-manifest.js +1 -1
  28. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/api-keys/page/build-manifest.json +2 -2
  29. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
  30. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/api-keys-app/page/build-manifest.json +2 -2
  31. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/api-keys-app/page_client-reference-manifest.js +1 -1
  32. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/apps/[appId]/page/build-manifest.json +2 -2
  33. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/apps/[appId]/page_client-reference-manifest.js +1 -1
  34. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/apps/page/build-manifest.json +2 -2
  35. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/apps/page_client-reference-manifest.js +1 -1
  36. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/auth-methods/page/build-manifest.json +2 -2
  37. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/auth-methods/page_client-reference-manifest.js +1 -1
  38. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/conversations/page/build-manifest.json +2 -2
  39. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/conversations/page_client-reference-manifest.js +1 -1
  40. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/convex/page/build-manifest.json +2 -2
  41. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/convex/page_client-reference-manifest.js +1 -1
  42. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/dashboards/[dashboardId]/page/build-manifest.json +2 -2
  43. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/dashboards/[dashboardId]/page_client-reference-manifest.js +1 -1
  44. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/dashboards/page/build-manifest.json +2 -2
  45. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/dashboards/page_client-reference-manifest.js +1 -1
  46. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/data-vault/page/build-manifest.json +2 -2
  47. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/data-vault/page_client-reference-manifest.js +1 -1
  48. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/data-vault/stores/[storeId]/page/build-manifest.json +2 -2
  49. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/data-vault/stores/[storeId]/page_client-reference-manifest.js +1 -1
  50. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/data-vault/stores/page/build-manifest.json +2 -2
  51. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/data-vault/stores/page_client-reference-manifest.js +1 -1
  52. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/design-language/chart-demo/page/build-manifest.json +2 -2
  53. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/design-language/chart-demo/page_client-reference-manifest.js +1 -1
  54. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/design-language/datagrid-demo/page/build-manifest.json +2 -2
  55. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/design-language/datagrid-demo/page_client-reference-manifest.js +1 -1
  56. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/design-language/page/build-manifest.json +2 -2
  57. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/design-language/page_client-reference-manifest.js +1 -1
  58. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/design-language/realistic-demo/page/build-manifest.json +2 -2
  59. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/design-language/realistic-demo/page_client-reference-manifest.js +1 -1
  60. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/domains/page/build-manifest.json +2 -2
  61. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/domains/page_client-reference-manifest.js +1 -1
  62. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-drafts/[draftId]/page/build-manifest.json +2 -2
  63. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-drafts/[draftId]/page_client-reference-manifest.js +1 -1
  64. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-drafts/page/build-manifest.json +2 -2
  65. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-drafts/page_client-reference-manifest.js +1 -1
  66. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-outbox/page/build-manifest.json +2 -2
  67. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-outbox/page_client-reference-manifest.js +1 -1
  68. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-sent/no-source/page/build-manifest.json +2 -2
  69. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-sent/no-source/page_client-reference-manifest.js +1 -1
  70. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-sent/page/build-manifest.json +2 -2
  71. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-sent/page_client-reference-manifest.js +1 -1
  72. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-settings/page/build-manifest.json +2 -2
  73. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-settings/page_client-reference-manifest.js +1 -1
  74. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-templates/[templateId]/page/build-manifest.json +2 -2
  75. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-templates/[templateId]/page_client-reference-manifest.js +1 -1
  76. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-templates/[templateId]/sent/page/build-manifest.json +2 -2
  77. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-templates/[templateId]/sent/page_client-reference-manifest.js +1 -1
  78. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-templates/page/build-manifest.json +2 -2
  79. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-templates/page_client-reference-manifest.js +1 -1
  80. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-themes/[themeId]/page/build-manifest.json +2 -2
  81. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-themes/[themeId]/page_client-reference-manifest.js +1 -1
  82. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-themes/page/build-manifest.json +2 -2
  83. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-themes/page_client-reference-manifest.js +1 -1
  84. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-viewer/[emailId]/page/build-manifest.json +2 -2
  85. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-viewer/[emailId]/page_client-reference-manifest.js +1 -1
  86. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/emails/page/build-manifest.json +2 -2
  87. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/emails/page_client-reference-manifest.js +1 -1
  88. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/expert-mode/page/build-manifest.json +2 -2
  89. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/expert-mode/page_client-reference-manifest.js +1 -1
  90. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/external-db-sync/page/build-manifest.json +2 -2
  91. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/external-db-sync/page_client-reference-manifest.js +1 -1
  92. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/launch-checklist/page/build-manifest.json +2 -2
  93. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/launch-checklist/page_client-reference-manifest.js +1 -1
  94. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/onboarding/page/build-manifest.json +2 -2
  95. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/onboarding/page_client-reference-manifest.js +1 -1
  96. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/customers/page/build-manifest.json +2 -2
  97. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/customers/page_client-reference-manifest.js +1 -1
  98. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/page/build-manifest.json +2 -2
  99. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/page_client-reference-manifest.js +1 -1
  100. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/payouts/page/build-manifest.json +2 -2
  101. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/payouts/page_client-reference-manifest.js +1 -1
  102. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/product-lines/page/build-manifest.json +2 -2
  103. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/product-lines/page_client-reference-manifest.js +1 -1
  104. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/products/[productId]/edit/page/build-manifest.json +2 -2
  105. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/products/[productId]/edit/page_client-reference-manifest.js +1 -1
  106. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/products/[productId]/page/build-manifest.json +2 -2
  107. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/products/[productId]/page_client-reference-manifest.js +1 -1
  108. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/products/new/page/build-manifest.json +2 -2
  109. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/products/new/page_client-reference-manifest.js +1 -1
  110. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/products/page/build-manifest.json +2 -2
  111. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/products/page_client-reference-manifest.js +1 -1
  112. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/settings/page/build-manifest.json +2 -2
  113. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/settings/page_client-reference-manifest.js +1 -1
  114. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/transactions/page/build-manifest.json +2 -2
  115. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/transactions/page_client-reference-manifest.js +1 -1
  116. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/project-keys/page/build-manifest.json +2 -2
  117. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/project-keys/page_client-reference-manifest.js +1 -1
  118. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/project-permissions/page/build-manifest.json +2 -2
  119. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/project-permissions/page_client-reference-manifest.js +1 -1
  120. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/project-settings/page/build-manifest.json +2 -2
  121. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/project-settings/page_client-reference-manifest.js +1 -1
  122. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/query-analytics/page/build-manifest.json +2 -2
  123. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/query-analytics/page_client-reference-manifest.js +1 -1
  124. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/session-replays/[replayId]/page/build-manifest.json +2 -2
  125. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/session-replays/[replayId]/page_client-reference-manifest.js +1 -1
  126. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/session-replays/page/build-manifest.json +2 -2
  127. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/session-replays/page_client-reference-manifest.js +1 -1
  128. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/sign-up-rules/page/build-manifest.json +2 -2
  129. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/sign-up-rules/page_client-reference-manifest.js +1 -1
  130. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/support/page/build-manifest.json +2 -2
  131. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/support/page_client-reference-manifest.js +1 -1
  132. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/team-permissions/page/build-manifest.json +2 -2
  133. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/team-permissions/page_client-reference-manifest.js +1 -1
  134. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/team-settings/page/build-manifest.json +2 -2
  135. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/team-settings/page_client-reference-manifest.js +1 -1
  136. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/teams/[teamId]/page/build-manifest.json +2 -2
  137. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/teams/[teamId]/page_client-reference-manifest.js +1 -1
  138. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/teams/page/build-manifest.json +2 -2
  139. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/teams/page_client-reference-manifest.js +1 -1
  140. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/users/[userId]/page/build-manifest.json +2 -2
  141. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/users/[userId]/page_client-reference-manifest.js +1 -1
  142. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/users/page/build-manifest.json +2 -2
  143. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/users/page_client-reference-manifest.js +1 -1
  144. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/vercel/page/build-manifest.json +2 -2
  145. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/vercel/page_client-reference-manifest.js +1 -1
  146. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/webhooks/[endpointId]/page/build-manifest.json +2 -2
  147. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/webhooks/[endpointId]/page_client-reference-manifest.js +1 -1
  148. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/webhooks/page/build-manifest.json +2 -2
  149. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/webhooks/page_client-reference-manifest.js +1 -1
  150. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/widget-playground/page/build-manifest.json +2 -2
  151. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/widget-playground/page_client-reference-manifest.js +1 -1
  152. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/handler/[...hexclave]/page/build-manifest.json +2 -2
  153. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/handler/[...hexclave]/page_client-reference-manifest.js +1 -1
  154. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/custom/confirm/page/build-manifest.json +2 -2
  155. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/custom/confirm/page/server-reference-manifest.json +1 -1
  156. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/custom/confirm/page_client-reference-manifest.js +1 -1
  157. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/custom/projects/transfer/confirm/page/build-manifest.json +2 -2
  158. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/custom/projects/transfer/confirm/page_client-reference-manifest.js +1 -1
  159. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/featurebase/sso/page/build-manifest.json +2 -2
  160. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/featurebase/sso/page_client-reference-manifest.js +1 -1
  161. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/neon/confirm/page/build-manifest.json +2 -2
  162. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/neon/confirm/page/server-reference-manifest.json +1 -1
  163. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/neon/confirm/page_client-reference-manifest.js +1 -1
  164. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/neon/projects/transfer/confirm/page/build-manifest.json +2 -2
  165. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/neon/projects/transfer/confirm/page_client-reference-manifest.js +1 -1
  166. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/page/build-manifest.json +2 -2
  167. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/page_client-reference-manifest.js +1 -1
  168. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/purchase/[code]/page/build-manifest.json +2 -2
  169. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/purchase/[code]/page_client-reference-manifest.js +1 -1
  170. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/purchase/return/page/build-manifest.json +2 -2
  171. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/purchase/return/page_client-reference-manifest.js +1 -1
  172. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/wizard-congrats/page/build-manifest.json +2 -2
  173. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/wizard-congrats/page_client-reference-manifest.js +1 -1
  174. package/dist/dashboard/apps/dashboard/.next/server/app/_global-error/page/build-manifest.json +2 -2
  175. package/dist/dashboard/apps/dashboard/.next/server/app/_global-error.html +1 -1
  176. package/dist/dashboard/apps/dashboard/.next/server/app/_global-error.rsc +1 -1
  177. package/dist/dashboard/apps/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  178. package/dist/dashboard/apps/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  179. package/dist/dashboard/apps/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  180. package/dist/dashboard/apps/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  181. package/dist/dashboard/apps/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  182. package/dist/dashboard/apps/dashboard/.next/server/app/_not-found/page/build-manifest.json +2 -2
  183. package/dist/dashboard/apps/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  184. package/dist/dashboard/apps/dashboard/.next/server/app/_not-found.html +2 -2
  185. package/dist/dashboard/apps/dashboard/.next/server/app/_not-found.rsc +16 -16
  186. package/dist/dashboard/apps/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +16 -16
  187. package/dist/dashboard/apps/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  188. package/dist/dashboard/apps/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  189. package/dist/dashboard/apps/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
  190. package/dist/dashboard/apps/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  191. package/dist/dashboard/apps/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  192. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret/page/build-manifest.json +2 -2
  193. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret/page_client-reference-manifest.js +1 -1
  194. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret.html +2 -2
  195. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret.rsc +16 -16
  196. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret.segments/_full.segment.rsc +16 -16
  197. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret.segments/_head.segment.rsc +4 -4
  198. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret.segments/_index.segment.rsc +10 -10
  199. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret.segments/_tree.segment.rsc +2 -2
  200. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret.segments/development-environment/browser-secret/__PAGE__.segment.rsc +3 -3
  201. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret.segments/development-environment/browser-secret.segment.rsc +3 -3
  202. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret.segments/development-environment.segment.rsc +3 -3
  203. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug/page/build-manifest.json +2 -2
  204. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug/page_client-reference-manifest.js +1 -1
  205. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug.html +2 -2
  206. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug.rsc +17 -17
  207. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug.segments/_full.segment.rsc +17 -17
  208. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug.segments/_head.segment.rsc +4 -4
  209. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug.segments/_index.segment.rsc +10 -10
  210. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug.segments/_tree.segment.rsc +2 -2
  211. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug.segments/health/error-handler-debug/__PAGE__.segment.rsc +4 -4
  212. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug.segments/health/error-handler-debug.segment.rsc +3 -3
  213. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug.segments/health.segment.rsc +3 -3
  214. package/dist/dashboard/apps/dashboard/.next/server/app/index.html +2 -2
  215. package/dist/dashboard/apps/dashboard/.next/server/app/index.rsc +15 -15
  216. package/dist/dashboard/apps/dashboard/.next/server/app/index.segments/!KG1haW4p/__PAGE__.segment.rsc +2 -2
  217. package/dist/dashboard/apps/dashboard/.next/server/app/index.segments/!KG1haW4p.segment.rsc +4 -4
  218. package/dist/dashboard/apps/dashboard/.next/server/app/index.segments/_full.segment.rsc +15 -15
  219. package/dist/dashboard/apps/dashboard/.next/server/app/index.segments/_head.segment.rsc +4 -4
  220. package/dist/dashboard/apps/dashboard/.next/server/app/index.segments/_index.segment.rsc +10 -10
  221. package/dist/dashboard/apps/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  222. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.html +2 -2
  223. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.rsc +19 -19
  224. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.segments/!KG1haW4p/!KHByb3RlY3RlZCk/!KG91dHNpZGUtZGFzaGJvYXJkKQ/new-project/__PAGE__.segment.rsc +3 -3
  225. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.segments/!KG1haW4p/!KHByb3RlY3RlZCk/!KG91dHNpZGUtZGFzaGJvYXJkKQ/new-project.segment.rsc +3 -3
  226. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.segments/!KG1haW4p/!KHByb3RlY3RlZCk/!KG91dHNpZGUtZGFzaGJvYXJkKQ.segment.rsc +5 -5
  227. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.segments/!KG1haW4p/!KHByb3RlY3RlZCk.segment.rsc +4 -4
  228. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.segments/!KG1haW4p.segment.rsc +4 -4
  229. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.segments/_full.segment.rsc +19 -19
  230. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.segments/_head.segment.rsc +4 -4
  231. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.segments/_index.segment.rsc +10 -10
  232. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.segments/_tree.segment.rsc +2 -2
  233. package/dist/dashboard/apps/dashboard/.next/server/app/playground.html +2 -2
  234. package/dist/dashboard/apps/dashboard/.next/server/app/playground.rsc +19 -19
  235. package/dist/dashboard/apps/dashboard/.next/server/app/playground.segments/!KG1haW4p/!KHByb3RlY3RlZCk/!KG91dHNpZGUtZGFzaGJvYXJkKQ/playground/__PAGE__.segment.rsc +3 -3
  236. package/dist/dashboard/apps/dashboard/.next/server/app/playground.segments/!KG1haW4p/!KHByb3RlY3RlZCk/!KG91dHNpZGUtZGFzaGJvYXJkKQ/playground.segment.rsc +3 -3
  237. package/dist/dashboard/apps/dashboard/.next/server/app/playground.segments/!KG1haW4p/!KHByb3RlY3RlZCk/!KG91dHNpZGUtZGFzaGJvYXJkKQ.segment.rsc +5 -5
  238. package/dist/dashboard/apps/dashboard/.next/server/app/playground.segments/!KG1haW4p/!KHByb3RlY3RlZCk.segment.rsc +4 -4
  239. package/dist/dashboard/apps/dashboard/.next/server/app/playground.segments/!KG1haW4p.segment.rsc +4 -4
  240. package/dist/dashboard/apps/dashboard/.next/server/app/playground.segments/_full.segment.rsc +19 -19
  241. package/dist/dashboard/apps/dashboard/.next/server/app/playground.segments/_head.segment.rsc +4 -4
  242. package/dist/dashboard/apps/dashboard/.next/server/app/playground.segments/_index.segment.rsc +10 -10
  243. package/dist/dashboard/apps/dashboard/.next/server/app/playground.segments/_tree.segment.rsc +2 -2
  244. package/dist/dashboard/apps/dashboard/.next/server/app/projects.html +2 -2
  245. package/dist/dashboard/apps/dashboard/.next/server/app/projects.rsc +19 -19
  246. package/dist/dashboard/apps/dashboard/.next/server/app/projects.segments/!KG1haW4p/!KHByb3RlY3RlZCk/!KG91dHNpZGUtZGFzaGJvYXJkKQ/projects/__PAGE__.segment.rsc +3 -3
  247. package/dist/dashboard/apps/dashboard/.next/server/app/projects.segments/!KG1haW4p/!KHByb3RlY3RlZCk/!KG91dHNpZGUtZGFzaGJvYXJkKQ/projects.segment.rsc +3 -3
  248. package/dist/dashboard/apps/dashboard/.next/server/app/projects.segments/!KG1haW4p/!KHByb3RlY3RlZCk/!KG91dHNpZGUtZGFzaGJvYXJkKQ.segment.rsc +5 -5
  249. package/dist/dashboard/apps/dashboard/.next/server/app/projects.segments/!KG1haW4p/!KHByb3RlY3RlZCk.segment.rsc +4 -4
  250. package/dist/dashboard/apps/dashboard/.next/server/app/projects.segments/!KG1haW4p.segment.rsc +4 -4
  251. package/dist/dashboard/apps/dashboard/.next/server/app/projects.segments/_full.segment.rsc +19 -19
  252. package/dist/dashboard/apps/dashboard/.next/server/app/projects.segments/_head.segment.rsc +4 -4
  253. package/dist/dashboard/apps/dashboard/.next/server/app/projects.segments/_index.segment.rsc +10 -10
  254. package/dist/dashboard/apps/dashboard/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  255. package/dist/dashboard/apps/dashboard/.next/server/app/rde-debug/page/build-manifest.json +2 -2
  256. package/dist/dashboard/apps/dashboard/.next/server/app/rde-debug/page_client-reference-manifest.js +1 -1
  257. package/dist/dashboard/apps/dashboard/.next/server/app/wizard-congrats.html +2 -2
  258. package/dist/dashboard/apps/dashboard/.next/server/app/wizard-congrats.rsc +20 -20
  259. package/dist/dashboard/apps/dashboard/.next/server/app/wizard-congrats.segments/!KG1haW4p/wizard-congrats/__PAGE__.segment.rsc +6 -6
  260. package/dist/dashboard/apps/dashboard/.next/server/app/wizard-congrats.segments/!KG1haW4p/wizard-congrats.segment.rsc +3 -3
  261. package/dist/dashboard/apps/dashboard/.next/server/app/wizard-congrats.segments/!KG1haW4p.segment.rsc +4 -4
  262. package/dist/dashboard/apps/dashboard/.next/server/app/wizard-congrats.segments/_full.segment.rsc +20 -20
  263. package/dist/dashboard/apps/dashboard/.next/server/app/wizard-congrats.segments/_head.segment.rsc +4 -4
  264. package/dist/dashboard/apps/dashboard/.next/server/app/wizard-congrats.segments/_index.segment.rsc +10 -10
  265. package/dist/dashboard/apps/dashboard/.next/server/app/wizard-congrats.segments/_tree.segment.rsc +2 -2
  266. package/dist/dashboard/apps/dashboard/.next/server/chunks/[root-of-the-server]__1m-q0b3._.js +1 -1
  267. package/dist/dashboard/apps/dashboard/.next/server/chunks/_04as7p-._.js +22 -22
  268. package/dist/dashboard/apps/dashboard/.next/server/chunks/_0tnctfw._.js +1 -1
  269. package/dist/dashboard/apps/dashboard/.next/server/chunks/node_modules__pnpm_1_a837b._.js +1 -1
  270. package/dist/dashboard/apps/dashboard/.next/server/chunks/packages_0rk1u8f._.js +1 -1
  271. package/dist/dashboard/apps/dashboard/.next/server/chunks/packages_1eprmn6._.js +1 -1
  272. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/044u_dashboard_src_app_(main)_(protected)_projects_[projectId]_email-sent_06e1zir._.js +9 -0
  273. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/044u_dashboard_src_app_(main)_(protected)_projects_[projectId]_email-sent_18ofnte._.js +9 -0
  274. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/15dq_(main)_(protected)_projects_[projectId]_users_[userId]_page-client_tsx_0ptfo2h._.js +2 -2
  275. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0fiuqqk._.js +2 -2
  276. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/_05oib0d._.js +3 -0
  277. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/_0s_ag9o._.js +1 -1
  278. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/_0xl4mrg._.js +3 -3
  279. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/_1-axnoc._.js +1 -1
  280. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/_132pp19._.js +1 -1
  281. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/_1gqr2d9._.js +1 -1
  282. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/_1jp05wg._.js +3 -0
  283. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/_1q7j2d7._.js +5 -5
  284. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/_1wwwu_3._.js +1 -1
  285. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/_1z655xf._.js +1 -1
  286. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/apps_dashboard_src_components_dashboard-user-button_tsx_1m9znfy._.js +1 -1
  287. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0cfdzin._.js +1 -1
  288. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/packages_0kveln1._.js +1 -1
  289. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/packages_1r7flhi._.js +1 -1
  290. package/dist/dashboard/apps/dashboard/.next/server/middleware-build-manifest.js +5 -5
  291. package/dist/dashboard/apps/dashboard/.next/server/pages/404.html +2 -2
  292. package/dist/dashboard/apps/dashboard/.next/server/pages/500.html +1 -1
  293. package/dist/dashboard/apps/dashboard/.next/server/server-reference-manifest.js +1 -1
  294. package/dist/dashboard/apps/dashboard/.next/server/server-reference-manifest.json +5 -5
  295. package/dist/dashboard/apps/dashboard/.next/static/chunks/{2djrn7poti_fw.js → 0-cvg3igufvd6.js} +2 -2
  296. package/dist/dashboard/apps/dashboard/.next/static/chunks/{4079rt6gkozmp.js → 0n_amwdwnr5qv.js} +1 -1
  297. package/dist/dashboard/apps/dashboard/.next/static/chunks/{1c9um9pw7riw0.js → 0n_xejiuv6hi3.js} +2 -2
  298. package/dist/dashboard/apps/dashboard/.next/static/chunks/0nwiy21paqdxk.js +9 -0
  299. package/dist/dashboard/apps/dashboard/.next/static/chunks/{41e2zx2dgkq1w.js → 0x24ip8d8uywa.js} +2 -2
  300. package/dist/dashboard/apps/dashboard/.next/static/chunks/{2zkv3tg8lrss9.js → 1_3_bf5h-idt6.js} +1 -1
  301. package/dist/dashboard/apps/dashboard/.next/static/chunks/1fvvqk0r2b0xi.css +1 -0
  302. package/dist/dashboard/apps/dashboard/.next/static/chunks/{1g7ocjd1h6op9.js → 1iz1z3p9tjgbd.js} +2 -2
  303. package/dist/dashboard/apps/dashboard/.next/static/chunks/{1yis25nn36osv.js → 1l5uzgfyrdupp.js} +5 -5
  304. package/dist/dashboard/apps/dashboard/.next/static/chunks/{2qgng6gut-lpo.js → 2-bdllt91-l80.js} +1 -1
  305. package/dist/dashboard/apps/dashboard/.next/static/chunks/{3bo2ua_y4q43v.js → 2envmrg1f61w5.js} +3 -3
  306. package/dist/dashboard/apps/dashboard/.next/static/chunks/{0_k8aohi1d6c5.js → 2rtuock2-guiu.js} +1 -1
  307. package/dist/dashboard/apps/dashboard/.next/static/chunks/{3d-5wrlqx-xi5.js → 2vif9i05n-kbh.js} +2 -2
  308. package/dist/dashboard/apps/dashboard/.next/static/chunks/{0al4rf0wulms6.js → 2xzp981upsrrz.js} +4 -4
  309. package/dist/dashboard/apps/dashboard/.next/static/chunks/{3yr78v6baa_dn.js → 3kqlh2r279xvm.js} +1 -1
  310. package/dist/dashboard/apps/dashboard/.next/static/chunks/{0nd-d9_e0czkl.js → 3x2nrm-cfkt_s.js} +1 -1
  311. package/dist/dashboard/apps/dashboard/.next/static/chunks/{2u4zmrk36sq5y.js → 3xy61pxy24_4d.js} +1 -1
  312. package/dist/dashboard/apps/dashboard/.next/static/chunks/{turbopack-425k_ofsbf1gw.js → turbopack-2t16bx-7bi0_i.js} +1 -1
  313. package/dist/dashboard/apps/dashboard/package.json +1 -1
  314. package/dist/dashboard/apps/dashboard/server.js +1 -1
  315. package/dist/index.js +39 -15
  316. package/dist/index.js.map +1 -1
  317. package/package.json +4 -4
  318. package/src/commands/dev.ts +49 -10
  319. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/044u_dashboard_src_app_(main)_(protected)_projects_[projectId]_email-sent_07k2db_._.js +0 -9
  320. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/_0lvurax._.js +0 -9
  321. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/_1_40imk._.js +0 -3
  322. package/dist/dashboard/apps/dashboard/.next/static/chunks/0z4wcrkw_j19e.js +0 -9
  323. package/dist/dashboard/apps/dashboard/.next/static/chunks/3kqudwiyy5y1a.css +0 -1
  324. /package/dist/dashboard/apps/dashboard/.next/static/{B9KRozRzmPbGbXUg8svB2 → dLM871duwxsKII1or2IEw}/_buildManifest.js +0 -0
  325. /package/dist/dashboard/apps/dashboard/.next/static/{B9KRozRzmPbGbXUg8svB2 → dLM871duwxsKII1or2IEw}/_clientMiddlewareManifest.js +0 -0
  326. /package/dist/dashboard/apps/dashboard/.next/static/{B9KRozRzmPbGbXUg8svB2 → dLM871duwxsKII1or2IEw}/_ssgManifest.js +0 -0
@@ -12,7 +12,7 @@ ${t}`)},P=()=>{u(!1),f(null),g(null)},j=()=>{x(null),C(null)},A=_?l.find(t=>t.id
12
12
  - The user opened the OAuth callback page from their history.
13
13
 
14
14
  Either way, it is probably safe to ignore this warning unless you are debugging an OAuth issue.
15
- `),null;let h=new URL(r);for(let t of a)h.searchParams.delete(t);return window.history.replaceState({},"",h.toString()),{type:"oauth-response",originalUrl:r,codeVerifier:u.codeVerifier,state:d}}(r);if(!d)return s.Result.ok(void 0);if("known-error"===d.type)throw d.error;try{return s.Result.ok(await t.callOAuthCallback({oauthParams:d.originalUrl.searchParams,redirectUri:(0,l.constructRedirectUrl)(a,"redirectUri"),codeVerifier:d.codeVerifier,state:d.state}))}catch(t){if(i.KnownError.isKnownError(t))throw t;throw new o.HexclaveAssertionError("Error signing in during OAuth callback. Please try again.",{cause:t})}},r.getNewOAuthProviderOrScopeUrl=d},117504,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(869920),o=t.r(818395),i=t.r(39187),s=t.r(500621);function l(t){if(!t)return null;try{let a=JSON.parse(t);if("object"!=typeof a||null===a||"string"!=typeof a.session_id||"number"!=typeof a.created_at_ms||"number"!=typeof a.last_activity_ms)return null;return a}catch{return null}}function c(t){return`hexclave:session-replay:v1:${t}`}function d(t){return`stack:session-replay:v1:${t}`}function u(){return crypto.randomUUID()}function h(t){let a=l(localStorage.getItem(t.key))??(t.legacyKey?l(localStorage.getItem(t.legacyKey)):null);if(a&&t.nowMs-a.last_activity_ms<=18e4)return a;let r={session_id:u(),created_at_ms:t.nowMs,last_activity_ms:t.nowMs};return localStorage.setItem(t.key,JSON.stringify(r)),r}r.SessionRecorder=class{constructor(t,a){this._started=!1,this._cancelled=!1,this._disabled=!1,this._stopRecording=null,this._detachListeners=null,this._flushTimer=null,this._events=[],this._approxBytes=0,this._lastPersistActivity=0,this._recording=!1,this._rrwebModule=null,this._lastBrowserSessionId=null,this._takingSnapshot=!1,this._flushInProgress=!1,this._deps=t,this._replayOptions=a,this._sessionReplaySegmentId=u(),this._storageKey=c(t.projectId),this._legacyStorageKey=d(t.projectId)}start(){this._started||(0,s.isBrowserLike)()&&(this._started=!0,(0,n.runAsynchronously)(()=>this._startRecording(),{noErrorLogging:!0}),this._flushTimer=setInterval(()=>this._tick(),5e3))}stop(){this._cancelled=!0,null!==this._flushTimer&&(clearInterval(this._flushTimer),this._flushTimer=null),(0,n.runAsynchronously)(()=>this._flush({keepalive:!0})),this._stopCurrentRecording()}clearBuffer(){this._events=[],this._approxBytes=0}_persistActivity(t){let a=h({key:this._storageKey,legacyKey:this._legacyStorageKey,nowMs:t});if(t-this._lastPersistActivity<5e3)return a;this._lastPersistActivity=t;let r={...a,last_activity_ms:t};return localStorage.setItem(this._storageKey,JSON.stringify(r)),a}async _flush(t){if(this._disabled||0===this._events.length||this._flushInProgress)return;let a=Date.now(),r=h({key:this._storageKey,legacyKey:this._legacyStorageKey,nowMs:a}),n=u(),i={browser_session_id:r.session_id,session_replay_segment_id:this._sessionReplaySegmentId,batch_id:n,started_at_ms:r.created_at_ms,sent_at_ms:a,events:this._events};this._events=[],this._approxBytes=0,this._flushInProgress=!0;try{let a=await this._deps.sendBatch(JSON.stringify(i),{keepalive:t.keepalive});if("error"===a.status)return void(0,o.captureWarning)("SessionRecorder.flush",a.error);if(!a.data.ok){if((a.data.headers.get("x-hexclave-known-error")??a.data.headers.get("x-stack-known-error"))==="ANALYTICS_NOT_ENABLED"){this._disabled=!0,null!==this._flushTimer&&(clearInterval(this._flushTimer),this._flushTimer=null),this._stopCurrentRecording();return}(0,o.captureWarning)("SessionRecorder.flush",Error(`SessionRecorder flush failed: ${a.data.status} ${await a.data.text()}`))}}finally{this._flushInProgress=!1}}async _startRecording(){if(this._recording||this._cancelled)return;if(!this._rrwebModule){let a=await i.Result.fromPromise(t.A(647472));if("error"===a.status)return void console.warn("SessionRecorder: rrweb import failed. Is rrweb installed?",a.error);this._rrwebModule=a.data}if(this._cancelled)return;this._stopRecording=this._rrwebModule.record({emit:t=>{let a=Date.now(),r=this._persistActivity(a);if(null===this._lastBrowserSessionId)this._lastBrowserSessionId=r.session_id;else if(r.session_id!==this._lastBrowserSessionId&&!this._takingSnapshot){this._lastBrowserSessionId=r.session_id,this._takingSnapshot=!0;try{this._rrwebModule.record.takeFullSnapshot()}finally{this._takingSnapshot=!1}}this._events.push(t),this._approxBytes+=JSON.stringify(t).length,(this._events.length>=200||this._approxBytes>=512e3)&&(0,n.runAsynchronously)(()=>this._flush({keepalive:!1}))},maskAllInputs:this._replayOptions.maskAllInputs??!0,...void 0!==this._replayOptions.blockClass?{blockClass:this._replayOptions.blockClass}:{},...void 0!==this._replayOptions.blockSelector?{blockSelector:this._replayOptions.blockSelector}:{}})??null,this._recording=!0;let a=()=>{(0,n.runAsynchronously)(()=>this._flush({keepalive:!0}))};window.addEventListener("pagehide",a),document.addEventListener("visibilitychange",a),this._detachListeners=()=>{window.removeEventListener("pagehide",a),document.removeEventListener("visibilitychange",a)}}_stopCurrentRecording(){this._detachListeners&&(this._detachListeners(),this._detachListeners=null),this._stopRecording&&(this._stopRecording(),this._stopRecording=null),this._events=[],this._approxBytes=0,this._recording=!1}_tick(){!this._cancelled&&this._events.length>0&&(0,n.runAsynchronously)(()=>this._flush({keepalive:!1}))}},r.analyticsOptionsFromJson=function(t){if(!t?.replays?.blockClass)return t;let{blockClass:a,...r}=t.replays;return"object"==typeof a&&"__regexp"in a?{...t,replays:{...r,blockClass:new RegExp(a.__regexp,a.__flags)}}:t},r.analyticsOptionsToJson=function(t){if(!t?.replays?.blockClass)return t;let{blockClass:a,...r}=t.replays;return a instanceof RegExp?{...t,replays:{...r,blockClass:{__regexp:a.source,__flags:a.flags}}}:t},r.generateUuid=u,r.getOrRotateSession=h,r.getSessionReplayOptions=function(t){return{...t?.replays,enabled:t?.replays?.enabled??!0}},r.makeLegacyStorageKey=d,r.makeStorageKey=c,r.safeParseStoredSession=l},960802,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(704698),o=t.r(736394),i=t.r(902842),s=t.r(869920),l=t.r(500621),c=t.r(117504);function d(t){return null!=t&&"object"==typeof t&&"width"in t&&"height"in t&&"number"==typeof t.width&&"number"==typeof t.height}function u(t){return null!=t&&"object"==typeof t&&"pushState"in t&&"replaceState"in t&&"function"==typeof t.pushState&&"function"==typeof t.replaceState}function h(t){return null!=t.closest(`#${(0,o.cssEscapeIdent)(n.DEV_TOOL_ROOT_ID)}, #${(0,o.cssEscapeIdent)(n.CLICKMAP_ROOT_ID)}`)}r.EventTracker=class{constructor(t){this._started=!1,this._cancelled=!1,this._disabled=!1,this._detachListeners=null,this._flushTimer=null,this._events=[],this._approxBytes=0,this._lastUrl=null,this._originalPushState=null,this._originalReplaceState=null,this._deadClickTimer=null,this._deadClickMutationObserver=null,this._unclassifiedClicks=new Set,this._lastMutationAtMs=null,this._lastScrollAtMs=null,this._lastSelectionChangedAtMs=null,this._lastVisibilityChangeAtMs=null,this._onPopState=()=>{this._capturePageView("pop")},this._onClickCapture=t=>{let a=t.target;if(!(a instanceof Element)||h(a))return;let r=window.innerWidth,n=window.innerHeight,o=function(t){let a=t,r=0;for(;null!=a&&r<2*i.ELEMENTS_CHAIN_MAX_DEPTH;){let t=window.getComputedStyle(a);if("fixed"===t.position||"sticky"===t.position)return!0;a=a.parentElement,r+=1}return!1}(a),s=Math.round(t.pageX/16),l=Math.round(t.pageY/16),c=Math.round(t.clientY/16),d=r>0?t.clientX/r:0,u={event_type:"$click",event_at_ms:Date.now(),data:{tag_name:a.tagName.toLowerCase(),text:a.textContent.trim().substring(0,200),href:this._findNearestAnchorHref(a),selector:this._buildSelector(a),elements_chain:(0,i.buildElementsChain)(a),pointer_target_fixed:+!!o,url:window.location.href,path:window.location.pathname,title:document.title,x:t.clientX,y:t.clientY,page_x:t.pageX,page_y:t.pageY,x_scaled:s,y_scaled:l,client_y_scaled:c,pointer_relative_x:d,viewport_width:r,viewport_height:n,scale_factor:16}};null!==this._deadClickTimer&&this._unclassifiedClicks.size<50&&this._unclassifiedClicks.add(u),this._pushEvent(u)},this._onDeadClickScroll=()=>{this._lastScrollAtMs=Date.now()},this._onDeadClickSelectionChange=()=>{this._lastSelectionChangedAtMs=Date.now()},this._onDeadClickVisibilityChange=()=>{this._lastVisibilityChangeAtMs=Date.now()},this._onPageHide=()=>{(0,s.runAsynchronously)(()=>this._flush({keepalive:!0}))},this._deps=t,this._sessionReplaySegmentId=(0,c.generateUuid)()}start(){this._started||!(0,l.isBrowserLike)()||"function"==typeof window.addEventListener&&"function"==typeof window.removeEventListener&&"function"==typeof document.addEventListener&&"function"==typeof document.removeEventListener&&d(window.screen)&&(this._started=!0,this._setupPageViewCapture(),this._setupClickCapture(),this._setupDeadClickDetection(),this._setupPageHideListeners(),this._flushTimer=setInterval(()=>this._tick(),1e4))}stop(){this._cancelled=!0,null!==this._flushTimer&&(clearInterval(this._flushTimer),this._flushTimer=null),(0,s.runAsynchronously)(()=>this._flush({keepalive:!0})),this._teardown()}clearBuffer(){this._events=[],this._approxBytes=0,this._unclassifiedClicks.clear()}_pushEvent(t){!this._disabled&&(this._events.push(t),this._approxBytes+=JSON.stringify(t).length,(this._events.length>=50||this._approxBytes>=64e3)&&(0,s.runAsynchronously)(()=>this._flush({keepalive:!1})))}_capturePageView(t){let a=window.screen;if(!d(a))return;let r=window.location.href;(r!==this._lastUrl||"initial"===t)&&(this._lastUrl=r,this._pushEvent({event_type:"$page-view",event_at_ms:Date.now(),data:{url:r,path:window.location.pathname,referrer:document.referrer,title:document.title,entry_type:t,viewport_width:window.innerWidth,viewport_height:window.innerHeight,screen_width:a.width,screen_height:a.height,user_agent:"u">typeof navigator?navigator.userAgent:null}}))}_setupPageViewCapture(){this._capturePageView("initial");let t=window.history;if(!u(t))return;let a=t.pushState,r=t.replaceState;this._originalPushState=(...r)=>a.apply(t,r),t.pushState=(...t)=>{this._originalPushState(...t),this._capturePageView("push")},this._originalReplaceState=(...a)=>r.apply(t,a),t.replaceState=(...t)=>{this._originalReplaceState(...t),this._capturePageView("replace")},window.addEventListener("popstate",this._onPopState)}_buildSelector(t){let a=[],r=t,n=0;for(;r&&n<8&&r!==document.documentElement;){let t=r.tagName.toLowerCase(),i="data-testid",s=r.getAttribute("data-testid");if(null==s&&(i="data-test-id",s=r.getAttribute("data-test-id")),null!=s&&""!==s.trim()){t+=`[${i}="${s.replace(/"/g,'\\"')}"]`,a.unshift(t);break}if(""!==r.id){t+=`#${(0,o.cssEscapeIdent)(r.id)}`,a.unshift(t);break}if(r.className&&"string"==typeof r.className){let a=r.className.trim().split(/\s+/).filter(Boolean).slice(0,4);a.length>0&&(t+=`.${a.map(o.cssEscapeIdent).join(".")}`)}let l=r.parentElement;if(null!=l){let a=r.tagName,n=Array.from(l.children).filter(t=>t.tagName===a);n.length>1&&(t+=`:nth-of-type(${n.indexOf(r)+1})`)}a.unshift(t),r=l,n++}return a.join(" > ")}_findNearestAnchorHref(t){let a=t;for(;a;){if("A"===a.tagName&&a.hasAttribute("href"))return a.getAttribute("href");a=a.parentElement}return null}_setupClickCapture(){document.addEventListener("click",this._onClickCapture,{capture:!0})}_setupDeadClickDetection(){"function"==typeof MutationObserver&&(this._deadClickMutationObserver=new MutationObserver(t=>{t.every(t=>{var a;let r;return null!=(r=(a=t.target)instanceof Element?a:a?.parentElement??null)&&h(r)})||(this._lastMutationAtMs=Date.now())}),this._deadClickMutationObserver.observe(document.documentElement,{childList:!0,attributes:!0,characterData:!0,subtree:!0}),document.addEventListener("scroll",this._onDeadClickScroll,{capture:!0,passive:!0}),document.addEventListener("selectionchange",this._onDeadClickSelectionChange),document.addEventListener("visibilitychange",this._onDeadClickVisibilityChange),this._deadClickTimer=setInterval(()=>this._checkDeadClicks(),1e3))}_checkDeadClicks(){let t=Date.now();for(let a of this._unclassifiedClicks){let r=(t,r)=>null!=t&&t>=a.event_at_ms&&t-a.event_at_ms<r;r(this._lastScrollAtMs,100)||r(this._lastSelectionChangedAtMs,100)||r(this._lastVisibilityChangeAtMs,100)||r(this._lastMutationAtMs,2500)?this._unclassifiedClicks.delete(a):t-a.event_at_ms>=2750&&(a.data.dead=1,this._unclassifiedClicks.delete(a))}}_teardownDeadClickDetection(){null!==this._deadClickTimer&&(clearInterval(this._deadClickTimer),this._deadClickTimer=null),null!==this._deadClickMutationObserver&&(this._deadClickMutationObserver.disconnect(),this._deadClickMutationObserver=null),document.removeEventListener("scroll",this._onDeadClickScroll,{capture:!0}),document.removeEventListener("selectionchange",this._onDeadClickSelectionChange),document.removeEventListener("visibilitychange",this._onDeadClickVisibilityChange),this._unclassifiedClicks.clear()}_setupPageHideListeners(){window.addEventListener("pagehide",this._onPageHide),document.addEventListener("visibilitychange",this._onPageHide),this._detachListeners=()=>{window.removeEventListener("pagehide",this._onPageHide),document.removeEventListener("visibilitychange",this._onPageHide)}}_teardown(){this._detachListeners&&(this._detachListeners(),this._detachListeners=null);let t=window.history;u(t)&&(this._originalPushState&&(t.pushState=this._originalPushState),this._originalReplaceState&&(t.replaceState=this._originalReplaceState)),this._originalPushState=null,this._originalReplaceState=null,window.removeEventListener("popstate",this._onPopState),document.removeEventListener("click",this._onClickCapture,{capture:!0}),this._teardownDeadClickDetection(),this._events=[],this._approxBytes=0}async _flush(t){if(this._disabled)return;t.keepalive&&this._unclassifiedClicks.clear();let a=this._events.filter(t=>!this._unclassifiedClicks.has(t));if(0===a.length)return;this._events=this._events.filter(t=>this._unclassifiedClicks.has(t)),this._approxBytes=this._events.reduce((t,a)=>t+JSON.stringify(a).length,0);let r=Date.now(),n=(0,c.generateUuid)(),o={session_replay_segment_id:this._sessionReplaySegmentId,batch_id:n,sent_at_ms:r,events:a},i=await this._deps.sendBatch(JSON.stringify(o),{keepalive:t.keepalive});if("error"===i.status)return void console.warn("EventTracker flush failed:",i.error);if(!i.data.ok){if((i.data.headers.get("x-hexclave-known-error")??i.data.headers.get("x-stack-known-error"))==="ANALYTICS_NOT_ENABLED"){this._disabled=!0,null!==this._flushTimer&&(clearInterval(this._flushTimer),this._flushTimer=null),this._teardown();return}console.warn("EventTracker flush failed:",i.data.status,await i.data.text())}}_tick(){!this._cancelled&&this._events.length>0&&(0,s.runAsynchronously)(()=>this._flush({keepalive:!1}))}}},511824,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(818395),o=t.r(490505),i={marker:"hexclave_cross_domain_auth",state:"hexclave_cross_domain_state",codeChallenge:"hexclave_cross_domain_code_challenge",afterCallbackRedirectUrl:"hexclave_cross_domain_after_callback_redirect_url"};function s(t,a){return t.get(i[a])}function l(t,a){return t.has(i[a])}function c(t,a,r){t.set(i[a],r)}function d(t){return l(t.searchParams,"state")&&l(t.searchParams,"codeChallenge")&&l(t.searchParams,"afterCallbackRedirectUrl")}function u(t){let a=new URL(t.rawHandlerUrl,t.currentUrl),r=t.currentUrl.searchParams.get("after_auth_return_to");for(let n of(null==r||a.searchParams.has("after_auth_return_to")||a.searchParams.set("after_auth_return_to",r),["state","codeChallenge","afterCallbackRedirectUrl"])){let r=s(t.currentUrl.searchParams,n);null==r||l(a.searchParams,n)||c(a.searchParams,n,r)}if("signOut"===t.handlerName)return a.searchParams.has("after_auth_return_to")||(t.currentUrl.protocol===a.protocol&&t.currentUrl.host===a.host?a.searchParams.set("after_auth_return_to",(0,o.getRelativePart)(t.currentUrl)):a.searchParams.set("after_auth_return_to",t.currentUrl.toString())),a.origin===t.currentUrl.origin?(0,o.getRelativePart)(a):a.toString();if(t.currentUrl.origin!==a.origin){if(!d(a)){let r=t.currentUrl.searchParams.get("after_auth_return_to"),o=r?new URL(r,t.currentUrl).toString():t.currentUrl.toString(),i=function(t){let a=new URL(t.localOAuthCallbackUrl,t.currentUrl);if(a.origin!==t.currentUrl.origin)throw new n.HexclaveAssertionError("Cross-domain auth callback URL must stay on the current origin",{localOAuthCallbackUrl:a.toString(),currentUrl:t.currentUrl.toString()});return c(a.searchParams,"marker","1"),null!=t.state&&c(a.searchParams,"state",t.state),null!=t.codeChallenge&&c(a.searchParams,"codeChallenge",t.codeChallenge),null!=t.afterCallbackRedirectUrl&&c(a.searchParams,"afterCallbackRedirectUrl",t.afterCallbackRedirectUrl),a}({currentUrl:t.currentUrl,localOAuthCallbackUrl:t.localOAuthCallbackUrl,state:t.crossDomainHandoffParams?.state,codeChallenge:t.crossDomainHandoffParams?.codeChallenge,afterCallbackRedirectUrl:o});a.searchParams.set("after_auth_return_to",i.toString()),c(a.searchParams,"afterCallbackRedirectUrl",o),null!=t.crossDomainHandoffParams&&(c(a.searchParams,"state",t.crossDomainHandoffParams.state),c(a.searchParams,"codeChallenge",t.crossDomainHandoffParams.codeChallenge))}}else t.currentUrl.protocol!==a.protocol||t.currentUrl.host!==a.host||a.searchParams.has("after_auth_return_to")||a.searchParams.set("after_auth_return_to",(0,o.getRelativePart)(t.currentUrl));return a.origin===t.currentUrl.origin?(0,o.getRelativePart)(a):a.toString()}async function h(t){let a=u({handlerName:t.handlerName,rawHandlerUrl:t.rawHandlerUrl,currentUrl:t.currentUrl,crossDomainHandoffParams:null,localOAuthCallbackUrl:t.localOAuthCallbackUrl});if("signOut"===t.handlerName)return a;let r=new URL(a,t.currentUrl);if(t.currentUrl.origin===r.origin||d(r))return a;let n=await t.getCrossDomainHandoffParams(t.currentUrl);return u({handlerName:t.handlerName,rawHandlerUrl:t.rawHandlerUrl,currentUrl:t.currentUrl,crossDomainHandoffParams:n,localOAuthCallbackUrl:t.localOAuthCallbackUrl})}async function p(t){if(t.noRedirectBack||null==t.currentUrl)return{type:"redirect",url:t.rawHandlerUrl};let a=function(t){return"afterSignIn"===t||"afterSignUp"===t?"after-auth-return":"signIn"===t||"signUp"===t||"onboarding"===t||"signOut"===t?"redirect-back-aware":"none"}(t.handlerName);if("none"===a)return{type:"redirect",url:t.rawHandlerUrl};if("after-auth-return"===a){var r,o,i;let a,n,l=t.currentUrl.searchParams.get("after_auth_return_to");if(null==l)return{type:"redirect",url:t.rawHandlerUrl};let c=new URL(l,t.currentUrl),d=(a=(o=(r={currentUrl:t.currentUrl,redirectBackTarget:c}).currentUrl,i=r.redirectBackTarget,{state:s(o.searchParams,"state")??s(i.searchParams,"state"),codeChallenge:s(o.searchParams,"codeChallenge")??s(i.searchParams,"codeChallenge"),afterCallbackRedirectUrl:s(o.searchParams,"afterCallbackRedirectUrl")??s(i.searchParams,"afterCallbackRedirectUrl")}),null==(n=function(t){if(t.redirectBackTarget.origin!==t.currentUrl.origin)return t.redirectBackTarget;if(null==t.handoffParams.state||null==t.handoffParams.codeChallenge||null==t.handoffParams.afterCallbackRedirectUrl)return null;let a=new URL(t.handoffParams.afterCallbackRedirectUrl,t.currentUrl);return a.origin===t.currentUrl.origin?null:new URL(`${t.redirectBackTarget.pathname}${t.redirectBackTarget.search}${t.redirectBackTarget.hash}`,a.origin)}({currentUrl:r.currentUrl,redirectBackTarget:r.redirectBackTarget,handoffParams:a}))?null:{redirectBackTarget:n,handoffParams:a});if(null==d)return{type:"redirect",url:l};let u=d.handoffParams.state,h=d.handoffParams.codeChallenge,p=d.handoffParams.afterCallbackRedirectUrl;if(null==u||null==h){let a=await t.getCrossDomainHandoffParams(t.currentUrl);u??=a.state,h??=a.codeChallenge}return p??=t.currentUrl.toString(),{type:"cross-domain-authorize",redirectUri:d.redirectBackTarget.toString(),state:u,codeChallenge:h,afterCallbackRedirectUrl:p}}if("signIn"!==t.handlerName&&"signUp"!==t.handlerName&&"onboarding"!==t.handlerName&&"signOut"!==t.handlerName)throw new n.HexclaveAssertionError("Unexpected redirect-back-aware handler policy mismatch",{handlerName:t.handlerName,policy:a});return{type:"redirect",url:await h({handlerName:t.handlerName,rawHandlerUrl:t.rawHandlerUrl,currentUrl:t.currentUrl,localOAuthCallbackUrl:t.localOAuthCallbackUrl,getCrossDomainHandoffParams:t.getCrossDomainHandoffParams})}}r.crossDomainAuthQueryParams=i,r.getCrossDomainHandoffParamsFromCurrentUrl=function(t){let a=s(t.searchParams,"state"),r=s(t.searchParams,"codeChallenge");return null==a||null==r?null:{state:a,codeChallenge:r}},r.planRedirectToHandler=p},635195,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),r.subscribeSessionRefresh=function(t){let a=t.minMillisUntilExpiration??3e4,r=t.maxMillisSinceIssued??6e4,n=t.getSession(),o=n.startRefreshingAccessToken(a,r),i=t.tokenStore.onChange(()=>{let i=t.getSession();i.sessionKey!==n.sessionKey&&(o.unsubscribe(),o=(n=i).startRefreshingAccessToken(a,r)),t.onTokenStoreChange()});return()=>{i.unsubscribe(),o.unsubscribe()}}},242055,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(964359),o=t.r(869920),i=t.r(677332),s=t.r(818395),l=null,c=null,d=0,u=!1,h=null;function p(){if(c||!l||!(0,i.canMountIntoDom)())return;let a=++d,r=l;(0,o.runAsynchronously)(async()=>{let n=await (!h&&(h=t.A(213414).then(t=>t.openClickmapOverlay).catch(t=>{throw h=null,t})),h);a!==d||!c&&l===r&&(0,i.canMountIntoDom)()&&(c=n(r,()=>{c=null}))},{noErrorLogging:!0,onError:t=>{(0,s.captureError)("clickmap-mount",t)}})}r.mountClickmapOverlay=function(t){return l=t,u||(u=!0,window.addEventListener(n.CLICKMAP_OVERLAY_TOKEN_UPDATED_EVENT,p)),(0,i.canMountIntoDom)()&&function(){try{if("1"!==sessionStorage.getItem(n.CLICKMAP_OVERLAY_RESUME_STORAGE_KEY))return!1;return sessionStorage.removeItem(n.CLICKMAP_OVERLAY_RESUME_STORAGE_KEY),!0}catch{return!1}}()&&p(),()=>{l===t&&(l=null,d++,c?.())}}},255438,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(869920),o=t.r(677332),i=t.r(818395),s=t.r(490505),l="__hexclave-dev-tool-override";function c(){let t=function(){try{let t=localStorage.getItem(l);if("true"===t)return!0;if("false"===t)return!1}catch{}return null}();return null!==t?t:!!(0,o.canMountIntoDom)()&&(0,s.isLocalhost)(window.location.href)}let d=null,u=null,h=0,p=null;function y(){if(d&&(d(),d=null),!c()||!u||!(0,o.canMountIntoDom)())return;let a=++h,r=u;(0,n.runAsynchronously)(async()=>{let n=await (!p&&(p=t.A(929505).then(t=>t.createDevTool).catch(t=>{throw p=null,t})),p);a!==h||c()&&u===r&&(0,o.canMountIntoDom)()&&(d=n(r))},{noErrorLogging:!0,onError:t=>{(0,i.captureError)("dev-tool-mount",t)}})}window.HexclaveDevTool=window.HexclaveDevTool={enable(){try{localStorage.setItem(l,"true")}catch{}y(),console.log("[Stack DevTool] Enabled. Refresh if the panel does not appear.")},disable(){try{localStorage.setItem(l,"false")}catch{}d&&(d(),d=null),console.log("[Stack DevTool] Disabled.")},reset(){try{localStorage.removeItem(l)}catch{}c()?y():d&&(d(),d=null),console.log("[Stack DevTool] Reset to default (visible on localhost only).")}},r.mountDevTool=function(t){u=t,y();let a=d;return()=>{u=null,d===a&&null!=a&&(d=null,a())}}},952853,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),r.cookies=void 0,r.headers=void 0,r.isReactServer=!1},741188,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"});let n=t.r(493557),o=t.r(869920),i=t.r(898527),s=t.r(818395),l=t.r(866820);l=n.__toESM(l);let c=t.r(812811),d=t.r(204112),u=t.r(936457),h=t.r(490505),p=t.r(918715);p=n.__toESM(p);let y=t.r(39187),k=t.r(500621),f=t.r(251642),m=t.r(612399),g=t.r(777934),v=t.r(500709),w=t.r(726546),_=t.r(85533),x=t.r(130192),b=t.r(571781),M=t.r(323523),C=t.r(678238),S=t.r(71796),I=t.r(507736),L=t.r(828036),P=t.r(222792);P=n.__toESM(P);let j=t.r(317163),A=t.r(847296),T=t.r(660109),O=t.r(39215),R=t.r(974666),D=t.r(263203),z=t.r(289938),q=t.r(503552),E=t.r(378742),H=t.r(960802),F=t.r(511824),N=t.r(635195),V=t.r(117504),B=t.r(242055),U=t.r(255438),W=t.r(952853);W=n.__toESM(W);let G=!1;G=W.isReactServer;let Z=(0,M.scrambleDuringCompileTime)(p),K="stack_nested_cross_domain_auth_refresh_token_id",Y="stack_nested_cross_domain_auth_callback_url",X="redirect_uri",$="state",J="code_challenge",Q="code_challenge_method",ee="after_callback_redirect_url",et=["code","state","error","error_description","errorCode","message","details"],ea=new Map,er="stackauth_",en="hexclave_";function eo(t){return null==t.accessToken&&null==t.refreshToken?null:`Bearer ${er}${(0,g.encodeBase64)(new TextEncoder().encode(JSON.stringify(t)))}`}function ei(t,a){if("get"in t&&"function"==typeof t.get)return t.get(a);let r=a.toLowerCase();for(let[a,n]of Object.entries(t))if(a.toLowerCase()===r)return n;return null}async function es(){return(await W.headers?.())?.get("host")??null}r._HexclaveClientAppImplIncomplete=class t{static{this.LazyStackAdminAppImpl={value:void 0}}async _createCookieHelper(t){let a=void 0===t?this._tokenStoreInit:t;return"nextjs-cookie"===a||"cookie"===a?await (0,T.createCookieHelper)():await (0,T.createPlaceholderCookieHelper)()}async _getUserOAuthConnectionCacheFn(t){let a=await t.getUser(),r=!0;if(a&&a.oauth_providers.find(a=>a.id===t.providerId)||(r=!1),await t.getOrWaitOAuthToken()||(r=!1),!r&&t.redirect){if(!t.session)throw Error(i.deindent`
15
+ `),null;let h=new URL(r);for(let t of a)h.searchParams.delete(t);return window.history.replaceState({},"",h.toString()),{type:"oauth-response",originalUrl:r,codeVerifier:u.codeVerifier,state:d}}(r);if(!d)return s.Result.ok(void 0);if("known-error"===d.type)throw d.error;try{return s.Result.ok(await t.callOAuthCallback({oauthParams:d.originalUrl.searchParams,redirectUri:(0,l.constructRedirectUrl)(a,"redirectUri"),codeVerifier:d.codeVerifier,state:d.state}))}catch(t){if(i.KnownError.isKnownError(t))throw t;throw new o.HexclaveAssertionError("Error signing in during OAuth callback. Please try again.",{cause:t})}},r.getNewOAuthProviderOrScopeUrl=d},117504,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(869920),o=t.r(818395),i=t.r(39187),s=t.r(500621),l=t.r(812942);function c(t){if(!t)return null;try{let a=JSON.parse(t);if("object"!=typeof a||null===a||"string"!=typeof a.session_id||"number"!=typeof a.created_at_ms||"number"!=typeof a.last_activity_ms)return null;return a}catch{return null}}function d(t){return`hexclave:session-replay:v1:${t}`}function u(t){return`stack:session-replay:v1:${t}`}function h(){return crypto.randomUUID()}function p(t){let a=c(localStorage.getItem(t.key))??(t.legacyKey?c(localStorage.getItem(t.legacyKey)):null);if(a&&t.nowMs-a.last_activity_ms<=18e4)return a;let r={session_id:h(),created_at_ms:t.nowMs,last_activity_ms:t.nowMs};return localStorage.setItem(t.key,JSON.stringify(r)),r}function y(t){return l.KnownErrors.AnalyticsNotEnabled.isInstance(t)}r.SessionRecorder=class{constructor(t,a){this._started=!1,this._cancelled=!1,this._disabled=!1,this._stopRecording=null,this._detachListeners=null,this._flushTimer=null,this._events=[],this._approxBytes=0,this._lastPersistActivity=0,this._recording=!1,this._rrwebModule=null,this._lastBrowserSessionId=null,this._takingSnapshot=!1,this._flushInProgress=!1,this._deps=t,this._replayOptions=a,this._sessionReplaySegmentId=h(),this._storageKey=d(t.projectId),this._legacyStorageKey=u(t.projectId)}start(){this._started||(0,s.isBrowserLike)()&&(this._started=!0,(0,n.runAsynchronously)(()=>this._startRecording(),{noErrorLogging:!0}),this._flushTimer=setInterval(()=>this._tick(),5e3))}stop(){this._cancelled=!0,null!==this._flushTimer&&(clearInterval(this._flushTimer),this._flushTimer=null),(0,n.runAsynchronously)(()=>this._flush({keepalive:!0})),this._stopCurrentRecording()}clearBuffer(){this._events=[],this._approxBytes=0}_persistActivity(t){let a=p({key:this._storageKey,legacyKey:this._legacyStorageKey,nowMs:t});if(t-this._lastPersistActivity<5e3)return a;this._lastPersistActivity=t;let r={...a,last_activity_ms:t};return localStorage.setItem(this._storageKey,JSON.stringify(r)),a}async _flush(t){if(this._disabled||0===this._events.length||this._flushInProgress)return;let a=Date.now(),r=p({key:this._storageKey,legacyKey:this._legacyStorageKey,nowMs:a}),n=h(),i={browser_session_id:r.session_id,session_replay_segment_id:this._sessionReplaySegmentId,batch_id:n,started_at_ms:r.created_at_ms,sent_at_ms:a,events:this._events};this._events=[],this._approxBytes=0,this._flushInProgress=!0;try{let a=await this._deps.sendBatch(JSON.stringify(i),{keepalive:t.keepalive});if("error"===a.status){if(y(a.error))return void this._disable();(0,o.captureWarning)("SessionRecorder.flush",a.error);return}a.data.ok||(0,o.captureWarning)("SessionRecorder.flush",Error(`SessionRecorder flush failed: ${a.data.status} ${await a.data.text()}`))}finally{this._flushInProgress=!1}}_disable(){this._disabled=!0,this.clearBuffer(),null!==this._flushTimer&&(clearInterval(this._flushTimer),this._flushTimer=null),this._stopCurrentRecording()}async _startRecording(){if(this._recording||this._cancelled)return;if(!this._rrwebModule){let a=await i.Result.fromPromise(t.A(647472));if("error"===a.status)return void console.warn("SessionRecorder: rrweb import failed. Is rrweb installed?",a.error);this._rrwebModule=a.data}if(this._cancelled)return;this._stopRecording=this._rrwebModule.record({emit:t=>{let a=Date.now(),r=this._persistActivity(a);if(null===this._lastBrowserSessionId)this._lastBrowserSessionId=r.session_id;else if(r.session_id!==this._lastBrowserSessionId&&!this._takingSnapshot){this._lastBrowserSessionId=r.session_id,this._takingSnapshot=!0;try{this._rrwebModule.record.takeFullSnapshot()}finally{this._takingSnapshot=!1}}this._events.push(t),this._approxBytes+=JSON.stringify(t).length,(this._events.length>=200||this._approxBytes>=512e3)&&(0,n.runAsynchronously)(()=>this._flush({keepalive:!1}))},maskAllInputs:this._replayOptions.maskAllInputs??!0,...void 0!==this._replayOptions.blockClass?{blockClass:this._replayOptions.blockClass}:{},...void 0!==this._replayOptions.blockSelector?{blockSelector:this._replayOptions.blockSelector}:{}})??null,this._recording=!0;let a=()=>{(0,n.runAsynchronously)(()=>this._flush({keepalive:!0}))};window.addEventListener("pagehide",a),document.addEventListener("visibilitychange",a),this._detachListeners=()=>{window.removeEventListener("pagehide",a),document.removeEventListener("visibilitychange",a)}}_stopCurrentRecording(){this._detachListeners&&(this._detachListeners(),this._detachListeners=null),this._stopRecording&&(this._stopRecording(),this._stopRecording=null),this._events=[],this._approxBytes=0,this._recording=!1}_tick(){!this._cancelled&&this._events.length>0&&(0,n.runAsynchronously)(()=>this._flush({keepalive:!1}))}},r.analyticsOptionsFromJson=function(t){if(!t?.replays?.blockClass)return t;let{blockClass:a,...r}=t.replays;return"object"==typeof a&&"__regexp"in a?{...t,replays:{...r,blockClass:new RegExp(a.__regexp,a.__flags)}}:t},r.analyticsOptionsToJson=function(t){if(!t?.replays?.blockClass)return t;let{blockClass:a,...r}=t.replays;return a instanceof RegExp?{...t,replays:{...r,blockClass:{__regexp:a.source,__flags:a.flags}}}:t},r.generateUuid=h,r.getOrRotateSession=p,r.getSessionReplayOptions=function(t){return{...t?.replays,enabled:t?.replays?.enabled??!0}},r.isAnalyticsNotEnabledError=y,r.makeLegacyStorageKey=u,r.makeStorageKey=d,r.safeParseStoredSession=c},960802,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(704698),o=t.r(736394),i=t.r(902842),s=t.r(869920),l=t.r(500621),c=t.r(117504);function d(t){return null!=t&&"object"==typeof t&&"width"in t&&"height"in t&&"number"==typeof t.width&&"number"==typeof t.height}function u(t){return null!=t&&"object"==typeof t&&"pushState"in t&&"replaceState"in t&&"function"==typeof t.pushState&&"function"==typeof t.replaceState}function h(t){return null!=t.closest(`#${(0,o.cssEscapeIdent)(n.DEV_TOOL_ROOT_ID)}, #${(0,o.cssEscapeIdent)(n.CLICKMAP_ROOT_ID)}`)}r.EventTracker=class{constructor(t){this._started=!1,this._cancelled=!1,this._disabled=!1,this._detachListeners=null,this._flushTimer=null,this._events=[],this._approxBytes=0,this._lastUrl=null,this._originalPushState=null,this._originalReplaceState=null,this._deadClickTimer=null,this._deadClickMutationObserver=null,this._unclassifiedClicks=new Set,this._lastMutationAtMs=null,this._lastScrollAtMs=null,this._lastSelectionChangedAtMs=null,this._lastVisibilityChangeAtMs=null,this._onPopState=()=>{this._capturePageView("pop")},this._onClickCapture=t=>{var a;let r=t.target;if(!(r instanceof Element)||h(r))return;let n=window.innerWidth,o=window.innerHeight,s=function(t){let a=t,r=0;for(;null!=a&&r<2*i.ELEMENTS_CHAIN_MAX_DEPTH;){let t=window.getComputedStyle(a);if("fixed"===t.position||"sticky"===t.position)return!0;a=a.parentElement,r+=1}return!1}(r),l=Math.round(t.pageX/16),c=Math.round(t.pageY/16),d=Math.round(t.clientY/16),u=n>0?t.clientX/n:0,p={event_type:"$click",event_at_ms:Date.now(),data:{tag_name:r.tagName.toLowerCase(),text:null==(a=r.textContent)?"":a.trim().substring(0,200),href:this._findNearestAnchorHref(r),selector:this._buildSelector(r),elements_chain:(0,i.buildElementsChain)(r),pointer_target_fixed:+!!s,url:window.location.href,path:window.location.pathname,title:document.title,x:t.clientX,y:t.clientY,page_x:t.pageX,page_y:t.pageY,x_scaled:l,y_scaled:c,client_y_scaled:d,pointer_relative_x:u,viewport_width:n,viewport_height:o,scale_factor:16}};null!==this._deadClickTimer&&this._unclassifiedClicks.size<50&&this._unclassifiedClicks.add(p),this._pushEvent(p)},this._onDeadClickScroll=()=>{this._lastScrollAtMs=Date.now()},this._onDeadClickSelectionChange=()=>{this._lastSelectionChangedAtMs=Date.now()},this._onDeadClickVisibilityChange=()=>{this._lastVisibilityChangeAtMs=Date.now()},this._onPageHide=()=>{(0,s.runAsynchronously)(()=>this._flush({keepalive:!0}))},this._deps=t,this._sessionReplaySegmentId=(0,c.generateUuid)()}start(){this._started||!(0,l.isBrowserLike)()||"function"==typeof window.addEventListener&&"function"==typeof window.removeEventListener&&"function"==typeof document.addEventListener&&"function"==typeof document.removeEventListener&&d(window.screen)&&(this._started=!0,this._setupPageViewCapture(),this._setupClickCapture(),this._setupDeadClickDetection(),this._setupPageHideListeners(),this._flushTimer=setInterval(()=>this._tick(),1e4))}stop(){this._cancelled=!0,null!==this._flushTimer&&(clearInterval(this._flushTimer),this._flushTimer=null),(0,s.runAsynchronously)(()=>this._flush({keepalive:!0})),this._teardown()}clearBuffer(){this._events=[],this._approxBytes=0,this._unclassifiedClicks.clear()}_pushEvent(t){!this._disabled&&(this._events.push(t),this._approxBytes+=JSON.stringify(t).length,(this._events.length>=50||this._approxBytes>=64e3)&&(0,s.runAsynchronously)(()=>this._flush({keepalive:!1})))}_capturePageView(t){let a=window.screen;if(!d(a))return;let r=window.location.href;(r!==this._lastUrl||"initial"===t)&&(this._lastUrl=r,this._pushEvent({event_type:"$page-view",event_at_ms:Date.now(),data:{url:r,path:window.location.pathname,referrer:document.referrer,title:document.title,entry_type:t,viewport_width:window.innerWidth,viewport_height:window.innerHeight,screen_width:a.width,screen_height:a.height,user_agent:"u">typeof navigator?navigator.userAgent:null}}))}_setupPageViewCapture(){this._capturePageView("initial");let t=window.history;if(!u(t))return;let a=t.pushState,r=t.replaceState;this._originalPushState=(...r)=>a.apply(t,r),t.pushState=(...t)=>{this._originalPushState(...t),this._capturePageView("push")},this._originalReplaceState=(...a)=>r.apply(t,a),t.replaceState=(...t)=>{this._originalReplaceState(...t),this._capturePageView("replace")},window.addEventListener("popstate",this._onPopState)}_buildSelector(t){let a=[],r=t,n=0;for(;r&&n<8&&r!==document.documentElement;){let t=r.tagName.toLowerCase(),i="data-testid",s=r.getAttribute("data-testid");if(null==s&&(i="data-test-id",s=r.getAttribute("data-test-id")),null!=s&&""!==s.trim()){t+=`[${i}="${s.replace(/"/g,'\\"')}"]`,a.unshift(t);break}if(""!==r.id){t+=`#${(0,o.cssEscapeIdent)(r.id)}`,a.unshift(t);break}if(r.className&&"string"==typeof r.className){let a=r.className.trim().split(/\s+/).filter(Boolean).slice(0,4);a.length>0&&(t+=`.${a.map(o.cssEscapeIdent).join(".")}`)}let l=r.parentElement;if(null!=l){let a=r.tagName,n=Array.from(l.children).filter(t=>t.tagName===a);n.length>1&&(t+=`:nth-of-type(${n.indexOf(r)+1})`)}a.unshift(t),r=l,n++}return a.join(" > ")}_findNearestAnchorHref(t){let a=t;for(;a;){if("A"===a.tagName&&a.hasAttribute("href"))return a.getAttribute("href");a=a.parentElement}return null}_setupClickCapture(){document.addEventListener("click",this._onClickCapture,{capture:!0})}_setupDeadClickDetection(){"function"==typeof MutationObserver&&(this._deadClickMutationObserver=new MutationObserver(t=>{t.every(t=>{var a;let r;return null!=(r=(a=t.target)instanceof Element?a:a?.parentElement??null)&&h(r)})||(this._lastMutationAtMs=Date.now())}),this._deadClickMutationObserver.observe(document.documentElement,{childList:!0,attributes:!0,characterData:!0,subtree:!0}),document.addEventListener("scroll",this._onDeadClickScroll,{capture:!0,passive:!0}),document.addEventListener("selectionchange",this._onDeadClickSelectionChange),document.addEventListener("visibilitychange",this._onDeadClickVisibilityChange),this._deadClickTimer=setInterval(()=>this._checkDeadClicks(),1e3))}_checkDeadClicks(){let t=Date.now();for(let a of this._unclassifiedClicks){let r=(t,r)=>null!=t&&t>=a.event_at_ms&&t-a.event_at_ms<r;r(this._lastScrollAtMs,100)||r(this._lastSelectionChangedAtMs,100)||r(this._lastVisibilityChangeAtMs,100)||r(this._lastMutationAtMs,2500)?this._unclassifiedClicks.delete(a):t-a.event_at_ms>=2750&&(a.data.dead=1,this._unclassifiedClicks.delete(a))}}_teardownDeadClickDetection(){null!==this._deadClickTimer&&(clearInterval(this._deadClickTimer),this._deadClickTimer=null),null!==this._deadClickMutationObserver&&(this._deadClickMutationObserver.disconnect(),this._deadClickMutationObserver=null),document.removeEventListener("scroll",this._onDeadClickScroll,{capture:!0}),document.removeEventListener("selectionchange",this._onDeadClickSelectionChange),document.removeEventListener("visibilitychange",this._onDeadClickVisibilityChange),this._unclassifiedClicks.clear()}_setupPageHideListeners(){window.addEventListener("pagehide",this._onPageHide),document.addEventListener("visibilitychange",this._onPageHide),this._detachListeners=()=>{window.removeEventListener("pagehide",this._onPageHide),document.removeEventListener("visibilitychange",this._onPageHide)}}_teardown(){this._detachListeners&&(this._detachListeners(),this._detachListeners=null);let t=window.history;u(t)&&(this._originalPushState&&(t.pushState=this._originalPushState),this._originalReplaceState&&(t.replaceState=this._originalReplaceState)),this._originalPushState=null,this._originalReplaceState=null,window.removeEventListener("popstate",this._onPopState),document.removeEventListener("click",this._onClickCapture,{capture:!0}),this._teardownDeadClickDetection(),this._events=[],this._approxBytes=0}async _flush(t){if(this._disabled)return;t.keepalive&&this._unclassifiedClicks.clear();let a=this._events.filter(t=>!this._unclassifiedClicks.has(t));if(0===a.length)return;this._events=this._events.filter(t=>this._unclassifiedClicks.has(t)),this._approxBytes=this._events.reduce((t,a)=>t+JSON.stringify(a).length,0);let r=Date.now(),n=(0,c.generateUuid)(),o={session_replay_segment_id:this._sessionReplaySegmentId,batch_id:n,sent_at_ms:r,events:a},i=await this._deps.sendBatch(JSON.stringify(o),{keepalive:t.keepalive});"error"===i.status?(0,c.isAnalyticsNotEnabledError)(i.error)?this._disable():console.warn("EventTracker flush failed:",i.error):i.data.ok||console.warn("EventTracker flush failed:",i.data.status,await i.data.text())}_disable(){this._disabled=!0,null!==this._flushTimer&&(clearInterval(this._flushTimer),this._flushTimer=null),this._teardown()}_tick(){!this._cancelled&&this._events.length>0&&(0,s.runAsynchronously)(()=>this._flush({keepalive:!1}))}}},511824,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(818395),o=t.r(490505),i={marker:"hexclave_cross_domain_auth",state:"hexclave_cross_domain_state",codeChallenge:"hexclave_cross_domain_code_challenge",afterCallbackRedirectUrl:"hexclave_cross_domain_after_callback_redirect_url"};function s(t,a){return t.get(i[a])}function l(t,a){return t.has(i[a])}function c(t,a,r){t.set(i[a],r)}function d(t){return l(t.searchParams,"state")&&l(t.searchParams,"codeChallenge")&&l(t.searchParams,"afterCallbackRedirectUrl")}function u(t){let a=new URL(t.rawHandlerUrl,t.currentUrl),r=t.currentUrl.searchParams.get("after_auth_return_to");for(let n of(null==r||a.searchParams.has("after_auth_return_to")||a.searchParams.set("after_auth_return_to",r),["state","codeChallenge","afterCallbackRedirectUrl"])){let r=s(t.currentUrl.searchParams,n);null==r||l(a.searchParams,n)||c(a.searchParams,n,r)}if("signOut"===t.handlerName)return a.searchParams.has("after_auth_return_to")||(t.currentUrl.protocol===a.protocol&&t.currentUrl.host===a.host?a.searchParams.set("after_auth_return_to",(0,o.getRelativePart)(t.currentUrl)):a.searchParams.set("after_auth_return_to",t.currentUrl.toString())),a.origin===t.currentUrl.origin?(0,o.getRelativePart)(a):a.toString();if(t.currentUrl.origin!==a.origin){if(!d(a)){let r=t.currentUrl.searchParams.get("after_auth_return_to"),o=r?new URL(r,t.currentUrl).toString():t.currentUrl.toString(),i=function(t){let a=new URL(t.localOAuthCallbackUrl,t.currentUrl);if(a.origin!==t.currentUrl.origin)throw new n.HexclaveAssertionError("Cross-domain auth callback URL must stay on the current origin",{localOAuthCallbackUrl:a.toString(),currentUrl:t.currentUrl.toString()});return c(a.searchParams,"marker","1"),null!=t.state&&c(a.searchParams,"state",t.state),null!=t.codeChallenge&&c(a.searchParams,"codeChallenge",t.codeChallenge),null!=t.afterCallbackRedirectUrl&&c(a.searchParams,"afterCallbackRedirectUrl",t.afterCallbackRedirectUrl),a}({currentUrl:t.currentUrl,localOAuthCallbackUrl:t.localOAuthCallbackUrl,state:t.crossDomainHandoffParams?.state,codeChallenge:t.crossDomainHandoffParams?.codeChallenge,afterCallbackRedirectUrl:o});a.searchParams.set("after_auth_return_to",i.toString()),c(a.searchParams,"afterCallbackRedirectUrl",o),null!=t.crossDomainHandoffParams&&(c(a.searchParams,"state",t.crossDomainHandoffParams.state),c(a.searchParams,"codeChallenge",t.crossDomainHandoffParams.codeChallenge))}}else t.currentUrl.protocol!==a.protocol||t.currentUrl.host!==a.host||a.searchParams.has("after_auth_return_to")||a.searchParams.set("after_auth_return_to",(0,o.getRelativePart)(t.currentUrl));return a.origin===t.currentUrl.origin?(0,o.getRelativePart)(a):a.toString()}async function h(t){let a=u({handlerName:t.handlerName,rawHandlerUrl:t.rawHandlerUrl,currentUrl:t.currentUrl,crossDomainHandoffParams:null,localOAuthCallbackUrl:t.localOAuthCallbackUrl});if("signOut"===t.handlerName)return a;let r=new URL(a,t.currentUrl);if(t.currentUrl.origin===r.origin||d(r))return a;let n=await t.getCrossDomainHandoffParams(t.currentUrl);return u({handlerName:t.handlerName,rawHandlerUrl:t.rawHandlerUrl,currentUrl:t.currentUrl,crossDomainHandoffParams:n,localOAuthCallbackUrl:t.localOAuthCallbackUrl})}async function p(t){if(t.noRedirectBack||null==t.currentUrl)return{type:"redirect",url:t.rawHandlerUrl};let a=function(t){return"afterSignIn"===t||"afterSignUp"===t?"after-auth-return":"signIn"===t||"signUp"===t||"onboarding"===t||"signOut"===t?"redirect-back-aware":"none"}(t.handlerName);if("none"===a)return{type:"redirect",url:t.rawHandlerUrl};if("after-auth-return"===a){var r,o,i;let a,n,l=t.currentUrl.searchParams.get("after_auth_return_to");if(null==l)return{type:"redirect",url:t.rawHandlerUrl};let c=new URL(l,t.currentUrl),d=(a=(o=(r={currentUrl:t.currentUrl,redirectBackTarget:c}).currentUrl,i=r.redirectBackTarget,{state:s(o.searchParams,"state")??s(i.searchParams,"state"),codeChallenge:s(o.searchParams,"codeChallenge")??s(i.searchParams,"codeChallenge"),afterCallbackRedirectUrl:s(o.searchParams,"afterCallbackRedirectUrl")??s(i.searchParams,"afterCallbackRedirectUrl")}),null==(n=function(t){if(t.redirectBackTarget.origin!==t.currentUrl.origin)return t.redirectBackTarget;if(null==t.handoffParams.state||null==t.handoffParams.codeChallenge||null==t.handoffParams.afterCallbackRedirectUrl)return null;let a=new URL(t.handoffParams.afterCallbackRedirectUrl,t.currentUrl);return a.origin===t.currentUrl.origin?null:new URL(`${t.redirectBackTarget.pathname}${t.redirectBackTarget.search}${t.redirectBackTarget.hash}`,a.origin)}({currentUrl:r.currentUrl,redirectBackTarget:r.redirectBackTarget,handoffParams:a}))?null:{redirectBackTarget:n,handoffParams:a});if(null==d)return{type:"redirect",url:l};let u=d.handoffParams.state,h=d.handoffParams.codeChallenge,p=d.handoffParams.afterCallbackRedirectUrl;if(null==u||null==h){let a=await t.getCrossDomainHandoffParams(t.currentUrl);u??=a.state,h??=a.codeChallenge}return p??=t.currentUrl.toString(),{type:"cross-domain-authorize",redirectUri:d.redirectBackTarget.toString(),state:u,codeChallenge:h,afterCallbackRedirectUrl:p}}if("signIn"!==t.handlerName&&"signUp"!==t.handlerName&&"onboarding"!==t.handlerName&&"signOut"!==t.handlerName)throw new n.HexclaveAssertionError("Unexpected redirect-back-aware handler policy mismatch",{handlerName:t.handlerName,policy:a});return{type:"redirect",url:await h({handlerName:t.handlerName,rawHandlerUrl:t.rawHandlerUrl,currentUrl:t.currentUrl,localOAuthCallbackUrl:t.localOAuthCallbackUrl,getCrossDomainHandoffParams:t.getCrossDomainHandoffParams})}}r.crossDomainAuthQueryParams=i,r.getCrossDomainHandoffParamsFromCurrentUrl=function(t){let a=s(t.searchParams,"state"),r=s(t.searchParams,"codeChallenge");return null==a||null==r?null:{state:a,codeChallenge:r}},r.planRedirectToHandler=p},635195,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),r.subscribeSessionRefresh=function(t){let a=t.minMillisUntilExpiration??3e4,r=t.maxMillisSinceIssued??6e4,n=t.getSession(),o=n.startRefreshingAccessToken(a,r),i=t.tokenStore.onChange(()=>{let i=t.getSession();i.sessionKey!==n.sessionKey&&(o.unsubscribe(),o=(n=i).startRefreshingAccessToken(a,r)),t.onTokenStoreChange()});return()=>{i.unsubscribe(),o.unsubscribe()}}},242055,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(964359),o=t.r(869920),i=t.r(677332),s=t.r(818395),l=null,c=null,d=0,u=!1,h=null;function p(){if(c||!l||!(0,i.canMountIntoDom)())return;let a=++d,r=l;(0,o.runAsynchronously)(async()=>{let n=await (!h&&(h=t.A(213414).then(t=>t.openClickmapOverlay).catch(t=>{throw h=null,t})),h);a!==d||!c&&l===r&&(0,i.canMountIntoDom)()&&(c=n(r,()=>{c=null}))},{noErrorLogging:!0,onError:t=>{(0,s.captureError)("clickmap-mount",t)}})}r.mountClickmapOverlay=function(t){return l=t,u||(u=!0,window.addEventListener(n.CLICKMAP_OVERLAY_TOKEN_UPDATED_EVENT,p)),(0,i.canMountIntoDom)()&&function(){try{if("1"!==sessionStorage.getItem(n.CLICKMAP_OVERLAY_RESUME_STORAGE_KEY))return!1;return sessionStorage.removeItem(n.CLICKMAP_OVERLAY_RESUME_STORAGE_KEY),!0}catch{return!1}}()&&p(),()=>{l===t&&(l=null,d++,c?.())}}},255438,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(869920),o=t.r(677332),i=t.r(818395),s=t.r(490505),l="__hexclave-dev-tool-override";function c(){let t=function(){try{let t=localStorage.getItem(l);if("true"===t)return!0;if("false"===t)return!1}catch{}return null}();return null!==t?t:!!(0,o.canMountIntoDom)()&&(0,s.isLocalhost)(window.location.href)}let d=null,u=null,h=0,p=null;function y(){if(d&&(d(),d=null),!c()||!u||!(0,o.canMountIntoDom)())return;let a=++h,r=u;(0,n.runAsynchronously)(async()=>{let n=await (!p&&(p=t.A(929505).then(t=>t.createDevTool).catch(t=>{throw p=null,t})),p);a!==h||c()&&u===r&&(0,o.canMountIntoDom)()&&(d=n(r))},{noErrorLogging:!0,onError:t=>{(0,i.captureError)("dev-tool-mount",t)}})}window.HexclaveDevTool=window.HexclaveDevTool={enable(){try{localStorage.setItem(l,"true")}catch{}y(),console.log("[Stack DevTool] Enabled. Refresh if the panel does not appear.")},disable(){try{localStorage.setItem(l,"false")}catch{}d&&(d(),d=null),console.log("[Stack DevTool] Disabled.")},reset(){try{localStorage.removeItem(l)}catch{}c()?y():d&&(d(),d=null),console.log("[Stack DevTool] Reset to default (visible on localhost only).")}},r.mountDevTool=function(t){u=t,y();let a=d;return()=>{u=null,d===a&&null!=a&&(d=null,a())}}},952853,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),r.cookies=void 0,r.headers=void 0,r.isReactServer=!1},741188,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"});let n=t.r(493557),o=t.r(869920),i=t.r(898527),s=t.r(818395),l=t.r(866820);l=n.__toESM(l);let c=t.r(812811),d=t.r(204112),u=t.r(936457),h=t.r(490505),p=t.r(918715);p=n.__toESM(p);let y=t.r(39187),k=t.r(500621),f=t.r(251642),m=t.r(612399),g=t.r(777934),v=t.r(500709),w=t.r(726546),_=t.r(85533),x=t.r(130192),b=t.r(571781),M=t.r(323523),C=t.r(678238),S=t.r(71796),I=t.r(507736),L=t.r(828036),P=t.r(222792);P=n.__toESM(P);let j=t.r(317163),A=t.r(847296),T=t.r(660109),O=t.r(39215),R=t.r(974666),D=t.r(263203),z=t.r(289938),q=t.r(503552),E=t.r(378742),H=t.r(960802),F=t.r(511824),N=t.r(635195),V=t.r(117504),B=t.r(242055),U=t.r(255438),W=t.r(952853);W=n.__toESM(W);let G=!1;G=W.isReactServer;let Z=(0,M.scrambleDuringCompileTime)(p),K="stack_nested_cross_domain_auth_refresh_token_id",Y="stack_nested_cross_domain_auth_callback_url",X="redirect_uri",$="state",J="code_challenge",Q="code_challenge_method",ee="after_callback_redirect_url",et=["code","state","error","error_description","errorCode","message","details"],ea=new Map,er="stackauth_",en="hexclave_";function eo(t){return null==t.accessToken&&null==t.refreshToken?null:`Bearer ${er}${(0,g.encodeBase64)(new TextEncoder().encode(JSON.stringify(t)))}`}function ei(t,a){if("get"in t&&"function"==typeof t.get)return t.get(a);let r=a.toLowerCase();for(let[a,n]of Object.entries(t))if(a.toLowerCase()===r)return n;return null}async function es(){return(await W.headers?.())?.get("host")??null}r._HexclaveClientAppImplIncomplete=class t{static{this.LazyStackAdminAppImpl={value:void 0}}async _createCookieHelper(t){let a=void 0===t?this._tokenStoreInit:t;return"nextjs-cookie"===a||"cookie"===a?await (0,T.createCookieHelper)():await (0,T.createPlaceholderCookieHelper)()}async _getUserOAuthConnectionCacheFn(t){let a=await t.getUser(),r=!0;if(a&&a.oauth_providers.find(a=>a.id===t.providerId)||(r=!1),await t.getOrWaitOAuthToken()||(r=!1),!r&&t.redirect){if(!t.session)throw Error(i.deindent`
16
16
  Cannot add new scopes to a user that is not a CurrentUser. Please ensure that you are calling this function on a CurrentUser object, or remove the 'or: redirect' option.
17
17
 
18
18
  Often, you can solve this by calling this function in the browser instead, or by removing the 'or: redirect' option and dealing with the case where the user doesn't have enough permissions.
@@ -50,7 +50,7 @@ Defaulting to \`null\`.`));let u=O(i,d)?i:null,h=A(u)?l(u,d):void 0;return(0,w.j
50
50
  }
51
51
  const offset = el.getBoundingClientRect().top + document.documentElement.scrollTop;
52
52
  el.style.minHeight = \`calc(100vh - \${offset}px)\`;
53
- })(${JSON.stringify([r])})`;return a?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("div",{suppressHydrationWarning:!0,id:r,style:{minHeight:"100vh",alignSelf:"stretch",flexGrow:1,display:"flex",justifyContent:"center",alignItems:"center"},className:"stack-scope",children:t}),(0,i.jsx)(s.SsrScript,{script:n})]}):(0,i.jsx)(i.Fragment,{children:t})}},540752,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(837359);let n=t.r(866820),o=t.r(204112);r.useHash=()=>((0,o.suspendIfSsr)("useHash"),(0,n.useSyncExternalStore)(t=>{let a=setInterval(()=>t(),10);return()=>clearInterval(a)},()=>window.location.hash.substring(1)))},306118,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"});let n=t.r(493557),o=t.r(865268),i=t.r(866820);i=n.__toESM(i);let s=t.r(199586),l=t.r(980585),c=t.r(447979),d=t.r(540752);function u(t){let a=(0,c.useStackApp)().useNavigate(),r=-1===t.selectedIndex?0:t.selectedIndex;return t.items.map((t,n)=>"item"===t.type?(0,s.jsxs)(o.Button,{variant:"ghost",size:"sm",className:(0,o.cn)(r===n&&"sm:bg-muted","justify-start text-md text-zinc-800 dark:text-zinc-300 px-2 text-left"),onClick:()=>{t.id&&a("#"+t.id)},children:[t.icon,t.title]},n):(0,s.jsx)(o.Typography,{children:t.title},n))}function h(t){let a=t.items[-1===t.selectedIndex?0:t.selectedIndex];return(0,s.jsxs)("div",{className:"stack-scope flex w-full h-full max-w-full relative",children:[(0,s.jsxs)("div",{className:"flex max-w-[200px] min-w-[200px] border-r flex-col items-stretch gap-2 p-2 overflow-y-auto",children:[t.title&&(0,s.jsx)("div",{className:"mb-2 ml-2",children:(0,s.jsx)(o.Typography,{type:"h2",className:"text-lg font-semibold text-zinc-800 dark:text-zinc-300",children:t.title})}),(0,s.jsx)(u,{items:t.items,selectedIndex:t.selectedIndex})]}),(0,s.jsx)("div",{className:"flex-1 w-0 flex justify-center gap-4 py-2 px-4",children:(0,s.jsxs)("div",{className:"flex flex-col max-w-[800px] w-[800px]",children:[(0,s.jsxs)("div",{className:"mt-4 mb-6",children:[(0,s.jsx)(o.Typography,{type:"h4",className:"font-semibold",children:a.title}),a.description&&(0,s.jsx)(o.Typography,{variant:"secondary",type:"label",children:a.description})]}),(0,s.jsx)("div",{className:"flex-1",children:a.content})]})})]})}function p(t){let a=t.items[t.selectedIndex],r=(0,c.useStackApp)().useNavigate();return -1===t.selectedIndex?(0,s.jsxs)("div",{className:"flex flex-col gap-2 p-2",children:[t.title&&(0,s.jsx)("div",{className:"mb-2 ml-2",children:(0,s.jsx)(o.Typography,{type:"h2",className:"text-lg font-semibold text-zinc-800 dark:text-zinc-300",children:t.title})}),(0,s.jsx)(u,{items:t.items,selectedIndex:t.selectedIndex})]}):(0,s.jsxs)("div",{className:"flex-1 flex flex-col gap-4 py-2 px-4",children:[(0,s.jsxs)("div",{className:"flex flex-col",children:[(0,s.jsxs)("div",{className:"flex justify-between",children:[(0,s.jsx)(o.Typography,{type:"h4",className:"font-semibold",children:a.title}),(0,s.jsx)(o.Button,{variant:"ghost",size:"icon",onClick:()=>{r("#")},children:(0,s.jsx)(l.XIcon,{className:"h-5 w-5"})})]}),a.description&&(0,s.jsx)(o.Typography,{variant:"secondary",type:"label",children:a.description})]}),(0,s.jsx)("div",{className:"flex-1",children:a.content})]})}r.SidebarLayout=function(t){let a=(0,d.useHash)(),r=t.items.findIndex(t=>t.id&&t.id===a);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:(0,o.cn)("hidden sm:flex stack-scope h-full",t.className),children:(0,s.jsx)(h,{items:t.items,title:t.title,selectedIndex:r})}),(0,s.jsx)("div",{className:(0,o.cn)("sm:hidden stack-scope h-full",t.className),children:(0,s.jsx)(p,{items:t.items,title:t.title,selectedIndex:r})})]})}},242442,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(199586),i=t.r(980585);r.TeamIcon=function(t){return"personal"===t.team?(0,o.jsx)("div",{className:"flex items-center justify-center min-w-6 min-h-6 max-w-6 max-h-6 rounded bg-zinc-200",children:(0,o.jsx)(i.User2,{className:"w-4 h-4"})}):t.team.profileImageUrl?(0,o.jsx)(n.Avatar,{className:"min-w-6 min-h-6 max-w-6 max-h-6 rounded",children:(0,o.jsx)(n.AvatarImage,{src:t.team.profileImageUrl,alt:t.team.displayName})}):(0,o.jsx)("div",{className:"flex items-center justify-center min-w-6 min-h-6 max-w-6 max-h-6 rounded bg-zinc-200",children:(0,o.jsx)(n.Typography,{className:"text-zinc-800 dark:text-zinc-800",children:t.team.displayName.slice(0,1).toUpperCase()})})}},123251,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(837359);let n=t.r(287820),o=t.r(818395),i=t.r(555113),s=[[60,"second"],[60,"minute"],[24,"hour"],[7,"day"],[5,"week"]];function l(t){if(!(t instanceof Date))throw Error(`fromNow only accepts Date objects (received: ${t})`);let a=new Date().getTime()-t.getTime(),r=Math.abs(a)/1e3;if(r<15)return{result:"just now",secondsUntilChange:15-r};let n=1;for(let[t,o]of s){let s=Math.round(r);if(s<t)if(a<0)return{result:`in ${s} ${o}${1===s?"":"s"}`,secondsUntilChange:(0,i.remainder)((r-s+.5)*n,n)};else return{result:`${s} ${o}${1===s?"":"s"} ago`,secondsUntilChange:(0,i.remainder)((s-r-.5)*n,n)};n*=t,r/=t}return{result:t.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}),secondsUntilChange:1/0}}function c(t,a,r){if(!n.intervalSchema.isValidSync(r))throw new o.HexclaveAssertionError("Invalid interval",{interval:r});let[i,s]=r;switch(s){case"millisecond":t.setMilliseconds(t.getMilliseconds()+i*a);break;case"second":t.setSeconds(t.getSeconds()+i*a);break;case"minute":t.setMinutes(t.getMinutes()+i*a);break;case"hour":t.setHours(t.getHours()+i*a);break;case"day":t.setDate(t.getDate()+i*a);break;case"week":t.setDate(t.getDate()+i*a*7);break;case"month":t.setMonth(t.getMonth()+i*a);break;case"year":t.setFullYear(t.getFullYear()+i*a);break;default:throw new o.HexclaveAssertionError("Invalid interval despite schema validation",{interval:r})}return t}function d(t,a){return c(t,1,a)}r.FAR_FUTURE_DATE=new Date(864e13),r.addInterval=d,r.fromNow=function(t){return l(t).result},r.fromNowDetailed=l,r.getInputDatetimeLocalString=function(t){return(t=new Date(t)).setMinutes(t.getMinutes()-t.getTimezoneOffset()),t.toISOString().slice(0,19)},r.getIntervalsElapsed=function(t,a,r){let[n,o]=r;if(a<=t)return 0;if("day"===o||"week"===o){let r="day"===o?864e5:6048e5;return Math.floor((a.getTime()-t.getTime())/(r*n))}if(["month","year"].includes(o)){let r=0,i=new Date(t);for(;;){let t=d(new Date(i),[n,o]);if(t>a)break;i=t,r+=1}return r}return 0},r.isWeekend=function(t){return 0===t.getDay()||6===t.getDay()},r.subtractInterval=function(t,a){return c(t,-1,a)}},216322,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(199586);r.PageLayout=function(t){return(0,n.jsx)("div",{className:"flex flex-col gap-6",children:t.children})}},395782,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(869920),o=t.r(818395),i=t.r(865268),s=t.r(866820),l=t.r(199586),c=t.r(123251),d=t.r(951764),u=t.r(221913),h=t.r(216322);r.ActiveSessionsPage=function(t){let{t:a}=(0,u.useTranslation)(),r=(0,d.useUser)({or:t?.mockSessions||t?.mockMode?"return-null":"throw"}),[p,y]=(0,s.useState)(!t?.mockSessions),[k,f]=(0,s.useState)(!1),[m,g]=(0,s.useState)([]),[v,w]=(0,s.useState)(!1),_=t?.mockSessions?t.mockSessions.map(t=>({id:t.id,isCurrentSession:t.isCurrentSession,isImpersonation:t.isImpersonation||!1,createdAt:t.createdAt,lastUsedAt:t.lastUsedAt,geoInfo:t.geoInfo})):[{id:"current-session",isCurrentSession:!0,createdAt:new Date().toISOString(),lastUsedAt:new Date().toISOString(),geoInfo:{ip:"192.168.1.1",cityName:"San Francisco"}},{id:"mobile-session",isCurrentSession:!1,createdAt:new Date(Date.now()-864e5).toISOString(),lastUsedAt:new Date(Date.now()-72e5).toISOString(),geoInfo:{ip:"10.0.0.1",cityName:"New York"}}];(0,s.useEffect)(()=>{if(t?.mockSessions||t?.mockMode&&!r){g(_),y(!1);return}r&&(0,n.runAsynchronously)(async()=>{y(!0),g(await r.getActiveSessions()),y(!1)})},[r,t?.mockSessions]);let x=async a=>{if(t?.mockSessions)return void g(t=>t.filter(t=>t.id!==a));if(r)try{await r.revokeSession(a),g(t=>t.filter(t=>t.id!==a))}catch(t){throw(0,o.captureError)("session-revoke",{sessionId:a,error:t}),t}},b=async()=>{f(!0);try{if(t?.mockSessions)g(t=>t.filter(t=>t.isCurrentSession));else if(r){let t=m.filter(t=>!t.isCurrentSession).map(t=>r.revokeSession(t.id));await Promise.all(t),g(t=>t.filter(t=>t.isCurrentSession))}}catch(t){throw(0,o.captureError)("all-sessions-revoke",{error:t,sessionIds:m.map(t=>t.id)}),t}finally{f(!1),w(!1)}};return(0,l.jsx)(h.PageLayout,{children:(0,l.jsxs)("div",{children:[(0,l.jsxs)("div",{className:"flex justify-between items-center mb-2",children:[(0,l.jsx)(i.Typography,{className:"font-medium",children:a("Active Sessions")}),m.filter(t=>!t.isCurrentSession).length>0&&!p&&(v?(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(i.Button,{variant:"destructive",size:"sm",loading:k,onClick:b,children:a("Confirm")}),(0,l.jsx)(i.Button,{variant:"secondary",size:"sm",disabled:k,onClick:()=>w(!1),children:a("Cancel")})]}):(0,l.jsx)(i.Button,{variant:"outline",size:"sm",onClick:()=>w(!0),children:a("Revoke All Other Sessions")}))]}),(0,l.jsx)(i.Typography,{variant:"secondary",type:"footnote",className:"mb-4",children:a("These are devices where you're currently logged in. You can revoke access to end a session.")}),p?(0,l.jsx)(i.Skeleton,{className:"h-[300px] w-full rounded-md"}):(0,l.jsx)("div",{className:"border rounded-md",children:(0,l.jsxs)(i.Table,{children:[(0,l.jsx)(i.TableHeader,{children:(0,l.jsxs)(i.TableRow,{children:[(0,l.jsx)(i.TableHead,{className:"w-[200px]",children:a("Session")}),(0,l.jsx)(i.TableHead,{className:"w-[150px]",children:a("IP Address")}),(0,l.jsx)(i.TableHead,{className:"w-[150px]",children:a("Location")}),(0,l.jsx)(i.TableHead,{className:"w-[150px]",children:a("Last used")}),(0,l.jsx)(i.TableHead,{className:"w-[80px]"})]})}),(0,l.jsx)(i.TableBody,{children:0===m.length?(0,l.jsx)(i.TableRow,{children:(0,l.jsx)(i.TableCell,{colSpan:5,className:"text-center py-6",children:(0,l.jsx)(i.Typography,{variant:"secondary",children:a("No active sessions found")})})}):m.map(t=>(0,l.jsxs)(i.TableRow,{children:[(0,l.jsx)(i.TableCell,{children:(0,l.jsxs)("div",{className:"flex flex-col",children:[(0,l.jsx)(i.Typography,{children:t.isCurrentSession?a("Current Session"):a("Other Session")}),t.isImpersonation&&(0,l.jsx)(i.Badge,{variant:"secondary",className:"w-fit mt-1",children:a("Impersonation")}),(0,l.jsx)(i.Typography,{variant:"secondary",type:"footnote",children:a("Signed in {time}",{time:new Date(t.createdAt).toLocaleDateString()})})]})}),(0,l.jsx)(i.TableCell,{children:(0,l.jsx)(i.Typography,{children:t.geoInfo?.ip||a("-")})}),(0,l.jsx)(i.TableCell,{children:(0,l.jsx)(i.Typography,{children:t.geoInfo?.cityName||a("Unknown")})}),(0,l.jsx)(i.TableCell,{children:(0,l.jsxs)("div",{className:"flex flex-col",children:[(0,l.jsx)(i.Typography,{children:t.lastUsedAt?(0,c.fromNow)(new Date(t.lastUsedAt)):a("Never")}),(0,l.jsx)(i.Typography,{variant:"secondary",type:"footnote",title:t.lastUsedAt?new Date(t.lastUsedAt).toLocaleString():"",children:t.lastUsedAt?new Date(t.lastUsedAt).toLocaleDateString():""})]})}),(0,l.jsx)(i.TableCell,{align:"right",children:(0,l.jsx)(i.ActionCell,{items:[{item:a("Revoke"),onClick:()=>x(t.id),danger:!0,disabled:t.isCurrentSession,disabledTooltip:t.isCurrentSession?a("You cannot revoke your current session"):void 0}]})})]},t.id))})]})})]})})}},904517,(t,a,r)=>{var n=t.r(380063),o=function(t,a,r){if(t&&"reportValidity"in t){var o=n.get(r,a);t.setCustomValidity(o&&o.message||""),t.reportValidity()}},i=function(t,a){var r=function(r){var n=a.fields[r];n&&n.ref&&"reportValidity"in n.ref?o(n.ref,r,t):n&&n.refs&&n.refs.forEach(function(a){return o(a,r,t)})};for(var n in a.fields)r(n)},s=function(t,a){var r=l(a);return t.some(function(t){return l(t).match("^"+r+"\\.\\d+")})};function l(t){return t.replace(/\]|\[/g,"")}r.toNestErrors=function(t,a){a.shouldUseNativeValidation&&i(t,a);var r={};for(var o in t){var l=n.get(a.fields,o),c=Object.assign(t[o]||{},{ref:l&&l.ref});if(s(a.names||Object.keys(t),o)){var d=Object.assign({},n.get(r,o));n.set(d,"root",c),n.set(r,o,d)}else n.set(r,o,c)}return r},r.validateFieldsNatively=i},345747,(t,a,r)=>{var n=t.r(904517),o=t.r(380063);r.yupResolver=function(t,a,r){return void 0===r&&(r={}),function(i,s,l){try{return Promise.resolve(function(o){try{var c=(null!=a&&a.context,Promise.resolve(t["sync"===r.mode?"validateSync":"validate"](i,Object.assign({abortEarly:!1},a,{context:s}))).then(function(t){return l.shouldUseNativeValidation&&n.validateFieldsNatively({},l),{values:r.raw?Object.assign({},i):t,errors:{}}}))}catch(t){return o(t)}return c&&c.then?c.then(void 0,o):c}(function(t){var a;if(!t.inner)throw t;return{values:{},errors:n.toNestErrors((a=!l.shouldUseNativeValidation&&"all"===l.criteriaMode,(t.inner||[]).reduce(function(t,r){if(t[r.path]||(t[r.path]={message:r.message,type:r.type}),a){var n=t[r.path].types,i=n&&n[r.type];t[r.path]=o.appendErrors(r.path,a,t,r.type,i?[].concat(i,r.message):r.message)}return t},{})),l)}}))}catch(t){return Promise.reject(t)}}}},203834,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(199586);r.FormWarningText=function({text:t}){return t?(0,n.jsx)("div",{className:"text-red-500 text-sm mt-1",children:t}):null}},110110,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(869920),o=t.r(818395),i=t.r(345747),s=t.r(287820),l=t.r(865268),c=t.r(866820),d=t.r(380063),u=t.r(447979),h=t.r(203834),p=t.r(221913),y=t.r(199586),k={864e5:"1 day",6048e5:"7 days",2592e6:"30 days",7776e6:"90 days",31536e6:"1 year",63072e8:"Never"};r.CreateApiKeyDialog=function(t){let{t:a}=(0,p.useTranslation)();(0,u.useUser)({or:t.mockMode?"return-null":"redirect"});let[r,f]=(0,c.useState)(!1),{register:m,handleSubmit:g,formState:{errors:v},reset:w}=(0,d.useForm)({resolver:(0,i.yupResolver)((0,s.yupObject)({description:(0,s.yupString)().defined().nonEmpty(a("Description is required")),expiresIn:(0,s.yupString)().defined()})),defaultValues:{description:"",expiresIn:Object.keys(k)[2]}}),_=async a=>{f(!0);try{let r=new Date(Date.now()+parseInt(a.expiresIn)),n=await t.createApiKey({description:a.description,expiresAt:r});t.onKeyCreated&&t.onKeyCreated(n),w(),t.onOpenChange(!1)}catch(t){(0,o.captureError)("Failed to create API key",{error:t})}finally{f(!1)}};return(0,y.jsx)(l.ActionDialog,{open:t.open,onOpenChange:t.onOpenChange,title:a("Create API Key"),description:a("API keys grant programmatic access to your account."),children:(0,y.jsxs)("form",{onSubmit:t=>{t.preventDefault(),(0,n.runAsynchronously)(g(_))},className:"space-y-4",children:[(0,y.jsxs)("div",{className:"space-y-2",children:[(0,y.jsx)(l.Label,{htmlFor:"description",children:a("Description")}),(0,y.jsx)(l.Input,{id:"description",placeholder:a("e.g. Development, Production, CI/CD"),...m("description")}),v.description&&(0,y.jsx)(h.FormWarningText,{text:v.description.message})]}),(0,y.jsxs)("div",{className:"space-y-2",children:[(0,y.jsx)(l.Label,{htmlFor:"expiresIn",children:a("Expires In")}),(0,y.jsx)("select",{id:"expiresIn",className:"w-full p-2 border border-input rounded-md bg-background",...m("expiresIn"),children:Object.entries(k).map(([t,r])=>(0,y.jsx)("option",{value:t,children:a(r)},t))}),v.expiresIn&&(0,y.jsx)(h.FormWarningText,{text:v.expiresIn.message})]}),(0,y.jsxs)("div",{className:"flex justify-end gap-2 pt-4",children:[(0,y.jsx)(l.Button,{type:"button",variant:"secondary",onClick:()=>{w(),t.onOpenChange(!1)},children:a("Cancel")}),(0,y.jsx)(l.Button,{type:"submit",loading:r,children:a("Create")})]})]})})},r.ShowApiKeyDialog=function(t){let{t:a}=(0,p.useTranslation)();return(0,y.jsx)(l.ActionDialog,{open:!!t.apiKey,title:a("API Key"),okButton:{label:a("Close")},onClose:t.onClose,preventClose:!0,confirmText:a("I understand that I will not be able to view this key again."),children:(0,y.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,y.jsxs)(l.Typography,{children:[a("Here is your API key.")," ",(0,y.jsx)("span",{className:"font-bold",children:a("Copy it to a safe place. You will not be able to view it again.")})]}),(0,y.jsx)(l.CopyField,{type:"input",monospace:!0,value:t.apiKey?.value??"",label:a("Secret API Key")})]})})},r.expiresInOptions=k,r.neverInMs=63072e8},241878,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(866820),i=t.r(199586);function s(t){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.SearchToolbarItem,{table:t,placeholder:"Search table"}),(0,i.jsx)(n.DataTableFacetedFilter,{column:t.getColumn("status"),title:"Status",options:["valid","expired","revoked"].map(t=>({value:t,label:t}))})]})}function l(t){return(0,i.jsx)(n.ActionDialog,{open:t.open,onOpenChange:t.onOpenChange,title:"Revoke API Key",danger:!0,cancelButton:!0,okButton:{label:"Revoke Key",onClick:async()=>{await t.apiKey.revoke()}},confirmText:"I understand this will unlink all the apps using this API key",children:`Are you sure you want to revoke API key *****${t.apiKey.value.lastFour}?`})}function c({row:t}){let[a,r]=(0,o.useState)(!1);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(l,{apiKey:t.original,open:a,onOpenChange:r}),(0,i.jsx)(n.ActionCell,{invisible:"valid"!==t.original.status,items:[{item:"Revoke",danger:!0,onClick:()=>r(!0)}]})]})}let d=[{accessorKey:"description",header:({column:t})=>(0,i.jsx)(n.DataTableColumnHeader,{column:t,columnTitle:"Description"}),cell:({row:t})=>(0,i.jsx)(n.TextCell,{size:100,children:t.original.description})},{accessorKey:"status",header:({column:t})=>(0,i.jsx)(n.DataTableColumnHeader,{column:t,columnTitle:"Status"}),cell:({row:t})=>(0,i.jsx)(n.BadgeCell,{badges:[t.original.status]}),filterFn:n.standardFilterFn},{id:"value",accessorFn:t=>t.value.lastFour,header:({column:t})=>(0,i.jsx)(n.DataTableColumnHeader,{column:t,columnTitle:"Client Key"}),cell:({row:t})=>(0,i.jsxs)(n.TextCell,{children:["*******",t.original.value.lastFour]}),enableSorting:!1},{accessorKey:"expiresAt",header:({column:t})=>(0,i.jsx)(n.DataTableColumnHeader,{column:t,columnTitle:"Expires At"}),cell:({row:t})=>"revoked"===t.original.status?(0,i.jsx)(n.TextCell,{children:"-"}):t.original.expiresAt?(0,i.jsx)(n.DateCell,{date:t.original.expiresAt,ignoreAfterYears:50}):(0,i.jsx)(n.TextCell,{children:"Never"})},{accessorKey:"createdAt",header:({column:t})=>(0,i.jsx)(n.DataTableColumnHeader,{column:t,columnTitle:"Created At"}),cell:({row:t})=>(0,i.jsx)(n.DateCell,{date:t.original.createdAt,ignoreAfterYears:50})},{id:"actions",cell:({row:t})=>(0,i.jsx)(c,{row:t})}];r.ApiKeyTable=function(t){return(0,i.jsx)(n.DataTable,{data:(0,o.useMemo)(()=>t.apiKeys.map(t=>({...t,status:({valid:"valid","manually-revoked":"revoked",expired:"expired"})[t.whyInvalid()||"valid"]})).sort((t,a)=>t.status===a.status?t.createdAt<a.createdAt?1:-1:"valid"===t.status?-1:1),[t.apiKeys]),columns:d,toolbarRender:s,defaultColumnFilters:[],defaultSorting:[]})}},361158,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(866820),i=t.r(199586),s=t.r(951764),l=t.r(221913),c=t.r(216322),d=t.r(110110),u=t.r(241878);r.ApiKeysPage=function(t){let a,{t:r}=(0,l.useTranslation)(),h=!!(t?.mockApiKeys||t?.mockMode),p=(0,s.useUser)({or:h?"return-null":"redirect"});if(!h&&!p)return null;let y=t?.mockApiKeys?t.mockApiKeys.map(t=>({id:t.id,description:t.description,createdAt:new Date(t.createdAt),expiresAt:t.expiresAt?new Date(t.expiresAt):void 0,manuallyRevokedAt:t.manuallyRevokedAt?new Date(t.manuallyRevokedAt):null,value:{lastFour:t.id.slice(-4).padStart(4,"0")},type:"user",userId:"mock-user-id",update:async()=>{console.log("Mock API key update called")},revoke:async()=>{console.log("Mock API key revoke called")},isValid:()=>{let a=new Date,r=!!t.expiresAt&&new Date(t.expiresAt)<a,n=!!t.manuallyRevokedAt;return!r&&!n},whyInvalid:()=>{let a=new Date;return t.manuallyRevokedAt?"manually-revoked":t.expiresAt&&new Date(t.expiresAt)<a?"expired":null}})):[{id:"key-1",description:"Development Key",createdAt:new Date(Date.now()-1728e5),expiresAt:void 0,manuallyRevokedAt:null,value:{lastFour:"ey-1".slice(-4).padStart(4,"0")},type:"user",userId:"mock-user-id",update:async()=>{console.log("Mock API key update called")},revoke:async()=>{console.log("Mock API key revoke called")},isValid:()=>!0,whyInvalid:()=>null}];a=h?y:p?p.useApiKeys():[];let[k,f]=(0,o.useState)(!1),[m,g]=(0,o.useState)(null),v=d.CreateApiKeyDialog,w=d.ShowApiKeyDialog,_=async t=>{if(h)return{id:`key-${Date.now()}`,description:t.description,createdAt:new Date().toISOString(),expiresAt:t.expiresAt?.toISOString(),value:"sk_dev_mock_key_"+Math.random().toString(36).substring(2),update:async()=>{console.log("Mock API key update called")},revoke:async()=>{console.log("Mock API key revoke called")},isValid:()=>!0,whyInvalid:()=>null,type:"user",userId:"mock-user-id"};if(!p)throw Error("User not available");return await p.createApiKey(t)};return(0,i.jsxs)(c.PageLayout,{children:[(0,i.jsx)(n.Button,{onClick:()=>f(!0),children:r("Create API Key")}),(0,i.jsx)(u.ApiKeyTable,{apiKeys:a}),(0,i.jsx)(v,{open:k,onOpenChange:f,onKeyCreated:g,createApiKey:_,mockMode:h}),(0,i.jsx)(w,{apiKey:m,onClose:()=>g(null)})]})}},154706,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(869920),o=t.r(345747),i=t.r(287820),s=t.r(865268),l=t.r(866820),c=t.r(380063),d=t.r(199586),u=t.r(951764),h=t.r(221913),p=t.r(812942),y=t.r(203834);r.EmailsSection=function(t){let{t:a}=(0,h.useTranslation)(),r=(0,u.useUser)({or:t?.mockMode?"return-null":"redirect"});if(t?.mockMode&&!r)return(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"flex flex-col md:flex-row justify-between mb-4 gap-4",children:(0,d.jsx)(s.Typography,{className:"font-medium",children:a("Emails")})}),(0,d.jsx)(s.Typography,{variant:"secondary",children:a("Email management is not available in demo mode.")})]});if(!r)return null;let k=r.useContactChannels(),[f,m]=(0,l.useState)(0===k.length),[g,v]=(0,l.useState)(!1),[w,_]=(0,l.useState)(null),x=1===k.filter(t=>t.usedForAuth&&"email"===t.type).length;(0,l.useEffect)(()=>{w&&(0,n.runAsynchronously)(async()=>{let t=k.find(t=>t.value===w);t&&!t.isVerified&&await t.sendVerificationEmail(),_(null)})},[k,w]);let{register:b,handleSubmit:M,formState:{errors:C},reset:S}=(0,c.useForm)({resolver:(0,o.yupResolver)((0,i.yupObject)({email:(0,i.strictEmailSchema)(a("Please enter a valid email address")).notOneOf(k.map(t=>t.value),a("Email already exists")).defined().nonEmpty(a("Email is required"))}))}),I=async t=>{v(!0);try{await r.createContactChannel({type:"email",value:t.email,usedForAuth:!1}),_(t.email)}finally{v(!1)}m(!1),S()};return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex flex-col md:flex-row justify-between mb-4 gap-4",children:[(0,d.jsx)(s.Typography,{className:"font-medium",children:a("Emails")}),f?(0,d.jsxs)("form",{onSubmit:t=>{t.preventDefault(),(0,n.runAsynchronously)(M(I))},className:"flex flex-col",children:[(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(s.Input,{...b("email"),placeholder:a("Enter email")}),(0,d.jsx)(s.Button,{type:"submit",loading:g,children:a("Add")}),(0,d.jsx)(s.Button,{variant:"secondary",onClick:()=>{m(!1),S()},children:a("Cancel")})]}),C.email&&(0,d.jsx)(y.FormWarningText,{text:C.email.message})]}):(0,d.jsx)("div",{className:"flex md:justify-end",children:(0,d.jsx)(s.Button,{variant:"secondary",onClick:()=>m(!0),children:a("Add an email")})})]}),k.length>0?(0,d.jsx)("div",{className:"border rounded-md",children:(0,d.jsx)(s.Table,{children:(0,d.jsx)(s.TableBody,{children:k.filter(t=>"email"===t.type).sort((t,a)=>t.isPrimary!==a.isPrimary?t.isPrimary?-1:1:t.isVerified!==a.isVerified?t.isVerified?-1:1:0).map(t=>(0,d.jsxs)(s.TableRow,{children:[(0,d.jsx)(s.TableCell,{children:(0,d.jsxs)("div",{className:"flex flex-col md:flex-row gap-2 md:gap-4",children:[t.value,(0,d.jsxs)("div",{className:"flex gap-2",children:[t.isPrimary?(0,d.jsx)(s.Badge,{children:a("Primary")}):null,t.isVerified?null:(0,d.jsx)(s.Badge,{variant:"destructive",children:a("Unverified")}),t.usedForAuth?(0,d.jsx)(s.Badge,{variant:"outline",children:a("Used for sign-in")}):null]})]})}),(0,d.jsx)(s.TableCell,{className:"flex justify-end",children:(0,d.jsx)(s.ActionCell,{items:[...t.isVerified?[]:[{item:a("Send verification email"),onClick:async()=>{await t.sendVerificationEmail()}}],...!t.isPrimary&&t.isVerified?[{item:a("Set as primary"),onClick:async()=>{await t.update({isPrimary:!0})}}]:t.isPrimary?[]:[{item:a("Set as primary"),onClick:async()=>{},disabled:!0,disabledTooltip:a("Please verify your email first")}],...!t.usedForAuth&&t.isVerified?[{item:a("Use for sign-in"),onClick:async()=>{try{await t.update({usedForAuth:!0})}catch(t){p.KnownErrors.ContactChannelAlreadyUsedForAuthBySomeoneElse.isInstance(t)&&alert(a("This email is already used for sign-in by another user."))}}}]:[],...t.usedForAuth&&!x?[{item:a("Stop using for sign-in"),onClick:async()=>{await t.update({usedForAuth:!1})}}]:t.usedForAuth?[{item:a("Stop using for sign-in"),onClick:async()=>{},disabled:!0,disabledTooltip:a("You can not remove your last sign-in email")}]:[],...x&&t.usedForAuth?[{item:a("Remove"),onClick:async()=>{},disabled:!0,disabledTooltip:a("You can not remove your last sign-in email")}]:[{item:a("Remove"),onClick:async()=>{await t.delete()},danger:!0}]]})})]},t.id))})})}):null]})}},569526,t=>{"use strict";t.i(728667);var a=t.i(183973),r=t.i(200886);t.s(["createHOTPKeyURI",()=>a.createHOTPKeyURI,"createTOTPKeyURI",()=>r.createTOTPKeyURI,"generateHOTP",()=>a.generateHOTP,"generateTOTP",()=>r.generateTOTP,"verifyHOTP",()=>a.verifyHOTP,"verifyTOTP",()=>r.verifyTOTP,"verifyTOTPWithGracePeriod",()=>r.verifyTOTPWithGracePeriod])},658238,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(199586);r.Section=function(t){return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.Separator,{}),(0,o.jsxs)("div",{className:"flex flex-col sm:flex-row gap-2",children:[(0,o.jsxs)("div",{className:"sm:flex-1 flex flex-col justify-center",children:[(0,o.jsx)(n.Typography,{className:"font-medium",children:t.title}),t.description&&(0,o.jsx)(n.Typography,{variant:"secondary",type:"footnote",children:t.description})]}),(0,o.jsx)("div",{className:"sm:flex-1 sm:items-end flex flex-col gap-2 ",children:t.children})]})]})}},563827,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"});let n=t.r(493557),o=t.r(869920),i=t.r(818395),s=t.r(865268),l=t.r(866820),c=t.r(199586),d=t.r(951764),u=t.r(221913),h=t.r(569526),p=t.r(847579),y=t.r(28420),k=t.r(698870);k=n.__toESM(k);let f=t.r(658238);async function m(t,a,r){let n=(0,h.createTOTPKeyURI)(t.displayName,a.primaryEmail??a.id,r,30,6);return await k.toDataURL(n)}r.MfaSection=function(t){let{t:a}=(0,u.useTranslation)(),r=(0,d.useStackApp)().useProject(),n=(0,d.useUser)({or:t?.mockMode?"return-null":"throw"});if(t?.mockMode&&!n)return(0,c.jsx)(f.Section,{title:a("Multi-factor authentication"),description:a("MFA management is not available in demo mode."),children:(0,c.jsx)(s.Typography,{variant:"secondary",children:a("MFA management is not available in demo mode.")})});if(!n)return null;let[k,g]=(0,l.useState)(null),[v,w]=(0,l.useState)(null),[_,x]=(0,l.useState)(""),[b,M]=(0,l.useState)(!1),C=n.isMultiFactorRequired,[S,I]=(0,p.useAsyncCallback)(async()=>{await n.update({totpMultiFactorSecret:k}),g(null),w(null),x("")},[k,n]);return(0,l.useEffect)(()=>{M(!1),(0,o.runAsynchronouslyWithAlert)(async()=>{k&&(0,h.verifyTOTP)(k,30,6,_)&&await S(),M(!0)})},[_,k,S]),(0,c.jsx)(f.Section,{title:a("Multi-factor authentication"),description:a(C?"Multi-factor authentication is currently enabled.":"Multi-factor authentication is currently disabled."),children:(0,c.jsxs)("div",{className:"flex flex-col gap-4",children:[!C&&k&&(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(s.Typography,{children:a("Scan this QR code with your authenticator app:")}),(0,c.jsx)("img",{width:200,height:200,src:v??(0,i.throwErr)("TOTP QR code failed to generate"),alt:a("TOTP multi-factor authentication QR code")}),(0,c.jsx)(s.Typography,{children:a("Then, enter your six-digit MFA code:")}),(0,c.jsx)(s.Input,{value:_,onChange:t=>{M(!1),x(t.target.value)},placeholder:"123456",maxLength:6,disabled:I}),b&&6===_.length&&(0,c.jsx)(s.Typography,{variant:"destructive",children:a("Incorrect code. Please try again.")}),(0,c.jsx)("div",{className:"flex",children:(0,c.jsx)(s.Button,{variant:"secondary",onClick:()=>{g(null),w(null),x("")},children:a("Cancel")})})]}),(0,c.jsx)("div",{className:"flex gap-2",children:C?(0,c.jsx)(s.Button,{variant:"secondary",onClick:async()=>{await n.update({totpMultiFactorSecret:null})},children:a("Disable MFA")}):!k&&(0,c.jsx)(s.Button,{variant:"secondary",onClick:async()=>{let t=(0,y.generateRandomValues)(new Uint8Array(20));w(await m(r,n,t)),g(t)},children:a("Enable MFA")})})]})})}},960803,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(866820),i=t.r(199586),s=t.r(951764),l=t.r(221913),c=t.r(658238);r.OtpSection=function(t){let{t:a}=(0,l.useTranslation)(),r=(0,s.useUser)({or:t?.mockMode?"return-null":"throw"});if(t?.mockMode&&!r)return(0,i.jsx)(c.Section,{title:a("One-Time Password"),description:a("OTP management is not available in demo mode."),children:(0,i.jsx)(n.Typography,{variant:"secondary",children:a("OTP management is not available in demo mode.")})});if(!r)return null;let d=(0,s.useStackApp)().useProject(),u=r.useContactChannels(),h=r.otpAuthEnabled&&!r.hasPassword&&0===r.oauthProviders.length&&!r.passkeyAuthEnabled,[p,y]=(0,o.useState)(!1),k=u.filter(t=>"email"===t.type&&t.isVerified&&t.usedForAuth).length>0;if(!d.config.magicLinkEnabled)return null;let f=async()=>{await r.update({otpAuthEnabled:!1}),y(!1)};return(0,i.jsx)(c.Section,{title:a("OTP sign-in"),description:a(r.otpAuthEnabled?"OTP/magic link sign-in is currently enabled.":"Enable sign-in via magic link or OTP sent to your sign-in emails."),children:(0,i.jsx)("div",{className:"flex md:justify-end",children:k?r.otpAuthEnabled?h?(0,i.jsx)(n.Typography,{variant:"secondary",type:"label",children:a("OTP sign-in is enabled and cannot be disabled as it is currently the only sign-in method")}):p?(0,i.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,i.jsx)(n.Typography,{variant:"destructive",children:a("Are you sure you want to disable OTP sign-in? You will not be able to sign in with only emails anymore.")}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)(n.Button,{variant:"destructive",onClick:f,children:a("Disable")}),(0,i.jsx)(n.Button,{variant:"secondary",onClick:()=>y(!1),children:a("Cancel")})]})]}):(0,i.jsx)(n.Button,{variant:"secondary",onClick:()=>y(!0),children:a("Disable OTP")}):(0,i.jsx)(n.Button,{variant:"secondary",onClick:async()=>{await r.update({otpAuthEnabled:!0})},children:a("Enable OTP")}):(0,i.jsx)(n.Typography,{variant:"secondary",type:"label",children:a("To enable OTP sign-in, please add a verified sign-in email.")})})})}},557826,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(866820),i=t.r(199586),s=t.r(951764),l=t.r(221913),c=t.r(658238),d=t.r(447979);r.PasskeySection=function(t){let{t:a}=(0,l.useTranslation)(),r=(0,s.useUser)({or:t?.mockMode?"return-null":"throw"});if(t?.mockMode&&!r)return(0,i.jsx)(c.Section,{title:a("Passkey"),description:a("Passkey management is not available in demo mode."),children:(0,i.jsx)(n.Typography,{variant:"secondary",children:a("Passkey management is not available in demo mode.")})});if(!r)return null;let u=(0,d.useStackApp)().useProject(),h=r.useContactChannels(),p=r.passkeyAuthEnabled,y=r.passkeyAuthEnabled&&!r.hasPassword&&0===r.oauthProviders.length&&!r.otpAuthEnabled,[k,f]=(0,o.useState)(!1),m=h.filter(t=>"email"===t.type&&t.isVerified&&t.usedForAuth).length>0;if(!u.config.passkeyEnabled)return null;let g=async()=>{await r.update({passkeyAuthEnabled:!1}),f(!1)},v=async()=>{await r.registerPasskey()};return(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(c.Section,{title:a("Passkey"),description:a(p?"Passkey registered":"Register a passkey"),children:(0,i.jsxs)("div",{className:"flex md:justify-end gap-2",children:[!m&&(0,i.jsx)(n.Typography,{variant:"secondary",type:"label",children:a("To enable Passkey sign-in, please add a verified sign-in email.")}),m&&p&&y&&(0,i.jsx)(n.Typography,{variant:"secondary",type:"label",children:a("Passkey sign-in is enabled and cannot be disabled as it is currently the only sign-in method")}),!p&&m&&(0,i.jsx)("div",{children:(0,i.jsx)(n.Button,{onClick:v,variant:"secondary",children:a("Add new passkey")})}),m&&p&&!y&&!k&&(0,i.jsx)(n.Button,{variant:"secondary",onClick:()=>f(!0),children:a("Delete Passkey")}),m&&p&&!y&&k&&(0,i.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,i.jsx)(n.Typography,{variant:"destructive",children:a("Are you sure you want to disable Passkey sign-in? You will not be able to sign in with your passkey anymore.")}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)(n.Button,{variant:"destructive",onClick:g,children:a("Disable")}),(0,i.jsx)(n.Button,{variant:"secondary",onClick:()=>f(!1),children:a("Cancel")})]})]})]})})})}},252276,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(837359);let n=t.r(812811);r.getPasswordError=function(t){return t.length<8?new n.KnownErrors.PasswordTooShort(8):t.length>70?new n.KnownErrors.PasswordTooLong(70):void 0}},732452,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"});let n=t.r(493557),o=t.r(869920),i=t.r(345747),s=t.r(287820),l=t.r(865268),c=t.r(866820),d=t.r(380063),u=t.r(199586),h=t.r(252276),p=t.r(213596);p=n.__toESM(p);let y=t.r(951764),k=t.r(221913),f=t.r(203834),m=t.r(658238),g=t.r(447979);r.PasswordSection=function(t){let{t:a}=(0,k.useTranslation)(),r=(0,y.useUser)({or:t?.mockMode?"return-null":"throw"});if(t?.mockMode&&!r)return(0,u.jsx)(m.Section,{title:a("Password"),description:a("Password management is not available in demo mode."),children:(0,u.jsx)(l.Typography,{variant:"secondary",children:a("Password management is not available in demo mode.")})});if(!r)return null;let n=r.useContactChannels(),[v,w]=(0,c.useState)(!1),[_,x]=(0,c.useState)(!1),b=(0,g.useStackApp)().useProject(),{register:M,handleSubmit:C,setError:S,formState:{errors:I},clearErrors:L,reset:P}=(0,d.useForm)({resolver:(0,i.yupResolver)((0,s.yupObject)({oldPassword:r.hasPassword?s.passwordSchema.defined().nonEmpty(a("Please enter your old password")):(0,s.yupString)(),newPassword:s.passwordSchema.defined().nonEmpty(a("Please enter your password")).test({name:"is-valid-password",test:(t,a)=>{let r=(0,h.getPasswordError)(t);return!r||a.createError({message:r.message})}}),newPasswordRepeat:(0,s.yupString)().nullable().oneOf([p.ref("newPassword"),"",null],a("Passwords do not match")).defined().nonEmpty(a("Please repeat your password"))}))}),j=n.filter(t=>"email"===t.type&&t.usedForAuth).length>0,A=async t=>{x(!0);try{let{oldPassword:n,newPassword:o}=t;(r.hasPassword?await r.updatePassword({oldPassword:n,newPassword:o}):await r.setPassword({password:o}))?S("oldPassword",{type:"manual",message:a("Incorrect password")}):(P(),w(!1))}finally{x(!1)}},T=M("newPassword"),O=M("newPasswordRepeat");return b.config.credentialEnabled?(0,u.jsx)(m.Section,{title:a("Password"),description:r.hasPassword?a("Update your password"):a("Set a password for your account"),children:(0,u.jsx)("div",{className:"flex flex-col gap-4",children:v?(0,u.jsxs)("form",{onSubmit:t=>(0,o.runAsynchronouslyWithAlert)(C(A)(t)),noValidate:!0,children:[r.hasPassword&&(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(l.Label,{htmlFor:"old-password",className:"mb-1",children:a("Old password")}),(0,u.jsx)(l.Input,{id:"old-password",type:"password",autoComplete:"current-password",...M("oldPassword")}),(0,u.jsx)(f.FormWarningText,{text:I.oldPassword?.message?.toString()})]}),(0,u.jsx)(l.Label,{htmlFor:"new-password",className:"mt-4 mb-1",children:a("New password")}),(0,u.jsx)(l.PasswordInput,{id:"new-password",autoComplete:"new-password",...T,onChange:t=>{L("newPassword"),L("newPasswordRepeat"),(0,o.runAsynchronously)(T.onChange(t))}}),(0,u.jsx)(f.FormWarningText,{text:I.newPassword?.message?.toString()}),(0,u.jsx)(l.Label,{htmlFor:"repeat-password",className:"mt-4 mb-1",children:a("Repeat new password")}),(0,u.jsx)(l.PasswordInput,{id:"repeat-password",autoComplete:"new-password",...O,onChange:t=>{L("newPassword"),L("newPasswordRepeat"),(0,o.runAsynchronously)(O.onChange(t))}}),(0,u.jsx)(f.FormWarningText,{text:I.newPasswordRepeat?.message?.toString()}),(0,u.jsxs)("div",{className:"mt-6 flex gap-4",children:[(0,u.jsx)(l.Button,{type:"submit",loading:_,children:r.hasPassword?a("Update Password"):a("Set Password")}),(0,u.jsx)(l.Button,{variant:"secondary",onClick:()=>{w(!1),P()},children:a("Cancel")})]})]}):j?(0,u.jsx)(l.Button,{variant:"secondary",onClick:()=>w(!0),children:r.hasPassword?a("Update password"):a("Set password")}):(0,u.jsx)(l.Typography,{variant:"secondary",type:"label",children:a("To set a password, please add a sign-in email.")})})}):null}},692754,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(199586),o=t.r(216322),i=t.r(154706),s=t.r(563827),l=t.r(960803),c=t.r(557826),d=t.r(732452);r.EmailsAndAuthPage=function(t){return(0,n.jsxs)(o.PageLayout,{children:[(0,n.jsx)(i.EmailsSection,{mockMode:t?.mockMode}),(0,n.jsx)(d.PasswordSection,{mockMode:t?.mockMode}),(0,n.jsx)(c.PasskeySection,{mockMode:t?.mockMode}),(0,n.jsx)(l.OtpSection,{mockMode:t?.mockMode}),(0,n.jsx)(s.MfaSection,{mockMode:t?.mockMode})]})}},295166,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(199586),i=t.r(951764),s=t.r(221913),l=t.r(216322);r.NotificationsPage=function(){let{t}=(0,s.useTranslation)(),a=(0,i.useUser)({or:"redirect"}).useNotificationCategories();return(0,o.jsxs)(l.PageLayout,{children:[(0,o.jsx)(n.Separator,{}),(0,o.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,o.jsx)("div",{className:"sm:flex-1 flex flex-col justify-center pb-2",children:(0,o.jsx)(n.Typography,{className:"font-medium",children:t("Choose which emails you want to receive")})}),a.map(t=>(0,o.jsxs)("div",{className:"flex justify-start gap-4 items-center",children:[(0,o.jsx)(n.Switch,{checked:t.enabled,onCheckedChange:a=>void t.setEnabled(a),disabled:!t.canDisable}),(0,o.jsx)(n.Typography,{children:t.name}),!t.canDisable&&(0,o.jsx)(n.Typography,{variant:"secondary",type:"footnote",children:"(cannot be disabled)"})]},t.id))]})]})}},385516,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),r.fileToBase64=function(t){return new Promise((a,r)=>{let n=new FileReader;n.readAsDataURL(t),n.onload=()=>a(n.result),n.onerror=t=>r(t)})},r.validateBase64Image=function(t){return/^data:image\/(png|jpg|jpeg|gif|bmp|webp);base64,[A-Za-z0-9+/]+={0,2}$|^[A-Za-z0-9+/]+={0,2}$/.test(t)}},40522,(t,a,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=t.r(824627),o=t.r(866820),i=t.r(147864),s=function(t){if(t&&t.__esModule)return t;var a=Object.create(null);return t&&Object.keys(t).forEach(function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(a,r,n.get?n:{enumerable:!0,get:function(){return t[r]}})}}),a.default=t,Object.freeze(a)}(o),l=i&&"object"==typeof i&&"default"in i?i:{default:i};function c(t,a,r,n,o){void 0===o&&(o=0);var i=g(a.width,a.height,o),s=i.width,l=i.height;return{x:d(t.x,s,r.width,n),y:d(t.y,l,r.height,n)}}function d(t,a,r,n){var o=a*n/2-r/2;return v(t,-o,o)}function u(t,a){return Math.sqrt(Math.pow(t.y-a.y,2)+Math.pow(t.x-a.x,2))}function h(t,a){return 180*Math.atan2(a.y-t.y,a.x-t.x)/Math.PI}function p(t,a){return Math.min(t,Math.max(0,a))}function y(t,a){return a}function k(t,a,r,n,o,i){var s=g(a.width,a.height,r),l=v(n.width/s.width*(100/t.width),o,i);return{crop:{x:l*s.width/2-n.width/2-s.width*l*(t.x/100),y:l*s.height/2-n.height/2-s.height*l*(t.y/100)},zoom:l}}function f(t,a,r,n,o,i){void 0===r&&(r=0);var s,l=g(a.naturalWidth,a.naturalHeight,r),c=v((s=a.width>a.height?a.width/a.naturalWidth:a.height/a.naturalHeight,n.height>n.width?n.height/(t.height*s):n.width/(t.width*s)),o,i),d=n.height>n.width?n.height/t.height:n.width/t.width;return{crop:{x:((l.width-t.width)/2-t.x)*d,y:((l.height-t.height)/2-t.y)*d},zoom:c}}function m(t,a){return{x:(a.x+t.x)/2,y:(a.y+t.y)/2}}function g(t,a,r){var n=r*Math.PI/180;return{width:Math.abs(Math.cos(n)*t)+Math.abs(Math.sin(n)*a),height:Math.abs(Math.sin(n)*t)+Math.abs(Math.cos(n)*a)}}function v(t,a,r){return Math.min(Math.max(t,a),r)}function w(){for(var t=[],a=0;a<arguments.length;a++)t[a]=arguments[a];return t.filter(function(t){return"string"==typeof t&&!!(t.length>0)}).join(" ").trim()}r.default=function(t){function a(){var r=null!==t&&t.apply(this,arguments)||this;return r.cropperRef=s.createRef(),r.imageRef=s.createRef(),r.videoRef=s.createRef(),r.containerPosition={x:0,y:0},r.containerRef=null,r.styleRef=null,r.containerRect=null,r.mediaSize={width:0,height:0,naturalWidth:0,naturalHeight:0},r.dragStartPosition={x:0,y:0},r.dragStartCrop={x:0,y:0},r.gestureZoomStart=0,r.gestureRotationStart=0,r.isTouching=!1,r.lastPinchDistance=0,r.lastPinchRotation=0,r.rafDragTimeout=null,r.rafPinchTimeout=null,r.wheelTimer=null,r.currentDoc="u">typeof document?document:null,r.currentWindow="u">typeof window?window:null,r.resizeObserver=null,r.previousCropSize=null,r.isInitialized=!1,r.state={cropSize:null,hasWheelJustStarted:!1,mediaObjectFit:void 0},r.initResizeObserver=function(){if(void 0!==window.ResizeObserver&&r.containerRef){var t=!0;r.resizeObserver=new window.ResizeObserver(function(a){if(t){t=!1;return}r.computeSizes()}),r.resizeObserver.observe(r.containerRef)}},r.preventZoomSafari=function(t){return t.preventDefault()},r.cleanEvents=function(){r.currentDoc&&(r.currentDoc.removeEventListener("mousemove",r.onMouseMove),r.currentDoc.removeEventListener("mouseup",r.onDragStopped),r.currentDoc.removeEventListener("touchmove",r.onTouchMove),r.currentDoc.removeEventListener("touchend",r.onDragStopped),r.currentDoc.removeEventListener("gesturechange",r.onGestureChange),r.currentDoc.removeEventListener("gestureend",r.onGestureEnd),r.currentDoc.removeEventListener("scroll",r.onScroll))},r.clearScrollEvent=function(){r.containerRef&&r.containerRef.removeEventListener("wheel",r.onWheel),r.wheelTimer&&clearTimeout(r.wheelTimer)},r.onMediaLoad=function(){var t=r.computeSizes();t&&(r.previousCropSize=t,r.emitCropData(),r.setInitialCrop(t),r.isInitialized=!0),r.props.onMediaLoaded&&r.props.onMediaLoaded(r.mediaSize)},r.setInitialCrop=function(t){if(r.props.initialCroppedAreaPercentages){var a=k(r.props.initialCroppedAreaPercentages,r.mediaSize,r.props.rotation,t,r.props.minZoom,r.props.maxZoom),n=a.crop,o=a.zoom;r.props.onCropChange(n),r.props.onZoomChange&&r.props.onZoomChange(o)}else if(r.props.initialCroppedAreaPixels){var i=f(r.props.initialCroppedAreaPixels,r.mediaSize,r.props.rotation,t,r.props.minZoom,r.props.maxZoom),n=i.crop,o=i.zoom;r.props.onCropChange(n),r.props.onZoomChange&&r.props.onZoomChange(o)}},r.computeSizes=function(){var t,a,o,i,s,l,c=r.imageRef.current||r.videoRef.current;if(c&&r.containerRef){r.containerRect=r.containerRef.getBoundingClientRect(),r.saveContainerPosition();var d,u,h,p,y,k,f,m,v,w,_,x=r.containerRect.width/r.containerRect.height,b=(null==(t=r.imageRef.current)?void 0:t.naturalWidth)||(null==(a=r.videoRef.current)?void 0:a.videoWidth)||0,M=(null==(o=r.imageRef.current)?void 0:o.naturalHeight)||(null==(i=r.videoRef.current)?void 0:i.videoHeight)||0,C=c.offsetWidth<b||c.offsetHeight<M,S=b/M,I=void 0;if(C)switch(r.state.mediaObjectFit){default:case"contain":I=x>S?{width:r.containerRect.height*S,height:r.containerRect.height}:{width:r.containerRect.width,height:r.containerRect.width/S};break;case"horizontal-cover":I={width:r.containerRect.width,height:r.containerRect.width/S};break;case"vertical-cover":I={width:r.containerRect.height*S,height:r.containerRect.height}}else I={width:c.offsetWidth,height:c.offsetHeight};r.mediaSize=n.__assign(n.__assign({},I),{naturalWidth:b,naturalHeight:M}),r.props.setMediaSize&&r.props.setMediaSize(r.mediaSize);var L=r.props.cropSize?r.props.cropSize:(d=r.mediaSize.width,u=r.mediaSize.height,h=r.containerRect.width,p=r.containerRect.height,y=r.props.aspect,void 0===(k=r.props.rotation)&&(k=0),m=(f=g(d,u,k)).width,v=f.height,(w=Math.min(m,h))>(_=Math.min(v,p))*y?{width:_*y,height:_}:{width:w,height:w/y});return((null==(s=r.state.cropSize)?void 0:s.height)!==L.height||(null==(l=r.state.cropSize)?void 0:l.width)!==L.width)&&r.props.onCropSizeChange&&r.props.onCropSizeChange(L),r.setState({cropSize:L},r.recomputeCropPosition),r.props.setCropSize&&r.props.setCropSize(L),L}},r.saveContainerPosition=function(){if(r.containerRef){var t=r.containerRef.getBoundingClientRect();r.containerPosition={x:t.left,y:t.top}}},r.onMouseDown=function(t){r.currentDoc&&(t.preventDefault(),r.currentDoc.addEventListener("mousemove",r.onMouseMove),r.currentDoc.addEventListener("mouseup",r.onDragStopped),r.saveContainerPosition(),r.onDragStart(a.getMousePoint(t)))},r.onMouseMove=function(t){return r.onDrag(a.getMousePoint(t))},r.onScroll=function(t){r.currentDoc&&(t.preventDefault(),r.saveContainerPosition())},r.onTouchStart=function(t){!r.currentDoc||(r.isTouching=!0,(!r.props.onTouchRequest||r.props.onTouchRequest(t))&&(r.currentDoc.addEventListener("touchmove",r.onTouchMove,{passive:!1}),r.currentDoc.addEventListener("touchend",r.onDragStopped),r.saveContainerPosition(),2===t.touches.length?r.onPinchStart(t):1===t.touches.length&&r.onDragStart(a.getTouchPoint(t.touches[0]))))},r.onTouchMove=function(t){t.preventDefault(),2===t.touches.length?r.onPinchMove(t):1===t.touches.length&&r.onDrag(a.getTouchPoint(t.touches[0]))},r.onGestureStart=function(t){r.currentDoc&&(t.preventDefault(),r.currentDoc.addEventListener("gesturechange",r.onGestureChange),r.currentDoc.addEventListener("gestureend",r.onGestureEnd),r.gestureZoomStart=r.props.zoom,r.gestureRotationStart=r.props.rotation)},r.onGestureChange=function(t){if(t.preventDefault(),!r.isTouching){var n=a.getMousePoint(t),o=r.gestureZoomStart-1+t.scale;if(r.setNewZoom(o,n,{shouldUpdatePosition:!0}),r.props.onRotationChange){var i=r.gestureRotationStart+t.rotation;r.props.onRotationChange(i)}}},r.onGestureEnd=function(t){r.cleanEvents()},r.onDragStart=function(t){var a,o;r.dragStartPosition={x:t.x,y:t.y},r.dragStartCrop=n.__assign({},r.props.crop),null==(o=(a=r.props).onInteractionStart)||o.call(a)},r.onDrag=function(t){var a=t.x,n=t.y;r.currentWindow&&(r.rafDragTimeout&&r.currentWindow.cancelAnimationFrame(r.rafDragTimeout),r.rafDragTimeout=r.currentWindow.requestAnimationFrame(function(){if(r.state.cropSize&&void 0!==a&&void 0!==n){var t=a-r.dragStartPosition.x,o=n-r.dragStartPosition.y,i={x:r.dragStartCrop.x+t,y:r.dragStartCrop.y+o},s=r.props.restrictPosition?c(i,r.mediaSize,r.state.cropSize,r.props.zoom,r.props.rotation):i;r.props.onCropChange(s)}}))},r.onDragStopped=function(){var t,a;r.isTouching=!1,r.cleanEvents(),r.emitCropData(),null==(a=(t=r.props).onInteractionEnd)||a.call(t)},r.onWheel=function(t){if(r.currentWindow&&(!r.props.onWheelRequest||r.props.onWheelRequest(t))){t.preventDefault();var n=a.getMousePoint(t),o=l.default(t).pixelY,i=r.props.zoom-o*r.props.zoomSpeed/200;r.setNewZoom(i,n,{shouldUpdatePosition:!0}),r.state.hasWheelJustStarted||r.setState({hasWheelJustStarted:!0},function(){var t,a;return null==(a=(t=r.props).onInteractionStart)?void 0:a.call(t)}),r.wheelTimer&&clearTimeout(r.wheelTimer),r.wheelTimer=r.currentWindow.setTimeout(function(){return r.setState({hasWheelJustStarted:!1},function(){var t,a;return null==(a=(t=r.props).onInteractionEnd)?void 0:a.call(t)})},250)}},r.getPointOnContainer=function(t,a){var n=t.x,o=t.y;if(!r.containerRect)throw Error("The Cropper is not mounted");return{x:r.containerRect.width/2-(n-a.x),y:r.containerRect.height/2-(o-a.y)}},r.getPointOnMedia=function(t){var a=t.x,n=t.y,o=r.props,i=o.crop,s=o.zoom;return{x:(a+i.x)/s,y:(n+i.y)/s}},r.setNewZoom=function(t,a,n){var o=(void 0===n?{}:n).shouldUpdatePosition;if(r.state.cropSize&&r.props.onZoomChange){var i=v(t,r.props.minZoom,r.props.maxZoom);if(void 0===o||o){var s=r.getPointOnContainer(a,r.containerPosition),l=r.getPointOnMedia(s),d={x:l.x*i-s.x,y:l.y*i-s.y},u=r.props.restrictPosition?c(d,r.mediaSize,r.state.cropSize,i,r.props.rotation):d;r.props.onCropChange(u)}r.props.onZoomChange(i)}},r.getCropData=function(){var t,a,o,i,s,l,d,u,h,k,f,m,v,w,_;return r.state.cropSize?(t=r.props.restrictPosition?c(r.props.crop,r.mediaSize,r.state.cropSize,r.props.zoom,r.props.rotation):r.props.crop,a=r.mediaSize,o=r.state.cropSize,i=r.getAspect(),s=r.props.zoom,l=r.props.rotation,d=r.props.restrictPosition,void 0===l&&(l=0),void 0===d&&(d=!0),u=d?p:y,h=g(a.width,a.height,l),k=g(a.naturalWidth,a.naturalHeight,l),f={x:u(100,((h.width-o.width/s)/2-t.x/s)/h.width*100),y:u(100,((h.height-o.height/s)/2-t.y/s)/h.height*100),width:u(100,o.width/h.width*100/s),height:u(100,o.height/h.height*100/s)},m=Math.round(u(k.width,f.width*k.width/100)),v=Math.round(u(k.height,f.height*k.height/100)),w=k.width>=k.height*i?{width:Math.round(v*i),height:v}:{width:m,height:Math.round(m/i)},_=n.__assign(n.__assign({},w),{x:Math.round(u(k.width-w.width,f.x*k.width/100)),y:Math.round(u(k.height-w.height,f.y*k.height/100))}),{croppedAreaPercentages:f,croppedAreaPixels:_}):null},r.emitCropData=function(){var t=r.getCropData();if(t){var a=t.croppedAreaPercentages,n=t.croppedAreaPixels;r.props.onCropComplete&&r.props.onCropComplete(a,n),r.props.onCropAreaChange&&r.props.onCropAreaChange(a,n)}},r.emitCropAreaChange=function(){var t=r.getCropData();if(t){var a=t.croppedAreaPercentages,n=t.croppedAreaPixels;r.props.onCropAreaChange&&r.props.onCropAreaChange(a,n)}},r.recomputeCropPosition=function(){if(r.state.cropSize){var t,a,n=r.props.crop;if(r.isInitialized&&(null==(t=r.previousCropSize)?void 0:t.width)&&(null==(a=r.previousCropSize)?void 0:a.height)&&(Math.abs(r.previousCropSize.width-r.state.cropSize.width)>1e-6||Math.abs(r.previousCropSize.height-r.state.cropSize.height)>1e-6)){var o=r.state.cropSize.width/r.previousCropSize.width,i=r.state.cropSize.height/r.previousCropSize.height;n={x:r.props.crop.x*o,y:r.props.crop.y*i}}var s=r.props.restrictPosition?c(n,r.mediaSize,r.state.cropSize,r.props.zoom,r.props.rotation):n;r.previousCropSize=r.state.cropSize,r.props.onCropChange(s),r.emitCropData()}},r.onKeyDown=function(t){var a,o,i=r.props,s=i.crop,l=i.onCropChange,d=i.keyboardStep,u=i.zoom,h=i.rotation,p=d;if(r.state.cropSize){t.shiftKey&&(p*=.2);var y=n.__assign({},s);switch(t.key){case"ArrowUp":y.y-=p,t.preventDefault();break;case"ArrowDown":y.y+=p,t.preventDefault();break;case"ArrowLeft":y.x-=p,t.preventDefault();break;case"ArrowRight":y.x+=p,t.preventDefault();break;default:return}r.props.restrictPosition&&(y=c(y,r.mediaSize,r.state.cropSize,u,h)),t.repeat||null==(o=(a=r.props).onInteractionStart)||o.call(a),l(y)}},r.onKeyUp=function(t){var a,n;switch(t.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":t.preventDefault();break;default:return}r.emitCropData(),null==(n=(a=r.props).onInteractionEnd)||n.call(a)},r}return n.__extends(a,t),a.prototype.componentDidMount=function(){this.currentDoc&&this.currentWindow&&(this.containerRef&&(this.containerRef.ownerDocument&&(this.currentDoc=this.containerRef.ownerDocument),this.currentDoc.defaultView&&(this.currentWindow=this.currentDoc.defaultView),this.initResizeObserver(),void 0===window.ResizeObserver&&this.currentWindow.addEventListener("resize",this.computeSizes),this.props.zoomWithScroll&&this.containerRef.addEventListener("wheel",this.onWheel,{passive:!1}),this.containerRef.addEventListener("gesturestart",this.onGestureStart)),this.currentDoc.addEventListener("scroll",this.onScroll),this.props.disableAutomaticStylesInjection||(this.styleRef=this.currentDoc.createElement("style"),this.styleRef.setAttribute("type","text/css"),this.props.nonce&&this.styleRef.setAttribute("nonce",this.props.nonce),this.styleRef.innerHTML=".reactEasyCrop_Container {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: hidden;\n user-select: none;\n touch-action: none;\n cursor: move;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.reactEasyCrop_Image,\n.reactEasyCrop_Video {\n will-change: transform; /* this improves performances and prevent painting issues on iOS Chrome */\n}\n\n.reactEasyCrop_Contain {\n max-width: 100%;\n max-height: 100%;\n margin: auto;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n}\n.reactEasyCrop_Cover_Horizontal {\n width: 100%;\n height: auto;\n}\n.reactEasyCrop_Cover_Vertical {\n width: auto;\n height: 100%;\n}\n\n.reactEasyCrop_CropArea {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n border: 1px solid rgba(255, 255, 255, 0.5);\n box-sizing: border-box;\n box-shadow: 0 0 0 9999em;\n color: rgba(0, 0, 0, 0.5);\n overflow: hidden;\n}\n\n.reactEasyCrop_CropAreaRound {\n border-radius: 50%;\n}\n\n.reactEasyCrop_CropAreaGrid::before {\n content: ' ';\n box-sizing: border-box;\n position: absolute;\n border: 1px solid rgba(255, 255, 255, 0.5);\n top: 0;\n bottom: 0;\n left: 33.33%;\n right: 33.33%;\n border-top: 0;\n border-bottom: 0;\n}\n\n.reactEasyCrop_CropAreaGrid::after {\n content: ' ';\n box-sizing: border-box;\n position: absolute;\n border: 1px solid rgba(255, 255, 255, 0.5);\n top: 33.33%;\n bottom: 33.33%;\n left: 0;\n right: 0;\n border-left: 0;\n border-right: 0;\n}\n",this.currentDoc.head.appendChild(this.styleRef)),this.imageRef.current&&this.imageRef.current.complete&&this.onMediaLoad(),this.props.setImageRef&&this.props.setImageRef(this.imageRef),this.props.setVideoRef&&this.props.setVideoRef(this.videoRef),this.props.setCropperRef&&this.props.setCropperRef(this.cropperRef))},a.prototype.componentWillUnmount=function(){var t,a;this.currentDoc&&this.currentWindow&&(void 0===window.ResizeObserver&&this.currentWindow.removeEventListener("resize",this.computeSizes),null==(t=this.resizeObserver)||t.disconnect(),this.containerRef&&this.containerRef.removeEventListener("gesturestart",this.preventZoomSafari),this.styleRef&&(null==(a=this.styleRef.parentNode)||a.removeChild(this.styleRef)),this.cleanEvents(),this.props.zoomWithScroll&&this.clearScrollEvent())},a.prototype.componentDidUpdate=function(t){t.rotation!==this.props.rotation?(this.computeSizes(),this.recomputeCropPosition()):t.aspect!==this.props.aspect||t.objectFit!==this.props.objectFit?this.computeSizes():t.zoom!==this.props.zoom?this.recomputeCropPosition():(null==(a=t.cropSize)?void 0:a.height)!==(null==(r=this.props.cropSize)?void 0:r.height)||(null==(n=t.cropSize)?void 0:n.width)!==(null==(o=this.props.cropSize)?void 0:o.width)?this.computeSizes():((null==(i=t.crop)?void 0:i.x)!==(null==(s=this.props.crop)?void 0:s.x)||(null==(l=t.crop)?void 0:l.y)!==(null==(c=this.props.crop)?void 0:c.y))&&this.emitCropAreaChange(),t.zoomWithScroll!==this.props.zoomWithScroll&&this.containerRef&&(this.props.zoomWithScroll?this.containerRef.addEventListener("wheel",this.onWheel,{passive:!1}):this.clearScrollEvent()),t.video!==this.props.video&&(null==(d=this.videoRef.current)||d.load());var a,r,n,o,i,s,l,c,d,u=this.getObjectFit();u!==this.state.mediaObjectFit&&this.setState({mediaObjectFit:u},this.computeSizes)},a.prototype.getAspect=function(){var t=this.props,a=t.cropSize,r=t.aspect;return a?a.width/a.height:r},a.prototype.getObjectFit=function(){var t,a,r,n;if("cover"===this.props.objectFit){if((this.imageRef.current||this.videoRef.current)&&this.containerRef){this.containerRect=this.containerRef.getBoundingClientRect();var o=this.containerRect.width/this.containerRect.height;return((null==(t=this.imageRef.current)?void 0:t.naturalWidth)||(null==(a=this.videoRef.current)?void 0:a.videoWidth)||0)/((null==(r=this.imageRef.current)?void 0:r.naturalHeight)||(null==(n=this.videoRef.current)?void 0:n.videoHeight)||0)<o?"horizontal-cover":"vertical-cover"}return"horizontal-cover"}return this.props.objectFit},a.prototype.onPinchStart=function(t){var r=a.getTouchPoint(t.touches[0]),n=a.getTouchPoint(t.touches[1]);this.lastPinchDistance=u(r,n),this.lastPinchRotation=h(r,n),this.onDragStart(m(r,n))},a.prototype.onPinchMove=function(t){var r=this;if(this.currentDoc&&this.currentWindow){var n=a.getTouchPoint(t.touches[0]),o=a.getTouchPoint(t.touches[1]),i=m(n,o);this.onDrag(i),this.rafPinchTimeout&&this.currentWindow.cancelAnimationFrame(this.rafPinchTimeout),this.rafPinchTimeout=this.currentWindow.requestAnimationFrame(function(){var t=u(n,o),a=r.props.zoom*(t/r.lastPinchDistance);r.setNewZoom(a,i,{shouldUpdatePosition:!1}),r.lastPinchDistance=t;var s=h(n,o),l=r.props.rotation+(s-r.lastPinchRotation);r.props.onRotationChange&&r.props.onRotationChange(l),r.lastPinchRotation=s})}},a.prototype.render=function(){var t,a=this,r=this.props,o=r.image,i=r.video,l=r.mediaProps,c=r.cropperProps,d=r.transform,u=r.crop,h=u.x,p=u.y,y=r.rotation,k=r.zoom,f=r.cropShape,m=r.showGrid,g=r.roundCropAreaPixels,v=r.style,_=v.containerStyle,x=v.cropAreaStyle,b=v.mediaStyle,M=r.classes,C=M.containerClassName,S=M.cropAreaClassName,I=M.mediaClassName,L=null!=(t=this.state.mediaObjectFit)?t:this.getObjectFit();return s.createElement("div",{onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,ref:function(t){return a.containerRef=t},"data-testid":"container",style:_,className:w("reactEasyCrop_Container",C)},o?s.createElement("img",n.__assign({alt:"",className:w("reactEasyCrop_Image","contain"===L&&"reactEasyCrop_Contain","horizontal-cover"===L&&"reactEasyCrop_Cover_Horizontal","vertical-cover"===L&&"reactEasyCrop_Cover_Vertical",I)},l,{src:o,ref:this.imageRef,style:n.__assign(n.__assign({},b),{transform:d||"translate(".concat(h,"px, ").concat(p,"px) rotate(").concat(y,"deg) scale(").concat(k,")")}),onLoad:this.onMediaLoad})):i&&s.createElement("video",n.__assign({autoPlay:!0,playsInline:!0,loop:!0,muted:!0,className:w("reactEasyCrop_Video","contain"===L&&"reactEasyCrop_Contain","horizontal-cover"===L&&"reactEasyCrop_Cover_Horizontal","vertical-cover"===L&&"reactEasyCrop_Cover_Vertical",I)},l,{ref:this.videoRef,onLoadedMetadata:this.onMediaLoad,style:n.__assign(n.__assign({},b),{transform:d||"translate(".concat(h,"px, ").concat(p,"px) rotate(").concat(y,"deg) scale(").concat(k,")")}),controls:!1}),(Array.isArray(i)?i:[{src:i}]).map(function(t){return s.createElement("source",n.__assign({key:t.src},t))})),this.state.cropSize&&s.createElement("div",n.__assign({ref:this.cropperRef,style:n.__assign(n.__assign({},x),{width:g?Math.round(this.state.cropSize.width):this.state.cropSize.width,height:g?Math.round(this.state.cropSize.height):this.state.cropSize.height}),tabIndex:0,onKeyDown:this.onKeyDown,onKeyUp:this.onKeyUp,"data-testid":"cropper",className:w("reactEasyCrop_CropArea","round"===f&&"reactEasyCrop_CropAreaRound",m&&"reactEasyCrop_CropAreaGrid",S)},c)))},a.defaultProps={zoom:1,rotation:0,aspect:4/3,maxZoom:3,minZoom:1,cropShape:"rect",objectFit:"contain",showGrid:!0,style:{},classes:{},mediaProps:{},cropperProps:{},zoomSpeed:1,restrictPosition:!0,zoomWithScroll:!0,keyboardStep:1},a.getMousePoint=function(t){return{x:Number(t.clientX),y:Number(t.clientY)}},a.getTouchPoint=function(t){return{x:Number(t.clientX),y:Number(t.clientY)}},a}(s.Component),r.getInitialCropFromCroppedAreaPercentages=k,r.getInitialCropFromCroppedAreaPixels=f},914750,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(199586),i=t.r(980585);r.UserAvatar=function(t){let a=t.user;return(0,o.jsxs)(n.Avatar,{style:{height:t.size||34,width:t.size||34},className:t.border?"border":"",children:[(0,o.jsx)(n.AvatarImage,{src:a?.profileImageUrl||""}),(0,o.jsx)(n.AvatarFallback,{children:a?(0,o.jsx)("div",{className:"font-medium",style:{fontSize:.4*(t.size||34)},children:(a.displayName||a.primaryEmail)?.slice(0,2).toUpperCase()}):(0,o.jsx)(i.UserRound,{className:"text-zinc-500",size:.6*(t.size||34)})})]})}},388795,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"});let n=t.r(493557),o=t.r(869920),i=t.r(865268),s=t.r(866820),l=t.r(221913),c=t.r(199586),d=t.r(980585),u=t.r(385516),h=t.r(674214);h=n.__toESM(h);let p=t.r(40522);p=n.__toESM(p);let y=t.r(914750);async function k(t){try{return(await (await fetch(t,{method:"HEAD"})).blob()).type.startsWith("image/")}catch(t){return!1}}async function f(t,a){let r=await new Promise((a,r)=>{let n=new Image;n.addEventListener("load",()=>a(n)),n.addEventListener("error",t=>r(t)),n.setAttribute("crossOrigin","anonymous"),n.src=t}),n=document.createElement("canvas"),o=n.getContext("2d");if(!o)return null;let i={x:Math.max(0,a.x),y:Math.max(0,a.y),width:Math.max(1,a.width),height:Math.max(1,a.height)};return n.width=i.width,n.height=i.height,o.drawImage(r,i.x,i.y,i.width,i.height,0,0,i.width,i.height),n.toDataURL("image/jpeg")}r.ProfileImageEditor=function(t){let{t:a}=(0,l.useTranslation)(),[r,n]=(0,s.useState)(null),[m,g]=(0,s.useState)(null),[v,w]=(0,s.useState)({x:0,y:0}),[_,x]=(0,s.useState)(1),[b,M]=(0,s.useState)(null);function C(){n(null),g(null),w({x:0,y:0}),x(1),M(null)}let S=(0,s.useCallback)(t=>{w(t)},[]),I=(0,s.useCallback)((t,a)=>{M(a)},[]),L=(0,s.useCallback)(t=>{x(t)},[]);return r?(0,c.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,c.jsx)("div",{className:"relative w-64 h-64",children:(0,c.jsx)(p.default,{image:r||t.user.profileImageUrl||"",crop:v,zoom:_,aspect:1,cropShape:"round",showGrid:!1,onCropChange:S,onCropComplete:I,onZoomChange:L})}),(0,c.jsx)(i.Slider,{min:1,max:3,step:.1,value:[_],onValueChange:t=>L(t[0])}),(0,c.jsxs)("div",{className:"flex flex-row gap-2",children:[(0,c.jsx)(i.Button,{onClick:async()=>{if(r&&b){let n=await f(r,b);if(n){let a=await (0,h.default)(await h.default.getFilefromDataUrl(n,"profile-image"),{maxSizeMB:.1,fileType:"image/jpeg"}),r=await h.default.getDataUrlFromFile(a);await t.onProfileImageUrlChange(r),C()}else g(a("Could not crop image."))}},children:a("Save")}),(0,c.jsx)(i.Button,{variant:"secondary",onClick:C,children:a("Cancel")})]})]}):(0,c.jsxs)("div",{className:"flex flex-col",children:[(0,c.jsxs)("div",{className:"cursor-pointer relative",onClick:function(){let t=document.createElement("input");t.type="file",t.onchange=r=>{let i=r.target.files?.[0];i&&(0,o.runAsynchronouslyWithAlert)(async()=>{let r=await (0,u.fileToBase64)(i);await k(r)?(n(r),g(null)):g(a("Invalid image")),t.remove()})},t.click()},children:[(0,c.jsx)(y.UserAvatar,{size:60,user:t.user,border:!0}),(0,c.jsx)("div",{className:"absolute top-0 left-0 h-[60px] w-[60px] bg-gray-500/20 backdrop-blur-sm items-center justify-center rounded-full flex opacity-0 hover:opacity-100 transition-opacity",children:(0,c.jsx)("div",{className:"bg-background p-2 rounded-full",children:(0,c.jsx)(d.Upload,{className:"h-5 w-5"})})})]}),m&&(0,c.jsx)(i.Typography,{variant:"destructive",type:"label",children:m})]})},r.checkImageUrl=k,r.getCroppedImg=f},310745,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(866820),i=t.r(199586),s=t.r(980585),l=t.r(221913);r.EditableText=function(t){let[a,r]=(0,o.useState)(!1),[c,d]=(0,o.useState)(t.value),{t:u}=(0,l.useTranslation)();return(0,i.jsx)("div",{className:"flex items-center gap-2",children:a?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.Input,{value:c,onChange:t=>d(t.target.value)}),(0,i.jsx)(n.Button,{size:"sm",onClick:async()=>{await t.onSave?.(c),r(!1)},children:u("Save")}),(0,i.jsx)(n.Button,{size:"sm",variant:"secondary",onClick:()=>{d(t.value),r(!1)},children:u("Cancel")})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.Typography,{children:t.value}),(0,i.jsx)(n.Button,{onClick:()=>r(!0),size:"icon",variant:"ghost",children:(0,i.jsx)(s.Edit,{className:"w-4 h-4"})})]})})}},864365,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(199586),o=t.r(951764),i=t.r(221913),s=t.r(216322),l=t.r(658238),c=t.r(388795),d=t.r(310745);r.ProfilePage=function(t){let{t:a}=(0,i.useTranslation)(),r=(0,o.useUser)({or:t?.mockUser?"return-null":"redirect"}),u=t?.mockUser?{displayName:t.mockUser.displayName||"John Doe",profileImageUrl:t.mockUser.profileImageUrl||null,update:async()=>{console.log("Mock update called")}}:r;return u?(0,n.jsxs)(s.PageLayout,{children:[(0,n.jsx)(l.Section,{title:a("User name"),description:a("This is a display name and is not used for authentication"),children:(0,n.jsx)(d.EditableText,{value:u.displayName||"",onSave:async t=>{await u.update({displayName:t})}})}),(0,n.jsx)(l.Section,{title:a("Profile image"),description:a("Upload your own image as your avatar"),children:(0,n.jsx)(c.ProfileImageEditor,{user:u,onProfileImageUrlChange:async t=>{await u.update({profileImageUrl:t})}})})]}):null}},410724,t=>{"use strict";t.i(652676);var a=t.i(339322);t.s(["loadStripe",()=>a.loadStripe])},237718,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(869920),o=t.r(865268),i=t.r(866820),s=t.r(199586),l=t.r(812811),c=t.r(39187),d=t.r(221913),u=t.r(658238),h=t.r(447979),p=t.r(892544),y=t.r(410724),k=t.r(39215);function f(t){return[t.brand?t.brand.toUpperCase():null,t.last4?`•••• ${t.last4}`:null,t.exp_month&&t.exp_year?`exp ${t.exp_month}/${t.exp_year}`:null].filter(Boolean).join(" · ")}function m(t){let a=(0,p.useStripe)(),r=(0,p.useElements)(),[n,l]=(0,i.useState)(null),c="color-scheme"in document.documentElement.style&&"dark"===document.documentElement.style["color-scheme"];return(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(o.Typography,{className:"font-medium",children:"Card details"}),(0,s.jsx)("div",{className:"rounded-md border border-input p-3",children:(0,s.jsx)(p.CardElement,{options:{hidePostalCode:!0,style:{base:{color:c?"white":"black"}}}})})]}),n&&(0,s.jsx)(o.Typography,{variant:"secondary",type:"footnote",children:n}),(0,s.jsx)(o.Button,{onClick:async()=>{if(!a||!r)return void l("Stripe is still loading. Please try again.");let n=r.getElement(p.CardElement);if(!n)return void l("Card element not found.");let o=await a.confirmCardSetup(t.clientSecret,{payment_method:{card:n}});o.error?l(o.error.message??"Failed to save payment method."):o.setupIntent.id?await t.onSetupIntentSucceeded(o.setupIntent.id):l("No setup intent returned from Stripe.")},children:"Save payment method"})]})}function g(t){let{t:a}=(0,d.useTranslation)();return(0,s.jsxs)("div",{className:"space-y-4",children:[t.title&&(0,s.jsx)(o.Typography,{className:"font-medium",children:t.title}),(0,s.jsxs)(u.Section,{title:a("Payment method"),description:a("Manage the default payment method used for subscriptions and invoices."),children:[(0,s.jsx)(o.Typography,{children:f({id:"pm_mock",brand:"visa",last4:"4242",exp_month:12,exp_year:2030})}),(0,s.jsx)(o.Button,{disabled:!0,children:a("Update payment method")})]}),(0,s.jsx)(u.Section,{title:a("Active plans"),description:a("View your active plans and purchases."),children:(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)(o.Typography,{className:"truncate",children:a("Pro")}),(0,s.jsxs)(o.Typography,{variant:"secondary",type:"footnote",children:[a("Renews on")," Jan 1, 2030"]})]}),(0,s.jsx)(o.Button,{disabled:!0,variant:"secondary",color:"neutral",children:a("Cancel subscription")})]}),(0,s.jsx)("div",{className:"flex items-start justify-between gap-4",children:(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)(o.Typography,{className:"truncate",children:a("Credits pack")}),(0,s.jsx)(o.Typography,{variant:"secondary",type:"footnote",children:a("One-time purchase")})]})})]})})]})}function v(t){let{t:a}=(0,d.useTranslation)(),r=(0,h.useStackApp)(),g=t.customer.useBilling().defaultPaymentMethod,v=t.customer.useProducts(),w=t.customer.useInvoices({limit:10}),_=v.filter(a=>a.customerType===t.customerType),[x,b]=(0,i.useState)(!1),[M,C]=(0,i.useState)(null),[S,I]=(0,i.useState)(null),[L,P]=(0,i.useState)(null),[j,A]=(0,i.useState)(null),[T,O]=(0,i.useState)(null),R=(0,i.useMemo)(()=>{if(!S)return null;let t=k.envVars.HEXCLAVE_STRIPE_PUBLISHABLE_KEY;return t?(0,y.loadStripe)(t,{stripeAccount:S}):null},[S]),D=t=>{t instanceof l.KnownErrors.DefaultPaymentMethodRequired?(0,o.toast)({title:a("No default payment method"),description:a("Add a payment method before switching plans."),variant:"destructive"}):alert(`An unhandled error occurred. Please ${"development"===k.envVars.NODE_ENV?"check the browser console for the full error.":"report this to the developer."}
53
+ })(${JSON.stringify([r])})`;return a?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("div",{suppressHydrationWarning:!0,id:r,style:{minHeight:"100vh",alignSelf:"stretch",flexGrow:1,display:"flex",justifyContent:"center",alignItems:"center"},className:"stack-scope",children:t}),(0,i.jsx)(s.SsrScript,{script:n})]}):(0,i.jsx)(i.Fragment,{children:t})}},540752,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(837359);let n=t.r(866820),o=t.r(204112);r.useHash=()=>((0,o.suspendIfSsr)("useHash"),(0,n.useSyncExternalStore)(t=>{let a=setInterval(()=>t(),10);return()=>clearInterval(a)},()=>window.location.hash.substring(1)))},306118,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"});let n=t.r(493557),o=t.r(865268),i=t.r(866820);i=n.__toESM(i);let s=t.r(199586),l=t.r(980585),c=t.r(540752),d=t.r(447979);function u(t){let a=(0,d.useStackApp)().useNavigate(),r=-1===t.selectedIndex?0:t.selectedIndex;return t.items.map((t,n)=>"item"===t.type?(0,s.jsxs)(o.Button,{variant:"ghost",size:"sm",className:(0,o.cn)(r===n&&"sm:bg-muted","justify-start text-md text-zinc-800 dark:text-zinc-300 px-2 text-left"),onClick:()=>{t.id&&a("#"+t.id)},children:[t.icon,t.title]},n):(0,s.jsx)(o.Typography,{children:t.title},n))}function h(t){let a=t.items[-1===t.selectedIndex?0:t.selectedIndex];return(0,s.jsxs)("div",{className:"stack-scope flex w-full h-full max-w-full relative",children:[(0,s.jsxs)("div",{className:"flex max-w-[200px] min-w-[200px] border-r flex-col items-stretch gap-2 p-2 overflow-y-auto",children:[t.title&&(0,s.jsx)("div",{className:"mb-2 ml-2",children:(0,s.jsx)(o.Typography,{type:"h2",className:"text-lg font-semibold text-zinc-800 dark:text-zinc-300",children:t.title})}),(0,s.jsx)(u,{items:t.items,selectedIndex:t.selectedIndex})]}),(0,s.jsx)("div",{className:"flex-1 w-0 flex justify-center gap-4 py-2 px-4",children:(0,s.jsxs)("div",{className:"flex flex-col max-w-[800px] w-[800px]",children:[(0,s.jsxs)("div",{className:"mt-4 mb-6",children:[(0,s.jsx)(o.Typography,{type:"h4",className:"font-semibold",children:a.title}),a.description&&(0,s.jsx)(o.Typography,{variant:"secondary",type:"label",children:a.description})]}),(0,s.jsx)("div",{className:"flex-1",children:a.content})]})})]})}function p(t){let a=t.items[t.selectedIndex],r=(0,d.useStackApp)().useNavigate();return -1===t.selectedIndex?(0,s.jsxs)("div",{className:"flex flex-col gap-2 p-2",children:[t.title&&(0,s.jsx)("div",{className:"mb-2 ml-2",children:(0,s.jsx)(o.Typography,{type:"h2",className:"text-lg font-semibold text-zinc-800 dark:text-zinc-300",children:t.title})}),(0,s.jsx)(u,{items:t.items,selectedIndex:t.selectedIndex})]}):(0,s.jsxs)("div",{className:"flex-1 flex flex-col gap-4 py-2 px-4",children:[(0,s.jsxs)("div",{className:"flex flex-col",children:[(0,s.jsxs)("div",{className:"flex justify-between",children:[(0,s.jsx)(o.Typography,{type:"h4",className:"font-semibold",children:a.title}),(0,s.jsx)(o.Button,{variant:"ghost",size:"icon",onClick:()=>{r("#")},children:(0,s.jsx)(l.XIcon,{className:"h-5 w-5"})})]}),a.description&&(0,s.jsx)(o.Typography,{variant:"secondary",type:"label",children:a.description})]}),(0,s.jsx)("div",{className:"flex-1",children:a.content})]})}r.SidebarLayout=function(t){let a=(0,c.useHash)(),r=t.items.findIndex(t=>t.id&&t.id===a);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:(0,o.cn)("hidden sm:flex stack-scope h-full",t.className),children:(0,s.jsx)(h,{items:t.items,title:t.title,selectedIndex:r})}),(0,s.jsx)("div",{className:(0,o.cn)("sm:hidden stack-scope h-full",t.className),children:(0,s.jsx)(p,{items:t.items,title:t.title,selectedIndex:r})})]})}},242442,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(199586),i=t.r(980585);r.TeamIcon=function(t){return"personal"===t.team?(0,o.jsx)("div",{className:"flex items-center justify-center min-w-6 min-h-6 max-w-6 max-h-6 rounded bg-zinc-200",children:(0,o.jsx)(i.User2,{className:"w-4 h-4"})}):t.team.profileImageUrl?(0,o.jsx)(n.Avatar,{className:"min-w-6 min-h-6 max-w-6 max-h-6 rounded",children:(0,o.jsx)(n.AvatarImage,{src:t.team.profileImageUrl,alt:t.team.displayName})}):(0,o.jsx)("div",{className:"flex items-center justify-center min-w-6 min-h-6 max-w-6 max-h-6 rounded bg-zinc-200",children:(0,o.jsx)(n.Typography,{className:"text-zinc-800 dark:text-zinc-800",children:t.team.displayName.slice(0,1).toUpperCase()})})}},123251,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(837359);let n=t.r(287820),o=t.r(818395),i=t.r(555113),s=[[60,"second"],[60,"minute"],[24,"hour"],[7,"day"],[5,"week"]];function l(t){if(!(t instanceof Date))throw Error(`fromNow only accepts Date objects (received: ${t})`);let a=new Date().getTime()-t.getTime(),r=Math.abs(a)/1e3;if(r<15)return{result:"just now",secondsUntilChange:15-r};let n=1;for(let[t,o]of s){let s=Math.round(r);if(s<t)if(a<0)return{result:`in ${s} ${o}${1===s?"":"s"}`,secondsUntilChange:(0,i.remainder)((r-s+.5)*n,n)};else return{result:`${s} ${o}${1===s?"":"s"} ago`,secondsUntilChange:(0,i.remainder)((s-r-.5)*n,n)};n*=t,r/=t}return{result:t.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}),secondsUntilChange:1/0}}function c(t,a,r){if(!n.intervalSchema.isValidSync(r))throw new o.HexclaveAssertionError("Invalid interval",{interval:r});let[i,s]=r;switch(s){case"millisecond":t.setMilliseconds(t.getMilliseconds()+i*a);break;case"second":t.setSeconds(t.getSeconds()+i*a);break;case"minute":t.setMinutes(t.getMinutes()+i*a);break;case"hour":t.setHours(t.getHours()+i*a);break;case"day":t.setDate(t.getDate()+i*a);break;case"week":t.setDate(t.getDate()+i*a*7);break;case"month":t.setMonth(t.getMonth()+i*a);break;case"year":t.setFullYear(t.getFullYear()+i*a);break;default:throw new o.HexclaveAssertionError("Invalid interval despite schema validation",{interval:r})}return t}function d(t,a){return c(t,1,a)}r.FAR_FUTURE_DATE=new Date(864e13),r.addInterval=d,r.fromNow=function(t){return l(t).result},r.fromNowDetailed=l,r.getInputDatetimeLocalString=function(t){return(t=new Date(t)).setMinutes(t.getMinutes()-t.getTimezoneOffset()),t.toISOString().slice(0,19)},r.getIntervalsElapsed=function(t,a,r){let[n,o]=r;if(a<=t)return 0;if("day"===o||"week"===o){let r="day"===o?864e5:6048e5;return Math.floor((a.getTime()-t.getTime())/(r*n))}if(["month","year"].includes(o)){let r=0,i=new Date(t);for(;;){let t=d(new Date(i),[n,o]);if(t>a)break;i=t,r+=1}return r}return 0},r.isWeekend=function(t){return 0===t.getDay()||6===t.getDay()},r.subtractInterval=function(t,a){return c(t,-1,a)}},216322,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(199586);r.PageLayout=function(t){return(0,n.jsx)("div",{className:"flex flex-col gap-6",children:t.children})}},395782,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(869920),o=t.r(818395),i=t.r(865268),s=t.r(866820),l=t.r(199586),c=t.r(123251),d=t.r(951764),u=t.r(221913),h=t.r(216322);r.ActiveSessionsPage=function(t){let{t:a}=(0,u.useTranslation)(),r=(0,d.useUser)({or:t?.mockSessions||t?.mockMode?"return-null":"throw"}),[p,y]=(0,s.useState)(!t?.mockSessions),[k,f]=(0,s.useState)(!1),[m,g]=(0,s.useState)([]),[v,w]=(0,s.useState)(!1),_=t?.mockSessions?t.mockSessions.map(t=>({id:t.id,isCurrentSession:t.isCurrentSession,isImpersonation:t.isImpersonation||!1,createdAt:t.createdAt,lastUsedAt:t.lastUsedAt,geoInfo:t.geoInfo})):[{id:"current-session",isCurrentSession:!0,createdAt:new Date().toISOString(),lastUsedAt:new Date().toISOString(),geoInfo:{ip:"192.168.1.1",cityName:"San Francisco"}},{id:"mobile-session",isCurrentSession:!1,createdAt:new Date(Date.now()-864e5).toISOString(),lastUsedAt:new Date(Date.now()-72e5).toISOString(),geoInfo:{ip:"10.0.0.1",cityName:"New York"}}];(0,s.useEffect)(()=>{if(t?.mockSessions||t?.mockMode&&!r){g(_),y(!1);return}r&&(0,n.runAsynchronously)(async()=>{y(!0),g(await r.getActiveSessions()),y(!1)})},[r,t?.mockSessions]);let x=async a=>{if(t?.mockSessions)return void g(t=>t.filter(t=>t.id!==a));if(r)try{await r.revokeSession(a),g(t=>t.filter(t=>t.id!==a))}catch(t){throw(0,o.captureError)("session-revoke",{sessionId:a,error:t}),t}},b=async()=>{f(!0);try{if(t?.mockSessions)g(t=>t.filter(t=>t.isCurrentSession));else if(r){let t=m.filter(t=>!t.isCurrentSession).map(t=>r.revokeSession(t.id));await Promise.all(t),g(t=>t.filter(t=>t.isCurrentSession))}}catch(t){throw(0,o.captureError)("all-sessions-revoke",{error:t,sessionIds:m.map(t=>t.id)}),t}finally{f(!1),w(!1)}};return(0,l.jsx)(h.PageLayout,{children:(0,l.jsxs)("div",{children:[(0,l.jsxs)("div",{className:"flex justify-between items-center mb-2",children:[(0,l.jsx)(i.Typography,{className:"font-medium",children:a("Active Sessions")}),m.filter(t=>!t.isCurrentSession).length>0&&!p&&(v?(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(i.Button,{variant:"destructive",size:"sm",loading:k,onClick:b,children:a("Confirm")}),(0,l.jsx)(i.Button,{variant:"secondary",size:"sm",disabled:k,onClick:()=>w(!1),children:a("Cancel")})]}):(0,l.jsx)(i.Button,{variant:"outline",size:"sm",onClick:()=>w(!0),children:a("Revoke All Other Sessions")}))]}),(0,l.jsx)(i.Typography,{variant:"secondary",type:"footnote",className:"mb-4",children:a("These are devices where you're currently logged in. You can revoke access to end a session.")}),p?(0,l.jsx)(i.Skeleton,{className:"h-[300px] w-full rounded-md"}):(0,l.jsx)("div",{className:"border rounded-md",children:(0,l.jsxs)(i.Table,{children:[(0,l.jsx)(i.TableHeader,{children:(0,l.jsxs)(i.TableRow,{children:[(0,l.jsx)(i.TableHead,{className:"w-[200px]",children:a("Session")}),(0,l.jsx)(i.TableHead,{className:"w-[150px]",children:a("IP Address")}),(0,l.jsx)(i.TableHead,{className:"w-[150px]",children:a("Location")}),(0,l.jsx)(i.TableHead,{className:"w-[150px]",children:a("Last used")}),(0,l.jsx)(i.TableHead,{className:"w-[80px]"})]})}),(0,l.jsx)(i.TableBody,{children:0===m.length?(0,l.jsx)(i.TableRow,{children:(0,l.jsx)(i.TableCell,{colSpan:5,className:"text-center py-6",children:(0,l.jsx)(i.Typography,{variant:"secondary",children:a("No active sessions found")})})}):m.map(t=>(0,l.jsxs)(i.TableRow,{children:[(0,l.jsx)(i.TableCell,{children:(0,l.jsxs)("div",{className:"flex flex-col",children:[(0,l.jsx)(i.Typography,{children:t.isCurrentSession?a("Current Session"):a("Other Session")}),t.isImpersonation&&(0,l.jsx)(i.Badge,{variant:"secondary",className:"w-fit mt-1",children:a("Impersonation")}),(0,l.jsx)(i.Typography,{variant:"secondary",type:"footnote",children:a("Signed in {time}",{time:new Date(t.createdAt).toLocaleDateString()})})]})}),(0,l.jsx)(i.TableCell,{children:(0,l.jsx)(i.Typography,{children:t.geoInfo?.ip||a("-")})}),(0,l.jsx)(i.TableCell,{children:(0,l.jsx)(i.Typography,{children:t.geoInfo?.cityName||a("Unknown")})}),(0,l.jsx)(i.TableCell,{children:(0,l.jsxs)("div",{className:"flex flex-col",children:[(0,l.jsx)(i.Typography,{children:t.lastUsedAt?(0,c.fromNow)(new Date(t.lastUsedAt)):a("Never")}),(0,l.jsx)(i.Typography,{variant:"secondary",type:"footnote",title:t.lastUsedAt?new Date(t.lastUsedAt).toLocaleString():"",children:t.lastUsedAt?new Date(t.lastUsedAt).toLocaleDateString():""})]})}),(0,l.jsx)(i.TableCell,{align:"right",children:(0,l.jsx)(i.ActionCell,{items:[{item:a("Revoke"),onClick:()=>x(t.id),danger:!0,disabled:t.isCurrentSession,disabledTooltip:t.isCurrentSession?a("You cannot revoke your current session"):void 0}]})})]},t.id))})]})})]})})}},904517,(t,a,r)=>{var n=t.r(380063),o=function(t,a,r){if(t&&"reportValidity"in t){var o=n.get(r,a);t.setCustomValidity(o&&o.message||""),t.reportValidity()}},i=function(t,a){var r=function(r){var n=a.fields[r];n&&n.ref&&"reportValidity"in n.ref?o(n.ref,r,t):n&&n.refs&&n.refs.forEach(function(a){return o(a,r,t)})};for(var n in a.fields)r(n)},s=function(t,a){var r=l(a);return t.some(function(t){return l(t).match("^"+r+"\\.\\d+")})};function l(t){return t.replace(/\]|\[/g,"")}r.toNestErrors=function(t,a){a.shouldUseNativeValidation&&i(t,a);var r={};for(var o in t){var l=n.get(a.fields,o),c=Object.assign(t[o]||{},{ref:l&&l.ref});if(s(a.names||Object.keys(t),o)){var d=Object.assign({},n.get(r,o));n.set(d,"root",c),n.set(r,o,d)}else n.set(r,o,c)}return r},r.validateFieldsNatively=i},345747,(t,a,r)=>{var n=t.r(904517),o=t.r(380063);r.yupResolver=function(t,a,r){return void 0===r&&(r={}),function(i,s,l){try{return Promise.resolve(function(o){try{var c=(null!=a&&a.context,Promise.resolve(t["sync"===r.mode?"validateSync":"validate"](i,Object.assign({abortEarly:!1},a,{context:s}))).then(function(t){return l.shouldUseNativeValidation&&n.validateFieldsNatively({},l),{values:r.raw?Object.assign({},i):t,errors:{}}}))}catch(t){return o(t)}return c&&c.then?c.then(void 0,o):c}(function(t){var a;if(!t.inner)throw t;return{values:{},errors:n.toNestErrors((a=!l.shouldUseNativeValidation&&"all"===l.criteriaMode,(t.inner||[]).reduce(function(t,r){if(t[r.path]||(t[r.path]={message:r.message,type:r.type}),a){var n=t[r.path].types,i=n&&n[r.type];t[r.path]=o.appendErrors(r.path,a,t,r.type,i?[].concat(i,r.message):r.message)}return t},{})),l)}}))}catch(t){return Promise.reject(t)}}}},203834,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(199586);r.FormWarningText=function({text:t}){return t?(0,n.jsx)("div",{className:"text-red-500 text-sm mt-1",children:t}):null}},110110,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(869920),o=t.r(818395),i=t.r(345747),s=t.r(287820),l=t.r(865268),c=t.r(866820),d=t.r(380063),u=t.r(447979),h=t.r(203834),p=t.r(221913),y=t.r(199586),k={864e5:"1 day",6048e5:"7 days",2592e6:"30 days",7776e6:"90 days",31536e6:"1 year",63072e8:"Never"};r.CreateApiKeyDialog=function(t){let{t:a}=(0,p.useTranslation)();(0,u.useUser)({or:t.mockMode?"return-null":"redirect"});let[r,f]=(0,c.useState)(!1),{register:m,handleSubmit:g,formState:{errors:v},reset:w}=(0,d.useForm)({resolver:(0,i.yupResolver)((0,s.yupObject)({description:(0,s.yupString)().defined().nonEmpty(a("Description is required")),expiresIn:(0,s.yupString)().defined()})),defaultValues:{description:"",expiresIn:Object.keys(k)[2]}}),_=async a=>{f(!0);try{let r=new Date(Date.now()+parseInt(a.expiresIn)),n=await t.createApiKey({description:a.description,expiresAt:r});t.onKeyCreated&&t.onKeyCreated(n),w(),t.onOpenChange(!1)}catch(t){(0,o.captureError)("Failed to create API key",{error:t})}finally{f(!1)}};return(0,y.jsx)(l.ActionDialog,{open:t.open,onOpenChange:t.onOpenChange,title:a("Create API Key"),description:a("API keys grant programmatic access to your account."),children:(0,y.jsxs)("form",{onSubmit:t=>{t.preventDefault(),(0,n.runAsynchronously)(g(_))},className:"space-y-4",children:[(0,y.jsxs)("div",{className:"space-y-2",children:[(0,y.jsx)(l.Label,{htmlFor:"description",children:a("Description")}),(0,y.jsx)(l.Input,{id:"description",placeholder:a("e.g. Development, Production, CI/CD"),...m("description")}),v.description&&(0,y.jsx)(h.FormWarningText,{text:v.description.message})]}),(0,y.jsxs)("div",{className:"space-y-2",children:[(0,y.jsx)(l.Label,{htmlFor:"expiresIn",children:a("Expires In")}),(0,y.jsx)("select",{id:"expiresIn",className:"w-full p-2 border border-input rounded-md bg-background",...m("expiresIn"),children:Object.entries(k).map(([t,r])=>(0,y.jsx)("option",{value:t,children:a(r)},t))}),v.expiresIn&&(0,y.jsx)(h.FormWarningText,{text:v.expiresIn.message})]}),(0,y.jsxs)("div",{className:"flex justify-end gap-2 pt-4",children:[(0,y.jsx)(l.Button,{type:"button",variant:"secondary",onClick:()=>{w(),t.onOpenChange(!1)},children:a("Cancel")}),(0,y.jsx)(l.Button,{type:"submit",loading:r,children:a("Create")})]})]})})},r.ShowApiKeyDialog=function(t){let{t:a}=(0,p.useTranslation)();return(0,y.jsx)(l.ActionDialog,{open:!!t.apiKey,title:a("API Key"),okButton:{label:a("Close")},onClose:t.onClose,preventClose:!0,confirmText:a("I understand that I will not be able to view this key again."),children:(0,y.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,y.jsxs)(l.Typography,{children:[a("Here is your API key.")," ",(0,y.jsx)("span",{className:"font-bold",children:a("Copy it to a safe place. You will not be able to view it again.")})]}),(0,y.jsx)(l.CopyField,{type:"input",monospace:!0,value:t.apiKey?.value??"",label:a("Secret API Key")})]})})},r.expiresInOptions=k,r.neverInMs=63072e8},241878,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(866820),i=t.r(199586);function s(t){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.SearchToolbarItem,{table:t,placeholder:"Search table"}),(0,i.jsx)(n.DataTableFacetedFilter,{column:t.getColumn("status"),title:"Status",options:["valid","expired","revoked"].map(t=>({value:t,label:t}))})]})}function l(t){return(0,i.jsx)(n.ActionDialog,{open:t.open,onOpenChange:t.onOpenChange,title:"Revoke API Key",danger:!0,cancelButton:!0,okButton:{label:"Revoke Key",onClick:async()=>{await t.apiKey.revoke()}},confirmText:"I understand this will unlink all the apps using this API key",children:`Are you sure you want to revoke API key *****${t.apiKey.value.lastFour}?`})}function c({row:t}){let[a,r]=(0,o.useState)(!1);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(l,{apiKey:t.original,open:a,onOpenChange:r}),(0,i.jsx)(n.ActionCell,{invisible:"valid"!==t.original.status,items:[{item:"Revoke",danger:!0,onClick:()=>r(!0)}]})]})}let d=[{accessorKey:"description",header:({column:t})=>(0,i.jsx)(n.DataTableColumnHeader,{column:t,columnTitle:"Description"}),cell:({row:t})=>(0,i.jsx)(n.TextCell,{size:100,children:t.original.description})},{accessorKey:"status",header:({column:t})=>(0,i.jsx)(n.DataTableColumnHeader,{column:t,columnTitle:"Status"}),cell:({row:t})=>(0,i.jsx)(n.BadgeCell,{badges:[t.original.status]}),filterFn:n.standardFilterFn},{id:"value",accessorFn:t=>t.value.lastFour,header:({column:t})=>(0,i.jsx)(n.DataTableColumnHeader,{column:t,columnTitle:"Client Key"}),cell:({row:t})=>(0,i.jsxs)(n.TextCell,{children:["*******",t.original.value.lastFour]}),enableSorting:!1},{accessorKey:"expiresAt",header:({column:t})=>(0,i.jsx)(n.DataTableColumnHeader,{column:t,columnTitle:"Expires At"}),cell:({row:t})=>"revoked"===t.original.status?(0,i.jsx)(n.TextCell,{children:"-"}):t.original.expiresAt?(0,i.jsx)(n.DateCell,{date:t.original.expiresAt,ignoreAfterYears:50}):(0,i.jsx)(n.TextCell,{children:"Never"})},{accessorKey:"createdAt",header:({column:t})=>(0,i.jsx)(n.DataTableColumnHeader,{column:t,columnTitle:"Created At"}),cell:({row:t})=>(0,i.jsx)(n.DateCell,{date:t.original.createdAt,ignoreAfterYears:50})},{id:"actions",cell:({row:t})=>(0,i.jsx)(c,{row:t})}];r.ApiKeyTable=function(t){return(0,i.jsx)(n.DataTable,{data:(0,o.useMemo)(()=>t.apiKeys.map(t=>({...t,status:({valid:"valid","manually-revoked":"revoked",expired:"expired"})[t.whyInvalid()||"valid"]})).sort((t,a)=>t.status===a.status?t.createdAt<a.createdAt?1:-1:"valid"===t.status?-1:1),[t.apiKeys]),columns:d,toolbarRender:s,defaultColumnFilters:[],defaultSorting:[]})}},361158,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(866820),i=t.r(199586),s=t.r(951764),l=t.r(221913),c=t.r(216322),d=t.r(110110),u=t.r(241878);r.ApiKeysPage=function(t){let a,{t:r}=(0,l.useTranslation)(),h=!!(t?.mockApiKeys||t?.mockMode),p=(0,s.useUser)({or:h?"return-null":"redirect"});if(!h&&!p)return null;let y=t?.mockApiKeys?t.mockApiKeys.map(t=>({id:t.id,description:t.description,createdAt:new Date(t.createdAt),expiresAt:t.expiresAt?new Date(t.expiresAt):void 0,manuallyRevokedAt:t.manuallyRevokedAt?new Date(t.manuallyRevokedAt):null,value:{lastFour:t.id.slice(-4).padStart(4,"0")},type:"user",userId:"mock-user-id",update:async()=>{console.log("Mock API key update called")},revoke:async()=>{console.log("Mock API key revoke called")},isValid:()=>{let a=new Date,r=!!t.expiresAt&&new Date(t.expiresAt)<a,n=!!t.manuallyRevokedAt;return!r&&!n},whyInvalid:()=>{let a=new Date;return t.manuallyRevokedAt?"manually-revoked":t.expiresAt&&new Date(t.expiresAt)<a?"expired":null}})):[{id:"key-1",description:"Development Key",createdAt:new Date(Date.now()-1728e5),expiresAt:void 0,manuallyRevokedAt:null,value:{lastFour:"ey-1".slice(-4).padStart(4,"0")},type:"user",userId:"mock-user-id",update:async()=>{console.log("Mock API key update called")},revoke:async()=>{console.log("Mock API key revoke called")},isValid:()=>!0,whyInvalid:()=>null}];a=h?y:p?p.useApiKeys():[];let[k,f]=(0,o.useState)(!1),[m,g]=(0,o.useState)(null),v=d.CreateApiKeyDialog,w=d.ShowApiKeyDialog,_=async t=>{if(h)return{id:`key-${Date.now()}`,description:t.description,createdAt:new Date().toISOString(),expiresAt:t.expiresAt?.toISOString(),value:"sk_dev_mock_key_"+Math.random().toString(36).substring(2),update:async()=>{console.log("Mock API key update called")},revoke:async()=>{console.log("Mock API key revoke called")},isValid:()=>!0,whyInvalid:()=>null,type:"user",userId:"mock-user-id"};if(!p)throw Error("User not available");return await p.createApiKey(t)};return(0,i.jsxs)(c.PageLayout,{children:[(0,i.jsx)(n.Button,{onClick:()=>f(!0),children:r("Create API Key")}),(0,i.jsx)(u.ApiKeyTable,{apiKeys:a}),(0,i.jsx)(v,{open:k,onOpenChange:f,onKeyCreated:g,createApiKey:_,mockMode:h}),(0,i.jsx)(w,{apiKey:m,onClose:()=>g(null)})]})}},154706,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(869920),o=t.r(345747),i=t.r(287820),s=t.r(865268),l=t.r(866820),c=t.r(380063),d=t.r(199586),u=t.r(951764),h=t.r(221913),p=t.r(812942),y=t.r(203834);r.EmailsSection=function(t){let{t:a}=(0,h.useTranslation)(),r=(0,u.useUser)({or:t?.mockMode?"return-null":"redirect"});if(t?.mockMode&&!r)return(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"flex flex-col md:flex-row justify-between mb-4 gap-4",children:(0,d.jsx)(s.Typography,{className:"font-medium",children:a("Emails")})}),(0,d.jsx)(s.Typography,{variant:"secondary",children:a("Email management is not available in demo mode.")})]});if(!r)return null;let k=r.useContactChannels(),[f,m]=(0,l.useState)(0===k.length),[g,v]=(0,l.useState)(!1),[w,_]=(0,l.useState)(null),x=1===k.filter(t=>t.usedForAuth&&"email"===t.type).length;(0,l.useEffect)(()=>{w&&(0,n.runAsynchronously)(async()=>{let t=k.find(t=>t.value===w);t&&!t.isVerified&&await t.sendVerificationEmail(),_(null)})},[k,w]);let{register:b,handleSubmit:M,formState:{errors:C},reset:S}=(0,c.useForm)({resolver:(0,o.yupResolver)((0,i.yupObject)({email:(0,i.strictEmailSchema)(a("Please enter a valid email address")).notOneOf(k.map(t=>t.value),a("Email already exists")).defined().nonEmpty(a("Email is required"))}))}),I=async t=>{v(!0);try{await r.createContactChannel({type:"email",value:t.email,usedForAuth:!1}),_(t.email)}finally{v(!1)}m(!1),S()};return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex flex-col md:flex-row justify-between mb-4 gap-4",children:[(0,d.jsx)(s.Typography,{className:"font-medium",children:a("Emails")}),f?(0,d.jsxs)("form",{onSubmit:t=>{t.preventDefault(),(0,n.runAsynchronously)(M(I))},className:"flex flex-col",children:[(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(s.Input,{...b("email"),placeholder:a("Enter email")}),(0,d.jsx)(s.Button,{type:"submit",loading:g,children:a("Add")}),(0,d.jsx)(s.Button,{variant:"secondary",onClick:()=>{m(!1),S()},children:a("Cancel")})]}),C.email&&(0,d.jsx)(y.FormWarningText,{text:C.email.message})]}):(0,d.jsx)("div",{className:"flex md:justify-end",children:(0,d.jsx)(s.Button,{variant:"secondary",onClick:()=>m(!0),children:a("Add an email")})})]}),k.length>0?(0,d.jsx)("div",{className:"border rounded-md",children:(0,d.jsx)(s.Table,{children:(0,d.jsx)(s.TableBody,{children:k.filter(t=>"email"===t.type).sort((t,a)=>t.isPrimary!==a.isPrimary?t.isPrimary?-1:1:t.isVerified!==a.isVerified?t.isVerified?-1:1:0).map(t=>(0,d.jsxs)(s.TableRow,{children:[(0,d.jsx)(s.TableCell,{children:(0,d.jsxs)("div",{className:"flex flex-col md:flex-row gap-2 md:gap-4",children:[t.value,(0,d.jsxs)("div",{className:"flex gap-2",children:[t.isPrimary?(0,d.jsx)(s.Badge,{children:a("Primary")}):null,t.isVerified?null:(0,d.jsx)(s.Badge,{variant:"destructive",children:a("Unverified")}),t.usedForAuth?(0,d.jsx)(s.Badge,{variant:"outline",children:a("Used for sign-in")}):null]})]})}),(0,d.jsx)(s.TableCell,{className:"flex justify-end",children:(0,d.jsx)(s.ActionCell,{items:[...t.isVerified?[]:[{item:a("Send verification email"),onClick:async()=>{await t.sendVerificationEmail()}}],...!t.isPrimary&&t.isVerified?[{item:a("Set as primary"),onClick:async()=>{await t.update({isPrimary:!0})}}]:t.isPrimary?[]:[{item:a("Set as primary"),onClick:async()=>{},disabled:!0,disabledTooltip:a("Please verify your email first")}],...!t.usedForAuth&&t.isVerified?[{item:a("Use for sign-in"),onClick:async()=>{try{await t.update({usedForAuth:!0})}catch(t){p.KnownErrors.ContactChannelAlreadyUsedForAuthBySomeoneElse.isInstance(t)&&alert(a("This email is already used for sign-in by another user."))}}}]:[],...t.usedForAuth&&!x?[{item:a("Stop using for sign-in"),onClick:async()=>{await t.update({usedForAuth:!1})}}]:t.usedForAuth?[{item:a("Stop using for sign-in"),onClick:async()=>{},disabled:!0,disabledTooltip:a("You can not remove your last sign-in email")}]:[],...x&&t.usedForAuth?[{item:a("Remove"),onClick:async()=>{},disabled:!0,disabledTooltip:a("You can not remove your last sign-in email")}]:[{item:a("Remove"),onClick:async()=>{await t.delete()},danger:!0}]]})})]},t.id))})})}):null]})}},569526,t=>{"use strict";t.i(728667);var a=t.i(183973),r=t.i(200886);t.s(["createHOTPKeyURI",()=>a.createHOTPKeyURI,"createTOTPKeyURI",()=>r.createTOTPKeyURI,"generateHOTP",()=>a.generateHOTP,"generateTOTP",()=>r.generateTOTP,"verifyHOTP",()=>a.verifyHOTP,"verifyTOTP",()=>r.verifyTOTP,"verifyTOTPWithGracePeriod",()=>r.verifyTOTPWithGracePeriod])},658238,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(199586);r.Section=function(t){return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.Separator,{}),(0,o.jsxs)("div",{className:"flex flex-col sm:flex-row gap-2",children:[(0,o.jsxs)("div",{className:"sm:flex-1 flex flex-col justify-center",children:[(0,o.jsx)(n.Typography,{className:"font-medium",children:t.title}),t.description&&(0,o.jsx)(n.Typography,{variant:"secondary",type:"footnote",children:t.description})]}),(0,o.jsx)("div",{className:"sm:flex-1 sm:items-end flex flex-col gap-2 ",children:t.children})]})]})}},563827,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"});let n=t.r(493557),o=t.r(869920),i=t.r(818395),s=t.r(865268),l=t.r(866820),c=t.r(199586),d=t.r(951764),u=t.r(221913),h=t.r(569526),p=t.r(847579),y=t.r(28420),k=t.r(698870);k=n.__toESM(k);let f=t.r(658238);async function m(t,a,r){let n=(0,h.createTOTPKeyURI)(t.displayName,a.primaryEmail??a.id,r,30,6);return await k.toDataURL(n)}r.MfaSection=function(t){let{t:a}=(0,u.useTranslation)(),r=(0,d.useStackApp)().useProject(),n=(0,d.useUser)({or:t?.mockMode?"return-null":"throw"});if(t?.mockMode&&!n)return(0,c.jsx)(f.Section,{title:a("Multi-factor authentication"),description:a("MFA management is not available in demo mode."),children:(0,c.jsx)(s.Typography,{variant:"secondary",children:a("MFA management is not available in demo mode.")})});if(!n)return null;let[k,g]=(0,l.useState)(null),[v,w]=(0,l.useState)(null),[_,x]=(0,l.useState)(""),[b,M]=(0,l.useState)(!1),C=n.isMultiFactorRequired,[S,I]=(0,p.useAsyncCallback)(async()=>{await n.update({totpMultiFactorSecret:k}),g(null),w(null),x("")},[k,n]);return(0,l.useEffect)(()=>{M(!1),(0,o.runAsynchronouslyWithAlert)(async()=>{k&&(0,h.verifyTOTP)(k,30,6,_)&&await S(),M(!0)})},[_,k,S]),(0,c.jsx)(f.Section,{title:a("Multi-factor authentication"),description:a(C?"Multi-factor authentication is currently enabled.":"Multi-factor authentication is currently disabled."),children:(0,c.jsxs)("div",{className:"flex flex-col gap-4",children:[!C&&k&&(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(s.Typography,{children:a("Scan this QR code with your authenticator app:")}),(0,c.jsx)("img",{width:200,height:200,src:v??(0,i.throwErr)("TOTP QR code failed to generate"),alt:a("TOTP multi-factor authentication QR code")}),(0,c.jsx)(s.Typography,{children:a("Then, enter your six-digit MFA code:")}),(0,c.jsx)(s.Input,{value:_,onChange:t=>{M(!1),x(t.target.value)},placeholder:"123456",maxLength:6,disabled:I}),b&&6===_.length&&(0,c.jsx)(s.Typography,{variant:"destructive",children:a("Incorrect code. Please try again.")}),(0,c.jsx)("div",{className:"flex",children:(0,c.jsx)(s.Button,{variant:"secondary",onClick:()=>{g(null),w(null),x("")},children:a("Cancel")})})]}),(0,c.jsx)("div",{className:"flex gap-2",children:C?(0,c.jsx)(s.Button,{variant:"secondary",onClick:async()=>{await n.update({totpMultiFactorSecret:null})},children:a("Disable MFA")}):!k&&(0,c.jsx)(s.Button,{variant:"secondary",onClick:async()=>{let t=(0,y.generateRandomValues)(new Uint8Array(20));w(await m(r,n,t)),g(t)},children:a("Enable MFA")})})]})})}},960803,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(866820),i=t.r(199586),s=t.r(951764),l=t.r(221913),c=t.r(658238);r.OtpSection=function(t){let{t:a}=(0,l.useTranslation)(),r=(0,s.useUser)({or:t?.mockMode?"return-null":"throw"});if(t?.mockMode&&!r)return(0,i.jsx)(c.Section,{title:a("One-Time Password"),description:a("OTP management is not available in demo mode."),children:(0,i.jsx)(n.Typography,{variant:"secondary",children:a("OTP management is not available in demo mode.")})});if(!r)return null;let d=(0,s.useStackApp)().useProject(),u=r.useContactChannels(),h=r.otpAuthEnabled&&!r.hasPassword&&0===r.oauthProviders.length&&!r.passkeyAuthEnabled,[p,y]=(0,o.useState)(!1),k=u.filter(t=>"email"===t.type&&t.isVerified&&t.usedForAuth).length>0;if(!d.config.magicLinkEnabled)return null;let f=async()=>{await r.update({otpAuthEnabled:!1}),y(!1)};return(0,i.jsx)(c.Section,{title:a("OTP sign-in"),description:a(r.otpAuthEnabled?"OTP/magic link sign-in is currently enabled.":"Enable sign-in via magic link or OTP sent to your sign-in emails."),children:(0,i.jsx)("div",{className:"flex md:justify-end",children:k?r.otpAuthEnabled?h?(0,i.jsx)(n.Typography,{variant:"secondary",type:"label",children:a("OTP sign-in is enabled and cannot be disabled as it is currently the only sign-in method")}):p?(0,i.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,i.jsx)(n.Typography,{variant:"destructive",children:a("Are you sure you want to disable OTP sign-in? You will not be able to sign in with only emails anymore.")}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)(n.Button,{variant:"destructive",onClick:f,children:a("Disable")}),(0,i.jsx)(n.Button,{variant:"secondary",onClick:()=>y(!1),children:a("Cancel")})]})]}):(0,i.jsx)(n.Button,{variant:"secondary",onClick:()=>y(!0),children:a("Disable OTP")}):(0,i.jsx)(n.Button,{variant:"secondary",onClick:async()=>{await r.update({otpAuthEnabled:!0})},children:a("Enable OTP")}):(0,i.jsx)(n.Typography,{variant:"secondary",type:"label",children:a("To enable OTP sign-in, please add a verified sign-in email.")})})})}},557826,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(866820),i=t.r(199586),s=t.r(951764),l=t.r(221913),c=t.r(658238),d=t.r(447979);r.PasskeySection=function(t){let{t:a}=(0,l.useTranslation)(),r=(0,s.useUser)({or:t?.mockMode?"return-null":"throw"});if(t?.mockMode&&!r)return(0,i.jsx)(c.Section,{title:a("Passkey"),description:a("Passkey management is not available in demo mode."),children:(0,i.jsx)(n.Typography,{variant:"secondary",children:a("Passkey management is not available in demo mode.")})});if(!r)return null;let u=(0,d.useStackApp)().useProject(),h=r.useContactChannels(),p=r.passkeyAuthEnabled,y=r.passkeyAuthEnabled&&!r.hasPassword&&0===r.oauthProviders.length&&!r.otpAuthEnabled,[k,f]=(0,o.useState)(!1),m=h.filter(t=>"email"===t.type&&t.isVerified&&t.usedForAuth).length>0;if(!u.config.passkeyEnabled)return null;let g=async()=>{await r.update({passkeyAuthEnabled:!1}),f(!1)},v=async()=>{await r.registerPasskey()};return(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(c.Section,{title:a("Passkey"),description:a(p?"Passkey registered":"Register a passkey"),children:(0,i.jsxs)("div",{className:"flex md:justify-end gap-2",children:[!m&&(0,i.jsx)(n.Typography,{variant:"secondary",type:"label",children:a("To enable Passkey sign-in, please add a verified sign-in email.")}),m&&p&&y&&(0,i.jsx)(n.Typography,{variant:"secondary",type:"label",children:a("Passkey sign-in is enabled and cannot be disabled as it is currently the only sign-in method")}),!p&&m&&(0,i.jsx)("div",{children:(0,i.jsx)(n.Button,{onClick:v,variant:"secondary",children:a("Add new passkey")})}),m&&p&&!y&&!k&&(0,i.jsx)(n.Button,{variant:"secondary",onClick:()=>f(!0),children:a("Delete Passkey")}),m&&p&&!y&&k&&(0,i.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,i.jsx)(n.Typography,{variant:"destructive",children:a("Are you sure you want to disable Passkey sign-in? You will not be able to sign in with your passkey anymore.")}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)(n.Button,{variant:"destructive",onClick:g,children:a("Disable")}),(0,i.jsx)(n.Button,{variant:"secondary",onClick:()=>f(!1),children:a("Cancel")})]})]})]})})})}},252276,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(837359);let n=t.r(812811);r.getPasswordError=function(t){return t.length<8?new n.KnownErrors.PasswordTooShort(8):t.length>70?new n.KnownErrors.PasswordTooLong(70):void 0}},732452,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"});let n=t.r(493557),o=t.r(869920),i=t.r(345747),s=t.r(287820),l=t.r(865268),c=t.r(866820),d=t.r(380063),u=t.r(199586),h=t.r(252276),p=t.r(213596);p=n.__toESM(p);let y=t.r(951764),k=t.r(221913),f=t.r(203834),m=t.r(658238),g=t.r(447979);r.PasswordSection=function(t){let{t:a}=(0,k.useTranslation)(),r=(0,y.useUser)({or:t?.mockMode?"return-null":"throw"});if(t?.mockMode&&!r)return(0,u.jsx)(m.Section,{title:a("Password"),description:a("Password management is not available in demo mode."),children:(0,u.jsx)(l.Typography,{variant:"secondary",children:a("Password management is not available in demo mode.")})});if(!r)return null;let n=r.useContactChannels(),[v,w]=(0,c.useState)(!1),[_,x]=(0,c.useState)(!1),b=(0,g.useStackApp)().useProject(),{register:M,handleSubmit:C,setError:S,formState:{errors:I},clearErrors:L,reset:P}=(0,d.useForm)({resolver:(0,i.yupResolver)((0,s.yupObject)({oldPassword:r.hasPassword?s.passwordSchema.defined().nonEmpty(a("Please enter your old password")):(0,s.yupString)(),newPassword:s.passwordSchema.defined().nonEmpty(a("Please enter your password")).test({name:"is-valid-password",test:(t,a)=>{let r=(0,h.getPasswordError)(t);return!r||a.createError({message:r.message})}}),newPasswordRepeat:(0,s.yupString)().nullable().oneOf([p.ref("newPassword"),"",null],a("Passwords do not match")).defined().nonEmpty(a("Please repeat your password"))}))}),j=n.filter(t=>"email"===t.type&&t.usedForAuth).length>0,A=async t=>{x(!0);try{let{oldPassword:n,newPassword:o}=t;(r.hasPassword?await r.updatePassword({oldPassword:n,newPassword:o}):await r.setPassword({password:o}))?S("oldPassword",{type:"manual",message:a("Incorrect password")}):(P(),w(!1))}finally{x(!1)}},T=M("newPassword"),O=M("newPasswordRepeat");return b.config.credentialEnabled?(0,u.jsx)(m.Section,{title:a("Password"),description:r.hasPassword?a("Update your password"):a("Set a password for your account"),children:(0,u.jsx)("div",{className:"flex flex-col gap-4",children:v?(0,u.jsxs)("form",{onSubmit:t=>(0,o.runAsynchronouslyWithAlert)(C(A)(t)),noValidate:!0,children:[r.hasPassword&&(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(l.Label,{htmlFor:"old-password",className:"mb-1",children:a("Old password")}),(0,u.jsx)(l.Input,{id:"old-password",type:"password",autoComplete:"current-password",...M("oldPassword")}),(0,u.jsx)(f.FormWarningText,{text:I.oldPassword?.message?.toString()})]}),(0,u.jsx)(l.Label,{htmlFor:"new-password",className:"mt-4 mb-1",children:a("New password")}),(0,u.jsx)(l.PasswordInput,{id:"new-password",autoComplete:"new-password",...T,onChange:t=>{L("newPassword"),L("newPasswordRepeat"),(0,o.runAsynchronously)(T.onChange(t))}}),(0,u.jsx)(f.FormWarningText,{text:I.newPassword?.message?.toString()}),(0,u.jsx)(l.Label,{htmlFor:"repeat-password",className:"mt-4 mb-1",children:a("Repeat new password")}),(0,u.jsx)(l.PasswordInput,{id:"repeat-password",autoComplete:"new-password",...O,onChange:t=>{L("newPassword"),L("newPasswordRepeat"),(0,o.runAsynchronously)(O.onChange(t))}}),(0,u.jsx)(f.FormWarningText,{text:I.newPasswordRepeat?.message?.toString()}),(0,u.jsxs)("div",{className:"mt-6 flex gap-4",children:[(0,u.jsx)(l.Button,{type:"submit",loading:_,children:r.hasPassword?a("Update Password"):a("Set Password")}),(0,u.jsx)(l.Button,{variant:"secondary",onClick:()=>{w(!1),P()},children:a("Cancel")})]})]}):j?(0,u.jsx)(l.Button,{variant:"secondary",onClick:()=>w(!0),children:r.hasPassword?a("Update password"):a("Set password")}):(0,u.jsx)(l.Typography,{variant:"secondary",type:"label",children:a("To set a password, please add a sign-in email.")})})}):null}},692754,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(199586),o=t.r(216322),i=t.r(154706),s=t.r(563827),l=t.r(960803),c=t.r(557826),d=t.r(732452);r.EmailsAndAuthPage=function(t){return(0,n.jsxs)(o.PageLayout,{children:[(0,n.jsx)(i.EmailsSection,{mockMode:t?.mockMode}),(0,n.jsx)(d.PasswordSection,{mockMode:t?.mockMode}),(0,n.jsx)(c.PasskeySection,{mockMode:t?.mockMode}),(0,n.jsx)(l.OtpSection,{mockMode:t?.mockMode}),(0,n.jsx)(s.MfaSection,{mockMode:t?.mockMode})]})}},295166,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(199586),i=t.r(951764),s=t.r(221913),l=t.r(216322);r.NotificationsPage=function(){let{t}=(0,s.useTranslation)(),a=(0,i.useUser)({or:"redirect"}).useNotificationCategories();return(0,o.jsxs)(l.PageLayout,{children:[(0,o.jsx)(n.Separator,{}),(0,o.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,o.jsx)("div",{className:"sm:flex-1 flex flex-col justify-center pb-2",children:(0,o.jsx)(n.Typography,{className:"font-medium",children:t("Choose which emails you want to receive")})}),a.map(t=>(0,o.jsxs)("div",{className:"flex justify-start gap-4 items-center",children:[(0,o.jsx)(n.Switch,{checked:t.enabled,onCheckedChange:a=>void t.setEnabled(a),disabled:!t.canDisable}),(0,o.jsx)(n.Typography,{children:t.name}),!t.canDisable&&(0,o.jsx)(n.Typography,{variant:"secondary",type:"footnote",children:"(cannot be disabled)"})]},t.id))]})]})}},385516,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),r.fileToBase64=function(t){return new Promise((a,r)=>{let n=new FileReader;n.readAsDataURL(t),n.onload=()=>a(n.result),n.onerror=t=>r(t)})},r.validateBase64Image=function(t){return/^data:image\/(png|jpg|jpeg|gif|bmp|webp);base64,[A-Za-z0-9+/]+={0,2}$|^[A-Za-z0-9+/]+={0,2}$/.test(t)}},40522,(t,a,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=t.r(824627),o=t.r(866820),i=t.r(147864),s=function(t){if(t&&t.__esModule)return t;var a=Object.create(null);return t&&Object.keys(t).forEach(function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(a,r,n.get?n:{enumerable:!0,get:function(){return t[r]}})}}),a.default=t,Object.freeze(a)}(o),l=i&&"object"==typeof i&&"default"in i?i:{default:i};function c(t,a,r,n,o){void 0===o&&(o=0);var i=g(a.width,a.height,o),s=i.width,l=i.height;return{x:d(t.x,s,r.width,n),y:d(t.y,l,r.height,n)}}function d(t,a,r,n){var o=a*n/2-r/2;return v(t,-o,o)}function u(t,a){return Math.sqrt(Math.pow(t.y-a.y,2)+Math.pow(t.x-a.x,2))}function h(t,a){return 180*Math.atan2(a.y-t.y,a.x-t.x)/Math.PI}function p(t,a){return Math.min(t,Math.max(0,a))}function y(t,a){return a}function k(t,a,r,n,o,i){var s=g(a.width,a.height,r),l=v(n.width/s.width*(100/t.width),o,i);return{crop:{x:l*s.width/2-n.width/2-s.width*l*(t.x/100),y:l*s.height/2-n.height/2-s.height*l*(t.y/100)},zoom:l}}function f(t,a,r,n,o,i){void 0===r&&(r=0);var s,l=g(a.naturalWidth,a.naturalHeight,r),c=v((s=a.width>a.height?a.width/a.naturalWidth:a.height/a.naturalHeight,n.height>n.width?n.height/(t.height*s):n.width/(t.width*s)),o,i),d=n.height>n.width?n.height/t.height:n.width/t.width;return{crop:{x:((l.width-t.width)/2-t.x)*d,y:((l.height-t.height)/2-t.y)*d},zoom:c}}function m(t,a){return{x:(a.x+t.x)/2,y:(a.y+t.y)/2}}function g(t,a,r){var n=r*Math.PI/180;return{width:Math.abs(Math.cos(n)*t)+Math.abs(Math.sin(n)*a),height:Math.abs(Math.sin(n)*t)+Math.abs(Math.cos(n)*a)}}function v(t,a,r){return Math.min(Math.max(t,a),r)}function w(){for(var t=[],a=0;a<arguments.length;a++)t[a]=arguments[a];return t.filter(function(t){return"string"==typeof t&&!!(t.length>0)}).join(" ").trim()}r.default=function(t){function a(){var r=null!==t&&t.apply(this,arguments)||this;return r.cropperRef=s.createRef(),r.imageRef=s.createRef(),r.videoRef=s.createRef(),r.containerPosition={x:0,y:0},r.containerRef=null,r.styleRef=null,r.containerRect=null,r.mediaSize={width:0,height:0,naturalWidth:0,naturalHeight:0},r.dragStartPosition={x:0,y:0},r.dragStartCrop={x:0,y:0},r.gestureZoomStart=0,r.gestureRotationStart=0,r.isTouching=!1,r.lastPinchDistance=0,r.lastPinchRotation=0,r.rafDragTimeout=null,r.rafPinchTimeout=null,r.wheelTimer=null,r.currentDoc="u">typeof document?document:null,r.currentWindow="u">typeof window?window:null,r.resizeObserver=null,r.previousCropSize=null,r.isInitialized=!1,r.state={cropSize:null,hasWheelJustStarted:!1,mediaObjectFit:void 0},r.initResizeObserver=function(){if(void 0!==window.ResizeObserver&&r.containerRef){var t=!0;r.resizeObserver=new window.ResizeObserver(function(a){if(t){t=!1;return}r.computeSizes()}),r.resizeObserver.observe(r.containerRef)}},r.preventZoomSafari=function(t){return t.preventDefault()},r.cleanEvents=function(){r.currentDoc&&(r.currentDoc.removeEventListener("mousemove",r.onMouseMove),r.currentDoc.removeEventListener("mouseup",r.onDragStopped),r.currentDoc.removeEventListener("touchmove",r.onTouchMove),r.currentDoc.removeEventListener("touchend",r.onDragStopped),r.currentDoc.removeEventListener("gesturechange",r.onGestureChange),r.currentDoc.removeEventListener("gestureend",r.onGestureEnd),r.currentDoc.removeEventListener("scroll",r.onScroll))},r.clearScrollEvent=function(){r.containerRef&&r.containerRef.removeEventListener("wheel",r.onWheel),r.wheelTimer&&clearTimeout(r.wheelTimer)},r.onMediaLoad=function(){var t=r.computeSizes();t&&(r.previousCropSize=t,r.emitCropData(),r.setInitialCrop(t),r.isInitialized=!0),r.props.onMediaLoaded&&r.props.onMediaLoaded(r.mediaSize)},r.setInitialCrop=function(t){if(r.props.initialCroppedAreaPercentages){var a=k(r.props.initialCroppedAreaPercentages,r.mediaSize,r.props.rotation,t,r.props.minZoom,r.props.maxZoom),n=a.crop,o=a.zoom;r.props.onCropChange(n),r.props.onZoomChange&&r.props.onZoomChange(o)}else if(r.props.initialCroppedAreaPixels){var i=f(r.props.initialCroppedAreaPixels,r.mediaSize,r.props.rotation,t,r.props.minZoom,r.props.maxZoom),n=i.crop,o=i.zoom;r.props.onCropChange(n),r.props.onZoomChange&&r.props.onZoomChange(o)}},r.computeSizes=function(){var t,a,o,i,s,l,c=r.imageRef.current||r.videoRef.current;if(c&&r.containerRef){r.containerRect=r.containerRef.getBoundingClientRect(),r.saveContainerPosition();var d,u,h,p,y,k,f,m,v,w,_,x=r.containerRect.width/r.containerRect.height,b=(null==(t=r.imageRef.current)?void 0:t.naturalWidth)||(null==(a=r.videoRef.current)?void 0:a.videoWidth)||0,M=(null==(o=r.imageRef.current)?void 0:o.naturalHeight)||(null==(i=r.videoRef.current)?void 0:i.videoHeight)||0,C=c.offsetWidth<b||c.offsetHeight<M,S=b/M,I=void 0;if(C)switch(r.state.mediaObjectFit){default:case"contain":I=x>S?{width:r.containerRect.height*S,height:r.containerRect.height}:{width:r.containerRect.width,height:r.containerRect.width/S};break;case"horizontal-cover":I={width:r.containerRect.width,height:r.containerRect.width/S};break;case"vertical-cover":I={width:r.containerRect.height*S,height:r.containerRect.height}}else I={width:c.offsetWidth,height:c.offsetHeight};r.mediaSize=n.__assign(n.__assign({},I),{naturalWidth:b,naturalHeight:M}),r.props.setMediaSize&&r.props.setMediaSize(r.mediaSize);var L=r.props.cropSize?r.props.cropSize:(d=r.mediaSize.width,u=r.mediaSize.height,h=r.containerRect.width,p=r.containerRect.height,y=r.props.aspect,void 0===(k=r.props.rotation)&&(k=0),m=(f=g(d,u,k)).width,v=f.height,(w=Math.min(m,h))>(_=Math.min(v,p))*y?{width:_*y,height:_}:{width:w,height:w/y});return((null==(s=r.state.cropSize)?void 0:s.height)!==L.height||(null==(l=r.state.cropSize)?void 0:l.width)!==L.width)&&r.props.onCropSizeChange&&r.props.onCropSizeChange(L),r.setState({cropSize:L},r.recomputeCropPosition),r.props.setCropSize&&r.props.setCropSize(L),L}},r.saveContainerPosition=function(){if(r.containerRef){var t=r.containerRef.getBoundingClientRect();r.containerPosition={x:t.left,y:t.top}}},r.onMouseDown=function(t){r.currentDoc&&(t.preventDefault(),r.currentDoc.addEventListener("mousemove",r.onMouseMove),r.currentDoc.addEventListener("mouseup",r.onDragStopped),r.saveContainerPosition(),r.onDragStart(a.getMousePoint(t)))},r.onMouseMove=function(t){return r.onDrag(a.getMousePoint(t))},r.onScroll=function(t){r.currentDoc&&(t.preventDefault(),r.saveContainerPosition())},r.onTouchStart=function(t){!r.currentDoc||(r.isTouching=!0,(!r.props.onTouchRequest||r.props.onTouchRequest(t))&&(r.currentDoc.addEventListener("touchmove",r.onTouchMove,{passive:!1}),r.currentDoc.addEventListener("touchend",r.onDragStopped),r.saveContainerPosition(),2===t.touches.length?r.onPinchStart(t):1===t.touches.length&&r.onDragStart(a.getTouchPoint(t.touches[0]))))},r.onTouchMove=function(t){t.preventDefault(),2===t.touches.length?r.onPinchMove(t):1===t.touches.length&&r.onDrag(a.getTouchPoint(t.touches[0]))},r.onGestureStart=function(t){r.currentDoc&&(t.preventDefault(),r.currentDoc.addEventListener("gesturechange",r.onGestureChange),r.currentDoc.addEventListener("gestureend",r.onGestureEnd),r.gestureZoomStart=r.props.zoom,r.gestureRotationStart=r.props.rotation)},r.onGestureChange=function(t){if(t.preventDefault(),!r.isTouching){var n=a.getMousePoint(t),o=r.gestureZoomStart-1+t.scale;if(r.setNewZoom(o,n,{shouldUpdatePosition:!0}),r.props.onRotationChange){var i=r.gestureRotationStart+t.rotation;r.props.onRotationChange(i)}}},r.onGestureEnd=function(t){r.cleanEvents()},r.onDragStart=function(t){var a,o;r.dragStartPosition={x:t.x,y:t.y},r.dragStartCrop=n.__assign({},r.props.crop),null==(o=(a=r.props).onInteractionStart)||o.call(a)},r.onDrag=function(t){var a=t.x,n=t.y;r.currentWindow&&(r.rafDragTimeout&&r.currentWindow.cancelAnimationFrame(r.rafDragTimeout),r.rafDragTimeout=r.currentWindow.requestAnimationFrame(function(){if(r.state.cropSize&&void 0!==a&&void 0!==n){var t=a-r.dragStartPosition.x,o=n-r.dragStartPosition.y,i={x:r.dragStartCrop.x+t,y:r.dragStartCrop.y+o},s=r.props.restrictPosition?c(i,r.mediaSize,r.state.cropSize,r.props.zoom,r.props.rotation):i;r.props.onCropChange(s)}}))},r.onDragStopped=function(){var t,a;r.isTouching=!1,r.cleanEvents(),r.emitCropData(),null==(a=(t=r.props).onInteractionEnd)||a.call(t)},r.onWheel=function(t){if(r.currentWindow&&(!r.props.onWheelRequest||r.props.onWheelRequest(t))){t.preventDefault();var n=a.getMousePoint(t),o=l.default(t).pixelY,i=r.props.zoom-o*r.props.zoomSpeed/200;r.setNewZoom(i,n,{shouldUpdatePosition:!0}),r.state.hasWheelJustStarted||r.setState({hasWheelJustStarted:!0},function(){var t,a;return null==(a=(t=r.props).onInteractionStart)?void 0:a.call(t)}),r.wheelTimer&&clearTimeout(r.wheelTimer),r.wheelTimer=r.currentWindow.setTimeout(function(){return r.setState({hasWheelJustStarted:!1},function(){var t,a;return null==(a=(t=r.props).onInteractionEnd)?void 0:a.call(t)})},250)}},r.getPointOnContainer=function(t,a){var n=t.x,o=t.y;if(!r.containerRect)throw Error("The Cropper is not mounted");return{x:r.containerRect.width/2-(n-a.x),y:r.containerRect.height/2-(o-a.y)}},r.getPointOnMedia=function(t){var a=t.x,n=t.y,o=r.props,i=o.crop,s=o.zoom;return{x:(a+i.x)/s,y:(n+i.y)/s}},r.setNewZoom=function(t,a,n){var o=(void 0===n?{}:n).shouldUpdatePosition;if(r.state.cropSize&&r.props.onZoomChange){var i=v(t,r.props.minZoom,r.props.maxZoom);if(void 0===o||o){var s=r.getPointOnContainer(a,r.containerPosition),l=r.getPointOnMedia(s),d={x:l.x*i-s.x,y:l.y*i-s.y},u=r.props.restrictPosition?c(d,r.mediaSize,r.state.cropSize,i,r.props.rotation):d;r.props.onCropChange(u)}r.props.onZoomChange(i)}},r.getCropData=function(){var t,a,o,i,s,l,d,u,h,k,f,m,v,w,_;return r.state.cropSize?(t=r.props.restrictPosition?c(r.props.crop,r.mediaSize,r.state.cropSize,r.props.zoom,r.props.rotation):r.props.crop,a=r.mediaSize,o=r.state.cropSize,i=r.getAspect(),s=r.props.zoom,l=r.props.rotation,d=r.props.restrictPosition,void 0===l&&(l=0),void 0===d&&(d=!0),u=d?p:y,h=g(a.width,a.height,l),k=g(a.naturalWidth,a.naturalHeight,l),f={x:u(100,((h.width-o.width/s)/2-t.x/s)/h.width*100),y:u(100,((h.height-o.height/s)/2-t.y/s)/h.height*100),width:u(100,o.width/h.width*100/s),height:u(100,o.height/h.height*100/s)},m=Math.round(u(k.width,f.width*k.width/100)),v=Math.round(u(k.height,f.height*k.height/100)),w=k.width>=k.height*i?{width:Math.round(v*i),height:v}:{width:m,height:Math.round(m/i)},_=n.__assign(n.__assign({},w),{x:Math.round(u(k.width-w.width,f.x*k.width/100)),y:Math.round(u(k.height-w.height,f.y*k.height/100))}),{croppedAreaPercentages:f,croppedAreaPixels:_}):null},r.emitCropData=function(){var t=r.getCropData();if(t){var a=t.croppedAreaPercentages,n=t.croppedAreaPixels;r.props.onCropComplete&&r.props.onCropComplete(a,n),r.props.onCropAreaChange&&r.props.onCropAreaChange(a,n)}},r.emitCropAreaChange=function(){var t=r.getCropData();if(t){var a=t.croppedAreaPercentages,n=t.croppedAreaPixels;r.props.onCropAreaChange&&r.props.onCropAreaChange(a,n)}},r.recomputeCropPosition=function(){if(r.state.cropSize){var t,a,n=r.props.crop;if(r.isInitialized&&(null==(t=r.previousCropSize)?void 0:t.width)&&(null==(a=r.previousCropSize)?void 0:a.height)&&(Math.abs(r.previousCropSize.width-r.state.cropSize.width)>1e-6||Math.abs(r.previousCropSize.height-r.state.cropSize.height)>1e-6)){var o=r.state.cropSize.width/r.previousCropSize.width,i=r.state.cropSize.height/r.previousCropSize.height;n={x:r.props.crop.x*o,y:r.props.crop.y*i}}var s=r.props.restrictPosition?c(n,r.mediaSize,r.state.cropSize,r.props.zoom,r.props.rotation):n;r.previousCropSize=r.state.cropSize,r.props.onCropChange(s),r.emitCropData()}},r.onKeyDown=function(t){var a,o,i=r.props,s=i.crop,l=i.onCropChange,d=i.keyboardStep,u=i.zoom,h=i.rotation,p=d;if(r.state.cropSize){t.shiftKey&&(p*=.2);var y=n.__assign({},s);switch(t.key){case"ArrowUp":y.y-=p,t.preventDefault();break;case"ArrowDown":y.y+=p,t.preventDefault();break;case"ArrowLeft":y.x-=p,t.preventDefault();break;case"ArrowRight":y.x+=p,t.preventDefault();break;default:return}r.props.restrictPosition&&(y=c(y,r.mediaSize,r.state.cropSize,u,h)),t.repeat||null==(o=(a=r.props).onInteractionStart)||o.call(a),l(y)}},r.onKeyUp=function(t){var a,n;switch(t.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":t.preventDefault();break;default:return}r.emitCropData(),null==(n=(a=r.props).onInteractionEnd)||n.call(a)},r}return n.__extends(a,t),a.prototype.componentDidMount=function(){this.currentDoc&&this.currentWindow&&(this.containerRef&&(this.containerRef.ownerDocument&&(this.currentDoc=this.containerRef.ownerDocument),this.currentDoc.defaultView&&(this.currentWindow=this.currentDoc.defaultView),this.initResizeObserver(),void 0===window.ResizeObserver&&this.currentWindow.addEventListener("resize",this.computeSizes),this.props.zoomWithScroll&&this.containerRef.addEventListener("wheel",this.onWheel,{passive:!1}),this.containerRef.addEventListener("gesturestart",this.onGestureStart)),this.currentDoc.addEventListener("scroll",this.onScroll),this.props.disableAutomaticStylesInjection||(this.styleRef=this.currentDoc.createElement("style"),this.styleRef.setAttribute("type","text/css"),this.props.nonce&&this.styleRef.setAttribute("nonce",this.props.nonce),this.styleRef.innerHTML=".reactEasyCrop_Container {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: hidden;\n user-select: none;\n touch-action: none;\n cursor: move;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.reactEasyCrop_Image,\n.reactEasyCrop_Video {\n will-change: transform; /* this improves performances and prevent painting issues on iOS Chrome */\n}\n\n.reactEasyCrop_Contain {\n max-width: 100%;\n max-height: 100%;\n margin: auto;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n}\n.reactEasyCrop_Cover_Horizontal {\n width: 100%;\n height: auto;\n}\n.reactEasyCrop_Cover_Vertical {\n width: auto;\n height: 100%;\n}\n\n.reactEasyCrop_CropArea {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n border: 1px solid rgba(255, 255, 255, 0.5);\n box-sizing: border-box;\n box-shadow: 0 0 0 9999em;\n color: rgba(0, 0, 0, 0.5);\n overflow: hidden;\n}\n\n.reactEasyCrop_CropAreaRound {\n border-radius: 50%;\n}\n\n.reactEasyCrop_CropAreaGrid::before {\n content: ' ';\n box-sizing: border-box;\n position: absolute;\n border: 1px solid rgba(255, 255, 255, 0.5);\n top: 0;\n bottom: 0;\n left: 33.33%;\n right: 33.33%;\n border-top: 0;\n border-bottom: 0;\n}\n\n.reactEasyCrop_CropAreaGrid::after {\n content: ' ';\n box-sizing: border-box;\n position: absolute;\n border: 1px solid rgba(255, 255, 255, 0.5);\n top: 33.33%;\n bottom: 33.33%;\n left: 0;\n right: 0;\n border-left: 0;\n border-right: 0;\n}\n",this.currentDoc.head.appendChild(this.styleRef)),this.imageRef.current&&this.imageRef.current.complete&&this.onMediaLoad(),this.props.setImageRef&&this.props.setImageRef(this.imageRef),this.props.setVideoRef&&this.props.setVideoRef(this.videoRef),this.props.setCropperRef&&this.props.setCropperRef(this.cropperRef))},a.prototype.componentWillUnmount=function(){var t,a;this.currentDoc&&this.currentWindow&&(void 0===window.ResizeObserver&&this.currentWindow.removeEventListener("resize",this.computeSizes),null==(t=this.resizeObserver)||t.disconnect(),this.containerRef&&this.containerRef.removeEventListener("gesturestart",this.preventZoomSafari),this.styleRef&&(null==(a=this.styleRef.parentNode)||a.removeChild(this.styleRef)),this.cleanEvents(),this.props.zoomWithScroll&&this.clearScrollEvent())},a.prototype.componentDidUpdate=function(t){t.rotation!==this.props.rotation?(this.computeSizes(),this.recomputeCropPosition()):t.aspect!==this.props.aspect||t.objectFit!==this.props.objectFit?this.computeSizes():t.zoom!==this.props.zoom?this.recomputeCropPosition():(null==(a=t.cropSize)?void 0:a.height)!==(null==(r=this.props.cropSize)?void 0:r.height)||(null==(n=t.cropSize)?void 0:n.width)!==(null==(o=this.props.cropSize)?void 0:o.width)?this.computeSizes():((null==(i=t.crop)?void 0:i.x)!==(null==(s=this.props.crop)?void 0:s.x)||(null==(l=t.crop)?void 0:l.y)!==(null==(c=this.props.crop)?void 0:c.y))&&this.emitCropAreaChange(),t.zoomWithScroll!==this.props.zoomWithScroll&&this.containerRef&&(this.props.zoomWithScroll?this.containerRef.addEventListener("wheel",this.onWheel,{passive:!1}):this.clearScrollEvent()),t.video!==this.props.video&&(null==(d=this.videoRef.current)||d.load());var a,r,n,o,i,s,l,c,d,u=this.getObjectFit();u!==this.state.mediaObjectFit&&this.setState({mediaObjectFit:u},this.computeSizes)},a.prototype.getAspect=function(){var t=this.props,a=t.cropSize,r=t.aspect;return a?a.width/a.height:r},a.prototype.getObjectFit=function(){var t,a,r,n;if("cover"===this.props.objectFit){if((this.imageRef.current||this.videoRef.current)&&this.containerRef){this.containerRect=this.containerRef.getBoundingClientRect();var o=this.containerRect.width/this.containerRect.height;return((null==(t=this.imageRef.current)?void 0:t.naturalWidth)||(null==(a=this.videoRef.current)?void 0:a.videoWidth)||0)/((null==(r=this.imageRef.current)?void 0:r.naturalHeight)||(null==(n=this.videoRef.current)?void 0:n.videoHeight)||0)<o?"horizontal-cover":"vertical-cover"}return"horizontal-cover"}return this.props.objectFit},a.prototype.onPinchStart=function(t){var r=a.getTouchPoint(t.touches[0]),n=a.getTouchPoint(t.touches[1]);this.lastPinchDistance=u(r,n),this.lastPinchRotation=h(r,n),this.onDragStart(m(r,n))},a.prototype.onPinchMove=function(t){var r=this;if(this.currentDoc&&this.currentWindow){var n=a.getTouchPoint(t.touches[0]),o=a.getTouchPoint(t.touches[1]),i=m(n,o);this.onDrag(i),this.rafPinchTimeout&&this.currentWindow.cancelAnimationFrame(this.rafPinchTimeout),this.rafPinchTimeout=this.currentWindow.requestAnimationFrame(function(){var t=u(n,o),a=r.props.zoom*(t/r.lastPinchDistance);r.setNewZoom(a,i,{shouldUpdatePosition:!1}),r.lastPinchDistance=t;var s=h(n,o),l=r.props.rotation+(s-r.lastPinchRotation);r.props.onRotationChange&&r.props.onRotationChange(l),r.lastPinchRotation=s})}},a.prototype.render=function(){var t,a=this,r=this.props,o=r.image,i=r.video,l=r.mediaProps,c=r.cropperProps,d=r.transform,u=r.crop,h=u.x,p=u.y,y=r.rotation,k=r.zoom,f=r.cropShape,m=r.showGrid,g=r.roundCropAreaPixels,v=r.style,_=v.containerStyle,x=v.cropAreaStyle,b=v.mediaStyle,M=r.classes,C=M.containerClassName,S=M.cropAreaClassName,I=M.mediaClassName,L=null!=(t=this.state.mediaObjectFit)?t:this.getObjectFit();return s.createElement("div",{onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,ref:function(t){return a.containerRef=t},"data-testid":"container",style:_,className:w("reactEasyCrop_Container",C)},o?s.createElement("img",n.__assign({alt:"",className:w("reactEasyCrop_Image","contain"===L&&"reactEasyCrop_Contain","horizontal-cover"===L&&"reactEasyCrop_Cover_Horizontal","vertical-cover"===L&&"reactEasyCrop_Cover_Vertical",I)},l,{src:o,ref:this.imageRef,style:n.__assign(n.__assign({},b),{transform:d||"translate(".concat(h,"px, ").concat(p,"px) rotate(").concat(y,"deg) scale(").concat(k,")")}),onLoad:this.onMediaLoad})):i&&s.createElement("video",n.__assign({autoPlay:!0,playsInline:!0,loop:!0,muted:!0,className:w("reactEasyCrop_Video","contain"===L&&"reactEasyCrop_Contain","horizontal-cover"===L&&"reactEasyCrop_Cover_Horizontal","vertical-cover"===L&&"reactEasyCrop_Cover_Vertical",I)},l,{ref:this.videoRef,onLoadedMetadata:this.onMediaLoad,style:n.__assign(n.__assign({},b),{transform:d||"translate(".concat(h,"px, ").concat(p,"px) rotate(").concat(y,"deg) scale(").concat(k,")")}),controls:!1}),(Array.isArray(i)?i:[{src:i}]).map(function(t){return s.createElement("source",n.__assign({key:t.src},t))})),this.state.cropSize&&s.createElement("div",n.__assign({ref:this.cropperRef,style:n.__assign(n.__assign({},x),{width:g?Math.round(this.state.cropSize.width):this.state.cropSize.width,height:g?Math.round(this.state.cropSize.height):this.state.cropSize.height}),tabIndex:0,onKeyDown:this.onKeyDown,onKeyUp:this.onKeyUp,"data-testid":"cropper",className:w("reactEasyCrop_CropArea","round"===f&&"reactEasyCrop_CropAreaRound",m&&"reactEasyCrop_CropAreaGrid",S)},c)))},a.defaultProps={zoom:1,rotation:0,aspect:4/3,maxZoom:3,minZoom:1,cropShape:"rect",objectFit:"contain",showGrid:!0,style:{},classes:{},mediaProps:{},cropperProps:{},zoomSpeed:1,restrictPosition:!0,zoomWithScroll:!0,keyboardStep:1},a.getMousePoint=function(t){return{x:Number(t.clientX),y:Number(t.clientY)}},a.getTouchPoint=function(t){return{x:Number(t.clientX),y:Number(t.clientY)}},a}(s.Component),r.getInitialCropFromCroppedAreaPercentages=k,r.getInitialCropFromCroppedAreaPixels=f},914750,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(199586),i=t.r(980585);r.UserAvatar=function(t){let a=t.user;return(0,o.jsxs)(n.Avatar,{style:{height:t.size||34,width:t.size||34},className:t.border?"border":"",children:[(0,o.jsx)(n.AvatarImage,{src:a?.profileImageUrl||""}),(0,o.jsx)(n.AvatarFallback,{children:a?(0,o.jsx)("div",{className:"font-medium",style:{fontSize:.4*(t.size||34)},children:(a.displayName||a.primaryEmail)?.slice(0,2).toUpperCase()}):(0,o.jsx)(i.UserRound,{className:"text-zinc-500",size:.6*(t.size||34)})})]})}},388795,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"});let n=t.r(493557),o=t.r(869920),i=t.r(865268),s=t.r(866820),l=t.r(221913),c=t.r(199586),d=t.r(980585),u=t.r(385516),h=t.r(674214);h=n.__toESM(h);let p=t.r(40522);p=n.__toESM(p);let y=t.r(914750);async function k(t){try{return(await (await fetch(t,{method:"HEAD"})).blob()).type.startsWith("image/")}catch(t){return!1}}async function f(t,a){let r=await new Promise((a,r)=>{let n=new Image;n.addEventListener("load",()=>a(n)),n.addEventListener("error",t=>r(t)),n.setAttribute("crossOrigin","anonymous"),n.src=t}),n=document.createElement("canvas"),o=n.getContext("2d");if(!o)return null;let i={x:Math.max(0,a.x),y:Math.max(0,a.y),width:Math.max(1,a.width),height:Math.max(1,a.height)};return n.width=i.width,n.height=i.height,o.drawImage(r,i.x,i.y,i.width,i.height,0,0,i.width,i.height),n.toDataURL("image/jpeg")}r.ProfileImageEditor=function(t){let{t:a}=(0,l.useTranslation)(),[r,n]=(0,s.useState)(null),[m,g]=(0,s.useState)(null),[v,w]=(0,s.useState)({x:0,y:0}),[_,x]=(0,s.useState)(1),[b,M]=(0,s.useState)(null);function C(){n(null),g(null),w({x:0,y:0}),x(1),M(null)}let S=(0,s.useCallback)(t=>{w(t)},[]),I=(0,s.useCallback)((t,a)=>{M(a)},[]),L=(0,s.useCallback)(t=>{x(t)},[]);return r?(0,c.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,c.jsx)("div",{className:"relative w-64 h-64",children:(0,c.jsx)(p.default,{image:r||t.user.profileImageUrl||"",crop:v,zoom:_,aspect:1,cropShape:"round",showGrid:!1,onCropChange:S,onCropComplete:I,onZoomChange:L})}),(0,c.jsx)(i.Slider,{min:1,max:3,step:.1,value:[_],onValueChange:t=>L(t[0])}),(0,c.jsxs)("div",{className:"flex flex-row gap-2",children:[(0,c.jsx)(i.Button,{onClick:async()=>{if(r&&b){let n=await f(r,b);if(n){let a=await (0,h.default)(await h.default.getFilefromDataUrl(n,"profile-image"),{maxSizeMB:.1,fileType:"image/jpeg"}),r=await h.default.getDataUrlFromFile(a);await t.onProfileImageUrlChange(r),C()}else g(a("Could not crop image."))}},children:a("Save")}),(0,c.jsx)(i.Button,{variant:"secondary",onClick:C,children:a("Cancel")})]})]}):(0,c.jsxs)("div",{className:"flex flex-col",children:[(0,c.jsxs)("div",{className:"cursor-pointer relative",onClick:function(){let t=document.createElement("input");t.type="file",t.onchange=r=>{let i=r.target.files?.[0];i&&(0,o.runAsynchronouslyWithAlert)(async()=>{let r=await (0,u.fileToBase64)(i);await k(r)?(n(r),g(null)):g(a("Invalid image")),t.remove()})},t.click()},children:[(0,c.jsx)(y.UserAvatar,{size:60,user:t.user,border:!0}),(0,c.jsx)("div",{className:"absolute top-0 left-0 h-[60px] w-[60px] bg-gray-500/20 backdrop-blur-sm items-center justify-center rounded-full flex opacity-0 hover:opacity-100 transition-opacity",children:(0,c.jsx)("div",{className:"bg-background p-2 rounded-full",children:(0,c.jsx)(d.Upload,{className:"h-5 w-5"})})})]}),m&&(0,c.jsx)(i.Typography,{variant:"destructive",type:"label",children:m})]})},r.checkImageUrl=k,r.getCroppedImg=f},310745,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(866820),i=t.r(199586),s=t.r(980585),l=t.r(221913);r.EditableText=function(t){let[a,r]=(0,o.useState)(!1),[c,d]=(0,o.useState)(t.value),{t:u}=(0,l.useTranslation)();return(0,i.jsx)("div",{className:"flex items-center gap-2",children:a?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.Input,{value:c,onChange:t=>d(t.target.value)}),(0,i.jsx)(n.Button,{size:"sm",onClick:async()=>{await t.onSave?.(c),r(!1)},children:u("Save")}),(0,i.jsx)(n.Button,{size:"sm",variant:"secondary",onClick:()=>{d(t.value),r(!1)},children:u("Cancel")})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.Typography,{children:t.value}),(0,i.jsx)(n.Button,{onClick:()=>r(!0),size:"icon",variant:"ghost",children:(0,i.jsx)(s.Edit,{className:"w-4 h-4"})})]})})}},864365,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(199586),o=t.r(951764),i=t.r(221913),s=t.r(216322),l=t.r(658238),c=t.r(388795),d=t.r(310745);r.ProfilePage=function(t){let{t:a}=(0,i.useTranslation)(),r=(0,o.useUser)({or:t?.mockUser?"return-null":"redirect"}),u=t?.mockUser?{displayName:t.mockUser.displayName||"John Doe",profileImageUrl:t.mockUser.profileImageUrl||null,update:async()=>{console.log("Mock update called")}}:r;return u?(0,n.jsxs)(s.PageLayout,{children:[(0,n.jsx)(l.Section,{title:a("User name"),description:a("This is a display name and is not used for authentication"),children:(0,n.jsx)(d.EditableText,{value:u.displayName||"",onSave:async t=>{await u.update({displayName:t})}})}),(0,n.jsx)(l.Section,{title:a("Profile image"),description:a("Upload your own image as your avatar"),children:(0,n.jsx)(c.ProfileImageEditor,{user:u,onProfileImageUrlChange:async t=>{await u.update({profileImageUrl:t})}})})]}):null}},410724,t=>{"use strict";t.i(652676);var a=t.i(339322);t.s(["loadStripe",()=>a.loadStripe])},237718,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(869920),o=t.r(865268),i=t.r(866820),s=t.r(199586),l=t.r(812811),c=t.r(39187),d=t.r(221913),u=t.r(658238),h=t.r(447979),p=t.r(892544),y=t.r(410724),k=t.r(39215);function f(t){return[t.brand?t.brand.toUpperCase():null,t.last4?`•••• ${t.last4}`:null,t.exp_month&&t.exp_year?`exp ${t.exp_month}/${t.exp_year}`:null].filter(Boolean).join(" · ")}function m(t){let a=(0,p.useStripe)(),r=(0,p.useElements)(),[n,l]=(0,i.useState)(null),c="color-scheme"in document.documentElement.style&&"dark"===document.documentElement.style["color-scheme"];return(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(o.Typography,{className:"font-medium",children:"Card details"}),(0,s.jsx)("div",{className:"rounded-md border border-input p-3",children:(0,s.jsx)(p.CardElement,{options:{hidePostalCode:!0,style:{base:{color:c?"white":"black"}}}})})]}),n&&(0,s.jsx)(o.Typography,{variant:"secondary",type:"footnote",children:n}),(0,s.jsx)(o.Button,{onClick:async()=>{if(!a||!r)return void l("Stripe is still loading. Please try again.");let n=r.getElement(p.CardElement);if(!n)return void l("Card element not found.");let o=await a.confirmCardSetup(t.clientSecret,{payment_method:{card:n}});o.error?l(o.error.message??"Failed to save payment method."):o.setupIntent.id?await t.onSetupIntentSucceeded(o.setupIntent.id):l("No setup intent returned from Stripe.")},children:"Save payment method"})]})}function g(t){let{t:a}=(0,d.useTranslation)();return(0,s.jsxs)("div",{className:"space-y-4",children:[t.title&&(0,s.jsx)(o.Typography,{className:"font-medium",children:t.title}),(0,s.jsxs)(u.Section,{title:a("Payment method"),description:a("Manage the default payment method used for subscriptions and invoices."),children:[(0,s.jsx)(o.Typography,{children:f({id:"pm_mock",brand:"visa",last4:"4242",exp_month:12,exp_year:2030})}),(0,s.jsx)(o.Button,{disabled:!0,children:a("Update payment method")})]}),(0,s.jsx)(u.Section,{title:a("Active plans"),description:a("View your active plans and purchases."),children:(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)(o.Typography,{className:"truncate",children:a("Pro")}),(0,s.jsxs)(o.Typography,{variant:"secondary",type:"footnote",children:[a("Renews on")," Jan 1, 2030"]})]}),(0,s.jsx)(o.Button,{disabled:!0,variant:"secondary",color:"neutral",children:a("Cancel subscription")})]}),(0,s.jsx)("div",{className:"flex items-start justify-between gap-4",children:(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)(o.Typography,{className:"truncate",children:a("Credits pack")}),(0,s.jsx)(o.Typography,{variant:"secondary",type:"footnote",children:a("One-time purchase")})]})})]})})]})}function v(t){let{t:a}=(0,d.useTranslation)(),r=(0,h.useStackApp)(),g=t.customer.useBilling().defaultPaymentMethod,v=t.customer.useProducts(),w=t.customer.useInvoices({limit:10}),_=v.filter(a=>a.customerType===t.customerType),[x,b]=(0,i.useState)(!1),[M,C]=(0,i.useState)(null),[S,I]=(0,i.useState)(null),[L,P]=(0,i.useState)(null),[j,A]=(0,i.useState)(null),[T,O]=(0,i.useState)(null),R=(0,i.useMemo)(()=>{if(!S)return null;let t=k.envVars.HEXCLAVE_STRIPE_PUBLISHABLE_KEY;return t?(0,y.loadStripe)(t,{stripeAccount:S}):null},[S]),D=t=>{t instanceof l.KnownErrors.DefaultPaymentMethodRequired?(0,o.toast)({title:a("No default payment method"),description:a("Add a payment method before switching plans."),variant:"destructive"}):alert(`An unhandled error occurred. Please ${"development"===k.envVars.NODE_ENV?"check the browser console for the full error.":"report this to the developer."}
54
54
 
55
55
  ${t}`)},z=()=>{b(!1),C(null),I(null)},q=()=>{A(null),O(null)},E=(j?_.find(t=>t.id===j)??null:null)?.switchOptions??[],H=E.find(t=>t.productId===T)??null,F=H?Object.keys(H.prices)[0]??null:null;return(0,s.jsxs)("div",{className:"space-y-4",children:[t.title&&(0,s.jsx)(o.Typography,{className:"font-medium",children:t.title}),g&&(0,s.jsxs)(u.Section,{title:a("Payment method"),description:a("Manage the default payment method used for subscriptions and invoices."),children:[(0,s.jsx)(o.Typography,{children:f(g)}),(0,s.jsx)(o.Button,{onClick:()=>{(0,n.runAsynchronously)(async()=>{b(!0);let a=await t.customer.createPaymentMethodSetupIntent();C(a.clientSecret),I(a.stripeAccountId)},{onError:D})},children:a("Update payment method")}),(0,s.jsx)(o.ActionDialog,{open:x,onOpenChange:t=>{t?b(!0):z()},title:a("Update payment method"),children:M&&S&&R?(0,s.jsx)(p.Elements,{stripe:R,options:{clientSecret:M},children:(0,s.jsx)(m,{clientSecret:M,onSetupIntentSucceeded:async a=>{await t.customer.setDefaultPaymentMethodFromSetupIntent(a),z()}})}):(0,s.jsx)(o.Skeleton,{className:"h-10 w-full"})})]}),_.length>0&&(0,s.jsxs)(u.Section,{title:a("Active plans"),description:a("View your active plans and purchases."),children:[(0,s.jsx)("div",{className:"space-y-3",children:_.map((t,r)=>{let n=1!==t.quantity?` \xd7${t.quantity}`:"",i="subscription"===t.type,l=i&&!!t.subscription?.isCancelable,c=i&&g&&!!t.id&&(t.switchOptions?.length??0)>0,d=i?t.subscription?.currentPeriodEnd??null:null,u="one_time"===t.type?a("One-time purchase"):d?`${a("Renews on")} ${new Intl.DateTimeFormat(void 0,{year:"numeric",month:"short",day:"numeric"}).format(d)}`:a("Subscription");return(0,s.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsxs)(o.Typography,{className:"truncate",children:[t.displayName,n]}),(0,s.jsx)(o.Typography,{variant:"secondary",type:"footnote",children:u})]}),(0,s.jsxs)("div",{className:"flex flex-col items-end gap-2",children:[c&&(0,s.jsx)(o.Button,{variant:"secondary",color:"neutral",onClick:()=>{var a,r;return a=t.id,r=t.switchOptions?.[0]?.productId??null,void(A(a),O(r))},children:a("Change plan")}),l&&(0,s.jsx)(o.Button,{variant:"secondary",color:"neutral",onClick:()=>P({productId:t.id??"_inline",subscriptionId:t.subscription?.subscriptionId??void 0}),children:a("Cancel subscription")})]})]},t.id??`${t.displayName}-${r}`)})}),(0,s.jsx)(o.ActionDialog,{open:null!==L,onOpenChange:t=>{t||P(null)},title:a("Cancel subscription"),description:a("Canceling will stop future renewals for this subscription."),danger:!0,cancelButton:!0,okButton:{label:a("Cancel subscription"),onClick:async()=>{if(!L)return;let{productId:a,subscriptionId:n}=L;"team"===t.customerType?await r.cancelSubscription({teamId:t.customer.id,productId:a,subscriptionId:n}):await r.cancelSubscription({productId:a,subscriptionId:n}),P(null)}}}),(0,s.jsx)(o.ActionDialog,{open:null!==j,onOpenChange:t=>{t||q()},title:a("Change plan"),description:a("Select a new plan from the same product line."),cancelButton:!0,okButton:{label:a("Switch plan"),onClick:async()=>{if(!j||!T||!F)return;let a=await c.Result.fromThrowingAsync(()=>t.customer.switchSubscription({fromProductId:j,toProductId:T,priceId:F}));if("error"===a.status)return D(a.error),"prevent-close";q()},props:{disabled:!j||!T||!F}},children:(0,s.jsx)("div",{className:"space-y-2",children:0===E.length?(0,s.jsx)(o.Typography,{variant:"secondary",type:"footnote",children:a("No other plans available for this subscription.")}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.Typography,{type:"footnote",children:a("Choose a plan")}),(0,s.jsxs)(o.Select,{value:T??void 0,onValueChange:t=>O(t||null),children:[(0,s.jsx)(o.SelectTrigger,{className:"w-full",children:(0,s.jsx)(o.SelectValue,{placeholder:a("Choose a plan")})}),(0,s.jsx)(o.SelectContent,{children:E.map(t=>(0,s.jsx)(o.SelectItem,{value:t.productId,children:t.displayName},t.productId))})]})]})})})]}),w.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.Separator,{}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)(o.Typography,{className:"font-medium",children:a("Invoices")}),(0,s.jsx)(o.Typography,{variant:"secondary",type:"footnote",children:a("Review past invoices and receipts.")})]}),(0,s.jsx)("div",{className:"border rounded-md",children:(0,s.jsxs)(o.Table,{children:[(0,s.jsx)(o.TableHeader,{children:(0,s.jsxs)(o.TableRow,{children:[(0,s.jsx)(o.TableHead,{className:"w-[140px]",children:a("Date")}),(0,s.jsx)(o.TableHead,{className:"w-[120px]",children:a("Status")}),(0,s.jsx)(o.TableHead,{className:"w-[120px]",children:a("Amount")}),(0,s.jsx)(o.TableHead,{className:"w-[120px] text-right",children:a("Invoice")})]})}),(0,s.jsx)(o.TableBody,{children:w.map((t,r)=>{var n,i;let l=t.createdAt.getTime(),c=Number.isNaN(l)?`invoice-${r}`:`invoice-${l}-${r}`;return(0,s.jsxs)(o.TableRow,{children:[(0,s.jsx)(o.TableCell,{children:(0,s.jsx)(o.Typography,{children:(n=t.createdAt,!n||Number.isNaN(n.getTime())?a("Unknown"):new Intl.DateTimeFormat(void 0,{year:"numeric",month:"short",day:"numeric"}).format(n))})}),(0,s.jsx)(o.TableCell,{children:(0,s.jsx)(o.Typography,{children:((t,a)=>{if(!t)return a("Unknown");switch(t){case"draft":return a("Draft");case"open":return a("Open");case"paid":return a("Paid");case"uncollectible":return a("Uncollectible");case"void":return a("Void");default:return a("Unknown")}})(t.status,a)})}),(0,s.jsx)(o.TableCell,{children:(0,s.jsx)(o.Typography,{children:(i=t.amountTotal,"number"!=typeof i||Number.isNaN(i)?a("Unknown"):`$${new Intl.NumberFormat(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}).format(i/100)}`)})}),(0,s.jsx)(o.TableCell,{align:"right",children:t.hostedInvoiceUrl?(0,s.jsx)(o.Button,{asChild:!0,variant:"secondary",color:"neutral",size:"sm",children:(0,s.jsx)("a",{href:t.hostedInvoiceUrl,target:"_blank",rel:"noreferrer",children:a("View")})}):(0,s.jsx)(o.Typography,{variant:"secondary",type:"footnote",children:a("Unavailable")})})]},c)})})]})})]})]})]})}r.PaymentsPanel=function(t){return t.mockMode?(0,s.jsx)(g,{title:t.title}):t.customer?(0,s.jsx)(v,{title:t.title,customer:t.customer,customerType:t.customerType??"user"}):null}},19703,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(866820),o=t.r(199586),i=t.r(951764),s=t.r(221913),l=t.r(216322),c=t.r(447979),d=t.r(237718);r.PaymentsPage=function(t){let{t:a}=(0,s.useTranslation)(),r=(0,i.useUser)({or:t.mockMode?"return-null":"redirect"}),u=t.availableTeams??r?.useTeams()??[],h=t.allowPersonal??!0,p=u.length>0,[y,k]=(0,n.useState)(null),f=y??(h?null:u[0]??null),m=f??(h?r:null),g=f?"team":"user";return((0,n.useEffect)(()=>{if(!t.mockMode){if(!h&&!y&&u.length>0)return void k(u[0]);y&&!u.some(t=>t.id===y.id)&&k(h?null:u[0]??null)}},[h,t.mockMode,y,u]),t.mockMode)?(0,o.jsx)(l.PageLayout,{children:(0,o.jsx)(d.PaymentsPanel,{mockMode:!0})}):m?(0,o.jsxs)(l.PageLayout,{children:[p?(0,o.jsx)(c.TeamSwitcher,{team:f??void 0,teams:u,allowNull:h,nullLabel:a("Personal"),onChange:async t=>{k(t)}}):null,(0,o.jsx)(d.PaymentsPanel,{customer:m,customerType:g})]}):null}},756282,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(866820),i=t.r(199586),s=t.r(951764),l=t.r(221913),c=t.r(658238);r.DeleteAccountSection=function(t){let{t:a}=(0,l.useTranslation)(),r=(0,s.useUser)({or:t?.mockMode?"return-null":"redirect"}),d=(0,s.useStackApp)(),u=d.useProject(),[h,p]=(0,o.useState)(!1);if(!(t?.mockMode||u.config.clientUserDeletionEnabled))return null;let y=async()=>{if(t?.mockMode){alert("Mock mode: Account deletion clicked"),p(!1);return}r&&(await r.delete(),await d.redirectToHome())};return(0,i.jsx)(c.Section,{title:a("Delete Account"),description:a("Permanently remove your account and all associated data"),children:(0,i.jsx)("div",{className:"stack-scope flex flex-col items-stretch",children:(0,i.jsx)(n.Accordion,{type:"single",collapsible:!0,className:"w-full",children:(0,i.jsxs)(n.AccordionItem,{value:"item-1",children:[(0,i.jsx)(n.AccordionTrigger,{children:a("Danger zone")}),(0,i.jsx)(n.AccordionContent,{children:h?(0,i.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,i.jsx)(n.Typography,{variant:"destructive",children:a("Are you sure you want to delete your account? This action is IRREVERSIBLE and will delete ALL associated data.")}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)(n.Button,{variant:"destructive",onClick:y,children:a("Delete Account")}),(0,i.jsx)(n.Button,{variant:"secondary",onClick:()=>p(!1),children:a("Cancel")})]})]}):(0,i.jsx)("div",{children:(0,i.jsx)(n.Button,{variant:"destructive",onClick:()=>p(!0),children:a("Delete account")})})})]})})})})}},290227,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(199586),i=t.r(951764),s=t.r(221913),l=t.r(658238);r.SignOutSection=function(t){let{t:a}=(0,s.useTranslation)(),r=(0,i.useUser)({or:t?.mockMode?"return-null":"throw"}),c=async()=>{t?.mockMode?alert("Mock mode: Sign out clicked"):r&&await r.signOut()};return(0,o.jsx)(l.Section,{title:a("Sign out"),description:a("End your current session"),children:(0,o.jsx)("div",{children:(0,o.jsx)(n.Button,{variant:"secondary",onClick:c,children:a("Sign out")})})})}},85287,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(199586),o=t.r(216322),i=t.r(756282),s=t.r(290227);r.SettingsPage=function(t){return(0,n.jsxs)(o.PageLayout,{children:[(0,n.jsx)(i.DeleteAccountSection,{mockMode:t?.mockMode}),(0,n.jsx)(s.SignOutSection,{mockMode:t?.mockMode})]})}},876049,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"});let n=t.r(493557),o=t.r(865268),i=t.r(866820);i=n.__toESM(i);let s=t.r(199586),l=t.r(979876);r.MessageCard=function({fullPage:t=!1,...a}){return(0,s.jsx)(l.MaybeFullPage,{fullPage:t,children:(0,s.jsxs)("div",{className:"text-center stack-scope flex flex-col gap-4",style:{maxWidth:"380px",flexBasis:"380px",padding:t?"1rem":0},children:[(0,s.jsx)(o.Typography,{type:"h3",children:a.title}),a.children,(a.primaryButtonText||a.secondaryButtonText)&&(0,s.jsxs)("div",{className:"flex justify-center gap-4 my-5",children:[a.secondaryButtonText&&(0,s.jsx)(o.Button,{variant:"secondary",onClick:a.secondaryAction,children:a.secondaryButtonText}),a.primaryButtonText&&(0,s.jsx)(o.Button,{onClick:a.primaryAction,children:a.primaryButtonText})]})]})})}},988761,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(869920),o=t.r(345747),i=t.r(287820),s=t.r(865268),l=t.r(866820),c=t.r(380063),d=t.r(199586),u=t.r(951764),h=t.r(221913),p=t.r(216322),y=t.r(203834),k=t.r(658238),f=t.r(876049);r.TeamCreationPage=function(t){let{t:a}=(0,h.useTranslation)(),{register:r,handleSubmit:m,formState:{errors:g}}=(0,c.useForm)({resolver:(0,o.yupResolver)((0,i.yupObject)({displayName:(0,i.yupString)().defined().nonEmpty(a("Please enter a team name"))}))}),v=(0,u.useStackApp)(),w=v.useProject(),_=(0,u.useUser)({or:t?.mockMode?"return-null":"redirect"}),x=v.useNavigate(),[b,M]=(0,l.useState)(!1);if(t?.mockMode)return(0,d.jsx)(p.PageLayout,{children:(0,d.jsx)(f.MessageCard,{title:a("Team creation is disabled in demo mode")})});if(!w.config.clientTeamCreationEnabled)return(0,d.jsx)(f.MessageCard,{title:a("Team creation is not enabled")});let C=async a=>{let r;if(t?.mockMode)return void alert("Mock mode: Team creation clicked");M(!0);try{r=await _?.createTeam({displayName:a.displayName})}finally{M(!1)}r&&x(`#team-${r.id}`)};return(0,d.jsx)(p.PageLayout,{children:(0,d.jsx)(k.Section,{title:a("Create a Team"),description:a("Enter a display name for your new team"),children:(0,d.jsxs)("form",{onSubmit:t=>(0,n.runAsynchronouslyWithAlert)(m(C)(t)),noValidate:!0,className:"flex gap-2 flex-col sm:flex-row",children:[(0,d.jsxs)("div",{className:"flex flex-col flex-1",children:[(0,d.jsx)(s.Input,{id:"displayName",type:"text",...r("displayName")}),(0,d.jsx)(y.FormWarningText,{text:g.displayName?.message?.toString()})]}),(0,d.jsx)(s.Button,{type:"submit",loading:b,children:a("Create")})]})})})}},226223,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(866820),i=t.r(199586),s=t.r(951764),l=t.r(221913),c=t.r(658238);r.LeaveTeamSection=function(t){let{t:a}=(0,l.useTranslation)(),r=(0,s.useUser)({or:"redirect"}),[d,u]=(0,o.useState)(!1);return(0,i.jsx)(c.Section,{title:a("Leave Team"),description:a("leave this team and remove your team profile"),children:d?(0,i.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,i.jsx)(n.Typography,{variant:"destructive",children:a("Are you sure you want to leave the team?")}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)(n.Button,{variant:"destructive",onClick:async()=>{await r.leaveTeam(t.team),window.location.reload()},children:a("Leave")}),(0,i.jsx)(n.Button,{variant:"secondary",onClick:()=>u(!1),children:a("Cancel")})]})]}):(0,i.jsx)("div",{children:(0,i.jsx)(n.Button,{variant:"secondary",onClick:()=>u(!0),children:a("Leave team")})})})}},989394,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(818395),o=t.r(865268),i=t.r(866820),s=t.r(199586),l=t.r(951764),c=t.r(221913),d=t.r(110110),u=t.r(241878),h=t.r(658238);function p(t){let{t:a}=(0,c.useTranslation)(),[r,n]=(0,i.useState)(!1),[l,p]=(0,i.useState)(null),y=t.team.useApiKeys(),k=d.CreateApiKeyDialog,f=d.ShowApiKeyDialog;return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(h.Section,{title:a("API Keys"),description:a("API keys grant programmatic access to your team."),children:(0,s.jsx)(o.Button,{onClick:()=>n(!0),children:a("Create API Key")})}),(0,s.jsx)(u.ApiKeyTable,{apiKeys:y}),(0,s.jsx)(k,{open:r,onOpenChange:n,onKeyCreated:p,createApiKey:async a=>await t.team.createApiKey(a)}),(0,s.jsx)(f,{apiKey:l,onClose:()=>p(null)})]})}r.TeamApiKeysSection=function(t){let a=(0,l.useUser)({or:"redirect"}),r=a.useTeam(t.team.id),o=(0,l.useStackApp)().useProject();if(!r)throw new n.HexclaveAssertionError("Team not found");let i=o.config.allowTeamApiKeys;return a.usePermission(t.team,"$manage_api_keys")&&i?(0,s.jsx)(p,{team:t.team}):null}},78077,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(199586),o=t.r(951764),i=t.r(221913),s=t.r(658238),l=t.r(310745);r.TeamDisplayNameSection=function(t){let{t:a}=(0,i.useTranslation)();return(0,o.useUser)({or:"redirect"}).usePermission(t.team,"$update_team")?(0,n.jsx)(s.Section,{title:a("Team display name"),description:a("Change the display name of your team"),children:(0,n.jsx)(l.EditableText,{value:t.team.displayName,onSave:async a=>await t.team.update({displayName:a})})}):null}},161861,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(869920),o=t.r(345747),i=t.r(287820),s=t.r(865268),l=t.r(866820),c=t.r(380063),d=t.r(199586),u=t.r(980585),h=t.r(951764),p=t.r(221913),y=t.r(203834),k=t.r(658238);function f(t){let a=(0,h.useUser)({or:"redirect"}),{t:r}=(0,p.useTranslation)(),n=t.team.useInvitations(),o=a.usePermission(t.team,"$remove_members");return(0,d.jsx)(d.Fragment,{children:(0,d.jsxs)(s.Table,{className:"mt-6",children:[(0,d.jsx)(s.TableHeader,{children:(0,d.jsxs)(s.TableRow,{children:[(0,d.jsx)(s.TableHead,{className:"w-[200px]",children:r("Outstanding invitations")}),(0,d.jsx)(s.TableHead,{className:"w-[60px]",children:r("Expires")}),(0,d.jsx)(s.TableHead,{className:"w-[36px] max-w-[36px]"})]})}),(0,d.jsxs)(s.TableBody,{children:[n.map((t,a)=>(0,d.jsxs)(s.TableRow,{children:[(0,d.jsx)(s.TableCell,{children:(0,d.jsx)(s.Typography,{children:t.recipientEmail})}),(0,d.jsx)(s.TableCell,{children:(0,d.jsx)(s.Typography,{variant:"secondary",children:t.expiresAt.toLocaleString()})}),(0,d.jsx)(s.TableCell,{align:"right",className:"max-w-[36px]",children:o&&(0,d.jsx)(s.Button,{onClick:async()=>await t.revoke(),size:"icon",variant:"ghost",children:(0,d.jsx)(u.Trash,{className:"w-4 h-4"})})})]},t.id)),0===n.length&&(0,d.jsx)(s.TableRow,{children:(0,d.jsx)(s.TableCell,{colSpan:3,children:(0,d.jsx)(s.Typography,{variant:"secondary",children:r("No outstanding invitations")})})})]})]})})}function m(t){let a=(0,h.useUser)({or:"redirect"}),{t:r}=(0,p.useTranslation)(),u=a.usePermission(t.team,"$read_members"),{register:m,handleSubmit:g,formState:{errors:v},watch:w}=(0,c.useForm)({resolver:(0,o.yupResolver)((0,i.yupObject)({email:(0,i.strictEmailSchema)(r("Please enter a valid email address")).defined().nonEmpty(r("Please enter an email address"))}))}),[_,x]=(0,l.useState)(!1),[b,M]=(0,l.useState)(null),C=async a=>{x(!0);try{await t.team.inviteUser({email:a.email}),M(a.email)}finally{x(!1)}};return(0,l.useEffect)(()=>{M(null)},[w("email")]),(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(k.Section,{title:r("Invite member"),description:r("Invite a user to your team through email"),children:(0,d.jsxs)("form",{onSubmit:t=>(0,n.runAsynchronouslyWithAlert)(g(C)(t)),noValidate:!0,className:"w-full",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row w-full",children:[(0,d.jsx)(s.Input,{placeholder:r("Email"),...m("email")}),(0,d.jsx)(s.Button,{type:"submit",loading:_,children:r("Invite User")})]}),(0,d.jsx)(y.FormWarningText,{text:v.email?.message?.toString()}),b&&(0,d.jsxs)(s.Typography,{type:"label",variant:"secondary",children:["Invited ",b]})]})}),u&&(0,d.jsx)(f,{team:t.team})]})}r.TeamMemberInvitationSection=function(t){return(0,h.useUser)({or:"redirect"}).usePermission(t.team,"$invite_members")?(0,d.jsx)(m,{team:t.team}):null}},754881,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(199586),i=t.r(951764),s=t.r(221913),l=t.r(914750);function c(t){let{t:a}=(0,s.useTranslation)(),r=t.team.useUsers();return(0,o.jsxs)("div",{children:[(0,o.jsx)(n.Typography,{className:"font-medium mb-2",children:a("Members")}),(0,o.jsx)("div",{className:"border rounded-md",children:(0,o.jsxs)(n.Table,{children:[(0,o.jsx)(n.TableHeader,{children:(0,o.jsxs)(n.TableRow,{children:[(0,o.jsx)(n.TableHead,{className:"w-[100px]",children:a("User")}),(0,o.jsx)(n.TableHead,{className:"w-[200px]",children:a("Name")})]})}),(0,o.jsx)(n.TableBody,{children:r.map(({id:t,teamProfile:r},i)=>(0,o.jsxs)(n.TableRow,{children:[(0,o.jsx)(n.TableCell,{children:(0,o.jsx)(l.UserAvatar,{user:r})}),(0,o.jsxs)(n.TableCell,{children:[r.displayName&&(0,o.jsx)(n.Typography,{children:r.displayName}),!r.displayName&&(0,o.jsx)(n.Typography,{className:"text-muted-foreground italic",children:a("No display name set")})]})]},t))})]})})]})}r.TeamMemberListSection=function(t){let a=(0,i.useUser)({or:"redirect"}),r=a.usePermission(t.team,"$read_members"),n=a.usePermission(t.team,"$invite_members");return r||n?(0,o.jsx)(c,{team:t.team}):null}},490495,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(199586),o=t.r(951764),i=t.r(221913),s=t.r(658238),l=t.r(388795);r.TeamProfileImageSection=function(t){let{t:a}=(0,i.useTranslation)();return(0,o.useUser)({or:"redirect"}).usePermission(t.team,"$update_team")?(0,n.jsx)(s.Section,{title:a("Team profile image"),description:a("Upload an image for your team"),children:(0,n.jsx)(l.ProfileImageEditor,{user:t.team,onProfileImageUrlChange:async a=>{await t.team.update({profileImageUrl:a})}})}):null}},96590,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(199586),o=t.r(951764),i=t.r(221913),s=t.r(658238),l=t.r(310745);r.TeamUserProfileSection=function(t){let{t:a}=(0,i.useTranslation)(),r=(0,o.useUser)({or:"redirect"}).useTeamProfile(t.team);return(0,n.jsx)(s.Section,{title:a("Team user name"),description:a("Overwrite your user display name in this team"),children:(0,n.jsx)(l.EditableText,{value:r.displayName||"",onSave:async t=>{await r.update({displayName:t})}})})}},534037,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(199586),o=t.r(216322),i=t.r(226223),s=t.r(989394),l=t.r(78077),c=t.r(161861),d=t.r(754881),u=t.r(490495),h=t.r(96590);r.TeamPage=function(t){return(0,n.jsxs)(o.PageLayout,{children:[(0,n.jsx)(h.TeamUserProfileSection,{team:t.team},`user-profile-${t.team.id}`),(0,n.jsx)(u.TeamProfileImageSection,{team:t.team},`profile-image-${t.team.id}`),(0,n.jsx)(l.TeamDisplayNameSection,{team:t.team},`display-name-${t.team.id}`),(0,n.jsx)(d.TeamMemberListSection,{team:t.team},`member-list-${t.team.id}`),(0,n.jsx)(c.TeamMemberInvitationSection,{team:t.team},`member-invitation-${t.team.id}`),(0,n.jsx)(s.TeamApiKeysSection,{team:t.team},`api-keys-${t.team.id}`),(0,n.jsx)(i.LeaveTeamSection,{team:t.team},`leave-team-${t.team.id}`)]})}},775239,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"});let n=t.r(493557),o=t.r(869920),i=t.r(865268),s=t.r(866820);s=n.__toESM(s);let l=t.r(447979),c=t.r(221913),d=t.r(199586),u=t.r(980585),h=t.r(979876),p=t.r(306118),y=t.r(242442),k=t.r(395782),f=t.r(361158),m=t.r(692754),g=t.r(295166),v=t.r(864365),w=t.r(19703),_=t.r(85287),x=t.r(988761),b=t.r(534037),M={Contact:u.Contact,ShieldCheck:u.ShieldCheck,Bell:u.Bell,Monitor:u.Monitor,Key:u.Key,Settings:u.Settings,CirclePlus:u.CirclePlus,CreditCard:u.CreditCard},C=({name:t})=>{let a=M[t];return(0,d.jsx)(a,{className:"mr-2 h-4 w-4"})};function S(t){return(0,d.jsx)("div",{className:"flex flex-col gap-6",children:t.children})}function I(){return(0,d.jsxs)(S,{children:[(0,d.jsx)(i.Skeleton,{className:"h-9 w-full mt-1"}),(0,d.jsx)(i.Skeleton,{className:"h-9 w-full mt-1"}),(0,d.jsx)(i.Skeleton,{className:"h-9 w-full mt-1"}),(0,d.jsx)(i.Skeleton,{className:"h-9 w-full mt-1"})]})}function L(){return(0,d.jsxs)(S,{children:[(0,d.jsx)(i.Skeleton,{className:"h-6 w-48 mb-2"}),(0,d.jsx)(i.Skeleton,{className:"h-4 w-full mb-4"}),(0,d.jsx)(i.Skeleton,{className:"h-[200px] w-full mt-1 rounded-md"})]})}function P(){return(0,d.jsxs)(S,{children:[(0,d.jsx)(i.Skeleton,{className:"h-9 w-full mt-1"}),(0,d.jsx)(i.Skeleton,{className:"h-[200px] w-full mt-1 rounded-md"})]})}function j(){return(0,d.jsxs)(S,{children:[(0,d.jsx)(i.Skeleton,{className:"h-6 w-48 mb-2"}),(0,d.jsx)(i.Skeleton,{className:"h-9 w-full mt-1"}),(0,d.jsx)(i.Skeleton,{className:"h-9 w-full mt-1"}),(0,d.jsx)(i.Skeleton,{className:"h-[200px] w-full mt-1 rounded-md"})]})}function A(){return(0,d.jsxs)(S,{children:[(0,d.jsx)(i.Skeleton,{className:"h-9 w-full mt-1"}),(0,d.jsx)(i.Skeleton,{className:"h-9 w-full mt-1"}),(0,d.jsx)(i.Skeleton,{className:"h-9 w-full mt-1"}),(0,d.jsx)(i.Skeleton,{className:"h-[200px] w-full mt-1 rounded-md"})]})}function T(){return(0,d.jsxs)(S,{children:[(0,d.jsx)(i.Skeleton,{className:"h-9 w-full mt-1"}),(0,d.jsx)(i.Skeleton,{className:"h-9 w-full mt-1"})]})}function O(){return(0,d.jsxs)(S,{children:[(0,d.jsx)(i.Skeleton,{className:"h-9 w-full mt-1"}),(0,d.jsx)(i.Skeleton,{className:"h-9 w-full mt-1"})]})}r.AccountSettings=function(t){let{t:a}=(0,c.useTranslation)(),r=(0,l.useUser)({or:t.mockUser?"return-null":"redirect"}),n=(0,l.useStackApp)().useProject(),u=t.mockUser?{useTeams:()=>[],useBilling:()=>({hasCustomer:!1})}:r,M=t.mockProject||n,S=u?.useTeams()||[];u?.useBilling();let R=(0,s.useMemo)(()=>S,[(0,s.useMemo)(()=>S.map(t=>t.id).join("|"),[S])]),D=(0,s.useRef)(r??null),z=r?.id??null,[q,E]=(0,s.useState)(()=>({userHasProducts:!1,teamIdsWithProducts:new Set,isReady:!!t.mockUser}));(0,s.useEffect)(()=>{D.current=r??null},[r]),(0,s.useEffect)(()=>{if(t.mockUser||!z)return;let a=!1;return(0,o.runAsynchronouslyWithAlert)(async()=>{let t=D.current;if(!t||t.id!==z)return;let[r,n]=await Promise.all([t.listProducts({limit:1}),Promise.all(R.map(async a=>await t.hasPermission(a,"team_admin")&&(await a.listProducts({limit:1})).some(t=>"team"===t.customerType)?a.id:null))]);a||E({userHasProducts:r.some(t=>"user"===t.customerType),teamIdsWithProducts:new Set(n.filter(t=>null!==t)),isReady:!0})}),()=>{a=!0}},[t.mockUser,R,z]);let H=(0,s.useMemo)(()=>R.filter(t=>q.teamIdsWithProducts.has(t.id)),[q.teamIdsWithProducts,R]),F=t.mockUser||q.isReady&&(q.userHasProducts||H.length>0);return t.mockUser||r?(0,d.jsx)(h.MaybeFullPage,{fullPage:!!t.fullPage,children:(0,d.jsx)("div",{className:"self-stretch flex-grow w-full",children:(0,d.jsx)(p.SidebarLayout,{items:[{title:a("My Profile"),type:"item",id:"profile",icon:(0,d.jsx)(C,{name:"Contact"}),content:(0,d.jsx)(v.ProfilePage,{mockUser:t.mockUser})},{title:a("Emails & Auth"),type:"item",id:"auth",icon:(0,d.jsx)(C,{name:"ShieldCheck"}),content:(0,d.jsx)(s.Suspense,{fallback:(0,d.jsx)(I,{}),children:(0,d.jsx)(m.EmailsAndAuthPage,{mockMode:!!t.mockUser})})},{title:a("Notifications"),type:"item",id:"notifications",icon:(0,d.jsx)(C,{name:"Bell"}),content:(0,d.jsx)(s.Suspense,{fallback:(0,d.jsx)(O,{}),children:(0,d.jsx)(g.NotificationsPage,{})})},{title:a("Active Sessions"),type:"item",id:"sessions",icon:(0,d.jsx)(C,{name:"Monitor"}),content:(0,d.jsx)(s.Suspense,{fallback:(0,d.jsx)(L,{}),children:(0,d.jsx)(k.ActiveSessionsPage,{mockSessions:t.mockSessions,mockMode:!!t.mockUser})})},...M.config.allowUserApiKeys?[{title:a("API Keys"),type:"item",id:"api-keys",icon:(0,d.jsx)(C,{name:"Key"}),content:(0,d.jsx)(s.Suspense,{fallback:(0,d.jsx)(P,{}),children:(0,d.jsx)(f.ApiKeysPage,{mockApiKeys:t.mockApiKeys,mockMode:!!t.mockUser})})}]:[],...F?[{title:a("Payments"),type:"item",id:"payments",icon:(0,d.jsx)(C,{name:"CreditCard"}),content:(0,d.jsx)(s.Suspense,{fallback:(0,d.jsx)(j,{}),children:(0,d.jsx)(w.PaymentsPage,{mockMode:!!t.mockUser,allowPersonal:q.userHasProducts,availableTeams:H})})}]:[],{title:a("Settings"),type:"item",id:"settings",icon:(0,d.jsx)(C,{name:"Settings"}),content:(0,d.jsx)(_.SettingsPage,{mockMode:!!t.mockUser})},...t.extraItems?.map(t=>{let a;return{title:t.title,type:"item",id:t.id,icon:(a=t.iconName)?(0,d.jsx)(C,{name:a}):t.icon?t.icon:null,content:t.content}})||[],...S.length>0||M.config.clientTeamCreationEnabled?[{title:a("Teams"),type:"divider"}]:[],...S.map(t=>({title:(0,d.jsxs)("div",{className:"flex gap-2 items-center w-full",children:[(0,d.jsx)(y.TeamIcon,{team:t}),(0,d.jsx)(i.Typography,{className:"max-w-[320px] md:w-[90%] truncate",children:t.displayName})]}),type:"item",id:`team-${t.id}`,content:(0,d.jsx)(s.Suspense,{fallback:(0,d.jsx)(A,{}),children:(0,d.jsx)(b.TeamPage,{team:t})})})),...M.config.clientTeamCreationEnabled?[{title:a("Create a team"),icon:(0,d.jsx)(C,{name:"CirclePlus"}),type:"item",id:"team-creation",content:(0,d.jsx)(s.Suspense,{fallback:(0,d.jsx)(T,{}),children:(0,d.jsx)(x.TeamCreationPage,{mockMode:!!t.mockUser})})}]:[]].filter(t=>"divider"===t.type||t.content),title:a("Account Settings")})})}):null}},536115,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"});let n=t.r(493557),o=t.r(865268),i=t.r(199586),s=t.r(701877);function l(t){return(0,i.jsx)(s.default,{href:t.href,target:t.target,className:t.className,prefetch:t.prefetch,onClick:t.onClick,children:t.children})}s=n.__toESM(s),r.Link=l,r.StyledLink=function(t){return(0,i.jsx)(l,{...t,className:(0,o.cn)("underline font-medium",t.className),children:t.children})}},410722,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(869920),o=t.r(345747),i=t.r(287820),s=t.r(865268),l=t.r(866820),c=t.r(380063),d=t.r(447979),u=t.r(221913),h=t.r(199586),p=t.r(203834),y=t.r(536115);r.CredentialSignIn=function(){let{t}=(0,u.useTranslation)(),{register:a,handleSubmit:r,setError:k,formState:{errors:f}}=(0,c.useForm)({resolver:(0,o.yupResolver)((0,i.yupObject)({email:(0,i.strictEmailSchema)(t("Please enter a valid email")).defined().nonEmpty(t("Please enter your email")),password:i.passwordSchema.defined().nonEmpty(t("Please enter your password"))}))}),m=(0,d.useStackApp)(),[g,v]=(0,l.useState)(!1),w=async t=>{v(!0);try{let{email:a,password:r}=t,n=await m.signInWithCredential({email:a,password:r});"error"===n.status&&k("email",{type:"manual",message:n.error.message})}finally{v(!1)}};return(0,h.jsxs)("form",{className:"flex flex-col items-stretch stack-scope",onSubmit:t=>(0,n.runAsynchronouslyWithAlert)(r(w)(t)),noValidate:!0,children:[(0,h.jsx)(s.Label,{htmlFor:"email",className:"mb-1",children:t("Email")}),(0,h.jsx)(s.Input,{id:"email",type:"email",autoComplete:"email",...a("email")}),(0,h.jsx)(p.FormWarningText,{text:f.email?.message?.toString()}),(0,h.jsx)(s.Label,{htmlFor:"password",className:"mt-4 mb-1",children:t("Password")}),(0,h.jsx)(s.PasswordInput,{id:"password",autoComplete:"current-password",...a("password")}),(0,h.jsx)(p.FormWarningText,{text:f.password?.message?.toString()}),(0,h.jsx)(y.StyledLink,{href:"#",className:"mt-1 text-sm",onClick:t=>{t.preventDefault(),(0,n.runAsynchronouslyWithAlert)(m.redirectToForgotPassword())},children:t("Forgot password?")}),(0,h.jsx)(s.Button,{type:"submit",className:"mt-6",loading:g,children:t("Sign In")})]})}},625263,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"});let n=t.r(493557),o=t.r(869920),i=t.r(345747),s=t.r(287820),l=t.r(865268),c=t.r(866820);c=n.__toESM(c);let d=t.r(380063),u=t.r(221913),h=t.r(199586),p=t.r(203834),y=t.r(252276),k=t.r(213596);k=n.__toESM(k);let f=t.r(951764);r.CredentialSignUp=function(t){let{t:a}=(0,u.useTranslation)(),{register:r,handleSubmit:n,setError:m,formState:{errors:g},clearErrors:v}=(0,d.useForm)({resolver:(0,i.yupResolver)((0,s.yupObject)({email:(0,s.strictEmailSchema)(a("Please enter a valid email")).defined().nonEmpty(a("Please enter your email")),password:s.passwordSchema.defined().nonEmpty(a("Please enter your password")).test({name:"is-valid-password",test:(t,a)=>{let r=(0,y.getPasswordError)(t);return!r||a.createError({message:r.message})}}),...!t.noPasswordRepeat&&{passwordRepeat:s.passwordSchema.nullable().oneOf([k.ref("password"),"",null],a("Passwords do not match")).nonEmpty(a("Please repeat your password"))}}))}),w=(0,f.useStackApp)(),[_,x]=(0,c.useState)(!1),b=async t=>{x(!0);try{let{email:a,password:r}=t,n=await w.signUpWithCredential({email:a,password:r});"error"===n.status&&m("email",{type:"manual",message:n.error.message})}finally{x(!1)}},M=r("password"),C=r("passwordRepeat");return(0,h.jsxs)("form",{className:"flex flex-col items-stretch stack-scope",onSubmit:t=>(0,o.runAsynchronouslyWithAlert)(n(b)(t)),noValidate:!0,children:[(0,h.jsx)(l.Label,{htmlFor:"email",className:"mb-1",children:a("Email")}),(0,h.jsx)(l.Input,{id:"email",type:"email",autoComplete:"email",...r("email")}),(0,h.jsx)(p.FormWarningText,{text:g.email?.message?.toString()}),(0,h.jsx)(l.Label,{htmlFor:"password",className:"mt-4 mb-1",children:a("Password")}),(0,h.jsx)(l.PasswordInput,{id:"password",autoComplete:"new-password",...M,onChange:t=>{v("password"),v("passwordRepeat"),(0,o.runAsynchronously)(M.onChange(t))}}),(0,h.jsx)(p.FormWarningText,{text:g.password?.message?.toString()}),!t.noPasswordRepeat&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(l.Label,{htmlFor:"repeat-password",className:"mt-4 mb-1",children:a("Repeat Password")}),(0,h.jsx)(l.PasswordInput,{id:"repeat-password",...C,onChange:t=>{v("password"),v("passwordRepeat"),(0,o.runAsynchronously)(C.onChange(t))}}),(0,h.jsx)(p.FormWarningText,{text:g.passwordRepeat?.message?.toString()})]}),(0,h.jsx)(l.Button,{type:"submit",className:"mt-6",loading:_,children:a("Sign Up")})]})}},67958,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(199586);r.SeparatorWithText=function({text:t}){return(0,o.jsxs)("div",{className:"flex items-center justify-center my-6 stack-scope",children:[(0,o.jsx)("div",{className:"flex-1",children:(0,o.jsx)(n.Separator,{})}),(0,o.jsx)("div",{className:"mx-2 text-sm text-zinc-500",children:t}),(0,o.jsx)("div",{className:"flex-1",children:(0,o.jsx)(n.Separator,{})})]})}},251082,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(199586),i=t.r(447979),s=t.r(876049);r.KnownErrorMessageCard=function({error:t,fullPage:a=!1}){let r=(0,i.useStackApp)();return(0,o.jsxs)(s.MessageCard,{title:"An error occurred",fullPage:a,primaryButtonText:"Go Home",primaryAction:()=>r.redirectToHome(),children:[(0,o.jsxs)(n.Typography,{children:["Error Code: ",t.errorCode]}),(0,o.jsxs)(n.Typography,{children:["Error Message: ",t.message]})]})}},788220,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(869920),o=t.r(345747),i=t.r(287820),s=t.r(865268),l=t.r(866820),c=t.r(380063),d=t.r(221913),u=t.r(199586),h=t.r(203834),p=t.r(951764),y=t.r(812811);function k(t){let{t:a}=(0,d.useTranslation)(),[r,n]=(0,l.useState)(""),[o,i]=(0,l.useState)(!1),c=(0,p.useStackApp)(),[k,f]=(0,l.useState)(null);return(0,l.useEffect)(()=>{6!==r.length||o||(i(!0),c.signInWithMagicLink(r+t.nonce).then(t=>{if("error"===t.status)if(y.KnownErrors.VerificationCodeError.isInstance(t.error))f(a("Invalid code"));else if(y.KnownErrors.InvalidTotpCode.isInstance(t.error))f(a("Invalid TOTP code"));else throw t.error}).catch(t=>console.error(t)).finally(()=>{i(!1),n("")})),0!==r.length&&6!==r.length&&f(null)},[r,o]),(0,u.jsxs)("div",{className:"flex flex-col items-stretch stack-scope",children:[(0,u.jsxs)("form",{className:"w-full flex flex-col items-center mb-2",children:[(0,u.jsx)(s.Typography,{className:"mb-2",children:a("Enter the code from your email")}),(0,u.jsx)(s.InputOTP,{maxLength:6,type:"text",inputMode:"text",pattern:"^[a-zA-Z0-9]+$",value:r,onChange:t=>n(t.toUpperCase()),disabled:o,children:(0,u.jsx)(s.InputOTPGroup,{children:[0,1,2,3,4,5].map(t=>(0,u.jsx)(s.InputOTPSlot,{index:t,size:"lg"},t))})}),k&&(0,u.jsx)(h.FormWarningText,{text:k})]}),(0,u.jsx)(s.Button,{variant:"link",onClick:t.onBack,className:"underline",children:a("Cancel")})]})}r.MagicLinkSignIn=function(){let{t}=(0,d.useTranslation)(),a=(0,p.useStackApp)(),[r,f]=(0,l.useState)(!1),[m,g]=(0,l.useState)(null),{register:v,handleSubmit:w,setError:_,formState:{errors:x}}=(0,c.useForm)({resolver:(0,o.yupResolver)((0,i.yupObject)({email:(0,i.strictEmailSchema)(t("Please enter a valid email")).defined().nonEmpty(t("Please enter your email"))}))}),b=async r=>{f(!0);try{let{email:t}=r,n=await a.sendMagicLinkEmail(t);if("error"===n.status)return void _("email",{type:"manual",message:n.error.message});g(n.data.nonce)}catch(a){if(y.KnownErrors.SignUpNotEnabled.isInstance(a))_("email",{type:"manual",message:t("New account registration is not allowed")});else throw a}finally{f(!1)}};return m?(0,u.jsx)(k,{nonce:m,onBack:()=>g(null)}):(0,u.jsxs)("form",{className:"flex flex-col items-stretch stack-scope",onSubmit:t=>(0,n.runAsynchronouslyWithAlert)(w(b)(t)),noValidate:!0,children:[(0,u.jsx)(s.Label,{htmlFor:"email",className:"mb-1",children:t("Email")}),(0,u.jsx)(s.Input,{id:"email",type:"email",autoComplete:"email",...v("email")}),(0,u.jsx)(h.FormWarningText,{text:x.email?.message?.toString()}),(0,u.jsx)(s.Button,{type:"submit",className:"mt-6",loading:r,children:t("Send email")})]})}},901268,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(865268),o=t.r(199586),i=t.r(447979),s=t.r(876049),l=t.r(221913);r.PredefinedMessageCard=function({type:t,fullPage:a=!1}){let r,c=(0,i.useStackApp)(),{t:d}=(0,l.useTranslation)(),u=null,h=null,p=null,y=null,k=null;switch(t){case"signedIn":r=d("You are already signed in"),y=()=>c.redirectToHome(),k=()=>c.redirectToSignOut(),h=d("Go home"),p=d("Sign out");break;case"signedOut":r=d("You are not currently signed in."),y=()=>c.redirectToSignIn(),h=d("Sign in");break;case"signUpDisabled":r=d("Sign up for new users is not enabled at the moment."),y=()=>c.redirectToHome(),k=()=>c.redirectToSignIn(),h=d("Go home"),p=d("Sign in");break;case"emailSent":r=d("Email sent!"),u=d("If the user with this e-mail address exists, an e-mail was sent to your inbox. Make sure to check your spam folder."),y=()=>c.redirectToHome(),h=d("Go home");break;case"passwordReset":r=d("Password reset successfully!"),u=d("Your password has been reset. You can now sign in with your new password."),y=()=>c.redirectToSignIn({noRedirectBack:!0}),h=d("Sign in");break;case"unknownError":r=d("An unknown error occurred"),u=d("Please try again and if the problem persists, contact support."),y=()=>c.redirectToHome(),h=d("Go home")}return(0,o.jsx)(s.MessageCard,{title:r,fullPage:a,primaryButtonText:h,primaryAction:y,secondaryButtonText:p||void 0,secondaryAction:k||void 0,children:u&&(0,o.jsx)(n.Typography,{children:u})})}},43495,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),t.r(493557);let n=t.r(866820);r.useInIframe=function(){let[t,a]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{window.self!==window.top&&a(!0)},[]),t}},258064,(t,a,r)=>{Object.defineProperty(r,Symbol.toStringTag,{value:"Module"});let n=t.r(493557),o=t.r(865268),i=t.r(866820),s=t.r(221913),l=t.r(199586),c=t.r(951764),d=t.r(973688);d=n.__toESM(d);let u=t.r(43495);r.OAuthButton=function({provider:t,type:a,isMock:r=!1,onAuthenticate:n}){var h,p;let y,{t:k}=(0,s.useTranslation)(),f=(0,c.useStackApp)(),m=(0,i.useId)().replaceAll(":","-"),g=(0,u.useInIframe)(),[v,w]=(0,i.useState)(null);switch((0,i.useEffect)(()=>{w(localStorage.getItem("_HEXCLAVE.lastUsed"))},[]),t){case"google":y={backgroundColor:"#fff",textColor:"#000",name:"Google",border:"1px solid #ddd",icon:(0,l.jsx)(o.BrandIcons.Google,{iconSize:22})};break;case"github":y={backgroundColor:"#111",textColor:"#fff",border:"1px solid #333",name:"GitHub",icon:(0,l.jsx)(o.BrandIcons.GitHub,{iconSize:22})};break;case"facebook":y={backgroundColor:"#1877F2",textColor:"#fff",name:"Facebook",icon:(0,l.jsx)(o.BrandIcons.Facebook,{iconSize:22})};break;case"microsoft":y={backgroundColor:"#2f2f2f",textColor:"#fff",name:"Microsoft",icon:(0,l.jsx)(o.BrandIcons.Microsoft,{iconSize:22})};break;case"spotify":y={backgroundColor:"#1DB954",textColor:"#fff",name:"Spotify",icon:(0,l.jsx)(o.BrandIcons.Spotify,{iconSize:22})};break;case"discord":y={backgroundColor:"#5865F2",textColor:"#fff",name:"Discord",icon:(0,l.jsx)(o.BrandIcons.Discord,{iconSize:22})};break;case"gitlab":y={backgroundColor:"#111",textColor:"#fff",border:"1px solid #333",name:"Gitlab",icon:(0,l.jsx)(o.BrandIcons.Gitlab,{iconSize:22})};break;case"apple":y={backgroundColor:"#000",textColor:"#fff",border:"1px solid #333",name:"Apple",icon:(0,l.jsx)(o.BrandIcons.Apple,{iconSize:22})};break;case"bitbucket":y={backgroundColor:"#fff",textColor:"#000",border:"1px solid #ddd",name:"Bitbucket",icon:(0,l.jsx)(o.BrandIcons.Bitbucket,{iconSize:22})};break;case"linkedin":y={backgroundColor:"#0073b1",textColor:"#fff",name:"LinkedIn",icon:(0,l.jsx)(o.BrandIcons.LinkedIn,{iconSize:22})};break;case"x":y={backgroundColor:"#000",textColor:"#fff",name:"X",icon:(0,l.jsx)(o.BrandIcons.X,{iconSize:22})};break;case"twitch":y={backgroundColor:"#6441a5",textColor:"#fff",name:"Twitch",icon:(0,l.jsx)(o.BrandIcons.Twitch,{iconSize:22})};break;default:y={name:t,icon:null}}return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("style",{children:`
56
56
  .stack-oauth-button-${m} {