Init commit

This commit is contained in:
Denozordec
2026-07-20 19:28:56 +07:00
commit d71b45d86f
122 changed files with 8439 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
# Документация EvoFirewall
- Интеграция с auth-portal — TODO (`docs/integrate-auth-portal.md`)
- Интеграция с EvoBGP (prefix source) — TODO (`docs/integrate-evobgp.md`)
- UI design contract — TODO (surface `frame`, kit `reui-kit/`)
+71
View File
@@ -0,0 +1,71 @@
# UI Design Contract (EvoFirewall)
Единый контракт ops-приложений семейства (vps-tracker / CFDM / EvoBGP / **EvoFirewall**). Surface: **ReUI Frame**. Kit: `apps/web/src/components/reui-kit/`.
Карта: [llms.txt](https://reui.io/llms.txt) · [Styling](https://reui.io/docs/styling) · [License](https://reui.io/docs/license-setup) · [Blocks](https://reui.io/blocks) · [MCP](https://reui.io/docs/mcp) · [Agent skills](https://reui.io/docs/agent-skills)
## Surface
Project lock: **`surface: frame`**. Ops / list / dashboard / detail / settings — только **Frame**, не shadcn Card как shell. Не смешивать Card и Frame на одном ops-экране.
## Canonical PRO references
| Зона | Block | Preview |
|------|-------|---------|
| Shell | `app-shell-12` | https://reui.io/preview/base/app-shell-12 |
| KPI | `stats-12` | https://reui.io/preview/base/stats-12 |
| Dashboard | `dashboard-1` | https://reui.io/preview/base/dashboard-1 |
| Lists | `data-grid-filtering-2` | https://reui.io/preview/base/data-grid-filtering-2 |
| Settings | `settings-16` | https://reui.io/preview/base/settings-16 |
| Auth | `auth-13` | https://reui.io/preview/base/auth-13 |
| Empty | `empty-state-12` | https://reui.io/preview/base/empty-state-12 |
| Forms | `form-7` → Sheet | https://reui.io/preview/base/form-7 |
## Kit API (`reui-kit/`) — целевой
| Component | Role |
|-----------|------|
| `ResourcePage` | Frame + line tabs + Filters + DataGrid |
| `KpiStatGrid` | KPI tiles |
| `OpsDashboard` | KPI + charts + attention |
| `SettingsShell` | settings nav + Outlet |
| `DetailPanel` | detail Frame sections |
## Shared App Shell chrome
Эталон: EvoBGP / CFDM + [app-shell-12](https://reui.io/preview/base/app-shell-12).
| Токен / зона | Значение |
|--------------|----------|
| `--sidebar-width` | `240px` |
| Header | `h-12`, sticky, `border-b` |
| `main` | `gap-4 md:gap-6`, `px-4 py-4 md:px-6 md:py-5` |
App Switcher: auth-portal `GET /api/v1/app-switcher`. Планируемый app id: **`fw`**.
## MCP workflow
1. MCP `user-reui``search` / `get_block` / `get_component` with `surface: "frame"`
2. Cite `previewUrl` + `docsUrl`
3. CLI from `apps/web`: `pnpm dlx shadcn@latest add @reui/...`
4. Adapt into kit — do not hand-roll KPI/grid/settings
5. `validate_usage` / `get_audit_checklist`
Primitives: MCP `plugin-shadcn-shadcn` + `@evofw/ui`.
## License
```env
# apps/web/.env.local
REUI_LICENSE_KEY=
```
`apps/web/components.json``Authorization: Bearer ${REUI_LICENSE_KEY}`.
## Forbidden
- Card as ops list/dashboard shell
- Hand-rolled tables when ReUI DataGrid exists
- Hand-rolled KPI when `KpiStatGrid` exists
- Mixing Card and Frame on one ops screen
- Raw `bg-emerald-*` / `space-y-*`