"use client" import { useEffect, useState } from "react" import { motion } from "motion/react" import { Button } from "@ui/components/button" import { Input } from "@ui/components/input" import { Textarea } from "@ui/components/textarea" import { ArrowRight, Brain, Building2, LayoutGrid, Loader2, Plug, Terminal, User2, UserPlus, Users2, } from "lucide-react" import { cn } from "@lib/utils" import { dmSans125ClassName } from "@/lib/fonts" import type { BrainMode } from "./types" export interface AboutValues { name: string about: string workspaceName: string workspaceDomain: string } interface Props { mode: BrainMode onModeChange: (m: BrainMode) => void domain: string | null suggestedWorkspaceName: string defaultName: string avatarUrl: string | null values: AboutValues onChange: (next: AboutValues) => void onContinue: () => void submitting?: boolean } const cardSurfaceStyle = { boxShadow: "0 2.842px 14.211px 0 rgba(0, 0, 0, 0.25), 0.711px 0.711px 0.711px 0 rgba(255, 255, 255, 0.10) inset", } const inputBevelStyle = { boxShadow: "0px 1px 2px 0px rgba(0,43,87,0.1), inset 0px 0px 0px 1px rgba(43,49,67,0.08), inset 0px 1px 1px 0px rgba(0,0,0,0.08), inset 0px 2px 4px 0px rgba(0,0,0,0.02)", } const fieldLabel = "pl-2 pb-2 font-semibold text-[14px] text-[#737373]" const inputClass = "bg-[#0F1217] border border-[rgba(82,89,102,0.2)] rounded-[12px] text-[#fafafa] text-[14px] placeholder:text-[#525D6E] h-12 px-4 shadow-none focus-visible:ring-0 focus-visible:border-[rgba(115,115,115,0.3)] transition-colors" export function StepAbout({ mode, onModeChange, domain, suggestedWorkspaceName, defaultName, avatarUrl, values, onChange, onContinue, submitting, }: Props) { // biome-ignore lint/correctness/useExhaustiveDependencies: one-time initialization when defaults become available useEffect(() => { const patch: Partial = {} if (!values.name && defaultName) patch.name = defaultName if (!values.workspaceName && suggestedWorkspaceName) { patch.workspaceName = suggestedWorkspaceName } if (!values.workspaceDomain && domain) { patch.workspaceDomain = domain } if (Object.keys(patch).length > 0) onChange({ ...values, ...patch }) }, [defaultName, suggestedWorkspaceName, domain]) const canContinue = values.name.trim().length > 0 && values.workspaceName.trim().length > 0 return (

Tell us about you

So your brain sounds like yours, not the docs.

Your name

onChange({ ...values, name: e.target.value })} placeholder="e.g. Mahesh" className={inputClass} style={inputBevelStyle} />

What are you here for?{" "} (optional)