diff --git a/surfsense_web/app/dashboard/[search_space_id]/settings/page.tsx b/surfsense_web/app/dashboard/[search_space_id]/settings/page.tsx index 48efcd922..d53a6b26c 100644 --- a/surfsense_web/app/dashboard/[search_space_id]/settings/page.tsx +++ b/surfsense_web/app/dashboard/[search_space_id]/settings/page.tsx @@ -87,14 +87,14 @@ function SettingsSidebar({ @@ -229,12 +229,12 @@ function SettingsContent({ initial={{ scale: 0.8, opacity: 0 }} animate={{ scale: 1, opacity: 1 }} transition={{ delay: 0.1, duration: 0.3 }} - className="flex items-center justify-center w-12 h-12 md:w-14 md:h-14 rounded-xl md:rounded-2xl bg-gradient-to-br from-primary/20 to-primary/5 border border-primary/10 shadow-sm shrink-0" + className="flex items-center justify-center w-10 h-10 md:w-14 md:h-14 rounded-lg md:rounded-2xl bg-gradient-to-br from-primary/20 to-primary/5 border border-primary/10 shadow-sm shrink-0" > - +
-

+

{activeItem?.label}

diff --git a/surfsense_web/components/settings/llm-role-manager.tsx b/surfsense_web/components/settings/llm-role-manager.tsx index 2b440e58b..1bf7a3629 100644 --- a/surfsense_web/components/settings/llm-role-manager.tsx +++ b/surfsense_web/components/settings/llm-role-manager.tsx @@ -170,7 +170,7 @@ export function LLMRoleManager({ searchSpaceId }: LLMRoleManagerProps) { const hasError = configsError || preferencesError || globalConfigsError; return ( -
+
{/* Header */}
@@ -179,9 +179,11 @@ export function LLMRoleManager({ searchSpaceId }: LLMRoleManagerProps) { size="sm" onClick={() => refreshConfigs()} disabled={isLoading} - className="flex items-center gap-2" + className="flex items-center gap-2 text-xs md:text-sm h-8 md:h-9" > - + Refresh Configs Configs @@ -190,9 +192,11 @@ export function LLMRoleManager({ searchSpaceId }: LLMRoleManagerProps) { size="sm" onClick={() => refreshPreferences()} disabled={isLoading} - className="flex items-center gap-2" + className="flex items-center gap-2 text-xs md:text-sm h-8 md:h-9" > - + Refresh Preferences Prefs @@ -201,9 +205,9 @@ export function LLMRoleManager({ searchSpaceId }: LLMRoleManagerProps) { {/* Error Alert */} {hasError && ( - - - + + + {(configsError?.message ?? "Failed to load LLM configurations") || (preferencesError?.message ?? "Failed to load preferences") || (globalConfigsError?.message ?? "Failed to load global configurations")} @@ -214,10 +218,10 @@ export function LLMRoleManager({ searchSpaceId }: LLMRoleManagerProps) { {/* Loading State */} {isLoading && ( - +
- - + + {configsLoading && preferencesLoading ? "Loading configurations and preferences..." : configsLoading @@ -231,27 +235,27 @@ export function LLMRoleManager({ searchSpaceId }: LLMRoleManagerProps) { {/* Info Alert */} {!isLoading && !hasError && ( -
+
{availableConfigs.length === 0 ? ( - - - + + + No LLM configurations found. Please add at least one LLM provider in the Agent Configs tab before assigning roles. ) : !isAssignmentComplete ? ( - - - + + + Complete all role assignments to enable full functionality. Each role serves different purposes in your workflow. ) : ( - - - + + + All roles are assigned and ready to use! Your LLM configuration is complete. @@ -259,7 +263,7 @@ export function LLMRoleManager({ searchSpaceId }: LLMRoleManagerProps) { {/* Role Assignment Cards */} {availableConfigs.length > 0 && ( -
+
{Object.entries(ROLE_DESCRIPTIONS).map(([key, role]) => { const IconComponent = role.icon; const currentAssignment = assignments[`${key}_llm_id` as keyof typeof assignments]; @@ -277,28 +281,34 @@ export function LLMRoleManager({ searchSpaceId }: LLMRoleManagerProps) { - +
-
-
- +
+
+
- {role.title} - {role.description} + {role.title} + + {role.description} +
- {currentAssignment && } + {currentAssignment && ( + + )}
- -
- + +
+