@stackframe/stack 2.4.28 → 2.5.1
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/CHANGELOG.md +23 -0
- package/dist/components/credential-sign-in-form.d.mts +5 -0
- package/dist/components/credential-sign-in-form.d.ts +5 -0
- package/dist/components/{credential-sign-in.js → credential-sign-in-form.js} +33 -23
- package/dist/components/credential-sign-in-form.js.map +1 -0
- package/dist/components/credential-sign-up-form.d.mts +5 -0
- package/dist/components/credential-sign-up-form.d.ts +5 -0
- package/dist/components/{credential-sign-up.js → credential-sign-up-form.js} +34 -24
- package/dist/components/credential-sign-up-form.js.map +1 -0
- package/dist/components/{form-warning.d.mts → elements/form-warning.d.mts} +1 -1
- package/dist/components/{form-warning.d.ts → elements/form-warning.d.ts} +1 -1
- package/dist/components/{form-warning.js → elements/form-warning.js} +7 -4
- package/dist/components/elements/form-warning.js.map +1 -0
- package/dist/components/{maybe-full-page.d.mts → elements/maybe-full-page.d.mts} +3 -3
- package/dist/components/{maybe-full-page.d.ts → elements/maybe-full-page.d.ts} +3 -3
- package/dist/components/{maybe-full-page.js → elements/maybe-full-page.js} +11 -10
- package/dist/components/elements/maybe-full-page.js.map +1 -0
- package/dist/components/{separator-with-text.d.mts → elements/separator-with-text.d.mts} +1 -1
- package/dist/components/{separator-with-text.d.ts → elements/separator-with-text.d.ts} +1 -1
- package/dist/components/{separator-with-text.js → elements/separator-with-text.js} +11 -7
- package/dist/components/elements/separator-with-text.js.map +1 -0
- package/dist/components/elements/ssr-layout-effect.d.mts +7 -0
- package/dist/components/elements/ssr-layout-effect.d.ts +7 -0
- package/dist/{joy.js → components/elements/ssr-layout-effect.js} +17 -8
- package/dist/components/elements/ssr-layout-effect.js.map +1 -0
- package/dist/components/{user-avatar.d.mts → elements/user-avatar.d.mts} +2 -2
- package/dist/components/{user-avatar.d.ts → elements/user-avatar.d.ts} +2 -2
- package/dist/components/elements/user-avatar.js +40 -0
- package/dist/components/elements/user-avatar.js.map +1 -0
- package/dist/components/{forgot-password.d.mts → forgot-password-form.d.mts} +2 -2
- package/dist/components/{forgot-password.d.ts → forgot-password-form.d.ts} +2 -2
- package/dist/components/{forgot-password.js → forgot-password-form.js} +28 -24
- package/dist/components/forgot-password-form.js.map +1 -0
- package/dist/components/magic-link-sign-in-form.d.mts +5 -0
- package/dist/components/magic-link-sign-in-form.d.ts +5 -0
- package/dist/components/{magic-link-sign-in.js → magic-link-sign-in-form.js} +30 -20
- package/dist/components/magic-link-sign-in-form.js.map +1 -0
- package/dist/components/message-cards/known-error-message-card.d.mts +1 -1
- package/dist/components/message-cards/known-error-message-card.d.ts +1 -1
- package/dist/components/message-cards/known-error-message-card.js +10 -16
- package/dist/components/message-cards/known-error-message-card.js.map +1 -1
- package/dist/components/message-cards/message-card.d.mts +3 -3
- package/dist/components/message-cards/message-card.d.ts +3 -3
- package/dist/components/message-cards/message-card.js +11 -17
- package/dist/components/message-cards/message-card.js.map +1 -1
- package/dist/components/message-cards/predefined-message-card.d.mts +1 -1
- package/dist/components/message-cards/predefined-message-card.d.ts +1 -1
- package/dist/components/message-cards/predefined-message-card.js +9 -15
- package/dist/components/message-cards/predefined-message-card.js.map +1 -1
- package/dist/components/{oauth-group.d.mts → oauth-button-group.d.mts} +2 -2
- package/dist/components/{oauth-group.d.ts → oauth-button-group.d.ts} +2 -2
- package/dist/components/oauth-button-group.js +43 -0
- package/dist/components/oauth-button-group.js.map +1 -0
- package/dist/components/oauth-button.d.mts +1 -1
- package/dist/components/oauth-button.d.ts +1 -1
- package/dist/components/oauth-button.js +40 -7
- package/dist/components/oauth-button.js.map +1 -1
- package/dist/components/{password-reset-inner.d.mts → password-reset-form.d.mts} +2 -2
- package/dist/components/{password-reset-inner.d.ts → password-reset-form.d.ts} +2 -2
- package/dist/components/{password-reset-inner.js → password-reset-form.js} +35 -30
- package/dist/components/password-reset-form.js.map +1 -0
- package/dist/components/selected-team-switcher.d.mts +12 -2
- package/dist/components/selected-team-switcher.d.ts +12 -2
- package/dist/components/selected-team-switcher.js +43 -35
- package/dist/components/selected-team-switcher.js.map +1 -1
- package/dist/components/user-button.d.mts +3 -3
- package/dist/components/user-button.d.ts +3 -3
- package/dist/components/user-button.js +32 -59
- package/dist/components/user-button.js.map +1 -1
- package/dist/components-page/account-settings.d.mts +1 -1
- package/dist/components-page/account-settings.d.ts +1 -1
- package/dist/components-page/account-settings.js +39 -45
- package/dist/components-page/account-settings.js.map +1 -1
- package/dist/components-page/auth-page.d.mts +1 -1
- package/dist/components-page/auth-page.d.ts +1 -1
- package/dist/components-page/auth-page.js +31 -36
- package/dist/components-page/auth-page.js.map +1 -1
- package/dist/components-page/email-verification.d.mts +1 -1
- package/dist/components-page/email-verification.d.ts +1 -1
- package/dist/components-page/email-verification.js +13 -19
- package/dist/components-page/email-verification.js.map +1 -1
- package/dist/components-page/error-page.d.mts +1 -1
- package/dist/components-page/error-page.d.ts +1 -1
- package/dist/components-page/error-page.js +15 -20
- package/dist/components-page/error-page.js.map +1 -1
- package/dist/components-page/forgot-password.d.mts +1 -1
- package/dist/components-page/forgot-password.d.ts +1 -1
- package/dist/components-page/forgot-password.js +17 -23
- package/dist/components-page/forgot-password.js.map +1 -1
- package/dist/components-page/magic-link-callback.d.mts +1 -1
- package/dist/components-page/magic-link-callback.d.ts +1 -1
- package/dist/components-page/magic-link-callback.js +14 -20
- package/dist/components-page/magic-link-callback.js.map +1 -1
- package/dist/components-page/oauth-callback.d.mts +1 -1
- package/dist/components-page/oauth-callback.d.ts +1 -1
- package/dist/components-page/oauth-callback.js +10 -16
- package/dist/components-page/oauth-callback.js.map +1 -1
- package/dist/components-page/password-reset.d.mts +1 -1
- package/dist/components-page/password-reset.d.ts +1 -1
- package/dist/components-page/password-reset.js +15 -11
- package/dist/components-page/password-reset.js.map +1 -1
- package/dist/components-page/sign-in.d.mts +1 -1
- package/dist/components-page/sign-in.d.ts +1 -1
- package/dist/components-page/sign-in.js +7 -13
- package/dist/components-page/sign-in.js.map +1 -1
- package/dist/components-page/sign-out.d.mts +1 -1
- package/dist/components-page/sign-out.d.ts +1 -1
- package/dist/components-page/sign-out.js +7 -13
- package/dist/components-page/sign-out.js.map +1 -1
- package/dist/components-page/sign-up.d.mts +1 -1
- package/dist/components-page/sign-up.d.ts +1 -1
- package/dist/components-page/sign-up.js +7 -13
- package/dist/components-page/sign-up.js.map +1 -1
- package/dist/components-page/stack-handler.js +22 -32
- package/dist/components-page/stack-handler.js.map +1 -1
- package/dist/esm/components/{credential-sign-in.js → credential-sign-in-form.js} +23 -17
- package/dist/esm/components/credential-sign-in-form.js.map +1 -0
- package/dist/esm/components/{credential-sign-up.js → credential-sign-up-form.js} +23 -17
- package/dist/esm/components/credential-sign-up-form.js.map +1 -0
- package/dist/esm/components/elements/form-warning.js +15 -0
- package/dist/esm/components/elements/form-warning.js.map +1 -0
- package/dist/esm/components/{maybe-full-page.js → elements/maybe-full-page.js} +7 -10
- package/dist/esm/components/elements/maybe-full-page.js.map +1 -0
- package/dist/esm/components/elements/separator-with-text.js +17 -0
- package/dist/esm/components/elements/separator-with-text.js.map +1 -0
- package/dist/esm/components/elements/ssr-layout-effect.js +16 -0
- package/dist/esm/components/elements/ssr-layout-effect.js.map +1 -0
- package/dist/esm/components/elements/user-avatar.js +15 -0
- package/dist/esm/components/elements/user-avatar.js.map +1 -0
- package/dist/esm/components/{forgot-password.js → forgot-password-form.js} +19 -19
- package/dist/esm/components/forgot-password-form.js.map +1 -0
- package/dist/esm/components/{magic-link-sign-in.js → magic-link-sign-in-form.js} +21 -15
- package/dist/esm/components/magic-link-sign-in-form.js.map +1 -0
- package/dist/esm/components/message-cards/known-error-message-card.js +5 -5
- package/dist/esm/components/message-cards/known-error-message-card.js.map +1 -1
- package/dist/esm/components/message-cards/message-card.js +4 -4
- package/dist/esm/components/message-cards/message-card.js.map +1 -1
- package/dist/esm/components/message-cards/predefined-message-card.js +4 -4
- package/dist/esm/components/message-cards/predefined-message-card.js.map +1 -1
- package/dist/esm/components/oauth-button-group.js +19 -0
- package/dist/esm/components/oauth-button-group.js.map +1 -0
- package/dist/esm/components/oauth-button.js +26 -7
- package/dist/esm/components/oauth-button.js.map +1 -1
- package/dist/esm/components/{password-reset-inner.js → password-reset-form.js} +28 -23
- package/dist/esm/components/password-reset-form.js.map +1 -0
- package/dist/esm/components/selected-team-switcher.js +50 -45
- package/dist/esm/components/selected-team-switcher.js.map +1 -1
- package/dist/esm/components/user-button.js +23 -52
- package/dist/esm/components/user-button.js.map +1 -1
- package/dist/esm/components-page/account-settings.js +29 -29
- package/dist/esm/components-page/account-settings.js.map +1 -1
- package/dist/esm/components-page/auth-page.js +25 -24
- package/dist/esm/components-page/auth-page.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 +8 -7
- package/dist/esm/components-page/error-page.js.map +1 -1
- package/dist/esm/components-page/forgot-password.js +10 -10
- package/dist/esm/components-page/forgot-password.js.map +1 -1
- package/dist/esm/components-page/magic-link-callback.js +6 -6
- package/dist/esm/components-page/magic-link-callback.js.map +1 -1
- package/dist/esm/components-page/oauth-callback.js +5 -5
- package/dist/esm/components-page/oauth-callback.js.map +1 -1
- package/dist/esm/components-page/password-reset.js +11 -11
- package/dist/esm/components-page/password-reset.js.map +1 -1
- package/dist/esm/components-page/sign-in.js +2 -2
- package/dist/esm/components-page/sign-in.js.map +1 -1
- package/dist/esm/components-page/sign-out.js +3 -3
- package/dist/esm/components-page/sign-out.js.map +1 -1
- package/dist/esm/components-page/sign-up.js +2 -2
- package/dist/esm/components-page/sign-up.js.map +1 -1
- package/dist/esm/components-page/stack-handler.js +11 -11
- package/dist/esm/components-page/stack-handler.js.map +1 -1
- package/dist/esm/generated/global-css.js +6 -0
- package/dist/esm/generated/global-css.js.map +1 -0
- package/dist/esm/index.js +33 -40
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/stack-app.js +3 -6
- package/dist/esm/lib/stack-app.js.map +1 -1
- package/dist/esm/providers/theme-provider.js +43 -4
- package/dist/esm/providers/theme-provider.js.map +1 -1
- package/dist/esm/utils/browser-script.js +2 -1
- package/dist/esm/utils/browser-script.js.map +1 -1
- package/dist/esm/utils/constants.js +43 -12
- package/dist/esm/utils/constants.js.map +1 -1
- package/dist/generated/global-css.d.mts +3 -0
- package/dist/generated/global-css.d.ts +3 -0
- package/dist/generated/global-css.js +31 -0
- package/dist/generated/global-css.js.map +1 -0
- package/dist/index.d.mts +16 -30
- package/dist/index.d.ts +16 -30
- package/dist/index.js +33 -45
- package/dist/index.js.map +1 -1
- package/dist/lib/stack-app.d.mts +4 -4
- package/dist/lib/stack-app.d.ts +4 -4
- package/dist/lib/stack-app.js +3 -6
- package/dist/lib/stack-app.js.map +1 -1
- package/dist/providers/stack-provider-client.d.mts +3 -3
- package/dist/providers/stack-provider-client.d.ts +3 -3
- package/dist/providers/stack-provider.d.mts +2 -2
- package/dist/providers/stack-provider.d.ts +2 -2
- package/dist/providers/styled-components-registry.d.mts +2 -2
- package/dist/providers/styled-components-registry.d.ts +2 -2
- package/dist/providers/theme-provider.d.mts +34 -17
- package/dist/providers/theme-provider.d.ts +34 -17
- package/dist/providers/theme-provider.js +43 -4
- package/dist/providers/theme-provider.js.map +1 -1
- package/dist/utils/browser-script.js +2 -1
- package/dist/utils/browser-script.js.map +1 -1
- package/dist/utils/constants.d.mts +43 -12
- package/dist/utils/constants.d.ts +43 -12
- package/dist/utils/constants.js +44 -13
- package/dist/utils/constants.js.map +1 -1
- package/package.json +25 -32
- package/dist/components/credential-sign-in.d.mts +0 -5
- package/dist/components/credential-sign-in.d.ts +0 -5
- package/dist/components/credential-sign-in.js.map +0 -1
- package/dist/components/credential-sign-up.d.mts +0 -5
- package/dist/components/credential-sign-up.d.ts +0 -5
- package/dist/components/credential-sign-up.js.map +0 -1
- package/dist/components/forgot-password.js.map +0 -1
- package/dist/components/form-warning.js.map +0 -1
- package/dist/components/magic-link-sign-in.d.mts +0 -5
- package/dist/components/magic-link-sign-in.d.ts +0 -5
- package/dist/components/magic-link-sign-in.js.map +0 -1
- package/dist/components/maybe-full-page.js.map +0 -1
- package/dist/components/oauth-group.js +0 -49
- package/dist/components/oauth-group.js.map +0 -1
- package/dist/components/password-field.d.mts +0 -5
- package/dist/components/password-field.d.ts +0 -5
- package/dist/components/password-field.js +0 -111
- package/dist/components/password-field.js.map +0 -1
- package/dist/components/password-reset-inner.js.map +0 -1
- package/dist/components/separator-with-text.js.map +0 -1
- package/dist/components/user-avatar.js +0 -56
- package/dist/components/user-avatar.js.map +0 -1
- package/dist/components-core/avatar.d.mts +0 -8
- package/dist/components-core/avatar.d.ts +0 -8
- package/dist/components-core/avatar.js +0 -94
- package/dist/components-core/avatar.js.map +0 -1
- package/dist/components-core/button.d.mts +0 -13
- package/dist/components-core/button.d.ts +0 -13
- package/dist/components-core/button.js +0 -217
- package/dist/components-core/button.js.map +0 -1
- package/dist/components-core/card.d.mts +0 -8
- package/dist/components-core/card.d.ts +0 -8
- package/dist/components-core/card.js +0 -89
- package/dist/components-core/card.js.map +0 -1
- package/dist/components-core/collapsible.d.mts +0 -8
- package/dist/components-core/collapsible.d.ts +0 -8
- package/dist/components-core/collapsible.js +0 -50
- package/dist/components-core/collapsible.js.map +0 -1
- package/dist/components-core/container.d.mts +0 -8
- package/dist/components-core/container.d.ts +0 -8
- package/dist/components-core/container.js +0 -70
- package/dist/components-core/container.js.map +0 -1
- package/dist/components-core/dropdown.d.mts +0 -15
- package/dist/components-core/dropdown.d.ts +0 -15
- package/dist/components-core/dropdown.js +0 -149
- package/dist/components-core/dropdown.js.map +0 -1
- package/dist/components-core/index.d.mts +0 -59
- package/dist/components-core/index.d.ts +0 -59
- package/dist/components-core/index.js +0 -148
- package/dist/components-core/index.js.map +0 -1
- package/dist/components-core/input.d.mts +0 -6
- package/dist/components-core/input.d.ts +0 -6
- package/dist/components-core/input.js +0 -119
- package/dist/components-core/input.js.map +0 -1
- package/dist/components-core/label.d.mts +0 -6
- package/dist/components-core/label.d.ts +0 -6
- package/dist/components-core/label.js +0 -72
- package/dist/components-core/label.js.map +0 -1
- package/dist/components-core/link.d.mts +0 -10
- package/dist/components-core/link.d.ts +0 -10
- package/dist/components-core/link.js +0 -73
- package/dist/components-core/link.js.map +0 -1
- package/dist/components-core/popover.d.mts +0 -8
- package/dist/components-core/popover.d.ts +0 -8
- package/dist/components-core/popover.js +0 -81
- package/dist/components-core/popover.js.map +0 -1
- package/dist/components-core/separator.d.mts +0 -6
- package/dist/components-core/separator.d.ts +0 -6
- package/dist/components-core/separator.js +0 -71
- package/dist/components-core/separator.js.map +0 -1
- package/dist/components-core/skeleton.d.mts +0 -7
- package/dist/components-core/skeleton.d.ts +0 -7
- package/dist/components-core/skeleton.js +0 -87
- package/dist/components-core/skeleton.js.map +0 -1
- package/dist/components-core/tabs.d.mts +0 -9
- package/dist/components-core/tabs.d.ts +0 -9
- package/dist/components-core/tabs.js +0 -124
- package/dist/components-core/tabs.js.map +0 -1
- package/dist/components-core/text.d.mts +0 -10
- package/dist/components-core/text.d.ts +0 -10
- package/dist/components-core/text.js +0 -98
- package/dist/components-core/text.js.map +0 -1
- package/dist/components-core-joy/button.d.mts +0 -6
- package/dist/components-core-joy/button.d.ts +0 -6
- package/dist/components-core-joy/button.js +0 -88
- package/dist/components-core-joy/button.js.map +0 -1
- package/dist/components-core-joy/input.d.mts +0 -5
- package/dist/components-core-joy/input.d.ts +0 -5
- package/dist/components-core-joy/input.js +0 -53
- package/dist/components-core-joy/input.js.map +0 -1
- package/dist/components-core-joy/separator.d.mts +0 -6
- package/dist/components-core-joy/separator.d.ts +0 -6
- package/dist/components-core-joy/separator.js +0 -52
- package/dist/components-core-joy/separator.js.map +0 -1
- package/dist/components-core-joy/tabs.d.mts +0 -9
- package/dist/components-core-joy/tabs.d.ts +0 -9
- package/dist/components-core-joy/tabs.js +0 -67
- package/dist/components-core-joy/tabs.js.map +0 -1
- package/dist/components-core-joy/text.d.mts +0 -9
- package/dist/components-core-joy/text.d.ts +0 -9
- package/dist/components-core-joy/text.js +0 -70
- package/dist/components-core-joy/text.js.map +0 -1
- package/dist/esm/components/credential-sign-in.js.map +0 -1
- package/dist/esm/components/credential-sign-up.js.map +0 -1
- package/dist/esm/components/forgot-password.js.map +0 -1
- package/dist/esm/components/form-warning.js +0 -16
- package/dist/esm/components/form-warning.js.map +0 -1
- package/dist/esm/components/magic-link-sign-in.js.map +0 -1
- package/dist/esm/components/maybe-full-page.js.map +0 -1
- package/dist/esm/components/oauth-group.js +0 -19
- package/dist/esm/components/oauth-group.js.map +0 -1
- package/dist/esm/components/password-field.js +0 -81
- package/dist/esm/components/password-field.js.map +0 -1
- package/dist/esm/components/password-reset-inner.js.map +0 -1
- package/dist/esm/components/separator-with-text.js +0 -17
- package/dist/esm/components/separator-with-text.js.map +0 -1
- package/dist/esm/components/user-avatar.js +0 -25
- package/dist/esm/components/user-avatar.js.map +0 -1
- package/dist/esm/components-core/avatar.js +0 -57
- package/dist/esm/components-core/avatar.js.map +0 -1
- package/dist/esm/components-core/button.js +0 -183
- package/dist/esm/components-core/button.js.map +0 -1
- package/dist/esm/components-core/card.js +0 -52
- package/dist/esm/components-core/card.js.map +0 -1
- package/dist/esm/components-core/collapsible.js +0 -14
- package/dist/esm/components-core/collapsible.js.map +0 -1
- package/dist/esm/components-core/container.js +0 -36
- package/dist/esm/components-core/container.js.map +0 -1
- package/dist/esm/components-core/dropdown.js +0 -110
- package/dist/esm/components-core/dropdown.js.map +0 -1
- package/dist/esm/components-core/index.js +0 -94
- package/dist/esm/components-core/index.js.map +0 -1
- package/dist/esm/components-core/input.js +0 -85
- package/dist/esm/components-core/input.js.map +0 -1
- package/dist/esm/components-core/label.js +0 -38
- package/dist/esm/components-core/label.js.map +0 -1
- package/dist/esm/components-core/link.js +0 -39
- package/dist/esm/components-core/link.js.map +0 -1
- package/dist/esm/components-core/popover.js +0 -44
- package/dist/esm/components-core/popover.js.map +0 -1
- package/dist/esm/components-core/separator.js +0 -37
- package/dist/esm/components-core/separator.js.map +0 -1
- package/dist/esm/components-core/skeleton.js +0 -53
- package/dist/esm/components-core/skeleton.js.map +0 -1
- package/dist/esm/components-core/tabs.js +0 -86
- package/dist/esm/components-core/tabs.js.map +0 -1
- package/dist/esm/components-core/text.js +0 -64
- package/dist/esm/components-core/text.js.map +0 -1
- package/dist/esm/components-core-joy/button.js +0 -54
- package/dist/esm/components-core-joy/button.js.map +0 -1
- package/dist/esm/components-core-joy/input.js +0 -19
- package/dist/esm/components-core-joy/input.js.map +0 -1
- package/dist/esm/components-core-joy/separator.js +0 -18
- package/dist/esm/components-core-joy/separator.js.map +0 -1
- package/dist/esm/components-core-joy/tabs.js +0 -30
- package/dist/esm/components-core-joy/tabs.js.map +0 -1
- package/dist/esm/components-core-joy/text.js +0 -36
- package/dist/esm/components-core-joy/text.js.map +0 -1
- package/dist/esm/joy.js +0 -6
- package/dist/esm/joy.js.map +0 -1
- package/dist/esm/providers/component-provider.js +0 -77
- package/dist/esm/providers/component-provider.js.map +0 -1
- package/dist/esm/providers/design-provider.js +0 -37
- package/dist/esm/providers/design-provider.js.map +0 -1
- package/dist/esm/providers/joy-provider.js +0 -36
- package/dist/esm/providers/joy-provider.js.map +0 -1
- package/dist/joy.d.mts +0 -16
- package/dist/joy.d.ts +0 -16
- package/dist/joy.js.map +0 -1
- package/dist/providers/component-provider.d.mts +0 -113
- package/dist/providers/component-provider.d.ts +0 -113
- package/dist/providers/component-provider.js +0 -96
- package/dist/providers/component-provider.js.map +0 -1
- package/dist/providers/design-provider.d.mts +0 -34
- package/dist/providers/design-provider.d.ts +0 -34
- package/dist/providers/design-provider.js +0 -62
- package/dist/providers/design-provider.js.map +0 -1
- package/dist/providers/joy-provider.d.mts +0 -36
- package/dist/providers/joy-provider.d.ts +0 -36
- package/dist/providers/joy-provider.js +0 -61
- package/dist/providers/joy-provider.js.map +0 -1
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use client";
|
|
3
3
|
|
|
4
|
-
// src/components/credential-sign-up.tsx
|
|
4
|
+
// src/components/credential-sign-up-form.tsx
|
|
5
5
|
import { useForm } from "react-hook-form";
|
|
6
6
|
import { yupResolver } from "@hookform/resolvers/yup";
|
|
7
7
|
import * as yup from "yup";
|
|
8
|
-
import
|
|
9
|
-
import FormWarningText from "./form-warning";
|
|
8
|
+
import { FormWarningText } from "./elements/form-warning";
|
|
10
9
|
import { useStackApp } from "..";
|
|
11
|
-
import { Label, Input, Button } from "../components-core";
|
|
12
10
|
import { runAsynchronouslyWithAlert } from "@stackframe/stack-shared/dist/utils/promises";
|
|
13
11
|
import { getPasswordError } from "@stackframe/stack-shared/dist/helpers/password";
|
|
12
|
+
import { Button, Input, Label, PasswordInput } from "@stackframe/stack-ui";
|
|
13
|
+
import { useState } from "react";
|
|
14
14
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
15
15
|
var schema = yup.object().shape({
|
|
16
16
|
email: yup.string().email("Please enter a valid email").required("Please enter your email"),
|
|
@@ -27,24 +27,30 @@ var schema = yup.object().shape({
|
|
|
27
27
|
}),
|
|
28
28
|
passwordRepeat: yup.string().nullable().oneOf([yup.ref("password"), null], "Passwords do not match").required("Please repeat your password")
|
|
29
29
|
});
|
|
30
|
-
function
|
|
30
|
+
function CredentialSignUpForm() {
|
|
31
31
|
const { register, handleSubmit, setError, formState: { errors }, clearErrors } = useForm({
|
|
32
32
|
resolver: yupResolver(schema)
|
|
33
33
|
});
|
|
34
34
|
const app = useStackApp();
|
|
35
|
+
const [loading, setLoading] = useState(false);
|
|
35
36
|
const onSubmit = async (data) => {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
setLoading(true);
|
|
38
|
+
try {
|
|
39
|
+
const { email, password } = data;
|
|
40
|
+
const error = await app.signUpWithCredential({ email, password });
|
|
41
|
+
setError("email", { type: "manual", message: error?.message });
|
|
42
|
+
} finally {
|
|
43
|
+
setLoading(false);
|
|
44
|
+
}
|
|
39
45
|
};
|
|
40
46
|
return /* @__PURE__ */ jsxs(
|
|
41
47
|
"form",
|
|
42
48
|
{
|
|
43
|
-
|
|
49
|
+
className: "flex flex-col items-stretch stack-scope",
|
|
44
50
|
onSubmit: (e) => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e)),
|
|
45
51
|
noValidate: true,
|
|
46
52
|
children: [
|
|
47
|
-
/* @__PURE__ */ jsx(Label, { htmlFor: "email", children: "Email" }),
|
|
53
|
+
/* @__PURE__ */ jsx(Label, { htmlFor: "email", className: "mb-1", children: "Email" }),
|
|
48
54
|
/* @__PURE__ */ jsx(
|
|
49
55
|
Input,
|
|
50
56
|
{
|
|
@@ -54,9 +60,9 @@ function CredentialSignUp() {
|
|
|
54
60
|
}
|
|
55
61
|
),
|
|
56
62
|
/* @__PURE__ */ jsx(FormWarningText, { text: errors.email?.message?.toString() }),
|
|
57
|
-
/* @__PURE__ */ jsx(Label, { htmlFor: "password",
|
|
63
|
+
/* @__PURE__ */ jsx(Label, { htmlFor: "password", className: "mt-4 mb-1", children: "Password" }),
|
|
58
64
|
/* @__PURE__ */ jsx(
|
|
59
|
-
|
|
65
|
+
PasswordInput,
|
|
60
66
|
{
|
|
61
67
|
id: "password",
|
|
62
68
|
...register("password"),
|
|
@@ -67,9 +73,9 @@ function CredentialSignUp() {
|
|
|
67
73
|
}
|
|
68
74
|
),
|
|
69
75
|
/* @__PURE__ */ jsx(FormWarningText, { text: errors.password?.message?.toString() }),
|
|
70
|
-
/* @__PURE__ */ jsx(Label, { htmlFor: "repeat-password",
|
|
76
|
+
/* @__PURE__ */ jsx(Label, { htmlFor: "repeat-password", className: "mt-4 mb-1", children: "Repeat Password" }),
|
|
71
77
|
/* @__PURE__ */ jsx(
|
|
72
|
-
|
|
78
|
+
PasswordInput,
|
|
73
79
|
{
|
|
74
80
|
id: "repeat-password",
|
|
75
81
|
...register("passwordRepeat"),
|
|
@@ -80,12 +86,12 @@ function CredentialSignUp() {
|
|
|
80
86
|
}
|
|
81
87
|
),
|
|
82
88
|
/* @__PURE__ */ jsx(FormWarningText, { text: errors.passwordRepeat?.message?.toString() }),
|
|
83
|
-
/* @__PURE__ */ jsx(Button, { type: "submit",
|
|
89
|
+
/* @__PURE__ */ jsx(Button, { type: "submit", className: "mt-6", children: "Sign Up" })
|
|
84
90
|
]
|
|
85
91
|
}
|
|
86
92
|
);
|
|
87
93
|
}
|
|
88
94
|
export {
|
|
89
|
-
|
|
95
|
+
CredentialSignUpForm
|
|
90
96
|
};
|
|
91
|
-
//# sourceMappingURL=credential-sign-up.js.map
|
|
97
|
+
//# sourceMappingURL=credential-sign-up-form.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/credential-sign-up-form.tsx"],"sourcesContent":["'use client';\n\nimport { useForm } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as yup from \"yup\";\nimport { FormWarningText } from \"./elements/form-warning\";\nimport { useStackApp } from \"..\";\nimport { runAsynchronouslyWithAlert } from \"@stackframe/stack-shared/dist/utils/promises\";\nimport { getPasswordError } from \"@stackframe/stack-shared/dist/helpers/password\";\nimport { Button, Input, Label, PasswordInput } from \"@stackframe/stack-ui\";\nimport { useState } from \"react\";\n\nconst schema = yup.object().shape({\n email: yup.string().email('Please enter a valid email').required('Please enter your email'),\n password: yup.string().required('Please enter your password').test({\n name: 'is-valid-password',\n test: (value, ctx) => {\n const error = getPasswordError(value);\n if (error) {\n return ctx.createError({ message: error.message });\n } else {\n return true;\n }\n }\n }),\n passwordRepeat: yup.string().nullable().oneOf([yup.ref('password'), null], 'Passwords do not match').required('Please repeat your password')\n});\n\nexport function CredentialSignUpForm() {\n const { register, handleSubmit, setError, formState: { errors }, clearErrors } = useForm({\n resolver: yupResolver(schema)\n });\n const app = useStackApp();\n const [loading, setLoading] = useState(false);\n\n const onSubmit = async (data: yup.InferType<typeof schema>) => {\n setLoading(true);\n try {\n const { email, password } = data;\n const error = await app.signUpWithCredential({ email, password });\n setError('email', { type: 'manual', message: error?.message });\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <form \n className=\"flex flex-col items-stretch stack-scope\"\n onSubmit={e => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e))}\n noValidate\n >\n <Label htmlFor=\"email\" className=\"mb-1\">Email</Label>\n <Input\n id=\"email\"\n type=\"email\"\n {...register('email')}\n />\n <FormWarningText text={errors.email?.message?.toString()} />\n\n <Label htmlFor=\"password\" className=\"mt-4 mb-1\">Password</Label>\n <PasswordInput\n id=\"password\"\n {...register('password')}\n onChange={(e) => {\n clearErrors('password');\n clearErrors('passwordRepeat');\n }}\n />\n <FormWarningText text={errors.password?.message?.toString()} />\n \n <Label htmlFor=\"repeat-password\" className=\"mt-4 mb-1\">Repeat Password</Label>\n <PasswordInput\n id=\"repeat-password\"\n {...register('passwordRepeat')}\n onChange={(e) => {\n clearErrors('password');\n clearErrors('passwordRepeat');\n }}\n />\n <FormWarningText text={errors.passwordRepeat?.message?.toString()} />\n \n <Button type=\"submit\" className=\"mt-6\">\n Sign Up\n </Button>\n </form>\n );\n}\n"],"mappings":";;;AAEA,SAAS,eAAe;AACxB,SAAS,mBAAmB;AAC5B,YAAY,SAAS;AACrB,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAC5B,SAAS,kCAAkC;AAC3C,SAAS,wBAAwB;AACjC,SAAS,QAAQ,OAAO,OAAO,qBAAqB;AACpD,SAAS,gBAAgB;AAqCrB,SAKE,KALF;AAnCJ,IAAM,SAAa,WAAO,EAAE,MAAM;AAAA,EAChC,OAAW,WAAO,EAAE,MAAM,4BAA4B,EAAE,SAAS,yBAAyB;AAAA,EAC1F,UAAc,WAAO,EAAE,SAAS,4BAA4B,EAAE,KAAK;AAAA,IACjE,MAAM;AAAA,IACN,MAAM,CAAC,OAAO,QAAQ;AACpB,YAAM,QAAQ,iBAAiB,KAAK;AACpC,UAAI,OAAO;AACT,eAAO,IAAI,YAAY,EAAE,SAAS,MAAM,QAAQ,CAAC;AAAA,MACnD,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF,CAAC;AAAA,EACD,gBAAoB,WAAO,EAAE,SAAS,EAAE,MAAM,CAAK,QAAI,UAAU,GAAG,IAAI,GAAG,wBAAwB,EAAE,SAAS,6BAA6B;AAC7I,CAAC;AAEM,SAAS,uBAAuB;AACrC,QAAM,EAAE,UAAU,cAAc,UAAU,WAAW,EAAE,OAAO,GAAG,YAAY,IAAI,QAAQ;AAAA,IACvF,UAAU,YAAY,MAAM;AAAA,EAC9B,CAAC;AACD,QAAM,MAAM,YAAY;AACxB,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAE5C,QAAM,WAAW,OAAO,SAAuC;AAC7D,eAAW,IAAI;AACf,QAAI;AACF,YAAM,EAAE,OAAO,SAAS,IAAI;AAC5B,YAAM,QAAQ,MAAM,IAAI,qBAAqB,EAAE,OAAO,SAAS,CAAC;AAClE,eAAS,SAAS,EAAE,MAAM,UAAU,SAAS,OAAO,QAAQ,CAAC;AAAA,IAC7D,UAAE;AACA,iBAAW,KAAK;AAAA,IAClB;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,UAAU,OAAK,2BAA2B,aAAa,QAAQ,EAAE,CAAC,CAAC;AAAA,MACnE,YAAU;AAAA,MAEV;AAAA,4BAAC,SAAM,SAAQ,SAAQ,WAAU,QAAO,mBAAK;AAAA,QAC7C;AAAA,UAAC;AAAA;AAAA,YACC,IAAG;AAAA,YACH,MAAK;AAAA,YACJ,GAAG,SAAS,OAAO;AAAA;AAAA,QACtB;AAAA,QACA,oBAAC,mBAAgB,MAAM,OAAO,OAAO,SAAS,SAAS,GAAG;AAAA,QAE1D,oBAAC,SAAM,SAAQ,YAAW,WAAU,aAAY,sBAAQ;AAAA,QACxD;AAAA,UAAC;AAAA;AAAA,YACC,IAAG;AAAA,YACF,GAAG,SAAS,UAAU;AAAA,YACvB,UAAU,CAAC,MAAM;AACf,0BAAY,UAAU;AACtB,0BAAY,gBAAgB;AAAA,YAC9B;AAAA;AAAA,QACF;AAAA,QACA,oBAAC,mBAAgB,MAAM,OAAO,UAAU,SAAS,SAAS,GAAG;AAAA,QAE7D,oBAAC,SAAM,SAAQ,mBAAkB,WAAU,aAAY,6BAAe;AAAA,QACtE;AAAA,UAAC;AAAA;AAAA,YACC,IAAG;AAAA,YACF,GAAG,SAAS,gBAAgB;AAAA,YAC7B,UAAU,CAAC,MAAM;AACf,0BAAY,UAAU;AACtB,0BAAY,gBAAgB;AAAA,YAC9B;AAAA;AAAA,QACF;AAAA,QACA,oBAAC,mBAAgB,MAAM,OAAO,gBAAgB,SAAS,SAAS,GAAG;AAAA,QAEnE,oBAAC,UAAO,MAAK,UAAS,WAAU,QAAO,qBAEvC;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
|
|
4
|
+
// src/components/elements/form-warning.tsx
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
function FormWarningText({ text }) {
|
|
7
|
+
if (!text) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
return /* @__PURE__ */ jsx("div", { className: "text-red-500 text-sm mt-1", children: text });
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
FormWarningText
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=form-warning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/elements/form-warning.tsx"],"sourcesContent":["'use client';\n\nexport function FormWarningText({ text }: { text?: string }) {\n if (!text) {\n return null;\n }\n return (\n <div className=\"text-red-500 text-sm mt-1\">\n {text}\n </div>\n );\n}\n"],"mappings":";;;AAOI;AALG,SAAS,gBAAgB,EAAE,KAAK,GAAsB;AAC3D,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AACA,SACE,oBAAC,SAAI,WAAU,6BACZ,gBACH;AAEJ;","names":[]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use client";
|
|
3
3
|
|
|
4
|
-
// src/components/maybe-full-page.tsx
|
|
5
|
-
import { Container } from "
|
|
6
|
-
import {
|
|
4
|
+
// src/components/elements/maybe-full-page.tsx
|
|
5
|
+
import { Container } from "@stackframe/stack-ui";
|
|
6
|
+
import { useId } from "react";
|
|
7
|
+
import { SsrScript } from "./ssr-layout-effect";
|
|
7
8
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
8
9
|
function MaybeFullPage({
|
|
9
10
|
children,
|
|
@@ -20,9 +21,6 @@ function MaybeFullPage({
|
|
|
20
21
|
const offset = el.getBoundingClientRect().top + document.documentElement.scrollTop;
|
|
21
22
|
el.style.minHeight = \`calc(100vh - \${offset}px)\`;
|
|
22
23
|
})(${JSON.stringify([id])})`;
|
|
23
|
-
useEffect(() => {
|
|
24
|
-
(0, eval)(scriptString);
|
|
25
|
-
}, []);
|
|
26
24
|
if (fullPage) {
|
|
27
25
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
28
26
|
/* @__PURE__ */ jsx(
|
|
@@ -37,18 +35,17 @@ function MaybeFullPage({
|
|
|
37
35
|
alignItems: "center",
|
|
38
36
|
justifyContent: "center"
|
|
39
37
|
},
|
|
38
|
+
className: "stack-scope",
|
|
40
39
|
children: /* @__PURE__ */ jsx(Container, { size: 380, style: { padding: "1rem 1rem" }, children })
|
|
41
40
|
}
|
|
42
41
|
),
|
|
43
|
-
/* @__PURE__ */ jsx(
|
|
44
|
-
__html: scriptString
|
|
45
|
-
} })
|
|
42
|
+
/* @__PURE__ */ jsx(SsrScript, { script: scriptString })
|
|
46
43
|
] });
|
|
47
44
|
} else {
|
|
48
45
|
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
49
46
|
}
|
|
50
47
|
}
|
|
51
48
|
export {
|
|
52
|
-
MaybeFullPage
|
|
49
|
+
MaybeFullPage
|
|
53
50
|
};
|
|
54
51
|
//# sourceMappingURL=maybe-full-page.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/elements/maybe-full-page.tsx"],"sourcesContent":["\"use client\";\n\nimport { Container } from \"@stackframe/stack-ui\";\nimport React, { useId } from \"react\";\nimport { SsrScript } from \"./ssr-layout-effect\";\n\nexport function MaybeFullPage({ \n children, \n fullPage=true\n}: { \n children: React.ReactNode, \n fullPage?: boolean, \n}) {\n const uniqueId = useId();\n const id = `stack-card-frame-${uniqueId}`;\n\n const scriptString = `(([id]) => {\n const el = document.getElementById(id);\n if (!el) {\n // component is not full page\n return;\n }\n const offset = el.getBoundingClientRect().top + document.documentElement.scrollTop;\n el.style.minHeight = \\`calc(100vh - \\${offset}px)\\`;\n })(${JSON.stringify([id])})`;\n\n if (fullPage) {\n return (\n <>\n <div \n id={id}\n suppressHydrationWarning\n style={{ \n minHeight: '100vh',\n alignSelf: 'stretch',\n display: 'flex', \n alignItems: 'center', \n justifyContent: 'center',\n }}\n className=\"stack-scope\"\n >\n <Container size={380} style={{ padding: '1rem 1rem' }}>\n {children}\n </Container>\n </div>\n <SsrScript script={scriptString} />\n </>\n );\n } else {\n return <>\n {children}\n </>;\n }\n \n}\n"],"mappings":";;;AAEA,SAAS,iBAAiB;AAC1B,SAAgB,aAAa;AAC7B,SAAS,iBAAiB;AAwBpB,mBAaI,KAbJ;AAtBC,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA,WAAS;AACX,GAGG;AACD,QAAM,WAAW,MAAM;AACvB,QAAM,KAAK,oBAAoB,QAAQ;AAEvC,QAAM,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAQhB,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC;AAEzB,MAAI,UAAU;AACZ,WACE,iCACE;AAAA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,0BAAwB;AAAA,UACxB,OAAO;AAAA,YACL,WAAW;AAAA,YACX,WAAW;AAAA,YACX,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,gBAAgB;AAAA,UAClB;AAAA,UACA,WAAU;AAAA,UAEV,8BAAC,aAAU,MAAM,KAAK,OAAO,EAAE,SAAS,YAAY,GACjD,UACH;AAAA;AAAA,MACF;AAAA,MACA,oBAAC,aAAU,QAAQ,cAAc;AAAA,OACnC;AAAA,EAEJ,OAAO;AACL,WAAO,gCACJ,UACH;AAAA,EACF;AAEF;","names":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
|
|
4
|
+
// src/components/elements/separator-with-text.tsx
|
|
5
|
+
import { Separator } from "@stackframe/stack-ui";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
function SeparatorWithText({ text }) {
|
|
8
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-center my-6 stack-scope", children: [
|
|
9
|
+
/* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(Separator, {}) }),
|
|
10
|
+
/* @__PURE__ */ jsx("div", { className: "mx-2 text-sm text-zinc-500", children: text }),
|
|
11
|
+
/* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(Separator, {}) })
|
|
12
|
+
] });
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
SeparatorWithText
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=separator-with-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/elements/separator-with-text.tsx"],"sourcesContent":["'use client';\n\nimport { Separator } from \"@stackframe/stack-ui\";\n\nexport function SeparatorWithText({ text }: { text: string }) {\n return (\n <div className=\"flex items-center justify-center my-6 stack-scope\">\n <div className=\"flex-1\">\n <Separator />\n </div>\n <div className=\"mx-2 text-sm text-zinc-500\">{text}</div>\n <div className=\"flex-1\">\n <Separator />\n </div>\n </div>\n );\n}\n"],"mappings":";;;AAEA,SAAS,iBAAiB;AAItB,SAEI,KAFJ;AAFG,SAAS,kBAAkB,EAAE,KAAK,GAAqB;AAC5D,SACE,qBAAC,SAAI,WAAU,qDACb;AAAA,wBAAC,SAAI,WAAU,UACb,8BAAC,aAAU,GACb;AAAA,IACA,oBAAC,SAAI,WAAU,8BAA8B,gBAAK;AAAA,IAClD,oBAAC,SAAI,WAAU,UACb,8BAAC,aAAU,GACb;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
|
|
4
|
+
// src/components/elements/ssr-layout-effect.tsx
|
|
5
|
+
import { useLayoutEffect } from "react";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
function SsrScript(props) {
|
|
8
|
+
useLayoutEffect(() => {
|
|
9
|
+
(0, eval)(props.script);
|
|
10
|
+
}, []);
|
|
11
|
+
return /* @__PURE__ */ jsx("script", { dangerouslySetInnerHTML: { __html: props.script } });
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
SsrScript
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=ssr-layout-effect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/elements/ssr-layout-effect.tsx"],"sourcesContent":["\"use client\";\nimport { useLayoutEffect } from \"react\";\n\nexport function SsrScript(props: { script: string }) {\n useLayoutEffect(() => {\n // TODO fix workaround: React has a bug where it doesn't run the script on the first CSR render if SSR has been skipped due to suspense\n // As a workaround, we run the script in the <script> tag again after the first render\n // Note that we do an indirect eval as described here: https://esbuild.github.io/content-types/#direct-eval\n (0, eval)(props.script);\n }, []);\n\n return <script dangerouslySetInnerHTML={{ __html: props.script }} />;\n}\n"],"mappings":";;;AACA,SAAS,uBAAuB;AAUvB;AARF,SAAS,UAAU,OAA2B;AACnD,kBAAgB,MAAM;AAIpB,KAAC,GAAG,MAAM,MAAM,MAAM;AAAA,EACxB,GAAG,CAAC,CAAC;AAEL,SAAO,oBAAC,YAAO,yBAAyB,EAAE,QAAQ,MAAM,OAAO,GAAG;AACpE;","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// src/components/elements/user-avatar.tsx
|
|
2
|
+
import { UserRound } from "lucide-react";
|
|
3
|
+
import { Avatar, AvatarFallback, AvatarImage } from "@stackframe/stack-ui";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
function UserAvatar(props) {
|
|
6
|
+
const user = props.user;
|
|
7
|
+
return /* @__PURE__ */ jsxs(Avatar, { style: { height: props.size || "34px", width: props.size || "34px" }, children: [
|
|
8
|
+
/* @__PURE__ */ jsx(AvatarImage, { src: user?.profileImageUrl || "" }),
|
|
9
|
+
/* @__PURE__ */ jsx(AvatarFallback, { children: user ? /* @__PURE__ */ jsx("div", { className: "font-medium", children: (user.displayName || user.primaryEmail)?.slice(0, 2).toUpperCase() }) : /* @__PURE__ */ jsx(UserRound, { className: "h-5 w-5 text-zinc-500" }) })
|
|
10
|
+
] });
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
UserAvatar
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=user-avatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/elements/user-avatar.tsx"],"sourcesContent":["import { UserRound } from \"lucide-react\";\nimport { User } from \"../../lib/stack-app\";\nimport { Avatar, AvatarFallback, AvatarImage } from \"@stackframe/stack-ui\";\n\nexport function UserAvatar(props: { size?: number, user: User | null }) {\n const user = props.user;\n return (\n <Avatar style={{ height: props.size || '34px', width: props.size || '34px' }}>\n <AvatarImage src={user?.profileImageUrl || ''} />\n <AvatarFallback>\n {user ? \n <div className='font-medium'>\n {(user.displayName || user.primaryEmail)?.slice(0, 2).toUpperCase()}\n </div> :\n <UserRound className=\"h-5 w-5 text-zinc-500\" />}\n </AvatarFallback>\n </Avatar>\n );\n}\n"],"mappings":";AAAA,SAAS,iBAAiB;AAE1B,SAAS,QAAQ,gBAAgB,mBAAmB;AAKhD,SACE,KADF;AAHG,SAAS,WAAW,OAA6C;AACtE,QAAM,OAAO,MAAM;AACnB,SACE,qBAAC,UAAO,OAAO,EAAE,QAAQ,MAAM,QAAQ,QAAQ,OAAO,MAAM,QAAQ,OAAO,GACzE;AAAA,wBAAC,eAAY,KAAK,MAAM,mBAAmB,IAAI;AAAA,IAC/C,oBAAC,kBACE,iBACC,oBAAC,SAAI,WAAU,eACX,gBAAK,eAAe,KAAK,eAAe,MAAM,GAAG,CAAC,EAAE,YAAY,GACpE,IACA,oBAAC,aAAU,WAAU,yBAAwB,GACjD;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1,36 +1,43 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use client";
|
|
3
3
|
|
|
4
|
-
// src/components/forgot-password.tsx
|
|
4
|
+
// src/components/forgot-password-form.tsx
|
|
5
5
|
import { useForm } from "react-hook-form";
|
|
6
6
|
import { yupResolver } from "@hookform/resolvers/yup";
|
|
7
7
|
import * as yup from "yup";
|
|
8
|
-
import FormWarningText from "./form-warning";
|
|
8
|
+
import { FormWarningText } from "./elements/form-warning";
|
|
9
9
|
import { useStackApp } from "..";
|
|
10
|
-
import { Button, Input, Label } from "../components-core";
|
|
11
10
|
import { runAsynchronouslyWithAlert } from "@stackframe/stack-shared/dist/utils/promises";
|
|
11
|
+
import { Button, Input, Label } from "@stackframe/stack-ui";
|
|
12
|
+
import { useState } from "react";
|
|
12
13
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
13
14
|
var schema = yup.object().shape({
|
|
14
15
|
email: yup.string().email("Please enter a valid email").required("Please enter your email")
|
|
15
16
|
});
|
|
16
|
-
function
|
|
17
|
+
function ForgotPasswordForm({ onSent }) {
|
|
17
18
|
const { register, handleSubmit, formState: { errors }, clearErrors } = useForm({
|
|
18
19
|
resolver: yupResolver(schema)
|
|
19
20
|
});
|
|
20
21
|
const stackApp = useStackApp();
|
|
22
|
+
const [loading, setLoading] = useState(false);
|
|
21
23
|
const onSubmit = async (data) => {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
setLoading(true);
|
|
25
|
+
try {
|
|
26
|
+
const { email } = data;
|
|
27
|
+
await stackApp.sendForgotPasswordEmail(email);
|
|
28
|
+
onSent?.();
|
|
29
|
+
} finally {
|
|
30
|
+
setLoading(false);
|
|
31
|
+
}
|
|
25
32
|
};
|
|
26
33
|
return /* @__PURE__ */ jsxs(
|
|
27
34
|
"form",
|
|
28
35
|
{
|
|
29
|
-
|
|
36
|
+
className: "flex flex-col items-stretch stack-scope",
|
|
30
37
|
onSubmit: (e) => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e)),
|
|
31
38
|
noValidate: true,
|
|
32
39
|
children: [
|
|
33
|
-
/* @__PURE__ */ jsx(Label, { htmlFor: "email", children: "Your Email" }),
|
|
40
|
+
/* @__PURE__ */ jsx(Label, { htmlFor: "email", className: "mb-1", children: "Your Email" }),
|
|
34
41
|
/* @__PURE__ */ jsx(
|
|
35
42
|
Input,
|
|
36
43
|
{
|
|
@@ -41,19 +48,12 @@ function ForgotPassword({ onSent }) {
|
|
|
41
48
|
}
|
|
42
49
|
),
|
|
43
50
|
/* @__PURE__ */ jsx(FormWarningText, { text: errors.email?.message?.toString() }),
|
|
44
|
-
/* @__PURE__ */ jsx(
|
|
45
|
-
Button,
|
|
46
|
-
{
|
|
47
|
-
type: "submit",
|
|
48
|
-
style: { marginTop: "1.5rem" },
|
|
49
|
-
children: "Send Email"
|
|
50
|
-
}
|
|
51
|
-
)
|
|
51
|
+
/* @__PURE__ */ jsx(Button, { type: "submit", className: "mt-6", loading, children: "Send Email" })
|
|
52
52
|
]
|
|
53
53
|
}
|
|
54
54
|
);
|
|
55
55
|
}
|
|
56
56
|
export {
|
|
57
|
-
|
|
57
|
+
ForgotPasswordForm
|
|
58
58
|
};
|
|
59
|
-
//# sourceMappingURL=forgot-password.js.map
|
|
59
|
+
//# sourceMappingURL=forgot-password-form.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/forgot-password-form.tsx"],"sourcesContent":["'use client';\n\nimport { useForm } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as yup from \"yup\";\nimport { FormWarningText } from \"./elements/form-warning\";\nimport { useStackApp } from \"..\";\nimport { runAsynchronouslyWithAlert } from \"@stackframe/stack-shared/dist/utils/promises\";\nimport { Button, Input, Label } from \"@stackframe/stack-ui\";\nimport { useState } from \"react\";\n\nconst schema = yup.object().shape({\n email: yup.string().email('Please enter a valid email').required('Please enter your email')\n});\n\nexport function ForgotPasswordForm({ onSent }: { onSent?: () => void }) {\n const { register, handleSubmit, formState: { errors }, clearErrors } = useForm({\n resolver: yupResolver(schema)\n });\n const stackApp = useStackApp();\n const [loading, setLoading] = useState(false);\n\n const onSubmit = async (data: yup.InferType<typeof schema>) => {\n setLoading(true);\n try {\n const { email } = data;\n await stackApp.sendForgotPasswordEmail(email);\n onSent?.();\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <form\n className=\"flex flex-col items-stretch stack-scope\" \n onSubmit={e => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e))}\n noValidate\n >\n <Label htmlFor=\"email\" className=\"mb-1\">Your Email</Label>\n <Input\n id=\"email\"\n type=\"email\"\n {...register('email')}\n onChange={() => clearErrors('email')}\n />\n <FormWarningText text={errors.email?.message?.toString()} />\n\n <Button type=\"submit\" className=\"mt-6\" loading={loading}>\n Send Email\n </Button>\n </form>\n );\n}\n"],"mappings":";;;AAEA,SAAS,eAAe;AACxB,SAAS,mBAAmB;AAC5B,YAAY,SAAS;AACrB,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAC5B,SAAS,kCAAkC;AAC3C,SAAS,QAAQ,OAAO,aAAa;AACrC,SAAS,gBAAgB;AAyBrB,SAKE,KALF;AAvBJ,IAAM,SAAa,WAAO,EAAE,MAAM;AAAA,EAChC,OAAW,WAAO,EAAE,MAAM,4BAA4B,EAAE,SAAS,yBAAyB;AAC5F,CAAC;AAEM,SAAS,mBAAmB,EAAE,OAAO,GAA4B;AACtE,QAAM,EAAE,UAAU,cAAc,WAAW,EAAE,OAAO,GAAG,YAAY,IAAI,QAAQ;AAAA,IAC7E,UAAU,YAAY,MAAM;AAAA,EAC9B,CAAC;AACD,QAAM,WAAW,YAAY;AAC7B,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAE5C,QAAM,WAAW,OAAO,SAAuC;AAC7D,eAAW,IAAI;AACf,QAAI;AACF,YAAM,EAAE,MAAM,IAAI;AAClB,YAAM,SAAS,wBAAwB,KAAK;AAC9C,eAAS;AAAA,IACT,UAAE;AACA,iBAAW,KAAK;AAAA,IAClB;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,UAAU,OAAK,2BAA2B,aAAa,QAAQ,EAAE,CAAC,CAAC;AAAA,MACnE,YAAU;AAAA,MAEV;AAAA,4BAAC,SAAM,SAAQ,SAAQ,WAAU,QAAO,wBAAU;AAAA,QAClD;AAAA,UAAC;AAAA;AAAA,YACC,IAAG;AAAA,YACH,MAAK;AAAA,YACJ,GAAG,SAAS,OAAO;AAAA,YACpB,UAAU,MAAM,YAAY,OAAO;AAAA;AAAA,QACrC;AAAA,QACA,oBAAC,mBAAgB,MAAM,OAAO,OAAO,SAAS,SAAS,GAAG;AAAA,QAE1D,oBAAC,UAAO,MAAK,UAAS,WAAU,QAAO,SAAkB,wBAEzD;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
|
|
@@ -1,42 +1,48 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use client";
|
|
3
3
|
|
|
4
|
-
// src/components/magic-link-sign-in.tsx
|
|
4
|
+
// src/components/magic-link-sign-in-form.tsx
|
|
5
5
|
import { useState } from "react";
|
|
6
6
|
import { useForm } from "react-hook-form";
|
|
7
7
|
import { yupResolver } from "@hookform/resolvers/yup";
|
|
8
8
|
import * as yup from "yup";
|
|
9
|
-
import FormWarningText from "./form-warning";
|
|
9
|
+
import { FormWarningText } from "./elements/form-warning";
|
|
10
10
|
import { useStackApp } from "..";
|
|
11
|
-
import { Button, Input, Label } from "../components-core";
|
|
12
11
|
import { runAsynchronouslyWithAlert } from "@stackframe/stack-shared/dist/utils/promises";
|
|
12
|
+
import { Button, Input, Label } from "@stackframe/stack-ui";
|
|
13
13
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
14
|
var schema = yup.object().shape({
|
|
15
15
|
email: yup.string().email("Please enter a valid email").required("Please enter your email")
|
|
16
16
|
});
|
|
17
|
-
function
|
|
17
|
+
function MagicLinkSignInForm() {
|
|
18
18
|
const { register, handleSubmit, setError, formState: { errors }, clearErrors } = useForm({
|
|
19
19
|
resolver: yupResolver(schema)
|
|
20
20
|
});
|
|
21
21
|
const [sent, setSent] = useState(false);
|
|
22
22
|
const app = useStackApp();
|
|
23
|
+
const [loading, setLoading] = useState(false);
|
|
23
24
|
const onSubmit = async (data) => {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
setLoading(true);
|
|
26
|
+
try {
|
|
27
|
+
const { email } = data;
|
|
28
|
+
const error = await app.sendMagicLinkEmail(email);
|
|
29
|
+
if (error) {
|
|
30
|
+
setError("email", { type: "manual", message: error.message });
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
setSent(true);
|
|
34
|
+
} finally {
|
|
35
|
+
setLoading(false);
|
|
29
36
|
}
|
|
30
|
-
setSent(true);
|
|
31
37
|
};
|
|
32
38
|
return /* @__PURE__ */ jsxs(
|
|
33
39
|
"form",
|
|
34
40
|
{
|
|
35
|
-
|
|
41
|
+
className: "flex flex-col items-stretch stack-scope",
|
|
36
42
|
onSubmit: (e) => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e)),
|
|
37
43
|
noValidate: true,
|
|
38
44
|
children: [
|
|
39
|
-
/* @__PURE__ */ jsx(Label, { htmlFor: "email", children: "Email" }),
|
|
45
|
+
/* @__PURE__ */ jsx(Label, { htmlFor: "email", className: "mb-1", children: "Email" }),
|
|
40
46
|
/* @__PURE__ */ jsx(
|
|
41
47
|
Input,
|
|
42
48
|
{
|
|
@@ -47,12 +53,12 @@ function MagicLinkSignIn() {
|
|
|
47
53
|
}
|
|
48
54
|
),
|
|
49
55
|
/* @__PURE__ */ jsx(FormWarningText, { text: errors.email?.message?.toString() }),
|
|
50
|
-
/* @__PURE__ */ jsx(Button, { disabled: sent,
|
|
56
|
+
/* @__PURE__ */ jsx(Button, { disabled: sent, type: "submit", className: "mt-6", loading, children: sent ? "Email sent!" : "Send magic link" })
|
|
51
57
|
]
|
|
52
58
|
}
|
|
53
59
|
);
|
|
54
60
|
}
|
|
55
61
|
export {
|
|
56
|
-
|
|
62
|
+
MagicLinkSignInForm
|
|
57
63
|
};
|
|
58
|
-
//# sourceMappingURL=magic-link-sign-in.js.map
|
|
64
|
+
//# sourceMappingURL=magic-link-sign-in-form.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/magic-link-sign-in-form.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as yup from \"yup\";\nimport { FormWarningText } from \"./elements/form-warning\";\nimport { useStackApp } from \"..\";\nimport { runAsynchronouslyWithAlert } from \"@stackframe/stack-shared/dist/utils/promises\";\nimport { Button, Input, Label } from \"@stackframe/stack-ui\";\n\nconst schema = yup.object().shape({\n email: yup.string().email('Please enter a valid email').required('Please enter your email')\n});\n\nexport function MagicLinkSignInForm() {\n const { register, handleSubmit, setError, formState: { errors }, clearErrors } = useForm({\n resolver: yupResolver(schema)\n });\n const [sent, setSent] = useState(false);\n const app = useStackApp();\n const [loading, setLoading] = useState(false);\n\n const onSubmit = async (data: yup.InferType<typeof schema>) => {\n setLoading(true);\n try {\n const { email } = data;\n const error = await app.sendMagicLinkEmail(email);\n if (error) {\n setError('email', { type: 'manual', message: error.message });\n return;\n }\n setSent(true);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <form \n className=\"flex flex-col items-stretch stack-scope\"\n onSubmit={e => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e))}\n noValidate\n >\n <Label htmlFor=\"email\" className=\"mb-1\">Email</Label>\n <Input\n id=\"email\"\n type=\"email\"\n {...register('email')}\n disabled={sent}\n />\n <FormWarningText text={errors.email?.message?.toString()} />\n\n <Button disabled={sent} type=\"submit\" className=\"mt-6\" loading={loading}>\n {sent ? 'Email sent!' : 'Send magic link'}\n </Button>\n </form>\n );\n}\n"],"mappings":";;;AAEA,SAAS,gBAAgB;AACzB,SAAS,eAAe;AACxB,SAAS,mBAAmB;AAC5B,YAAY,SAAS;AACrB,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAC5B,SAAS,kCAAkC;AAC3C,SAAS,QAAQ,OAAO,aAAa;AA8BjC,SAKE,KALF;AA5BJ,IAAM,SAAa,WAAO,EAAE,MAAM;AAAA,EAChC,OAAW,WAAO,EAAE,MAAM,4BAA4B,EAAE,SAAS,yBAAyB;AAC5F,CAAC;AAEM,SAAS,sBAAsB;AACpC,QAAM,EAAE,UAAU,cAAc,UAAU,WAAW,EAAE,OAAO,GAAG,YAAY,IAAI,QAAQ;AAAA,IACvF,UAAU,YAAY,MAAM;AAAA,EAC9B,CAAC;AACD,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,KAAK;AACtC,QAAM,MAAM,YAAY;AACxB,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAE5C,QAAM,WAAW,OAAO,SAAuC;AAC7D,eAAW,IAAI;AACf,QAAI;AACF,YAAM,EAAE,MAAM,IAAI;AAClB,YAAM,QAAQ,MAAM,IAAI,mBAAmB,KAAK;AAChD,UAAI,OAAO;AACT,iBAAS,SAAS,EAAE,MAAM,UAAU,SAAS,MAAM,QAAQ,CAAC;AAC5D;AAAA,MACF;AACF,cAAQ,IAAI;AAAA,IACZ,UAAE;AACA,iBAAW,KAAK;AAAA,IAClB;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,UAAU,OAAK,2BAA2B,aAAa,QAAQ,EAAE,CAAC,CAAC;AAAA,MACnE,YAAU;AAAA,MAEV;AAAA,4BAAC,SAAM,SAAQ,SAAQ,WAAU,QAAO,mBAAK;AAAA,QAC7C;AAAA,UAAC;AAAA;AAAA,YACC,IAAG;AAAA,YACH,MAAK;AAAA,YACJ,GAAG,SAAS,OAAO;AAAA,YACpB,UAAU;AAAA;AAAA,QACZ;AAAA,QACA,oBAAC,mBAAgB,MAAM,OAAO,OAAO,SAAS,SAAS,GAAG;AAAA,QAE1D,oBAAC,UAAO,UAAU,MAAM,MAAK,UAAS,WAAU,QAAO,SACpD,iBAAO,gBAAgB,mBAC1B;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
|
|
4
4
|
// src/components/message-cards/known-error-message-card.tsx
|
|
5
5
|
import { useStackApp } from "../..";
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
6
|
+
import { Typography } from "@stackframe/stack-ui";
|
|
7
|
+
import { MessageCard } from "./message-card";
|
|
8
8
|
import { jsxs } from "react/jsx-runtime";
|
|
9
9
|
function KnownErrorMessageCard({
|
|
10
10
|
error,
|
|
@@ -19,11 +19,11 @@ function KnownErrorMessageCard({
|
|
|
19
19
|
primaryButtonText: "Go to Home",
|
|
20
20
|
primaryAction: () => stackApp.redirectToHome(),
|
|
21
21
|
children: [
|
|
22
|
-
/* @__PURE__ */ jsxs(
|
|
22
|
+
/* @__PURE__ */ jsxs(Typography, { children: [
|
|
23
23
|
"Error Code: ",
|
|
24
24
|
error.errorCode
|
|
25
25
|
] }),
|
|
26
|
-
/* @__PURE__ */ jsxs(
|
|
26
|
+
/* @__PURE__ */ jsxs(Typography, { children: [
|
|
27
27
|
"Error Message: ",
|
|
28
28
|
error.message
|
|
29
29
|
] })
|
|
@@ -32,6 +32,6 @@ function KnownErrorMessageCard({
|
|
|
32
32
|
);
|
|
33
33
|
}
|
|
34
34
|
export {
|
|
35
|
-
KnownErrorMessageCard
|
|
35
|
+
KnownErrorMessageCard
|
|
36
36
|
};
|
|
37
37
|
//# sourceMappingURL=known-error-message-card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/message-cards/known-error-message-card.tsx"],"sourcesContent":["\"use client\";\n\nimport { useStackApp } from \"../..\";\nimport
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/message-cards/known-error-message-card.tsx"],"sourcesContent":["\"use client\";\n\nimport { useStackApp } from \"../..\";\nimport { Typography } from \"@stackframe/stack-ui\";\nimport { MessageCard } from \"./message-card\";\nimport { KnownError } from \"@stackframe/stack-shared\";\n\nexport function KnownErrorMessageCard({ \n error,\n fullPage=false,\n}: { \n error: KnownError,\n fullPage?: boolean, \n}) {\n const stackApp = useStackApp();\n\n return (\n <MessageCard \n title={\"An error occurred\"}\n fullPage={fullPage} \n primaryButtonText={\"Go to Home\"}\n primaryAction={() => stackApp.redirectToHome()}\n >\n {<Typography>Error Code: {error.errorCode}</Typography>}\n {<Typography>Error Message: {error.message}</Typography>}\n </MessageCard>\n );\n}\n"],"mappings":";;;AAEA,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAmBrB;AAhBA,SAAS,sBAAsB;AAAA,EACpC;AAAA,EACA,WAAS;AACX,GAGG;AACD,QAAM,WAAW,YAAY;AAE7B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP;AAAA,MACA,mBAAmB;AAAA,MACnB,eAAe,MAAM,SAAS,eAAe;AAAA,MAE5C;AAAA,6BAAC,cAAW;AAAA;AAAA,UAAa,MAAM;AAAA,WAAU;AAAA,QACzC,qBAAC,cAAW;AAAA;AAAA,UAAgB,MAAM;AAAA,WAAQ;AAAA;AAAA;AAAA,EAC7C;AAEJ;","names":[]}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
|
|
4
4
|
// src/components/message-cards/message-card.tsx
|
|
5
|
-
import MaybeFullPage from "../maybe-full-page";
|
|
6
|
-
import { Button,
|
|
5
|
+
import { MaybeFullPage } from "../elements/maybe-full-page";
|
|
6
|
+
import { Button, Typography } from "@stackframe/stack-ui";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
function MessageCard({ fullPage = false, ...props }) {
|
|
9
9
|
return /* @__PURE__ */ jsx(MaybeFullPage, { fullPage, children: /* @__PURE__ */ jsxs("div", { style: { textAlign: "center" }, children: [
|
|
10
|
-
/* @__PURE__ */ jsx(
|
|
10
|
+
/* @__PURE__ */ jsx(Typography, { type: "h3", className: "mb-6", children: props.title }),
|
|
11
11
|
props.children,
|
|
12
12
|
(props.primaryButtonText || props.secondaryButtonText) && /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "row", alignItems: "center", justifyContent: "center", gap: "16px", marginTop: 20 }, children: [
|
|
13
13
|
props.secondaryButtonText && /* @__PURE__ */ jsx(Button, { variant: "secondary", onClick: props.secondaryAction, children: props.secondaryButtonText }),
|
|
@@ -16,6 +16,6 @@ function MessageCard({ fullPage = false, ...props }) {
|
|
|
16
16
|
] }) });
|
|
17
17
|
}
|
|
18
18
|
export {
|
|
19
|
-
MessageCard
|
|
19
|
+
MessageCard
|
|
20
20
|
};
|
|
21
21
|
//# sourceMappingURL=message-card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/message-cards/message-card.tsx"],"sourcesContent":["'use client';\n\nimport React from \"react\";\nimport MaybeFullPage from \"../maybe-full-page\";\nimport { Button,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/message-cards/message-card.tsx"],"sourcesContent":["'use client';\n\nimport React from \"react\";\nimport { MaybeFullPage } from \"../elements/maybe-full-page\";\nimport { Button, Typography } from \"@stackframe/stack-ui\";\n\nexport function MessageCard(\n { fullPage=false, ...props }: \n { \n children?: React.ReactNode, \n title: string, \n fullPage?: boolean,\n primaryButtonText?: string,\n primaryAction?: () => Promise<void> | void,\n secondaryButtonText?: string,\n secondaryAction?: () => Promise<void> | void,\n }\n) {\n return (\n <MaybeFullPage fullPage={fullPage}>\n <div style={{ textAlign: 'center' }}>\n <Typography type='h3' className=\"mb-6\">{props.title}</Typography>\n {props.children}\n {(props.primaryButtonText || props.secondaryButtonText) && (\n <div style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', justifyContent: 'center', gap: '16px', marginTop: 20 }}>\n {props.secondaryButtonText && (\n <Button variant=\"secondary\" onClick={props.secondaryAction}>\n {props.secondaryButtonText}\n </Button>\n )}\n {props.primaryButtonText && (\n <Button onClick={props.primaryAction}>\n {props.primaryButtonText}\n </Button>\n )}\n </div>\n )}\n </div>\n </MaybeFullPage>\n );\n}\n"],"mappings":";;;AAGA,SAAS,qBAAqB;AAC9B,SAAS,QAAQ,kBAAkB;AAiB3B,cAGE,YAHF;AAfD,SAAS,YACd,EAAE,WAAS,OAAO,GAAG,MAAM,GAU3B;AACA,SACE,oBAAC,iBAAc,UACb,+BAAC,SAAI,OAAO,EAAE,WAAW,SAAS,GAChC;AAAA,wBAAC,cAAW,MAAK,MAAK,WAAU,QAAQ,gBAAM,OAAM;AAAA,IACnD,MAAM;AAAA,KACL,MAAM,qBAAqB,MAAM,wBACjC,qBAAC,SAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,OAAO,YAAY,UAAU,gBAAgB,UAAU,KAAK,QAAQ,WAAW,GAAG,GAC7H;AAAA,YAAM,uBACL,oBAAC,UAAO,SAAQ,aAAY,SAAS,MAAM,iBACxC,gBAAM,qBACT;AAAA,MAED,MAAM,qBACL,oBAAC,UAAO,SAAS,MAAM,eACpB,gBAAM,mBACT;AAAA,OAEJ;AAAA,KAEJ,GACF;AAEJ;","names":[]}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
|
|
4
4
|
// src/components/message-cards/predefined-message-card.tsx
|
|
5
|
+
import { Typography } from "@stackframe/stack-ui";
|
|
5
6
|
import { useStackApp } from "../..";
|
|
6
|
-
import MessageCard from "./message-card";
|
|
7
|
-
import { Text } from "../../components-core";
|
|
7
|
+
import { MessageCard } from "./message-card";
|
|
8
8
|
import { jsx } from "react/jsx-runtime";
|
|
9
9
|
function PredefinedMessageCard({
|
|
10
10
|
type,
|
|
@@ -70,11 +70,11 @@ function PredefinedMessageCard({
|
|
|
70
70
|
primaryAction,
|
|
71
71
|
secondaryButtonText: secondaryButton || void 0,
|
|
72
72
|
secondaryAction: secondaryAction || void 0,
|
|
73
|
-
children: message && /* @__PURE__ */ jsx(
|
|
73
|
+
children: message && /* @__PURE__ */ jsx(Typography, { children: message })
|
|
74
74
|
}
|
|
75
75
|
);
|
|
76
76
|
}
|
|
77
77
|
export {
|
|
78
|
-
PredefinedMessageCard
|
|
78
|
+
PredefinedMessageCard
|
|
79
79
|
};
|
|
80
80
|
//# sourceMappingURL=predefined-message-card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/message-cards/predefined-message-card.tsx"],"sourcesContent":["\"use client\";\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/message-cards/predefined-message-card.tsx"],"sourcesContent":["\"use client\";\n\nimport { Typography } from \"@stackframe/stack-ui\";\nimport { useStackApp } from \"../..\";\nimport { MessageCard } from \"./message-card\";\n\nexport function PredefinedMessageCard({ \n type,\n fullPage=false,\n}: { \n type: 'signedIn' | 'signedOut' | 'emailSent' | 'passwordReset' | 'emailVerified' | 'unknownError',\n fullPage?: boolean, \n}) {\n const stackApp = useStackApp();\n\n let title: string;\n let message: string | null = null;\n let primaryButton: string | null = null;\n let secondaryButton: string | null = null;\n let primaryAction: (() => Promise<void> | void) | null = null;\n let secondaryAction: (() => Promise<void> | void) | null = null;\n\n switch (type) {\n case 'signedIn': {\n title = \"You are already signed in\";\n primaryAction = () => stackApp.redirectToAfterSignOut();\n secondaryAction = () => stackApp.redirectToSignOut();\n primaryButton = \"Go to Home\";\n secondaryButton = \"Sign Out\";\n break;\n }\n case 'signedOut': {\n title = \"You are not currently signed in.\";\n primaryAction = () => stackApp.redirectToSignIn();\n primaryButton = \"Go to Home\";\n break;\n }\n case 'emailSent': {\n title = \"Email sent!\";\n message = 'Please check your inbox. Make sure to check your spam folder.';\n primaryAction = () => stackApp.redirectToHome();\n primaryButton = \"Go to Home\";\n break;\n }\n case 'passwordReset': {\n title = \"Password reset successfully!\";\n message = 'Your password has been reset. You can now sign in with your new password.';\n primaryAction = () => stackApp.redirectToSignIn();\n primaryButton = \"Go to Sign In\";\n break;\n }\n case 'emailVerified': {\n title = \"Email verified!\";\n message = 'Your have successfully verified your email.';\n primaryAction = () => stackApp.redirectToSignIn();\n primaryButton = \"Go to Home\";\n break;\n }\n case 'unknownError': {\n title = \"An unknown error occurred\";\n message = 'Please try again and if the problem persists, contact support.';\n primaryAction = () => stackApp.redirectToHome();\n primaryButton = \"Go to Home\";\n break;\n }\n }\n\n return (\n <MessageCard\n title={title} \n fullPage={fullPage} \n primaryButtonText={primaryButton} \n primaryAction={primaryAction} \n secondaryButtonText={secondaryButton || undefined} \n secondaryAction={secondaryAction || undefined}\n >\n {message && <Typography>{message}</Typography>}\n </MessageCard>\n );\n}\n"],"mappings":";;;AAEA,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAwEV;AAtEX,SAAS,sBAAsB;AAAA,EACpC;AAAA,EACA,WAAS;AACX,GAGG;AACD,QAAM,WAAW,YAAY;AAE7B,MAAI;AACJ,MAAI,UAAyB;AAC7B,MAAI,gBAA+B;AACnC,MAAI,kBAAiC;AACrC,MAAI,gBAAqD;AACzD,MAAI,kBAAuD;AAE3D,UAAQ,MAAM;AAAA,IACZ,KAAK,YAAY;AACf,cAAQ;AACR,sBAAgB,MAAM,SAAS,uBAAuB;AACtD,wBAAkB,MAAM,SAAS,kBAAkB;AACnD,sBAAgB;AAChB,wBAAkB;AAClB;AAAA,IACF;AAAA,IACA,KAAK,aAAa;AAChB,cAAQ;AACR,sBAAgB,MAAM,SAAS,iBAAiB;AAChD,sBAAgB;AAChB;AAAA,IACF;AAAA,IACA,KAAK,aAAa;AAChB,cAAQ;AACR,gBAAU;AACV,sBAAgB,MAAM,SAAS,eAAe;AAC9C,sBAAgB;AAChB;AAAA,IACF;AAAA,IACA,KAAK,iBAAiB;AACpB,cAAQ;AACR,gBAAU;AACV,sBAAgB,MAAM,SAAS,iBAAiB;AAChD,sBAAgB;AAChB;AAAA,IACF;AAAA,IACA,KAAK,iBAAiB;AACpB,cAAQ;AACR,gBAAU;AACV,sBAAgB,MAAM,SAAS,iBAAiB;AAChD,sBAAgB;AAChB;AAAA,IACF;AAAA,IACA,KAAK,gBAAgB;AACnB,cAAQ;AACR,gBAAU;AACV,sBAAgB,MAAM,SAAS,eAAe;AAC9C,sBAAgB;AAChB;AAAA,IACF;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,mBAAmB;AAAA,MACnB;AAAA,MACA,qBAAqB,mBAAmB;AAAA,MACxC,iBAAiB,mBAAmB;AAAA,MAEnC,qBAAW,oBAAC,cAAY,mBAAQ;AAAA;AAAA,EACnC;AAEJ;","names":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
|
|
4
|
+
// src/components/oauth-button-group.tsx
|
|
5
|
+
import { useStackApp } from "../lib/hooks";
|
|
6
|
+
import { OAuthButton } from "./oauth-button";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
function OAuthButtonGroup({
|
|
9
|
+
type,
|
|
10
|
+
mockProject
|
|
11
|
+
}) {
|
|
12
|
+
const stackApp = useStackApp();
|
|
13
|
+
const project = mockProject || stackApp.useProject();
|
|
14
|
+
return /* @__PURE__ */ jsx("div", { className: "gap-4 flex flex-col items-stretch stack-scope", children: project.oauthProviders.filter((p) => p.enabled).map((p) => /* @__PURE__ */ jsx(OAuthButton, { provider: p.id, type }, p.id)) });
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
OAuthButtonGroup
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=oauth-button-group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/oauth-button-group.tsx"],"sourcesContent":["'use client';\n\nimport { ClientProjectJson } from \"@stackframe/stack-shared\";\nimport { useStackApp } from \"../lib/hooks\";\nimport { OAuthButton } from \"./oauth-button\";\n\nexport function OAuthButtonGroup({\n type,\n mockProject,\n}: {\n type: 'sign-in' | 'sign-up',\n mockProject?: ClientProjectJson,\n}) {\n const stackApp = useStackApp();\n const project = mockProject || stackApp.useProject();\n\n return (\n <div className='gap-4 flex flex-col items-stretch stack-scope'>\n {project.oauthProviders.filter(p => p.enabled).map(p => (\n <OAuthButton key={p.id} provider={p.id} type={type}/>\n ))}\n </div>\n );\n}\n"],"mappings":";;;AAGA,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAepB;AAbD,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AACF,GAGG;AACD,QAAM,WAAW,YAAY;AAC7B,QAAM,UAAU,eAAe,SAAS,WAAW;AAEnD,SACE,oBAAC,SAAI,WAAU,iDACZ,kBAAQ,eAAe,OAAO,OAAK,EAAE,OAAO,EAAE,IAAI,OACjD,oBAAC,eAAuB,UAAU,EAAE,IAAI,QAAtB,EAAE,EAA+B,CACpD,GACH;AAEJ;","names":[]}
|