refactor: enforce frontend view model boundaries
Frontend verify / commits (pull_request) Successful in 28s
Frontend verify / security (pull_request) Successful in 10s
Frontend verify / verify (pull_request) Successful in 8m19s

This commit is contained in:
2026-09-28 18:48:23 +03:00
parent 5b69003516
commit ca0ad4f824
287 changed files with 8558 additions and 4538 deletions
+11 -11
View File
@@ -262,14 +262,14 @@ Library build использует отдельный Vite config без app plu
Начальная версия 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 остаются в приложении.
Private `@wealthledger/icons` содержит все SVG приложения: действия,
навигацию, contactless/wallet и геометрию `OperationIcon`. Пакет поставляет
ESM, declarations и `@wealthledger/icons/styles.css`; приложение и Storybook
подключают CSS явно. В `src` нет raw SVG и компонентов только для рисования
иконок. Category/kind mapping остаётся в model `entities/bank-card`.
Статичные иконки принимают `IconProps`: `size` по умолчанию 24,
`strokeWidth` 1.5, цвет через `currentColor`. В кнопке иконка декоративная,
имя принадлежит действию. Для самостоятельного изображения передайте
`aria-hidden={false}`, `role="img"` и `aria-label` либо `aria-labelledby`.
Анимации сохраняют hover/focus lifecycle и `prefers-reduced-motion`.