diff --git a/desktop/src/features/agents/ui/AgentCreationPreview.tsx b/desktop/src/features/agents/ui/AgentCreationPreview.tsx
index 0752b3a267..f46321093e 100644
--- a/desktop/src/features/agents/ui/AgentCreationPreview.tsx
+++ b/desktop/src/features/agents/ui/AgentCreationPreview.tsx
@@ -455,7 +455,7 @@ export function AgentCreationPreview({
className={cn(
"w-[400px] p-3",
isOnboarding &&
- "buzz-onboarding-neutral-theme bg-white text-foreground",
+ "buzz-onboarding-neutral-theme bg-white text-foreground [--buzz-onboarding-cta-label:#fff]",
)}
data-system-color-scheme={isOnboarding ? "light" : undefined}
side="bottom"
diff --git a/desktop/src/features/onboarding/onboardingPreview.ts b/desktop/src/features/onboarding/onboardingPreview.ts
index a940dad29f..4d1770b66e 100644
--- a/desktop/src/features/onboarding/onboardingPreview.ts
+++ b/desktop/src/features/onboarding/onboardingPreview.ts
@@ -15,6 +15,7 @@ export type OnboardingPreviewPage =
| "sign-in-key"
| "forgot-password"
| "backup-options"
+ | "identity-key-help"
| "backup-password"
| "setup"
| "config"
diff --git a/desktop/src/features/onboarding/ui/BackupStep.tsx b/desktop/src/features/onboarding/ui/BackupStep.tsx
index cecef42fe7..cd267540c6 100644
--- a/desktop/src/features/onboarding/ui/BackupStep.tsx
+++ b/desktop/src/features/onboarding/ui/BackupStep.tsx
@@ -66,6 +66,7 @@ type BackupStepProps = {
direction: OnboardingTransitionDirection;
identityStorage?: IdentityStorage;
onNext: () => void;
+ onOpenIdentityKeyHelp?: () => void;
onOpenPasswordBackup: () => void;
onShowOptions: () => void;
optionsExpanded: boolean;
@@ -85,6 +86,7 @@ export function BackupStep({
direction,
identityStorage,
onNext,
+ onOpenIdentityKeyHelp,
onOpenPasswordBackup,
onShowOptions,
optionsExpanded,
@@ -225,13 +227,17 @@ export function BackupStep({
{previewMode ? "Create a private identity key" : "Backup options"}
{previewMode ? (
-
+
This key will be how you log into Buzz. You can use it across
Buzz communities and other platforms.
-
+
) : (
diff --git a/desktop/src/features/onboarding/ui/IdentityKeyHelpDialog.tsx b/desktop/src/features/onboarding/ui/IdentityKeyHelpDialog.tsx
index 35ea79b355..72769f79a0 100644
--- a/desktop/src/features/onboarding/ui/IdentityKeyHelpDialog.tsx
+++ b/desktop/src/features/onboarding/ui/IdentityKeyHelpDialog.tsx
@@ -36,9 +36,11 @@ function rememberIdentityKeyHelpSeen() {
export function IdentityKeyHelpDialog({
inline = false,
+ onPreviewOpen,
previewMode = false,
}: {
inline?: boolean;
+ onPreviewOpen?: () => void;
previewMode?: boolean;
}) {
const [isVisible, setIsVisible] = React.useState(
@@ -56,29 +58,38 @@ export function IdentityKeyHelpDialog({
return () => window.clearTimeout(timeout);
}, [isVisible, previewMode]);
- const trigger = (
-
-
- {previewMode
- ? "Learn how identity keys work"
- : "What’s an identity key?"}
-
-
+ const triggerButton = (
+
+ {previewMode ? "Learn how identity keys work" : "What’s an identity key?"}
+
);
+ if (previewMode && onPreviewOpen) {
+ return inline ? (
+ triggerButton
+ ) : (
+
+ {triggerButton}
+
+ );
+ }
+
+ const trigger =
{triggerButton} ;
+
return (
{inline ? (
@@ -103,17 +114,7 @@ export function IdentityKeyHelpDialog({
className="mt-6 space-y-4 text-pretty text-base leading-7 text-[color:var(--buzz-onboarding-backup-ink)]"
>
-
- Buzz will create a Nostr identity with two parts: a private key
- that signs you in and a public key you can safely share. You can
- find your public identity anytime in Buzz settings.
-
-
- This identity belongs to you, not Buzz, and can move with you to
- another device or compatible Nostr app. Because only you control
- the private key, Buzz can’t reset or recover it. Keep a backup
- somewhere safe, and never share it.
-
+
@@ -121,3 +122,35 @@ export function IdentityKeyHelpDialog({
);
}
+
+function IdentityKeyHelpBody() {
+ return (
+ <>
+
+ Buzz will create a Nostr identity with two parts: a private key that
+ signs you in and a public key you can safely share. You can find your
+ public identity anytime in Buzz settings.
+
+
+ This identity belongs to you, not Buzz, and can move with you to another
+ device or compatible Nostr app. Because only you control the private
+ key, Buzz can’t reset or recover it. Keep a backup somewhere safe, and
+ never share it.
+
+ >
+ );
+}
+
+/** Production identity-key explainer content in the V3 onboarding card treatment. */
+export function IdentityKeyHelpPreviewContent() {
+ return (
+ <>
+
+ What’s an identity key?
+
+
+
+
+ >
+ );
+}
diff --git a/desktop/src/features/onboarding/ui/KeySignInPreview.tsx b/desktop/src/features/onboarding/ui/KeySignInPreview.tsx
index 8256b7d5ae..f29b14749c 100644
--- a/desktop/src/features/onboarding/ui/KeySignInPreview.tsx
+++ b/desktop/src/features/onboarding/ui/KeySignInPreview.tsx
@@ -82,7 +82,12 @@ export function KeySignInPreview({
Enter your private key
-
+
Paste your private key to sign in to Buzz. You can also use a{" "}
setPage("identity-key")}
+ onOpenIdentityKeyHelp={() => setPage("identity-key-help")}
onOpenPasswordBackup={() => setPage("backup-password")}
onShowOptions={() => setPage("backup-options")}
optionsExpanded
@@ -768,6 +770,21 @@ export function OnboardingPreviewApp() {
/>
);
+ } else if (page === "identity-key-help") {
+ content = (
+ setPage("backup-options")}
+ testId="onboarding-preview-identity-key-help"
+ total={journey.totalSteps}
+ >
+
+
+
+
+ );
} else if (page === "backup-password") {
content = (
@@ -35,7 +36,7 @@ export function OnboardingPreviewControls({
-
+
{includeExistingCommunity
? "Join with an invite, create your own community, or reconnect one you already have."
: "Communities are shared spaces where people and agents work together."}
@@ -420,7 +425,12 @@ export function CommunityEntryPreview({
>
{heading}
-
+
{route === "existing"
? "Enter the community URL or an invite link. Your role will be restored when you connect."
: previewVariant === "v3"
diff --git a/desktop/src/features/onboarding/ui/OnboardingPreviewShell.tsx b/desktop/src/features/onboarding/ui/OnboardingPreviewShell.tsx
index e03b784382..75ee3a0c2c 100644
--- a/desktop/src/features/onboarding/ui/OnboardingPreviewShell.tsx
+++ b/desktop/src/features/onboarding/ui/OnboardingPreviewShell.tsx
@@ -75,7 +75,7 @@ export function OnboardingPreviewStep({
{cardLayout ? (