import { useMutation, useQuery } from "@tanstack/react-query"; import { useState } from "react"; import { Loader2 } from "lucide-react"; import { DEFAULT_LOCATION_CODE } from "@/shared/keyword-locations"; import { LocationSelect } from "@/client/components/LocationSelect"; import { useSession } from "@/lib/auth-client"; import { saveOnboardingSite } from "@/serverFunctions/onboardingChat"; import { OnboardingAccountMenu } from "./OnboardingAccountMenu"; import { OnboardingChatConversation } from "./OnboardingChatConversation"; import { invalidateOnboardingChatState, onboardingChatStateQueryOptions, } from "./onboardingChatQueries"; // Full-viewport chat surface. Breaks out of the centered, padded AuthPageShell // with `fixed inset-0` so the chat fills the screen. There's no header bar — // the strategy's first message carries the context — and inner content is // constrained to a narrow column for comfortable reading width. function StrategyShell({ children }: { children: React.ReactNode }) { return (