# EvoBGP WebUI SvelteKit-приложение панели управления EvoBGP. Запуск — [docs/quickstart.md](../docs/quickstart.md). Разработка UI **обязательно** следует официальной документации [shadcn-svelte](https://shadcn-svelte.com/docs) и правилам репозитория [.cursor/rules/web-shadcn.mdc](../.cursor/rules/web-shadcn.mdc): максимум нативных компонентов из registry, установка только через CLI в `src/lib/ui/core/`. ## UI-архитектура | Путь | Назначение | | ------------------------ | ------------------------------------------------------------------- | | `src/lib/ui/core/` | shadcn-svelte (только через `npx shadcn-svelte@latest add … -y -o`) | | `src/lib/ui/app/` | Layout, PageHeader, toast (`notify`) | | `src/lib/ui/patterns/` | FormField, AppDataTable, ConfirmDialog, EmptyState | | `src/lib/components/ui/` | Re-export на `ui/core` (совместимость) | Токены темы: `src/routes/layout.css`. Справочник: `src/lib/ui/app/tokens.md`. ## Разработка ```sh npm install npm run dev npm run check npm run lint # prettier --check; обязательно перед PR (CI job web) ``` Из корня репозитория (обе проверки как в CI): ```powershell powershell -NoProfile -File scripts/lint-web.ps1 ``` ```sh sh scripts/lint-web.sh ``` При падении `lint`: `npx prettier --write .` в каталоге `web/`, затем снова `check` + `lint`. Добавление компонентов shadcn (из каталога `web/`): ```sh npx shadcn-svelte@latest add -y -o ```