"use client";
import type { AiHostSelectCopy } from "./copy";
import CheckCircleIcon from "@mui/icons-material/CheckCircle";
import { Box } from "@12-apps/ui/mui/Box";
import { Stack } from "@12-apps/ui/mui/Stack";
import { Text } from "@12-apps/ui/typography/Text";
import type { AiHostGuide } from "../guide";
import { HostBrandAvatar } from "./ai-icons";
/** One selectable assistant card (brand mark + name + kind, checked when active). */
function HostCard({
host,
active,
onSelect,
}: {
host: AiHostGuide;
active: boolean;
onSelect: () => void;
}): React.JSX.Element {
return (
theme.transitions.create(["border-color", "background-color"]),
"&:hover": { borderColor: "primary.main" },
}}
>
{host.label}
{host.kind}
{active && (
)}
);
}
/**
* Step 1 of the guided AI connect flow: the owner picks a single assistant
* (Claude.ai, Claude Desktop, ChatGPT, Codex) from a card grid. Picking a card
* advances straight to the next step — no separate "Próximo" button. Selection
* is controlled (persisted by the onboarding flow) so a refresh resumes with the
* same assistant highlighted.
*/
export function HostSelectStep({
hosts,
selectedId,
onSelect,
copy,
}: {
hosts: readonly AiHostGuide[];
selectedId: string | null;
onSelect: (hostId: string) => void;
copy: AiHostSelectCopy;
}): React.JSX.Element {
return (
{copy.heading}
{copy.caption}
{hosts.map((host) => (
onSelect(host.id)}
/>
))}
);
}