'use client';
import { Info, Lightbulb, AlertTriangle } from 'lucide-react';
import type { EditorHint } from '@/lib/edit/scene-editor-surface';
interface HintRailProps {
readonly hints?: readonly EditorHint[];
}
/**
* Reserved AI inline-coach surface. Renders nothing in Phase 1 (surfaces
* return [] for hints). Layout slot is wired so future phases can populate
* it without restructuring the shell.
*/
export function HintRail({ hints }: HintRailProps) {
if (!hints || hints.length === 0) return null;
return (
{hints.map((hint) => (
))}
);
}
const ICONS = {
info: Info,
suggestion: Lightbulb,
warning: AlertTriangle,
} as const;
const SEVERITY_STYLES = {
info: 'border-zinc-200 bg-white text-zinc-700 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-200',
suggestion:
'border-amber-200 bg-amber-50 text-amber-900 dark:border-amber-900/40 dark:bg-amber-950/40 dark:text-amber-100',
warning:
'border-rose-200 bg-rose-50 text-rose-900 dark:border-rose-900/40 dark:bg-rose-950/40 dark:text-rose-100',
} as const;
function HintCard({ hint }: { readonly hint: EditorHint }) {
const Icon = ICONS[hint.severity];
return (
{hint.message}
{hint.action && (
)}
);
}