@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.
- package/README.md +7 -7
- package/bundle/components/Amount.md +2 -1
- package/bundle/components/AmountField.md +222 -323
- package/bundle/components/Avatar.md +138 -146
- package/bundle/components/Badge.md +2 -1
- package/bundle/components/BodyPage.md +2 -1
- package/bundle/components/Button.md +5 -1
- package/bundle/components/ButtonDropdownExtended.md +3 -1
- package/bundle/components/ButtonIcon.md +3 -1
- package/bundle/components/Calendar.md +3 -1
- package/bundle/components/CardAction.md +1 -0
- package/bundle/components/CardStatic.md +402 -0
- package/bundle/components/CheckboxTree.md +157 -215
- package/bundle/components/CheckboxTreeExtended.md +7 -7
- package/bundle/components/CheckboxXGroup.md +2 -1
- package/bundle/components/Chip.md +2 -1
- package/bundle/components/ChipGroup.md +1 -1
- package/bundle/components/ChipMonthYearPicker.md +6 -5
- package/bundle/components/ChipMultiselect.md +4 -1
- package/bundle/components/ChipOptions.md +2 -1
- package/bundle/components/ChipSort.md +4 -1
- package/bundle/components/ChipSuggest.md +7 -6
- package/bundle/components/CollapsibleTree.md +10 -5
- package/bundle/components/CollapsibleTreeExtended.md +8 -6
- package/bundle/components/ComposedKeyDownListener.md +4 -3
- package/bundle/components/Confirm.md +346 -281
- package/bundle/components/DateField.md +7 -1
- package/bundle/components/DateRange.md +351 -210
- package/bundle/components/Divider.md +85 -138
- package/bundle/components/DocumentNumberEdit.md +173 -214
- package/bundle/components/Dropdown.md +11 -1
- package/bundle/components/Ellipsis.md +131 -147
- package/bundle/components/FooterPage.md +4 -1
- package/bundle/components/FormField.md +13 -5
- package/bundle/components/FormGroup.md +3 -2
- package/bundle/components/Gap.md +1 -1
- package/bundle/components/Header.md +1 -0
- package/bundle/components/HeaderPage.md +3 -1
- package/bundle/components/HelpBox.md +2 -1
- package/bundle/components/IconWrapper.md +10 -6
- package/bundle/components/ImageGallery.md +2 -1
- package/bundle/components/ImageGalleryExtended.md +2 -1
- package/bundle/components/IslandAccordion.md +6 -1
- package/bundle/components/KeyDownListener.md +3 -2
- package/bundle/components/LightBox.md +15 -1
- package/bundle/components/List.md +2 -1
- package/bundle/components/ListActionItem.md +2 -1
- package/bundle/components/ListItem.md +3 -1
- package/bundle/components/ListItemControlsButton.md +2 -1
- package/bundle/components/ListItemSelectable.md +2 -1
- package/bundle/components/ListMaster.md +2 -2
- package/bundle/components/ListMasterFooter.md +2 -1
- package/bundle/components/ListMasterHeader.md +2 -1
- package/bundle/components/ListSortable.md +2 -1
- package/bundle/components/ListSortableItem.md +2 -1
- package/bundle/components/ListTableItem.md +10 -7
- package/bundle/components/LoaderMiddle.md +5 -1
- package/bundle/components/LoaderScreen.md +7 -1
- package/bundle/components/LoaderSmall.md +10 -4
- package/bundle/components/MaskedField.md +3 -1
- package/bundle/components/MediaWidth.md +2 -1
- package/bundle/components/MobileView.md +2 -1
- package/bundle/components/ModalWindow.md +4 -1
- package/bundle/components/MonthYearField.md +19 -5
- package/bundle/components/Notification.md +1 -0
- package/bundle/components/Overlay.md +7 -2
- package/bundle/components/Pagination.md +1 -7
- package/bundle/components/Radio.md +238 -115
- package/bundle/components/RadioXGroup.md +259 -0
- package/bundle/components/RadioYGroup.md +266 -0
- package/bundle/components/SegmentedControl.md +505 -158
- package/bundle/components/SelectExtendedField.md +2 -1
- package/bundle/components/SelectField.md +4 -1
- package/bundle/components/Skeleton.md +140 -69
- package/bundle/components/Slider.md +389 -97
- package/bundle/components/SliderRange.md +486 -105
- package/bundle/components/Spoiler.md +245 -63
- package/bundle/components/StatusTracker.md +386 -94
- package/bundle/components/Step.md +257 -68
- package/bundle/components/Stepper.md +355 -102
- package/bundle/components/StepperExtended.md +633 -0
- package/bundle/components/SuggestField.md +1061 -96
- package/bundle/components/SwipeableArea.md +7 -7
- package/bundle/components/Tabs.md +266 -92
- package/bundle/components/TabsExtended.md +18 -18
- package/bundle/components/TabsLine.md +302 -127
- package/bundle/components/TagColor.md +187 -66
- package/bundle/components/TagGroup.md +184 -48
- package/bundle/components/TextField.md +8 -4
- package/bundle/components/TextareaField.md +279 -70
- package/bundle/components/ThemeProvider.md +2 -1
- package/bundle/components/Tooltip.md +6 -3
- package/bundle/components/TopOverlay.md +17 -1
- package/bundle/components/TreeView.md +16 -7
- package/bundle/components/TriggerClickOnKeyDownEvent.md +277 -0
- package/bundle/components/UploadZone.md +318 -0
- package/bundle/guides/codestyle.md +16 -1
- package/bundle/guides/commits.md +47 -1
- package/bundle/guides/context.md +4 -1
- package/bundle/guides/tests.md +23 -2
- package/bundle/manifest.json +78 -29
- package/bundle/release-notes/1.47.0.mdx +115 -0
- package/bundle/release-notes/1.48.0.mdx +68 -0
- package/bundle/release-notes/1.49.0.mdx +85 -0
- package/bundle/release-notes/1.50.0.mdx +35 -0
- package/bundle/release-notes/1.51.0.mdx +7 -0
- package/bundle/tokens.json +163 -13
- package/dist/index.js +220 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,23 +1,21 @@
|
|
|
1
1
|
---
|
|
2
2
|
component: Step
|
|
3
|
-
category:
|
|
4
|
-
|
|
5
|
-
figma-file: ""
|
|
6
|
-
related: [Stepper, Tooltip]
|
|
3
|
+
category: Step
|
|
4
|
+
related: [Stepper, Tooltip, Text]
|
|
7
5
|
tokens:
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
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
|
-
|
|
29
|
-
(`
|
|
30
|
-
|
|
26
|
+
Круглый индикатор одного шага: номер внутри кружка, цвет фона и цвет номера кодируют статус
|
|
27
|
+
(`DEFAULT` / `DONE` / `ACTIVE` / `ERROR` / `WARNING` / `DISABLED`). Компонент рисует ровно один
|
|
28
|
+
шаг — ряд шагов и связь между ними собирает потребитель. Если передан `children`, кружок
|
|
29
|
+
оборачивается в `Tooltip`, раскрывающийся по наведению.
|
|
31
30
|
|
|
32
|
-
Используй когда:
|
|
33
|
-
|
|
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
|
-
|
|
50
|
-
`
|
|
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
|
-
###
|
|
47
|
+
### Обязательные props
|
|
48
|
+
|
|
49
|
+
| Prop | Тип | Описание |
|
|
50
|
+
|---|---|---|
|
|
51
|
+
| `step` | `number` | Номер шага. Рендерится внутри кружка через `Text` (`B1`, semibold). Компонент не форматирует и не ограничивает значение: двузначные номера помещаются, кружок под содержимое не растягивается |
|
|
52
|
+
| `status` | `EStepStatus` | Состояние шага. Определяет **только** пару цветов — фон кружка и цвет номера |
|
|
57
53
|
|
|
58
|
-
|
|
54
|
+
### Опциональные props
|
|
55
|
+
|
|
56
|
+
| Prop | Тип | По умолчанию | Описание |
|
|
59
57
|
|---|---|---|---|
|
|
60
|
-
| `
|
|
61
|
-
| `
|
|
62
|
-
| `
|
|
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
|
-
|
|
62
|
+
Остальные props — стандартные атрибуты `div`
|
|
63
|
+
(`IStepProps extends React.HTMLAttributes<HTMLDivElement>`), уходят на корневой элемент
|
|
64
|
+
через `...rest`.
|
|
67
65
|
|
|
68
|
-
|
|
66
|
+
### Размер и статус независимы
|
|
69
67
|
|
|
70
|
-
|
|
68
|
+
Две оси не пересекаются: `size` отвечает за геометрию, `status` — за пару цветов. Любая
|
|
69
|
+
комбинация допустима, поэтому матрицу 3×6 целиком покрывает story `VisualTests`,
|
|
70
|
+
а документационные stories показывают оси по отдельности.
|
|
71
71
|
|
|
72
|
-
### `
|
|
72
|
+
### `position` и подсказка
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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
|
-
`
|
|
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
|
-
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
-
|
|
91
|
-
|
|
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
|
-
-
|
|
98
|
-
|
|
99
|
-
-
|
|
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` — готовый
|
|
106
|
-
|
|
107
|
-
|
|
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
|
-
|
|
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-
|
|
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
|
+
|