refactor: enforce frontend view model boundaries
This commit is contained in:
@@ -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`.
|
||||
|
||||
Reference in New Issue
Block a user