chore(docs): обновить skill ReUI до 68f0e6fa91 и описать миграцию

Установщик ReUI обновил skill для Claude/Codex/Cursor/OpenCode, правила в AGENTS.md
и MCP-конфиги (ключ только ссылкой на REUI_LICENSE_KEY). План и решения — docs/reui-upgrade.md.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
DenozordecandClaude Sonnet 5.5 committed 2026-10-18 01:58:41 +07:00
1 parent 7c4430d240
commit 4f5026980a
77 files changed
+3278 -941

No files matched your search

+53
View File
@@ -0,0 +1,53 @@
# Обновление ReUI до последней версии
Ветка: `chore/reui-latest` (от `feat/design-preview`). План составлен по ReUI MCP
(`get_agent_skill`, `get_component data-grid|filters`, `get_block data-grid-drag-drop-2`,
`get_project_context`) и документации reui.io.
## Было → стало
| Что | Было | Стало |
|---|---|---|
| Skill ReUI (`.claude/.agents/.cursor/.opencode`) | `3bdbad788a` (в AGENTS.md значилась `668fb463eb`), 20 компонентов | `68f0e6fa91`, 27 компонентов |
| `@tanstack/react-table` | 8.21.3 (`useReactTable`) | 9.3.1 (`useTable` + `dataGridFeatures`) |
| `reui/data-grid/*` | v8-вариант | v9: DnD-строки и колонки, виртуализация, выбор ячеек, `i18n`, `getRowStatus` |
| `reui/filters` | один файл `filters.tsx`, плоский `Filter[]` | каталог `filters/`, дерево `FilterQuery` (группы и правила) |
| `reui/{badge,frame,alert,icon-tile,icon-stack,timeline}` | прежние | обновлены из реестра |
| Примитивы `packages/ui` (button, checkbox, dropdown-menu, input, popover, select, separator, skeleton, spinner, tooltip, scroll-area, button-group) | прежние | обновлены (зависимости реестра) |
| Новые зависимости | — | `@dnd-kit/{core,sortable,modifiers,utilities}`, `@tanstack/react-virtual`, `date-fns` |
## Решения
- Установка через `shadcn add @reui/<имя> --overwrite` из `apps/web` с ключом из `apps/web/.env.local`
(в Git не попадает). Блоки и компоненты ставились целиком: частичное обновление ломает связку
data-grid ↔ TanStack v9.
- Реестр прописывает зависимость `cn` как npm-пакет; в проекте `cn` живёт в
`@authportal/ui/lib/utils`, поэтому импорты `from "cn"` заменены, пакет `cn` не добавлялся.
- Код реестра использует `process.env.NODE_ENV` и неиспользуемые параметры. В `tsconfig.app.json`
добавлен тип `node` и выключены `noUnusedLocals`/`noUnusedParameters` (контроль остаётся за ESLint).
- Старый плоский API фильтров заменён деревом: `flattenFilterConditions(query)` даёт
`{field, operator, values, negated}`. Операторы: `is_not_any_of` → `is_none_of`.
- Русские подписи DataGrid и Filters вынесены в `apps/web/src/lib/reui-ru.ts`
(`DATA_GRID_RU`, `FILTERS_RU`, `FILTER_OPERATORS_RU`) и передаются пропами `i18n`/`labels`/`operatorLabels`.
## Миграция потребителей
1. `PreviewSectionGrid` (`design-preview/section-grid.tsx`) — `useTable`, `ColumnDef<DataGridFeatures, T>`.
2. `AdminUsersGrid` (`reui-kit`) — `useTable`, `ColumnVisibilityState`, `Filters` на `FilterQuery`.
3. Страница входов (`routes/_auth.admin.logins.tsx`) — `useTable` для истории и сессий.
4. «Ссылки приложений» (макет) — настоящее перетаскивание строк через `rowsDraggable` и dnd-kit.
## Проверка
`pnpm --filter web build`, `pnpm --filter web lint`, `pnpm --filter @authportal/api test`;
браузер: все разделы `/design-preview`, ширины 390/820/1180/1440, консоль без ошибок.
Боевые страницы (`/`, `/apps`, `/account`, `/admin/*`) проверяются сборкой и типами:
запуск API не требовался.
## Как обновлять дальше
```bash
cd apps/web
pnpm dlx shadcn@latest add @reui/<имя> --overwrite --yes # REUI_LICENSE_KEY из .env.local
curl.exe -fsSL https://mcp.reui.io/install | node - # skill и правила для агентов (из корня)
```