diff --git a/apps/x/.claude/launch.json b/apps/x/.claude/launch.json new file mode 100644 index 00000000..3ba43066 --- /dev/null +++ b/apps/x/.claude/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.0.1", + "configurations": [ + { + "name": "renderer-dev", + "runtimeExecutable": "/Users/tusharmagar/Rowboat/rowboat-V2/apps/x/apps/renderer/node_modules/.bin/vite", + "runtimeArgs": ["--port", "5173"], + "port": 5173 + } + ] +} diff --git a/apps/x/apps/renderer/src/components/onboarding/steps/welcome-step.tsx b/apps/x/apps/renderer/src/components/onboarding/steps/welcome-step.tsx index 90bbcd02..4bd4a366 100644 --- a/apps/x/apps/renderer/src/components/onboarding/steps/welcome-step.tsx +++ b/apps/x/apps/renderer/src/components/onboarding/steps/welcome-step.tsx @@ -1,4 +1,5 @@ -import { Loader2, CheckCircle2 } from "lucide-react" +import { Loader2, CheckCircle2, Brain, Plug, ShieldCheck } from "lucide-react" +import { motion } from "motion/react" import { Button } from "@/components/ui/button" import type { OnboardingState } from "../use-onboarding-state" @@ -6,78 +7,145 @@ interface WelcomeStepProps { state: OnboardingState } +const features = [ + { + icon: Brain, + label: "Memory", + desc: "Builds a knowledge graph from your work", + }, + { + icon: Plug, + label: "Connected", + desc: "Syncs email, calendar, and meetings", + }, + { + icon: ShieldCheck, + label: "Private", + desc: "Your data stays local on your machine", + }, +] + export function WelcomeStep({ state }: WelcomeStepProps) { const rowboatState = state.providerStates['rowboat'] || { isConnected: false, isLoading: false, isConnecting: false } return (
- {/* Logo */} - Rowboat + {/* Logo with ambient glow */} + +
+ Rowboat + {/* Tagline badge */} -
+ Your AI coworker, with memory -
+ {/* Main heading */} -

+ Welcome to Rowboat -

-

+ + Connect your Rowboat account for instant access to all models through our gateway — no API keys needed. -

+ - {/* Product preview placeholder */} -
- Product Preview + {/* Feature highlights */} +
+ {features.map((f, i) => ( + +
+ +
+ {f.label} + {f.desc} +
+ ))}
{/* Sign in / connected state */} - {rowboatState.isConnected ? ( -
-
- - Connected to Rowboat + + {rowboatState.isConnected ? ( +
+
+ + Connected to Rowboat +
+
- -
- ) : ( -
- + {rowboatState.isConnecting && ( +

+ Complete sign in in your browser, then return here. +

)} - - {rowboatState.isConnecting && ( -

- Complete sign in in your browser, then return here. -

- )} -
- )} +
+ )} + {/* BYOK link */} -
+ -
+
) }