@sberbusiness/triplex-next-mcp-server 1.46.0-beta → 1.50.0-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/README.md +7 -7
  2. package/bundle/components/Amount.md +2 -1
  3. package/bundle/components/AmountField.md +222 -323
  4. package/bundle/components/Avatar.md +138 -146
  5. package/bundle/components/Badge.md +2 -1
  6. package/bundle/components/BodyPage.md +2 -1
  7. package/bundle/components/Button.md +5 -1
  8. package/bundle/components/ButtonDropdownExtended.md +3 -1
  9. package/bundle/components/ButtonIcon.md +3 -1
  10. package/bundle/components/Calendar.md +3 -1
  11. package/bundle/components/CardAction.md +1 -0
  12. package/bundle/components/CardStatic.md +402 -0
  13. package/bundle/components/CheckboxTree.md +157 -215
  14. package/bundle/components/CheckboxTreeExtended.md +7 -7
  15. package/bundle/components/CheckboxXGroup.md +2 -1
  16. package/bundle/components/Chip.md +2 -1
  17. package/bundle/components/ChipGroup.md +1 -1
  18. package/bundle/components/ChipMonthYearPicker.md +6 -5
  19. package/bundle/components/ChipMultiselect.md +4 -1
  20. package/bundle/components/ChipOptions.md +2 -1
  21. package/bundle/components/ChipSort.md +4 -1
  22. package/bundle/components/ChipSuggest.md +7 -6
  23. package/bundle/components/CollapsibleTree.md +10 -5
  24. package/bundle/components/CollapsibleTreeExtended.md +8 -6
  25. package/bundle/components/ComposedKeyDownListener.md +4 -3
  26. package/bundle/components/Confirm.md +346 -281
  27. package/bundle/components/DateField.md +7 -1
  28. package/bundle/components/DateRange.md +351 -210
  29. package/bundle/components/Divider.md +85 -138
  30. package/bundle/components/DocumentNumberEdit.md +173 -214
  31. package/bundle/components/Dropdown.md +11 -1
  32. package/bundle/components/Ellipsis.md +131 -147
  33. package/bundle/components/FooterPage.md +4 -1
  34. package/bundle/components/FormField.md +13 -5
  35. package/bundle/components/FormGroup.md +3 -2
  36. package/bundle/components/Gap.md +1 -1
  37. package/bundle/components/Header.md +1 -0
  38. package/bundle/components/HeaderPage.md +3 -1
  39. package/bundle/components/HelpBox.md +2 -1
  40. package/bundle/components/IconWrapper.md +10 -6
  41. package/bundle/components/ImageGallery.md +2 -1
  42. package/bundle/components/ImageGalleryExtended.md +2 -1
  43. package/bundle/components/IslandAccordion.md +6 -1
  44. package/bundle/components/KeyDownListener.md +3 -2
  45. package/bundle/components/LightBox.md +15 -1
  46. package/bundle/components/List.md +2 -1
  47. package/bundle/components/ListActionItem.md +2 -1
  48. package/bundle/components/ListItem.md +3 -1
  49. package/bundle/components/ListItemControlsButton.md +2 -1
  50. package/bundle/components/ListItemSelectable.md +2 -1
  51. package/bundle/components/ListMaster.md +2 -2
  52. package/bundle/components/ListMasterFooter.md +2 -1
  53. package/bundle/components/ListMasterHeader.md +2 -1
  54. package/bundle/components/ListSortable.md +2 -1
  55. package/bundle/components/ListSortableItem.md +2 -1
  56. package/bundle/components/ListTableItem.md +10 -7
  57. package/bundle/components/LoaderMiddle.md +5 -1
  58. package/bundle/components/LoaderScreen.md +7 -1
  59. package/bundle/components/LoaderSmall.md +10 -4
  60. package/bundle/components/MaskedField.md +3 -1
  61. package/bundle/components/MediaWidth.md +2 -1
  62. package/bundle/components/MobileView.md +2 -1
  63. package/bundle/components/ModalWindow.md +4 -1
  64. package/bundle/components/MonthYearField.md +19 -5
  65. package/bundle/components/Notification.md +1 -0
  66. package/bundle/components/Overlay.md +7 -2
  67. package/bundle/components/Pagination.md +1 -7
  68. package/bundle/components/Radio.md +238 -115
  69. package/bundle/components/RadioXGroup.md +259 -0
  70. package/bundle/components/RadioYGroup.md +266 -0
  71. package/bundle/components/SegmentedControl.md +505 -158
  72. package/bundle/components/SelectExtendedField.md +2 -1
  73. package/bundle/components/SelectField.md +4 -1
  74. package/bundle/components/Skeleton.md +140 -69
  75. package/bundle/components/Slider.md +389 -97
  76. package/bundle/components/SliderRange.md +486 -105
  77. package/bundle/components/Spoiler.md +245 -63
  78. package/bundle/components/StatusTracker.md +386 -94
  79. package/bundle/components/Step.md +257 -68
  80. package/bundle/components/Stepper.md +355 -102
  81. package/bundle/components/StepperExtended.md +633 -0
  82. package/bundle/components/SuggestField.md +1061 -96
  83. package/bundle/components/SwipeableArea.md +7 -7
  84. package/bundle/components/Tabs.md +266 -92
  85. package/bundle/components/TabsExtended.md +18 -18
  86. package/bundle/components/TabsLine.md +302 -127
  87. package/bundle/components/TagColor.md +187 -66
  88. package/bundle/components/TagGroup.md +184 -48
  89. package/bundle/components/TextField.md +8 -4
  90. package/bundle/components/TextareaField.md +279 -70
  91. package/bundle/components/ThemeProvider.md +2 -1
  92. package/bundle/components/Tooltip.md +6 -3
  93. package/bundle/components/TopOverlay.md +17 -1
  94. package/bundle/components/TreeView.md +16 -7
  95. package/bundle/components/TriggerClickOnKeyDownEvent.md +277 -0
  96. package/bundle/components/UploadZone.md +318 -0
  97. package/bundle/guides/codestyle.md +16 -1
  98. package/bundle/guides/commits.md +47 -1
  99. package/bundle/guides/context.md +4 -1
  100. package/bundle/guides/tests.md +23 -2
  101. package/bundle/manifest.json +78 -29
  102. package/bundle/release-notes/1.47.0.mdx +115 -0
  103. package/bundle/release-notes/1.48.0.mdx +68 -0
  104. package/bundle/release-notes/1.49.0.mdx +85 -0
  105. package/bundle/release-notes/1.50.0.mdx +35 -0
  106. package/bundle/release-notes/1.51.0.mdx +7 -0
  107. package/bundle/tokens.json +163 -13
  108. package/dist/index.js +220 -6
  109. package/dist/index.js.map +1 -1
  110. package/package.json +1 -1
@@ -1,23 +1,21 @@
1
1
  ---
2
2
  component: Step
3
- category: Navigation
4
- figma-node: ""
5
- figma-file: ""
6
- related: [Stepper, Tooltip]
3
+ category: Step
4
+ related: [Stepper, Tooltip, Text]
7
5
  tokens:
8
- - --triplex-next-Step-Background_Default
9
- - --triplex-next-Step-Background_Active
10
- - --triplex-next-Step-Background_Done
11
- - --triplex-next-Step-Background_Warning
12
- - --triplex-next-Step-Background_Error
13
- - --triplex-next-Step-Background_Disabled
14
- - --triplex-next-Step-Color_Default
15
- - --triplex-next-Step-Color_Active
16
- - --triplex-next-Step-Color_Done
17
- - --triplex-next-Step-Color_Warning
18
- - --triplex-next-Step-Color_Error
19
- - --triplex-next-Step-Color_Disabled
20
- stories: ""
6
+ - Step.Background_Active
7
+ - Step.Background_Default
8
+ - Step.Background_Disabled
9
+ - Step.Background_Done
10
+ - Step.Background_Error
11
+ - Step.Background_Warning
12
+ - Step.Color_Active
13
+ - Step.Color_Default
14
+ - Step.Color_Disabled
15
+ - Step.Color_Done
16
+ - Step.Color_Error
17
+ - Step.Color_Warning
18
+ stories: stories/Step/Step.stories.tsx
21
19
  version: "1.0"
22
20
  ---
23
21
 
@@ -25,92 +23,182 @@ version: "1.0"
25
23
 
26
24
  ## Назначение
27
25
 
28
- Визуальный «кружок с номером шага» для stepper-интерфейсов. Показывает статус
29
- (`default`/`active`/`done`/`warning`/`error`/`disabled`) через цветовой стейт.
30
- Опционально оборачивается в `Tooltip` (hover), если передан `children`.
26
+ Круглый индикатор одного шага: номер внутри кружка, цвет фона и цвет номера кодируют статус
27
+ (`DEFAULT` / `DONE` / `ACTIVE` / `ERROR` / `WARNING` / `DISABLED`). Компонент рисует ровно один
28
+ шаг — ряд шагов и связь между ними собирает потребитель. Если передан `children`, кружок
29
+ оборачивается в `Tooltip`, раскрывающийся по наведению.
31
30
 
32
- Используй когда: нужен отдельный индикатор шага (например, внутри кастомного
33
- stepper-а). Для готового пошагового виджета — `Stepper`.
34
- Не используй когда: нужен текстовый label шага — добавь его рядом, `Step`
35
- отрисовывает только номер в кружке.
31
+ Используй когда: нужно показать номер и состояние отдельного шага внутри своей вёрстки
32
+ пошагового сценария — так его использует `IslandAccordion` для нумерации секций.
36
33
 
37
- ---
38
-
39
- ## Файловая структура
40
-
41
- ```text
42
- src/components/Step/
43
- ├── Step.tsx # FC
44
- ├── enums.ts # EStepStatus, EStepPosition
45
- ├── index.ts
46
- └── styles/Step.module.less
47
- ```
34
+ Не используй когда:
48
35
 
49
- Также экспортируется утилита `calcPosition(stepCount, i)` — вычисляет
50
- `EStepPosition` (первый/последний/в середине) для списка шагов.
36
+ - Нужен готовый горизонтальный степпер с переключением шагов, подписями и клавиатурной
37
+ навигацией — возьми `Stepper` (или `StepperExtended` для произвольного состава шагов).
38
+ `Step` в реализацию `Stepper` не входит: у того собственный `StepperStep`.
39
+ - Нужен кликабельный элемент. `Step` рендерит `<div>` без роли, фокуса и обработчиков —
40
+ интерактивность придётся навешивать снаружи, вместе с ролью и клавиатурой.
41
+ - Нужно показать статус без номера — возьми `Marker` или `MarkerStatus`.
51
42
 
52
43
  ---
53
44
 
54
45
  ## Варианты и props
55
46
 
56
- ### `IStepProps`
47
+ ### Обязательные props
48
+
49
+ | Prop | Тип | Описание |
50
+ |---|---|---|
51
+ | `step` | `number` | Номер шага. Рендерится внутри кружка через `Text` (`B1`, semibold). Компонент не форматирует и не ограничивает значение: двузначные номера помещаются, кружок под содержимое не растягивается |
52
+ | `status` | `EStepStatus` | Состояние шага. Определяет **только** пару цветов — фон кружка и цвет номера |
57
53
 
58
- | Prop | Тип | Default | Описание |
54
+ ### Опциональные props
55
+
56
+ | Prop | Тип | По умолчанию | Описание |
59
57
  |---|---|---|---|
60
- | `step` | `number` | — | Число, отображаемое внутри кружка. |
61
- | `status` | `EStepStatus` | — | Цветовой стейт (см. ниже). |
62
- | `position?` | `EStepPosition` | `Default` | Влияет на `alignTip` опционального Tooltip'а. |
63
- | `children?` | `ReactNode` | — | Контент Tooltip'а. Если не передан — Tooltip не рендерится. |
64
- | `...HTMLAttributes<HTMLDivElement>` | — | — | Прокидываются на корневой `<div>`. |
58
+ | `size` | `EComponentSize` | `EComponentSize.MD` | Размер кружка. SM и MD дают 28px, LG — 32px |
59
+ | `position` | `EStepPosition` | `EStepPosition.Default` | Позиция шага в ряду. Влияет **только** на выравнивание указателя подсказки и потому имеет смысл лишь вместе с `children` |
60
+ | `children` | `React.ReactNode` | — | Содержимое подсказки. Без него подсказка не создаётся и `Tooltip` не монтируется вовсе |
65
61
 
66
- ### `EStepStatus`
62
+ Остальные props — стандартные атрибуты `div`
63
+ (`IStepProps extends React.HTMLAttributes<HTMLDivElement>`), уходят на корневой элемент
64
+ через `...rest`.
67
65
 
68
- `DEFAULT` / `DONE` / `ACTIVE` / `ERROR` / `WARNING` / `DISABLED`.
66
+ ### Размер и статус независимы
69
67
 
70
- Маппинг на CSS-классы 1-к-1 через `statusToClassNameMap`.
68
+ Две оси не пересекаются: `size` отвечает за геометрию, `status` — за пару цветов. Любая
69
+ комбинация допустима, поэтому матрицу 3×6 целиком покрывает story `VisualTests`,
70
+ а документационные stories показывают оси по отдельности.
71
71
 
72
- ### `EStepPosition`
72
+ ### `position` и подсказка
73
73
 
74
- | Value | Поведение (alignTip) |
75
- |---|---|
76
- | `XFirst` | `ETooltipAlign.START` |
77
- | `Default` | `ETooltipAlign.CENTER` |
78
- | `XLast` | `ETooltipAlign.END` |
74
+ `position` отображается на `alignTip` подсказки: `XFirst` → `START`, `Default` → `CENTER`,
75
+ `XLast` → `END`. Для крайних шагов ряда указатель прижимается к краю, чтобы подсказка
76
+ не выходила за границы ряда. Без `children` prop ни на что не влияет.
77
+
78
+ Значение для ряда шагов считает экспортируемый хелпер `calcPosition(stepCount, i)`:
79
+ `XFirst` для `i === 0`, `XLast` для последнего, иначе `Default`. Для ряда из одного шага
80
+ возвращает `XFirst` — проверка на первый шаг идёт первой.
81
+
82
+ ---
83
+
84
+ ## Дизайн-токены
79
85
 
80
- `calcPosition(total, i)` возвращает `XFirst`/`XLast`/`Default` для удобства
81
- сборки списка шагов.
86
+ Переопределяются через `ThemeProvider` (prop `tokens`) — см. `ThemeProvider-ai.md` →
87
+ «Как переопределять токены». Значения по умолчанию — `src/components/DesignTokens/components/Step.ts`.
88
+
89
+ ```text
90
+ Step.Background_Default
91
+ Step.Background_Done
92
+ Step.Background_Active
93
+ Step.Background_Error
94
+ Step.Background_Warning
95
+ Step.Background_Disabled
96
+ Step.Color_Default
97
+ Step.Color_Done
98
+ Step.Color_Active
99
+ Step.Color_Error
100
+ Step.Color_Warning
101
+ Step.Color_Disabled
102
+ ```
103
+
104
+ По паре токенов (`Background_*` + `Color_*`) на каждое значение `EStepStatus`; добавление
105
+ статуса означает и два новых токена. Цвет номера задаётся селектором `& > span` — он попадает
106
+ на элемент, который рендерит `Text`.
107
+
108
+ Размеры (28 / 32px, `border-radius: 50%`) заданы литералами в `styles/Step.module.less` — они
109
+ специфичны для компонента. Брейкпоинт адаптива берётся из LESS-переменной `@screen-sm-max`.
82
110
 
83
111
  ---
84
112
 
85
113
  ## Инварианты
86
114
 
87
- - **Рендер числа через `<Text size=B1 weight=SEMIBOLD>`** — фикс типографики для совпадения с дизайном.
88
- - **Tooltip рендерится только при наличии `children`** — без children компонент возвращает голый `<div>`.
89
- - **Tooltip: `toggleType="hover"`, `size=SM`** — не менять без согласования.
90
- - **Step — `FC`**, ref не пробрасывается (корневой div доступен только через обёртку Tooltip — по-разному в двух ветках рендера).
91
- - **Публичные enums** (`EStepStatus`, `EStepPosition`) + функция `calcPosition` — часть публичного API.
115
+ - `forwardRef<HTMLDivElement>` — не убирать. Ref всегда указывает на корневой `<div class="step">`,
116
+ и в варианте с подсказкой тоже: внешний ref мерджится с внутренним через
117
+ `setForwardedRef` (`src/helpers/setForwardedRef.ts`).
118
+ - Внутренний ref на корневой `<div>` обязателен: он уходит в `Tooltip` как `targetRef` —
119
+ относительно этого узла считается позиция подсказки. Убрать внутренний ref или перевесить
120
+ его на другой элемент нельзя.
121
+ - Корневой элемент — `<div>`. Кружок центрует содержимое через `display: flex`; смена тега
122
+ сломает вёрстку и типизацию props.
123
+ - `displayName` — `"Step"`. Не менять.
124
+ - Значения `EStepStatus` (`"default"` / `"done"` / `"active"` / `"error"` / `"warning"` /
125
+ `"disabled"`) совпадают с именами CSS-классов в `Step.module.less` и с суффиксами токенов
126
+ `Step.Background_*` / `Step.Color_*`. Переименование значения enum — ломающее изменение
127
+ сразу в трёх местах.
128
+ - Значения `EStepPosition` — `PascalCase` (`Default` / `XFirst` / `XLast`), в отличие от
129
+ остальных enum'ов библиотеки. Это часть публичного API, приводить к общему виду нельзя.
130
+ - Подсказка монтируется только при непустом `children`. Оборачивать кружок в `Tooltip`
131
+ безусловно нельзя: пустая подсказка перехватывала бы наведение.
132
+ - `EStepStatus.DISABLED` — только цвет. Ни `pointer-events`, ни `aria-disabled` компонент
133
+ не выставляет, подсказка у выключенного шага продолжает работать.
134
+ - Экспорты `Step`, `IStepProps`, `calcPosition`, `EStepStatus` и `EStepPosition` идут в barrel
135
+ `src/components/Step/index.ts` — сохранять. `calcPosition` внутри компонента не используется,
136
+ но входит в публичный API: он нужен потребителю, который собирает ряд шагов.
137
+ - `className` деструктурируется из props и мерджится через `clsx`, поэтому в `...rest`
138
+ его нет и перезатереть базовые классы он не может.
92
139
 
93
140
  ---
94
141
 
95
142
  ## Accessibility
96
143
 
97
- - Компонент — чисто визуальный (`<div>` с числом); сам по себе ARIA-ролью не наделён.
98
- - В составе stepper-а потребитель обязан обеспечить семантику (`role="list"` / `role="listitem"` / `aria-current="step"` на активном шаге). См. `Stepper-AI`.
99
- - Tooltip показывается только на hover — для пользователей клавиатуры текст подсказки недоступен. Если содержимое tooltip важно, дублируй его видимым лейблом рядом со Step.
144
+ - Собственной ARIA-роли нет: корневой `<div>` — неинтерактивный контейнер, в порядок фокуса
145
+ не попадает, обработчиков клавиатуры у компонента нет.
146
+ - Номер шага — единственное, что читает скринридер. Смысл шага в разметку не попадает:
147
+ текст подсказки живёт в `Tooltip`, который раскрывается по наведению или клику мышью
148
+ и с клавиатуры недоступен. Если шаг должен быть понятен без мыши, опиши его видимым
149
+ текстом рядом в своей вёрстке.
150
+ - Статус кодируется только цветом. Дублируй его видимым текстом на стороне потребителя.
151
+ - Одного `aria-label` на `Step` недостаточно: корневой `<div>` без роли получает роль
152
+ `generic`, которой [спецификация HTML-AAM](https://www.w3.org/TR/html-aria/) запрещает
153
+ доступное имя, — атрибут попадёт в разметку через `...rest`, но скринридер его не
154
+ озвучит. Если имя нужно именно на шаге, передай вместе с ним роль, допускающую
155
+ именование: `<Step step={2} status={EStepStatus.ERROR} role="img" aria-label="Шаг 2, ошибка" />`.
156
+ - Ряд шагов семантики списка не создаёт: если нужна структура, оберни шаги в `<ol>`/`<li>`
157
+ на стороне потребителя.
158
+ - Компонент не хардкодит текстовые строки: содержимое подсказки и любые `aria-label` задаёт
159
+ потребитель. Библиотека мультиязычная.
100
160
 
101
161
  ---
102
162
 
103
163
  ## Связанные компоненты
104
164
 
105
- - `Stepper` — готовый виджет пошаговой навигации, использует Step внутри через `StepperStep` / `StepperStepIcon`.
106
- - `Tooltip` — оборачивает Step при наличии children.
107
- - `Typography.Text` — используется для рендера номера.
165
+ - `Stepper` — готовый горизонтальный степпер с подписями, выбором шага и клавиатурной
166
+ навигацией. Альтернатива, когда нужен весь сценарий целиком, а не отдельный индикатор.
167
+ Общего кода со `Step` нет: у `Stepper` собственный `StepperStep`.
168
+ - `Tooltip` — рендерится вокруг кружка, когда передан `children`. `Step` фиксирует
169
+ `size={ETooltipSize.SM}` и `toggleType="hover"`, а из props потребителя прокидывает
170
+ только выравнивание указателя (`alignTip`) — остальное настроить нельзя. `disableAdaptiveMode`
171
+ не передаётся, поэтому на экранах до `SM_MAX` включительно подсказка открывается
172
+ в адаптивном (полноэкранном) режиме.
173
+ - `Text` — рендерит номер шага (`ETextSize.B1`, `EFontWeightText.SEMIBOLD`). Цвет номера
174
+ задаётся снаружи, селектором `& > span` в стилях `Step`.
175
+ - `IslandAccordion` — потребитель: нумерует секции аккордеона, передавая `Step` номер,
176
+ статус и `size`. Опирается на то, что `Step` рисует только кружок, без внешних отступов.
108
177
 
109
178
  ---
110
179
 
111
180
  ## Stories
112
181
 
113
- Отдельных stories нет (используется внутри stories `Stepper`).
182
+ Основные истории: `stories/Step/Step.stories.tsx`
183
+ Файлы примеров: `stories/Step/examples/`
184
+
185
+ | Story | Example file | Что демонстрирует |
186
+ |---|---|---|
187
+ | `Playground` | `Playground.tsx` | Интерактивный контроль `step`, `status`, `size`, `position` и текста подсказки |
188
+ | `Default` | `Default.tsx` | Минимальный шаг: обязательны только `step` и `status` |
189
+ | `Sizes` | `Sizes.tsx` | Размеры SM / MD / LG при одном статусе |
190
+ | `Statuses` | `Statuses.tsx` | Все шесть значений `EStepStatus` при одном размере |
191
+ | `WithTooltip` | `WithTooltip.tsx` | Шаг с подсказкой: `children` становится её содержимым |
192
+ | `Example` | `Example.tsx` | Ряд шагов платёжного сценария, `position` считается через `calcPosition` |
193
+ | `VisualTests` | `VisualTests.tsx` | Матрица размеров × статусов, двузначные номера и раскрытая подсказка (открывается `play`) — для скриншот-тестов |
194
+
195
+ Из скриншот-тестов исключены (`testRunner: { skip: true }`) `Playground`, `Default` и
196
+ `WithTooltip`: первые два визуально дублируют `Statuses`, а закрытая подсказка
197
+ неотличима от обычного шага — раскрытая снимается в `VisualTests`, где её открывает
198
+ `play`. Не добавляй им скриншоты: это дубли, которые придётся поддерживать.
199
+
200
+ Story ID участвуют в именах baseline-скриншотов (`step--sizes--xs.png` и т.п.), поэтому
201
+ переименование story требует перегенерации baseline и удаления осиротевших файлов.
114
202
 
115
203
  ---
116
204
 
@@ -118,4 +206,105 @@ src/components/Step/
118
206
 
119
207
  | Дата | Изменение |
120
208
  |---|---|
121
- | 2026-04-18 | Создан документ |
209
+ | 2026-09-24 | Создан документ. AI-рефакторинг: `Step` переведён с `React.FC` на `forwardRef` (внешний ref мерджится с внутренним, который уходит в `Tooltip` как `targetRef`), JSDoc на компоненте и дефолтах props, `renderContent()` заменён на вычисляемый один раз элемент, приведён к порядку LESS. Добавлены unit-тесты (`__tests__/Step.test.tsx`), stories созданы по modern pattern (`stories/Step/`). |
210
+
211
+ ---
212
+
213
+ ## Примеры использования
214
+
215
+ ### Default
216
+
217
+ `stories/Step/examples/Default.tsx`
218
+
219
+ ```tsx
220
+ import React from "react";
221
+ import { Step, EStepStatus } from "@sberbusiness/triplex-next";
222
+
223
+ export const Default = () => <Step step={1} status={EStepStatus.DEFAULT} />;
224
+ ```
225
+
226
+ ### Sizes
227
+
228
+ `stories/Step/examples/Sizes.tsx`
229
+
230
+ ```tsx
231
+ import React from "react";
232
+ import { Step, EComponentSize, EStepStatus } from "@sberbusiness/triplex-next";
233
+
234
+ const SIZES = Object.values(EComponentSize);
235
+
236
+ export const Sizes = () => (
237
+ <div style={{ display: "flex", flexDirection: "column", gap: 16 }}>
238
+ {SIZES.map((size, index) => (
239
+ <div key={size}>
240
+ <div style={{ marginBottom: 8, fontSize: 16, fontWeight: 700 }}>{size.toUpperCase()}</div>
241
+ <Step step={index + 1} status={EStepStatus.ACTIVE} size={size} />
242
+ </div>
243
+ ))}
244
+ </div>
245
+ );
246
+ ```
247
+
248
+ ### Statuses
249
+
250
+ `stories/Step/examples/Statuses.tsx`
251
+
252
+ ```tsx
253
+ import React from "react";
254
+ import { Step, EStepStatus } from "@sberbusiness/triplex-next";
255
+
256
+ const STATUSES = Object.values(EStepStatus);
257
+
258
+ export const Statuses = () => (
259
+ <div style={{ display: "flex", flexDirection: "column", gap: 16 }}>
260
+ {STATUSES.map((status, index) => (
261
+ <div key={status}>
262
+ <div style={{ marginBottom: 8, fontSize: 16, fontWeight: 700 }}>{status.toUpperCase()}</div>
263
+ <Step step={index + 1} status={status} />
264
+ </div>
265
+ ))}
266
+ </div>
267
+ );
268
+ ```
269
+
270
+ ### WithTooltip
271
+
272
+ `stories/Step/examples/WithTooltip.tsx`
273
+
274
+ ```tsx
275
+ import React from "react";
276
+ import { Step, EStepStatus } from "@sberbusiness/triplex-next";
277
+
278
+ export const WithTooltip = () => (
279
+ <Step step={2} status={EStepStatus.ACTIVE}>
280
+ Заполните реквизиты получателя
281
+ </Step>
282
+ );
283
+ ```
284
+
285
+ ### Example
286
+
287
+ `stories/Step/examples/Example.tsx`
288
+
289
+ ```tsx
290
+ import React from "react";
291
+ import { Step, calcPosition, EStepStatus } from "@sberbusiness/triplex-next";
292
+
293
+ const STEPS = [
294
+ { hint: "Реквизиты получателя заполнены", status: EStepStatus.DONE },
295
+ { hint: "Проверьте сумму и назначение платежа", status: EStepStatus.ACTIVE },
296
+ { hint: "Подписание доступно после проверки", status: EStepStatus.DEFAULT },
297
+ { hint: "Отправка доступна после подписания", status: EStepStatus.DISABLED },
298
+ ];
299
+
300
+ export const Example = () => (
301
+ <div style={{ display: "flex", alignItems: "center", gap: 16 }}>
302
+ {STEPS.map(({ hint, status }, index) => (
303
+ <Step key={hint} step={index + 1} status={status} position={calcPosition(STEPS.length, index)}>
304
+ {hint}
305
+ </Step>
306
+ ))}
307
+ </div>
308
+ );
309
+ ```
310
+