refactor: establish local frontend workspace boundaries
Frontend security / security (push) Successful in 9s
Frontend verify / verify (push) Successful in 5m27s
Frontend security / security (pull_request) Successful in 10s
Frontend verify / verify (pull_request) Successful in 5m24s
Conventional commits / commits (pull_request) Failing after 26s
Frontend security / security (push) Successful in 9s
Frontend verify / verify (push) Successful in 5m27s
Frontend security / security (pull_request) Successful in 10s
Frontend verify / verify (pull_request) Successful in 5m24s
Conventional commits / commits (pull_request) Failing after 26s
OpenSpec change: evolve-frontend-stack
This commit is contained in:
@@ -28,7 +28,8 @@ staged diff с полной редакцией секретов, затем за
|
||||
`Dockerfile` имеет targets `development` (Vite HMR и proxy `/api/` во внутренний backend)
|
||||
и `production` (nginx на 8080, SPA fallback и same-origin API proxy). Node соответствует `.nvmrc`.
|
||||
Build context ограничен `.dockerignore`; `.env`, local DB и host node_modules
|
||||
не попадают в image.
|
||||
не попадают в image. Изменение `packages/tokens` или `packages/ui` требует rebuild development
|
||||
image, если локальный запуск использует bind-mount только `src`/`public`.
|
||||
|
||||
```bash
|
||||
docker build --target development -t wealthledger-frontend:development .
|
||||
@@ -194,3 +195,33 @@ Commits и PR titles — Conventional Commits, включая `spec:`. Верс
|
||||
администратором, обязательны `verify`, `security`, `commits`; теги `v*` защищены.
|
||||
Workflow сам не включает эти настройки. Отдельное review approval для одного
|
||||
владельца не требуется. Npm publishing, deploy и Gitea Releases не включены.
|
||||
|
||||
## Локальные пакеты
|
||||
|
||||
`packages/tokens` — private npm workspace с единственным export
|
||||
`@wealthledger/tokens/tokens.json`. `packages/ui` экспортирует собранные
|
||||
`@wealthledger/ui/theme` (JS + declarations) и `@wealthledger/ui/styles.css`.
|
||||
Корневой export `@wealthledger/ui` содержит EntryCard, StateView и LoadingSkeleton;
|
||||
Потребители импортируют компоненты напрямую из `@wealthledger/ui`.
|
||||
CSS явно подключается после Mantine; providers остаются в приложении/Storybook.
|
||||
Тема доступна через `@wealthledger/ui/theme`; compatibility re-exports удалены.
|
||||
|
||||
JSON не требует сборки. `npm ci` связывает workspaces, а существующие команды
|
||||
разработки, проверок и сборки сначала выполняют `npm run build:packages`.
|
||||
Library build использует отдельный Vite config без app plugins и TypeScript
|
||||
для declarations. После изменения package sources перезапустите `npm run dev`
|
||||
или `npm run dev:catalog`; отдельный watch-процесс пока не нужен.
|
||||
Начальная версия manifest взята из приложения; отдельный release-процесс
|
||||
и публикация не настроены.
|
||||
|
||||
Private `@wealthledger/icons` экспортирует `AddIcon`, `EditIcon`, `DeleteIcon`
|
||||
и type `IconProps`. Единственный source рисунка — TSX в `packages/icons/src/svg`;
|
||||
поставка содержит ESM/declarations, без raw SVG, CSS, Mantine и motion.
|
||||
React — peer/external. Размер `size` по умолчанию 24, `strokeWidth` — 1.5;
|
||||
цвет наследуется через `currentColor`, SVG props можно передать явно.
|
||||
В action используйте декоративный `<AddIcon size={20} strokeWidth={2} />`,
|
||||
доступное имя задавайте кнопке. Standalone пример:
|
||||
`<EditIcon aria-hidden={false} role="img" aria-label="Редактирование" />`.
|
||||
Поддерживается также стандартный `aria-labelledby`; подпись выбирает caller.
|
||||
Card/Cards используют пакетные Add/Edit/Delete с прежними размерами/strokeWidth.
|
||||
Restore/category SVG и предметный BankOperationIcon остаются в приложении.
|
||||
|
||||
Reference in New Issue
Block a user