diff --git a/apps/web/AGENTS.md b/apps/web/AGENTS.md index 2f2d7c0d..32a7321a 100644 --- a/apps/web/AGENTS.md +++ b/apps/web/AGENTS.md @@ -16,7 +16,7 @@ | Data Fetching | Pinia Colada (`@pinia/colada`) + `@memohai/sdk` | | Forms | vee-validate + `@vee-validate/zod` + Zod | | i18n | vue-i18n (en / zh) | -| Icons | FontAwesome (primary: fas/far/fab) + lucide-vue-next (secondary) | +| Icons | lucide-vue-next (primary) + `@memohai/icon` (brand/provider icons) | | Toast | vue-sonner | | Tables | @tanstack/vue-table | | Markdown | markstream-vue + Shiki + Mermaid + KaTeX | @@ -308,8 +308,9 @@ const form = useForm({ ### Icon Usage -- **FontAwesome** (primary): Global ``, full `fas`/`far`/`fab` sets + custom search icons registered in `main.ts` -- **Lucide** (secondary): Direct imports ``, ``, used for theme toggle +- **Lucide** (primary): Direct component imports from `lucide-vue-next`. Example: `import { Plus, Search, Bot } from 'lucide-vue-next'` → ``. Used for all UI icons (actions, navigation, status indicators, etc.). +- **`@memohai/icon`** (brand icons): Workspace package (`packages/icons/`) providing AI provider, search engine, and channel platform SVG icons as Vue components. Example: `import { Openai, Claude } from '@memohai/icon'`. +- **Do NOT use FontAwesome** for new code. Legacy FontAwesome usage remains only in commented-out code blocks. Always use Lucide for UI icons and `@memohai/icon` for brand logos. ### Notification Pattern @@ -424,6 +425,7 @@ Chat supports two transport modes: **Server-Sent Events (SSE)** and **WebSocket* - Style with Tailwind utility classes; avoid `