+
+ {/* Trigger button */}
+
+
+ {/* Dropdown */}
+ {isOpen && (
+
+ {/* Search input */}
+
+
+ setSearchQuery(e.target.value)}
+ className="flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground"
+ />
+
+
+ {/* Options list */}
+
+ {Object.entries(groupedRequesters).map(
+ ([category, items]) => {
+ if (items.length === 0) return null;
+ return (
+
+
+ {categoryLabels[category]}
+
+ {items.map((r) => (
+
+ ))}
+
+ );
+ },
+ )}
+ {filteredRequesters.length === 0 && (
+
+ No results found.
+
+ )}
+
+
+ )}
+
{selectedRequester?.description && (
diff --git a/web/src/i18n/locales/en-US.ts b/web/src/i18n/locales/en-US.ts
index fe50cbf9..ab6b3db7 100644
--- a/web/src/i18n/locales/en-US.ts
+++ b/web/src/i18n/locales/en-US.ts
@@ -244,6 +244,7 @@ const enUS = {
selectProvider: 'Select Provider',
requester: 'Provider Type',
selectRequester: 'Select Provider Type',
+ searchProviders: 'Search providers...',
langbotModelsDescription: 'Cloud models powered by LangBot Space',
credits: 'Credits',
loginWithSpace: 'Login with Space',
diff --git a/web/src/i18n/locales/zh-Hans.ts b/web/src/i18n/locales/zh-Hans.ts
index ebde3e85..d744207b 100644
--- a/web/src/i18n/locales/zh-Hans.ts
+++ b/web/src/i18n/locales/zh-Hans.ts
@@ -234,6 +234,7 @@ const zhHans = {
selectProvider: '选择供应商',
requester: '供应商类型',
selectRequester: '选择供应商类型',
+ searchProviders: '搜索供应商...',
langbotModelsDescription: 'LangBot Space 提供的云端模型',
credits: '积分',
loginWithSpace: '通过 Space 登录',