# Обновление 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`. 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 и правила для агентов (из корня) ```