{models.length ? "No model matches." : "Connect a provider first (Settings → Providers)."}
: null} {usableModels.map((m) => (Loading projects…
: null} {projectsQ.error ?Projects are not available yet.
: null} {!projectsQ.isLoading && !projectsQ.error && projectList.length === 0 ? (
Free text + model: provider: project: folder: after: before: role: is: · quote phrases with "…"
Search is unavailable right now.
; if (!data) return null; if (search.isEmpty) { return (No results for “{searchQuery.trim()}”
Try fewer words or remove a filter.
{search.total} result{search.total === 1 ? "" : "s"} · {data.tookMs} ms
> ); } /* ------------------------------------------------------------------------------------------------ * Keyboard shortcuts help * ---------------------------------------------------------------------------------------------- */ const SHORTCUTS: { keys: string[]; label: string; scope: string }[] = [ { keys: ["⌘", "K"], label: "Command palette / search", scope: "Global" }, { keys: ["⌘", "N"], label: "New chat", scope: "Global" }, { keys: ["⌘", "B"], label: "Toggle sidebar", scope: "Global" }, { keys: ["⌘", "/"], label: "Focus the composer", scope: "Chat" }, { keys: ["?"], label: "Open this help (outside inputs)", scope: "Global" }, { keys: ["/"], label: "Search mode inside the palette", scope: "Palette" }, { keys: ["↑", "↓"], label: "Move selection", scope: "Palette" }, { keys: ["↵"], label: "Send message / select item", scope: "Chat · Palette" }, { keys: ["⇧", "↵"], label: "New line in the composer", scope: "Chat" }, { keys: ["Esc"], label: "Stop generation / close sheets and dialogs", scope: "Chat · Global" }, { keys: ["⌫"], label: "Back to commands (empty input)", scope: "Palette" }, ]; export function ShortcutsSheet({ open, onOpenChange }: { open: boolean; onOpenChange: (o: boolean) => void }) { const isMobile = useIsMobile(); return (