docs: describe shared design system and catalog blocks

This commit is contained in:
2026-09-08 07:09:06 +03:00
parent ac6c1ecc60
commit 30683b8b73
3 changed files with 109 additions and 15 deletions
+26 -13
View File
@@ -28,20 +28,32 @@ npm run preview:catalog
## Компоненты и работа с примерами
В дереве Storybook доступны шесть групп:
В дереве доступны два блока, 9 групп / 30 историй:
| Группа | Что показывает |
| Блок / группа | Что показывает |
| --- | --- |
| `BrokerageAccountList` | Счета со сводкой по нескольким валютам, недоступной или пустой сводкой и длинным названием. |
| `PositionCard` | Акцию с положительным результатом, облигацию с отрицательным, прочий инструмент и позицию без оценки. |
| `RecentEvents` | Полученные события, загрузку, ошибку, пустой результат и неизвестную ожидаемую сумму. |
| `PortfolioRefreshState` с `PortfolioTotals` | Сохранённые суммы при фоновом обновлении и его ошибке, локальный retry. |
| `StateView` | Пустое состояние и ошибку, с действием и без него. |
| `AccountPageLoading` через `LoadingSkeleton` | Реальный skeleton заголовка, сводки и строк страницы счёта. |
| `Design System/Foundations` | Цвета и семантические роли, типографику, интервалы, радиусы, тени и breakpoints из действующей темы. |
| `Design System/Components/StateView` | Четыре empty/error варианта с действием и без. |
| `Design System/Components/LoadingSkeleton` | Общую доступную busy-область с нейтральными structural shapes. |
| `Design System/Components/Button` | Прямой Mantine Button: primary, default, subtle, loading, disabled; локальное действие и keyboard interaction. |
| `Product/BrokerageAccountList` | Сводки счетов в нескольких валютах, недоступную/пустую сводку и длинное название. |
| `Product/PositionCard` | Акцию с положительным результатом, облигацию с отрицательным, прочий инструмент и позицию без оценки. |
| `Product/RecentEvents` | Полученные события, loading/error/empty и неизвестную ожидаемую сумму. |
| `Product/PortfolioRefreshState` с `PortfolioTotals` | Сохранённые суммы при обновлении и ошибке, локальный retry. |
| `Product/AccountPageLoading` | Реальный skeleton заголовка, сводки и строк страницы счёта. |
Стандартные Mantine primitives видны внутри этих компонентов. Отдельных копий
библиотечных demos или обёрток ради каталога нет. Каталог не заявляет полноту:
отсутствие компонента не запрещает его использование в приложении.
Быстрые входы: [Design System — цвета](http://localhost:6006/?path=/story/design-system-foundations--colors)
и [Product — карточка позиции](http://localhost:6006/?path=/story/product-positioncard--stock-gain).
Все исходные 21 истории сохранены; 9 новых добавляют foundations и общие примеры.
Бизнес-компоненты остаются в entities/pages, а общие StateView и LoadingSkeleton
— в shared/ui. Button показан напрямую: новое имя-wrapper не вводится.
Каталог не перечисляет весь Mantine или все компоненты приложения. AppShell
с product navigation не объявлен компонентом общего набора. Отсутствие компонента
в каталоге не запрещает его использование. Foundations показывает используемые
шкалы, включая встроенные Mantine defaults; локальные размеры и особые тени
не объявляются глобальными токенами. [Дизайн-система](design-system.md) описывает
ownership и правила расширения.
Выберите историю в дереве, чтобы открыть её состояние в Canvas. Docs описывает
назначение, ограничения и свойства группы, а также её примеры. Controls меняют
@@ -55,10 +67,11 @@ npm run preview:catalog
можно менять без сброса args. Изолированный iframe позволяет отдельно проверить
компонент на узком экране; навигацией самой витрины управляет Storybook.
Preview использует экспортируемую app theme, Mantine CSS, application styles,
Preview и приложение используют один public API `shared/theme`: theme,
CSSVariablesResolver и базовые styles вместе с Mantine CSS. Preview использует
русскую i18n и фиксированную светлую схему без чтения сохранённой темы.
Stories находятся рядом с существующими presentation components и импортируют
их реализации. Отдельных tokens нет. Error StateView сохраняет alert semantics,
их реализации. Токены и их семантические роли принадлежат shared/theme. Error StateView сохраняет alert semantics,
skeleton — busy-область с декоративными фигурами без фокуса. Проверяйте доступность
действий и ссылок с клавиатуры вместе с визуальным состоянием.