-
+
{t('mcp.noServers')}
{t('mcp.noServersDesc')}
@@ -133,7 +132,7 @@ export function McpServerList({ servers, onEdit, onDelete, runtimeStatus, active
-
+
{name}
{typeInfo.label}
@@ -171,9 +170,9 @@ export function McpServerList({ servers, onEdit, onDelete, runtimeStatus, active
title={t('mcp.reconnect' as TranslationKey)}
>
{isReconnecting ? (
-
+
) : (
-
+
)}
)}
@@ -187,7 +186,7 @@ export function McpServerList({ servers, onEdit, onDelete, runtimeStatus, active
onClick={() => handleToggle(name, true)}
>
{isToggling ? (
-
+
) : null}
{t('mcp.enable' as TranslationKey)}
@@ -198,7 +197,7 @@ export function McpServerList({ servers, onEdit, onDelete, runtimeStatus, active
className="h-8 w-8"
onClick={() => onEdit(name, server)}
>
-
+
diff --git a/src/components/plugins/PluginCard.tsx b/src/components/plugins/PluginCard.tsx
index 040659c..d847966 100644
--- a/src/components/plugins/PluginCard.tsx
+++ b/src/components/plugins/PluginCard.tsx
@@ -4,8 +4,7 @@ import { useState } from 'react';
import { Badge } from '@/components/ui/badge';
import { Button } from '@/components/ui/button';
import { Card, CardHeader, CardTitle, CardDescription, CardContent } from '@/components/ui/card';
-import { HugeiconsIcon } from "@hugeicons/react";
-import { ArrowDown01Icon, ArrowUp01Icon, ZapIcon } from "@hugeicons/core-free-icons";
+import { CaretDown, CaretUp, Lightning } from "@phosphor-icons/react";
export interface SkillInfo {
name: string;
@@ -37,7 +36,7 @@ export function PluginCard({ plugin, onSelect }: PluginCardProps) {
>
-
+
/{displayName}
@@ -62,9 +61,9 @@ export function PluginCard({ plugin, onSelect }: PluginCardProps) {
}}
>
{expanded ? (
-
+
) : (
-
+
)}
diff --git a/src/components/plugins/PluginDetail.tsx b/src/components/plugins/PluginDetail.tsx
index b584105..772cefe 100644
--- a/src/components/plugins/PluginDetail.tsx
+++ b/src/components/plugins/PluginDetail.tsx
@@ -3,8 +3,7 @@
import { Badge } from '@/components/ui/badge';
import { Button } from '@/components/ui/button';
import { Separator } from '@/components/ui/separator';
-import { HugeiconsIcon } from "@hugeicons/react";
-import { Cancel01Icon, ZapIcon } from "@hugeicons/core-free-icons";
+import { X, Lightning } from "@phosphor-icons/react";
import type { SkillInfo } from './PluginCard';
interface PluginDetailProps {
@@ -23,7 +22,7 @@ export function PluginDetail({ plugin, onClose }: PluginDetailProps) {
-
+
/{displayName}
{isProject ? 'Project' : 'Global'}
@@ -34,7 +33,7 @@ export function PluginDetail({ plugin, onClose }: PluginDetailProps) {
diff --git a/src/components/plugins/PluginList.tsx b/src/components/plugins/PluginList.tsx
index ca6e425..c8ab96c 100644
--- a/src/components/plugins/PluginList.tsx
+++ b/src/components/plugins/PluginList.tsx
@@ -4,8 +4,7 @@ import { useState } from 'react';
import { Input } from '@/components/ui/input';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import { PluginCard, type SkillInfo } from './PluginCard';
-import { HugeiconsIcon } from "@hugeicons/react";
-import { Search01Icon, GlobeIcon, FolderOpenIcon, Plug01Icon } from "@hugeicons/core-free-icons";
+import { MagnifyingGlass, Globe, FolderOpen, Plug } from "@phosphor-icons/react";
interface PluginListProps {
plugins: SkillInfo[];
@@ -31,7 +30,7 @@ export function PluginList({ plugins, onSelect }: PluginListProps) {
return (
-
+
setSearch(e.target.value)}
@@ -49,16 +48,16 @@ export function PluginList({ plugins, onSelect }: PluginListProps) {
All ({plugins.length})
-
+
Global ({globalCount})
-
+
Project ({projectCount})
{pluginCount > 0 && (
-
+
Plugin ({pluginCount})
)}
diff --git a/src/components/project/FilePreview.tsx b/src/components/project/FilePreview.tsx
index 7c6a22e..672fd10 100644
--- a/src/components/project/FilePreview.tsx
+++ b/src/components/project/FilePreview.tsx
@@ -1,8 +1,7 @@
"use client";
import { useState, useEffect } from "react";
-import { HugeiconsIcon } from "@hugeicons/react";
-import { ArrowLeft01Icon, Copy01Icon, Tick01Icon, Loading02Icon } from "@hugeicons/core-free-icons";
+import { ArrowLeft, Copy, Check, SpinnerGap } from "@phosphor-icons/react";
import { Button } from "@/components/ui/button";
import { Badge } from "@/components/ui/badge";
import { ScrollArea } from "@/components/ui/scroll-area";
@@ -78,7 +77,7 @@ export function FilePreview({ filePath, onBack }: FilePreviewProps) {
{/* Header */}
@@ -88,9 +87,9 @@ export function FilePreview({ filePath, onBack }: FilePreviewProps) {
@@ -112,7 +111,7 @@ export function FilePreview({ filePath, onBack }: FilePreviewProps) {
{loading ? (
-
+
) : error ? (
diff --git a/src/components/project/FileTree.tsx b/src/components/project/FileTree.tsx
index 8fc2a1c..adc0cb0 100644
--- a/src/components/project/FileTree.tsx
+++ b/src/components/project/FileTree.tsx
@@ -1,8 +1,7 @@
"use client";
import { useState, useEffect, useCallback, useRef } from "react";
-import { HugeiconsIcon } from "@hugeicons/react";
-import { RefreshIcon, Search01Icon, SourceCodeIcon, CodeIcon, File01Icon } from "@hugeicons/core-free-icons";
+import { ArrowsClockwise, MagnifyingGlass, FileCode, Code, File } from "@phosphor-icons/react";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import { cn } from "@/lib/utils";
@@ -43,19 +42,19 @@ function getFileIcon(extension?: string): ReactNode {
case "lua":
case "php":
case "zig":
- return
;
+ return
;
case "json":
case "yaml":
case "yml":
case "toml":
- return
;
+ return
;
case "md":
case "mdx":
case "txt":
case "csv":
- return
;
+ return
;
default:
- return
;
+ return
;
}
}
@@ -188,7 +187,7 @@ export function FileTree({ workingDirectory, onFileSelect, onFileAdd }: FileTree
{/* Search + Refresh */}
-
+
-
+
{t('fileTree.refresh')}
@@ -212,7 +211,7 @@ export function FileTree({ workingDirectory, onFileSelect, onFileAdd }: FileTree
{loading && tree.length === 0 ? (
) : tree.length === 0 ? (
diff --git a/src/components/project/TaskCard.tsx b/src/components/project/TaskCard.tsx
index 2234e80..58248f9 100644
--- a/src/components/project/TaskCard.tsx
+++ b/src/components/project/TaskCard.tsx
@@ -1,8 +1,7 @@
"use client";
import { useState, useRef, useEffect } from "react";
-import { HugeiconsIcon } from "@hugeicons/react";
-import { Delete02Icon } from "@hugeicons/core-free-icons";
+import { Trash } from "@phosphor-icons/react";
import { Button } from "@/components/ui/button";
import { cn, parseDBDate } from "@/lib/utils";
import type { TaskItem, TaskStatus } from "@/types";
@@ -133,7 +132,7 @@ export function TaskCard({ task, onUpdate, onDelete }: TaskCardProps) {
onClick={() => onDelete(task.id)}
className="shrink-0 text-muted-foreground hover:text-destructive"
>
-
+
Delete task
)}
diff --git a/src/components/settings/AppearanceSection.tsx b/src/components/settings/AppearanceSection.tsx
index 6081438..84b5df4 100644
--- a/src/components/settings/AppearanceSection.tsx
+++ b/src/components/settings/AppearanceSection.tsx
@@ -9,8 +9,7 @@ import {
resolveShikiThemes,
} from "@/lib/theme/code-themes";
import { useTranslation } from "@/hooks/useTranslation";
-import { HugeiconsIcon } from "@hugeicons/react";
-import { Sun02Icon, Moon02Icon, ComputerDesk01Icon } from "@hugeicons/core-free-icons";
+import { Sun, Moon, Desktop } from "@phosphor-icons/react";
import {
Select,
SelectContent,
@@ -23,9 +22,9 @@ import { cn } from "@/lib/utils";
// ── Theme Mode Pill Selector ────────────────────────────────────────
const MODE_OPTIONS = [
- { value: "light", icon: Sun02Icon, labelKey: "settings.modeLight" as const },
- { value: "dark", icon: Moon02Icon, labelKey: "settings.modeDark" as const },
- { value: "system", icon: ComputerDesk01Icon, labelKey: "settings.modeSystem" as const },
+ { value: "light", icon: Sun, labelKey: "settings.modeLight" as const },
+ { value: "dark", icon: Moon, labelKey: "settings.modeDark" as const },
+ { value: "system", icon: Desktop, labelKey: "settings.modeSystem" as const },
] as const;
function ThemeModePills({
@@ -54,7 +53,7 @@ function ThemeModePills({
: "text-muted-foreground hover:bg-accent hover:text-accent-foreground"
)}
>
-
+
{t(opt.labelKey)}
);
diff --git a/src/components/settings/AssistantWorkspaceSection.tsx b/src/components/settings/AssistantWorkspaceSection.tsx
index 1903e75..dffb4f1 100644
--- a/src/components/settings/AssistantWorkspaceSection.tsx
+++ b/src/components/settings/AssistantWorkspaceSection.tsx
@@ -14,8 +14,7 @@ import {
AlertDialogHeader,
AlertDialogTitle,
} from "@/components/ui/alert-dialog";
-import { HugeiconsIcon } from "@hugeicons/react";
-import { Loading02Icon, CheckmarkCircle02Icon, Cancel01Icon } from "@hugeicons/core-free-icons";
+import { SpinnerGap, CheckCircle, X } from "@phosphor-icons/react";
import { useTranslation } from "@/hooks/useTranslation";
import type { WorkspaceInspectResult } from "@/types";
@@ -426,7 +425,7 @@ export function AssistantWorkspaceSection() {
if (loading) {
return (
-
+
);
}
@@ -445,11 +444,11 @@ export function AssistantWorkspaceSection() {
const renderValidationIcon = () => {
switch (pathValidation) {
case 'checking':
- return
;
+ return
;
case 'valid':
- return
;
+ return
;
case 'invalid':
- return
;
+ return
;
default:
return null;
}
@@ -489,7 +488,7 @@ export function AssistantWorkspaceSection() {
>
{inspecting ? (
<>
-
+
{t('assistant.inspecting')}
>
) : (
@@ -538,7 +537,7 @@ export function AssistantWorkspaceSection() {
disabled={creatingSession}
>
{creatingSession ? (
-
+
) : workspace.state?.onboardingComplete
? t('assistant.redoOnboarding')
: t('assistant.startOnboarding')
@@ -575,7 +574,7 @@ export function AssistantWorkspaceSection() {
disabled={creatingSession}
>
{creatingSession ? (
-
+
) : (
t('assistant.startCheckIn')
)}
@@ -639,7 +638,7 @@ export function AssistantWorkspaceSection() {
>
{refreshingDocs ? (
<>
-
+
{t('assistant.refreshingDocs')}
>
) : (
@@ -714,7 +713,7 @@ export function AssistantWorkspaceSection() {
>
{reindexing ? (
<>
-
+
{t('assistant.indexReindexing')}
>
) : (
@@ -738,7 +737,7 @@ export function AssistantWorkspaceSection() {
>
{archiving ? (
<>
-
+
{t('assistant.organizeArchiving')}
>
) : (
@@ -767,7 +766,7 @@ export function AssistantWorkspaceSection() {
executeSave(true)} disabled={initializing}>
{initializing ? (
<>
-
+
{t('assistant.initializing')}
>
) : (
@@ -792,7 +791,7 @@ export function AssistantWorkspaceSection() {
executeSave(true)} disabled={initializing}>
{initializing ? (
<>
-
+
{t('assistant.initializing')}
>
) : (
@@ -820,7 +819,7 @@ export function AssistantWorkspaceSection() {
executeSave(true)} disabled={initializing}>
{initializing ? (
<>
-
+
{t('assistant.initializing')}
>
) : (
@@ -868,7 +867,7 @@ export function AssistantWorkspaceSection() {