"use client"; import * as React from "react"; import { ModelSelector } from "./model-selector"; import { Button, type ButtonProps } from "@/components/ui/button"; import { cn } from "@/lib/utils"; /** * Opens the shared `ModelSelector` picker from any control (menu item, error card, router card…) * while only relying on its public props: the real trigger is rendered visually hidden and clicked. * */ export interface ModelPickerLauncherHandle { open(): void; } export const ModelPickerLauncher = React.forwardRef void; label?: React.ReactNode; className?: string; variant?: ButtonProps["variant"]; size?: ButtonProps["size"]; icon?: React.ReactNode; hiddenTrigger?: boolean }>(function ModelPickerLauncher({ value = null, onChange, label, className, variant = "outline", size = "md", icon, hiddenTrigger }, ref) { const holder = React.useRef(null); const open = React.useCallback(() => { holder.current?.querySelector("button")?.click(); }, []); React.useImperativeHandle(ref, () => ({ open }), [open]); return ( <> {hiddenTrigger ? null : ( )} ); });