Control
Mount the provider once and wait for the deployment to load before rendering the rest of the app.
<DeploymentProvider/>
<DeploymentProvider /> is the shared root for the frontend adapters. Under the hood the adapter-specific provider just creates the right router adapter and forwards publicKey and uiOverwrites into the shared JSX provider.
import { DeploymentProvider } from '@wacht/nextjs';export default function DeploymentProviderUsage() { return ( <> <DeploymentProvider publicKey={PUBLIC_KEY}> {children} </DeploymentProvider> </> );}›publicKey: string;
publicKey: string;›uiOverwrites?: Partial<DeploymentUISettings> | undefined;
uiOverwrites?: Partial<DeploymentUISettings> | undefined;›deployment_id?: number | undefined;
deployment_id?: number | undefined;›app_name?: string | undefined;
app_name?: string | undefined;›privacy_policy_url?: string | undefined;
privacy_policy_url?: string | undefined;›tos_page_url?: string | undefined;
tos_page_url?: string | undefined;›sign_in_page_url?: string | undefined;
sign_in_page_url?: string | undefined;›sign_up_page_url?: string | undefined;
sign_up_page_url?: string | undefined;›waitlist_page_url?: string | undefined;
waitlist_page_url?: string | undefined;›support_page_url?: string | undefined;
support_page_url?: string | undefined;›after_logo_click_url?: string | undefined;
after_logo_click_url?: string | undefined;›user_profile_url?: string | undefined;
user_profile_url?: string | undefined;›organization_profile_url?: string | undefined;
organization_profile_url?: string | undefined;›create_organization_url?: string | undefined;
create_organization_url?: string | undefined;›after_sign_out_one_page_url?: string | undefined;
after_sign_out_one_page_url?: string | undefined;›after_sign_out_all_page_url?: string | undefined;
after_sign_out_all_page_url?: string | undefined;›after_signup_redirect_url?: string | undefined;
after_signup_redirect_url?: string | undefined;›after_signin_redirect_url?: string | undefined;
after_signin_redirect_url?: string | undefined;›after_create_organization_redirect_url?: string | undefined;
after_create_organization_redirect_url?: string | undefined;›favicon_image_url?: string | undefined;
favicon_image_url?: string | undefined;›default_user_profile_image_url?: string | undefined;
default_user_profile_image_url?: string | undefined;›default_organization_profile_image_url?: string | undefined;
default_organization_profile_image_url?: string | undefined;›default_workspace_profile_image_url?: string | undefined;
default_workspace_profile_image_url?: string | undefined;›use_initials_for_user_profile_image?: boolean | undefined;
use_initials_for_user_profile_image?: boolean | undefined;›use_initials_for_organization_profile_image?: boolean | undefined;
use_initials_for_organization_profile_image?: boolean | undefined;›logo_image_url?: string | undefined;
logo_image_url?: string | undefined;›signup_terms_statement?: string | undefined;
signup_terms_statement?: string | undefined;›signup_terms_statement_shown?: boolean | undefined;
signup_terms_statement_shown?: boolean | undefined;›light_mode_settings?: LightModeSettings | undefined;
light_mode_settings?: LightModeSettings | undefined;›primary_color?: string | undefined;
primary_color?: string | undefined;›background_color?: string | undefined;
background_color?: string | undefined;›text_color?: string | undefined;
text_color?: string | undefined;›token_overrides?: UITokenOverrides | undefined;
token_overrides?: UITokenOverrides | undefined;›space_unit?: string | undefined;
space_unit?: string | undefined;›card?: string | undefined;
card?: string | undefined;›card_foreground?: string | undefined;
card_foreground?: string | undefined;›popover?: string | undefined;
popover?: string | undefined;›popover_foreground?: string | undefined;
popover_foreground?: string | undefined;›primary_foreground?: string | undefined;
primary_foreground?: string | undefined;›secondary?: string | undefined;
secondary?: string | undefined;›secondary_foreground?: string | undefined;
secondary_foreground?: string | undefined;›accent?: string | undefined;
accent?: string | undefined;›accent_foreground?: string | undefined;
accent_foreground?: string | undefined;›ring?: string | undefined;
ring?: string | undefined;›foreground?: string | undefined;
foreground?: string | undefined;›foreground_inverse?: string | undefined;
foreground_inverse?: string | undefined;›secondary_text?: string | undefined;
secondary_text?: string | undefined;›muted?: string | undefined;
muted?: string | undefined;›border?: string | undefined;
border?: string | undefined;›border_hover?: string | undefined;
border_hover?: string | undefined;›divider?: string | undefined;
divider?: string | undefined;›input_background?: string | undefined;
input_background?: string | undefined;›input_border?: string | undefined;
input_border?: string | undefined;›input_focus_border?: string | undefined;
input_focus_border?: string | undefined;›background_subtle?: string | undefined;
background_subtle?: string | undefined;›background_hover?: string | undefined;
background_hover?: string | undefined;›primary_hover?: string | undefined;
primary_hover?: string | undefined;›error?: string | undefined;
error?: string | undefined;›error_background?: string | undefined;
error_background?: string | undefined;›error_border?: string | undefined;
error_border?: string | undefined;›warning?: string | undefined;
warning?: string | undefined;›warning_background?: string | undefined;
warning_background?: string | undefined;›warning_border?: string | undefined;
warning_border?: string | undefined;›warning_text?: string | undefined;
warning_text?: string | undefined;›success?: string | undefined;
success?: string | undefined;›success_background?: string | undefined;
success_background?: string | undefined;›success_border?: string | undefined;
success_border?: string | undefined;›info?: string | undefined;
info?: string | undefined;›info_background?: string | undefined;
info_background?: string | undefined;›radius_md?: string | undefined;
radius_md?: string | undefined;›radius_lg?: string | undefined;
radius_lg?: string | undefined;›radius_xl?: string | undefined;
radius_xl?: string | undefined;›radius_2xl?: string | undefined;
radius_2xl?: string | undefined;›radius_2xs?: string | undefined;
radius_2xs?: string | undefined;›radius_xs?: string | undefined;
radius_xs?: string | undefined;›radius_full?: string | undefined;
radius_full?: string | undefined;›border_width_thin?: string | undefined;
border_width_thin?: string | undefined;›border_width_regular?: string | undefined;
border_width_regular?: string | undefined;›scrollbar_track?: string | undefined;
scrollbar_track?: string | undefined;›scrollbar_thumb?: string | undefined;
scrollbar_thumb?: string | undefined;›scrollbar_thumb_hover?: string | undefined;
scrollbar_thumb_hover?: string | undefined;›shadow_color?: string | undefined;
shadow_color?: string | undefined;›shadow_light_color?: string | undefined;
shadow_light_color?: string | undefined;›shadow_medium_color?: string | undefined;
shadow_medium_color?: string | undefined;›success_shadow?: string | undefined;
success_shadow?: string | undefined;›success_background_light?: string | undefined;
success_background_light?: string | undefined;›button_ripple?: string | undefined;
button_ripple?: string | undefined;›dialog_backdrop?: string | undefined;
dialog_backdrop?: string | undefined;›space_0u?: string | undefined;
space_0u?: string | undefined;›space_1u?: string | undefined;
space_1u?: string | undefined;›space_2u?: string | undefined;
space_2u?: string | undefined;›space_3u?: string | undefined;
space_3u?: string | undefined;›space_4u?: string | undefined;
space_4u?: string | undefined;›space_5u?: string | undefined;
space_5u?: string | undefined;›space_6u?: string | undefined;
space_6u?: string | undefined;›space_7u?: string | undefined;
space_7u?: string | undefined;›space_8u?: string | undefined;
space_8u?: string | undefined;›space_10u?: string | undefined;
space_10u?: string | undefined;›space_12u?: string | undefined;
space_12u?: string | undefined;›space_14u?: string | undefined;
space_14u?: string | undefined;›space_16u?: string | undefined;
space_16u?: string | undefined;›space_24u?: string | undefined;
space_24u?: string | undefined;›font_size_2xs?: string | undefined;
font_size_2xs?: string | undefined;›font_size_xs?: string | undefined;
font_size_xs?: string | undefined;›font_size_sm?: string | undefined;
font_size_sm?: string | undefined;›font_size_md?: string | undefined;
font_size_md?: string | undefined;›font_size_lg?: string | undefined;
font_size_lg?: string | undefined;›font_size_xl?: string | undefined;
font_size_xl?: string | undefined;›font_size_2xl?: string | undefined;
font_size_2xl?: string | undefined;›font_size_3xl?: string | undefined;
font_size_3xl?: string | undefined;›size_8u?: string | undefined;
size_8u?: string | undefined;›size_10u?: string | undefined;
size_10u?: string | undefined;›size_12u?: string | undefined;
size_12u?: string | undefined;›size_18u?: string | undefined;
size_18u?: string | undefined;›size_20u?: string | undefined;
size_20u?: string | undefined;›size_24u?: string | undefined;
size_24u?: string | undefined;›size_32u?: string | undefined;
size_32u?: string | undefined;›size_36u?: string | undefined;
size_36u?: string | undefined;›size_40u?: string | undefined;
size_40u?: string | undefined;›size_45u?: string | undefined;
size_45u?: string | undefined;›size_50u?: string | undefined;
size_50u?: string | undefined;›shadow_sm?: string | undefined;
shadow_sm?: string | undefined;›shadow_md?: string | undefined;
shadow_md?: string | undefined;›shadow_lg?: string | undefined;
shadow_lg?: string | undefined;›shadow_xl?: string | undefined;
shadow_xl?: string | undefined;›shadow_success?: string | undefined;
shadow_success?: string | undefined;›ring_primary?: string | undefined;
ring_primary?: string | undefined;›letter_spacing_tight?: string | undefined;
letter_spacing_tight?: string | undefined;›dark_mode_settings?: DarkModeSettings | undefined;
dark_mode_settings?: DarkModeSettings | undefined;›primary_color?: string | undefined;
primary_color?: string | undefined;›background_color?: string | undefined;
background_color?: string | undefined;›text_color?: string | undefined;
text_color?: string | undefined;›token_overrides?: UITokenOverrides | undefined;
token_overrides?: UITokenOverrides | undefined;›space_unit?: string | undefined;
space_unit?: string | undefined;›card?: string | undefined;
card?: string | undefined;›card_foreground?: string | undefined;
card_foreground?: string | undefined;›popover?: string | undefined;
popover?: string | undefined;›popover_foreground?: string | undefined;
popover_foreground?: string | undefined;›primary_foreground?: string | undefined;
primary_foreground?: string | undefined;›secondary?: string | undefined;
secondary?: string | undefined;›secondary_foreground?: string | undefined;
secondary_foreground?: string | undefined;›accent?: string | undefined;
accent?: string | undefined;›accent_foreground?: string | undefined;
accent_foreground?: string | undefined;›ring?: string | undefined;
ring?: string | undefined;›foreground?: string | undefined;
foreground?: string | undefined;›foreground_inverse?: string | undefined;
foreground_inverse?: string | undefined;›secondary_text?: string | undefined;
secondary_text?: string | undefined;›muted?: string | undefined;
muted?: string | undefined;›border?: string | undefined;
border?: string | undefined;›border_hover?: string | undefined;
border_hover?: string | undefined;›divider?: string | undefined;
divider?: string | undefined;›input_background?: string | undefined;
input_background?: string | undefined;›input_border?: string | undefined;
input_border?: string | undefined;›input_focus_border?: string | undefined;
input_focus_border?: string | undefined;›background_subtle?: string | undefined;
background_subtle?: string | undefined;›background_hover?: string | undefined;
background_hover?: string | undefined;›primary_hover?: string | undefined;
primary_hover?: string | undefined;›error?: string | undefined;
error?: string | undefined;›error_background?: string | undefined;
error_background?: string | undefined;›error_border?: string | undefined;
error_border?: string | undefined;›warning?: string | undefined;
warning?: string | undefined;›warning_background?: string | undefined;
warning_background?: string | undefined;›warning_border?: string | undefined;
warning_border?: string | undefined;›warning_text?: string | undefined;
warning_text?: string | undefined;›success?: string | undefined;
success?: string | undefined;›success_background?: string | undefined;
success_background?: string | undefined;›success_border?: string | undefined;
success_border?: string | undefined;›info?: string | undefined;
info?: string | undefined;›info_background?: string | undefined;
info_background?: string | undefined;›radius_md?: string | undefined;
radius_md?: string | undefined;›radius_lg?: string | undefined;
radius_lg?: string | undefined;›radius_xl?: string | undefined;
radius_xl?: string | undefined;›radius_2xl?: string | undefined;
radius_2xl?: string | undefined;›radius_2xs?: string | undefined;
radius_2xs?: string | undefined;›radius_xs?: string | undefined;
radius_xs?: string | undefined;›radius_full?: string | undefined;
radius_full?: string | undefined;›border_width_thin?: string | undefined;
border_width_thin?: string | undefined;›border_width_regular?: string | undefined;
border_width_regular?: string | undefined;›scrollbar_track?: string | undefined;
scrollbar_track?: string | undefined;›scrollbar_thumb?: string | undefined;
scrollbar_thumb?: string | undefined;›scrollbar_thumb_hover?: string | undefined;
scrollbar_thumb_hover?: string | undefined;›shadow_color?: string | undefined;
shadow_color?: string | undefined;›shadow_light_color?: string | undefined;
shadow_light_color?: string | undefined;›shadow_medium_color?: string | undefined;
shadow_medium_color?: string | undefined;›success_shadow?: string | undefined;
success_shadow?: string | undefined;›success_background_light?: string | undefined;
success_background_light?: string | undefined;›button_ripple?: string | undefined;
button_ripple?: string | undefined;›dialog_backdrop?: string | undefined;
dialog_backdrop?: string | undefined;›space_0u?: string | undefined;
space_0u?: string | undefined;›space_1u?: string | undefined;
space_1u?: string | undefined;›space_2u?: string | undefined;
space_2u?: string | undefined;›space_3u?: string | undefined;
space_3u?: string | undefined;›space_4u?: string | undefined;
space_4u?: string | undefined;›space_5u?: string | undefined;
space_5u?: string | undefined;›space_6u?: string | undefined;
space_6u?: string | undefined;›space_7u?: string | undefined;
space_7u?: string | undefined;›space_8u?: string | undefined;
space_8u?: string | undefined;›space_10u?: string | undefined;
space_10u?: string | undefined;›space_12u?: string | undefined;
space_12u?: string | undefined;›space_14u?: string | undefined;
space_14u?: string | undefined;›space_16u?: string | undefined;
space_16u?: string | undefined;›space_24u?: string | undefined;
space_24u?: string | undefined;›font_size_2xs?: string | undefined;
font_size_2xs?: string | undefined;›font_size_xs?: string | undefined;
font_size_xs?: string | undefined;›font_size_sm?: string | undefined;
font_size_sm?: string | undefined;›font_size_md?: string | undefined;
font_size_md?: string | undefined;›font_size_lg?: string | undefined;
font_size_lg?: string | undefined;›font_size_xl?: string | undefined;
font_size_xl?: string | undefined;›font_size_2xl?: string | undefined;
font_size_2xl?: string | undefined;›font_size_3xl?: string | undefined;
font_size_3xl?: string | undefined;›size_8u?: string | undefined;
size_8u?: string | undefined;›size_10u?: string | undefined;
size_10u?: string | undefined;›size_12u?: string | undefined;
size_12u?: string | undefined;›size_18u?: string | undefined;
size_18u?: string | undefined;›size_20u?: string | undefined;
size_20u?: string | undefined;›size_24u?: string | undefined;
size_24u?: string | undefined;›size_32u?: string | undefined;
size_32u?: string | undefined;›size_36u?: string | undefined;
size_36u?: string | undefined;›size_40u?: string | undefined;
size_40u?: string | undefined;›size_45u?: string | undefined;
size_45u?: string | undefined;›size_50u?: string | undefined;
size_50u?: string | undefined;›shadow_sm?: string | undefined;
shadow_sm?: string | undefined;›shadow_md?: string | undefined;
shadow_md?: string | undefined;›shadow_lg?: string | undefined;
shadow_lg?: string | undefined;›shadow_xl?: string | undefined;
shadow_xl?: string | undefined;›shadow_success?: string | undefined;
shadow_success?: string | undefined;›ring_primary?: string | undefined;
ring_primary?: string | undefined;›letter_spacing_tight?: string | undefined;
letter_spacing_tight?: string | undefined;›children: React.ReactNode;
children: React.ReactNode;<DeploymentInitialized/>
<DeploymentInitialized /> is the quiet branch. It waits for the deployment request to settle before it renders its children.
import { DeploymentProvider, DeploymentInitialized } from '@wacht/nextjs';export default function DeploymentInitializedUsage() { return ( <> <DeploymentProvider publicKey={PUBLIC_KEY}> <DeploymentInitialized>{children}</DeploymentInitialized> </DeploymentProvider> </> );}<DeploymentInitializing/>
<DeploymentInitializing /> is the inverse of <DeploymentInitialized />. It exists for the short loading branch before the main app can render.
import { DeploymentProvider, DeploymentInitializing, DeploymentInitialized } from '@wacht/nextjs';export default function DeploymentInitializingUsage() { return ( <> <DeploymentProvider publicKey={PUBLIC_KEY}> <DeploymentInitializing>Loading…</DeploymentInitializing> <DeploymentInitialized>{children}</DeploymentInitialized> </DeploymentProvider> </> );}<DefaultStylesProvider/>
<DefaultStylesProvider /> wraps the stock shared components with their default style context. It is useful when you want the built-in UI to look correct without rebuilding the styling layer yourself.
import { DefaultStylesProvider, SignInForm } from '@wacht/nextjs';export default function DefaultStylesProviderUsage() { return ( <> <DefaultStylesProvider> <SignInForm /> </DefaultStylesProvider> </> );}<SignedIn/>
<SignedIn /> is the small client-side branch for authenticated UI. It waits for the session to settle and renders its children only when the current session includes an active sign-in.
import { SignedIn, UserButton } from '@wacht/nextjs';export default function SignedInUsage() { return ( <> <SignedIn> <UserButton /> </SignedIn> </> );}<SignedOut/>
<SignedOut /> is the inverse branch. It renders only when the current session does not have an active sign-in, so it is the clean way to keep sign-in prompts and hosted redirects out of the signed-in experience.
import { SignedOut } from '@wacht/nextjs';export default function SignedOutUsage() { return ( <> <SignedOut> <button>Sign in</button> </SignedOut> </> );}<NavigateToSignIn/>
<NavigateToSignIn /> is the redirect-only control component for the hosted sign-in path. It runs the navigation helper on mount and then gets out of the way.
import { SignedOut, NavigateToSignIn } from '@wacht/nextjs';export default function NavigateToSignInUsage() { return ( <> <SignedOut> <NavigateToSignIn /> </SignedOut> </> );}<RequireActiveTenancy/>
<RequireActiveTenancy /> is the tenancy gate for apps that are organized around organizations and workspaces. It keeps scoped UI out of the way until the current session has a valid place to land.
import { RequireActiveTenancy } from '@wacht/nextjs';export default function RequireActiveTenancyUsage() { return ( <> <RequireActiveTenancy> {children} </RequireActiveTenancy> </> );}