diff --git a/vibn-frontend/_onboarding/onboarding-entrepreneur.tsx b/vibn-frontend/_onboarding/onboarding-entrepreneur.tsx index ed454c8..cb530af 100644 --- a/vibn-frontend/_onboarding/onboarding-entrepreneur.tsx +++ b/vibn-frontend/_onboarding/onboarding-entrepreneur.tsx @@ -5,12 +5,11 @@ import { WizardQ, WizardFooter, LANE_LABELS, - ChipGroup, - Field, + PresetGroup, } from "./onboarding-primitives"; const ENTREP_TOTAL = 3; -const ENTREP_STEP_NAMES = ["Idea", "Audience", "Look"]; +const ENTREP_STEP_NAMES = ["Idea", "Status", "Look"]; const IDEA_PROMPTS = [ "A community for indie game devs to swap playtesters, with weekly demo nights", @@ -102,36 +101,43 @@ export function EntrepIdea({ value, onChange }) { ); } -const AUDIENCE_PRESETS = [ - "Me and people like me", - "A small community I'm part of", - "Local people in my city", - "Anyone searching for this", - "Other small businesses", - "Hobbyists in a niche I love", +const STATUS_OPTIONS = [ + { + id: "scratch", + label: "We are starting from scratch", + desc: "No code, no wireframes, no assets. Just a clean slate and a fresh vision.", + }, + { + id: "research", + label: "I've done some research I can share", + desc: "I have PDFs, wireframes, landing copy, or user interviews to help guide the build.", + }, + { + id: "existing", + label: "I've already built some of the project", + desc: "I have an existing repo, database schema, or mockups to import.", + }, ]; -function EntrepAudience({ value, onChange }) { - const isPreset = AUDIENCE_PRESETS.includes(value); +function EntrepStatus({ value, onChange }) { return ( <> - onChange(arr[arr.length - 1] || "")} + ({ + id: o.id, + label: o.label, + desc: o.desc, + icon: undefined, + }))} + value={value} + onChange={onChange} + columns={3} + minimal={false} /> - - onChange(e.target.value)} - /> - ); } @@ -282,12 +288,12 @@ export function EntrepreneurPath({ canNext = (data.idea || "").trim().length >= 8; } else if (step === 1) { body = ( - onUpdate({ audience: v })} + onUpdate({ projectStatus: v })} /> ); - canNext = (data.audience || "").trim().length >= 3; + canNext = !!data.projectStatus; } else { body = ( onUpdate({ vibe: v })} />