@hexclave/react 1.0.3 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/api-key-dialogs.d.ts +1 -1
- package/dist/components/api-key-dialogs.js +5 -5
- package/dist/components/api-key-dialogs.js.map +1 -1
- package/dist/components/api-key-table.d.ts +1 -1
- package/dist/components/api-key-table.js.map +1 -1
- package/dist/components/credential-sign-in.js +3 -3
- package/dist/components/credential-sign-in.js.map +1 -1
- package/dist/components/credential-sign-up.js +5 -5
- package/dist/components/credential-sign-up.js.map +1 -1
- package/dist/components/elements/form-warning.js.map +1 -1
- package/dist/components/elements/maybe-full-page.js.map +1 -1
- package/dist/components/elements/separator-with-text.js.map +1 -1
- package/dist/components/elements/sidebar-layout.js +1 -1
- package/dist/components/elements/sidebar-layout.js.map +1 -1
- package/dist/components/elements/ssr-layout-effect.js.map +1 -1
- package/dist/components/elements/user-avatar.js +1 -1
- package/dist/components/elements/user-avatar.js.map +1 -1
- package/dist/components/link.js.map +1 -1
- package/dist/components/magic-link-sign-in.js +6 -6
- package/dist/components/magic-link-sign-in.js.map +1 -1
- package/dist/components/message-cards/known-error-message-card.js +2 -2
- package/dist/components/message-cards/known-error-message-card.js.map +1 -1
- package/dist/components/message-cards/message-card.js.map +1 -1
- package/dist/components/message-cards/predefined-message-card.js +10 -10
- package/dist/components/message-cards/predefined-message-card.js.map +1 -1
- package/dist/components/oauth-button-group.js +2 -2
- package/dist/components/oauth-button-group.js.map +1 -1
- package/dist/components/oauth-button.js +2 -2
- package/dist/components/oauth-button.js.map +1 -1
- package/dist/components/passkey-button.js +3 -3
- package/dist/components/passkey-button.js.map +1 -1
- package/dist/components/profile-image-editor.js +1 -1
- package/dist/components/profile-image-editor.js.map +1 -1
- package/dist/components/selected-team-switcher.d.ts +1 -1
- package/dist/components/selected-team-switcher.js.map +1 -1
- package/dist/components/team-icon.d.ts +1 -1
- package/dist/components/team-icon.js +1 -1
- package/dist/components/team-icon.js.map +1 -1
- package/dist/components/team-switcher.d.ts +1 -1
- package/dist/components/team-switcher.js +2 -2
- package/dist/components/team-switcher.js.map +1 -1
- package/dist/components/use-in-iframe.js.map +1 -1
- package/dist/components/user-button.js +1 -1
- package/dist/components/user-button.js.map +1 -1
- package/dist/components-page/account-settings/active-sessions/active-sessions-page.js +1 -1
- package/dist/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
- package/dist/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
- package/dist/components-page/account-settings/editable-text.js +1 -1
- package/dist/components-page/account-settings/editable-text.js.map +1 -1
- package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
- package/dist/components-page/account-settings/email-and-auth/emails-section.js +3 -3
- package/dist/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
- package/dist/components-page/account-settings/email-and-auth/mfa-section.js +1 -1
- package/dist/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
- package/dist/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
- package/dist/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
- package/dist/components-page/account-settings/email-and-auth/password-section.js +3 -3
- package/dist/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
- package/dist/components-page/account-settings/notifications/notifications-page.js.map +1 -1
- package/dist/components-page/account-settings/page-layout.js.map +1 -1
- package/dist/components-page/account-settings/payments/payments-page.d.ts +1 -1
- package/dist/components-page/account-settings/payments/payments-page.js.map +1 -1
- package/dist/components-page/account-settings/payments/payments-panel.d.ts +1 -1
- package/dist/components-page/account-settings/payments/payments-panel.js +6 -6
- package/dist/components-page/account-settings/payments/payments-panel.js.map +1 -1
- package/dist/components-page/account-settings/profile-page/profile-page.js.map +1 -1
- package/dist/components-page/account-settings/section.js.map +1 -1
- package/dist/components-page/account-settings/settings/delete-account-section.js.map +1 -1
- package/dist/components-page/account-settings/settings/settings-page.js.map +1 -1
- package/dist/components-page/account-settings/settings/sign-out-section.js.map +1 -1
- package/dist/components-page/account-settings/teams/leave-team-section.d.ts +1 -1
- package/dist/components-page/account-settings/teams/leave-team-section.js.map +1 -1
- package/dist/components-page/account-settings/teams/team-api-keys-section.d.ts +1 -1
- package/dist/components-page/account-settings/teams/team-api-keys-section.js +1 -1
- package/dist/components-page/account-settings/teams/team-api-keys-section.js.map +1 -1
- package/dist/components-page/account-settings/teams/team-creation-page.js +3 -3
- package/dist/components-page/account-settings/teams/team-creation-page.js.map +1 -1
- package/dist/components-page/account-settings/teams/team-display-name-section.d.ts +1 -1
- package/dist/components-page/account-settings/teams/team-display-name-section.js.map +1 -1
- package/dist/components-page/account-settings/teams/team-member-invitation-section.d.ts +1 -1
- package/dist/components-page/account-settings/teams/team-member-invitation-section.js +4 -4
- package/dist/components-page/account-settings/teams/team-member-invitation-section.js.map +1 -1
- package/dist/components-page/account-settings/teams/team-member-list-section.d.ts +1 -1
- package/dist/components-page/account-settings/teams/team-member-list-section.js.map +1 -1
- package/dist/components-page/account-settings/teams/team-page.d.ts +1 -1
- package/dist/components-page/account-settings/teams/team-page.js.map +1 -1
- package/dist/components-page/account-settings/teams/team-profile-image-section.d.ts +1 -1
- package/dist/components-page/account-settings/teams/team-profile-image-section.js.map +1 -1
- package/dist/components-page/account-settings/teams/team-profile-user-section.d.ts +1 -1
- package/dist/components-page/account-settings/teams/team-profile-user-section.js.map +1 -1
- package/dist/components-page/account-settings.js +3 -3
- package/dist/components-page/account-settings.js.map +1 -1
- package/dist/components-page/auth-page.d.ts.map +1 -1
- package/dist/components-page/auth-page.js +56 -11
- package/dist/components-page/auth-page.js.map +1 -1
- package/dist/components-page/cli-auth-confirm.js +4 -4
- package/dist/components-page/cli-auth-confirm.js.map +1 -1
- package/dist/components-page/cli-auth-confirm.test.js +4 -4
- package/dist/components-page/cli-auth-confirm.test.js.map +1 -1
- package/dist/components-page/email-verification.js +6 -6
- package/dist/components-page/email-verification.js.map +1 -1
- package/dist/components-page/error-page.js +9 -9
- package/dist/components-page/error-page.js.map +1 -1
- package/dist/components-page/forgot-password.js +9 -9
- package/dist/components-page/forgot-password.js.map +1 -1
- package/dist/components-page/{stack-handler-client.d.ts → hexclave-handler-client.d.ts} +16 -4
- package/dist/components-page/hexclave-handler-client.d.ts.map +1 -0
- package/dist/components-page/{stack-handler-client.js → hexclave-handler-client.js} +66 -30
- package/dist/components-page/hexclave-handler-client.js.map +1 -0
- package/dist/components-page/hexclave-handler-client.test.js +51 -0
- package/dist/components-page/hexclave-handler-client.test.js.map +1 -0
- package/dist/components-page/{stack-handler.d.ts → hexclave-handler.d.ts} +5 -5
- package/dist/components-page/hexclave-handler.d.ts.map +1 -0
- package/dist/components-page/{stack-handler.js → hexclave-handler.js} +4 -4
- package/dist/components-page/hexclave-handler.js.map +1 -0
- package/dist/components-page/magic-link-callback.js +9 -9
- package/dist/components-page/magic-link-callback.js.map +1 -1
- package/dist/components-page/mfa.js +7 -7
- package/dist/components-page/mfa.js.map +1 -1
- package/dist/components-page/oauth-callback.js +6 -6
- package/dist/components-page/oauth-callback.js.map +1 -1
- package/dist/components-page/onboarding.js +7 -7
- package/dist/components-page/onboarding.js.map +1 -1
- package/dist/components-page/password-reset.js +16 -16
- package/dist/components-page/password-reset.js.map +1 -1
- package/dist/components-page/sign-in.js.map +1 -1
- package/dist/components-page/sign-out.d.ts +1 -0
- package/dist/components-page/sign-out.d.ts.map +1 -1
- package/dist/components-page/sign-out.js +11 -5
- package/dist/components-page/sign-out.js.map +1 -1
- package/dist/components-page/sign-up.js.map +1 -1
- package/dist/components-page/team-creation.js +5 -5
- package/dist/components-page/team-creation.js.map +1 -1
- package/dist/components-page/team-invitation.js +17 -17
- package/dist/components-page/team-invitation.js.map +1 -1
- package/dist/dev-tool/dev-tool-core.d.ts +1 -1
- package/dist/dev-tool/dev-tool-core.js +13 -13
- package/dist/dev-tool/dev-tool-core.js.map +1 -1
- package/dist/dev-tool/dev-tool-styles.d.ts +1 -1
- package/dist/dev-tool/dev-tool-styles.js +371 -371
- package/dist/dev-tool/dev-tool-styles.js.map +1 -1
- package/dist/dev-tool/dev-tool-trigger-position.js.map +1 -1
- package/dist/dev-tool/dev-tool-trigger-position.test.js.map +1 -1
- package/dist/dev-tool/index.d.ts +4 -4
- package/dist/dev-tool/index.js +5 -5
- package/dist/dev-tool/index.js.map +1 -1
- package/dist/esm/components/api-key-dialogs.d.ts +1 -1
- package/dist/esm/components/api-key-dialogs.js +5 -5
- package/dist/esm/components/api-key-dialogs.js.map +1 -1
- package/dist/esm/components/api-key-table.d.ts +1 -1
- package/dist/esm/components/api-key-table.js.map +1 -1
- package/dist/esm/components/credential-sign-in.js +3 -3
- package/dist/esm/components/credential-sign-in.js.map +1 -1
- package/dist/esm/components/credential-sign-up.js +5 -5
- package/dist/esm/components/credential-sign-up.js.map +1 -1
- package/dist/esm/components/elements/form-warning.js.map +1 -1
- package/dist/esm/components/elements/maybe-full-page.js.map +1 -1
- package/dist/esm/components/elements/separator-with-text.js.map +1 -1
- package/dist/esm/components/elements/sidebar-layout.js +1 -1
- package/dist/esm/components/elements/sidebar-layout.js.map +1 -1
- package/dist/esm/components/elements/ssr-layout-effect.js.map +1 -1
- package/dist/esm/components/elements/user-avatar.js +1 -1
- package/dist/esm/components/elements/user-avatar.js.map +1 -1
- package/dist/esm/components/link.js.map +1 -1
- package/dist/esm/components/magic-link-sign-in.js +6 -6
- package/dist/esm/components/magic-link-sign-in.js.map +1 -1
- package/dist/esm/components/message-cards/known-error-message-card.js +2 -2
- package/dist/esm/components/message-cards/known-error-message-card.js.map +1 -1
- package/dist/esm/components/message-cards/message-card.js.map +1 -1
- package/dist/esm/components/message-cards/predefined-message-card.js +10 -10
- package/dist/esm/components/message-cards/predefined-message-card.js.map +1 -1
- package/dist/esm/components/oauth-button-group.js +2 -2
- package/dist/esm/components/oauth-button-group.js.map +1 -1
- package/dist/esm/components/oauth-button.js +2 -2
- package/dist/esm/components/oauth-button.js.map +1 -1
- package/dist/esm/components/passkey-button.js +3 -3
- package/dist/esm/components/passkey-button.js.map +1 -1
- package/dist/esm/components/profile-image-editor.js +1 -1
- package/dist/esm/components/profile-image-editor.js.map +1 -1
- package/dist/esm/components/selected-team-switcher.js.map +1 -1
- package/dist/esm/components/team-icon.js +1 -1
- package/dist/esm/components/team-icon.js.map +1 -1
- package/dist/esm/components/team-switcher.js +2 -2
- package/dist/esm/components/team-switcher.js.map +1 -1
- package/dist/esm/components/use-in-iframe.js.map +1 -1
- package/dist/esm/components/user-button.js +1 -1
- package/dist/esm/components/user-button.js.map +1 -1
- package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js +1 -1
- package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
- package/dist/esm/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
- package/dist/esm/components-page/account-settings/editable-text.js +1 -1
- package/dist/esm/components-page/account-settings/editable-text.js.map +1 -1
- package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
- package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js +3 -3
- package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
- package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js +1 -1
- package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
- package/dist/esm/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
- package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
- package/dist/esm/components-page/account-settings/email-and-auth/password-section.js +3 -3
- package/dist/esm/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
- package/dist/esm/components-page/account-settings/notifications/notifications-page.js.map +1 -1
- package/dist/esm/components-page/account-settings/page-layout.js.map +1 -1
- package/dist/esm/components-page/account-settings/payments/payments-page.js.map +1 -1
- package/dist/esm/components-page/account-settings/payments/payments-panel.d.ts +1 -1
- package/dist/esm/components-page/account-settings/payments/payments-panel.js +5 -5
- package/dist/esm/components-page/account-settings/payments/payments-panel.js.map +1 -1
- package/dist/esm/components-page/account-settings/profile-page/profile-page.js.map +1 -1
- package/dist/esm/components-page/account-settings/section.js.map +1 -1
- package/dist/esm/components-page/account-settings/settings/delete-account-section.js.map +1 -1
- package/dist/esm/components-page/account-settings/settings/settings-page.js.map +1 -1
- package/dist/esm/components-page/account-settings/settings/sign-out-section.js.map +1 -1
- package/dist/esm/components-page/account-settings/teams/leave-team-section.js.map +1 -1
- package/dist/esm/components-page/account-settings/teams/team-api-keys-section.d.ts +1 -1
- package/dist/esm/components-page/account-settings/teams/team-api-keys-section.js +1 -1
- package/dist/esm/components-page/account-settings/teams/team-api-keys-section.js.map +1 -1
- package/dist/esm/components-page/account-settings/teams/team-creation-page.js +3 -3
- package/dist/esm/components-page/account-settings/teams/team-creation-page.js.map +1 -1
- package/dist/esm/components-page/account-settings/teams/team-display-name-section.js.map +1 -1
- package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.js +4 -4
- package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.js.map +1 -1
- package/dist/esm/components-page/account-settings/teams/team-member-list-section.js.map +1 -1
- package/dist/esm/components-page/account-settings/teams/team-page.js.map +1 -1
- package/dist/esm/components-page/account-settings/teams/team-profile-image-section.js.map +1 -1
- package/dist/esm/components-page/account-settings/teams/team-profile-user-section.js.map +1 -1
- package/dist/esm/components-page/account-settings.d.ts +1 -1
- package/dist/esm/components-page/account-settings.js +3 -3
- package/dist/esm/components-page/account-settings.js.map +1 -1
- package/dist/esm/components-page/auth-page.d.ts.map +1 -1
- package/dist/esm/components-page/auth-page.js +57 -12
- package/dist/esm/components-page/auth-page.js.map +1 -1
- package/dist/esm/components-page/cli-auth-confirm.js +4 -4
- package/dist/esm/components-page/cli-auth-confirm.js.map +1 -1
- package/dist/esm/components-page/cli-auth-confirm.test.js +4 -4
- package/dist/esm/components-page/cli-auth-confirm.test.js.map +1 -1
- package/dist/esm/components-page/email-verification.js +6 -6
- package/dist/esm/components-page/email-verification.js.map +1 -1
- package/dist/esm/components-page/error-page.js +9 -9
- package/dist/esm/components-page/error-page.js.map +1 -1
- package/dist/esm/components-page/forgot-password.js +9 -9
- package/dist/esm/components-page/forgot-password.js.map +1 -1
- package/dist/esm/components-page/{stack-handler-client.d.ts → hexclave-handler-client.d.ts} +15 -4
- package/dist/esm/components-page/hexclave-handler-client.d.ts.map +1 -0
- package/dist/esm/components-page/{stack-handler-client.js → hexclave-handler-client.js} +64 -29
- package/dist/esm/components-page/hexclave-handler-client.js.map +1 -0
- package/dist/esm/components-page/hexclave-handler-client.test.js +51 -0
- package/dist/esm/components-page/hexclave-handler-client.test.js.map +1 -0
- package/dist/esm/components-page/{stack-handler.d.ts → hexclave-handler.d.ts} +5 -5
- package/dist/esm/components-page/hexclave-handler.d.ts.map +1 -0
- package/dist/esm/components-page/{stack-handler.js → hexclave-handler.js} +4 -4
- package/dist/esm/components-page/hexclave-handler.js.map +1 -0
- package/dist/esm/components-page/magic-link-callback.js +9 -9
- package/dist/esm/components-page/magic-link-callback.js.map +1 -1
- package/dist/esm/components-page/mfa.js +7 -7
- package/dist/esm/components-page/mfa.js.map +1 -1
- package/dist/esm/components-page/oauth-callback.js +6 -6
- package/dist/esm/components-page/oauth-callback.js.map +1 -1
- package/dist/esm/components-page/onboarding.js +7 -7
- package/dist/esm/components-page/onboarding.js.map +1 -1
- package/dist/esm/components-page/password-reset.js +16 -16
- package/dist/esm/components-page/password-reset.js.map +1 -1
- package/dist/esm/components-page/sign-in.js.map +1 -1
- package/dist/esm/components-page/sign-out.d.ts +1 -0
- package/dist/esm/components-page/sign-out.d.ts.map +1 -1
- package/dist/esm/components-page/sign-out.js +11 -5
- package/dist/esm/components-page/sign-out.js.map +1 -1
- package/dist/esm/components-page/sign-up.js.map +1 -1
- package/dist/esm/components-page/team-creation.js +5 -5
- package/dist/esm/components-page/team-creation.js.map +1 -1
- package/dist/esm/components-page/team-invitation.js +17 -17
- package/dist/esm/components-page/team-invitation.js.map +1 -1
- package/dist/esm/dev-tool/dev-tool-core.d.ts +1 -1
- package/dist/esm/dev-tool/dev-tool-core.js +12 -12
- package/dist/esm/dev-tool/dev-tool-core.js.map +1 -1
- package/dist/esm/dev-tool/dev-tool-styles.d.ts +1 -1
- package/dist/esm/dev-tool/dev-tool-styles.js +371 -371
- package/dist/esm/dev-tool/dev-tool-styles.js.map +1 -1
- package/dist/esm/dev-tool/dev-tool-trigger-position.js.map +1 -1
- package/dist/esm/dev-tool/dev-tool-trigger-position.test.js.map +1 -1
- package/dist/esm/dev-tool/index.d.ts +4 -4
- package/dist/esm/dev-tool/index.js +5 -5
- package/dist/esm/dev-tool/index.js.map +1 -1
- package/dist/esm/generated/env.d.ts +26 -0
- package/dist/esm/{lib → generated}/env.d.ts.map +1 -1
- package/dist/esm/generated/env.js +67 -0
- package/dist/esm/generated/env.js.map +1 -0
- package/dist/esm/generated/quetzal-translations.d.ts +2 -2
- package/dist/esm/generated/quetzal-translations.js.map +1 -1
- package/dist/esm/global.d.ts +8 -1
- package/dist/esm/global.d.ts.map +1 -0
- package/dist/esm/index.d.ts +4 -4
- package/dist/esm/index.js +3 -3
- package/dist/esm/integrations/convex/component/convex.config.js.map +1 -1
- package/dist/esm/integrations/convex.js +1 -1
- package/dist/esm/integrations/convex.js.map +1 -1
- package/dist/esm/lib/auth.js +1 -1
- package/dist/esm/lib/auth.js.map +1 -1
- package/dist/esm/lib/auth.test.js +1 -1
- package/dist/esm/lib/auth.test.js.map +1 -1
- package/dist/esm/lib/cookie.js.map +1 -1
- package/dist/{lib/stack-app → esm/lib/hexclave-app}/api-keys/index.d.ts +2 -2
- package/dist/esm/lib/hexclave-app/api-keys/index.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/api-keys/index.js +1 -1
- package/dist/esm/lib/hexclave-app/api-keys/index.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.d.ts +7 -7
- package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.js +8 -8
- package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -0
- package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js +381 -0
- package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.d.ts +17 -15
- package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.js +77 -57
- package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.js +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/common.d.ts +11 -11
- package/dist/esm/lib/hexclave-app/apps/implementations/common.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/common.js +35 -21
- package/dist/esm/lib/hexclave-app/apps/implementations/common.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.js +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.js +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -0
- package/dist/esm/lib/hexclave-app/apps/implementations/index.d.ts +9 -0
- package/dist/esm/lib/hexclave-app/apps/implementations/index.d.ts.map +1 -0
- package/dist/esm/lib/hexclave-app/apps/implementations/index.js +27 -0
- package/dist/esm/lib/hexclave-app/apps/implementations/index.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.js +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.d.ts +5 -5
- package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.js +8 -8
- package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -0
- package/dist/{lib/stack-app → esm/lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.js +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.js +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js.map +1 -0
- package/dist/{lib/stack-app → esm/lib/hexclave-app}/apps/implementations/session-replay.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.js +2 -2
- package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.js +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.test.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.js +3 -3
- package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.d.ts +4 -4
- package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.js +3 -3
- package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.js +3 -3
- package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/common.d.ts +7 -7
- package/dist/esm/lib/hexclave-app/common.d.ts.map +1 -0
- package/dist/esm/lib/hexclave-app/common.js +7 -0
- package/dist/esm/lib/hexclave-app/common.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/connected-accounts/index.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/connected-accounts/index.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/contact-channels/index.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/contact-channels/index.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/contact-channels/index.js +1 -1
- package/dist/esm/lib/hexclave-app/contact-channels/index.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/customers/index.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/customers/index.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/data-vault/index.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/data-vault/index.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/email/index.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/email/index.d.ts.map +1 -0
- package/dist/{lib/stack-app → esm/lib/hexclave-app}/email-templates/index.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/email-templates/index.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/email-templates/index.js +1 -1
- package/dist/esm/lib/hexclave-app/email-templates/index.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/index.d.ts +2 -2
- package/dist/esm/lib/{stack-app → hexclave-app}/index.js +2 -2
- package/dist/{lib/stack-app → esm/lib/hexclave-app}/internal-api-keys/index.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/internal-api-keys/index.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/internal-api-keys/index.js +1 -1
- package/dist/esm/lib/hexclave-app/internal-api-keys/index.js.map +1 -0
- package/dist/{lib/stack-app → esm/lib/hexclave-app}/notification-categories/index.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/notification-categories/index.d.ts.map +1 -0
- package/dist/{lib/stack-app → esm/lib/hexclave-app}/permissions/index.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/permissions/index.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/permissions/index.js +1 -1
- package/dist/esm/lib/hexclave-app/permissions/index.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/project-configs/index.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/project-configs/index.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/projects/index.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/projects/index.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/projects/index.js +1 -1
- package/dist/esm/lib/hexclave-app/projects/index.js.map +1 -0
- package/dist/{lib/stack-app → esm/lib/hexclave-app}/session-replays/index.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/session-replays/index.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/teams/index.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/teams/index.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/teams/index.js +1 -1
- package/dist/esm/lib/hexclave-app/teams/index.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/url-targets.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.js +26 -12
- package/dist/esm/lib/hexclave-app/url-targets.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.test.js +13 -1
- package/dist/esm/lib/hexclave-app/url-targets.test.js.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/users/index.d.ts +2 -2
- package/dist/esm/lib/hexclave-app/users/index.d.ts.map +1 -0
- package/dist/esm/lib/{stack-app → hexclave-app}/users/index.js +1 -1
- package/dist/esm/lib/hexclave-app/users/index.js.map +1 -0
- package/dist/esm/lib/hooks.d.ts +1 -1
- package/dist/esm/lib/hooks.js +9 -9
- package/dist/esm/lib/hooks.js.map +1 -1
- package/dist/esm/lib/translations.js.map +1 -1
- package/dist/esm/providers/hexclave-context.d.ts +11 -0
- package/dist/esm/providers/hexclave-context.d.ts.map +1 -0
- package/dist/esm/providers/hexclave-context.js +12 -0
- package/dist/esm/providers/hexclave-context.js.map +1 -0
- package/dist/esm/providers/{stack-provider-client.d.ts → hexclave-provider-client.d.ts} +5 -5
- package/dist/esm/providers/hexclave-provider-client.d.ts.map +1 -0
- package/dist/esm/providers/hexclave-provider-client.js +30 -0
- package/dist/esm/providers/hexclave-provider-client.js.map +1 -0
- package/dist/esm/providers/{stack-provider.d.ts → hexclave-provider.d.ts} +3 -3
- package/dist/esm/providers/hexclave-provider.d.ts.map +1 -0
- package/dist/esm/providers/{stack-provider.js → hexclave-provider.js} +4 -4
- package/dist/esm/providers/hexclave-provider.js.map +1 -0
- package/dist/esm/providers/theme-provider.js.map +1 -1
- package/dist/esm/providers/translation-provider-client.js.map +1 -1
- package/dist/esm/providers/translation-provider.js +1 -1
- package/dist/esm/providers/translation-provider.js.map +1 -1
- package/dist/esm/tanstack-start-server-context.d.ts +1 -1
- package/dist/esm/utils/browser-script.js.map +1 -1
- package/dist/esm/utils/constants.js.map +1 -1
- package/dist/esm/utils/url.js.map +1 -1
- package/dist/generated/env.d.ts +26 -0
- package/dist/{lib → generated}/env.d.ts.map +1 -1
- package/dist/generated/env.js +69 -0
- package/dist/generated/env.js.map +1 -0
- package/dist/generated/quetzal-translations.d.ts +2 -2
- package/dist/generated/quetzal-translations.js.map +1 -1
- package/dist/global.d.ts +8 -1
- package/dist/global.d.ts.map +1 -0
- package/dist/index.d.ts +18 -18
- package/dist/index.js +9 -9
- package/dist/integrations/convex/component/convex.config.js.map +1 -1
- package/dist/integrations/convex.js +2 -2
- package/dist/integrations/convex.js.map +1 -1
- package/dist/lib/auth.js +1 -1
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/auth.test.js +1 -1
- package/dist/lib/auth.test.js.map +1 -1
- package/dist/lib/cookie.js.map +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/api-keys/index.d.ts +2 -2
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/api-keys/index.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/api-keys/index.js +1 -1
- package/dist/lib/hexclave-app/api-keys/index.js.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.d.ts +6 -6
- package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.js +6 -6
- package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -0
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js +381 -0
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.d.ts +16 -14
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.js +75 -55
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.js +1 -1
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/apps/implementations/common.d.ts +11 -11
- package/dist/lib/hexclave-app/apps/implementations/common.d.ts.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/apps/implementations/common.js +34 -20
- package/dist/lib/hexclave-app/apps/implementations/common.js.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/event-tracker.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.js +1 -1
- package/dist/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.js +1 -1
- package/dist/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -0
- package/dist/lib/hexclave-app/apps/implementations/index.d.ts +9 -0
- package/dist/lib/hexclave-app/apps/implementations/index.d.ts.map +1 -0
- package/dist/lib/hexclave-app/apps/implementations/index.js +31 -0
- package/dist/lib/hexclave-app/apps/implementations/index.js.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/redirect-page-urls.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.js +1 -1
- package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.js.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.d.ts +4 -4
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/server-app-impl.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.js +7 -7
- package/dist/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -0
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.js +1 -1
- package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.js.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.js +1 -1
- package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js.map +1 -0
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-replay.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-replay.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.js +2 -2
- package/dist/lib/hexclave-app/apps/implementations/session-replay.js.map +1 -0
- package/dist/lib/hexclave-app/apps/implementations/session-replay.test.d.ts +1 -0
- package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.js +1 -1
- package/dist/lib/hexclave-app/apps/implementations/session-replay.test.js.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/admin-app.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.js +2 -2
- package/dist/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.d.ts +4 -4
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/client-app.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.js +2 -2
- package/dist/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/server-app.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.js +2 -2
- package/dist/lib/hexclave-app/apps/interfaces/server-app.js.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/common.d.ts +7 -7
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/common.d.ts.map +1 -1
- package/dist/lib/hexclave-app/common.js +9 -0
- package/dist/lib/hexclave-app/common.js.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/connected-accounts/index.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/connected-accounts/index.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/contact-channels/index.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/contact-channels/index.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/contact-channels/index.js +1 -1
- package/dist/lib/hexclave-app/contact-channels/index.js.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/customers/index.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/customers/index.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/data-vault/index.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/data-vault/index.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/email/index.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/email/index.d.ts.map +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/email-templates/index.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/email-templates/index.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/email-templates/index.js +1 -1
- package/dist/lib/hexclave-app/email-templates/index.js.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/index.d.ts +2 -2
- package/dist/lib/{stack-app → hexclave-app}/index.js +2 -2
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/internal-api-keys/index.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/internal-api-keys/index.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/internal-api-keys/index.js +1 -1
- package/dist/lib/hexclave-app/internal-api-keys/index.js.map +1 -0
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/notification-categories/index.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/notification-categories/index.d.ts.map +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/permissions/index.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/permissions/index.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/permissions/index.js +1 -1
- package/dist/lib/hexclave-app/permissions/index.js.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/project-configs/index.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/project-configs/index.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/projects/index.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/projects/index.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/projects/index.js +1 -1
- package/dist/lib/hexclave-app/projects/index.js.map +1 -0
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/session-replays/index.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/session-replays/index.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/teams/index.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/teams/index.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/teams/index.js +1 -1
- package/dist/lib/hexclave-app/teams/index.js.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/url-targets.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/url-targets.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/url-targets.js +26 -12
- package/dist/lib/hexclave-app/url-targets.js.map +1 -0
- package/dist/lib/hexclave-app/url-targets.test.d.ts +1 -0
- package/dist/lib/{stack-app → hexclave-app}/url-targets.test.js +13 -1
- package/dist/lib/hexclave-app/url-targets.test.js.map +1 -0
- package/dist/lib/{stack-app → hexclave-app}/users/index.d.ts +1 -1
- package/dist/{esm/lib/stack-app → lib/hexclave-app}/users/index.d.ts.map +1 -1
- package/dist/lib/{stack-app → hexclave-app}/users/index.js +1 -1
- package/dist/lib/hexclave-app/users/index.js.map +1 -0
- package/dist/lib/hooks.d.ts +3 -3
- package/dist/lib/hooks.d.ts.map +1 -1
- package/dist/lib/hooks.js +9 -9
- package/dist/lib/hooks.js.map +1 -1
- package/dist/lib/translations.js.map +1 -1
- package/dist/providers/hexclave-context.d.ts +11 -0
- package/dist/providers/hexclave-context.d.ts.map +1 -0
- package/dist/providers/hexclave-context.js +15 -0
- package/dist/providers/hexclave-context.js.map +1 -0
- package/dist/providers/{stack-provider-client.d.ts → hexclave-provider-client.d.ts} +5 -5
- package/dist/providers/hexclave-provider-client.d.ts.map +1 -0
- package/dist/providers/{stack-provider-client.js → hexclave-provider-client.js} +9 -9
- package/dist/providers/hexclave-provider-client.js.map +1 -0
- package/dist/providers/{stack-provider.d.ts → hexclave-provider.d.ts} +3 -3
- package/dist/providers/hexclave-provider.d.ts.map +1 -0
- package/dist/providers/{stack-provider.js → hexclave-provider.js} +4 -4
- package/dist/providers/hexclave-provider.js.map +1 -0
- package/dist/providers/theme-provider.js.map +1 -1
- package/dist/providers/translation-provider-client.js.map +1 -1
- package/dist/providers/translation-provider.js +1 -1
- package/dist/providers/translation-provider.js.map +1 -1
- package/dist/tanstack-start-server-context.d.ts +1 -1
- package/dist/utils/browser-script.js.map +1 -1
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/url.js.map +1 -1
- package/package.json +10 -7
- package/src/components/api-key-dialogs.tsx +173 -0
- package/src/components/api-key-table.tsx +127 -0
- package/src/components/credential-sign-in.tsx +83 -0
- package/src/components/credential-sign-up.tsx +108 -0
- package/src/components/elements/form-warning.tsx +17 -0
- package/src/components/elements/maybe-full-page.tsx +60 -0
- package/src/components/elements/separator-with-text.tsx +22 -0
- package/src/components/elements/sidebar-layout.tsx +136 -0
- package/src/components/elements/ssr-layout-effect.tsx +24 -0
- package/src/components/elements/user-avatar.tsx +32 -0
- package/src/components/link.tsx +38 -0
- package/src/components/magic-link-sign-in.tsx +143 -0
- package/src/components/message-cards/known-error-message-card.tsx +33 -0
- package/src/components/message-cards/message-card.tsx +46 -0
- package/src/components/message-cards/predefined-message-card.tsx +88 -0
- package/src/components/oauth-button-group.tsx +35 -0
- package/src/components/oauth-button.tsx +222 -0
- package/src/components/passkey-button.tsx +43 -0
- package/src/components/profile-image-editor.tsx +194 -0
- package/src/components/selected-team-switcher.tsx +97 -0
- package/src/components/team-icon.tsx +30 -0
- package/src/components/team-switcher.tsx +191 -0
- package/src/components/use-in-iframe.tsx +18 -0
- package/src/components/user-button.tsx +157 -0
- package/src/components-page/account-settings/active-sessions/active-sessions-page.tsx +238 -0
- package/src/components-page/account-settings/api-keys/api-keys-page.tsx +157 -0
- package/src/components-page/account-settings/editable-text.tsx +53 -0
- package/src/components-page/account-settings/email-and-auth/email-and-auth-page.tsx +24 -0
- package/src/components-page/account-settings/email-and-auth/emails-section.tsx +201 -0
- package/src/components-page/account-settings/email-and-auth/mfa-section.tsx +139 -0
- package/src/components-page/account-settings/email-and-auth/otp-section.tsx +102 -0
- package/src/components-page/account-settings/email-and-auth/passkey-section.tsx +112 -0
- package/src/components-page/account-settings/email-and-auth/password-section.tsx +174 -0
- package/src/components-page/account-settings/notifications/notifications-page.tsx +44 -0
- package/src/components-page/account-settings/page-layout.tsx +11 -0
- package/src/components-page/account-settings/payments/payments-page.tsx +73 -0
- package/src/components-page/account-settings/payments/payments-panel.tsx +543 -0
- package/src/components-page/account-settings/profile-page/profile-page.tsx +61 -0
- package/src/components-page/account-settings/section.tsx +26 -0
- package/src/components-page/account-settings/settings/delete-account-section.tsx +85 -0
- package/src/components-page/account-settings/settings/settings-page.tsx +19 -0
- package/src/components-page/account-settings/settings/sign-out-section.tsx +40 -0
- package/src/components-page/account-settings/teams/leave-team-section.tsx +57 -0
- package/src/components-page/account-settings/teams/team-api-keys-section.tsx +74 -0
- package/src/components-page/account-settings/teams/team-creation-page.tsx +92 -0
- package/src/components-page/account-settings/teams/team-display-name-section.tsx +31 -0
- package/src/components-page/account-settings/teams/team-member-invitation-section.tsx +128 -0
- package/src/components-page/account-settings/teams/team-member-list-section.tsx +59 -0
- package/src/components-page/account-settings/teams/team-page.tsx +28 -0
- package/src/components-page/account-settings/teams/team-profile-image-section.tsx +33 -0
- package/src/components-page/account-settings/teams/team-profile-user-section.tsx +29 -0
- package/src/components-page/account-settings.tsx +343 -0
- package/src/components-page/auth-page.tsx +206 -0
- package/src/components-page/cli-auth-confirm.test.tsx +204 -0
- package/src/components-page/cli-auth-confirm.tsx +278 -0
- package/src/components-page/email-verification.tsx +76 -0
- package/src/components-page/error-page.tsx +105 -0
- package/src/components-page/forgot-password.tsx +105 -0
- package/src/components-page/hexclave-handler-client.test.tsx +64 -0
- package/src/components-page/hexclave-handler-client.tsx +400 -0
- package/src/components-page/hexclave-handler.tsx +48 -0
- package/src/components-page/magic-link-callback.tsx +92 -0
- package/src/components-page/mfa.tsx +222 -0
- package/src/components-page/oauth-callback.tsx +78 -0
- package/src/components-page/onboarding.tsx +176 -0
- package/src/components-page/password-reset.tsx +185 -0
- package/src/components-page/section.tsx +27 -0
- package/src/components-page/sign-in.tsx +34 -0
- package/src/components-page/sign-out.tsx +37 -0
- package/src/components-page/sign-up.tsx +24 -0
- package/src/components-page/team-creation.tsx +78 -0
- package/src/components-page/team-invitation.tsx +150 -0
- package/src/dev-tool/dev-tool-core.ts +2460 -0
- package/src/dev-tool/dev-tool-styles.ts +2758 -0
- package/src/dev-tool/dev-tool-trigger-position.test.ts +113 -0
- package/src/dev-tool/dev-tool-trigger-position.ts +109 -0
- package/src/dev-tool/index.ts +149 -0
- package/src/generated/.gitignore +3 -0
- package/src/generated/quetzal-translations.ts +4312 -0
- package/src/global.css +13 -0
- package/src/global.d.ts +12 -0
- package/src/index.ts +39 -0
- package/src/integrations/convex/component/README.md +74 -0
- package/src/integrations/convex/component/convex.config.ts +9 -0
- package/src/integrations/convex.ts +28 -0
- package/src/lib/auth.test.ts +67 -0
- package/src/lib/auth.ts +175 -0
- package/src/lib/cookie.ts +327 -0
- package/src/lib/hexclave-app/api-keys/index.ts +73 -0
- package/src/lib/hexclave-app/apps/implementations/admin-app-impl.ts +1261 -0
- package/src/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.ts +454 -0
- package/src/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.ts +36 -0
- package/src/lib/hexclave-app/apps/implementations/client-app-impl.ts +3942 -0
- package/src/lib/hexclave-app/apps/implementations/common.ts +264 -0
- package/src/lib/hexclave-app/apps/implementations/event-tracker.test.ts +105 -0
- package/src/lib/hexclave-app/apps/implementations/event-tracker.ts +306 -0
- package/src/lib/hexclave-app/apps/implementations/index.ts +35 -0
- package/src/lib/hexclave-app/apps/implementations/redirect-page-urls.ts +342 -0
- package/src/lib/hexclave-app/apps/implementations/server-app-impl.ts +1619 -0
- package/src/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.ts +106 -0
- package/src/lib/hexclave-app/apps/implementations/session-refresh-subscription.ts +52 -0
- package/src/lib/hexclave-app/apps/implementations/session-replay.test.ts +33 -0
- package/src/lib/hexclave-app/apps/implementations/session-replay.ts +356 -0
- package/src/lib/hexclave-app/apps/index.ts +40 -0
- package/src/lib/hexclave-app/apps/interfaces/admin-app.ts +192 -0
- package/src/lib/hexclave-app/apps/interfaces/client-app.ts +180 -0
- package/src/lib/hexclave-app/apps/interfaces/server-app.ts +129 -0
- package/src/lib/hexclave-app/common.ts +215 -0
- package/src/lib/hexclave-app/connected-accounts/index.ts +49 -0
- package/src/lib/hexclave-app/contact-channels/index.ts +80 -0
- package/src/lib/hexclave-app/customers/index.ts +158 -0
- package/src/lib/hexclave-app/data-vault/index.ts +12 -0
- package/src/lib/hexclave-app/email/index.ts +280 -0
- package/src/lib/hexclave-app/email-templates/index.ts +24 -0
- package/src/lib/hexclave-app/index.ts +146 -0
- package/src/lib/hexclave-app/internal-api-keys/index.ts +55 -0
- package/src/lib/hexclave-app/notification-categories/index.ts +12 -0
- package/src/lib/hexclave-app/permissions/index.ts +75 -0
- package/src/lib/hexclave-app/project-configs/index.ts +103 -0
- package/src/lib/hexclave-app/projects/index.ts +236 -0
- package/src/lib/hexclave-app/session-replays/index.ts +72 -0
- package/src/lib/hexclave-app/teams/index.ts +206 -0
- package/src/lib/hexclave-app/url-targets.test.ts +270 -0
- package/src/lib/hexclave-app/url-targets.ts +413 -0
- package/src/lib/hexclave-app/users/index.ts +523 -0
- package/src/lib/hooks.tsx +63 -0
- package/src/lib/translations.tsx +23 -0
- package/src/providers/hexclave-context.tsx +20 -0
- package/src/providers/hexclave-provider-client.tsx +39 -0
- package/src/providers/hexclave-provider.tsx +48 -0
- package/src/providers/theme-provider.tsx +121 -0
- package/src/providers/translation-provider-client.tsx +35 -0
- package/src/providers/translation-provider.tsx +25 -0
- package/src/tanstack-start-server-context.d.ts +13 -0
- package/src/utils/browser-script.tsx +135 -0
- package/src/utils/constants.tsx +58 -0
- package/src/utils/url.ts +24 -0
- package/dist/components-page/stack-handler-client.d.ts.map +0 -1
- package/dist/components-page/stack-handler-client.js.map +0 -1
- package/dist/components-page/stack-handler.d.ts.map +0 -1
- package/dist/components-page/stack-handler.js.map +0 -1
- package/dist/esm/components-page/stack-handler-client.d.ts.map +0 -1
- package/dist/esm/components-page/stack-handler-client.js.map +0 -1
- package/dist/esm/components-page/stack-handler.d.ts.map +0 -1
- package/dist/esm/components-page/stack-handler.js.map +0 -1
- package/dist/esm/lib/env.d.ts +0 -42
- package/dist/esm/lib/env.js +0 -93
- package/dist/esm/lib/env.js.map +0 -1
- package/dist/esm/lib/stack-app/api-keys/index.js.map +0 -1
- package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.d.ts.map +0 -1
- package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.js.map +0 -1
- package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js +0 -121
- package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js.map +0 -1
- package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.d.ts.map +0 -1
- package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js.map +0 -1
- package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +0 -1
- package/dist/esm/lib/stack-app/apps/implementations/common.d.ts.map +0 -1
- package/dist/esm/lib/stack-app/apps/implementations/common.js.map +0 -1
- package/dist/esm/lib/stack-app/apps/implementations/event-tracker.js.map +0 -1
- package/dist/esm/lib/stack-app/apps/implementations/event-tracker.test.js.map +0 -1
- package/dist/esm/lib/stack-app/apps/implementations/index.d.ts +0 -9
- package/dist/esm/lib/stack-app/apps/implementations/index.d.ts.map +0 -1
- package/dist/esm/lib/stack-app/apps/implementations/index.js +0 -27
- package/dist/esm/lib/stack-app/apps/implementations/index.js.map +0 -1
- package/dist/esm/lib/stack-app/apps/implementations/redirect-page-urls.js.map +0 -1
- package/dist/esm/lib/stack-app/apps/implementations/server-app-impl.js.map +0 -1
- package/dist/esm/lib/stack-app/apps/implementations/session-refresh-subscription.js.map +0 -1
- package/dist/esm/lib/stack-app/apps/implementations/session-refresh-subscription.test.js.map +0 -1
- package/dist/esm/lib/stack-app/apps/implementations/session-replay.js.map +0 -1
- package/dist/esm/lib/stack-app/apps/implementations/session-replay.test.js.map +0 -1
- package/dist/esm/lib/stack-app/apps/interfaces/admin-app.js.map +0 -1
- package/dist/esm/lib/stack-app/apps/interfaces/client-app.js.map +0 -1
- package/dist/esm/lib/stack-app/apps/interfaces/server-app.js.map +0 -1
- package/dist/esm/lib/stack-app/common.js +0 -7
- package/dist/esm/lib/stack-app/common.js.map +0 -1
- package/dist/esm/lib/stack-app/contact-channels/index.js.map +0 -1
- package/dist/esm/lib/stack-app/email-templates/index.js.map +0 -1
- package/dist/esm/lib/stack-app/internal-api-keys/index.js.map +0 -1
- package/dist/esm/lib/stack-app/permissions/index.js.map +0 -1
- package/dist/esm/lib/stack-app/projects/index.js.map +0 -1
- package/dist/esm/lib/stack-app/teams/index.js.map +0 -1
- package/dist/esm/lib/stack-app/url-targets.js.map +0 -1
- package/dist/esm/lib/stack-app/url-targets.test.js.map +0 -1
- package/dist/esm/lib/stack-app/users/index.js.map +0 -1
- package/dist/esm/providers/stack-context.d.ts +0 -11
- package/dist/esm/providers/stack-context.d.ts.map +0 -1
- package/dist/esm/providers/stack-context.js +0 -12
- package/dist/esm/providers/stack-context.js.map +0 -1
- package/dist/esm/providers/stack-provider-client.d.ts.map +0 -1
- package/dist/esm/providers/stack-provider-client.js +0 -30
- package/dist/esm/providers/stack-provider-client.js.map +0 -1
- package/dist/esm/providers/stack-provider.d.ts.map +0 -1
- package/dist/esm/providers/stack-provider.js.map +0 -1
- package/dist/lib/env.d.ts +0 -42
- package/dist/lib/env.js +0 -95
- package/dist/lib/env.js.map +0 -1
- package/dist/lib/stack-app/api-keys/index.d.ts.map +0 -1
- package/dist/lib/stack-app/api-keys/index.js.map +0 -1
- package/dist/lib/stack-app/apps/implementations/admin-app-impl.d.ts.map +0 -1
- package/dist/lib/stack-app/apps/implementations/admin-app-impl.js.map +0 -1
- package/dist/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js +0 -121
- package/dist/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js.map +0 -1
- package/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts.map +0 -1
- package/dist/lib/stack-app/apps/implementations/client-app-impl.js.map +0 -1
- package/dist/lib/stack-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +0 -1
- package/dist/lib/stack-app/apps/implementations/common.d.ts.map +0 -1
- package/dist/lib/stack-app/apps/implementations/common.js.map +0 -1
- package/dist/lib/stack-app/apps/implementations/event-tracker.d.ts.map +0 -1
- package/dist/lib/stack-app/apps/implementations/event-tracker.js.map +0 -1
- package/dist/lib/stack-app/apps/implementations/event-tracker.test.js.map +0 -1
- package/dist/lib/stack-app/apps/implementations/index.d.ts +0 -9
- package/dist/lib/stack-app/apps/implementations/index.d.ts.map +0 -1
- package/dist/lib/stack-app/apps/implementations/index.js +0 -31
- package/dist/lib/stack-app/apps/implementations/index.js.map +0 -1
- package/dist/lib/stack-app/apps/implementations/redirect-page-urls.d.ts.map +0 -1
- package/dist/lib/stack-app/apps/implementations/redirect-page-urls.js.map +0 -1
- package/dist/lib/stack-app/apps/implementations/server-app-impl.d.ts.map +0 -1
- package/dist/lib/stack-app/apps/implementations/server-app-impl.js.map +0 -1
- package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.d.ts.map +0 -1
- package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.js.map +0 -1
- package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.test.js.map +0 -1
- package/dist/lib/stack-app/apps/implementations/session-replay.d.ts.map +0 -1
- package/dist/lib/stack-app/apps/implementations/session-replay.js.map +0 -1
- package/dist/lib/stack-app/apps/implementations/session-replay.test.js.map +0 -1
- package/dist/lib/stack-app/apps/interfaces/admin-app.d.ts.map +0 -1
- package/dist/lib/stack-app/apps/interfaces/admin-app.js.map +0 -1
- package/dist/lib/stack-app/apps/interfaces/client-app.d.ts.map +0 -1
- package/dist/lib/stack-app/apps/interfaces/client-app.js.map +0 -1
- package/dist/lib/stack-app/apps/interfaces/server-app.d.ts.map +0 -1
- package/dist/lib/stack-app/apps/interfaces/server-app.js.map +0 -1
- package/dist/lib/stack-app/common.d.ts.map +0 -1
- package/dist/lib/stack-app/common.js +0 -9
- package/dist/lib/stack-app/common.js.map +0 -1
- package/dist/lib/stack-app/connected-accounts/index.d.ts.map +0 -1
- package/dist/lib/stack-app/contact-channels/index.d.ts.map +0 -1
- package/dist/lib/stack-app/contact-channels/index.js.map +0 -1
- package/dist/lib/stack-app/customers/index.d.ts.map +0 -1
- package/dist/lib/stack-app/data-vault/index.d.ts.map +0 -1
- package/dist/lib/stack-app/email/index.d.ts.map +0 -1
- package/dist/lib/stack-app/email-templates/index.d.ts.map +0 -1
- package/dist/lib/stack-app/email-templates/index.js.map +0 -1
- package/dist/lib/stack-app/internal-api-keys/index.d.ts.map +0 -1
- package/dist/lib/stack-app/internal-api-keys/index.js.map +0 -1
- package/dist/lib/stack-app/notification-categories/index.d.ts.map +0 -1
- package/dist/lib/stack-app/permissions/index.d.ts.map +0 -1
- package/dist/lib/stack-app/permissions/index.js.map +0 -1
- package/dist/lib/stack-app/project-configs/index.d.ts.map +0 -1
- package/dist/lib/stack-app/projects/index.d.ts.map +0 -1
- package/dist/lib/stack-app/projects/index.js.map +0 -1
- package/dist/lib/stack-app/session-replays/index.d.ts.map +0 -1
- package/dist/lib/stack-app/teams/index.d.ts.map +0 -1
- package/dist/lib/stack-app/teams/index.js.map +0 -1
- package/dist/lib/stack-app/url-targets.d.ts.map +0 -1
- package/dist/lib/stack-app/url-targets.js.map +0 -1
- package/dist/lib/stack-app/url-targets.test.js.map +0 -1
- package/dist/lib/stack-app/users/index.d.ts.map +0 -1
- package/dist/lib/stack-app/users/index.js.map +0 -1
- package/dist/providers/stack-context.d.ts +0 -11
- package/dist/providers/stack-context.d.ts.map +0 -1
- package/dist/providers/stack-context.js +0 -15
- package/dist/providers/stack-context.js.map +0 -1
- package/dist/providers/stack-provider-client.d.ts.map +0 -1
- package/dist/providers/stack-provider-client.js.map +0 -1
- package/dist/providers/stack-provider.d.ts.map +0 -1
- package/dist/providers/stack-provider.js.map +0 -1
- /package/dist/{esm/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.d.ts → components-page/hexclave-handler-client.test.d.ts} +0 -0
- /package/dist/esm/{lib/stack-app/apps/implementations/client-app-impl.oauth-prefetch.test.d.ts → components-page/hexclave-handler-client.test.d.ts} +0 -0
- /package/dist/{lib/stack-app → esm/lib/hexclave-app}/apps/implementations/client-app-impl.cross-domain.test.d.ts +0 -0
- /package/dist/{lib/stack-app → esm/lib/hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.d.ts +0 -0
- /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.d.ts +0 -0
- /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.d.ts +0 -0
- /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.d.ts +0 -0
- /package/dist/esm/lib/{stack-app → hexclave-app}/apps/index.d.ts +0 -0
- /package/dist/esm/lib/{stack-app → hexclave-app}/apps/index.js +0 -0
- /package/dist/esm/lib/{stack-app → hexclave-app}/connected-accounts/index.js +0 -0
- /package/dist/esm/lib/{stack-app → hexclave-app}/customers/index.js +0 -0
- /package/dist/esm/lib/{stack-app → hexclave-app}/data-vault/index.js +0 -0
- /package/dist/esm/lib/{stack-app → hexclave-app}/email/index.js +0 -0
- /package/dist/esm/lib/{stack-app → hexclave-app}/notification-categories/index.js +0 -0
- /package/dist/esm/lib/{stack-app → hexclave-app}/project-configs/index.js +0 -0
- /package/dist/esm/lib/{stack-app → hexclave-app}/session-replays/index.js +0 -0
- /package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.test.d.ts +0 -0
- /package/dist/lib/{stack-app/apps/implementations/event-tracker.test.d.ts → hexclave-app/apps/implementations/client-app-impl.cross-domain.test.d.ts} +0 -0
- /package/dist/lib/{stack-app/apps/implementations/session-refresh-subscription.test.d.ts → hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.d.ts} +0 -0
- /package/dist/lib/{stack-app/apps/implementations/session-replay.test.d.ts → hexclave-app/apps/implementations/event-tracker.test.d.ts} +0 -0
- /package/dist/lib/{stack-app/url-targets.test.d.ts → hexclave-app/apps/implementations/session-refresh-subscription.test.d.ts} +0 -0
- /package/dist/lib/{stack-app → hexclave-app}/apps/index.d.ts +0 -0
- /package/dist/lib/{stack-app → hexclave-app}/apps/index.js +0 -0
- /package/dist/lib/{stack-app → hexclave-app}/connected-accounts/index.js +0 -0
- /package/dist/lib/{stack-app → hexclave-app}/customers/index.js +0 -0
- /package/dist/lib/{stack-app → hexclave-app}/data-vault/index.js +0 -0
- /package/dist/lib/{stack-app → hexclave-app}/email/index.js +0 -0
- /package/dist/lib/{stack-app → hexclave-app}/notification-categories/index.js +0 -0
- /package/dist/lib/{stack-app → hexclave-app}/project-configs/index.js +0 -0
- /package/dist/lib/{stack-app → hexclave-app}/session-replays/index.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-page.js","names":["PageLayout","DeleteAccountSection","SignOutSection"],"sources":["../../../../src/components-page/account-settings/settings/settings-page.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY
|
|
1
|
+
{"version":3,"file":"settings-page.js","names":["PageLayout","DeleteAccountSection","SignOutSection"],"sources":["../../../../src/components-page/account-settings/settings/settings-page.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { PageLayout } from \"../page-layout\";\nimport { DeleteAccountSection } from \"./delete-account-section\";\nimport { SignOutSection } from \"./sign-out-section\";\n\n\nexport function SettingsPage(props?: {\n mockMode?: boolean,\n}) {\n return (\n <PageLayout>\n <DeleteAccountSection mockMode={props?.mockMode} />\n <SignOutSection mockMode={props?.mockMode} />\n </PageLayout>\n );\n}\n"],"mappings":";;;;;;;;AASA,SAAgB,aAAa,OAE1B;AACD,QACE,4CAACA,2CACC,2CAACC,oDAAqB,UAAU,OAAO,WAAY,EACnD,2CAACC,wCAAe,UAAU,OAAO,WAAY,IAClC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sign-out-section.js","names":["Section","Button"],"sources":["../../../../src/components-page/account-settings/settings/sign-out-section.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY
|
|
1
|
+
{"version":3,"file":"sign-out-section.js","names":["Section","Button"],"sources":["../../../../src/components-page/account-settings/settings/sign-out-section.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { Button } from \"@hexclave/ui\";\nimport { useUser } from \"../../../lib/hooks\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { Section } from \"../section\";\n\nexport function SignOutSection(props?: { mockMode?: boolean }) {\n const { t } = useTranslation();\n const user = useUser({ or: props?.mockMode ? \"return-null\" : \"throw\" });\n\n const handleSignOut = async () => {\n if (props?.mockMode) {\n // Mock mode - just show an alert or do nothing\n alert(\"Mock mode: Sign out clicked\");\n return;\n }\n if (user) {\n await user.signOut();\n }\n };\n\n return (\n <Section\n title={t(\"Sign out\")}\n description={t(\"End your current session\")}\n >\n <div>\n <Button\n variant='secondary'\n onClick={handleSignOut}\n >\n {t(\"Sign out\")}\n </Button>\n </div>\n </Section>\n );\n}\n"],"mappings":";;;;;;;;;AASA,SAAgB,eAAe,OAAgC;CAC7D,MAAM,EAAE,wDAAsB;CAC9B,MAAM,0CAAe,EAAE,IAAI,OAAO,WAAW,gBAAgB,SAAS,CAAC;CAEvE,MAAM,gBAAgB,YAAY;AAChC,MAAI,OAAO,UAAU;AAEnB,SAAM,8BAA8B;AACpC;;AAEF,MAAI,KACF,OAAM,KAAK,SAAS;;AAIxB,QACE,2CAACA;EACC,OAAO,EAAE,WAAW;EACpB,aAAa,EAAE,2BAA2B;YAE1C,2CAAC,mBACC,2CAACC;GACC,SAAQ;GACR,SAAS;aAER,EAAE,WAAW;IACP,GACL;GACE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leave-team-section.js","names":["Section","Button","Typography"],"sources":["../../../../src/components-page/account-settings/teams/leave-team-section.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY
|
|
1
|
+
{"version":3,"file":"leave-team-section.js","names":["Section","Button","Typography"],"sources":["../../../../src/components-page/account-settings/teams/leave-team-section.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { Button, Typography } from \"@hexclave/ui\";\nimport { useState } from \"react\";\nimport { Team } from \"../../..\";\nimport { useUser } from \"../../../lib/hooks\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { Section } from \"../section\";\n\nexport function LeaveTeamSection(props: { team: Team }) {\n const { t } = useTranslation();\n const user = useUser({ or: 'redirect' });\n const [leaving, setLeaving] = useState(false);\n\n return (\n <Section\n title={t(\"Leave Team\")}\n description={t(\"leave this team and remove your team profile\")}\n >\n {!leaving ? (\n <div>\n <Button\n variant='secondary'\n onClick={() => setLeaving(true)}\n >\n {t(\"Leave team\")}\n </Button>\n </div>\n ) : (\n <div className='flex flex-col gap-2'>\n <Typography variant='destructive'>\n {t(\"Are you sure you want to leave the team?\")}\n </Typography>\n <div className='flex gap-2'>\n <Button\n variant='destructive'\n onClick={async () => {\n await user.leaveTeam(props.team);\n window.location.reload();\n }}\n >\n {t(\"Leave\")}\n </Button>\n <Button\n variant='secondary'\n onClick={() => setLeaving(false)}\n >\n {t(\"Cancel\")}\n </Button>\n </div>\n </div>\n )}\n </Section>\n );\n}\n"],"mappings":";;;;;;;;;;AAWA,SAAgB,iBAAiB,OAAuB;CACtD,MAAM,EAAE,wDAAsB;CAC9B,MAAM,0CAAe,EAAE,IAAI,YAAY,CAAC;CACxC,MAAM,CAAC,SAAS,kCAAuB,MAAM;AAE7C,QACE,2CAACA;EACC,OAAO,EAAE,aAAa;EACtB,aAAa,EAAE,+CAA+C;YAE7D,CAAC,UACA,2CAAC,mBACC,2CAACC;GACC,SAAQ;GACR,eAAe,WAAW,KAAK;aAE9B,EAAE,aAAa;IACT,GACL,GAEN,4CAAC;GAAI,WAAU;cACb,2CAACC;IAAW,SAAQ;cACjB,EAAE,2CAA2C;KACnC,EACb,4CAAC;IAAI,WAAU;eACb,2CAACD;KACC,SAAQ;KACR,SAAS,YAAY;AACnB,YAAM,KAAK,UAAU,MAAM,KAAK;AAChC,aAAO,SAAS,QAAQ;;eAGzB,EAAE,QAAQ;MACJ,EACT,2CAACA;KACC,SAAQ;KACR,eAAe,WAAW,MAAM;eAE/B,EAAE,SAAS;MACL;KACL;IACF;GAEA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
const require_chunk = require('../../../chunk-BE-pF4vm.js');
|
|
3
|
+
let _hexclave_shared_dist_utils_errors = require("@hexclave/shared/dist/utils/errors");
|
|
3
4
|
let _hexclave_ui = require("@hexclave/ui");
|
|
4
5
|
let react = require("react");
|
|
5
6
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
|
-
let _hexclave_shared_dist_utils_errors = require("@hexclave/shared/dist/utils/errors");
|
|
7
7
|
let _________lib_hooks_js = require("../../../lib/hooks.js");
|
|
8
8
|
let _________lib_translations_js = require("../../../lib/translations.js");
|
|
9
9
|
let _________components_api_key_dialogs_js = require("../../../components/api-key-dialogs.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-api-keys-section.js","names":["HexclaveAssertionError","CreateApiKeyDialog","ShowApiKeyDialog","Section","Button","ApiKeyTable"],"sources":["../../../../src/components-page/account-settings/teams/team-api-keys-section.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY
|
|
1
|
+
{"version":3,"file":"team-api-keys-section.js","names":["HexclaveAssertionError","CreateApiKeyDialog","ShowApiKeyDialog","Section","Button","ApiKeyTable"],"sources":["../../../../src/components-page/account-settings/teams/team-api-keys-section.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { HexclaveAssertionError } from \"@hexclave/shared/dist/utils/errors\";\nimport { Button } from \"@hexclave/ui\";\nimport { useState } from \"react\";\nimport { CreateApiKeyDialog, ShowApiKeyDialog } from \"../../../components/api-key-dialogs\";\nimport { ApiKeyTable } from \"../../../components/api-key-table\";\nimport { useStackApp, useUser } from \"../../../lib/hooks\";\nimport { TeamApiKeyFirstView } from \"../../../lib/hexclave-app/api-keys\";\nimport { Team } from \"../../../lib/hexclave-app/teams\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { Section } from \"../section\";\n\n\nexport function TeamApiKeysSection(props: { team: Team }) {\n const user = useUser({ or: 'redirect' });\n const team = user.useTeam(props.team.id);\n const hexclaveApp = useStackApp();\n const project = hexclaveApp.useProject();\n\n if (!team) {\n throw new HexclaveAssertionError(\"Team not found\");\n }\n\n const teamApiKeysEnabled = project.config.allowTeamApiKeys;\n const manageApiKeysPermission = user.usePermission(props.team, '$manage_api_keys');\n if (!manageApiKeysPermission || !teamApiKeysEnabled) {\n return null;\n }\n\n return <TeamApiKeysSectionInner team={props.team} />;\n}\n\nfunction TeamApiKeysSectionInner(props: { team: Team }) {\n const { t } = useTranslation();\n\n const [isNewApiKeyDialogOpen, setIsNewApiKeyDialogOpen] = useState(false);\n const [returnedApiKey, setReturnedApiKey] = useState<TeamApiKeyFirstView | null>(null);\n\n const apiKeys = props.team.useApiKeys();\n\n const CreateDialog = CreateApiKeyDialog<\"team\">;\n const ShowDialog = ShowApiKeyDialog<\"team\">;\n\n return (\n <>\n <Section\n title={t(\"API Keys\")}\n description={t(\"API keys grant programmatic access to your team.\")}\n >\n <Button onClick={() => setIsNewApiKeyDialogOpen(true)}>\n {t(\"Create API Key\")}\n </Button>\n </Section>\n <ApiKeyTable apiKeys={apiKeys} />\n\n <CreateDialog\n open={isNewApiKeyDialogOpen}\n onOpenChange={setIsNewApiKeyDialogOpen}\n onKeyCreated={setReturnedApiKey}\n createApiKey={async (data) => {\n const apiKey = await props.team.createApiKey(data);\n return apiKey;\n }}\n />\n <ShowDialog\n apiKey={returnedApiKey}\n onClose={() => setReturnedApiKey(null)}\n />\n </>\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAgBA,SAAgB,mBAAmB,OAAuB;CACxD,MAAM,0CAAe,EAAE,IAAI,YAAY,CAAC;CACxC,MAAM,OAAO,KAAK,QAAQ,MAAM,KAAK,GAAG;CAExC,MAAM,kDAD2B,CACL,YAAY;AAExC,KAAI,CAAC,KACH,OAAM,IAAIA,0DAAuB,iBAAiB;CAGpD,MAAM,qBAAqB,QAAQ,OAAO;AAE1C,KAAI,CAD4B,KAAK,cAAc,MAAM,MAAM,mBAAmB,IAClD,CAAC,mBAC/B,QAAO;AAGT,QAAO,2CAAC,2BAAwB,MAAM,MAAM,OAAQ;;AAGtD,SAAS,wBAAwB,OAAuB;CACtD,MAAM,EAAE,wDAAsB;CAE9B,MAAM,CAAC,uBAAuB,gDAAqC,MAAM;CACzE,MAAM,CAAC,gBAAgB,yCAA0D,KAAK;CAEtF,MAAM,UAAU,MAAM,KAAK,YAAY;CAEvC,MAAM,eAAeC;CACrB,MAAM,aAAaC;AAEnB,QACE;EACE,2CAACC;GACC,OAAO,EAAE,WAAW;GACpB,aAAa,EAAE,mDAAmD;aAElE,2CAACC;IAAO,eAAe,yBAAyB,KAAK;cAClD,EAAE,iBAAiB;KACb;IACD;EACV,2CAACC,oDAAqB,UAAW;EAEjC,2CAAC;GACC,MAAM;GACN,cAAc;GACd,cAAc;GACd,cAAc,OAAO,SAAS;AAE5B,WADe,MAAM,MAAM,KAAK,aAAa,KAAK;;IAGpD;EACF,2CAAC;GACC,QAAQ;GACR,eAAe,kBAAkB,KAAK;IACtC;KACD"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
const require_chunk = require('../../../chunk-BE-pF4vm.js');
|
|
3
|
+
let _hookform_resolvers_yup = require("@hookform/resolvers/yup");
|
|
4
|
+
let _hexclave_shared_dist_schema_fields = require("@hexclave/shared/dist/schema-fields");
|
|
3
5
|
let _hexclave_shared_dist_utils_promises = require("@hexclave/shared/dist/utils/promises");
|
|
4
6
|
let _hexclave_ui = require("@hexclave/ui");
|
|
5
7
|
let react = require("react");
|
|
6
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
|
-
let _hookform_resolvers_yup = require("@hookform/resolvers/yup");
|
|
8
|
-
let _hexclave_shared_dist_schema_fields = require("@hexclave/shared/dist/schema-fields");
|
|
9
8
|
let react_hook_form = require("react-hook-form");
|
|
9
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
10
10
|
let _________lib_hooks_js = require("../../../lib/hooks.js");
|
|
11
11
|
let _________lib_translations_js = require("../../../lib/translations.js");
|
|
12
12
|
let ___page_layout_js = require("../page-layout.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-creation-page.js","names":["PageLayout","MessageCard","Section","Input","FormWarningText","Button"],"sources":["../../../../src/components-page/account-settings/teams/team-creation-page.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY
|
|
1
|
+
{"version":3,"file":"team-creation-page.js","names":["PageLayout","MessageCard","Section","Input","FormWarningText","Button"],"sources":["../../../../src/components-page/account-settings/teams/team-creation-page.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport { yupObject, yupString } from \"@hexclave/shared/dist/schema-fields\";\nimport { runAsynchronouslyWithAlert } from \"@hexclave/shared/dist/utils/promises\";\nimport { Button, Input } from \"@hexclave/ui\";\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport * as yup from \"yup\";\nimport { FormWarningText } from \"../../../components/elements/form-warning\";\nimport { MessageCard } from \"../../../components/message-cards/message-card\";\nimport { useStackApp, useUser } from \"../../../lib/hooks\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { PageLayout } from \"../page-layout\";\nimport { Section } from \"../section\";\n\nexport function TeamCreationPage(props?: {\n mockMode?: boolean,\n}) {\n const { t } = useTranslation();\n\n const teamCreationSchema = yupObject({\n displayName: yupString().defined().nonEmpty(t(\"Please enter a team name\")),\n });\n\n const { register, handleSubmit, formState: { errors } } = useForm({\n resolver: yupResolver(teamCreationSchema)\n });\n const app = useStackApp();\n const project = app.useProject();\n const user = useUser({ or: props?.mockMode ? 'return-null' : 'redirect' });\n const navigate = app.useNavigate();\n const [loading, setLoading] = useState(false);\n\n // In mock mode, show that team creation is disabled\n if (props?.mockMode) {\n return (\n <PageLayout>\n <MessageCard title={t(\"Team creation is disabled in demo mode\")} />\n </PageLayout>\n );\n }\n\n if (!project.config.clientTeamCreationEnabled) {\n return <MessageCard title={t(\"Team creation is not enabled\")} />;\n }\n\n const onSubmit = async (data: yup.InferType<typeof teamCreationSchema>) => {\n if (props?.mockMode) {\n // Mock mode - just show an alert\n alert(\"Mock mode: Team creation clicked\");\n return;\n }\n\n setLoading(true);\n\n let team;\n try {\n team = await user?.createTeam({ displayName: data.displayName });\n } finally {\n setLoading(false);\n }\n\n if (team) {\n navigate(`#team-${team.id}`);\n }\n };\n\n return (\n <PageLayout>\n <Section title={t(\"Create a Team\")} description={t(\"Enter a display name for your new team\")}>\n <form\n onSubmit={e => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e))}\n noValidate\n className='flex gap-2 flex-col sm:flex-row'\n >\n <div className='flex flex-col flex-1'>\n <Input\n id=\"displayName\"\n type=\"text\"\n {...register(\"displayName\")}\n />\n <FormWarningText text={errors.displayName?.message?.toString()} />\n </div>\n <Button type=\"submit\" loading={loading}>{t(\"Create\")}</Button>\n </form>\n </Section>\n </PageLayout>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,SAAgB,iBAAiB,OAE9B;CACD,MAAM,EAAE,wDAAsB;CAM9B,MAAM,EAAE,UAAU,cAAc,WAAW,EAAE,0CAAqB,EAChE,sGALmC,EACnC,iEAAwB,CAAC,SAAS,CAAC,SAAS,EAAE,2BAA2B,CAAC,EAC3E,CAAC,CAGyC,EAC1C,CAAC;CACF,MAAM,8CAAmB;CACzB,MAAM,UAAU,IAAI,YAAY;CAChC,MAAM,0CAAe,EAAE,IAAI,OAAO,WAAW,gBAAgB,YAAY,CAAC;CAC1E,MAAM,WAAW,IAAI,aAAa;CAClC,MAAM,CAAC,SAAS,kCAAuB,MAAM;AAG7C,KAAI,OAAO,SACT,QACE,2CAACA,0CACC,2CAACC,iEAAY,OAAO,EAAE,yCAAyC,GAAI,GACxD;AAIjB,KAAI,CAAC,QAAQ,OAAO,0BAClB,QAAO,2CAACA,iEAAY,OAAO,EAAE,+BAA+B,GAAI;CAGlE,MAAM,WAAW,OAAO,SAAmD;AACzE,MAAI,OAAO,UAAU;AAEnB,SAAM,mCAAmC;AACzC;;AAGF,aAAW,KAAK;EAEhB,IAAI;AACJ,MAAI;AACF,UAAO,MAAM,MAAM,WAAW,EAAE,aAAa,KAAK,aAAa,CAAC;YACxD;AACR,cAAW,MAAM;;AAGnB,MAAI,KACF,UAAS,SAAS,KAAK,KAAK;;AAIhC,QACE,2CAACD,0CACC,2CAACE;EAAQ,OAAO,EAAE,gBAAgB;EAAE,aAAa,EAAE,yCAAyC;YAC1F,4CAAC;GACC,WAAU,2EAAgC,aAAa,SAAS,CAAC,EAAE,CAAC;GACpE;GACA,WAAU;cAEV,4CAAC;IAAI,WAAU;eACb,2CAACC;KACC,IAAG;KACH,MAAK;KACL,GAAI,SAAS,cAAc;MAC3B,EACF,2CAACC,gEAAgB,MAAM,OAAO,aAAa,SAAS,UAAU,GAAI;KAC9D,EACN,2CAACC;IAAO,MAAK;IAAkB;cAAU,EAAE,SAAS;KAAU;IACzD;GACC,GACC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Team } from "../../../lib/
|
|
1
|
+
import { Team } from "../../../lib/hexclave-app/teams/index.js";
|
|
2
2
|
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components-page/account-settings/teams/team-display-name-section.d.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-display-name-section.js","names":["Section","EditableText"],"sources":["../../../../src/components-page/account-settings/teams/team-display-name-section.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY
|
|
1
|
+
{"version":3,"file":"team-display-name-section.js","names":["Section","EditableText"],"sources":["../../../../src/components-page/account-settings/teams/team-display-name-section.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { Team } from \"../../..\";\nimport { useUser } from \"../../../lib/hooks\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { EditableText } from \"../editable-text\";\nimport { Section } from \"../section\";\n\nexport function TeamDisplayNameSection(props: { team: Team }) {\n const { t } = useTranslation();\n const user = useUser({ or: 'redirect' });\n const updateTeamPermission = user.usePermission(props.team, '$update_team');\n\n if (!updateTeamPermission) {\n return null;\n }\n\n return (\n <Section\n title={t(\"Team display name\")}\n description={t(\"Change the display name of your team\")}\n >\n <EditableText\n value={props.team.displayName}\n onSave={async (newDisplayName) => await props.team.update({ displayName: newDisplayName })}\n />\n </Section>\n );\n}\n"],"mappings":";;;;;;;;;AAUA,SAAgB,uBAAuB,OAAuB;CAC5D,MAAM,EAAE,wDAAsB;AAI9B,KAAI,oCAHiB,EAAE,IAAI,YAAY,CAAC,CACN,cAAc,MAAM,MAAM,eAAe,CAGzE,QAAO;AAGT,QACE,2CAACA;EACC,OAAO,EAAE,oBAAoB;EAC7B,aAAa,EAAE,uCAAuC;YAEtD,2CAACC;GACC,OAAO,MAAM,KAAK;GAClB,QAAQ,OAAO,mBAAmB,MAAM,MAAM,KAAK,OAAO,EAAE,aAAa,gBAAgB,CAAC;IAC1F;GACM"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Team } from "../../../lib/
|
|
1
|
+
import { Team } from "../../../lib/hexclave-app/teams/index.js";
|
|
2
2
|
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components-page/account-settings/teams/team-member-invitation-section.d.ts
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
const require_chunk = require('../../../chunk-BE-pF4vm.js');
|
|
3
|
+
let _hookform_resolvers_yup = require("@hookform/resolvers/yup");
|
|
4
|
+
let _hexclave_shared_dist_schema_fields = require("@hexclave/shared/dist/schema-fields");
|
|
3
5
|
let _hexclave_shared_dist_utils_promises = require("@hexclave/shared/dist/utils/promises");
|
|
4
6
|
let _hexclave_ui = require("@hexclave/ui");
|
|
5
|
-
let lucide_react = require("lucide-react");
|
|
6
7
|
let react = require("react");
|
|
7
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
-
let _hookform_resolvers_yup = require("@hookform/resolvers/yup");
|
|
9
|
-
let _hexclave_shared_dist_schema_fields = require("@hexclave/shared/dist/schema-fields");
|
|
10
8
|
let react_hook_form = require("react-hook-form");
|
|
9
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
10
|
+
let lucide_react = require("lucide-react");
|
|
11
11
|
let _________lib_hooks_js = require("../../../lib/hooks.js");
|
|
12
12
|
let _________lib_translations_js = require("../../../lib/translations.js");
|
|
13
13
|
let _________components_elements_form_warning_js = require("../../../components/elements/form-warning.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-member-invitation-section.js","names":["Table","TableHeader","TableRow","TableHead","TableBody","TableCell","Typography","Button","Trash","Section","Input","FormWarningText"],"sources":["../../../../src/components-page/account-settings/teams/team-member-invitation-section.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY
|
|
1
|
+
{"version":3,"file":"team-member-invitation-section.js","names":["Table","TableHeader","TableRow","TableHead","TableBody","TableCell","Typography","Button","Trash","Section","Input","FormWarningText"],"sources":["../../../../src/components-page/account-settings/teams/team-member-invitation-section.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport { strictEmailSchema, yupObject } from \"@hexclave/shared/dist/schema-fields\";\nimport { runAsynchronouslyWithAlert } from \"@hexclave/shared/dist/utils/promises\";\nimport { Button, Input, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, Typography } from \"@hexclave/ui\";\nimport { Trash } from \"lucide-react\";\nimport { useEffect, useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport * as yup from \"yup\";\nimport { Team } from \"../../..\";\nimport { FormWarningText } from \"../../../components/elements/form-warning\";\nimport { useUser } from \"../../../lib/hooks\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { Section } from \"../section\";\n\nexport function TeamMemberInvitationSection(props: { team: Team }) {\n const user = useUser({ or: 'redirect' });\n const inviteMemberPermission = user.usePermission(props.team, '$invite_members');\n\n if (!inviteMemberPermission) {\n return null;\n }\n\n return <MemberInvitationSectionInner team={props.team} />;\n}\n\nfunction MemberInvitationsSectionInvitationsList(props: { team: Team }) {\n const user = useUser({ or: 'redirect' });\n const { t } = useTranslation();\n const invitationsToShow = props.team.useInvitations();\n const removeMemberPermission = user.usePermission(props.team, '$remove_members');\n\n return <>\n <Table className='mt-6'>\n <TableHeader>\n <TableRow>\n <TableHead className=\"w-[200px]\">{t(\"Outstanding invitations\")}</TableHead>\n <TableHead className=\"w-[60px]\">{t(\"Expires\")}</TableHead>\n <TableHead className=\"w-[36px] max-w-[36px]\"></TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {invitationsToShow.map((invitation, i) => (\n <TableRow key={invitation.id}>\n <TableCell>\n <Typography>{invitation.recipientEmail}</Typography>\n </TableCell>\n <TableCell>\n <Typography variant='secondary'>{invitation.expiresAt.toLocaleString()}</Typography>\n </TableCell>\n <TableCell align='right' className='max-w-[36px]'>\n {removeMemberPermission && (\n <Button onClick={async () => await invitation.revoke()} size='icon' variant='ghost'>\n <Trash className=\"w-4 h-4\" />\n </Button>\n )}\n </TableCell>\n </TableRow>\n ))}\n {invitationsToShow.length === 0 && <TableRow>\n <TableCell colSpan={3}>\n <Typography variant='secondary'>{t(\"No outstanding invitations\")}</Typography>\n </TableCell>\n </TableRow>}\n </TableBody>\n </Table>\n </>;\n}\n\nfunction MemberInvitationSectionInner(props: { team: Team }) {\n const user = useUser({ or: 'redirect' });\n const { t } = useTranslation();\n const readMemberPermission = user.usePermission(props.team, '$read_members');\n\n const invitationSchema = yupObject({\n email: strictEmailSchema(t('Please enter a valid email address')).defined().nonEmpty(t('Please enter an email address')),\n });\n\n const { register, handleSubmit, formState: { errors }, watch } = useForm({\n resolver: yupResolver(invitationSchema)\n });\n const [loading, setLoading] = useState(false);\n const [invitedEmail, setInvitedEmail] = useState<string | null>(null);\n\n const onSubmit = async (data: yup.InferType<typeof invitationSchema>) => {\n setLoading(true);\n\n try {\n await props.team.inviteUser({ email: data.email });\n setInvitedEmail(data.email);\n } finally {\n setLoading(false);\n }\n };\n\n useEffect(() => {\n setInvitedEmail(null);\n }, [watch('email')]);\n\n return (\n <>\n <Section\n title={t(\"Invite member\")}\n description={t(\"Invite a user to your team through email\")}\n >\n <form\n onSubmit={e => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e))}\n noValidate\n className='w-full'\n >\n <div className=\"flex flex-col gap-4 sm:flex-row w-full\">\n <Input\n placeholder={t(\"Email\")}\n {...register(\"email\")}\n />\n <Button type=\"submit\" loading={loading}>{t(\"Invite User\")}</Button>\n </div>\n <FormWarningText text={errors.email?.message?.toString()} />\n {invitedEmail && <Typography type='label' variant='secondary'>Invited {invitedEmail}</Typography>}\n </form>\n </Section>\n {readMemberPermission && <MemberInvitationsSectionInvitationsList team={props.team} />}\n </>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAkBA,SAAgB,4BAA4B,OAAuB;AAIjE,KAAI,oCAHiB,EAAE,IAAI,YAAY,CAAC,CACJ,cAAc,MAAM,MAAM,kBAAkB,CAG9E,QAAO;AAGT,QAAO,2CAAC,gCAA6B,MAAM,MAAM,OAAQ;;AAG3D,SAAS,wCAAwC,OAAuB;CACtE,MAAM,0CAAe,EAAE,IAAI,YAAY,CAAC;CACxC,MAAM,EAAE,wDAAsB;CAC9B,MAAM,oBAAoB,MAAM,KAAK,gBAAgB;CACrD,MAAM,yBAAyB,KAAK,cAAc,MAAM,MAAM,kBAAkB;AAEhF,QAAO,mFACL,4CAACA;EAAM,WAAU;aACf,2CAACC,sCACC,4CAACC;GACC,2CAACC;IAAU,WAAU;cAAa,EAAE,0BAA0B;KAAa;GAC3E,2CAACA;IAAU,WAAU;cAAY,EAAE,UAAU;KAAa;GAC1D,2CAACA,0BAAU,WAAU,0BAAoC;MAChD,GACC,EACd,4CAACC,qCACE,kBAAkB,KAAK,YAAY,MAClC,4CAACF;GACC,2CAACG,oCACC,2CAACC,qCAAY,WAAW,iBAA4B,GAC1C;GACZ,2CAACD,oCACC,2CAACC;IAAW,SAAQ;cAAa,WAAW,UAAU,gBAAgB;KAAc,GAC1E;GACZ,2CAACD;IAAU,OAAM;IAAQ,WAAU;cAChC,0BACC,2CAACE;KAAO,SAAS,YAAY,MAAM,WAAW,QAAQ;KAAE,MAAK;KAAO,SAAQ;eAC1E,2CAACC,sBAAM,WAAU,YAAY;MACtB;KAED;OAbC,WAAW,GAcf,CACX,EACD,kBAAkB,WAAW,KAAK,2CAACN,mCAClC,2CAACG;GAAU,SAAS;aAClB,2CAACC;IAAW,SAAQ;cAAa,EAAE,6BAA6B;KAAc;IACpE,GACH,IACD;GACN,GACP;;AAGL,SAAS,6BAA6B,OAAuB;CAC3D,MAAM,0CAAe,EAAE,IAAI,YAAY,CAAC;CACxC,MAAM,EAAE,wDAAsB;CAC9B,MAAM,uBAAuB,KAAK,cAAc,MAAM,MAAM,gBAAgB;CAM5E,MAAM,EAAE,UAAU,cAAc,WAAW,EAAE,UAAU,uCAAkB,EACvE,sGALiC,EACjC,kEAAyB,EAAE,qCAAqC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,gCAAgC,CAAC,EACzH,CAAC,CAGuC,EACxC,CAAC;CACF,MAAM,CAAC,SAAS,kCAAuB,MAAM;CAC7C,MAAM,CAAC,cAAc,uCAA2C,KAAK;CAErE,MAAM,WAAW,OAAO,SAAiD;AACvE,aAAW,KAAK;AAEhB,MAAI;AACF,SAAM,MAAM,KAAK,WAAW,EAAE,OAAO,KAAK,OAAO,CAAC;AAClD,mBAAgB,KAAK,MAAM;YACnB;AACR,cAAW,MAAM;;;AAIrB,4BAAgB;AACd,kBAAgB,KAAK;IACpB,CAAC,MAAM,QAAQ,CAAC,CAAC;AAEpB,QACE,qFACE,2CAACG;EACC,OAAO,EAAE,gBAAgB;EACzB,aAAa,EAAE,2CAA2C;YAE1D,4CAAC;GACC,WAAU,2EAAgC,aAAa,SAAS,CAAC,EAAE,CAAC;GACpE;GACA,WAAU;;IAEV,4CAAC;KAAI,WAAU;gBACb,2CAACC;MACC,aAAa,EAAE,QAAQ;MACvB,GAAI,SAAS,QAAQ;OACrB,EACF,2CAACH;MAAO,MAAK;MAAkB;gBAAU,EAAE,cAAc;OAAU;MAC/D;IACN,2CAACI,gEAAgB,MAAM,OAAO,OAAO,SAAS,UAAU,GAAI;IAC3D,gBAAgB,4CAACL;KAAW,MAAK;KAAQ,SAAQ;gBAAY,YAAS;MAA0B;;IAC5F;GACC,EACT,wBAAwB,2CAAC,2CAAwC,MAAM,MAAM,OAAQ,IACrF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Team } from "../../../lib/
|
|
1
|
+
import { Team } from "../../../lib/hexclave-app/teams/index.js";
|
|
2
2
|
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components-page/account-settings/teams/team-member-list-section.d.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-member-list-section.js","names":["Typography","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","UserAvatar"],"sources":["../../../../src/components-page/account-settings/teams/team-member-list-section.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY
|
|
1
|
+
{"version":3,"file":"team-member-list-section.js","names":["Typography","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","UserAvatar"],"sources":["../../../../src/components-page/account-settings/teams/team-member-list-section.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, Typography } from \"@hexclave/ui\";\nimport { Team } from \"../../..\";\nimport { UserAvatar } from \"../../../components/elements/user-avatar\";\nimport { useUser } from \"../../../lib/hooks\";\nimport { useTranslation } from \"../../../lib/translations\";\n\nexport function TeamMemberListSection(props: { team: Team }) {\n const user = useUser({ or: 'redirect' });\n const readMemberPermission = user.usePermission(props.team, '$read_members');\n const inviteMemberPermission = user.usePermission(props.team, '$invite_members');\n\n if (!readMemberPermission && !inviteMemberPermission) {\n return null;\n }\n\n return <MemberListSectionInner team={props.team} />;\n}\n\nfunction MemberListSectionInner(props: { team: Team }) {\n const { t } = useTranslation();\n const users = props.team.useUsers();\n\n return (\n <div>\n <Typography className='font-medium mb-2'>{t(\"Members\")}</Typography>\n <div className='border rounded-md'>\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead className=\"w-[100px]\">{t(\"User\")}</TableHead>\n <TableHead className=\"w-[200px]\">{t(\"Name\")}</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {users.map(({ id, teamProfile }, i) => (\n <TableRow key={id}>\n <TableCell>\n <UserAvatar user={teamProfile} />\n </TableCell>\n <TableCell>\n {teamProfile.displayName && (\n <Typography>{teamProfile.displayName}</Typography>\n )}\n {!teamProfile.displayName && (\n <Typography className=\"text-muted-foreground italic\">{t(\"No display name set\")}</Typography>\n )}\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;AAUA,SAAgB,sBAAsB,OAAuB;CAC3D,MAAM,0CAAe,EAAE,IAAI,YAAY,CAAC;CACxC,MAAM,uBAAuB,KAAK,cAAc,MAAM,MAAM,gBAAgB;CAC5E,MAAM,yBAAyB,KAAK,cAAc,MAAM,MAAM,kBAAkB;AAEhF,KAAI,CAAC,wBAAwB,CAAC,uBAC5B,QAAO;AAGT,QAAO,2CAAC,0BAAuB,MAAM,MAAM,OAAQ;;AAGrD,SAAS,uBAAuB,OAAuB;CACrD,MAAM,EAAE,wDAAsB;CAC9B,MAAM,QAAQ,MAAM,KAAK,UAAU;AAEnC,QACE,4CAAC,oBACC,2CAACA;EAAW,WAAU;YAAoB,EAAE,UAAU;GAAc,EACpE,2CAAC;EAAI,WAAU;YACb,4CAACC,iCACC,2CAACC,sCACC,4CAACC,oCACC,2CAACC;GAAU,WAAU;aAAa,EAAE,OAAO;IAAa,EACxD,2CAACA;GAAU,WAAU;aAAa,EAAE,OAAO;IAAa,IAC/C,GACC,EACd,2CAACC,oCACE,MAAM,KAAK,EAAE,IAAI,eAAe,MAC/B,4CAACF,oCACC,2CAACG,oCACC,2CAACC,0DAAW,MAAM,cAAe,GACvB,EACZ,4CAACD,qCACE,YAAY,eACX,2CAACN,qCAAY,YAAY,cAAyB,EAEnD,CAAC,YAAY,eACZ,2CAACA;GAAW,WAAU;aAAgC,EAAE,sBAAsB;IAAc,IAEpF,KAXC,GAYJ,CACX,GACQ,IACN;GACJ,IACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-page.js","names":["PageLayout","TeamUserProfileSection","TeamProfileImageSection","TeamDisplayNameSection","TeamMemberListSection","TeamMemberInvitationSection","TeamApiKeysSection","LeaveTeamSection"],"sources":["../../../../src/components-page/account-settings/teams/team-page.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY
|
|
1
|
+
{"version":3,"file":"team-page.js","names":["PageLayout","TeamUserProfileSection","TeamProfileImageSection","TeamDisplayNameSection","TeamMemberListSection","TeamMemberInvitationSection","TeamApiKeysSection","LeaveTeamSection"],"sources":["../../../../src/components-page/account-settings/teams/team-page.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { Team } from \"../../..\";\nimport { PageLayout } from \"../page-layout\";\nimport { LeaveTeamSection } from \"./leave-team-section\";\nimport { TeamApiKeysSection } from \"./team-api-keys-section\";\nimport { TeamDisplayNameSection } from \"./team-display-name-section\";\nimport { TeamMemberInvitationSection } from \"./team-member-invitation-section\";\nimport { TeamMemberListSection } from \"./team-member-list-section\";\nimport { TeamProfileImageSection } from \"./team-profile-image-section\";\nimport { TeamUserProfileSection } from \"./team-profile-user-section\";\n\n\nexport function TeamPage(props: { team: Team }) {\n return (\n <PageLayout>\n <TeamUserProfileSection key={`user-profile-${props.team.id}`} team={props.team} />\n <TeamProfileImageSection key={`profile-image-${props.team.id}`} team={props.team} />\n <TeamDisplayNameSection key={`display-name-${props.team.id}`} team={props.team} />\n <TeamMemberListSection key={`member-list-${props.team.id}`} team={props.team} />\n <TeamMemberInvitationSection key={`member-invitation-${props.team.id}`} team={props.team} />\n <TeamApiKeysSection key={`api-keys-${props.team.id}`} team={props.team} />\n <LeaveTeamSection key={`leave-team-${props.team.id}`} team={props.team} />\n </PageLayout>\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAeA,SAAgB,SAAS,OAAuB;AAC9C,QACE,4CAACA;EACC,2CAACC,yDAA6D,MAAM,MAAM,QAA7C,gBAAgB,MAAM,KAAK,KAA0B;EAClF,2CAACC,2DAA+D,MAAM,MAAM,QAA9C,iBAAiB,MAAM,KAAK,KAA0B;EACpF,2CAACC,yDAA6D,MAAM,MAAM,QAA7C,gBAAgB,MAAM,KAAK,KAA0B;EAClF,2CAACC,uDAA2D,MAAM,MAAM,QAA5C,eAAe,MAAM,KAAK,KAA0B;EAChF,2CAACC,mEAAuE,MAAM,MAAM,QAAlD,qBAAqB,MAAM,KAAK,KAA0B;EAC5F,2CAACC,iDAAqD,MAAM,MAAM,QAAzC,YAAY,MAAM,KAAK,KAA0B;EAC1E,2CAACC,4CAAqD,MAAM,MAAM,QAA3C,cAAc,MAAM,KAAK,KAA0B;KAC/D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Team } from "../../../lib/
|
|
1
|
+
import { Team } from "../../../lib/hexclave-app/teams/index.js";
|
|
2
2
|
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components-page/account-settings/teams/team-profile-image-section.d.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-profile-image-section.js","names":["Section","ProfileImageEditor"],"sources":["../../../../src/components-page/account-settings/teams/team-profile-image-section.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY
|
|
1
|
+
{"version":3,"file":"team-profile-image-section.js","names":["Section","ProfileImageEditor"],"sources":["../../../../src/components-page/account-settings/teams/team-profile-image-section.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { Team } from \"../../..\";\nimport { ProfileImageEditor } from \"../../../components/profile-image-editor\";\nimport { useUser } from \"../../../lib/hooks\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { Section } from \"../section\";\n\nexport function TeamProfileImageSection(props: { team: Team }) {\n const { t } = useTranslation();\n const user = useUser({ or: 'redirect' });\n const updateTeamPermission = user.usePermission(props.team, '$update_team');\n\n if (!updateTeamPermission) {\n return null;\n }\n\n return (\n <Section\n title={t(\"Team profile image\")}\n description={t(\"Upload an image for your team\")}\n >\n <ProfileImageEditor\n user={props.team}\n onProfileImageUrlChange={async (profileImageUrl) => {\n await props.team.update({ profileImageUrl });\n }}\n />\n </Section>\n );\n}\n"],"mappings":";;;;;;;;;AAUA,SAAgB,wBAAwB,OAAuB;CAC7D,MAAM,EAAE,wDAAsB;AAI9B,KAAI,oCAHiB,EAAE,IAAI,YAAY,CAAC,CACN,cAAc,MAAM,MAAM,eAAe,CAGzE,QAAO;AAGT,QACE,2CAACA;EACC,OAAO,EAAE,qBAAqB;EAC9B,aAAa,EAAE,gCAAgC;YAE/C,2CAACC;GACC,MAAM,MAAM;GACZ,yBAAyB,OAAO,oBAAoB;AAClD,UAAM,MAAM,KAAK,OAAO,EAAE,iBAAiB,CAAC;;IAE9C;GACM"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Team } from "../../../lib/
|
|
1
|
+
import { Team } from "../../../lib/hexclave-app/teams/index.js";
|
|
2
2
|
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components-page/account-settings/teams/team-profile-user-section.d.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-profile-user-section.js","names":["Section","EditableText"],"sources":["../../../../src/components-page/account-settings/teams/team-profile-user-section.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY
|
|
1
|
+
{"version":3,"file":"team-profile-user-section.js","names":["Section","EditableText"],"sources":["../../../../src/components-page/account-settings/teams/team-profile-user-section.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { Team } from \"../../..\";\nimport { useUser } from \"../../../lib/hooks\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { EditableText } from \"../editable-text\";\nimport { Section } from \"../section\";\n\nexport function TeamUserProfileSection(props: { team: Team }) {\n const { t } = useTranslation();\n const user = useUser({ or: 'redirect' });\n const profile = user.useTeamProfile(props.team);\n\n return (\n <Section\n title={t(\"Team user name\")}\n description={t(\"Overwrite your user display name in this team\")}\n >\n <EditableText\n value={profile.displayName || ''}\n onSave={async (newDisplayName) => {\n await profile.update({ displayName: newDisplayName });\n }}\n />\n </Section>\n );\n}\n"],"mappings":";;;;;;;;;AAUA,SAAgB,uBAAuB,OAAuB;CAC5D,MAAM,EAAE,wDAAsB;CAE9B,MAAM,6CADe,EAAE,IAAI,YAAY,CAAC,CACnB,eAAe,MAAM,KAAK;AAE/C,QACE,2CAACA;EACC,OAAO,EAAE,iBAAiB;EAC1B,aAAa,EAAE,gDAAgD;YAE/D,2CAACC;GACC,OAAO,QAAQ,eAAe;GAC9B,QAAQ,OAAO,mBAAmB;AAChC,UAAM,QAAQ,OAAO,EAAE,aAAa,gBAAgB,CAAC;;IAEvD;GACM"}
|
|
@@ -4,14 +4,15 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
4
4
|
const require_chunk = require('../chunk-BE-pF4vm.js');
|
|
5
5
|
let _hexclave_shared_dist_utils_promises = require("@hexclave/shared/dist/utils/promises");
|
|
6
6
|
let _hexclave_ui = require("@hexclave/ui");
|
|
7
|
-
let lucide_react = require("lucide-react");
|
|
8
7
|
let react = require("react");
|
|
9
8
|
react = require_chunk.__toESM(react);
|
|
10
9
|
let ___index_js = require("../index.js");
|
|
10
|
+
let ___lib_translations_js = require("../lib/translations.js");
|
|
11
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
12
|
+
let lucide_react = require("lucide-react");
|
|
11
13
|
let ___components_elements_maybe_full_page_js = require("../components/elements/maybe-full-page.js");
|
|
12
14
|
let ___components_elements_sidebar_layout_js = require("../components/elements/sidebar-layout.js");
|
|
13
15
|
let ___components_team_icon_js = require("../components/team-icon.js");
|
|
14
|
-
let ___lib_translations_js = require("../lib/translations.js");
|
|
15
16
|
let __account_settings_active_sessions_active_sessions_page_js = require("./account-settings/active-sessions/active-sessions-page.js");
|
|
16
17
|
let __account_settings_api_keys_api_keys_page_js = require("./account-settings/api-keys/api-keys-page.js");
|
|
17
18
|
let __account_settings_email_and_auth_email_and_auth_page_js = require("./account-settings/email-and-auth/email-and-auth-page.js");
|
|
@@ -21,7 +22,6 @@ let __account_settings_payments_payments_page_js = require("./account-settings/p
|
|
|
21
22
|
let __account_settings_settings_settings_page_js = require("./account-settings/settings/settings-page.js");
|
|
22
23
|
let __account_settings_teams_team_creation_page_js = require("./account-settings/teams/team-creation-page.js");
|
|
23
24
|
let __account_settings_teams_team_page_js = require("./account-settings/teams/team-page.js");
|
|
24
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
25
25
|
|
|
26
26
|
//#region src/components-page/account-settings.tsx
|
|
27
27
|
const iconMap = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-settings.js","names":["MaybeFullPage","SidebarLayout","ProfilePage","Suspense","EmailsAndAuthPage","NotificationsPage","ActiveSessionsPage","ApiKeysPage","PaymentsPage","SettingsPage","TeamIcon","Typography","TeamPage","TeamCreationPage","Skeleton"],"sources":["../../src/components-page/account-settings.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY, INSTEAD EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { runAsynchronouslyWithAlert } from \"@hexclave/shared/dist/utils/promises\";\nimport { Skeleton, Typography } from '@hexclave/ui';\nimport { Contact, ShieldCheck, Bell, Monitor, Key, Settings, CirclePlus, CreditCard } from 'lucide-react';\nimport React, { Suspense, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useStackApp, useUser } from '..';\nimport { MaybeFullPage } from \"../components/elements/maybe-full-page\";\nimport { SidebarLayout } from '../components/elements/sidebar-layout';\nimport { TeamIcon } from '../components/team-icon';\nimport { useTranslation } from \"../lib/translations\";\nimport { ActiveSessionsPage } from \"./account-settings/active-sessions/active-sessions-page\";\nimport { ApiKeysPage } from \"./account-settings/api-keys/api-keys-page\";\nimport { EmailsAndAuthPage } from './account-settings/email-and-auth/email-and-auth-page';\nimport { NotificationsPage } from './account-settings/notifications/notifications-page';\nimport { ProfilePage } from \"./account-settings/profile-page/profile-page\";\nimport { PaymentsPage } from \"./account-settings/payments/payments-page\";\nimport { SettingsPage } from './account-settings/settings/settings-page';\nimport { TeamCreationPage } from './account-settings/teams/team-creation-page';\nimport { TeamPage } from './account-settings/teams/team-page';\n\nconst iconMap = {\n Contact,\n ShieldCheck,\n Bell,\n Monitor,\n Key,\n Settings,\n CirclePlus,\n CreditCard,\n} as const;\n\nconst Icon = ({ name }: { name: keyof typeof iconMap }) => {\n const LucideIcon = iconMap[name];\n return <LucideIcon className=\"mr-2 h-4 w-4\"/>;\n};\n\nexport function AccountSettings(props: {\n fullPage?: boolean,\n extraItems?: ({\n title: string,\n content: React.ReactNode,\n id: string,\n } & ({\n icon?: React.ReactNode,\n } | {\n iconName?: keyof typeof iconMap,\n }))[],\n mockUser?: {\n displayName?: string,\n profileImageUrl?: string,\n },\n mockApiKeys?: Array<{\n id: string,\n description: string,\n createdAt: string,\n expiresAt?: string,\n manuallyRevokedAt?: string,\n }>,\n mockProject?: {\n config: {\n allowUserApiKeys: boolean,\n clientTeamCreationEnabled: boolean,\n },\n },\n mockSessions?: Array<{\n id: string,\n isCurrentSession: boolean,\n isImpersonation?: boolean,\n createdAt: string,\n lastUsedAt?: string,\n geoInfo?: {\n ip?: string,\n cityName?: string,\n },\n }>,\n}) {\n const { t } = useTranslation();\n const userFromHook = useUser({ or: props.mockUser ? 'return-null' : 'redirect' });\n const stackApp = useStackApp();\n const projectFromHook = stackApp.useProject();\n\n // Use mock data if provided, otherwise use real data\n const user = props.mockUser ? {\n useTeams: () => [], // Mock empty teams for now\n useBilling: () => ({ hasCustomer: false }), // Mock empty billing for now\n } : userFromHook;\n\n const project = props.mockProject || projectFromHook;\n const teams = user?.useTeams() || [];\n const billing = user?.useBilling() || null;\n const teamsKey = useMemo(() => teams.map(team => team.id).join(\"|\"), [teams]);\n const teamsById = useMemo(() => teams, [teamsKey]);\n const userRef = useRef(userFromHook ?? null);\n const userId = userFromHook?.id ?? null;\n const [paymentsAvailability, setPaymentsAvailability] = useState<{\n userHasProducts: boolean,\n teamIdsWithProducts: Set<string>,\n isReady: boolean,\n }>(() => ({\n userHasProducts: false,\n teamIdsWithProducts: new Set<string>(),\n isReady: !!props.mockUser,\n }));\n\n useEffect(() => {\n userRef.current = userFromHook ?? null;\n }, [userFromHook]);\n\n useEffect(() => {\n if (props.mockUser || !userId) {\n return;\n }\n let cancelled = false;\n runAsynchronouslyWithAlert(async () => {\n const currentUser = userRef.current;\n if (!currentUser || currentUser.id !== userId) {\n return;\n }\n const [userProducts, teamsWithProducts] = await Promise.all([\n currentUser.listProducts({ limit: 1 }),\n Promise.all(teamsById.map(async (team) => {\n const isTeamAdmin = await currentUser.hasPermission(team, \"team_admin\");\n if (!isTeamAdmin) {\n return null;\n }\n const teamProducts = await team.listProducts({ limit: 1 });\n const hasTeamProducts = teamProducts.some((product) => product.customerType === \"team\");\n return hasTeamProducts ? team.id : null;\n })),\n ]);\n if (cancelled) {\n return;\n }\n const userHasProducts = userProducts.some((product) => product.customerType === \"user\");\n const teamIdsWithProducts = new Set<string>(teamsWithProducts.filter((id): id is string => id !== null));\n setPaymentsAvailability({\n userHasProducts,\n teamIdsWithProducts,\n isReady: true,\n });\n });\n return () => {\n cancelled = true;\n };\n }, [props.mockUser, teamsById, userId]);\n\n const teamsWithProducts = useMemo(\n () => teamsById.filter(team => paymentsAvailability.teamIdsWithProducts.has(team.id)),\n [paymentsAvailability.teamIdsWithProducts, teamsById],\n );\n const shouldShowPaymentsTab = props.mockUser\n || (paymentsAvailability.isReady\n && (paymentsAvailability.userHasProducts || teamsWithProducts.length > 0));\n\n // If we're not in mock mode and don't have a user, the useUser hook will handle redirect\n if (!props.mockUser && !userFromHook) {\n return null;\n }\n\n return (\n <MaybeFullPage fullPage={!!props.fullPage}>\n <div className=\"self-stretch flex-grow w-full\">\n <SidebarLayout\n items={([\n {\n title: t('My Profile'),\n type: 'item',\n id: 'profile',\n icon: <Icon name=\"Contact\"/>,\n content: <ProfilePage mockUser={props.mockUser}/>,\n },\n {\n title: t('Emails & Auth'),\n type: 'item',\n id: 'auth',\n icon: <Icon name=\"ShieldCheck\"/>,\n content: <Suspense fallback={<EmailsAndAuthPageSkeleton/>}>\n <EmailsAndAuthPage mockMode={!!props.mockUser}/>\n </Suspense>,\n },\n {\n title: t('Notifications'),\n type: 'item',\n id: 'notifications',\n icon: <Icon name=\"Bell\"/>,\n content: <Suspense fallback={<NotificationsPageSkeleton/>}>\n <NotificationsPage/>\n </Suspense>,\n },\n {\n title: t('Active Sessions'),\n type: 'item',\n id: 'sessions',\n icon: <Icon name=\"Monitor\"/>,\n content: <Suspense fallback={<ActiveSessionsPageSkeleton/>}>\n <ActiveSessionsPage mockSessions={props.mockSessions} mockMode={!!props.mockUser}/>\n </Suspense>,\n },\n ...(project.config.allowUserApiKeys ? [{\n title: t('API Keys'),\n type: 'item',\n id: 'api-keys',\n icon: <Icon name=\"Key\" />,\n content: <Suspense fallback={<ApiKeysPageSkeleton/>}>\n <ApiKeysPage mockApiKeys={props.mockApiKeys} mockMode={!!props.mockUser} />\n </Suspense>,\n }] as const : []),\n ...(shouldShowPaymentsTab ? [{\n title: t('Payments'),\n type: 'item',\n id: 'payments',\n icon: <Icon name=\"CreditCard\" />,\n content: <Suspense fallback={<PaymentsPageSkeleton/>}>\n <PaymentsPage\n mockMode={!!props.mockUser}\n allowPersonal={paymentsAvailability.userHasProducts}\n availableTeams={teamsWithProducts}\n />\n </Suspense>,\n }] as const : []),\n {\n title: t('Settings'),\n type: 'item',\n id: 'settings',\n icon: <Icon name=\"Settings\"/>,\n content: <SettingsPage mockMode={!!props.mockUser}/>,\n },\n ...(props.extraItems?.map(item => ({\n title: item.title,\n type: 'item',\n id: item.id,\n icon: (() => {\n const iconName = (item as any).iconName as keyof typeof iconMap | undefined;\n if (iconName) {\n return <Icon name={iconName}/>;\n } else if ((item as any).icon) {\n return (item as any).icon;\n }\n return null;\n })(),\n content: item.content,\n } as const)) || []),\n ...(teams.length > 0 || project.config.clientTeamCreationEnabled) ? [{\n title: t('Teams'),\n type: 'divider',\n }] as const : [],\n ...teams.map(team => ({\n title: <div className='flex gap-2 items-center w-full'>\n <TeamIcon team={team}/>\n <Typography className=\"max-w-[320px] md:w-[90%] truncate\">{team.displayName}</Typography>\n </div>,\n type: 'item',\n id: `team-${team.id}`,\n content: <Suspense fallback={<TeamPageSkeleton/>}>\n <TeamPage team={team}/>\n </Suspense>,\n } as const)),\n ...project.config.clientTeamCreationEnabled ? [{\n title: t('Create a team'),\n icon: <Icon name=\"CirclePlus\"/>,\n type: 'item',\n id: 'team-creation',\n content: <Suspense fallback={<TeamCreationSkeleton/>}>\n <TeamCreationPage mockMode={!!props.mockUser} />\n </Suspense>,\n }] as const : [],\n ] as const).filter((p) => p.type === 'divider' || (p as any).content )}\n title={t(\"Account Settings\")}\n />\n </div>\n </MaybeFullPage>\n );\n}\n\nfunction PageLayout(props: { children: React.ReactNode }) {\n return (\n <div className='flex flex-col gap-6'>\n {props.children}\n </div>\n );\n}\n\nfunction EmailsAndAuthPageSkeleton() {\n return <PageLayout>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n </PageLayout>;\n}\n\nfunction ActiveSessionsPageSkeleton() {\n return <PageLayout>\n <Skeleton className=\"h-6 w-48 mb-2\"/>\n <Skeleton className=\"h-4 w-full mb-4\"/>\n <Skeleton className=\"h-[200px] w-full mt-1 rounded-md\"/>\n </PageLayout>;\n}\n\nfunction ApiKeysPageSkeleton() {\n return <PageLayout>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-[200px] w-full mt-1 rounded-md\"/>\n </PageLayout>;\n}\n\nfunction PaymentsPageSkeleton() {\n return <PageLayout>\n <Skeleton className=\"h-6 w-48 mb-2\"/>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-[200px] w-full mt-1 rounded-md\"/>\n </PageLayout>;\n}\n\nfunction TeamPageSkeleton() {\n return <PageLayout>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-[200px] w-full mt-1 rounded-md\"/>\n </PageLayout>;\n}\n\nfunction TeamCreationSkeleton() {\n return <PageLayout>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n </PageLayout>;\n}\n\nfunction NotificationsPageSkeleton() {\n return <PageLayout>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n </PageLayout>;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"account-settings.js","names":["MaybeFullPage","SidebarLayout","ProfilePage","Suspense","EmailsAndAuthPage","NotificationsPage","ActiveSessionsPage","ApiKeysPage","PaymentsPage","SettingsPage","TeamIcon","Typography","TeamPage","TeamCreationPage","Skeleton"],"sources":["../../src/components-page/account-settings.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { runAsynchronouslyWithAlert } from \"@hexclave/shared/dist/utils/promises\";\nimport { Skeleton, Typography } from '@hexclave/ui';\nimport { Contact, ShieldCheck, Bell, Monitor, Key, Settings, CirclePlus, CreditCard } from 'lucide-react';\nimport React, { Suspense, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useStackApp, useUser } from '..';\nimport { MaybeFullPage } from \"../components/elements/maybe-full-page\";\nimport { SidebarLayout } from '../components/elements/sidebar-layout';\nimport { TeamIcon } from '../components/team-icon';\nimport { useTranslation } from \"../lib/translations\";\nimport { ActiveSessionsPage } from \"./account-settings/active-sessions/active-sessions-page\";\nimport { ApiKeysPage } from \"./account-settings/api-keys/api-keys-page\";\nimport { EmailsAndAuthPage } from './account-settings/email-and-auth/email-and-auth-page';\nimport { NotificationsPage } from './account-settings/notifications/notifications-page';\nimport { ProfilePage } from \"./account-settings/profile-page/profile-page\";\nimport { PaymentsPage } from \"./account-settings/payments/payments-page\";\nimport { SettingsPage } from './account-settings/settings/settings-page';\nimport { TeamCreationPage } from './account-settings/teams/team-creation-page';\nimport { TeamPage } from './account-settings/teams/team-page';\n\nconst iconMap = {\n Contact,\n ShieldCheck,\n Bell,\n Monitor,\n Key,\n Settings,\n CirclePlus,\n CreditCard,\n} as const;\n\nconst Icon = ({ name }: { name: keyof typeof iconMap }) => {\n const LucideIcon = iconMap[name];\n return <LucideIcon className=\"mr-2 h-4 w-4\"/>;\n};\n\nexport function AccountSettings(props: {\n fullPage?: boolean,\n extraItems?: ({\n title: string,\n content: React.ReactNode,\n id: string,\n } & ({\n icon?: React.ReactNode,\n } | {\n iconName?: keyof typeof iconMap,\n }))[],\n mockUser?: {\n displayName?: string,\n profileImageUrl?: string,\n },\n mockApiKeys?: Array<{\n id: string,\n description: string,\n createdAt: string,\n expiresAt?: string,\n manuallyRevokedAt?: string,\n }>,\n mockProject?: {\n config: {\n allowUserApiKeys: boolean,\n clientTeamCreationEnabled: boolean,\n },\n },\n mockSessions?: Array<{\n id: string,\n isCurrentSession: boolean,\n isImpersonation?: boolean,\n createdAt: string,\n lastUsedAt?: string,\n geoInfo?: {\n ip?: string,\n cityName?: string,\n },\n }>,\n}) {\n const { t } = useTranslation();\n const userFromHook = useUser({ or: props.mockUser ? 'return-null' : 'redirect' });\n const hexclaveApp = useStackApp();\n const projectFromHook = hexclaveApp.useProject();\n\n // Use mock data if provided, otherwise use real data\n const user = props.mockUser ? {\n useTeams: () => [], // Mock empty teams for now\n useBilling: () => ({ hasCustomer: false }), // Mock empty billing for now\n } : userFromHook;\n\n const project = props.mockProject || projectFromHook;\n const teams = user?.useTeams() || [];\n const billing = user?.useBilling() || null;\n const teamsKey = useMemo(() => teams.map(team => team.id).join(\"|\"), [teams]);\n const teamsById = useMemo(() => teams, [teamsKey]);\n const userRef = useRef(userFromHook ?? null);\n const userId = userFromHook?.id ?? null;\n const [paymentsAvailability, setPaymentsAvailability] = useState<{\n userHasProducts: boolean,\n teamIdsWithProducts: Set<string>,\n isReady: boolean,\n }>(() => ({\n userHasProducts: false,\n teamIdsWithProducts: new Set<string>(),\n isReady: !!props.mockUser,\n }));\n\n useEffect(() => {\n userRef.current = userFromHook ?? null;\n }, [userFromHook]);\n\n useEffect(() => {\n if (props.mockUser || !userId) {\n return;\n }\n let cancelled = false;\n runAsynchronouslyWithAlert(async () => {\n const currentUser = userRef.current;\n if (!currentUser || currentUser.id !== userId) {\n return;\n }\n const [userProducts, teamsWithProducts] = await Promise.all([\n currentUser.listProducts({ limit: 1 }),\n Promise.all(teamsById.map(async (team) => {\n const isTeamAdmin = await currentUser.hasPermission(team, \"team_admin\");\n if (!isTeamAdmin) {\n return null;\n }\n const teamProducts = await team.listProducts({ limit: 1 });\n const hasTeamProducts = teamProducts.some((product) => product.customerType === \"team\");\n return hasTeamProducts ? team.id : null;\n })),\n ]);\n if (cancelled) {\n return;\n }\n const userHasProducts = userProducts.some((product) => product.customerType === \"user\");\n const teamIdsWithProducts = new Set<string>(teamsWithProducts.filter((id): id is string => id !== null));\n setPaymentsAvailability({\n userHasProducts,\n teamIdsWithProducts,\n isReady: true,\n });\n });\n return () => {\n cancelled = true;\n };\n }, [props.mockUser, teamsById, userId]);\n\n const teamsWithProducts = useMemo(\n () => teamsById.filter(team => paymentsAvailability.teamIdsWithProducts.has(team.id)),\n [paymentsAvailability.teamIdsWithProducts, teamsById],\n );\n const shouldShowPaymentsTab = props.mockUser\n || (paymentsAvailability.isReady\n && (paymentsAvailability.userHasProducts || teamsWithProducts.length > 0));\n\n // If we're not in mock mode and don't have a user, the useUser hook will handle redirect\n if (!props.mockUser && !userFromHook) {\n return null;\n }\n\n return (\n <MaybeFullPage fullPage={!!props.fullPage}>\n <div className=\"self-stretch flex-grow w-full\">\n <SidebarLayout\n items={([\n {\n title: t('My Profile'),\n type: 'item',\n id: 'profile',\n icon: <Icon name=\"Contact\"/>,\n content: <ProfilePage mockUser={props.mockUser}/>,\n },\n {\n title: t('Emails & Auth'),\n type: 'item',\n id: 'auth',\n icon: <Icon name=\"ShieldCheck\"/>,\n content: <Suspense fallback={<EmailsAndAuthPageSkeleton/>}>\n <EmailsAndAuthPage mockMode={!!props.mockUser}/>\n </Suspense>,\n },\n {\n title: t('Notifications'),\n type: 'item',\n id: 'notifications',\n icon: <Icon name=\"Bell\"/>,\n content: <Suspense fallback={<NotificationsPageSkeleton/>}>\n <NotificationsPage/>\n </Suspense>,\n },\n {\n title: t('Active Sessions'),\n type: 'item',\n id: 'sessions',\n icon: <Icon name=\"Monitor\"/>,\n content: <Suspense fallback={<ActiveSessionsPageSkeleton/>}>\n <ActiveSessionsPage mockSessions={props.mockSessions} mockMode={!!props.mockUser}/>\n </Suspense>,\n },\n ...(project.config.allowUserApiKeys ? [{\n title: t('API Keys'),\n type: 'item',\n id: 'api-keys',\n icon: <Icon name=\"Key\" />,\n content: <Suspense fallback={<ApiKeysPageSkeleton/>}>\n <ApiKeysPage mockApiKeys={props.mockApiKeys} mockMode={!!props.mockUser} />\n </Suspense>,\n }] as const : []),\n ...(shouldShowPaymentsTab ? [{\n title: t('Payments'),\n type: 'item',\n id: 'payments',\n icon: <Icon name=\"CreditCard\" />,\n content: <Suspense fallback={<PaymentsPageSkeleton/>}>\n <PaymentsPage\n mockMode={!!props.mockUser}\n allowPersonal={paymentsAvailability.userHasProducts}\n availableTeams={teamsWithProducts}\n />\n </Suspense>,\n }] as const : []),\n {\n title: t('Settings'),\n type: 'item',\n id: 'settings',\n icon: <Icon name=\"Settings\"/>,\n content: <SettingsPage mockMode={!!props.mockUser}/>,\n },\n ...(props.extraItems?.map(item => ({\n title: item.title,\n type: 'item',\n id: item.id,\n icon: (() => {\n const iconName = (item as any).iconName as keyof typeof iconMap | undefined;\n if (iconName) {\n return <Icon name={iconName}/>;\n } else if ((item as any).icon) {\n return (item as any).icon;\n }\n return null;\n })(),\n content: item.content,\n } as const)) || []),\n ...(teams.length > 0 || project.config.clientTeamCreationEnabled) ? [{\n title: t('Teams'),\n type: 'divider',\n }] as const : [],\n ...teams.map(team => ({\n title: <div className='flex gap-2 items-center w-full'>\n <TeamIcon team={team}/>\n <Typography className=\"max-w-[320px] md:w-[90%] truncate\">{team.displayName}</Typography>\n </div>,\n type: 'item',\n id: `team-${team.id}`,\n content: <Suspense fallback={<TeamPageSkeleton/>}>\n <TeamPage team={team}/>\n </Suspense>,\n } as const)),\n ...project.config.clientTeamCreationEnabled ? [{\n title: t('Create a team'),\n icon: <Icon name=\"CirclePlus\"/>,\n type: 'item',\n id: 'team-creation',\n content: <Suspense fallback={<TeamCreationSkeleton/>}>\n <TeamCreationPage mockMode={!!props.mockUser} />\n </Suspense>,\n }] as const : [],\n ] as const).filter((p) => p.type === 'divider' || (p as any).content )}\n title={t(\"Account Settings\")}\n />\n </div>\n </MaybeFullPage>\n );\n}\n\nfunction PageLayout(props: { children: React.ReactNode }) {\n return (\n <div className='flex flex-col gap-6'>\n {props.children}\n </div>\n );\n}\n\nfunction EmailsAndAuthPageSkeleton() {\n return <PageLayout>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n </PageLayout>;\n}\n\nfunction ActiveSessionsPageSkeleton() {\n return <PageLayout>\n <Skeleton className=\"h-6 w-48 mb-2\"/>\n <Skeleton className=\"h-4 w-full mb-4\"/>\n <Skeleton className=\"h-[200px] w-full mt-1 rounded-md\"/>\n </PageLayout>;\n}\n\nfunction ApiKeysPageSkeleton() {\n return <PageLayout>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-[200px] w-full mt-1 rounded-md\"/>\n </PageLayout>;\n}\n\nfunction PaymentsPageSkeleton() {\n return <PageLayout>\n <Skeleton className=\"h-6 w-48 mb-2\"/>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-[200px] w-full mt-1 rounded-md\"/>\n </PageLayout>;\n}\n\nfunction TeamPageSkeleton() {\n return <PageLayout>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-[200px] w-full mt-1 rounded-md\"/>\n </PageLayout>;\n}\n\nfunction TeamCreationSkeleton() {\n return <PageLayout>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n </PageLayout>;\n}\n\nfunction NotificationsPageSkeleton() {\n return <PageLayout>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n <Skeleton className=\"h-9 w-full mt-1\"/>\n </PageLayout>;\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-page.d.ts","names":[],"sources":["../../src/components-page/auth-page.tsx"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"auth-page.d.ts","names":[],"sources":["../../src/components-page/auth-page.tsx"],"mappings":";;;KA2BK,KAAA;EACH,gBAAA;EACA,QAAA;EACA,QAAA;EACA,IAAA;EACA,iBAAA;EACA,SAAA,GAAY,KAAA,CAAM,SAAA;EAClB,WAAA;IACE,MAAA;MACE,aAAA;MACA,iBAAA;MACA,cAAA;MACA,gBAAA;MACA,cAAA;QACE,EAAA;MAAA;IAAA;EAAA;AAAA;AAAA,iBAWQ,QAAA,CAAS,KAAA,EAAO,KAAA,GAAK,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -2,17 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
const require_chunk = require('../chunk-BE-pF4vm.js');
|
|
5
|
+
let _hexclave_shared_dist_utils_errors = require("@hexclave/shared/dist/utils/errors");
|
|
5
6
|
let _hexclave_shared_dist_utils_promises = require("@hexclave/shared/dist/utils/promises");
|
|
6
7
|
let _hexclave_ui = require("@hexclave/ui");
|
|
7
8
|
let react = require("react");
|
|
8
9
|
let ___index_js = require("../index.js");
|
|
9
|
-
let ___components_elements_maybe_full_page_js = require("../components/elements/maybe-full-page.js");
|
|
10
10
|
let ___lib_translations_js = require("../lib/translations.js");
|
|
11
11
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
12
|
+
let _hexclave_shared = require("@hexclave/shared");
|
|
13
|
+
let ___components_elements_maybe_full_page_js = require("../components/elements/maybe-full-page.js");
|
|
14
|
+
let _hexclave_shared_dist_utils_react = require("@hexclave/shared/dist/utils/react");
|
|
12
15
|
let ___components_credential_sign_in_js = require("../components/credential-sign-in.js");
|
|
13
16
|
let ___components_credential_sign_up_js = require("../components/credential-sign-up.js");
|
|
14
17
|
let ___components_elements_separator_with_text_js = require("../components/elements/separator-with-text.js");
|
|
15
18
|
let ___components_link_js = require("../components/link.js");
|
|
19
|
+
let ___components_message_cards_known_error_message_card_js = require("../components/message-cards/known-error-message-card.js");
|
|
20
|
+
let ___components_message_cards_message_card_js = require("../components/message-cards/message-card.js");
|
|
16
21
|
let ___components_magic_link_sign_in_js = require("../components/magic-link-sign-in.js");
|
|
17
22
|
let ___components_message_cards_predefined_message_card_js = require("../components/message-cards/predefined-message-card.js");
|
|
18
23
|
let ___components_oauth_button_group_js = require("../components/oauth-button-group.js");
|
|
@@ -49,16 +54,56 @@ function Fallback(props) {
|
|
|
49
54
|
})
|
|
50
55
|
});
|
|
51
56
|
}
|
|
57
|
+
function AutomaticRedirect(props) {
|
|
58
|
+
const hexclaveApp = (0, ___index_js.useStackApp)();
|
|
59
|
+
const { t } = (0, ___lib_translations_js.useTranslation)();
|
|
60
|
+
const redirectResult = (0, _hexclave_shared_dist_utils_react.use)((0, react.useMemo)(async () => {
|
|
61
|
+
try {
|
|
62
|
+
await (props.isRestricted ? hexclaveApp.redirectToOnboarding({ replace: true }) : props.type === "sign-in" ? hexclaveApp.redirectToAfterSignIn({ replace: true }) : hexclaveApp.redirectToAfterSignUp({ replace: true }));
|
|
63
|
+
return { status: "success" };
|
|
64
|
+
} catch (e) {
|
|
65
|
+
if (_hexclave_shared.KnownError.isKnownError(e)) return {
|
|
66
|
+
status: "known-error",
|
|
67
|
+
error: e
|
|
68
|
+
};
|
|
69
|
+
(0, _hexclave_shared_dist_utils_errors.captureError)("<AuthPage automaticRedirect />", e);
|
|
70
|
+
return { status: "unknown-error" };
|
|
71
|
+
}
|
|
72
|
+
}, [
|
|
73
|
+
hexclaveApp,
|
|
74
|
+
props.isRestricted,
|
|
75
|
+
props.type
|
|
76
|
+
]));
|
|
77
|
+
if (redirectResult.status === "known-error") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(___components_message_cards_known_error_message_card_js.KnownErrorMessageCard, {
|
|
78
|
+
error: redirectResult.error,
|
|
79
|
+
fullPage: props.fullPage
|
|
80
|
+
});
|
|
81
|
+
if (redirectResult.status === "unknown-error") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(___components_message_cards_predefined_message_card_js.PredefinedMessageCard, {
|
|
82
|
+
type: "unknownError",
|
|
83
|
+
fullPage: props.fullPage
|
|
84
|
+
});
|
|
85
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(___components_message_cards_message_card_js.MessageCard, {
|
|
86
|
+
title: t("Redirecting..."),
|
|
87
|
+
fullPage: props.fullPage
|
|
88
|
+
});
|
|
89
|
+
}
|
|
52
90
|
function Inner(props) {
|
|
53
|
-
const
|
|
91
|
+
const hexclaveApp = (0, ___index_js.useStackApp)();
|
|
54
92
|
const user = (0, ___index_js.useUser)({ includeRestricted: true });
|
|
55
|
-
const projectFromHook =
|
|
93
|
+
const projectFromHook = hexclaveApp.useProject();
|
|
56
94
|
const project = props.mockProject || projectFromHook;
|
|
57
95
|
const { t } = (0, ___lib_translations_js.useTranslation)();
|
|
58
|
-
if (props.automaticRedirect && user && !props.mockProject) {
|
|
59
|
-
(0,
|
|
60
|
-
|
|
61
|
-
|
|
96
|
+
if (props.automaticRedirect && user && !props.mockProject) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react.Suspense, {
|
|
97
|
+
fallback: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(___components_message_cards_message_card_js.MessageCard, {
|
|
98
|
+
title: t("Redirecting..."),
|
|
99
|
+
fullPage: props.fullPage
|
|
100
|
+
}),
|
|
101
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AutomaticRedirect, {
|
|
102
|
+
fullPage: props.fullPage,
|
|
103
|
+
isRestricted: user.isRestricted,
|
|
104
|
+
type: props.type
|
|
105
|
+
})
|
|
106
|
+
});
|
|
62
107
|
if (user && !props.mockProject && !props.automaticRedirect) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(___components_message_cards_predefined_message_card_js.PredefinedMessageCard, {
|
|
63
108
|
type: "signedIn",
|
|
64
109
|
fullPage: props.fullPage
|
|
@@ -89,9 +134,9 @@ function Inner(props) {
|
|
|
89
134
|
t("Don't have an account?"),
|
|
90
135
|
" ",
|
|
91
136
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(___components_link_js.StyledLink, {
|
|
92
|
-
href:
|
|
137
|
+
href: hexclaveApp.urls.signUp,
|
|
93
138
|
onClick: (e) => {
|
|
94
|
-
(0, _hexclave_shared_dist_utils_promises.runAsynchronously)(
|
|
139
|
+
(0, _hexclave_shared_dist_utils_promises.runAsynchronously)(hexclaveApp.redirectToSignUp());
|
|
95
140
|
e.preventDefault();
|
|
96
141
|
},
|
|
97
142
|
children: t("Sign up")
|
|
@@ -100,9 +145,9 @@ function Inner(props) {
|
|
|
100
145
|
t("Already have an account?"),
|
|
101
146
|
" ",
|
|
102
147
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(___components_link_js.StyledLink, {
|
|
103
|
-
href:
|
|
148
|
+
href: hexclaveApp.urls.signIn,
|
|
104
149
|
onClick: (e) => {
|
|
105
|
-
(0, _hexclave_shared_dist_utils_promises.runAsynchronously)(
|
|
150
|
+
(0, _hexclave_shared_dist_utils_promises.runAsynchronously)(hexclaveApp.redirectToSignIn());
|
|
106
151
|
e.preventDefault();
|
|
107
152
|
},
|
|
108
153
|
children: t("Sign in")
|