Init commit
This commit is contained in:
@@ -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/`)
|
||||
@@ -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-*`
|
||||
Reference in New Issue
Block a user