/* Brainstorm X — Naming wizard. Interactive multi-step flow. */ (function () { const { useState } = React; const DS = window.BrainstormXDesignSystem_f2a458; const { Button, Card, Input, Textarea, Chip, SentimentSlider, ProgressSteps, Badge } = DS; const I = window.BXIcons; const STEPS = ['Basics', 'Keywords', 'Feeling', 'Style', 'Email']; const PROJECT_TYPES = ['Business name', 'Product name', 'App / platform', 'Service name', 'Event name', 'Campaign name']; const QUICK_CHIPS = ['Fun', 'Clever', 'Clean', 'Technical', 'Luxurious', 'Quirky', 'Warm', 'Direct', 'Inventive', 'Trustworthy']; const STYLES = [ ['Auto', 'All styles'], ['Brandable', 'Invented, like Google'], ['Evocative', 'Energy, like Red Bull'], ['Short phrase', 'Like Dollar Shave Club'], ['Compound', 'Blended, like FedEx'], ['Alternate spelling', 'Like Lyft'], ['Real words', 'Like Apple'], ]; const AXES = [['Playful', 'Serious'], ['Premium', 'Affordable'], ['Minimal', 'Expressive'], ['Safe', 'Unusual']]; function Shell({ step, children, onBack, onNext, nextLabel, canBack = true }) { return (
Brainstorm X
{children}
); } function Field({ label, children, hint }) { return (
{label}
{children} {hint &&
{hint}
}
); } function Wizard({ goto }) { const [step, setStep] = useState(0); const [type, setType] = useState('Business name'); const [chips, setChips] = useState({ Quirky: true, Fun: true }); const [styles, setStyles] = useState({ Brandable: true, Evocative: true, Compound: true }); const [kw, setKw] = useState(['quirky', 'cute', 'paws']); const [kwInput, setKwInput] = useState(''); const [axes, setAxes] = useState([28, 62, 40, 70]); const next = () => (step < STEPS.length - 1 ? setStep(step + 1) : goto('invite')); const back = () => setStep(Math.max(0, step - 1)); const toggle = (obj, set, k) => set({ ...obj, [k]: !obj[k] }); const addKw = (e) => { e.preventDefault(); const v = kwInput.trim(); if (v && !kw.includes(v)) setKw([...kw, v]); setKwInput(''); }; const heads = [ ['What are you naming?', "Let's train your naming session — answer a few quick questions and we'll generate your first set of ideas."], ['Add your keywords', 'Add words, themes or existing names that point the AI in the right direction.'], ['Feeling & personality', 'Slide towards the qualities that fit your brand. Add a few quick chips too.'], ['Name style', 'Pick one or more styles. You can always change this later.'], ['Save your naming session', "Enter your email and we'll send a secure magic link. No password needed."], ]; return ( 0} nextLabel={step === STEPS.length - 1 ? 'Send magic link' : 'Continue'}> Step {step + 1} of {STEPS.length}

{heads[step][0]}

{heads[step][1]}

{step === 0 && (<>
{PROJECT_TYPES.map((t) => setType(t)}>{t})}
)} {step === 1 && (<>
setKwInput(e.target.value)} iconLeft={} />
{kw.map((k) => setKw(kw.filter((x) => x !== k))}>{k})}
{}}>corporate {}}>marketplace
)} {step === 2 && (<>
{AXES.map(([l, r], i) => ( setAxes(axes.map((a, j) => (j === i ? v : a)))} /> ))}
{QUICK_CHIPS.map((c) => toggle(chips, setChips, c)}>{c})}
)} {step === 3 && (<>
{STYLES.map(([name, eg]) => { const on = !!styles[name]; return ( ); })}
{['Low', 'Medium', 'High'].map((r) => {r})}
)} {step === 4 && (<> } helper="We'll send a secure magic link to save your session and invite others." />
Your wizard answers are ready — we'll generate 40 names across your selected styles.
)}
); } window.BXWizard = Wizard; })();