@sberbusiness/triplex-next-mcp-server 1.42.0-beta → 1.44.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/bundle/components/AlertProcess.md +3 -2
- package/bundle/components/BodyPage.md +72 -4
- package/bundle/components/Button.md +1 -0
- package/bundle/components/Checkbox.md +7 -1
- package/bundle/components/CheckboxTreeExtended.md +149 -248
- package/bundle/components/CheckboxXGroup.md +2 -0
- package/bundle/components/CheckboxYGroup.md +7 -2
- package/bundle/components/ChipGroup.md +195 -126
- package/bundle/components/CollapsibleTreeExtended.md +6 -1
- package/bundle/components/DatePickerExtended.md +409 -262
- package/bundle/components/ExpandAnimation.md +263 -218
- package/bundle/components/Footer.md +235 -278
- package/bundle/components/Island.md +36 -1
- package/bundle/components/LightBox.md +14 -3
- package/bundle/components/MediaWidth.md +7 -1
- package/bundle/components/Notification.md +21 -3
- package/bundle/components/Overlay.md +24 -1
- package/bundle/components/Pagination.md +12 -13
- package/bundle/components/SliderExtended.md +358 -222
- package/bundle/components/TableBasic.md +2294 -0
- package/bundle/components/TabsExtended.md +380 -194
- package/bundle/components/Tag.md +259 -78
- package/bundle/components/TopOverlay.md +366 -90
- package/bundle/components/TreeView.md +343 -166
- package/bundle/components/TreeViewNode.md +436 -0
- package/bundle/components/UnorderedList.md +254 -0
- package/bundle/components/UnorderedListExtended.md +255 -0
- package/bundle/components/WindowResizeListener.md +249 -0
- package/bundle/guides/commits.md +121 -15
- package/bundle/guides/stories.md +1 -1
- package/bundle/manifest.json +46 -20
- package/bundle/release-notes/1.43.0.mdx +87 -0
- package/bundle/release-notes/1.44.0.mdx +120 -0
- package/bundle/release-notes/1.45.0.mdx +7 -0
- package/package.json +1 -1
|
@@ -49,7 +49,7 @@ ARIA-роли не выставляет.
|
|
|
49
49
|
| `closable` | `boolean` | `false` | Показывает кнопку закрытия в правом верхнем углу |
|
|
50
50
|
| `onClose` | `() => void` | — | Вызывается **после** того, как компонент скрыл себя. Аргументов не принимает, отменить закрытие нельзя |
|
|
51
51
|
| `renderIcon` | `React.ReactNode` | иконка по `type` | Полностью заменяет иконку по умолчанию |
|
|
52
|
-
| `borderRadius` | `EAlertProcessBorderRadius` | `EAlertProcessBorderRadius.MD` | Скругление углов: `MD` (
|
|
52
|
+
| `borderRadius` | `EAlertProcessBorderRadius` | `EAlertProcessBorderRadius.MD` | Скругление углов: `MD` (16px) / `LG` (24px) |
|
|
53
53
|
| `children` | `React.ReactNode` | — | Контент. Типографику задаёт потребитель компонентами `Typography` — сам `AlertProcess` размер и цвет текста не задаёт |
|
|
54
54
|
| `...HTMLDivElementAttributes` | — | — | Все стандартные атрибуты `<div>` |
|
|
55
55
|
|
|
@@ -80,7 +80,7 @@ ARIA-роли не выставляет.
|
|
|
80
80
|
Значения — в `src/components/DesignTokens/components/AlertProcess.ts`. Компонент
|
|
81
81
|
задаёт **только фон**: цвет и размер текста — зона ответственности `Typography`
|
|
82
82
|
у потребителя, цвет иконок — `paletteIndex` соответствующей иконки. Скругления
|
|
83
|
-
(
|
|
83
|
+
(16px / 24px) и внутренние отступы (16px) заданы литералами в
|
|
84
84
|
`styles/AlertProcess.module.less` — токенов для них нет.
|
|
85
85
|
|
|
86
86
|
---
|
|
@@ -245,6 +245,7 @@ ARIA-роли не выставляет.
|
|
|
245
245
|
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
246
246
|
| 2026-08-10 | Создан документ. AI-рефакторинг: `AlertProcessSpoiler` переведён на `forwardRef` и перестал затирать `className` собственными классами; из него убрана ссылка на несуществующий CSS-класс `styles.spoiler`; в `AlertProcess` убрано дублирующее присваивание `AlertProcess.Spoiler`, `renderIcon` приведён к `\|\|` как в `AlertContext`, добавлены JSDoc на props с дефолтами и явный `children`; из LESS удалено мёртвое правило `.alertTypeFeature .themeIcon { padding-top: 0 }`. Unit-тесты разбиты на `AlertProcess.test.tsx`и`AlertProcessSpoiler.test.tsx`и расширены с 11 до 34 кейсов. Stories переведены на modern pattern — файлы примеров без суффикса`Example`. Публичный API не изменён. |
|
|
247
247
|
| 2026-08-11 | По ревью PR #520: из `AlertProcessSpoiler` убрана пустая обёртка-`<div>` — контент и кнопка раскрытия стали соседними элементами, корневым элементом компонента стал элемент контента (он и раньше получал `className` / `ref` / `...rest`). На кнопке раскрытия выставлен `aria-expanded`. Тесты дополнены до 37 кейсов. Публичный API не изменён. |
|
|
248
|
+
| 2026-08-28 | Скругление варианта `MD` увеличено с 12px до 16px в `styles/AlertProcess.module.less`. |
|
|
248
249
|
|
|
249
250
|
---
|
|
250
251
|
|
|
@@ -35,12 +35,37 @@ version: "1.0"
|
|
|
35
35
|
|
|
36
36
|
| Prop | Тип | По умолчанию | Описание |
|
|
37
37
|
|---|---|---|---|
|
|
38
|
-
| `verticalMargin` | `
|
|
38
|
+
| `verticalMargin` | `TBodyPageVerticalMargin` | `LARGE` | Вертикальные отступы: `LARGE` = 24px (16px на узких экранах), `SMALL` = 16px (8px на узких), `NONE` = 0. Одно значение задаёт обе стороны; объект `{top, bottom}` — каждую отдельно, обе стороны указываются явно. В LightBox используется `SMALL`. |
|
|
39
39
|
| `size` | `EComponentSize` | — | Размер острова (Island). **Доступен только для `type=FIRST`**; для `type=SECOND` типизирован как `never`. |
|
|
40
40
|
|
|
41
|
+
### Тип verticalMargin
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
interface IBodyPageVerticalMarginSides {
|
|
45
|
+
top: EBodyPageVerticalMargin;
|
|
46
|
+
bottom: EBodyPageVerticalMargin;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
type TBodyPageVerticalMargin = EBodyPageVerticalMargin | IBodyPageVerticalMarginSides;
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
```tsx
|
|
53
|
+
<Page.Body type={EBodyPageType.FIRST} verticalMargin={EBodyPageVerticalMargin.NONE}>…</Page.Body>
|
|
54
|
+
<Page.Body
|
|
55
|
+
type={EBodyPageType.FIRST}
|
|
56
|
+
verticalMargin={{top: EBodyPageVerticalMargin.NONE, bottom: EBodyPageVerticalMargin.LARGE}}
|
|
57
|
+
>…</Page.Body>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
`top` и `bottom` в объектной форме обязательны: скрытого дефолта у стороны нет, отступ виден
|
|
61
|
+
прямо в месте вызова. Частичный объект (`{top}`) и пустой (`{}`) — ошибка компиляции.
|
|
62
|
+
|
|
41
63
|
### Ограничения по типам
|
|
42
64
|
|
|
43
65
|
- `size` доступен только при `type=FIRST` (в `SECOND` контент не оборачивается в Island, поэтому `size?: never`).
|
|
66
|
+
- Частичный объект в `verticalMargin` запрещён типом. Если он всё же придёт из нетипизированного кода,
|
|
67
|
+
сторона без значения не получит класс и даст 0 — дефолт `LARGE` намеренно не подставляется в рантайме,
|
|
68
|
+
иначе вернулся бы скрытый дефолт стороны.
|
|
44
69
|
|
|
45
70
|
---
|
|
46
71
|
|
|
@@ -48,7 +73,8 @@ version: "1.0"
|
|
|
48
73
|
|
|
49
74
|
Собственных CSS-переменных нет. Внешний вид карточки наследуется от `Island` (`EIslandType.TYPE_1`).
|
|
50
75
|
Вертикальные отступы заданы фиксированными значениями в `styles/BodyPage.module.less`
|
|
51
|
-
|
|
76
|
+
односторонними классами `marginTop{Large,Small,None}` / `marginBottom{Large,Small,None}`
|
|
77
|
+
(24/16/0px и адаптив 16/8/0px на `@screen-sm-max`).
|
|
52
78
|
|
|
53
79
|
---
|
|
54
80
|
|
|
@@ -59,9 +85,14 @@ version: "1.0"
|
|
|
59
85
|
- `displayName = "BodyPage"` — не менять.
|
|
60
86
|
- Discriminated union по `type` и значения `EBodyPageType` / `EBodyPageVerticalMargin` — часть
|
|
61
87
|
публичного API, менять нельзя.
|
|
62
|
-
- Экспорты `BodyPage`, `IBodyPageTypeFirstProps`, `IBodyPageTypeSecondProps
|
|
88
|
+
- Экспорты `BodyPage`, `IBodyPageTypeFirstProps`, `IBodyPageTypeSecondProps`,
|
|
89
|
+
`IBodyPageVerticalMarginSides`, `TBodyPageVerticalMargin` идут в barrel
|
|
63
90
|
`src/components/Page/index.ts` — сохранять.
|
|
64
91
|
- `verticalMargin` по умолчанию `LARGE` — менять дефолт нельзя без обсуждения.
|
|
92
|
+
- В объектной форме `top` и `bottom` обязательны — не делать их опциональными: дефолт стороны
|
|
93
|
+
вернул бы скрытое поведение, которого здесь сознательно нет.
|
|
94
|
+
- Скалярная форма `verticalMargin` должна и дальше работать как раньше — это обратная
|
|
95
|
+
совместимость публичного API.
|
|
65
96
|
|
|
66
97
|
---
|
|
67
98
|
|
|
@@ -92,7 +123,7 @@ version: "1.0"
|
|
|
92
123
|
| `Playground` | `Playground.tsx` | Интерактивный контроль `type` и `verticalMargin` |
|
|
93
124
|
| `Default` | `Default.tsx` | Минимальный пример (FIRST, контент в карточке) |
|
|
94
125
|
| `Types` | `Types.tsx` | Сравнение типов FIRST и SECOND |
|
|
95
|
-
| `VerticalMargins` | `VerticalMargins.tsx` | Отступы LARGE (24px)
|
|
126
|
+
| `VerticalMargins` | `VerticalMargins.tsx` | Отступы LARGE (24px), SMALL (16px), NONE (0) и асимметричные комбинации |
|
|
96
127
|
| `VisualTests` | `VisualTests.tsx` | Матрица type × verticalMargin для скриншот-регрессии |
|
|
97
128
|
|
|
98
129
|
---
|
|
@@ -102,6 +133,7 @@ version: "1.0"
|
|
|
102
133
|
| Дата | Изменение |
|
|
103
134
|
|---|---|
|
|
104
135
|
| 2026-06-18 | Создан документ. AI-рефакторинг (clsx order, JSDoc), unit-тесты, миграция stories на modern pattern. |
|
|
136
|
+
| 2026-08-26 | TRI-121: добавлено `EBodyPageVerticalMargin.NONE`; `verticalMargin` принимает объект `{top, bottom}` (обе стороны обязательны) для независимых отступов сверху и снизу. LESS переразбит на односторонние классы. |
|
|
105
137
|
|
|
106
138
|
---
|
|
107
139
|
|
|
@@ -180,6 +212,42 @@ export const VerticalMargins = () => (
|
|
|
180
212
|
</Text>
|
|
181
213
|
</Page.Body>
|
|
182
214
|
</div>
|
|
215
|
+
<div>
|
|
216
|
+
<div style={{ marginBottom: "8px", fontSize: "16px", fontWeight: 700 }}>
|
|
217
|
+
NONE (0) — собственных отступов нет
|
|
218
|
+
</div>
|
|
219
|
+
<Page.Body type={EBodyPageType.FIRST} verticalMargin={EBodyPageVerticalMargin.NONE}>
|
|
220
|
+
<Text tag="div" size={ETextSize.B2} type={EFontType.PRIMARY}>
|
|
221
|
+
Без вертикальных отступов сверху и снизу.
|
|
222
|
+
</Text>
|
|
223
|
+
</Page.Body>
|
|
224
|
+
</div>
|
|
225
|
+
<div>
|
|
226
|
+
<div style={{ marginBottom: "8px", fontSize: "16px", fontWeight: 700 }}>
|
|
227
|
+
{"{ top: NONE, bottom: LARGE }"}
|
|
228
|
+
</div>
|
|
229
|
+
<Page.Body
|
|
230
|
+
type={EBodyPageType.FIRST}
|
|
231
|
+
verticalMargin={{ top: EBodyPageVerticalMargin.NONE, bottom: EBodyPageVerticalMargin.LARGE }}
|
|
232
|
+
>
|
|
233
|
+
<Text tag="div" size={ETextSize.B2} type={EFontType.PRIMARY}>
|
|
234
|
+
Отступы задаются раздельно: сверху 0, снизу 24px.
|
|
235
|
+
</Text>
|
|
236
|
+
</Page.Body>
|
|
237
|
+
</div>
|
|
238
|
+
<div>
|
|
239
|
+
<div style={{ marginBottom: "8px", fontSize: "16px", fontWeight: 700 }}>
|
|
240
|
+
{"{ top: SMALL, bottom: NONE }"}
|
|
241
|
+
</div>
|
|
242
|
+
<Page.Body
|
|
243
|
+
type={EBodyPageType.FIRST}
|
|
244
|
+
verticalMargin={{ top: EBodyPageVerticalMargin.SMALL, bottom: EBodyPageVerticalMargin.NONE }}
|
|
245
|
+
>
|
|
246
|
+
<Text tag="div" size={ETextSize.B2} type={EFontType.PRIMARY}>
|
|
247
|
+
Отступы задаются раздельно: сверху 16px, снизу 0.
|
|
248
|
+
</Text>
|
|
249
|
+
</Page.Body>
|
|
250
|
+
</div>
|
|
183
251
|
</div>
|
|
184
252
|
);
|
|
185
253
|
```
|
|
@@ -188,6 +188,7 @@ version: "1.0"
|
|
|
188
188
|
| 2026-07-15 | Добавлен `vertical-align: middle` корневому классу `.button` — icon-only кнопка (`icon` без `children`) смещалась по вертикали относительно соседней текстовой кнопки из-за baseline-выравнивания inline-элементов; `middle` также центрирует кнопку относительно строки инлайн-текста |
|
|
189
189
|
| 2026-07-28 | AI-рефакторинг (TRI-13): codestyle-чистка `Button.tsx` (JSDoc компонента, поясняющие комментарии, эквивалентные упрощения в `clsx`), unit-тесты расширены с 10 до 24 кейсов; публичный API и поведение не изменены |
|
|
190
190
|
| 2026-07-28 | Правки по ревью PR #481 (TRI-13): исправлена трактовка строкового `aria-expanded="false"` (больше не считается раскрытым состоянием); `size` стал опциональным с default `EComponentSize.MD` (типы приведены в соответствие с реализацией); `ButtonBase` убран из barrel-экспорта `index.ts` — импорт только по прямому пути `components/Button/ButtonBase` |
|
|
191
|
+
| 2026-08-17 | Добавлен `justify-content: center` корневому классу `.button` — при коротком тексте кнопка растягивается до `min-width`, и содержимое прижималось к левому краю вместо центра |
|
|
191
192
|
|
|
192
193
|
---
|
|
193
194
|
|
|
@@ -48,13 +48,15 @@ version: "1.0"
|
|
|
48
48
|
| `bulk` | `boolean` | `false` | Влияет на отображаемую иконку (используется bulk-иконка). Видимость checkmark всё равно определяется состоянием `checked`. |
|
|
49
49
|
| `size` | `EComponentSize` | `EComponentSize.MD` | Размер: `SM` / `MD` / `LG`. |
|
|
50
50
|
| `children` | `React.ReactNode` | — | Контент лейбла рядом с чекбоксом. Если `children` нет — класс `.nonempty` не применяется. |
|
|
51
|
-
| `labelAttributes` | `React.LabelHTMLAttributes<HTMLLabelElement>` | — | Дополнительные HTML-атрибуты для корневого `<label>` (например, `className`, `onFocus`). |
|
|
51
|
+
| `labelAttributes` | `React.LabelHTMLAttributes<HTMLLabelElement>` | — | Дополнительные HTML-атрибуты для корневого `<label>` (например, `className`, `onFocus`). `labelAttributes.className` объединяется с `className` компонента, а не заменяет его. |
|
|
52
52
|
| `...inputAttributes` | `Omit<React.InputHTMLAttributes<HTMLInputElement>, "type" \| "size">` | — | Все стандартные атрибуты `<input type="checkbox">` (включая `name`, `onChange`, `aria-label` и т.д.). |
|
|
53
53
|
|
|
54
54
|
### Ограничения использования
|
|
55
55
|
|
|
56
56
|
- DOM-структура фиксирована: корневой `<label>` → `<input type="checkbox">` → декоративные `<span>` / `<svg>` для отрисовки фона и галочки.
|
|
57
57
|
- `ref` прокидывается на внутренний `<input type="checkbox">`.
|
|
58
|
+
- `className` попадает на корневой `<label>`, все остальные props (`...inputAttributes`) — на `<input>`.
|
|
59
|
+
- Размер задаёт классы только на `<label>`: внутренние элементы (`input`, фон, галочка) стилизуются от него как потомки.
|
|
58
60
|
|
|
59
61
|
---
|
|
60
62
|
|
|
@@ -84,6 +86,7 @@ version: "1.0"
|
|
|
84
86
|
- `forwardRef` на компоненте обязателен и должен указывать на `<input>`.
|
|
85
87
|
- Корневой DOM-элемент компонента — `<label>`, внутри которого находится `<input>`.
|
|
86
88
|
- `className` и `size` — публичные части внешнего контрактного API: не менять семантику без согласования.
|
|
89
|
+
- Ховер-стили объявляются только внутри `@media (hover: hover)`: на тач-устройствах браузер эмулирует `:hover` при тапе и не снимает его, из-за чего чекбокс залипал бы в состоянии ховера.
|
|
87
90
|
|
|
88
91
|
---
|
|
89
92
|
|
|
@@ -113,6 +116,7 @@ version: "1.0"
|
|
|
113
116
|
| `Playground` | `PlaygroundExample.tsx` | Интерактивный контроль основных props |
|
|
114
117
|
| `Default` | `DefaultExample.tsx` | Минимальное использование |
|
|
115
118
|
| `Sizes` | `SizesExample.tsx` | Размеры `SM` / `MD` / `LG` |
|
|
119
|
+
| `VisualTests` | `VisualTestsExample.tsx` | Состояния для visual regression: размеры `SM` / `MD` / `LG` в `checked` и `checked bulk` |
|
|
116
120
|
|
|
117
121
|
---
|
|
118
122
|
|
|
@@ -122,6 +126,8 @@ version: "1.0"
|
|
|
122
126
|
|---|---|
|
|
123
127
|
| 2026-04-16 | Приведение `Checkbox` к AI-ready: соблюдены правила `docs/ai/codestyle.md`, добавлена AI-документация и unit-тест на передачу `className` корневому `label`. |
|
|
124
128
|
| 2026-04-27 | Приведён в соответствие с `docs/ai/template-ai.md`: убрана секция «Ключевые особенности реализации» (содержимое перенесено в `Ограничения использования`), переставлены секции (Accessibility после Инвариантов), добавлена колонка `Example file`. |
|
|
129
|
+
| 2026-08-14 | AI-рефакторинг: выбор иконки галочки через компонент-переменную вместо render-функции, с `<input>` убран не влияющий на стили класс размера, JSDoc на props дополнен дефолтами, расширено unit-покрытие (размеры, `bulk`, `labelAttributes`, `onChange`, `disabled`). |
|
|
130
|
+
| 2026-08-20 | Исправлено залипание ховера на тач-устройствах: правила `:hover` в `Checkbox.module.less` обёрнуты в `@media (hover: hover)`. |
|
|
125
131
|
|
|
126
132
|
---
|
|
127
133
|
|