# EvoBGP WebUI (`@evobgp/web`) SvelteKit-панель управления EvoBGP. Monorepo: `apps/web` + `packages/ui` + `packages/shared`. Правила: [.cursor/rules/web-shadcn.mdc](../../.cursor/rules/web-shadcn.mdc), [frontend-monorepo.mdc](../../.cursor/rules/frontend-monorepo.mdc). ## Структура | Путь | Назначение | | ------------------------------ | ------------------------------------------- | | `packages/ui/src/components/` | shadcn-svelte примитивы (`@evobgp/ui`) | | `src/lib/components/` | PageShell, QueryState, SectionCards, domain | | `src/lib/components/patterns/` | AppDataTable, FormField, ConfirmDialog | | `src/lib/ui/app/` | PageHeader, nav, toast | | `src/lib/queries/` | TanStack Query factories | | `packages/shared/` | API types + Zod contracts | ## Разработка Из корня репозитория: ```powershell pnpm install pnpm --filter @evobgp/web dev pnpm --filter @evobgp/web check pnpm --filter @evobgp/web lint pnpm --filter @evobgp/web build ``` Добавление shadcn-svelte (из `apps/web/`): ```powershell pnpm dlx shadcn-svelte@latest add -y -o ``` Тема: `packages/ui/src/styles/globals.css` → импорт в `src/routes/layout.css`. ## Проверка перед PR `pnpm --filter @evobgp/web check` и `lint` — exit 0 (WEB-19).