// ============================================================
// controls/types.ts — Widget 类型定义（与 index.ts 分离以避免循环引用）
// ============================================================

/**
 * 所有 widget 组件的统一 Props（非泛型）。
 *
 * 不设类型参数的原因：WIDGET_MAP 需要统一存储不同值类型的组件，
 * 带泛型的 WidgetProps<string> 和 WidgetProps<number> 因函数参数逆变
 * 而互不兼容（ComponentType 协变检查失败），改为统一 unknown 接口，
 * 各组件内部通过类型断言收窄到已知类型。
 */
export interface WidgetProps {
   value?: unknown;
   onChange?: (value: unknown) => void;
   disabled?: boolean;
   /** 从 param_schema 提取的控件专属配置（placeholder / options / min / max 等） */
   config: Record<string, unknown>;
}
